From wescpy at gmail.com Tue Apr 1 23:44:47 2008 From: wescpy at gmail.com (wesley chun) Date: Tue, 1 Apr 2008 14:44:47 -0700 Subject: [Baypiggies] [ANN] May 2008 Python course Message-ID: <78b3a9580804011444v388d5690m4d9a3931da4523a2@mail.gmail.com> FINAL REMINDER Need to get up-to-speed with Python as quickly as possible? Come join me, Wesley Chun, author of Prentice-Hall's well-received "Core Python Programming," for another comprehensive intro course next month in beautiful Northern California! I look forward to meeting you! If you miss this one, our next courses will likely be in Oct or Nov 2008. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - (COMPREHENSIVE) INTRODUCTION TO PYTHON: Mon-Wed, 2008 May 5-7 Although this course may appear to those new to Python, it is also perfect those who have tinkered with it and want to "fill in the gaps" and/or want to get more in-depth formal training. It combines the best of both an introduction to the language as well as a "Python Internals" training course. We will immerse you in the world of Python in only a few days. We will show you more than just its syntax (which you don't really need a book to learn, right?). Knowing more about how Python works under the covers, including the relationship between data objects and memory management, will make you a much more effective Python programmer coming out of the gate. 3 hands-on labs each day will help hammer the concepts home. Come find out why Google, Yahoo!, Disney, ILM/LucasFilm, VMware, OLPC, NASA, Ubuntu, YouTube, and Red Hat all use Python. Users supporting or jumping to Plone, Zope, TurboGears, Django, Pylons, Jython, IronPython, and Mailman will also benefit! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - WHERE: near the San Francisco Airport (SFO/San Bruno), CA, USA WEB: http://cyberwebconsulting.com (click "Python Training") LOCALS: easy freeway (101/280/380) with lots of parking plus public transit (BART and CalTrain) access via the San Bruno stations, easily accessible from all parts of the Bay Area VISITORS: free shuttle to/from the airport, free high-speed internet, free breakfast and regular evening receptions; fully-equipped suites See website for costs, venue info, and registration. Discounts are available for multiple registrations as well as for teachers/students. Hope to see you there! -- wesley - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - "Core Python Programming", Prentice Hall, (c)2007,2001 http://corepython.com wesley.j.chun :: wescpy-at-gmail.com python training and technical consulting cyberweb.consulting : silicon valley, ca http://cyberwebconsulting.com From slander at unworkable.org Thu Apr 3 22:12:21 2008 From: slander at unworkable.org (Harry Tormey) Date: Thu, 3 Apr 2008 21:12:21 +0100 Subject: [Baypiggies] PyGame SF meetup Monday April 7th 7:30pm Metreon food court Message-ID: <20080403201221.GC11019@unworkable.org> Hi All, Just writing to say that this month's PyGAME SF meet up is on Monday April 7th at 7.30pm at the Metreon food court in San Francisco. This month's presentations are: - Andrew Turley "Making Games Quickly for Fun and Scotch". The talk will be about his experiences making Unicorn vs. Dolphin - Warren Stringer "Cellular Automata for fun and profit: a look on pixel effects with a focus on developing for the iPhone" If anyone else would like to give a micro presentation, show demos or just talk about what they are doing or generally give examples on anything to do with games please feel free to head along. To subscribe to the pygamesf mailing list simply email pygame-sf+subscribe at unworkable.org -Harry pygame-sf at unworkable.org From cappy2112 at gmail.com Thu Apr 3 23:24:36 2008 From: cappy2112 at gmail.com (Tony Cappellini) Date: Thu, 3 Apr 2008 14:24:36 -0700 Subject: [Baypiggies] Volunteer wanted to write a book review for "Python Web Development with Django" Message-ID: <8249c4ac0804031424t343798e3hc04d27ad7593d492@mail.gmail.com> Hello, If anyone is interested in reviewing an early copy of Python Web Development with Django, please reply to me off-list. http://safari.informit.com/9780321564177 Thanks Tony From jjinux at gmail.com Sat Apr 5 09:23:54 2008 From: jjinux at gmail.com (Shannon -jj Behrens) Date: Sat, 5 Apr 2008 00:23:54 -0700 Subject: [Baypiggies] daemonize Message-ID: The Python Cookbook has a pretty good module for daemonizing a process. It's not something that's likely to change, since this procedure has been the same for a decade or longer. Has anyone brought up the idea of including it in the standard library? I'm actually pretty surprised it's not there already. -jj -- I, for one, welcome our new Facebook overlords! http://jjinux.blogspot.com/ From keith at dartworks.biz Sat Apr 5 09:51:18 2008 From: keith at dartworks.biz (Keith Dart) Date: Fri, 4 Apr 2008 23:51:18 -0800 (PST) Subject: [Baypiggies] daemonize In-Reply-To: References: Message-ID: On Sat, 5 Apr 2008, Shannon -jj Behrens wrote: > The Python Cookbook has a pretty good module for daemonizing a > process. It's not something that's likely to change, since this > procedure has been the same for a decade or longer. Has anyone > brought up the idea of including it in the standard library? I'm > actually pretty surprised it's not there already. I thought about it... but... how much trouble is it to get something into the standard library these days? For me, there is no need since I have one in my own library collection, among others. However, with cheeseshop and setuptools getting better it makes the standard library less important. Just "easy_install" some package and you've got it. So, the question I have is it even worth it to add anything to the standard library? -- -- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Keith Dart public key: ID: 19017044 ===================================================================== From aahz at pythoncraft.com Sat Apr 5 18:45:55 2008 From: aahz at pythoncraft.com (Aahz) Date: Sat, 5 Apr 2008 09:45:55 -0700 Subject: [Baypiggies] daemonize In-Reply-To: References: Message-ID: <20080405164555.GA1898@panix.com> On Sat, Apr 05, 2008, Shannon -jj Behrens wrote: > > The Python Cookbook has a pretty good module for daemonizing a > process. It's not something that's likely to change, since this > procedure has been the same for a decade or longer. Has anyone > brought up the idea of including it in the standard library? I'm > actually pretty surprised it's not there already. There's been some discussion of adding a pyprocess module similar to the threading library -- it probably should go with that. As always, patches are welcome. ;-) -- Aahz (aahz at pythoncraft.com) <*> http://www.pythoncraft.com/ "It is easier to optimize correct code than to correct optimized code." --Bill Harlan From cappy2112 at gmail.com Fri Apr 4 19:50:30 2008 From: cappy2112 at gmail.com (Tony Cappellini) Date: Fri, 4 Apr 2008 10:50:30 -0700 Subject: [Baypiggies] Volunteer for "Python Web Development with Django"- Found Message-ID: <8249c4ac0804041050g63e5318aie076e47eeb00f179@mail.gmail.com> Thanks to those who replied, I already have a reviewer for the book. See you all at the meeting next week Have a nice weekend! Tony C -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.python.org/pipermail/baypiggies/attachments/20080404/5f235221/attachment.htm From jjinux at gmail.com Sat Apr 5 22:26:40 2008 From: jjinux at gmail.com (Shannon -jj Behrens) Date: Sat, 5 Apr 2008 13:26:40 -0700 Subject: [Baypiggies] daemonize In-Reply-To: <20080405164555.GA1898@panix.com> References: <20080405164555.GA1898@panix.com> Message-ID: On Sat, Apr 5, 2008 at 9:45 AM, Aahz wrote: > On Sat, Apr 05, 2008, Shannon -jj Behrens wrote: > > > > The Python Cookbook has a pretty good module for daemonizing a > > process. It's not something that's likely to change, since this > > procedure has been the same for a decade or longer. Has anyone > > brought up the idea of including it in the standard library? I'm > > actually pretty surprised it's not there already. > > There's been some discussion of adding a pyprocess module similar to the > threading library -- it probably should go with that. As always, patches > are welcome. ;-) I like the processing module. I personally think that's a good candidate for the standard library too. Personally, I think a daemonize function is different. If anything, I think the posix module would be a better fit. The code I'm referring to is in the Python Cookbook. It's trivial to provide a patch. I was just wondering if there was a reason it hadn't been done already. I know how hard it is to get things into the standard library, so I'm skittish. -jj -- I, for one, welcome our new Facebook overlords! http://jjinux.blogspot.com/ From niallo at unworkable.org Sat Apr 5 23:48:06 2008 From: niallo at unworkable.org (Niall O'Higgins) Date: Sat, 5 Apr 2008 22:48:06 +0100 Subject: [Baypiggies] urllib2.urlopen() and exception layering Message-ID: <20080405214806.GW31486@unworkable.org> Hi, I have written a number of long-running Python programs which make heavy use of urllib2.urlopen() to fetch HTTP URLs in a convenient manner. While the documentation states that this function "Raises URLError on errors", I have found this to be incorrect. So far I have encountered the following exceptions being thrown by urllib2.urlopen() on HTTP URLs: * urllib2.HTTPError * urllib2.URLError * httplib.BadStatusLine * httplib.InvalidURL * ValueError * IOError Looking at the urllib2 module source, it is unclear to me whether the intention is that all httplib errors should be caught and raised as URLError or whether the programmer is expected to handle the underlying exceptions himself. For example, at least socket.error is caught by urllib2.urlopen() and raised as a URLError. The comment in the code block suggests some confusion: try: h.request(req.get_method(), req.get_selector(), req.data, headers) r = h.getresponse() except socket.error, err: # XXX what error? raise URLError(err) I think this is a problem which needs to be addressed, at the very least through clearer documentation, and possibly by improving urllib2 to handle more of these exceptions and raise them as URLError. I'm new to the Python development community, but would be happy to submit a patch if there is some consensus on which approach to take. Thanks! -- Niall O'Higgins Software Enthusiast http://niallohiggins.com From dcramer at gmail.com Sun Apr 6 00:25:21 2008 From: dcramer at gmail.com (David Cramer) Date: Sat, 5 Apr 2008 15:25:21 -0700 Subject: [Baypiggies] urllib2.urlopen() and exception layering In-Reply-To: <20080405214806.GW31486@unworkable.org> References: <20080405214806.GW31486@unworkable.org> Message-ID: Ive had that issue with a number of the Python built-in modules. Most of them have very poor exception handling, and HTTP is probably one of the worst I've dealt with. On Sat, Apr 5, 2008 at 2:48 PM, Niall O'Higgins wrote: > Hi, > > I have written a number of long-running Python programs which make heavy > use of > urllib2.urlopen() to fetch HTTP URLs in a convenient manner. While the > documentation states that this function "Raises URLError on errors", I > have > found this to be incorrect. So far I have encountered the following > exceptions > being thrown by urllib2.urlopen() on HTTP URLs: > > * urllib2.HTTPError > * urllib2.URLError > * httplib.BadStatusLine > * httplib.InvalidURL > * ValueError > * IOError > > Looking at the urllib2 module source, it is unclear to me whether the > intention > is that all httplib errors should be caught and raised as URLError or > whether > the programmer is expected to handle the underlying exceptions himself. > > For example, at least socket.error is caught by urllib2.urlopen() and > raised as a URLError. The comment in the code block suggests some > confusion: > > try: > h.request(req.get_method(), req.get_selector(), req.data, > headers) > r = h.getresponse() > except socket.error, err: # XXX what error? > raise URLError(err) > > I think this is a problem which needs to be addressed, at the very least > through clearer documentation, and possibly by improving urllib2 to handle > more > of these exceptions and raise them as URLError. > > I'm new to the Python development community, but would be happy to submit > a > patch if there is some consensus on which approach to take. > > Thanks! > > -- > Niall O'Higgins > Software Enthusiast > http://niallohiggins.com > _______________________________________________ > Baypiggies mailing list > Baypiggies at python.org > To change your subscription options or unsubscribe: > http://mail.python.org/mailman/listinfo/baypiggies > -- David Cramer Director of Technology iBegin http://www.ibegin.com/ -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.python.org/pipermail/baypiggies/attachments/20080405/eb0a4398/attachment.htm From keith at dartworks.biz Sun Apr 6 08:32:09 2008 From: keith at dartworks.biz (Keith Dart) Date: Sat, 5 Apr 2008 22:32:09 -0800 (PST) Subject: [Baypiggies] urllib2.urlopen() and exception layering In-Reply-To: References: <20080405214806.GW31486@unworkable.org> Message-ID: On Sat, 5 Apr 2008, David Cramer wrote: > Ive had that issue with a number of the Python built-in modules. Most of > them have very poor exception handling, and HTTP is probably one of the > worst I've dealt with. I believe, as a general rule, you should not intercept exceptions and re-raise them because that makes debugging harder. It can mask the real problem. But I suppose it depends on the nature of the exact module or problem, and how well the re-raising function reports the underlying error (if at all), and whether or not it makes available the original traceback object. One way to do that: try: SomeOperation() except IOError: ex, val, tb = sys.exc_info() raise ProtocolError, val, tb This way the consumer of the module can get a consistent exception object, but still debug it with the real traceback. Are there any downsides to this? > > On Sat, Apr 5, 2008 at 2:48 PM, Niall O'Higgins > wrote: > >> Hi, >> >> I have written a number of long-running Python programs which make heavy >> use of >> urllib2.urlopen() to fetch HTTP URLs in a convenient manner. While the >> documentation states that this function "Raises URLError on errors", I >> have >> found this to be incorrect. So far I have encountered the following >> exceptions >> being thrown by urllib2.urlopen() on HTTP URLs: >> >> * urllib2.HTTPError >> * urllib2.URLError >> * httplib.BadStatusLine >> * httplib.InvalidURL >> * ValueError >> * IOError >> >> Looking at the urllib2 module source, it is unclear to me whether the >> intention >> is that all httplib errors should be caught and raised as URLError or >> whether >> the programmer is expected to handle the underlying exceptions himself. >> >> For example, at least socket.error is caught by urllib2.urlopen() and >> raised as a URLError. The comment in the code block suggests some >> confusion: >> >> try: >> h.request(req.get_method(), req.get_selector(), req.data, >> headers) >> r = h.getresponse() >> except socket.error, err: # XXX what error? >> raise URLError(err) >> >> I think this is a problem which needs to be addressed, at the very least >> through clearer documentation, and possibly by improving urllib2 to handle >> more >> of these exceptions and raise them as URLError. >> >> I'm new to the Python development community, but would be happy to submit >> a >> patch if there is some consensus on which approach to take. >> >> Thanks! >> >> -- >> Niall O'Higgins >> Software Enthusiast >> http://niallohiggins.com >> _______________________________________________ >> Baypiggies mailing list >> Baypiggies at python.org >> To change your subscription options or unsubscribe: >> http://mail.python.org/mailman/listinfo/baypiggies >> > > > > -- > David Cramer > Director of Technology > iBegin > http://www.ibegin.com/ > -- -- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Keith Dart public key: ID: 19017044 ===================================================================== From greg at krypto.org Sun Apr 6 08:54:32 2008 From: greg at krypto.org (Gregory P. Smith) Date: Sat, 5 Apr 2008 23:54:32 -0700 Subject: [Baypiggies] urllib2.urlopen() and exception layering In-Reply-To: <20080405214806.GW31486@unworkable.org> References: <20080405214806.GW31486@unworkable.org> Message-ID: <52dc1c820804052354j15c1ad8o3779199066964ab0@mail.gmail.com> On Sat, Apr 5, 2008 at 2:48 PM, Niall O'Higgins wrote: > Hi, > > I have written a number of long-running Python programs which make heavy > use of > urllib2.urlopen() to fetch HTTP URLs in a convenient manner. While the > documentation states that this function "Raises URLError on errors", I > have > found this to be incorrect. So far I have encountered the following > exceptions > being thrown by urllib2.urlopen() on HTTP URLs: > > * urllib2.HTTPError > * urllib2.URLError > * httplib.BadStatusLine > * httplib.InvalidURL > * ValueError > * IOError > > Looking at the urllib2 module source, it is unclear to me whether the > intention > is that all httplib errors should be caught and raised as URLError or > whether > the programmer is expected to handle the underlying exceptions himself. > > For example, at least socket.error is caught by urllib2.urlopen() and > raised as a URLError. The comment in the code block suggests some > confusion: > urllib2 is a pretty big mess and does unfortunately violate the general rule of exception catching + retyping + reraising being a bad idea. That said, you can reduce the above list of exceptions a bit thanks to their inheritance. URLError inherits from IOError. All httplib errors inherit from httplib.HTTPException. This leaves you with (IOError, socket.error, httplib.HTTPException, ValueError) as the ones you should catch. I changed socket.error to inherit from IOError in Python 2.6. That narrows the list down to a sane pair of exceptions if the ValueErrors can be fixed. IMHO if you're ever seeing a ValueError out of urllib2 in normal sane use please try to figure out why, make a simple test case and file it on bugs.python.org if you believe it is a case that the library should handle. double plus good if it includes a patch to fix it. > try: > h.request(req.get_method(), req.get_selector(), req.data, > headers) > r = h.getresponse() > except socket.error, err: # XXX what error? > raise URLError(err) > > I think this is a problem which needs to be addressed, at the very least > through clearer documentation, and possibly by improving urllib2 to handle > more > of these exceptions and raise them as URLError. > > I'm new to the Python development community, but would be happy to submit > a > patch if there is some consensus on which approach to take. > > Thanks! > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.python.org/pipermail/baypiggies/attachments/20080405/2aaac57e/attachment-0001.htm From keith at dartworks.biz Sun Apr 6 13:17:19 2008 From: keith at dartworks.biz (Keith Dart) Date: Sun, 6 Apr 2008 04:17:19 -0700 (PDT) Subject: [Baypiggies] urllib2.urlopen() and exception layering In-Reply-To: <52dc1c820804052354j15c1ad8o3779199066964ab0@mail.gmail.com> References: <20080405214806.GW31486@unworkable.org> <52dc1c820804052354j15c1ad8o3779199066964ab0@mail.gmail.com> Message-ID: On Sat, 5 Apr 2008, Gregory P. Smith wrote: > urllib2 is a pretty big mess and does unfortunately violate the general rule > of exception catching + retyping + reraising being a bad idea. BTW, if you are doing this kind of thing a very good alternative is pycurl, a wrapper for the libcurl library. This does introduce an external dependency, but curl/libcurl is a useful thing to have around, anyway. -- -- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Keith Dart public key: ID: 19017044 ===================================================================== From jim at well.com Tue Apr 8 01:21:09 2008 From: jim at well.com (jim stockford) Date: Mon, 7 Apr 2008 16:21:09 -0700 Subject: [Baypiggies] bayPIGgies meeting Thursday 4/10: PyCon reports Message-ID: <41922ed68e4e505d8fa1279c48a48f12@well.com> bayPIGgies meeting Thursday 4/10: PyCon reports Ed Cherlin and Daryl Spitzer on PyCon 2008 Ed and Daryl will share their experiences. If time permits, the group may discuss plans for Concurrent PyCon 2010 in the San Francisco bay area. Location: Google Campus Building 40, the Seville room (second floor) bayPIGgies meeting information: http://baypiggies.net/new/plone * Please sign up in advance to have your google access badge ready: http://wiki.python.org/moin/BayPiggiesGoogleMeetings (no later than close of business on Wednesday.) Agenda ..... 7:30 PM ........................... General hubbub, inventory end-of-meeting announcements, any first-minute announcements. ..... 7:35 PM to 8:45 PM ................ The Talk ..... 8:45 PM to 9:00 PM or After The Talk ................ Mapping and Random Access Mapping is a rapid-fire audience announcement of topics the announcers are interested in. Random Access follows immediately to allow follow up individually on the announcements and other topics of interest. The May 8 bayPIGgies Meeting Stackless Python with Christian Tismer From niallo at unworkable.org Tue Apr 8 03:04:05 2008 From: niallo at unworkable.org (Niall O'Higgins) Date: Tue, 8 Apr 2008 02:04:05 +0100 Subject: [Baypiggies] urllib2.urlopen() and exception layering In-Reply-To: <52dc1c820804052354j15c1ad8o3779199066964ab0@mail.gmail.com> References: <20080405214806.GW31486@unworkable.org> <52dc1c820804052354j15c1ad8o3779199066964ab0@mail.gmail.com> Message-ID: <20080408010405.GG31486@unworkable.org> Hi Gregory, On Sat, Apr 05, 2008 at 11:54:32PM -0700, Gregory P. Smith wrote: > urllib2 is a pretty big mess and does unfortunately violate the general rule > of exception catching + retyping + reraising being a bad idea. > > That said, you can reduce the above list of exceptions a bit thanks to their > inheritance. URLError inherits from IOError. All httplib errors inherit > from httplib.HTTPException. This leaves you with (IOError, socket.error, > httplib.HTTPException, ValueError) as the ones you should catch. I changed > socket.error to inherit from IOError in Python 2.6. That narrows the list > down to a sane pair of exceptions if the ValueErrors can be fixed. > > IMHO if you're ever seeing a ValueError out of urllib2 in normal sane use > please try to figure out why, make a simple test case and file it on > bugs.python.org if you believe it is a case that the library should handle. > double plus good if it includes a patch to fix it. Thanks for the informative reply. I have modified my long-running HTTP fetch programs to track down this ValueError condition, hopefully it will crop up again one of these days. Apart from modifying the code, should the above comments be mentioned in the standard library docs? It seemed unusual to me that only URLError was explicitly mentioned in the urllib2.urlopen() description. I will write a path to the documentation if so, mentioning the various exceptions which can be thrown. I'm just not sure how Python documentation is managed or maintained. Cheers! > > > > try: > > h.request(req.get_method(), req.get_selector(), req.data, > > headers) > > r = h.getresponse() > > except socket.error, err: # XXX what error? > > raise URLError(err) > > > > I think this is a problem which needs to be addressed, at the very least > > through clearer documentation, and possibly by improving urllib2 to handle > > more > > of these exceptions and raise them as URLError. > > > > I'm new to the Python development community, but would be happy to submit > > a > > patch if there is some consensus on which approach to take. > > > > Thanks! > > -- Niall O'Higgins Software Enthusiast http://niallohiggins.com From bjorn.tipling at gmail.com Tue Apr 8 07:54:29 2008 From: bjorn.tipling at gmail.com (Bjorn Tipling) Date: Mon, 07 Apr 2008 22:54:29 -0700 Subject: [Baypiggies] Google App Engine Message-ID: <20080407225429.a88b5a45d4f18442e3264b556d999a36.41bf2bd599.wbe@email.secureserver.net> Pretty cool news isn't it? I don't suppose anyone might have an extra invite? Yay! Hopefully I didn't send this message twice. From jjinux at gmail.com Tue Apr 8 07:55:59 2008 From: jjinux at gmail.com (Shannon -jj Behrens) Date: Mon, 7 Apr 2008 22:55:59 -0700 Subject: [Baypiggies] Google App Engine Message-ID: http://code.google.com/appengine/docs/whatisgoogleappengine.html Does anyone else feel as overwhelmed as I do? -jj -- I, for one, welcome our new Facebook overlords! http://jjinux.blogspot.com/ From bjorn at ambientchill.com Tue Apr 8 07:51:41 2008 From: bjorn at ambientchill.com (bjorn at ambientchill.com) Date: Mon, 07 Apr 2008 22:51:41 -0700 Subject: [Baypiggies] Google App Engine Message-ID: <20080407225141.a88b5a45d4f18442e3264b556d999a36.451e4ab3f0.wbe@email.secureserver.net> Pretty cool news isn't it? I don't suppose anyone might have an extra invite? Yay! From doug at apley.com Tue Apr 8 08:06:35 2008 From: doug at apley.com (Douglas Sims) Date: Tue, 8 Apr 2008 01:06:35 -0500 Subject: [Baypiggies] Google App Engine In-Reply-To: References: Message-ID: <92ACDB93-9725-4DEE-B8EF-595F6D04A617@apley.com> Yes. This seems rather momentous. I wonder how many people around the world aren't going to sleep any tonight? I think I'm going to be one. I requested an invite at about 9:30 (Central time) and got one at 12:03 Haven't got the paths straight yet though... mbp2:helloworld doug$ dev_appserver.py -d /home/doug/helloworld/ Traceback (most recent call last): File "/usr/local/bin/dev_appserver.py", line 50, in execfile(script_path, globals()) File "/usr/local/google_appengine/google/appengine/tools/ dev_appserver_main.py", line 338, in sys.exit(main(sys.argv)) File "/usr/local/google_appengine/google/appengine/tools/ dev_appserver_main.py", line 287, in main config, matcher = dev_appserver.LoadAppConfig(root_path, {}) File "/usr/local/google_appengine/google/appengine/tools/ dev_appserver.py", line 2415, in LoadAppConfig raise AppConfigNotFoundError google.appengine.tools.dev_appserver.AppConfigNotFoundError Douglas Sims Doug at Apley.com On Apr 8, 2008, at 12:55 AM, Shannon -jj Behrens wrote: > http://code.google.com/appengine/docs/whatisgoogleappengine.html > > Does anyone else feel as overwhelmed as I do? > > -jj > > -- > I, for one, welcome our new Facebook overlords! > http://jjinux.blogspot.com/ > _______________________________________________ > Baypiggies mailing list > Baypiggies at python.org > To change your subscription options or unsubscribe: > http://mail.python.org/mailman/listinfo/baypiggies From guido at python.org Tue Apr 8 08:13:13 2008 From: guido at python.org (Guido van Rossum) Date: Mon, 7 Apr 2008 23:13:13 -0700 Subject: [Baypiggies] Google App Engine In-Reply-To: <92ACDB93-9725-4DEE-B8EF-595F6D04A617@apley.com> References: <92ACDB93-9725-4DEE-B8EF-595F6D04A617@apley.com> Message-ID: You must first create an app.yaml file in that directory. On Mon, Apr 7, 2008 at 11:06 PM, Douglas Sims wrote: > > Yes. This seems rather momentous. > > I wonder how many people around the world aren't going to sleep any > tonight? I think I'm going to be one. > > I requested an invite at about 9:30 (Central time) and got one at 12:03 > > Haven't got the paths straight yet though... > > mbp2:helloworld doug$ dev_appserver.py -d /home/doug/helloworld/ > Traceback (most recent call last): > File "/usr/local/bin/dev_appserver.py", line 50, in > execfile(script_path, globals()) > File "/usr/local/google_appengine/google/appengine/tools/ > dev_appserver_main.py", line 338, in > sys.exit(main(sys.argv)) > File "/usr/local/google_appengine/google/appengine/tools/ > dev_appserver_main.py", line 287, in main > config, matcher = dev_appserver.LoadAppConfig(root_path, {}) > File "/usr/local/google_appengine/google/appengine/tools/ > dev_appserver.py", line 2415, in LoadAppConfig > raise AppConfigNotFoundError > google.appengine.tools.dev_appserver.AppConfigNotFoundError > > > Douglas Sims > Doug at Apley.com > > > > > > On Apr 8, 2008, at 12:55 AM, Shannon -jj Behrens wrote: > > http://code.google.com/appengine/docs/whatisgoogleappengine.html > > > > Does anyone else feel as overwhelmed as I do? > > > > -jj > > > > -- > > I, for one, welcome our new Facebook overlords! > > http://jjinux.blogspot.com/ > > _______________________________________________ > > Baypiggies mailing list > > Baypiggies at python.org > > To change your subscription options or unsubscribe: > > http://mail.python.org/mailman/listinfo/baypiggies > > _______________________________________________ > Baypiggies mailing list > Baypiggies at python.org > To change your subscription options or unsubscribe: > http://mail.python.org/mailman/listinfo/baypiggies > -- --Guido van Rossum (home page: http://www.python.org/~guido/) From doug at apley.com Tue Apr 8 08:23:28 2008 From: doug at apley.com (Douglas Sims) Date: Tue, 8 Apr 2008 01:23:28 -0500 Subject: [Baypiggies] Google App Engine In-Reply-To: References: <92ACDB93-9725-4DEE-B8EF-595F6D04A617@apley.com> Message-ID: Thank you. The first problem really was that I forgot which machine I am on; it is a Mac at the moment and I was saying /home/doug instead of /Users/ doug ... d'oh! but I think I have something else wrong too: btw, this is going to be really cool. mbp2:helloworld doug$ pwd /Users/doug/helloworld mbp2:helloworld doug$ ls -la total 16 drwxr-xr-x 4 doug staff 136 Apr 8 01:17 . drwxr-xr-x+ 87 doug staff 2958 Apr 8 01:17 .. -rw-r--r-- 1 doug staff 113 Apr 8 01:09 app.yaml -rw-r--r-- 1 doug staff 83 Apr 8 00:54 helloworld.py mbp2:helloworld doug$ dev_appserver.py -d /Users/doug/helloworld ERROR 2008-04-08 01:18:34,145 dev_appserver_main.py] Fatal error when loading application configuration: mbp2:helloworld doug$ cat app.yaml application: helloworld version: 1 runtime: python api_version: 1 handlers: - url:/.* script: helloworld.py Douglas Sims Doug at Apley.com On Apr 8, 2008, at 1:13 AM, Guido van Rossum wrote: > You must first create an app.yaml file in that directory. > > On Mon, Apr 7, 2008 at 11:06 PM, Douglas Sims wrote: >> >> Yes. This seems rather momentous. >> >> I wonder how many people around the world aren't going to sleep any >> tonight? I think I'm going to be one. >> >> I requested an invite at about 9:30 (Central time) and got one at >> 12:03 >> >> Haven't got the paths straight yet though... >> >> mbp2:helloworld doug$ dev_appserver.py -d /home/doug/helloworld/ >> Traceback (most recent call last): >> File "/usr/local/bin/dev_appserver.py", line 50, in >> execfile(script_path, globals()) >> File "/usr/local/google_appengine/google/appengine/tools/ >> dev_appserver_main.py", line 338, in >> sys.exit(main(sys.argv)) >> File "/usr/local/google_appengine/google/appengine/tools/ >> dev_appserver_main.py", line 287, in main >> config, matcher = dev_appserver.LoadAppConfig(root_path, {}) >> File "/usr/local/google_appengine/google/appengine/tools/ >> dev_appserver.py", line 2415, in LoadAppConfig >> raise AppConfigNotFoundError >> google.appengine.tools.dev_appserver.AppConfigNotFoundError >> >> >> Douglas Sims >> Doug at Apley.com >> >> >> >> >> >> On Apr 8, 2008, at 12:55 AM, Shannon -jj Behrens wrote: >>> http://code.google.com/appengine/docs/whatisgoogleappengine.html >>> >>> Does anyone else feel as overwhelmed as I do? >>> >>> -jj >>> >>> -- >>> I, for one, welcome our new Facebook overlords! >>> http://jjinux.blogspot.com/ >>> _______________________________________________ >>> Baypiggies mailing list >>> Baypiggies at python.org >>> To change your subscription options or unsubscribe: >>> http://mail.python.org/mailman/listinfo/baypiggies >> >> _______________________________________________ >> Baypiggies mailing list >> Baypiggies at python.org >> To change your subscription options or unsubscribe: >> http://mail.python.org/mailman/listinfo/baypiggies >> > > > > -- > --Guido van Rossum (home page: http://www.python.org/~guido/) From dcramer at gmail.com Tue Apr 8 08:27:53 2008 From: dcramer at gmail.com (David Cramer) Date: Mon, 7 Apr 2008 23:27:53 -0700 Subject: [Baypiggies] Google App Engine In-Reply-To: References: <92ACDB93-9725-4DEE-B8EF-595F6D04A617@apley.com> Message-ID: Google App Engine looks like a hosted version of Django ;) On Mon, Apr 7, 2008 at 11:23 PM, Douglas Sims wrote: > Thank you. > > The first problem really was that I forgot which machine I am on; it > is a Mac at the moment and I was saying /home/doug instead of /Users/ > doug ... d'oh! but I think I have something else wrong too: > > btw, this is going to be really cool. > > mbp2:helloworld doug$ pwd > /Users/doug/helloworld > mbp2:helloworld doug$ ls -la > total 16 > drwxr-xr-x 4 doug staff 136 Apr 8 01:17 . > drwxr-xr-x+ 87 doug staff 2958 Apr 8 01:17 .. > -rw-r--r-- 1 doug staff 113 Apr 8 01:09 app.yaml > -rw-r--r-- 1 doug staff 83 Apr 8 00:54 helloworld.py > mbp2:helloworld doug$ dev_appserver.py -d /Users/doug/helloworld > ERROR 2008-04-08 01:18:34,145 dev_appserver_main.py] Fatal error > when loading application configuration: > > mbp2:helloworld doug$ cat app.yaml > application: helloworld > version: 1 > runtime: python > api_version: 1 > > handlers: > - url:/.* > script: helloworld.py > > > > > Douglas Sims > Doug at Apley.com > > > > On Apr 8, 2008, at 1:13 AM, Guido van Rossum wrote: > > You must first create an app.yaml file in that directory. > > > > On Mon, Apr 7, 2008 at 11:06 PM, Douglas Sims wrote: > >> > >> Yes. This seems rather momentous. > >> > >> I wonder how many people around the world aren't going to sleep any > >> tonight? I think I'm going to be one. > >> > >> I requested an invite at about 9:30 (Central time) and got one at > >> 12:03 > >> > >> Haven't got the paths straight yet though... > >> > >> mbp2:helloworld doug$ dev_appserver.py -d /home/doug/helloworld/ > >> Traceback (most recent call last): > >> File "/usr/local/bin/dev_appserver.py", line 50, in > >> execfile(script_path, globals()) > >> File "/usr/local/google_appengine/google/appengine/tools/ > >> dev_appserver_main.py", line 338, in > >> sys.exit(main(sys.argv)) > >> File "/usr/local/google_appengine/google/appengine/tools/ > >> dev_appserver_main.py", line 287, in main > >> config, matcher = dev_appserver.LoadAppConfig(root_path, {}) > >> File "/usr/local/google_appengine/google/appengine/tools/ > >> dev_appserver.py", line 2415, in LoadAppConfig > >> raise AppConfigNotFoundError > >> google.appengine.tools.dev_appserver.AppConfigNotFoundError > >> > >> > >> Douglas Sims > >> Doug at Apley.com > >> > >> > >> > >> > >> > >> On Apr 8, 2008, at 12:55 AM, Shannon -jj Behrens wrote: > >>> http://code.google.com/appengine/docs/whatisgoogleappengine.html > >>> > >>> Does anyone else feel as overwhelmed as I do? > >>> > >>> -jj > >>> > >>> -- > >>> I, for one, welcome our new Facebook overlords! > >>> http://jjinux.blogspot.com/ > >>> _______________________________________________ > >>> Baypiggies mailing list > >>> Baypiggies at python.org > >>> To change your subscription options or unsubscribe: > >>> http://mail.python.org/mailman/listinfo/baypiggies > >> > >> _______________________________________________ > >> Baypiggies mailing list > >> Baypiggies at python.org > >> To change your subscription options or unsubscribe: > >> http://mail.python.org/mailman/listinfo/baypiggies > >> > > > > > > > > -- > > --Guido van Rossum (home page: http://www.python.org/~guido/ > ) > > _______________________________________________ > Baypiggies mailing list > Baypiggies at python.org > To change your subscription options or unsubscribe: > http://mail.python.org/mailman/listinfo/baypiggies > -- David Cramer Director of Technology iBegin http://www.ibegin.com/ -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.python.org/pipermail/baypiggies/attachments/20080407/682ec174/attachment-0001.htm From spmcinerney at hotmail.com Tue Apr 8 08:29:49 2008 From: spmcinerney at hotmail.com (Stephen McInerney) Date: Mon, 7 Apr 2008 23:29:49 -0700 Subject: [Baypiggies] Google App Engine In-Reply-To: References: Message-ID: > http://code.google.com/appengine/docs/whatisgoogleappengine.html> > Does anyone else feel as overwhelmed as I do? Particularly impressive that Python is the primary language. Stephen _________________________________________________________________ Use video conversation to talk face-to-face with Windows Live Messenger. http://www.windowslive.com/messenger/connect_your_way.html?ocid=TXT_TAGLM_WL_Refresh_messenger_video_042008 -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.python.org/pipermail/baypiggies/attachments/20080407/db3f2a38/attachment.htm From p at ulmcnett.com Tue Apr 8 15:56:01 2008 From: p at ulmcnett.com (=?UTF-8?B?UGF1bCBNwqJOZXR0?=) Date: Tue, 08 Apr 2008 06:56:01 -0700 Subject: [Baypiggies] Google App Engine In-Reply-To: References: Message-ID: <47FB7971.6050508@ulmcnett.com> Shannon -jj Behrens wrote: > http://code.google.com/appengine/docs/whatisgoogleappengine.html > > Does anyone else feel as overwhelmed as I do? This is just crazy cool. I have a feeling I'm way down low on the waiting list, but looking at the SDK I'm just itching to try it out. Go Python! Paul From millman at berkeley.edu Tue Apr 8 21:23:24 2008 From: millman at berkeley.edu (Jarrod Millman) Date: Tue, 8 Apr 2008 12:23:24 -0700 Subject: [Baypiggies] bayPIGgies meeting Thursday 4/10: PyCon reports In-Reply-To: <41922ed68e4e505d8fa1279c48a48f12@well.com> References: <41922ed68e4e505d8fa1279c48a48f12@well.com> Message-ID: Hey, I know this is very last minute, but I ended up organizing a NumPy/SciPy sprint at Berkeley very last minute. Anyway, Eric Jones (the CEO of Enthought and one of the founders of SciPy) is visiting. Also, Fernando Perez (the main author of IPython) has just started working at Berkeley and is here as well. We were thinking about coming down for the BayPiggies meeting on Thursday night. Anyway, Eric would be willing to put together a very brief presentation on SciPy or the Enthought tool suite. Sorry for bringing this up at the last minute. We would obviously understand if this is too late to modify the night's agenda. Please let me know if this might be of interest to the group. Thanks, -- Jarrod Millman Computational Infrastructure for Research Labs 10 Giannini Hall, UC Berkeley phone: 510.643.4014 http://cirl.berkeley.edu/ From glen at glenjarvis.com Tue Apr 8 20:29:38 2008 From: glen at glenjarvis.com (Glen Jarvis) Date: Tue, 8 Apr 2008 11:29:38 -0700 Subject: [Baypiggies] Google App Engine In-Reply-To: References: Message-ID: As a newbie (been programming in core python six months professionally), I don't have experience in all of the web frameworks. In fact, most of what I do is os level python programming. This is something new that I saw come out, and although I only skimmed emails this morning, I'm *very* interested in jumping in with both boots. I have several old PHP web sites I've been trying to migrate over forever. This may be what I need to get that final step (I struggle with sessions right now). I don't even have the details of the Google App Engine yet, but I wanted to get the word out earlier instead of later: Can I get an invitation so I can start learning/using this? {Since I only skimmed email this morning, ignore me if I don't need an invitation. I'll sit down and read everything properly tonight} Cheers, Glen -- 415-680-3964 glen at glenjarvis.com http://www.glenjarvis.com "You must be the change you wish to see in the world." -M. Gandhi On Apr 7, 2008, at 11:29 PM, Stephen McInerney wrote: > > http://code.google.com/appengine/docs/whatisgoogleappengine.html > > > > Does anyone else feel as overwhelmed as I do? > > Particularly impressive that Python is the primary language. > > Stephen > > Use video conversation to talk face-to-face with Windows Live > Messenger. Get started! > _______________________________________________ > Baypiggies mailing list > Baypiggies at python.org > To change your subscription options or unsubscribe: > http://mail.python.org/mailman/listinfo/baypiggies -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.python.org/pipermail/baypiggies/attachments/20080408/0633b40b/attachment.htm From jim at well.com Wed Apr 9 03:16:20 2008 From: jim at well.com (jim stockford) Date: Tue, 8 Apr 2008 18:16:20 -0700 Subject: [Baypiggies] bayPIGgies meeting Thursday 4/10: PyCon reports In-Reply-To: References: <41922ed68e4e505d8fa1279c48a48f12@well.com> Message-ID: <2bececd0ff95e4d242151ab7d7abbe6a@well.com> i don't see how we can announce it beyond our own email list at this point, but yes, for this coming meeting one of the three speakers had to cancel, so it looks like we'll have time, and there's certainly interest. what are the chances we could get a commitment for a full evening's discussion sometime later in the year? On Apr 8, 2008, at 12:23 PM, Jarrod Millman wrote: > Hey, > > I know this is very last minute, but I ended up organizing a > NumPy/SciPy sprint at Berkeley very last minute. Anyway, Eric Jones > (the CEO of Enthought and one of the founders of SciPy) is visiting. > Also, Fernando Perez (the main author of IPython) has just started > working at Berkeley and is here as well. We were thinking about > coming down for the BayPiggies meeting on Thursday night. > > Anyway, Eric would be willing to put together a very brief > presentation on SciPy or the Enthought tool suite. Sorry for bringing > this up at the last minute. We would obviously understand if this is > too late to modify the night's agenda. Please let me know if this > might be of interest to the group. > > Thanks, > > -- > Jarrod Millman > Computational Infrastructure for Research Labs > 10 Giannini Hall, UC Berkeley > phone: 510.643.4014 > http://cirl.berkeley.edu/ > From millman at berkeley.edu Wed Apr 9 03:33:12 2008 From: millman at berkeley.edu (Jarrod Millman) Date: Tue, 8 Apr 2008 18:33:12 -0700 Subject: [Baypiggies] bayPIGgies meeting Thursday 4/10: PyCon reports In-Reply-To: <2bececd0ff95e4d242151ab7d7abbe6a@well.com> References: <41922ed68e4e505d8fa1279c48a48f12@well.com> <2bececd0ff95e4d242151ab7d7abbe6a@well.com> Message-ID: On Tue, Apr 8, 2008 at 6:16 PM, jim stockford wrote: > i don't see how we can announce it beyond our > own email list at this point, but yes, for this coming > meeting one of the three speakers had to cancel, > so it looks like we'll have time, and there's certainly > interest. Excellent. How much time should Eric talk? 15-20 minutes or so? > what are the chances we could get a commitment > for a full evening's discussion sometime later in the > year? Eric just said he would commit to giving a full talk sometime later in the year. Also, Fernando said he would be willing to give a talk about IPython at some point. Thanks, -- Jarrod Millman Computational Infrastructure for Research Labs 10 Giannini Hall, UC Berkeley phone: 510.643.4014 http://cirl.berkeley.edu/ From jim at well.com Wed Apr 9 03:40:27 2008 From: jim at well.com (jim stockford) Date: Tue, 8 Apr 2008 18:40:27 -0700 Subject: [Baypiggies] bayPIGgies meeting Thursday 4/10: PyCon reports In-Reply-To: References: <41922ed68e4e505d8fa1279c48a48f12@well.com> <2bececd0ff95e4d242151ab7d7abbe6a@well.com> Message-ID: 15 to 20 minutes is just right. as to full evening's talks later in the year, great! many thanks, all three. Anybody doing Python on BEE3? (well, i can hope, yes?) On Apr 8, 2008, at 6:33 PM, Jarrod Millman wrote: > On Tue, Apr 8, 2008 at 6:16 PM, jim stockford wrote: >> i don't see how we can announce it beyond our >> own email list at this point, but yes, for this coming >> meeting one of the three speakers had to cancel, >> so it looks like we'll have time, and there's certainly >> interest. > > Excellent. How much time should Eric talk? 15-20 minutes or so? > >> what are the chances we could get a commitment >> for a full evening's discussion sometime later in the >> year? > > Eric just said he would commit to giving a full talk sometime later in > the year. Also, Fernando said he would be willing to give a talk > about IPython at some point. > > Thanks, > > -- > Jarrod Millman > Computational Infrastructure for Research Labs > 10 Giannini Hall, UC Berkeley > phone: 510.643.4014 > http://cirl.berkeley.edu/ > From mrbmahoney at gmail.com Wed Apr 9 05:04:29 2008 From: mrbmahoney at gmail.com (Brian Mahoney) Date: Tue, 8 Apr 2008 19:04:29 -0800 Subject: [Baypiggies] Dinner Announcement - Thursday, April 10, 6 pm Message-ID: <5538c19b0804082004n2e178bfak3dd1cd44b150d69c@mail.gmail.com> For Thursday, April 10, I can coordinate a pre-meeting dinner in Mountain View, before the BayPIGgies meeting at Google . Restaurant reservations may be sent to my email until Thursday afternoon (earlier is better). We eat family-style, there are vegetarian and non-vegetarian dishes. Cost around $10 per person, including tax and tip. Bring cash, please. Start dinner at 6pm and I will keep things moving so that we finish and get everyone headed towards Google to complete sign-in before the 7:30 meeting start. The restaurant is Cafe Yulong in downtown Mountain View (650) 960-1677 743 W Dana Street, 1/2 block from Castro where Books, Inc is on the corner. Parking lots all around, but downtown Mountain View parking can be difficult. It is a slightly out of the ordinary Chinese restaurant. This link has a downtown map and additional information. http://www.mountainviewca.net/restaurants/cafeyulong.html I've made reservations under "Python" for 6pm Thursday. If you wish to join us for dinner please e-mail me by 3 pm Thursday (earlier is better) so I may confirm the headcount. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.python.org/pipermail/baypiggies/attachments/20080408/d7f6d627/attachment.htm From wescpy at gmail.com Wed Apr 9 05:47:56 2008 From: wescpy at gmail.com (wesley chun) Date: Tue, 8 Apr 2008 20:47:56 -0700 Subject: [Baypiggies] Google App Engine In-Reply-To: References: Message-ID: <78b3a9580804082047h2c5c3af6ude4eef1721b491e7@mail.gmail.com> wow, this is really amazing. this release took me by surprise. i understand that GOOG cut-n-pasted a few pieces of Django behind the scenes. it's good that they made their infrastructure a backbone to drive this thing. i look fwd to creating apps! -wesley From p at ulmcnett.com Wed Apr 9 06:00:35 2008 From: p at ulmcnett.com (=?UTF-8?B?UGF1bCBNwqJOZXR0?=) Date: Tue, 08 Apr 2008 21:00:35 -0700 Subject: [Baypiggies] Google App Engine In-Reply-To: <78b3a9580804082047h2c5c3af6ude4eef1721b491e7@mail.gmail.com> References: <78b3a9580804082047h2c5c3af6ude4eef1721b491e7@mail.gmail.com> Message-ID: <47FC3F63.6040002@ulmcnett.com> wesley chun wrote: > wow, this is really amazing. this release took me by surprise. i > understand that GOOG cut-n-pasted a few pieces of Django behind the > scenes. it's good that they made their infrastructure a backbone to > drive this thing. i look fwd to creating apps! I was initially befuddled by not being able to save to disk or connect to sockets. But then I came to the DataStore API, and GQL. My mind is spinning... ...has anyone put up a live Python interpreter yet? ;) Paul From progrium at gmail.com Wed Apr 9 06:04:50 2008 From: progrium at gmail.com (Jeff Lindsay) Date: Tue, 8 Apr 2008 21:04:50 -0700 Subject: [Baypiggies] Google App Engine In-Reply-To: <47FC3F63.6040002@ulmcnett.com> References: <78b3a9580804082047h2c5c3af6ude4eef1721b491e7@mail.gmail.com> <47FC3F63.6040002@ulmcnett.com> Message-ID: Somebody made this. Seems a little broken though. http://shell.appspot.com/ On Tue, Apr 8, 2008 at 9:00 PM, Paul M?Nett

