[00:13:13] ** rdmurray has left IRC ("User disconnected") [00:21:31] ** sprout has joined us [00:40:39] ** sprout has left IRC ("Snak 4.13 IRC For Mac - http://www.snak.com") [01:28:10] apauley|away is now known as apauley [02:50:27] bear is now known as bear_afk [04:02:28] [connected at Tue Feb 1 04:02:28 2005] [04:02:28] <> *** Looking up your hostname... [04:02:28] <> *** Checking ident [04:02:28] <> *** Found your hostname [04:02:59] <> *** No identd (auth) response [04:02:59] <> *** Your host is niven.freenode.net[niven.freenode.osuosl.org/6667], running version dancer-ircd-1.0.35 [04:02:59] [I have joined #peak] [04:02:59] ** niven.freenode.net set the topic to http://dirtsimple.org/2004/11/generic-functions-have-landed.html [06:55:59] ** vlado has joined us [08:46:26] ** grinch has joined us [08:46:50] grinch is now known as grincho [09:28:24] Hi grincho [09:28:33] Howdy. [09:28:54] You a PEAK developer? [09:29:02] Just figured I'd come in here and lurk today. I'm thinking of using PEAK for a custom event registration system. [09:29:33] peak.security and peak.model excite me. [09:29:37] OK. I'm evaluating it for point-of-sale system [09:29:47] Ah, yes. I read your logs from a few days ago. ;-) [09:30:16] Think you'll go ahead? How long have you been evaluating? [09:30:25] I'm busy working through the IntroToPeak tutorial [09:30:44] At the moment it's still a lot of concepts to grasp [09:31:29] Have you read http://peak.telecommunity.com/tut.pdf, about binding, yet? [09:31:36] I'm a sysadmin-turned-programmer, so I've got a lot to learn [09:31:44] Ah. :-) [09:32:04] Yes, I scanned through that doc, but haven't worked through it yet [09:32:09] IntroToPeak is good. I found it helpful to read that PDF first, though. [09:32:31] And you, what's your level of Python expertise? [09:32:43] Oh, to Python I'm pretty new: a month or so. [09:32:47] Longtime programmer, though [09:33:00] Language/technology? [09:33:08] Good question. [09:33:37] Everything from m68k assembler to C to Java to PHP... [09:34:01] I spent my last few years doing consulting in PHP, so I'm still breaking out of that idiom. [09:34:10] I still tend to write static code. [09:34:32] What most impresses me about PEAK is the high-level design, particularly the super-loose coupling of everything. [09:34:33] I also did a lot of PHP 2 or 3 years ago [09:34:46] Yes, thats nice [09:35:24] I know I want to write easily maintainable, flexible, user-interface independant db-independant apps etc. [09:35:48] Well, that's what I've been trying to do for the last 3 years. [09:35:55] PEAK looks like a good start. [09:35:58] I just haven't mastered "thinking object-orientation" yet [09:36:07] SQLObject is also worth a look. [09:36:26] I'm on LessonFour of IntroToPeak and soon hope to know if I'll need SQLObject after all or not. [09:36:43] I notice that SQLObject's author posts to the PEAK mailing list. [09:37:07] I am not interested in rolling my own object-relational map again. ;-) [09:41:24] My python/OO friends tell me "modelling" is a very good object-relational mapper [09:41:42] Yes, that's another I've looked at. [09:41:49] But there seems to be quite a lot of mappers [09:42:53] That's great; when I was doing my PHP stuff, there were zero for it. [09:42:59] Now there's Propel, at least. [09:44:23] Oh, I think I remember what was wrong with Modeling, for my purposes: [09:44:34] I have a somewhat ugly existing schema I need to conform to. [09:45:34] Do you happen to know much about o-r maps in general? There's something I've been wondering for awhile... [09:46:34] ** apoirier has joined us [10:06:07] grincho: no, I've never used o-r maps before [10:06:26] Just plain relational db programming up to now [10:06:49] Well, I definitely encourage you to pick them up; they make things easier, especially to maintain. [10:07:07] Another layer of abstraction never hurt anybody. ;-) [10:08:15] Back in my PHP days I spent a lot of effort on abstraction layers [10:08:17] Anyway, my question concerned the apparent necessity for serial isolation levels. <--putting this here so I can remember what I wanted to ask in case somebody asks for details [10:08:47] db abstraction, language abstraction etc [10:09:17] not a terribly easy language to accomplish that in [10:09:42] Oh, well, there's libraries available [10:09:54] But still, not really an elegant language [10:10:00] So, what do you mean by language abstraction? [10:10:11] Beats VBScript. ;-) [10:10:12] internationalization [10:10:27] The same app in both Japanese and English [10:10:38] Ah, human language [10:11:04] Yes, I see it can be interpreted the other way as well [10:11:47] Did you notice in lesson 4 of IntroToPeak that mysql support is missing? [10:12:04] There's sqlite and postgres and sybase and oracle, but no mysql [10:12:07] Funny... [10:12:10] No, I haven't got through it yet; I got distracted. :-) [10:12:32] If PEAK's stuff is built atop PyDBI, then it doesn't matter--you can plug in whatever DB you want. [10:13:41] I don't know how they built it, but it you can definitely plug in different db's [10:14:23] But it seems that someone has to add mysql support [10:14:57] Whats with PyDBI? Is it a db abstraction library? [10:15:31] Yes, it's the abstraction lib. [10:15:42] Actually it's a spec, an interface. [10:15:47] there's a PEP on it... [10:16:52] ** grincho has left IRC () [10:18:24] ** grinch has joined us [10:18:41] grinch is now known as grincho [10:18:55] Sorry, I hit a Shut Down button and blew away my world. :-o [10:25:43] Did you ask me a question before I rudely interrupted us? [10:29:32] Not really, I was just querying you on PyDBI [10:30:17] Are you talking about the db adaptors that state they are "DB-API 2.0" compliant? [10:30:23] yep [10:30:58] And there are lots of 'em, which is why I'm hoping PEAK's storage stuff will play nice with them. [10:31:04] I have a weird database situation. [10:31:11] Well, PEAK uses those adaptors [10:31:15] yes? [10:31:16] Yay! :-D [10:31:20] * grincho dances around the room. [10:32:03] It's only a db adaptor... [10:32:21] What's so cool about that? [10:32:36] You have no idea what horrors I am escaping from. :-) [10:33:09] VBScript talking over ADO to MS SQLServer [10:33:10] Lie down. Talk slowly. I'm listening... [10:33:30] Now, my goal is to migrate that to Python + SQLServer. [10:33:55] I got a PyDBI adaptor that talks to SQLServer /through ADO/. [10:34:21] This means I should theoretically be able to share a DB connection between my new Python code and the old VBScript code. [10:34:34] Doing so, I have found, is nontrivial, but hope springs eternal. [10:34:37] Isn't vbscript a client-side browser language like javascript? [10:34:44] Don't you wish. ;-) [10:35:01] Its a lingual travesty. [10:35:03] ' [10:36:14] Classes but no subclasses; arrays of static dimensions; no facilities for library importation or inclusion [10:36:30] Sound horrible. [10:36:45] How did you end up using such a vile thing? [10:36:51] Legacy, man. [10:37:03] This thing has accreted over about 8 years and as many programmers. [10:37:25] Hmmm... time for a re-write? [10:38:04] Don't think I haven't proposed it many times. [10:38:32] If peak.model and peak.storage are as magic as I suspect they are, it might be feasible within the time constraints, though. [10:39:24] I haven't quite figured out what the use of peak.model is [10:39:46] It helps you write your programmatic data objects. [10:39:57] And then peak.storage helps you shove them in the DB and get them out again. [10:40:17] In the tutorial I ripped everything from model.py and it still works [10:40:29] my model.py looks like this: [10:40:33] class Message(model.Element): [10:40:33] pass [10:41:15] I'm hoping my modification will bite me sometime later, so that I can see whats the fuss [10:42:12] See, you tore out all the validation stuff. [10:42:51] peak.model lets you say "This field needs to be a string, and that one needs to be a hat with a brim on it that's smaller than 10 gallons" [10:43:00] And then it presumably helps you enforce it. [10:43:20] Check out the docs in peak.model.interfaces or someplace for the IType interface. [10:43:35] OK, I'm starting to see a spec of light. Far away in the distance. [10:44:09] Thanks, I'll check it out [10:44:23] no prob [10:56:55] My n2 doesn't really behave exactly like it says in Lesson 4 [10:57:15] 1> \describe customers [10:57:15] Feature not implemented yet. [10:57:19] Interesting. I haven't been typing along, just reading. [10:57:35] Do you have an up-to-date SQLite? [10:57:45] This happens when peaking n2 both sqlite and postgres [10:57:59] Ah. Hmm. Beats me. [10:59:05] I've got sqlite 2.8.11 and pysqlite 0.5.1 [10:59:16] Are those the latest? [10:59:28] I'll upgrade my sqlite to 2.8.15 (latest gentoo ebuild) [10:59:59] I can't imagine that's the problem. [11:00:00] pysqlite seems to be ok, unless the gentoo ebuiild is a bit behind [11:00:11] That tutorial isn't that new. [11:00:22] And 0.0.4 isn't a featureful delta. [11:02:17] sqlite 2.x is buggy [11:03:16] Interesting. What version of sqlite are you using, vlado? [11:03:41] ** pje has joined us [11:03:50] let me check [11:04:17] But it's still funny that n2 says "feature not implemented", for both sqlite and psycopg [11:04:38] That [11:04:45] 's because the feature's not implemented. [11:04:48] dev-db/sqlite-3.0.8-r1 [11:04:56] Only \describe without arguments is implemented. [11:05:33] See peak.tools.n2.sql under cmd_describe [11:05:38] And I assume it was implemented some time in the past? [11:05:49] And then ripped out afterwards? [11:05:58] No, never. And if you look at lesson 4 you'll see the author didn't get it to work either. [11:06:07] The *message* is new; it used to just do nothing. :) [11:06:57] OK, I see now [11:07:16] * pje edits the page to add the message [11:07:50] pje, I have some minor grammatical edits to the tutorial, too, if you like. [11:07:57] commas and such [11:08:02] Have at 'em. [11:08:16] You just need to create an account on the wiki, and you get editing access. [11:08:21] boffo [11:08:30] Click on "UserPreferences" and go from there. [11:08:49] * grincho does. Thanks! [11:09:54] Another difference between lesson 4 and my output [11:10:20] is that I don't get the sql statements when doing "\describe -m vert -v" to an existing postgres db [11:11:18] Well, you might have a look at peak.storage.SQL and have a hack at the Postgres driver's "listObjects" method. [11:11:34] That's what provides the data. [11:11:58] I've got to run, I just popped in to answer those earlier questions. Later all. [11:12:03] ** pje has left IRC ("Client exiting") [11:46:48] ** vlado has left IRC ("Leaving") [11:59:28] apauley is now known as apauley|away [13:24:13] ** sprout has joined us [13:25:32] looks like there is a(nother) bug in zipimporter [13:25:51] >>> ldr.get_source('testpkg/submodule') [13:25:51] 'print "submodule loaded"\n' [13:25:51] >>> ldr.get_source('testpkg.submodule') [13:25:51] Traceback (most recent call last): [13:25:51] File "", line 1, in ? [13:25:53] zipimport.ZipImportError: can't find module 'testpkg.submodule' [13:48:26] ** apoirier has left IRC ("Using KVIrc 3.0.1") [14:33:20] ** rdmurray has joined us [18:40:46] ** anari has joined us [19:48:48] ** anari has left IRC (Read error: 60 (Operation timed out)) [21:17:01] ** tav|offline has left IRC (niven.freenode.net irc.freenode.net) [21:17:07] ** tav|offline has joined us [21:17:34] ** tav|offline has left IRC (Killed by ballard.freenode.net (Nick collision)) [21:17:34] ** tav|offline has joined us [21:17:38] ** tav|offl1ne has joined us [21:27:10] ** tav|offline has left IRC (Read error: 110 (Connection timed out)) [21:45:51] ** sprout has left IRC ("Snak 4.13 IRC For Mac - http://www.snak.com") [22:43:25] bear_afk is now known as bear [23:44:32] ** bear_ has joined us [23:45:09] ** bear has left IRC (Nick collision from services.) [23:45:11] bear_ is now known as bear