2006-03-25T10:37:41 *** birkenfeld has joined #pocoo 2006-03-25T10:39:12 moin birkenfeld 2006-03-25T10:39:43 moin 2006-03-25T10:45:07 birkenfeld: was ist pocoo.pkg.pages.core? 2006-03-25T10:45:23 mitsuhiko: momentan nur die IndexPage 2006-03-25T10:45:39 evtl. kann man das später in pocoo.pkg.core verschieben, dann hat man nur eine bltin package 2006-03-25T10:45:57 jup, weil pocoo.pkg.core ist momentan relativ leer (leeres init file) 2006-03-25T10:46:15 hm? 2006-03-25T10:46:25 ich hab jetzt nämlich pocoo.pkg.tests für interaktive tests angelegt, die man nicht mit unittests überprüfen kann/will 2006-03-25T10:46:49 du meinst pocoo.pkg.pages? 2006-03-25T10:46:51 birkenfeld: argh. nicht pocoo.pkg.core sondern pocoo.pkg.pages 2006-03-25T10:51:29 so, verschoben 2006-03-25T10:53:18 birkenfeld: wie findet der momentan die builtin pages? 2006-03-25T10:53:48 mitsuhiko: ich hab BUILTIN_PACKAGES rausgenommen, weil die alle in pocoo.pkg.core liegen sollten 2006-03-25T10:53:57 die tests sollen ja nicht immer geladen werden 2006-03-25T10:54:01 stimmt 2006-03-25T10:54:16 dann lad ich die, wenn debug true ist 2006-03-25T10:54:30 du brauchst noch ein __init__.py 2006-03-25T10:54:43 birkenfeld: wo? 2006-03-25T10:54:51 in tests/ 2006-03-25T10:55:05 argh. svn add vergessen 2006-03-25T10:55:16 ah, wunder mich schon wo ITestProvider herkommt ;) 2006-03-25T10:55:27 so. jetzt issts oben :) 2006-03-25T10:57:53 ich frag mich immer noch warum am anfang alles zweimal geladen wird 2006-03-25T10:58:13 jup. ich auch. ich bin noch am forschen :) 2006-03-25T10:59:37 du hattest doch gesagt, es liegt nicht am reloader= 2006-03-25T11:00:13 ich habs hier nochmal getestet 2006-03-25T11:00:16 wenn der aus ist gehts 2006-03-25T11:00:20 aber damals nicht? hm 2006-03-25T11:00:22 bei mir auch gerade 2006-03-25T11:01:46 ich werd mir den reloader nochmal genauer ansehen 2006-03-25T11:04:21 ach ja, ist klar 2006-03-25T11:04:38 erst wird pocoo importiert, dabei alles geladen 2006-03-25T11:04:52 dann der reloader gestartet, der den prozess nochmal startet 2006-03-25T11:05:39 argh. stimmt 2006-03-25T11:06:12 ich teste mal was 2006-03-25T11:33:21 mitsuhiko: einverstanden damit, dass der reloader jetzt via "manage.py runserver --no-reloader" abgeschaltet wird? 2006-03-25T11:33:42 ok :) 2006-03-25T11:33:50 keine einwende meinerseits 2006-03-25T11:40:22 ok 2006-03-25T11:56:53 mitsuhiko: ist eigentlich pocoo.utils.cli auf dem neuesten stand? 2006-03-25T11:57:18 birkenfeld: jep 2006-03-25T11:57:32 weil geht bei mir nicht -.- 2006-03-25T11:57:39 birkenfeld: welcher fehler? 2006-03-25T11:58:17 Request object has no attribute "write" 2006-03-25T11:59:18 hm. also eine write methode gibts ja seit der trennugn von request/response nicht mehr 2006-03-25T11:59:26 ich pass da mal den docstring an 2006-03-25T11:59:36 ohne write gehts aber auch nicht 2006-03-25T11:59:56 ich überarbeite das mal 2006-03-25T12:11:51 done 2006-03-25T12:22:51 exec_request gibts aber nicht mehr... 2006-03-25T12:23:08 birkenfeld: das heißt jetzt execure_response 2006-03-25T12:23:16 weil am request objekt klebt ja jetzt nix mehr drauf 2006-03-25T12:23:38 mitsuhiko: aber in create_request wird das noch zugewiesen 2006-03-25T12:23:58 oh. das hab ich übersehen. weg damit 2006-03-25T12:24:18 und weg isses 2006-03-25T12:40:29 hui 2006-03-25T12:40:35 * mitsuhiko hat sich gerade phpbb3 installiert 2006-03-25T12:40:40 und? 2006-03-25T12:40:50 noja. der code ist nach wie vor unbenuztbar 2006-03-25T12:40:55 hehe 2006-03-25T12:40:58 neue features? 2006-03-25T12:41:10 subforen und jabber benachrichtigungen 2006-03-25T12:41:15 und so einen bot support 2006-03-25T12:41:22 was das ist schau ich gerade 2006-03-25T12:41:40 editbots? 2006-03-25T12:41:52 ney. er erkennt jetzt suchbots 2006-03-25T12:42:06 ich glaub die bekommen irgendwie andere seiten als normale user 2006-03-25T12:42:36 jup. man kann den bots eigene themes und sprachen spendieren. 2006-03-25T12:42:53 ahso 2006-03-25T12:43:26 aber das admin interface ist wirklich gut geworden. sehr aufgeräumt 2006-03-25T12:43:55 viel arbeit? 2006-03-25T12:44:19 phpbb3 hat momentan 90.000 zeilen programmcode. das ist verhältnismäßig wenig 2006-03-25T12:44:34 aber das admin interface afaik 30% davon 2006-03-25T12:44:52 * mitsuhiko wird einfach mal mit den GNOME leuten reden, die haben ahnung von usability *scnr* :) 2006-03-25T12:45:19 aber mein plan fürs admin interface ist ja gar kein admin interface :) 2006-03-25T12:45:49 wäre viel cooler, wenn man einfach auf das element doppelklickt und "inline" bearbeitet 2006-03-25T12:46:05 beispielsweise doppelklick auf den forentitel, es erscheint eine textbox, man gibt text ein und drückt enter 2006-03-25T12:48:27 hm. browser? 2006-03-25T12:49:00 das dynamische für alle ajax browser (ie4.0 oder höher) und dann noch ein CLI tool für ernsthafte server admins :) 2006-03-25T12:49:24 und alle anderen beißen ins gras? 2006-03-25T12:50:03 hm 2006-03-25T12:50:28 man müsste irgendwie eine abstraktionsschicht machen, dass er immer eine ajax und eine statische lösung herbeizaubert 2006-03-25T12:55:32 aber unübersichtlich ist es das phpBB3. (nicht das admin panel) 2006-03-25T12:55:35 wirkt viel zu überladen 2006-03-25T12:56:39 ich glaub das mit dem admin panel lassen wir mal bis die grundfunktionen da sind 2006-03-25T12:56:57 ja 2006-03-25T13:21:22 *** jedie has joined #pocoo 2006-03-25T13:23:10 moin jedie 2006-03-25T13:23:12 lange nicht gesehen 2006-03-25T13:24:45 jup 2006-03-25T13:24:47 arbeit 2006-03-25T13:49:21 uff 2006-03-25T13:54:43 mitsuhiko: kde und usability *tss* 2006-03-25T13:56:15 xorAxAx: hast du den post von linus nicht gelesen? :-) 2006-03-25T13:56:26 mitsuhiko: ach den 2006-03-25T13:56:35 er war gegen gnome oder? 2006-03-25T13:56:42 jup 2006-03-25T13:56:52 er hat die gnome entwickler als "interface nazis" hingestellt 2006-03-25T13:56:57 das war zu viel des guten :) 2006-03-25T13:57:19 wann kommt ubuntu/freebsd? 2006-03-25T13:57:22 hey, das ist doch schon ein paar Wochen her... gibt's was neues? 2006-03-25T13:57:45 jedie: ney, es war nur gerade vorher eine diskussion über das pocoo admin panel 2006-03-25T13:57:50 * mitsuhiko wird einfach mal mit den GNOME leuten reden, die haben ahnung von usability *scnr* :) 2006-03-25T13:58:01 ich glaub um das gings gerade 2006-03-25T15:30:21 *** jedie is now known as jedie|afk 2006-03-25T15:39:22 * birkenfeld sucht mal wieder ne aufgabe 2006-03-25T15:39:46 birkenfeld: ich glaub da gibts noch genug :) 2006-03-25T15:39:55 * mitsuhiko wollte jetzt mal mit dem user objekt anfangen 2006-03-25T15:40:12 wenn das existiert kann man anfangen da settings anzulegen 2006-03-25T15:40:22 mitsuhiko: pocoo.pkg.core.user 2006-03-25T15:40:24 dann sollte gettext und die templates funktionieren 2006-03-25T15:40:36 schon fertig? uff 2006-03-25T15:40:43 fertig nicht unbedingt 2006-03-25T15:41:31 argh. das ist ja wirklich schon da :) 2006-03-25T15:41:34 * xorAxAx hört gerade till kampeter zu 2006-03-25T15:41:41 xorAxAx: wer ist das? 2006-03-25T15:43:13 birkenfeld: hast du eine idee, wie die Packages templates bereitstellen? 2006-03-25T15:43:17 +können 2006-03-25T15:43:18 mitsuhiko: druck,scan guru von mandriva,paris 2006-03-25T15:57:42 * mitsuhiko ist jetzt mal weg 2006-03-25T18:23:21 re 2006-03-25T18:32:30 birkenfeld: ping :) 2006-03-25T18:41:34 mitsuhiko: p*ng 2006-03-25T18:41:43 perfekt 2006-03-25T18:41:57 req.user ist ja momentan ein UserObj 2006-03-25T18:42:07 ja 2006-03-25T18:42:25 würde es nicht mehr sinn machen da einfach UserObj von User abzuleiten und zusätzlich einfach noch ein identified attribut zu setzen? 2006-03-25T18:42:32 so hätte man direkt zugriff auf den user 2006-03-25T18:43:02 der anonyme würde dann einfach die defaults aus der board config laden 2006-03-25T18:43:11 mitsuhiko: hab ich mir auch überlegt. man müsste aber dann sicherstellen dass das objekt nicht zufällig geändert wird 2006-03-25T18:43:35 jep 2006-03-25T18:44:00 aber es wäre sicher eine idee schneller 2006-03-25T18:46:18 der großteil der plugins muss nämlich immer auf user settings zugreifen und da wäre ein req.user.settings['template'] sehr praktisch :) 2006-03-25T18:46:51 ja, warum nicht 2006-03-25T18:47:01 wie willst du die settings speicehrn? 2006-03-25T18:47:28 man könnte natürlich für jedes ein feld in der db machen, oder einfach ein gepickeltes dict 2006-03-25T18:48:35 mitsuhiko: letzteres ist vielleicht besser, wegen erweiterbarkeit 2006-03-25T18:48:48 * mitsuhiko ist mal schnell essen 2006-03-25T18:48:55 wenn man nicht danach selecten muss 2006-03-25T18:49:04 birkenfeld: man müsste irgendwie noch die board defaults aus der config noch nachladen 2006-03-25T18:49:08 da überleg ich mir noch was 2006-03-25T18:50:41 okay 2006-03-25T18:59:34 *** jedie|afk has quit IRC 2006-03-25T19:02:36 re 2006-03-25T19:02:46 das nenn ich mal schnelles essen :) 2006-03-25T19:04:54 *** tabellar has joined #pocoo 2006-03-25T19:04:56 mal ein allgemeines problem 2006-03-25T19:05:41 wenn wir die ganzen configs in der pocoo.conf ablegen sind die zwar sehr schnell erreichbar, aber eine veränderung der daten braucht einen neustart der anwendung, da viele componenten die config values direkt in der __init__ auslesen 2006-03-25T19:05:45 moin tabellar 2006-03-25T19:05:57 servus ... 2006-03-25T19:09:41 wie wär's mit einer zentralen (Admin) reload() Function der componenten. Jede Componente ladet beim entsprechenden Trigger seine INIT Daten nach ... 2006-03-25T19:10:32 for comp in components: ... comp.reload() ... oder so ähnlich... 2006-03-25T19:10:58 sowas wäre denkbar 2006-03-25T19:14:24 WayToJavascript ist gut geworden :) 2006-03-25T19:14:56 tjo. aber javascript nervt immer noch :) 2006-03-25T19:29:01 argh 2006-03-25T19:29:13 da will wieder mal jemand Teile von pocoo unter der MIT lizenz 2006-03-25T19:29:14 ? 2006-03-25T19:50:33 * mitsuhiko ist mal mit der Familie karten spielen 2006-03-25T21:10:20 re 2006-03-25T21:10:34 wb birkenfeld 2006-03-25T21:10:50 birkenfeld: http://tryruby.hobix.com/ <-- sowas brauchen wir für python :) 2006-03-25T21:12:02 mitsuhiko: ich leite das mal weiter 2006-03-25T21:13:33 argh. immer diese scheiß lizenzfragen :-/ 2006-03-25T21:13:43 wieso? 2006-03-25T21:14:11 birkenfeld: weil ich gerade eine kontra GPL diskussion in #pythonpaste hatte/habe 2006-03-25T21:14:24 Windle will den pocoo db layer gerne MIT haben 2006-03-25T21:14:37 hehe 2006-03-25T21:16:47 *** mitsuhiko changes topic to "pocoo Developement Channel / Entwicklungskanal | http://trac.pocoo.org/ | wer Deutsch spricht, spricht Deutsch / try to avoid german words" 2006-03-25T21:16:50 ^^ 2006-03-25T21:17:07 mitsuhiko: Development 2006-03-25T21:17:24 argh. nicht schon wieder 2006-03-25T21:17:28 *** mitsuhiko changes topic to "pocoo Development Channel / Entwicklungskanal | http://trac.pocoo.org/ | wer Deutsch spricht, spricht Deutsch / try to avoid german words" 2006-03-25T21:23:39 *** Windle_ has joined #pocoo 2006-03-25T21:23:45 moin Windle_ 2006-03-25T21:23:52 hey there :) 2006-03-25T21:24:02 figured it'd make more sense to keep pocoo related questions here :) 2006-03-25T21:24:15 hehe 2006-03-25T21:24:16 hi Windle_ 2006-03-25T21:24:54 was looking over the db layer, I'm just wondering why the choice was made to go with a table dict, rather than just declaring in the class, stuff like: threads = many(backref='forum') 2006-03-25T21:25:03 and having the metaclass pull it together 2006-03-25T21:25:33 hi there birkenfeld 2006-03-25T21:25:37 hm 2006-03-25T21:25:44 truely i don't know :) 2006-03-25T21:26:23 a lot of the info in the table and column stuff could be defaulted, and then just let you override if necessary 2006-03-25T21:27:07 Windle_: I didn't want to add too much magic, and I wanted to stay close at SQLAlchemy 2006-03-25T21:27:54 but it's worth thinking about it 2006-03-25T21:29:10 well, having a more comprehensive metaclass would definitely require more objects to assemble them 2006-03-25T21:29:20 so it'd prolly be quite a bit more work than the current solution 2006-03-25T21:30:53 --> http://trac.pocoo.org/wiki/DatabaseApi 2006-03-25T21:31:07 SQLAlchemy attaches to an in-memory SQLite database as follows: e = create_engine('sqlite://filename=:memory:') 2006-03-25T21:31:10 zzzeek 2006-03-25T21:31:22 what does this mean? 2006-03-25T21:31:26 that's from "anonymous", not me 2006-03-25T21:31:32 hm 2006-03-25T21:31:36 I wondered myself 2006-03-25T21:32:10 hm. because it works quite well the way were using it ^^ 2006-03-25T21:32:32 mitsuhiko: I know you liked the declarative style of Django, which had me wondering if anyone else would be interested in working on a metaclass which uses similar syntax for SA 2006-03-25T21:32:58 Windle_: there is the ActiveMapper... 2006-03-25T21:33:02 this seems like a good first step, though obviously going farther would make the definition look quite different from the object you actually get in return 2006-03-25T21:33:18 yea, I definitely understand the desire to stay truer to SA 2006-03-25T21:33:43 this seems like a good compromise on making it easier to declare your Model all in one place, while still keeping close to SA 2006-03-25T21:35:01 oh, regarding the rss feed stuff in Pocoo 2006-03-25T21:35:30 that stuff is in WebHelpers (copied from Django) 2006-03-25T21:35:42 birkenfeld: argh. HttpResponse doesn't get the charset from the application. how should we pass that to the __call__ method? 2006-03-25T21:36:00 the only object knowing anything about the charset is the request object currently 2006-03-25T21:36:19 mitsuhiko: HttpResponse? 2006-03-25T21:36:36 --> http://trac.pocoo.org/browser/colubrid/trunk/colubrid/response.py 2006-03-25T21:37:09 Did you see my changes to it for the paste WSGIResponse? 2006-03-25T21:37:34 Windle_: jup. i've noticed that you're doing quite the same :) 2006-03-25T21:37:49 both look like django :) 2006-03-25T21:37:59 yup :) 2006-03-25T21:38:59 I use a StackedObjectProxy module global to retain encoding information though 2006-03-25T21:39:02 for charset and such 2006-03-25T21:39:44 i'm not that happy with global objects 2006-03-25T21:40:16 that would mean that you can't run two applications the same time within the same python instance 2006-03-25T21:40:28 you can with StackedObjectProxy's :) 2006-03-25T21:40:43 and its fully WSGI safe for multiple instances of the same app in the same thread 2006-03-25T21:41:04 Windle_: and if you have two applications? 2006-03-25T21:41:10 no prob 2006-03-25T21:41:22 its built for that 2006-03-25T21:41:54 hm 2006-03-25T21:45:27 http://svn.webwareforpython.org/Paste/trunk/paste/registry.py 2006-03-25T21:51:47 that would be one solution 2006-03-25T21:52:06 its very conveinent usability wise 2006-03-25T21:52:24 since you can just use module globals and when the app is running, they'll be correct 2006-03-25T21:52:25 jep. but i'm still no fan of those threading local context thingies :) 2006-03-25T21:52:41 exactly, thats why I was hoping to make it so ppl didn't need to worry about that 2006-03-25T21:52:59 you feed the Registry a normal object, you never need to worry about thread-locals 2006-03-25T21:54:55 I'm using it heavily in the full wsgi update to Pylons, here's a better example of using it, http://pylonshq.com/project/pylonshq/browser/Pylons/branches/fullwsgi/pylons/wsgiapp.py 2006-03-25T21:55:32 line 58 and below, where I create the request object, register it and some others. then the user can just use "request" without worrying about it. the usability is very nice 2006-03-25T21:55:50 it also helps for registering charsets and such, so that the Response object can use the proper charset encoding 2006-03-25T21:56:36 i will think about that 2006-03-25T22:01:06 in that same batch of code, line 51-56 will transform WSGIResponse objects, not sure if that'd help in Colobrid, I'd assume you're doing something similar already 2006-03-25T22:01:45 and line 61 registers the default charset encoding 2006-03-25T22:02:45 as far as I can tell, you have to have some module globals somewhere, just for usability 2006-03-25T22:02:59 Django has its django.settings stuff or whatever that it pulls for the charset 2006-03-25T22:04:22 yeah. in pocoo we have them too 2006-03-25T22:04:27 pocoo.settings.conf 2006-03-25T22:04:36 is that object request-safe? 2006-03-25T22:04:49 Windle_: no. since it don't have to be 2006-03-25T22:04:52 ie, if you run a pocoo wsgi app underneat a pocoo wsgi app, will pocoo.settings.conf use a stack? 2006-03-25T22:05:16 currently pocoo requires an own python instance per pocoo instance 2006-03-25T22:05:27 ahh, thats not very wsgi-friendly ;) 2006-03-25T22:05:30 i know 2006-03-25T22:06:07 and thats not ideal 2006-03-25T22:06:15 but no idea so far for fixing that :) 2006-03-25T22:06:28 well, Registry would fix it ;) 2006-03-25T22:06:34 for the module globals at least 2006-03-25T22:06:47 but not for the component system 2006-03-25T22:06:53 is there anything else thats not safe per instance? 2006-03-25T22:07:06 jup. the whole component system 2006-03-25T22:08:00 that's the main problem 2006-03-25T22:08:07 it would be possible to fix 2006-03-25T22:08:14 but this would make the application much slower 2006-03-25T22:08:42 what would? 2006-03-25T22:09:36 Windle_: putting components into thread local "dont-know-how-to-call-them" 2006-03-25T22:10:02 ah, what kind of components are we talking about? 2006-03-25T22:10:23 the StackedObjectProxy just proxies in, its fast enough that I doubt it'd be a bottleneck in a program using it heavily 2006-03-25T22:10:59 Windle_: http://trac.pocoo.org/browser/pocoo/trunk/pocoo/pkg/tests/json.py 2006-03-25T22:11:01 components like those 2006-03-25T22:11:16 .oO(although it's just a test page currently) 2006-03-25T22:12:01 that would be hard to make non instance related :( 2006-03-25T22:12:03 I don't see anything in there thats not instance-safe 2006-03-25T22:12:05 why? 2006-03-25T22:12:37 Windle_: for performance reasons classes inheriting from pocoo.api.Component get instanced directly after creation 2006-03-25T22:13:02 hmm 2006-03-25T22:13:27 well, if the Pocoo wsgi app creates the Components, it can hold references to them, and register them with the Registry during execution 2006-03-25T22:13:48 would that work? 2006-03-25T22:13:53 Windle_: pocoo currently holds references to them in pocoo.api.ComponentRegistry 2006-03-25T22:14:01 but not per thread 2006-03-25T22:14:06 what kind of object is that? 2006-03-25T22:14:13 Windle_: it's a metaclass 2006-03-25T22:14:51 so why not have the wsgi app itself hold the references? 2006-03-25T22:15:01 this won't be a problem 2006-03-25T22:15:10 that would make them instance safe 2006-03-25T22:15:18 but since components can depend from each other i have to import them 2006-03-25T22:15:36 for example the @remotecall decorator requires the RemoteCall component 2006-03-25T22:16:00 and since those components arn't thread safe as such this works :) 2006-03-25T22:16:16 they only get passed the request object when they want to interact with a user request 2006-03-25T22:16:56 well, if you register the same object on every call, its as if they were global, even though they're instance-safe 2006-03-25T22:17:35 for example, in Pylons, there's a 'g' object, anything attached is 'global'. That is, its available in all threads 2006-03-25T22:17:49 i know the pylons structure :) 2006-03-25T22:18:17 right, so in that file, line 37, and line 64. it retains a reference to the globals, while making the same object available everywhere 2006-03-25T22:18:30 its like your globals, but instance-safe. wouldn't that work with the Component stuff? 2006-03-25T22:19:01 for example you want to run two pocoo instances in the same python instance (one on /p1 and one on /p2) 2006-03-25T22:19:10 right 2006-03-25T22:19:22 pocoo would have to create all components twice (no problem) 2006-03-25T22:19:42 and safe them in one componenty registry (no problem) 2006-03-25T22:19:43 but :) 2006-03-25T22:19:50 why one component registry? 2006-03-25T22:19:57 why can't each instance have its own component registry? 2006-03-25T22:19:59 Windle_: that's because of the Interface system 2006-03-25T22:20:03 a 2006-03-25T22:20:04 no 2006-03-25T22:20:10 that would be possible 2006-03-25T22:20:11 but 2006-03-25T22:20:13 not faster :) 2006-03-25T22:20:21 faster than what? 2006-03-25T22:20:28 since each access to a component would result in a bunch of getattr redirects 2006-03-25T22:20:42 just a single one 2006-03-25T22:20:58 the StackedObjectProxy holds the real object, so its just a single getattr redirect 2006-03-25T22:21:05 hm 2006-03-25T22:21:22 birkenfeld: ping :) 2006-03-25T22:21:37 mitsuhiko: pong? 2006-03-25T22:22:04 birkenfeld: current discussion is about the problem with one python instance per pocoo instance 2006-03-25T22:22:10 you mentioned that some days before 2006-03-25T22:22:15 yep 2006-03-25T22:22:37 Windle_ worked one a magic object called StackedObjectProxy with might solve that problem 2006-03-25T22:23:03 do you think that will work? 2006-03-25T22:23:18 the Pylons fullwsgi branch is using it quite nicely if you want an actual working example 2006-03-25T22:24:09 ie, here's all the module "globals": http://pylonshq.com/project/pylonshq/browser/Pylons/branches/fullwsgi/pylons/__init__.py 2006-03-25T22:24:24 and the other file I mentioned earlier registers them all during the WSGI call 2006-03-25T22:25:00 multithreaded applications are quite complex :) 2006-03-25T22:25:09 Windle_: so the StackedObjectProxy dispatches access to the current app's objects? 2006-03-25T22:25:12 wsgi is worse than just multi-threaded 2006-03-25T22:25:27 since within a single thread, its possible you could have two differently configured instances of the same WSGI app 2006-03-25T22:25:58 birkenfeld: right, it internally uses a thread-local list, and proxies access to the current app's object 2006-03-25T22:26:16 birkenfeld: that way you don't need to worry about thread-safe stuff at all, just register a object, and its handled 2006-03-25T22:26:32 I wonder about performance though 2006-03-25T22:26:40 * mitsuhiko too :( 2006-03-25T22:26:42 its only a single additional getattr call 2006-03-25T22:26:58 Windle_: and a call for the currentThread 2006-03-25T22:27:15 yea, but the thread local is implemented in C if you're using Python 2.4 2006-03-25T22:27:57 if a single additional getattr call plus a thread-local is a performance bottleneck in your application, I'd be extremely impressed ;) 2006-03-25T22:28:06 bbiab, heading out for the day 2006-03-25T22:28:24 Windle_: thanks 2006-03-25T22:32:35 .oO(Da steh ich nun ich armer Thor und bin so klug als wie zuvor...) 2006-03-25T22:49:06 mitsuhiko: tja 2006-03-25T22:49:33 irgendwie wärs mir lieber wsgi würde wie FastCGI funktionieren 2006-03-25T22:49:42 dann wäre das mit den mehreren instanzen nicht das problem 2006-03-25T22:51:13 ich hasse solche __getattr__ dinger 2006-03-25T22:51:18 ich auch 2006-03-25T22:51:25 sie zerstören dir() 2006-03-25T22:51:37 und langsam sind sie auch nocht 2006-03-25T22:51:38 -t 2006-03-25T22:51:47 genau 2006-03-25T22:51:49 -.- 2006-03-25T23:36:35 mitsuhiko: weißt du wie man einen apachen in ein chroot sperrt? 2006-03-25T23:37:07 hm 2006-03-25T23:37:27 auf welchem system? 2006-03-25T23:37:55 auf meinem :) 2006-03-25T23:38:03 linux nehm ich an 2006-03-25T23:38:10 ja 2006-03-25T23:38:31 ich hab ehrlich gesagt noch nie einen apachen in einem chroot gehabt 2006-03-25T23:39:51 birkenfeld: http://wiki.sprayen.de/index.php/Apache_2_in_Chroot_Umgebung 2006-03-25T23:40:00 vielleicht hilft das 2006-03-25T23:40:27 hm 2006-03-25T23:40:36 muss es ein ganzer apache sein? 2006-03-25T23:40:46 mitsuhiko: es reicht ein Python CGI-Skript 2006-03-25T23:41:15 einen python webserver wie paster/BaseHTTPServer oder sowas kann man eignetlich direkt in einem chroot starten 2006-03-25T23:42:15 hm hm 2006-03-25T23:43:11 ich hab nämlich hier ein so ein interaktives Python nachgebaut 2006-03-25T23:43:28 cool 2006-03-25T23:43:39 :) 2006-03-25T23:44:00 birkenfeld: ich auch, aber erst den client teil :) 2006-03-25T23:44:31 mitsuhiko: mit hilfe von urwid geht das recht fix 2006-03-25T23:45:34 argh. auf sowas komm ich mal wieder nicht :) 2006-03-25T23:46:32 birkenfeld: ist das eine reine CGI anwendung? 2006-03-25T23:46:35 oder wsgi? 2006-03-25T23:46:44 mitsuhiko: nö, CGI 2006-03-25T23:46:57 und das geht einigermaßen schnell? 2006-03-25T23:47:31 das problem ist dass er jede taste einzeln sendet, das muss ich noch ändern 2006-03-25T23:47:54 birkenfeld: die ruby demo sendet die tastendrück erst bei enter 2006-03-25T23:48:00 eben 2006-03-25T23:48:21 ich portiers dir dann gerne auf WSGI :) 2006-03-25T23:48:42 birkenfeld: was hast du bei dir laufen? debian, suse, mandrake? 2006-03-25T23:48:50 gentoo 2006-03-25T23:49:10 birkenfeld: ich hab eigentlich geplant gehabt evalexception anzupassen und das frontend zu verbessern 2006-03-25T23:49:33 das ist auch sinnvoller 2006-03-25T23:49:57 nur das frontend in ein richtiges terminal zu verwandeln ist sau schwer 2006-03-25T23:53:36 birkenfeld: mir fällt gerade ein, das es kein chroot braucht 2006-03-25T23:53:48 man muss ja eigentlich nur das ganze mit SuExec als nobody laufen lassen 2006-03-25T23:54:29 mitsuhiko: lesen kannst du trotzdem 2006-03-25T23:54:57 hm