wrote: > wesley chun wrote: > > wow, this is really amazing. this release took me by surprise. i > > understand that GOOG cut-n-pasted a few pieces of Django behind the > > scenes. it's good that they made their infrastructure a backbone to > > drive this thing. i look fwd to creating apps! > > I was initially befuddled by not being able to save to disk or connect > to sockets. But then I came to the DataStore API, and GQL. My mind is > spinning... > > ...has anyone put up a live Python interpreter yet? ;) > > Paul > > > > _______________________________________________ > Baypiggies mailing list > Baypiggies at python.org > To change your subscription options or unsubscribe: > http://mail.python.org/mailman/listinfo/baypiggies > -- Jeff Lindsay http://devjavu.com -- Free Trac and Subversion http://blogrium.com -- A blog about things From dpb at donbennett.org Wed Apr 9 06:08:15 2008 From: dpb at donbennett.org (Don Bennett) Date: Tue, 08 Apr 2008 21:08:15 -0700 Subject: [Baypiggies] Google App Engine [ BULKTAG PYTHONTAG ] In-Reply-To: <47FC3F63.6040002@ulmcnett.com> References: <78b3a9580804082047h2c5c3af6ude4eef1721b491e7@mail.gmail.com> <47FC3F63.6040002@ulmcnett.com> Message-ID: <47FC412F.7090701@donbennett.org> Yup - found this in the list of sample apps: http://shell.appspot.com/ Don Paul M?Nett wrote: > wesley chun wrote: > >> wow, this is really amazing. this release took me by surprise. i >> understand that GOOG cut-n-pasted a few pieces of Django behind the >> scenes. it's good that they made their infrastructure a backbone to >> drive this thing. i look fwd to creating apps! >> > > I was initially befuddled by not being able to save to disk or connect > to sockets. But then I came to the DataStore API, and GQL. My mind is > spinning... > > ...has anyone put up a live Python interpreter yet? ;) > > Paul > > _______________________________________________ > Baypiggies mailing list > Baypiggies at python.org > To change your subscription options or unsubscribe: > http://mail.python.org/mailman/listinfo/baypiggies > > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.python.org/pipermail/baypiggies/attachments/20080408/3c90fba7/attachment.htm From glen at glenjarvis.com Wed Apr 9 06:55:32 2008 From: glen at glenjarvis.com (Glen Jarvis) Date: Tue, 8 Apr 2008 21:55:32 -0700 Subject: [Baypiggies] Google I/O In-Reply-To: <20080407225429.a88b5a45d4f18442e3264b556d999a36.41bf2bd599.wbe@email.secureserver.net> References: <20080407225429.a88b5a45d4f18442e3264b556d999a36.41bf2bd599.wbe@email.secureserver.net> Message-ID: <11A7B7BD-9556-4A0E-B100-69A033B9BB5E@glenjarvis.com> When watching videos on Google Web App, I saw an announcement for Google I/O (http://code.google.com/events/io/). Below is just a snippet to show relevance to Python. Is anyone else from BayPIGgies considering attending? Rapid Development with Python, Django and Google App Engine Guido van Rossum Type: 101 Learn how to create great web applications quickly on Google App Engine using the Django web framework and the Python language. Google App Engine lets you host complete, scalable web applications written in Python with minimal fuss. This tutorial assumes basic familiarity with Python but definitely no advanced Python knowlege; Django experience is optional. You will learn how to use the Django web framework with the datastore API provided by Google App Engine, and how to get the most mileage out of the combination. You will also see how to use Django best practices like unit testing when developing for Google App Engine. Building Scalable Web Applications with Google App Engine Brett Slatkin Type: 201 In this session we'll cover techniques you can use to improve your application's performance when you surpass a simple application size. We'll discuss Python runtime tricks, various types of caching, dynamic module loading, and App Engine Python idioms. We will also cover common strategies for scaling web applications to millions of users. Painless Python for Programmers Alex Martelli Type: 101 Python is a popular very-high-level programming language, with a clean and spare syntax, simple and regular semantics, a large standard library and a wealth of third-party extensions, libraries and tools. With several production-quality open-source implementations available, many excellent books, and growing acceptance in both industry and academia, Python can play some useful role within a huge variety of software development projects. Moreover, Python is really easy to learn, particularly (though not exclusively) for programmers who are skilled at such languages as Java, C++ and C. This talk addresses software developers who are experienced in other languages but have had limited or no exposure to Python yet, and offers a rapid overview of the main characteristics of the language, plus a brief synopsis of its main implementations, its standard library, and Python's use with Google App Engine. Cheers, Glen -- 415-680-3964 glen at glenjarvis.com http://www.glenjarvis.com "You must be the change you wish to see in the world." -M. Gandhi On Apr 7, 2008, at 10:54 PM, Bjorn Tipling wrote: > Pretty cool news isn't it? I don't suppose anyone might have an extra > invite? > > Yay! > > Hopefully I didn't send this message twice. > > _______________________________________________ > Baypiggies mailing list > Baypiggies at python.org > To change your subscription options or unsubscribe: > http://mail.python.org/mailman/listinfo/baypiggies -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.python.org/pipermail/baypiggies/attachments/20080408/54ac6f6a/attachment.htm From charles.merriam at gmail.com Wed Apr 9 00:51:07 2008 From: charles.merriam at gmail.com (Charles Merriam) Date: Tue, 8 Apr 2008 15:51:07 -0700 Subject: [Baypiggies] bayPIGgies meeting Thursday 4/10: PyCon reports In-Reply-To: References: <41922ed68e4e505d8fa1279c48a48f12@well.com> Message-ID: YES On 4/8/08, Jarrod Millman wrote: > Hey, > > I know this is very last minute, but I ended up organizing a > NumPy/SciPy sprint at Berkeley very last minute. Anyway, Eric Jones > (the CEO of Enthought and one of the founders of SciPy) is visiting. > Also, Fernando Perez (the main author of IPython) has just started > working at Berkeley and is here as well. We were thinking about > coming down for the BayPiggies meeting on Thursday night. > > Anyway, Eric would be willing to put together a very brief > presentation on SciPy or the Enthought tool suite. Sorry for bringing > this up at the last minute. We would obviously understand if this is > too late to modify the night's agenda. Please let me know if this > might be of interest to the group. > > Thanks, > > -- > Jarrod Millman > Computational Infrastructure for Research Labs > 10 Giannini Hall, UC Berkeley > phone: 510.643.4014 > http://cirl.berkeley.edu/ > _______________________________________________ > Baypiggies mailing list > Baypiggies at python.org > To change your subscription options or unsubscribe: > http://mail.python.org/mailman/listinfo/baypiggies > From spmcinerney at hotmail.com Tue Apr 8 21:52:59 2008 From: spmcinerney at hotmail.com (Stephen McInerney) Date: Tue, 8 Apr 2008 12:52:59 -0700 Subject: [Baypiggies] bayPIGgies meeting Thursday 4/10: PyCon reports In-Reply-To: References: <41922ed68e4e505d8fa1279c48a48f12@well.com> Message-ID: ++++ ! I've been asking the Enthought guys to come for about five years now! Enghought Python is a great batteries-included package for scientific users in Windowsland. Regards, Stephen _________________________________________________________________ Get in touch in an instant. Get Windows Live Messenger now. http://www.windowslive.com/messenger/overview.html?ocid=TXT_TAGLM_WL_Refresh_getintouch_042008 -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.python.org/pipermail/baypiggies/attachments/20080408/e73f17c2/attachment-0001.htm From jjinux at gmail.com Wed Apr 9 10:21:59 2008 From: jjinux at gmail.com (Shannon -jj Behrens) Date: Wed, 9 Apr 2008 01:21:59 -0700 Subject: [Baypiggies] bayPIGgies meeting Thursday 4/10: PyCon reports In-Reply-To: References: <41922ed68e4e505d8fa1279c48a48f12@well.com> Message-ID: On Tue, Apr 8, 2008 at 12:23 PM, Jarrod Millman wrote: > Hey, > > I know this is very last minute, but I ended up organizing a > NumPy/SciPy sprint at Berkeley very last minute. Anyway, Eric Jones > (the CEO of Enthought and one of the founders of SciPy) is visiting. > Also, Fernando Perez (the main author of IPython) has just started > working at Berkeley and is here as well. We were thinking about > coming down for the BayPiggies meeting on Thursday night. > > Anyway, Eric would be willing to put together a very brief > presentation on SciPy or the Enthought tool suite. Sorry for bringing > this up at the last minute. We would obviously understand if this is > too late to modify the night's agenda. Please let me know if this > might be of interest to the group. Two thumbs way up! -jj -- I, for one, welcome our new Facebook overlords! http://jjinux.blogspot.com/ From p at ulmcnett.com Wed Apr 9 14:36:01 2008 From: p at ulmcnett.com (=?UTF-8?B?UGF1bCBNwqJOZXR0?=) Date: Wed, 09 Apr 2008 05:36:01 -0700 Subject: [Baypiggies] Google I/O In-Reply-To: <11A7B7BD-9556-4A0E-B100-69A033B9BB5E@glenjarvis.com> References: <20080407225429.a88b5a45d4f18442e3264b556d999a36.41bf2bd599.wbe@email.secureserver.net> <11A7B7BD-9556-4A0E-B100-69A033B9BB5E@glenjarvis.com> Message-ID: <47FCB831.1010406@ulmcnett.com> Glen Jarvis wrote: > When watching videos on Google Web App, I saw an announcement for Google > I/O (http://code.google.com/events/io/). Below is just a snippet to > show relevance to Python. Is anyone else from BayPIGgies considering > attending? I'm considering it. Paul From eric at ericwalstad.com Wed Apr 9 18:13:17 2008 From: eric at ericwalstad.com (Eric Walstad) Date: Wed, 9 Apr 2008 09:13:17 -0700 Subject: [Baypiggies] Google I/O In-Reply-To: <11A7B7BD-9556-4A0E-B100-69A033B9BB5E@glenjarvis.com> References: <20080407225429.a88b5a45d4f18442e3264b556d999a36.41bf2bd599.wbe@email.secureserver.net> <11A7B7BD-9556-4A0E-B100-69A033B9BB5E@glenjarvis.com> Message-ID: On Tue, Apr 8, 2008 at 9:55 PM, Glen Jarvis wrote: > I saw an announcement for Google I/O > (http://code.google.com/events/io/). > Is anyone else from BayPIGgies considering attending? I'm going, schedule permitting. Did you find a schedule that shows the session times? It matters to me to be able to verify which sessions happen at the same time. I didn't even see a mapping between their session types and each session. I'd be bummed if I forked out the money and found that all my target sessions were happening at the same time. Anyone from Google listening? Eric From glen at glenjarvis.com Wed Apr 9 18:04:47 2008 From: glen at glenjarvis.com (Glen Jarvis) Date: Wed, 9 Apr 2008 09:04:47 -0700 Subject: [Baypiggies] Google App Engine -> Bulk Loader In-Reply-To: References: <41922ed68e4e505d8fa1279c48a48f12@well.com> Message-ID: <83BE93A5-C1B7-42E8-A84F-280A638EEE46@glenjarvis.com> Because I primarily store data in MySQL databases, I needed to learn about BigTable and the Google Data Store in Google App Engine. I'm very interested in the Data Store's bulk loader. I don't see the article from google on this is finished yet. Does anyone here know how this can be done? Is it in Python object format of a type of flat file format, or something else? Cheers, Glen -- 415-680-3964 glen at glenjarvis.com http://www.glenjarvis.com "You must be the change you wish to see in the world." -M. Gandhi From guido at python.org Wed Apr 9 18:22:36 2008 From: guido at python.org (Guido van Rossum) Date: Wed, 9 Apr 2008 09:22:36 -0700 Subject: [Baypiggies] Google App Engine -> Bulk Loader In-Reply-To: <83BE93A5-C1B7-42E8-A84F-280A638EEE46@glenjarvis.com> References: <41922ed68e4e505d8fa1279c48a48f12@well.com> <83BE93A5-C1B7-42E8-A84F-280A638EEE46@glenjarvis.com> Message-ID: http://code.google.com/appengine/articles/bulkload.html On Wed, Apr 9, 2008 at 9:04 AM, Glen Jarvis wrote: > Because I primarily store data in MySQL databases, I needed to learn > about BigTable and the Google Data Store in Google App Engine. I'm > very interested in the Data Store's bulk loader. I don't see the > article from google on this is finished yet. > > Does anyone here know how this can be done? Is it in Python object > format of a type of flat file format, or something else? > > Cheers, > > > Glen > -- > 415-680-3964 > glen at glenjarvis.com > http://www.glenjarvis.com > > "You must be the change you wish to see in the world." -M. Gandhi > > > _______________________________________________ > Baypiggies mailing list > Baypiggies at python.org > To change your subscription options or unsubscribe: > http://mail.python.org/mailman/listinfo/baypiggies > -- --Guido van Rossum (home page: http://www.python.org/~guido/) From lhawthorn at google.com Wed Apr 9 18:23:08 2008 From: lhawthorn at google.com (Leslie Hawthorn) Date: Wed, 9 Apr 2008 09:23:08 -0700 Subject: [Baypiggies] Google I/O In-Reply-To: References: <20080407225429.a88b5a45d4f18442e3264b556d999a36.41bf2bd599.wbe@email.secureserver.net> <11A7B7BD-9556-4A0E-B100-69A033B9BB5E@glenjarvis.com> Message-ID: <4869cee70804090923w43bffbd4g2c35c85155470f2d@mail.gmail.com> On Wed, Apr 9, 2008 at 9:13 AM, Eric Walstad wrote: > On Tue, Apr 8, 2008 at 9:55 PM, Glen Jarvis wrote: > > I saw an announcement for Google I/O > > (http://code.google.com/events/io/). > > Is anyone else from BayPIGgies considering attending? > > I'm going, schedule permitting. > Did you find a schedule that shows the session times? It matters to > me to be able to verify which sessions happen at the same time. I > didn't even see a mapping between their session types and each > session. I'd be bummed if I forked out the money and found that all > my target sessions were happening at the same time. This is the only schedule available thus far: http://code.google.com/events/io/agenda.html I'll mention to the team that something more granular would be appreciated. > > > Anyone from Google listening? > Yes. Hi Eric! :) -- Leslie Hawthorn Program Manager - Open Source Google Inc. http://code.google.com/opensource/ I blog here: http://google-opensource.blogspot.com - http://www.hawthornlandings.org -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.python.org/pipermail/baypiggies/attachments/20080409/416ea7a7/attachment.htm From glen at glenjarvis.com Wed Apr 9 18:30:11 2008 From: glen at glenjarvis.com (Glen Jarvis) Date: Wed, 9 Apr 2008 09:30:11 -0700 Subject: [Baypiggies] Google I/O In-Reply-To: References: <20080407225429.a88b5a45d4f18442e3264b556d999a36.41bf2bd599.wbe@email.secureserver.net> <11A7B7BD-9556-4A0E-B100-69A033B9BB5E@glenjarvis.com> Message-ID: <04794F4A-886C-4782-9933-BA0466A97E15@glenjarvis.com> I didn't see which sessions were offered at which times. But, I did see a schedule for the day. I would assume that all sessions under the 'type' are offered when that 'type' is in the schedule. Does that make any sense? Glen -- 415-680-3964 glen at glenjarvis.com http://www.glenjarvis.com "You must be the change you wish to see in the world." -M. Gandhi On Apr 9, 2008, at 9:13 AM, Eric Walstad wrote: > On Tue, Apr 8, 2008 at 9:55 PM, Glen Jarvis > wrote: >> I saw an announcement for Google I/O >> (http://code.google.com/events/io/). >> Is anyone else from BayPIGgies considering attending? > > I'm going, schedule permitting. > Did you find a schedule that shows the session times? It matters to > me to be able to verify which sessions happen at the same time. I > didn't even see a mapping between their session types and each > session. I'd be bummed if I forked out the money and found that all > my target sessions were happening at the same time. > > Anyone from Google listening? > > Eric From glen at glenjarvis.com Wed Apr 9 18:37:06 2008 From: glen at glenjarvis.com (Glen Jarvis) Date: Wed, 9 Apr 2008 09:37:06 -0700 Subject: [Baypiggies] Google App Engine -> Bulk Loader In-Reply-To: References: <41922ed68e4e505d8fa1279c48a48f12@well.com> <83BE93A5-C1B7-42E8-A84F-280A638EEE46@glenjarvis.com> Message-ID: <26C233E9-547D-4D4A-B309-7BC4289B92A9@glenjarvis.com> Thank you, Guido. When trying to manipulate the datastore directly from my Dashboard, I saw a link that suggested using the bulk loader. When going to that link, I saw that the 'article wasn't written yet.' I'm not sure if this is helpful in finding a dead link or not. Regardless, thanks for the link! Cheers, Glen -- 415-680-3964 glen at glenjarvis.com http://www.glenjarvis.com "You must be the change you wish to see in the world." -M. Gandhi On Apr 9, 2008, at 9:22 AM, Guido van Rossum wrote: > http://code.google.com/appengine/articles/bulkload.html > > On Wed, Apr 9, 2008 at 9:04 AM, Glen Jarvis > wrote: >> Because I primarily store data in MySQL databases, I needed to learn >> about BigTable and the Google Data Store in Google App Engine. I'm >> very interested in the Data Store's bulk loader. I don't see the >> article from google on this is finished yet. >> >> Does anyone here know how this can be done? Is it in Python object >> format of a type of flat file format, or something else? >> >> Cheers, >> >> >> Glen >> -- >> 415-680-3964 >> glen at glenjarvis.com >> http://www.glenjarvis.com >> >> "You must be the change you wish to see in the world." -M. Gandhi >> >> >> _______________________________________________ >> Baypiggies mailing list >> Baypiggies at python.org >> To change your subscription options or unsubscribe: >> http://mail.python.org/mailman/listinfo/baypiggies >> > > > > -- > --Guido van Rossum (home page: http://www.python.org/~guido/) From guido at python.org Wed Apr 9 20:23:50 2008 From: guido at python.org (Guido van Rossum) Date: Wed, 9 Apr 2008 11:23:50 -0700 Subject: [Baypiggies] Google App Engine -> Bulk Loader In-Reply-To: <26C233E9-547D-4D4A-B309-7BC4289B92A9@glenjarvis.com> References: <41922ed68e4e505d8fa1279c48a48f12@well.com> <83BE93A5-C1B7-42E8-A84F-280A638EEE46@glenjarvis.com> <26C233E9-547D-4D4A-B309-7BC4289B92A9@glenjarvis.com> Message-ID: Do you have the URL for the page that contained the not-so-useful link? On Wed, Apr 9, 2008 at 9:37 AM, Glen Jarvis wrote: > Thank you, Guido. > > When trying to manipulate the datastore directly from my Dashboard, I saw a > link that suggested using the bulk loader. When going to that link, I saw > that the 'article wasn't written yet.' I'm not sure if this is helpful in > finding a dead link or not. > > Regardless, thanks for the link! > > > > Cheers, > > > Glen > -- > 415-680-3964 > glen at glenjarvis.com > http://www.glenjarvis.com > > "You must be the change you wish to see in the world." -M. Gandhi > > > > On Apr 9, 2008, at 9:22 AM, Guido van Rossum wrote: > > > > http://code.google.com/appengine/articles/bulkload.html > > > > On Wed, Apr 9, 2008 at 9:04 AM, Glen Jarvis wrote: > > > > > Because I primarily store data in MySQL databases, I needed to learn > > > about BigTable and the Google Data Store in Google App Engine. I'm > > > very interested in the Data Store's bulk loader. I don't see the > > > article from google on this is finished yet. > > > > > > Does anyone here know how this can be done? Is it in Python object > > > format of a type of flat file format, or something else? > > > > > > Cheers, > > > > > > > > > Glen > > > -- > > > 415-680-3964 > > > glen at glenjarvis.com > > > http://www.glenjarvis.com > > > > > > "You must be the change you wish to see in the world." -M. Gandhi > > > > > > > > > _______________________________________________ > > > Baypiggies mailing list > > > Baypiggies at python.org > > > To change your subscription options or unsubscribe: > > > http://mail.python.org/mailman/listinfo/baypiggies > > > > > > > > > > > > > > -- > > --Guido van Rossum (home page: http://www.python.org/~guido/) > > > > -- --Guido van Rossum (home page: http://www.python.org/~guido/) From glen at glenjarvis.com Wed Apr 9 20:56:15 2008 From: glen at glenjarvis.com (Glen Jarvis) Date: Wed, 9 Apr 2008 11:56:15 -0700 Subject: [Baypiggies] Google App Engine | Data Store | Interval Data type In-Reply-To: References: <20080407225429.a88b5a45d4f18442e3264b556d999a36.41bf2bd599.wbe@email.secureserver.net> <11A7B7BD-9556-4A0E-B100-69A033B9BB5E@glenjarvis.com> <04794F4A-886C-4782-9933-BA0466A97E15@glenjarvis.com> Message-ID: In trying to port my application to Google's App Engine, I got stuck trying to port my data to the Data store. I need an 'interval' data type. Example data points include "3 hours, 2 minutes and 13 seconds" and "0 hours, 45 minutes and 15 seconds." (not stored as string, of course, but as a time interval). The only types I can find in the AppEngine is below. I'm certain there is a method of storing such a thing. My source data has start_time and interval, so I can't subtract end_time and start_time and store the result as a time of that length (which sounds very hackish). Has anyone run into this yet? DateTimeProperty DateProperty TimeProperty datetime.datetime Chronological class DateTimeProperty(verbose_name=None, auto_now=False, auto_now_add=False, ...) A date and time property. If auto_now is True, the property value is set to the current time whenever the model instance is stored in the datastore, overwriting the property's previous value. This is useful for tracking a "last modified" date and time for a model instance. If auto_now_add is True, the property value is set to the current time the first time the model instance is stored in the datastore, unless the property has already been assigned a value. This is useful for storing a "created" date and time for a model instance. Date-time values are stored as and returned using the UTC time zone. See datetime.datetime for a discussion of how to manage time zones. Value type: datetime.datetime Cheers, Glen -- 415-680-3964 glen at glenjarvis.com http://www.glenjarvis.com "You must be the change you wish to see in the world." -M. Gandhi On Apr 9, 2008, at 9:51 AM, Glen Jarvis wrote: > Cancel what I said. It was assuming that every session was a repeat > all day long. Also, I just reviewed the calendar (below). I should > have checked on the 'type' of breakout sessions in the schedule. It > was silly of me for not looking and only assuming it was listed. > > Thanks for pointing this out too. Because, the price is actually > quite steep for me (I wish I were still a student this year). I'd > hate to pay that and realize that I didn't get the few sessions I > wanted (like the datastore one). > > > Wednesday, May 28th 2008 > 8:30 AM > 9:30 AM > 11:15 AM - 5:15 PM > 11:15 AM - 4:00 PM > 12:00 PM - 2:00 PM > 6:30 PM - 10:30 PM > Registration > Keynote > Breakout sessions > Code Labs > Lunch served > After Hours at Google I/O > Thursday, May 29th 2008 > 8:00 AM > 9:00 AM - 10:00 AM > 10:15 AM - 4:15 PM > 10:15 AM - 4:15 PM > 11:15 AM - 4:00 PM > 12:00 PM - 2:00 PM > Breakfast > General sessions > Breakout sessions > Unconference sessions > Code Labs > Lunch served > > > > > > > > > > > > > > > > On Apr 9, 2008, at 9:30 AM, Glen Jarvis wrote: >> I didn't see which sessions were offered at which times. But, I did >> see a schedule for the day. I would assume that all sessions under >> the >> 'type' are offered when that 'type' is in the schedule. Does that >> make >> any sense? >> >> >> Glen >> -- >> 415-680-3964 >> glen at glenjarvis.com >> http://www.glenjarvis.com >> >> "You must be the change you wish to see in the world." -M. Gandhi >> >> >> On Apr 9, 2008, at 9:13 AM, Eric Walstad wrote: >> >>> On Tue, Apr 8, 2008 at 9:55 PM, Glen Jarvis >>> wrote: >>>> I saw an announcement for Google I/O >>>> (http://code.google.com/events/io/). >>>> Is anyone else from BayPIGgies considering attending? >>> >>> I'm going, schedule permitting. >>> Did you find a schedule that shows the session times? It matters to >>> me to be able to verify which sessions happen at the same time. I >>> didn't even see a mapping between their session types and each >>> session. I'd be bummed if I forked out the money and found that all >>> my target sessions were happening at the same time. >>> >>> Anyone from Google listening? >>> >>> Eric >> >> _______________________________________________ >> Baypiggies mailing list >> Baypiggies at python.org >> To change your subscription options or unsubscribe: >> http://mail.python.org/mailman/listinfo/baypiggies > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.python.org/pipermail/baypiggies/attachments/20080409/12b83e3c/attachment-0001.htm From guido at python.org Wed Apr 9 23:24:45 2008 From: guido at python.org (Guido van Rossum) Date: Wed, 9 Apr 2008 14:24:45 -0700 Subject: [Baypiggies] Google App Engine | Data Store | Interval Data type In-Reply-To: References: <20080407225429.a88b5a45d4f18442e3264b556d999a36.41bf2bd599.wbe@email.secureserver.net> <11A7B7BD-9556-4A0E-B100-69A033B9BB5E@glenjarvis.com> <04794F4A-886C-4782-9933-BA0466A97E15@glenjarvis.com> Message-ID: I'd store this as an int (or float) expressed in seconds. It's trivial to convert that to a datetime.timedelta instance. On Wed, Apr 9, 2008 at 11:56 AM, Glen Jarvis wrote: > > In trying to port my application to Google's App Engine, I got stuck trying > to port my data to the Data store. I need an 'interval' data type. Example > data points include "3 hours, 2 minutes and 13 seconds" and "0 hours, 45 > minutes and 15 seconds." (not stored as string, of course, but as a time > interval). > > The only types I can find in the AppEngine is below. I'm certain there is a > method of storing such a thing. My source data has start_time and interval, > so I can't subtract end_time and start_time and store the result as a time > of that length (which sounds very hackish). > > > Has anyone run into this yet? > > > DateTimeProperty > DateProperty > TimeProperty > datetime.datetimeChronological > > class DateTimeProperty(verbose_name=None, auto_now=False, > auto_now_add=False, ...) > A date and time property. > If auto_now is True, the property value is set to the current time whenever > the model instance is stored in the datastore, overwriting the property's > previous value. This is useful for tracking a "last modified" date and time > for a model instance. > If auto_now_add is True, the property value is set to the current time the > first time the model instance is stored in the datastore, unless the > property has already been assigned a value. This is useful for storing a > "created" date and time for a model instance. > Date-time values are stored as and returned using the UTC time zone. See > datetime.datetime for a discussion of how to manage time zones. > Value type: datetime.datetime > > > Cheers, > > > Glen > > -- > 415-680-3964 > glen at glenjarvis.com > http://www.glenjarvis.com > > "You must be the change you wish to see in the world." -M. Gandhi > > On Apr 9, 2008, at 9:51 AM, Glen Jarvis wrote: > > Cancel what I said. It was assuming that every session was a repeat all day > long. Also, I just reviewed the calendar (below). I should have checked on > the 'type' of breakout sessions in the schedule. It was silly of me for not > looking and only assuming it was listed. > > Thanks for pointing this out too. Because, the price is actually quite steep > for me (I wish I were still a student this year). I'd hate to pay that and > realize that I didn't get the few sessions I wanted (like the datastore > one). > > > > Wednesday, May 28th 2008 > > 8:30 AM > 9:30 AM > 11:15 AM - 5:15 PM > 11:15 AM - 4:00 PM > 12:00 PM - 2:00 PM > 6:30 PM - 10:30 PM > > Registration > Keynote > Breakout sessions > Code Labs > Lunch served > After Hours at Google I/O > Thursday, May 29th 2008 > > 8:00 AM > 9:00 AM - 10:00 AM > 10:15 AM - 4:15 PM > 10:15 AM - 4:15 PM > 11:15 AM - 4:00 PM > 12:00 PM - 2:00 PM > > Breakfast > General sessions > Breakout sessions > Unconference sessions > Code Labs > Lunch served > > > > > > > > > > > > > > > > > On Apr 9, 2008, at 9:30 AM, Glen Jarvis wrote: > I didn't see which sessions were offered at which times. But, I did > see a schedule for the day. I would assume that all sessions under the > 'type' are offered when that 'type' is in the schedule. Does that make > any sense? > > > Glen > -- > 415-680-3964 > glen at glenjarvis.com > http://www.glenjarvis.com > > "You must be the change you wish to see in the world." -M. Gandhi > > > On Apr 9, 2008, at 9:13 AM, Eric Walstad wrote: > > On Tue, Apr 8, 2008 at 9:55 PM, Glen Jarvis > wrote: > > I saw an announcement for Google I/O > > (http://code.google.com/events/io/). > > Is anyone else from BayPIGgies considering attending? > > I'm going, schedule permitting. > Did you find a schedule that shows the session times? It matters to > me to be able to verify which sessions happen at the same time. I > didn't even see a mapping between their session types and each > session. I'd be bummed if I forked out the money and found that all > my target sessions were happening at the same time. > > Anyone from Google listening? > > Eric > > _______________________________________________ > Baypiggies mailing list > Baypiggies at python.org > To change your subscription options or unsubscribe: > http://mail.python.org/mailman/listinfo/baypiggies > > > > _______________________________________________ > Baypiggies mailing list > Baypiggies at python.org > To change your subscription options or unsubscribe: > http://mail.python.org/mailman/listinfo/baypiggies > -- --Guido van Rossum (home page: http://www.python.org/~guido/) From eric at ericwalstad.com Wed Apr 9 23:41:06 2008 From: eric at ericwalstad.com (Eric Walstad) Date: Wed, 9 Apr 2008 14:41:06 -0700 Subject: [Baypiggies] Google App Engine | Data Store | Interval Data type In-Reply-To: References: <20080407225429.a88b5a45d4f18442e3264b556d999a36.41bf2bd599.wbe@email.secureserver.net> <11A7B7BD-9556-4A0E-B100-69A033B9BB5E@glenjarvis.com> <04794F4A-886C-4782-9933-BA0466A97E15@glenjarvis.com> Message-ID: On Wed, Apr 9, 2008 at 11:56 AM, Glen Jarvis wrote: > > In trying to port my application to Google's App Engine, I got stuck trying > to port my data to the Data store. I need an 'interval' data type. Example > data points include "3 hours, 2 minutes and 13 seconds" and "0 hours, 45 > minutes and 15 seconds." (not stored as string, of course, but as a time > interval). Hm, is your data a datetime.timedelta? /me wonders if pickling a timedelta to a GAE BlobProperty type might be enough of a hack to keep you going? Can one subclass the GAE property classes? Can you tell I've not touched GAE yet? Sorry if this is just noise/nonesense Eric. From guido at python.org Thu Apr 10 00:05:25 2008 From: guido at python.org (Guido van Rossum) Date: Wed, 9 Apr 2008 15:05:25 -0700 Subject: [Baypiggies] Google App Engine | Data Store | Interval Data type In-Reply-To: References: <20080407225429.a88b5a45d4f18442e3264b556d999a36.41bf2bd599.wbe@email.secureserver.net> <11A7B7BD-9556-4A0E-B100-69A033B9BB5E@glenjarvis.com> <04794F4A-886C-4782-9933-BA0466A97E15@glenjarvis.com> Message-ID: On Wed, Apr 9, 2008 at 2:41 PM, Eric Walstad wrote: > On Wed, Apr 9, 2008 at 11:56 AM, Glen Jarvis wrote: > > > > In trying to port my application to Google's App Engine, I got stuck trying > > to port my data to the Data store. I need an 'interval' data type. Example > > data points include "3 hours, 2 minutes and 13 seconds" and "0 hours, 45 > > minutes and 15 seconds." (not stored as string, of course, but as a time > > interval). > Hm, is your data a datetime.timedelta? > /me wonders if pickling a timedelta to a GAE BlobProperty type might > be enough of a hack to keep you going? Yuck. > Can one subclass the GAE property classes? Yes you can. > Can you tell I've not > touched GAE yet? > > Sorry if this is just noise/nonesense > > > > Eric. > _______________________________________________ > Baypiggies mailing list > Baypiggies at python.org > To change your subscription options or unsubscribe: > http://mail.python.org/mailman/listinfo/baypiggies > -- --Guido van Rossum (home page: http://www.python.org/~guido/) From dcramer at gmail.com Thu Apr 10 00:08:24 2008 From: dcramer at gmail.com (David Cramer) Date: Wed, 9 Apr 2008 15:08:24 -0700 Subject: [Baypiggies] Google App Engine | Data Store | Interval Data type In-Reply-To: References: <20080407225429.a88b5a45d4f18442e3264b556d999a36.41bf2bd599.wbe@email.secureserver.net> <11A7B7BD-9556-4A0E-B100-69A033B9BB5E@glenjarvis.com> <04794F4A-886C-4782-9933-BA0466A97E15@glenjarvis.com> Message-ID: I'm also going to encourage you to ignore any suggestions (for datatype) beyond an INT storage mechanism :) On Wed, Apr 9, 2008 at 3:05 PM, Guido van Rossum wrote: > On Wed, Apr 9, 2008 at 2:41 PM, Eric Walstad wrote: > > On Wed, Apr 9, 2008 at 11:56 AM, Glen Jarvis > wrote: > > > > > > In trying to port my application to Google's App Engine, I got stuck > trying > > > to port my data to the Data store. I need an 'interval' data type. > Example > > > data points include "3 hours, 2 minutes and 13 seconds" and "0 > hours, 45 > > > minutes and 15 seconds." (not stored as string, of course, but as a > time > > > interval). > > Hm, is your data a datetime.timedelta? > > /me wonders if pickling a timedelta to a GAE BlobProperty type might > > be enough of a hack to keep you going? > > Yuck. > > > Can one subclass the GAE property classes? > > Yes you can. > > > Can you tell I've not > > touched GAE yet? > > > > Sorry if this is just noise/nonesense > > > > > > > > Eric. > > _______________________________________________ > > Baypiggies mailing list > > Baypiggies at python.org > > To change your subscription options or unsubscribe: > > http://mail.python.org/mailman/listinfo/baypiggies > > > > > > -- > --Guido van Rossum (home page: http://www.python.org/~guido/ > ) > _______________________________________________ > Baypiggies mailing list > Baypiggies at python.org > To change your subscription options or unsubscribe: > http://mail.python.org/mailman/listinfo/baypiggies > -- David Cramer Director of Technology iBegin http://www.ibegin.com/ -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.python.org/pipermail/baypiggies/attachments/20080409/74202c6d/attachment.htm From joseph at olscontrols.com Thu Apr 10 07:26:12 2008 From: joseph at olscontrols.com (Joseph Ols) Date: Wed, 9 Apr 2008 22:26:12 -0700 Subject: [Baypiggies] Needed: Experienced Python/Zope developer Message-ID: <00f601c89acb$6568ba60$6502a8c0@toshibauser> Lead Developer must leave venture for personal reasons -- need replacement. Prototype & Demo are working, and he may get our Alpha working before totally leaving. Looking for another to complete Alpha/Beta and then help ramp. Open to part-time work, prefer task-based but open to hourly payment. For the right person will be open to Equity. The application is a combination of a website, custom hardware, and Linux SBC enabling companies and homeowners inexpensively to control individual room temperatures via a web interface. This person(*) will write client-side Python embedded controller code, and create server-side feature rich Zope webpages working with a mySQL database. Looking for a bright / skilled coder who understands Python/Zope and basics of HTML, JavaScript & CSS, and how they work together to make for a good user experience. One who can jump into the middle of an existing project, and be/remain productive after a brief orientation. Required: - Python. Mid-level ability for server-side work, and more advanced Python for client-side coding - Zope. Solid experience with developing a Zope or Plone site in the past, for server-side work - HTML, JavaScript, CSS. While design experience would be great, you are able to 'make it happen' when shown how the final output should look Preferred: - Graphics Design - Web User Interface design - Able to help manage other developers If this looks interesting, please send e-mail joseph at olscontrols.com, or call (408) 353-6564 for more information & project specifics. Thank you. Joseph Ols www.olscontrols.com (*) prefer one person, but open to multiple individuals if interested in client-side-only or server-side-only focus -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.python.org/pipermail/baypiggies/attachments/20080409/a98e110b/attachment.htm From glen at glenjarvis.com Wed Apr 9 18:51:33 2008 From: glen at glenjarvis.com (Glen Jarvis) Date: Wed, 9 Apr 2008 09:51:33 -0700 Subject: [Baypiggies] Google I/O In-Reply-To: <04794F4A-886C-4782-9933-BA0466A97E15@glenjarvis.com> References: <20080407225429.a88b5a45d4f18442e3264b556d999a36.41bf2bd599.wbe@email.secureserver.net> <11A7B7BD-9556-4A0E-B100-69A033B9BB5E@glenjarvis.com> <04794F4A-886C-4782-9933-BA0466A97E15@glenjarvis.com> Message-ID: Cancel what I said. It was assuming that every session was a repeat all day long. Also, I just reviewed the calendar (below). I should have checked on the 'type' of breakout sessions in the schedule. It was silly of me for not looking and only assuming it was listed. Thanks for pointing this out too. Because, the price is actually quite steep for me (I wish I were still a student this year). I'd hate to pay that and realize that I didn't get the few sessions I wanted (like the datastore one). Wednesday, May 28th 2008 8:30 AM 9:30 AM 11:15 AM - 5:15 PM 11:15 AM - 4:00 PM 12:00 PM - 2:00 PM 6:30 PM - 10:30 PM Registration Keynote Breakout sessions Code Labs Lunch served After Hours at Google I/O Thursday, May 29th 2008 8:00 AM 9:00 AM - 10:00 AM 10:15 AM - 4:15 PM 10:15 AM - 4:15 PM 11:15 AM - 4:00 PM 12:00 PM - 2:00 PM Breakfast General sessions Breakout sessions Unconference sessions Code Labs Lunch served On Apr 9, 2008, at 9:30 AM, Glen Jarvis wrote: > I didn't see which sessions were offered at which times. But, I did > see a schedule for the day. I would assume that all sessions under the > 'type' are offered when that 'type' is in the schedule. Does that make > any sense? > > > Glen > -- > 415-680-3964 > glen at glenjarvis.com > http://www.glenjarvis.com > > "You must be the change you wish to see in the world." -M. Gandhi > > > On Apr 9, 2008, at 9:13 AM, Eric Walstad wrote: > >> On Tue, Apr 8, 2008 at 9:55 PM, Glen Jarvis >> wrote: >>> I saw an announcement for Google I/O >>> (http://code.google.com/events/io/). >>> Is anyone else from BayPIGgies considering attending? >> >> I'm going, schedule permitting. >> Did you find a schedule that shows the session times? It matters to >> me to be able to verify which sessions happen at the same time. I >> didn't even see a mapping between their session types and each >> session. I'd be bummed if I forked out the money and found that all >> my target sessions were happening at the same time. >> >> Anyone from Google listening? >> >> Eric > > _______________________________________________ > Baypiggies mailing list > Baypiggies at python.org > To change your subscription options or unsubscribe: > http://mail.python.org/mailman/listinfo/baypiggies -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.python.org/pipermail/baypiggies/attachments/20080409/e7ca0bb0/attachment-0001.htm From bjorn at ambientchill.com Thu Apr 10 09:25:58 2008 From: bjorn at ambientchill.com (bjorn at ambientchill.com) Date: Thu, 10 Apr 2008 00:25:58 -0700 Subject: [Baypiggies] Google App Engine Message-ID: <20080410002558.a88b5a45d4f18442e3264b556d999a36.cc67c65d9b.wbe@email.secureserver.net> That's pretty awesome. I've been working on my own little app: http://paste.appspot.com (needs a lot more work!) I put the source up: http://code.google.com/p/pybin/source/browse I'm having so much fun I'm not sure I'm going to make it tomorrow! I definitely want to spend a lot more time on it. :) > -------- Original Message -------- > Subject: Re: [Baypiggies] Google App Engine > From: "Jeff Lindsay" > Date: Tue, April 08, 2008 9:04 pm > To: "Paul_M?Nett"

