2006-03-11T01:19:31 *** dejot has quit IRC 2006-03-11T01:55:31 *** tux123 has quit IRC 2006-03-11T11:32:16 *** Mad-Marty has joined #pocoo 2006-03-11T11:35:00 hi Mad-Marty 2006-03-11T11:35:40 *** PBeck|off is now known as PBeck 2006-03-11T11:35:53 hi 2006-03-11T11:35:57 hi 2006-03-11T11:36:42 Mad-Marty: wie läufts mit dem XMLRPC und AJAX interface? 2006-03-11T11:37:23 mitsuhiko: die ideen hab ich schon, befass mich nur gerad noch mit metaclass 2006-03-11T11:37:32 bin mal kurz weg 2006-03-11T11:37:35 *** Mad-Marty has quit IRC 2006-03-11T11:40:17 *** Mad-Marty has joined #pocoo 2006-03-11T11:40:22 re 2006-03-11T11:40:46 mitsuhiko: fällt mir doch recht schwierig noch mit den components 2006-03-11T11:41:25 aber ich versuch mich noch dran, auch wenn ich nicht viel dazu gesagt hab 2006-03-11T11:41:47 Mad-Marty: eigentlich es ist relativ einfach. Alles was von Component ableitet kommt in eine klassenregistrierung und wird dann dynamisch geladen 2006-03-11T11:41:59 und das wichtigste ist, dass Komponenten keine klassen, sondern instanzen sind 2006-03-11T11:43:47 mitsuhiko: fällt dir spontan ein plugin ein was möglichst kurz ist ? 2006-03-11T11:44:37 components/pages/index.py hab ich mir z.b. angeschaut 2006-03-11T11:44:45 hm 2006-03-11T11:44:49 jup. das captcha :) 2006-03-11T11:45:07 --> http://trac.pocoo.org/browser/trunk/pocoo/components/core/captcha.py 2006-03-11T11:45:43 Mad-Marty: die interfaces sind dafür da, dass man die dinger ganz einfach einsammeln kann :) 2006-03-11T11:46:10 alle komponenten, die ein IRequestHandler im provides feld haben können von einem extension point abgerufen werden 2006-03-11T11:46:17 das war dann aber auch schon die ganze Magie :) 2006-03-11T11:46:39 mitsuhiko: woher weiss ich wann matches_request true ist ? 2006-03-11T11:47:14 Mad-Marty: matches_request muss True zurückgeben, wenn dein pfad mit "@ajax:" anfängt oder "@xmlrpc" alutet 2006-03-11T11:47:20 s/alutet/lautet/ 2006-03-11T11:47:51 ja, wie sieht ein req aus beispielsweise ? 2006-03-11T11:47:56 req ist ein request objekt 2006-03-11T11:48:03 Mad-Marty: mach mal svn update im colubrid ordner 2006-03-11T11:48:09 dann hast du das aktuelle, da ist eine doku dabei 2006-03-11T11:48:39 mom .. modem ist nicht so schnell :D 2006-03-11T11:49:02 ok, habs 2006-03-11T11:51:28 ^^ 2006-03-11T11:51:31 python generate.py 2006-03-11T11:51:36 dann bekommst du html dateien davon 2006-03-11T11:51:47 oder lass rst2html drüberlaufen 2006-03-11T11:52:01 das request objekt repräsentiert den request des benutzers 2006-03-11T11:52:19 der rest ist persistent, das heißt das eine anderwärtige veränderung für alle user gilt 2006-03-11T11:52:28 Mad-Marty: sudo easy_install docutils :) 2006-03-11T11:52:42 Mad-Marty: btw. mach mal [f5] im pocoo trac :) 2006-03-11T11:53:15 wow, upgedatet :) 2006-03-11T11:58:02 also prüfen mit request.GET['xmlrpc'] ? 2006-03-11T12:02:38 ney 2006-03-11T12:02:48 Mad-Marty: xmlrpc besser keine url parameter 2006-03-11T12:03:00 Mad-Marty: das pocoo fügt dem request objekt nochwas hinzu 2006-03-11T12:03:02 und zwar ein request.path 2006-03-11T12:03:13 das ist der pfad ohne slashes vorne und hinten :) 2006-03-11T12:03:31 http://www.myserver.com/path/to/my/pocoo/@ajax:blub// 2006-03-11T12:03:34 dann wäre path: 2006-03-11T12:03:37 @ajax:blub 2006-03-11T12:03:43 dann mit if "xmlrpc" in request.path ? 2006-03-11T12:04:09 if request.path == '@xmlrpc' or request.path.startswith('@ajax:') 2006-03-11T12:04:29 Mad-Marty: request.args (früher request.GET) ist für die url parameter 2006-03-11T12:04:32 ?blub=bla 2006-03-11T12:04:44 ok 2006-03-11T12:04:58 spricht was gegen 2006-03-11T12:05:03 if "xmlrpc" in request.path ? 2006-03-11T12:05:11 @ vergessen 2006-03-11T12:08:48 Mad-Marty: sonderaktionen, die nicht für den user direkt erreichbar sein sollen hätte ich ein @ prefix gegeben 2006-03-11T12:08:54 aber vielleicht fällt uns auch was besseres ein 2006-03-11T12:08:58 /internal/ajax oder sowas 2006-03-11T12:10:13 mitsuhiko: der pastebin ist weG ?! 2006-03-11T12:10:34 Mad-Marty: http://pocoo.pastebin.com/ ? 2006-03-11T12:10:37 geht bei mir 2006-03-11T12:10:39 ah jetzt gehts wieder 2006-03-11T12:11:49 http://pocoo.pastebin.com/596033 <--- habe jetzt das skeleton da erstellt, stimmt das schonmal so oder brauch ich noch was ? 2006-03-11T12:12:16 ansich reichts 2006-03-11T12:12:18 aber wart mal kurz 2006-03-11T12:12:53 * Mad-Marty kann heut garnicht so viel proggen, hab heut birthday ^^ 2006-03-11T12:13:19 Mad-Marty: http://pocoo.pastebin.com/596037 2006-03-11T12:13:24 Alles Gute!!! :-) 2006-03-11T12:13:32 thx :) 2006-03-11T12:15:07 mitsuhiko: ok, also noch "req.args" updaten, ja ? 2006-03-11T12:15:21 Mad-Marty: dann weißt du später ob du jetzt im ajax oder im xmlrpc mode bist 2006-03-11T12:15:28 und im ajax mode weißt du auch gleich was du aufrufen musst 2006-03-11T12:16:25 jo gute idee 2006-03-11T12:17:57 ok, ich nehm das so als skeleton: 2006-03-11T12:17:58 http://pocoo.pastebin.com/596041 2006-03-11T12:18:26 mitsuhiko: achja, und mit ajax muss ich mich noch bischen mehr befassen, hab ich nämlich gar keine ahnung von wie das funktioniert 2006-03-11T12:19:02 Mad-Marty: du musst nur schauen, dass das was der user dekorierter zurückgibt in einem json string an den server geschickt wird 2006-03-11T12:19:18 Mad-Marty: bitte nicht mit tabs indenten :) 2006-03-11T12:19:48 ja hab gerade mal meine IDE nicht gehabt, die converted das auf spaces ^^ sorry 2006-03-11T12:19:57 ok :) 2006-03-11T12:20:40 * Mad-Marty fragt sich was ein json string ist ^^ 2006-03-11T12:21:05 Mad-Marty: pocoo.utils.json :) 2006-03-11T12:21:19 wobei mir gerade auffält 2006-03-11T12:21:22 WEG MIT DEM MODULE ^^ 2006-03-11T12:21:30 simplejson ist much better 2006-03-11T12:21:35 ich les gerade http://de.wikipedia.org/wiki/JSON 2006-03-11T12:21:56 Mad-Marty: easy_install simplejson, das verwenden wir lieber als den komischen parser dort 2006-03-11T12:21:59 den kannst du dann rauskicken 2006-03-11T12:22:20 was ist eigentlich easy_install ? ^^ 2006-03-11T12:23:15 Mad-Marty: sag nicht, dass du das noch nicht installiert hast? ^^ 2006-03-11T12:23:20 installiert automatisch python libs 2006-03-11T12:23:30 öhm ^^ 2006-03-11T12:23:41 gibts das auch auf windows ? 2006-03-11T12:23:42 http://peak.telecommunity.com/dist/ez_setup.py <-- runterladen und python ez_setup.py simplejson 2006-03-11T12:23:44 Mad-Marty: klar 2006-03-11T12:24:25 nach der ersten installation geht dann auch python easy_install.py (das liegt unter windows dann warscheinlich im site-packages dir drin) 2006-03-11T12:29:14 ok, er lädt erstmal setuptools 2006-03-11T12:29:20 ;) 2006-03-11T12:34:42 ok, fertig :D 2006-03-11T12:35:29 Mad-Marty: das simplejson modul funzt gleich wie pickle :) 2006-03-11T12:35:35 also dumps und loads verwenden 2006-03-11T12:35:48 oder direkt dump auf request anwenden 2006-03-11T12:45:16 mitsuhiko: ok, aber was _macht_ json ... das ist mein problem, ich hab keine ahnung wofür man das braucht 2006-03-11T12:46:24 Mad-Marty: re. sorry 2006-03-11T12:46:33 als xmlrpc pendant laut wiki :D 2006-03-11T12:46:53 Mad-Marty: json ist das format mit dem die daten in ajax am besten übertragen werden 2006-03-11T12:47:17 {'hallo': ['Welt', True]} --> {"hallo": ["Welt", true]} 2006-03-11T12:47:20 ersteres ist python 2006-03-11T12:47:23 letztere is javascript 2006-03-11T12:47:34 ajax macht einen request und sendet post daten oder url parameter 2006-03-11T12:47:44 python evaluiert das und gibt ein json objekt zurück 2006-03-11T12:47:53 javascript liest die daten aus un jagt sie druch eval() 2006-03-11T12:48:25 ok, also soll das ajax im prinzip genau das gleiche anbieten wie XMLRPC 2006-03-11T12:48:39 sprich die selben requests ausführen und ergebnis zurückliefern ? 2006-03-11T12:49:00 jup 2006-03-11T12:49:08 deswegen laufen sie durch den selben dekorator 2006-03-11T12:49:10 @remotecall 2006-03-11T12:49:12 * Mad-Marty geht ein licht auf 2006-03-11T12:49:14 ^^ 2006-03-11T12:49:16 ^^ 2006-03-11T12:49:36 Mad-Marty: man könnte auch ajax über xmlrpc machen 2006-03-11T12:49:40 aber das ist langsam 2006-03-11T12:49:50 weil javascript das xml file parsen und manuell umwandeln müsste 2006-03-11T12:49:52 * Mad-Marty sollte sich mehr mit wsgi befassen ;) 2006-03-11T12:51:21 wie weit gehen eigentlich die möglichkeiten mit Ajax ? also als Asynchrones web, kann man damit irgendwelche generierten tabellen z.b. sortieren ohne erneute kommunikation mit dem websrv ? 2006-03-11T12:51:50 kann man 2006-03-11T12:51:59 man kann damit eigentlich alles machen 2006-03-11T12:52:05 solange es einen server handler dafür gibt 2006-03-11T12:52:46 kurzes beispiel was ich mit Ajax kann, was mit nem Apache+mod_perl z.b. nicht geht ? 2006-03-11T12:53:07 hm 2006-03-11T12:53:15 eigentlich geht auch alles mit statischen inhalt 2006-03-11T12:53:20 nur muss man die seite immer neu laden 2006-03-11T12:53:25 so kann man teile einzeln nachladen 2006-03-11T12:53:36 aha 2006-03-11T12:53:40 man könnte multiplayer browsergames machen 2006-03-11T12:53:44 ping/pong 2006-03-11T12:53:59 wie werden die teile abgegrenzt die man getrennt nachladen kann ? 2006-03-11T12:54:10 Mad-Marty: wart mal kurz. ich hab da was 2006-03-11T12:56:23 *** blackbird has joined #pocoo 2006-03-11T12:56:37 Mad-Marty: ping 2006-03-11T12:56:55 pong 2006-03-11T12:57:05 schau mal auf http://www.pocoo.org:8000/ 2006-03-11T12:57:14 das ist ein irc client in javascript + ajax + ypthon 2006-03-11T12:57:21 über den gehe ich da gerade ins irc 2006-03-11T12:57:46 den sourcecode gibts hier: http://www.pocoo.org/~blackbird/webirc.tar.bz2 2006-03-11T12:59:16 blackbird: hmmm müsste ich da jetzt nicht 2 mal im irc sein ^^ 2006-03-11T12:59:29 wenn es fehlefrei wäre schon :) 2006-03-11T12:59:35 UnicodeDecodeError: 'utf8' codec can't decode bytes in position 17-22: unsupported Unicode code range 2006-03-11T12:59:52 *** blackbird has quit IRC 2006-03-11T13:00:05 *** blackbird has joined #pocoo 2006-03-11T13:00:06 *** Tester has joined #pocoo 2006-03-11T13:00:16 *** blackbird has quit IRC 2006-03-11T13:00:26 aber es vermittelt gut das das nicht serverreloads sind :-) 2006-03-11T13:00:40 lala 2006-03-11T13:00:51 cool, es geht 2006-03-11T13:01:06 aber es ist sehr fehleranfällig, mir hat dann einfach die lust gefehlt :) 2006-03-11T13:01:22 * Mad-Marty dankt für den noob-kurs für Ajax ^^ 2006-03-11T13:01:31 bin erstmal essen 2006-03-11T13:01:33 mach das 2006-03-11T13:01:35 guten hunger 2006-03-11T13:01:43 danke 2006-03-11T13:01:44 ich kill mal wieder den server :) 2006-03-11T13:01:53 *** Mad-Marty is now known as Mad-Marty|away 2006-03-11T13:21:45 *** Mad-Marty|away is now known as Mad-Marty 2006-03-11T13:37:38 wb Mad-Marty :) 2006-03-11T13:42:29 thy 2006-03-11T13:42:31 thx 2006-03-11T13:43:17 Mad-Marty: ich hab gerade jsonrpc entdeckt 2006-03-11T13:43:55 mitsuhiko: brauchen wir das ? 2006-03-11T13:44:32 Mad-Marty: weiß nicht 2006-03-11T13:44:35 vielleicht isses einfacher 2006-03-11T13:45:32 mitsuhiko: hmm 2 schnittstellen sollten eigentlich reichen :D aber wenns sinn macht können wirs noch zusätzlich einbauen 2006-03-11T13:45:45 Mad-Marty: ich mein statt normalem AJAX 2006-03-11T13:45:58 JSON-RPC gäbe es als fertiges python modul 2006-03-11T13:46:08 ich schaus mir mal an 2006-03-11T13:47:09 wo hast du das gefunden ? 2006-03-11T13:47:47 Mad-Marty: mom 2006-03-11T13:47:58 Mad-Marty: http://json-rpc.org/ 2006-03-11T13:51:27 Mad-Marty: kommt drauf an, was für dich jetzt einfacher ist 2006-03-11T13:51:32 mitsuhiko: thx. stellt sich noch die frage obs verbreitet ist 2006-03-11T13:51:38 für AJAX spielt das keine rolle mehr, die js klasse kann man leicht anpassen 2006-03-11T13:51:46 Mad-Marty: es ist glaub ich erst ein paar tage alt :) 2006-03-11T13:52:02 ich schau mir beides an ^^ 2006-03-11T13:52:12 mal sehen was besser ist 2006-03-11T13:55:49 Mad-Marty: kennst du dich mit javascript aus? 2006-03-11T13:56:17 nicht sehr, nur mal kurz angeschaut, warum ? 2006-03-11T13:57:05 weil ich am überlegen bis was wir für ein toolkit shippen :) 2006-03-11T13:57:09 dojo oder mochikit 2006-03-11T13:58:27 sagt mir beides nichts ;) 2006-03-11T13:59:02 sind javascript libs 2006-03-11T13:59:17 ich nutzte eigentlich immer javascript direkt, aber waurm arbeit doppelt machen :) 2006-03-11T14:00:18 ich hab zwar mal jemand bei js geholfen, aber wirklich nur ganz leichte sachen (hab ihm erklärt wie arrays usw. funktionieren) 2006-03-11T14:05:36 ich hab jetzt mal dojo ins repo gekickt 2006-03-11T14:05:41 wechseln kann man ja später noch 2006-03-11T14:17:45 mitsuhiko: ok, ich geh dann erstmal wie gesagt off 2006-03-11T14:17:49 bis später 2006-03-11T14:17:52 ok. cu :) 2006-03-11T14:19:17 *** Mad-Marty has quit IRC 2006-03-11T14:31:11 *** dejot has joined #pocoo 2006-03-11T14:31:24 hi dejot 2006-03-11T14:31:27 dejot: schon das trac gesehen? 2006-03-11T14:31:30 http://trac.pocoo.org/ 2006-03-11T14:31:55 jetz schon, nett 2006-03-11T14:32:04 dejot: ich hab das design vom gobby trac verändert 2006-03-11T14:32:08 aber es ist noch die selbe farbe 2006-03-11T14:32:18 aber zumindest mal besser als das original 2006-03-11T15:15:50 *** birkenfeld has joined #pocoo 2006-03-11T15:41:19 hallo birkenfeld 2006-03-11T15:41:27 moin 2006-03-11T15:44:13 --> http://trac.pocoo.org/ticket/13 (Database System) 2006-03-11T15:44:54 hübsches design 2006-03-11T15:46:11 was spricht noch gegen SQLAlchemy? 2006-03-11T15:46:14 thx 2006-03-11T15:46:23 birkenfeld: eigentlich nichts, ich würde auch sagen, dass wir das verwenden 2006-03-11T15:47:57 okay 2006-03-11T15:48:21 jetzt ist nur noch die frage in wie weit wir dafür einen wrapper schreiben :) 2006-03-11T15:49:03 wenns die dinge vereinfacht... 2006-03-11T15:50:31 *** tux123 has joined #pocoo 2006-03-11T15:51:37 moin tux123 2006-03-11T15:51:47 hallo mitsuhiko 2006-03-11T15:52:05 * tux123 testet gerade solaris, er weiß aber noch nicht wozu das gut ist ;) 2006-03-11T15:52:11 birkenfeld: ich hoffe nur, dass die den threading bug mit dem objectstorage schon drausen haben :) 2006-03-11T15:52:25 tux123: mit was für einem DE? 2006-03-11T15:52:27 mitsuhiko: weiß nicht, ich habs noch nicht genau angeschaut 2006-03-11T15:53:03 birkenfeld: sqlalchmy nutzt eine unit of work 2006-03-11T15:53:13 und da hab ich immer ein wenig sorgen :-/ 2006-03-11T15:54:35 hmm 2006-03-11T16:02:08 birkenfeld: ich würde sagen wir verwenden das jetzt einfach 2006-03-11T16:02:19 mitsuhiko: kann nicht schaden :) 2006-03-11T16:02:20 länger auf der stelle treten ist sowieos nicht produktiver 2006-03-11T16:02:23 :) 2006-03-11T16:02:52 --> http://trac.pocoo.org/ticket/11 (pocoo.components.core.* to utils) 2006-03-11T16:04:06 wenn du mir nochmal genau sagst was genau das meint ;) 2006-03-11T16:06:01 birkenfeld: in pocoo.componentes.core liegt beispielsweise template 2006-03-11T16:06:18 das ist zwar strenggenommen eine componente, aber da es eher ein util ist, isses da falcsh ^^ 2006-03-11T16:06:26 wäre gut, wenn das gar keine componenten sein müsste 2006-03-11T16:06:53 also template ist keine komponente? 2006-03-11T16:08:40 jain 2006-03-11T16:08:45 ich hab selber keine ahnung wie verfahren 2006-03-11T16:08:55 aber es kommt mir so irgendwie sehr eigenartig vor 2006-03-11T16:09:26 nenn mich perfektionist, aber ich find sowas komisch: 2006-03-11T16:09:31 render = Template.render_template 2006-03-11T16:09:34 ... 2006-03-11T16:09:44 und in der utils dann: 2006-03-11T16:09:52 __all__ = ['render'] 2006-03-11T16:10:02 from pocoo.componentes.core.template import render 2006-03-11T16:10:03 :-) 2006-03-11T16:10:19 birkenfeld: die ajax und xmlrpc sachen kommen zumindest nach pocoo.utils.remote 2006-03-11T16:10:51 also wenn eigentlich alles nach utils kommt... 2006-03-11T16:13:14 birkenfeld: dann? 2006-03-11T16:13:37 mitsuhiko: dann is ja in pocoo selber nur noch utils und components? 2006-03-11T16:14:19 birkenfeld: und ein paar kleine module, die in pocoo.* rumlungern 2006-03-11T16:14:28 und is das okay? 2006-03-11T16:14:30 aber im grunde schauts atm ganz so aus *schulterzuck* 2006-03-11T16:14:38 jain ^^ 2006-03-11T16:14:48 macht zumindest mal die importpfade länger 2006-03-11T16:15:20 in utils würde ich nur sachen legen, die nichts direkt mit pocoo zu tun haben 2006-03-11T16:15:41 die also genauso in anderen projekten verwendet werden könnten 2006-03-11T16:16:04 birkenfeld: das heißt i18n, email und psyco_support nach components? 2006-03-11T16:16:16 oh. und captcha, cli und debug auch ^^ 2006-03-11T16:16:25 okay, hm... 2006-03-11T16:16:27 die haben zumindest pocoo imports :) 2006-03-11T16:16:40 irgendwie ist das mit den packages komisch 2006-03-11T16:16:58 ich denke es wäre schonmal gut, wenn wir das trac chaos vermeiden 2006-03-11T16:17:38 trac chaos? 2006-03-11T16:17:52 jup 2006-03-11T16:17:56 die imports sind sehr komisch 2006-03-11T16:18:16 der about dialog steckt in trac.About 2006-03-11T16:18:23 die timeline in trac.Timeline 2006-03-11T16:18:24 aber 2006-03-11T16:18:37 das ticket in trac.ticket.query :-/ 2006-03-11T16:20:00 birkenfeld: schlag einfach was vor und so machen wir das dann 2006-03-11T16:20:07 so lange drauf rumtreten ist komisch :) 2006-03-11T16:21:12 kommt drauf an was noch kommt 2006-03-11T16:21:20 wenn noch viele subpackages kommen ist utils sinnvoll 2006-03-11T16:21:28 ansonsten eher pocoo.template 2006-03-11T16:24:13 birkenfeld: wenn du das mit dem verschieben machst, mach einfach das was du für richtig hälst 2006-03-11T16:24:28 ich mach die woche nur an pocoo.db was 2006-03-11T16:24:31 okay 2006-03-11T16:28:27 birkenfeld: ich bin jetzt mal eine Stunde mit dem Hund unterwegs 2006-03-11T16:28:35 wow 2006-03-11T16:28:36 so lang 2006-03-11T16:28:49 eurasier :) 2006-03-11T16:28:51 der braucht auslauf 2006-03-11T16:29:05 ich hab nie soviel geduld :) 2006-03-11T17:08:42 *** dejot has quit IRC 2006-03-11T18:39:51 *** dejot has joined #pocoo 2006-03-11T19:39:27 mitsuhiko: ping 2006-03-11T19:39:40 birkenfeld: pong 2006-03-11T19:40:04 ich hab ein paar tickets gefixt... 2006-03-11T19:40:36 birkenfeld: was sagen mir die punkte? ^^ 2006-03-11T19:40:55 dir "..."? 2006-03-11T19:41:02 *die 2006-03-11T19:41:38 nix :) 2006-03-11T19:41:42 achso :) 2006-03-11T19:42:33 die sagen dir, dass jetzt ein "schön gemacht, lieber birkenfeld" kommen sollte ;) mitsuhiko 2006-03-11T19:42:48 dejot: ich schau mir gerade die änderungen durch :) 2006-03-11T19:43:56 birkenfeld: da sind ja kaum noch tickets übrig ^^ 2006-03-11T19:44:21 ich schreib gerade einen unittest für jinja ./. unicode 2006-03-11T19:44:45 O_O 2006-03-11T19:44:53 ich sollte euch schreine beuen 2006-03-11T19:44:56 *bauen 2006-03-11T19:45:35 *hust* habt ihr eigentlich noch RL? ;P 2006-03-11T19:46:03 birkenfeld: wegen ticket 12 im wsgiarea part 2006-03-11T19:46:08 das config hat ein problem :) 2006-03-11T19:46:13 man kanns nicht monkey patchen 2006-03-11T19:46:23 hmmm 2006-03-11T19:47:16 mitsuhiko: übrigens: empfohlen ist jetzt raise Error(arg) und nicht mehr raise Error, arg 2006-03-11T19:47:28 birkenfeld: ich weiß, deswegen ändere ich das jetzt immer, wenn ichs sehe 2006-03-11T19:51:32 birkenfeld: für diese tag sache wede ich ein dict einführen oder sowas 2006-03-11T19:51:38 mir fällt jetzt nix besseres ein 2006-03-11T19:51:50 mitsuhiko: dict is doch gut 2006-03-11T19:53:09 mitsuhiko: auf welchem Level soll man denn in Jinja das Encoding festlegen können? 2006-03-11T19:53:47 birkenfeld: ich weiß atm noch gar nicht wie das passieren soll 2006-03-11T19:53:51 ob der intern dann einfahc string speichert 2006-03-11T19:54:16 und alles, was gerendert wird und unicode ist von einem im construktor festgelegten encoding dekodiert wird 2006-03-11T19:54:23 oder obs einfach unicode zurückgibt 2006-03-11T19:55:01 birkenfeld: nimm einfach das, was du für intelligent hälst, in unicode geschichten bin ich nicht wirklich firm :( 2006-03-11T20:04:56 mitsuhiko: soll das template encoding per loader oder per template gesetzt werden können? 2006-03-11T20:05:33 birkenfeld: per template denke ich 2006-03-11T20:05:43 ich habs befürchtet ;) 2006-03-11T20:05:50 kannst es auch anders machen ^^ 2006-03-11T20:06:04 aber ich dachte gerade dran, dass ein loader sowieso schon ein charset wegen datenbanken verlangen könnte 2006-03-11T20:06:31 per template bedeutet: parsen bis eine encoding deklaration kommt, dann neu öffnen und nochmal parsen 2006-03-11T20:06:45 achso. ney 2006-03-11T20:06:58 ich meinte Template('name', loader, charset='utf-8') 2006-03-11T20:07:11 birkenfeld: im template selber hat das nix verloren 2006-03-11T20:07:12 ach so 2006-03-11T20:07:27 gut, das kann man machen 2006-03-11T20:07:41 birkenfeld: deswgen wäre ich für intern string, dann ist es scheiß egal in welchem encoding das template file ist 2006-03-11T20:08:00 willst du nicht dass am ende unicode rauskommt? 2006-03-11T20:08:22 birkenfeld: wenn es machbar ist schon 2006-03-11T20:08:31 wenn colubrid schließlich unicode kann... 2006-03-11T20:08:51 birkenfeld: die frage ist, was passiert, wenn im template selber ein "ö" vorkommt 2006-03-11T20:09:07 was soll das sein? 2006-03-11T20:09:14 ein oe 2006-03-11T20:09:36 wenn das template in UTF-8 ist ist das ja in ordnung 2006-03-11T20:09:40 wenn es in latin-1 ist nicht 2006-03-11T20:17:32 mitsuhiko: default charset? 2006-03-11T20:17:47 birkenfeld: ascii ^^ 2006-03-11T20:17:49 ney. utf-8 2006-03-11T20:25:40 mitsuhiko: ich hab gerade ein ticket gesehen, wo es um WYSIWYG in den Templates geht. Wenn ihr etwas XML konformes in den Templates verwendet, kommt auch der Dreamweaver usw. gut damit zurecht und bietet sogar syntax highlighting, und das ist irgendwie schöner, als die Schleifen unter Kommentar zu setzen *duck und renn* ;) 2006-03-11T20:25:59 war aber nur ein vorschlag, da ich ja weiß wieviel du von xml haltest ;) 2006-03-11T20:26:15 tux123: du meinst sowas wie py:for="item in list" ? 2006-03-11T20:26:25 tux123: kennst du macromedia contribute? 2006-03-11T20:26:28 mitsuhiko: ja, so irgendwie... 2006-03-11T20:26:45 mitsuhiko: letzeres nur vom namen 2006-03-11T20:27:00 das ist die cmd addon software für dreamweaver 2006-03-11T20:27:04 die machen das so mit den schleifen: 2006-03-11T20:27:14 2006-03-11T20:27:27 aso, ok ;) 2006-03-11T20:27:28 item goes here 2006-03-11T20:27:33 2006-03-11T20:27:39 das suckt :) 2006-03-11T20:27:45 aber trotzdem kein xml 2006-03-11T20:28:04 mitsuhiko: stimmt. da gefällt mir so eine nette xml lösung schon besser :) 2006-03-11T20:28:22 aber vllt nicht so übertrieben wie es bei jsp ist... 2006-03-11T20:28:27 tux123: für xml templating gibts sowas wie kid und nevow 2006-03-11T20:29:21 ich kenn beides nicht, aber wollte nur einmal anmerken, das ich xml grundsätzlich für manche sachen gar nicht so schlecht finde :) 2006-03-11T20:30:27 tux123: schau dir mal die kid template engine an 2006-03-11T20:30:30 die nutzt sowas excessiv 2006-03-11T20:31:19 mitsuhiko: ja, mach ich vllt einmal, aber jetzt schau ich mir noch die anderen sachen auf eurer timeline an. ihr wart ja heute richtig fleißig :) 2006-03-11T20:32:58 wow, ich hab jetzt erst das neue trac-design gesehen *staun* 2006-03-11T20:34:59 tux123: trac ist cool :) 2006-03-11T21:07:51 back 2006-03-11T21:07:59 wb birkenfeld 2006-03-11T21:08:07 * mitsuhiko ist jetzt mal mit bruder würfelpokern 2006-03-11T21:08:35 viel spaß 2006-03-11T21:08:42 der rest meiner familie guckt Hansi Hinterseer 2006-03-11T21:09:30 omg 2006-03-11T21:09:33 armer 2006-03-11T21:09:38 dejot: danke :) 2006-03-11T21:09:42 * dejot hat mitleid 2006-03-11T21:42:18 re 2006-03-11T21:42:26 birkenfeld: warum denn das? 2006-03-11T21:42:36 warum? weiß ich auch net 2006-03-11T21:45:03 *** Tester has quit IRC 2006-03-11T21:48:56 lol. Tester war noch immer online 2006-03-11T21:48:58 das nenn ich bug 2006-03-11T21:49:15 mitsuhiko: was war denn Tester? 2006-03-11T21:49:23 birkenfeld: von meinem ajax webchat ein user 2006-03-11T21:49:29 aber die pythoninstanz lief gar nicht mehr :) 2006-03-11T21:49:33 ah 2006-03-11T21:52:19 mitsuhiko: ajax webchat? 2006-03-11T21:52:37 birkenfeld: so ein irc client mit python und javascript 2006-03-11T21:52:57 mitsuhiko: wo gibts das? 2006-03-11T21:53:18 birkenfeld: pocoo.org/~blackbird/webirc.tar.bz2 2006-03-11T21:53:29 ist aber nicht so die welt 2006-03-11T21:54:02 birkenfeld: http://www.pocoo.org:8000/ 2006-03-11T21:54:11 war meine erste python threading geschichte :) 2006-03-11T21:54:16 *** gbrandl has joined #pocoo 2006-03-11T21:54:42 es funktioniert... 2006-03-11T21:54:47 hi 2006-03-11T21:54:52 solange du keine umlaute schreibst ja :) 2006-03-11T21:54:55 cool 2006-03-11T21:55:16 irgendjemand wollte das mal für #python.de haben 2006-03-11T21:55:39 öäü? 2006-03-11T21:55:56 öäü! 2006-03-11T21:56:02 öäü? 2006-03-11T21:56:11 die kamen nicht an 2006-03-11T21:56:18 birkenfeld: jup, weil die jetzt iso waren 2006-03-11T21:56:24 die davon waren utf-8 2006-03-11T21:56:26 genau 2006-03-11T21:56:34 *** gbrandl has quit IRC 2006-03-11T21:56:56 und weg... 2006-03-11T21:57:22 jetzt sollte es wieder gehen 2006-03-11T21:57:27 *** blackbird has joined #pocoo 2006-03-11T21:57:38 ich schreibe utf-8 2006-03-11T21:57:42 öäü 2006-03-11T21:57:52 öäü 2006-03-11T21:57:53 iso: öäü 2006-03-11T21:58:01 blööööd? 2006-03-11T21:58:11 weiß halt nicht, was er damit machen soll :) 2006-03-11T21:58:15 ist jetzt auf ignore 2006-03-11T21:58:20 aber schon besser :) 2006-03-11T21:59:23 nochwas. bei einem join klonen sich die ops :) 2006-03-11T21:59:35 das dürfte irgendso ein threading bug sein 2006-03-11T21:59:48 die sind schwer zu finden... 2006-03-11T21:59:54 *** mitsuhiko has left #pocoo 2006-03-11T21:59:56 *** mitsuhiko has joined #pocoo 2006-03-11T22:00:02 test 2006-03-11T22:00:17 ney, passiert nur, wenn sich sich ein webuser einloggt 2006-03-11T22:00:22 *** gbrandl has quit IRC 2006-03-11T22:00:23 *** gbrandl has joined #pocoo 2006-03-11T22:00:35 und shcon 3 ChanServs :) 2006-03-11T22:01:00 *** blackbird has quit IRC 2006-03-11T22:01:02 *** test has joined #pocoo 2006-03-11T22:01:11 mhm 2006-03-11T22:01:21 wow 2006-03-11T22:01:23 das ist buggy ^^ 2006-03-11T22:01:28 nettes interface 2006-03-11T22:01:50 aber 5 chanservs 2006-03-11T22:02:03 *** gbrandl has quit IRC 2006-03-11T22:02:04 *** gbrandl has joined #pocoo 2006-03-11T22:02:13 lol 6 2006-03-11T22:02:18 ^^ 2006-03-11T22:02:22 *** gbrandl has quit IRC 2006-03-11T22:02:23 naja 2006-03-11T22:02:34 scrollt der nach erreichen der unteren endes nach oben? 2006-03-11T22:02:39 jep 2006-03-11T22:02:44 guckst du in die url 2006-03-11T22:02:48 /whois dejot 2006-03-11T22:02:51 mhm 2006-03-11T22:02:53 er springt immer in die letzte zeile 2006-03-11T22:02:57 * blackbird geht 2006-03-11T22:02:58 der rest nicht 2006-03-11T22:03:00 ok 2006-03-11T22:03:06 war zu faul 2006-03-11T22:03:15 irc ist veradmmt kompliziert :) 2006-03-11T22:03:17 channel azswählen kann man auch nciht 2006-03-11T22:03:37 mitsuhiko: um mal wieder aufs thema zurückzukommen 2006-03-11T22:03:58 * blackbird fährt den webirc wieder runter 2006-03-11T22:04:15 *** test has quit IRC 2006-03-11T22:04:24 birkenfeld: ja? 2006-03-11T22:04:28 die filter haben ein problem 2006-03-11T22:04:52 nicht gut 2006-03-11T22:04:59 sie müssten ihr argument in unicode umwandeln aber dafür brauchen sie das charset 2006-03-11T22:05:04 sie müssten also ein context-argument bekommen 2006-03-11T22:05:30 hm 2006-03-11T22:05:47 mommentan bekommen sie ja nur die aufgelöste variable und die parameter 2006-03-11T22:06:03 ja 2006-03-11T22:06:58 birkenfeld: wo klebt denn das charset momentan drauf? 2006-03-11T22:07:06 im context oder am parser? 2006-03-11T22:07:41 mitsuhiko: es gibt das charset des template, das wird im Loader verwendet, und das des context, das muss für den context gelten 2006-03-11T22:09:07 birkenfeld: für wie viele filter spielt es eine rolle obs string oder unicode ist? 2006-03-11T22:09:45 naja, fast alle machen ja "if s is basestring: s = str(s)" und das geht nicht 2006-03-11T22:10:59 birkenfeld: eine idee hätt ich 2006-03-11T22:11:07 ja? 2006-03-11T22:11:09 man könnte das filterinterface komplexer machen 2006-03-11T22:11:16 dass der im grund so ausschaut: 2006-03-11T22:11:30 def myfilter(var, context, args): pass 2006-03-11T22:11:36 und dann dekoraten machen: 2006-03-11T22:11:39 @stringfilter 2006-03-11T22:11:42 def do_lower(s): 2006-03-11T22:11:46 reutrn s.lower() 2006-03-11T22:14:30 naja. wirklich ideal isses nicht wirklich 2006-03-11T22:15:05 ja, das wäre möglich 2006-03-11T22:15:06 sogar sehr elegant 2006-03-11T22:15:12 python 2.3 oder 2.4? 2006-03-11T22:15:21 birkenfeld: für jinja alte syntax 2006-03-11T22:15:32 weil da gibts einige python2.3 user 2006-03-11T22:16:14 für dekoratoren hätte es in python2.3 einen __future__ import geben müssen :) 2006-03-11T22:16:47 mitsuhiko: damals war von dekoratoren noch keine rede 2006-03-11T22:16:53 ich weiß 2006-03-11T22:17:00 mind the smiley :) 2006-03-11T22:18:03 also soll ich den deko jetzt einbauen? 2006-03-11T22:18:22 jep 2006-03-11T22:18:32 es sei denn dir fällt noch was besseres ein :) 2006-03-11T22:18:54 anders kann mans kaum machen 2006-03-11T22:19:15 gabs enumerate() in 2.3? 2006-03-11T22:20:08 ja 2006-03-11T22:20:53 jup 2006-03-11T22:21:01 birkenfeld: evtl gleich sowas: http://pocoo.pastebin.com/596863 2006-03-11T22:21:06 weil filter sollten eigentlich keine fehler werfen 2006-03-11T22:22:00 return False? 2006-03-11T22:22:38 argh, ney 2006-03-11T22:22:39 '' :-) 2006-03-11T22:22:49 oder errors='ignore'? 2006-03-11T22:23:13 birkenfeld: eher, für den fall, dass der filter intern kaputt ist 2006-03-11T22:23:17 wobei das php like ist :) 2006-03-11T22:23:31 also bei well-formed input sollte der filter keinen fehler werfen 2006-03-11T22:23:46 ansonsten ist der filter kaputt 2006-03-11T22:25:39 omg: http://www.bildblog.de/?p=1207 2006-03-11T22:26:18 ah, folge 2 2006-03-11T22:27:35 jup 2006-03-11T22:27:38 die ziehen das echt durch 2006-03-11T22:28:48 """if not s in [str, float]:""" 2006-03-11T22:29:59 birkenfeld: aus der kategorie, besoffen programmiert ^^ 2006-03-11T22:30:12 *g* 2006-03-11T22:39:38 puh 2006-03-11T22:39:44 das is eine ganz schöne plackerei 2006-03-11T22:39:59 glaub ich dir 2006-03-11T22:40:36 *** tux123 has quit IRC 2006-03-11T22:41:23 *** tux123 has joined #pocoo 2006-03-11T22:41:48 wb tux123 ^^ 2006-03-11T22:42:23 thx mitsuhiko 2006-03-11T22:43:18 sqlalchemy ist cool, da gibts einen transaction decorator 2006-03-11T23:12:43 STRIKE 2006-03-11T23:13:37 :) 2006-03-11T23:14:02 birkenfeld: entnervt? :) 2006-03-11T23:14:11 nein, es geht 2006-03-11T23:15:13 prepare for checkin 2006-03-11T23:15:58 done 2006-03-11T23:17:00 wow 2006-03-11T23:17:07 das nenn ich changeset 2006-03-11T23:17:48 jep 2006-03-11T23:18:09 kennst du eigentlich pychecker? 2006-03-11T23:18:21 ist das sowas wie pylint? 2006-03-11T23:18:35 könnte sein :) 2006-03-11T23:19:34 anscheined ja ^^ 2006-03-11T23:19:57 emerge pylint :) 2006-03-11T23:20:11 apt-get install pychecker ^^ 2006-03-11T23:20:47 http://scan.coverity.com/ 2006-03-11T23:21:54 da ist ein problem mit einer falschen variable das du dir anschauen solltest: tagparser.py:398 curmatch not defined 2006-03-11T23:22:54 birkenfeld: ich werd das mal an heiko weiterleiten, wenn der wieder mal on ist. in dem seinen parser kenn ihc mich nicht wirklich gut aus :) 2006-03-11T23:22:59 sehr komplex das ding :) 2006-03-11T23:23:10 mitsuhiko: ah, seiner :) 2006-03-11T23:23:21 jup. ich hatte vorher ein viel einfachers ding 2006-03-11T23:23:38 aber dann hat der was von endlichem automaten gesprochen und er hat den parser neugeschrieben 2006-03-11T23:23:56 mitsuhiko: diese begriffe werden mir auf ewig verschlossen bleiben 2006-03-11T23:24:11 guuuut :) 2006-03-11T23:24:19 als Physiker :) 2006-03-11T23:25:51 mitsuhiko: was is denn der unterschied zw. basics.txt und basics-dev.txt? 2006-03-11T23:26:26 birkenfeld: basics ist für den template designer und basics-dev für den auf der anwendungsseite 2006-03-11T23:26:36 ok 2006-03-11T23:28:33 birkenfeld: hast du zugriff auf die covertydaten? :) 2006-03-11T23:28:49 xorAxAx: nö, zu faul 2006-03-11T23:29:05 birkenfeld: besorg dir mal, dann schreib ich auch nen patch, wenn du mir nen hint schickst :) 2006-03-11T23:29:24 xorAxAx: frag doch MvL 2006-03-11T23:29:32 oder meld dich selber an 2006-03-11T23:29:36 ok 2006-03-11T23:29:48 naja, ich bin weder committer noch sonstwie bekannt 2006-03-11T23:30:12 xorAxAx: coverty? 2006-03-11T23:30:27 mitsuhiko: s. birkenfelds link 2006-03-11T23:30:41 und, wollt ihr auch alle gründungsmitglied sein beim pythonverein? :) 2006-03-11T23:30:57 xorAxAx: wo muss ich da hin fahren? 2006-03-11T23:31:10 birkenfeld: zur orgamailingliste, mit einem MUA :) 2006-03-11T23:31:15 die bald eingerichtet wird 2006-03-11T23:31:25 d.h. es ist noch nichts konkret 2006-03-11T23:31:30 birkenfeld: gar nicht 2006-03-11T23:31:32 xorAxAx: jens macht sicher mit :) 2006-03-11T23:31:35 aber da wird das geklärt 2006-03-11T23:31:45 * mitsuhiko hat genug von vereinen ^^ 2006-03-11T23:31:46 bzw. soll es schonmal angeblich ein verein so gemacht haben 2006-03-11T23:31:54 xorAxAx: online geht nicht 2006-03-11T23:31:56 aber vor ort ist sinnvoller 2006-03-11T23:32:00 xorAxAx: ich hab erst eine vereinsgründung hinter mir 2006-03-11T23:32:02 du brauchst 2+5 leute für ein offline treffen 2006-03-11T23:32:17 wie gesagt, irgendein amtsgericht hat das anerkannt 2006-03-11T23:32:23 xorAxAx: also in deutschland gehts nicht. wir haben es mit ubuntu versucht 2006-03-11T23:32:25 aber ich würde es nicht versuchen 2006-03-11T23:32:30 das kann kein bayrisches gewesen sein :) 2006-03-11T23:32:33 mitsuhiko: das ist regional unterschiedlich 2006-03-11T23:32:36 war schonmal ein problem die mitgliederversammlungen über IRC zu machen :) 2006-03-11T23:32:39 xorAxAx: nürnberg 2006-03-11T23:32:41 ich bin auch momentan in einer anderen vereinsgründung 2006-03-11T23:32:53 xorAxAx: mir sind firmengründungen eh viel lieber :) 2006-03-11T23:32:57 da wurde eine satzung mit viel tamtam abgelehnt, die ein anderer ähnlicher verein hat 2006-03-11T23:33:04 birkenfeld: ahja? :) 2006-03-11T23:33:53 scan coverty den ganzen code? 2006-03-11T23:34:05 mitsuhiko: ich denke schon 2006-03-11T23:34:20 birkenfeld: weil die LOC da sind irgendwie komisch 2006-03-11T23:34:31 kann mir nicht vorstellen, dass Gaim mehr code hat als firefox 2006-03-11T23:34:42 gaim hat auf jeden fall mehr b0rken code :) 2006-03-11T23:34:48 und firefox ohne gecko scannen wäre sinnlos 2006-03-11T23:35:41 xorAxAx: gajim dafür nicht :) 2006-03-11T23:36:20 was ist das? 2006-03-11T23:36:54 hm, inzwischen komme ich auf 361000 LOC 2006-03-11T23:38:26 xorAxAx: ein jabber client in python 2006-03-11T23:38:33 ah 2006-03-11T23:38:57 aber hey, wir sind vierte :) 2006-03-11T23:39:23 4.-b0rked? 2006-03-11T23:39:36 wie kommt es, dass php doppelt so viele zeilen code wie python hat? 2006-03-11T23:40:31 xorAxAx: 4. nicht b0rked 2006-03-11T23:40:41 mitsuhiko: mehr in c, nix in php 2006-03-11T23:40:46 mitsuhiko: ui 2006-03-11T23:43:04 ist es eigentlich zu viel magie, wenn ich zu models automatisch einen mapper im namespace ableg? 2006-03-11T23:43:20 also zu class UserAddress(Model) automatisch ein user_addresses mapper ding? 2006-03-11T23:43:47 mitsuhiko: wie kommst du von UserAddress auf user_addresses? 2006-03-11T23:44:15 birkenfeld: mit einer funktion get_mapper_name(n) 2006-03-11T23:44:26 die versucht das zu pluralisieren 2006-03-11T23:44:35 und das camelcase zu entfernen 2006-03-11T23:44:50 mitsuhiko: Address -> Addresses? zu viel magie 2006-03-11T23:45:07 birkenfeld: ok. dann user_addresses = generate_mapper(UserAddress)? 2006-03-11T23:45:29 besser. oder einfach UserAddress.mapper? 2006-03-11T23:46:14 UserAddress.mapper.get_by(username="blub") vs user_addresses.get_by(username="blub") 2006-03-11T23:46:22 1 import vs 2 imports 2006-03-11T23:46:26 tja 2006-03-11T23:46:27 tja 2006-03-11T23:46:30 ^^ 2006-03-11T23:48:03 wie macht man aufzählungen in ReST? 2006-03-11T23:48:47 - blub 2006-03-11T23:48:49 - lub 2006-03-11T23:48:50 - blub 2006-03-11T23:48:52 oka 2006-03-11T23:49:00 davor und danach eine zeile leer lassen 2006-03-11T23:49:15 und wenns zu lang wird "- test\n blub\n blub"