From sampbrauer at yahoo.com Wed Sep 14 21:38:22 2011 From: sampbrauer at yahoo.com (Sam Brauer) Date: Wed, 14 Sep 2011 12:38:22 -0700 (PDT) Subject: [TriZPUG] Job opening for web developer with Python/Zope experience Message-ID: <1316029102.4016.YahooMailNeo@web30807.mail.mud.yahoo.com> Hi folks! ?The team I work with at Duke has a job opening that may be of interest. Feel free to pass it on. Thanks! - Sam Duke Medicine?s Office of Marketing and Creative Services Web team is?looking for an experienced Web developer to work with a team on Duke?Medicine?s Web properties. This?position works closely with a team of writers, editors, and designers, as well?as? with clients throughout the Duke Medicine. The primary focus of the?position is to create and maintain Web sites. The?successful candidate will have strong skills in an array of Web technologies, especially Python,?HTML, CSS, and JavaScript. ? Bonus points for experience with Zope or Plone. ?Responsibilities: ????* Translate graphic designs into?Web pages, working with graphic designer as needed ????* Script in Python to work with?Zope-based CMS ????* Web site creation and maintenance ????* Ensure all sites are HTML, CSS, and Section 508 compliant ????* Support?users who ask for technical assistance in updating Web pages ????* Improving mobile Web sites ????* Future work may include mobile application development To apply: ?http://bit.ly/qNOrjI From cbc at unc.edu Fri Sep 16 20:38:46 2011 From: cbc at unc.edu (Chris Calloway) Date: Fri, 16 Sep 2011 14:38:46 -0400 Subject: [TriZPUG] Administrivia Message-ID: <4E7397B6.4000102@unc.edu> Two things: 1) You may have noticed trizpug.org being down. There was a drive failure. The drive was replaced and everything has been restored. Trizpug.org is now up. 2) If anyone knows where Justis is, please ask him to look at his email from a couple of weeks ago. Right now there is no meeting scheduled for Splatspace next week. If I don't hear from them by next week, I'll see about scheduling a meeting at UNC. Sorry for the delay in meeting announcements. -- Sincerely, Chris Calloway http://nccoos.org/Members/cbc office: 3313 Venable Hall phone: (919) 599-3530 mail: Campus Box #3300, UNC-CH, Chapel Hill, NC 27599 From justis.peters at gmail.com Sat Sep 17 16:22:57 2011 From: justis.peters at gmail.com (Justis Peters) Date: Sat, 17 Sep 2011 10:22:57 -0400 Subject: [TriZPUG] Administrivia In-Reply-To: <4E7397B6.4000102@unc.edu> References: <4E7397B6.4000102@unc.edu> Message-ID: <4E74AD41.8070907@gmail.com> On 09/16/2011 02:38 PM, Chris Calloway wrote: > Two things: > > 1) You may have noticed trizpug.org being down. There was a drive > failure. The drive was replaced and everything has been restored. > Trizpug.org is now up. > > 2) If anyone knows where Justis is, please ask him to look at his > email from a couple of weeks ago. Right now there is no meeting > scheduled for Splatspace next week. If I don't hear from them by next > week, I'll see about scheduling a meeting at UNC. Sorry for the delay > in meeting announcements. > Chris, I forwarded the email to the SplatSpace mailing, to ask if anyone would step up and host it. Nobody replied. I am CC'ing the list, in the hopes that someone still steps up. At the time you emailed me, I was totally snowed under with preparations for my exhibit http://www.sparkcon.com/. Thus, I did not feel comfortable committing yet another thing to my calendar for September. Perhaps I still can, but I do not feel comfortable making that call until we close the gallery doors tomorrow night. Do we have a meeting topic and/or presenter for Thursday? BTW, Y'all should come see SPARKcon. It's amazing! Among the probably 1500+ performers and artists, I have built and installed an interactive video exhibit titled "SPARKcritters". It's written in Python and is projected onto a 10'x12' area on the floor, where you can walk around on it and interact with it. RSVP here if you like: http://www.facebook.com/event.php?eid=162123027204873 Kind regards, Justis From j.c.sackett at gmail.com Sat Sep 17 19:33:14 2011 From: j.c.sackett at gmail.com (j.c.sackett) Date: Sat, 17 Sep 2011 13:33:14 -0400 Subject: [TriZPUG] Administrivia In-Reply-To: <4E74AD41.8070907@gmail.com> References: <4E7397B6.4000102@unc.edu> <4E74AD41.8070907@gmail.com> Message-ID: <68897C86-1BFA-45C9-AC84-E8E2F18847FA@gmail.com> I must have missed some emails--I can be there Thurs. What time are we looking at? //j.c. Sent from a mobile device with teeny keys. Forgive typos. On Sep 17, 2011, at 10:22 AM, Justis Peters wrote: > On 09/16/2011 02:38 PM, Chris Calloway wrote: >> Two things: >> >> 1) You may have noticed trizpug.org being down. There was a drive failure. The drive was replaced and everything has been restored. Trizpug.org is now up. >> >> 2) If anyone knows where Justis is, please ask him to look at his email from a couple of weeks ago. Right now there is no meeting scheduled for Splatspace next week. If I don't hear from them by next week, I'll see about scheduling a meeting at UNC. Sorry for the delay in meeting announcements. >> > Chris, > > I forwarded the email to the SplatSpace mailing, to ask if anyone would step up and host it. Nobody replied. I am CC'ing the list, in the hopes that someone still steps up. > > At the time you emailed me, I was totally snowed under with preparations for my exhibit http://www.sparkcon.com/. Thus, I did not feel comfortable committing yet another thing to my calendar for September. Perhaps I still can, but I do not feel comfortable making that call until we close the gallery doors tomorrow night. > > Do we have a meeting topic and/or presenter for Thursday? > > BTW, Y'all should come see SPARKcon. It's amazing! Among the probably 1500+ performers and artists, I have built and installed an interactive video exhibit titled "SPARKcritters". It's written in Python and is projected onto a 10'x12' area on the floor, where you can walk around on it and interact with it. RSVP here if you like: http://www.facebook.com/event.php?eid=162123027204873 > > Kind regards, > Justis > > _______________________________________________ > TriZPUG mailing list > TriZPUG at python.org > http://mail.python.org/mailman/listinfo/trizpug > http://trizpug.org is the Triangle Zope and Python Users Group From cbc at unc.edu Mon Sep 19 17:21:59 2011 From: cbc at unc.edu (Chris Calloway) Date: Mon, 19 Sep 2011 11:21:59 -0400 Subject: [TriZPUG] Administrivia In-Reply-To: <68897C86-1BFA-45C9-AC84-E8E2F18847FA@gmail.com> References: <4E7397B6.4000102@unc.edu> <4E74AD41.8070907@gmail.com> <68897C86-1BFA-45C9-AC84-E8E2F18847FA@gmail.com> Message-ID: <4E775E17.8030707@unc.edu> On 9/17/2011 1:33 PM, j.c.sackett wrote: > I must have missed some emails--I can be there Thurs. What time are we looking at? 7pm. I'm assuming this is a go and I can post announcements? -- Sincerely, Chris Calloway http://nccoos.org/Members/cbc office: 3313 Venable Hall phone: (919) 599-3530 mail: Campus Box #3300, UNC-CH, Chapel Hill, NC 27599 From cbc at unc.edu Mon Sep 19 17:27:33 2011 From: cbc at unc.edu (Chris Calloway) Date: Mon, 19 Sep 2011 11:27:33 -0400 Subject: [TriZPUG] Administrivia In-Reply-To: <4E74AD41.8070907@gmail.com> References: <4E7397B6.4000102@unc.edu> <4E74AD41.8070907@gmail.com> Message-ID: <4E775F65.1020605@unc.edu> On 9/17/2011 10:22 AM, Justis Peters wrote: > Do we have a meeting topic and/or presenter for Thursday? Nope. Just our usual get together unless someone steps forward. I just confirmed with JC that he will be hosting us at SplatSpace on Thursday. > BTW, Y'all should come see SPARKcon. It's amazing! Among the probably > 1500+ performers and artists, I have built and installed an interactive > video exhibit titled "SPARKcritters". It's written in Python and is > projected onto a 10'x12' area on the floor, where you can walk around on > it and interact with it. RSVP here if you like: > http://www.facebook.com/event.php?eid=162123027204873 That's sounds awesome. -- Sincerely, Chris Calloway http://nccoos.org/Members/cbc office: 3313 Venable Hall phone: (919) 599-3530 mail: Campus Box #3300, UNC-CH, Chapel Hill, NC 27599 From j.c.sackett at splatspace.org Mon Sep 19 19:27:12 2011 From: j.c.sackett at splatspace.org (j.c.sackett) Date: Mon, 19 Sep 2011 13:27:12 -0400 Subject: [TriZPUG] [Splat Space] Re: Administrivia In-Reply-To: <4E775E17.8030707@unc.edu> References: <4E7397B6.4000102@unc.edu> <4E74AD41.8070907@gmail.com> <68897C86-1BFA-45C9-AC84-E8E2F18847FA@gmail.com> <4E775E17.8030707@unc.edu> Message-ID: <44C5849D20014ECC92B24CCC0E294728@splatspace.org> On Monday, September 19, 2011 at 11:21 AM, Chris Calloway wrote: > 7pm. > > I'm assuming this is a go and I can post announcements? We sorted this on IRC, but yes, I am available for this and no one has voiced any reason for it to not be at Splatspace, so feel free to announce. //j.c.sackett -------------- next part -------------- An HTML attachment was scrubbed... URL: From cbc at unc.edu Mon Sep 19 21:27:34 2011 From: cbc at unc.edu (Chris Calloway) Date: Mon, 19 Sep 2011 15:27:34 -0400 Subject: [TriZPUG] TriZPUG September 2011 Meeting: Python Show and Tell Message-ID: <4E7797A6.5030806@unc.edu> What Meeting When Thusday, September 22, 7pm Where SplatSpace, 331 W. Main St, Durham (The Snow Building, in the basement) Come share your Python experience through lightning talks. Lightning talks are 5 to 10 minutes extemporaneous expositions on a topic of interest to you, something you recently learned, kind of like a show and tell. We'll be meeting at Splatspace, a non-profit member-supported workshop and hacker meeting place. Splatspace is located in the basement of the Snow Building at 331 W. Main St. in Durham. Parking (free exit after 7pm) is in the back of the building in the lot off Ramseur St. on the downtown Durham loop (one way, approach Ramseur from W. Main St. or W. Chapel Hill St.. If you arrive after 7pm, please call 919-704-4225(HACK) to be let in the door. http://trizpug.org/Members/cbc/sept-11-mtg -- Sincerely, Chris Calloway http://nccoos.org/Members/cbc office: 3313 Venable Hall phone: (919) 599-3530 mail: Campus Box #3300, UNC-CH, Chapel Hill, NC 27599 From biggers at utsl.com Mon Sep 19 23:07:18 2011 From: biggers at utsl.com (Mark R. Biggers) Date: Mon, 19 Sep 2011 17:07:18 -0400 Subject: [TriZPUG] Python / Django / *.py Jam night -- 27 September 2011 Tuesday at 6 p.m., UNC-CH Room 3204 at Venable-Murray Hall Message-ID: <4E77AF06.4010605@utsl.com> We are all ready for another interesting Python Jam -- speaking for myself... :) Thanks to Chris Calloway: Conference Room 3204 at Venable-Murray Hall has been reserved, for a Jam starting at 6:00 p.m. This building has a large parking lot with free parking after 5pm. NOTE: The building doors automatically lock at 7 p.m. -- you will have to call my cell# (below) to get later access. This room has a projector screen, large LCD monitor, and videoconference capability. It seats about 16 people comfortably. It has an adjoining kitchenette with sink, refrigerator, microwave, and toaster oven. NOTE: Normal UNC-CH network access rules apply. MAC addresses must be registered, for *wireless* network cards, please. If you want, you may also register your wired NIC MAC address. Feel free to bring a power strip; I will bring at least one. See you there! Don't forget to email your wireless MAC address, to _me_ !! thank you, ----mark -- --mark biggers at utsl.com 919 360-4561 (cell) 336 849-0278 (home, Yadkinville) From cbc at unc.edu Tue Sep 20 18:01:38 2011 From: cbc at unc.edu (Chris Calloway) Date: Tue, 20 Sep 2011 12:01:38 -0400 Subject: [TriZPUG] Python / Django / *.py Jam night -- 27 September 2011 Tuesday at 6 p.m., UNC-CH Room 3204 at Venable-Murray Hall In-Reply-To: <4E77AF06.4010605@utsl.com> References: <4E77AF06.4010605@utsl.com> Message-ID: <4E78B8E2.8010801@unc.edu> On 9/19/2011 5:07 PM, Mark R. Biggers wrote: Conference Room 3204 at Venable-Murray Hall That's on the campus of UNC Chapel Hill. Here's a not-so-great map: http://trizpug.org/Members/cbc/mascparkingmap.pdf The parking lot is circled in red. After you park in that lot, walk into the bottom floor entrance of the adjacent building. The building is marked "Murray Hall" in big gold letters facing the parking lot. Proceed a few steps through the entrance to the elevators and take one to the third floor. Conference room 3204 is in the lobby as you get off the elevator. For the GPS-enabled, the street address for the entrance to the parking lot is 101 South Road, Chapel Hill: http://maps.google.com/maps/place?ftid=0x89acc2e8c8ec6719:0xc92e14760b169683&q=101+South+Road,+Chapel+Hill,+NC&hl=en&ved=0CA4Q-gswAA&sa=X&ei=1rd4TsecCaW0iQLQrryZAg&sig2=UJ8ZPTUY2NQ6Umpm8xBzUg Our October meeting will be held in this same building in one of the bottom floor classrooms, and as a result will probably have a 6pm start time as well. -- Sincerely, Chris Calloway http://nccoos.org/Members/cbc office: 3313 Venable Hall phone: (919) 599-3530 mail: Campus Box #3300, UNC-CH, Chapel Hill, NC 27599 From cbc at unc.edu Thu Sep 22 18:10:13 2011 From: cbc at unc.edu (Chris Calloway) Date: Thu, 22 Sep 2011 12:10:13 -0400 Subject: [TriZPUG] TriZPUG September 2011 Meeting: Python Show and Tell In-Reply-To: <4E7797A6.5030806@unc.edu> References: <4E7797A6.5030806@unc.edu> Message-ID: <4E7B5DE5.30305@unc.edu> On 9/19/2011 3:27 PM, Chris Calloway wrote: > http://trizpug.org/Members/cbc/sept-11-mtg Reminder: meeting tonight. I will have at least one show and tell: how I used the traceback module this week. -- Sincerely, Chris Calloway http://nccoos.org/Members/cbc office: 3313 Venable Hall phone: (919) 599-3530 mail: Campus Box #3300, UNC-CH, Chapel Hill, NC 27599 From josh_johnson at unc.edu Fri Sep 23 14:43:36 2011 From: josh_johnson at unc.edu (Josh Johnson) Date: Fri, 23 Sep 2011 08:43:36 -0400 Subject: [TriZPUG] Python / Django / *.py Jam night -- 27 September 2011 Tuesday at 6 p.m., UNC-CH Room 3204 at Venable-Murray Hall In-Reply-To: <4E78B8E2.8010801@unc.edu> References: <4E77AF06.4010605@utsl.com> <4E78B8E2.8010801@unc.edu> Message-ID: <4E7C7EF8.1080301@unc.edu> I couldn't make it to the meeting last night, but I'm getting psyched about Tuesday. Here's some of the stuff I'm going to work on during the jam: - I've got an uber-buildout-to-end-all-buildouts that needs some documentation and expansion (specifically Django+wsgi, and nginx)[1]. - I've kicked around the idea of packing up the proof-of-concept buildout extension I wrote that dumps the 'effective' config file[2] - I've done some work on thechristmaspig[3] to make it more buildout-friendly, I need to write tests and submit a pull request - Then there's Crushinator[4] If anyone is interested in working on these things, this wekeend I can elaborate on what they are, what needs to be done, etc. I'll need to put the buildout repo up on github (it's publically available read-only until I get redmine up), etc, etc. Thanks, JJ [1] http://blitzen-public.med.unc.edu/buildout.base/ [2] http://lionfacelemonface.wordpress.com/2011/07/13/dump-single-config-file-from-your-uber-buildout/ [3] https://github.com/jjmojojjmojo/thechristmaspig [4] https://github.com/jjmojojjmojo/Crushinator On 9/20/2011 12:01 PM, Chris Calloway wrote: > On 9/19/2011 5:07 PM, Mark R. Biggers wrote: > Conference Room 3204 at Venable-Murray Hall > > That's on the campus of UNC Chapel Hill. > > Here's a not-so-great map: > > http://trizpug.org/Members/cbc/mascparkingmap.pdf > > The parking lot is circled in red. After you park in that lot, walk > into the bottom floor entrance of the adjacent building. The building > is marked "Murray Hall" in big gold letters facing the parking lot. > Proceed a few steps through the entrance to the elevators and take one > to the third floor. Conference room 3204 is in the lobby as you get > off the elevator. > > For the GPS-enabled, the street address for the entrance to the > parking lot is 101 South Road, Chapel Hill: > > http://maps.google.com/maps/place?ftid=0x89acc2e8c8ec6719:0xc92e14760b169683&q=101+South+Road,+Chapel+Hill,+NC&hl=en&ved=0CA4Q-gswAA&sa=X&ei=1rd4TsecCaW0iQLQrryZAg&sig2=UJ8ZPTUY2NQ6Umpm8xBzUg > > > Our October meeting will be held in this same building in one of the > bottom floor classrooms, and as a result will probably have a 6pm > start time as well. > -- Josh Johnson Applications Analyst Translational Pathology Laboratory Lineberger Comprehensive Cancer Center University of North Carolina at Chapel Hill From cbc at unc.edu Fri Sep 23 16:26:53 2011 From: cbc at unc.edu (Chris Calloway) Date: Fri, 23 Sep 2011 10:26:53 -0400 Subject: [TriZPUG] TriZPUG September 2011 Meeting: Python Show and Tell In-Reply-To: <4E7797A6.5030806@unc.edu> References: <4E7797A6.5030806@unc.edu> Message-ID: <4E7C972D.2040502@unc.edu> On 9/19/2011 3:27 PM, Chris Calloway wrote: > Come share your Python experience through lightning talks. Thanks for coming out last night. We had show and tell for: traceback module: http://docs.python.org/library/traceback.html#module-traceback SASS: http://sass-lang.com/ Aptana: http://www.aptana.com/ straight: https://github.com/ironfroggy/straight.plugin -- Sincerely, Chris Calloway http://nccoos.org/Members/cbc office: 3313 Venable Hall phone: (919) 599-3530 mail: Campus Box #3300, UNC-CH, Chapel Hill, NC 27599 From jim at ibang.com Fri Sep 23 17:53:48 2011 From: jim at ibang.com (Jim Allman) Date: Fri, 23 Sep 2011 11:53:48 -0400 Subject: [TriZPUG] TriZPUG September 2011 Meeting: Python Show and Tell In-Reply-To: <4E7C972D.2040502@unc.edu> References: <4E7797A6.5030806@unc.edu> <4E7C972D.2040502@unc.edu> Message-ID: Also mentioned in passing last night: Compass (Sass framework and shared solutions, highly recommended): http://compass-style.org/ Tav's fork of Fabric (interesting evolution, with parallel operations, task decorator, etc.): https://github.com/tav/pylibs/tree/master/fabric =jimA= From biggers at utsl.com Fri Sep 23 18:15:23 2011 From: biggers at utsl.com (Mark R. Biggers) Date: Fri, 23 Sep 2011 12:15:23 -0400 Subject: [TriZPUG] Bolt! -- Re: TriZPUG September 2011 Meeting: Python Show and Tell In-Reply-To: References: <4E7797A6.5030806@unc.edu> <4E7C972D.2040502@unc.edu> Message-ID: <4E7CB09B.5000503@utsl.com> Sounds like a very good meeting... FYI, actually "Tav's fork" of Fabric is now a complete "new fork" -- http://pypi.python.org/pypi/bolt/ If you read the article mentioned on that PyPi page, you will note a set of major improvements to Fabric, that may put this Python tool into the ballpark of Chef and Puppet, both widely used systems management tools written in Ruby. It definitely reads like a winner, for any *.py & supporting services deployment task: Django, Plone, pyramid/pylons, apache, nginx ... ----mark See you Tuesday! http://bit.ly/27Sept-tzJam I am doing Django tutorials (yow! a runtime conflict between Debug Toolbar & piston) and have a decent buildout myself :) ... On 09/23/2011 11:53 AM, Jim Allman wrote: > Also mentioned in passing last night: > > Compass (Sass framework and shared solutions, highly recommended): http://compass-style.org/ > > Tav's fork of Fabric (interesting evolution, with parallel operations, task decorator, etc.): https://github.com/tav/pylibs/tree/master/fabric > > =jimA= -- --mark biggers At utsl.com 919 360-4561 (cell) 336 849-0278 (home, Yadkinville) From jim at ibang.com Fri Sep 23 18:21:09 2011 From: jim at ibang.com (Jim Allman) Date: Fri, 23 Sep 2011 12:21:09 -0400 Subject: [TriZPUG] Python / Django / *.py Jam night -- 27 September 2011 Tuesday at 6 p.m., UNC-CH Room 3204 at Venable-Murray Hall In-Reply-To: <4E7C7EF8.1080301@unc.edu> References: <4E77AF06.4010605@utsl.com> <4E78B8E2.8010801@unc.edu> <4E7C7EF8.1080301@unc.edu> Message-ID: On Sep 23, 2011, at 8:43 AM, Josh Johnson wrote: > If anyone is interested in working on these things, this wekeend I can elaborate on what they are, what needs to be done, etc. I'll need to put the buildout repo up on github (it's publically available read-only until I get redmine up), etc, etc. Josh, If it's not too premature, I'm still psyched about building a web UI for Crushinator (fourth on your list, but #1 in my heart). I think a website could be really valuable as a repository for shared recipes and best practices, as well as a live demo and coaching tool for working with Crushinator. I have lots of notes from your presentation in July. I was thinking maybe some exploratory mockups, just to see if the idea has legs. =jimA= From josh_johnson at unc.edu Mon Sep 26 16:09:47 2011 From: josh_johnson at unc.edu (Josh Johnson) Date: Mon, 26 Sep 2011 10:09:47 -0400 Subject: [TriZPUG] Python / Django / *.py Jam night -- 27 September 2011 Tuesday at 6 p.m., UNC-CH Room 3204 at Venable-Murray Hall In-Reply-To: References: <4E77AF06.4010605@utsl.com> <4E78B8E2.8010801@unc.edu> <4E7C7EF8.1080301@unc.edu> Message-ID: <4E8087AB.5020006@unc.edu> On 9/23/2011 12:21 PM, Jim Allman wrote: > If it's not too premature, I'm still psyched about building a web UI > for Crushinator (fourth on your list, but #1 in my heart). I think a > website could be really valuable as a repository for shared recipes > and best practices, as well as a live demo and coaching tool for > working with Crushinator. I have lots of notes from your presentation > in July. I was thinking maybe some exploratory mockups, just to see if > the idea has legs. Sorry about the delay in responding to this. Yes, mockups and such would be great and help prove the utility of the object relationships I've planned out so far. I do see two different tasks in what you're describing: one is the web UI application, an implementation of the UserInterface API that is designed to run code generation code via the web, the other is a web presence that acts as a hub for proof of concept, coaching, demos and such. I'm very interested in discussing both, and the permutations thereof :) JJ -- Josh Johnson Applications Analyst Translational Pathology Laboratory Lineberger Comprehensive Cancer Center University of North Carolina at Chapel Hill From biggers at utsl.com Mon Sep 26 22:20:28 2011 From: biggers at utsl.com (Mark R. Biggers) Date: Mon, 26 Sep 2011 16:20:28 -0400 Subject: [TriZPUG] Python / Django / *.py Jam night -- 27 September 2011 Tuesday at 6 p.m., UNC-CH Room 3204 at Venable-Murray Hall In-Reply-To: <4E77AF06.4010605@utsl.com> References: <4E77AF06.4010605@utsl.com> Message-ID: <4E80DE8C.8030208@utsl.com> Hello folks, We will need, at least, your *wired* MAC addresses from your notebook or *Pad or whatever, since Chris prefers us to be connected to an Enet switch. So, bring some Enet cable too, is my suggestion. The *.py Jam is tomorrow! **** If you are coming, please email in (to _me_) your MAC addrs as soon as you can! **** thank you, ----mark Ask me about "easyTrac2", a (zc) buildout that creates a full-up Trac site with Trac plugins, Nginx and uwsgi, with optional LDAP plugin for nginx. Is in production at UNC. Could use some documentation (help), addition of a Mercurial build, and a push to Bitbucket. On 09/19/2011 05:07 PM, Mark R. Biggers wrote: > We are all ready for another interesting Python Jam -- speaking for > myself... :) > > Thanks to Chris Calloway: Conference Room 3204 at Venable-Murray Hall has > been reserved, for a Jam starting at 6:00 p.m. > > This building has a large parking lot with free parking after 5pm. NOTE: > The building doors automatically lock at 7 p.m. -- you will have to call my > cell# (below) to get later access. > > This room has a projector screen, large LCD monitor, and videoconference > capability. It seats about 16 people comfortably. It has an adjoining > kitchenette with sink, refrigerator, microwave, and toaster oven. > > NOTE: Normal UNC-CH network access rules apply. MAC addresses must be > registered, for *wireless* network cards, please. > If you want, you may also register your wired NIC MAC address. > > Feel free to bring a power strip; I will bring at least one. > > See you there! Don't forget to email your wireless MAC address, to _me_ !! > > thank you, > ----mark > -- --mark biggers at utsl.com 919 360-4561 (cell) 336 849-0278 (home, Yadkinville) From brian.curtin at gmail.com Wed Sep 28 01:22:56 2011 From: brian.curtin at gmail.com (Brian Curtin) Date: Tue, 27 Sep 2011 18:22:56 -0500 Subject: [TriZPUG] PyCon 2012 Proposals Due October 12 Message-ID: The deadline for PyCon 2012 tutorial, talk, and poster proposals is under 15 days away, so be sure to get your submissions in by October 12, 2011. Whether you?re a first-timer or an experienced veteran, PyCon is depends on you, the community, coming together to build the best conference schedule possible. Our call for proposals (http://us.pycon.org/2012/cfp/) lays out the details it takes to be included in the lineup for the conference in Santa Clara, CA on March 7-15, 2012. If you?re unsure of what to write about, our recent survey yielded a large list of potential talk topics (http://pycon.blogspot.com/2011/09/need-talk-ideas.html), and plenty of ideas for tutorials (INSERT TUTORIAL POST). We?ve also come up with general tips on proposal writing at http://pycon.blogspot.com/2011/08/writing-good-proposal.html to ensure everyone has the most complete proposal when it comes time for review. As always, the program committee wants to put together an incredible conference, so they?ll be working with submitters to fine tune proposal details and help you produce the best submissions. We?ve had plenty of great news to share since we first announced the call for proposals. Paul Graham of Y Combinator was recently announced as a keynote speaker (http://pycon.blogspot.com/2011/09/announcing-first-pycon-2012-keynote.html), making his return after a 2003 keynote. David Beazley, famous for his mind-blowing talks on CPython?s Global Interpreter Lock, was added to the plenary talk series (http://pycon.blogspot.com/2011/09/announcing-first-pycon-2012-plenary.html). Sponsors can now list their job openings on the ?Job Fair? section of the PyCon site (http://pycon.blogspot.com/2011/09/announcing-pycon-2012-fair-page-sponsor.html). We?re hard at work to bring you the best conference yet, so stay tuned to PyCon news at http://pycon.blogspot.com/ and on Twitter at https://twitter.com/#!/pycon. We recently eclipsed last year?s sponsorship count of 40 and are currently at a record 52 organizations supporting PyCon. If you or your organization are interested in sponsoring PyCon, we?d love to hear from you, so check out our sponsorship page (http://us.pycon.org/2012/sponsors/). A quick thanks to all of our awesome PyCon 2012 Sponsors: - Diamond Level: Google and Dropbox. - Platinum Level: New Relic, SurveyMonkey, Microsoft, Eventbrite, Nasuni and Gondor.io - Gold Level: Walt Disney Animation Studios, CCP Games, Linode, Enthought, Canonical, Dotcloud, Loggly, Revsys, ZeOmega, Bitly, ActiveState, JetBrains, Caktus, Disqus, Spotify, Snoball, Evite, and PlaidCloud - Silver Level: Imaginary Landscape, WiserTogether, Net-ng, Olark, AG Interactive, Bitbucket, Open Bastion, 10Gen, gocept, Lex Machina, fwix, github, toast driven, Aarki, Threadless, Cox Media, myYearBook, Accense Technology, Wingware, FreshBooks, and BigDoor - Lanyard: Dreamhost - Sprints: Reddit - FLOSS: OSU/OSL, OpenHatch The PyCon Organizers - http://us.pycon.org/2012 Jesse Noller - Chairman - jnoller at python.org Brian Curtin - Publicity Coordinator - brian at python.org From caleb.smithnc at gmail.com Wed Sep 28 06:59:17 2011 From: caleb.smithnc at gmail.com (caleb smith) Date: Wed, 28 Sep 2011 00:59:17 -0400 Subject: [TriZPUG] TriZPUG Digest, Vol 41, Issue 8 In-Reply-To: References: Message-ID: Good evening, I hate to use the mailing list for this but I left a laptop in the back of a member's car last night after the jam. My number is 336-392-0014 and my email is caleb.smithnc at gmail.com. I could really use it ASAP and could drive out to pick it up. Please help if you can and thanks for a fun night everyone. Caleb On Tue, Sep 27, 2011 at 6:00 AM, wrote: > Send TriZPUG mailing list submissions to > trizpug at python.org > > To subscribe or unsubscribe via the World Wide Web, visit > http://mail.python.org/mailman/listinfo/trizpug > or, via email, send a message with subject or body 'help' to > trizpug-request at python.org > > You can reach the person managing the list at > trizpug-owner at python.org > > When replying, please edit your Subject line so it is more specific > than "Re: Contents of TriZPUG digest..." > > > Today's Topics: > > 1. Re: Python / Django / *.py Jam night -- 27 September 2011 > Tuesday at 6 p.m., UNC-CH Room 3204 at Venable-Murray Hall > (Josh Johnson) > 2. Re: Python / Django / *.py Jam night -- 27 September 2011 > Tuesday at 6 p.m., UNC-CH Room 3204 at Venable-Murray Hall > (Mark R. Biggers) > > > ---------------------------------------------------------------------- > > Message: 1 > Date: Mon, 26 Sep 2011 10:09:47 -0400 > From: Josh Johnson > To: trizpug at python.org > Subject: Re: [TriZPUG] Python / Django / *.py Jam night -- 27 > September 2011 Tuesday at 6 p.m., UNC-CH Room 3204 at Venable-Murray > Hall > Message-ID: <4E8087AB.5020006 at unc.edu> > Content-Type: text/plain; charset=ISO-8859-1; format=flowed > > On 9/23/2011 12:21 PM, Jim Allman wrote: > > If it's not too premature, I'm still psyched about building a web UI > > for Crushinator (fourth on your list, but #1 in my heart). I think a > > website could be really valuable as a repository for shared recipes > > and best practices, as well as a live demo and coaching tool for > > working with Crushinator. I have lots of notes from your presentation > > in July. I was thinking maybe some exploratory mockups, just to see if > > the idea has legs. > > Sorry about the delay in responding to this. Yes, mockups and such would > be great and help prove the utility of the object relationships I've > planned out so far. > > I do see two different tasks in what you're describing: one is the web > UI application, an implementation of the UserInterface API that is > designed to run code generation code via the web, the other is a web > presence that acts as a hub for proof of concept, coaching, demos and such. > > I'm very interested in discussing both, and the permutations thereof :) > > JJ > > -- > Josh Johnson > Applications Analyst > Translational Pathology Laboratory > Lineberger Comprehensive Cancer Center > University of North Carolina at Chapel Hill > > > ------------------------------ > > Message: 2 > Date: Mon, 26 Sep 2011 16:20:28 -0400 > From: "Mark R. Biggers" > To: trizpug at python.org > Subject: Re: [TriZPUG] Python / Django / *.py Jam night -- 27 > September 2011 Tuesday at 6 p.m., UNC-CH Room 3204 at Venable-Murray > Hall > Message-ID: <4E80DE8C.8030208 at utsl.com> > Content-Type: text/plain; charset=ISO-8859-1; format=flowed > > Hello folks, > > We will need, at least, your *wired* MAC addresses from your notebook or > *Pad > or whatever, since Chris prefers us to be connected to an Enet switch. So, > bring some Enet cable too, is my suggestion. > > The *.py Jam is tomorrow! **** If you are coming, please email in (to > _me_) > your MAC addrs as soon as you can! **** > > thank you, > ----mark > > Ask me about "easyTrac2", a (zc) buildout that creates a full-up Trac site > with Trac plugins, Nginx and uwsgi, with optional LDAP plugin for nginx. > Is > in production at UNC. Could use some documentation (help), addition of a > Mercurial build, and a push to Bitbucket. > > > On 09/19/2011 05:07 PM, Mark R. Biggers wrote: > > We are all ready for another interesting Python Jam -- speaking for > > myself... :) > > > > Thanks to Chris Calloway: Conference Room 3204 at Venable-Murray Hall > has > > been reserved, for a Jam starting at 6:00 p.m. > > > > This building has a large parking lot with free parking after 5pm. NOTE: > > The building doors automatically lock at 7 p.m. -- you will have to call > my > > cell# (below) to get later access. > > > > This room has a projector screen, large LCD monitor, and videoconference > > capability. It seats about 16 people comfortably. It has an adjoining > > kitchenette with sink, refrigerator, microwave, and toaster oven. > > > > NOTE: Normal UNC-CH network access rules apply. MAC addresses must be > > registered, for *wireless* network cards, please. > > If you want, you may also register your wired NIC MAC address. > > > > Feel free to bring a power strip; I will bring at least one. > > > > See you there! Don't forget to email your wireless MAC address, to _me_ > !! > > > > thank you, > > ----mark > > > > > -- > --mark > biggers at utsl.com > 919 360-4561 (cell) > 336 849-0278 (home, Yadkinville) > > > > ------------------------------ > > _______________________________________________ > TriZPUG mailing list > TriZPUG at python.org > http://mail.python.org/mailman/listinfo/trizpug > > > End of TriZPUG Digest, Vol 41, Issue 8 > ************************************** > -------------- next part -------------- An HTML attachment was scrubbed... URL: From cbc at unc.edu Wed Sep 28 19:50:36 2011 From: cbc at unc.edu (Chris Calloway) Date: Wed, 28 Sep 2011 13:50:36 -0400 Subject: [TriZPUG] Python / Django / *.py Jam night -- 27 September 2011 Tuesday at 6 p.m., UNC-CH Room 3204 at Venable-Murray Hall In-Reply-To: <4E80DE8C.8030208@utsl.com> References: <4E77AF06.4010605@utsl.com> <4E80DE8C.8030208@utsl.com> Message-ID: <4E835E6C.1040400@unc.edu> Hey, I enjoyed the Jam also, Caleb. Nice hanging out. One thing I took away last night, if I had a blog, I think I'd feel compelled to write an article entitled, "Use of the Words 'Variable' and 'Assignment' Considered Harmful in Python." It's one of my pet peeves and it only got stronger last night when binding to an identifier was referred to as "storing in memory." Answer to question posed at the Jam after-meeting: PCIDSS (Payment Card Industry Data Security Standard, https://www.pcisecuritystandards.org/) is the regulatory framework ensuring basic security procedures and standards for credit card processing. -- Sincerely, Chris Calloway http://nccoos.org/Members/cbc office: 3313 Venable Hall phone: (919) 599-3530 mail: Campus Box #3300, UNC-CH, Chapel Hill, NC 27599 From Tom_Roche at pobox.com Thu Sep 29 15:33:47 2011 From: Tom_Roche at pobox.com (Tom Roche) Date: Thu, 29 Sep 2011 09:33:47 -0400 Subject: [TriZPUG] "Use of the Words 'Variable' and 'Assignment' Considered Harmful in Python" In-Reply-To: <4E835E6C.1040400@unc.edu> References: <4E835E6C.1040400@unc.edu> Message-ID: <87oby3cw1w.fsf@pobox.com> Chris Calloway Wed, 28 Sep 2011 13:50:36 -0400 (rearranged, desubjunctivized) > "Use of the Words 'Variable' and 'Assignment' Considered Harmful in > Python." It's one of my pet peeves and it only got stronger last > night when binding to an identifier was referred to as "storing in > memory." "Variable assignment" is a common informatic idiom, and it *seems* pretty similar to what's happening in $ python -c 'i=1 ; print i' no? So ... what's the harm? > if I had a blog, You now have a thread :-) From david at handysoftware.com Thu Sep 29 17:13:49 2011 From: david at handysoftware.com (David Handy) Date: Thu, 29 Sep 2011 11:13:49 -0400 Subject: [TriZPUG] "Use of the Words 'Variable' and 'Assignment' Considered Harmful in Python" In-Reply-To: <87oby3cw1w.fsf@pobox.com> References: <4E835E6C.1040400@unc.edu> <87oby3cw1w.fsf@pobox.com> Message-ID: <20110929151348.GA18144@blackbeauty> On Thu, Sep 29, 2011 at 09:33:47AM -0400, Tom Roche wrote: > > Chris Calloway Wed, 28 Sep 2011 13:50:36 -0400 (rearranged, desubjunctivized) > > "Use of the Words 'Variable' and 'Assignment' Considered Harmful in > > Python." It's one of my pet peeves and it only got stronger last > > night when binding to an identifier was referred to as "storing in > > memory." > > "Variable assignment" is a common informatic idiom, and it *seems* pretty similar to what's happening in > > $ python -c 'i=1 ; print i' > > no? So ... what's the harm? The potential harm is that it tends to communicate the wrong conceptual model. This isn't like C or assembly language, where there is a memory location labeled "i" and we're stuffing the integer 1 in that memory location. Consider: >>> i = 1 >>> a = [i] >>> i = 2 >>> print a What happens next? If you are thinking in the C programming model, as if object references were pointers to memory locations, you would expect that you just changed the contents of memory location "i". If so, you would expect this output: [2] But instead, you get this: [1] You must have a proper concept of Python's programming model in order to predict what a python program will do. "i" is a reference to an immutable integer object. Binding a name to an immutable object is hugely different than storing an integer in a volatile memory location. We're insisting on using the right words in order to communicate the right concept. (Teaching programming is my hobby, sorry if I'm getting too pedantic.) David H From Tom_Roche at pobox.com Thu Sep 29 19:16:26 2011 From: Tom_Roche at pobox.com (Tom Roche) Date: Thu, 29 Sep 2011 13:16:26 -0400 Subject: [TriZPUG] "Use of the Words 'Variable' and 'Assignment' Considered Harmful in Python" In-Reply-To: <20110929151348.GA18144@blackbeauty> References: <20110929151348.GA18144@blackbeauty> <4E835E6C.1040400@unc.edu> <87oby3cw1w.fsf@pobox.com> Message-ID: <87fwjfclqt.fsf@pobox.com> David Handy Thu, 29 Sep 2011 11:13:49 -0400 (rearranged) > sorry if I'm getting too pedantic. No need--informatics is one discipline where pedantics are demanded, notably by CPUs. Tom Roche Thu, Sep 29, 2011 at 09:33:47AM -0400 >> "Variable assignment" is a common informatic idiom, and it *seems* >> pretty similar to what's happening in >> $ python -c 'i=1 ; print i' > The potential harm is that it tends to communicate the wrong > conceptual model. This isn't like C or assembly language, where > there is a memory location labeled "i" and we're stuffing the > integer 1 in that memory location. Correct, but that to me says less about the use of the term "variable assignment" (with which the parallelism to other languages is plain) and more about the differing implementation of variables. Python variables are implemented by objects managed by the VM; in other languages, variables map to memory locations managed by you. (Am I missing something?) That's a distinction which I don't see the term "binding a name to an object" necessarily communicating much better than "assigning a value to a variable"--YMMV. > You must have a proper concept of Python's programming model in > order to predict what a python program will do. True that. FWIW, Tom Roche From cbc at unc.edu Thu Sep 29 19:20:15 2011 From: cbc at unc.edu (Chris Calloway) Date: Thu, 29 Sep 2011 13:20:15 -0400 Subject: [TriZPUG] "Use of the Words 'Variable' and 'Assignment' Considered Harmful in Python" In-Reply-To: <87oby3cw1w.fsf@pobox.com> References: <4E835E6C.1040400@unc.edu> <87oby3cw1w.fsf@pobox.com> Message-ID: <4E84A8CF.7010008@unc.edu> On 9/29/2011 9:33 AM, Tom Roche wrote: > "Variable assignment" is a common informatic idiom, and it *seems* pretty similar to what's happening in > > $ python -c 'i=1 ; print i' > > no? So ... what's the harm? On preview, David Handy already handily answered this. But here's my take... It is common. In other languages. In Python, it's applied fairly inconsistently. The harm is twofold. Firstly, 'variable' and 'identifier' have very precise meanings in computer science that are language-independent. The vernacular application of 'variable' in Python is inconsistent with that precision. When we programmers confuse variable with identifier, we just look kind of stupid and wrong to scientists who know the difference (although there are enough confused scientists, I'll grant). Anybody who knows me knows I don't mind so much looking stupid and wrong on occasion if it gets the point across. However... Secondly, and more importantly, it doesn't get the point across. It promotes misunderstanding. It promotes the idea that an object is being stored by the assignment. However, all the storage occurs upon object creation, whether the object is bound or not. This misunderstanding is compounded when people think of a bound object being bound to yet another identifier, as the common idea of assignment in such a case is to copy the object (although this is often applied inconsistently from language to language and even within the same language). Like you say, it "seems" pretty similar to what's happening. But it's not what's happening, that's the problem. And thinking that's what's happening when it isn't can lead to some nasty bugs. I heard this misconception in practice for the umpty-thousandth time at the Jam the other night when it was asked what special method could be overridden so that "assigning" an object to a new identifier would "store" a copy in the new identifier, kind of like how _setattr_ works for binding attributes. The answer I gave was that Python is dynamic and that the new identifier doesn't even have a type to have a method to override until after it is already bound. A semiotician might say, "The identifier is not the object." At my last PyCamp, several times during the class people were confused because they had "stored" an object "in a variable" despite the fact that I warned about how we have identifiers and binding in Python rather than variables. Often people come to these classes with background in other languages where the semantics of variable and assignment mean just that, storing and copying. By repeatedly pointing out how identifiers and binding are different, then things like mutating a doubly bound object like this made more sense to the class: >>> a = [1] >>> b = a >>> a[0] = 2 >>> b[0] 2 >>> They could see that b = a had not copied a new list into a new storage named b. They could see that b was just another identifier for the same list object that had been created on the right hand side of the binding statement prior to any actual binding. By repeatedly using the terminology of identifier and binding while eschewing variable and assignment, they were able to get it, because it no longer referenced the paradigm they learned earlier in other languages. I wasn't asking them to reverse in their minds something they already new. I simply asked them to learn something new in addition to what they already knew. After the class I got a lot of feedback about how my being precise about the terminology helped them get it despite what they already knew as variable assignment from other languages. It also was a great help when explaining rebinding, the global keyword, and the concept of "free variables" in class. The class got what was going on because with precise language we could untangle any misconceptions as they occurred. The take-away for me was being loose with the language promotes loose understanding of the language. But being precise can help prevent common anti-patterns of misunderstanding. So I will continue to say "binding" and "identifier" while others say "variable and "assignment." I won't rove around trying to correct anybody who says variable and assignment (unless it's in a class :). I will just stand my ground in my own usage. When someone with a misunderstanding about binding comes to me while they are using the words "variable" and "assignment," that is when I will choose to correct them using precise terminology. And I just think it would help if that became more commonplace. We don't need a holy war on variables. I'd just like to encourage understanding it by my own example. I think it would be nice if more people were more precise about this, especially when it comes to Python tutorials and textbooks. It doesn't help anybody to ask them to unlearn something else just to learn Python. I'm just saying, it would help Python teachers not to ask people to unlearn variables, but to teach identifiers instead. >> if I had a blog, > You now have a thread :-) At the Jam, I had been working on Planet TriZPUG. And one of the things I fixed was the URL for David Ray's feed, because he had changed blogging platforms (http://davidcodes.com/). The blogging platform he had changed to is Pelican (http://blog.notmyidea.org/pelican-a-simple-static-blog-generator-in-python.html). I read David's reasons for choosing Pelican and was intrigued. I also heard that a couple of other TriZPUGers were looking at it. After I posted my pet peeve yesterday I said to myself, "That's it, no more futzing around on trying to find the perfect blog platform." (Zen of Python: "Now is better than never.") I pip'd Pelican and it took all of a few minutes to configure it and put up my first post. I like the no muss no fuss no web app to admin just generate me a blog post approach. I liked that it lacked the very features I didn't care about. :) I like jinja templates. I liked the default theme. I liked its whole minimalism. I liked that it would be very easy to hack whatever I needed out of it very quickly. And so now, in the spirit of Drunken Master, I give you Drunken Python: http://drunkenpython.org which you can follow by following Planet TriZPUG: http://planet.trizpug.org I wasn't planning on announcing Drunken Python. I just wanted to try it out for awhile and see how if felt. But you forced my hand. In other Planet TriZPUG news, the blog of Calvin Spealman has been added: http://techblog.ironfroggy.com/ And the fantastic blog by Josh Johnson, Lion Face Lemon Face, has been removed from Planet TriZPUG pending fixing some WordPress mangling of tags which were getting piped through the feed to Planet TriZPUG. -- Sincerely, Chris Calloway http://nccoos.org/Members/cbc office: 3313 Venable Hall phone: (919) 599-3530 mail: Campus Box #3300, UNC-CH, Chapel Hill, NC 27599 From jim at ibang.com Thu Sep 29 19:42:41 2011 From: jim at ibang.com (Jim Allman) Date: Thu, 29 Sep 2011 13:42:41 -0400 Subject: [TriZPUG] "Use of the Words 'Variable' and 'Assignment' Considered Harmful in Python" In-Reply-To: <4E84A8CF.7010008@unc.edu> References: <4E835E6C.1040400@unc.edu> <87oby3cw1w.fsf@pobox.com> <4E84A8CF.7010008@unc.edu> Message-ID: <9DF77C98-87A8-4AE7-956D-AEAE1ECC619B@ibang.com> On Sep 29, 2011, at 1:20 PM, Chris Calloway wrote: > The harm is twofold. Firstly, 'variable' and 'identifier' have very precise meanings in computer science that are language-independent. Very nice, my brain thanks you for boiling it down to simple, distinct terms. This explains why people accustomed to statically-typed languages--those with explicit, invariable types for each variable--get the willies when looking at Python. And why you have to explain that Python is a strongly- but dynamically-typed language. (OK, I probably fumbled that somehow. Corrections gratefully accepted!) Neat discussion and several explanations here: http://wiki.python.org/moin/Why%20is%20Python%20a%20dynamic%20language%20and%20also%20a%20strongly%20typed%20language =jimA= From david at handysoftware.com Thu Sep 29 20:43:39 2011 From: david at handysoftware.com (David Handy) Date: Thu, 29 Sep 2011 14:43:39 -0400 Subject: [TriZPUG] "Use of the Words 'Variable' and 'Assignment' Considered Harmful in Python" In-Reply-To: <87fwjfclqt.fsf@pobox.com> References: <20110929151348.GA18144@blackbeauty> <4E835E6C.1040400@unc.edu> <87oby3cw1w.fsf@pobox.com> <87fwjfclqt.fsf@pobox.com> Message-ID: <20110929184338.GA18286@blackbeauty> > Tom Roche Thu, Sep 29, 2011 at 09:33:47AM -0400 > >> "Variable assignment" is a common informatic idiom, and it *seems* > >> pretty similar to what's happening in > > >> $ python -c 'i=1 ; print i' > > > The potential harm is that it tends to communicate the wrong > > conceptual model. This isn't like C or assembly language, where > > there is a memory location labeled "i" and we're stuffing the > > integer 1 in that memory location. > > Correct, but that to me says less about the use of the term "variable > assignment" (with which the parallelism to other languages is plain) > and more about the differing implementation of variables. Python > variables are implemented by objects managed by the VM; in other > languages, variables map to memory locations managed by you. Up to this point, what you described is essentially the same in both Java and Python (ignoring that Java does have volatile integers and such, and just concentrating on regular Java objects.) > (Am I missing something?) That's a distinction which I don't see the term > "binding a name to an object" necessarily communicating much better than > "assigning a value to a variable"--YMMV. The distinction is the dynamic nature of binding names to objects vs. the static nature of declaring variables in Java and other languages. You can't do this in Java: >>> a = 1 >>> vars() {'a': 1, '__builtins__': , '__package__': None, '__name__': '__main__', '__doc__': None} >>> del a >>> vars() {'__builtins__': , '__package__': None, '__name__': '__main__', '__doc__': None} Nor this: >>> def f(): ... print "I'm a function!" ... >>> a = 1 >>> a = f >>> a() I'm a function! In Java the list of variables and fields can never change, and the type of each one can never change. In Python anything can change. You're just binding a name to an object in a namespace. The name can always be unbound and disappear, or be rebound to something totally different. You can add new names at runtime. Python names are so dynamic that, ironically, they don't resemble those static, unchanging things called "variables" in other languages. (Inigo Montoya: "That word, I do not think it means what you think it means...") David H From csl at med.unc.edu Fri Sep 30 14:43:48 2011 From: csl at med.unc.edu (Ludwig, Carol S) Date: Fri, 30 Sep 2011 12:43:48 +0000 Subject: [TriZPUG] "Use of the Words 'Variable' and 'Assignment' Considered Harmful in Python" In-Reply-To: <20110929184338.GA18286@blackbeauty> References: <20110929151348.GA18144@blackbeauty> <4E835E6C.1040400@unc.edu> <87oby3cw1w.fsf@pobox.com> <87fwjfclqt.fsf@pobox.com>,<20110929184338.GA18286@blackbeauty> Message-ID: As a long-time C, then Java user who just installed my first (small) python project, I realized the difference between "variable assignment" and "binding names to objects" clearly in coding my project. Thanks for this clear discussion of the terminology and functionality. Now I can talk about it. Carol Ludwig csl at med.unc.edu phone: (919)966-2253 ________________________________________ From: trizpug-bounces+csl=med.unc.edu at python.org [trizpug-bounces+csl=med.unc.edu at python.org] on behalf of David Handy [david at handysoftware.com] Sent: Thursday, September 29, 2011 2:43 PM To: trizpug at python.org; Tom Roche Subject: Re: [TriZPUG] "Use of the Words 'Variable' and 'Assignment' Considered Harmful in Python" > Tom Roche Thu, Sep 29, 2011 at 09:33:47AM -0400 > >> "Variable assignment" is a common informatic idiom, and it *seems* > >> pretty similar to what's happening in > > >> $ python -c 'i=1 ; print i' > > > The potential harm is that it tends to communicate the wrong > > conceptual model. This isn't like C or assembly language, where > > there is a memory location labeled "i" and we're stuffing the > > integer 1 in that memory location. > > Correct, but that to me says less about the use of the term "variable > assignment" (with which the parallelism to other languages is plain) > and more about the differing implementation of variables. Python > variables are implemented by objects managed by the VM; in other > languages, variables map to memory locations managed by you. Up to this point, what you described is essentially the same in both Java and Python (ignoring that Java does have volatile integers and such, and just concentrating on regular Java objects.) > (Am I missing something?) That's a distinction which I don't see the term > "binding a name to an object" necessarily communicating much better than > "assigning a value to a variable"--YMMV. The distinction is the dynamic nature of binding names to objects vs. the static nature of declaring variables in Java and other languages. You can't do this in Java: >>> a = 1 >>> vars() {'a': 1, '__builtins__': , '__package__': None, '__name__': '__main__', '__doc__': None} >>> del a >>> vars() {'__builtins__': , '__package__': None, '__name__': '__main__', '__doc__': None} Nor this: >>> def f(): ... print "I'm a function!" ... >>> a = 1 >>> a = f >>> a() I'm a function! In Java the list of variables and fields can never change, and the type of each one can never change. In Python anything can change. You're just binding a name to an object in a namespace. The name can always be unbound and disappear, or be rebound to something totally different. You can add new names at runtime. Python names are so dynamic that, ironically, they don't resemble those static, unchanging things called "variables" in other languages. (Inigo Montoya: "That word, I do not think it means what you think it means...") David H _______________________________________________ TriZPUG mailing list TriZPUG at python.org http://mail.python.org/mailman/listinfo/trizpug http://trizpug.org is the Triangle Zope and Python Users Group