> Cc: Baypiggies > > > Somebody made this. Seems a little broken though. > > http://shell.appspot.com/ > > On Tue, Apr 8, 2008 at 9:00 PM, Paul M?Nett

wrote: > > wesley chun wrote: > > > wow, this is really amazing. this release took me by surprise. i > > > understand that GOOG cut-n-pasted a few pieces of Django behind the > > > scenes. it's good that they made their infrastructure a backbone to > > > drive this thing. i look fwd to creating apps! > > > > I was initially befuddled by not being able to save to disk or connect > > to sockets. But then I came to the DataStore API, and GQL. My mind is > > spinning... > > > > ...has anyone put up a live Python interpreter yet? ;) > > > > Paul > > > > > > > > _______________________________________________ > > Baypiggies mailing list > > Baypiggies at python.org > > To change your subscription options or unsubscribe: > > http://mail.python.org/mailman/listinfo/baypiggies > > > > > > -- > Jeff Lindsay > http://devjavu.com -- Free Trac and Subversion > http://blogrium.com -- A blog about things > _______________________________________________ > Baypiggies mailing list > Baypiggies at python.org > To change your subscription options or unsubscribe: > http://mail.python.org/mailman/listinfo/baypiggies From daryl.spitzer at gmail.com Thu Apr 10 16:57:20 2008 From: daryl.spitzer at gmail.com (Daryl Spitzer) Date: Thu, 10 Apr 2008 07:57:20 -0700 Subject: [Baypiggies] daemonize In-Reply-To: References: <20080405164555.GA1898@panix.com> Message-ID: I haven't read the cookbook recipe (yet), but I thought you may find http://daemonize.sourceforge.net/ useful. (I heard about it in a PyCon 2008 lightning talk. I haven't tried it yet, though I expect I will soon.) -- Daryl On Sat, Apr 5, 2008 at 1:26 PM, Shannon -jj Behrens wrote: > On Sat, Apr 5, 2008 at 9:45 AM, Aahz wrote: > > On Sat, Apr 05, 2008, Shannon -jj Behrens wrote: > > > > > > The Python Cookbook has a pretty good module for daemonizing a > > > process. It's not something that's likely to change, since this > > > procedure has been the same for a decade or longer. Has anyone > > > brought up the idea of including it in the standard library? I'm > > > actually pretty surprised it's not there already. > > > > There's been some discussion of adding a pyprocess module similar to the > > threading library -- it probably should go with that. As always, patches > > are welcome. ;-) > > I like the processing module. I personally think that's a good > candidate for the standard library too. Personally, I think a > daemonize function is different. If anything, I think the posix > module would be a better fit. > > The code I'm referring to is in the Python Cookbook. It's trivial to > provide a patch. I was just wondering if there was a reason it hadn't > been done already. I know how hard it is to get things into the > standard library, so I'm skittish. > > > -jj > > -- > I, for one, welcome our new Facebook overlords! > http://jjinux.blogspot.com/ > _______________________________________________ > > > Baypiggies mailing list > Baypiggies at python.org > To change your subscription options or unsubscribe: > http://mail.python.org/mailman/listinfo/baypiggies > From guido at python.org Thu Apr 10 17:09:27 2008 From: guido at python.org (Guido van Rossum) Date: Thu, 10 Apr 2008 08:09:27 -0700 Subject: [Baypiggies] daemonize In-Reply-To: <20080405164555.GA1898@panix.com> References: <20080405164555.GA1898@panix.com> Message-ID: On Sat, Apr 5, 2008 at 9:45 AM, Aahz wrote: > On Sat, Apr 05, 2008, Shannon -jj Behrens wrote: > > The Python Cookbook has a pretty good module for daemonizing a > > process. It's not something that's likely to change, since this > > procedure has been the same for a decade or longer. Has anyone > > brought up the idea of including it in the standard library? I'm > > actually pretty surprised it's not there already. > > There's been some discussion of adding a pyprocess module similar to the > threading library -- it probably should go with that. As always, patches > are welcome. ;-) Hm. AFAIK the pyprocessing package is still in active development, and I'd be reluctant to essentially "freeze" it by inclusion into the stdlib. The daemonize module IMO isn't all that related to pyprocessing; it's a very specific Unix thing that only a small number of developers ever need. (I know -- I wrote one for Zope that still lives on in some form or another, but since then I've rarely had the need.) However, given that daemonize contains lots of little tricks that are hard to get right, it *might* qualify for inclusion, assuming it represents best practices without going too far into featuritis. The Python Cookbook tends to get both qualities right. -- --Guido van Rossum (home page: http://www.python.org/~guido/) From dcramer at gmail.com Thu Apr 10 23:20:34 2008 From: dcramer at gmail.com (David Cramer) Date: Thu, 10 Apr 2008 14:20:34 -0700 Subject: [Baypiggies] Google AppEngine Templates Message-ID: Any idea why they decided to use Django? For me this is a very limited engine. One of the first things we switched when using Django was the template engine, to a very similar one, called Jinja (jinja.pocoo.org). Maybe they plan to provide more options? -- David Cramer Director of Technology iBegin http://www.ibegin.com/ -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.python.org/pipermail/baypiggies/attachments/20080410/d5350911/attachment.htm From shalabh at cafepy.com Thu Apr 10 23:29:31 2008 From: shalabh at cafepy.com (Shalabh Chaturvedi) Date: Thu, 10 Apr 2008 14:29:31 -0700 Subject: [Baypiggies] Google AppEngine Templates In-Reply-To: References: Message-ID: <2b388010804101429g79a88401rb8dd04b8e8391aa8@mail.gmail.com> On Thu, Apr 10, 2008 at 2:20 PM, David Cramer wrote: > Any idea why they decided to use Django? For me this is a very limited > engine. One of the first things we switched when using Django was the > template engine, to a very similar one, called Jinja (jinja.pocoo.org). > > Maybe they plan to provide more options? > Looks like jinja is pure Python - in which case you can just upload it with your app and use it, instead of using the bundled Django. You should be able to upload any pure Python (no C extensions) library. > > -- > David Cramer > Director of Technology > iBegin > http://www.ibegin.com/ > _______________________________________________ > Baypiggies mailing list > Baypiggies at python.org > To change your subscription options or unsubscribe: > http://mail.python.org/mailman/listinfo/baypiggies > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.python.org/pipermail/baypiggies/attachments/20080410/8037c518/attachment.htm From guido at python.org Thu Apr 10 23:30:08 2008 From: guido at python.org (Guido van Rossum) Date: Thu, 10 Apr 2008 14:30:08 -0700 Subject: [Baypiggies] Google AppEngine Templates In-Reply-To: References: Message-ID: On Thu, Apr 10, 2008 at 2:20 PM, David Cramer wrote: > Any idea why they decided to use Django? For me this is a very limited > engine. One of the first things we switched when using Django was the > template engine, to a very similar one, called Jinja (jinja.pocoo.org). > > Maybe they plan to provide more options? I thought our messaging was pretty clear on this point -- you can use any framework you want but you have to upload it as part of your app. -- --Guido van Rossum (home page: http://www.python.org/~guido/) From dcramer at gmail.com Thu Apr 10 23:31:36 2008 From: dcramer at gmail.com (David Cramer) Date: Thu, 10 Apr 2008 14:31:36 -0700 Subject: [Baypiggies] Google AppEngine Templates In-Reply-To: References: Message-ID: I was just more curious as to why Django is an included default (at least that seems to be my understanding). On Thu, Apr 10, 2008 at 2:30 PM, Guido van Rossum wrote: > On Thu, Apr 10, 2008 at 2:20 PM, David Cramer wrote: > > Any idea why they decided to use Django? For me this is a very limited > > engine. One of the first things we switched when using Django was the > > template engine, to a very similar one, called Jinja (jinja.pocoo.org). > > > > Maybe they plan to provide more options? > > I thought our messaging was pretty clear on this point -- you can use > any framework you want but you have to upload it as part of your app. > > -- > --Guido van Rossum (home page: http://www.python.org/~guido/ > ) > -- David Cramer Director of Technology iBegin http://www.ibegin.com/ -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.python.org/pipermail/baypiggies/attachments/20080410/d82f83d1/attachment.htm From shalabh at cafepy.com Thu Apr 10 23:45:48 2008 From: shalabh at cafepy.com (Shalabh Chaturvedi) Date: Thu, 10 Apr 2008 14:45:48 -0700 Subject: [Baypiggies] Google AppEngine Templates In-Reply-To: References: Message-ID: <2b388010804101445r6692905ewd09d34234b1a1473@mail.gmail.com> On Thu, Apr 10, 2008 at 2:31 PM, David Cramer wrote: > I was just more curious as to why Django is an included default (at least > that seems to be my understanding). > Based on the examples I see in the docs, there is no default really - you have to return the HTML (or plain text) as a string from a python function. You can instead use a function to render a django template - django is just included as a bonus. If you want to use another library to generate the string, you can just upload it. As to why django was included but not - I'm not sure, you might want to ask on the appengine group instead. I'm guessing they wanted to have at least one templating library to make it easier for people who don't care that much (and django has a pretty big mindshare currently). Shalabh > > On Thu, Apr 10, 2008 at 2:30 PM, Guido van Rossum > wrote: > > > On Thu, Apr 10, 2008 at 2:20 PM, David Cramer wrote: > > > Any idea why they decided to use Django? For me this is a very limited > > > engine. One of the first things we switched when using Django was the > > > template engine, to a very similar one, called Jinja (jinja.pocoo.org > > ). > > > > > > Maybe they plan to provide more options? > > > > I thought our messaging was pretty clear on this point -- you can use > > any framework you want but you have to upload it as part of your app. > > > > -- > > --Guido van Rossum (home page: http://www.python.org/~guido/ > > ) > > > > > > -- > David Cramer > Director of Technology > iBegin > http://www.ibegin.com/ > > _______________________________________________ > Baypiggies mailing list > Baypiggies at python.org > To change your subscription options or unsubscribe: > http://mail.python.org/mailman/listinfo/baypiggies > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.python.org/pipermail/baypiggies/attachments/20080410/5fb6e021/attachment.htm From bjorn.tipling at gmail.com Fri Apr 11 02:36:05 2008 From: bjorn.tipling at gmail.com (Bjorn Tipling) Date: Thu, 10 Apr 2008 17:36:05 -0700 Subject: [Baypiggies] Google AppEngine Templates Message-ID: <20080410173605.a88b5a45d4f18442e3264b556d999a36.fe26a33bd4.wbe@email.secureserver.net> It's too bad that Mako doesn't work. It's not pure python if I recall correctly. I like the default web framework it's pretty nice, and django isn't so bad, although you can't run arbitrary python in it. > -------- Original Message -------- > Subject: Re: [Baypiggies] Google AppEngine Templates > From: "Shalabh Chaturvedi" > Date: Thu, April 10, 2008 2:45 pm > To: "David Cramer" > Cc: BayPiggies > > > On Thu, Apr 10, 2008 at 2:31 PM, David Cramer wrote: > > > I was just more curious as to why Django is an included default (at least > > that seems to be my understanding). > > > > Based on the examples I see in the docs, there is no default really - you > have to return the HTML (or plain text) as a string from a python function. > You can instead use a function to render a django template - django is just > included as a bonus. If you want to use another library to generate the > string, you can just upload it. > > As to why django was included but not - I'm > not sure, you might want to ask on the appengine group instead. I'm guessing > they wanted to have at least one templating library to make it easier for > people who don't care that much (and django has a pretty big mindshare > currently). > > Shalabh > > > > > > On Thu, Apr 10, 2008 at 2:30 PM, Guido van Rossum > > wrote: > > > > > On Thu, Apr 10, 2008 at 2:20 PM, David Cramer wrote: > > > > Any idea why they decided to use Django? For me this is a very limited > > > > engine. One of the first things we switched when using Django was the > > > > template engine, to a very similar one, called Jinja (jinja.pocoo.org > > > ). > > > > > > > > Maybe they plan to provide more options? > > > > > > I thought our messaging was pretty clear on this point -- you can use > > > any framework you want but you have to upload it as part of your app. > > > > > > -- > > > --Guido van Rossum (home page: http://www.python.org/~guido/ > > > ) > > > > > > > > > > > -- > > David Cramer > > Director of Technology > > iBegin > > http://www.ibegin.com/ > > > > _______________________________________________ > > Baypiggies mailing list > > Baypiggies at python.org > > To change your subscription options or unsubscribe: > > http://mail.python.org/mailman/listinfo/baypiggies > >


