Resumo rápido
Presentes: jrand0m, dm, Dellammo, mihi, moi, mihi-backup, dm_backup, wilde, shardy
Registro da reunião
[23:01] <jrand0m> pauta [23:01] <jrand0m> 0) boas-vindas [23:01] <jrand0m> 1) status do 0.2 [23:01] <jrand0m> 2) proxy www [23:01] * dm pondera. [23:02] <dm> ah, reunião? [23:02] <jrand0m> 3) phttprelay [23:02] <jrand0m> 4) i2ptunnel [23:02] <jrand0m> 5) instalação [23:02] <dm> desculpa. [23:02] <jrand0m> 6) solicitação de recurso do iip [23:02] <jrand0m> 7) ??? [23:02] <jrand0m> 0) boas-vindas [23:02] <jrand0m> oi. [23:02] <jrand0m> reunião 62? é isso? [23:02] <Dellammo> oi [23:02] <jrand0m> (sem problema dm, a gente te perdoa) [23:02] <mihi> oi jrand0m [23:02] <dm> oi mihi [23:02] * mihi acha que sim [23:03] <jrand0m> 1) status do 0.2 [23:03] * jrand0m teve um caso severo de feature creep (crescimento descontrolado de funcionalidades) recentemente, então o lançamento 0.2 ainda tem cerca de 30 minutos de código para escrever. [23:04] <jrand0m> mas então poderemos executar e nos comunicar de forma confiável, independentemente de NAT, firewall ou proxy HTTP. [23:04] * dm acaba de criar I2PSecureRemoteShell 1.0 [23:04] <dm> legal, jr! [23:05] <jrand0m> está tudo funcional, a única coisa que falta é expirar entradas não usadas no banco de dados após N minutos (provavelmente 5 por padrão) [23:05] <jrand0m> a comunicação através de NAT/firewall/proxy HTTP é o transporte PHTTP. é lento, mas confiável. [23:05] <dm> como funciona? quais portas usa? [23:06] <jrand0m> ele envia a mensagem para um PHTTP relay acessível, que armazena a mensagem, e então o receptor faz polling por mensagens a cada N segundos [23:06] <jrand0m> há MUITA coisa que pode ser ajustada e melhorada desse lado, que é o ponto 3 da pauta :) [23:06] <dm> P significa? [23:06] <jrand0m> Polling HTTP [23:06] <dm> ok, valeu. [23:07] <jrand0m> vou atualizar a página de "kludges" (gambiarras) no wiki depois da reunião também, para anotar as coisas esquisitas [23:07] <jrand0m> (como ainda não lidar com uma mudança de lease durante a comunicação) [23:08] <jrand0m> o outro ponto a discutir é o item 5 da pauta - instalação. também conhecido como como devemos lidar com a instalação do router/sdk/tunnel/etc [23:08] <jrand0m> ok, é isso para o status do 0.2 [23:08] <jrand0m> 2) proxy www. [23:09] <jrand0m> moi teve uma ideia bem legal para navegar em sites www dentro do i2p. [23:09] <jrand0m> quer explicar o que é, moi? [23:09] * jrand0m joga o holofote em você *** moi is ~someone@anon.iip (someone) *** nos canais: #freenet #anonymous #iip #iip-dev *** no irc via servidor anon.iip (Official IIP ) *** moi está inativo há 9 minutos, conectado em Thu Jan 01 01:00:00 1970 [23:10] <moi> bem [23:10] <moi> estou apenas modificando um proxy HTTP e usando o tunnel do mihi [23:10] <moi> de modo que você possa ir para (Link: http://i2p/BASE64KEYHERE)http://i2p/BASE64KEYHERE [23:10] <moi> eventualmente o servidor de nomes ficaria lá-- [23:11] <dm> legal [23:11] *** Saída: mihi (Ping timeout) [23:11] <moi> você tem que colar a primeira chave longa, mas depois disso tecnicamente deve conseguir seguir links, acho [23:11] <Dellammo> então uma página interna ou uma página fora do i2p? [23:11] <dm> i2p resolve para localhost? [23:11] <moi> então alguém poderia colocar um Google no i2p e ir a partir daí.... talvez [23:12] <mihi-backup> !thwap dm. [23:12] <mihi-backup> um proxy... [23:12] <jrand0m> por segurança, o proxy deveria devolver 404 para todos os hosts além de (Link: http://i2p/)http://i2p/ [23:12] <dm> ops! [23:12] <moi> boa [23:12] <dm> perdi essa parte [23:12] <mihi-backup> embora um servlet simples também seria legal [23:12] <jrand0m> hmm? [23:13] *** mihi (~mihi@anon.iip) entrou no canal #iip-dev [23:13] <jrand0m> hmm, pode haver um problema. [23:13] <jrand0m> isso usaria HTTP 1.0 ou 1.1? [23:14] <mihi> se o servidor exigir um cabeçalho Host:? [23:14] <jrand0m> [isto é, teria um cabeçalho Host:?] [23:14] <jrand0m> exatamente [23:14] * mihi deseja algo [23:14] <moi> será que podemos fazer o proxy deixar isso em branco [23:14] <jrand0m> se o outbound tunnel do servidor estiver sempre no mesmo host, tudo bem [23:14] <jrand0m> você pode definir o Host: do proxy para 127.0.0.1 [23:15] *** dm_backup (~as@anon.iip) entrou no canal #iip-dev [23:15] <jrand0m> mas então você precisa executar o tunnel no mesmo host que o servidor. não é um problema ruim, já que não é para navegação web geral/normal [23:15] <jrand0m> certo? [23:15] *** Saída: dm (Ping timeout) [23:16] * moi ainda não tinha pensado tão a fundo nisso [23:16] <mihi> se você executar o servidor na sua própria máquina, também pode fazer um alias de i2p para localhost ou algo assim. [23:16] <dm_backup> então as pessoas têm que rodar servidores web agora? [23:16] <jrand0m> dm_backup> isso é só para quem quiser. [23:16] *** dm_backup agora é conhecido como dm [23:16] <Dellammo> tipo eu [23:16] <dm> sim, digo, para essa coisa do (Link: http://i2p)http://i2p [23:17] <mihi> se você quer fornecer conteúdo, sim. [23:17] <mihi> mas você também tem que rodar um para fornecer conteúdo no bom e velho www. [23:18] <Dellammo> por quê? [23:18] <dm> Hmmm, talvez eu devesse construir um app P2P para o I2P. [23:18] <jrand0m> um app de compartilhamento de arquivos sobre i2p seria demais. [23:18] <dm> isso, foi mal, compartilhamento de arquivos. [23:19] <moi> acho que seria possível alguém rodar um servidor OpenNap em conjunto com i2ptunnel [23:19] <jrand0m> sim. [23:19] <jrand0m> (embora um p2p nativo para i2p teria melhor desempenho) [23:19] <mihi> mas os downloads vão ser difíceis. [23:20] <mihi> não tem como chegar ao host correto já que todos são localhost ;) [23:20] <dm> Vamos esperar até vermos PING rodando sobre i2ptunnel primeiro. [23:20] * Dellammo está confuso — estamos falando de um proxy que não é o i2ptunnel e que permite acessar servidores web internos à rede i2p digitando '(Link: http://i2p/')http://i2p/' ? [23:20] <jrand0m> talvez apenas um cliente FTP simples projetado para rodar sobre i2p? [23:20] <dm> (não ping literalmente) [23:20] <mihi> jrand0m: ftp precisa de 2 portas... [23:20] <jrand0m> projetado para rodar sobre i2p. [23:21] <jrand0m> um app geral de transferência de arquivos, não o protocolo FTP especificamente [23:21] <mihi> então não é ftp. [23:21] <mihi> ATalk ;) [23:21] <jrand0m> (aproveitando tamanhos maiores de mensagem) [23:21] <dm> batalha dos sábios! [23:21] <jrand0m> heh [23:21] <moi> Dellammo: agora você tem que criar um i2ptunnel para cada website/Destination que deseja navegar. Estamos pensando em usar um servidor proxy que construiria dinamicamente um i2ptunnel para cada site. [23:22] <jrand0m> (mais ou menos) [23:22] <jrand0m> você não vai querer usar um i2ptunnel, especificamente. [23:22] <jrand0m> você vai querer usar o protocolo do i2ptunnel e enviar mensagens diretamente, não via sockets TCP/IP. [23:23] <jrand0m> mihi> alguma ideia de quanto tempo levaria para separar a funcionalidade de protocolo do i2ptunnel para que outros apps pudessem enviar dados para um i2p tunnel? *** mihi is mihi@anon.iip (mihi) *** nos canais: #iip-dev #iip #headlines #german #freenet-opn #freenet #fredisdead #frazaa @#fiw #anonymous *** no irc via servidor anon.iip (Official IIP ) *** mihi está inativo há 3 minutos, conectado em Thu Jan 01 01:00:00 1970 *** mihi-backup is ~mihi@anon.iip (mihi) *** nos canais: #iip-dev *** no irc via servidor anon.iip (Official IIP ) *** mihi-backup está inativo há 12 minutos, conectado em Thu Jan 01 01:00:00 1970 [23:25] <mihi> há alguma funcionalidade de protocolo grande? I2PTunnelRunner pode ser usado como está. [23:25] <mihi> você só precisa ajustar a classe cliente para suas necessidades. [23:25] <jrand0m> hmm, na verdade não — i2ptunnelRunner usa um socket [23:26] <jrand0m> este é um app Java simples que quer gerar uma mensagem ("HTTP GET /\n\n") e enviá-la para um outbound I2PTunnel [23:27] <jrand0m> não queremos redirecionar o cliente que contata o proxy para uma nova porta para se conectar ao I2PTunnel recém-instantado (pois não haveria como voltar para links fora desse site) [23:28] <jrand0m> mas talvez mudar o I2PTunnelRunner para usar um InputStream (tudo que ele usa é socket.getInputStream) seria fácil... [23:28] <jrand0m> mas ainda precisamos do lado que escuta [23:28] *** Saída: mihi (Ping timeout) [23:28] <jrand0m> d'oh [23:28] * jrand0m espera que o backup não esteja prestes a cair por ping... [23:28] <dm> o backup vai cair também, quer ver! [23:29] <mihi-backup> ;) [23:29] <jrand0m> w00t [23:29] <mihi-backup> [23:25] <jrand0m> hmm, na verdade não — i2ptunnelRunner usa um socket [23:29] <mihi-backup> [23:25] <mihi> opa, verdade. e você quer fazer isso completamente sem sockets? [23:29] <mihi-backup> [23:25] <mihi> então não sobra muito código do i2ptunnel. a maior parte é para lidar com os sockets. [23:29] <mihi-backup> [23:26] <mihi> melhor ficar no protocolo e implementar você mesmo (construir as mensagens com o método estático em i2ptunnel.java) [23:29] <mihi-backup> [23:28] <mihi> http não precisaria de tantas threads. Basta rodar um reader sobre a mensagem de entrada até um retorno duplo e então enviar a sua coisa. [23:30] <jrand0m> ah 'k. obrigado [23:30] <jrand0m> moi> tu sabes? [23:30] <mihi-backup> sobre trocar o I2PTunnel por um input stream. para quê? você não vai receber mais nada nele depois que analisar o pedido. [23:31] * moi pensa [23:31] <dm> toi thinks [23:31] <mihi-backup> só esquece o tunnelrunner. ;) [23:31] <jrand0m> certo, eu só estava pensando em manter o I2PTunnel e o proxy http usando o mesmo código — I2PTunnel usaria socket.getInputStream(), o proxy http usaria new ByteArrayInputStream("GET / \n\n".getBytes()) [23:31] *** mihi (mihi@anon.iip) entrou no canal #iip-dev [23:32] * moi vai precisar revisar isso em detalhes depois [23:32] <mihi-backup> mas isso vai fazer o runner enviar um "Connection closed" quando a string for enviada. [23:32] <mihi-backup> já que o stream termina. [23:32] <jrand0m> certo, o que é HTTP normal [23:33] <mihi-backup> só esquece o runner, eu disse ;) [23:33] <jrand0m> 'k [23:33] <mihi-backup> jrand0m: não. a conexão é fechada quando a resposta chega, não quando a pergunta sai. [23:33] <jrand0m> ah é [23:33] <jrand0m> ;) [23:36] <jrand0m> legal, moi, podemos trabalhar nisso depois. [23:36] <jrand0m> ok, esse foi o item 2) da pauta. agora, 3) [23:36] <moi> ok [23:37] <jrand0m> 3) phttprelay [23:37] <jrand0m> phttp relay é um conjunto de servlets empacotados em um arquivo .war [23:38] <jrand0m> ele funciona de imediato no Windows / JVM da Sun, mas eu tive que hackear o jetty para rodar com o kaffe [23:38] <mihi> make .peace not .war [23:39] * jrand0m geme [23:39] <dm> dá para rodar arquivos .war sem um servidor J2EE? [23:39] <dm> bom saber. [23:39] <jrand0m> arquivos .war rodam em qualquer contêiner de servlets — tomcat, apache com mod_jk, jetty, etc [23:40] <jrand0m> vamos querer que algumas pessoas executem isso em máquinas com IPs publicamente acessíveis, mas eles só são necessários para quem não tem endereços publicamente acessíveis (como eu) [23:41] <mihi> quais portas você precisa redirecionar se quiser passar por um nat sem isso? [23:41] <jrand0m> a implementação dele também é bem rudimentar — precisa de alguns limites quanto a para quantos routers ele faz relay, quantas mensagens ele enfileira, quanto tempo até dar timeout, etc [23:41] <jrand0m> apenas a porta TCP do I2NP [23:41] <jrand0m> (ou a porta UDP do I2NP) [23:41] * mihi não sabe se o nat dele permite encaminhamento udp [23:42] * jrand0m também não sabe se o nat do mihi permite [23:43] <jrand0m> agora, por exemplo, meu laptop é alcançável apenas via PHTTP, e o router do meu servidor é alcançável via PHTTP, TCP e UDP. se meu laptop estabelecer uma conexão com o router do servidor via TCP, ele pode enviar mensagens via TCP. mas se meu laptop não fizer isso antes, o servidor deve enviar mensagens via PHTTP [23:44] <jrand0m> o código está em i2p/code/apps/phttprelay/ para quem tiver experiência com servlets e quiser hackear um app pequeno [23:45] <jrand0m> (também deve funcionar de forma transparente com https assim como com http simples) [23:45] <jrand0m> Vou documentar o protocolo PHTTP Muito Em Breve. :) [23:45] *** Saída: mihi (Ping timeout) [23:45] <jrand0m> ok, é isso para o item 3) phttprelay [23:45] <jrand0m> 4) i2ptunnel [23:46] <jrand0m> já discutimos um monte de coisas. a menos que o mihi (ou mais alguém) tenha algo mais sobre isso, podemos ir para o 5) [23:46] *** wilde (~anon@anon.iip) entrou no canal #iip-dev [23:46] <jrand0m> hola wilde [23:47] <jrand0m> ok. dito isso, item 5 :) [23:47] <jrand0m> 5) instalação [23:48] <jrand0m> para colocar o 0.2 na rua, e além, estou pensando em alguns scripts ant. [23:48] <jrand0m> ou deveríamos usar outro sistema de instalação open source? [23:48] <jrand0m> alguém tem experiências/opiniões sobre isso? [23:49] <Dellammo> hmm [23:50] <jrand0m> ant tem a vantagem de estar unificado com o sistema de build, ser independente de plataforma e ter operação headless. [23:50] <wilde> hey [23:50] <jrand0m> mas ele requer ant (que requer java). e não tem uma GUI [23:51] <Dellammo> consigo pensar em muitos programas de instalação para Windows... não sei quantos são GPL, porém [23:51] <jrand0m> sim, eu tenho uma licença do InstallAnywhere Enterprise, mas é ruim para open source [23:51] <jrand0m> NSIS é open source, mas tem suas nuances. [23:51] <dm> pergunta boba: ant vem incluído no java? [23:52] <jrand0m> não. [23:52] <jrand0m> ah, embora a gente PUDESSE distribuir um ant com GCJ [23:52] <dm> certo, deve ter vindo com o eclipse então. [23:52] <jrand0m> (compilado para código nativo) [23:52] <jrand0m> com certeza, dm. [23:52] <jrand0m> a apache faz o ant (ant.apache.org) e ele tem licença apache. [23:52] <jrand0m> ah, eca. [23:52] * jrand0m acabou de ler a frase que digitei) [23:53] <jrand0m> segundo a FSF, a GPL não é amigável à APL [23:53] <jrand0m> provavelmente não podemos distribuir o ant. [23:53] <dm> não podemos só fazer um script? o que precisa ser feito para ele ser instalado? [23:53] <jrand0m> mas podemos usá-lo. [23:53] <jrand0m> não muita coisa. um script serve. [23:53] <jrand0m> mas queremos um .bat e um .sh, etc. [23:54] *** shardy (~shardy@anon.iip) entrou no canal #iip-dev [23:54] <dm> o que uma instalação envolve, umas duas perguntas? [23:54] <jrand0m> escrever um instalador em Java para fazer uma instalação independente de plataforma é overkill, então idealmente deveríamos usar um framework de instalação existente [23:54] <jrand0m> é, algumas perguntas [23:54] <jrand0m> os alvos de instalação que prevejo: [23:54] <Dellammo> vamos ganhar um logo novo e chamativo? quem está trabalhando nisso? [23:54] <jrand0m> install-router [23:55] <jrand0m> install-www-tunnel, install-www-proxy, install-sdk, install-cvs-tunnel, update-seednodes [23:55] <moi> por que não usar o InstallAnywhere? se o código é aberto, isso é o que importa [23:55] * jrand0m acha que VOCÊ é o Dellammo :) [23:55] <jrand0m> InstallAnywhere não é open source. [23:55] * Dellammo põe a mão na massa [23:56] <dm> um script provavelmente seria suficiente neste ponto, mas acho que vale a pena pensar adiante. [23:56] <jrand0m> (é cerca de 4 mil euros por licença) [23:56] <jrand0m> certo. então para amanhã, provavelmente vou só escrever scripts ant, mas precisamos pesquisar um sistema [23:56] *** Saída: wilde (Ping timeout) [23:56] <jrand0m> então se alguém puder ajudar com isso, será apreciado :) [23:57] <dm> ah ok, eu estava pensando em shell scripts. [23:57] <moi> Alguns dos gerenciadores de pacotes poderiam fazer isso nas instalações Linux [23:57] *** wilde (~anon@anon.iip) entrou no canal #iip-dev [23:57] <jrand0m> gerenciar instaladores diferentes para plataformas diferentes é um pé no saco [23:59] <dm> instalador em java? Por que é um PITA? [23:59] <jrand0m> um instalador em Java seria ótimo [23:59] <mihi-backup> pain in the a**e [23:59] <mihi-backup> ops, foi mal... [23:59] <dm> system.out.println("Please enter where you would like to install I2P") ;) [23:59] <mihi-backup> s/tln/t; s/P"/P: "/ [23:59] <mihi-backup> s/sys/Sys/ [00:00] <jrand0m> escrever um instalador customizado em Java é possível, mas é preferível usar um framework existente. mas se você estiver se voluntariando para escrever um instalador customizado, eu te apoio! [00:00] <dm> mihi está tendo uma crise epiléptica. [00:00] * mihi-backup dá umas bofetadas no dm com uma truta grande [00:00] <dm> Seguinte... [00:01] <dm> Se você tiver tempo, em algum momento, para escrever os passos exatos necessários numa instalação, eu escrevo um instalador em Java. [00:01] <mihi-backup> dm: leia o script ant ;) [00:01] <jrand0m> isso aí, dm. assim que eu deixar o negócio do ant funcionando eu documento pra você [00:01] <dm> justo, vamos ver se eu consigo entender o script ant quando sair. [00:02] *** Saída: wilde (Ping timeout) [00:02] <Dellammo> jrand0m, i2p I2P i^2p ou I^2P ? [00:02] * jrand0m tem uns rabiscos com um I maiúsculo, 2 e um P maiúsculo todos sobrepostos... [00:03] <Dellammo> hmm [00:03] *** wilde (~anon@anon.iip) entrou no canal #iip-dev [00:03] *** mihi (~mihi@anon.iip) entrou no canal #iip-dev [00:03] <jrand0m> ok, esse foi o 5) instalação [00:03] <jrand0m> 6) pedido de recurso do iip [00:04] <jrand0m> alguém apareceu aqui com um pedido de auto-nicktheifing [00:04] <jrand0m> basicamente, se alguém registrou um nick, ninguém pode ficar com aquele nick a menos que esteja identificado [00:04] <jrand0m> nop ou qualquer um que tenha feito dev de iip — ideias? [00:04] * jrand0m acha que seria um ótimo recurso ter [00:05] * Dellammo desenha um olho iluminati com um símbolo de proibido (tipo o de não fumar) por cima [00:05] <jrand0m> heh [00:05] <dm> Talvez eu faça um logo do I2P também... para a parte de GUI do meu instalador ;) [00:05] *** Saída: wilde ((null)) [00:05] <Dellammo> vamos todos fazer, para não ficarmos presos a um logo ruim [00:05] <mihi> jrand0m: pergunte ao mids — ele mantém o trent. [00:06] <mihi> o código-fonte do trent está no cvs, a propósito [00:06] <Dellammo> o logo é a parte mais importante de qualquer atividade [00:06] <jrand0m> com certeza, Dellammo. [00:06] * dm tira a poeira do Corel Draw... [00:06] <dm> cara, eu adoro o Corel Draw. [00:07] <jrand0m> ok, é isso para o 6) [00:07] <jrand0m> 7) ??? [00:07] <jrand0m> alguma pergunta/ideia/frisbee/unha do pé? [00:07] <dm> Pensamento: tomara que funcione. [00:08] <jrand0m> heh [00:08] * jrand0m também. [00:09] <mihi> jrand0m: continue com o bom trabalho! [00:09] <dm> isso, continue. [00:09] <jrand0m> bom trabalho? você obviamente não viu o código ;) [00:09] <dm> Adoro seu código, exceto pelos underscores que cegam. [00:09] <dm> blinding...bleeding..etc.. [00:09] <jrand0m> heh, variáveis de instância têm _, então nunca precisamos fazer this.var = var; [00:10] <jrand0m> ok... 68 minutos... se eu conseguir arrastar isso por mais um minuto... [00:10] <jrand0m> w00t [00:10] * jrand0m encerra a reunião com um *baf*.
Forneça SOMENTE a tradução, nada mais: