Stručné shrnutí
Přítomni: jrand0m, dm, Dellammo, mihi, moi, mihi-backup, dm_backup, wilde, shardy
Zápis ze schůzky
[23:01] <jrand0m> program [23:01] <jrand0m> 0) uvítání [23:01] <jrand0m> 1) stav 0.2 [23:01] <jrand0m> 2) www proxy [23:01] * dm přemítá. [23:02] <dm> oh, schůzka? [23:02] <jrand0m> 3) phttprelay [23:02] <jrand0m> 4) i2ptunnel [23:02] <jrand0m> 5) instalace [23:02] <dm> promiň. [23:02] <jrand0m> 6) iip feature request [23:02] <jrand0m> 7) ??? [23:02] <jrand0m> 0) uvítání [23:02] <jrand0m> ahoj. [23:02] <jrand0m> schůzka 62? je to tak? [23:02] <Dellammo> ahoj [23:02] <jrand0m> (žádný strach dm, odpustíme ti) [23:02] <mihi> ahoj jrand0m [23:02] <dm> ahoj mihi [23:02] * mihi si to taky myslí [23:03] <jrand0m> 1) stav 0.2 [23:03] * jrand0m byl poslední dobou těžce postižen „feature creepem“, takže do vydání 0.2 zbývá ještě tak 30 minut kódu. [23:04] <jrand0m> ale pak budeme schopni běžet a spolehlivě komunikovat bez ohledu na NAT, firewall nebo HTTP proxy. [23:04] * dm právě vytvořil I2PSecureRemoteShell 1.0 [23:04] <dm> super jr! [23:05] <jrand0m> všechno je funkční, jediná věc, co zbývá, je nechat po N minutách expirovat nepoužívané položky databáze (výchozí asi 5) [23:05] <jrand0m> komunikace přes NAT/firewall/HTTP proxy je přes PHTTP transport. Je to pomalé, ale spolehlivé. [23:05] <dm> jak to funguje? jaké porty to používá? [23:06] <jrand0m> pošle zprávu na dosažitelný PHTTP relay, který zprávu uloží, a příjemce pak každých N sekund dotazuje, zda má zprávy [23:06] <jrand0m> je tam HODNĚ věcí, které se dají ladit a zlepšovat, což je bod programu 3 :) [23:06] <dm> P znamená? [23:06] <jrand0m> Polling HTTP [23:06] <dm> ok díky. [23:07] <jrand0m> Po schůzce také aktualizuju stránku „kludges“ na wiki, abych poznamenal věci, které jsou divné [23:07] <jrand0m> (například že zatím nezvládáme změnu lease během komunikace) [23:08] <jrand0m> další bod k diskuzi je položka 5 – instalace. alias jak bychom měli řešit instalaci router/sdk/tunnel/etc [23:08] <jrand0m> ok, to je vše ke stavu 0.2 [23:08] <jrand0m> 2) www proxy. [23:09] <jrand0m> moi měl fakt bezva nápad pro prohlížení www stránek uvnitř i2p. [23:09] <jrand0m> chceš vysvětlit, o co jde, moi? [23:09] * jrand0m na tebe namíří reflektor *** moi is ~someone@anon.iip (someone) *** on channels: #freenet #anonymous #iip #iip-dev *** on irc via server anon.iip (Official IIP ) *** moi has been idle 9 minutes, signed on at Thu Jan 01 01:00:00 1970 [23:10] <moi> no [23:10] <moi> jen upravuju HTTP proxy a používám mihiho tunnel [23:10] <moi> abys mohl jít na (Link: http://i2p/BASE64KEYHERE)http://i2p/BASE64KEYHERE [23:10] <moi> časem by tam byl naming server-- [23:11] <dm> boží [23:11] *** Signoff: mihi (Ping timeout) [23:11] <moi> musíš vložit ten první dlouhý klíč, ale pak bys technicky měl být schopný následovat odkazy, myslím [23:11] <Dellammo> jako interní webová stránka nebo stránka mimo i2p? [23:11] <dm> i2p se překládá na localhost? [23:11] <moi> takže by někdo mohl postavit i2p Google a odtamtud pokračovat... možná [23:12] <mihi-backup> !thwap dm. [23:12] <mihi-backup> proxy... [23:12] <jrand0m> kvůli bezpečnosti by měla proxy vracet 404 pro všechny hosty kromě (Link: http://i2p/)http://i2p/ [23:12] <dm> ups! [23:12] <moi> dobrý postřeh [23:12] <dm> to jsem minul [23:12] <mihi-backup> i když jednoduchý servlet by byl taky fajn [23:12] <jrand0m> hmm? [23:13] *** mihi (~mihi@anon.iip) has joined channel #iip-dev [23:13] <jrand0m> hmm, může tu být problém. [23:13] <jrand0m> použilo by to HTTP 1.0 nebo 1.1? [23:14] <mihi> pokud server vyžaduje hlavičku Host:? [23:14] <jrand0m> [tj. měl by to mít hlavičku Host:?] [23:14] <jrand0m> přesně [23:14] * mihi si něco přeje [23:14] <moi> Zajímalo by mě, jestli to proxy nemůže vyprázdnit [23:14] <jrand0m> pokud je odchozí tunnel serveru vždy na stejném hostu, je to v pohodě [23:14] <jrand0m> můžeš nastavit proxy Host: na 127.0.0.1 [23:15] *** dm_backup (~as@anon.iip) has joined channel #iip-dev [23:15] <jrand0m> ale pak musíš spouštět tunnel na stejném hostu jako server. Není to špatný problém, protože to není pro běžné prohlížení normálního webu [23:15] <jrand0m> že? [23:15] *** Signoff: dm (Ping timeout) [23:16] * moi zatím nad tím nepřemýšlel tak do hloubky [23:16] <mihi> když spouštíš server na své vlastní mašině, můžeš také přiřadit i2p jako alias na localhost nebo tak něco. [23:16] <dm_backup> takže teď lidi musí provozovat web servery? [23:16] <jrand0m> dm_backup> tohle je jen pro ty, co chtějí. [23:16] *** dm_backup is now known as dm [23:16] <Dellammo> jako já [23:16] <dm> jo, myslím kvůli téhle (Link: http://i2p)http://i2p věci [23:17] <mihi> pokud chceš poskytovat obsah, ano. [23:17] <mihi> ale musíš jeden provozovat i pro dobrý starý www. [23:18] <Dellammo> proč? [23:18] <dm> Hmmm, možná bych měl postavit P2P aplikaci pro I2P. [23:18] <jrand0m> aplikace pro sdílení souborů přes i2p by vládla. [23:18] <dm> ano, promiň, sdílení souborů. [23:19] <moi> Myslím, že by někdo mohl provozovat OpenNap server v kombinaci s i2ptunnel [23:19] <jrand0m> ano. [23:19] <jrand0m> (i když nativní i2p p2p by mělo lepší výkon) [23:19] <mihi> ale stahování budou těžká. [23:20] <mihi> není způsob, jak se dostat ke správnému hostu, když jsou všichni localhost ;) [23:20] <dm> Počkáme si, až uvidíme PING běžet přes i2ptunnel. [23:20] * Dellammo je zmatený, bavíme se o proxy, která není i2ptunnel, a umožní přístup k webserverům, které jsou interní v síti i2p, zadáním '(Link: http://i2p/')http://i2p/' ? [23:20] <jrand0m> možná jen jednoduchý FTP klient navržený pro běh přes i2p? [23:20] <dm> (ne doslova ping) [23:20] <mihi> jrand0m: ftp potřebuje 2 porty... [23:20] <jrand0m> navržený pro běh přes i2p. [23:21] <jrand0m> obecná aplikace pro přenos souborů, ne protokol FTP konkrétně [23:21] <mihi> pak to není ftp. [23:21] <mihi> ATalk ;) [23:21] <jrand0m> (využívající větší velikosti zpráv) [23:21] <dm> souboj mudrců! [23:21] <jrand0m> heh [23:21] <moi> Dellammo: právě teď musíš vytvořit i2ptunnel pro každý web/Destination, který chceš prohlížet. Přemýšlíme o použití proxy serveru, který by dynamicky stavěl i2ptunnel pro každý web. [23:22] <jrand0m> (tak nějak) [23:22] <jrand0m> nebudeš chtít použít přímo i2ptunnel. [23:22] <jrand0m> budeš chtít použít i2ptunnel protokol a posílat zprávy přímo, ne přes TCP/IP sockety. [23:23] <jrand0m> mihi> tušíš, kolik času by zabralo oddělit funkcionalitu protokolu z i2ptunnel, aby jiné aplikace mohly posílat data do i2p tunnel? *** mihi is mihi@anon.iip (mihi) *** on channels: #iip-dev #iip #headlines #german #freenet-opn #freenet #fredisdead #frazaa @#fiw #anonymous *** on irc via server anon.iip (Official IIP ) *** mihi has been idle 3 minutes, signed on at Thu Jan 01 01:00:00 1970 *** mihi-backup is ~mihi@anon.iip (mihi) *** on channels: #iip-dev *** on irc via server anon.iip (Official IIP ) *** mihi-backup has been idle 12 minutes, signed on at Thu Jan 01 01:00:00 1970 [23:25] <mihi> je tam vůbec nějaká velká funkcionalita protokolu? I2PTunnelRunner se dá použít tak jak je. [23:25] <mihi> Stačí upravit klientskou třídu pro své potřeby. [23:25] <jrand0m> hmm, ne tak úplně – i2ptunnelRunner používá socket [23:26] <jrand0m> tohle je čistá java aplikace, která chce vygenerovat zprávu ("HTTP GET /\n\n") a poslat ji do odchozího I2PTunnel [23:27] <jrand0m> nechceme přesměrovat klienta kontaktujícího proxy na nový port, aby se připojil k nově vytvořenému I2PTunnel (protože by pak nešlo přepnout zpět pro odkazy mimo ten web) [23:28] <jrand0m> ale možná by bylo snadné přepnout I2PTunnelRunner na použití InputStream (používá jen socket.getInputStream) [23:28] <jrand0m> ale pak pořád potřebujeme poslouchací stranu [23:28] *** Signoff: mihi (Ping timeout) [23:28] <jrand0m> d'oh [23:28] * jrand0m doufá, že záloha není na odchodu... [23:28] <dm> záloha taky umře, sleduj to! [23:29] <mihi-backup> ;) [23:29] <jrand0m> w00t [23:29] <mihi-backup> [23:25] <jrand0m> hmm, ne tak úplně – i2ptunnelRunner používá socket [23:29] <mihi-backup> [23:25] <mihi> ouha, pravda. a chcete to úplně bez socketů? [23:29] <mihi-backup> [23:25] <mihi> pak z i2ptunnel moc kódu nezbude. většina je na obsluhu socketů. [23:29] <mihi-backup> [23:26] <mihi> nejlepší je držet se protokolu a implementovat si to sám (stavět zprávy statickou metodou v i2ptunnel.java) [23:29] <mihi-backup> [23:28] <mihi> http by nepotřebovalo tolik vláken. Jen spustit reader nad příchozí zprávou, dokud nepřijde dvojité CR, a pak poslat svou věc ven. [23:30] <jrand0m> ah 'k. díky [23:30] <jrand0m> moi> tu sabes? [23:30] <mihi-backup> k přepnutí I2PTunnel na input stream. k čemu? nic už na něm nedostanete, jakmile požadavek zparsujete. [23:31] * moi přemýšlí [23:31] <dm> toi přemýšlí [23:31] <mihi-backup> prostě zapomeň na tunnelrunner. ;) [23:31] <jrand0m> jasně, jen jsem myslel, aby I2PTunnel a http proxy používaly stejný kód – I2PTunnel by používal socket.getInputStream(), http proxy by použila new ByteArrayInputStream("GET / \n\n".getBytes()) [23:31] *** mihi (mihi@anon.iip) has joined channel #iip-dev [23:32] * moi si to bude muset později projít detailně [23:32] <mihi-backup> ale to způsobí, že runner odešle „Connection closed“, když se ten řetězec pošle. [23:32] <mihi-backup> protože stream skončí. [23:32] <jrand0m> jasně, což je normální HTTP [23:33] <mihi-backup> říkal jsem: zapomeň na runner. ;) [23:33] <jrand0m> 'k [23:33] <mihi-backup> jrand0m: ne. spojení se zavře, až když přijde odpověď, ne když je odeslán dotaz. [23:33] <jrand0m> jo vlastně [23:33] <jrand0m> ;) [23:36] <jrand0m> fajn moi, tohle můžeme probrat později. [23:36] <jrand0m> ok, to je bod programu 2). teď 3) [23:36] <moi> ok [23:37] <jrand0m> 3) phttprelay [23:37] <jrand0m> phttp relay je sada servletů zabalená v .war souboru [23:38] <jrand0m> funguje to out of the box na windows / sun JVM, ale musel jsem hacknout jetty, aby běžel s kaffe [23:38] <mihi> make .peace not .war [23:39] * jrand0m zasténá [23:39] <dm> můžeš spouštět .war soubory bez J2ee serveru? [23:39] <dm> dobré vědět. [23:39] <jrand0m> .war soubory běží v libovolném servlet kontejneru – tomcat, apache s mod_jk, jetty, atd. [23:40] <jrand0m> budeme chtít, aby to někteří lidé provozovali na strojích s veřejně dosažitelnými IP adresami, ale jsou potřeba jen pro lidi, kteří nemají veřejně dosažitelné adresy (jako já) [23:41] <mihi> které porty je potřeba přesměrovat, pokud chceš projít přes nat bez toho? [23:41] <jrand0m> implementace je taky hodně primitivní – potřebuje limity, pro kolik router to bude relayovat, kolik zpráv frontovat, za jak dlouho timeoutovat atd. [23:41] <jrand0m> jen I2NP TCP port [23:41] <jrand0m> (nebo I2NP UDP port) [23:41] * mihi neví, jestli jeho nat umožňuje přesměrování udp [23:42] * jrand0m taky neví, jestli mihiho nat umožňuje přesměrování udp [23:43] <jrand0m> teď je například můj notebook dosažitelný jen přes PHTTP, a router mého serveru je dosažitelný přes PHTTP, TCP i UDP. když můj notebook naváže spojení s routerem serveru přes TCP, může posílat zprávy přes TCP. ale pokud notebook nejdřív tohle neudělá, musí server posílat zprávy přes PHTTP [23:44] <jrand0m> kód je v i2p/code/apps/phttprelay/ pro každého se zkušeností se servlety, kdo by si chtěl pohrát s malou appkou [23:45] <jrand0m> (mělo by to transparentně fungovat i s https stejně jako s obyčejným http) [23:45] <jrand0m> PHTTP protokol zdokumentuju co nejdřív. :) [23:45] *** Signoff: mihi (Ping timeout) [23:45] <jrand0m> ok, to je vše k bodu 3) phttprelay [23:45] <jrand0m> 4) i2ptunnel [23:46] <jrand0m> už jsme toho spoustu probrali. pokud k tomu mihi (nebo kdokoli jiný) nic dalšího nemá, můžeme přejít na 5) [23:46] *** wilde (~anon@anon.iip) has joined channel #iip-dev [23:46] <jrand0m> hola wilde [23:47] <jrand0m> ok. takže položka 5 :) [23:47] <jrand0m> 5) instalace [23:48] <jrand0m> abychom dostali 0.2 ven a dál, uvažuju o nějakých ant skriptech. [23:48] <jrand0m> nebo máme použít jiný open source instalační systém? [23:48] <jrand0m> máte s tím někdo zkušenosti / názory? [23:49] <Dellammo> hmm [23:50] <jrand0m> ant má výhodu sjednocení se build systémem, je multiplatformní a umí běžet bez GUI. [23:50] <wilde> čau [23:50] <jrand0m> ale vyžaduje ant (který vyžaduje javu). a nemá GUI [23:51] <Dellammo> napadá mě spousta instalačních programů pro windows... nevím kolik jich je gpl [23:51] <jrand0m> jo, mám licencovaný InstallAnywhere Enterprise, ale to je špatné pro open source [23:51] <jrand0m> NSIS je open source, ale má své nuance. [23:51] <dm> blbá otázka: je ant součástí javy? [23:52] <jrand0m> není. [23:52] <jrand0m> oh, i když BYCHOM MOHLI distribuovat GCJovanou verzi ant [23:52] <dm> jasně, tak to asi přišlo s eclipse. [23:52] <jrand0m> (zkompilovanou do native kódu) [23:52] <jrand0m> rozhodně dm. [23:52] <jrand0m> ant dělá apache (ant.apache.org) a je pod apache licencí. [23:52] <jrand0m> fuj. [23:52] * jrand0m si právě přečetl větu, kterou napsal) [23:53] <jrand0m> gpl není apl friendly, podle FSF [23:53] <jrand0m> asi nemůžeme distribuovat ant. [23:53] <dm> nemůžeme prostě skript? co je potřeba udělat, aby se to nainstalovalo? [23:53] <jrand0m> ale můžeme ho použít. [23:53] <jrand0m> skoro nic. skript stačí. [23:53] <jrand0m> ale chceme .bat a .sh, atd. [23:54] *** shardy (~shardy@anon.iip) has joined channel #iip-dev [23:54] <dm> co obnáší instalace, pár otázek? [23:54] <jrand0m> psát vlastní instalátor v javě kvůli multiplatformnosti je overkill, ideálně bychom měli použít existující instalační framework [23:54] <jrand0m> jo, pár otázek [23:54] <jrand0m> instalační cíle, které předpokládám: [23:54] <Dellammo> dostaneme blyštivé nové logo? kdo na tom dělá? [23:54] <jrand0m> install-router [23:55] <jrand0m> install-www-tunnel, install-www-proxy, install-sdk, install-cvs-tunnel, update-seednodes [23:55] <moi> proč nepoužít InstallAnywhere? jestli je kód otevřený, na tom záleží [23:55] * jrand0m si myslí, že TY jsi ten člověk, Dellammo :) [23:55] <jrand0m> InstallAnywhere není open source. [23:55] * Dellammo se pouští do práce [23:56] <dm> skript by teď asi stačil, ale asi je lepší myslet dopředu. [23:56] <jrand0m> (je to asi 4k euro / místo) [23:56] <jrand0m> jasně. takže na zítra pravděpodobně napíšu ant skripty, ale musíme se podívat po systému [23:56] *** Signoff: wilde (Ping timeout) [23:56] <jrand0m> takže kdyby s tím někdo mohl pomoct, ocením to :) [23:57] <dm> ah ok, myslel jsem shellové skripty. [23:57] <moi> Někteří správci balíčků by tohle mohli zajistit u instalací na Linuxu [23:57] *** wilde (~anon@anon.iip) has joined channel #iip-dev [23:57] <jrand0m> spravovat různé instalátory pro různé platformy je PITA [23:59] <dm> java instalátor? Proč je to PITA? [23:59] <jrand0m> java instalátor by byl super [23:59] <mihi-backup> pain in the a**e [23:59] <mihi-backup> ups, sorry... [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> psát vlastní instalátor v javě je možné, ale je lepší použít existující framework. ale jestli se dobrovolně hlásíš napsat vlastní instalátor, jsem s tebou! [00:00] <dm> mihi má epileptický záchvat. [00:00] * mihi-backup pleskne dm kolem dokola velkým pstruhem [00:00] <dm> Řekněme... [00:01] <dm> Když budeš mít kdykoli čas sepsat přesné kroky, které jsou při instalaci potřeba, napíšu java instalátor. [00:01] <mihi-backup> dm: přečti si ant skript ;) [00:01] <jrand0m> beru dm. jakmile rozběhám ant věc, sepíšu ti to [00:01] <dm> fér, uvidíme, jestli pochopím ant skript, až bude venku. [00:02] *** Signoff: wilde (Ping timeout) [00:02] <Dellammo> jrand0m, i2p I2P i^2p nebo I^2P ? [00:02] * jrand0m má pár čmáranic s velkým I, 2 a velkým P, všechno přes sebe... [00:03] <Dellammo> hmm [00:03] *** wilde (~anon@anon.iip) has joined channel #iip-dev [00:03] *** mihi (~mihi@anon.iip) has joined channel #iip-dev [00:03] <jrand0m> ok, to je 5) instalace [00:03] <jrand0m> 6) iip feature request [00:04] <jrand0m> někdo sem přišel s požadavkem na auto-nickthiefing [00:04] <jrand0m> v podstatě, když má někdo registrovaný nick, nikdo nemůže zůstat pod tím nickem, pokud není identifikovaný [00:04] <jrand0m> nop nebo kdokoliv, kdo dělal iip dev – nápady? [00:04] * jrand0m si myslí, že by to byla super funkce [00:05] * Dellammo kreslí oko iluminátů s „zákazovou značkou“ přes něj [00:05] <jrand0m> heh [00:05] <dm> Možná udělám i I2P logo... pro GUI část svého instalátoru ;) [00:05] *** Signoff: wilde ((null)) [00:05] <Dellammo> udělejme je všichni, ať neskončíme s příšerným logem [00:05] <mihi> jrand0m: zeptej se mids – udržuje trent. [00:06] <mihi> mimochodem zdrojáky trent jsou v cvs [00:06] <Dellammo> logo je nejdůležitější část jakékoli činnosti [00:06] <jrand0m> rozhodně, Dellammo. [00:06] * dm opráší Corel Draw... [00:06] <dm> člověče, miluju Corel Draw. [00:07] <jrand0m> ok, to je vše k 6) [00:07] <jrand0m> 7) ??? [00:07] <jrand0m> nějaké otázky / myšlenky / frisbee / nehty na nohou? [00:07] <dm> Myšlenka: doufám, že to bude fungovat. [00:08] <jrand0m> heh [00:08] * jrand0m taky. [00:09] <mihi> jrand0m: pokračuj v dobré práci! [00:09] <dm> ano, jen tak dál. [00:09] <jrand0m> dobrá práce? to jsi zjevně neviděl ten kód ;) [00:09] <dm> Miluju tvůj kód, až na ta oslepující podtržítka. [00:09] <dm> oslepující...krvácící..atd.. [00:09] <jrand0m> heh, instanční proměnné mají _, takže nikdy nemusíme dělat this.var = var; [00:10] <jrand0m> ok... 68 minut... když to ještě o minutu natáhnu... [00:10] <jrand0m> w00t [00:10] * jrand0m *baf* uzavírá schůzku.