_______________________________________________ > Baypiggies mailing list > Baypiggies at python.org > To change your subscription options or unsubscribe: > http://mail.python.org/mailman/listinfo/baypiggies From jjinux at gmail.com Fri Apr 11 02:48:34 2008 From: jjinux at gmail.com (Shannon -jj Behrens) Date: Thu, 10 Apr 2008 17:48:34 -0700 Subject: [Baypiggies] daemonize In-Reply-To: References: <20080405164555.GA1898@panix.com> Message-ID: On Thu, Apr 10, 2008 at 8:09 AM, Guido van Rossum wrote: > On Sat, Apr 5, 2008 at 9:45 AM, Aahz wrote: > > > On Sat, Apr 05, 2008, Shannon -jj Behrens wrote: > > > The Python Cookbook has a pretty good module for daemonizing a > > > process. It's not something that's likely to change, since this > > > procedure has been the same for a decade or longer. Has anyone > > > brought up the idea of including it in the standard library? I'm > > > actually pretty surprised it's not there already. > > > > There's been some discussion of adding a pyprocess module similar to the > > threading library -- it probably should go with that. As always, patches > > are welcome. ;-) > > Hm. AFAIK the pyprocessing package is still in active development, and > I'd be reluctant to essentially "freeze" it by inclusion into the > stdlib. > > The daemonize module IMO isn't all that related to pyprocessing; it's > a very specific Unix thing that only a small number of developers ever > need. (I know -- I wrote one for Zope that still lives on in some form > or another, but since then I've rarely had the need.) However, given > that daemonize contains lots of little tricks that are hard to get > right, it *might* qualify for inclusion, assuming it represents best > practices without going too far into featuritis. The Python Cookbook > tends to get both qualities right. The one in the print version of The Python Cookbook follows W. Richard Stevens pretty much exactly. I wouldn't expect it to change. What do I do to "submit" it? -jj -- I, for one, welcome our new Facebook overlords! http://jjinux.blogspot.com/ From john_re at fastmail.us Fri Apr 11 12:38:53 2008 From: john_re at fastmail.us (john_re) Date: Fri, 11 Apr 2008 03:38:53 -0700 Subject: [Baypiggies] LUGRadio- Free O'Reilly book?- Register Now- This Weekend April 12-13 Message-ID: <1207910333.4413.1247325781@webmail.messagingengine.com> If I was in a position to give you a _FREE_ O'Reilly book, I surely would. I'd give a book to you by carbon sequestering tree material. I'd give a book to you by online access. http://safari.oreilly.com I'd give a book to you by telepathic nanobot mind implants. http://io9.com [ Hi Annalee ] While back I sent out a fun/humorous announcement about the great UK LUGRadio Live event in SanFran this weekend April 12-13. svlug] Event- 080412-13 Sat-Sun LugRadio Live USA ((SFO)) john_re http://lists.svlug.org/archives/svlug/2008-March/030758.html Didn't care about winning any prizes, just wanted to spread the word for what looks like a great event, didn't suggest anyone list me as a referrer. Now it turns out I'm interested in getting this eeepc they're giving away, & Stuart Langridge encourages me: > you have two days > yet -- get out there and evangelise and you're in with a chance :-) What more could I hope for? :) Also know I've got at least 1 referral in already. This means there's still time for YOU to possibly get a FREE O'Reilly BOOK & a Free T-shirt by registering online if you haven't yet. Register online for the event (only $10, credit card needed), put in referrer "john_re", & _you_ could get an O'Reilly book. (if I'm the top "referrer" - could be a likely possibility, see below.) No credit card? You're still OK, ask one of your friends: "I say, fine lady, I'll gladly bring you a free wardrobe item (t-shirt), & pay you $10- cash right now, if you'd please register me online for this chipper LUGRadio event! Might even come back with a job offer or two." Fun, 35 speakers, 40 exhibitors, hang out with the .orgs, hiring companies, two days, free party at Gillians, schwag, chance to learn useful skills/tips from top people, be on live global internet Linux radio, camaraderie, personal networking, BOFs, hack on software, hack on hardware, chance to help progress GLFOSS, etc. Get your friends to register also & make it a party. :) Thank you for your consideration. :) http://lugradio.org/live/USA2008/register - [Please enter referrer "john_re"] PS: Please email me if you use this referral. john_re at fastmail dot us That way I can keep you updated if you care to know how the referrals are progressing. Thank you. :) ===== Python notes: . Guido, why aren't you giving a talk there? . SFPerl Mongers are exhibitors - why not BayPiggies? Still time? . Speak with Ubuntu exhibitors about their python infrastructure. Also, why no Google Summer of Code speakers? ===== Registration for LugRadio Live USA 2008 is now open!! Pre-registering guarantees you a place at the show, and also includes some additional perks: Pre-Registered guests are guaranteed entry - we expect a high number of guests at the show. First 50 registrations get a free copy of Postal 2 (subject to age verification) Entry into a raffle to win a number of prizes. Special additional freebies. Special entry into additional competitions ========== 12th and 13th April 2008 Sat Sun - The Metreon Theater, San Francisco EXHIBITORS, .ORGs: Google, Dice, GNOME, PostgreSQL, O?Reilly, OpenSuSE, Magnatune, Neuros, Sun, Texas Instruments, South California Linux Expo, Komputers 4 R Kids, San Francisco LUG, BytesFree.org, Ontario Linux Fest, Frets on Fire, OpenNMS, One Course Source, Haiku, Hyperic, BitNami, OpenStreetMap, FreeBSD, Ubuntu, Inkscape, Mandriva, One Laptop Per Child San Francisco, KDE, Linux Pro Magazine, San Francisco Community Colocation Project, Indamixx, Untangle, SF Hardware Hacking Community, The Digital Tipping Point, San Francisco Perl Mongers, ZaReason, EFF, Usenix, LAMPSIG, mediaarchives.com, Xiph, Joomla, Drupal SPEAKERS: Miguel de Icaza (Mono / Novell / Co-Founder Of GNOME), Ian Murdoch (OpenSolaris / Founder Of Debian), Robert Love (GNOME / Google), Aza Raskin (Mozilla / Humanized), Benjamin Mako Hill (Ubuntu / Debian / FSF), John Buckman (Magnatune), Val Henson (Kernel / VAH consulting), Christopher Blizzard (Mozilla / GNOME), Mike Linksvayer (Creative Commons), David Schleef (GStreamer), Matthew Garrett (Power Management / Kernel), Danese Cooper (Intel / OSI), Aaron Bockover (Banshee / Novell), Liana Holmberg (Second Life / Linden Lab), Emma Jane Hogbin (Hick Tech), Joe Zonker Brockmeier (OpenSuSE / Novell), Kristen Accardi (Kernel), Joe Born (Neuros), Selena Deckelmann (PostgreSQL), Stewart Smith (MySQL), Dan Kegel (Wine), Ben Collins (Ubuntu / Kernel), Jason Kridner (Texas Instruments), Jeremy Allison (Samba / Google), Christian Hammond (VMWare), Ian McKeller (Songbird), Alison Randall (Parrot / Perl / OSCON), David Huffman (LVM), Brian Will (Pigeon), Belinda Lopez (Ubuntu), Ilan Rabinovitch (SoCal Linux Expo), Eddy Mulyono (Packaging), Matthew Walster (Demo Scene) SPONSORS: Google, DICE, LinuxQuestions ===== Awesome eeepc hack: # Massive internal modification to my Eee 4G # Hacks and Modifications # ? USB Hub + Bluetooth + GPS + Flashdrive + Card reader + FM transmitter http://forum.eeeuser.com/viewtopic.php?id=6380 **!!**!! WARNING - WARNING - GEEK pr0n **!!**!! NNSFW !!!!!@! http://imgboot.com/images/ivc/eeeoverviewmotherboardbottom.jpg ===== Full disclosure: I don't want to step on anyone's toes. 1) Leslie Hawthorn also announced Lugradio on this list, didn't mention the free book, didn't request referral, is a Google employee, is an event organizer, thus unlikely to qualify for the referral prizes. Also, I've reviewed about 8 bay area mailing GLFOSS lists. None have postings from anyone mentioning the free book, nor requesting people use their names as referrer. I will get this announcement out to about 12 local groups and some schools & companies. Thus, looks clear to use "john_re" for referral as most likely to be successful for getting free book, shirt & other pre-reg raffle prizes & freebies, etc. http://lugradio.org/live/USA2008/register - [Please enter referrer "john_re"] Thanks. Cheers :) -- john_re at fastmail.us -- http://www.fastmail.fm - Accessible with your email software or over the web From matt at matt-good.net Fri Apr 11 19:06:06 2008 From: matt at matt-good.net (Matt Good) Date: Fri, 11 Apr 2008 10:06:06 -0700 Subject: [Baypiggies] Google AppEngine Templates In-Reply-To: <20080410173605.a88b5a45d4f18442e3264b556d999a36.fe26a33bd4.wbe@email.secureserver.net> References: <20080410173605.a88b5a45d4f18442e3264b556d999a36.fe26a33bd4.wbe@email.secureserver.net> Message-ID: On Apr 10, 2008, at 5:36 PM, Bjorn Tipling wrote: > It's too bad that Mako doesn't work. It's not pure python if I recall > correctly. Mako is pure Python, but it depends on the parser module which is not provided. Genshi also has a similar problem and I'm looking into changing the way it manipulates the in-template expressions to work around this. -- Matt From bjorn.tipling at gmail.com Fri Apr 11 20:30:10 2008 From: bjorn.tipling at gmail.com (Bjorn Tipling) Date: Fri, 11 Apr 2008 11:30:10 -0700 Subject: [Baypiggies] Google AppEngine Templates Message-ID: <20080411113010.a88b5a45d4f18442e3264b556d999a36.c80b880734.wbe@email.secureserver.net> Out of curiosity, why isn't the parser module provided? > -------- Original Message -------- > Subject: Re: [Baypiggies] Google AppEngine Templates > From: Matt Good > Date: Fri, April 11, 2008 10:06 am > To: Bjorn Tipling > Cc: BayPiggies > > > On Apr 10, 2008, at 5:36 PM, Bjorn Tipling wrote: > > It's too bad that Mako doesn't work. It's not pure python if I recall > > correctly. > > Mako is pure Python, but it depends on the parser module which is not > provided. Genshi also has a similar problem and I'm looking into > changing the way it manipulates the in-template expressions to work > around this. > > -- Matt From guido at python.org Fri Apr 11 20:51:19 2008 From: guido at python.org (Guido van Rossum) Date: Fri, 11 Apr 2008 11:51:19 -0700 Subject: [Baypiggies] Google AppEngine Templates In-Reply-To: <20080411113010.a88b5a45d4f18442e3264b556d999a36.c80b880734.wbe@email.secureserver.net> References: <20080411113010.a88b5a45d4f18442e3264b556d999a36.c80b880734.wbe@email.secureserver.net> Message-ID: On Fri, Apr 11, 2008 at 11:30 AM, Bjorn Tipling wrote: > Out of curiosity, why isn't the parser module provided? We're not sure that it can't be abused to create broken bytecode. -- --Guido van Rossum (home page: http://www.python.org/~guido/) From daryl.spitzer at gmail.com Fri Apr 11 21:26:20 2008 From: daryl.spitzer at gmail.com (Daryl Spitzer) Date: Fri, 11 Apr 2008 12:26:20 -0700 Subject: [Baypiggies] Slides from my BayPIGgies talk on PyCon Message-ID: You'll find the notes I used to prepare my slides from last night's talk on PyCon 2008 at http://pypap.blogspot.com/2008/04/pycon-2008-notes.html (and at the bottom are URLs to the slides, if you need them). I welcome your comments. -- Daryl From afife at untangle.com Sat Apr 12 03:25:07 2008 From: afife at untangle.com (Andrew Fife) Date: Fri, 11 Apr 2008 18:25:07 -0700 (PDT) Subject: [Baypiggies] Eric Allman @ BALUG (Tuesday!!) Message-ID: <00be01c89c3c$08fcb890$8600000a@afmeatloaf> Hi Folks: BALUG is very proud to host Eric Allman as our speaker this Tuesday, April 15th. Eric Allman is the original author of sendmail and he is giving an excellent talk titled "Email Evolvoing." (see abstract below) If you'd like to come please drop us an RSVP: rsvp at balug.org ***Why RSVP?*** We won't turn anyone away, but the RSVP's really help the Four Seas Restaurant know how much food to prepare and ensure that BALUG gets to meet in the upstairs banquette room. ***When & Where*** 6:30pm The Four Seas Restaruant 731 Grant Ave. San Francisco, CA 94108 Parking: $5 garage @ 733 Kearney (1 block away) ***Cost**** The meeting is free, but dinner is $13 for the family style Chinese dinner. ***Abstract*** Internet email is in a process of rapid evolution. Besides the obvious things, such as spam and malware, many other technology trends are having an impact. These include mobile devices, new messaging technologies, social networking, changing legal requirements, the rise of Software as a Service and Service Oriented Architectures, and an unstable underpinning of the network itself. Not surprisingly, many of these same forces do or will affect other parts of the network. This talk will describe these evolutionary pressures, point out some of the unexpected consequences of our attempts to adapt to these pressures, and make some dire predictions for the future. Generous time will be allotted to Q&A. -- Andrew Fife Untangle - The Open Source Network Gateway www.untangle.com/download 650.425.3327 desk 415.806.6028 cell -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.python.org/pipermail/baypiggies/attachments/20080411/1c30582e/attachment.htm From glen at glenjarvis.com Mon Apr 14 09:27:37 2008 From: glen at glenjarvis.com (Glen Jarvis) Date: Mon, 14 Apr 2008 00:27:37 -0700 Subject: [Baypiggies] First AppEngine Application In-Reply-To: <20080117230000.GA9138@panix.com> References: <77d044440801171431k9b98d47v2ef9932a80b2dd13@mail.gmail.com> <20080117230000.GA9138@panix.com> Message-ID: <19A0CC4F-E2AD-4CD6-BC21-76C4529FC89E@glenjarvis.com> You know the feeling when you've worked on something all weekend - especially in such gorgeous weather, and then you share with your family or friends and they don't quite get what's so cool about it? Well, I'd like to share my Fat Burn Challenge application with Bay Piggies: http://challenge.glenjarvis.com/ This idea started when I wanted to challenge friends who could burn the most calories in a month. Some of them didn't have the Nike+ipod kit, so this app does the same thing. The interface is still not very robust (no real error checking or real Java Script form pre- validation), and it's not defensively coded (In fact, now the project's done, I see I need to do a few things differently -- especially with JavaScript - God I'm rusty)... Now I've used the Google App Engine for my first application, I'd like to go over some of the design decisions, and get some feedback from many of you. Although useable, this code need some re-factoring. I could spend as much time getting it 'right' - which I'd still like to do. Would anyone mind if I posted the python class (schema) and ask for a review? I haven't found many materials on using the Google Data Store (Big Table). So, who's going to join me for a April's Fat Burn Challenge? http://challenge.glenjarvis.com/ Cheers, Glen -- 415-680-3964 glen at glenjarvis.com http://www.glenjarvis.com "You must be the change you wish to see in the world." -M. Gandhi From andymoe at gmail.com Mon Apr 14 15:54:18 2008 From: andymoe at gmail.com (Andy Brown) Date: Mon, 14 Apr 2008 06:54:18 -0700 Subject: [Baypiggies] First AppEngine Application In-Reply-To: <19A0CC4F-E2AD-4CD6-BC21-76C4529FC89E@glenjarvis.com> References: <77d044440801171431k9b98d47v2ef9932a80b2dd13@mail.gmail.com> <20080117230000.GA9138@panix.com> <19A0CC4F-E2AD-4CD6-BC21-76C4529FC89E@glenjarvis.com> Message-ID: You know the feeling when you hack on something all weekend when you should be outside in the sunshine and you can't show anyone except some random people at a cafe because you still don't have an account yet? That will teach me to miss the UG meetings. Anyway, nice little app. As a side note, what other frameworks, besides Django, have people on the list been able to get working on Google App Engine? - Andy On Mon, Apr 14, 2008 at 12:27 AM, Glen Jarvis wrote: > You know the feeling when you've worked on something all weekend - > especially in such gorgeous weather, and then you share with your > family or friends and they don't quite get what's so cool about it? > > Well, I'd like to share my Fat Burn Challenge application with Bay > Piggies: > http://challenge.glenjarvis.com/ > > This idea started when I wanted to challenge friends who could burn > the most calories in a month. Some of them didn't have the Nike+ipod > kit, so this app does the same thing. The interface is still not very > robust (no real error checking or real Java Script form pre- > validation), and it's not defensively coded (In fact, now the > project's done, I see I need to do a few things differently -- > especially with JavaScript - God I'm rusty)... > > Now I've used the Google App Engine for my first application, I'd like > to go over some of the design decisions, and get some feedback from > many of you. Although useable, this code need some re-factoring. I > could spend as much time getting it 'right' - which I'd still like to > do. > > Would anyone mind if I posted the python class (schema) and ask for a > review? I haven't found many materials on using the Google Data Store > (Big Table). > > > So, who's going to join me for a April's Fat Burn Challenge? http://challenge.glenjarvis.com/ > > > Cheers, > > > Glen > > -- > 415-680-3964 > glen at glenjarvis.com > http://www.glenjarvis.com > > "You must be the change you wish to see in the world." -M. Gandhi > > > _______________________________________________ > Baypiggies mailing list > Baypiggies at python.org > To change your subscription options or unsubscribe: > http://mail.python.org/mailman/listinfo/baypiggies > From bsergean at gmail.com Mon Apr 14 17:26:54 2008 From: bsergean at gmail.com (Benjamin Sergeant) Date: Mon, 14 Apr 2008 08:26:54 -0700 Subject: [Baypiggies] First AppEngine Application In-Reply-To: References: <77d044440801171431k9b98d47v2ef9932a80b2dd13@mail.gmail.com> <20080117230000.GA9138@panix.com> <19A0CC4F-E2AD-4CD6-BC21-76C4529FC89E@glenjarvis.com> Message-ID: <1621f9fa0804140826yb674a0s1364d8b830ed2e57@mail.gmail.com> So how many calories did you burn coding the app ? I played basket and it worked pretty well, but I'm considering writting an app instead as you advice. ;) On Mon, Apr 14, 2008 at 6:54 AM, Andy Brown wrote: > You know the feeling when you hack on something all weekend when you > should be outside in the sunshine and you can't show anyone except > some random people at a cafe because you still don't have an account > yet? That will teach me to miss the UG meetings. > > Anyway, nice little app. As a side note, what other frameworks, > besides Django, have people on the list been able to get working on > Google App Engine? > > - Andy > > > > > > On Mon, Apr 14, 2008 at 12:27 AM, Glen Jarvis wrote: > > You know the feeling when you've worked on something all weekend - > > especially in such gorgeous weather, and then you share with your > > family or friends and they don't quite get what's so cool about it? > > > > Well, I'd like to share my Fat Burn Challenge application with Bay > > Piggies: > > http://challenge.glenjarvis.com/ > > > > This idea started when I wanted to challenge friends who could burn > > the most calories in a month. Some of them didn't have the Nike+ipod > > kit, so this app does the same thing. The interface is still not very > > robust (no real error checking or real Java Script form pre- > > validation), and it's not defensively coded (In fact, now the > > project's done, I see I need to do a few things differently -- > > especially with JavaScript - God I'm rusty)... > > > > Now I've used the Google App Engine for my first application, I'd like > > to go over some of the design decisions, and get some feedback from > > many of you. Although useable, this code need some re-factoring. I > > could spend as much time getting it 'right' - which I'd still like to > > do. > > > > Would anyone mind if I posted the python class (schema) and ask for a > > review? I haven't found many materials on using the Google Data Store > > (Big Table). > > > > > > So, who's going to join me for a April's Fat Burn Challenge? http://challenge.glenjarvis.com/ > > > > > > Cheers, > > > > > > Glen > > > > -- > > 415-680-3964 > > glen at glenjarvis.com > > http://www.glenjarvis.com > > > > "You must be the change you wish to see in the world." -M. Gandhi > > > > > > _______________________________________________ > > Baypiggies mailing list > > Baypiggies at python.org > > To change your subscription options or unsubscribe: > > http://mail.python.org/mailman/listinfo/baypiggies > > > _______________________________________________ > Baypiggies mailing list > Baypiggies at python.org > To change your subscription options or unsubscribe: > http://mail.python.org/mailman/listinfo/baypiggies > From glen at glenjarvis.com Mon Apr 14 20:37:27 2008 From: glen at glenjarvis.com (Glen Jarvis) Date: Mon, 14 Apr 2008 11:37:27 -0700 Subject: [Baypiggies] Sharing AppEngine Message-ID: <8ACEA293-3DB6-440D-8175-4312FD502FC1@glenjarvis.com> I have seen several responses that some of our community is on the waiting list for Google AppEngine. I didn't know anyone was waiting (or I wouldn't have sent out this email yet). Just know that you can do 99.99999% of the development locally without ever uploading it to the Google site. (One could argue also 100%). I'm a 6-month Python newb, and I hadn't used any frameworks like Django before this app I wrote. However, I think I can share what I've learned that is specific to AppEngine/Google. Would anyone be interested in getting together for local brainstorming? (Please note I'm very very behind on chores I said I'd do at home because of this, so it may be a little time before I can commit)... Again, I'm a newb.... But, I think I've learned enough I can share. If nothing else, I can facilitate the group and learn from others if you guys already have tons of experience in some of this... Jim, I've always dragged my feet on a talk because I needed time to prepare. Are you interested in a Google AppEngine talk? I can certainly be prepared for this one.... And, obviously, there may be more experts (i.e., from Google) -- people a lot more experienced than me! I'll easily yield to them/share the presentation with them if it comes up. The important thing is that this is another cool technology to explore =) Jim, Let me know if you think it'd be a good talk? Others, let me know if you're interested in an ad-hoc training/ learning facilitation meeting... Cheers, Glen -- 415-680-3964 glen at glenjarvis.com http://www.glenjarvis.com "You must be the change you wish to see in the world." -M. Gandhi From p at ulmcnett.com Mon Apr 14 23:50:30 2008 From: p at ulmcnett.com (Paul McNett) Date: Mon, 14 Apr 2008 14:50:30 -0700 Subject: [Baypiggies] Crossplatform exceptions.WindowsError help Message-ID: <4803D1A6.5080507@ulmcnett.com> Hi, This code must run cross-platform: try: .. except WindowsError: .. However, the WindowsError exception is only defined on Windows, not on Linux or Mac. How do I keep a spurious NameError from happening on the other platforms while still keeping the code clean (free from os-specific code blocks)? I'm getting a WindowsError from some users sometimes, when doing webbrowser.open()[1][2]. I'd like to show a nice message rather then letting my global error handler kick in, but I have users on all platforms. Thanks! Paul [1] It could be this bug, which I can't seem to open to investigate further: http://mail.python.org/pipermail/python-bugs-list/2007-March/037608.html (I get a message "Artifact: This Artifact Has Been Made Private. Only Group Members Can View Private ArtifactTypes.") [2] Here's the traceback if you are curious: """ Shutter Studio Error Notification Customer: ---------- License: ---------- User Timestamp: 2008-04-14 21:15:40.187000 Server Timestamp: 2008-04-14 21:15:45.739410 Version, Platform: 0.9.18 Windows-XP-5.1.2600-SP2 Exception Object: [Error 2] The system cannot find the file specified: u'http://sanbenitoshutter.com' Exception Type: Active Form: Active Control: Traceback (most recent call last): File "dabo\ui\uiwx\dHtmlBox.pyo", line 52, in __onWxLinkClicked File "dabo\ui\uiwx\dPemMixin.pyo", line 894, in raiseEvent File "dabo\lib\eventMixin.pyo", line 93, in raiseEvent File "ss_common\ui\FrmAboutBase.pyo", line 51, in onHtmlLinkClicked File "webbrowser.pyo", line 60, in open File "webbrowser.pyo", line 516, in open : [Error 2] The system cannot find the file specified: u'http://sanbenitoshutter.com' ======================================================= User Notes: ======================================================= """ From aahz at pythoncraft.com Tue Apr 15 01:51:43 2008 From: aahz at pythoncraft.com (Aahz) Date: Mon, 14 Apr 2008 16:51:43 -0700 Subject: [Baypiggies] Crossplatform exceptions.WindowsError help In-Reply-To: <4803D1A6.5080507@ulmcnett.com> References: <4803D1A6.5080507@ulmcnett.com> Message-ID: <20080414235142.GA23971@panix.com> On Mon, Apr 14, 2008, Paul McNett wrote: > > Hi, > > This code must run cross-platform: > > try: > .. > except WindowsError: > .. > > However, the WindowsError exception is only defined on Windows, not on > Linux or Mac. How do I keep a spurious NameError from happening on the > other platforms while still keeping the code clean (free from > os-specific code blocks)? try: WindowsError except: class WindowsError: pass -- Aahz (aahz at pythoncraft.com) <*> http://www.pythoncraft.com/ "It is easier to optimize correct code than to correct optimized code." --Bill Harlan From p at ulmcnett.com Tue Apr 15 03:17:37 2008 From: p at ulmcnett.com (Paul McNett) Date: Mon, 14 Apr 2008 18:17:37 -0700 Subject: [Baypiggies] Crossplatform exceptions.WindowsError help In-Reply-To: <20080414235142.GA23971@panix.com> References: <4803D1A6.5080507@ulmcnett.com> <20080414235142.GA23971@panix.com> Message-ID: <48040231.3060008@ulmcnett.com> Aahz wrote: > On Mon, Apr 14, 2008, Paul McNett wrote: >> Hi, >> >> This code must run cross-platform: >> >> try: >> .. >> except WindowsError: >> .. >> >> However, the WindowsError exception is only defined on Windows, not on >> Linux or Mac. How do I keep a spurious NameError from happening on the >> other platforms while still keeping the code clean (free from >> os-specific code blocks)? > > try: > WindowsError > except: > class WindowsError: pass Okay, I guess that isn't so bad after all, now that I see it in blue on white. Thanks! Paul From justin.tabatchnick at intel.com Tue Apr 15 04:32:38 2008 From: justin.tabatchnick at intel.com (Tabatchnick, Justin) Date: Mon, 14 Apr 2008 19:32:38 -0700 Subject: [Baypiggies] help Message-ID: Hi ; I am new to Python and wanted to edit the path shown in sys.path , is there an init file or something like it that I can edit . Thanks Justin Tabatchnick Intel , Folsom , Ca -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.python.org/pipermail/baypiggies/attachments/20080414/f0e4944d/attachment.htm From max at theslimmers.net Tue Apr 15 05:03:58 2008 From: max at theslimmers.net (Max Slimmer) Date: Mon, 14 Apr 2008 20:03:58 -0700 Subject: [Baypiggies] help In-Reply-To: References: Message-ID: <48041B1E.4030503@theslimmers.net> you can do it dynamically (in your program) by import sys sys.path.append('mypath') You can 'edit' the sys.path list in addition to adding items. or you can add a .pth file in some directory in the python path, like python25 or .../sitepackages/ This would be used if you wanted to add a directory where you store various sub modules you use in your application. Tabatchnick, Justin wrote: > Hi ; > > I am new to Python and wanted to edit the path shown in sys.path , is > there an init file or something like it that I can edit . > > Thanks > > Justin Tabatchnick > Intel , Folsom , Ca > ------------------------------------------------------------------------ > > _______________________________________________ > Baypiggies mailing list > Baypiggies at python.org > To change your subscription options or unsubscribe: > http://mail.python.org/mailman/listinfo/baypiggies From mikeyp at snaplogic.org Tue Apr 15 05:43:31 2008 From: mikeyp at snaplogic.org (Michael Pittaro) Date: Mon, 14 Apr 2008 20:43:31 -0700 Subject: [Baypiggies] help In-Reply-To: <48041B1E.4030503@theslimmers.net> References: <48041B1E.4030503@theslimmers.net> Message-ID: <48042463.1010304@snaplogic.org> Welcome to Python ! I think the most direct way to do this, at least for beginners, is through the environment variable PYTHONPATH: http://docs.python.org/tut/node8.html#SECTION008120000000000000000 Any directories you add will be searched for modules before the standard locations. Max Slimmer wrote: > you can do it dynamically (in your program) by > import sys > sys.path.append('mypath') > You can 'edit' the sys.path list in addition to adding items. > > or you can add a .pth file in some directory in the python path, like > python25 or .../sitepackages/ This would be used if you wanted to add a > directory where you store various sub modules you use in your application. > > Tabatchnick, Justin wrote: > >> Hi ; >> >> I am new to Python and wanted to edit the path shown in sys.path , is >> there an init file or something like it that I can edit . >> >> Thanks >> >> Justin Tabatchnick >> Intel , Folsom , Ca >> ------------------------------------------------------------------------ >> >> From spmcinerney at hotmail.com Tue Apr 15 08:40:02 2008 From: spmcinerney at hotmail.com (Stephen McInerney) Date: Mon, 14 Apr 2008 23:40:02 -0700 Subject: [Baypiggies] Sharing AppEngine In-Reply-To: <8ACEA293-3DB6-440D-8175-4312FD502FC1@glenjarvis.com> References: <8ACEA293-3DB6-440D-8175-4312FD502FC1@glenjarvis.com> Message-ID: "Bake your own Google App Night" sounds great to me. The more people and apps the merrier. ++ Stephen > Jim, I've always dragged my feet on a talk because I needed time to > prepare. Are you interested in a Google AppEngine talk? I can > certainly be prepared for this one.... And, obviously, there may be > more experts (i.e., from Google) -- people a lot more experienced than > me! I'll easily yield to them/share the presentation with them if it > comes up. The important thing is that this is another cool technology > to explore =)> > Jim, Let me know if you think it'd be a good talk?> Others, let me know if you're interested in an ad-hoc training/ > learning facilitation meeting... _________________________________________________________________ Get in touch in an instant. Get Windows Live Messenger now. http://www.windowslive.com/messenger/overview.html?ocid=TXT_TAGLM_WL_Refresh_getintouch_042008 -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.python.org/pipermail/baypiggies/attachments/20080414/7092f4d4/attachment.htm From alecf at flett.org Wed Apr 16 00:09:22 2008 From: alecf at flett.org (Alec Flett) Date: Tue, 15 Apr 2008 15:09:22 -0700 Subject: [Baypiggies] freebase user group Message-ID: Hey folks - Tomorrow (April 16th) we're having a Freebase usergroup meeting - figure there is a lot of overlap with BayPiggies folks: lots of interesting things going on, last time there were a couple interesting python-based projects too. I'm sure there will be Google AppEngine discussion going on as well.. ..oh yeah, and free pizza and beer. If you're doing something interesting with Freebase, you should definitely come and show it off. http://upcoming.yahoo.com/event/434635/ Alec -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.python.org/pipermail/baypiggies/attachments/20080415/e7c242b8/attachment.htm From keith at dartworks.biz Wed Apr 16 13:18:22 2008 From: keith at dartworks.biz (Keith Dart) Date: Wed, 16 Apr 2008 04:18:22 -0700 (PDT) Subject: [Baypiggies] help In-Reply-To: References: Message-ID: On Mon, 14 Apr 2008, Tabatchnick, Justin wrote: > Hi ; > > I am new to Python and wanted to edit the path shown in sys.path , is > there an init file or something like it that I can edit . You can set the PYTHONPATH environment variable. However, a common newbie mistake is to think you have to do that. ;-) Could you explain in more detail what you are trying to do? -- -- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Keith Dart public key: ID: 19017044 ===================================================================== From justin.tabatchnick at intel.com Thu Apr 17 17:51:26 2008 From: justin.tabatchnick at intel.com (Tabatchnick, Justin) Date: Thu, 17 Apr 2008 08:51:26 -0700 Subject: [Baypiggies] Help In-Reply-To: References: Message-ID: Hi ; Is there a sys module and if so where is it generally located ? Thanks Justin Tabatchnick Intel -----Original Message----- From: baypiggies-bounces at python.org [mailto:baypiggies-bounces at python.org] On Behalf Of baypiggies-request at python.org Sent: Thursday, April 17, 2008 3:00 AM To: baypiggies at python.org Subject: Baypiggies Digest, Vol 30, Issue 21 Send Baypiggies mailing list submissions to baypiggies at python.org To subscribe or unsubscribe via the World Wide Web, visit http://mail.python.org/mailman/listinfo/baypiggies or, via email, send a message with subject or body 'help' to baypiggies-request at python.org You can reach the person managing the list at baypiggies-owner at python.org When replying, please edit your Subject line so it is more specific than "Re: Contents of Baypiggies digest..." Today's Topics: 1. Re: help (Keith Dart) ---------------------------------------------------------------------- Message: 1 Date: Wed, 16 Apr 2008 04:18:22 -0700 (PDT) From: Keith Dart Subject: Re: [Baypiggies] help To: "Tabatchnick, Justin" Cc: baypiggies at python.org Message-ID: Content-Type: text/plain; format=flowed; charset=us-ascii On Mon, 14 Apr 2008, Tabatchnick, Justin wrote: > Hi ; > > I am new to Python and wanted to edit the path shown in sys.path , is > there an init file or something like it that I can edit . You can set the PYTHONPATH environment variable. However, a common newbie mistake is to think you have to do that. ;-) Could you explain in more detail what you are trying to do? -- -- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Keith Dart public key: ID: 19017044 ===================================================================== ------------------------------ _______________________________________________ Baypiggies mailing list Baypiggies at python.org To change your subscription options or unsubscribe: http://mail.python.org/mailman/listinfo/baypiggies End of Baypiggies Digest, Vol 30, Issue 21 ****************************************** From niallo at unworkable.org Thu Apr 17 23:12:16 2008 From: niallo at unworkable.org (Niall O'Higgins) Date: Thu, 17 Apr 2008 22:12:16 +0100 Subject: [Baypiggies] Python WSGI server comparison? Message-ID: <20080417211216.GL18646@unworkable.org> Hi, I'm looking into various Python WSGI servers. Currently I have been testing with 2.5's wsgiref server and this works fine for me. However, I don't have a clear picture of what should be used for a more 'production' environment, my impression is that the wsgiref server is not suited to this. I have found various lists of WSGI-capable servers on the web, but have no idea what the pros and cons are, or which are well-tested and stable. At the moment I'm interested in pure Python servers, rather than Apache mod_python/mod_wsgi or fastcgi etc solutions. What are other people using? My requirements are pretty basic, its just a simple web service. Thanks! -- Niall O'Higgins Software Enthusiast http://niallohiggins.com From bpederse at gmail.com Thu Apr 17 23:24:07 2008 From: bpederse at gmail.com (Brent Pedersen) Date: Thu, 17 Apr 2008 14:24:07 -0700 Subject: [Baypiggies] Python WSGI server comparison? In-Reply-To: <20080417211216.GL18646@unworkable.org> References: <20080417211216.GL18646@unworkable.org> Message-ID: On Thu, Apr 17, 2008 at 2:12 PM, Niall O'Higgins wrote: > Hi, > > I'm looking into various Python WSGI servers. Currently I have been > testing with 2.5's wsgiref server and this works fine for me. > However, I don't have a clear picture of what should be used for a > more 'production' environment, my impression is that the wsgiref > server is not suited to this. > > I have found various lists of WSGI-capable servers on the web, but > have no idea what the pros and cons are, or which are well-tested and > stable. > > At the moment I'm interested in pure Python servers, rather than > Apache mod_python/mod_wsgi or fastcgi etc solutions. > > What are other people using? My requirements are pretty basic, its > just a simple web service. > > Thanks! > > -- > Niall O'Higgins > Software Enthusiast > http://niallohiggins.com > _______________________________________________ > Baypiggies mailing list > Baypiggies at python.org > To change your subscription options or unsubscribe: > http://mail.python.org/mailman/listinfo/baypiggies > hi, i like the cherrypy server as well. pretty sure it's python only and it's been very stable in my experience. my only complaint is it doest give "dude that's whack!" on a 500 error like the wsgiref does. you can likely drop it in place of wsgiref like: from cherrypy import wsgiserver port = 3030 server = wsgiserver.CherryPyWSGIServer(('0.0.0.0', port), [('/', application)], server_name='') try: server.start() except KeyboardInterrupt: server.stop() From oliver at 23andme.com Fri Apr 18 00:35:09 2008 From: oliver at 23andme.com (Oliver Ryan) Date: Thu, 17 Apr 2008 15:35:09 -0700 Subject: [Baypiggies] Job Posting: 23andMe seeking Sr. Level Engineers w/Python experience Message-ID: <00bc01c8a0db$4b892420$e29b6c60$@com> Hey BayPIGgies, I work with a smallish, exciting Google/Genentech funded startup in Mountain View called 23andMe. In November, we launched our product, a web-based service that helps individuals read and understand their DNA via a series of interactive tools that shed new light on everything from their health, to their distant ancestors, close family and most of all, themselves. I'm pasting a job description below, we're on the hunt for a couple of senior level people to join our engineering team (which is currently around 10 people). We are presented with some incredible and unique engineering challenges, and have built a great team that we're excited to continue growing, not to mention a great work environment. If you have questions, or are interested, please feel free to contact me directly at oliver at 23andme.com. 23andMe is seeking seasoned Software Engineers/Architects to help us continue to build an engaging, interactive website that allows people to explore their genetics. This person will (among other things) design and implement databases and application layers to support large amounts of genetic data and rapid user application development. Will solve performance and scalability challenges of a rapidly growing consumer-oriented product. Primary Responsibilities . Designing application layer abstractions (database APIs, application logic libraries) . Writing application servers, knowledge of sockets, processes and threads . Designing for performance and scalability . Profiling and optimizing code in any language ( preferably Python or C/C++) Minimum Requirements . Bachelor's in Computer Science or higher, plus 2-4 years experience (new grads also welcome to apply) . Experience with LAMP stack, including database design and management in MySQL and web programming in Python, PHP, or Perl . Security and cryptography work a plus, including implementation of symmetric key, public key, hashing, and MAC algorithms . DHTML/XHTML/CSS2/Javascript website implementation with AJAX experience also a plus Oliver Ryan 23andMe www.23andme.com oliver at 23andme.com 650 938 6300 -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.python.org/pipermail/baypiggies/attachments/20080417/02c22b13/attachment.htm From glaw at slide.com Fri Apr 18 03:22:57 2008 From: glaw at slide.com (Grace Law) Date: Thu, 17 Apr 2008 18:22:57 -0700 (PDT) Subject: [Baypiggies] What do you want to know about Stackless? In-Reply-To: <1605097716.22071208481594158.JavaMail.root@calculon.corp.slide.com> Message-ID: <133144794.22391208481777731.JavaMail.root@calculon.corp.slide.com> Hi, It's not often that Christian Tismer, inventor of Stackless Python visits the Bay Area from Germany. Is there anything in particular that people would like to know about Stackless so I can ask Chris to incorporate them his talk on May 8? So far - I have heard - 1) Why is Stackless needed 2) Latest development with Stackless 3) How do you get it working in your system ? 4) How do you use it in your app? 5) Comparison with Greenlets To get a preview on Stackless - visit: http://www.stackless.com/ Thanks in advance for your comments... Grace Law Slide is hiring! www.slide.com/static/jobs -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.python.org/pipermail/baypiggies/attachments/20080417/eefb1f07/attachment.htm From kelly at nttmcl.com Fri Apr 18 07:11:49 2008 From: kelly at nttmcl.com (Kelly Yancey) Date: Fri, 18 Apr 2008 14:11:49 +0900 Subject: [Baypiggies] Help In-Reply-To: References: Message-ID: <48082D95.4040808@nttmcl.com> Tabatchnick, Justin wrote: > Hi ; > > Is there a sys module and if so where is it generally located ? > > Thanks > > Justin Tabatchnick > Intel > Yes. import sys http://www.google.co.jp/search?q=python+sys+module&btnI=1 (In particular, you want the path variable in the sys module). Good luck, Kelly > -----Original Message----- > From: baypiggies-bounces at python.org > [mailto:baypiggies-bounces at python.org] On Behalf Of > baypiggies-request at python.org > Sent: Thursday, April 17, 2008 3:00 AM > To: baypiggies at python.org > Subject: Baypiggies Digest, Vol 30, Issue 21 > > Send Baypiggies mailing list submissions to > baypiggies at python.org > > To subscribe or unsubscribe via the World Wide Web, visit > http://mail.python.org/mailman/listinfo/baypiggies > or, via email, send a message with subject or body 'help' to > baypiggies-request at python.org > > You can reach the person managing the list at > baypiggies-owner at python.org > > When replying, please edit your Subject line so it is more specific > than "Re: Contents of Baypiggies digest..." > > > Today's Topics: > > 1. Re: help (Keith Dart) > > > ---------------------------------------------------------------------- > > Message: 1 > Date: Wed, 16 Apr 2008 04:18:22 -0700 (PDT) > From: Keith Dart > Subject: Re: [Baypiggies] help > To: "Tabatchnick, Justin" > Cc: baypiggies at python.org > Message-ID: > Content-Type: text/plain; format=flowed; charset=us-ascii > > On Mon, 14 Apr 2008, Tabatchnick, Justin wrote: > >> Hi ; >> >> I am new to Python and wanted to edit the path shown in sys.path , is >> there an init file or something like it that I can edit . > > You can set the PYTHONPATH environment variable. However, a common > newbie > mistake is to think you have to do that. ;-) Could you explain in more > detail what you are trying to do? > > > From keith at dartworks.biz Fri Apr 18 11:04:14 2008 From: keith at dartworks.biz (Keith Dart) Date: Fri, 18 Apr 2008 02:04:14 -0700 (PDT) Subject: [Baypiggies] Help In-Reply-To: References: Message-ID: On Thu, 17 Apr 2008, Tabatchnick, Justin wrote: > Hi ; > > Is there a sys module and if so where is it generally located ? Yes, there is. Do "import sys". It is built-in to the interpreter, so you won't find an external file for it. -- -- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Keith Dart public key: ID: 19017044 ===================================================================== From alecf at flett.org Fri Apr 18 17:52:47 2008 From: alecf at flett.org (Alec Flett) Date: Fri, 18 Apr 2008 08:52:47 -0700 Subject: [Baypiggies] Python WSGI server comparison? In-Reply-To: References: <20080417211216.GL18646@unworkable.org> Message-ID: Paster, that comes with paste, is a pretty dirt-simple WSGI server that supports various modes (Forked vs. Threaded, and HTTP vs FastCGI vs SCGI) with just the flip of a switch. You just tell it what combinations of the above you want. You can even run it under twisted.web, but I think that support is somewhat weak. Alec On Thu, Apr 17, 2008 at 2:24 PM, Brent Pedersen wrote: > On Thu, Apr 17, 2008 at 2:12 PM, Niall O'Higgins > wrote: > > Hi, > > > > I'm looking into various Python WSGI servers. Currently I have been > > testing with 2.5's wsgiref server and this works fine for me. > > However, I don't have a clear picture of what should be used for a > > more 'production' environment, my impression is that the wsgiref > > server is not suited to this. > > > > I have found various lists of WSGI-capable servers on the web, but > > have no idea what the pros and cons are, or which are well-tested and > > stable. > > > > At the moment I'm interested in pure Python servers, rather than > > Apache mod_python/mod_wsgi or fastcgi etc solutions. > > > > What are other people using? My requirements are pretty basic, its > > just a simple web service. > > > > Thanks! > > > > -- > > Niall O'Higgins > > Software Enthusiast > > http://niallohiggins.com > > _______________________________________________ > > Baypiggies mailing list > > Baypiggies at python.org > > To change your subscription options or unsubscribe: > > http://mail.python.org/mailman/listinfo/baypiggies > > > > hi, i like the cherrypy server as well. pretty sure it's python only > and it's been very stable in my experience. my only complaint is it > doest give "dude that's whack!" on a 500 error like the wsgiref does. > > you can likely drop it in place of wsgiref like: > > > from cherrypy import wsgiserver > port = 3030 > server = wsgiserver.CherryPyWSGIServer(('0.0.0.0', port), [('/', > application)], server_name='') > try: > server.start() > except KeyboardInterrupt: > server.stop() > _______________________________________________ > Baypiggies mailing list > Baypiggies at python.org > To change your subscription options or unsubscribe: > http://mail.python.org/mailman/listinfo/baypiggies > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.python.org/pipermail/baypiggies/attachments/20080418/b3fc34b8/attachment.htm From justin.tabatchnick at intel.com Mon Apr 21 02:24:05 2008 From: justin.tabatchnick at intel.com (Tabatchnick, Justin) Date: Sun, 20 Apr 2008 17:24:05 -0700 Subject: [Baypiggies] Want to redirect output to a csv file Message-ID: Hi I am running an imported file and want to redirect the output to a csv file , what is the best way to accomplish this ? Thanks Justin Tabatchnick Intel, Folsom -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.python.org/pipermail/baypiggies/attachments/20080420/8b778bc6/attachment.htm From cappy2112 at gmail.com Mon Apr 21 03:51:38 2008 From: cappy2112 at gmail.com (Tony Cappellini) Date: Sun, 20 Apr 2008 18:51:38 -0700 Subject: [Baypiggies] Want to redirect output to a csv file In-Reply-To: References: Message-ID: <8249c4ac0804201851o675fa581h31549715091cf2bd@mail.gmail.com> Assuming your "imported file" outputs to stdout python somefile.py > csv_output.txt should work. somefile.py is the module which is importing your file. Without knowing how your "imported file" is creating output, the above solution may or may not work. Another option would be to use the csv module and write to the output file directly, without redirection. On Sun, Apr 20, 2008 at 5:24 PM, Tabatchnick, Justin < justin.tabatchnick at intel.com> wrote: > Hi > > I am running an imported file and want to redirect the output to a csv > file , what is the best way to accomplish this ? > > Thanks > > Justin Tabatchnick > Intel, Folsom > > _______________________________________________ > Baypiggies mailing list > Baypiggies at python.org > To change your subscription options or unsubscribe: > http://mail.python.org/mailman/listinfo/baypiggies > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.python.org/pipermail/baypiggies/attachments/20080420/ad7f3aaa/attachment.htm From jmhunter.lists at gmail.com Mon Apr 21 05:46:22 2008 From: jmhunter.lists at gmail.com (Jacob Hunter) Date: Sun, 20 Apr 2008 20:46:22 -0700 Subject: [Baypiggies] Google App Engine In-Reply-To: <20080407225141.a88b5a45d4f18442e3264b556d999a36.451e4ab3f0.wbe@email.secureserver.net> References: <20080407225141.a88b5a45d4f18442e3264b556d999a36.451e4ab3f0.wbe@email.secureserver.net> Message-ID: Yes +1, any googlers hav an invite PLEASE invite me (jmhunter at gmail.com) On Mon, Apr 7, 2008 at 10:51 PM, wrote: > Pretty cool news isn't it? I don't suppose anyone might have an extra > invite? > > Yay! > > _______________________________________________ > Baypiggies mailing list > Baypiggies at python.org > To change your subscription options or unsubscribe: > http://mail.python.org/mailman/listinfo/baypiggies > From jason at mischievous.org Mon Apr 21 06:09:08 2008 From: jason at mischievous.org (Jason Culverhouse) Date: Sun, 20 Apr 2008 21:09:08 -0700 Subject: [Baypiggies] Want to redirect output to a csv file In-Reply-To: References: Message-ID: <80B093C2-B8F6-4A14-A359-C885F0FC0ECF@mischievous.org> Justin, Funny thing... I was reading and writing csv files just now. I preprocess input files to make sure all the lines have same number of fields as the header checkcsv.py < input.csv > good.csv 2>bad.csv The good lines go to stdout, the bad lines go to stderror. #!/usr/bin/env python import csv import sys reader = csv.reader(sys.stdin) error = csv.writer(sys.stderr) output = csv.writer(sys.stdout) header = reader.next() fields = len(header) output.writerow(header) for line in reader: if len(line) == fields: output.writerow(line) else: error.writerow(line) Jason On Apr 20, 2008, at 5:24 PM, Tabatchnick, Justin wrote: > Hi > > I am running an imported file and want to redirect the output to a > csv file , what is the best way to accomplish this ? > > Thanks > > Justin Tabatchnick > Intel, Folsom > _______________________________________________ > Baypiggies mailing list > Baypiggies at python.org > To change your subscription options or unsubscribe: > http://mail.python.org/mailman/listinfo/baypiggies -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.python.org/pipermail/baypiggies/attachments/20080420/eff1867a/attachment.htm From rdm at cfcl.com Mon Apr 21 08:28:24 2008 From: rdm at cfcl.com (Rich Morin) Date: Sun, 20 Apr 2008 23:28:24 -0700 Subject: [Baypiggies] BASS Meeting (SF), Wed. April 23 Message-ID: The Beer and Scripting SIG rides again! If you'd like to eat good Italian food, chat with other local scripters, and possibly take a look at laptop-demoed scripting hacks, this is the place to do it! For your convenience, here are the critical details: Date: Wednesday, April 23, 2008 (4th. Wed.) Time: 8:00 pm Place: Pasquales Pizzeria 701 Irving St. (At 8th. Ave.) San Francisco, California, USA 415/661-2140 See the BASS web page for more information: http://cfcl.com/rdm/bass/ -r -- http://www.cfcl.com/rdm Rich Morin http://www.cfcl.com/rdm/resume rdm at cfcl.com http://www.cfcl.com/rdm/weblog +1 650-873-7841 Technical editing and writing, programming, and web development From d_berthelot at yahoo.com Tue Apr 22 09:11:59 2008 From: d_berthelot at yahoo.com (David Berthelot) Date: Tue, 22 Apr 2008 00:11:59 -0700 (PDT) Subject: [Baypiggies] p2exe combined with building C extension for python on WinXP with Visual C++ 2005 Message-ID: <453582.63503.qm@web52101.mail.re2.yahoo.com> Hi, I wrote an application in python and C that I am trying to port to Windows XP (and that's where my nightmare begins). I couldn't find Visual C++ 2003 as recommended in the documentation since Microsoft removed it from download (generously offering 2005 express or 2008 express instead). Now I have installed 2005 and I managed to build my extension module, so far so good, it loads in python and works. The next step was to make this application and standalone program, so I naturally turned to py2exe. Basically it creates an archive (for which I must embed manually msvcm80.dll and msvcr80.dll). The executable works on my local computer. The problem is that when I copy this archive to another windows XP computer, it starts fine but the binary module compiled with express 2005 crashes when invoked (all other modules included binaries of wxpython which I supposed were compiled on express 2003 are running fine). How could I solve this problem ? Thanks, David ____________________________________________________________________________________ Be a better friend, newshound, and know-it-all with Yahoo! Mobile. Try it now. http://mobile.yahoo.com/;_ylt=Ahu06i62sR8HDtDypao8Wcj9tAcJ -------------- next part -------------- An HTML attachment was scrubbed... URL: From bsergean at gmail.com Tue Apr 22 10:01:10 2008 From: bsergean at gmail.com (Benjamin Sergeant) Date: Tue, 22 Apr 2008 01:01:10 -0700 Subject: [Baypiggies] p2exe combined with building C extension for python on WinXP with Visual C++ 2005 In-Reply-To: <453582.63503.qm@web52101.mail.re2.yahoo.com> References: <453582.63503.qm@web52101.mail.re2.yahoo.com> Message-ID: <1621f9fa0804220101j4fb2e5dft32c8a983935cbe60@mail.gmail.com> Building python with 2005 might help ? On Tue, Apr 22, 2008 at 12:11 AM, David Berthelot wrote: > > Hi, > > I wrote an application in python and C that I am trying to port to Windows > XP (and that's where my nightmare begins). I couldn't find Visual C++ 2003 > as recommended in the documentation since Microsoft removed it from download > (generously offering 2005 express or 2008 express instead). > > Now I have installed 2005 and I managed to build my extension module, so far > so good, it loads in python and works. > > The next step was to make this application and standalone program, so I > naturally turned to py2exe. Basically it creates an archive (for which I > must embed manually msvcm80.dll and msvcr80.dll). The executable works on my > local computer. > > The problem is that when I copy this archive to another windows XP computer, > it starts fine but the binary module compiled with express 2005 crashes when > invoked (all other modules included binaries of wxpython which I supposed > were compiled on express 2003 are running fine). How could I solve this > problem ? > > Thanks, > > David > > ________________________________ > Be a better friend, newshound, and know-it-all with Yahoo! Mobile. Try it > now. > _______________________________________________ > Baypiggies mailing list > Baypiggies at python.org > To change your subscription options or unsubscribe: > http://mail.python.org/mailman/listinfo/baypiggies > From d_berthelot at yahoo.com Tue Apr 22 10:32:15 2008 From: d_berthelot at yahoo.com (David Berthelot) Date: Tue, 22 Apr 2008 01:32:15 -0700 (PDT) Subject: [Baypiggies] p2exe combined with building C extension for python on WinXP with Visual C++ 2005 Message-ID: <194143.9950.qm@web52110.mail.re2.yahoo.com> I was kind of avoiding to rebuild python with 2005 because I'm afraid to run into other problems and I would also have to recompile all the libraries that I use, namely numpy, PIL and wxpython which I never compiled on windows (and that may bring me to recompile the core libraries on which these wrappers are based, namely blas (and all the other mathematical libraries that numpy uses) and wx as well, ...). I have the feeling there must be a simpler way. ----- Original Message ---- From: Benjamin Sergeant To: David Berthelot Cc: baypiggies at python.org Sent: Tuesday, April 22, 2008 1:01:10 AM Subject: Re: [Baypiggies] p2exe combined with building C extension for python on WinXP with Visual C++ 2005 Building python with 2005 might help ? On Tue, Apr 22, 2008 at 12:11 AM, David Berthelot wrote: > > Hi, > > I wrote an application in python and C that I am trying to port to Windows > XP (and that's where my nightmare begins). I couldn't find Visual C++ 2003 > as recommended in the documentation since Microsoft removed it from download > (generously offering 2005 express or 2008 express instead). > > Now I have installed 2005 and I managed to build my extension module, so far > so good, it loads in python and works. > > The next step was to make this application and standalone program, so I > naturally turned to py2exe. Basically it creates an archive (for which I > must embed manually msvcm80.dll and msvcr80.dll). The executable works on my > local computer. > > The problem is that when I copy this archive to another windows XP computer, > it starts fine but the binary module compiled with express 2005 crashes when > invoked (all other modules included binaries of wxpython which I supposed > were compiled on express 2003 are running fine). How could I solve this > problem ? > > Thanks, > > David > > ________________________________ > Be a better friend, newshound, and know-it-all with Yahoo! Mobile. Try it > now. > _______________________________________________ > Baypiggies mailing list > Baypiggies at python.org > To change your subscription options or unsubscribe: > http://mail.python.org/mailman/listinfo/baypiggies > ____________________________________________________________________________________ Be a better friend, newshound, and know-it-all with Yahoo! Mobile. Try it now. http://mobile.yahoo.com/;_ylt=Ahu06i62sR8HDtDypao8Wcj9tAcJ From jjinux at gmail.com Tue Apr 22 12:49:36 2008 From: jjinux at gmail.com (Shannon -jj Behrens) Date: Tue, 22 Apr 2008 03:49:36 -0700 Subject: [Baypiggies] p2exe combined with building C extension for python on WinXP with Visual C++ 2005 In-Reply-To: <194143.9950.qm@web52110.mail.re2.yahoo.com> References: <194143.9950.qm@web52110.mail.re2.yahoo.com> Message-ID: I've heard getting all that stuff to compile on Windows is very painful. I'm no Windows guy, but if I were in your shoes, I'd be asking around for a copy of Visual C++ 2003. -jj On Tue, Apr 22, 2008 at 1:32 AM, David Berthelot wrote: > I was kind of avoiding to rebuild python with 2005 because I'm afraid to run into other problems and I would also have to recompile all the libraries that I use, namely numpy, PIL and wxpython which I never compiled on windows (and that may bring me to recompile the core libraries on which these wrappers are based, namely blas (and all the other mathematical libraries that numpy uses) and wx as well, ...). I have the feeling there must be a simpler way. > > > > ----- Original Message ---- > From: Benjamin Sergeant > To: David Berthelot > Cc: baypiggies at python.org > Sent: Tuesday, April 22, 2008 1:01:10 AM > Subject: Re: [Baypiggies] p2exe combined with building C extension for python on WinXP with Visual C++ 2005 > > Building python with 2005 might help ? > > On Tue, Apr 22, 2008 at 12:11 AM, David Berthelot wrote: > > > > Hi, > > > > I wrote an application in python and C that I am trying to port to Windows > > XP (and that's where my nightmare begins). I couldn't find Visual C++ 2003 > > as recommended in the documentation since Microsoft removed it from download > > (generously offering 2005 express or 2008 express instead). > > > > Now I have installed 2005 and I managed to build my extension module, so far > > so good, it loads in python and works. > > > > The next step was to make this application and standalone program, so I > > naturally turned to py2exe. Basically it creates an archive (for which I > > must embed manually msvcm80.dll and msvcr80.dll). The executable works on my > > local computer. > > > > The problem is that when I copy this archive to another windows XP computer, > > it starts fine but the binary module compiled with express 2005 crashes when > > invoked (all other modules included binaries of wxpython which I supposed > > were compiled on express 2003 are running fine). How could I solve this > > problem ? > > > > Thanks, > > > > David > > > > ________________________________ > > Be a better friend, newshound, and know-it-all with Yahoo! Mobile. Try it > > now. > > _______________________________________________ > > Baypiggies mailing list > > Baypiggies at python.org > > To change your subscription options or unsubscribe: > > http://mail.python.org/mailman/listinfo/baypiggies > > > > > > > > ____________________________________________________________________________________ > > Be a better friend, newshound, and > know-it-all with Yahoo! Mobile. Try it now. http://mobile.yahoo.com/;_ylt=Ahu06i62sR8HDtDypao8Wcj9tAcJ > > > _______________________________________________ > Baypiggies mailing list > Baypiggies at python.org > To change your subscription options or unsubscribe: > http://mail.python.org/mailman/listinfo/baypiggies > -- I, for one, welcome our new Facebook overlords! http://jjinux.blogspot.com/ From jjinux at gmail.com Tue Apr 22 12:52:34 2008 From: jjinux at gmail.com (Shannon -jj Behrens) Date: Tue, 22 Apr 2008 03:52:34 -0700 Subject: [Baypiggies] Want to redirect output to a csv file In-Reply-To: <80B093C2-B8F6-4A14-A359-C885F0FC0ECF@mischievous.org> References: <80B093C2-B8F6-4A14-A359-C885F0FC0ECF@mischievous.org> Message-ID: Ha! I wrote very much that same script this week! $ ./blueplate/parsing/cleancuttsv.py -h Usage: cleancuttsv.py [options] Options: -h, --help show this help message and exit --assert-head=FIELD1\tFIELD2\t... assert that the first line of the file matches this --delete-head delete the first line of input -n NUM, --num-fields=NUM assert that there are this many fields per line Small world. -jj On Sun, Apr 20, 2008 at 9:09 PM, Jason Culverhouse wrote: > > Justin, > Funny thing... I was reading and writing csv files just now. > I preprocess input files to make sure all the lines have same number of > fields as the header > > checkcsv.py < input.csv > good.csv 2>bad.csv > > > The good lines go to stdout, the bad lines go to stderror. > > > #!/usr/bin/env python > import csv > import sys > > reader = csv.reader(sys.stdin) > error = csv.writer(sys.stderr) > output = csv.writer(sys.stdout) > > header = reader.next() > fields = len(header) > > output.writerow(header) > > for line in reader: > if len(line) == fields: > output.writerow(line) > else: > error.writerow(line) > > Jason > > > On Apr 20, 2008, at 5:24 PM, Tabatchnick, Justin wrote: > > > > > > Hi > > I am running an imported file and want to redirect the output to a csv file > , what is the best way to accomplish this ? > > Thanks > > Justin Tabatchnick > Intel, Folsom > _______________________________________________ > Baypiggies mailing list > Baypiggies at python.org > To change your subscription options or unsubscribe: > http://mail.python.org/mailman/listinfo/baypiggies > > _______________________________________________ > Baypiggies mailing list > Baypiggies at python.org > To change your subscription options or unsubscribe: > http://mail.python.org/mailman/listinfo/baypiggies > -- I, for one, welcome our new Facebook overlords! http://jjinux.blogspot.com/ From giles_brown at hotmail.com Tue Apr 22 12:52:57 2008 From: giles_brown at hotmail.com (Giles Brown) Date: Tue, 22 Apr 2008 11:52:57 +0100 Subject: [Baypiggies] p2exe combined with building C extension forpython on WinXP with Visual C++ 2005 In-Reply-To: <194143.9950.qm@web52110.mail.re2.yahoo.com> Message-ID: In the past I've managed to get extensions built with mingw to play ok with the standard build of python, but that was for Python 2.3 so things may have changed... http://www.mingw.org/MinGWiki/index.php/Python%20extensions Might be worth investigating. Giles -----Original Message----- From: David Berthelot [mailto:d_berthelot at yahoo.com] Sent: 22 April 2008 09:32 To: baypiggies at python.org Subject: Re: [Baypiggies] p2exe combined with building C extension forpython on WinXP with Visual C++ 2005 I was kind of avoiding to rebuild python with 2005 because I'm afraid to run into other problems and I would also have to recompile all the libraries that I use, namely numpy, PIL and wxpython which I never compiled on windows (and that may bring me to recompile the core libraries on which these wrappers are based, namely blas (and all the other mathematical libraries that numpy uses) and wx as well, ...). I have the feeling there must be a simpler way. ----- Original Message ---- From: Benjamin Sergeant To: David Berthelot Cc: baypiggies at python.org Sent: Tuesday, April 22, 2008 1:01:10 AM Subject: Re: [Baypiggies] p2exe combined with building C extension for python on WinXP with Visual C++ 2005 Building python with 2005 might help ? On Tue, Apr 22, 2008 at 12:11 AM, David Berthelot wrote: > > Hi, > > I wrote an application in python and C that I am trying to port to > Windows XP (and that's where my nightmare begins). I couldn't find > Visual C++ 2003 as recommended in the documentation since Microsoft > removed it from download (generously offering 2005 express or 2008 express instead). > > Now I have installed 2005 and I managed to build my extension module, > so far so good, it loads in python and works. > > The next step was to make this application and standalone program, so > I naturally turned to py2exe. Basically it creates an archive (for > which I must embed manually msvcm80.dll and msvcr80.dll). The > executable works on my local computer. > > The problem is that when I copy this archive to another windows XP > computer, it starts fine but the binary module compiled with express > 2005 crashes when invoked (all other modules included binaries of > wxpython which I supposed were compiled on express 2003 are running > fine). How could I solve this problem ? > > Thanks, > > David > > ________________________________ > Be a better friend, newshound, and know-it-all with Yahoo! Mobile. Try > it now. > _______________________________________________ > Baypiggies mailing list > Baypiggies at python.org > To change your subscription options or unsubscribe: > http://mail.python.org/mailman/listinfo/baypiggies > ____________________________________________________________________________ ________ Be a better friend, newshound, and know-it-all with Yahoo! Mobile. Try it now. http://mobile.yahoo.com/;_ylt=Ahu06i62sR8HDtDypao8Wcj9tAcJ From jjinux at gmail.com Tue Apr 22 12:54:39 2008 From: jjinux at gmail.com (Shannon -jj Behrens) Date: Tue, 22 Apr 2008 03:54:39 -0700 Subject: [Baypiggies] SCons Message-ID: I was wondering, is anyone interested in doing a talk on SCons, the replacement for make written in Python? I heard that the author works at VMware ;) I keep hearing really good things about it, and I'm currently spending a lot of time writing Makefiles. -jj -- I, for one, welcome our new Facebook overlords! http://jjinux.blogspot.com/ From jjinux at gmail.com Tue Apr 22 13:01:56 2008 From: jjinux at gmail.com (Shannon -jj Behrens) Date: Tue, 22 Apr 2008 04:01:56 -0700 Subject: [Baypiggies] Sharing AppEngine In-Reply-To: <8ACEA293-3DB6-440D-8175-4312FD502FC1@glenjarvis.com> References: <8ACEA293-3DB6-440D-8175-4312FD502FC1@glenjarvis.com> Message-ID: On Mon, Apr 14, 2008 at 11:37 AM, Glen Jarvis wrote: > I have seen several responses that some of our community is on the > waiting list for Google AppEngine. I didn't know anyone was waiting > (or I wouldn't have sent out this email yet). Just know that you can > do 99.99999% of the development locally without ever uploading it to > the Google site. (One could argue also 100%). > > I'm a 6-month Python newb, and I hadn't used any frameworks like > Django before this app I wrote. However, I think I can share what I've > learned that is specific to AppEngine/Google. Would anyone be > interested in getting together for local brainstorming? (Please note > I'm very very behind on chores I said I'd do at home because of this, > so it may be a little time before I can commit)... > > Again, I'm a newb.... But, I think I've learned enough I can share. If > nothing else, I can facilitate the group and learn from others if you > guys already have tons of experience in some of this... > > Jim, I've always dragged my feet on a talk because I needed time to > prepare. Are you interested in a Google AppEngine talk? I can > certainly be prepared for this one.... And, obviously, there may be > more experts (i.e., from Google) -- people a lot more experienced than > me! I'll easily yield to them/share the presentation with them if it > comes up. The important thing is that this is another cool technology > to explore =) > > Jim, Let me know if you think it'd be a good talk? > Others, let me know if you're interested in an ad-hoc training/ > learning facilitation meeting... +1 Personally, I'd love to see a talk on this. I wonder if Guido might want to say a few words too. -jj -- I, for one, welcome our new Facebook overlords! http://jjinux.blogspot.com/ From jjinux at gmail.com Tue Apr 22 13:03:27 2008 From: jjinux at gmail.com (Shannon -jj Behrens) Date: Tue, 22 Apr 2008 04:03:27 -0700 Subject: [Baypiggies] Crossplatform exceptions.WindowsError help In-Reply-To: <48040231.3060008@ulmcnett.com> References: <4803D1A6.5080507@ulmcnett.com> <20080414235142.GA23971@panix.com> <48040231.3060008@ulmcnett.com> Message-ID: On Mon, Apr 14, 2008 at 6:17 PM, Paul McNett

