IRC Logs

2008 9
Mo Tu We Th Fr Sa So
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30          

09. 09 2008

[00:12:42] <Leonidas> what would you guys use for variable markers in TeX? {{ }} is obviously a bad idea
[00:13:23] <Leonidas> I need something that is unlikely to clash with tex-special characters
[00:15:24] <dennda> [-!"~'^^'~"!-]
[00:18:44] <mitsuhiko> Leonidas: someone used (( / )) for it
[00:19:10] <Leonidas> mitsuhiko: yeah, sounds reasonable.
[00:33:10] * lakin has quit IRC
[01:07:15] * Rogi has quit IRC
[01:07:39] * Rogi has joined #pocoo
[01:08:24] <prencher> Leonidas - ye olde <% %> ?
[01:09:04] <Leonidas> prencher: already using (( and )). It feels a little bit lispish which makes it cool
[01:09:32] <prencher> that makes it decidedly uncool ;)
[01:16:36] <Leonidas> now, once I set up my environment, porting starts going really fast.
[01:18:14] * Kaelten has quit IRC
[01:51:54] * leche has quit IRC
[01:57:45] * M3ntor5 has quit IRC
[02:01:06] * steg has joined #pocoo
[02:08:33] * izibi has quit IRC
[02:12:10] * delroth is now known as delroth`
[02:12:44] * delroth` is now known as delroth
[02:31:28] <Leonidas> that's cool, once I plugged the i18n extension in and connected it with my old translation system, I could get rid of *all* parsing that I needed in django.
[02:40:42] * Rogi has quit IRC
[03:22:16] * ebel has quit IRC
[03:26:41] * KirkMcDonald has quit IRC
[04:42:50] * ericholscher has joined #pocoo
[04:54:33] * davidcramer has joined #pocoo
[05:02:10] * bzed has quit IRC
[05:02:34] * pocoo` has joined #pocoo
[05:16:31] * KirkMcDonald has joined #pocoo
[05:24:41] * lakin has joined #pocoo
[06:24:25] * lakin has quit IRC
[06:51:19] * Rogi has joined #pocoo
[07:25:09] * Rogi_ has joined #pocoo
[07:33:35] * Rogi has quit IRC
[07:34:43] * Rogi_ has quit IRC
[08:03:31] * Rogi has joined #pocoo
[08:06:59] * Rogi has quit IRC
[08:55:40] * Tik-Tok has quit IRC
[10:01:49] <mitsuhiko> prencher: ping
[10:03:24] <plaes> mitsuhiko: do you have any plans to release new Werkzeug version?
[10:09:58] <mitsuhiko> plaes: after i adapted the debugger to prencher's liking :)
[10:10:31] <plaes> hum.. ok, but there are still some typos left, IIRC..
[10:10:59] <mitsuhiko> i'll pylint it :)
[10:11:08] <plaes> http://dev.pocoo.org/projects/werkzeug/ticket/331
[10:11:31] <mitsuhiko> ugh. missed that
[10:12:05] <plaes> also 336 should be simple
[10:12:18] <plaes> and 334
[10:12:27] <CIA-49> Werkzeug: empty default * 609:01d0dc9e095e /werkzeug/debug/templates/ (help_command.html traceback_full.html): Fixed typos on debugging page.
[10:13:34] <aa_> mitsuhiko: was chatting to a pylons user about switching to werkzeug for routing, now his use case is that he has some urls that are http and some that are https
[10:13:52] <aa_> mitsuhiko: he may have chatted to you on #pylons about it (steg)
[10:14:03] <CIA-49> Werkzeug: mitsuhiko default * 610:b24c3199c768 /docs/src/wrappers.txt: Added missing documentation for user agent mixin (fixes #334)
[10:14:24] <aa_> mitsuhiko: I was just wondering how to do that. Would you have a second map which binds always to https and one that binds always to http?
[10:15:07] <mitsuhiko> aa_: that's something which would need support in the routing system
[10:15:22] <mitsuhiko> maybe a secure=True parameter for rules
[10:15:24] <hads> Use an https decorator?
[10:15:39] <mitsuhiko> hads: so that the view redirects to https?
[10:15:47] <hads> Yeah
[10:15:54] <mitsuhiko> that has to be done additionally
[10:16:14] <aa_> yeah, decorator is not the solution
[10:16:18] <mitsuhiko> but it would be nice if the url was already generated to point to https
[10:16:31] <aa_> I think something="https" in the rule would be awesome
[10:17:00] <hads> Yeah, it would be nice. A decorator is an easy workaround though.
[10:17:03] <aa_> for the user api, setting it in the Rule would be nice I think
[10:17:17] <aa_> hads: how does the decorator handle reverse lookups
[10:17:23] <aa_> oh it just redirects, I see
[10:17:31] <aa_> sorry, dumb
[10:18:12] <CIA-49> Werkzeug: mitsuhiko default * 611:42593acc0740 /docs/src/test.txt: Adapted a broken snippped in test docs (fixes #336)
[10:18:13] <aa_> the rule should default to grab it from the wsgi env, but overridable
[10:20:45] <plaes> mitsuhiko: also, could you check 339 too..
[10:21:10] <plaes> in case you decide to apply that, there is a typo "byes"
[10:21:27] <mitsuhiko> plaes: i checked that patch already but i'm not sure what to do with it
[10:21:39] <mitsuhiko> i can't see how this is useful
[10:22:04] <plaes> ok ;)
[10:22:13] <plaes> 340 ?
[10:22:25] * asmodai waves
[10:24:02] <mitsuhiko> interesting
[10:24:06] <mitsuhiko> an http feature i didn't know about
[10:27:28] <mitsuhiko> plaes: do you know if that affects 204 (no content) too?
[10:28:40] <plaes> trying to figure it out :P
[10:29:25] <asmodai> mitsuhiko: which?
[10:29:36] <mitsuhiko> got it. entity-headers is the keyword
[10:29:40] <mitsuhiko> only disallowed by 304
[10:29:48] <mitsuhiko> asmodai: that 304 disallows entity headers
[10:35:56] <plaes> 204 says it may include
[10:37:24] <plaes> 304 must have Date header
[10:40:02] <plaes> ok.. running out of battery...
[11:23:25] <CIA-49> Werkzeug: mitsuhiko default * 612:dafbfd9af8a7 / (7 files in 3 dirs):
[11:23:25] <CIA-49> Werkzeug: This fixed #340 and related issues. There is now a function
[11:23:25] <CIA-49> Werkzeug: `remove_entity_headers` that removes all entity headers from a list of headers
[11:23:25] <CIA-49> Werkzeug: or a `Headers` object. With this change `Headers` also gets a more list like
[11:23:25] <CIA-49> Werkzeug: interface.
[11:24:48] <CIA-49> Werkzeug: mitsuhiko default * 613:23ec5a1412be /werkzeug/utils.py: Fixed a bug introduced in the last changeset.
[11:25:57] <CIA-49> Werkzeug: mitsuhiko default * 614:1324bfdd2645 /CHANGES: Added changelog entry
[12:12:19] <Leonidas> how would you guys replace an inclusion tag in jinja? What I'd need would be a function which returns a list of which the items can be used in a for loop.
[12:12:40] <Leonidas> Should I pass a function to the template context?
[12:13:02] <ronny> Leonidas: globals?
[12:14:23] <Leonidas> ronny: yeah, that would be one possibility.
[12:16:23] <Leonidas> the fun is that I cannot set the globals in the same file as Environment is defined, because I'd need to import my templatetags for that and these depend on the Django settings already loaded, but my environment is defined in the settings. Breakage :/
[12:17:12] <mitsuhiko> Leonidas: add an import function to the globals
[12:17:25] <mitsuhiko> (( for item in import('app.foo.bar') ))
[12:17:34] <mitsuhiko> (( endfor ))
[12:19:27] <Leonidas> mitsuhiko: what use would that have? I rather need something like demandimport to lazy-load the stuff.
[12:19:50] <mitsuhiko> Leonidas: that's it basically. it's imported in the template
[12:19:59] <mitsuhiko> when hopefully everything is loaded already
[13:08:01] <mitsuhiko> Hahahahah: http://ptrace.fefe.de/united-airlines-kurs.jpg
[13:08:04] <mitsuhiko> http://blog.wired.com/27bstroke6/2008/09/six-year-old-st.html
[13:08:49] <ronny> re
[14:02:42] * steg tickles ronny
[14:13:13] * plaes_ has joined #pocoo
[14:14:58] * plaes has quit IRC
[14:15:29] <Leonidas> hmm, I get an undefined error on a variable which I don't even use.
[14:15:50] <Leonidas> 'material' is undefined
[14:16:11] <Leonidas> {% trans case_material=watch.case.top.material.name %}TOP_CASE_MATERIAL_{{ case_material }}{% endtrans %}
[14:30:22] <Leonidas> I see. Jinja's undefined is stricter than Djangos Undefined.
[14:31:28] <mitsuhiko> Leonidas: you can change that if you want a more lenient error handling
[14:31:56] <Leonidas> mitsuhiko: by creating my own Undefined I guess?
[14:32:11] <mitsuhiko> yep
[14:33:11] <mitsuhiko> Leonidas: http://paste.pocoo.org/show/84836/
[14:33:25] <mitsuhiko> then foo.bar.baz won't raise errors if foo is already undefined
[14:33:34] <Leonidas> yeah, that's a good idea. Better than fixing this borked template, which is already beyong repairability
[14:33:54] * plaes_ is now known as plaes
[14:35:48] <Leonidas> I'l use that, thanks
[14:35:55] <Leonidas> *I'll
[14:36:51] <prencher> mitsuhiko - pong
[14:38:48] * leche has joined #pocoo
[14:42:41] * M3ntor5 has joined #pocoo
[14:56:28] <mitsuhiko> prencher: back. sorry
[14:56:39] <mitsuhiko> prencher: have you seen the latest changes to zine.forms?
[14:57:03] <steg> mitsuhiko: can i bug you about crumb-trails ? :P
[14:57:35] <mitsuhiko> crumb-trails?
[14:57:51] <steg> yeah, those things that say where a user is in the site structure
[14:58:11] <mitsuhiko> ah
[14:58:15] <steg> Home -> Browse Products -> Pens -> Product Foo
[14:58:18] <mitsuhiko> go ahead
[14:58:28] <steg> mitsuhiko: well, i simply can't seem to find a way to do them nicely
[14:58:56] <steg> as an example, Home -> User steg -> Shopping Lists
[14:59:21] <Leonidas> steg: these are called bread crumbs, usually.
[14:59:23] <steg> "User steg" comes from my users controller, "Shopping Lists" comes from my shopping lists controllers
[14:59:27] <steg> Leonidas: oh, ok
[14:59:44] <steg> i can't seem to find an elegant way of building them when they cross controllers like that
[15:00:21] <steg> the problem is, each segment needs to be dynamic, but each can be the responsibility of a different controller
[15:00:49] <mitsuhiko> Leonidas: breadcrums are history
[15:00:56] <mitsuhiko> eg. main page -> recent changes -> article foo etc.
[15:00:58] <steg> putting the tree-like structure into the controllers themselves is horrible
[15:01:06] <mitsuhiko> not root -> child -> child
[15:01:16] <steg> as the tree-like structure is meant to be something that only the routing has to worry about
[15:01:19] <mitsuhiko> steg: is that some sort of shop you are creating?
[15:01:20] <Leonidas> mitsuhiko: ah, you're right. My mistake.
[15:01:30] <steg> mitsuhiko: yes, but it's a general problem...
[15:01:39] <mitsuhiko> not really :)
[15:01:50] <mitsuhiko> it more depends on the data
[15:01:53] <steg> mitsuhiko: it is for me :P
[15:02:13] <steg> it's slightly further complicated by the fact i allow users to create static pages at pretty much any location :)
[15:02:15] <mitsuhiko> anyways. there is no nice solution for it ^^
[15:02:34] <steg> mitsuhiko: yeah, i just can't find one at all and i've thought about it lots
[15:03:18] <steg> i am considering doing something horrendous though
[15:03:29] <steg> and you will hate me if i tell you :P
[15:04:32] <steg> i will bite the bullet, however: I was thinking of splitting the path_info into its various segments
[15:05:14] <steg> then walking up it, matching /, /users, /users/42, /users/42/lists
[15:05:32] <steg> and calling a method on the controller i get back at each stage to get a title
[15:06:10] <steg> it's horrid, but at least it's isolated horribleness
[15:06:18] * Kaelten has joined #pocoo
[15:11:05] <asmodai> heya Kaelten
[15:12:12] <Kaelten> hey
[15:12:22] <steg> hi asmodai :)
[15:12:33] <asmodai> oh hey steg
[15:12:38] <steg> ltns, how are you doing?
[15:12:47] <Kaelten> hi :)
[15:12:49] <asmodai> tired at the moment, only slept 4 hours last night
[15:13:43] <steg> yikes
[15:14:14] <asmodai> simple relocation question, if you have a blah.py you normally imported from, but it now becomes part of a module, can you create a stub blah.py that does from module.blah import * and have it thus easily exported through the stub file (along with a deprecationwarning)?
[15:20:00] * CIA-49 has quit IRC
[15:33:04] <Leonidas> jinja doesn't have anything comparable with {% now "formatstring" %}, has it?
[15:33:10] <asmodai> Kaelten: you do maintaince wowace.com though, right?
[15:33:25] <Kaelten> hrm?
[15:33:28] <Kaelten> Leonidas: no
[15:34:01] <asmodai> Kaelten: http://www.wowace.com/forums/index.php?topic=6878.180 is that mini navigation bar on the left hand side pushed down for you as well with ff 3?
[15:34:05] <Leonidas> ok, should be fairly easy to add :)
[15:34:23] <Kaelten> asmodai: ya, but I'm prepping beta.wowace.com launch for a week or so from now
[15:34:59] <asmodai> oh ok
[15:35:05] <asmodai> solved the menus? :)
[15:35:27] <Kaelten> ya about 80 lines of optional javascript later they're pretty
[15:35:30] <Kaelten> even works in IE
[15:35:37] <asmodai> jeez :)
[15:36:03] <Kaelten> ya the css version is the degradable option
[15:37:12] * stifal has joined #pocoo
[15:39:30] * asmodai checks
[15:40:22] <asmodai> yeah, nice
[15:44:00] <aa_> steg: hi :)
[15:44:37] <asmodai> aa_: Who let him in? ;)
[15:44:53] <aa_> asmodai: I owed him, since he taught me how to code
[15:45:16] <steg> hi ali :)
[15:45:37] <steg> i am going to switch to werkzeug when i have a spare month
[15:48:32] <steg> such an annoyingly daunting task i think
[15:52:15] <mitsuhiko> Leonidas: why should it? :)
[15:52:24] <mitsuhiko> globals['datetime'] = datetime.datetime
[15:53:00] <mitsuhiko> but i recommend adding the babel date format functions into the template globals/filters
[15:53:20] <steg> if only i had better unit testing :P
[15:54:02] <Leonidas> mitsuhiko: I'm not using babel, because my translations are in the DB, managed by Django
[15:54:06] <prencher> mitsuhiko - no, haven't
[15:54:24] <Leonidas> hmm, I see. I'm still to focused on django-templates :)
[16:03:39] * CIA-49 has joined #pocoo
[16:44:25] * dennda hugs CIA-49
[16:44:27] * CIA-49 hugs dennda
[16:46:05] <TheSheep> O.o
[16:46:24] <TheSheep> bot-o-philia?
[16:46:28] * dennda hugs TheSheep
[16:46:41] * TheSheep shuns
[16:46:59] <dennda> TheSheep: You are a bad bot!
[16:47:26] <TheSheep> dennda: bad human! bad human! sit!
[16:47:29] <mitsuhiko> Leonidas: i would even use babel if my input data is the database
[16:47:44] <mitsuhiko> that's actually what we do for plurk :)
[16:51:52] <Leonidas> mitsuhiko: what advantages does it have?
[16:58:16] <mitsuhiko> Leonidas: too many :)
[16:59:50] * Leonidas adds Babel into the TODO list. Maybe migrate at a later point.
[17:02:39] <Leonidas> along with the other django translation solutions.
[17:03:59] <mitsuhiko> Leonidas: so i guess you also don't have message extraction do you?
[17:05:56] <Leonidas> I currently have more or less translatable message strings which are generated by the database data at access time. This is about what nesh.translation did and after I got rid of that, I implemented something quite similar.
[17:16:19] <mq> mitsuhiko: pong
[17:16:35] <mitsuhiko> mq: hoi :)
[17:17:03] <mitsuhiko> mq: i started getting rid of utils.xxx, wanna help?
[17:18:02] <mq> mitsuhiko: sure
[17:21:33] <dennda> mitsuhiko: Who hacked the users online support into ubuntu-eus munin? I'd like to have something similar for zine :-)
[17:22:27] <mitsuhiko> dennda: YOU DON'T WANT TO SEE THE SOURCE OF THAT SCRIPT
[17:22:35] <mitsuhiko> .oO( yann wrote it, i'm innocent )
[17:22:41] <mitsuhiko> and i haven't fixed it because it's so utter crap
[17:23:22] <dennda> X-)
[17:23:30] <dennda> mitsuhiko: http://i303.photobucket.com/albums/nn148/Sing_Melokia/Caps_Lock.jpg
[17:24:25] <mitsuhiko> dennda: it's a perl script... that loads the frontpage... completely... regular expression matches the counter... s/eins/1/ s/kein/0/ to int and that every five seconds
[17:24:28] <mitsuhiko> that's ridiculous
[17:25:00] <dennda> urhg
[17:25:30] <dennda> sounds painish
[17:26:14] <prencher> sounds perlish
[17:27:25] * stargaming has joined #pocoo
[17:27:32] <dennda> "perl" == "regexp programming"
[17:32:33] <CIA-49> Zine: mitsuhiko default * 493:d7e533e9554e /zine/ (22 files in 10 dirs): Updated validator module to support the form validation system, renamed experimental plugins to broken plugins and updated some forms and the way error reporting in forms works.
[17:53:11] <Kaelten> bad regex or perl, you decide!
[17:55:16] * Tik-Tok has joined #pocoo
[18:17:12] * [diecast] has joined #pocoo
[18:23:16] <Leonidas> what the heck is wrong with :%s/{% translate \(.*\) %}/{{ \1 }}/gc ?
[18:23:42] * Kaelten brains explode
[18:24:38] <Leonidas> just trying to replace {% translate "stuff" %} with {{ "stuff" }}. Vim-Regex work strange.
[18:25:50] <mq> Leonidas: works perfectly here
[18:26:37] <Leonidas> WTF? Damn, maybe my .vimrc broke stuff
[18:27:30] <mitsuhiko> Leonidas: \v by default?
[18:27:44] <mitsuhiko> or how that regexp filter is called
[18:30:28] <Leonidas> mitsuhiko: yeah, setting \m made it work. I definitely hate \m \M \v \V. This stuff is so horribly broken. Just give me proper regex.
[18:30:44] <mitsuhiko> Leonidas: will never happen
[18:30:51] <mitsuhiko> would break too much
[18:31:36] <Leonidas> mitsuhiko: I have heard about some future plans, where they considered adopting non-broken regexen
[18:40:03] * Rogi has joined #pocoo
[18:40:21] <dennda> mitsuhiko: http://dev.pocoo.org/projects/zine/wiki/NotificationSystem
[18:40:43] * dennda 'd like some input. especially on the "how" questions :-)
[18:41:00] <mitsuhiko> dennda: not good
[18:41:12] <dennda> mitsuhiko: -v
[18:41:18] <mitsuhiko> that would mean that the application has to know the systems
[18:41:27] <mitsuhiko> or new systems never get notifications
[18:41:35] <mitsuhiko> eg: someone writes an IRC notification system
[18:41:39] <mitsuhiko> nobody sends notifications for that one
[18:41:58] <dennda> hm indeed
[18:42:00] * dennda adjusts that
[18:42:16] <mitsuhiko> dennda: btw. send_notification becomes a standalone function like emit_event
[18:42:42] <dennda> "standalone" as in "not bound to an application object"?
[18:45:02] <dennda> wtf: WIKI_MODIFY privileges are required to perform this operation on NotificationSystem
[18:45:35] <dennda> nvm
[18:48:36] <dennda> mitsuhiko: F5. Still the how-questions apply
[18:49:48] <mitsuhiko> dennda: like this:
[18:50:08] <mitsuhiko> def send_notification(...):
[18:50:09] <mitsuhiko> app = get_application()
[18:50:09] <mitsuhiko> ...
[18:50:34] <apollo13> threadlocals ftw
[18:50:38] <apollo13> *runs*
[18:50:53] <mitsuhiko> it was a design descision
[18:50:56] <mitsuhiko> *decision
[18:51:45] <apollo13> yeah, and I actually don't see problems in using it, can't understand why some people are bashing it...
[18:51:59] <apollo13> of course it's just a kind of global variable
[18:52:15] <steg> aren't global variables called singletons these days?
[18:52:22] <apollo13> steg: we need borgs
[18:52:25] <apollo13>
[18:52:28] <steg> :)
[18:52:29] <apollo13> but yeah those too
[18:53:15] <apollo13> and Magus on the django irc insists on telling me that they aren't working in django (at least not the threadlocals cookbook example)
[18:53:19] <apollo13> bullshit though
[18:53:52] <dennda> mitsuhiko: jah. ok. no quick idea how to answer the how-questions sanely either?
[18:54:46] <mitsuhiko> apollo13: django leute reden viel wenn der tag lang ist...
[18:55:09] <apollo13> indeed, but magus knows what he is talking about
[18:55:18] <mitsuhiko> dennda: a database table
[18:55:21] <apollo13> at least most of the time
[18:55:25] <mitsuhiko> user_id, notification_system
[18:55:35] <mitsuhiko> user_id, notification_system, notification_id
[18:58:38] <dennda> "notification_id"?
[19:05:49] <mitsuhiko> dennda: what notification is sent
[19:06:05] <mitsuhiko> eg. 1 = notify_new_comment, 2 = notify_system_ugprade, 3 = hacker_intrusion_detected
[19:06:13] <mitsuhiko> plugins can of course register their own notification types :)
[19:06:26] <mitsuhiko> s/types/ids/
[19:06:32] <dennda> well that is a bit sucky on first glance
[19:06:37] <dennda> or no
[19:06:37] <mitsuhiko> dennda: why?
[19:06:51] <mitsuhiko> the user can tick/untick the notifications he wants to have
[19:07:01] <mitsuhiko> we could even group them
[19:07:09] <mitsuhiko> post related, administration related, log related
[19:07:12] <dennda> I thought of it wrongly. you will then have several rows for a user if he wants notifications via multiple systems / events
[19:07:15] <mitsuhiko> speaking of log: we need a logging system :)
[19:07:29] <dennda> correct?
[19:07:54] <dennda> i.e.: dennda | jabber | new comment and dennda | sms | server exploded
[19:08:24] <dennda> and NOT: dennda | jabber, sms | new comment, server exploded
[19:09:34] <mitsuhiko> neither nor
[19:09:38] <mitsuhiko> dennda | jabber | new_comment
[19:09:43] <mitsuhiko> dennda | sms | new_comment
[19:09:54] <mitsuhiko> s/new_comment/server_exploded/
[19:10:06] <dennda> jah didn't I just say that in my first example?
[19:10:14] <mitsuhiko> ah. okay
[19:10:22] <mitsuhiko> i thought that "new comment and dennda" as one rwo
[19:10:23] <mitsuhiko> *row
[19:10:27] <dennda> ah no ;9
[19:14:18] <dennda> hhmhmhmhm sqlalchemy magic needed
[19:14:46] <dennda> I'll leave that part of the system for somebody familiar with it :-)
[19:15:01] * Rogi has quit IRC
[19:15:31] <dennda> mitsuhiko: and what part of the notification system uses that table to determine who gets what and how?
[19:15:56] <mitsuhiko> a notification management class
[19:16:08] <mitsuhiko> send_notification informs that class that there is a new notification
[19:16:15] <mitsuhiko> and the class checks the db and delivers it to the systems
[19:16:18] <mitsuhiko> and the systems just send it
[19:16:36] * Rogi has joined #pocoo
[19:16:54] <dennda> jup
[19:17:08] * dennda wipes his bitbucket branch and starts from scratch
[19:26:49] * davidcramer has quit IRC
[19:30:46] * lakin has joined #pocoo
[19:33:07] * maicki has joined #pocoo
[19:39:11] * xStream has joined #pocoo
[20:15:21] <CIA-49> Zine: mitsuhiko default * 494:78e06f853d0c /zine/ (15 files in 8 dirs): Added new form validation to blog views.
[20:15:42] <dennda> mitsuhiko: so the notification systems don't know their users and just send $notification to $recipient, correct?
[20:16:08] <dennda> stupidly
[20:16:11] <mitsuhiko> dennda: to $user
[20:16:21] <dennda> jah what's the difference you nitpicker :-)
[20:16:26] <mitsuhiko> and the internal recipient they need (email, jid) they get from the user table
[20:16:36] * maicki has quit IRC
[20:16:48] <dennda> jup
[20:16:48] * mitsuhiko <3 zine.utils.forms: http://dev.pocoo.org/projects/zine/browser/zine/forms.py#L53
[20:16:51] <dennda> sounds good
[20:17:08] * dennda does that then
[20:17:20] <dennda> I will stub the database parts out and leave them for you :-)
[20:17:57] <mitsuhiko> pah
[20:18:10] * dennda doesn't know sqlalchemy yet, but has a book about it here
[20:18:27] <dennda> will take some time to read it though
[20:24:47] <birkenfeld> mitsuhiko: is that so much different from other form handling modules?
[20:27:13] <mitsuhiko> birkenfeld: yep. it supports nested forms, is integrated into the zine i18n system, handles intelligent backredirects, is protected against csrf attacks and works nicely together with jinja. also fields are copied on form validation which allows modifications on the form after form instanciation but before validation
[20:27:41] <mitsuhiko> and it's elegant :)
[20:27:43] <mitsuhiko> now to sphinx
[20:27:46] <ronny> oO
[20:27:59] <birkenfeld> mitsuhiko: sounds nice ^^
[20:29:58] * ericholscher has quit IRC
[20:30:39] <mitsuhiko> ronny: ?
[20:31:37] <ronny> mitsuhiko: im not sure if i like it, it looks powerfull
[20:32:20] <mitsuhiko> i'm sure i won't like it on the long run
[20:32:29] <mitsuhiko> i always start to hate stuff with the time, but that's how i work :)
[20:33:07] <apollo13> mitsuhiko: 144 if memo is None:
[20:33:08] <apollo13> 145 memo = {}
[20:33:28] <apollo13> memo = memo or {}
[20:33:33] <ronny> mitsuhiko: thats why im constantly refactoring pida
[20:33:59] <ronny> i just grew it a true hg backend thats using the python libs
[20:34:40] <mitsuhiko> apollo13: doesn't work, has an unwanted side effect
[20:34:41] <mitsuhiko> imagine
[20:34:43] <mitsuhiko> foo = {}
[20:34:48] <mitsuhiko> _bind(..., foo)
[20:34:50] <mitsuhiko> return foo
[20:34:57] <apollo13> hmm I see
[20:35:25] <apollo13> I though of it right when you pasted foo = {} ;) But is this really something you could run into?
[20:36:19] <mitsuhiko> apollo13: yes. that function would run into it
[20:36:33] <mitsuhiko> because it calls itself with the new memo
[20:36:36] <apollo13> ah okay, didn't come to the place where it is used yet
[20:37:30] <apollo13> I see
[20:39:57] <birkenfeld> mitsuhiko: when you edit the js files, can you also look if everything is still needed in there?
[20:40:06] <birkenfeld> (and if it's up to date with newest practices :)
[20:40:22] <mitsuhiko> birkenfeld: i think a few things in there are not needed any longer
[20:40:27] <mitsuhiko> eg: support for the comments
[20:41:05] <birkenfeld> ah, yes
[20:41:21] <birkenfeld> though there should be support for comments again some day
[20:41:28] <birkenfeld> but probably done differently
[20:42:02] <mitsuhiko> i have to look. before my holidays to scotland i started a new version of the web builder
[20:42:11] <apollo13> mitsuhiko: self._attr_setdefault(attrs) <-- self._attr.setdefault?
[20:42:33] <mitsuhiko> but that data is on my eee which i gave my friend, have to get it back first
[20:42:46] <mitsuhiko> apollo13: eh. no?
[20:42:58] <apollo13> so what is _attr_setdefault?
[20:43:15] <mitsuhiko> it sets some default attributes in the dict passed
[20:43:16] <apollo13> eeks found it
[20:43:16] <apollo13> sry
[20:43:21] <mitsuhiko> :)
[20:43:50] <aa_> *cough* cp zine/utils/forms.py glashammer/utils/
[20:44:04] <dennda> ^^
[20:44:22] <dennda> cherrypick-chain?
[20:45:09] <aa_> mitsuhiko: I guess your previous generous licensing won't apply to forms.py?
[20:45:27] <apollo13> lol, I would bet
[20:46:00] <aa_> oh maybe the diva stuff is gpl
[20:46:04] <mitsuhiko> aa_: you can relicense *forms.py* as bsd (but not validators.py) where it depends on ^^
[20:46:09] <dennda> generous licensing?
[20:46:11] <mitsuhiko> na. diva is bsd
[20:46:58] <aa_> mitsuhiko: um, ok, thanks :)
[20:47:12] <aa_> from zine.utils.validators import ValidationError <-- that's all I saw from validators.py
[20:47:25] <mitsuhiko> aa_: guess why the smiley is there :)
[20:47:30] <aa_> aha :)
[20:47:40] <aa_> you generous generous clever clever person :)
[20:47:56] <apollo13> rofl
[20:48:00] <apollo13> took quite long
[20:48:31] <apollo13> hmm, why I am still using django? sqlalchemy + werkzeug + jinja2
[20:48:38] <apollo13> + zine.utils.forms
[20:48:41] <apollo13> vs what?
[20:48:45] <apollo13> django
[20:48:47] <apollo13> hmm
[20:48:48] <CIA-49> Pygments: gbrandl trunk * 657:7ba90a02c2c5 /tests/test_basic_api.py: Fix test_basic_api.
[20:48:49] <CIA-49> Pygments: gbrandl trunk * 658:3afb882207f3 / (CHANGES pygments/lexers/_mapping.py pygments/lexers/agile.py): Add Python3TracebackLexer and python3 support to PythonConsoleLexer.
[20:49:08] <apollo13> No I have no arguments against generic-admin
[20:49:14] <apollo13> even a form lib exists
[20:49:21] <apollo13> (that I like and is not newforms=
[20:49:26] <apollo13> s/=/)/g
[20:49:58] * apollo13 goes to his drawing board
[20:50:49] <mitsuhiko> gnaa. os x kills me
[20:50:55] <mitsuhiko> the os x samba support is utter crap
[20:51:10] <mitsuhiko> or finder is shit
[20:51:58] <mq> probably the latter
[20:52:29] <mq> The finder is prbably the most often criticised component of OS X...
[20:52:32] <aa_> it's a shame, more of you should use glashammer, mitsuhiko wrote most of it anyway
[20:53:15] <apollo13> why should we use glashammer then?
[20:53:53] <aa_> apollo13: to save yourself writing a werkzeug+jinja+shared starter app every time
[20:54:03] <apollo13> why every time?
[20:54:05] <apollo13> only once
[20:54:08] <aa_> with built in thread-local management
[20:54:16] <apollo13> werkzeug.local is enough
[20:54:27] <aa_> ok, well, I have a lot of little apps
[20:54:44] <aa_> and it's nice to share plugins between them
[20:54:52] <aa_> in fact forget glashammer, I suck at selling
[20:55:29] <apollo13> mitsuhiko: class _InputGroupMember(InternalWidget):
[20:55:30] <apollo13> 489 """A widget that is a single radio button.""" You are sure that's what you wanted to document?
[20:55:30] <ronny> oO
[20:56:07] <welterde> aa_: we need a sales-person!
[20:56:17] <aa_> welterde: forget it, it will never happen :)
[20:56:30] <aa_> welterde: people use werkzeug because they like to pick and choose and tinker
[20:56:36] * Kaelten has quit IRC
[20:56:39] <plaes> aa_: yup :)
[20:56:41] <aa_> and we are inviting people to not tinker
[20:56:41] <apollo13> indeed
[20:56:51] <aa_> so nevermind
[