wrote: > Aahz wrote: > > On Mon, Apr 14, 2008, Paul McNett wrote: > >> Hi, > >> > >> This code must run cross-platform: > >> > >> try: > >> .. > >> except WindowsError: > >> .. > >> > >> However, the WindowsError exception is only defined on Windows, not on > >> Linux or Mac. How do I keep a spurious NameError from happening on the > >> other platforms while still keeping the code clean (free from > >> os-specific code blocks)? > > > > try: > > WindowsError > > except: > > class WindowsError: pass > > Okay, I guess that isn't so bad after all, now that I see it in blue on > white. Thanks! You might want to subclass WindowsError from Exception or whatever else it actually subclasses on Windows. -jj -- I, for one, welcome our new Facebook overlords! http://jjinux.blogspot.com/ From aleax at google.com Tue Apr 22 16:18:46 2008 From: aleax at google.com (Alex Martelli) Date: Tue, 22 Apr 2008 07:18:46 -0700 Subject: [Baypiggies] Sharing AppEngine In-Reply-To: References: <8ACEA293-3DB6-440D-8175-4312FD502FC1@glenjarvis.com> Message-ID: <55dc209b0804220718k3b8a56d6l44f0b5fb9708ddcf@mail.gmail.com> Check out http://googleappengine.blogspot.com/2008/04/google-app-engine-hack-thons.html -- on May 16, Google is holding exactly this kind of event in San Francisco (I can't make it there, as I'm in Italy for Pycon Italia those days, alas!). Alex On Tue, Apr 22, 2008 at 4:01 AM, Shannon -jj Behrens wrote: > > On Mon, Apr 14, 2008 at 11:37 AM, Glen Jarvis wrote: > > I have seen several responses that some of our community is on the > > waiting list for Google AppEngine. I didn't know anyone was waiting > > (or I wouldn't have sent out this email yet). Just know that you can > > do 99.99999% of the development locally without ever uploading it to > > the Google site. (One could argue also 100%). > > > > I'm a 6-month Python newb, and I hadn't used any frameworks like > > Django before this app I wrote. However, I think I can share what I've > > learned that is specific to AppEngine/Google. Would anyone be > > interested in getting together for local brainstorming? (Please note > > I'm very very behind on chores I said I'd do at home because of this, > > so it may be a little time before I can commit)... > > > > Again, I'm a newb.... But, I think I've learned enough I can share. If > > nothing else, I can facilitate the group and learn from others if you > > guys already have tons of experience in some of this... > > > > Jim, I've always dragged my feet on a talk because I needed time to > > prepare. Are you interested in a Google AppEngine talk? I can > > certainly be prepared for this one.... And, obviously, there may be > > more experts (i.e., from Google) -- people a lot more experienced than > > me! I'll easily yield to them/share the presentation with them if it > > comes up. The important thing is that this is another cool technology > > to explore =) > > > > Jim, Let me know if you think it'd be a good talk? > > Others, let me know if you're interested in an ad-hoc training/ > > learning facilitation meeting... > > +1 > > Personally, I'd love to see a talk on this. I wonder if Guido might > want to say a few words too. > > -jj > > -- > I, for one, welcome our new Facebook overlords! > http://jjinux.blogspot.com/ > > > _______________________________________________ > Baypiggies mailing list > Baypiggies at python.org > To change your subscription options or unsubscribe: > http://mail.python.org/mailman/listinfo/baypiggies > From warren at muse.com Tue Apr 22 17:26:47 2008 From: warren at muse.com (Warren Stringer) Date: Tue, 22 Apr 2008 08:26:47 -0700 Subject: [Baypiggies] Sharing AppEngine In-Reply-To: <55dc209b0804220718k3b8a56d6l44f0b5fb9708ddcf@mail.gmail.com> References: <8ACEA293-3DB6-440D-8175-4312FD502FC1@glenjarvis.com> <55dc209b0804220718k3b8a56d6l44f0b5fb9708ddcf@mail.gmail.com> Message-ID: <3DCF2820-A719-494D-BC18-A9484E1F23CA@muse.com> Just signed up! Thx Alex for the heads up! On Apr 22, 2008, at 7:18 AM, Alex Martelli wrote: > Check out http://googleappengine.blogspot.com/2008/04/google-app-engine-hack-thons.html > -- on May 16, Google is holding exactly this kind of event in San > Francisco (I can't make it there, as I'm in Italy for Pycon Italia > those days, alas!). > > Alex > > On Tue, Apr 22, 2008 at 4:01 AM, Shannon -jj Behrens > wrote: >> >> On Mon, Apr 14, 2008 at 11:37 AM, Glen Jarvis >> wrote: >>> I have seen several responses that some of our community is on the >>> waiting list for Google AppEngine. I didn't know anyone was waiting >>> (or I wouldn't have sent out this email yet). Just know that you >>> can >>> do 99.99999% of the development locally without ever uploading it to >>> the Google site. (One could argue also 100%). >>> >>> I'm a 6-month Python newb, and I hadn't used any frameworks like >>> Django before this app I wrote. However, I think I can share what >>> I've >>> learned that is specific to AppEngine/Google. Would anyone be >>> interested in getting together for local brainstorming? (Please >>> note >>> I'm very very behind on chores I said I'd do at home because of >>> this, >>> so it may be a little time before I can commit)... >>> >>> Again, I'm a newb.... But, I think I've learned enough I can >>> share. If >>> nothing else, I can facilitate the group and learn from others if >>> you >>> guys already have tons of experience in some of this... >>> >>> Jim, I've always dragged my feet on a talk because I needed time to >>> prepare. Are you interested in a Google AppEngine talk? I can >>> certainly be prepared for this one.... And, obviously, there may be >>> more experts (i.e., from Google) -- people a lot more experienced >>> than >>> me! I'll easily yield to them/share the presentation with them if >>> it >>> comes up. The important thing is that this is another cool >>> technology >>> to explore =) >>> >>> Jim, Let me know if you think it'd be a good talk? >>> Others, let me know if you're interested in an ad-hoc training/ >>> learning facilitation meeting... >> >> +1 >> >> Personally, I'd love to see a talk on this. I wonder if Guido might >> want to say a few words too. >> >> -jj >> >> -- >> I, for one, welcome our new Facebook overlords! >> http://jjinux.blogspot.com/ >> >> >> _______________________________________________ >> Baypiggies mailing list >> Baypiggies at python.org >> To change your subscription options or unsubscribe: >> http://mail.python.org/mailman/listinfo/baypiggies >> > _______________________________________________ > Baypiggies mailing list > Baypiggies at python.org > To change your subscription options or unsubscribe: > http://mail.python.org/mailman/listinfo/baypiggies > From noel.yap at gmail.com Tue Apr 22 18:22:24 2008 From: noel.yap at gmail.com (Noel Yap) Date: Tue, 22 Apr 2008 09:22:24 -0700 Subject: [Baypiggies] SCons In-Reply-To: References: Message-ID: <70d0a1130804220922r2e52f198w96c7260c3807a886@mail.gmail.com> He works at Google. I can ask if he's willing to give a talk. What are the available dates? Thanks, Noel On Tue, Apr 22, 2008 at 3:54 AM, Shannon -jj Behrens wrote: > I was wondering, is anyone interested in doing a talk on SCons, the > replacement for make written in Python? I heard that the author works > at VMware ;) > > I keep hearing really good things about it, and I'm currently spending > a lot of time writing Makefiles. > > -jj > > -- > I, for one, welcome our new Facebook overlords! > http://jjinux.blogspot.com/ > _______________________________________________ > Baypiggies mailing list > Baypiggies at python.org > To change your subscription options or unsubscribe: > http://mail.python.org/mailman/listinfo/baypiggies > From kenobi at gmail.com Tue Apr 22 20:23:57 2008 From: kenobi at gmail.com (Rick Kwan) Date: Tue, 22 Apr 2008 11:23:57 -0700 Subject: [Baypiggies] SCons In-Reply-To: <70d0a1130804220922r2e52f198w96c7260c3807a886@mail.gmail.com> References: <70d0a1130804220922r2e52f198w96c7260c3807a886@mail.gmail.com> Message-ID: It seems there are a couple of principal authors -- one at Google and one at VMware. I'll echo Noel's question. What are the available dates? And just so that we don't put the cart before the horse. Regarding JJ's question on whether there is any interest... +1 --Rick Kwan On Tue, Apr 22, 2008 at 9:22 AM, Noel Yap wrote: > He works at Google. > > I can ask if he's willing to give a talk. What are the available dates? > > Thanks, > Noel > > > > On Tue, Apr 22, 2008 at 3:54 AM, Shannon -jj Behrens wrote: > > I was wondering, is anyone interested in doing a talk on SCons, the > > replacement for make written in Python? I heard that the author works > > at VMware ;) > > > > I keep hearing really good things about it, and I'm currently spending > > a lot of time writing Makefiles. > > > > -jj > > > > -- > > I, for one, welcome our new Facebook overlords! > > http://jjinux.blogspot.com/ > > _______________________________________________ > > Baypiggies mailing list > > Baypiggies at python.org > > To change your subscription options or unsubscribe: > > http://mail.python.org/mailman/listinfo/baypiggies > > > _______________________________________________ > Baypiggies mailing list > Baypiggies at python.org > To change your subscription options or unsubscribe: > http://mail.python.org/mailman/listinfo/baypiggies > From daryl.spitzer at gmail.com Tue Apr 22 20:35:32 2008 From: daryl.spitzer at gmail.com (Daryl Spitzer) Date: Tue, 22 Apr 2008 11:35:32 -0700 Subject: [Baypiggies] SCons In-Reply-To: References: <70d0a1130804220922r2e52f198w96c7260c3807a886@mail.gmail.com> Message-ID: +1 On Tue, Apr 22, 2008 at 11:23 AM, Rick Kwan wrote: > It seems there are a couple of principal authors -- one at Google and > one at VMware. I'll echo Noel's question. What are the available > dates? > > And just so that we don't put the cart before the horse. Regarding > JJ's question on whether there is any interest... > > +1 > > --Rick Kwan > > > > On Tue, Apr 22, 2008 at 9:22 AM, Noel Yap wrote: > > He works at Google. > > > > I can ask if he's willing to give a talk. What are the available dates? > > > > Thanks, > > Noel > > > > > > > > On Tue, Apr 22, 2008 at 3:54 AM, Shannon -jj Behrens wrote: > > > I was wondering, is anyone interested in doing a talk on SCons, the > > > replacement for make written in Python? I heard that the author works > > > at VMware ;) > > > > > > I keep hearing really good things about it, and I'm currently spending > > > a lot of time writing Makefiles. > > > > > > -jj > > > > > > -- > > > I, for one, welcome our new Facebook overlords! > > > http://jjinux.blogspot.com/ > > > _______________________________________________ > > > Baypiggies mailing list > > > Baypiggies at python.org > > > To change your subscription options or unsubscribe: > > > http://mail.python.org/mailman/listinfo/baypiggies > > > > > _______________________________________________ > > Baypiggies mailing list > > Baypiggies at python.org > > To change your subscription options or unsubscribe: > > http://mail.python.org/mailman/listinfo/baypiggies > > > _______________________________________________ > Baypiggies mailing list > Baypiggies at python.org > To change your subscription options or unsubscribe: > http://mail.python.org/mailman/listinfo/baypiggies > From macambira at gmail.com Tue Apr 22 20:36:08 2008 From: macambira at gmail.com (Tiago Macambira) Date: Tue, 22 Apr 2008 11:36:08 -0700 Subject: [Baypiggies] SCons In-Reply-To: References: <70d0a1130804220922r2e52f198w96c7260c3807a886@mail.gmail.com> Message-ID: On Tue, Apr 22, 2008 at 11:23 AM, Rick Kwan wrote: (...) > And just so that we don't put the cart before the horse. Regarding > JJ's question on whether there is any interest... > > +1 +1 Cheers. Tiago Alves Macambira -------------- next part -------------- An HTML attachment was scrubbed... URL: From jason at whitlark.org Tue Apr 22 20:43:23 2008 From: jason at whitlark.org (Jason Whitlark) Date: Tue, 22 Apr 2008 11:43:23 -0700 Subject: [Baypiggies] SCons In-Reply-To: References: <70d0a1130804220922r2e52f198w96c7260c3807a886@mail.gmail.com> Message-ID: <5d932450804221143i36681582le2aaf66afbc7d4eb@mail.gmail.com> On Tue, Apr 22, 2008 at 11:36 AM, Tiago Macambira wrote: > On Tue, Apr 22, 2008 at 11:23 AM, Rick Kwan wrote: > (...) > > > And just so that we don't put the cart before the horse. Regarding > > JJ's question on whether there is any interest... > > > > +1 > > > +1 > +1 > > > Cheers. > Tiago Alves Macambira > > _______________________________________________ > Baypiggies mailing list > Baypiggies at python.org > To change your subscription options or unsubscribe: > http://mail.python.org/mailman/listinfo/baypiggies > -------------- next part -------------- An HTML attachment was scrubbed... URL: From macambira at gmail.com Tue Apr 22 20:51:23 2008 From: macambira at gmail.com (Tiago Macambira) Date: Tue, 22 Apr 2008 11:51:23 -0700 Subject: [Baypiggies] Sharing AppEngine In-Reply-To: <55dc209b0804220718k3b8a56d6l44f0b5fb9708ddcf@mail.gmail.com> References: <8ACEA293-3DB6-440D-8175-4312FD502FC1@glenjarvis.com> <55dc209b0804220718k3b8a56d6l44f0b5fb9708ddcf@mail.gmail.com> Message-ID: On Tue, Apr 22, 2008 at 7:18 AM, Alex Martelli wrote: > Check out > http://googleappengine.blogspot.com/2008/04/google-app-engine-hack-thons.html > -- on May 16, Google is holding exactly this kind of event in San > Francisco (I can't make it there, as I'm in Italy for Pycon Italia > those days, alas!). By the time of NY hackathon I'll be in SF . By the time of SF one I'll be in NY. Life does have its irony. :-) Cheers. Tiago Alves Macambira -------------- next part -------------- An HTML attachment was scrubbed... URL: From wescpy at gmail.com Tue Apr 22 21:45:12 2008 From: wescpy at gmail.com (wesley chun) Date: Tue, 22 Apr 2008 12:45:12 -0700 Subject: [Baypiggies] SCons In-Reply-To: References: Message-ID: <78b3a9580804221245j4ad4ebb9q6ad918f8d4d05b18@mail.gmail.com> +1 From john at cellspinsoft.com Tue Apr 22 22:23:17 2008 From: john at cellspinsoft.com (John Menerick) Date: Tue, 22 Apr 2008 13:23:17 -0700 Subject: [Baypiggies] SCons In-Reply-To: <78b3a9580804221245j4ad4ebb9q6ad918f8d4d05b18@mail.gmail.com> References: <78b3a9580804221245j4ad4ebb9q6ad918f8d4d05b18@mail.gmail.com> Message-ID: <3b9650f60804221323q72396984h471aedc3aaac9469@mail.gmail.com> +1 John Menerick On Tue, Apr 22, 2008 at 12:45 PM, wesley chun wrote: > +1 > _______________________________________________ > Baypiggies mailing list > Baypiggies at python.org > To change your subscription options or unsubscribe: > http://mail.python.org/mailman/listinfo/baypiggies > -------------- next part -------------- An HTML attachment was scrubbed... URL: From bdbaddog at gmail.com Tue Apr 22 22:45:43 2008 From: bdbaddog at gmail.com (William Deegan) Date: Tue, 22 Apr 2008 13:45:43 -0700 Subject: [Baypiggies] SCons In-Reply-To: <3b9650f60804221323q72396984h471aedc3aaac9469@mail.gmail.com> References: <78b3a9580804221245j4ad4ebb9q6ad918f8d4d05b18@mail.gmail.com> <3b9650f60804221323q72396984h471aedc3aaac9469@mail.gmail.com> Message-ID: <8540148a0804221345i5acbd8b4y68b5fba9c66b48f1@mail.gmail.com> +1. -Bill Deegan SCons release team member..:) On Tue, Apr 22, 2008 at 1:23 PM, John Menerick wrote: > +1 > > John Menerick > > > > On Tue, Apr 22, 2008 at 12:45 PM, wesley chun wrote: > > +1 > > > > > > > > _______________________________________________ > > Baypiggies mailing list > > Baypiggies at python.org > > To change your subscription options or unsubscribe: > > http://mail.python.org/mailman/listinfo/baypiggies > > > > > _______________________________________________ > Baypiggies mailing list > Baypiggies at python.org > To change your subscription options or unsubscribe: > http://mail.python.org/mailman/listinfo/baypiggies > From glen at glenjarvis.com Tue Apr 22 18:49:00 2008 From: glen at glenjarvis.com (Glen Jarvis) Date: Tue, 22 Apr 2008 09:49:00 -0700 Subject: [Baypiggies] Sharing AppEngine In-Reply-To: <3DCF2820-A719-494D-BC18-A9484E1F23CA@muse.com> References: <8ACEA293-3DB6-440D-8175-4312FD502FC1@glenjarvis.com> <55dc209b0804220718k3b8a56d6l44f0b5fb9708ddcf@mail.gmail.com> <3DCF2820-A719-494D-BC18-A9484E1F23CA@muse.com> Message-ID: I just signed up too! How many BayPIGgies can we get at the event? Cheers, Glen -- 415-680-3964 glen at glenjarvis.com http://www.glenjarvis.com "You must be the change you wish to see in the world." -M. Gandhi On Apr 22, 2008, at 8:26 AM, Warren Stringer wrote: > Just signed up! Thx Alex for the heads up! > > On Apr 22, 2008, at 7:18 AM, Alex Martelli wrote: > >> Check out http://googleappengine.blogspot.com/2008/04/google-app-engine-hack-thons.html >> -- on May 16, Google is holding exactly this kind of event in San >> Francisco (I can't make it there, as I'm in Italy for Pycon Italia >> those days, alas!). >> >> Alex >> >> On Tue, Apr 22, 2008 at 4:01 AM, Shannon -jj Behrens > > wrote: >>> >>> On Mon, Apr 14, 2008 at 11:37 AM, Glen Jarvis >>> wrote: >>>> I have seen several responses that some of our community is on the >>>> waiting list for Google AppEngine. I didn't know anyone was waiting >>>> (or I wouldn't have sent out this email yet). Just know that you >>>> can >>>> do 99.99999% of the development locally without ever uploading it >>>> to >>>> the Google site. (One could argue also 100%). >>>> >>>> I'm a 6-month Python newb, and I hadn't used any frameworks like >>>> Django before this app I wrote. However, I think I can share what >>>> I've >>>> learned that is specific to AppEngine/Google. Would anyone be >>>> interested in getting together for local brainstorming? (Please >>>> note >>>> I'm very very behind on chores I said I'd do at home because of >>>> this, >>>> so it may be a little time before I can commit)... >>>> >>>> Again, I'm a newb.... But, I think I've learned enough I can >>>> share. If >>>> nothing else, I can facilitate the group and learn from others if >>>> you >>>> guys already have tons of experience in some of this... >>>> >>>> Jim, I've always dragged my feet on a talk because I needed time to >>>> prepare. Are you interested in a Google AppEngine talk? I can >>>> certainly be prepared for this one.... And, obviously, there may be >>>> more experts (i.e., from Google) -- people a lot more experienced >>>> than >>>> me! I'll easily yield to them/share the presentation with them >>>> if it >>>> comes up. The important thing is that this is another cool >>>> technology >>>> to explore =) >>>> >>>> Jim, Let me know if you think it'd be a good talk? >>>> Others, let me know if you're interested in an ad-hoc training/ >>>> learning facilitation meeting... >>> >>> +1 >>> >>> Personally, I'd love to see a talk on this. I wonder if Guido might >>> want to say a few words too. >>> >>> -jj >>> >>> -- >>> I, for one, welcome our new Facebook overlords! >>> http://jjinux.blogspot.com/ >>> >>> >>> _______________________________________________ >>> Baypiggies mailing list >>> Baypiggies at python.org >>> To change your subscription options or unsubscribe: >>> http://mail.python.org/mailman/listinfo/baypiggies >>> >> _______________________________________________ >> Baypiggies mailing list >> Baypiggies at python.org >> To change your subscription options or unsubscribe: >> http://mail.python.org/mailman/listinfo/baypiggies >> > > _______________________________________________ > Baypiggies mailing list > Baypiggies at python.org > To change your subscription options or unsubscribe: > http://mail.python.org/mailman/listinfo/baypiggies From millman at berkeley.edu Wed Apr 23 00:56:14 2008 From: millman at berkeley.edu (Jarrod Millman) Date: Tue, 22 Apr 2008 17:56:14 -0500 Subject: [Baypiggies] SCons In-Reply-To: References: Message-ID: On Tue, Apr 22, 2008 at 5:54 AM, Shannon -jj Behrens wrote: > I was wondering, is anyone interested in doing a talk on SCons, the > replacement for make written in Python? +1 -- Jarrod Millman Computational Infrastructure for Research Labs 10 Giannini Hall, UC Berkeley phone: 510.643.4014 http://cirl.berkeley.edu/ From davidoff56 at alluvialsw.com Tue Apr 22 23:48:04 2008 From: davidoff56 at alluvialsw.com (Monte Davidoff) Date: Tue, 22 Apr 2008 14:48:04 -0700 Subject: [Baypiggies] SCons In-Reply-To: References: Message-ID: <480E5D14.8080600@alluvialsw.com> +1 From charles.merriam at gmail.com Wed Apr 23 07:46:37 2008 From: charles.merriam at gmail.com (Charles Merriam) Date: Tue, 22 Apr 2008 22:46:37 -0700 Subject: [Baypiggies] SCons In-Reply-To: <480E5D14.8080600@alluvialsw.com> References: <480E5D14.8080600@alluvialsw.com> Message-ID: +1, better than the OLPC talk. -- Charles On Tue, Apr 22, 2008 at 2:48 PM, Monte Davidoff wrote: > +1 > > > > _______________________________________________ > Baypiggies mailing list > Baypiggies at python.org > To change your subscription options or unsubscribe: > http://mail.python.org/mailman/listinfo/baypiggies > From charles.merriam at gmail.com Wed Apr 23 08:01:48 2008 From: charles.merriam at gmail.com (Charles Merriam) Date: Tue, 22 Apr 2008 23:01:48 -0700 Subject: [Baypiggies] Newbie-ish type questions... Message-ID: Hello, I've been creating a growing number of type functions of the form: def is_list(l): return type(l) is list def is_string(s): return isinstance(s, basestring) def is_iter(i): return hasattr(i, "next") and hasattr(i, "__iter__") ...etc., etc. I feel like I must of missed something when I learned Python. Is there a simple call I'm missing for these? Does this get better in 3.0? Charles M. From d_berthelot at yahoo.com Wed Apr 23 10:14:28 2008 From: d_berthelot at yahoo.com (David Berthelot) Date: Wed, 23 Apr 2008 01:14:28 -0700 (PDT) Subject: [Baypiggies] p2exe ... Solved (and solution) Message-ID: <443115.16864.qm@web52107.mail.re2.yahoo.com> Thanks to everyone for your prompt help, I just wanted to let you know the outcome. Giles' solution worked for me: I installed MingW and built my extension with it. Now it works flawlessly with py2exe and the archive works properly when used on a different computer. David ----- Original Message ---- From: Giles Brown To: David Berthelot ; baypiggies at python.org Sent: Tuesday, April 22, 2008 3:44:31 AM Subject: RE: [Baypiggies] p2exe combined with building C extension forpython on WinXP with Visual C++ 2005 In the past I've managed to get extensions built with mingw to play ok with the standard build of python, but that was for Python 2.3 so things may have changed... http://www.mingw.org/MinGWiki/index.php/Python%20extensions Might be worth investigating. Giles -----Original Message----- From: David Berthelot [mailto:d_berthelot at yahoo.com] Sent: 22 April 2008 09:32 To: baypiggies at python.org Subject: Re: [Baypiggies] p2exe combined with building C extension forpython on WinXP with Visual C++ 2005 I was kind of avoiding to rebuild python with 2005 because I'm afraid to run into other problems and I would also have to recompile all the libraries that I use, namely numpy, PIL and wxpython which I never compiled on windows (and that may bring me to recompile the core libraries on which these wrappers are based, namely blas (and all the other mathematical libraries that numpy uses) and wx as well, ...). I have the feeling there must be a simpler way. ----- Original Message ---- From: Benjamin Sergeant To: David Berthelot Cc: baypiggies at python.org Sent: Tuesday, April 22, 2008 1:01:10 AM Subject: Re: [Baypiggies] p2exe combined with building C extension for python on WinXP with Visual C++ 2005 Building python with 2005 might help ? On Tue, Apr 22, 2008 at 12:11 AM, David Berthelot wrote: > > Hi, > > I wrote an application in python and C that I am trying to port to > Windows XP (and that's where my nightmare begins). I couldn't find > Visual C++ 2003 as recommended in the documentation since Microsoft > removed it from download (generously offering 2005 express or 2008 express instead). > > Now I have installed 2005 and I managed to build my extension module, > so far so good, it loads in python and works. > > The next step was to make this application and standalone program, so > I naturally turned to py2exe. Basically it creates an archive (for > which I must embed manually msvcm80.dll and msvcr80.dll). The > executable works on my local computer. > > The problem is that when I copy this archive to another windows XP > computer, it starts fine but the binary module compiled with express > 2005 crashes when invoked (all other modules included binaries of > wxpython which I supposed were compiled on express 2003 are running > fine). How could I solve this problem ? > > Thanks, > > David > > ________________________________ > Be a better friend, newshound, and know-it-all with Yahoo! Mobile. Try > it now. > _______________________________________________ > Baypiggies mailing list > Baypiggies at python.org > To change your subscription options or unsubscribe: > http://mail.python.org/mailman/listinfo/baypiggies > ________________________________________________________________________ ____________ Be a better friend, newshound, and know-it-all with Yahoo! Mobile. Try it now. http://mobile.yahoo.com/;_ylt=Ahu06i62sR8HDtDypao8Wcj9tAcJ _____________________________________________________________________ This message has been checked for all known viruses by the RMS Services Ltd Virus Scanning Service. For further information visit http://www.rms.co.uk or call UK 01454 281265 ____________________________________________________________________________________ Be a better friend, newshound, and know-it-all with Yahoo! Mobile. Try it now. http://mobile.yahoo.com/;_ylt=Ahu06i62sR8HDtDypao8Wcj9tAcJ From kelly at nttmcl.com Wed Apr 23 11:01:55 2008 From: kelly at nttmcl.com (Kelly Yancey) Date: Wed, 23 Apr 2008 18:01:55 +0900 Subject: [Baypiggies] Newbie-ish type questions... In-Reply-To: References: Message-ID: <480EFB03.4080609@nttmcl.com> Charles Merriam wrote: > Hello, > > I've been creating a growing number of type functions of the form: > > def is_list(l): > return type(l) is list > > def is_string(s): > return isinstance(s, basestring) > > def is_iter(i): > return hasattr(i, "next") and hasattr(i, "__iter__") > > ...etc., etc. > > I feel like I must of missed something when I learned Python. Is > there a simple call I'm missing for > these? Does this get better in 3.0? > You aren't missing anything. :) Although, normally I don't bother with type-checking (except when writing test cases) and let duck-typing do its thing. But, yes, it gets better in 3.0: http://www.python.org/dev/peps/pep-3119/ Kelly -- Kelly Yancey http://kbyanc.blogspot.com/ From keith at dartworks.biz Wed Apr 23 12:07:18 2008 From: keith at dartworks.biz (Keith Dart) Date: Wed, 23 Apr 2008 03:07:18 -0700 (PDT) Subject: [Baypiggies] Newbie-ish type questions... In-Reply-To: References: Message-ID: On Tue, 22 Apr 2008, Charles Merriam wrote: > Hello, > > I've been creating a growing number of type functions of the form: > > def is_list(l): > return type(l) is list > > def is_string(s): > return isinstance(s, basestring) > > def is_iter(i): > return hasattr(i, "next") and hasattr(i, "__iter__") > > ...etc., etc. > > I feel like I must of missed something when I learned Python. Is > there a simple call I'm missing for > these? Does this get better in 3.0? There is the "types" module, that has the types of most Python objects. However, I really don't see much difference between these: if is_list(l): pass if type(l) is list: pass And you also save a function call when using the latter. However, it is probably preferrable to do this: if isinstance(l, list): pass since that will also catch subclasses of list. Even better, do type checking sparingly. -- -- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Keith Dart public key: ID: 19017044 ===================================================================== From p at ulmcnett.com Wed Apr 23 18:29:40 2008 From: p at ulmcnett.com (Paul McNett) Date: Wed, 23 Apr 2008 09:29:40 -0700 Subject: [Baypiggies] Newbie-ish type questions... In-Reply-To: <480EFB03.4080609@nttmcl.com> References: <480EFB03.4080609@nttmcl.com> Message-ID: <480F63F4.6010007@ulmcnett.com> Kelly Yancey wrote: > But, yes, it gets better in 3.0: > http://www.python.org/dev/peps/pep-3119/ Now *that* is reason alone to migrate to 3.0. def myfunc(seq=None): if seq is None: seq = () assert isinstance(seq, Sequence) ... I assume that strings, bytes, lists, tuples, and sets would all have Sequence as an Abstract Base Class, while ints, floats, datetimes, and decimals would not. It isn't that I always want to ask permission instead of forgiveness, but this will make for at least slightly simpler code, and seems to be a big move in the right direction. Paul From chad.netzer at gmail.com Wed Apr 23 18:49:23 2008 From: chad.netzer at gmail.com (Chad Netzer) Date: Wed, 23 Apr 2008 09:49:23 -0700 Subject: [Baypiggies] Newbie-ish type questions... In-Reply-To: <480F63F4.6010007@ulmcnett.com> References: <480EFB03.4080609@nttmcl.com> <480F63F4.6010007@ulmcnett.com> Message-ID: On Wed, Apr 23, 2008 at 9:29 AM, Paul McNett

wrote: > Kelly Yancey wrote: > > > But, yes, it gets better in 3.0: > > http://www.python.org/dev/peps/pep-3119/ > > > > Now *that* is reason alone to migrate to 3.0. > > def myfunc(seq=None): > if seq is None: > seq = () > assert isinstance(seq, Sequence) And in the meantime, it illustates that (generally) you should test for behaviors, not type. The 'operator' module has some useful predicates: isSequenceType() isNumberType() isMappingType() So the assertion above becomes: assert operator.isSequenceType(seq) If you need a sequence to be a list, just convert it: seq = list(seq) With these tools, you should almost never use "type(a) is list", or similar, in your code. * Note - I have no idea how isSequenceType() deals with iterators or generators... Does someone have a few moments to test this? From p at ulmcnett.com Wed Apr 23 18:59:34 2008 From: p at ulmcnett.com (Paul McNett) Date: Wed, 23 Apr 2008 09:59:34 -0700 Subject: [Baypiggies] Newbie-ish type questions... In-Reply-To: References: <480EFB03.4080609@nttmcl.com> <480F63F4.6010007@ulmcnett.com> Message-ID: <480F6AF6.3000608@ulmcnett.com> Chad Netzer wrote: > * Note - I have no idea how isSequenceType() deals with iterators or > generators... Does someone have a few moments to test this? I was unaware of the operator module - thanks! >>> import operator >>> l = [1,2,3] >>> i = iter(l) >>> g = (item for item in l) >>> print l, i, g [1, 2, 3] >>> map(operator.isSequenceType, (l, i, g)) [True, False, False] This is with Python 2.5.2. Paul From charles.merriam at gmail.com Wed Apr 23 19:20:20 2008 From: charles.merriam at gmail.com (Charles Merriam) Date: Wed, 23 Apr 2008 10:20:20 -0700 Subject: [Baypiggies] Newbie-ish type questions... In-Reply-To: References: <480EFB03.4080609@nttmcl.com> <480F63F4.6010007@ulmcnett.com> Message-ID: Thanks for the help, saying I'm not crazy :) Kelly: I agree on letting duck-typing do its thing. Most of the type checking shows up in my testing code, along the lines of "I really did get back a hash with values being an array of five arrays of strings". Keith: Unfortunately, the code is different for different tests of types. For example, "if type(l) is list" but if hasattr(i, "__iter__")... The use of function calls was to regularize the interface. The types module only defines nice words for the various types, including things like 'code' or 'function' which take a couple extra lines. It doesn't simplify tests. Paul: I think you're right; at least it agrees with what I've read of ABCs. It means that all the tests of standard types become is_instance tests. Good. It also looks like any arbitrary interface can be described by overriding __instancecheck__. Are there example for "This takes an interface of (open(), read(), close()) so I return true if you ask isInstance(ReadableFile) Chad: Thanks for mentioning the tests hiding in the operator class. Just the thing I was searching for in the types module. Ah, random growth. Paul: FYI, also "strings" are sequences, "sets" are not. Thanks again, Charles From p at ulmcnett.com Wed Apr 23 19:28:07 2008 From: p at ulmcnett.com (Paul McNett) Date: Wed, 23 Apr 2008 10:28:07 -0700 Subject: [Baypiggies] Newbie-ish type questions... In-Reply-To: References: <480EFB03.4080609@nttmcl.com> <480F63F4.6010007@ulmcnett.com> Message-ID: <480F71A7.7090506@ulmcnett.com> Charles Merriam wrote: > Paul: FYI, also "strings" are sequences, "sets" are not. Right you are, right you are. :) Paul From charles.merriam at gmail.com Wed Apr 23 19:46:50 2008 From: charles.merriam at gmail.com (Charles Merriam) Date: Wed, 23 Apr 2008 10:46:50 -0700 Subject: [Baypiggies] Want to redirect output to a csv file In-Reply-To: References: <80B093C2-B8F6-4A14-A359-C885F0FC0ECF@mischievous.org> Message-ID: Hmm.. I'm finding it hard to process arbitrary CSV files. The csv module and its dialects option don't handle the "take whatever the user gives me and assume the obvious". Anyone have an csv reimplementation? On Tue, Apr 22, 2008 at 3:52 AM, Shannon -jj Behrens wrote: > Ha! I wrote very much that same script this week! > > $ ./blueplate/parsing/cleancuttsv.py -h > Usage: cleancuttsv.py [options] > > Options: > -h, --help show this help message and exit > --assert-head=FIELD1\tFIELD2\t... > assert that the first line of the file matches this > --delete-head delete the first line of input > -n NUM, --num-fields=NUM > assert that there are this many fields per line > > Small world. > > -jj > > > > On Sun, Apr 20, 2008 at 9:09 PM, Jason Culverhouse > wrote: > > > > Justin, > > Funny thing... I was reading and writing csv files just now. > > I preprocess input files to make sure all the lines have same number of > > fields as the header > > > > checkcsv.py < input.csv > good.csv 2>bad.csv > > > > > > The good lines go to stdout, the bad lines go to stderror. > > > > > > #!/usr/bin/env python > > import csv > > import sys > > > > reader = csv.reader(sys.stdin) > > error = csv.writer(sys.stderr) > > output = csv.writer(sys.stdout) > > > > header = reader.next() > > fields = len(header) > > > > output.writerow(header) > > > > for line in reader: > > if len(line) == fields: > > output.writerow(line) > > else: > > error.writerow(line) > > > > Jason > > > > > > On Apr 20, 2008, at 5:24 PM, Tabatchnick, Justin wrote: > > > > > > > > > > > > Hi > > > > I am running an imported file and want to redirect the output to a csv file > > , what is the best way to accomplish this ? > > > > Thanks > > > > Justin Tabatchnick > > Intel, Folsom > > _______________________________________________ > > Baypiggies mailing list > > Baypiggies at python.org > > To change your subscription options or unsubscribe: > > http://mail.python.org/mailman/listinfo/baypiggies > > > > _______________________________________________ > > Baypiggies mailing list > > Baypiggies at python.org > > To change your subscription options or unsubscribe: > > http://mail.python.org/mailman/listinfo/baypiggies > > > > > > -- > I, for one, welcome our new Facebook overlords! > http://jjinux.blogspot.com/ > > > _______________________________________________ > Baypiggies mailing list > Baypiggies at python.org > To change your subscription options or unsubscribe: > http://mail.python.org/mailman/listinfo/baypiggies > From spmcinerney at hotmail.com Wed Apr 23 22:00:26 2008 From: spmcinerney at hotmail.com (Stephen McInerney) Date: Wed, 23 Apr 2008 13:00:26 -0700 Subject: [Baypiggies] py2exe. Python(x,y). Distribution issues. In-Reply-To: <443115.16864.qm@web52107.mail.re2.yahoo.com> References: <443115.16864.qm@web52107.mail.re2.yahoo.com> Message-ID: This whole wider issue of building with multiple package interdependencies across multiple platforms and Python versions is getting to be a headache, touched on it when discussing the Enthought distribution at April meeting. (Yes I know your case was with py2exe.) Another recently-launched free distribution is "Python(x,y)": Python 2.5 + Qt + MinGW + Eclipse + C++/Fortran + scientific libraries + 2D/3D plotting: http://www.pythonxy.com/ (currently downloadable for Windows 2003/XP/Vista; other platforms coming.) If we're talking about SCons, can we also talk about these things? Some people commented to me on the status of distutils and eggs. It's worse when you have multiple "foreign" dependencies to various non-Python packages. Stephen > Date: Wed, 23 Apr 2008 01:14:28 -0700> From: d_berthelot at yahoo.com> To: baypiggies at python.org> Subject: Re: [Baypiggies] p2exe ... Solved (and solution)> > Thanks to everyone for your prompt help, I just wanted to let you know the outcome.> > Giles' solution worked for me: I installed MingW and built my extension with it. Now it works flawlessly with py2exe and the archive works properly when used on a different computer.> > David> > ----- Original Message ----> From: Giles Brown > To: David Berthelot ; baypiggies at python.org> Sent: Tuesday, April 22, 2008 3:44:31 AM> Subject: RE: [Baypiggies] p2exe combined with building C extension forpython on WinXP with Visual C++ 2005> > In the past I've managed to get extensions built with mingw to> play ok with the standard build of python, but that was for Python 2.3> so things may have changed...> > http://www.mingw.org/MinGWiki/index.php/Python%20extensions> > Might be worth investigating.> > Giles> > -----Original Message-----> From: David Berthelot [mailto:d_berthelot at yahoo.com] > Sent: 22 April 2008 09:32> To: baypiggies at python.org> Subject: Re: [Baypiggies] p2exe combined with building C extension> forpython on WinXP with Visual C++ 2005> > I was kind of avoiding to rebuild python with 2005 because I'm afraid to> run into other problems and I would also have to recompile all the> libraries that I use, namely numpy, PIL and wxpython which I never> compiled on windows (and that may bring me to recompile the core> libraries on which these wrappers are based, namely blas (and all the> other mathematical libraries that numpy uses) and wx as well, ...). I> have the feeling there must be a simpler way.> > ----- Original Message ----> From: Benjamin Sergeant > To: David Berthelot > Cc: baypiggies at python.org> Sent: Tuesday, April 22, 2008 1:01:10 AM> Subject: Re: [Baypiggies] p2exe combined with building C extension for> python on WinXP with Visual C++ 2005> > Building python with 2005 might help ?> > On Tue, Apr 22, 2008 at 12:11 AM, David Berthelot> wrote:> >> > Hi,> >> > I wrote an application in python and C that I am trying to port to > > Windows XP (and that's where my nightmare begins). I couldn't find > > Visual C++ 2003 as recommended in the documentation since Microsoft > > removed it from download (generously offering 2005 express or 2008> express instead).> >> > Now I have installed 2005 and I managed to build my extension module, > > so far so good, it loads in python and works.> >> > The next step was to make this application and standalone program, so > > I naturally turned to py2exe. Basically it creates an archive (for > > which I must embed manually msvcm80.dll and msvcr80.dll). The > > executable works on my local computer.> >> > The problem is that when I copy this archive to another windows XP > > computer, it starts fine but the binary module compiled with express > > 2005 crashes when invoked (all other modules included binaries of > > wxpython which I supposed were compiled on express 2003 are running > > fine). How could I solve this problem ?> >> > Thanks,> >> > David> > _________________________________________________________________ In a rush? Get real-time answers with Windows Live Messenger. http://www.windowslive.com/messenger/overview.html?ocid=TXT_TAGLM_WL_Refresh_realtime_042008 -------------- next part -------------- An HTML attachment was scrubbed... URL: From charles.merriam at gmail.com Wed Apr 23 23:06:33 2008 From: charles.merriam at gmail.com (Charles Merriam) Date: Wed, 23 Apr 2008 14:06:33 -0700 Subject: [Baypiggies] Anyone hack pylint to find assert errors? Message-ID: Hi All, I've run across the classic assert error problem one too many times: assert (False, "Never triggered: The problem is in the tuple") This will still be broken in Python 3.0, last I checked. Anyone figured out how to get PyLint to flag these? I'd rather not have my own regex script. Charles From ben at groovie.org Thu Apr 24 09:33:45 2008 From: ben at groovie.org (Ben Bangert) Date: Thu, 24 Apr 2008 00:33:45 -0700 Subject: [Baypiggies] Pylons / TG2 / WSGI Sprint late May in the North Bay Message-ID: We have a Pylons/TG2/WSGI Sprint happening May 31st and June 1st, at O'Reilly Media in beautiful Sebastopol, CA. Please add your name here if you plan on attending so we can get an appropriate amount of space allocated: http://wiki.pylonshq.com/display/pylonscommunity/Sprints If your company would like to help sponsor a meal for the sprinters, please contact me privately. This Sprint is occurring at the same time as the Annual Atlanta WSGI Sprint, and those in the Bay Area are welcome to join us at O'Reilly to participate as well. Libraries/Frameworks we will be sprinting on: - Pylons - TurboGears 2 - TG2/Pylons on Jython - Beaker - WebOb - WebError - WebHelpers - Other WSGI libraries? For those interested in helping out on Pylons, our main tasks will be: - Documentation (Using Sphinx) - Website updates - Lots of unit tests - Feature additions and enhancements - Bug fixes Local hotels and directions also available at: http://wiki.pylonshq.com/display/pylonscommunity/Sprints Python developers at all levels welcome, we'll be having a WSGI intro and overview in the morning to help bring people up to speed as well. Those unable to make it, are welcome to join us online to sprint. Cheers, Ben Bangert -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: smime.p7s Type: application/pkcs7-signature Size: 2472 bytes Desc: not available URL: From jjinux at gmail.com Fri Apr 25 01:28:01 2008 From: jjinux at gmail.com (Shannon -jj Behrens) Date: Thu, 24 Apr 2008 16:28:01 -0700 Subject: [Baypiggies] Fwd: [sdforum_emergingtech] EMTECH May: Google App Engine In-Reply-To: <3a3f04f50804231526h4f2826f0x597a565bdabfdd18@mail.gmail.com> References: <3a3f04f50804231526h4f2826f0x597a565bdabfdd18@mail.gmail.com> Message-ID: ---------- Forwarded message ---------- From: Rand Bradley Date: Wed, Apr 23, 2008 at 3:26 PM Subject: [sdforum_emergingtech] EMTECH May: Google App Engine To: SDForum EMTECH-SIG We are very excited to have Dick Wall, Developer Advocate from Google, coming to talk to us in May about Google App Engine! Google App Engine puts your applications on Google's infrastructure. Just write your application, and you can scale and grow it without having to manage your own server or data center. In this session we will explore the different concepts that are important to that infrastructure for your own applications, and how to build and maintain your application using the Google App Engine SDK and management tools. The environment consists of a dynamic web server, persistent storage with queries, sorting and transactions, automatic scaling and load balancing, email and authentication services. The first language supported in Google App Engine is Python. Where: Pillsbury Winthrop, 2475 Hanover Street, Palo Alto, 94304 Here's a link that gives directions to Pillsbury: http://www.pillsburylaw.com/bv/bvisapi.dll/portal/ep/ofcDetailDirection.do/ofc/14/dir/1 When: Wednesday, May 14, 2007 6:30 Registration, Pizza, networking, and small-talk 6:50 Introduction and announcements 7:00 - 8:30 Dick Wall, Developer Advocate, Google Speaker Bio Dick Wall is a Google Developer Advocate, a Java and Python developer and enthusiast with around 15 years of programming experience, and a keen podcaster (co-host of the Java Posse podcast) not necessarily in that order. See you in May! Peter, and Rand Thanks to our sponsors IBM and Pillsbury Winthrop Shaw Pittman for their ongoing support. ---- If you have not done so already, we would like to encourage you to join the sdforum_emtech Yahoo Group. The EMTECH-SIG will discontinue posting meeting announcements to the former mailing list sometime in the future. If you would like to continue receiving meeting announcements, you can sign up at: Subscribe by email: sdforum_emergingtech-subscribe at yahoogroups.com __._,_.___ Your email settings: Individual Email|Traditional Change settings via the Web (Yahoo! ID required) Change settings via email: Switch delivery to Daily Digest | Switch to Fully Featured Visit Your Group | Yahoo! Groups Terms of Use | Unsubscribe __,_._,___ -- I, for one, welcome our new Facebook overlords! http://jjinux.blogspot.com/ From jeff at drinktomi.com Fri Apr 25 01:46:14 2008 From: jeff at drinktomi.com (Jeff Younker) Date: Thu, 24 Apr 2008 16:46:14 -0700 Subject: [Baypiggies] JSUnit and Python builds Message-ID: I'm researching JSUnit test farms in the context of Python builds and automated unit testing runs. Does anyone here have experience with/advice about driving JSUnit from Python that they'd be willing to share? - Jeff Younker - jeff at drinktomi.com - From jjinux at gmail.com Fri Apr 25 02:34:34 2008 From: jjinux at gmail.com (Shannon -jj Behrens) Date: Thu, 24 Apr 2008 17:34:34 -0700 Subject: [Baypiggies] JSUnit and Python builds In-Reply-To: References: Message-ID: On Thu, Apr 24, 2008 at 4:46 PM, Jeff Younker wrote: > I'm researching JSUnit test farms in the context of Python builds and > automated > unit testing runs. Does anyone here have experience with/advice about > driving > JSUnit from Python that they'd be willing to share? Buildbot + Selenium RC (or Windmill) + JSUnit? -jj -- I, for one, welcome our new Facebook overlords! http://jjinux.blogspot.com/ From ben at groovie.org Wed Apr 23 20:05:23 2008 From: ben at groovie.org (Ben Bangert) Date: Wed, 23 Apr 2008 11:05:23 -0700 Subject: [Baypiggies] Pylons / TG2 / WSGI Sprint May 31st-June 1st in Sebastopol, CA Message-ID: <28EEE7F4-E95E-4EE5-B95F-3836338FA595@groovie.org> We have a Pylons/TG2/WSGI Sprint happening May 31st and June 1st, at O'Reilly Media in beautiful Sebastopol, CA. Please add your name here if you plan on attending so we can get an appropriate amount of space allocated: http://wiki.pylonshq.com/display/pylonscommunity/Sprints If your company would like to help sponsor a meal for the sprinters, please contact me privately. This Sprint is occurring at the same time as the Annual Atlanta WSGI Sprint, and those in the Bay Area are welcome to join us at O'Reilly to participate as well. Libraries/Frameworks we will be sprinting on: - Pylons - TurboGears 2 - TG2/Pylons on Jython - Beaker - WebOb - WebError - WebHelpers - Other WSGI libraries? For those interested in helping out on Pylons, our main tasks will be: - Documentation (Using Sphinx) - Website updates - Lots of unit tests - Feature additions and enhancements - Bug fixes Local hotels and directions also available at: http://wiki.pylonshq.com/display/pylonscommunity/Sprints Python developers at all levels welcome, we'll be having a WSGI intro and overview in the morning to help bring people up to speed as well. Those unable to make it, are welcome to join us online to sprint. Cheers, Ben Bangert -------------- next part -------------- A non-text attachment was scrubbed... Name: smime.p7s Type: application/pkcs7-signature Size: 2472 bytes Desc: not available URL: From jjinux at gmail.com Fri Apr 25 02:41:39 2008 From: jjinux at gmail.com (Shannon -jj Behrens) Date: Thu, 24 Apr 2008 17:41:39 -0700 Subject: [Baypiggies] Anyone hack pylint to find assert errors? In-Reply-To: References: Message-ID: On Wed, Apr 23, 2008 at 2:06 PM, Charles Merriam wrote: > Hi All, > > I've run across the classic assert error problem one too many times: > assert (False, "Never triggered: The problem is in the tuple") > > This will still be broken in Python 3.0, last I checked. Anyone > figured out how to get PyLint to flag these? > I'd rather not have my own regex script. Mine own approach is to go to the programmer, stand above him, and shout: GET IT THROUGH YOUR DAMN HEAD! ASSERT IS A STATEMENT, NOT A FUNCTION!!! DON'T USE PARENTHESIS! (This is humor. Please don't take me seriously.) /me giggles ;) -jj -- I, for one, welcome our new Facebook overlords! http://jjinux.blogspot.com/ From jjinux at gmail.com Fri Apr 25 02:49:00 2008 From: jjinux at gmail.com (Shannon -jj Behrens) Date: Thu, 24 Apr 2008 17:49:00 -0700 Subject: [Baypiggies] py2exe. Python(x,y). Distribution issues. In-Reply-To: References: <443115.16864.qm@web52107.mail.re2.yahoo.com> Message-ID: On Wed, Apr 23, 2008 at 1:00 PM, Stephen McInerney wrote: > This whole wider issue of building with multiple package interdependencies > across > multiple platforms and Python versions is getting to be a headache, touched > on > it when discussing the Enthought distribution at April meeting. > (Yes I know your case was with py2exe.) > > Another recently-launched free distribution is "Python(x,y)": > Python 2.5 + Qt + MinGW + Eclipse + C++/Fortran + scientific libraries + > 2D/3D plotting: > http://www.pythonxy.com/ > (currently downloadable for Windows 2003/XP/Vista; other platforms coming.) > > If we're talking about SCons, can we also talk about these things? > Some people commented to me on the status of distutils and eggs. > It's worse when you have multiple "foreign" dependencies to various > non-Python packages. To some degree, SCons is a separate topic, or at least it is in my mind. You're talking about "how do I get these libraries to coexist". I'm talking about "how do I write software to automate my various dependency-oriented project tasks". That reminds me, have you remembered to hug a Debian developer today? Boy, they make dealing with version hell look easy, don't they? Have you looked at virtualenv. I'm haven't been 100% sold on the idea yet, but I know it's a way of running multiple projects with their own separate required versions of various eggs. Best Regards, -jj -- I, for one, welcome our new Facebook overlords! http://jjinux.blogspot.com/ From jjinux at gmail.com Fri Apr 25 02:54:16 2008 From: jjinux at gmail.com (Shannon -jj Behrens) Date: Thu, 24 Apr 2008 17:54:16 -0700 Subject: [Baypiggies] Want to redirect output to a csv file In-Reply-To: References: <80B093C2-B8F6-4A14-A359-C885F0FC0ECF@mischievous.org> Message-ID: What you're asking for would require quite a bit of intelligence, and it would require you to look at all of the data, or at least a bunch of rows. Look at how OpenOffice and Excel deal with this problem. I've heard that Excel messes it up half the time (I could be wrong. I don't use Excel). In OpenOffice, there's a wizard where you get to play with the options and look at the result until you get it right. -jj On Wed, Apr 23, 2008 at 10:46 AM, Charles Merriam wrote: > Hmm.. I'm finding it hard to process arbitrary CSV files. The csv > module and its dialects option don't handle the "take whatever the > user gives me and assume the obvious". Anyone have an csv > reimplementation? > > > > > On Tue, Apr 22, 2008 at 3:52 AM, Shannon -jj Behrens wrote: > > Ha! I wrote very much that same script this week! > > > > $ ./blueplate/parsing/cleancuttsv.py -h > > Usage: cleancuttsv.py [options] > > > > Options: > > -h, --help show this help message and exit > > --assert-head=FIELD1\tFIELD2\t... > > assert that the first line of the file matches this > > --delete-head delete the first line of input > > -n NUM, --num-fields=NUM > > assert that there are this many fields per line > > > > Small world. > > > > -jj > > > > > > > > On Sun, Apr 20, 2008 at 9:09 PM, Jason Culverhouse > > wrote: > > > > > > Justin, > > > Funny thing... I was reading and writing csv files just now. > > > I preprocess input files to make sure all the lines have same number of > > > fields as the header > > > > > > checkcsv.py < input.csv > good.csv 2>bad.csv > > > > > > > > > The good lines go to stdout, the bad lines go to stderror. > > > > > > > > > #!/usr/bin/env python > > > import csv > > > import sys > > > > > > reader = csv.reader(sys.stdin) > > > error = csv.writer(sys.stderr) > > > output = csv.writer(sys.stdout) > > > > > > header = reader.next() > > > fields = len(header) > > > > > > output.writerow(header) > > > > > > for line in reader: > > > if len(line) == fields: > > > output.writerow(line) > > > else: > > > error.writerow(line) > > > > > > Jason > > > > > > > > > On Apr 20, 2008, at 5:24 PM, Tabatchnick, Justin wrote: > > > > > > > > > > > > > > > > > > Hi > > > > > > I am running an imported file and want to redirect the output to a csv file > > > , what is the best way to accomplish this ? > > > > > > Thanks > > > > > > Justin Tabatchnick > > > Intel, Folsom > > > _______________________________________________ > > > Baypiggies mailing list > > > Baypiggies at python.org > > > To change your subscription options or unsubscribe: > > > http://mail.python.org/mailman/listinfo/baypiggies > > > > > > _______________________________________________ > > > Baypiggies mailing list > > > Baypiggies at python.org > > > To change your subscription options or unsubscribe: > > > http://mail.python.org/mailman/listinfo/baypiggies > > > > > > > > > > > -- > > I, for one, welcome our new Facebook overlords! > > http://jjinux.blogspot.com/ > > > > > > _______________________________________________ > > Baypiggies mailing list > > Baypiggies at python.org > > To change your subscription options or unsubscribe: > > http://mail.python.org/mailman/listinfo/baypiggies > > > -- I, for one, welcome our new Facebook overlords! http://jjinux.blogspot.com/ From spmcinerney at hotmail.com Fri Apr 25 03:44:57 2008 From: spmcinerney at hotmail.com (Stephen McInerney) Date: Thu, 24 Apr 2008 18:44:57 -0700 Subject: [Baypiggies] py2exe. Python(x,y). Distribution issues. In-Reply-To: References: <443115.16864.qm@web52107.mail.re2.yahoo.com> Message-ID: Yes these are separate issues to SCons per se, but thematically related. I'm talking about multiple things (especially with Windows installers, but also in general): - can I install package X, give my existing libraries and packages? - will it clobber my environment? (e.g overwrite the path or assume it is free to overwrite anything in the install-tree of the current Python install, often without backing-up?) - do I have conflicting versions? must I first upgrade/deinstall dependency package D? - after I've installed, how do I go about installing an update of package D.2? (/can I? am I stuck with that version until a new version of my package X comes out) - what enhances are needed in distutils framework to support automating these things? http://docs.python.org/dist/dist.html - can package Y coexist with X, if they use different versions of anything? - is the installer graceful enough to detect these issues upfront and warn me, or does it simply fall over halfway through or worse still, break my existing install? - I discussed with the scientific users at the April meeting, they say these are real issues - if users start writing cross-platform scientific apps using Python, this stuff will pop up. - virtualenv sounds useful, anyone have experience with it? Does it extend to foreign dependencies (e.g. C++/Fortran libs)? Stephen > Date: Thu, 24 Apr 2008 17:49:00 -0700 > From: jjinux at gmail.com > To: spmcinerney at hotmail.com > Subject: Re: [Baypiggies] py2exe. Python(x,y). Distribution issues. > CC: d_berthelot at yahoo.com; baypiggies at python.org > > On Wed, Apr 23, 2008 at 1:00 PM, Stephen McInerney > wrote: > > This whole wider issue of building with multiple package interdependencies > > across > > multiple platforms and Python versions is getting to be a headache, touched > > on > > it when discussing the Enthought distribution at April meeting. > > (Yes I know your case was with py2exe.) > > > > Another recently-launched free distribution is "Python(x,y)": > > Python 2.5 + Qt + MinGW + Eclipse + C++/Fortran + scientific libraries + > > 2D/3D plotting: > > http://www.pythonxy.com/ > > (currently downloadable for Windows 2003/XP/Vista; other platforms coming.) > > > > If we're talking about SCons, can we also talk about these things? > > Some people commented to me on the status of distutils and eggs. > > It's worse when you have multiple "foreign" dependencies to various > > non-Python packages. > > To some degree, SCons is a separate topic, or at least it is in my > mind. You're talking about "how do I get these libraries to coexist". > I'm talking about "how do I write software to automate my various > dependency-oriented project tasks". > > That reminds me, have you remembered to hug a Debian developer today? > Boy, they make dealing with version hell look easy, don't they? > > Have you looked at virtualenv. I'm haven't been 100% sold on the idea > yet, but I know it's a way of running multiple projects with their own > separate required versions of various eggs. > > Best Regards, > -jj > > -- > I, for one, welcome our new Facebook overlords! > http://jjinux.blogspot.com/ _________________________________________________________________ Back to work after baby?how do you know when you?re ready? http://lifestyle.msn.com/familyandparenting/articleNW.aspx?cp-documentid=5797498&ocid=T067MSN40A0701A -------------- next part -------------- An HTML attachment was scrubbed... URL: From sesquile at gmail.com Fri Apr 25 04:46:40 2008 From: sesquile at gmail.com (m h) Date: Thu, 24 Apr 2008 20:46:40 -0600 Subject: [Baypiggies] py2exe. Python(x,y). Distribution issues. In-Reply-To: References: <443115.16864.qm@web52107.mail.re2.yahoo.com> Message-ID: On Thu, Apr 24, 2008 at 7:44 PM, Stephen McInerney wrote: > > > Yes these are separate issues to SCons per se, but thematically related. > > I'm talking about multiple things (especially with Windows installers, but > also in general): > > - can I install package X, give my existing libraries and packages? > - will it clobber my environment? (e.g overwrite the path or assume it is > free to overwrite > anything in the install-tree of the current Python install, often without > backing-up?) > - do I have conflicting versions? must I first upgrade/deinstall dependency > package D? > - after I've installed, how do I go about installing an update of package > D.2? > (/can I? am I stuck with that version until a new version of my package X > comes out) > - what enhances are needed in distutils framework to support automating > these things? > http://docs.python.org/dist/dist.html > - can package Y coexist with X, if they use different versions of anything? > - is the installer graceful enough to detect these issues upfront and warn > me, or does it > simply fall over halfway through or worse still, break my existing install? > - I discussed with the scientific users at the April meeting, they say these > are real issues > - if users start writing cross-platform scientific apps using Python, this > stuff will pop up. > > - virtualenv sounds useful, anyone have experience with it? Does it extend > to foreign > dependencies (e.g. C++/Fortran libs)? At this point, you really want a package manager, rather than the python centric distutils world. To get around this at my previous company we started using (and contributing to) gentoo-prefix [0]. (You can think of it as a sandboxed package manager similar to fink or openpkg that runs on a posix (linux/macos/solaris/) box in it's own directory. A virtualenv on steroids. Portage was a wonderful package manager for our purposes. We were running c/c++/java/perl/php/python/ruby/mysql/postgres/tomcat/apache/lighty.... under this environment. Some of my co-workers even got it running under windows. It proved to work out quite nice. You might want to look into something like this. If you want to take it a step further then you are into the vmware/xen realm. -matt 0 - http://www.gentoo.org/proj/en/gentoo-alt/prefix/index.xml From jim at well.com Fri Apr 25 17:47:04 2008 From: jim at well.com (jim) Date: Fri, 25 Apr 2008 08:47:04 -0700 Subject: [Baypiggies] SCons In-Reply-To: <70d0a1130804220922r2e52f198w96c7260c3807a886@mail.gmail.com> References: <70d0a1130804220922r2e52f198w96c7260c3807a886@mail.gmail.com> Message-ID: <1209138424.6120.122.camel@ubuntu> i just got back in town from kansas city. i'll look up dates and reply, probably this evening. jim On Tue, 2008-04-22 at 09:22 -0700, Noel Yap wrote: > He works at Google. > > I can ask if he's willing to give a talk. What are the available dates? > > Thanks, > Noel > > On Tue, Apr 22, 2008 at 3:54 AM, Shannon -jj Behrens wrote: > > I was wondering, is anyone interested in doing a talk on SCons, the > > replacement for make written in Python? I heard that the author works > > at VMware ;) > > > > I keep hearing really good things about it, and I'm currently spending > > a lot of time writing Makefiles. > > > > -jj > > > > -- > > I, for one, welcome our new Facebook overlords! > > http://jjinux.blogspot.com/ > > _______________________________________________ > > Baypiggies mailing list > > Baypiggies at python.org > > To change your subscription options or unsubscribe: > > http://mail.python.org/mailman/listinfo/baypiggies > > > _______________________________________________ > Baypiggies mailing list > Baypiggies at python.org > To change your subscription options or unsubscribe: > http://mail.python.org/mailman/listinfo/baypiggies > From jeff at drinktomi.com Fri Apr 25 21:14:09 2008 From: jeff at drinktomi.com (Jeff Younker) Date: Fri, 25 Apr 2008 12:14:09 -0700 Subject: [Baypiggies] JSUnit and Python builds In-Reply-To: References: Message-ID: > Buildbot + Selenium RC (or Windmill) + JSUnit? click... click... click... Oh. Dear God. Using SeleniumRC to drive a browser running JSUnit? Are you serious or am I misinterpreting your intent? I was hoping that someone would have produced a solution that works a bit more like JSUnit's distrubuted test or that leverages it directly, but...that Selenium RC would work. oh... oh... that hurts. That defeats have the purpose of using JSUnit to avoid Selenium's speed hit. I mean, that's possibly uglier than incorporating the JSUnit ant tasks. Oh god JJ. Make that thought go away. Please just make it go away. -jeff From spmcinerney at hotmail.com Fri Apr 25 21:51:15 2008 From: spmcinerney at hotmail.com (Stephen McInerney) Date: Fri, 25 Apr 2008 12:51:15 -0700 Subject: [Baypiggies] Python opportunity in LA Message-ID: A recruiter contacted me about a Python developer opportunity at an online advertising sales representation company. 4-10+ YEARS IN IT DEV., 3+ YRS PYTHON, MYSQL, LINUX, AGILE/SCRUM/XP Job is based in LA. Anyone interested contact me offlist and I will put you in touch with her. Stephen _________________________________________________________________ Spell a grand slam in this game where word skill meets World Series. Get in the game. http://club.live.com/word_slugger.aspx?icid=word_slugger_wlhm_admod_april08 From matt at matt-good.net Fri Apr 25 22:03:18 2008 From: matt at matt-good.net (Matt Good) Date: Fri, 25 Apr 2008 13:03:18 -0700 Subject: [Baypiggies] Python opportunity in LA In-Reply-To: References: Message-ID: <80B16BDE-2FBA-4F37-B197-36636748CB63@matt-good.net> Please read the Job Ad Policy: http://www.baypiggies.net/jobs.html This violates at least a few of the rules (no recruiters, and not in the Bay Area) -- Matt On Apr 25, 2008, at 12:51 PM, Stephen McInerney wrote: > A recruiter contacted me about a Python developer opportunity at an > online advertising sales representation company. > 4-10+ YEARS IN IT DEV., 3+ YRS PYTHON, MYSQL, LINUX, AGILE/SCRUM/XP > > Job is based in LA. > > Anyone interested contact me offlist and I will put you in touch > with her. > > Stephen > > _________________________________________________________________ > Spell a grand slam in this game where word skill meets World Series. > Get in the game. > http://club.live.com/word_slugger.aspx?icid=word_slugger_wlhm_admod_april08 > _______________________________________________ > Baypiggies mailing list > Baypiggies at python.org > To change your subscription options or unsubscribe: > http://mail.python.org/mailman/listinfo/baypiggies From tony at tcapp.com Fri Apr 25 21:27:22 2008 From: tony at tcapp.com (Tony Cappellini) Date: Fri, 25 Apr 2008 12:27:22 -0700 Subject: [Baypiggies] Velocity:The Web Performance and Operations Conference, Discount Information Message-ID: <8249c4ac0804251227j4441e56ckb91e3c6d789e0953@mail.gmail.com> This isn't Python-centric, but since we are in OREILLY's user group network, this is one of the perks Velocity The Web Performance and Operations Conference June 23-24, 2008 San Francisco Airport Marriott Burlingame, CA UG members can use code "vel08usgr" to register and receive 15% off the registration price. Early registration discount is available until May 5 To register for the conference, go to: Get your infrastructure and operations together at Velocity, the must-attend event for those building sustainable Web sites and applications. For two days more than 600 of the world's leading web developers and infrastructure engineers will gather to share ideas, exchange real-world examples, and explore the technologies that can take your web site to the next level of speed, and sustainability. With two tracks tailor made for operations and performance, Velocity delivers in-depth practical techniques guaranteed to be useful immediately upon return to work, and long after. Special Events include: Velocity Sponsor Gallery Reception Visit the exhibitors, check out their demos, mingle with other attendees, and enjoy great refreshments and drinks at the evening reception. Sponsored by Akamai, Google, Hyperic, and Sun Microsystems. Ignite Velocity 5 minutes to shake up the world. Share your brilliant new ideas at Ignite Velocity a rapid-fire, high-energy forum for Velocity attendees. Up to 20 presenters will pitch their ideas using only 20 slides that rotate automatically after 15 seconds. Projects will be pitched, web sites launched, and elegant hacks exchanged. Birds of a Feather Sessions Get the most out your attendance in these informal meetings of like minded people. Choose your topics, share your knowledge, and get your questions answered in these face-to-face sessions. -------------- next part -------------- An HTML attachment was scrubbed... URL: From jim at well.com Sat Apr 26 20:06:27 2008 From: jim at well.com (jim) Date: Sat, 26 Apr 2008 11:06:27 -0700 Subject: [Baypiggies] SCons In-Reply-To: <1209138424.6120.122.camel@ubuntu> References: <70d0a1130804220922r2e52f198w96c7260c3807a886@mail.gmail.com> <1209138424.6120.122.camel@ubuntu> Message-ID: <1209233187.6120.155.camel@ubuntu> May 8 and June 12 are booked. We have commitments from two or three people for talks in the July to October time frame but no dates yet committed. Who's following up on this SCons talk possibility? Lemme know, please. and thanks, jim On Fri, 2008-04-25 at 08:47 -0700, jim wrote: > i just got back in town from kansas city. > i'll look up dates and reply, probably > this evening. > jim > > On Tue, 2008-04-22 at 09:22 -0700, Noel Yap wrote: > > He works at Google. > > > > I can ask if he's willing to give a talk. What are the available dates? > > > > Thanks, > > Noel > > > > On Tue, Apr 22, 2008 at 3:54 AM, Shannon -jj Behrens wrote: > > > I was wondering, is anyone interested in doing a talk on SCons, the > > > replacement for make written in Python? I heard that the author works > > > at VMware ;) > > > > > > I keep hearing really good things about it, and I'm currently spending > > > a lot of time writing Makefiles. > > > > > > -jj > > > > > > -- > > > I, for one, welcome our new Facebook overlords! > > > http://jjinux.blogspot.com/ > > > _______________________________________________ > > > Baypiggies mailing list > > > Baypiggies at python.org > > > To change your subscription options or unsubscribe: > > > http://mail.python.org/mailman/listinfo/baypiggies > > > > > _______________________________________________ > > Baypiggies mailing list > > Baypiggies at python.org > > To change your subscription options or unsubscribe: > > http://mail.python.org/mailman/listinfo/baypiggies > > > > _______________________________________________ > Baypiggies mailing list > Baypiggies at python.org > To change your subscription options or unsubscribe: > http://mail.python.org/mailman/listinfo/baypiggies > From jjinux at gmail.com Mon Apr 28 10:21:12 2008 From: jjinux at gmail.com (Shannon -jj Behrens) Date: Mon, 28 Apr 2008 01:21:12 -0700 Subject: [Baypiggies] JSUnit and Python builds In-Reply-To: References: Message-ID: On Fri, Apr 25, 2008 at 12:14 PM, Jeff Younker wrote: > > > Buildbot + Selenium RC (or Windmill) + JSUnit? > > > > click... click... click... Oh. Dear God. Using SeleniumRC > to drive a browser running JSUnit? Are you serious > or am I misinterpreting your intent? > > I was hoping that someone would have produced > a solution that works a bit more like JSUnit's distrubuted > test or that leverages it directly, but...that Selenium RC > would work. > > oh... oh... that hurts. That defeats have the purpose of > using JSUnit to avoid Selenium's speed hit. I mean, that's > possibly uglier than incorporating the JSUnit ant tasks. > > Oh god JJ. Make that thought go away. Please just > make it go away. Ok, use http://www.mozilla.org/rhino/. -jj -- I, for one, welcome our new Facebook overlords! http://jjinux.blogspot.com/ From asheesh at asheesh.org Mon Apr 28 18:59:25 2008 From: asheesh at asheesh.org (Asheesh Laroia) Date: Mon, 28 Apr 2008 09:59:25 -0700 (PDT) Subject: [Baypiggies] py2exe. Python(x,y). Distribution issues. In-Reply-To: References: <443115.16864.qm@web52107.mail.re2.yahoo.com> Message-ID: On Thu, 24 Apr 2008, m h wrote: > On Thu, Apr 24, 2008 at 7:44 PM, Stephen McInerney > wrote: [snip] >> - virtualenv sounds useful, anyone have experience with it? Does it extend >> to foreign >> dependencies (e.g. C++/Fortran libs)? > > At this point, you really want a package manager, rather than the > python centric distutils world. To get around this at my previous > company we started using (and contributing to) gentoo-prefix [0]. > (You can think of it as a sandboxed package manager similar to fink or > openpkg that runs on a posix (linux/macos/solaris/) box in it's own > directory. That sounds pretty neat. For comparison, Debian also provides a program called debootstrap that is used to create Debian chroot environments. It probably doesn't work on any POSIX system, though, just Linux ones - but it does work on pretty much any glibc+Linux system you can find. > If you want to take it a step further then you are into the vmware/xen > realm. I want to just make a personal note that I prefer Linux Vserver because it feels lighter-weight to me. It is slightly more flexible than Xen/VMWare because Xen and VMWare require you to manage RAM sizes of your guests, whereas vserver can be just used as a "container" to prevent different virtual systems from seeing each other - but resources are shared between the vservers and your main machine as usual. -- Asheesh. -- Nasrudin walked into a teahouse and declaimed, "The moon is more useful than the sun." "Why?", he was asked. "Because at night we need the light more." From spmcinerney at hotmail.com Mon Apr 28 19:27:10 2008 From: spmcinerney at hotmail.com (Stephen McInerney) Date: Mon, 28 Apr 2008 10:27:10 -0700 Subject: [Baypiggies] py2exe. Python(x,y). Distribution issues. In-Reply-To: References: <443115.16864.qm@web52107.mail.re2.yahoo.com> Message-ID: > >> - virtualenv sounds useful, anyone have experience with it? Does it extend > >> to foreign > >> dependencies (e.g. C++/Fortran libs)? > > > > At this point, you really want a package manager, rather than the > > python centric distutils world. To get around this at my previous > > company we started using (and contributing to) gentoo-prefix [0]. > > (You can think of it as a sandboxed package manager similar to fink or > > openpkg that runs on a posix (linux/macos/solaris/) box in it's own > > directory. > > That sounds pretty neat. For comparison, Debian also provides a program > called debootstrap that is used to create Debian chroot environments. It > probably doesn't work on any POSIX system, though, just Linux ones - but > it does work on pretty much any glibc+Linux system you can find. Fine but the original question asked was about Windows, and what is missing in Python distribution utils to make it properly handle the issues I mentioned. I got some constructive ideas from the SciPy people; anyone else have comment? Dogmatically repeating "Linux is the answer" is simply not an option :) > > If you want to take it a step further then you are into the vmware/xen > > realm. Look, the solution of least change is the best solution. We want to get to shrinkwrapped installers which figure out how to do the right thing, every time, without needing an MSCS degree. Best, Stephen _________________________________________________________________ Spell a grand slam in this game where word skill meets World Series. Get in the game. http://club.live.com/word_slugger.aspx?icid=word_slugger_wlhm_admod_april08 -------------- next part -------------- An HTML attachment was scrubbed... URL: From sesquile at gmail.com Mon Apr 28 19:42:04 2008 From: sesquile at gmail.com (m h) Date: Mon, 28 Apr 2008 11:42:04 -0600 Subject: [Baypiggies] py2exe. Python(x,y). Distribution issues. In-Reply-To: References: <443115.16864.qm@web52107.mail.re2.yahoo.com> Message-ID: On Mon, Apr 28, 2008 at 11:27 AM, Stephen McInerney wrote: > > > > > >> - virtualenv sounds useful, anyone have experience with it? Does it > extend > > >> to foreign > > >> dependencies (e.g. C++/Fortran libs)? > > > > > > At this point, you really want a package manager, rather than the > > > python centric distutils world. To get around this at my previous > > > company we started using (and contributing to) gentoo-prefix [0]. > > > (You can think of it as a sandboxed package manager similar to fink or > > > openpkg that runs on a posix (linux/macos/solaris/) box in it's own > > > directory. Note I never said Linux was the answer. ;) (even though I might believe that) > > > > If you want to take it a step further then you are into the vmware/xen > > > realm. > > Look, the solution of least change is the best solution. > We want to get to shrinkwrapped installers which figure out how to do the > right thing, every time, > without needing an MSCS degree. Our installers did that (that being "just worked"), for Windows and Linux, using the solution I mentioned above. cheers, -matt From jjinux at gmail.com Mon Apr 28 22:46:40 2008 From: jjinux at gmail.com (Shannon -jj Behrens) Date: Mon, 28 Apr 2008 13:46:40 -0700 Subject: [Baypiggies] I need some help architecting the big picture Message-ID: Hi, I need some help architecting the big picture on my current project. I'm usually a Web guy, which I understand very well. However, my current project is more batch oriented. Here are the details: * I have a bunch of customers. * These customers give me batches of data. One day, there might be cron jobs for collecting this data from them. One day I might have a Web service that listens to updates from them and creates batches. However, right now, they're manually giving me big chunks of data. * I've built the system in a very UNIXy way right now. That means heavy use of cut, sort, awk, small standalone Python scripts, sh, and pipes. I've followed the advice of "do one thing well" and "tools, not policy". * The data that my customers give me is not uniform. Different customers give me the data in different ways. Hence, I need some customer-specific logic to transform the data into a common format before I do the rest of the data pipeline. * After a bunch of data crunching, I end up with a bunch of different TSV files (tab-separated format) containing different things, which I end up loading into a database. * There's a separate database for each customer. * The database is used to implement a Web service. This part makes sense to me. * I'm making heavy use of testing using nose. Anyway, so I have all this customer-specifc logic, and all these data pipelines. How do I pull it together into something an operator would want to use? Is the idea of an operator appropriate? I'm pretty sure this is an "operations" problem. My current course of action is to: * Create a global Makefile that knows how to do system-wide tasks. * Create a customer-specific Makefile for each customer. * The customer-specific Makefiles all "include" a shared Makefile. I modeled this after FreeBSD's ports system. Hence, the customer-specific Makefiles have some customer-specific logic in them, but they can share code via the shared Makefile that they all include. * Currently, all of the Python scripts take all their settings on the command line. I'm thinking that the settings belong in an included Makefile that just contains settings. By keeping the Python dumb, I'm attempting to follow the "tools, not policy" idea. I'm having a little bit of a problem with testing. I don't have a way of testing any Python code that talks to a database because the Python scripts are all dumb about how to connect to the database. I'm thinking I might need to setup a "pretend" customer with a test database to test all of that logic. Does the idea of driving everything from Makefiles make sense? Is there an easier way to share data like database connection information between the Makefile and Python other than passing it in explicitly via command line arguments? Is there anything that makes more sense than a bunch of customer-specific Makefiles that include a global Makefile? How do I get new batches of data into the system? Do I just put the files in the right place and let the Makefiles take it from there? Am I completely smoking, or am I on the right track? Thanks, -jj -- I, for one, welcome our new Facebook overlords! http://jjinux.blogspot.com/ From p at ulmcnett.com Mon Apr 28 23:50:10 2008 From: p at ulmcnett.com (Paul McNett) Date: Mon, 28 Apr 2008 14:50:10 -0700 Subject: [Baypiggies] I need some help architecting the big picture In-Reply-To: References: Message-ID: <48164692.9020902@ulmcnett.com> Shannon -jj Behrens wrote: > I need some help architecting the big picture on my current project. > I'm usually a Web guy, which I understand very well. However, my > current project is more batch oriented. Here are the details: > > * I have a bunch of customers. > > * These customers give me batches of data. One day, there might be > cron jobs for collecting this data from them. One day I might have a > Web service that listens to updates from them and creates batches. > However, right now, they're manually giving me big chunks of data. > > * I've built the system in a very UNIXy way right now. That means > heavy use of cut, sort, awk, small standalone Python scripts, sh, and > pipes. I've followed the advice of "do one thing well" and "tools, > not policy". I think this is good. You can swap out, improve, any of the pieces without detriment as long as the interface is the same. > * The data that my customers give me is not uniform. Different > customers give me the data in different ways. Hence, I need some > customer-specific logic to transform the data into a common format > before I do the rest of the data pipeline. Does the data structure from a given customer stay consistent? If a batch is inconsistent with that customer's "standard", can you bounce it back to them or must your toolchain adapt? > * After a bunch of data crunching, I end up with a bunch of different > TSV files (tab-separated format) containing different things, which I > end up loading into a database. And at this point, is the data in a common format for all customers? IOW, is the database schema consistent for all customers? > * There's a separate database for each customer. Fine. > * The database is used to implement a Web service. This part makes sense to me. > > * I'm making heavy use of testing using nose. > > Anyway, so I have all this customer-specifc logic, and all these data > pipelines. How do I pull it together into something an operator would > want to use? Is the idea of an operator appropriate? I'm pretty sure > this is an "operations" problem. Is this operator of the intelligent variety, or some temp worker with Excel experience? Where in the process does this operator sit? Does he/she receive the batches from the customers and then feed them to your toolchain and verify that the batches made it to the database, or something else entirely? > My current course of action is to: > > * Create a global Makefile that knows how to do system-wide tasks. > > * Create a customer-specific Makefile for each customer. > > * The customer-specific Makefiles all "include" a shared Makefile. I > modeled this after FreeBSD's ports system. The Makefile strategy sounds very sane, easy to manage once set up. Easy to boilerplate for new customers, etc. Well, maybe not "easy", but straightforward and understandable. > Hence, the customer-specific Makefiles have some customer-specific > logic in them, but they can share code via the shared Makefile that > they all include. > > * Currently, all of the Python scripts take all their settings on the > command line. I'm thinking that the settings belong in an included > Makefile that just contains settings. By keeping the Python dumb, I'm > attempting to follow the "tools, not policy" idea. The settings should ultimately come from once place. This one place could be a text file, a database entry, a part of the customer's Makefile, or the operator could get prompted for some or all of the information. The scripts taking the arguments on the command line is fine. Each link in the chain just passes that information forward. > I'm having a little bit of a problem with testing. I don't have a way > of testing any Python code that talks to a database because the Python > scripts are all dumb about how to connect to the database. I'm > thinking I might need to setup a "pretend" customer with a test > database to test all of that logic. I think keeping the scripts "dumb" is good, but why do your tests need to be dumb, too? If you are testing interaction between your script and the database, then test that by sending the database connection parameters. A test or reference customer is a good idea. > Does the idea of driving everything from Makefiles make sense? I think it makes a lot of sense. Your pipeline may seem complex on one level by having so many little parts, but this is good keeping each function in the pipeline separate and well-oiled. > Is there an easier way to share data like database connection > information between the Makefile and Python other than passing it in > explicitly via command line arguments? Is this question still from a testing perspective? Make a test database, and set the test database parameters in the global makefile, and send the connection arguments to your python scripts just as you have it now. Then each customer-specific makefile will have its own overridden connection parameters. Set up a test database, perhaps copied from some reference customer's data, to use in your testing. Why does it seem like it is a problem to be passing this information on the command line? > Is there anything that makes more sense than a bunch of > customer-specific Makefiles that include a global Makefile? Are you benefiting in some other way by not making this a pure-Python project? Not knowing more, I think I'd try to use a Python subclassing strategy instead of makefiles, and Python modules instead of Unix applications, but it is basically the same in the end. > How do I get new batches of data into the system? Do I just put the > files in the right place and let the Makefiles take it from there? The files are "data", and once a batch is processed you don't need that chunk of data anymore, unless you want to archive it. So just have an in_data file that the Makefile can feed your toolchain with. Perhaps your operator needs a very thin GUI frontend for this to feed the input batch into the in_data file and start the make. So, the operator gets a data chunk from XZY Corp. They just select that customer from a list and paste in the contents of the data, and press "submit". And wait for a green "okay" or a red "uh-oh". > Am I completely smoking, or am I on the right track? Is any of this implemented yet, or is it still in pure design phase? It sounds like you have it implemented and you are going crazy dealing with the various inputs from the various customers, and perhaps you are wondering how to scale this to even more customers, and how to train an operator/operators to intelligently wield this toolchain you've built. It sounds like a fun project! :) Paul From ben at groovie.org Mon Apr 28 23:57:19 2008 From: ben at groovie.org (Ben Bangert) Date: Mon, 28 Apr 2008 14:57:19 -0700 Subject: [Baypiggies] I need some help architecting the big picture In-Reply-To: References: Message-ID: <0D7B2CBF-DF98-4D4D-BE4A-F35E5E296141@groovie.org> On Apr 28, 2008, at 1:46 PM, Shannon -jj Behrens wrote: > My current course of action is to: > > * Create a global Makefile that knows how to do system-wide tasks. > > * Create a customer-specific Makefile for each customer. > > * The customer-specific Makefiles all "include" a shared Makefile. I > modeled this after FreeBSD's ports system. > > Hence, the customer-specific Makefiles have some customer-specific > logic in them, but they can share code via the shared Makefile that > they all include. > > * Currently, all of the Python scripts take all their settings on the > command line. I'm thinking that the settings belong in an included > Makefile that just contains settings. By keeping the Python dumb, I'm > attempting to follow the "tools, not policy" idea. > > I'm having a little bit of a problem with testing. I don't have a way > of testing any Python code that talks to a database because the Python > scripts are all dumb about how to connect to the database. I'm > thinking I might need to setup a "pretend" customer with a test > database to test all of that logic. > > Does the idea of driving everything from Makefiles make sense? My initial thought given both what you're doing now, and what you want to be able to do "One day", is that you essentially have a data warehouse type operation with data processing flows. There is data that comes in, goes through a workflow process of some sort where processing occurs, at which point you get your TSV files that you load into a db presumably for said customer to then retrieve at some later point. Some things you will probably need shortly when you do go to full automation (as it sounds rather manual right now): - Error reports when a processing step has failed - Possible retries of a processing step - Ability to scale out processing so that you can add more boxes easily While something like Amazon SQS works pretty well for queuing purposes, I could envision using something like Brad Fitzpatrick's TheSchwartz (http://search.cpan.org/~bradfitz/TheSchwartz-1.04/lib/TheSchwartz.pm ) reliable job queue system instead (and I believe it has a few more features that'd be important for you). Unfortunately I have yet to see a Python version of TheSchwartz, and there's a fully network based version in the works I believe. If you had such a queue system, I'd think of it like this: - Customer submits data for processing (whether in a manual file, web interface, etc) - Data is sent to MogileFS (or some redundant and distributed FS like it) - A job is setup in the queue for processing to begin - Worker processes (likely written in Python, and using the shell tools you talked of) take the job, perform their step, put the processed data back in MogileFS, replace their job in the queue with the next step to perform (This step repeats as necessary until processing pipeline is done) - Web Interface can query db to see if job was finished, pull data back, etc. For testing, it should be pretty easy to test the worker processes individually to see that each job function can be completed properly. The db would also include processing steps and workflow in a table. So you could add a customer and designate a workflow as a series of job tasks in the order they should be performed. This also follows what Paul McNett was saying about keeping the settings in one place. It also provides a single point to report on the progress of the job through their workflow, whether each step completed properly, and failure messages if it didn't. Since you have a data processing pipeline, which is more workflow oriented, and where its quite likely you may want to scale processing out, the Makefile approach seems like a mismatch to the task at hand. > Is there an easier way to share data like database connection > information between the Makefile and Python other than passing it in > explicitly via command line arguments? I'd keep it with the rest of the settings in a global customer data db. Separate from each customers db. > Is there anything that makes more sense than a bunch of > customer-specific Makefiles that include a global Makefile? Hopefully what I proposed. :) > How do I get new batches of data into the system? Do I just put the > files in the right place and let the Makefiles take it from there? With a queue system, you just feed new data in via the web UI, or manually, and fire a job request into the queue, then sit back and wait for the processed data to be available. Cheers, Ben -------------- next part -------------- A non-text attachment was scrubbed... Name: smime.p7s Type: application/pkcs7-signature Size: 2472 bytes Desc: not available URL: From mikeyp at snaplogic.org Tue Apr 29 00:02:54 2008 From: mikeyp at snaplogic.org (Michael Pittaro) Date: Mon, 28 Apr 2008 15:02:54 -0700 Subject: [Baypiggies] I need some help architecting the big picture In-Reply-To: References: Message-ID: <4816498E.2080606@snaplogic.org> Shannon -jj Behrens wrote: > Hi, > > I need some help architecting the big picture on my current project. > I'm usually a Web guy, which I understand very well. However, my > current project is more batch oriented. Here are the details: > > ... > Anyway, so I have all this customer-specifc logic, and all these data > pipelines. How do I pull it together into something an operator would > want to use? Is the idea of an operator appropriate? I'm pretty sure > this is an "operations" problem. > JJ, This sounds like a typical data integration project, which is what SnapLogic is designed for. Depending on what sort of operations you're doing on the data, we might already have the right components or you might need to create a new one, but from your description, it sounds like we have most of the database and file IO you need. You're right about the operations aspect - you probably want an 'operator' interface that that will just run everything when the right files are in place, either scheduled or triggered by some event. Drop me a line if you need more details. mike -- Mike Pittaro Co-Founder Snaplogic, Inc. mikeyp at snaplogic.org http://www.snaplogic.org/developer/mikeyp From max at theslimmers.net Tue Apr 29 00:16:04 2008 From: max at theslimmers.net (Max Slimmer) Date: Mon, 28 Apr 2008 15:16:04 -0700 Subject: [Baypiggies] I need some help architecting the big picture In-Reply-To: References: Message-ID: <48164CA4.4030706@theslimmers.net> A couple thoughts on how I might approach this problem, actually this is the kind of thing I am doing. I use configObject to manage my control files, for each customer there would be a config file which can of course get common params from some global config file which can always be used or by including a directive in the customer config file. This tool which is an extention of configparser, it allows hierarchical sections, lets you enter values as lists and returns everything as python objects (dicts for the most part). I would then have a main driver program that initializes logging, and gets the commandline specified config file. You could have a section in the config specifying workflow in terms of py modules and classes that could be dynamically instantiated and in turn they could get any varriable info from the same config object. You can then implement fairly generic modules to retrieve and parse the customer data, and have options to save or move the data to some archive location. Some modules will be common the ones toward the end of the pipline since they will typically see data in a known format and only need to know how to wrap it, assign ownership... In my system after extracting and doing some transformation on the data, I store the transformed data in some pending directory and pass a referance to a queue that the next phase waits on, you could also think about passing operations and data using messaging, this would require various components to each be running and listening for request... I think you will find using configObject instead of make files will make life simpler especially if some non technical person is to be given the task of generating these. A gui could help here or you could use the validation facilities included. max Shannon -jj Behrens wrote: > Hi, > > I need some help architecting the big picture on my current project. > I'm usually a Web guy, which I understand very well. However, my > current project is more batch oriented. Here are the details: > > * I have a bunch of customers. > > * These customers give me batches of data. One day, there might be > cron jobs for collecting this data from them. One day I might have a > Web service that listens to updates from them and creates batches. > However, right now, they're manually giving me big chunks of data. > > * I've built the system in a very UNIXy way right now. That means > heavy use of cut, sort, awk, small standalone Python scripts, sh, and > pipes. I've followed the advice of "do one thing well" and "tools, > not policy". > > * The data that my customers give me is not uniform. Different > customers give me the data in different ways. Hence, I need some > customer-specific logic to transform the data into a common format > before I do the rest of the data pipeline. > > * After a bunch of data crunching, I end up with a bunch of different > TSV files (tab-separated format) containing different things, which I > end up loading into a database. > > * There's a separate database for each customer. > > * The database is used to implement a Web service. This part makes sense to me. > > * I'm making heavy use of testing using nose. > > Anyway, so I have all this customer-specifc logic, and all these data > pipelines. How do I pull it together into something an operator would > want to use? Is the idea of an operator appropriate? I'm pretty sure > this is an "operations" problem. > > My current course of action is to: > > * Create a global Makefile that knows how to do system-wide tasks. > > * Create a customer-specific Makefile for each customer. > > * The customer-specific Makefiles all "include" a shared Makefile. I > modeled this after FreeBSD's ports system. > > Hence, the customer-specific Makefiles have some customer-specific > logic in them, but they can share code via the shared Makefile that > they all include. > > * Currently, all of the Python scripts take all their settings on the > command line. I'm thinking that the settings belong in an included > Makefile that just contains settings. By keeping the Python dumb, I'm > attempting to follow the "tools, not policy" idea. > > I'm having a little bit of a problem with testing. I don't have a way > of testing any Python code that talks to a database because the Python > scripts are all dumb about how to connect to the database. I'm > thinking I might need to setup a "pretend" customer with a test > database to test all of that logic. > > Does the idea of driving everything from Makefiles make sense? > > Is there an easier way to share data like database connection > information between the Makefile and Python other than passing it in > explicitly via command line arguments? > > Is there anything that makes more sense than a bunch of > customer-specific Makefiles that include a global Makefile? > > How do I get new batches of data into the system? Do I just put the > files in the right place and let the Makefiles take it from there? > > Am I completely smoking, or am I on the right track? > > Thanks, > -jj > > From jeff at drinktomi.com Tue Apr 29 00:17:11 2008 From: jeff at drinktomi.com (Jeff Younker) Date: Mon, 28 Apr 2008 15:17:11 -0700 Subject: [Baypiggies] I need some help architecting the big picture In-Reply-To: References: Message-ID: > Anyway, so I have all this customer-specifc logic, and all these data > pipelines. How do I pull it together into something an operator would > want to use? Is the idea of an operator appropriate? I'm pretty sure > this is an "operations" problem. The pipeline is a product that development delivers to operations. Operations maintains and monitors it. You do not want to have a system where an operator coordinating it on a a permanent basis. The pipeline should just chug along. Data gets fed in, information is spit out. Pushing pipeline development off to "operations" is a sure way of making your process melt down eventually. You end up with a system where huge chunks of logic are handled by one group and huge chunks are handled by another, and nobody actually understands how the system works. That said, you'll need an interface so that operations can see what is happening with the pipeline. They need this to trouble shoot the pipeline. A simple one may just summarize data from logs. > Currently, all of the Python scripts take all their settings on the > command line. I'm thinking that the settings belong in an included > Makefile that just contains settings. By keeping the Python dumb, I'm > attempting to follow the "tools, not policy" idea. > ... > Is there an easier way to share data like database connection > information between the Makefile and Python other than passing it in > explicitly via command line arguments? Command options are just like method arguments. Too many mandatory ones being passed all over the place are an indication that they need to be replaced by a single entity. Pass around a reference to a config file instead. Use this config file everywhere. Configuration changes should only be made in one place. Distributing configuration throughout a pipeline system is a recipe for long term failure. A Python file that is sourced is a wonderful config file format. Java style properties files work too. Simple key-value shell scripts can be eval'd as Python too. I imagine you already have a config system for your web front end. Consider re-using that. Depending upon how many machines you have interacting you may need a distributed config system. Publishing a file via HTTP is an easy solution. > Does the idea of driving everything from Makefiles make sense? It sounds to me like a horrible hack that will break down when you start wanting to do recovery and pipeline monitoring. Consider writing a simple queue management command. It It looks for work in one bin, calls an external command to process the work, and then dumps it into the next. The bins can be as simple as directories: File A1 goes into bin A/pending A1 is picked up by job A A/pending/A1 gets moved to A/consuming/A1 A/consuming/A1 is processed to B/producing/B1 A/consuming/A1 is moved to A/consumed/A1 B/producing/B1 is moved to B/pending/B1 Writing such a simple queue manager should be straight forward. Then your tool chain becomes nothing more than a series of calls to the managers. Or you could have each queue command daemonize itself and then poll the queues every so often. > I'm having a little bit of a problem with testing. I don't have a way > of testing any Python code that talks to a database because the Python > scripts are all dumb about how to connect to the database. I'm > thinking I might need to setup a "pretend" customer with a test > database to test all of that logic. Standard unit testing stuff should work. Use mock objects to stub out the database connection. I actually do all of my scripts via a little harness that handles all the generic command line setup. Scripts subclass the tframe.Framework object (which I'm releasing as soon as I'm done with the damn book), and the the script body goes in a run(options, args) method. Testing involves instantiating the script's Framework class and then poking at it. - Jeff Younker - jeff at drinktomi.com - From andywiggin at gmail.com Tue Apr 29 00:23:38 2008 From: andywiggin at gmail.com (Andy Wiggin) Date: Mon, 28 Apr 2008 15:23:38 -0700 Subject: [Baypiggies] I need some help architecting the big picture In-Reply-To: References: Message-ID: <74e7428a0804281523i47dc1475ke90498f95335a1f1@mail.gmail.com> I can't speak to too many of the points, but... I recently worked on a project which had some similarities to this. Instead of UNIX pipelines (grep/sed/akw/...), I implemented a plugin mechanism to gather data. The main class allows the registration of plugins which then have the responsibility of parsing the particular format and calling the main class to store the normalized data (roughly speaking). In your case, you could name the plugin the same as the customer and give the plugin name on the command line of the main program, or detect it from the process cwd, or whatever is convenient (and reliable). I liked the way the plugin system worked out, in no small measure because it was then natural to write the whole system in python. The uniformity might make the testing and error detection/reporting a little easier, too. Regards, Andy On Mon, Apr 28, 2008 at 1:46 PM, Shannon -jj Behrens wrote: > Hi, > > I need some help architecting the big picture on my current project. > I'm usually a Web guy, which I understand very well. However, my > current project is more batch oriented. Here are the details: > > * I have a bunch of customers. > > * These customers give me batches of data. One day, there might be > cron jobs for collecting this data from them. One day I might have a > Web service that listens to updates from them and creates batches. > However, right now, they're manually giving me big chunks of data. > > * I've built the system in a very UNIXy way right now. That means > heavy use of cut, sort, awk, small standalone Python scripts, sh, and > pipes. I've followed the advice of "do one thing well" and "tools, > not policy". > > * The data that my customers give me is not uniform. Different > customers give me the data in different ways. Hence, I need some > customer-specific logic to transform the data into a common format > before I do the rest of the data pipeline. > > * After a bunch of data crunching, I end up with a bunch of different > TSV files (tab-separated format) containing different things, which I > end up loading into a database. > > * There's a separate database for each customer. > > * The database is used to implement a Web service. This part makes sense to me. > > * I'm making heavy use of testing using nose. > > Anyway, so I have all this customer-specifc logic, and all these data > pipelines. How do I pull it together into something an operator would > want to use? Is the idea of an operator appropriate? I'm pretty sure > this is an "operations" problem. > > My current course of action is to: > > * Create a global Makefile that knows how to do system-wide tasks. > > * Create a customer-specific Makefile for each customer. > > * The customer-specific Makefiles all "include" a shared Makefile. I > modeled this after FreeBSD's ports system. > > Hence, the customer-specific Makefiles have some customer-specific > logic in them, but they can share code via the shared Makefile that > they all include. > > * Currently, all of the Python scripts take all their settings on the > command line. I'm thinking that the settings belong in an included > Makefile that just contains settings. By keeping the Python dumb, I'm > attempting to follow the "tools, not policy" idea. > > I'm having a little bit of a problem with testing. I don't have a way > of testing any Python code that talks to a database because the Python > scripts are all dumb about how to connect to the database. I'm > thinking I might need to setup a "pretend" customer with a test > database to test all of that logic. > > Does the idea of driving everything from Makefiles make sense? > > Is there an easier way to share data like database connection > information between the Makefile and Python other than passing it in > explicitly via command line arguments? > > Is there anything that makes more sense than a bunch of > customer-specific Makefiles that include a global Makefile? > > How do I get new batches of data into the system? Do I just put the > files in the right place and let the Makefiles take it from there? > > Am I completely smoking, or am I on the right track? > > Thanks, > -jj > > -- > I, for one, welcome our new Facebook overlords! > http://jjinux.blogspot.com/ > _______________________________________________ > Baypiggies mailing list > Baypiggies at python.org > To change your subscription options or unsubscribe: > http://mail.python.org/mailman/listinfo/baypiggies > From jim at well.com Tue Apr 29 02:03:39 2008 From: jim at well.com (jim) Date: Mon, 28 Apr 2008 17:03:39 -0700 Subject: [Baypiggies] I need some help architecting the big picture In-Reply-To: References: Message-ID: <1209427419.6120.371.camel@ubuntu> On Mon, 2008-04-28 at 13:46 -0700, Shannon -jj Behrens wrote: jstockford munged to summarize: > * I have a bunch of customers manually giving me big chunks > of data that is not uniform. Different > customers give me the data in different ways. > > * After a bunch of data crunching, I end up with a bunch of different > TSV files (tab-separated format) containing different things, which I > end up loading into separate databases for each customer. > > * The database is used to implement a Web service. > > Anyway, so I have all this customer-specific logic to transform the > data into a common format, and all these data > pipelines. What does it mean, "manually"? can this include sneaker net with removeable media, ftp, email attachments, etc. and none of these means matters to the problem? i'm guessing that the commonality is that all files are ASCII TSV; i.e. there is no necessary correlation of fields from one customer's file set to others, yes? further guess: the customer-specific logic is entirely a matter of getting each customer's data into ASCII TSV format so's to load into a customer-specific database, yes? some web-thing will pull from each customer database and present reports upon demand, yes? > How do I pull it together into something an operator would > want to use? Is the idea of an operator appropriate? I'm pretty sure > this is an "operations" problem. > my understanding of an operator is someone who monitors and manages the system without respect to the particulars of data coming in or going out. but the only way i make sense of your use of the term is as someone who sits by a phone or email client and derives reports as humans request. i must be confused, yes? > My current course of action is to: > > * Create a global Makefile that knows how to do system-wide tasks. > > * Create a customer-specific Makefile for each customer. > > * The customer-specific Makefiles all "include" a shared Makefile. I > modeled this after FreeBSD's ports system. > > Hence, the customer-specific Makefiles have some customer-specific > logic in them, but they can share code via the shared Makefile that > they all include. > this sounds like a classic driver structure: create a dumb little top-end driver, make a basic stub, make customer- specific stubs that inherit from the basic stub, tweak and debug to taste, yes? > * Currently, all of the Python scripts take all their settings on the > command line. > GASP!!! and the operator is going to type these command lines? or these are hard-coded into the master driver? or...? > I'm thinking that the settings belong in an included > Makefile that just contains settings. By keeping the Python > dumb, I'm attempting to follow the "tools, not policy" idea. > ...or the makefile. well, software is software, so given a reasonable interface and no performance problems, why not? > I'm having a little bit of a problem with testing. I don't have a way > of testing any Python code that talks to a database because the Python > scripts are all dumb about how to connect to the database. I'm > thinking I might need to setup a "pretend" customer with a test > database to test all of that logic. i stubbornly remain confused: customer-specific data is coming in, so customer-specific logic is required to get it into a customer-specific database that will serve out to customer-specific requests for reports or some other databased service. sounds like separate software, one set for each customer, maybe based on some base classes that allow leveraging common functionality. but even if the python remains ignorant of the data source, aren't there interface programs that work between the python and the database? > Does the idea of driving everything from Makefiles make sense? > software is software > Is there an easier way to share data like database connection > information between the Makefile and Python other than passing it in > explicitly via command line arguments? > the difference between command line calls and calls between functions in the same process space is just load time, mainly, yes? > Is there anything that makes more sense than a bunch of > customer-specific Makefiles that include a global Makefile? > drivers and stubs makes sense. software is software. beware of the interfaces. > How do I get new batches of data into the system? Do I just put the > files in the right place and let the Makefiles take it from there? > isn't this answered by whatever "manually" means? manually has gotta end up "here" somehow, and the data input software should know where "here" is. > Am I completely smoking, or am I on the right track? > it's an interesting exercise, though not particularly pythonic, yes? aren't there sufficient python modules to build this strictly as a python app without significantly more work or risk? From jim at well.com Tue Apr 29 02:07:28 2008 From: jim at well.com (jim) Date: Mon, 28 Apr 2008 17:07:28 -0700 Subject: [Baypiggies] I need some help architecting the big picture In-Reply-To: References: Message-ID: <1209427648.6120.373.camel@ubuntu> oops: the difference between command line calls and calls between functions in the same process space is just load time, mainly, yes? no. in the same process space, one can pass object references. the shell only permits text strings (and exit integer codes). From jjinux at gmail.com Tue Apr 29 06:57:27 2008 From: jjinux at gmail.com (Shannon -jj Behrens) Date: Mon, 28 Apr 2008 21:57:27 -0700 Subject: [Baypiggies] I need some help architecting the big picture In-Reply-To: <48164692.9020902@ulmcnett.com> References: <48164692.9020902@ulmcnett.com> Message-ID: > Does the data structure from a given customer stay consistent? If a batch > is inconsistent with that customer's "standard", can you bounce it back to > them or must your toolchain adapt? It'll stay consistent. If I do have to adapt, it'll be manually, which is okay. > > * After a bunch of data crunching, I end up with a bunch of different > > TSV files (tab-separated format) containing different things, which I > > end up loading into a database. > > And at this point, is the data in a common format for all customers? IOW, > is the database schema consistent for all customers? I've identified one table where there is a customer-specific set of fields. However, the name of the table is always the same and it always has an id column. Everything else in the schema is generic. > > Anyway, so I have all this customer-specifc logic, and all these data > > pipelines. How do I pull it together into something an operator would > > want to use? Is the idea of an operator appropriate? I'm pretty sure > > this is an "operations" problem. > > Is this operator of the intelligent variety, or some temp worker with Excel > experience? I'm shooting for sysadmin level. > Where in the process does this operator sit? Does he/she receive > the batches from the customers and then feed them to your toolchain and > verify that the batches made it to the database, or something else entirely? That's the problem. I don't know. I've never been in a situation where my user wasn't on the other side of a Web interface. For the foreseeable future, the operator will be me or some sysadmin. My guess is that he'll get the data via scp either manually or by cron job. Now, I have to figure out how to feed the data to the system. Do I simply put it in some place and say "go!"? I was guessing someone else had been in a similar situation and had some best practices to recommend. > The Makefile strategy sounds very sane, easy to manage once set up. Easy to > boilerplate for new customers, etc. Well, maybe not "easy", but > straightforward and understandable. Ah, good. So I'm not crazy ;) > The settings should ultimately come from once place. This one place could > be a text file, a database entry, a part of the customer's Makefile, or the > operator could get prompted for some or all of the information. The scripts > taking the arguments on the command line is fine. Each link in the chain > just passes that information forward. Agreed. I'm leaning toward having this stuff in the Makefile. > > I'm having a little bit of a problem with testing. I don't have a way > > of testing any Python code that talks to a database because the Python > > scripts are all dumb about how to connect to the database. I'm > > thinking I might need to setup a "pretend" customer with a test > > database to test all of that logic. > > I think keeping the scripts "dumb" is good, but why do your tests need to > be dumb, too? If you are testing interaction between your script and the > database, then test that by sending the database connection parameters. A > test or reference customer is a good idea. It's just sort of strange because normally when you run nose, you don't pass any parameters. I guess if I setup a test customer, then I just need to figure out how to get a few settings out of the Makefile for the tests. That's manageable. > > Is there an easier way to share data like database connection > > information between the Makefile and Python other than passing it in > > explicitly via command line arguments? > > Is this question still from a testing perspective? No, it's more general, although testing is currently my largest pain point. > Make a test database, > and set the test database parameters in the global makefile, and send the > connection arguments to your python scripts just as you have it now. Then > each customer-specific makefile will have its own overridden connection > parameters. Ah, very good. > Set up a test database, perhaps copied from some reference customer's data, > to use in your testing. > > Why does it seem like it is a problem to be passing this information on the > command line? I was just checking that this is the right thing to do. > > Is there anything that makes more sense than a bunch of > > customer-specific Makefiles that include a global Makefile? > > Are you benefiting in some other way by not making this a pure-Python > project? Absolutely. awk, cut, sort, etc. are fast and simple. Anytime I need something more complex than a one liner, that's when I switch to Python. > Not knowing more, I think I'd try to use a Python subclassing > strategy instead of makefiles, and Python modules instead of Unix > applications, but it is basically the same in the end. Yes, the subclassing approach is how I'd normally approach it. I've been reading "The Art of UNIX Programming" lately, and I knew that this was the perfect situation to be UNIXy. > > How do I get new batches of data into the system? Do I just put the > > files in the right place and let the Makefiles take it from there? > > > > The files are "data", and once a batch is processed you don't need that > chunk of data anymore, unless you want to archive it. So just have an > in_data file that the Makefile can feed your toolchain with. Very good. We're on the same page then. I have an incoming directory and an archives directory. My plan was to simply drop the incoming files in the right place--a place that the Makefiles knew about. However, it just seemed a bit strange since I've never done that before. > Perhaps your operator needs a very thin GUI frontend for this to feed the > input batch into the in_data file and start the make. So, the operator gets > a data chunk from XZY Corp. They just select that customer from a list and > paste in the contents of the data, and press "submit". And wait for a green > "okay" or a red "uh-oh". My guess is that they'll always be working with large data files. I could either force them to put the file in the right place, or I could write yet another shell script that took the file and put it in the right place. After the batch is processed, I need to also move the file from the incoming directory to the archive directory. The transaction nut in me worries about things like that, but perhaps I need not. > > Am I completely smoking, or am I on the right track? > > Is any of this implemented yet, or is it still in pure design phase? Most of the small tools are written, and they're working fine. Some of the Makefile infrastructure is in place. All of the customer-specific stuff isn't yet. When it comes to "tools, not policy", the tools are working fine, but I need some policy ;) > It > sounds like you have it implemented and you are going crazy dealing with the > various inputs from the various customers, I'm not going crazy yet ;) > and perhaps you are wondering how > to scale this to even more customers, and how to train an operator/operators > to intelligently wield this toolchain you've built. I have proof of concept and a bunch of pretty nice code. Now I gotta tie it all together in a way that doesn't involve cutting and pasting commands from a README all the time ;) > It sounds like a fun project! :) Thanks! -jj -- I, for one, welcome our new Facebook overlords! http://jjinux.blogspot.com/ From jjinux at gmail.com Tue Apr 29 07:04:12 2008 From: jjinux at gmail.com (Shannon -jj Behrens) Date: Mon, 28 Apr 2008 22:04:12 -0700 Subject: [Baypiggies] I need some help architecting the big picture In-Reply-To: <4816498E.2080606@snaplogic.org> References: <4816498E.2080606@snaplogic.org> Message-ID: On Mon, Apr 28, 2008 at 3:02 PM, Michael Pittaro wrote: > Shannon -jj Behrens wrote: > > > Hi, > > > > I need some help architecting the big picture on my current project. > > I'm usually a Web guy, which I understand very well. However, my > > current project is more batch oriented. Here are the details: > > > Anyway, so I have all this customer-specifc logic, and all these data > > pipelines. How do I pull it together into something an operator would > > want to use? Is the idea of an operator appropriate? I'm pretty sure > > this is an "operations" problem. > > > > > JJ, > > This sounds like a typical data integration project, which is what > SnapLogic is designed for. > > Depending on what sort of operations you're doing on the data, we might > already have the right components or you might need to create a new one, but > from your description, it sounds like we have most of the database and file > IO you need. > > You're right about the operations aspect - you probably want an 'operator' > interface that that will just run everything when the right files are in > place, either scheduled or triggered by some event. > > Drop me a line if you need more details. Ah, I haven't forgotten about SnapLogic. I'm not sure I completely know the definition of a data integration project. I do know I have data going in. The key thing that I'm doing is apply clever algorithms to learn stuff from the data. Then I can use the stuff I learned to answer queries via a Web interface. -jj -- I, for one, welcome our new Facebook overlords! http://jjinux.blogspot.com/ From jjinux at gmail.com Tue Apr 29 07:09:16 2008 From: jjinux at gmail.com (Shannon -jj Behrens) Date: Mon, 28 Apr 2008 22:09:16 -0700 Subject: [Baypiggies] I need some help architecting the big picture In-Reply-To: References: Message-ID: On Mon, Apr 28, 2008 at 3:17 PM, Jeff Younker wrote: > > Anyway, so I have all this customer-specifc logic, and all these data > > pipelines. How do I pull it together into something an operator would > > want to use? Is the idea of an operator appropriate? I'm pretty sure > > this is an "operations" problem. > > > > The pipeline is a product that development delivers to operations. > Operations maintains and monitors it. You do not want to have > a system where an operator coordinating it on a a permanent basis. > The pipeline should just chug along. Data gets fed in, information > is spit out. > > Pushing pipeline development off to "operations" is a sure way of > making your process melt down eventually. You end up with a > system where huge chunks of logic are handled by one group and > huge chunks are handled by another, and nobody actually > understands how the system works. > > That said, you'll need an interface so that operations can see > what is happening with the pipeline. They need this to trouble > shoot the pipeline. A simple one may just summarize data from logs. > > > > > > Currently, all of the Python scripts take all their settings on the > > command line. I'm thinking that the settings belong in an included > > Makefile that just contains settings. By keeping the Python dumb, I'm > > attempting to follow the "tools, not policy" idea. > > ... > > > > Is there an easier way to share data like database connection > > information between the Makefile and Python other than passing it in > > explicitly via command line arguments? > > > > Command options are just like method arguments. Too many mandatory > ones being passed all over the place are an indication that they need to > be replaced by a single entity. Pass around a reference to a config file > instead. > > Use this config file everywhere. Configuration changes should only be > made in one place. Distributing configuration throughout a pipeline > system is a recipe for long term failure. > > A Python file that is sourced is a wonderful config file format. Java > style properties files work too. Simple key-value shell scripts can > be eval'd as Python too. I imagine you already have a config system > for your web front end. Consider re-using that. > > Depending upon how many machines you have interacting you > may need a distributed config system. Publishing a file via HTTP > is an easy solution. > > > > > Does the idea of driving everything from Makefiles make sense? > > > > > It sounds to me like a horrible hack that will break down when > you start wanting to do recovery and pipeline monitoring. > > Consider writing a simple queue management command. It It looks > for work in one bin, calls an external command to process the work, > and then dumps it into the next. The bins can be as simple as > directories: > > File A1 goes into bin A/pending > A1 is picked up by job A > A/pending/A1 gets moved to A/consuming/A1 > A/consuming/A1 is processed to B/producing/B1 > A/consuming/A1 is moved to A/consumed/A1 > B/producing/B1 is moved to B/pending/B1 > > Writing such a simple queue manager should be straight forward. > Then your tool chain becomes nothing more than a series of calls > to the managers. Or you could have each queue command > daemonize itself and then poll the queues every so often. > > > > > I'm having a little bit of a problem with testing. I don't have a way > > of testing any Python code that talks to a database because the Python > > scripts are all dumb about how to connect to the database. I'm > > thinking I might need to setup a "pretend" customer with a test > > database to test all of that logic. > > > > Standard unit testing stuff should work. Use mock objects to > stub out the database connection. > > I actually do all of my scripts via a little harness that handles > all the generic command line setup. Scripts subclass the > tframe.Framework object (which I'm releasing as soon as > I'm done with the damn book), and the the script body goes in a > run(options, args) method. Testing involves instantiating the > script's Framework class and then poking at it. > > - Jeff Younker - jeff at drinktomi.com - Ok, this is another approach. I'm going to have to think about it some more. Thanks, -jj -- I, for one, welcome our new Facebook overlords! http://jjinux.blogspot.com/ From jjinux at gmail.com Tue Apr 29 07:30:51 2008 From: jjinux at gmail.com (Shannon -jj Behrens) Date: Mon, 28 Apr 2008 22:30:51 -0700 Subject: [Baypiggies] I need some help architecting the big picture In-Reply-To: <1209427419.6120.371.camel@ubuntu> References: <1209427419.6120.371.camel@ubuntu> Message-ID: > What does it mean, "manually"? can this include sneaker > net with removeable media, ftp, email attachments, etc. > and none of these means matters to the problem? Currently, yes. > i'm guessing that the commonality is that all files are > ASCII TSV; I wish ;) Some are log files. Some are database dumps. > i.e. there is no necessary correlation of fields > from one customer's file set to others, yes? I'm looking for how users interact with things. I.e. user A bought soap. > further guess: the customer-specific logic is entirely > a matter of getting each customer's data into ASCII TSV > format so's to load into a customer-specific database, yes? Yes. > some web-thing will pull from each customer database and > present reports upon demand, yes? No. I don't need to provide reports so much as answer queries about their data. > my understanding of an operator is someone who monitors > and manages the system without respect to the particulars > of data coming in or going out. That's correct. My definition of an operator is someone who either pulls the batches of data when requested, or setups up a cron job to do it and fixes it if it breaks. > this sounds like a classic driver structure: create a dumb > little top-end driver, make a basic stub, make customer- > specific stubs that inherit from the basic stub, tweak > and debug to taste, yes? Yep. > > * Currently, all of the Python scripts take all their settings on the > > command line. > > > GASP!!! and the operator is going to type these command lines? > or these are hard-coded into the master driver? or...? They're driven via the Makefiles. If you have a customer-specific Makefile with some customer-specific settings, than the main Makefile knows which settings each little Python script needs. > > I'm having a little bit of a problem with testing. I don't have a way > > of testing any Python code that talks to a database because the Python > > scripts are all dumb about how to connect to the database. I'm > > thinking I might need to setup a "pretend" customer with a test > > database to test all of that logic. > > i stubbornly remain confused: customer-specific data is > coming in, so customer-specific logic is required to get > it into a customer-specific database that will serve out > to customer-specific requests for reports or some other > databased service. Yep. > sounds like separate software, one set for each customer, The data format that customers give me varies, but what I want to do with the data and the service I provide is always the same. > maybe based on some base classes that allow leveraging > common functionality. > but even if the python remains ignorant of the data > source, aren't there interface programs that work between > the python and the database? Once I get the data into a common format, getting it into the database is easy. > > Does the idea of driving everything from Makefiles make sense? > > > software is software Ah, interesting perspective ;) > > Is there an easier way to share data like database connection > > information between the Makefile and Python other than passing it in > > explicitly via command line arguments? > > > the difference between command line calls and calls between > functions in the same process space is just load time, mainly, > yes? It's really all about following the UNIX way of "do one thing well" rather than building a huge C++ monolithic binary. > > How do I get new batches of data into the system? Do I just put the > > files in the right place and let the Makefiles take it from there? > > > isn't this answered by whatever "manually" means? manually > has gotta end up "here" somehow, and the data input software > should know where "here" is. Yeah. That's why I was asking. I've never had this situation before, and I was wondering if some of you old timers had been in this situation and had some advice about the right way to approach it ;) I guess I'm confused about workflow and process as much as anything else. > > Am I completely smoking, or am I on the right track? > > > it's an interesting exercise, though not particularly > pythonic, yes? Everything complex is written in Python, but I'm leaning heavily on the UNIX philosophy and tools. > aren't there sufficient python modules to > build this strictly as a python app without significantly > more work or risk? In a lot of situations, I can get from one step in the pipeline to another using only UNIX tools like cut, sort, and one line awk scripts. That's really nice. It's easier to implement the whole thing via sh tying together small tools than one gigantic program that does everything. Small tools are easy to understand, test, and debug. -jj -- I, for one, welcome our new Facebook overlords! http://jjinux.blogspot.com/ From jjinux at gmail.com Tue Apr 29 07:33:32 2008 From: jjinux at gmail.com (Shannon -jj Behrens) Date: Mon, 28 Apr 2008 22:33:32 -0700 Subject: [Baypiggies] I need some help architecting the big picture In-Reply-To: <1209427648.6120.373.camel@ubuntu> References: <1209427648.6120.373.camel@ubuntu> Message-ID: On Mon, Apr 28, 2008 at 5:07 PM, jim wrote: > oops: > > the difference between command line calls and calls between > functions in the same process space is just load time, mainly, > yes? > > no. in the same process space, one can pass object > references. the shell only permits text strings (and exit > integer codes). Currently, everything is built around passing TSV data. Different steps in the pipeline consume and produce different fields. This part is working really nicely. -jj -- I, for one, welcome our new Facebook overlords! http://jjinux.blogspot.com/ From jjinux at gmail.com Tue Apr 29 07:34:53 2008 From: jjinux at gmail.com (Shannon -jj Behrens) Date: Mon, 28 Apr 2008 22:34:53 -0700 Subject: [Baypiggies] I need some help architecting the big picture In-Reply-To: References: <1209427648.6120.373.camel@ubuntu> Message-ID: Thanks, everyone for all your advice! I'm probably even more confused now than I was before, but that's only because I have more options to consider ;) Thanks Again! -jj -- I, for one, welcome our new Facebook overlords! http://jjinux.blogspot.com/ From eric at ericwalstad.com Tue Apr 29 07:49:48 2008 From: eric at ericwalstad.com (Eric Walstad) Date: Mon, 28 Apr 2008 22:49:48 -0700 Subject: [Baypiggies] I need some help architecting the big picture In-Reply-To: References: <48164692.9020902@ulmcnett.com> Message-ID: Hey JJ, On Mon, Apr 28, 2008 at 9:57 PM, Shannon -jj Behrens wrote: ... > > Where in the process does this operator sit? Does he/she receive > > the batches from the customers and then feed them to your toolchain and > > verify that the batches made it to the database, or something else entirely? > > That's the problem. I don't know. I've never been in a situation > where my user wasn't on the other side of a Web interface. For the > foreseeable future, the operator will be me or some sysadmin. My > guess is that he'll get the data via scp either manually or by cron > job. Now, I have to figure out how to feed the data to the system. > Do I simply put it in some place and say "go!"? I was guessing > someone else had been in a similar situation and had some best > practices to recommend. We wrote a python 'sentinel', started periodically by cron, that watches user's incoming scp directories for new files. We considered writing it as a daemon but the first iteration (running it from cron) turned out to suit our needs. When a new file arrives in the directory, the sentinel does something that it is configured to do: call a python callable, execute a system executable, etc. The sentinel only operates on a file that isn't already being operated on (in case the callable's runtime exceeds the sentinel's nap time). The sentinel can be configured to do a post-process task which usually includes moving the uploaded file to a 'processed' directory. The sentinel operates in a generic way by reading config files that define how it is supposed to behave. Each of our customers has a Sentinel config file describing how to tell when that customer's files arrive, how to process their file and what to do when the processing is done. I don't know about best practices here, but our system is pretty generic, flexible and works well for us. Eric. From jjinux at gmail.com Tue Apr 29 07:53:59 2008 From: jjinux at gmail.com (Shannon -jj Behrens) Date: Mon, 28 Apr 2008 22:53:59 -0700 Subject: [Baypiggies] I need some help architecting the big picture In-Reply-To: References: <48164692.9020902@ulmcnett.com> Message-ID: On Mon, Apr 28, 2008 at 10:49 PM, Eric Walstad wrote: > Hey JJ, > > On Mon, Apr 28, 2008 at 9:57 PM, Shannon -jj Behrens wrote: > ... > > > > Where in the process does this operator sit? Does he/she receive > > > the batches from the customers and then feed them to your toolchain and > > > verify that the batches made it to the database, or something else entirely? > > > > That's the problem. I don't know. I've never been in a situation > > where my user wasn't on the other side of a Web interface. For the > > foreseeable future, the operator will be me or some sysadmin. My > > guess is that he'll get the data via scp either manually or by cron > > job. Now, I have to figure out how to feed the data to the system. > > Do I simply put it in some place and say "go!"? I was guessing > > someone else had been in a similar situation and had some best > > practices to recommend. > We wrote a python 'sentinel', started periodically by cron, that > watches user's incoming scp directories for new files. We considered > writing it as a daemon but the first iteration (running it from cron) > turned out to suit our needs. When a new file arrives in the > directory, the sentinel does something that it is configured to do: > call a python callable, execute a system executable, etc. The > sentinel only operates on a file that isn't already being operated on > (in case the callable's runtime exceeds the sentinel's nap time). The > sentinel can be configured to do a post-process task which usually > includes moving the uploaded file to a 'processed' directory. The > sentinel operates in a generic way by reading config files that define > how it is supposed to behave. Each of our customers has a Sentinel > config file describing how to tell when that customer's files arrive, > how to process their file and what to do when the processing is done. > I don't know about best practices here, but our system is pretty > generic, flexible and works well for us. Yep, that sounds a lot like my situation. Thanks! -jj -- I, for one, welcome our new Facebook overlords! http://jjinux.blogspot.com/ From jjinux at gmail.com Tue Apr 29 22:38:49 2008 From: jjinux at gmail.com (Shannon -jj Behrens) Date: Tue, 29 Apr 2008 13:38:49 -0700 Subject: [Baypiggies] I need some help architecting the big picture In-Reply-To: References: <1209427648.6120.373.camel@ubuntu> Message-ID: On Mon, Apr 28, 2008 at 10:34 PM, Shannon -jj Behrens wrote: > Thanks, everyone for all your advice! I'm probably even more confused > now than I was before, but that's only because I have more options to > consider ;) > > Thanks Again! I've been trying to digest all the different comments. A few people were trying to frame this as a data warehousing or data integration problem. I don't know much about those subjects. However, my naive guess is that they don't apply for the following reasons: It's hard to imagine that this is a data warehousing problem since I'm not trying to warehouse the data. I have no requirement to store it forever. I'm simply trying to "infer" some stuff about the data. When I'm doing this inferencing, I'm not even working with the data in a database. I'm working with it in TSV form since that works out better (it's faster to stream from file to file than from table to table). It's hard to imagine that I have a data integration problem since I'm not trying to integrate multiple sources of data. Each customer gives me chunks of data, and I analyze the data for that customer in order to infer things. The only reason I use a database at all is to store the things I've learned about the data for later retrieval via a Web service. Once I analyze the data, I can throw it away or simply archive it in its raw form. My understanding of data warehousing is that it's a way of storing everything you can about data from a bunch of sources and write deep SQL queries to learn deeper things about the data. That doesn't really match my situation. By the way, my batches don't even take all that long to run. Currently, it's on the order of 30 seconds. If I need to start from scratch if any part fails, it's no big deal. This conversation has been really helpful. It's definitely driven one thing home for me. One reason "tools, not policy" is so valuable is because people love to disagree about policy. However, once I've written a good tool that's well documented and well tested, no one disagrees about its usefulness. Hence, it makes sense for me to focus on writing good tools. If I need to switch to a more complicated policy later involving queues, data warehousing, etc., my small tools are still going to be helpful. -jj -- I, for one, welcome our new Facebook overlords! http://jjinux.blogspot.com/ From jjinux at gmail.com Tue Apr 29 22:52:28 2008 From: jjinux at gmail.com (Shannon -jj Behrens) Date: Tue, 29 Apr 2008 13:52:28 -0700 Subject: [Baypiggies] I need some help architecting the big picture In-Reply-To: References: <1209427648.6120.373.camel@ubuntu> Message-ID: My buddy Tim Kientzle (who's a FreeBSD committer) had some great comments, which I'm posting here because they made a lot of sense, and integrated nicely with what a few of you were saying: Tim Kientzle wrote: I skimmed your other email and it sounds like you're basically on the right track, at least for v1. ;-) In the longer term, you'll need to think more about self-service. I worked for a company not long ago that received large data files from customers and manually converted them into the basis for a web service. After a while, the manual conversion step became a big barrier to growth; each new customer required more in-house data-conversion staff. I don't suggest you focus too much on self-service at first, but there are a few easy steps you can do to help lay the groundwork for that: * Have customers drive the interaction themselves. There should be a web form where they upload their data. There should be a simple dashboard that shows the state of their data (uploaded, accepted, converted, complete). Even if the processes behind that are driven manually for now, this sets the expectation that the customers have to manage the process somewhat; they can't just call you and have you fix every little problem. * Plan to store customer configuration. A directory per user with config files/scripts can work fine; you will likely also need a database that maps customer accounts to those directories, etc. * Plan to eventually generate that configuration automatically. After you've done the first few manually, you should start to get a feel for what the variables are and can start providing "canned" solutions that are easily reusable. Makefiles are a fine way to script it. Plan to soon include progress output from the makefile, which can be as simple as a "logit.py" script that is run at points to add a message to a database table. That table can then form the basis of the customer dashboard. logit.py "Data format verified." logit.py "Initial data conversion complete." Look up some of the literature on "job control systems." Batch jobs fail and need to be rerun from scratch, etc. You'll need a database table of jobs and their current state. TBKK From wescpy at gmail.com Wed Apr 30 00:21:48 2008 From: wescpy at gmail.com (wesley chun) Date: Tue, 29 Apr 2008 15:21:48 -0700 Subject: [Baypiggies] last minute seats for Python course next week! Message-ID: <78b3a9580804291521x1dab761eo82193252da4f239d@mail.gmail.com> folks, apologies for the broadcast as i usually only make at most 2 announcements for every course. i've had a few students who had to pull out due to the current economic conditions, and now i'm at the borderline of whether to hold the course or not, so if you know of any colleagues or co-workers who need a comprehensive intro to Python + Python internals training course next week, Mon-Wed, 5/5-7, please have them get in touch with me immediately as i would love to move forward with it as there are some people who really need it for their projects. i only need ~3 more students! the deadline is tomorrow Wed 4/30 at 11:59pm, so have them contact me ASAP; and if they take the class, i would be glad to provide a referral gift! thanks for your help! -wesley http://cyberwebconsulting.com (click "Python Training")