From r.aubrey.xyzzy at gmail.com Thu Jul 1 08:21:16 2010 From: r.aubrey.xyzzy at gmail.com (R Aubrey) Date: Wed, 30 Jun 2010 23:21:16 -0700 Subject: [Baypiggies] career advice? Message-ID: Hello, Bay Piggies. I could use some career advice: where do people go when they hit middle age? I moved on from programming as a day job almost five years ago, into a technologist/architect/evangelist/product management/"whatever needs done for the business" kind of role reporting to the general manager. And while I am very glad to have learned a great deal about the business side of the software business, now I am sort of stuck in not having a clear place to advance to. Time to reboot the career, perhaps, but a good part of my problem is figuring out where to look for maximum overlap between what I've enjoyed doing and what positions are available. If you really enjoy python programming and find side projects just to have an excuse to "prototype" something, but you also want to stay very close to the product management / business side of things because you've become convinced the software is just one part of a successful company: where do you go? Does everyone end up in management? Oh, and if my current employer has figured out this is me, new account notwithstanding, I'm Officially Very Happy and of course will use any advice just to better search internal postings, and be of more value here. :) --- My husband, in common with a lot of people his age, is fifty. For how long are we to put up with these things? -- Monty Python -------------- next part -------------- An HTML attachment was scrubbed... URL: From aahz at pythoncraft.com Thu Jul 1 14:34:47 2010 From: aahz at pythoncraft.com (Aahz) Date: Thu, 1 Jul 2010 05:34:47 -0700 Subject: [Baypiggies] baypiggies.net down Message-ID: <20100701123447.GA1954@panix.com> I forget who has access to fix it -- I'm getting HTTP 502. -- Aahz (aahz at pythoncraft.com) <*> http://www.pythoncraft.com/ "If you don't know what your program is supposed to do, you'd better not start writing it." --Dijkstra From aahz at pythoncraft.com Thu Jul 1 14:48:51 2010 From: aahz at pythoncraft.com (Aahz) Date: Thu, 1 Jul 2010 05:48:51 -0700 Subject: [Baypiggies] career advice? In-Reply-To: References: Message-ID: <20100701124851.GA10466@panix.com> On Wed, Jun 30, 2010, R Aubrey wrote: > > I could use some career advice: where do people go when they hit > middle age? Into programming! ;-) Seriously, although I've been programming for more than thirty years, the job I was hired for a year ago was the first time I've been hired specifically as a programmer. I love it. I also know people who've had programming careers for decades and haven't stopped at old age (not even talking about middle age). > I moved on from programming as a day job almost five years ago, into > a technologist/architect/evangelist/product management/"whatever > needs done for the business" kind of role reporting to the general > manager. And while I am very glad to have learned a great deal about > the business side of the software business, now I am sort of stuck in > not having a clear place to advance to. Time to reboot the career, > perhaps, but a good part of my problem is figuring out where to look > for maximum overlap between what I've enjoyed doing and what positions > are available. Perhaps part of your problem lies in thinking in terms of "advance"? I certainly have no interest in advancing. For the most part, I like staying a low-level grunt (albeit on the senior side; I am currently essentially a team lead, for example). I have no interest in going into management, and I'm fortunate to be in a position where I'm not pushed into looking for more lucrative positions. So my advice is to figure out what makes you unhappy with what you're currently doing and change that without specifically focusing on "advancing". Maybe you'd like to try tech support. Tech writing? In fact, are you even unhappy with what you're currently doing or just feeling an itch that you "ought" to be doing something different? Maybe you want to keep doing the same thing but with different people. If you like your job but are bored (and given the allusion to working at a not-tiny company) maybe you can just pick up some other projects or responsibilities. Think outside the box! -- Aahz (aahz at pythoncraft.com) <*> http://www.pythoncraft.com/ "If you don't know what your program is supposed to do, you'd better not start writing it." --Dijkstra From alexandre.conrad at gmail.com Thu Jul 1 17:31:03 2010 From: alexandre.conrad at gmail.com (Alexandre Conrad) Date: Thu, 1 Jul 2010 17:31:03 +0200 Subject: [Baypiggies] Moving to the Valley Message-ID: Dear BayPIGgies, This is my first thread to this list, so let me introduce myself: My name is Alexandre Conrad and I'm 29 years old. I'm a US and French citizen. I live in Paris France and currently work at a French company as a Python developer. And I'm moving in the Valley in the beginning of August, somewhere between San Francisco and Santa Clara (maybe Palo Alto). New life, new people to meet, new friends to make, new stories to tell. It's all *very* exciting. I started programming with Python, back in 2003 and have been doing most of my development with it since then. I've been promoting Python through my support to the AFPy, the French Python Association presided by Tarek Ziad?, by going to diverse events around France. And moving in the Bay Area won't stop my quest to spreading Python karma. :) Of course, as I'm preparing my move, among other things, I'm starting to seek for a job in SF or the Valley. I monitor Python positions through job boards and have a few hints. But if any of you would recommend a particular company or position you might be aware of, ping me! :) I hope I can make it to the BayPIGgies meeting in August. I would be very happy to meet some of you. Best regards, -- Alex twitter.com/alexconrad linkedin.com/in/alexconrad From bdbaddog at gmail.com Thu Jul 1 18:01:07 2010 From: bdbaddog at gmail.com (William Deegan) Date: Thu, 1 Jul 2010 09:01:07 -0700 Subject: [Baypiggies] baypiggies.net down In-Reply-To: <20100701123447.GA1954@panix.com> References: <20100701123447.GA1954@panix.com> Message-ID: That'd be me. Restarting now. -Bill On Thu, Jul 1, 2010 at 5:34 AM, Aahz wrote: > I forget who has access to fix it -- I'm getting HTTP 502. > -- > Aahz (aahz at pythoncraft.com) <*> > http://www.pythoncraft.com/ > > "If you don't know what your program is supposed to do, you'd better not > start writing it." --Dijkstra > _______________________________________________ > 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 ziade.tarek at gmail.com Thu Jul 1 18:55:23 2010 From: ziade.tarek at gmail.com (=?ISO-8859-1?Q?Tarek_Ziad=E9?=) Date: Thu, 1 Jul 2010 18:55:23 +0200 Subject: [Baypiggies] Moving to the Valley In-Reply-To: References: Message-ID: On Thu, Jul 1, 2010 at 5:31 PM, Alexandre Conrad wrote: > Dear BayPIGgies, > > This is my first thread to this list, so let me introduce myself: > > My name is Alexandre Conrad and I'm 29 years old. I'm a US and French > citizen. I live in Paris France and currently work at a French company > as a Python developer. And I'm moving in the Valley in the beginning > of August, somewhere between San Francisco and Santa Clara (maybe Palo > Alto). New life, new people to meet, new friends to make, new stories > to tell. It's all *very* exciting. > > I started programming with Python, back in 2003 and have been doing > most of my development with it since then. I've been promoting Python > through my support to the AFPy, the French Python Association presided > by Tarek Ziad?, by going to diverse events around France. And moving > in the Bay Area won't stop my quest to spreading Python karma. :) > > Of course, as I'm preparing my move, among other things, I'm starting > to seek for a job in SF or the Valley. I monitor Python positions > through job boards and have a few hints. But if any of you would > recommend a particular company or position you might be aware of, ping > me! :) > > I hope I can make it to the BayPIGgies meeting in August. I would be > very happy to meet some of you. We will miss you in Paris :') Have fun in the bay ! Tarek -- Tarek Ziad? | http://ziade.org From brooke at vmware.com Thu Jul 1 19:00:46 2010 From: brooke at vmware.com (Brooke Anderson (c)) Date: Thu, 1 Jul 2010 10:00:46 -0700 Subject: [Baypiggies] Moving to the Valley In-Reply-To: References: Message-ID: <7A926838BDAD8C4AB73FB849478ED3932B963023E3@EXCH-MBX-1.vmware.com> Hi Alexandre, Welcome to the States!! I am an internal recruiter with VMware. We are seeking Web developers for our Palo Alto office. Please let me know when you're available to speak. Respectfully, Brooke L. Anderson R&D Sourcing 512.568.3741 -----Original Message----- From: baypiggies-bounces+brooke=vmware.com at python.org [mailto:baypiggies-bounces+brooke=vmware.com at python.org] On Behalf Of Alexandre Conrad Sent: Thursday, July 01, 2010 10:31 AM To: baypiggies at python.org Subject: [Baypiggies] Moving to the Valley Dear BayPIGgies, This is my first thread to this list, so let me introduce myself: My name is Alexandre Conrad and I'm 29 years old. I'm a US and French citizen. I live in Paris France and currently work at a French company as a Python developer. And I'm moving in the Valley in the beginning of August, somewhere between San Francisco and Santa Clara (maybe Palo Alto). New life, new people to meet, new friends to make, new stories to tell. It's all *very* exciting. I started programming with Python, back in 2003 and have been doing most of my development with it since then. I've been promoting Python through my support to the AFPy, the French Python Association presided by Tarek Ziad?, by going to diverse events around France. And moving in the Bay Area won't stop my quest to spreading Python karma. :) Of course, as I'm preparing my move, among other things, I'm starting to seek for a job in SF or the Valley. I monitor Python positions through job boards and have a few hints. But if any of you would recommend a particular company or position you might be aware of, ping me! :) I hope I can make it to the BayPIGgies meeting in August. I would be very happy to meet some of you. Best regards, -- Alex twitter.com/alexconrad linkedin.com/in/alexconrad _______________________________________________ Baypiggies mailing list Baypiggies at python.org To change your subscription options or unsubscribe: http://mail.python.org/mailman/listinfo/baypiggies From rami.chowdhury at gmail.com Thu Jul 1 19:53:15 2010 From: rami.chowdhury at gmail.com (Rami Chowdhury) Date: Thu, 1 Jul 2010 10:53:15 -0700 Subject: [Baypiggies] Moving to the Valley In-Reply-To: References: Message-ID: <20100701175315.GA2267@tigris> Welcome Alex! While I won't be around to greet you personally in August I'm sure you'll have a great time diving into the Python community here :-) Best of luck, Rami On 2010-07-01 17:31, Alexandre Conrad wrote: > Dear BayPIGgies, > > This is my first thread to this list, so let me introduce myself: > > My name is Alexandre Conrad and I'm 29 years old. I'm a US and French > citizen. I live in Paris France and currently work at a French company > as a Python developer. And I'm moving in the Valley in the beginning > of August, somewhere between San Francisco and Santa Clara (maybe Palo > Alto). New life, new people to meet, new friends to make, new stories > to tell. It's all *very* exciting. > > I started programming with Python, back in 2003 and have been doing > most of my development with it since then. I've been promoting Python > through my support to the AFPy, the French Python Association presided > by Tarek Ziad?, by going to diverse events around France. And moving > in the Bay Area won't stop my quest to spreading Python karma. :) > > Of course, as I'm preparing my move, among other things, I'm starting > to seek for a job in SF or the Valley. I monitor Python positions > through job boards and have a few hints. But if any of you would > recommend a particular company or position you might be aware of, ping > me! :) > > I hope I can make it to the BayPIGgies meeting in August. I would be > very happy to meet some of you. > > Best regards, > -- > Alex > twitter.com/alexconrad > linkedin.com/in/alexconrad > _______________________________________________ > Baypiggies mailing list > Baypiggies at python.org > To change your subscription options or unsubscribe: > http://mail.python.org/mailman/listinfo/baypiggies ---- Rami Chowdhury "Passion is inversely proportional to the amount of real information available." -- Benford's Law of Controversy +1-408-597-7068 / +44-7875-841-046 / +88-01819-245544 From girish at nimbula.com Thu Jul 1 21:11:22 2010 From: girish at nimbula.com (Girish Kalele) Date: Thu, 01 Jul 2010 12:11:22 -0700 Subject: [Baypiggies] [JOB] Software Engineer, Cloud Fabric Team, Nimbula Inc. Message-ID: <4C2CE85A.6090004@nimbula.com> Nimbula (Menlo Park, CA, US) *Job Description* Software Engineer, Cloud Fabric Team * You will be expected to develop and improve major aspects the Nimbula Operating System. * You will build production level code, achieving a good balance between scalability and robustness. * You will apply open-source solutions and other tools to ensure that the fabric of Nimbula products have ironclad reliability. *Qualifications* * Expert Python skills. * Deep understanding of networking fundamentals. * Experience with Twisted or other asynchronous networking frameworks is desirable. * Extensive Linux experience, both command-line and system level knowledge. We need a software programmer, not a tools/sysadmin engineer. * Degree in Computer Science a must. *About Us* Nimbula, the Cloud Operating System company, was founded by the team that conceived and developed the seminal public cloud leader, Amazon EC2. Their experience gained managing infrastructure at massive scale gives Nimbula a huge technical advantage. Virtualization is a key component in every corporate IT strategy and is a multi-billion dollar market with hundreds of products. Still, most mainstream businesses cannot really take advantage of the flexibility, scalability and operational efficiencies of the public cloud because mainstream business demands control, security and trust. Nimbula provides the Coud Operating System to merge these assets for its customers seamlessly and at scale. We are well-funded by Sequoia and VMware. Find us in Menlo Park, California, and Cape Town, South Africa. *Contact Info* * *Email* jobs at nimbula.com -------------- next part -------------- An HTML attachment was scrubbed... URL: From roderick at sanfransystems.com Thu Jul 1 21:34:08 2010 From: roderick at sanfransystems.com (Roderick Llewellyn) Date: Thu, 1 Jul 2010 12:34:08 -0700 Subject: [Baypiggies] Baypiggies Digest, Vol 57, Issue 1 References: Message-ID: Hi R Aubrey! While I've touched on some of these topics before, I'll try to answer your questions more specifically. Those who have read my job-related postings before can probably skip over this! It is very difficult to "reboot" your career into programming once you have been away from it for a few years. Technologies change so rapidly that I found after even 1 or 2 years away from programming that many of the acronyms were unfamiliar to me. Virtually all head-hunter types, and many principals, judge people first on the "skills matrix". This is a list of what skills they seek and how you rank on each one. This process highly rewards those who have been using the technologies the employer is using, but does not at all reward overall experience, engineering ability, creativity, etc. It's like the difference between giving students a standardized test with multiple choice questions versus having students write an essay or prove a theorem. The matrx approach is the lowest possible overhead for the employer or recruiter, so especially in difficult economic times during which there are many candidates for each position, that approach dominates. So one conclusion is forget head-hunters. If you do work with one, ask him or her about how many people at your age have they placed in the last 2 years say. If they're honest they will tell you: zero. If they are unwilling to give you any clue, you can also assume the number is zero lol. I found that some recruiters would finally come clean and say things like "we don't know what to do with you" or the like. What that means is that they are set up to find jobs for people with zero to 10 years of experience (i.e. what I would call a "kid", but these days somebody with 5-8 years experience is called "a very senior developer"... I find that funny), but beyond that is out of their league. They don't really want to waste their time with somebody they know perfectly well has no chance of getting hired. I found in my search that web services companies would essentially never hire anybody over 50, and I finally stopped trying. Same goes for social networking, companies building games running on Facebook, etc. These companies' development departments are staffed mostly by 20-somethings, with maybe a 30-something engineering manager. Said manager doesn't want somebody 15 or 20 years older than him/herself in the department and may be worried about cultural conflicts with the team. If an employment ad mentions stuff like "we go on snowboarding trips", forget it; these are carefully designed messages to tell Baby Boomers to not even bother applying, while avoiding any legal risks which would accompany more explicit discrimination. So I would avoid web services companies unless you have deep experience in that area. Look for more specialized firms that will be attracted to somebody with decades of experience as opposed to just out of college. These are the firms, few in number these days, who are not mainly looking for a good technician to download a bunch of freeware off the web and wire it together. They don't need somebody with 30 years XP to do that and so they will not hire you for that kind of job. Look for firms doing more complex development where the ratio of new code to downloaded code is high. As far as the question of "does everyone end up in management" goes, this is a good one. I remember way back when I worked for DEC (Digital Equip. Corp, if anybody remembers them lol). I was just a typical just-out-of-college programmer. They had a policy of not wanting every programmer to aspire to management as a way of getting higher pay (programmers were not particularly well paid at that time). So they claimed that you could make just as much money following the technical track as by following the management track. There was, however, an unstated catch: at the top levels where pay got good, there were a LOT more management positions than there were technical positions. Sure Chief Scientist paid plenty. But they might have had 3 of those, but they might have had 50 managers who got paid just as much (I'm making up these numbers, illustration only!). Also you're dealing with the issue that there is a belief that technology is a young man's game and that there might even be something a little wrong with you if you still want to develop software at age 50. I myself don't have the proper personality for management, but I'm a very good engineer, so I've tried to stay with that. As I've mentioned in a prior post, you may have much more luck in contracting (consulting) than in full time employment. Again the web services type firms won't hire you as a contractor either; why should they when there is no shortage of 20-somethings looking for that kind of work? And who will often work absurdly long hours for small stock grants... about which said employees often never inquire as to what percentage of the firm those grants represent? As a contractor, your "fitting in socially" (e.g.., do you listen to the same music? do you snowboard, skateboard, surfboard? are your glasses properly rectangular? lol) just simply won't arise. I was able, though it took almost 3 years, to find software development work. I was continually amazed that most firms did not value my 30+ years XP as valuable and in fact regarded it as a negative. But it can be done. Be prepared for a lengthy process, sending out many resumes, most of which will be completely ignored. Too sum up: Look for contracting opportunities. Don't waste your time with recruiters. Don't bother with web services, gaming, or social networking firms. When you find the right firm, it's amazing how easily and rapidly everything will go. They won't make you take stupid tests, ask you ridiculous questions about rocks and boats and swimming pools, force you to interact with machines before any human really talks to you, etc. My current (contracting) position required 2 phone interviews totalling less than 90 minutes. The third phone call was with the CTO who told me that he had confidence in his people, that they liked what they heard from me, and that I was in, and the purpose for this call was for him to answer MY questions! They told me that they knew perfectly well that a really good programmer can learn a new language in 3 weeks, in other words, I was being judged for my abilities not whether I had exactly the skill set they needed. We signed a contract 2 days later. If they are serious, they will move at light-speed. Look for that kind of position. The more barriers and filters they throw in your way, the less interested they are in you particularly, and probably the less confident they are in their own abilities to judge people; thus they want a computer program to pass on you first. You (and I) have >30 years experience - and they want you to take a trivial programming test? It's almost insulting. I can contrast this to the firm Fortify (I don't mind naming names!). I was well-qualified for the position because I had worked at Coverity which was in the same general space and I'm strong in compiler theory which the job was all about. I found out about it thru a recruiter named Debra Rosen (debhunters), who found me on LinkedIn. It took over 1 month for them to get around to bringing me in for an interview. Said interview lasted most of the day. I was told at the start that they would cut the interview short at any point if any of their people who were interviewing me nixed me. I apparently got thru the entire process without a blackball. I was told at the end that it all looked good and I would hear back from them in a few days. What was the result? I never heard back from them, nor from the recruiter. I emailed the recruiter about this, and she never replied (needless to say, I would never work with her again).... typical rude American business practices. But this shows you the contrast between a firm that's excited about you and hot to trot and confident in their ability to pick a winner for the position, and one that's dilly-dallying around and waiting for Superman to walk in thru the door. One other little thing. I can't really judge exactly how helpful it was in my case, but I think it's worth pursuing: use LinkedIn, and get plenty references already stored in your LinkedIn profile. Many firms and internal recruiters scan this site. If you have references already stored, the firms don't have to ask you for them and don't have to pester your former colleagues. I've gotten many calls from internal recruiters due to it. None have led to a job; these recruiters cast a wide net, and typically the next stage after talking to them is a very tiny hole (i..e, the recruiters are rewarded for coming up with many potential candidates, almost all of which will be weeded out in the next stage... so don't get too excited when an internal recruiter contacts you... typically they do a very crude keyword search to match their requirements against your profile and you have to judge whether pursuing said position is likely to be a waste of time - it usually is). For all it's worth, that's my advice.... (of course, since I don't know you particularly there may be parts of what I say that are simply not applicable, your mileage may vary, etc). Good luck! - Roderick Llewellyn ----- Original Message ----- From: To: Sent: Thursday, July 01, 2010 3:00 AM Subject: Baypiggies Digest, Vol 57, Issue 1 > 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. career advice? (R Aubrey) > > > ---------------------------------------------------------------------- > > Message: 1 > Date: Wed, 30 Jun 2010 23:21:16 -0700 > From: R Aubrey > To: baypiggies at python.org > Subject: [Baypiggies] career advice? > Message-ID: > > Content-Type: text/plain; charset="iso-8859-1" > > Hello, Bay Piggies. > > > I could use some career advice: where do people go when they hit middle > age? > I moved on from programming as a day job almost five years ago, into a > technologist/architect/evangelist/product management/"whatever needs done > for the business" kind of role reporting to the general manager. And > while > I am very glad to have learned a great deal about the business side of the > software business, now I am sort of stuck in not having a clear place to > advance to. Time to reboot the career, perhaps, but a good part of my > problem is figuring out where to look for maximum overlap between what > I've > enjoyed doing and what positions are available. > > If you really enjoy python programming and find side projects just to have > an excuse to "prototype" something, but you also want to stay very close > to > the product management / business side of things because you've become > convinced the software is just one part of a successful company: where do > you go? Does everyone end up in management? > > > Oh, and if my current employer has figured out this is me, new account > notwithstanding, I'm Officially Very Happy and of course will use any > advice > just to better search internal postings, and be of more value here. :) > > > --- > My husband, in common with a lot of people his age, is fifty. For how > long > are we to put up with these things? > -- Monty Python > -------------- next part -------------- > An HTML attachment was scrubbed... > URL: > > > ------------------------------ > > _______________________________________________ > 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 57, Issue 1 > ***************************************** > > From jeff.enderwick at gmail.com Thu Jul 1 22:13:43 2010 From: jeff.enderwick at gmail.com (Jeff Enderwick) Date: Thu, 1 Jul 2010 13:13:43 -0700 Subject: [Baypiggies] career advice? In-Reply-To: References: Message-ID: Early stage startups & small companies can give both business and technical decision making/involvement in a single role. Marginally more job "risk" (more likely the real difference is lower pay, as layoffs happen everywhere). Upside potential is $huge$ but not likely. Fun seems to almost be guaranteed if you are working with good people. On Wed, Jun 30, 2010 at 11:21 PM, R Aubrey wrote: > Hello, Bay Piggies. > > > I could use some career advice: where do people go when they hit middle > age? I moved on from programming as a day job almost five years ago, into a > technologist/architect/evangelist/product management/"whatever needs done > for the business" kind of role reporting to the general manager. And while > I am very glad to have learned a great deal about the business side of the > software business, now I am sort of stuck in not having a clear place to > advance to. Time to reboot the career, perhaps, but a good part of my > problem is figuring out where to look for maximum overlap between what I've > enjoyed doing and what positions are available. > > If you really enjoy python programming and find side projects just to have > an excuse to "prototype" something, but you also want to stay very close to > the product management / business side of things because you've become > convinced the software is just one part of a successful company: where do > you go? Does everyone end up in management? > > > Oh, and if my current employer has figured out this is me, new account > notwithstanding, I'm Officially Very Happy and of course will use any advice > just to better search internal postings, and be of more value here. :) > > > --- > My husband, in common with a lot of people his age, is fifty. For how long > are we to put up with these things? > -- Monty Python > > _______________________________________________ > 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 aleax at google.com Thu Jul 1 23:48:04 2010 From: aleax at google.com (Alex Martelli) Date: Thu, 1 Jul 2010 14:48:04 -0700 Subject: [Baypiggies] career advice? In-Reply-To: References: Message-ID: On Wed, Jun 30, 2010 at 11:21 PM, R Aubrey wrote: > Hello, Bay Piggies. > > > I could use some career advice: where do people go when they hit middle age? Me? I moved (a "lateral step" across career ladders) from (albeit highly technical) management to essentially-full-time programming (where I'm of course still expected to exert some level of leadership, but essentially by exhortation, evangelization and example -- no actual management, no budget to handle, not even [so far, fingers crossed;-)] formal project tech lead duties). But then, I've been weaving back and forth between highly-technical management and programming-cum-leadership for most of my career, so I don't think it's connected to middle age (I believe I'm "officially" middle age, since I'm less than twice as old as my first-born child;-). I've also been weaving back and forth between Europe and the US, but _that_ may be over (perhaps in connection with middle age, I really feel more and more like putting down some roots some place -- at least, say, pick just 1 continent;-). > If you really enjoy python programming and find side projects just to have > an excuse to "prototype" something, but you also want to stay very close to > the product management / business side of things because you've become > convinced the software is just one part of a successful company: where do > you go? ?Does everyone end up in management? My current employer, Google, just happens to have some positions that seem tailor-made for this urge of yours -- especially, as it happens, in the group I'm with now (and have been for a couple years -- cluster management software was what I did before that), PSO (Partner Solutions Organization) -- a peculiar group of engineers and other highly technical professionals which, however, reports up within the Sales org, not Engineering. We do have software engineers, like me, but also positions known as Partner Technology Managers (PTM) and Technical Account Managers (TAM) -- don't be mislead by the "manager" part of the role name, just like in "project management" it's not (necessarily) connected with managing people and budgets;-). A senior PTM who joined Google last year (and with whom I have the good luck of working pretty closely), for example, is an MBA who just before joining Google used to work in upper management in a REIT... and came to our attention by qualifying for the finals of the Google Code Jam. MBA or not, what he did in his spare time was hack away at C++ just for fun... and pretty darn well, too, Code Jam is one tough context. Now I believe he hasn't written a line of C++ in months... because at Google he met Python (one of the two core languages used in PSO, the other one being Java -- C++ is a rather occasional need, only few PSOers actually know it, while everybody knows and uses at least one of Python and Java) and (of course) fell in love. He received his Python Readability Approval last month (which means that, though his main job is to do strategy, business, product-management, etc, he's contributed enough high-quality Python code to the code base to have proven his mastery of Python itself and Google's style guide); I know that on the side he's taught himself R, the statistics language (in Business Intelligence, where both I and he work, we do a lot of statistics of course, side by side with other data mining approaches etc -- pity R is so clunky;-), as well as many google internal technologies. Anyway, to summarize, there _are_ opportunities that meld the business, PM, _and_ development side of things (and not just for people of middle age either;-) -- not just at startups, but also at some larger companies (at least ones that try to keep what's possible of the startup ethos, AND strongly reject the commonly held myth that "those who can, do -- those who can't, manage";-). (and, BTW, I'm always glad to receive private email with the resumes of baypiggies members interested in job opportunities at Google, and possibly refer them for interviewing if there appears to be a fit -- in part, for selfish reasons, since [a] Google's future growth depends in part on continuing to hire great people, AND [b] referrers of people who get hired are directly rewarded;-). Alex From pokorny at slide.com Fri Jul 2 00:02:04 2010 From: pokorny at slide.com (David Pokorny) Date: Thu, 01 Jul 2010 15:02:04 -0700 Subject: [Baypiggies] Web-Based Internal Tools Software Developer at Slide in San Francisco, CA Message-ID: <4C2D105C.7090001@slide.com> Hello Pythonistas, The Slide tools team is hiring! This is a great chance to learn from the best in a supportive environment and get a solid foundation in python development at a successful start-up. I am a developer on the tools team and am happy to answer any questions you have about Slide or the job. --David ---------------------------------------------------------------------------- Slide builds engaging communities driven by user-created content. We aim to empower virtual entrepreneurship by enabling thousands, if not millions, of our users to build wealth through our products. We offer users virtual "building blocks" with which to create their own amazing content to show off to friends, or trade and sell with others in the community. We define true success as our users becoming profitable. Our portfolio of products include fun applications and virtual communities such as Slideshow, SuperPoke!, SuperPoke! Pets, SPP! Ranch, Top Friends, and FunSpace. Slide was founded in 2005 by PayPal co-founder Max Levchin and is backed by Mayfield Fund, Blue Run Ventures, Khosla Ventures and Founders Fund. Responsibilities: * We are looking to add a dynamic, self-motivated software engineer to help us build web-based internal tools to analyze and track our site traffic and user behaviors. Aside from solid OOD and programming skills, this position requires superior written and verbal communications skills, problem solving skills, and ability to take ownership and work with minimum guidelines in a fast pace environment. This position offers excellent opportunity for growth within a later-stage, successful start-up, and you will be working with some of the Bay Area's smartest software engineers! Requirements: * BS in Computer Science or relevant work experience * 0-3+ years of industry experience, will consider fresh graduates with strong internships, co-op or open source contributions * Strong object oriented skills to design and implement complex object-oriented abstractions * Demonstrated skills in front-end web development, expertise in JavaScript/HTML/CSS, including familiarity with JavaScript frameworks (jQuery, MochiKit, YUI, Dojo, etc.), experience contributing to UI design a plus * Experience with Python, Ruby, C++, or other object-oriented language to develop backend-business logic layer * Experience writing fast SQL queries to handle large volume of data a plus * Strong analytical and problem solving skills, attention to detail, desire to learn, excel, and contribute Bonus: * HTML, JavaScript * SQL * Likes to build UI If you are interested in this position, please apply at: http://www.jobscore.com/jobs/slide/webbasedinternaltoolssoftwaredeveloper/aLfbTA6POr3QH9eJe4aGWH From aleax at google.com Fri Jul 2 00:12:39 2010 From: aleax at google.com (Alex Martelli) Date: Thu, 1 Jul 2010 15:12:39 -0700 Subject: [Baypiggies] [JOB] Software Engineer, Cloud Fabric Team, Nimbula Inc. In-Reply-To: <4C2CE85A.6090004@nimbula.com> References: <4C2CE85A.6090004@nimbula.com> Message-ID: On Thu, Jul 1, 2010 at 12:11 PM, Girish Kalele wrote: ... > Degree in Computer Science a must. Heh, pity, my degree was in EE (even though my wikipedia entry used to erroneously describe me as a "computer scientist", even that was recently and blissfully corrected to "computer engineer";-). "a must" means that you don't care what I may have done in the thirty years since I got that MSEE, of course (no company worth working for would ever call something "a must" if it isn't a MUST, right?-). I will refrain from actually expressing my opinion about this kind of CS-snobism (which unfortunately seems to pervade so many places these days) as this is a family-friendly mailing list and I doubt I could keep my terminology within those bounds;-). Alex From john.graves at singularityu.org Fri Jul 2 02:31:32 2010 From: john.graves at singularityu.org (John Graves) Date: Thu, 1 Jul 2010 17:31:32 -0700 Subject: [Baypiggies] Singularity University and Open Allure Message-ID: Dear Bay Area Python User Group folks: 80 graduate students from around the planet have assembled at NASA Ames this summer for a 10 week program (Singularity University GSP10) which aims to use exponentially developing technologies to address some of the world's Grand Challenges including Food, Water, Energy, Upcycling and Space. Many of the students feel Education also deserves to be a priority project because of the leverage you get from having smarted people working to solve the world's problems. As it happens, Python may be able to play a key role in realizing this vision. I'm one of the GSP10 students from New Zealand. The open source Open Allure project ( http://openallureds.org ) which is the subject of my PhD research is Python-based. Open Allure is a new voice-and-vision enabled educational software which supports collaborative content creation via simple scripts which can be posted on any blog or wiki page. Think of it as a new kind of web browser that takes the computer OUT of the user interface -- you communicate THROUGH the computer asynchronously without using the mouse or keyboard: you talk, the computer listens, talks back and watches for gestures (and ultimately facial expressions) using your Skype hardware -- a webcam and headset microphone. If you'd like to learn more about this (and maybe come to a cool party tonight Thursday, 1 July) give me a call on 650-417-4149. I hope to attend your next meeting and would be very interested in an opportunity to talk about Open Allure. Cheers, John Graves GSP10 Student Singularity University http://singularityu.org From jeff.enderwick at gmail.com Fri Jul 2 05:09:55 2010 From: jeff.enderwick at gmail.com (Jeff Enderwick) Date: Thu, 1 Jul 2010 20:09:55 -0700 Subject: [Baypiggies] [JOB] Software Engineer, Cloud Fabric Team, Nimbula Inc. In-Reply-To: References: <4C2CE85A.6090004@nimbula.com> Message-ID: Alex, My guess is that the CS degree "must" was their way of saying that they're looking for a person who is educated w/r/t core CS topics. I'm making this guess based on the preceding line about not needing a "tools/sysadmin engineer". Maybe w/out the CS degree requirement stated, they get a flood of that. Go ahead and apply; I'll bet they let you interview ;-). Jeff On Thu, Jul 1, 2010 at 3:12 PM, Alex Martelli wrote: > On Thu, Jul 1, 2010 at 12:11 PM, Girish Kalele wrote: > ... > > Degree in Computer Science a must. > > Heh, pity, my degree was in EE (even though my wikipedia entry used to > erroneously describe me as a "computer scientist", even that was > recently and blissfully corrected to "computer engineer";-). "a must" > means that you don't care what I may have done in the thirty years > since I got that MSEE, of course (no company worth working for would > ever call something "a must" if it isn't a MUST, right?-). > > I will refrain from actually expressing my opinion about this kind of > CS-snobism (which unfortunately seems to pervade so many places these > days) as this is a family-friendly mailing list and I doubt I could > keep my terminology within those bounds;-). > > > Alex > _______________________________________________ > 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 brent.tubbs at gmail.com Fri Jul 2 05:12:35 2010 From: brent.tubbs at gmail.com (Brent Tubbs) Date: Thu, 1 Jul 2010 20:12:35 -0700 Subject: [Baypiggies] Moving to the Valley In-Reply-To: <20100701175315.GA2267@tigris> References: <20100701175315.GA2267@tigris> Message-ID: Welcome to the bay area Alex! Brent On Thu, Jul 1, 2010 at 10:53 AM, Rami Chowdhury wrote: > Welcome Alex! > > While I won't be around to greet you personally in August I'm sure you'll > have a great time diving into the Python community here :-) > > Best of luck, > Rami > > On 2010-07-01 17:31, Alexandre Conrad wrote: >> Dear BayPIGgies, >> >> This is my first thread to this list, so let me introduce myself: >> >> My name is Alexandre Conrad and I'm 29 years old. I'm a US and French >> citizen. I live in Paris France and currently work at a French company >> as a Python developer. And I'm moving in the Valley in the beginning >> of August, somewhere between San Francisco and Santa Clara (maybe Palo >> Alto). New life, new people to meet, new friends to make, new stories >> to tell. It's all *very* exciting. >> >> I started programming with Python, back in 2003 and have been doing >> most of my development with it since then. I've been promoting Python >> through my support to the AFPy, the French Python Association presided >> by Tarek Ziad?, by going to diverse events around France. And moving >> in the Bay Area won't stop my quest to spreading Python karma. :) >> >> Of course, as I'm preparing my move, among other things, I'm starting >> to seek for a job in SF or the Valley. I monitor Python positions >> through job boards and have a few hints. But if any of you would >> recommend a particular company or position you might be aware of, ping >> me! :) >> >> I hope I can make it to the BayPIGgies meeting in August. I would be >> very happy to meet some of you. >> >> Best regards, >> -- >> Alex >> twitter.com/alexconrad >> linkedin.com/in/alexconrad >> _______________________________________________ >> Baypiggies mailing list >> Baypiggies at python.org >> To change your subscription options or unsubscribe: >> http://mail.python.org/mailman/listinfo/baypiggies > ---- > Rami Chowdhury > "Passion is inversely proportional to the amount of real information available." > -- Benford's Law of Controversy > +1-408-597-7068 / +44-7875-841-046 / +88-01819-245544 > _______________________________________________ > Baypiggies mailing list > Baypiggies at python.org > To change your subscription options or unsubscribe: > http://mail.python.org/mailman/listinfo/baypiggies > From aahz at pythoncraft.com Fri Jul 2 05:38:32 2010 From: aahz at pythoncraft.com (Aahz) Date: Thu, 1 Jul 2010 20:38:32 -0700 Subject: [Baypiggies] [JOB] Software Engineer, Cloud Fabric Team, Nimbula Inc. In-Reply-To: References: <4C2CE85A.6090004@nimbula.com> Message-ID: <20100702033832.GB26765@panix.com> On Thu, Jul 01, 2010, Jeff Enderwick wrote: > > Alex, > > My guess is that the CS degree "must" was their way of saying that > they're looking for a person who is educated w/r/t core CS topics. I'm > making this guess based on the preceding line about not needing a > "tools/sysadmin engineer". Maybe w/out the CS degree requirement > stated, they get a flood of that. Alex's point was that they are phrasing themselves incorrectly; if they can't write a proper spec for a job ad, how can they write correct code? It would be simple to change the job ad to say "CS degree or equivalent knowledge". -- Aahz (aahz at pythoncraft.com) <*> http://www.pythoncraft.com/ "If you don't know what your program is supposed to do, you'd better not start writing it." --Dijkstra From jeff.enderwick at gmail.com Fri Jul 2 06:03:33 2010 From: jeff.enderwick at gmail.com (Jeff Enderwick) Date: Thu, 1 Jul 2010 21:03:33 -0700 Subject: [Baypiggies] [JOB] Software Engineer, Cloud Fabric Team, Nimbula Inc. In-Reply-To: <20100702033832.GB26765@panix.com> References: <4C2CE85A.6090004@nimbula.com> <20100702033832.GB26765@panix.com> Message-ID: Aahz, I wouldn't make the leap from not being lawyerly about the job requirements to not being able to write correct code! I think all of us who read it (even those who don't have CS sheepskin) realized that equivalent knowledge would likely be gladly accepted in lieu. Finding great people is so hard! Anyone who is overly strict on that sort of requirement is sure to suffer. Jeff On Thu, Jul 1, 2010 at 8:38 PM, Aahz wrote: > On Thu, Jul 01, 2010, Jeff Enderwick wrote: > > > > Alex, > > > > My guess is that the CS degree "must" was their way of saying that > > they're looking for a person who is educated w/r/t core CS topics. I'm > > making this guess based on the preceding line about not needing a > > "tools/sysadmin engineer". Maybe w/out the CS degree requirement > > stated, they get a flood of that. > > Alex's point was that they are phrasing themselves incorrectly; if they > can't write a proper spec for a job ad, how can they write correct code? > > It would be simple to change the job ad to say "CS degree or equivalent > knowledge". > -- > Aahz (aahz at pythoncraft.com) <*> > http://www.pythoncraft.com/ > > "If you don't know what your program is supposed to do, you'd better not > start writing it." --Dijkstra > _______________________________________________ > 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 aleax at google.com Fri Jul 2 06:49:50 2010 From: aleax at google.com (Alex Martelli) Date: Thu, 1 Jul 2010 21:49:50 -0700 Subject: [Baypiggies] [JOB] Software Engineer, Cloud Fabric Team, Nimbula Inc. In-Reply-To: References: <4C2CE85A.6090004@nimbula.com> <20100702033832.GB26765@panix.com> Message-ID: On Thu, Jul 1, 2010 at 9:03 PM, Jeff Enderwick wrote: > Aahz, > I wouldn't make the leap from not being lawyerly about the job requirements > to not being able to write correct code! I think all of us who read it (even > those who don't have CS sheepskin) realized that equivalent knowledge would > likely be gladly accepted in lieu. Finding great people is so hard! Anyone > who is overly strict on that sort of requirement is sure to suffer. If they're serious about this hiring and its importance, and if you're right that what they say is A MUST (*VERY* strong wording!) is not indeed a must, they're pretty weird people -- why did they deliberately choose that (you assume incorrect) wording?!. By far the most common wording includes, as Aahz mentioned, "or equivalent experience", after all -- IF, that is, one IS willing to evaluate candidates with a different degree but lots of experience. I'm saying they "deliberately chose" that odious-to-all-other-degree-holders wording, because of the assumption that they ARE serious about the importance of this hire, and therefore must have given it all due care and attention. If they *accidentally* pick wrong (and odious;-) wording DESPITE paying very careful attention to what they're saying (because they consider this hire important), then they're even weirder than I hypothesized above. All in all, I think that your assumption that they don't really mean what they say (despite saying it with so precise and forceful a choice of words), one way or another, has to be extremely insulting to them -- even more than I would like to be, and that's saying something;-). Alex From grayarea at reddagger.org Fri Jul 2 08:29:44 2010 From: grayarea at reddagger.org (John Withers) Date: Thu, 01 Jul 2010 23:29:44 -0700 Subject: [Baypiggies] [JOB] Software Engineer, Cloud Fabric Team, Nimbula Inc. In-Reply-To: References: <4C2CE85A.6090004@nimbula.com> <20100702033832.GB26765@panix.com> Message-ID: <1278052184.13515.97.camel@Frank-Brain> On Thu, 2010-07-01 at 21:49 -0700, Alex Martelli wrote: > On Thu, Jul 1, 2010 at 9:03 PM, Jeff Enderwick wrote: > > Aahz, > > I wouldn't make the leap from not being lawyerly about the job requirements > > to not being able to write correct code! I think all of us who read it (even > > those who don't have CS sheepskin) realized that equivalent knowledge would > > likely be gladly accepted in lieu. Finding great people is so hard! Anyone > > who is overly strict on that sort of requirement is sure to suffer. > > If they're serious about this hiring and its importance, and if you're > right that what they say is A MUST (*VERY* strong wording!) is not > indeed a must, they're pretty weird people -- why did they > deliberately choose that (you assume incorrect) wording?!. By far the The same reason many people do I am betting, it cuts down slightly on the insane avalanche of resumes that come in. It won't cut down on the people who send a resume to every job in a posting category, but it might cut down slightly on the well-intentioned but misguided job applicant. I think the line about not needing a "tools/sysadmin engineer" points pretty clearly to this. The reason I say this is that I am that guy. I have no comp sci degree. I have no engineering degree. But since there isn't actually a degree standard for 'liberal arts guy who got really good at this over 25 years working on it' I will often apply to comp sci required jobs. And the vast majority of the jobs that say comp sci on them I can do and I am positive I can do all the ones I apply for, or I wouldn't apply. I haven't disappointed an employer yet in that capacity. But there is that thin percentage of jobs that require stuff I don't have the maths comfort for. I might be able to struggle through, but I don't want to waste my or an employers time finding out. I have a hunch they are pretty sure this is one of those jobs and want to weed out the legions of people like me but who aren't quite so discriminating about what they are willing to apply to. Dunno, that is just what it looks to me guessing. And I am with Jeff in that I am pretty willing to assume for the reasons I outlined above that they wouldn't have a problem with your engineering degree. Well, your case is somewhat special because of name recognition, but let's say applicable talent and engineering degree in general. -john From jeff.enderwick at gmail.com Fri Jul 2 08:40:41 2010 From: jeff.enderwick at gmail.com (Jeff Enderwick) Date: Thu, 1 Jul 2010 23:40:41 -0700 Subject: [Baypiggies] [JOB] Software Engineer, Cloud Fabric Team, Nimbula Inc. In-Reply-To: References: <4C2CE85A.6090004@nimbula.com> <20100702033832.GB26765@panix.com> Message-ID: Maybe it was a carefully crafted test to see if job seekers without CS degrees were sharp enough to surmise that equivalent knowledge would be likely acceptable. Very smart; effectively implementing a filter by *not* adding Aahz' missing text (I smell a business process patent for that HR manager!) ;-). In my very limited experience, hiring managers don't spend the time to engineer these requirements to such a degree. If you see a job posting that you like then you just go for it. If they're smart, then they hire you anyway. If they're stiff, then you are likely better off not being there. I may have a skewed sample set, but it seems that every (non-goog?) job solicitation posted to this list gets the crap beat out of it, with the biggest magnet being that series of Chomp postings (okay, I admit it - I took part in those :-). In all seriousness, these may be good companies/people trying to hire? $.02... On Thu, Jul 1, 2010 at 9:49 PM, Alex Martelli wrote: > On Thu, Jul 1, 2010 at 9:03 PM, Jeff Enderwick > wrote: > > Aahz, > > I wouldn't make the leap from not being lawyerly about the job > requirements > > to not being able to write correct code! I think all of us who read it > (even > > those who don't have CS sheepskin) realized that equivalent knowledge > would > > likely be gladly accepted in lieu. Finding great people is so hard! > Anyone > > who is overly strict on that sort of requirement is sure to suffer. > > If they're serious about this hiring and its importance, and if you're > right that what they say is A MUST (*VERY* strong wording!) is not > indeed a must, they're pretty weird people -- why did they > deliberately choose that (you assume incorrect) wording?!. By far the > most common wording includes, as Aahz mentioned, "or equivalent > experience", after all -- IF, that is, one IS willing to evaluate > candidates with a different degree but lots of experience. > > I'm saying they "deliberately chose" that > odious-to-all-other-degree-holders wording, because of the assumption > that they ARE serious about the importance of this hire, and therefore > must have given it all due care and attention. If they *accidentally* > pick wrong (and odious;-) wording DESPITE paying very careful > attention to what they're saying (because they consider this hire > important), then they're even weirder than I hypothesized above. > > All in all, I think that your assumption that they don't really mean > what they say (despite saying it with so precise and forceful a choice > of words), one way or another, has to be extremely insulting to them > -- even more than I would like to be, and that's saying something;-). > > > Alex > -------------- next part -------------- An HTML attachment was scrubbed... URL: From annaraven at gmail.com Fri Jul 2 18:46:25 2010 From: annaraven at gmail.com (Anna Ravenscroft) Date: Fri, 2 Jul 2010 09:46:25 -0700 Subject: [Baypiggies] [JOB] Software Engineer, Cloud Fabric Team, Nimbula Inc. In-Reply-To: References: <4C2CE85A.6090004@nimbula.com> <20100702033832.GB26765@panix.com> Message-ID: On Thu, Jul 1, 2010 at 11:40 PM, Jeff Enderwick wrote: > Maybe it was a carefully crafted test to see if job seekers without CS > degrees were sharp enough to surmise that equivalent knowledge would be > likely acceptable. Very smart; effectively implementing a filter by *not* > adding Aahz' missing text (I smell a business process patent for that HR > manager!) ?;-). >From what I'm reading here, it doesn't actually serve its purpose well. Most folks are saying they read it as "or equivalent experience" and would apply anyway while the guy with an EE degree (or other related non-"CS" degree) read it and disqualified himself even if he's got way more experience than most. Either way, they're not cutting down on mismatches, AND they're cutting out people that might be a better match for the position. Is that really what they want? I would love to see the company come and explain how *they* intended the "must" so that we can all have a better understanding of why they used it. I find such "this is what I meant when I said x" discussions to be really enlightening. Maybe there's a good reason for the "must" that none of us here has guessed, or maybe they thought it would would give the candidate something it doesn't. Maybe they're just all CS majors and only want to work with other CS majors or maybe it's just an unjustified bias. I don't know but I'd love to find out. Not just for this job, but for hiring managers in general. And not just for "CS degree a must" but for other common phrasing of job ads. Of course, I'm kind of a language geek and such discussions are interesting to me in general. But seriously, I think knowing what recruiters or hiring managers think certain ad wording means might be useful for those of us who are looking for work. -- cordially, Anna From annaraven at gmail.com Fri Jul 2 18:48:53 2010 From: annaraven at gmail.com (Anna Ravenscroft) Date: Fri, 2 Jul 2010 09:48:53 -0700 Subject: [Baypiggies] [JOB] Software Engineer, Cloud Fabric Team, Nimbula Inc. In-Reply-To: References: <4C2CE85A.6090004@nimbula.com> <20100702033832.GB26765@panix.com> Message-ID: On Thu, Jul 1, 2010 at 9:03 PM, Jeff Enderwick wrote: > Aahz, > I wouldn't make the leap from not being lawyerly about the job requirements > to not being able to write correct code! I certainly wouldn't want to have to decipher code specs from a company that can't write good job specs. ;-) -- cordially, Anna From jim at well.com Fri Jul 2 19:12:57 2010 From: jim at well.com (jim) Date: Fri, 02 Jul 2010 10:12:57 -0700 Subject: [Baypiggies] [JOB] Software Engineer, Cloud Fabric Team, Nimbula Inc. In-Reply-To: References: <4C2CE85A.6090004@nimbula.com> <20100702033832.GB26765@panix.com> Message-ID: <1278090777.1627.87.camel@jim-laptop> probably good to bear in mind that every company is a combination of people, each with a particular mindset, and all with the problem of communication and coordination. the political structure of the company may have someone controlling hiring messages using some well- intentioned but unwise criteria; it seems likely that the hiring managers would have a variety of "takes" on who'd be acceptable--weighted toward practical, get-it-done values. from an applicant's point of view, does an application really get screened with respect to the criteria of the writer and is there a way to end-run directly to the hiring managers. i'm particularly interested in the latter idea. tho'ts? On Thu, 2010-07-01 at 23:40 -0700, Jeff Enderwick wrote: > Maybe it was a carefully crafted test to see if job seekers without CS > degrees were sharp enough to surmise that equivalent knowledge would > be likely acceptable. Very smart; effectively implementing a filter by > *not* adding Aahz' missing text (I smell a business process patent for > that HR manager!) ;-). > > > In my very limited experience, hiring managers don't spend the time to > engineer these requirements to such a degree. If you see a job posting > that you like then you just go for it. If they're smart, then they > hire you anyway. If they're stiff, then you are likely better off not > being there. > > > I may have a skewed sample set, but it seems that every (non-goog?) > job solicitation posted to this list gets the crap beat out of it, > with the biggest magnet being that series of Chomp postings (okay, I > admit it - I took part in those :-). In all seriousness, these may be > good companies/people trying to hire? $.02... > > On Thu, Jul 1, 2010 at 9:49 PM, Alex Martelli > wrote: > On Thu, Jul 1, 2010 at 9:03 PM, Jeff Enderwick > wrote: > > Aahz, > > I wouldn't make the leap from not being lawyerly about the > job requirements > > to not being able to write correct code! I think all of us > who read it (even > > those who don't have CS sheepskin) realized that equivalent > knowledge would > > likely be gladly accepted in lieu. Finding great people is > so hard! Anyone > > who is overly strict on that sort of requirement is sure to > suffer. > > > If they're serious about this hiring and its importance, and > if you're > right that what they say is A MUST (*VERY* strong wording!) is > not > indeed a must, they're pretty weird people -- why did they > deliberately choose that (you assume incorrect) wording?!. By > far the > most common wording includes, as Aahz mentioned, "or > equivalent > experience", after all -- IF, that is, one IS willing to > evaluate > candidates with a different degree but lots of experience. > > I'm saying they "deliberately chose" that > odious-to-all-other-degree-holders wording, because of the > assumption > that they ARE serious about the importance of this hire, and > therefore > must have given it all due care and attention. If they > *accidentally* > pick wrong (and odious;-) wording DESPITE paying very careful > attention to what they're saying (because they consider this > hire > important), then they're even weirder than I hypothesized > above. > > All in all, I think that your assumption that they don't > really mean > what they say (despite saying it with so precise and forceful > a choice > of words), one way or another, has to be extremely insulting > to them > -- even more than I would like to be, and that's saying > something;-). > > > Alex > > > _______________________________________________ > Baypiggies mailing list > Baypiggies at python.org > To change your subscription options or unsubscribe: > http://mail.python.org/mailman/listinfo/baypiggies From leehinde at gmail.com Sat Jul 3 00:33:21 2010 From: leehinde at gmail.com (Lee Hinde) Date: Fri, 2 Jul 2010 15:33:21 -0700 Subject: [Baypiggies] [JOB] Software Engineer, Cloud Fabric Team, Nimbula Inc. In-Reply-To: <1278090777.1627.87.camel@jim-laptop> References: <4C2CE85A.6090004@nimbula.com> <20100702033832.GB26765@panix.com> <1278090777.1627.87.camel@jim-laptop> Message-ID: http://www.bigcontrarian.com/2010/07/02/fairly-unremarkable-backgrounds/ "Now that I own my own company, I?ve found myself not only completely ignoring education on resumes, but there?s an odd part of me that, when seeing a person with a bachelor?s degree in computer science, thinks, Wait, you had to go to school for this?" I wouldn't got that far, of course... From jeff.tchang at gmail.com Sat Jul 3 02:28:47 2010 From: jeff.tchang at gmail.com (Jeff Tchang) Date: Fri, 2 Jul 2010 17:28:47 -0700 Subject: [Baypiggies] Freelance developer opportunity Message-ID: I have an ecommerce backend currently built in Pylons that is needing some updates. Ideally looking for someone who has the bandwidth to help support the web application. The application uses apache, sqlite, sqlalchemy, and beanstalkd. E-mail me with experience if interested. -Jeff From venkat83 at gmail.com Sat Jul 3 04:02:16 2010 From: venkat83 at gmail.com (Venkatraman S) Date: Sat, 3 Jul 2010 07:32:16 +0530 Subject: [Baypiggies] [JOB] Software Engineer, Cloud Fabric Team, Nimbula Inc. In-Reply-To: References: <4C2CE85A.6090004@nimbula.com> <20100702033832.GB26765@panix.com> <1278090777.1627.87.camel@jim-laptop> Message-ID: On Sat, Jul 3, 2010 at 4:03 AM, Lee Hinde wrote: > http://www.bigcontrarian.com/2010/07/02/fairly-unremarkable-backgrounds/ > > Nice link : http://blogs.zoho.com/general/how-we-recruit-on-formal-credentials-vs-experience-based-education Being from India and having chosen experience to academic superiority, i second the views. Also, the 'conventional' indian IT firms do not seem to respect startup experience. For eg, i quit my job from a BIG org and then joined a startup and then moved to one more due to some problems - people were highly sceptical with me shifting some firms in a short span of time.and I had to substantiate my experience. I learnt more in that short span of moves than the few years working in the BIG org. I must say that the societal structures have a BIG factor in all these discussions. -V http://twitter.com/venkasub http://theindianstreet.blogspot.com/ -------------- next part -------------- An HTML attachment was scrubbed... URL: From john_re at fastmail.us Sat Jul 3 12:12:56 2010 From: john_re at fastmail.us (giovanni_re) Date: Sat, 03 Jul 2010 03:12:56 -0700 Subject: [Baypiggies] Join July Global Python meetings via VOIP - Free SW HW Culture Mtgs - BerkeleyTIP Message-ID: <1278151976.15227.1383107391@webmail.messagingengine.com> Watch some videos. Mark your calendar. Invite your friends. Join in on IRC or Voice. Join the mailing list, say "Hi. :)" ===== 1) 2010.7 Videos: Building the Python Community, Steve Holden, PyCon 2010 How Python, TurboGears, and MongoDB are Transforming SourceForge.net, Rick Copeland, PyCon Introducing Numpy Arrays, unpingco Motorola Droid Metro PCS Apps, makeitcricket.com How to write VOIP client in less then 2 minutes, rpdammu Open Wonderland virtual worlds platform, Nicole Yankelovich, iED How to Succeed in Mobile, Girl Geek Dinner, Kris Corzine Using KDE Marble to research your next vacation, Justin Kirby Schizophrenic Firewalls - virtualized net stack OpenBSD, Claudio Jeker Meet Google Founder Larry Page, Google Faculty Summit 2009 http://sites.google.com/site/berkeleytip/talk-videos/2010-7-videos == July Meetings - Mark your calendar: 3 Sat 12N-3P PST = 3-6P EST = 19-22 UTC 12 Mon 5 -6P PST = 8-9P EST = 0- 1 UTC Tues 13 18 Sun 12N-3P PST = 3-6P EST = 19-22 UTC 27 Tue 5 -6P PST = 8-9P EST = 0- 1 UTC Wed 28 ===== You're invited to join in with the friendly people at the BerkeleyTIP global meeting - newbie to Ph.D. - everyone is invited. Get a headset & join using VOIP online, or come to Berkeley. 1st step: Join the mailing list: http://groups.google.com/group/BerkTIPGlobal Watch the videos. Discuss them on VOIP. 10 great videos/talks this month. Join with us at the Golden Bear Cafe, Upper Sproul Plaza, UCB at the University of California at Berkeley, or join from your home via VOIP, or send this email locally, create a local meeting, & join via VOIP: Tip: a wifi cafe is a great place to meet. :) PLEASE VIEW THE BTIP WEBSITE & MAILING LIST FOR LATEST DETIALS. http://sites.google.com/site/berkeleytip BerkeleyTIP - Educational, Productive, Social For Learning about, Sharing, & Producing, All Free SW HW & Culture. TIP == Talks, Installfest, Project & Programming Party ===== CONTENTS: 1) 2010 JULY VIDEOS; 2) 2010 JULY MEETING DAYS, TIMES, LOCATIONS; 3) LOCAL MEETING AT U. C. Berkeley; 4) HOT TOPICS; 5) PLEASE RSVP PROBABILISTICALLY, THANKS :) ; 6) INSTALLFEST; 7) ARRIVING FIRST AT THE MEETING: MAKE A "BerkeleyTIP" SIGN; 8) IRC: #berkeleytip on irc.freenode.net; 9) VOIP FOR GLOBAL MEETING; 10) VOLUNTEERING, TO DOs; 11) MAILING LISTS: BerkeleyTIP-Global, LocalBerkeley, Announce; 12) ANYTHING I FORGOT TO MENTION?; 13) FOR FORWARDING ======================================================================= ===== 1) - See videos list at top of this email. Thanks to all the speakers, organizations, & videographers. :) [Please alert the speakers that their talks are scheduled for BTIP (if you are with the group that recorded their talk), because I may not have time to do that. Thanks. :) ] Download & watch these talks before the BTIP meetings. Discuss at the meeting. Email the mailing list, tell us what videos you'll watch & want to discuss. Know any other video sources? - please email me. _Your_ group should video record & post online your meeting's talks! ===== 2) 2010 JULY MEETING DAYS, TIMES, LOCATIONS http://sites.google.com/site/berkeleytip/schedule http://sites.google.com/site/berkeleytip/directions In person meetings on 1st Saturday & 3rd Sunday, every month. July 3 & 18, 12N-3P USA-Pacific time, Saturday, Sunday July 3 = Golden Bear Cafe, Upper Sproul Plaza, UCB July 18 = Free Speech Cafe, Moffitt Library, UCB Online only meeting using VOIP - 9 days after weekend meetings: July 12 & 27, 5-6P USA-Pacific time, Monday, Tuesday Mark your calendars. ===== 3) LOCAL MEETING AT U. C. BERKELEY http://sites.google.com/site/berkeleytip/directions RSVP please. See below. It greatly helps my planning. But, _do_ come if you forgot to RSVP. ALWAYS BE SURE TO CHECK THE BTIP WEBSITE _&_ MAILING LIST FOR THE LATEST LAST MINUTE DETAILS & CHANGES, BEFORE COMING TO THE MEETING! :) DO BRING A VOIP HEADSET, available for $10-30 at most electronics retail stores, & a laptop computer, so you are able to communicate with the global BTIP community via VOIP. It is highly recommended that you have a voip headset, & not rely on a laptop's built in microphone & speakers, because the headphones keep the noise level down. Bringing a headset is not required, but is a great part of the being able to communicate with the global community. :) Clothing: Typically 55-80 degrees F. Weather: http://www.wunderground.com/auto/sfgate/CA/Berkeley.html Other location local meeting possibilities: http://sites.google.com/site/berkeleytip/local-meetings Create a local meeting in your town. Invite your friends. :) ===== 4) HOT TOPICS Android phones - Besting iPhone? worthwhile? How knowable is the hw? iPad, iPhone4 & iPod- rooting & running GNU(Linux) Skype for group video conferencing? Open Wonderland virtual worlds platform ===== 5) PLEASE RSVP PROBABILISTICALLY, THANKS :) If you think there is a >70% chance ("likely") you'll come to the in person meeting in Berkeley, please RSVP to me. Thanks. It helps my planning. Please _do_ come even if you haven't RSVP'd, it's not required. Better yet, join the BerkeleyTIP-Global mailing list, send the RSVP there, & tell us what things you're interested in, or what videos you'll try to watch - so we can know what videos are popular, & we might watch them too. :) http://groups.google.com/group/BerkTIPGlobal ===== 6) INSTALLFEST Get help installing & using Free Software, Hardware & Culture. Laptops only, typically. There isn't easy access for physically bringing desktop boxes here. RSVP _HIGHLY RECOMMENDED_ if you want installfest help. Please RSVP to me, Giovanni, at the from address for this announcement, or better, join & send email to the BTIP-Global mailing list telling us what you'd like help with. This way we can be better prepared to help you, & you might get valuable advice from the mailing list members. If you are new to using free software, an excellent system would be the KUbuntu GNU(Linux) software. It is very comprehensive, fairly easy to use (similar to Windows or Mac), & suitable for personal, home, university, or business use. We are also glad to try to help people with software who join via VOIP. Please email the mailing list with requests that you want help with, so we can try to be prepared better to help you. Installfest volunteers/helpers always welcome, in person, or via VOIP. :) ===== 7) ARRIVING FIRST AT THE MEETING: MAKE A "BerkeleyTIP" SIGN If you get to the meeting & don't see a "BerkeleyTIP" sign up yet, please: 1) Make a BTIP sign on an 8x11 paper & put it at your table, 2) Email the mailing list, or join on IRC, & let us know you are there. Ask someone if you could use their computer for a minute to look something up, or send an email. People are usually very friendly & willing to help. We can also email you a temporary guest AirBears account login. We will have wifi guest accounts available for BTIP attendees. Be sure you have wifi capable equipment. Be Prepared: Bring a multi-outlet extension power cord. ===== 8) IRC: #berkeleytip on irc.freenode.net For help with anything, especially how to get VOIP working, & text communication. ===== 9) VOIP FOR GLOBAL MEETING Speak & listen to everyone globally using VOIP. Get a headset! See some VOIP instructions here: http://sites.google.com/site/berkeleytip/voice-voip-conferencing ===== 10) VOLUNTEERING, TO DOs Enjoy doing or learning something(s)? Help out BTIP in that area. Website development, mailing list management, video locating, VOIP server (FreeSwitch, Asterisk) or client (Ekiga, SFLPhone,...), creating a local meeting. Join the mailing list & let us know. Your offers of free help are always welcome here. :) ===== 11) MAILING LISTS: BerkeleyTIP-Global, LocalBerkeley, Announce Everyone should join the BerkeleyTIP-Global list: http://groups.google.com/group/BerkTIPGlobal Say "hi", tell us your interests, & what videos you'll like to watch. Info on all lists here: http://sites.google.com/site/berkeleytip/mailing-lists ===== 12) ANYTHING I FORGOT TO MENTION? Please join & email the BerkeleyTIP-Global mailing list. ===== 13) FOR FORWARDING You are invited to forward this message anywhere it would be appreciated. Better yet, use it to create a local meeting. Invite & get together with your friends locally, & join in with us all globally. :) Looking forward to meeting with you in person, or online. :) Giovanni == Join in the Global weekly meetings, via VOIP, about all Free SW HW & Culture http://sites.google.com/site/berkeleytip/ From cappy2112 at gmail.com Sun Jul 4 00:46:17 2010 From: cappy2112 at gmail.com (Tony Cappellini) Date: Sat, 3 Jul 2010 15:46:17 -0700 Subject: [Baypiggies] Looking for someone to review Manning Publications "The Quick Python Book, 2nd Ed" Message-ID: Hello Everyone, I hope you're enjoying the long weekend. I'd like to announce that Baypiggies is now a member of Manning Publications User Group Program. As a member of this program, we get discounts on their books as well as review copies. The first Manning book available for review is "The Quick Python Book, 2nd Ed" http://www.manning.com/harms/ and I am looking for a volunteer to read the book and write a review for Baypiggies an Manning Publications. If you are interested in reviewing *any* other titles from Manning, just let me know. Please respond *off list* if interested. Thank You Tony From cappy2112 at gmail.com Sun Jul 4 00:55:23 2010 From: cappy2112 at gmail.com (Tony Cappellini) Date: Sat, 3 Jul 2010 15:55:23 -0700 Subject: [Baypiggies] 50% Off Manning Publications printed and e-books Message-ID: Hello Everyone, Sorry for the late notice, but we have received some discount codes from Manning Publications. July 3: Save 50% on all print books. Use promo code july350 July 4: Save 50% on all ebooks. Use promo code july450 July 5: Save 50% on all MEAPs. Use promo code july550 Celebrate Independence! ...and save 50% at manning.com through July 5 From aclark at aclark.net Tue Jul 6 04:37:41 2010 From: aclark at aclark.net (Alex Clark) Date: Mon, 05 Jul 2010 22:37:41 -0400 Subject: [Baypiggies] Thoughts on starting a career as a consultant? References: Message-ID: Hi Steve and all, (just lurking from across the country) (And re-sending this after properly joining the list) On 6/22/10 1:35 PM, in article AANLkTinnKXIaZPM-6Vzg5mNvM3oJ9NWEcWFt-IG5ZpTD at mail.gmail.com, "Stephen Lacy" wrote: > Hey all, > > I've been a software engineer for well over 10 years, mainly C++, but Python > for about the last year, and I'm really enjoying it.? > > I'm getting more and more interested in transitioning from a full-timer at a > large company to being a Python+Django freelance consultant.? My background is > mainly in engineering, not design, but of course I'm fully versed in HTML+CSS, > I'm just not the best person to be designing interfaces from scratch or doing > complex visual design & graphics. > > Has anyone here made this transition before?? How did it go?? > Yes, I?m five years into being a full time Plone consultant. Still going. > > > My biggest fears are: > > * How am I going to attract clients? (Although this list, and sites like > djanggigs.com seem like pretty good sources to start.) One great way is to contribute to the project you plan to consult on. E.g. I do things like ?run the machines?: http://admins.plone.org/. Another great way is to organize a user group. I?ve gotten a ton of work simply by organizing monthly meetings for local Python people (http://zpugdc.org). In fact, I got my first gig through a user group friend (the one that inspired me to quit my day job). > * Am I good at managing client relationships?? How hard will this be?? > (billing, scope creep, missed deadlines, etc.) It?s probably one of the hardest things I?ve ever done ? I tend to obsess about a single task and spend my time lost in it (at times to the detriment of other work). The best advice I can give is to communicate communicate communicate. People are usually fine if you tell them what is going on. Usually, but not always ;-) > * What about the graphics/visual design side of things?? What do you usually > do for this, or has the client already outsourced a design and they just need > implementation? I don?t worry about it. It would be great to have an in-house designer, but I can sub or use the client?s designer. I focus on being an expert in the things I care about (developing and deploying Python web apps and having fun). > * Maybe I just want to get a FT position with a web design&build firm > instead?? What are the pros/cons of that approach vs. freelancing? The biggest pro to freelancing is you make your own schedule. The biggest con to freelancing is you make your own schedule. At first the freedom is exhilarating, and to this day it?s still very enjoyable and preferable to a day job. But the pressures can be enormous. I end up working 24/7 a lot of the time. > > Any thoughts or experiences from people who have done this transition would be > great.? Thanks! > Do it! You will not regret the satisfaction you get from working for yourself. It has been hard at times, but I?d never go back! Actually, that?s not true, I would consider a full time work from home job with somebody like Mozilla, at this point. cough But unlike with day jobs, there is no cap on the amount of money you can make as a freelancer. Contrarily, there is no one giving you work and the well can run dry at any moment. This can very stressful to some people, so it is definitely not for everyone. Hope this helps! Alex > Steve > > > > _______________________________________________ > Baypiggies mailing list > Baypiggies at python.org > To change your subscription options or unsubscribe: > http://mail.python.org/mailman/listinfo/baypiggies -- Alex Clark ? http://aclark.net Author ? Plone 3.3 Site Administration ? http://aclark.net/admin -------------- next part -------------- An HTML attachment was scrubbed... URL: From jjinux at gmail.com Tue Jul 6 07:04:17 2010 From: jjinux at gmail.com (Shannon -jj Behrens) Date: Mon, 5 Jul 2010 22:04:17 -0700 Subject: [Baypiggies] python web authoring & programming (PWAP) In-Reply-To: <20100629203929.GA22784@subspacefield.org> References: <20100629203929.GA22784@subspacefield.org> Message-ID: On Tue, Jun 29, 2010 at 1:39 PM, wrote: > Hey all, > > I haven't been able to attend - it conflicts with the DC650.org > meeting - but I figured I'd pass along my results from exploring all > the options when authoring web pages & programming web apps in python: > > http://www.subspacefield.org/~travis/python_web_authoring_programming.html > > One problem with writing web apps using frameworks is that if you pick > an unsuitable one and have to re-write, you'll usually have to do it > from scratch. ?So I've put a lot of effort into researching the > options and figuring out what the tradeoffs are. ?If you're interested > in jumping into it, this'll save you two weeks of research, or > possibly more (compared to choosing the wrong tools). > > Any suggestions are most welcome. > -- > A Weapon of Mass Construction > My emails do not have attachments; it's a digital signature that your mail > program doesn't understand. | http://www.subspacefield.org/~travis/ > If you are a spammer, please email john at subspacefield.org to get blacklisted. You might be able to integrate some of this work with the Python Web-SIG wiki pages. -jj -- In this life we cannot do great things. We can only do small things with great love. -- Mother Teresa http://jjinux.blogspot.com/ From emile at fenx.com Tue Jul 6 20:26:00 2010 From: emile at fenx.com (Emile van Sebille) Date: Tue, 06 Jul 2010 11:26:00 -0700 Subject: [Baypiggies] Thoughts on starting a career as a consultant? In-Reply-To: References: Message-ID: <4C337538.8000502@fenx.com> On 7/5/2010 7:37 PM Alex Clark said... > > But unlike with day jobs, there is no cap on the amount of money you can > make as a freelancer. Well, there is -- 2000-2500 work hours/year at say $100/hr -- $200k - $250k (flavor to taste or individual circumstances) This is probably the biggest downside to strict consulting. You're selling your time. You need to add people or develop resellable products to go past that and get a multiplier or residual effect going. Emile From simeonf at gmail.com Wed Jul 7 00:23:04 2010 From: simeonf at gmail.com (Simeon Franklin) Date: Tue, 6 Jul 2010 15:23:04 -0700 Subject: [Baypiggies] Thoughts on starting a career as a consultant? In-Reply-To: <4C337538.8000502@fenx.com> References: <4C337538.8000502@fenx.com> Message-ID: On Tue, Jul 6, 2010 at 11:26 AM, Emile van Sebille wrote: > On 7/5/2010 7:37 PM Alex Clark said... >> >> But unlike with day jobs, there is no cap on the amount of money you can >> make as a freelancer. > > Well, there is -- 2000-2500 work hours/year at say $100/hr -- $200k - $250k > (flavor to taste or individual circumstances) I understand that you're using these numbers as a cap but I think it's worth pointing out that most people who freelance may work 2000 hours and only bill 1200. I personally consider days I can bill 6 hours a pretty productive day but I rarely work less than 8 - usually more. This is something to consider when establishing your hourly rate. I don't charge for billing time, time writing proposals or reading specs or meeting with clients. I don't itemize routine communications (emails/phone calls from clients) and pretty much try to keep my billable hours down to the time I actually spend working on something technical. This is especially true at the beginning of most people's freelance careers. Unless you have established relationships you probably start out underpaid and doing small jobs for a variety of clients. The cost of context switching between clients shouldn't be minimized! >This is probably the biggest > downside to strict consulting. ?You're selling your time. ?You need to add > people or develop resellable products to go past that and get a multiplier > or residual effect going. In fact I have a 4 step theory of the path of the typical freelancing career - 1. Low money for hard work. You probably start out underbidding just to get the job. You have poor estimating skills at this point and are abashed to ask for much more than you made as an hourly worker. Expect to work 10 hour days for relatively low amounts of money. 2. Medium money, for moderate work. This is actually a decent place to be if you can afford it. You have established enough relationships that you can charge what you're worth. Your main concern now is rounding up work each month - you may not have full time work and you probably never have more than a few weeks worth of work stacked up. You still spend time pitching, networking, writing proposals and looking for better gigs. 3. Good Money, Hard Work. You have arrived as a contractor. You've fired your first clients and are able to concentrate on your more lucrative or interesting clients - or you simply have the luxury of consolidating and eliminating some of those context switches. You could probably bill 10 hours a day (and work 14) 7 days a week. The money is good but beware of burnout. 4. $$$ for moderate work. At this point I branch off into theory. I have heard that some people are able to make a living (or better) without working 10 hour days. The obvious way to move into this territory is to raise your rates and if you have too much work you may well be pricing yourself too low. But most of us work in competitive industries - its not like I'm the only Python/Django/DB/Web guy in the world so raising my prices only gets me so far. I suspect that the way to get to stage four is to own a resellable product or service that isn't directly related to your hourly billing. My personal business goals at this point center around saving enough money to pay my salary while I do a mini-startup - and this will be when I really feel I've made it; not only being my own boss but also developing for myself! In the meantime I read hackernews to keep myself motivated... -regards Simeon Franklin > _______________________________________________ > 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 Wed Jul 7 00:53:18 2010 From: jim at well.com (jim) Date: Tue, 06 Jul 2010 15:53:18 -0700 Subject: [Baypiggies] Thoughts on starting a career as a consultant? In-Reply-To: References: <4C337538.8000502@fenx.com> Message-ID: <1278456798.1611.40.camel@jim-laptop> there's a rule of thumb to double your estimate. some say then double that. assume you can work an average of four hours a day. one friend of mine never worked by the hour, always fixed price, because he could make more money (he was very good--microsoft's engineers sometimes called him to find out how things worked). another friend set aside tuesdays for marketing day--did no project work, spent the entire day trying to line up more jobs (made sure to have lunch with somebody, schmoozed, tried to catch the right crowd at happy hours. i think simeon's path is exactly right. over time one builds a reputation and contacts. i'm guessing three years to get established. On Tue, 2010-07-06 at 15:23 -0700, Simeon Franklin wrote: > On Tue, Jul 6, 2010 at 11:26 AM, Emile van Sebille wrote: > > On 7/5/2010 7:37 PM Alex Clark said... > >> > >> But unlike with day jobs, there is no cap on the amount of money you can > >> make as a freelancer. > > > > Well, there is -- 2000-2500 work hours/year at say $100/hr -- $200k - $250k > > (flavor to taste or individual circumstances) > > I understand that you're using these numbers as a cap but I think it's > worth pointing out that most people who freelance may work 2000 hours > and only bill 1200. I personally consider days I can bill 6 hours a > pretty productive day but I rarely work less than 8 - usually more. > This is something to consider when establishing your hourly rate. I > don't charge for billing time, time writing proposals or reading specs > or meeting with clients. I don't itemize routine communications > (emails/phone calls from clients) and pretty much try to keep my > billable hours down to the time I actually spend working on something > technical. > > This is especially true at the beginning of most people's freelance > careers. Unless you have established relationships you probably start > out underpaid and doing small jobs for a variety of clients. The cost > of context switching between clients shouldn't be minimized! > > >This is probably the biggest > > downside to strict consulting. You're selling your time. You need to add > > people or develop resellable products to go past that and get a multiplier > > or residual effect going. > > In fact I have a 4 step theory of the path of the typical freelancing career - > > 1. Low money for hard work. You probably start out underbidding just > to get the job. You have poor estimating skills at this point and are > abashed to ask for much more than you made as an hourly worker. Expect > to work 10 hour days for relatively low amounts of money. > > 2. Medium money, for moderate work. This is actually a decent place to > be if you can afford it. You have established enough relationships > that you can charge what you're worth. Your main concern now is > rounding up work each month - you may not have full time work and you > probably never have more than a few weeks worth of work stacked up. > You still spend time pitching, networking, writing proposals and > looking for better gigs. > > 3. Good Money, Hard Work. You have arrived as a contractor. You've > fired your first clients and are able to concentrate on your more > lucrative or interesting clients - or you simply have the luxury of > consolidating and eliminating some of those context switches. You > could probably bill 10 hours a day (and work 14) 7 days a week. The > money is good but beware of burnout. > > 4. $$$ for moderate work. At this point I branch off into theory. I > have heard that some people are able to make a living (or better) > without working 10 hour days. The obvious way to move into this > territory is to raise your rates and if you have too much work you may > well be pricing yourself too low. But most of us work in competitive > industries - its not like I'm the only Python/Django/DB/Web guy in the > world so raising my prices only gets me so far. I suspect that the way > to get to stage four is to own a resellable product or service that > isn't directly related to your hourly billing. My personal business > goals at this point center around saving enough money to pay my salary > while I do a mini-startup - and this will be when I really feel I've > made it; not only being my own boss but also developing for myself! In > the meantime I read hackernews to keep myself motivated... > > -regards > Simeon Franklin > > > _______________________________________________ > > 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 alexandre.conrad at gmail.com Wed Jul 7 16:40:46 2010 From: alexandre.conrad at gmail.com (Alexandre Conrad) Date: Wed, 7 Jul 2010 16:40:46 +0200 Subject: [Baypiggies] Moving to the Valley In-Reply-To: References: <20100701175315.GA2267@tigris> Message-ID: Hey Pythonistas, Thanks to all for the warm welcomes, on and off-list. It's nice to have such a friendly community around. Alex 2010/7/2 Brent Tubbs > Welcome to the bay area Alex! > > Brent > > On Thu, Jul 1, 2010 at 10:53 AM, Rami Chowdhury > wrote: > > Welcome Alex! > > > > While I won't be around to greet you personally in August I'm sure you'll > > have a great time diving into the Python community here :-) > > > > Best of luck, > > Rami > > > > On 2010-07-01 17:31, Alexandre Conrad wrote: > >> Dear BayPIGgies, > >> > >> This is my first thread to this list, so let me introduce myself: > >> > >> My name is Alexandre Conrad and I'm 29 years old. I'm a US and French > >> citizen. I live in Paris France and currently work at a French company > >> as a Python developer. And I'm moving in the Valley in the beginning > >> of August, somewhere between San Francisco and Santa Clara (maybe Palo > >> Alto). New life, new people to meet, new friends to make, new stories > >> to tell. It's all *very* exciting. > >> > >> I started programming with Python, back in 2003 and have been doing > >> most of my development with it since then. I've been promoting Python > >> through my support to the AFPy, the French Python Association presided > >> by Tarek Ziad?, by going to diverse events around France. And moving > >> in the Bay Area won't stop my quest to spreading Python karma. :) > >> > >> Of course, as I'm preparing my move, among other things, I'm starting > >> to seek for a job in SF or the Valley. I monitor Python positions > >> through job boards and have a few hints. But if any of you would > >> recommend a particular company or position you might be aware of, ping > >> me! :) > >> > >> I hope I can make it to the BayPIGgies meeting in August. I would be > >> very happy to meet some of you. > >> > >> Best regards, > >> -- > >> Alex > >> twitter.com/alexconrad > >> linkedin.com/in/alexconrad > >> _______________________________________________ > >> Baypiggies mailing list > >> Baypiggies at python.org > >> To change your subscription options or unsubscribe: > >> http://mail.python.org/mailman/listinfo/baypiggies > > ---- > > Rami Chowdhury > > "Passion is inversely proportional to the amount of real information > available." > > -- Benford's Law of Controversy > > +1-408-597-7068 / +44-7875-841-046 / +88-01819-245544 > > _______________________________________________ > > 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 wescpy at gmail.com Wed Jul 7 18:57:27 2010 From: wescpy at gmail.com (wesley chun) Date: Wed, 7 Jul 2010 09:57:27 -0700 Subject: [Baypiggies] Moving to the Valley In-Reply-To: References: Message-ID: bonjour alex, et bienvenue ? silicon valley! living around here will have a wide range of monthly costs... typically your rent should be within EUR1000-2000 which can be reduced if you get roommates and/or live in a house with others. best places to find a job are http://monster.com - http://dice.com -http://sfbay.craigslist.org ... if you are interested in applying to Google (yes we're hiring), as with the rest of you, just check out http://google.com/jobs and send me your CV/resume and top 3 desired positions you found *including* their full URLs. be aware that the interview process is brutal and unforgiving but pleasant other than that as it has shown some improvement from the past. :-) bonne chance! -wesley On Thu, Jul 1, 2010 at 8:31 AM, Alexandre Conrad wrote: > Dear BayPIGgies, > > This is my first thread to this list, so let me introduce myself: > > My name is Alexandre Conrad and I'm 29 years old. I'm a US and French > citizen. I live in Paris France and currently work at a French company > as a Python developer. And I'm moving in the Valley in the beginning > of August, somewhere between San Francisco and Santa Clara (maybe Palo > Alto). New life, new people to meet, new friends to make, new stories > to tell. It's all *very* exciting. > > I started programming with Python, back in 2003 and have been doing > most of my development with it since then. I've been promoting Python > through my support to the AFPy, the French Python Association presided > by Tarek Ziad?, by going to diverse events around France. And moving > in the Bay Area won't stop my quest to spreading Python karma. :) > > Of course, as I'm preparing my move, among other things, I'm starting > to seek for a job in SF or the Valley. I monitor Python positions > through job boards and have a few hints. But if any of you would > recommend a particular company or position you might be aware of, ping > me! :) > > I hope I can make it to the BayPIGgies meeting in August. I would be > very happy to meet some of you. > > Best regards, > -- > Alex > twitter.com/alexconrad > linkedin.com/in/alexconrad -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - "Core Python Programming", Prentice Hall, (c)2007,2001 "Python Fundamentals", Prentice Hall, (c)2009 http://corepython.com wesley.j.chun :: wescpy-at-gmail.com python training and technical consulting cyberweb.consulting : silicon valley, ca http://cyberwebconsulting.com From cappy2112 at gmail.com Thu Jul 8 06:02:20 2010 From: cappy2112 at gmail.com (Tony Cappellini) Date: Wed, 7 Jul 2010 21:02:20 -0700 Subject: [Baypiggies] Need help with Python scripting for The Gimp (Windows only) Message-ID: Have any of you who use Windows platforms installed the necessary packages (recently) to use Python to write scripts for The Gimp API? I'm having a problem trying to identify which packages to install for Gimp scripting on Windows, as opposed to writing a script. Please reply off-list. Thanks -------------- next part -------------- An HTML attachment was scrubbed... URL: From eric at ericwalstad.com Thu Jul 8 16:59:31 2010 From: eric at ericwalstad.com (Eric Walstad) Date: Thu, 8 Jul 2010 07:59:31 -0700 Subject: [Baypiggies] BayPIGgies group discount from Packt publishing? Message-ID: I've read a couple reviews for Django 1.1 Testing and Debugging[0] and am ready to buy the book. I recall Tony mentioning that BayPIGgies folk can get a discounted price from some publishers. I found a discount code for OReilly[1] but not for Packt. Anyone know how we get a group discount from Packt? tia, Eric. [0] https://www.packtpub.com/django-1-1-testing-and-debugging/book [1] http://baypiggies.net/index_html/user-group-association-program/images/ug_discount.gif From tony at tcapp.com Thu Jul 8 18:40:21 2010 From: tony at tcapp.com (Tony Cappellini) Date: Thu, 8 Jul 2010 09:40:21 -0700 Subject: [Baypiggies] BayPIGgies group discount from Packt publishing? In-Reply-To: References: Message-ID: Eric I've just recently applied for the user group program with Pakt- still no reply. Bill Deegan has just requested a book to review. I'll try to call them this week to find out if we can get some books to review- and I need to update the website with the results. On Thu, Jul 8, 2010 at 7:59 AM, Eric Walstad wrote: > I've read a couple reviews for Django 1.1 Testing and Debugging[0] and > am ready to buy the book. I recall Tony mentioning that BayPIGgies > folk can get a discounted price from some publishers. I found a > discount code for OReilly[1] but not for Packt. Anyone know how we > get a group discount from Packt? > > tia, > > Eric. > [0] https://www.packtpub.com/django-1-1-testing-and-debugging/book > [1] > http://baypiggies.net/index_html/user-group-association-program/images/ug_discount.gif > _______________________________________________ > 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 cappy2112 at gmail.com Thu Jul 8 22:00:02 2010 From: cappy2112 at gmail.com (Tony Cappellini) Date: Thu, 8 Jul 2010 13:00:02 -0700 Subject: [Baypiggies] Fwd:Discounts from Manning Publications Message-ID: Click here to view in your browser. [image: ManningWeblogo.medium] Save 37% on any book mentioned here! Enter promotional code j837 when you check out at manning.com Expires July 14, 2010 [image: twitter] For current special offers, follow @manningbooks on Twitter! New MEAPs, free articles, and great reviews Save 37% on any book mentioned below through July 14, 2010 [image: iphoneartipadart]iPhone Art, iPad Art --NEW MEAP!--The May 25, 2009 New Yorker magazine cover was created using an iPhone and the app Brushes--a coup for a new artistic medium and for digital artists worldwide. In iPhone Art, iPad Art, David Scott Leibowitz illustrates practical techniques, presenting nearly 100 examples ranging from augmented photography to pop art to museum-quality masterworks. You'll discover the specific steps and apps used to create them, along with the personal motivations of each artist. This unique and colorful book will challenge and inspire you to build great art yourself. [read more ] You may also be interested in: - iPhone and iPad in Action - iPhone in Practice - iPad in Practice - Objective-C Fundamentals - Building Location-Aware Applications - Unlocking Android, 2E [image: tikainaction]Tika in Action --NEW MEAP!--Apache Tika is an open source toolkit that makes it easy for search engines, content management systems and other applications to detect and extract content from digital documents in all major file formats. Tika in Actionintroduces you to the world of mining text and binary documents and other information sources. Its many rich, detailed case studies relate the authors' real-world experience from domains ranging from search engines to digital asset management and scientific data processing. [read more ] You may also be interested in: - Lucene in Action, Second E *dition* - Mahout in Action - Taming Text - Algorithms of the Intelligent Web - Collective Intelligence in Action For more about Tika, check out The Case for the Digital Bable Fishin the Manning Free Content Center [image: springbatch]Spring Batch in Action --NEW MEAP!--Spring Batch provides a robust and convenient framework for batch applications that process large volumes of information, automate repetitive tasks, and synchronize internal systems. Spring Batch in Actionis a comprehensive, in-depth guide to creating batch applications using Spring Batch, written for developers with basic knowledge of Java and the Spring lightweight container. [read more ] You may also be interested in: - Spring in Action, Third Edition - Spring in Practice - Spring Dynamic Modules in Action - Spring Integration in Action - AspectJ in Action, SecondE *dition* - Groovy in Action, SecondE *dition* - Griffon in Action - Grails in Action For a closer look at Spring Batch, check out Introducing Spring Batchin the Manning Free Content Center [image: ScalainActionMEAP]Scala in Action --NEW MEAP!--Scala is a general purpose statically typed programming language for the JVM that integrates both OO and functional programming paradigms into one language. Scala in Actionintroduces Scala by taking a "how-to" approach using small to large real world applications. It makes the case for Scala's type safety as ideal for large and small enterprise development teams using Java. Ruby and Python programmers will appreciate how Scala's functional approach contrasts with dynamic programming languages. You'll learn how to integrate Java and Scala, do actor-based concurrency, write DSLs, and more. [read more ] You may also be interested in: - Lift in Action - Clojure in Action - The Joy of Clojure - Erlang and OTP in Action - Hello! Python - C++ Concurrency in Action Take your first steps with Scala in The Range of Scala, now in the Manning Free Content Center New in the Free Content Center We've recently posted a few new articles in the Free Content Center, based on books now available in the Early Access Program. You can get a first look by downloading these today! [image: groovySEMEAP] Declaring and Using Closures--This article, from the authors of Groovy in Action, Second Edition, introduces the closures language feature and explains how to declare and invoke closures in Groovy. [image: cloudatyourservice] Sharding: Designing and Architecting for Internet Scale--Jothy Rosenberg and Arthur Mateos, authors of The Cloud at Your Service, discuss sharding, the practice of partitioning databases so they scale infinitely. In another article, When Are Private Clouds a Good Idea?Jothy and Arthur define what a private cloud is and discuss issues to consider before deploying private clouds. [image: activeMQ] Introduction to Apache ActiveMQ--In this article, the authors of ActiveMQ in Actionintroduce ActiveMQ, an open source, JMS 1.1 compliant, message-oriented middleware (MOM) from the Apache Software Foundation. ActiveMQ provides the high availability, performance, scalability, and security of a commercial queue in a free, open source package. [image: itext] The Phrase Object: A List of Chunks with Leading--Bruno Lowagie, creator of iText and author of iText in Action, Second Edition, describes the Phrase object, and shows how to create constraints for different fonts and set the leading. Also available, Wrapping Tables in Columnsshows how to add a PdfPTable at absolute coordinates by wrapping the inside a ColumnText object. What readers are saying [image: EventProcessinginAction] Event Processing in Action "Short summary: Buy the book! It's so good--the book on event processing I have been waiting for. The authors really get it." --Marco Seiri?, Marco on CEP [image: Powershell] Powershell in Practice "Excellent! Covers practical uses in important Windows systems administration areas." --Christopher Krull, Dzone [image: lucenecover] Lucene in Action, Second Edition "Hands down the best guide to Lucene, the high-performance search engine library. This is the book for you." --Itamar Syn-Hershko, Code972 [image: clojure] Clojure in Action "Of particular interest is the chapter on state management and concurrency. If you understand the problem first, then the solution doesn't seem contrived when it is presented. This is where the book scores in its approach." --Paul Umbers, Dzone Browse more Manning books online [image: baleyheadshot] * * *BESTSELLERS!* * U.S. Retail* as of July 8, 2010 1. jQuery in Action, Second Edition 2. Hello World! Computer Programming for Kids and Other Beginners 3. ASP.NET MVC 2 in Action 4. Spring in Action, Second Edition 5. The Art of Unit Testing 6. Algorithms of the Intelligent Web 7. PowerShell in Practice 8. Windows PowerShell in Action 9. SQL Server 2008 Administration in Action 10. Java Persistence with Hibernate [image: meaplogo] Manning Early Access Program *BESTSELLERS!* as of July 8, 2010 1. Unlocking Android, Second Edition 2. Spring in Action, Third Edition 3. iPhone and iPad in Action 4. Scala in Action 5. Secrets of the JavaScript Ninja 6. Camel in Action 7. The Joy of Clojure 8. ActiveMQ in Action 9. Ext JS in Action 10. Generative Art [image: crane2headshot] Save 37% on any book mentioned here! Enter j837 in Promotional Code box on checkout at manning.com . Expires July 14, 2010. Don't forget to register for the Deal of the Day email alert! There's a new deal every day, good for that day only. [image: Bookmark and Share] Forward email [image: Safe Unsubscribe] This email was sent to cappy2112 at gmail.com by mkt at manning.com. Update Profile/Email Address| Instant removal with SafeUnsubscribe? | Privacy Policy . Manning Publications Co. | Sound View Ct. #3B | Greenwich | CT | 06830 -------------- next part -------------- An HTML attachment was scrubbed... URL: From Mike.Villarreal at adeccona.com Fri Jul 9 01:47:22 2010 From: Mike.Villarreal at adeccona.com (Villarreal, Mike) Date: Thu, 8 Jul 2010 19:47:22 -0400 Subject: [Baypiggies] Python... Systems Engineer job opening in SF Message-ID: Permanent job opening in San Francisco, CA.for a Systems Engineer position for someone who has development experience and an interest in working with large scale distributed system infrastructures. If you're looking to company that allows you to be yourself (surrounded by an open-minded environment and in which the investigation of new technologies and/or processes is encouraged), dog friendly, 3 meals a day, a hip and happening environment, then this job is for you! Company Profile: A place for people to discover and share content from anywhere on the web. >From the biggest online destinations to the most obscure blog, we surface the best stuff as voted on by our users. Responsibilities: * Develop and improve tools that are used to manage our infrastructure * Help manage the configurations we use throughout our environment * Work with developers, QA, and R&D on designing and implementing maintainable system architectures * Maintain an understanding of the infrastructure as a whole and be able to fix things if gremlins decide to wreak havoc in our systems. Qualifications: * Bachelors degree or higher (preferably in Computer Science) * Experience in development and/or systems engineering * Understanding of distributed systems * Strong knowledge of Python (other programming languages a plus) * Some experience with Debian and Debian packaging OR Ubuntu * Experience with source control tools such as GitHub * Familiarity with some or all of the following: Puppet, Apache, mysql, scribe, hadoop, mogilefs, cassandra, gearman, rabbitmq, clusto, memcached, etc. * Experience working on some open source projects. Mike Villarreal Technical Recruiter Adecco Engineering and Technical http://www.adeccousa.com M: 408.940.5071 The Adecco Group is a Fortune Global 500 company and the global leader in HR services. Our group connects over 700,000 associates with our business clients each day through our 6,600 offices in over 70 countries and territories around the world. Adecco E&T offers benefits including Holiday, 401(k), Insurance Benefit Plans and Anniversary Bonus opportunities to qualified W2 tax term Associates at a group discount. All offers are contingent upon completion of a criminal, education, and employment background investigation. Adecco Engineering and Technical is an Equal Opportunity Employer. -------------- next part -------------- An HTML attachment was scrubbed... URL: From pokorny at slide.com Fri Jul 9 03:21:31 2010 From: pokorny at slide.com (David Pokorny) Date: Thu, 08 Jul 2010 18:21:31 -0700 Subject: [Baypiggies] Moving to the Valley In-Reply-To: References: <20100701175315.GA2267@tigris> Message-ID: <4C36799B.8040804@slide.com> Hi Alexandre, There are many opportunities at Slide besides the position I posted, so I'd encourage you to check them out. In fact the tools position is pretty flexible - even if it looks too entry-level, Slide is *very* happy to make competitive offers commensurate with a candidate's skills and experience. Posted positions are more of a "minimum required" than a "target". In fact I think it is safe to say that flexibility in hiring is pretty much the rule at smaller companies and start-ups. Welcome and good luck, --David On 7/7/10 7:40 AM, Alexandre Conrad wrote: > Hey Pythonistas, > > Thanks to all for the warm welcomes, on and off-list. It's nice to have such > a friendly community around. > > Alex > > 2010/7/2 Brent Tubbs > >> Welcome to the bay area Alex! >> >> Brent >> >> On Thu, Jul 1, 2010 at 10:53 AM, Rami Chowdhury >> wrote: >>> Welcome Alex! >>> >>> While I won't be around to greet you personally in August I'm sure you'll >>> have a great time diving into the Python community here :-) >>> >>> Best of luck, >>> Rami >>> >>> On 2010-07-01 17:31, Alexandre Conrad wrote: >>>> Dear BayPIGgies, >>>> >>>> This is my first thread to this list, so let me introduce myself: >>>> >>>> My name is Alexandre Conrad and I'm 29 years old. I'm a US and French >>>> citizen. I live in Paris France and currently work at a French company >>>> as a Python developer. And I'm moving in the Valley in the beginning >>>> of August, somewhere between San Francisco and Santa Clara (maybe Palo >>>> Alto). New life, new people to meet, new friends to make, new stories >>>> to tell. It's all *very* exciting. >>>> >>>> I started programming with Python, back in 2003 and have been doing >>>> most of my development with it since then. I've been promoting Python >>>> through my support to the AFPy, the French Python Association presided >>>> by Tarek Ziad?, by going to diverse events around France. And moving >>>> in the Bay Area won't stop my quest to spreading Python karma. :) >>>> >>>> Of course, as I'm preparing my move, among other things, I'm starting >>>> to seek for a job in SF or the Valley. I monitor Python positions >>>> through job boards and have a few hints. But if any of you would >>>> recommend a particular company or position you might be aware of, ping >>>> me! :) >>>> >>>> I hope I can make it to the BayPIGgies meeting in August. I would be >>>> very happy to meet some of you. >>>> >>>> Best regards, >>>> -- >>>> Alex >>>> twitter.com/alexconrad >>>> linkedin.com/in/alexconrad >>>> _______________________________________________ >>>> Baypiggies mailing list >>>> Baypiggies at python.org >>>> To change your subscription options or unsubscribe: >>>> http://mail.python.org/mailman/listinfo/baypiggies >>> ---- >>> Rami Chowdhury >>> "Passion is inversely proportional to the amount of real information >> available." >>> -- Benford's Law of Controversy >>> +1-408-597-7068 / +44-7875-841-046 / +88-01819-245544 >>> _______________________________________________ >>> 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 keith at dartworks.biz Fri Jul 9 06:25:18 2010 From: keith at dartworks.biz (Keith Dart) Date: Thu, 8 Jul 2010 21:25:18 -0700 Subject: [Baypiggies] FYI matplotlib hits 1.0 Message-ID: <20100708212518.0295c11e@dartworks.biz> For those of you interested, I just discovered that matplotlib has hit version 1.0! And a cool new feature is HTML5/Canvas support. Awesome. http://matplotlib.sourceforge.net/users/whats_new.html -- Keith Dart -- -- -------------------- Keith Dart python -m this ======================= From rajanikanth at gmail.com Fri Jul 9 09:16:41 2010 From: rajanikanth at gmail.com (Rajanikanth Jammalamadaka) Date: Fri, 9 Jul 2010 00:16:41 -0700 Subject: [Baypiggies] FYI matplotlib hits 1.0 In-Reply-To: <20100708212518.0295c11e@dartworks.biz> References: <20100708212518.0295c11e@dartworks.biz> Message-ID: Nice! On Thu, Jul 8, 2010 at 9:25 PM, Keith Dart wrote: > For those of you interested, I just discovered that matplotlib has hit > version 1.0! > > And a cool new feature is HTML5/Canvas support. Awesome. > > > http://matplotlib.sourceforge.net/users/whats_new.html > > > -- Keith Dart > > -- > -- -------------------- > Keith Dart > > python -m this > ======================= > _______________________________________________ > Baypiggies mailing list > Baypiggies at python.org > To change your subscription options or unsubscribe: > http://mail.python.org/mailman/listinfo/baypiggies > -- Rajanikanth -------------- next part -------------- An HTML attachment was scrubbed... URL: From jim at well.com Fri Jul 9 17:56:11 2010 From: jim at well.com (jim) Date: Fri, 09 Jul 2010 08:56:11 -0700 Subject: [Baypiggies] Thoughts on starting a career as a consultant? CALL FOR PANEL In-Reply-To: References: Message-ID: <1278690971.1713.183.camel@jim-laptop> This was an active thread, and a couple of years ago there was another similarly active thread on this topic. This is a call for people to be part of a panel presentation at one of our BayPIGgies meetings. We've got one volunteer already. If you've got experience and opinions, please reply. jim On Tue, 2010-06-22 at 10:35 -0700, Stephen Lacy wrote: > Hey all, > > I've been a software engineer for well over 10 years, mainly C++, but > Python for about the last year, and I'm really enjoying it. > > I'm getting more and more interested in transitioning from a > full-timer at a large company to being a Python+Django freelance > consultant. My background is mainly in engineering, not design, but > of course I'm fully versed in HTML+CSS, I'm just not the best person > to be designing interfaces from scratch or doing complex visual design > & graphics. > > Has anyone here made this transition before? How did it go? My > biggest fears are: > > - How am I going to attract clients? (Although this list, and sites > like djanggigs.com seem like pretty good sources to start.) > - Am I good at managing client relationships? How hard will this be? > (billing, scope creep, missed deadlines, etc.) > - What about the graphics/visual design side of things? What do you > usually do for this, or has the client already outsourced a design and > they just need implementation? > - Maybe I just want to get a FT position with a web design&build firm > instead? What are the pros/cons of that approach vs. freelancing? > > Any thoughts or experiences from people who have done this transition > would be great. Thanks! > > Steve > > _______________________________________________ > Baypiggies mailing list > Baypiggies at python.org > To change your subscription options or unsubscribe: > http://mail.python.org/mailman/listinfo/baypiggies From aahz at pythoncraft.com Fri Jul 9 22:28:42 2010 From: aahz at pythoncraft.com (Aahz) Date: Fri, 9 Jul 2010 13:28:42 -0700 Subject: [Baypiggies] Floating point Message-ID: <20100709202842.GA3000@panix.com> I haven't seen too many floating point discussions here, but anyone who wants to understand floating point should read this: http://docs.sun.com/source/806-3568/ncg_goldberg.html (Posted by Philip Semanchuk on c.l.py) -- Aahz (aahz at pythoncraft.com) <*> http://www.pythoncraft.com/ "....Normal is what cuts off your sixth finger and your tail..." --Siobhan From jim at well.com Sat Jul 10 20:30:31 2010 From: jim at well.com (jim) Date: Sat, 10 Jul 2010 11:30:31 -0700 Subject: [Baypiggies] call for newbie nuggets Message-ID: <1278786631.1683.51.camel@jim-laptop> hiya, We've got a couple of talks scheduled: for July, the second part of Exploiting Parallelism by Minesh Amin; for September, Design Patterns by Alex Martelli. But we've got no newbie nuggets. A newbie nugget is a short talk on a single feature of Python programming, maybe a technique or language feature or a built-in or..., that is from five to ten minutes and targets an experienced coder who is fairly new to Python. Step right up! Volunteer to present a newbie nugget or just suggest a topic that you think would be a good newbie nugget for some other, braver, person to present. From glen at glenjarvis.com Sun Jul 11 20:25:53 2010 From: glen at glenjarvis.com (Glen Jarvis) Date: Sun, 11 Jul 2010 11:25:53 -0700 Subject: [Baypiggies] call for newbie nuggets In-Reply-To: <1278786631.1683.51.camel@jim-laptop> References: <1278786631.1683.51.camel@jim-laptop> Message-ID: > ... or just suggest a topic that you think > would be a good newbie nugget for some other, > braver, person [who has more time] to present. > I saw a Python Magazine article on the UtilityMill, but just glossed it over... until an Open Source discussion I read today, took me back to it. For creating a quick web utility from python code, we should check it out. And, it seems very newbie nugget based. Take a look at this quick tour: http://utilitymill.com/tour/ Cheers, Glen -- Whatever you can do or imagine, begin it; boldness has beauty, magic, and power in it. -- Goethe -------------- next part -------------- An HTML attachment was scrubbed... URL: From mparker at energy-solution.com Mon Jul 12 07:32:06 2010 From: mparker at energy-solution.com (Marla Parker) Date: Mon, 12 Jul 2010 05:32:06 +0000 Subject: [Baypiggies] call for newbie nuggets In-Reply-To: References: Message-ID: > A newbie nugget is a short talk on a single > feature of Python programming, maybe a technique > or language feature or a built-in or..., that > is from five to ten minutes and targets an > experienced coder who is fairly new to Python. That is me: an experienced coder fairly new to Python. My 10 years of full time coding ended in 93, and since then I've been managing developers or working with developers but never doing code myself for my day job. Now I'm working to get back on the keyboard because frankly it is just more fun than all the other things I can do. So I don't want to give a newbie talk, but I'll suggest newbie talk subjects that I'd like to attend. - decorators - I've read about them and I get them in theory, and I've looked at some examples in our code base, but.... I feel like I'm missing the point. - "pythonic" things that seem weird at first but then wonderful once you get used to them That is all I can think of right now. Maybe other newbies can suggest a topic that will make someone else think: hey, I guess I must be experienced because I could easily explain that in 10 minutes. Marla From akleider at sonic.net Mon Jul 12 07:55:53 2010 From: akleider at sonic.net (akleider at sonic.net) Date: Sun, 11 Jul 2010 22:55:53 -0700 Subject: [Baypiggies] call for newbie nuggets In-Reply-To: References: Message-ID: <6c9a4e20914067dd269df99989726a38.squirrel@webmail.sonic.net> I second the suggestion of a 'newbie nugget' covering decorators: preferably with a non trivial example. > >> A newbie nugget is a short talk on a single >> feature of Python programming, maybe a technique >> or language feature or a built-in or..., that >> is from five to ten minutes and targets an >> experienced coder who is fairly new to Python. > > That is me: an experienced coder fairly new to Python. My 10 years of > full time coding ended in 93, and since then I've been managing developers > or working with developers but never doing code myself for my day job. > > Now I'm working to get back on the keyboard because frankly it is just > more fun than all the other things I can do. > > So I don't want to give a newbie talk, but I'll suggest newbie talk > subjects that I'd like to attend. > > - decorators - I've read about them and I get them in theory, and I've > looked at some examples in our code base, but.... I feel like I'm missing > the point. > > - "pythonic" things that seem weird at first but then wonderful once you > get used to them > > That is all I can think of right now. Maybe other newbies can suggest a > topic that will make someone else think: hey, I guess I must be > experienced because I could easily explain that in 10 minutes. > > Marla > > _______________________________________________ > Baypiggies mailing list > Baypiggies at python.org > To change your subscription options or unsubscribe: > http://mail.python.org/mailman/listinfo/baypiggies > > From slacy at slacy.com Mon Jul 12 20:21:29 2010 From: slacy at slacy.com (Stephen Lacy) Date: Mon, 12 Jul 2010 11:21:29 -0700 Subject: [Baypiggies] overriding boolean and,or operators? Message-ID: Hi, According to http://docs.python.org/library/operator.html boolean operators ==, <, >, etc. can be overridden via __eq__(), __lt__(), __gt__(), etc. They also mention *bitwise* and/or operators via __and__() and __or__(). But, I'd like to override the *boolean* operators 'and' and 'or'. Is this possible? Background: I'm experimenting with a library that takes a python expression like this: "(a == b) or (c and d)" And instead of evaluating it via the interpreter, creates (and returns) a representation of said boolean decision tree such that it can be evaluated dynamically and/or converted to some other form, like prefix or postfix (this is just an example and for my own exploration and deeper understanding of operator overrides). I can get this to work if I use the syntax "(a == b) | (c & d)" but I would prefer to use the more pythonic and syntactically correct "and" and "or". Is this possible? Steve -------------- next part -------------- An HTML attachment was scrubbed... URL: From bpederse at gmail.com Mon Jul 12 23:14:20 2010 From: bpederse at gmail.com (Brent Pedersen) Date: Mon, 12 Jul 2010 14:14:20 -0700 Subject: [Baypiggies] overriding boolean and,or operators? In-Reply-To: References: Message-ID: On Mon, Jul 12, 2010 at 11:21 AM, Stephen Lacy wrote: > Hi, > > According to http://docs.python.org/library/operator.html boolean operators > ==, <, >, etc. can be overridden via __eq__(), __lt__(), __gt__(), etc. > > They also mention *bitwise* and/or operators via __and__() and __or__(). > > But, I'd like to override the *boolean* operators 'and' and 'or'.? Is this > possible? > > Background: > > I'm experimenting with a library that takes a python expression like this: > > "(a == b) or (c and d)" > > And instead of evaluating it via the interpreter, creates (and returns) a > representation of said boolean decision tree such that it can be evaluated > dynamically and/or converted to some other form, like prefix or postfix > (this is just an example and for my own exploration and deeper understanding > of operator overrides). > > I can get this to work if I use the syntax "(a == b) | (c & d)" but I would > prefer to use the more pythonic and syntactically correct "and" and "or". > Is this possible? > > Steve > > _______________________________________________ > Baypiggies mailing list > Baypiggies at python.org > To change your subscription options or unsubscribe: > http://mail.python.org/mailman/listinfo/baypiggies > not quite sure i follow your use-case, but... you can also override __nonzero__ which i think is what gets called when you use bool(), but you'll probably still need a bit more, you can add some sugar using this: http://code.activestate.com/recipes/384122-infix-operators/ so you'd have your classes implement __bool_or__ (or whatever you want to call it) and then use: OR = Infix(lambda a, b: a.__bool_or__(b)) MyClass(22) |OR| MyClass(0) where MyClass implements __bool_or__ -brent From slacy at slacy.com Tue Jul 13 00:01:44 2010 From: slacy at slacy.com (Stephen Lacy) Date: Mon, 12 Jul 2010 15:01:44 -0700 Subject: [Baypiggies] overriding boolean and,or operators? In-Reply-To: References: Message-ID: Ah, that Infix example is really cute, but not exactly what I was hoping for. I'm actually playing with a bit of trickery -- the __eq__() operator doesn't need to return a boolean type (like I think __bool__() does). It can return any object. You can use this trick to make __eq__() into a factory method and have it return an object that *represents* the comparison without actually *doing* the comparison. This is useful for things like ORM mappers, where you take the Python expression, traverse the expression tree, translate it into SQL, and then execute it. I'm basing my ideas on the implementation of Column comparators in SQLAlchemy, which you can see some examples of here: http://www.sqlalchemy.org/docs/sqlexpression.html#operators But I'm not working with SQL, I'm trying to do this for another query language. I'm having trouble expressing "and" and "or" in a nice Pythonic way, and if you look at the SQLAlchemy source, they use and_() and or_() methods, which I'd like to try to avoid. I was hoping for some trick, akin to the Infix thing you mentioned, but that would be a little more pythonic. (And, I'm surprised that you can override pretty much everything except for 'and' and 'or') Here's a code example I wrote to get the juices flowing: http://dpaste.com/217476/ Line 60 is where things get interesting, I have to use bitwise "and" instead of boolean and, because as far as I can tell, there's no override for boolean and.... Steve On Mon, Jul 12, 2010 at 2:14 PM, Brent Pedersen wrote: > On Mon, Jul 12, 2010 at 11:21 AM, Stephen Lacy wrote: > > Hi, > > > > According to http://docs.python.org/library/operator.html boolean > operators > > ==, <, >, etc. can be overridden via __eq__(), __lt__(), __gt__(), etc. > > > > They also mention *bitwise* and/or operators via __and__() and __or__(). > > > > But, I'd like to override the *boolean* operators 'and' and 'or'. Is > this > > possible? > > > > Background: > > > > I'm experimenting with a library that takes a python expression like > this: > > > > "(a == b) or (c and d)" > > > > And instead of evaluating it via the interpreter, creates (and returns) a > > representation of said boolean decision tree such that it can be > evaluated > > dynamically and/or converted to some other form, like prefix or postfix > > (this is just an example and for my own exploration and deeper > understanding > > of operator overrides). > > > > I can get this to work if I use the syntax "(a == b) | (c & d)" but I > would > > prefer to use the more pythonic and syntactically correct "and" and "or". > > Is this possible? > > > > Steve > > > > _______________________________________________ > > Baypiggies mailing list > > Baypiggies at python.org > > To change your subscription options or unsubscribe: > > http://mail.python.org/mailman/listinfo/baypiggies > > > > not quite sure i follow your use-case, but... > you can also override __nonzero__ which i think is what gets called > when you use bool(), > but you'll probably still need a bit more, you can add some sugar using > this: > http://code.activestate.com/recipes/384122-infix-operators/ > > so you'd have your classes implement __bool_or__ (or whatever you want > to call it) and then use: > > OR = Infix(lambda a, b: a.__bool_or__(b)) > > MyClass(22) |OR| MyClass(0) > > where MyClass implements __bool_or__ > > -brent > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jim at well.com Tue Jul 13 00:39:40 2010 From: jim at well.com (jim) Date: Mon, 12 Jul 2010 15:39:40 -0700 Subject: [Baypiggies] call for newbie nuggets In-Reply-To: References: <1278786631.1683.51.camel@jim-laptop> Message-ID: <1278974380.1911.9.camel@jim-laptop> thanks, glen. i refuse to put flash on my box, so i didn't take the tour. i looked at the main page, though. if you've got an example or a tho't or two or a pointer to some text, let me know. meantime i'll try to find somebody who can run with this ball. On Sun, 2010-07-11 at 11:25 -0700, Glen Jarvis wrote: > > ... or just suggest a topic that you think > would be a good newbie nugget for some other, > braver, person [who has more time] to present. > > > I saw a Python Magazine article on the UtilityMill, but just glossed > it over... until an Open Source discussion I read today, took me back > to it. > > > For creating a quick web utility from python code, we should check it > out. And, it seems very newbie nugget based. Take a look at this quick > tour: > > > http://utilitymill.com/tour/ > > > Cheers, > > > > > Glen > -- > Whatever you can do or imagine, begin it; > boldness has beauty, magic, and power in it. > > -- Goethe From jim at well.com Tue Jul 13 00:46:30 2010 From: jim at well.com (jim) Date: Mon, 12 Jul 2010 15:46:30 -0700 Subject: [Baypiggies] call for newbie nuggets In-Reply-To: References: Message-ID: <1278974790.1911.16.camel@jim-laptop> thanks, marla, you probably noticed that alex kleider's seconded the decorators idea. i'm betting that a regular beating^H^H^H^H^H^H^H^H repeating of decorator essentials is a good idea. now to find somebody to do the presentation. i love the idea of what's pythonic. i'd like to know. seems like multiple newbie nuggets, each focusing on one pythonic technique, would drill the sense of it home (and "pythonic" does seem a mind set that one acquires, like a taste for scotch whiskey). got any more ideas? On Mon, 2010-07-12 at 05:32 +0000, Marla Parker wrote: > > A newbie nugget is a short talk on a single > > feature of Python programming, maybe a technique > > or language feature or a built-in or..., that > > is from five to ten minutes and targets an > > experienced coder who is fairly new to Python. > > That is me: an experienced coder fairly new to Python. > My 10 years of full time coding ended in 93, and since > then I've been managing developers or working with > developers but never doing code myself for my day job. > > Now I'm working to get back on the keyboard because > frankly it is just more fun than all the other things > I can do. > > So I don't want to give a newbie talk, but I'll suggest > newbie talk subjects that I'd like to attend. > > - decorators - I've read about them and I get them in > theory, and I've looked at some examples in our code base, > but.... I feel like I'm missing the point. > > - "pythonic" things that seem weird at first but then > wonderful once you get used to them > > That is all I can think of right now. Maybe other newbies > can suggest a topic that will make someone else think: > hey, I guess I must be experienced because I could easily > explain that in 10 minutes. > > Marla > > _______________________________________________ > Baypiggies mailing list > Baypiggies at python.org > To change your subscription options or unsubscribe: > http://mail.python.org/mailman/listinfo/baypiggies > From aleax at google.com Tue Jul 13 00:55:38 2010 From: aleax at google.com (Alex Martelli) Date: Mon, 12 Jul 2010 15:55:38 -0700 Subject: [Baypiggies] overriding boolean and,or operators? In-Reply-To: References: Message-ID: `and` and `or` cannot be overridden; they always perform their short-circuit evaluation functionality, no matter what the types on either side. I understand your surprise, because you think of them as operator, but they're like other keywords such as `lambda`, `if`, `else`... they **control what gets executed, when, and whether the execution happens at all in a certain circumstance**. Consider: >>> dis.dis(compile('x & y', 'eval', 'eval')) 1 0 LOAD_NAME 0 (x) 3 LOAD_NAME 1 (y) 6 BINARY_AND 7 RETURN_VALUE THIS is the semantics of an actual operator: BOTH operands get evaluated (here, just a LOAD_NAME for each), THEN the operator's code gets control (and can be overridden). Vs: >>> dis.dis(compile('x and y', 'eval', 'eval')) 1 0 LOAD_NAME 0 (x) 3 JUMP_IF_FALSE 4 (to 10) 6 POP_TOP 7 LOAD_NAME 1 (y) >> 10 RETURN_VALUE as you see, in bytecode terms, 'and' means JUMP_IF_FALSE -- **no** Python-level code (potentially written by the user in an override) ever executes as part of this "SO-CALLED" operator -- which isn't really one, deep down: it's a *control structure*, like e.g. if/else... which ALSO cannot be overridden of course: >>> dis.dis(compile('x if y else z', 'eval', 'eval')) 1 0 LOAD_NAME 0 (y) 3 JUMP_IF_FALSE 5 (to 11) 6 POP_TOP 7 LOAD_NAME 1 (x) 10 RETURN_VALUE >> 11 POP_TOP 12 LOAD_NAME 2 (z) 15 RETURN_VALUE Note the extreme similarity of this bytecode to that of the 'and' so-called "operator" -- 'and' is simpler, of course, but very much akin in semantics and implementation. You cannot override 'and' and 'or' just like you cannot override 'if/else' or 'lambda'. Alex On Mon, Jul 12, 2010 at 3:01 PM, Stephen Lacy wrote: > Ah, that Infix example is really cute, but not exactly what I was hoping > for. > > I'm actually playing with a bit of trickery -- the __eq__() operator doesn't > need to return a boolean type (like I think __bool__() does). It can return > any object.? You can use this trick to make __eq__() into a factory method > and have it return an object that *represents* the comparison without > actually *doing* the comparison.? This is useful for things like ORM > mappers, where you take the Python expression, traverse the expression tree, > translate it into SQL, and then execute it.? I'm basing my ideas on the > implementation of Column comparators in SQLAlchemy, which you can see some > examples of here: > http://www.sqlalchemy.org/docs/sqlexpression.html#operators? But I'm not > working with SQL, I'm trying to do this for another query language. > > I'm having trouble expressing "and" and "or" in a nice Pythonic way, and if > you look at the SQLAlchemy source, they use and_() and or_() methods, which > I'd like to try to avoid. I was hoping for some trick, akin to the Infix > thing you mentioned, but that would be a little more pythonic.? (And, I'm > surprised that you can override pretty much everything except for 'and' and > 'or') > > Here's a code example I wrote to get the juices flowing: > > http://dpaste.com/217476/ > > Line 60 is where things get interesting, I have to use bitwise "and" instead > of boolean and, because as far as I can tell, there's no override for > boolean and.... > > Steve > > On Mon, Jul 12, 2010 at 2:14 PM, Brent Pedersen wrote: >> >> On Mon, Jul 12, 2010 at 11:21 AM, Stephen Lacy wrote: >> > Hi, >> > >> > According to http://docs.python.org/library/operator.html boolean >> > operators >> > ==, <, >, etc. can be overridden via __eq__(), __lt__(), __gt__(), etc. >> > >> > They also mention *bitwise* and/or operators via __and__() and __or__(). >> > >> > But, I'd like to override the *boolean* operators 'and' and 'or'.? Is >> > this >> > possible? >> > >> > Background: >> > >> > I'm experimenting with a library that takes a python expression like >> > this: >> > >> > "(a == b) or (c and d)" >> > >> > And instead of evaluating it via the interpreter, creates (and returns) >> > a >> > representation of said boolean decision tree such that it can be >> > evaluated >> > dynamically and/or converted to some other form, like prefix or postfix >> > (this is just an example and for my own exploration and deeper >> > understanding >> > of operator overrides). >> > >> > I can get this to work if I use the syntax "(a == b) | (c & d)" but I >> > would >> > prefer to use the more pythonic and syntactically correct "and" and >> > "or". >> > Is this possible? >> > >> > Steve >> > >> > _______________________________________________ >> > Baypiggies mailing list >> > Baypiggies at python.org >> > To change your subscription options or unsubscribe: >> > http://mail.python.org/mailman/listinfo/baypiggies >> > >> >> not quite sure i follow your use-case, but... >> you can also override __nonzero__ which i think is what gets called >> when you use bool(), >> but you'll probably still need a bit more, you can add some sugar using >> this: >> http://code.activestate.com/recipes/384122-infix-operators/ >> >> so you'd have your classes implement __bool_or__ (or whatever you want >> to call it) and then use: >> >> OR = Infix(lambda a, b: a.__bool_or__(b)) >> >> MyClass(22) |OR| MyClass(0) >> >> where MyClass implements __bool_or__ >> >> -brent > > > _______________________________________________ > Baypiggies mailing list > Baypiggies at python.org > To change your subscription options or unsubscribe: > http://mail.python.org/mailman/listinfo/baypiggies > From slacy at slacy.com Tue Jul 13 01:01:27 2010 From: slacy at slacy.com (Stephen Lacy) Date: Mon, 12 Jul 2010 16:01:27 -0700 Subject: [Baypiggies] overriding boolean and,or operators? In-Reply-To: References: Message-ID: Cool, thanks for the great explanation, this makes a lot of sense to me now. Steve On Mon, Jul 12, 2010 at 3:55 PM, Alex Martelli wrote: > `and` and `or` cannot be overridden; they always perform their > short-circuit evaluation functionality, no matter what the types on > either side. I understand your surprise, because you think of them as > operator, but they're like other keywords such as `lambda`, `if`, > `else`... they **control what gets executed, when, and whether the > execution happens at all in a certain circumstance**. Consider: > > >>> dis.dis(compile('x & y', 'eval', 'eval')) > 1 0 LOAD_NAME 0 (x) > 3 LOAD_NAME 1 (y) > 6 BINARY_AND > 7 RETURN_VALUE > > THIS is the semantics of an actual operator: BOTH operands get > evaluated (here, just a LOAD_NAME for each), THEN the operator's code > gets control (and can be overridden). Vs: > > >>> dis.dis(compile('x and y', 'eval', 'eval')) > 1 0 LOAD_NAME 0 (x) > 3 JUMP_IF_FALSE 4 (to 10) > 6 POP_TOP > 7 LOAD_NAME 1 (y) > >> 10 RETURN_VALUE > > as you see, in bytecode terms, 'and' means JUMP_IF_FALSE -- **no** > Python-level code (potentially written by the user in an override) > ever executes as part of this "SO-CALLED" operator -- which isn't > really one, deep down: it's a *control structure*, like e.g. > if/else... which ALSO cannot be overridden of course: > > >>> dis.dis(compile('x if y else z', 'eval', 'eval')) > 1 0 LOAD_NAME 0 (y) > 3 JUMP_IF_FALSE 5 (to 11) > 6 POP_TOP > 7 LOAD_NAME 1 (x) > 10 RETURN_VALUE > >> 11 POP_TOP > 12 LOAD_NAME 2 (z) > 15 RETURN_VALUE > > Note the extreme similarity of this bytecode to that of the 'and' > so-called "operator" -- 'and' is simpler, of course, but very much > akin in semantics and implementation. > > You cannot override 'and' and 'or' just like you cannot override > 'if/else' or 'lambda'. > > > Alex > > > On Mon, Jul 12, 2010 at 3:01 PM, Stephen Lacy wrote: > > Ah, that Infix example is really cute, but not exactly what I was hoping > > for. > > > > I'm actually playing with a bit of trickery -- the __eq__() operator > doesn't > > need to return a boolean type (like I think __bool__() does). It can > return > > any object. You can use this trick to make __eq__() into a factory > method > > and have it return an object that *represents* the comparison without > > actually *doing* the comparison. This is useful for things like ORM > > mappers, where you take the Python expression, traverse the expression > tree, > > translate it into SQL, and then execute it. I'm basing my ideas on the > > implementation of Column comparators in SQLAlchemy, which you can see > some > > examples of here: > > http://www.sqlalchemy.org/docs/sqlexpression.html#operators But I'm not > > working with SQL, I'm trying to do this for another query language. > > > > I'm having trouble expressing "and" and "or" in a nice Pythonic way, and > if > > you look at the SQLAlchemy source, they use and_() and or_() methods, > which > > I'd like to try to avoid. I was hoping for some trick, akin to the Infix > > thing you mentioned, but that would be a little more pythonic. (And, I'm > > surprised that you can override pretty much everything except for 'and' > and > > 'or') > > > > Here's a code example I wrote to get the juices flowing: > > > > http://dpaste.com/217476/ > > > > Line 60 is where things get interesting, I have to use bitwise "and" > instead > > of boolean and, because as far as I can tell, there's no override for > > boolean and.... > > > > Steve > > > > On Mon, Jul 12, 2010 at 2:14 PM, Brent Pedersen > wrote: > >> > >> On Mon, Jul 12, 2010 at 11:21 AM, Stephen Lacy wrote: > >> > Hi, > >> > > >> > According to http://docs.python.org/library/operator.html boolean > >> > operators > >> > ==, <, >, etc. can be overridden via __eq__(), __lt__(), __gt__(), > etc. > >> > > >> > They also mention *bitwise* and/or operators via __and__() and > __or__(). > >> > > >> > But, I'd like to override the *boolean* operators 'and' and 'or'. Is > >> > this > >> > possible? > >> > > >> > Background: > >> > > >> > I'm experimenting with a library that takes a python expression like > >> > this: > >> > > >> > "(a == b) or (c and d)" > >> > > >> > And instead of evaluating it via the interpreter, creates (and > returns) > >> > a > >> > representation of said boolean decision tree such that it can be > >> > evaluated > >> > dynamically and/or converted to some other form, like prefix or > postfix > >> > (this is just an example and for my own exploration and deeper > >> > understanding > >> > of operator overrides). > >> > > >> > I can get this to work if I use the syntax "(a == b) | (c & d)" but I > >> > would > >> > prefer to use the more pythonic and syntactically correct "and" and > >> > "or". > >> > Is this possible? > >> > > >> > Steve > >> > > >> > _______________________________________________ > >> > Baypiggies mailing list > >> > Baypiggies at python.org > >> > To change your subscription options or unsubscribe: > >> > http://mail.python.org/mailman/listinfo/baypiggies > >> > > >> > >> not quite sure i follow your use-case, but... > >> you can also override __nonzero__ which i think is what gets called > >> when you use bool(), > >> but you'll probably still need a bit more, you can add some sugar using > >> this: > >> http://code.activestate.com/recipes/384122-infix-operators/ > >> > >> so you'd have your classes implement __bool_or__ (or whatever you want > >> to call it) and then use: > >> > >> OR = Infix(lambda a, b: a.__bool_or__(b)) > >> > >> MyClass(22) |OR| MyClass(0) > >> > >> where MyClass implements __bool_or__ > >> > >> -brent > > > > > > _______________________________________________ > > 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 aahz at pythoncraft.com Tue Jul 13 01:48:58 2010 From: aahz at pythoncraft.com (Aahz) Date: Mon, 12 Jul 2010 16:48:58 -0700 Subject: [Baypiggies] overriding boolean and,or operators? In-Reply-To: References: Message-ID: <20100712234858.GA11458@panix.com> On Mon, Jul 12, 2010, Alex Martelli wrote: > > `and` and `or` cannot be overridden; they always perform their > short-circuit evaluation functionality, no matter what the types on > either side. I understand your surprise, because you think of them as > operator, but they're like other keywords such as `lambda`, `if`, > `else`... they **control what gets executed, when, and whether the > execution happens at all in a certain circumstance**. Just to emphasize Alex's point, this is a necessary part of the boolean short-circuit capability that allows stuff like this: if a is not None and a.valid(): (assume that a contains a method called "valid" if it's not None -- but there's no getattr() for "valid" unless a is not None) -- Aahz (aahz at pythoncraft.com) <*> http://www.pythoncraft.com/ "....Normal is what cuts off your sixth finger and your tail..." --Siobhan From tleonard at google.com Tue Jul 13 01:57:18 2010 From: tleonard at google.com (Tamara Leonard) Date: Mon, 12 Jul 2010 16:57:18 -0700 Subject: [Baypiggies] YouTube - Software Engineers (San Bruno, CA) Message-ID: ** * YouTube is currently recruiting for positions across our Engineering organization!!! YouTube is an extremely team-oriented, creative workplace where every single employee has a voice in the choices we make and the features we implement. We work together in small teams to design, develop, and roll out key features and products in very short time frames. Which means - something you write today could be seen by millions of viewers tomorrow. Despite being the world's largest online video site and part of Google, we still have a relatively small engineering group. We are looking to add a few key impact players to our team. Come see what it's like to work at YouTube http://www.google.com/jobs/workyoutube ! Software Engineer ? YouTube, San Bruno, CA. To apply, please email TLeonard at google.com The area: Software Engineering YouTube's (a Google company) software engineers develop the next-generation technologies for which we've become world-renowned. In addition to revolutionizing search technology, we use our world-class programming skills to innovate in a number of other areas as well. Our projects include working on advanced information-retrieval algorithms, massive scalability and storage solutions, and large-scale applications that enrich the user experience. We also work extensively on networking systems, advertising systems and complex transaction systems in consumer applications. The role: Software Engineer You are a software engineer who can write server-side code for web-based applications, for both internal and external use. You are also a well-rounded developer who knows how to create robust high-volume production applications, and can also develop prototypes quickly. The work is challenging, creative, fast paced and intellectually stimulating. Responsibilities: - Designing, implementing and launching highly-visible, user-facing features. - Developing new ways for YouTube users to find interesting content. - Experience as an architect or technical lead on large project a strong plus. - Design and develop large scale web applications. - Strong verbal and written communication skills, able to create strong working relationship with cross-functional teams. Requirements: - BS or MS in Computer Science or equivalent (PhD a plus). At least 4 years of relevant industry experience. - Extensive experience in at least one object oriented programming language (C/C++ or Java). Experience in Python, Javascript, and Flash development a plus. - Experience in database programming; MySQL preferred. - Knowledge of network programming and extensive knowledge of Unix/Linux environments. - Experience developing/designing large software systems. - Experience in distributed computing, information retrieval, data mining, and machine learning a plus. To apply, please email TLeonard at google.com If the timing isn't right but you would like to keep in touch, please feel free to join my Linked In network by sending an invite to TLeonard at google.com. I look forward to hearing back from you! Thank you, Tamara * -- *Tamara Leonard* Technical Recruiter *YouTube, Inc.* TLeonard at google.com direct: (650) 214 - 6219 http://www.youtube.com/watch?v=ogwPKoXpxEk http://www.google.com/jobs/workyoutube/ -------------- next part -------------- An HTML attachment was scrubbed... URL: From glen at glenjarvis.com Tue Jul 13 02:06:26 2010 From: glen at glenjarvis.com (Glen Jarvis) Date: Mon, 12 Jul 2010 17:06:26 -0700 Subject: [Baypiggies] overriding boolean and,or operators? In-Reply-To: References: Message-ID: Alex, Wesley, Marion, and all instructors; To know Python down to the bytecode level as per Alex's email leaves me in awe.... (and reminds me of how much a newb I am with Python). Does anyone teach a class on this level? An advanced class? I'd *soo* want to take a course like that if/when it ever becomes available... (as long as I have the prereq's of course -- I may not)... Throw in some Cython and other stuff and I'm in heaven. Are any classes like this already scheduled? Cheers, Glen On Mon, Jul 12, 2010 at 3:55 PM, Alex Martelli wrote: > `and` and `or` cannot be overridden; they always perform their > short-circuit evaluation functionality, no matter what the types on > either side. I understand your surprise, because you think of them as > operator, but they're like other keywords such as `lambda`, `if`, > `else`... they **control what gets executed, when, and whether the > execution happens at all in a certain circumstance**. Consider: > > >>> dis.dis(compile('x & y', 'eval', 'eval')) > 1 0 LOAD_NAME 0 (x) > 3 LOAD_NAME 1 (y) > 6 BINARY_AND > 7 RETURN_VALUE > > THIS is the semantics of an actual operator: BOTH operands get > evaluated (here, just a LOAD_NAME for each), THEN the operator's code > gets control (and can be overridden). Vs: > > >>> dis.dis(compile('x and y', 'eval', 'eval')) > 1 0 LOAD_NAME 0 (x) > 3 JUMP_IF_FALSE 4 (to 10) > 6 POP_TOP > 7 LOAD_NAME 1 (y) > >> 10 RETURN_VALUE > > as you see, in bytecode terms, 'and' means JUMP_IF_FALSE -- **no** > Python-level code (potentially written by the user in an override) > ever executes as part of this "SO-CALLED" operator -- which isn't > really one, deep down: it's a *control structure*, like e.g. > if/else... which ALSO cannot be overridden of course: > > >>> dis.dis(compile('x if y else z', 'eval', 'eval')) > 1 0 LOAD_NAME 0 (y) > 3 JUMP_IF_FALSE 5 (to 11) > 6 POP_TOP > 7 LOAD_NAME 1 (x) > 10 RETURN_VALUE > >> 11 POP_TOP > 12 LOAD_NAME 2 (z) > 15 RETURN_VALUE > > Note the extreme similarity of this bytecode to that of the 'and' > so-called "operator" -- 'and' is simpler, of course, but very much > akin in semantics and implementation. > > You cannot override 'and' and 'or' just like you cannot override > 'if/else' or 'lambda'. > > > Alex > > > On Mon, Jul 12, 2010 at 3:01 PM, Stephen Lacy wrote: > > Ah, that Infix example is really cute, but not exactly what I was hoping > > for. > > > > I'm actually playing with a bit of trickery -- the __eq__() operator > doesn't > > need to return a boolean type (like I think __bool__() does). It can > return > > any object. You can use this trick to make __eq__() into a factory > method > > and have it return an object that *represents* the comparison without > > actually *doing* the comparison. This is useful for things like ORM > > mappers, where you take the Python expression, traverse the expression > tree, > > translate it into SQL, and then execute it. I'm basing my ideas on the > > implementation of Column comparators in SQLAlchemy, which you can see > some > > examples of here: > > http://www.sqlalchemy.org/docs/sqlexpression.html#operators But I'm not > > working with SQL, I'm trying to do this for another query language. > > > > I'm having trouble expressing "and" and "or" in a nice Pythonic way, and > if > > you look at the SQLAlchemy source, they use and_() and or_() methods, > which > > I'd like to try to avoid. I was hoping for some trick, akin to the Infix > > thing you mentioned, but that would be a little more pythonic. (And, I'm > > surprised that you can override pretty much everything except for 'and' > and > > 'or') > > > > Here's a code example I wrote to get the juices flowing: > > > > http://dpaste.com/217476/ > > > > Line 60 is where things get interesting, I have to use bitwise "and" > instead > > of boolean and, because as far as I can tell, there's no override for > > boolean and.... > > > > Steve > > > > On Mon, Jul 12, 2010 at 2:14 PM, Brent Pedersen > wrote: > >> > >> On Mon, Jul 12, 2010 at 11:21 AM, Stephen Lacy wrote: > >> > Hi, > >> > > >> > According to http://docs.python.org/library/operator.html boolean > >> > operators > >> > ==, <, >, etc. can be overridden via __eq__(), __lt__(), __gt__(), > etc. > >> > > >> > They also mention *bitwise* and/or operators via __and__() and > __or__(). > >> > > >> > But, I'd like to override the *boolean* operators 'and' and 'or'. Is > >> > this > >> > possible? > >> > > >> > Background: > >> > > >> > I'm experimenting with a library that takes a python expression like > >> > this: > >> > > >> > "(a == b) or (c and d)" > >> > > >> > And instead of evaluating it via the interpreter, creates (and > returns) > >> > a > >> > representation of said boolean decision tree such that it can be > >> > evaluated > >> > dynamically and/or converted to some other form, like prefix or > postfix > >> > (this is just an example and for my own exploration and deeper > >> > understanding > >> > of operator overrides). > >> > > >> > I can get this to work if I use the syntax "(a == b) | (c & d)" but I > >> > would > >> > prefer to use the more pythonic and syntactically correct "and" and > >> > "or". > >> > Is this possible? > >> > > >> > Steve > >> > > >> > _______________________________________________ > >> > Baypiggies mailing list > >> > Baypiggies at python.org > >> > To change your subscription options or unsubscribe: > >> > http://mail.python.org/mailman/listinfo/baypiggies > >> > > >> > >> not quite sure i follow your use-case, but... > >> you can also override __nonzero__ which i think is what gets called > >> when you use bool(), > >> but you'll probably still need a bit more, you can add some sugar using > >> this: > >> http://code.activestate.com/recipes/384122-infix-operators/ > >> > >> so you'd have your classes implement __bool_or__ (or whatever you want > >> to call it) and then use: > >> > >> OR = Infix(lambda a, b: a.__bool_or__(b)) > >> > >> MyClass(22) |OR| MyClass(0) > >> > >> where MyClass implements __bool_or__ > >> > >> -brent > > > > > > _______________________________________________ > > 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 > -- Whatever you can do or imagine, begin it; boldness has beauty, magic, and power in it. -- Goethe -------------- next part -------------- An HTML attachment was scrubbed... URL: From glen at glenjarvis.com Tue Jul 13 02:32:58 2010 From: glen at glenjarvis.com (Glen Jarvis) Date: Mon, 12 Jul 2010 17:32:58 -0700 Subject: [Baypiggies] call for newbie nuggets In-Reply-To: <1278974790.1911.16.camel@jim-laptop> References: <1278974790.1911.16.camel@jim-laptop> Message-ID: We've tried this so many times and we always have mixed results... (But, let's do it again :) It's *hard* to make a decorator talk as a newbie nugget - and explain in a clear and concise way - such a new concept. What if we broke it down into a couple of different newbie nuggets? What about the first one is: 1) How do I use a decorator? (i.e., examples of common decorators and how they are useful) For anyone who's actually used a decorator, this will be boring as sin -- but for anyone who hasn't, this will be a good introduction (and that's what newbie nuggets are for :) Then, another month or another time, we can build on it and we can do a talk of: 2) How to write a basic decorator I like the idea because it gives people a chance to use them first *before* we jump into writing them.... Also, there are tons of things we can leave out of the first talk -- just to keep it simple. If we accept this very *very* basic explanation approach (and part/progressive method over months), I'd consider doing the nugget... Cheers, Glen On Mon, Jul 12, 2010 at 3:46 PM, jim wrote: > > > thanks, marla, > you probably noticed that alex kleider's seconded > the decorators idea. i'm betting that a regular > beating^H^H^H^H^H^H^H^H repeating of decorator > essentials is a good idea. now to find somebody to > do the presentation. > i love the idea of what's pythonic. i'd like to > know. seems like multiple newbie nuggets, each > focusing on one pythonic technique, would drill the > sense of it home (and "pythonic" does seem a mind set > that one acquires, like a taste for scotch whiskey). > > got any more ideas? > > > > On Mon, 2010-07-12 at 05:32 +0000, Marla Parker wrote: > > > A newbie nugget is a short talk on a single > > > feature of Python programming, maybe a technique > > > or language feature or a built-in or..., that > > > is from five to ten minutes and targets an > > > experienced coder who is fairly new to Python. > > > > That is me: an experienced coder fairly new to Python. > > My 10 years of full time coding ended in 93, and since > > then I've been managing developers or working with > > developers but never doing code myself for my day job. > > > > Now I'm working to get back on the keyboard because > > frankly it is just more fun than all the other things > > I can do. > > > > So I don't want to give a newbie talk, but I'll suggest > > newbie talk subjects that I'd like to attend. > > > > - decorators - I've read about them and I get them in > > theory, and I've looked at some examples in our code base, > > but.... I feel like I'm missing the point. > > > > - "pythonic" things that seem weird at first but then > > wonderful once you get used to them > > > > That is all I can think of right now. Maybe other newbies > > can suggest a topic that will make someone else think: > > hey, I guess I must be experienced because I could easily > > explain that in 10 minutes. > > > > Marla > > > > _______________________________________________ > > 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 > -- Whatever you can do or imagine, begin it; boldness has beauty, magic, and power in it. -- Goethe -------------- next part -------------- An HTML attachment was scrubbed... URL: From jeremy.r.fishman at gmail.com Tue Jul 13 02:37:19 2010 From: jeremy.r.fishman at gmail.com (Jeremy Fishman) Date: Mon, 12 Jul 2010 17:37:19 -0700 Subject: [Baypiggies] overriding boolean and,or operators? In-Reply-To: <20100712234858.GA11458@panix.com> References: <20100712234858.GA11458@panix.com> Message-ID: Wow, thanks. It's neat to see the difference between >>> dis.dis(compile('x if y else z', 'eval', 'eval')) 1 0 LOAD_NAME 0 (y) 3 JUMP_IF_FALSE 5 (to 11) 6 POP_TOP 7 LOAD_NAME 1 (x) 10 RETURN_VALUE >> 11 POP_TOP 12 LOAD_NAME 2 (z) 15 RETURN_VALUE >>> dis.dis(compile('y and x or z', 'eval', 'eval')) 1 0 LOAD_NAME 0 (y) 3 JUMP_IF_FALSE 7 (to 13) 6 POP_TOP 7 LOAD_NAME 1 (x) 10 JUMP_IF_TRUE 4 (to 17) >> 13 POP_TOP 14 LOAD_NAME 2 (z) >> 17 RETURN_VALUE in byte code. Now if only I weren't stuck in 2.4.3 at work... - Jeremy On Mon, Jul 12, 2010 at 4:48 PM, Aahz wrote: > On Mon, Jul 12, 2010, Alex Martelli wrote: > > > > `and` and `or` cannot be overridden; they always perform their > > short-circuit evaluation functionality, no matter what the types on > > either side. I understand your surprise, because you think of them as > > operator, but they're like other keywords such as `lambda`, `if`, > > `else`... they **control what gets executed, when, and whether the > > execution happens at all in a certain circumstance**. > > Just to emphasize Alex's point, this is a necessary part of the boolean > short-circuit capability that allows stuff like this: > > if a is not None and a.valid(): > > (assume that a contains a method called "valid" if it's not None -- but > there's no getattr() for "valid" unless a is not None) > -- > Aahz (aahz at pythoncraft.com) <*> > http://www.pythoncraft.com/ > > "....Normal is what cuts off your sixth finger and your tail..." --Siobhan > _______________________________________________ > 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 jim at well.com Tue Jul 13 02:44:47 2010 From: jim at well.com (jim) Date: Mon, 12 Jul 2010 17:44:47 -0700 Subject: [Baypiggies] call for newbie nuggets In-Reply-To: References: <1278974790.1911.16.camel@jim-laptop> Message-ID: <1278981887.1790.10.camel@jim-laptop> i accept, and gladly. On Mon, 2010-07-12 at 17:32 -0700, Glen Jarvis wrote: > We've tried this so many times and we always have mixed results... > (But, let's do it again :) > > > It's *hard* to make a decorator talk as a newbie nugget - and explain > in a clear and concise way - such a new concept. > > > What if we broke it down into a couple of different newbie nuggets? > > > What about the first one is: > 1) How do I use a decorator? (i.e., examples of common decorators > and how they are useful) > > > For anyone who's actually used a decorator, this will be boring as sin > -- but for anyone who hasn't, this will be a good introduction (and > that's what newbie nuggets are for :) > > > > > > > Then, another month or another time, we can build on it and we can do > a talk of: > 2) How to write a basic decorator > > > > > I like the idea because it gives people a chance to use them first > *before* we jump into writing them.... Also, there are tons of things > we can leave out of the first talk -- just to keep it simple. > > > > > > > If we accept this very *very* basic explanation approach (and > part/progressive method over months), I'd consider doing the nugget... > > > > > Cheers, > > > > > Glen > > > > > > > > > > On Mon, Jul 12, 2010 at 3:46 PM, jim wrote: > > > thanks, marla, > you probably noticed that alex kleider's seconded > the decorators idea. i'm betting that a regular > beating^H^H^H^H^H^H^H^H repeating of decorator > essentials is a good idea. now to find somebody to > do the presentation. > i love the idea of what's pythonic. i'd like to > know. seems like multiple newbie nuggets, each > focusing on one pythonic technique, would drill the > sense of it home (and "pythonic" does seem a mind set > that one acquires, like a taste for scotch whiskey). > > got any more ideas? > > > > > On Mon, 2010-07-12 at 05:32 +0000, Marla Parker wrote: > > > A newbie nugget is a short talk on a single > > > feature of Python programming, maybe a technique > > > or language feature or a built-in or..., that > > > is from five to ten minutes and targets an > > > experienced coder who is fairly new to Python. > > > > That is me: an experienced coder fairly new to Python. > > My 10 years of full time coding ended in 93, and since > > then I've been managing developers or working with > > developers but never doing code myself for my day job. > > > > Now I'm working to get back on the keyboard because > > frankly it is just more fun than all the other things > > I can do. > > > > So I don't want to give a newbie talk, but I'll suggest > > newbie talk subjects that I'd like to attend. > > > > - decorators - I've read about them and I get them in > > theory, and I've looked at some examples in our code base, > > but.... I feel like I'm missing the point. > > > > - "pythonic" things that seem weird at first but then > > wonderful once you get used to them > > > > That is all I can think of right now. Maybe other newbies > > can suggest a topic that will make someone else think: > > hey, I guess I must be experienced because I could easily > > explain that in 10 minutes. > > > > Marla > > > > _______________________________________________ > > 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 > > > > > -- > Whatever you can do or imagine, begin it; > boldness has beauty, magic, and power in it. > > -- Goethe > From simeonf at gmail.com Tue Jul 13 02:47:35 2010 From: simeonf at gmail.com (Simeon Franklin) Date: Mon, 12 Jul 2010 17:47:35 -0700 Subject: [Baypiggies] overriding boolean and,or operators? In-Reply-To: References: Message-ID: FWIW - Django's ORM uses the &/| operators to indicate logical "and" and "or" operators in queries [1]. I like the readability of this better than the "and_" and "or_" methods. -regards Simeon Franklin [1] http://docs.djangoproject.com/en/dev/topics/db/queries/#complex-lookups-with-q-objects On Mon, Jul 12, 2010 at 4:01 PM, Stephen Lacy wrote: > Cool, thanks for the great explanation, this makes a lot of sense to me now. > > Steve > > > On Mon, Jul 12, 2010 at 3:55 PM, Alex Martelli wrote: >> >> `and` and `or` cannot be overridden; they always perform their >> short-circuit evaluation functionality, no matter what the types on >> either side. ?I understand your surprise, because you think of them as >> operator, but they're like other keywords such as `lambda`, `if`, >> `else`... they **control what gets executed, when, and whether the >> execution happens at all in a certain circumstance**. ?Consider: >> >> >>> dis.dis(compile('x & y', 'eval', 'eval')) >> ?1 ? ? ? ? ? 0 LOAD_NAME ? ? ? ? ? ? ? ?0 (x) >> ? ? ? ? ? ? ?3 LOAD_NAME ? ? ? ? ? ? ? ?1 (y) >> ? ? ? ? ? ? ?6 BINARY_AND >> ? ? ? ? ? ? ?7 RETURN_VALUE >> >> THIS is the semantics of an actual operator: BOTH operands get >> evaluated (here, just a LOAD_NAME for each), THEN the operator's code >> gets control (and can be overridden). ?Vs: >> >> >>> dis.dis(compile('x and y', 'eval', 'eval')) >> ?1 ? ? ? ? ? 0 LOAD_NAME ? ? ? ? ? ? ? ?0 (x) >> ? ? ? ? ? ? ?3 JUMP_IF_FALSE ? ? ? ? ? ?4 (to 10) >> ? ? ? ? ? ? ?6 POP_TOP >> ? ? ? ? ? ? ?7 LOAD_NAME ? ? ? ? ? ? ? ?1 (y) >> ? ? ? ?>> ? 10 RETURN_VALUE >> >> as you see, in bytecode terms, 'and' means JUMP_IF_FALSE -- **no** >> Python-level code (potentially written by the user in an override) >> ever executes as part of this "SO-CALLED" operator -- which isn't >> really one, deep down: it's a *control structure*, like e.g. >> if/else... which ALSO cannot be overridden of course: >> >> >>> dis.dis(compile('x if y else z', 'eval', 'eval')) >> ?1 ? ? ? ? ? 0 LOAD_NAME ? ? ? ? ? ? ? ?0 (y) >> ? ? ? ? ? ? ?3 JUMP_IF_FALSE ? ? ? ? ? ?5 (to 11) >> ? ? ? ? ? ? ?6 POP_TOP >> ? ? ? ? ? ? ?7 LOAD_NAME ? ? ? ? ? ? ? ?1 (x) >> ? ? ? ? ? ? 10 RETURN_VALUE >> ? ? ? ?>> ? 11 POP_TOP >> ? ? ? ? ? ? 12 LOAD_NAME ? ? ? ? ? ? ? ?2 (z) >> ? ? ? ? ? ? 15 RETURN_VALUE >> >> Note the extreme similarity of this bytecode to that of the 'and' >> so-called "operator" -- 'and' is simpler, of course, but very much >> akin in semantics and implementation. >> >> You cannot override 'and' and 'or' just like you cannot override >> 'if/else' or 'lambda'. >> >> >> Alex >> >> >> On Mon, Jul 12, 2010 at 3:01 PM, Stephen Lacy wrote: >> > Ah, that Infix example is really cute, but not exactly what I was hoping >> > for. >> > >> > I'm actually playing with a bit of trickery -- the __eq__() operator >> > doesn't >> > need to return a boolean type (like I think __bool__() does). It can >> > return >> > any object.? You can use this trick to make __eq__() into a factory >> > method >> > and have it return an object that *represents* the comparison without >> > actually *doing* the comparison.? This is useful for things like ORM >> > mappers, where you take the Python expression, traverse the expression >> > tree, >> > translate it into SQL, and then execute it.? I'm basing my ideas on the >> > implementation of Column comparators in SQLAlchemy, which you can see >> > some >> > examples of here: >> > http://www.sqlalchemy.org/docs/sqlexpression.html#operators? But I'm not >> > working with SQL, I'm trying to do this for another query language. >> > >> > I'm having trouble expressing "and" and "or" in a nice Pythonic way, and >> > if >> > you look at the SQLAlchemy source, they use and_() and or_() methods, >> > which >> > I'd like to try to avoid. I was hoping for some trick, akin to the Infix >> > thing you mentioned, but that would be a little more pythonic.? (And, >> > I'm >> > surprised that you can override pretty much everything except for 'and' >> > and >> > 'or') >> > >> > Here's a code example I wrote to get the juices flowing: >> > >> > http://dpaste.com/217476/ >> > >> > Line 60 is where things get interesting, I have to use bitwise "and" >> > instead >> > of boolean and, because as far as I can tell, there's no override for >> > boolean and.... >> > >> > Steve >> > >> > On Mon, Jul 12, 2010 at 2:14 PM, Brent Pedersen >> > wrote: >> >> >> >> On Mon, Jul 12, 2010 at 11:21 AM, Stephen Lacy wrote: >> >> > Hi, >> >> > >> >> > According to http://docs.python.org/library/operator.html boolean >> >> > operators >> >> > ==, <, >, etc. can be overridden via __eq__(), __lt__(), __gt__(), >> >> > etc. >> >> > >> >> > They also mention *bitwise* and/or operators via __and__() and >> >> > __or__(). >> >> > >> >> > But, I'd like to override the *boolean* operators 'and' and 'or'.? Is >> >> > this >> >> > possible? >> >> > >> >> > Background: >> >> > >> >> > I'm experimenting with a library that takes a python expression like >> >> > this: >> >> > >> >> > "(a == b) or (c and d)" >> >> > >> >> > And instead of evaluating it via the interpreter, creates (and >> >> > returns) >> >> > a >> >> > representation of said boolean decision tree such that it can be >> >> > evaluated >> >> > dynamically and/or converted to some other form, like prefix or >> >> > postfix >> >> > (this is just an example and for my own exploration and deeper >> >> > understanding >> >> > of operator overrides). >> >> > >> >> > I can get this to work if I use the syntax "(a == b) | (c & d)" but I >> >> > would >> >> > prefer to use the more pythonic and syntactically correct "and" and >> >> > "or". >> >> > Is this possible? >> >> > >> >> > Steve >> >> > >> >> > _______________________________________________ >> >> > Baypiggies mailing list >> >> > Baypiggies at python.org >> >> > To change your subscription options or unsubscribe: >> >> > http://mail.python.org/mailman/listinfo/baypiggies >> >> > >> >> >> >> not quite sure i follow your use-case, but... >> >> you can also override __nonzero__ which i think is what gets called >> >> when you use bool(), >> >> but you'll probably still need a bit more, you can add some sugar using >> >> this: >> >> http://code.activestate.com/recipes/384122-infix-operators/ >> >> >> >> so you'd have your classes implement __bool_or__ (or whatever you want >> >> to call it) and then use: >> >> >> >> OR = Infix(lambda a, b: a.__bool_or__(b)) >> >> >> >> MyClass(22) |OR| MyClass(0) >> >> >> >> where MyClass implements __bool_or__ >> >> >> >> -brent >> > >> > >> > _______________________________________________ >> > 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 aahz at pythoncraft.com Tue Jul 13 03:02:18 2010 From: aahz at pythoncraft.com (Aahz) Date: Mon, 12 Jul 2010 18:02:18 -0700 Subject: [Baypiggies] overriding boolean and,or operators? In-Reply-To: References: Message-ID: <20100713010218.GA17090@panix.com> On Mon, Jul 12, 2010, Glen Jarvis wrote: > > To know Python down to the bytecode level as per Alex's email leaves me > in awe.... (and reminds me of how much a newb I am with Python). Does anyone > teach a class on this level? An advanced class? I'd *soo* want to take a > course like that if/when it ever becomes available... (as long as I have > the prereq's of course -- I may not)... I'm doubtful Alex knows Python down to the bytecode level (but because he's Alex I could easily be wrong). Instead, the point is that anyone can use dis.dis to find out that information *yourself*! -- Aahz (aahz at pythoncraft.com) <*> http://www.pythoncraft.com/ "....Normal is what cuts off your sixth finger and your tail..." --Siobhan From aleax at google.com Tue Jul 13 04:45:16 2010 From: aleax at google.com (Alex Martelli) Date: Mon, 12 Jul 2010 19:45:16 -0700 Subject: [Baypiggies] overriding boolean and,or operators? In-Reply-To: <20100713010218.GA17090@panix.com> References: <20100713010218.GA17090@panix.com> Message-ID: On Mon, Jul 12, 2010 at 6:02 PM, Aahz wrote: > On Mon, Jul 12, 2010, Glen Jarvis wrote: >> >> ? ? To know Python down to the bytecode level as per Alex's email leaves me >> in awe.... (and reminds me of how much a newb I am with Python). Does anyone >> teach a class on this level? An advanced class? ?I'd *soo* want to take a >> course like that if/when it ever becomes available... ?(as long as I have >> the prereq's of course -- I may not)... > > I'm doubtful Alex knows Python down to the bytecode level (but because > he's Alex I could easily be wrong). ?Instead, the point is that anyone > can use dis.dis to find out that information *yourself*! Definitely, `dis.dis` is THE way to start learning about bytecode -- which, if you've ever done assembly programming on a stack-oriented machine, is really not hard at all. You can always follow through with ceval.c if there's some part that isn't immediately clear. A couple years ago I did give a tech talk which I had originally titled "highly advanced python: the internals" -- but retitled in a hurry to "slightly advanced python: some well-documented internals" as I saw that the audience (mostly engineers from youtube) would include some people that could give me (or I suspect even Guido) lessons in optimizing and stretching Python to an incredible degree;-). The video is at http://www.youtube.com/watch?v=23s9Wc3aWGY and the PDF of the slides is at http://www.aleax.it/ut_pyadv.pdf . It's just one hour, and covers many issues (metaclasses, descriptors, introspection, garbage collection, stack frames, and bytecode), so it can't go very deep in any of them, but I hope it can serve as an "appetizer" of sorts;-). Alex From tony at tcapp.com Tue Jul 13 05:31:51 2010 From: tony at tcapp.com (Tony Cappellini) Date: Mon, 12 Jul 2010 20:31:51 -0700 Subject: [Baypiggies] call for newbie nuggets In-Reply-To: References: <1278974790.1911.16.camel@jim-laptop> Message-ID: > > > >>It's *hard* to make a decorator talk as a newbie nugget - and explain in > a clear and concise way - such a new concept. > Agreed. Decorators are not something to be glossed over (aka in a nugget). I think it should be a full presentation, with "real-world" examples. -------------- next part -------------- An HTML attachment was scrubbed... URL: From aleax at google.com Tue Jul 13 06:24:28 2010 From: aleax at google.com (Alex Martelli) Date: Mon, 12 Jul 2010 21:24:28 -0700 Subject: [Baypiggies] Thoughts on starting a career as a consultant? In-Reply-To: <4C337538.8000502@fenx.com> References: <4C337538.8000502@fenx.com> Message-ID: On Tue, Jul 6, 2010 at 11:26 AM, Emile van Sebille wrote: > On 7/5/2010 7:37 PM Alex Clark said... >> >> But unlike with day jobs, there is no cap on the amount of money you can >> make as a freelancer. > > Well, there is -- 2000-2500 work hours/year at say $100/hr -- $200k - $250k > (flavor to taste or individual circumstances) ?This is probably the biggest > downside to strict consulting. ?You're selling your time. ?You need to add > people or develop resellable products to go past that and get a multiplier > or residual effect going. On several occasions, I've accepted options, warrants, or restricted stock (at very low valuations, in either case) as part of my compensation, when I consulted for startups I really liked. None of those has made me millions (yet -- some of those startups are _still_ going, they just haven't IPO'd or gotten acquired... yet...!-), but if I had had a better "nose" (or had been a better consultant -- enough to propel my clients to triumphal success against all odds!-), there is, indeed, "no cap" (just as there isn't when you're working full time for a startup -- but then, you _do_ have all your eggs in one basket!-). Yes, you _are_ selling your time, but you can negotiate some part of the compensation to be in lottery tickets. (Negotiate _very_ hard, ideally without seeming to, in such cases: remember you have the upper hand, since cold cash is extremely valuable and scarce for a startup, while stock-based payments are much less so... especially if you forget to negotiate for being paid specific %ages of the company ["number of stocks" is meaningless if you don't know how many will be out altogether by the time you can cash yours;-)] or other conditions such as "privileged" status, or whatever the equivalent is in your country/state, meaning you can cash out at any event that allows _any_ other stockholder to cash out, if you so choose). BTW: 2000-2500 billable hours a year is something of a pipe dream -- sure, you may WORK that much, or more, but you won't be able to BILL that much -- there's a lot of "overhead time" in which you're trying to _sell_ your wares, and some more burned in administering your business. Old hands who gave me advice back when I was transitioning to freelance suggested, as a rule of thumb, that I figure I could bill roughly about half the time I worked (I ended up well above that, but that was due to several pieces of good luck -- but, in any case, nowhere close to 100%). OTOH, $100/hr strikes me as a pretty low rate for consulting (unless maybe it's part of a long-term recurring contract which makes it likely you'll be able to bill a lot of hours, over time, without further "selling" effort, and also with less administrative overhead). Alex From kpguy at rediffmail.com Tue Jul 13 16:33:43 2010 From: kpguy at rediffmail.com (Vikram ) Date: 13 Jul 2010 14:33:43 -0000 Subject: [Baypiggies] =?utf-8?q?nested_lists_problem?= Message-ID: <1277173373.S.1850.48658.f6mail-145-152.rediffmail.com.1279031623.61981@webmail.rediffmail.com> Suppose you have two nested lists, X and Y. A sample element of X is: ['NM_032291', '67000041', '67000051', 'chr1', '+'] Another sample element of X is: ['NM_001097', '51183080', '51183635', 'chr22', '+'] A sample element of Y is: ['chr1', '67000046'] Another sample element of Y is: ['chrY', '59033300'] The objective is to identify whether the second element of an element of Y (e.g. 67000046) lies between the the second and third elements of an element of X (e.g. 67000041 and 67000051). Eventually, one should end up with a modified version of Y, let us say modY, which is a filtered version of Y in which the second element of an element of modY is contained within the second and third elements of an element of X. Any suggestions on how i should be going about implementing this? Thanking you, Vikram -------------- next part -------------- An HTML attachment was scrubbed... URL: From bpederse at gmail.com Tue Jul 13 16:49:49 2010 From: bpederse at gmail.com (Brent Pedersen) Date: Tue, 13 Jul 2010 07:49:49 -0700 Subject: [Baypiggies] nested lists problem In-Reply-To: <1277173373.S.1850.48658.f6mail-145-152.rediffmail.com.1279031623.61981@webmail.rediffmail.com> References: <1277173373.S.1850.48658.f6mail-145-152.rediffmail.com.1279031623.61981@webmail.rediffmail.com> Message-ID: On Tue, Jul 13, 2010 at 7:33 AM, Vikram wrote: > > > Suppose you have two nested lists, X and Y. > A sample element of X is: > ['NM_032291', '67000041', '67000051', 'chr1', '+'] > > Another sample element of X is: > ['NM_001097', '51183080', '51183635', 'chr22', '+'] > > > A sample element of Y is: > ['chr1', '67000046'] > > Another sample element of Y is: > ['chrY', '59033300'] > > The objective is to identify whether the second element of an element of Y (e.g. 67000046) lies between the the second and third elements of an element of X (e.g. 67000041 and 67000051). > > Eventually, one should end up with a modified version of Y, let us say modY, which is a filtered version of Y in which the second element of an element of modY is contained within the second and third elements of an element of X. > > Any suggestions on how i should be going about implementing this? > > Thanking you, > Vikram > > _______________________________________________ > Baypiggies mailing list > Baypiggies at python.org > To change your subscription options or unsubscribe: > http://mail.python.org/mailman/listinfo/baypiggies hi vikram, there's an interval tree in bx-python genomics library that's specifically for this type of query: http://bitbucket.org/james_taylor/bx-python/src/d9c88c9359a0/lib/bx/intervals/intersection.pyx you can just put your X elements in the tree and then query with the Y points (SNPs?) -- after converting them from string to ints there's an example use here: http://biostar.stackexchange.com/questions/617/post-your-prefered-bioinformatics-short-code/637#637 and bx-python is on pypi: http://pypi.python.org/pypi/bx-python/0.6.0 -brent From cappy2112 at gmail.com Wed Jul 14 01:13:48 2010 From: cappy2112 at gmail.com (Tony Cappellini) Date: Tue, 13 Jul 2010 16:13:48 -0700 Subject: [Baypiggies] PyCuda - using video card hardware for parallel computation Message-ID: This is quite an interesting way to put a video card to use. Does anyone have one of these Nvidia cards and have tried using the pyCude package? http://mathema.tician.de/software/pycuda Alex- were you at Pycon Italia this year? Did you happen to see this presentation? Comments? http://mathema.tician.de/node/507 Fernando Perez - is this of any interest for your work? -------------- next part -------------- An HTML attachment was scrubbed... URL: From glen at glenjarvis.com Wed Jul 14 01:21:25 2010 From: glen at glenjarvis.com (Glen Jarvis) Date: Tue, 13 Jul 2010 16:21:25 -0700 Subject: [Baypiggies] PyCuda - using video card hardware for parallel computation In-Reply-To: References: Message-ID: This is eerily familier to a presentation I saw at UC Berkeley. His presentation was "Computing Big Trees: Hardware, Parallelism, and Algorithms" and his name was Alexandros Stamatakis ( http://wwwkramer.in.tum.de/exelixis/people.html). Or, it could be that this is just a hot field and we see lots of people doing something like this. It was interesting.. Cheers, Glen On Tue, Jul 13, 2010 at 4:13 PM, Tony Cappellini wrote: > > This is quite an interesting way to put a video card to use. > > Does anyone have one of these Nvidia cards and have tried using the pyCude > package? > http://mathema.tician.de/software/pycuda > > Alex- were you at Pycon Italia this year? Did you happen to see this > presentation? Comments? > http://mathema.tician.de/node/507 > > > Fernando Perez - is this of any interest for your work? > > > > _______________________________________________ > Baypiggies mailing list > Baypiggies at python.org > To change your subscription options or unsubscribe: > http://mail.python.org/mailman/listinfo/baypiggies > -- Whatever you can do or imagine, begin it; boldness has beauty, magic, and power in it. -- Goethe -------------- next part -------------- An HTML attachment was scrubbed... URL: From aleax at google.com Wed Jul 14 01:24:48 2010 From: aleax at google.com (Alex Martelli) Date: Tue, 13 Jul 2010 16:24:48 -0700 Subject: [Baypiggies] PyCuda - using video card hardware for parallel computation In-Reply-To: References: Message-ID: On Tue, Jul 13, 2010 at 4:13 PM, Tony Cappellini wrote: > > This is quite an interesting way to put a video card to use. > > Does anyone have one of these Nvidia cards and have tried using the pyCude > package? > http://mathema.tician.de/software/pycuda > > Alex- were you at Pycon Italia this year? Did you happen to see this > presentation? Comments? > http://mathema.tician.de/node/507 Alas, I skipped my usual Italy trip this year (next year for sure -- we're hosting Europython in Firenze then!-). Alex From fperez.net at gmail.com Wed Jul 14 02:56:14 2010 From: fperez.net at gmail.com (Fernando Perez) Date: Tue, 13 Jul 2010 17:56:14 -0700 Subject: [Baypiggies] PyCuda - using video card hardware for parallel computation In-Reply-To: References: Message-ID: On Tue, Jul 13, 2010 at 4:13 PM, Tony Cappellini wrote: > > Does anyone have one of these Nvidia cards and have tried using the pyCude > package? > http://mathema.tician.de/software/pycuda Andreas gave a 4-hour tutorial on pycuda and pyopencl at scipy 2 weeks ago: http://conference.scipy.org/scipy2010/tutorials.html and in the main conference, the Theano talk was also along these lines and very interesting (video available): http://conference.scipy.org/scipy2010/schedule.html Cheers, f From sfseth at gmail.com Wed Jul 14 03:14:50 2010 From: sfseth at gmail.com (Seth Friedman) Date: Tue, 13 Jul 2010 18:14:50 -0700 Subject: [Baypiggies] PyCuda - using video card hardware for parallel computation In-Reply-To: References: Message-ID: This is really neat. I've got a CUDA-capable nvidia card I'm thinking I want to write a python program to answer the following question: what/where is the effect of the GIL when programming 240/480/720 1.3ghz cores? It seems like this question must have been conquered to some degree, at least. Is this simply a non issue because there isn't any python "interpreting" happening in parallel, that it's translated in serial (assuming single-threaded/single-process python doing the farming to the GPUs) ..? seth On Tue, Jul 13, 2010 at 5:56 PM, Fernando Perez wrote: > On Tue, Jul 13, 2010 at 4:13 PM, Tony Cappellini > wrote: > > > > Does anyone have one of these Nvidia cards and have tried using the > pyCude > > package? > > http://mathema.tician.de/software/pycuda > > Andreas gave a 4-hour tutorial on pycuda and pyopencl at scipy 2 weeks ago: > > http://conference.scipy.org/scipy2010/tutorials.html > > and in the main conference, the Theano talk was also along these lines > and very interesting (video available): > > http://conference.scipy.org/scipy2010/schedule.html > > Cheers, > > f > _______________________________________________ > 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 hyperneato at gmail.com Wed Jul 14 05:27:26 2010 From: hyperneato at gmail.com (Isaac) Date: Tue, 13 Jul 2010 20:27:26 -0700 Subject: [Baypiggies] hidden features of Python (stackoverflow) Message-ID: http://stackoverflow.com/questions/101268/hidden-features-of-python -------------- next part -------------- An HTML attachment was scrubbed... URL: From keith at dartworks.biz Wed Jul 14 08:27:27 2010 From: keith at dartworks.biz (Keith Dart) Date: Tue, 13 Jul 2010 23:27:27 -0700 Subject: [Baypiggies] hidden features of Python (stackoverflow) In-Reply-To: References: Message-ID: <20100713232727.5cf92d8a@dartworks.biz> === On Tue, 07/13, Isaac wrote: === > http://stackoverflow.com/questions/101268/hidden-features-of-python === Nice. My favorite: Python> from __future__ import braces File "", line 1 SyntaxError: not a chance -- Keith Dart -- -- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Keith Dart public key: ID: 19017044 ===================================================================== From andywiggin at gmail.com Wed Jul 14 18:34:16 2010 From: andywiggin at gmail.com (Andy Wiggin) Date: Wed, 14 Jul 2010 09:34:16 -0700 Subject: [Baypiggies] PyCuda - using video card hardware for parallel computation In-Reply-To: References: Message-ID: On Tue, Jul 13, 2010 at 6:14 PM, Seth Friedman wrote: > This is really neat.?? I've got a CUDA-capable nvidia card I'm thinking I > want to write a python program to answer the following question: what/where > is the effect of the GIL when programming 240/480/720 1.3ghz cores??? It > seems like this question must have been conquered to some degree, at > least.?? Is this simply a non issue because there isn't any python > "interpreting" happening in parallel, that it's translated in serial > (assuming single-threaded/single-process python doing the farming to the > GPUs) ..? > > seth > Seth, it doesn't look to me like any python code is actually executing on the GPU. The "kernels" of code running on the GPU appear to still be written in C (notice the C-format string literals when creating SourceModule objects in the examples; that's what runs on the GPU). So unfortunately I don't think you can do the experiment you're describing. Regards, Andy From akleider at sonic.net Wed Jul 14 18:49:47 2010 From: akleider at sonic.net (akleider at sonic.net) Date: Wed, 14 Jul 2010 09:49:47 -0700 Subject: [Baypiggies] hidden features of Python (stackoverflow) In-Reply-To: <20100713232727.5cf92d8a@dartworks.biz> References: <20100713232727.5cf92d8a@dartworks.biz> Message-ID: <088be7b59c44e376aa10f9d19971a623.squirrel@webmail.sonic.net> .. another suggestion for a 'Newbie Nugget' What's happening here: > Python> from __future__ import braces > File "", line 1 > SyntaxError: not a chance i.e. how is this coded and perhaps a bit of history as to by whom and any other background. There's got to be an amusing story to go along with this. From slacy at slacy.com Wed Jul 14 19:01:23 2010 From: slacy at slacy.com (Stephen Lacy) Date: Wed, 14 Jul 2010 10:01:23 -0700 Subject: [Baypiggies] PyCuda - using video card hardware for parallel computation In-Reply-To: References: Message-ID: Just saw this blog post come by and thought it was relevant to the discussion here: http://ianozsvald.com/2010/07/14/22937-faster-python-math-using-pycuda/ Steve On Wed, Jul 14, 2010 at 9:34 AM, Andy Wiggin wrote: > On Tue, Jul 13, 2010 at 6:14 PM, Seth Friedman wrote: > > This is really neat. I've got a CUDA-capable nvidia card I'm thinking I > > want to write a python program to answer the following question: > what/where > > is the effect of the GIL when programming 240/480/720 1.3ghz cores? It > > seems like this question must have been conquered to some degree, at > > least. Is this simply a non issue because there isn't any python > > "interpreting" happening in parallel, that it's translated in serial > > (assuming single-threaded/single-process python doing the farming to the > > GPUs) ..? > > > > seth > > > > Seth, > it doesn't look to me like any python code is actually executing on > the GPU. The "kernels" of code running on the GPU appear to still be > written in C (notice the C-format string literals when creating > SourceModule objects in the examples; that's what runs on the GPU). So > unfortunately I don't think you can do the experiment you're > describing. > Regards, > Andy > _______________________________________________ > 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 slacy at slacy.com Wed Jul 14 19:15:21 2010 From: slacy at slacy.com (Stephen Lacy) Date: Wed, 14 Jul 2010 10:15:21 -0700 Subject: [Baypiggies] hidden features of Python (stackoverflow) In-Reply-To: <088be7b59c44e376aa10f9d19971a623.squirrel@webmail.sonic.net> References: <20100713232727.5cf92d8a@dartworks.biz> <088be7b59c44e376aa10f9d19971a623.squirrel@webmail.sonic.net> Message-ID: On Wed, Jul 14, 2010 at 9:49 AM, wrote: > > > .. another suggestion for a 'Newbie Nugget' > > What's happening here: > > > > Python> from __future__ import braces > > File "", line 1 > > SyntaxError: not a chance > > i.e. how is this coded and perhaps a bit of history as to by whom and any > other background. There's got to be an amusing story to go along with > this. > Just looked at the source to see how this message is generated. Thought it would be in __future__.py, but it isn't. There's some hacky code in future.c that says: } else if (strcmp(feature, "braces") == 0) { PyErr_SetString(PyExc_SyntaxError, "not a chance"); PyErr_SyntaxLocation(filename, s->lineno); return 0; } else { No interesting comments there or anything. I think this was just a cute addition, and not really something with a "history". :) Steve > > > > _______________________________________________ > 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 Wed Jul 14 20:39:37 2010 From: bdbaddog at gmail.com (William Deegan) Date: Wed, 14 Jul 2010 11:39:37 -0700 Subject: [Baypiggies] Google app engine /google app account for baypiggies.net ? Message-ID: All, I'm tinkering with the idea of moving some or all of baypiggies.net onto GAE. To do so we'd need to setup baypiggies.net on google apps. That way the website could send out emails from baypiggies.net, for example. Anyone opposed? And/or like to work on such a project? -Bill -------------- next part -------------- An HTML attachment was scrubbed... URL: From alecf at flett.org Wed Jul 14 21:05:51 2010 From: alecf at flett.org (Alec Flett) Date: Wed, 14 Jul 2010 12:05:51 -0700 Subject: [Baypiggies] Google app engine /google app account for baypiggies.net ? In-Reply-To: References: Message-ID: I have worked on a number of projects for friends using the whole google-apps-for-domains thing - in general, it's quite nice! The one beef I've had with it is it's not hard to set up really simple mail forwarding aliases like "foo at bar.com -> joe at bar.com" without setting up a group, etc. So I don't know how easy/hard it is to manage a regular mailing list. That said, you don't have to send mail through Google apps for domains, you can set up just the pieces you want (like calendar! that would be an easy way to do an events calendar...) Alec On Wed, Jul 14, 2010 at 11:39 AM, William Deegan wrote: > All, > > I'm tinkering with the idea of moving some or all of baypiggies.net onto > GAE. > To do so we'd need to setup baypiggies.net on google apps. > > That way the website could send out emails from baypiggies.net, for > example. > > Anyone opposed? And/or like to work on such a project? > > -Bill > > _______________________________________________ > 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 sfseth at gmail.com Wed Jul 14 21:09:02 2010 From: sfseth at gmail.com (Seth Friedman) Date: Wed, 14 Jul 2010 12:09:02 -0700 Subject: [Baypiggies] PyCuda - using video card hardware for parallel computation In-Reply-To: References: Message-ID: Right, I didn't think the python was actually running on GPU. So for the case of a million element array where a minute of computation needs to be independently performed on each element, it seems relatively straightforward to send a CUDA swarm of worker bees at the problem. What I'm thinking about is where there are relationships between elements and/or computation - essentially can the elements or worker bees have more logic such as control flow or intercommunication. I'll spend some more time on the pycuda docs but what I think I'm wondering is essentially how rich is the language - is it really just compiling down certain data structures and math, or is there more of the expressive capability present in python. On Wed, Jul 14, 2010 at 9:34 AM, Andy Wiggin wrote: > On Tue, Jul 13, 2010 at 6:14 PM, Seth Friedman wrote: > > This is really neat. I've got a CUDA-capable nvidia card I'm thinking I > > want to write a python program to answer the following question: > what/where > > is the effect of the GIL when programming 240/480/720 1.3ghz cores? It > > seems like this question must have been conquered to some degree, at > > least. Is this simply a non issue because there isn't any python > > "interpreting" happening in parallel, that it's translated in serial > > (assuming single-threaded/single-process python doing the farming to the > > GPUs) ..? > > > > seth > > > > Seth, > it doesn't look to me like any python code is actually executing on > the GPU. The "kernels" of code running on the GPU appear to still be > written in C (notice the C-format string literals when creating > SourceModule objects in the examples; that's what runs on the GPU). So > unfortunately I don't think you can do the experiment you're > describing. > Regards, > Andy > -------------- next part -------------- An HTML attachment was scrubbed... URL: From bdbaddog at gmail.com Wed Jul 14 21:13:44 2010 From: bdbaddog at gmail.com (William Deegan) Date: Wed, 14 Jul 2010 12:13:44 -0700 Subject: [Baypiggies] Google app engine /google app account for baypiggies.net ? In-Reply-To: References: Message-ID: All, I'm not suggesting that we move baypiggies.net to Google apps. I'm suggesting setting up a Google apps account. That way Google app engine can be used to host domains such as reviews.baypiggies.net And additionally if the GAE logic needed to send out emails, it could have a baypiggies.net return address. I'd like to try setting up GAE based book review. -Bill On Wed, Jul 14, 2010 at 12:05 PM, Alec Flett wrote: > I have worked on a number of projects for friends using the whole > google-apps-for-domains thing - in general, it's quite nice! The one beef > I've had with it is it's not hard to set up really simple mail forwarding > aliases like "foo at bar.com -> joe at bar.com" without setting up a group, > etc. > > So I don't know how easy/hard it is to manage a regular mailing list. > > That said, you don't have to send mail through Google apps for domains, you > can set up just the pieces you want (like calendar! that would be an easy > way to do an events calendar...) > > Alec > > On Wed, Jul 14, 2010 at 11:39 AM, William Deegan wrote: > >> All, >> >> I'm tinkering with the idea of moving some or all of baypiggies.net onto >> GAE. >> To do so we'd need to setup baypiggies.net on google apps. >> >> That way the website could send out emails from baypiggies.net, for >> example. >> >> Anyone opposed? And/or like to work on such a project? >> >> -Bill >> >> _______________________________________________ >> 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 andrew at atoulou.se Wed Jul 14 22:38:51 2010 From: andrew at atoulou.se (Andrew Akira Toulouse) Date: Wed, 14 Jul 2010 13:38:51 -0700 Subject: [Baypiggies] PyCuda - using video card hardware for parallel computation In-Reply-To: References: Message-ID: Is expressivity really warranted at that abstraction level? If you're doing a massively parallel computation tuned to nVidia graphics cars that require no I/O, chances are that performance is important enough that the program running on the CPU should distill the problem into its most essential calculations. At least, any environment not designed for that kind of environment probably made compromises that were grossly inappropriate for the platform, and your tradeoff of performance for expressivity could sabotage the platform. On Wed, Jul 14, 2010 at 12:09 PM, Seth Friedman wrote: > Right, I didn't think the python was actually running on GPU.??? So for the > case of a million element array where a minute of computation needs to be > independently performed on each element, it seems relatively straightforward > to send a CUDA swarm of worker bees at the problem.? What I'm thinking about > is where there are relationships between elements and/or computation - > essentially can the elements or worker bees have more logic such as control > flow or intercommunication.????? I'll spend some more time on the pycuda > docs but what I think I'm wondering is essentially how rich is the language > - is it really just compiling down certain data structures and math, or is > there more of the expressive capability present in python. From aahz at pythoncraft.com Wed Jul 14 22:58:56 2010 From: aahz at pythoncraft.com (Aahz) Date: Wed, 14 Jul 2010 13:58:56 -0700 Subject: [Baypiggies] Google app engine /google app account for baypiggies.net ? In-Reply-To: References: Message-ID: <20100714205856.GA27342@panix.com> On Wed, Jul 14, 2010, William Deegan wrote: > > I'm not suggesting that we move baypiggies.net to Google apps. I'm > suggesting setting up a Google apps account. That way Google app > engine can be used to host domains such as reviews.baypiggies.net And > additionally if the GAE logic needed to send out emails, it could have > a baypiggies.net return address. I'd like to try setting up GAE based > book review. That seems fine. My one concern lies with the fact that so much of the Google ecosystem requires a Google login (although I despise Paypal, at least it doesn't force you to login like Google Checkout does, as I learned recently). I really want to avoid making any significant part of baypiggies.net require a Google login (I know I'm not the only person who avoids Google logins). -- Aahz (aahz at pythoncraft.com) <*> http://www.pythoncraft.com/ "....Normal is what cuts off your sixth finger and your tail..." --Siobhan From bdbaddog at gmail.com Wed Jul 14 23:23:39 2010 From: bdbaddog at gmail.com (William Deegan) Date: Wed, 14 Jul 2010 14:23:39 -0700 Subject: [Baypiggies] Google app engine /google app account for baypiggies.net ? In-Reply-To: <20100714205856.GA27342@panix.com> References: <20100714205856.GA27342@panix.com> Message-ID: Aahz, On Wed, Jul 14, 2010 at 1:58 PM, Aahz wrote: > On Wed, Jul 14, 2010, William Deegan wrote: > > > > I'm not suggesting that we move baypiggies.net to Google apps. I'm > > suggesting setting up a Google apps account. That way Google app > > engine can be used to host domains such as reviews.baypiggies.net And > > additionally if the GAE logic needed to send out emails, it could have > > a baypiggies.net return address. I'd like to try setting up GAE based > > book review. > > That seems fine. My one concern lies with the fact that so much of the > Google ecosystem requires a Google login (although I despise Paypal, at > least it doesn't force you to login like Google Checkout does, as I > learned recently). I really want to avoid making any significant part of > baypiggies.net require a Google login (I know I'm not the only person who > avoids Google logins). > Although GAE makes it easier to use google logins for user accounts, it's not the only option. And the login would only apply if you were adding content to the site. So if you've not added/logged into baypiggies.net ever or in a long time, this won't affect you. -Bill -------------- next part -------------- An HTML attachment was scrubbed... URL: From tony at tcapp.com Wed Jul 14 23:29:41 2010 From: tony at tcapp.com (Tony Cappellini) Date: Wed, 14 Jul 2010 14:29:41 -0700 Subject: [Baypiggies] Google app engine /google app account for baypiggies.net ? In-Reply-To: <20100714205856.GA27342@panix.com> References: <20100714205856.GA27342@panix.com> Message-ID: > >>baypiggies.net require a Google login (I know > I'm not the only person who > >>avoids Google logins). > What are the ***technical reasons *** for this? What's wrong with a Google login? -------------- next part -------------- An HTML attachment was scrubbed... URL: From andrew at atoulou.se Thu Jul 15 00:09:13 2010 From: andrew at atoulou.se (Andrew Akira Toulouse) Date: Wed, 14 Jul 2010 15:09:13 -0700 Subject: [Baypiggies] Google app engine /google app account for baypiggies.net ? In-Reply-To: References: <20100714205856.GA27342@panix.com> Message-ID: Probably the same kind of mass paranoia that drives people to avoid Facebook accounts. /me dons flame-retardant suit --Andy On Wed, Jul 14, 2010 at 2:29 PM, Tony Cappellini wrote: > >> >>baypiggies.net require a Google login (I know I'm not the only person >> >> who >> >>avoids Google logins). > > What are the ***technical reasons *** for this? What's wrong with a Google > login? > > > > > _______________________________________________ > Baypiggies mailing list > Baypiggies at python.org > To change your subscription options or unsubscribe: > http://mail.python.org/mailman/listinfo/baypiggies > From aahz at pythoncraft.com Thu Jul 15 06:52:33 2010 From: aahz at pythoncraft.com (Aahz) Date: Wed, 14 Jul 2010 21:52:33 -0700 Subject: [Baypiggies] Google app engine /google app account for baypiggies.net ? In-Reply-To: References: <20100714205856.GA27342@panix.com> Message-ID: <20100715045233.GA3692@panix.com> On Wed, Jul 14, 2010, Tony Cappellini wrote: > Tony deleted the attribution for Aahz as well as some of the text: >> >> baypiggies.net require a Google login (I know >> I'm not the only person who avoids Google logins). > > What are the ***technical reasons *** for this? What's wrong with a Google > login? You are being disingenuous in demanding "***technical reasons ***". Surely you've heard of the Google Buzz rollout? That's hardly an isolated incident, as a bit of, er, Googling would demonstrate. -- Aahz (aahz at pythoncraft.com) <*> http://www.pythoncraft.com/ "....Normal is what cuts off your sixth finger and your tail..." --Siobhan From tony at tcapp.com Thu Jul 15 07:09:00 2010 From: tony at tcapp.com (Tony Cappellini) Date: Wed, 14 Jul 2010 22:09:00 -0700 Subject: [Baypiggies] Google app engine /google app account for baypiggies.net ? In-Reply-To: <20100715045233.GA3692@panix.com> References: <20100714205856.GA27342@panix.com> <20100715045233.GA3692@panix.com> Message-ID: On Wed, Jul 14, 2010 at 9:52 PM, Aahz wrote: > > What are the ***technical reasons *** for this? What's wrong with a > Google > > login? > > >>You are being disingenuous in demanding "***technical reasons ***". > >>Surely you've heard of the Google Buzz rollout? That's hardly an > >>isolated incident, as a bit of, er, Googling would demonstrate. > Googling wouldn't tell me why Aahz doesn't like Google. -------------- next part -------------- An HTML attachment was scrubbed... URL: From aleax at google.com Thu Jul 15 08:21:30 2010 From: aleax at google.com (Alex Martelli) Date: Wed, 14 Jul 2010 23:21:30 -0700 Subject: [Baypiggies] Google app engine /google app account for baypiggies.net ? In-Reply-To: References: <20100714205856.GA27342@panix.com> Message-ID: On Wed, Jul 14, 2010 at 2:23 PM, William Deegan wrote: ... > Although GAE makes it easier to use google logins for user accounts, it's > not the only option. Absolutely not -- even my favorite microframework, http://www.tipfy.org/ , for example, supports (cfr http://www.tipfy.org/docs/api/tipfy.ext.auth.html ) all of: Datastore (?own? users) OpenId (Google, Yahoo etc) OAuth (Google, Twitter, FriendFeed etc) Facebook App Engine?s standard users API (with just about the same API as google.appengine.api.users , btw) -- I imagine richer frameworks offer even more ways to authenticate with equal ease. For a complete tutorial on tipfy's authentication, see http://www.tipfy.org/wiki/tutorials/auth/ (other tutorials currently are a hello world and one on the sessions facility, see http://www.tipfy.org/wiki/tutorials/ ). I suspect tipfy may be one of the rare pieces of open source that has more docs than code (and I personally think that's a GOOD think: the really tiny amount of code makes it a really MICRO framework, the generous amount of docs makes it even easier to learn and use very rapidly -- and for any further add-ons one just reaches into the wealth of WSGI middleware and particularly werkzeug...!-). But, I'm digressing. I suspect any GAE app that demands a google userid is probably written by pretty lazy people (e.g., tipfy users who can't be bothered to read how to configure some or all of the other forms of auth;-). Alex From aleax at google.com Thu Jul 15 08:40:23 2010 From: aleax at google.com (Alex Martelli) Date: Wed, 14 Jul 2010 23:40:23 -0700 Subject: [Baypiggies] Google app engine /google app account for baypiggies.net ? In-Reply-To: References: <20100714205856.GA27342@panix.com> Message-ID: On Wed, Jul 14, 2010 at 2:29 PM, Tony Cappellini wrote: > >> >>baypiggies.net require a Google login (I know I'm not the only person >> >> who >> >>avoids Google logins). > > What are the ***technical reasons *** for this? What's wrong with a Google > login? If you don't use it for anything else, it's one more login that you have to make (and you don't really want to reuse passwords so that if one of your accounts get broken into, all crumble -- you want a password per account of any importance, so the memorization hassle grows faster than O(N)). If you DO use a google account for something else (say work-related, like, for me, the one I'm currently writing from), and you want to keep your activities on a certain GAE site totally uncorrelated from your work (perfectly sensible, depending on the nature of your work and the other site's), then you typically can't be conveniently logged in to sites requiring both accounts in the same browser (unless you use something like a Chrome's incognito window -- but then you'll have to be re-logging-in each and every time you open such a window, since by design it doesn't keep/use cookies across windows or sessions). If you really like one browser much more than all others (maybe you've customized it with tons of extensions, etc), that's annoying (Chrome's incognito mode also turns extensions off by default to help protect the privacy you're presumably seeking when you go incognito...). Not sure if you consider these "technical" issues -- they're "user experience / human factors" issues (an idealized human with perfect memory for unbounded amounts of userids and passwords for each and every site / use, and effortlessy able to keep a few browsers open and updated with extensions &c, wouldn't even notice them -- that's the guy engineers like me typically design for, I guess, 'cuz we're the "technical issues" guys, as opposed to the UI/UX guys who are the softie/feelie ones;-). [[Note: "guy" and "guys" used in strictly gender-neutral senses here]]. It goes without saying that I'm not prompted to realize and express these obvious (if possibly "non technical";-) issues by any dislike of Google -- just the same would apply if you substituted in lieu of "google" any other supplier of identity/authentication credentials (and sites which insist on have you register with them specifically with new credentials -- the most common blight on the web! -- are worse, as they multiply the first problem, the endless proliferation of credentials, exponentially). What _I_ would like is a web where every site acepts openid and oauth credentials _and_ lets you (if you prefer) register specifically with it, in which case the site can (at your request) *supply* openid and oauth credentials to other sites. So, you'd choose a number of appropriate sites to register as many "personas" as you wish, and login into any other site with the credentials of the appropriate persona for that site / your use of that site. Yeah, I know, utopia. But meanwhile there's nothing stopping any GAE app from behaving like this (well, supplying credentials takes a smidgeon more work, but accepting them is trivial, see my previous mail about tipfy). BTW, as a UI for accepting open credentials, I recommend copying that of the stack exchange sites (such as stackoverflow.com) -- *really* simple and intuitive (well, that's IMHO, and I'm hardly a UI expert, admittedly;-). Alex From wescpy at gmail.com Thu Jul 15 09:43:02 2010 From: wescpy at gmail.com (wesley chun) Date: Thu, 15 Jul 2010 00:43:02 -0700 Subject: [Baypiggies] Google app engine /google app account for baypiggies.net ? In-Reply-To: References: <20100714205856.GA27342@panix.com> Message-ID: as a member of the Google App Engine team, i can safely say that starting in 1.3.4, the authentication option(s) for App Engine apps has blown wide open with the availability of OpenID federated login: http://googleappengine.blogspot.com/2010/05/app-engine-at-google-io-2010.html (OAuth service provider was also launched at the same time should you wish to allow 3rd-party access to your App Engine data but don't confuse "authentication" and "authorization.") App Engine apps only need to select "Federated Login" as their authentication option and boom, now the app allows logins from Google, Yahoo!, MySpace, AOL, WordPress, etc., basically, anything on this page: http://openid.net/get-an-openid now you don't need just a Google Account to login to an App Engine app! hope this helps! -- wesley ps. i agree with aahz in that it's annoying to constantly have to create new credentials at every single new web service you run into. i especially don't like being *forced* to do so, esp. at a retailer. i'll end up just shopping elsewhere. apparently, this phenomenon is so common, it has been named: it's called "password fatigue," aka "password chaos" or "identity chaos..." see http://en.wikipedia.org/wiki/Password_fatigue - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - "Core Python Programming", Prentice Hall, (c)2007,2001 "Python Fundamentals", Prentice Hall, (c)2009 ? ? http://corepython.com wesley.j.chun :: wescpy-at-gmail.com python training and technical consulting cyberweb.consulting : silicon valley, ca http://cyberwebconsulting.com From bdbaddog at gmail.com Thu Jul 15 18:58:37 2010 From: bdbaddog at gmail.com (William Deegan) Date: Thu, 15 Jul 2010 09:58:37 -0700 Subject: [Baypiggies] Google app engine /google app account for baypiggies.net ? In-Reply-To: References: <20100714205856.GA27342@panix.com> Message-ID: All, Thanks for the feedback and it sounds like the community has a number of technical resources to draw on should I get stuck. I'll post when I have something to show and/or get stuck. -Bill On Thu, Jul 15, 2010 at 12:43 AM, wesley chun wrote: > as a member of the Google App Engine team, i can safely say that > starting in 1.3.4, the authentication option(s) for App Engine apps > has blown wide open with the availability of OpenID federated login: > > http://googleappengine.blogspot.com/2010/05/app-engine-at-google-io-2010.html > (OAuth service provider was also launched at the same time should you > wish to allow 3rd-party access to your App Engine data but don't > confuse "authentication" and "authorization.") > > App Engine apps only need to select "Federated Login" as their > authentication option and boom, now the app allows logins from Google, > Yahoo!, MySpace, AOL, WordPress, etc., basically, anything on this > page: http://openid.net/get-an-openid > > now you don't need just a Google Account to login to an App Engine app! > > hope this helps! > -- wesley > > ps. i agree with aahz in that it's annoying to constantly have to > create new credentials at every single new web service you run into. i > especially don't like being *forced* to do so, esp. at a retailer. > i'll end up just shopping elsewhere. apparently, this phenomenon is so > common, it has been named: it's called "password fatigue," aka > "password chaos" or "identity chaos..." see > http://en.wikipedia.org/wiki/Password_fatigue > > - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - > "Core Python Programming", Prentice Hall, (c)2007,2001 > "Python Fundamentals", Prentice Hall, (c)2009 > http://corepython.com > > wesley.j.chun :: wescpy-at-gmail.com > python training and technical consulting > cyberweb.consulting : silicon valley, ca > http://cyberwebconsulting.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: From jim at well.com Fri Jul 16 19:55:07 2010 From: jim at well.com (jim) Date: Fri, 16 Jul 2010 10:55:07 -0700 Subject: [Baypiggies] Summary of June Exploiting Parallelism talk, pre-July part-2 Message-ID: <1279302907.1700.161.camel@jim-laptop> For the June BayPIGgies meeting, Minesh B. Amin presented the first of a two-part talk on Exploiting Parallelism. He will present the second part of his talk at the July 22 BayPIGgies meeting. As a reminder and to whet appetites, here is Minesh's summary of the June BayPIGgies talk. ------------------------------------------- MBA Sciences, Inc (www.mbasciences.com) Tel #: 650-938-4306 Email: mamin at mbasciences.com Topic: Exploiting Parallelism : A Concise and Practical Introduction Speaker: Minesh B. Amin, Founder and CEO, MBA Sciences, Inc. In his book "In Search of Clusters", Gregory Pfister said it best. To paraphrase, there are three ways to do anything faster: work harder, work smarter, or get help. In computer-speak, this roughly translates to: increase processor speed, improve algorithms, or exploit parallelism. With processor speeds no longer doubling every eighteen months and little or no room left for improvements in serial algorithms, exploiting parallelism is the one frontier with the potential for delivering huge improvements in performance. In the June 2010 BayPIGgies technical program, we presented our take on the why, what, and how on exploiting parallelism. Preamble -------- Bracketed by the Groucho Marx quote, "Before I speak, I have something important to say", we started off by making a rather astonishing observation about this, approximately 60 year old, field of parallel software engineering; namely, the lack of consensus on the answers to the most fundamental questions in the field ... including ones implied by the title of the talk: * What do we mean by exploiting parallelism? * How does "exploiting parallelism" differ from "parallel programming"? "Exploiting parallelism": Why? ------------------------------ When it comes to leveraging modern computer systems, the challenge of our time is not making existing serial engineering talent proficient in parallel programming. Rather, the challenge of our time is to exploit parallelism in a way that leverages the existing predominantly serial talent and serial development processes. Stated another way ... while the very nature of hardware systems has changed from mainly serial to mainly parallel, our supposition is that serial software engineers will continue to play a dominant role going forward. Hence, we emphasize the why/what/how of thinking about leveraging modern hardware systems in a way that allows serial engineers to focus on the serial component of a parallel application, which is the why/what/how of exploiting parallelism. In a way, exploiting parallelism is analogous to being able to drive a car without getting bogged down in the details of how the engine (parallel component of parallel application) works. The driver only needs to be able to relate to the API of a car, which is close to intent, easy to relate to, and hides the details of how the engine works. "Exploiting parallelism": What? ------------------------------- Exploiting parallelism involves nothing more than the management of a collection of serial tasks. This simple, fourteen word, definition can be applied and used to analyze any parallel solution. "Management" includes policies by which tasks are scheduled, premature terminations are handled, preemptive support is provided, communication primitives are enabled, and cores are obtained and released. Serial tasks come in two flavors: * Coarse grained tasks ... which may not communicate prior to conclusion * Fine grained tasks ... which may communicate prior to conclusion Consider an example where a group of painters are assigned sections of a wall to paint blue. They don't need to communicate with the project manager before they finish ... an example of coarse grained parallelism. In contrast, when assigned sections of a complex image to paint as a mural, communication is required to ensure that the more complex images are aligned properly. (The talk also discussed the trade-offs of authoring and maintaining serial components of a parallel application on distributed and shared memory hardware systems.) "Exploiting parallelism": How? ------------------------------ Armed with our one definition, several parallel enabling technologies were discussed and reviewed, including OpenMPI, Python multi-processing module, MapReduce, OpenMP, and the parallel component of SPM.Python. Exchanges between the speaker and audience touched on basic descriptions of the solutions and their characteristics. For example,the fact that MapReduce is easy to relate to can be attributed to the fact that its API is close to the intent of the serial software engineer. On the other hand, while OpenMPI and OpenMP provide a rich set of communication primitives, they lack any notion of management ... a gap that must be filled, as per our definition, by the serial software engineers. But that gap requires one to be proficient at parallel programming. "Exploiting parallelism": Q&A ----------------------------- The technical program closed with a spirited and engaging Q&A session, touching on many examples, descriptions and analogies covering the parallel solutions reviewed and their characteristics, using the definition of exploiting parallelism presented. ------------------------------------------- The July 22 Talk is titled A Technical Anatomy of SPM.Python (A Scalable, Parallel Version of the Python Language), by Minesh B. Amin Spm.Python, a commercial product, extends Python with a programming paradigm for solving parallel problems and strives to do so in a pythonic (natural) way by augmenting the serial Python language with parallel concepts like parallel task managers and communication primitives. From dmarcus at agraquest.com Fri Jul 16 20:17:23 2010 From: dmarcus at agraquest.com (Debbie Marcus) Date: Fri, 16 Jul 2010 11:17:23 -0700 Subject: [Baypiggies] Job Posting Message-ID: <061E6B1BD985A942997D9771F9B059C60382CE996C@AGQ-EX02.agraquest.int> Please post to your mailing list: AgraQuest, Inc. is seeking a "PYTHON PROGRAMMER" for its Davis, Ca. location. As a Python Developer experienced with Frameworks, preferably TurboGear you will be responsible for continuing the development, deployment and maintenance of custom data management systems and their web interfaces. Using open source relational database, you will create, enhance and maintain databases that will warehouse millions of dollars worth of agricultural field trial and various forms of laboratory data. You will interact with non-informatics scientists to understand their needs in order to efficiently develop Informatics solutions. Excellent communication and great interpersonal skills are highly desired. An innate or acquired desire to promote safer, healthier environment would also be a plus. Please see further details at www.agraquest.com, under the careers section. To apply send your resume to jobs at agraquest.com Thank you! Debbie Marcus Executive Assistant Corporate Recruiter AgraQuest Inc. Better food. Better world. 1540 Drew Ave., Davis, CA 95618, U.S.A. +1 (530) 750-0150 ext. 112 dmarcus at agraquest.com www.agraquest.com This email message and any accompanying document(s) contain confidential information that is only for the use of the intended addressee. Any unauthorized review, use, disclosure, or distribution is strictly prohibited. If you have received this message in error, please contact the sender by reply email and destroy all copies of the original message. -------------- next part -------------- An HTML attachment was scrubbed... URL: From cappy2112 at gmail.com Fri Jul 16 20:51:17 2010 From: cappy2112 at gmail.com (Tony Cappellini) Date: Fri, 16 Jul 2010 11:51:17 -0700 Subject: [Baypiggies] For the iPad users Message-ID: http://sagemath.blogspot.com/2010/05/python-on-ipad-benchmark.html Have any of you installed Python on your iPads? -------------- next part -------------- An HTML attachment was scrubbed... URL: From cappy2112 at gmail.com Sun Jul 18 09:09:33 2010 From: cappy2112 at gmail.com (Tony Cappellini) Date: Sun, 18 Jul 2010 00:09:33 -0700 Subject: [Baypiggies] For those not going to OSCON Message-ID: There will be live streaming of some of the tutorials. *http://tinyurl.com/32op6dp *What a great idea, I hope it works out well. * * -------------- next part -------------- An HTML attachment was scrubbed... URL: From glen at glenjarvis.com Sun Jul 18 18:46:55 2010 From: glen at glenjarvis.com (Glen Jarvis) Date: Sun, 18 Jul 2010 09:46:55 -0700 Subject: [Baypiggies] Examples of Handy Decorators Message-ID: I'm trying to put together a very *very* basic introduction to decorators. This has been done before (several times), so I know there is no silver bullet. What I'm focusing on is: examples of decorators -- from a user perspective -- not how to write one, but how to use one. Could you send any examples (off-list) (either real or fictional) that you would use to help explain to a friend "This is a decorator for your use." (again, currently avoiding the conversation on how to write one). For example, Django has a "login_required" decorator that is handy so that one doesn't have to understand how the login process works. Having the decorator will either work if one is logged in; or will first prompt for a login if one is not. I can think of the logging example also -- where the decorator will log when the function is being called. We've seen this presented as a defacto standard on how a decorator is helpful. Any examples that you can send -- even if it's a line or two -- would be helpful. I think *explaining* decorators are hard. If you already get decorators, then the talks will bore you to tears. If you don't, the explanations never seem good enough. The focus of my very quick presentation will be on the *why to use* (not how to write) -- which seems to be the biggest stumbling block for those just learning. I think this is mitigated by giving concrete small-but-not-toy examples. Once a person gets the *why*, I think its easier to get to the *how* (although there can be some new concepts in there too)... Let the brainstorming/ideas roll :) pretty please :) Cheers, Glen -- Whatever you can do or imagine, begin it; boldness has beauty, magic, and power in it. -- Goethe -------------- next part -------------- An HTML attachment was scrubbed... URL: From simeonf at gmail.com Sun Jul 18 21:21:35 2010 From: simeonf at gmail.com (Simeon Franklin) Date: Sun, 18 Jul 2010 12:21:35 -0700 Subject: [Baypiggies] Examples of Handy Decorators In-Reply-To: References: Message-ID: On Sun, Jul 18, 2010 at 9:46 AM, Glen Jarvis wrote: > The focus of my very quick presentation will be on the *why to use* (not how > to write) -- which seems to be the biggest stumbling block for those just > learning. I think this is mitigated by giving concrete small-but-not-toy > examples. As far as the "why" goes - I think the history makes clear some of the advantages of decorator syntax. I've heard that decorators in python started with the classmethod/staticmethod builtins. You start out with the syntax that shows what's going on: class MyClass def myfunc(): pass myfunc = staticmethod(myfunc) This makes clear what is going on - the method myfunc is modified in some way by the staticmethod builtin. But it seems kind of ugly if you scan lots of code using this idiom - especially with long functions you don't know that the function is somehow "special" until you get to the bottom. Using the @decorator syntax makes the decorated functions stand out. And this comes into play with the most common examples of decorators I've heard. Your example is a good one, If you have a Django views file with a dozen view functions, some of which require authentication and some of which don't, using decorators makes it easy to scan quickly - I've found bugs due to just noticing the missing @ above a function. Static/Class methods fit this pattern. And other typical examples (logging, synchronization) fit this pattern as well - you've got a bunch of functions and @decorator syntax makes explicit visually which ones acquire a lock, etc. -regards Simeon Franklin > Once a person gets the *why*, I think its easier to get to the *how* > (although there can be some new concepts in there too)... > Let the brainstorming/ideas roll :) ?pretty please :) > > Cheers, > > Glen > -- > Whatever you can do or imagine, begin it; > boldness has beauty, magic, and power in it. > > -- Goethe > > _______________________________________________ > 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 Mon Jul 19 05:56:09 2010 From: jim at well.com (jim) Date: Sun, 18 Jul 2010 20:56:09 -0700 Subject: [Baypiggies] BayPIGgies meeting Thursday, July 22, 2010: A Technical Anatomy of SPM.Python Message-ID: <1279511769.1770.218.camel@jim-laptop> BayPIGgies meeting Thursday, July 22, 2010: A Technical Anatomy of SPM.Python Tonight's talk is the second of a two-part presentation: * A Technical Anatomy of SPM.Python by Minesh B. Amin Meetings usually start with a Newbie Nugget, a short discussion of an essential Python feature, especially for those new to Python. Tonight's Newbie Nugget: XXX LOCATION Symantec Corporation Symantec Vcafe 350 Ellis Street Mountain View, CA 94043 http://maps.google.com/maps/ms?oe=utf-8&client=firefox-a&ie=UTF8&fb=1&split=1&gl=us&ei=w6i_Sfr6MZmQsQOzlv0v&hl=en&t=h&msa=0&msid=116202735295394761637.00046550c09ff3d96bff1&ll=37.397693,-122.053707&spn=0.002902,0.004828&z=18 BayPIGgies meeting information is available at http://www.baypiggies.net/ ------------------------ Agenda ------------------------ ..... 7:30 PM ........................... General hubbub, inventory end-of-meeting announcements, any first-minute announcements. ..... 7:35 PM to 7:45 PM ................ Newbie Nugget: ..... 7:45 PM to 8:40 PM (or so) ................ July 22, 2010 -- Second of a two-part presentation: A Technical Anatomy of SPM.Python (A Scalable, Parallel Version of the Python Language) by Minesh B. Amin Spm.Python, a commercial product, extends Python with a programming paradigm for solving parallel problems and strives to do so in a pythonic (natural) way by augmenting the serial Python language with parallel concepts like parallel task managers and communication primitives. This talk examines the what, why, and how of this augmentation. The context for and solutions to several (what were) open technical problems will be discussed, including - extending the general exception handling infrastructure across many compute resources, - designing the parallel constructs in a way so that serial components are delineated from parallel components, - designing and implementating a robust assumption tracking infrastructure (to avoid most forms of parallel deadlocks), - declaring and defining parallel closures (the building blocks of all parallel constructs). Minesh B. Amin is the founder and CEO of MBA Sciences, which recently introduced the SPM.Python product that enables users to easily create parallel applications using an integrated Python API and framework. Minesh received his PhD in Computer Science from the University of Minnesota and moved to the Silicon Valley, developing software solutions at ViewLogic and Synopsys prior to starting MBA Sciences in 2006. He is a big fan of the Python language and in his spare time enjoys Pink Floyd, House, hiking and firing up a barbecue grill, though not necessarily in that order. :-) Links: http://mbasciences.com/ ..... 8:50 PM to 9:30 PM ................ Mapping and Random Access Mapping is a rapid-fire audience announcement of issues, hiring, events, and other topics. Random Access follows people immediately to allow follow up on the announcements and other interests. From jim at well.com Mon Jul 19 06:25:46 2010 From: jim at well.com (jim) Date: Sun, 18 Jul 2010 21:25:46 -0700 Subject: [Baypiggies] July 22 Newbie Nugget: Why Use Decorators, by Glen Jarvis Message-ID: <1279513546.1770.249.camel@jim-laptop> July 22 Newbie Nugget: Why Use Decorators, by Glen Jarvis From Reitmeyer_Richard at emc.com Mon Jul 19 20:49:14 2010 From: Reitmeyer_Richard at emc.com (Reitmeyer_Richard at emc.com) Date: Mon, 19 Jul 2010 14:49:14 -0400 Subject: [Baypiggies] Decorators In-Reply-To: References: Message-ID: <36F6560BE3D6334293EB0F39A8B769654092E630@MX05A.corp.emc.com> Glen Jarvis wrote: > I'm trying to put together a very *very* basic > introduction to decorators. This has been done before > (several times), so I know there is no silver bullet. > > What I'm focusing on is: examples of decorators -- from a > user perspective -- not how to write one, but how to use > one. > > Could you send any examples (off-list) (either real or > fictional) that you would use to help explain to a friend > "This is a decorator for your use." (again, currently > avoiding the conversation on how to write one). > > For example, Django has a "login_required" decorator that > is handy so that one doesn't have to understand how the > login process works. Having the decorator will either work > if one is logged in; or will first prompt for a login if > one is not. > > I can think of the logging example also -- where the > decorator will log when the function is being > called. We've seen this presented as a defacto standard on > how a decorator is helpful. > > Any examples that you can send -- even if it's a line or > two -- would be helpful. I think *explaining* decorators > are hard. If you already get decorators, then the talks > will bore you to tears. If you don't, the explanations > never seem good enough. > > The focus of my very quick presentation will be on the > *why to use* (not how to write) -- which seems to be the > biggest stumbling block for those just learning. I think > this is mitigated by giving concrete small-but-not-toy > examples. > > Once a person gets the *why*, I think its easier to get to > the *how* (although there can be some new concepts in > there too)... > > Let the brainstorming/ideas roll :) pretty please :) Hello, Glen. Here's my stab at it. Complete with typos, no doubt. Decorators do several things, but the best single sentence I can come up with is that they allow extension of existing code through (mathematical) composition without requiring change to callers. If you think of the Template Method design pattern, the most common case is to have the TM call just a single concrete function with some before and after, even though the TM could call as many functions as it liked. Mathematical composition is just that common TM case: it allows us to change the 'before' and 'after' although not the 'guts.' And we don't have to restrict it to functions in a class hierarchy, we can do it with any function we wish. There are many reasons we might want to augment existing code with before and after processing, while leaving the body of the code alone: - Add logging at function entrance / exit - Add security check (EG, Django permissions) at function entrance / exit - Grab and release resources (EG, locks) at function entrance / exit If you have to do this sort of thing, structurally there's no reason you couldn't take your existing code and edit all of it to do the changes. You'd put in try ... finally blocks and be good: def foo(a, b, c): # new setup code here try: # existing code goes here finally: # new teardown code does here (If you have ever written code like this, when this talk is done I hope you'll realize you had a candidate for a decorator.) Of course, if you had to do that for foo() and bar() and baz() with pretty much the same setup/teardown code, you'd probably be better served by writing something closer to this: def my_wrapper(fn, *args, **kwds): # setup code here try: fn(*args, **kwds) finally: # teardown code here As an aside, note how much easier this is in python, with its support of generic programming, than it would be in C or C++, where you'd pretty much need to do different wrappers for functions having different sets of arguments types/counts. The 'my_wrapper' function is much better than fixing foo() and bar() and baz()... except now you need to edit all of the call sites that use to call foo() and replace them with my_wrapper(foo, ...). That will work, technically. BUT, if we're sure no one should ever call a naked foo(), which we are because we were originally going to change foo directly, there is danger with this approach: We could miss one call site in our editing pass. Or someone else could check in their code which uses foo() directly, because they didn't know we were changing it. Or someone using our module has old code using foo()... This may all sound paranoid if you're just working in a small team on a project that does not ship a module for reuse. But in broader circumstances, this could be a major problem, and defensive programming is always worth some consideration. We would be safer if we renamed our foo() to something like _foo() and made a whole new foo() like this: def foo(a, b, c): my_wrapper(_foo, a, b, c) Now we don't have to change call sites, but we do have to rename every function and put in a placeholder function that calls my_wrapper on the private one. That's still a bit tedious, and we have all of these extra _foo functions running around... Maybe we should just buckle down and edit all the original functions, like we'd have done in C? No! We're python programmers, and we don't put up with crap like that :) If we have a object with an attribute that suddenly needs more processing than "here's your value", we don't rewrite out code to replace mypoint.x with mypoint.get_x()... we use properties. Same sort of thing here. Python allows assignment of functions on classes, just like assignment of variables, so it is tempting to think of it like this: def foo(a, b, c): ... original code here ... foo = lambda a, b, c: my_wrapper(foo, a, b, c) # does not work But that gets into problems based on when evaluation of the 'foo' in my_wrapper is done --- it happens at execution of foo(), which makes it recursive. So we need closures, to bind foo-as-was when we do the assignment of the foo function. In python, here is what that would look like: def my_decorator(fn): def x(*args, **kwds): # could just do the my_wrapper body here.... return my_wrapper(fn, *args, **kwds) return x As you can see, 'fn' is bound when x is defined, which is when my_decorator is called. Now we have this: def foo(a, b, c): ... original code here ... foo = my_decorator(foo) Pretty slick: - write one function that has all our logic - don't change call sites, or risk a call site is left unchanged - apply it everywhere, at "cost" of one line like foo = my_decorator(foo) per function to apply the logic to. Criticism of this is that the foo = foo line is a little ugly, and perhaps hard to spot. As python is an evolving language that works to Make Things Better, the BDFL and his merry minions adopted some syntactic sugar to make this 1) even easier; 2) stand out even better. The language now supports this: @my_decorator # just add this one line! def foo(a, b, c): ... original code here ... And we're set. Questions? Richard From fperez.net at gmail.com Mon Jul 19 21:41:39 2010 From: fperez.net at gmail.com (Fernando Perez) Date: Mon, 19 Jul 2010 12:41:39 -0700 Subject: [Baypiggies] Decorators In-Reply-To: <36F6560BE3D6334293EB0F39A8B769654092E630@MX05A.corp.emc.com> References: <36F6560BE3D6334293EB0F39A8B769654092E630@MX05A.corp.emc.com> Message-ID: Howdy, On Mon, Jul 19, 2010 at 11:49 AM, wrote: > Glen Jarvis wrote: > >> I'm trying to put together a very *very* basic >> introduction to decorators. ?This has been done before >> (several times), so I know there is no silver bullet. >> >> What I'm focusing on is: examples of decorators -- from a >> user perspective -- not how to write one, but how to use >> one. >> >> Could you send any examples (off-list) (either real or >> fictional) that you would use to help explain to a friend >> "This is a decorator for your use." ?(again, currently >> avoiding the conversation on how to write one). Not necessarily the most obvious use of decorators, but you may find this useful: http://fperez.org/py4science/decorators.html Cheers, f From jim at well.com Tue Jul 20 18:57:12 2010 From: jim at well.com (jim) Date: Tue, 20 Jul 2010 09:57:12 -0700 Subject: [Baypiggies] background info re this week's meeting topic Message-ID: <1279645032.1677.10.camel@jim-laptop> Daniel Mizyrycki sent in the three links below as background for this week's meeting topic (SPM.Python). http://www.linux.org/docs/ldp/howto/Parallel-Processing-HOWTO-1.html http://www.ibm.com/developerworks/linux/library/l-affinity.html http://www.linuxjournal.com/article/6799 Also, take a look at http://www.mbasciences.com/ which shows the trial product may be available today. From mamin at mbasciences.com Tue Jul 20 19:46:01 2010 From: mamin at mbasciences.com (Minesh B. Amin) Date: Tue, 20 Jul 2010 10:46:01 -0700 Subject: [Baypiggies] background info re this week's meeting topic In-Reply-To: <1279645032.1677.10.camel@jim-laptop> References: <1279645032.1677.10.camel@jim-laptop> Message-ID: <1279647961.2175.17.camel@lusaka> Another link for this week's topic: http://spectrum.ieee.org/computing/software/the-trouble-with-multicore/1 Prof. David Patterson provides a good snapshot of the field ... excluding SPM.* :( The website (www.mbasciences.com) should be updated by 8PM (PST) today (July 20). Cheers, Minesh On Tue, 2010-07-20 at 09:57 -0700, jim wrote: > Daniel Mizyrycki sent in the three links below as > background for this week's meeting topic (SPM.Python). > > http://www.linux.org/docs/ldp/howto/Parallel-Processing-HOWTO-1.html > > http://www.ibm.com/developerworks/linux/library/l-affinity.html > > http://www.linuxjournal.com/article/6799 > > > Also, take a look at http://www.mbasciences.com/ > which shows the trial product may be available today. > > > _______________________________________________ > Baypiggies mailing list > Baypiggies at python.org > To change your subscription options or unsubscribe: > http://mail.python.org/mailman/listinfo/baypiggies -- MBA Sciences, Inc (www.mbasciences.com) Tel #: 650-938-4306 Email: mamin at mbasciences.com From kpguy at rediffmail.com Thu Jul 22 11:53:46 2010 From: kpguy at rediffmail.com (Vikram ) Date: 22 Jul 2010 09:53:46 -0000 Subject: [Baypiggies] =?utf-8?q?list_problem?= Message-ID: <1277173373.S.1850.48658.f6mail-145-152.rediffmail.com.forward.old.1279792426.12639@webmail.rediffmail.com> Suppose you have the following list: >>> x =[['cat',10],['cat',20],['cat',30],['dog',5],['dog',1],['dog',3]] My problem is that i wish to obtain the following two dictionaries: xdictstart = {'cat':10, 'dog':1} xdictend = {'cat':30, 'dog':5} Any nice way to do the above? Thanks. ------- Those interested in the above problem may consider the following code (which does not actually do what i want): >>> xdictend = dict(x) >>> xdictend {'dog': 3, 'cat': 30} >>> x [['cat', 10], ['cat', 20], ['cat', 30], ['dog', 5], ['dog', 1], ['dog', 3]] >>> xdictstart = {} >>> map(xdictstart.setdefault, *zip(*x)) [10, 10, 10, 5, 5, 5] >>> xdictstart {'dog': 5, 'cat': 10} -------------- next part -------------- An HTML attachment was scrubbed... URL: From ferringb at gmail.com Thu Jul 22 13:07:01 2010 From: ferringb at gmail.com (Brian Harring) Date: Thu, 22 Jul 2010 04:07:01 -0700 Subject: [Baypiggies] list problem In-Reply-To: <1277173373.S.1850.48658.f6mail-145-152.rediffmail.com.forward.old.1279792426.12639@webmail.rediffmail.com> References: <1277173373.S.1850.48658.f6mail-145-152.rediffmail.com.forward.old.1279792426.12639@webmail.rediffmail.com> Message-ID: <20100722110701.GB30518@hrair> On Thu, Jul 22, 2010 at 09:53:46AM -0000, Vikram wrote: > Suppose you have the following list: > >>> x =[['cat',10],['cat',20],['cat',30],['dog',5],['dog',1],['dog',3]] > My problem is that i wish to obtain the following two dictionaries: > xdictstart = {'cat':10, 'dog':1} > xdictend = {'cat':30, 'dog':5} > Any nice way to do the above? Thanks. Think you'd be better off stating the var names as min/max there, since that _seems_ to be what you want. Could be wrong though. Suspect your main problem is you're not cheating enough in trying to solve it ;) xdictmin = dict(sorted(x, reverse=True)) xdictmax = dict(sorted(x)) ~brian -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 198 bytes Desc: not available URL: From jsnitow at gmail.com Thu Jul 22 13:21:51 2010 From: jsnitow at gmail.com (Julian Snitow) Date: Thu, 22 Jul 2010 04:21:51 -0700 Subject: [Baypiggies] list problem In-Reply-To: <20100722110701.GB30518@hrair> References: <1277173373.S.1850.48658.f6mail-145-152.rediffmail.com.forward.old.1279792426.12639@webmail.rediffmail.com> <20100722110701.GB30518@hrair> Message-ID: On Thu, Jul 22, 2010 at 4:07 AM, Brian Harring wrote: > > On Thu, Jul 22, 2010 at 09:53:46AM -0000, Vikram ?wrote: > > ? ?Suppose you have the following list: > > ? ?>>> x =[['cat',10],['cat',20],['cat',30],['dog',5],['dog',1],['dog',3]] > > ? ?My problem is that i wish to obtain the following two dictionaries: > > ? ?xdictstart = {'cat':10, 'dog':1} > > ? ?xdictend = {'cat':30, 'dog':5} > > ? ?Any nice way to do the above? Thanks. > > Think you'd be better off stating the var names as min/max there, > since that _seems_ to be what you want. ?Could be wrong though. > > Suspect your main problem is you're not cheating enough in trying to > solve it ;) > > xdictmin = dict(sorted(x, reverse=True)) > xdictmax = dict(sorted(x)) > > ~brian Here's my take on it, which avoids sorting. I present it with the caveat that I like Brian's solution better. :) Julian class Greatest(object): def __cmp__(self, other): return 1 class Least(object): def __cmp__(self, other): return -1 from collections import defaultdict def more_or_less(x): least, greatest = defaultdict(Greatest), defaultdict(Least) for (key, value) in x: if least[key] > value: least[key] = value if greatest[key] < value: greatest[key] = value return [dict(x) for x in least, greatest] From kpguy at rediffmail.com Thu Jul 22 15:38:24 2010 From: kpguy at rediffmail.com (Vikram ) Date: 22 Jul 2010 13:38:24 -0000 Subject: [Baypiggies] =?utf-8?q?list_problem?= In-Reply-To: <20100722110701.GB30518@hrair> Message-ID: <1279796811.S.5779.46184.F.H.TkJyaWFuIEhhcnJpbmcAUmU6IFtCYXlwaWdnaWVzXSBsaXN0IHByb2JsZW0_.f6-145-155.old.1279805904.14379@webmail.rediffmail.com> this is exactly what i wanted to do. many thanks. -Vikram On Thu, 22 Jul 2010 16:36:51 +0530 wrote >On Thu, Jul 22, 2010 at 09:53:46AM -0000, Vikram wrote: > Suppose you have the following list: > >>> x =[['cat',10],['cat',20],['cat',30],['dog',5],['dog',1],['dog',3]] > My problem is that i wish to obtain the following two dictionaries: > xdictstart = {'cat':10, 'dog':1} > xdictend = {'cat':30, 'dog':5} > Any nice way to do the above? Thanks. Think you'd be better off stating the var names as min/max there, since that _seems_ to be what you want. Could be wrong though. Suspect your main problem is you're not cheating enough in trying to solve it ;) xdictmin = dict(sorted(x, reverse=True)) xdictmax = dict(sorted(x)) ~brian -------------- next part -------------- An HTML attachment was scrubbed... URL: From laban.patrick at gmail.com Thu Jul 22 20:52:43 2010 From: laban.patrick at gmail.com (Patrick Laban) Date: Thu, 22 Jul 2010 11:52:43 -0700 Subject: [Baypiggies] Dinner anyone? Message-ID: Anyone want to meet up in Mountain View for dinner before Baypiggies tonight? -------------- next part -------------- An HTML attachment was scrubbed... URL: From luca.pellicoro at gmail.com Thu Jul 22 22:20:06 2010 From: luca.pellicoro at gmail.com (Luca Pellicoro) Date: Thu, 22 Jul 2010 13:20:06 -0700 Subject: [Baypiggies] Dinner anyone? In-Reply-To: References: Message-ID: I'm up for it. Working in mt view near caltrain. On Thu, Jul 22, 2010 at 11:52 AM, Patrick Laban wrote: > Anyone want to meet up in Mountain View for dinner before Baypiggies > tonight? > _______________________________________________ > Baypiggies mailing list > Baypiggies at python.org > To change your subscription options or unsubscribe: > http://mail.python.org/mailman/listinfo/baypiggies > From slacy at slacy.com Thu Jul 22 22:22:23 2010 From: slacy at slacy.com (Stephen Lacy) Date: Thu, 22 Jul 2010 13:22:23 -0700 Subject: [Baypiggies] Dinner anyone? In-Reply-To: References: Message-ID: FYI tonight is the Mountain View "Thursday Night Live" which means Castro St. will be closed after about 4 or 5pm. Parking may be harder, but it's a fun time to head downtown, since they have live music, classic cars, and lots of outdoor dining. That said, I'm busy tonight, but have fun guys. Steve On Thu, Jul 22, 2010 at 1:20 PM, Luca Pellicoro wrote: > I'm up for it. Working in mt view near caltrain. > > On Thu, Jul 22, 2010 at 11:52 AM, Patrick Laban > wrote: > > Anyone want to meet up in Mountain View for dinner before Baypiggies > > tonight? > > _______________________________________________ > > 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 > -------------- next part -------------- An HTML attachment was scrubbed... URL: From tony at tcapp.com Thu Jul 22 22:30:38 2010 From: tony at tcapp.com (Tony Cappellini) Date: Thu, 22 Jul 2010 13:30:38 -0700 Subject: [Baypiggies] Rides from Mountain View Caltrain anyone? Message-ID: If anyone needs a ride from Caltrain to the meeting tonight, email me off list. -------------- next part -------------- An HTML attachment was scrubbed... URL: From glen at glenjarvis.com Thu Jul 22 23:31:42 2010 From: glen at glenjarvis.com (Glen Jarvis) Date: Thu, 22 Jul 2010 14:31:42 -0700 Subject: [Baypiggies] Business Discussion Message-ID: There has been talk recently about how to be a Python contractor. One of those decisions is what type of legal entity would you like to be (Sole Proprietor, LLC, Inc., S-Corp...etc.) Here is a notice that I received from IEEE -- the registration is *now* and the talk is tomorrow. So, if you are interested, you should respond immediately... * Legal Documents 101: * *Operating a Successful Consulting Practice* You are clearly an expert in technology, science and math. But you probably haven't had the time to learn about contracts and non-disclosure agreements, incorporating your business, or what kind of insurance you need or how to collect on late payments. Join the IEEE Consultants Network of Silicon Valley to learn the answers to these questions from top legal experts in the field, Jonathan Sweet, JD and Lonnie Finkel, JD, as the Consulting Practices Program presents: Legal Documents 101: Everything You Need to Know to Operate a Successful Consulting Practice *Main topics include:* Contracts/Agreements - what to watch out for, and what to avoid Sub-contracts - between two consultants or a consultant and a corp. Non-Disclosure Agreements (NDA's) Collecting payments - when to stop work, and how to charge interest on late payments Incorporating your business (Inc, LLC, S-Corp, etc.) *Participate in person or online:* Learn more and Register Here or at:legaldocs101-SFBAC30721.eventbrite.com Date: Friday July 23, 2010 Time: 8:30 AM to 12:30 PM Location: Cogswell Polytechnic College, Sunnyvale, CA (Hwys 101 & 237) Directions: http://www.cogswell.edu/directions.htm (http://www.cogswell.edu/directions.htm) *To register and for more info please visit *Register Here *Registration closes Thursday, July 22nd at 6 PM.* *About the speakers* Jonathan Sweet, JD works for business clients on litigation and transactional matters. He is the author of two books on the subjects of contracts and avoiding litigation, and he has taught law courses at Lincoln Law School of San Jose, San Jose State University (SJSU) and the University of San Francisco (USF). Jonathan has created a Risk Management Video that addresses some important contractual issues. He lectures regularly for Lorman Education Services on transactional and litigation matters. Jonathan received his BA from UC Berkeley in 1978 and his JD from USF in 1985. Lonnie Finkel?s law practice encompasses transactional, litigation and regulatory matters on behalf of business enterprises and individuals. His transactional practice focuses on the formation of new business enterprises ? including corporations, partnerships and limited liability companies ? and counseling clients on the proper governance of those enterprises. He holds a BA from UCLA, an MP from the University of Virginia and a JD from American University?s Washington College of Law. Mr. Finkel is licensed to practice law in California, Maryland and the District of Columbia. http://www.finkellawgroup.com/Lonnie_Finkel.php *Learn more and *Register Here *NOTE: Registration closes on July 22nd at 6 PM* -- Whatever you can do or imagine, begin it; boldness has beauty, magic, and power in it. -- Goethe -------------- next part -------------- An HTML attachment was scrubbed... URL: From glen at glenjarvis.com Thu Jul 22 23:35:06 2010 From: glen at glenjarvis.com (Glen Jarvis) Date: Thu, 22 Jul 2010 14:35:06 -0700 Subject: [Baypiggies] Business Discussion In-Reply-To: References: Message-ID: As an alternative to the previous IEEE advertised course, there are also courses from the Small Business Association (SBA) -- quite often free. This is from the San Francisco SBA (where I live), but you may also contact your local SBA. On 4-August, there is a talk to discuss some of the same issues: *Business Law Basics* 8/4 3:30 PM - 5:30 PM An experienced business lawyer will discuss Choice of Legal Entity (corporations, LLC, partnership, etc.); Intellectual Property; Employee issues; and Real Estate issues. This class does not constitute legal advice. Cheers, Glen On Thu, Jul 22, 2010 at 2:31 PM, Glen Jarvis wrote: > There has been talk recently about how to be a Python contractor. One of > those decisions is what type of legal entity would you like to be (Sole > Proprietor, LLC, Inc., S-Corp...etc.) > > > Here is a notice that I received from IEEE -- the registration is *now* and > the talk is tomorrow. So, if you are interested, you should respond > immediately... > * > Legal Documents 101: * > *Operating a Successful Consulting Practice* > > > You are clearly an expert in technology, science and math. But you probably > haven't had the time to learn about contracts and non-disclosure agreements, > incorporating your business, or what kind of insurance you need or how to > collect on late payments. > > Join the IEEE Consultants Network of Silicon Valley to learn the answers > to these questions from top legal experts in the field, Jonathan Sweet, JD > and Lonnie Finkel, JD, as the Consulting Practices Program presents: > > Legal Documents 101: Everything You Need to Know to Operate a Successful > Consulting Practice > > *Main topics include:* > Contracts/Agreements - what to watch out for, and what to avoid > Sub-contracts - between two consultants or a consultant and a corp. > Non-Disclosure Agreements (NDA's) > Collecting payments - when to stop work, and how to charge interest on late > payments > Incorporating your business (Inc, LLC, S-Corp, etc.) > > > *Participate in person or online:* Learn more and Register Here or > at:legaldocs101-SFBAC30721.eventbrite.com > > Date: Friday July 23, 2010 > Time: 8:30 AM to 12:30 PM > Location: Cogswell Polytechnic College, Sunnyvale, CA (Hwys 101 & > 237) > Directions: http://www.cogswell.edu/directions.htm > (http://www.cogswell.edu/directions.htm) > > *To register and for more info please visit *Register Here > *Registration closes Thursday, July 22nd at 6 PM.* > > > *About the speakers* > Jonathan Sweet, JD works for business clients on litigation and > transactional matters. He is the author of two books on the subjects of > contracts and avoiding litigation, and he has taught law courses at Lincoln > Law School of San Jose, San Jose State University (SJSU) and the University > of San Francisco (USF). Jonathan has created a Risk Management Video that > addresses some important contractual issues. He lectures regularly for > Lorman Education Services on transactional and litigation matters. Jonathan > received his BA from UC Berkeley in 1978 and his JD from USF in 1985. > > Lonnie Finkel?s law practice encompasses transactional, litigation and > regulatory matters on behalf of business enterprises and individuals. His > transactional practice focuses on the formation of new business enterprises > ? including corporations, partnerships and limited liability companies ? and > counseling clients on the proper governance of those enterprises. He holds a > BA from UCLA, an MP from the University of Virginia and a JD from American > University?s Washington College of Law. Mr. Finkel is licensed to practice > law in California, Maryland and the District of Columbia. > http://www.finkellawgroup.com/Lonnie_Finkel.php > > *Learn more and *Register Here > *NOTE: Registration closes on July 22nd at 6 PM* > > > > -- > Whatever you can do or imagine, begin it; > boldness has beauty, magic, and power in it. > > -- Goethe > -- Whatever you can do or imagine, begin it; boldness has beauty, magic, and power in it. -- Goethe -------------- next part -------------- An HTML attachment was scrubbed... URL: From python at dylanreinhardt.com Fri Jul 23 00:41:28 2010 From: python at dylanreinhardt.com (Dylan Reinhardt) Date: Thu, 22 Jul 2010 15:41:28 -0700 Subject: [Baypiggies] Business Discussion In-Reply-To: References: Message-ID: It's always a good idea to get more education on the relevant issues. HOWEVER... When it comes time to actually set up a company, do not do this yourself. Have a lawyer do it. Incorporation papers are pretty much boilerplate law, but you want to have the name of a law office on your legal records. Nothing says "sue me" like announcing to other lawyers that you are unrepresented. In a more philosophical sense, consider that you're trying to make a living selling expertise. If you don't believe in paying other people for their expertise, you'll have a very difficult time understanding how to sell your own. DIY thinking is a professional weakness, not a secret weapon. $.02 On Thu, Jul 22, 2010 at 2:31 PM, Glen Jarvis wrote: > There has been talk recently about how to be a Python contractor. One of > those decisions is what type of legal entity would you like to be (Sole > Proprietor, LLC, Inc., S-Corp...etc.) > > > Here is a notice that I received from IEEE -- the registration is *now* and > the talk is tomorrow. So, if you are interested, you should respond > immediately... > * > Legal Documents 101: * > *Operating a Successful Consulting Practice* > > > You are clearly an expert in technology, science and math. But you probably > haven't had the time to learn about contracts and non-disclosure agreements, > incorporating your business, or what kind of insurance you need or how to > collect on late payments. > > Join the IEEE Consultants Network of Silicon Valley to learn the answers > to these questions from top legal experts in the field, Jonathan Sweet, JD > and Lonnie Finkel, JD, as the Consulting Practices Program presents: > > Legal Documents 101: Everything You Need to Know to Operate a Successful > Consulting Practice > > *Main topics include:* > Contracts/Agreements - what to watch out for, and what to avoid > Sub-contracts - between two consultants or a consultant and a corp. > Non-Disclosure Agreements (NDA's) > Collecting payments - when to stop work, and how to charge interest on late > payments > Incorporating your business (Inc, LLC, S-Corp, etc.) > > > *Participate in person or online:* Learn more and Register Here or > at:legaldocs101-SFBAC30721.eventbrite.com > > Date: Friday July 23, 2010 > Time: 8:30 AM to 12:30 PM > Location: Cogswell Polytechnic College, Sunnyvale, CA (Hwys 101 & > 237) > Directions: http://www.cogswell.edu/directions.htm > (http://www.cogswell.edu/directions.htm) > > *To register and for more info please visit *Register Here > *Registration closes Thursday, July 22nd at 6 PM.* > > > *About the speakers* > Jonathan Sweet, JD works for business clients on litigation and > transactional matters. He is the author of two books on the subjects of > contracts and avoiding litigation, and he has taught law courses at Lincoln > Law School of San Jose, San Jose State University (SJSU) and the University > of San Francisco (USF). Jonathan has created a Risk Management Video that > addresses some important contractual issues. He lectures regularly for > Lorman Education Services on transactional and litigation matters. Jonathan > received his BA from UC Berkeley in 1978 and his JD from USF in 1985. > > Lonnie Finkel?s law practice encompasses transactional, litigation and > regulatory matters on behalf of business enterprises and individuals. His > transactional practice focuses on the formation of new business enterprises > ? including corporations, partnerships and limited liability companies ? and > counseling clients on the proper governance of those enterprises. He holds a > BA from UCLA, an MP from the University of Virginia and a JD from American > University?s Washington College of Law. Mr. Finkel is licensed to practice > law in California, Maryland and the District of Columbia. > http://www.finkellawgroup.com/Lonnie_Finkel.php > > *Learn more and *Register Here > *NOTE: Registration closes on July 22nd at 6 PM* > > > > -- > Whatever you can do or imagine, begin it; > boldness has beauty, magic, and power in it. > > -- Goethe > > _______________________________________________ > 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 akleider at sonic.net Fri Jul 23 00:59:54 2010 From: akleider at sonic.net (akleider at sonic.net) Date: Thu, 22 Jul 2010 15:59:54 -0700 Subject: [Baypiggies] Dinner anyone? In-Reply-To: References: Message-ID: <4b3112029d9a7093a72835d389b3a78d.squirrel@webmail.sonic.net> yes, is it too late to arrange? I was thinking of going to Cascal a little after 6pm. http://www.cascalrestaurant.com/about_map.asp I'll check email about 5pm or after; also 650/269-8936 is my mobile. alex > Anyone want to meet up in Mountain View for dinner before Baypiggies > tonight? > _______________________________________________ > Baypiggies mailing list > Baypiggies at python.org > To change your subscription options or unsubscribe: > http://mail.python.org/mailman/listinfo/baypiggies From travis+ml-baypiggies at subspacefield.org Fri Jul 23 03:40:28 2010 From: travis+ml-baypiggies at subspacefield.org (travis+ml-baypiggies at subspacefield.org) Date: Thu, 22 Jul 2010 18:40:28 -0700 Subject: [Baypiggies] Python Web Application & Programming Pages Message-ID: <20100723014028.GA8053@subspacefield.org> I know I'm going to talk to someone about this tonight, so I might as well send the link out first. http://www.subspacefield.org/~travis/python_web_authoring_programming.html Represents several weeks worth of work; still under construction, but might be useful for anyone wanting to do web page generation or web app programming. -- A Weapon of Mass Construction My emails do not have attachments; it's a digital signature that your mail program doesn't understand. | http://www.subspacefield.org/~travis/ If you are a spammer, please email john at subspacefield.org to get blacklisted. -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 833 bytes Desc: not available URL: From keith at dartworks.biz Fri Jul 23 03:47:48 2010 From: keith at dartworks.biz (Keith Dart) Date: Thu, 22 Jul 2010 18:47:48 -0700 Subject: [Baypiggies] Python Web Application & Programming Pages In-Reply-To: <20100723014028.GA8053@subspacefield.org> References: <20100723014028.GA8053@subspacefield.org> Message-ID: <20100722184748.37e3e598@dartworks.biz> === On Thu, 07/22, travis+ml-baypiggies at subspacefield.org wrote: === > Represents several weeks worth of work; still under construction, but > might be useful for anyone wanting to do web page generation or web > app programming. === Or you can write your own. ;-) http://code.google.com/p/pycopia/source/browse/#svn/trunk/WWW/pycopia/WWW Which I do use in "production". -- Keith Dart -- -- -------------------- Keith Dart python -m this ======================= -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 490 bytes Desc: not available URL: From travis+ml-baypiggies at subspacefield.org Fri Jul 23 04:01:11 2010 From: travis+ml-baypiggies at subspacefield.org (travis+ml-baypiggies at subspacefield.org) Date: Thu, 22 Jul 2010 19:01:11 -0700 Subject: [Baypiggies] DFD: The Dynamic Firewall Daemon - in 100% pure python Message-ID: <20100723020111.GB8053@subspacefield.org> Basic idea: http://www.subspacefield.org/security/dfd/ Best implementation: http://www.subspacefield.org/security/dfd_keeper/ Old Linux/iptables version - looking for new owner: http://www.subspacefield.org/security/dfd_tbk/code/dfd_tbk/ I can give a talk about this one day, but the end goal is a smart network, where your IDS, port knocking daemon, and sniffers cooperate to manage your firewall rules. One day I'd like to BSD-license the whole thing and let router vendors incorporate it, and get game designers to send out packets that identify what port forwarding the game needs. -- A Weapon of Mass Construction My emails do not have attachments; it's a digital signature that your mail program doesn't understand. | http://www.subspacefield.org/~travis/ If you are a spammer, please email john at subspacefield.org to get blacklisted. -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 833 bytes Desc: not available URL: From glen at glenjarvis.com Fri Jul 23 05:26:29 2010 From: glen at glenjarvis.com (Glen Jarvis) Date: Thu, 22 Jul 2010 20:26:29 -0700 Subject: [Baypiggies] Code from our Talk today Message-ID: I set up a wireless connection for us today. I had thought it wasn't working -- however, it looks like it still is. If you're in the audience now you have a connection if you wish. SSID: BayPIGgies Glen Jarvis Obviously I won't use the same ssid next time. The decorators.py file that I used as a demonstration is available here: http://dl.dropbox.com/u/4037234/decorators.py This file has everything in it: http://dl.dropbox.com/u/4037234/decorators.zip The files contained in the above archive are: * BayPIGgies Newbie Nugget 20100722.pdf (Slides from today) * decorators_help.pdf (Help File describing decorators.py -- you don't need to understand the code, but you should understand the comments) * decorators_help.txt (Same as above, but without having to require anyone to have Adobe Reader installed) * decorators.py (The main file that we were importing and using) * example1.py (Our first example -- on_exit) * example2.py (Our second example - accepts) * example3.py Our third example - returns) * example4.py (Our fourth examlpe - attrs) * example5.py (We didn't discuss -- prepared in case we want to learn how to write a basic decorator) * example6.py (We didn't discuss -- prepared in case we want to learn how to write a basic decorator) * example7.py (We didn't discuss -- prepared in case we want to learn how to write a basic decorator) All feedback is appreciated. Warmest Regards, Glen Jarvis -- Whatever you can do or imagine, begin it; boldness has beauty, magic, and power in it. -- Goethe -------------- next part -------------- An HTML attachment was scrubbed... URL: From keith at dartworks.biz Fri Jul 23 11:15:15 2010 From: keith at dartworks.biz (Keith Dart) Date: Fri, 23 Jul 2010 02:15:15 -0700 Subject: [Baypiggies] BayPIGgies meeting Thursday, July 22, 2010: A Technical Anatomy of SPM.Python In-Reply-To: <1279511769.1770.218.camel@jim-laptop> References: <1279511769.1770.218.camel@jim-laptop> Message-ID: <20100723021515.3b9c408f@dartworks.biz> === On Sun, 07/18, jim wrote: === > Spm.Python, a commercial product, extends Python with a > programming paradigm for solving parallel problems and > strives to do so in a pythonic (natural) way by augmenting > the serial Python language with parallel concepts like > parallel task managers and communication primitives. === However, Parallel Python might be good enough for many. http://www.parallelpython.com/ -- Keith Dart -- -- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Keith Dart public key: ID: 19017044 ===================================================================== From travis+ml-baypiggies at subspacefield.org Fri Jul 23 18:20:22 2010 From: travis+ml-baypiggies at subspacefield.org (travis+ml-baypiggies at subspacefield.org) Date: Fri, 23 Jul 2010 09:20:22 -0700 Subject: [Baypiggies] DFD: The Dynamic Firewall Daemon - in 100% pure python In-Reply-To: <20100723020111.GB8053@subspacefield.org> References: <20100723020111.GB8053@subspacefield.org> Message-ID: <20100723162022.GA24255@subspacefield.org> On Thu, Jul 22, 2010 at 07:01:11PM -0700, travis+ml-baypiggies at subspacefield.org wrote: > Best implementation: > http://www.subspacefield.org/security/dfd_keeper/ Oh and if anyone can figure out how I can market this app better, please let me know. There's been a general lack of interest that I've never quite figured out. I'm pretty sure that it must have something to do with my presentation, but maybe people just don't care about network security as much as I do too. -- A Weapon of Mass Construction My emails do not have attachments; it's a digital signature that your mail program doesn't understand. | http://www.subspacefield.org/~travis/ If you are a spammer, please email john at subspacefield.org to get blacklisted. -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 833 bytes Desc: not available URL: From dmarcus at agraquest.com Fri Jul 23 21:11:35 2010 From: dmarcus at agraquest.com (Debbie Marcus) Date: Fri, 23 Jul 2010 12:11:35 -0700 Subject: [Baypiggies] Job Posting Message-ID: <061E6B1BD985A942997D9771F9B059C60382CE9A38@AGQ-EX02.agraquest.int> Please post to your mailing list: AgraQuest, Inc. is seeking a "PYTHON PROGRAMMER" for its Davis, Ca. location. As a Python Developer experienced with Frameworks, preferably TurboGear you will be responsible for continuing the development, deployment and maintenance of custom data management systems and their web interfaces. Using open source relational database, you will create, enhance and maintain databases that will warehouse millions of dollars worth of agricultural field trial and various forms of laboratory data. You will interact with non-informatics scientists to understand their needs in order to efficiently develop Informatics solutions. Excellent communication and great interpersonal skills are highly desired. An innate or acquired desire to promote safer, healthier environment would also be a plus. Please see further details at www.agraquest.com, under the careers section. To apply send your resume to jobs at agraquest.com Thank you! Debbie Marcus Executive Assistant Corporate Recruiter AgraQuest Inc. Better food. Better world. 1540 Drew Ave., Davis, CA 95618, U.S.A. +1 (530) 750-0150 ext. 112 dmarcus at agraquest.com www.agraquest.com This email message and any accompanying document(s) contain confidential information that is only for the use of the intended addressee. Any unauthorized review, use, disclosure, or distribution is strictly prohibited. If you have received this message in error, please contact the sender by reply email and destroy all copies of the original message. -------------- next part -------------- An HTML attachment was scrubbed... URL: From mamin at mbasciences.com Sat Jul 24 00:49:30 2010 From: mamin at mbasciences.com (Minesh B. Amin) Date: Fri, 23 Jul 2010 15:49:30 -0700 Subject: [Baypiggies] BayPIGgies meeting Thursday, July 22, 2010: A Technical Anatomy of SPM.Python In-Reply-To: <20100723021515.3b9c408f@dartworks.biz> References: <1279511769.1770.218.camel@jim-laptop> <20100723021515.3b9c408f@dartworks.biz> Message-ID: <1279925370.2364.44.camel@lusaka> Hi Keith, True enough. There are plenty of choices. At the end of the day, the only thing that matters is how any solution helps people solve their problems within their constraints. So, yes, while there are plenty of choices, we believe people will be presently surprised by what they can achieve when using SPM.Python. As the new player, we believe we must provide at least one of the following: * 10x smaller scripts ... mainly because parallel primitives are much closer to intent, * 10x increase in productivity ... because scripts are much more fault tolerant; i.e. no need to handhold various parallel jobs Otherwise, in this economy, why should anybody waste their time dealing with us, right? Regards, Minesh On Fri, 2010-07-23 at 02:15 -0700, Keith Dart wrote: > === On Sun, 07/18, jim wrote: === > > Spm.Python, a commercial product, extends Python with a > > programming paradigm for solving parallel problems and > > strives to do so in a pythonic (natural) way by augmenting > > the serial Python language with parallel concepts like > > parallel task managers and communication primitives. > === > > However, Parallel Python might be good enough for many. > > http://www.parallelpython.com/ > > -- Keith Dart > -- MBA Sciences, Inc (www.mbasciences.com) Tel #: 650-938-4306 Email: mamin at mbasciences.com -------------- next part -------------- An HTML attachment was scrubbed... URL: From jim at well.com Sat Jul 24 01:08:31 2010 From: jim at well.com (jim) Date: Fri, 23 Jul 2010 16:08:31 -0700 Subject: [Baypiggies] BayPIGgies meeting Thursday, July 22, 2010: A Technical Anatomy of SPM.Python In-Reply-To: <1279925370.2364.44.camel@lusaka> References: <1279511769.1770.218.camel@jim-laptop> <20100723021515.3b9c408f@dartworks.biz> <1279925370.2364.44.camel@lusaka> Message-ID: <1279926511.1733.9.camel@jim-laptop> it would be interesting to get comparisons. SPM.Python is available as a download from the mba sciences site. i have some SPM.Python CDs from last night's talk, i plan to leave at least some at noisebridge in SF for anyone interested. ask and i'll save you one if we can get together over the next week. also, Minesh advertised a free two-hour class in August (see his web site). On Fri, 2010-07-23 at 15:49 -0700, Minesh B. Amin wrote: > Hi Keith, > > True enough. There are plenty of choices. At the end of the day, > the only thing that matters is how any solution helps people > solve their problems within their constraints. > > So, yes, while there are plenty of choices, we believe people > will be presently surprised by what they can achieve when > using SPM.Python. As the new player, we believe we must > provide at least one of the following: > > * 10x smaller scripts ... mainly because parallel primitives are > much closer to intent, > > * 10x increase in productivity ... because scripts are much > more fault tolerant; i.e. no need to handhold various > parallel jobs > > Otherwise, in this economy, why should anybody waste their > time dealing with us, right? > > Regards, > Minesh > > On Fri, 2010-07-23 at 02:15 -0700, Keith Dart wrote: > > === On Sun, 07/18, jim wrote: === > > > Spm.Python, a commercial product, extends Python with a > > > programming paradigm for solving parallel problems and > > > strives to do so in a pythonic (natural) way by augmenting > > > the serial Python language with parallel concepts like > > > parallel task managers and communication primitives. > > === > > > > However, Parallel Python might be good enough for many. > > > > http://www.parallelpython.com/ > > > > -- Keith Dart > > > > -- > MBA Sciences, Inc (www.mbasciences.com) > Tel #: 650-938-4306 > Email: mamin at mbasciences.com From jeffrey.fischer at gmail.com Sat Jul 24 01:52:13 2010 From: jeffrey.fischer at gmail.com (Jeff Fischer) Date: Fri, 23 Jul 2010 16:52:13 -0700 Subject: [Baypiggies] Production users of Django? Message-ID: Hi everyone, I am doing some market research for my startup. I'm interested in learning about how people are using Django in production today, particularly for applications (as opposed to content management). If you are, could you take a few minutes to answer the questions below, either to the list or directly to me? Any additional explanations are also appreciated. If I get a lot of private responses, I'll summarize to the list (unless you don't want to be in the summary). Thank you very much for your help! Regards, Jeff Fischer jeffrey.fischer at gmail.com jeffrey.fischer at genforma.com Django survey questions: 1. Which of the scenario(s) below apply to your application? A. On-premise, company-internal users B. Hosted, company-external users C. Company-external users, running on their hardware/intranet D. Something else? 2. How many customers and/or users does your application have? 3. Are you using Django more as an application framework or as a content management framework? 4. What industry are you in? 5. What does your application do (as much detail as you are willing to share)? 6. Is this application your company's primary source of revenue? 7. What components other than Django do you use in your production configuration (e.g. database type, web server, cache, etc.)? 8. How many servers do you use for your production system? 9. What do you use for deployment? 10. Do you use any cloud or hosting services? If so, which ones? 11. What are your biggest pain points in terms of deployment, configuration, and management? Would you be willing to pay money to have someone take care of these for you? -------------- next part -------------- An HTML attachment was scrubbed... URL: From glen at glenjarvis.com Sat Jul 24 01:52:44 2010 From: glen at glenjarvis.com (Glen Jarvis) Date: Fri, 23 Jul 2010 16:52:44 -0700 Subject: [Baypiggies] A mini-decorator workshop Message-ID: I really had a good time at the talk last night. There were some *good* questions and lots of interests -- that's always fun. I am *very* interested in helping everyone get past this first hurdle. If there is demand, I will hold a 2-3 hour FREE hands-on workshop over the same material (assuming we can all agree on a date, time and location). Please be aware that the scope of what I'm talking about is still within what was presented. Therefore, we won't be going into, for example, the introspection that is used in attrs. It's easy enough, but not the purpose of the talk/workshop. We won't talk about class decorators, etc. This first level idea is "How do I use decorators," -- not how do I write my own or even how these decorators work internally (although we can certainly dip our toes in at the very end of the workshop). We can also expand on how to use decorators before the pie syntax was included in Python - as that's still in the scope of *using* decorators. If we have questions outside this scope, I will plead ignorance (which may actually be true; but maybe not) and move to the next subject. Now that I've firmly set your expectation on scope, if there's interest in doing this, we can put together a small get together one evening after work. Because I already have materials prepared, this won't take any lead-time to set-up. Note that this will give us more time. So, I can ask you to, for example: * Write a function that takes two arguments. The first argument should only be an integer. But, the second argument can either be an integer or a float. Enforce this through assertions. Code should be PEP-8 compliant. * The above, but pick one of the four decorators we discussed to do the same thing, instead. We can then have a discussion on why a person would choose the first (above) or this approach to do the same task. (Or some may argue that we are pre-optimizing and we shouldn't make such restrictions on functions unless absolutely necessary (and I would agree). * (Other similar exercises with some of the other three decorators we have distributed and discussed) * Write a function that takes as its arguments two functions (we'll call f1, and f2). Within the body of the function, call f1 and f2. Demonstrate how we see pass functions around like any object * Create a function that wraps another function * etc. If you can already do all of the above, you'd probably be bored silly and shouldn't attend this workshop. We'll advance to deeper levels over time -- just not at this meeting. The format would be in two portions: An introduction (same spiel as last night), and self-paced assignments/workshop. We would take more time to work on the example exercises. And, you would work on the examples while while we wait for questions to help you when you get stuck. Because this is self paced (after my initial spiel), people will finish at different times. I can imagine we'll finish in 3 hours or less -- some much quicker than others. Let me know if you're interested and I'll give you a 10% discount on the already FREE workshop ;) This offer expires 1 week (i.e., if no one responds by then, I'm moving on to something else)... Cheers, Glen -- Whatever you can do or imagine, begin it; boldness has beauty, magic, and power in it. -- Goethe -------------- next part -------------- An HTML attachment was scrubbed... URL: From bryceverdier at gmail.com Sat Jul 24 01:58:07 2010 From: bryceverdier at gmail.com (Bryce Verdier) Date: Fri, 23 Jul 2010 16:58:07 -0700 Subject: [Baypiggies] A mini-decorator workshop In-Reply-To: References: Message-ID: <4C4A2C8F.60401@gmail.com> My work schedule is horrible for stuff like this. ( Currently 3pm-12am, but next week going to 1-9pm). In order for me to attend there needs to be wireless access (this is why I wasn't there last night... Symantec is awesome for hosting, but loses points for no wifi). Regardless I would love to attend this workshop. Bryce On 07/23/2010 04:52 PM, Glen Jarvis wrote: > I really had a good time at the talk last night. There were some > *good* questions and lots of interests -- that's always fun. > > I am *very* interested in helping everyone get past this first hurdle. > > If there is demand, I will hold a 2-3 hour FREE hands-on workshop over > the same material (assuming we can all agree on a date, time and > location). > > Please be aware that the scope of what I'm talking about is still > within what was presented. Therefore, we won't be going into, for > example, the introspection that is used in attrs. It's easy enough, > but not the purpose of the talk/workshop. We won't talk about class > decorators, etc. > > This first level idea is "How do I use decorators," -- not how do I > write my own or even how these decorators work internally (although we > can certainly dip our toes in at the very end of the workshop). We can > also expand on how to use decorators before the pie syntax was > included in Python - as that's still in the scope of *using* decorators. > > If we have questions outside this scope, I will plead ignorance (which > may actually be true; but maybe not) and move to the next subject. > > Now that I've firmly set your expectation on scope, if there's > interest in doing this, we can put together a small get together one > evening after work. Because I already have materials prepared, this > won't take any lead-time to set-up. > > Note that this will give us more time. So, I can ask you to, for example: > > * Write a function that takes two arguments. The first argument should > only be an integer. But, the second argument can either be an integer > or a float. Enforce this through assertions. Code should be PEP-8 > compliant. > * The above, but pick one of the four decorators we discussed to do > the same thing, instead. We can then have a discussion on why a person > would choose the first (above) or this approach to do the same task. > (Or some may argue that we are pre-optimizing and we shouldn't make > such restrictions on functions unless absolutely necessary (and I > would agree). > * (Other similar exercises with some of the other three decorators we > have distributed and discussed) > * Write a function that takes as its arguments two functions (we'll > call f1, and f2). Within the body of the function, call f1 and f2. > Demonstrate how we see pass functions around like any object > * Create a function that wraps another function > * etc. > > If you can already do all of the above, you'd probably be bored silly > and shouldn't attend this workshop. We'll advance to deeper levels > over time -- just not at this meeting. > > The format would be in two portions: An introduction (same spiel as > last night), and self-paced assignments/workshop. We would take more > time to work on the example exercises. And, you would work on the > examples while while we wait for questions to help you when you get stuck. > > Because this is self paced (after my initial spiel), people will > finish at different times. I can imagine we'll finish in 3 hours or > less -- some much quicker than others. > > Let me know if you're interested and I'll give you a 10% discount on > the already FREE workshop ;) This offer expires 1 week (i.e., if no > one responds by then, I'm moving on to something else)... > > > Cheers, > > > > Glen > -- > Whatever you can do or imagine, begin it; > boldness has beauty, magic, and power in it. > > -- Goethe > > > _______________________________________________ > 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 glen at glenjarvis.com Sat Jul 24 01:58:51 2010 From: glen at glenjarvis.com (Glen Jarvis) Date: Fri, 23 Jul 2010 16:58:51 -0700 Subject: [Baypiggies] Production users of Django? In-Reply-To: References: Message-ID: BTW, I suggested to Jeff that he send this to the group since it is Python/Django specific. I didn't know it was marketing research. However, since it's python related, I still think it's appropriate for the list. If I'm wrong, please yell at me, not Jeff. Cheers, Glen On Fri, Jul 23, 2010 at 4:52 PM, Jeff Fischer wrote: > Hi everyone, > I am doing some market research for my startup. I'm interested in learning > about how people are using Django in production today, particularly for > applications (as opposed to content management). If you are, could you take > a few minutes to answer the questions below, either to the list or directly > to me? Any additional explanations are also appreciated. If I get a lot of > private responses, I'll summarize to the list (unless you don't want to be > in the summary). Thank you very much for your help! > > Regards, > Jeff Fischer > jeffrey.fischer at gmail.com > jeffrey.fischer at genforma.com > > Django survey questions: > 1. Which of the scenario(s) below apply to your application? > A. On-premise, company-internal users > B. Hosted, company-external users > C. Company-external users, running on their hardware/intranet > D. Something else? > > 2. How many customers and/or users does your application have? > > 3. Are you using Django more as an application framework or as a content > management framework? > > 4. What industry are you in? > > 5. What does your application do (as much detail as you are willing to > share)? > > 6. Is this application your company's primary source of revenue? > > 7. What components other than Django do you use in your production > configuration (e.g. database type, web server, cache, etc.)? > > 8. How many servers do you use for your production system? > > 9. What do you use for deployment? > > 10. Do you use any cloud or hosting services? If so, which ones? > > 11. What are your biggest pain points in terms of deployment, > configuration, and management? Would you be willing to pay money to have > someone take care of these for you? > > > _______________________________________________ > Baypiggies mailing list > Baypiggies at python.org > To change your subscription options or unsubscribe: > http://mail.python.org/mailman/listinfo/baypiggies > -- Whatever you can do or imagine, begin it; boldness has beauty, magic, and power in it. -- Goethe -------------- next part -------------- An HTML attachment was scrubbed... URL: From jeffrey.fischer at gmail.com Sat Jul 24 02:06:07 2010 From: jeffrey.fischer at gmail.com (Jeff Fischer) Date: Fri, 23 Jul 2010 17:06:07 -0700 Subject: [Baypiggies] Production users of Django? In-Reply-To: References: Message-ID: To give you a little more background, I have a stealth mode startup in the cloud infrastructure space. We are looking at whether we want to have a product targeted toward Django, perhaps similar to how Engine Yard and similar companies target Ruby on Rails. We are partial toward Python as much of our infrastructure is written in Python and we think the Python space is under-served compared to Ruby. Any feedback I get will help us to make decisions and to justify Django as a valid target market to investors (who generally have heard of Ruby on Rails but not Python and Django). Thanks! - Jeff On Fri, Jul 23, 2010 at 4:58 PM, Glen Jarvis wrote: > BTW, I suggested to Jeff that he send this to the group since it is > Python/Django specific. I didn't know it was marketing research. However, > since it's python related, I still think it's appropriate for the list. If > I'm wrong, please yell at me, not Jeff. > > Cheers, > > > Glen > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From glen at glenjarvis.com Sat Jul 24 02:14:54 2010 From: glen at glenjarvis.com (Glen Jarvis) Date: Fri, 23 Jul 2010 17:14:54 -0700 Subject: [Baypiggies] Production users of Django? In-Reply-To: References: Message-ID: Jeff -- I deal with many customers with different applications. The survey questions seem very specific to a single application. I may not at all be the target audience you wanted to interview :( Sorry... > Django survey questions: > 1. Which of the scenario(s) below apply to your application? > A. On-premise, company-internal users > B. Hosted, company-external users > C. Company-external users, running on their hardware/intranet > D. Something else? > B 2. How many customers and/or users does your application have? > It depends upon the users. Most of what I do has a pretty small scale -- less than 100 users at a time generally. But, that just seems to be the customers that I attract more than a limitation of any kind. 3. Are you using Django more as an application framework or as a content > management framework? > Application Framework. Definitely. > 4. What industry are you in? > IT/Programming (I also work in a phylogenetic lab, but that's not really relevant here). 5. What does your application do (as much detail as you are willing to > share)? > These depend upon the customer we're talking about. Some examples are: A networked kisok for barber shops in Spain for automated metric tracking; A Barbados-based Private Investigator case tracking database (this one I still host for the client); A few governmental agencies websites/applications. > 6. Is this application your company's primary source of revenue? > I have coded applications for other people and host them. I don't have an "app" of my own. I should. I need the passive income. > 7. What components other than Django do you use in your production > configuration (e.g. database type, web server, cache, etc.)? > I had a previous life as an Informix DBA for years. So, I'm very partial to Postgres over MySQL. (Postgres shared some code-base and operates somewhat similarly). I've always used Apache with mod_python (phasing out) to mod_wsgi. I generally pick a single type of app/customer and stick with it. So my stack is: Django | Pylons (diversifying here - but mostly Django) Postgres Apache/mod_wsgi Linux I have needed to use memcached on occasion. 8. How many servers do you use for your production system? > A few (intentionally vague). 9. What do you use for deployment? > I still haven't gotten professional enough to really deploy in a scalable way. I still do most deployment manually. I need to learn Simeon's PIP/VirtualEnv tech talk > 10. Do you use any cloud or hosting services? If so, which ones? > webfaction > 11. What are your biggest pain points in terms of deployment, > configuration, and management? Would you be willing to pay money to have > someone take care of these for you? > I don't have any pain points. I deal with Sun Grid clusters on a daily basis, configure software regularly, and keep things fairly maintained. I don't have enough work that someone would need to take care of this (and I get a sense of satisfaction from well oiled machines - so I rather like this type of work). And, it's light enough/organized enough not to be a pain point. Cheers, Glen -- Whatever you can do or imagine, begin it; boldness has beauty, magic, and power in it. -- Goethe -------------- next part -------------- An HTML attachment was scrubbed... URL: From glen at glenjarvis.com Sat Jul 24 02:16:44 2010 From: glen at glenjarvis.com (Glen Jarvis) Date: Fri, 23 Jul 2010 17:16:44 -0700 Subject: [Baypiggies] A mini-decorator workshop In-Reply-To: <4C4A2C8F.60401@gmail.com> References: <4C4A2C8F.60401@gmail.com> Message-ID: Bryce, I shared my WiFi connection last night for situations like this. There was a little confusion at first if it was working. But, I later discovered it was. I'm glad to see there's interest. I'll respond more off list with details. Glen On Fri, Jul 23, 2010 at 4:58 PM, Bryce Verdier wrote: > My work schedule is horrible for stuff like this. ( Currently 3pm-12am, > but next week going to 1-9pm). In order for me to attend there needs to be > wireless access (this is why I wasn't there last night... Symantec is > awesome for hosting, but loses points for no wifi). Regardless I would love > to attend this workshop. > > Bryce > > > > On 07/23/2010 04:52 PM, Glen Jarvis wrote: > > I really had a good time at the talk last night. There were some *good* > questions and lots of interests -- that's always fun. > > I am *very* interested in helping everyone get past this first hurdle. > > If there is demand, I will hold a 2-3 hour FREE hands-on workshop over > the same material (assuming we can all agree on a date, time and location). > > Please be aware that the scope of what I'm talking about is still within > what was presented. Therefore, we won't be going into, for example, the > introspection that is used in attrs. It's easy enough, but not the purpose > of the talk/workshop. We won't talk about class decorators, etc. > > This first level idea is "How do I use decorators," -- not how do I write > my own or even how these decorators work internally (although we can > certainly dip our toes in at the very end of the workshop). We can also > expand on how to use decorators before the pie syntax was included in Python > - as that's still in the scope of *using* decorators. > > If we have questions outside this scope, I will plead ignorance (which > may actually be true; but maybe not) and move to the next subject. > > Now that I've firmly set your expectation on scope, if there's interest > in doing this, we can put together a small get together one evening after > work. Because I already have materials prepared, this won't take any > lead-time to set-up. > > Note that this will give us more time. So, I can ask you to, for example: > > * Write a function that takes two arguments. The first argument should > only be an integer. But, the second argument can either be an integer or a > float. Enforce this through assertions. Code should be PEP-8 compliant. > * The above, but pick one of the four decorators we discussed to do the > same thing, instead. We can then have a discussion on why a person would > choose the first (above) or this approach to do the same task. (Or some may > argue that we are pre-optimizing and we shouldn't make such restrictions on > functions unless absolutely necessary (and I would agree). > * (Other similar exercises with some of the other three decorators we have > distributed and discussed) > * Write a function that takes as its arguments two functions (we'll call > f1, and f2). Within the body of the function, call f1 and f2. Demonstrate > how we see pass functions around like any object > * Create a function that wraps another function > * etc. > > If you can already do all of the above, you'd probably be bored silly and > shouldn't attend this workshop. We'll advance to deeper levels over time -- > just not at this meeting. > > The format would be in two portions: An introduction (same spiel as last > night), and self-paced assignments/workshop. We would take more time to work > on the example exercises. And, you would work on the examples while while we > wait for questions to help you when you get stuck. > > Because this is self paced (after my initial spiel), people will finish > at different times. I can imagine we'll finish in 3 hours or less -- some > much quicker than others. > > Let me know if you're interested and I'll give you a 10% discount on the > already FREE workshop ;) This offer expires 1 week (i.e., if no one > responds by then, I'm moving on to something else)... > > > Cheers, > > > > Glen > -- > Whatever you can do or imagine, begin it; > boldness has beauty, magic, and power in it. > > -- Goethe > > > _______________________________________________ > Baypiggies mailing listBaypiggies 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 > -- Whatever you can do or imagine, begin it; boldness has beauty, magic, and power in it. -- Goethe -------------- next part -------------- An HTML attachment was scrubbed... URL: From simeonf at gmail.com Sat Jul 24 02:47:18 2010 From: simeonf at gmail.com (Simeon Franklin) Date: Fri, 23 Jul 2010 17:47:18 -0700 Subject: [Baypiggies] Production users of Django? In-Reply-To: References: Message-ID: My answers below... On Fri, Jul 23, 2010 at 4:52 PM, Jeff Fischer wrote: > Django survey questions: > 1. Which of the scenario(s) below apply to your application? > ?? A. On-premise, company-internal users > ?? B. Hosted, company-external users > ?? C. Company-external users, running on their hardware/intranet > ?? D. Something else? A,B, & C > 2. How many customers and/or users does your application have? Smallest is Satchmo/Django store/CMS that only does an order or two a month (high end custom leatherwork). Largest is probably under NDA but I have non-NDA projects with daily users in excess of 4 figures. > 3. Are you using Django more as an application framework or as a content > management framework? Both. Some Django + a few modules for CMS, client uses Django admin. Some projects are built in Django but client doesn't know/need to know. > 4. What industry are you in? Major clients in energy, construction, and ag. > 5. What does your application do (as much detail as you are willing to > share)? Non-NDA apps - manage bids between construction company and subcontractors. Manage online store with complex ordering processes. Standard CMS applications. > 6. Is this application your company's primary source of revenue? I'm probably not your target audience being in custom software design. I would say the answer is no for most of my clients. > 7. What components other than Django do you use in your production > configuration (e.g. database type, web server, cache, etc.)? DB (mysql/postgresql), Web Server (experimented with lighttpd, mostly apache+mod_wsgi now), memcached a few places. Am looking for a place to use redis :) > 8. How many servers do you use for your production system? Widely varies. Ranges from multiple servers for single app to shared hosting (multiple sites/apps on single server). > 9. What do you use for deployment? Fabric, pip, virtualenv. > 10. Do you use any cloud or hosting services? If so, which ones? I have some clients using Amazon s3 storage. > 11. What are your biggest pain points in terms of deployment, configuration, > and management? Would you be willing to pay money to have someone take care > of these for you? Not for larger applications - pain of deployment/configuration/management is small compared to large software tasks. For smaller clients - i would love a one-click create db, django project with say django-cms and/or Satchmo pre-installed. Hope that helps. -regards Simeon Franklin From glen at glenjarvis.com Sat Jul 24 02:53:27 2010 From: glen at glenjarvis.com (Glen Jarvis) Date: Fri, 23 Jul 2010 17:53:27 -0700 Subject: [Baypiggies] Production users of Django? In-Reply-To: References: Message-ID: > > 11. What are your biggest pain points in terms of deployment, > configuration, > > and management? Would you be willing to pay money to have someone take > care > > of these for you? > Not for larger applications - pain of > deployment/configuration/management is small compared to large > software tasks. For smaller clients - i would love a one-click create > db, django project with say django-cms and/or Satchmo pre-installed. > Simeon, I find that the webfaction setup is almost what you describe -- looking for above. (In case that's helpful)... Cheers, Glen -- Whatever you can do or imagine, begin it; boldness has beauty, magic, and power in it. -- Goethe -------------- next part -------------- An HTML attachment was scrubbed... URL: From brent.tubbs at gmail.com Sat Jul 24 03:02:12 2010 From: brent.tubbs at gmail.com (Brent Tubbs) Date: Fri, 23 Jul 2010 18:02:12 -0700 Subject: [Baypiggies] A mini-decorator workshop In-Reply-To: References: <4C4A2C8F.60401@gmail.com> Message-ID: I'd be happy to reserve a room at Hacker Dojo to hold this event (I'm a member there). Find an open room/time at http://events.hackerdojo.com/ and I can reserve it. Brent On Fri, Jul 23, 2010 at 5:16 PM, Glen Jarvis wrote: > Bryce, > ?? I shared my WiFi connection last night for situations like this. There > was a little confusion at first if it was working. But, I later discovered > it was. > ?? I'm glad to see there's interest. I'll respond more off list with > details. > > Glen > > On Fri, Jul 23, 2010 at 4:58 PM, Bryce Verdier > wrote: >> >> My work schedule? is horrible for stuff like this. ( Currently 3pm-12am, >> but next week going to 1-9pm). In order for me to attend there needs to be >> wireless access (this is why I wasn't there last night... Symantec is >> awesome for hosting, but loses points for no wifi). Regardless I would love >> to attend this workshop. >> >> Bryce >> >> >> On 07/23/2010 04:52 PM, Glen Jarvis wrote: >> >> I really had a good time at the talk last night. There were some *good* >> questions and lots of interests -- that's always fun. >> I am *very* interested in helping everyone get past this first hurdle. >> If there is demand, I will hold a 2-3 hour FREE hands-on workshop over the >> same material (assuming we can all agree on a date, time and location). >> Please be aware that the scope of what I'm talking about is still within >> what was presented. Therefore, we won't be going into, for example, the >> introspection that is used in attrs. It's easy enough, but not the purpose >> of the talk/workshop. We won't talk about class decorators, etc. >> This first level idea is "How do I use decorators," -- not how do I write >> my own or even how these decorators work internally (although we can >> certainly dip our toes in at the very end of the workshop). We can also >> expand on how to use decorators before the pie syntax was included in Python >> - as that's still in the scope of *using* decorators. >> If we have questions outside this scope, I will plead ignorance (which may >> actually be true; but maybe not) and move to the next subject. >> Now that I've firmly set your expectation on scope, if there's interest in >> doing this, we can put together a small get together one evening after work. >> Because I already have materials prepared, this won't take any lead-time to >> set-up. >> Note that this will give us more time. So, I can ask you to, for example: >> * Write a function that takes two arguments. The first argument should >> only be an integer. But, the second argument can either be an integer or a >> float. Enforce this through assertions. Code should be PEP-8 compliant. >> * The above, but pick one of the four decorators we discussed to do the >> same thing, instead. We can then have a discussion on why a person would >> choose the first (above) or this approach to do the same task. (Or some may >> argue that we are?pre-optimizing?and we shouldn't make such restrictions on >> functions unless absolutely necessary (and I would agree). >> * (Other similar exercises with some of the other three decorators we have >> distributed and discussed) >> * Write a function that takes as its arguments two functions (we'll call >> f1, and f2). Within the body of the function, call f1 and f2. Demonstrate >> how we see pass functions around like any object >> * Create a function that wraps another function >> * etc. >> If you can already do all of the above, you'd probably be bored silly and >> shouldn't attend this workshop. We'll advance to deeper levels over time -- >> just not at this meeting. >> The format would be in two portions: An introduction (same spiel as last >> night), and self-paced assignments/workshop. We would take more time to work >> on the example exercises. And, you would work on the examples while while we >> wait for questions to help you when you get stuck. >> Because this is self paced (after my initial spiel), people will finish at >> different times. I can imagine we'll finish in 3 hours or less -- some much >> quicker than others. >> Let me know if you're interested and I'll give you a 10% discount on the >> already FREE workshop ;) ?This offer expires 1 week (i.e., if no one >> responds by then, I'm moving on to something else)... >> >> Cheers, >> >> >> Glen >> -- >> Whatever you can do or imagine, begin it; >> boldness has beauty, magic, and power in it. >> >> -- Goethe >> >> _______________________________________________ >> 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 > > > > -- > Whatever you can do or imagine, begin it; > boldness has beauty, magic, and power in it. > > -- Goethe > > _______________________________________________ > Baypiggies mailing list > Baypiggies at python.org > To change your subscription options or unsubscribe: > http://mail.python.org/mailman/listinfo/baypiggies > From fenn at SDF.LONESTAR.ORG Sat Jul 24 02:42:50 2010 From: fenn at SDF.LONESTAR.ORG (ben lipkowitz) Date: Sat, 24 Jul 2010 00:42:50 +0000 (UTC) Subject: [Baypiggies] Production users of Django? In-Reply-To: References: Message-ID: On Fri, 23 Jul 2010, Jeff Fischer wrote: > Django survey questions: > 1. Which of the scenario(s) below apply to your application? > A. On-premise, company-internal users > B. Hosted, company-external users > C. Company-external users, running on their hardware/intranet > D. Something else? what, you mean there isn't a django based website where i can fill out this survey???!!!oneone~ From glen at glenjarvis.com Sat Jul 24 03:27:31 2010 From: glen at glenjarvis.com (Glen Jarvis) Date: Fri, 23 Jul 2010 18:27:31 -0700 Subject: [Baypiggies] Production users of Django? In-Reply-To: References: Message-ID: Err ... This is my fault too.. I suggested not to send a survey link since I have seen resistance to these links being sent... Sorry :(. My batting average is a bit low on this one. Glen El Jul 23, 2010, a las 5:42 PM, ben lipkowitz escribi?: > On Fri, 23 Jul 2010, Jeff Fischer wrote: >> Django survey questions: >> 1. Which of the scenario(s) below apply to your application? >> A. On-premise, company-internal users >> B. Hosted, company-external users >> C. Company-external users, running on their hardware/intranet >> D. Something else? > > what, you mean there isn't a django based website where i can fill out this survey???!!!oneone~ > _______________________________________________ > Baypiggies mailing list > Baypiggies at python.org > To change your subscription options or unsubscribe: > http://mail.python.org/mailman/listinfo/baypiggies From aahz at pythoncraft.com Sat Jul 24 04:40:58 2010 From: aahz at pythoncraft.com (Aahz) Date: Fri, 23 Jul 2010 19:40:58 -0700 Subject: [Baypiggies] Production users of Django? In-Reply-To: References: Message-ID: <20100724024058.GA28404@panix.com> On Fri, Jul 23, 2010, Jeff Fischer wrote: > > To give you a little more background, I have a stealth mode startup in the > cloud infrastructure space. We are looking at whether we want to have a > product targeted toward Django, perhaps similar to how Engine Yard and > similar companies target Ruby on Rails. We are partial toward Python as much > of our infrastructure is written in Python and we think the Python space is > under-served compared to Ruby. Any feedback I get will help us to make > decisions and to justify Django as a valid target market to investors (who > generally have heard of Ruby on Rails but not Python and Django). Keep in mind that although I would agree that the Python space is less served, there is already plenty of competition. Google, Rackspace, and Webfaction come to mind for different segments of it. You'll need to be careful how you differentiate your offering(s). -- Aahz (aahz at pythoncraft.com) <*> http://www.pythoncraft.com/ "....Normal is what cuts off your sixth finger and your tail..." --Siobhan From akleider at sonic.net Sat Jul 24 04:54:33 2010 From: akleider at sonic.net (akleider at sonic.net) Date: Fri, 23 Jul 2010 19:54:33 -0700 Subject: [Baypiggies] A mini-decorator workshop In-Reply-To: <4C4A2C8F.60401@gmail.com> References: <4C4A2C8F.60401@gmail.com> Message-ID: <408cca6b3cc0aa362f5fd31ccc796e5c.squirrel@webmail.sonic.net> May I suggest such a talk might be held at next month's meeting. Jim hasn't found a speaker anyway (is that still true?) and there seemed to be a lot of general interest even though it is a 'newbie' topic. It might not appeal to the pundits but perhaps there are enough who would be interested to justify its being the main talk. ..just a suggestion.. > My work schedule is horrible for stuff like this. ( Currently 3pm-12am, > but next week going to 1-9pm). In order for me to attend there needs to > be wireless access (this is why I wasn't there last night... Symantec is > awesome for hosting, but loses points for no wifi). Regardless I would > love to attend this workshop. > > Bryce > > > On 07/23/2010 04:52 PM, Glen Jarvis wrote: >> I really had a good time at the talk last night. There were some >> *good* questions and lots of interests -- that's always fun. >> >> I am *very* interested in helping everyone get past this first hurdle. >> >> If there is demand, I will hold a 2-3 hour FREE hands-on workshop over >> the same material (assuming we can all agree on a date, time and >> location). >> >> Please be aware that the scope of what I'm talking about is still >> within what was presented. Therefore, we won't be going into, for >> example, the introspection that is used in attrs. It's easy enough, >> but not the purpose of the talk/workshop. We won't talk about class >> decorators, etc. >> >> This first level idea is "How do I use decorators," -- not how do I >> write my own or even how these decorators work internally (although we >> can certainly dip our toes in at the very end of the workshop). We can >> also expand on how to use decorators before the pie syntax was >> included in Python - as that's still in the scope of *using* decorators. >> >> If we have questions outside this scope, I will plead ignorance (which >> may actually be true; but maybe not) and move to the next subject. >> >> Now that I've firmly set your expectation on scope, if there's >> interest in doing this, we can put together a small get together one >> evening after work. Because I already have materials prepared, this >> won't take any lead-time to set-up. >> >> Note that this will give us more time. So, I can ask you to, for >> example: >> >> * Write a function that takes two arguments. The first argument should >> only be an integer. But, the second argument can either be an integer >> or a float. Enforce this through assertions. Code should be PEP-8 >> compliant. >> * The above, but pick one of the four decorators we discussed to do >> the same thing, instead. We can then have a discussion on why a person >> would choose the first (above) or this approach to do the same task. >> (Or some may argue that we are pre-optimizing and we shouldn't make >> such restrictions on functions unless absolutely necessary (and I >> would agree). >> * (Other similar exercises with some of the other three decorators we >> have distributed and discussed) >> * Write a function that takes as its arguments two functions (we'll >> call f1, and f2). Within the body of the function, call f1 and f2. >> Demonstrate how we see pass functions around like any object >> * Create a function that wraps another function >> * etc. >> >> If you can already do all of the above, you'd probably be bored silly >> and shouldn't attend this workshop. We'll advance to deeper levels >> over time -- just not at this meeting. >> >> The format would be in two portions: An introduction (same spiel as >> last night), and self-paced assignments/workshop. We would take more >> time to work on the example exercises. And, you would work on the >> examples while while we wait for questions to help you when you get >> stuck. >> >> Because this is self paced (after my initial spiel), people will >> finish at different times. I can imagine we'll finish in 3 hours or >> less -- some much quicker than others. >> >> Let me know if you're interested and I'll give you a 10% discount on >> the already FREE workshop ;) This offer expires 1 week (i.e., if no >> one responds by then, I'm moving on to something else)... >> >> >> Cheers, >> >> >> >> Glen >> -- >> Whatever you can do or imagine, begin it; >> boldness has beauty, magic, and power in it. >> >> -- Goethe >> >> >> _______________________________________________ >> 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 Sat Jul 24 05:07:42 2010 From: glen at glenjarvis.com (Glen Jarvis) Date: Fri, 23 Jul 2010 20:07:42 -0700 Subject: [Baypiggies] A mini-decorator workshop In-Reply-To: <408cca6b3cc0aa362f5fd31ccc796e5c.squirrel@webmail.sonic.net> References: <4C4A2C8F.60401@gmail.com> <408cca6b3cc0aa362f5fd31ccc796e5c.squirrel@webmail.sonic.net> Message-ID: It's the same exact set of slides everyone has seen. What I want to do different is have us in a teaching environment working at our own pace. So, we can't do it for a talk since we already have -- it'd be a complete repeat. What I want to do is a different format than baypiggies general meeting. Glen El Jul 23, 2010, a las 7:54 PM, akleider at sonic.net escribi?: > > May I suggest such a talk might be held at next month's meeting. Jim > hasn't found a speaker anyway (is that still true?) and there seemed to be > a lot of general interest even though it is a 'newbie' topic. It might not > appeal to the pundits but perhaps there are enough who would be interested > to justify its being the main talk. > > ..just a suggestion.. > > >> My work schedule is horrible for stuff like this. ( Currently 3pm-12am, >> but next week going to 1-9pm). In order for me to attend there needs to >> be wireless access (this is why I wasn't there last night... Symantec is >> awesome for hosting, but loses points for no wifi). Regardless I would >> love to attend this workshop. >> >> Bryce >> >> >> On 07/23/2010 04:52 PM, Glen Jarvis wrote: >>> I really had a good time at the talk last night. There were some >>> *good* questions and lots of interests -- that's always fun. >>> >>> I am *very* interested in helping everyone get past this first hurdle. >>> >>> If there is demand, I will hold a 2-3 hour FREE hands-on workshop over >>> the same material (assuming we can all agree on a date, time and >>> location). >>> >>> Please be aware that the scope of what I'm talking about is still >>> within what was presented. Therefore, we won't be going into, for >>> example, the introspection that is used in attrs. It's easy enough, >>> but not the purpose of the talk/workshop. We won't talk about class >>> decorators, etc. >>> >>> This first level idea is "How do I use decorators," -- not how do I >>> write my own or even how these decorators work internally (although we >>> can certainly dip our toes in at the very end of the workshop). We can >>> also expand on how to use decorators before the pie syntax was >>> included in Python - as that's still in the scope of *using* decorators. >>> >>> If we have questions outside this scope, I will plead ignorance (which >>> may actually be true; but maybe not) and move to the next subject. >>> >>> Now that I've firmly set your expectation on scope, if there's >>> interest in doing this, we can put together a small get together one >>> evening after work. Because I already have materials prepared, this >>> won't take any lead-time to set-up. >>> >>> Note that this will give us more time. So, I can ask you to, for >>> example: >>> >>> * Write a function that takes two arguments. The first argument should >>> only be an integer. But, the second argument can either be an integer >>> or a float. Enforce this through assertions. Code should be PEP-8 >>> compliant. >>> * The above, but pick one of the four decorators we discussed to do >>> the same thing, instead. We can then have a discussion on why a person >>> would choose the first (above) or this approach to do the same task. >>> (Or some may argue that we are pre-optimizing and we shouldn't make >>> such restrictions on functions unless absolutely necessary (and I >>> would agree). >>> * (Other similar exercises with some of the other three decorators we >>> have distributed and discussed) >>> * Write a function that takes as its arguments two functions (we'll >>> call f1, and f2). Within the body of the function, call f1 and f2. >>> Demonstrate how we see pass functions around like any object >>> * Create a function that wraps another function >>> * etc. >>> >>> If you can already do all of the above, you'd probably be bored silly >>> and shouldn't attend this workshop. We'll advance to deeper levels >>> over time -- just not at this meeting. >>> >>> The format would be in two portions: An introduction (same spiel as >>> last night), and self-paced assignments/workshop. We would take more >>> time to work on the example exercises. And, you would work on the >>> examples while while we wait for questions to help you when you get >>> stuck. >>> >>> Because this is self paced (after my initial spiel), people will >>> finish at different times. I can imagine we'll finish in 3 hours or >>> less -- some much quicker than others. >>> >>> Let me know if you're interested and I'll give you a 10% discount on >>> the already FREE workshop ;) This offer expires 1 week (i.e., if no >>> one responds by then, I'm moving on to something else)... >>> >>> >>> Cheers, >>> >>> >>> >>> Glen >>> -- >>> Whatever you can do or imagine, begin it; >>> boldness has beauty, magic, and power in it. >>> >>> -- Goethe >>> >>> >>> _______________________________________________ >>> 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 akleider at sonic.net Sat Jul 24 06:41:44 2010 From: akleider at sonic.net (akleider at sonic.net) Date: Fri, 23 Jul 2010 21:41:44 -0700 Subject: [Baypiggies] A mini-decorator workshop In-Reply-To: References: <4C4A2C8F.60401@gmail.com> <408cca6b3cc0aa362f5fd31ccc796e5c.squirrel@webmail.sonic.net> Message-ID: <1f20318b130e6f2a6ff0abdb34cc86aa.squirrel@webmail.sonic.net> Is there a law against a change in format? ..just asking. > It's the same exact set of slides everyone has seen. What I want to do > different is have us in a teaching environment working at our own pace. > > So, we can't do it for a talk since we already have -- it'd be a complete > repeat. What I want to do is a different format than baypiggies general > meeting. > > Glen > > El Jul 23, 2010, a las 7:54 PM, akleider at sonic.net escribi??: > >> >> May I suggest such a talk might be held at next month's meeting. Jim >> hasn't found a speaker anyway (is that still true?) and there seemed to >> be >> a lot of general interest even though it is a 'newbie' topic. It might >> not >> appeal to the pundits but perhaps there are enough who would be >> interested >> to justify its being the main talk. >> >> ..just a suggestion.. >> >> >>> My work schedule is horrible for stuff like this. ( Currently >>> 3pm-12am, >>> but next week going to 1-9pm). In order for me to attend there needs to >>> be wireless access (this is why I wasn't there last night... Symantec >>> is >>> awesome for hosting, but loses points for no wifi). Regardless I would >>> love to attend this workshop. >>> >>> Bryce >>> >>> >>> On 07/23/2010 04:52 PM, Glen Jarvis wrote: >>>> I really had a good time at the talk last night. There were some >>>> *good* questions and lots of interests -- that's always fun. >>>> >>>> I am *very* interested in helping everyone get past this first hurdle. >>>> >>>> If there is demand, I will hold a 2-3 hour FREE hands-on workshop over >>>> the same material (assuming we can all agree on a date, time and >>>> location). >>>> >>>> Please be aware that the scope of what I'm talking about is still >>>> within what was presented. Therefore, we won't be going into, for >>>> example, the introspection that is used in attrs. It's easy enough, >>>> but not the purpose of the talk/workshop. We won't talk about class >>>> decorators, etc. >>>> >>>> This first level idea is "How do I use decorators," -- not how do I >>>> write my own or even how these decorators work internally (although we >>>> can certainly dip our toes in at the very end of the workshop). We can >>>> also expand on how to use decorators before the pie syntax was >>>> included in Python - as that's still in the scope of *using* >>>> decorators. >>>> >>>> If we have questions outside this scope, I will plead ignorance (which >>>> may actually be true; but maybe not) and move to the next subject. >>>> >>>> Now that I've firmly set your expectation on scope, if there's >>>> interest in doing this, we can put together a small get together one >>>> evening after work. Because I already have materials prepared, this >>>> won't take any lead-time to set-up. >>>> >>>> Note that this will give us more time. So, I can ask you to, for >>>> example: >>>> >>>> * Write a function that takes two arguments. The first argument should >>>> only be an integer. But, the second argument can either be an integer >>>> or a float. Enforce this through assertions. Code should be PEP-8 >>>> compliant. >>>> * The above, but pick one of the four decorators we discussed to do >>>> the same thing, instead. We can then have a discussion on why a person >>>> would choose the first (above) or this approach to do the same task. >>>> (Or some may argue that we are pre-optimizing and we shouldn't make >>>> such restrictions on functions unless absolutely necessary (and I >>>> would agree). >>>> * (Other similar exercises with some of the other three decorators we >>>> have distributed and discussed) >>>> * Write a function that takes as its arguments two functions (we'll >>>> call f1, and f2). Within the body of the function, call f1 and f2. >>>> Demonstrate how we see pass functions around like any object >>>> * Create a function that wraps another function >>>> * etc. >>>> >>>> If you can already do all of the above, you'd probably be bored silly >>>> and shouldn't attend this workshop. We'll advance to deeper levels >>>> over time -- just not at this meeting. >>>> >>>> The format would be in two portions: An introduction (same spiel as >>>> last night), and self-paced assignments/workshop. We would take more >>>> time to work on the example exercises. And, you would work on the >>>> examples while while we wait for questions to help you when you get >>>> stuck. >>>> >>>> Because this is self paced (after my initial spiel), people will >>>> finish at different times. I can imagine we'll finish in 3 hours or >>>> less -- some much quicker than others. >>>> >>>> Let me know if you're interested and I'll give you a 10% discount on >>>> the already FREE workshop ;) This offer expires 1 week (i.e., if no >>>> one responds by then, I'm moving on to something else)... >>>> >>>> >>>> Cheers, >>>> >>>> >>>> >>>> Glen >>>> -- >>>> Whatever you can do or imagine, begin it; >>>> boldness has beauty, magic, and power in it. >>>> >>>> -- Goethe >>>> >>>> >>>> _______________________________________________ >>>> 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 jeff.enderwick at gmail.com Mon Jul 26 03:55:48 2010 From: jeff.enderwick at gmail.com (Jeff Enderwick) Date: Sun, 25 Jul 2010 18:55:48 -0700 Subject: [Baypiggies] Production users of Django? In-Reply-To: References: Message-ID: I think this is an excellent idea. I don't know if there is enough pull from Django for you to make the big bucks, though. Having a Python Heroku would be good for Python/Django, IMO. I just did my latest project using RoR, because Heroku & EY exist. Deployment with Heroku is SO easy, and I am not trapped in a proprietary set of APIs, just in case I need to take over hosting on my own. On Fri, Jul 23, 2010 at 5:06 PM, Jeff Fischer wrote: > To give you a little more background, I have a stealth mode startup in the > cloud infrastructure space. We are looking at whether we want to have a > product targeted toward Django, perhaps similar to how Engine Yard and > similar companies target Ruby on Rails. We are partial toward Python as much > of our infrastructure is written in Python and we think the Python space is > under-served compared to Ruby. Any feedback I get will help us to make > decisions and to justify Django as a valid target market to investors (who > generally have heard of Ruby on Rails but not Python and Django). > Thanks! > ?- Jeff > > On Fri, Jul 23, 2010 at 4:58 PM, Glen Jarvis wrote: >> >> BTW, ?I suggested to Jeff that he send this to the group since it is >> Python/Django specific. I didn't know it was marketing research. However, >> since it's python related, I still think it's appropriate for the list. If >> I'm wrong, please yell at me, not Jeff. >> Cheers, >> >> Glen >> > > > _______________________________________________ > Baypiggies mailing list > Baypiggies at python.org > To change your subscription options or unsubscribe: > http://mail.python.org/mailman/listinfo/baypiggies > From niallo at unworkable.org Mon Jul 26 05:31:50 2010 From: niallo at unworkable.org (Niall O'Higgins) Date: Sun, 25 Jul 2010 20:31:50 -0700 Subject: [Baypiggies] Py Web SF #12 - "Tornado: Rocking the non-blocking Web", Tues. 27th July Message-ID: <20100726033150.GZ31369@unworkable.org> Hi folks, PyWebSF is a Python meet-up with a strong focus on Web technology. >From frameworks like WSGI/Pylons/TurboGears/Django to libraries like httplib2 to using emerging Web technologies like Amazon's AWS and Freebase - it's all covered. Who/What -------- * Kurtiss Hare - "Tornado: Rocking the non-blocking Web" http://www.pywebsf.org/2010/07/16/kurtiss-hare-tornado-rocking-the-non-blocking-web/ When ---- 6PM, Tuesday 27 July 2010. Please try to arrive on time to avoid disappointment. We have space for around 10-20 people. Where ----- Stong conference room, 1st floor, SF Main Public Library. Map: http://tinyurl.com/pywebsfmap The library is easily accessible via both BART and Muni at the Civic Center station. The library closes at 8pm so we will continue the discussion over food/drinks at Frjtz Fries [http://www.frjtzfries.com]. More info --------- Subscribe to our Google Calendar at http://tinyurl.com/pywebcal Slides, links, and more at http://pywebsf.org/ Thanks! -- Niall O'Higgins PyWebSF http://pywebsf.org http://niallohiggins.com http://twitter.com/niallohiggins From travis+ml-baypiggies at subspacefield.org Mon Jul 26 23:40:53 2010 From: travis+ml-baypiggies at subspacefield.org (travis+ml-baypiggies at subspacefield.org) Date: Mon, 26 Jul 2010 14:40:53 -0700 Subject: [Baypiggies] simple python sniffer Message-ID: <20100726214053.GA20937@subspacefield.org> http://lists.bitrot.info/pipermail/dfd/2008-October/000004.html Interfaces with Dynamic Firewall Daemon, uses pcapy and Impacket libraries for pcap and packet decoding, respectively. Had to modify the Impacket library slightly, sent diffs back to maintainers, probably imported by now. -- A Weapon of Mass Construction My emails do not have attachments; it's a digital signature that your mail program doesn't understand. | http://www.subspacefield.org/~travis/ If you are a spammer, please email john at subspacefield.org to get blacklisted. -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 833 bytes Desc: not available URL: From kpguy at rediffmail.com Tue Jul 27 08:50:36 2010 From: kpguy at rediffmail.com (Vikram ) Date: 27 Jul 2010 06:50:36 -0000 Subject: [Baypiggies] =?utf-8?q?partial_flattening_of_list?= In-Reply-To: <1277173373.S.1850.48658.f6mail-145-152.rediffmail.com.forward.old.1279792426.12639@webmail.rediffmail.com> Message-ID: <1279792426.S.2657.51944.f6mail-145-186.rediffmail.com.old.1280213436.29610@webmail.rediffmail.com> have the following: >>> x [['NM100', 1, 2], ['NM100', 3, 4], ['NM200', 5, 6]] >>> for i in x: ... print i ... ['NM100', 1, 2] ['NM100', 3, 4] ['NM200', 5, 6] ------ how does one obtain list z such that z = [['NM100',1,2,3,4],['NM200',5,6]] -------------- next part -------------- An HTML attachment was scrubbed... URL: From kpguy at rediffmail.com Tue Jul 27 12:48:28 2010 From: kpguy at rediffmail.com (Vikram ) Date: 27 Jul 2010 10:48:28 -0000 Subject: [Baypiggies] =?utf-8?q?=28corrected=29_partial_flattening_of_list?= Message-ID: <1280213436.S.1864.39753.f6mail-145-185.rediffmail.com.1280227707.58124@webmail.rediffmail.com> Given: l = [['NM100', 1, 3], ['NM100', 7, 10], ['NM200', 13, 16]] want something like: z = [['NM100',[1,2,3,7,8,9,10]],['NM200',[13,14,15,16]]] -------------- next part -------------- An HTML attachment was scrubbed... URL: From jsnitow at gmail.com Tue Jul 27 13:18:16 2010 From: jsnitow at gmail.com (Julian Snitow) Date: Tue, 27 Jul 2010 04:18:16 -0700 Subject: [Baypiggies] partial flattening of list In-Reply-To: <1279792426.S.2657.51944.f6mail-145-186.rediffmail.com.old.1280213436.29610@webmail.rediffmail.com> References: <1277173373.S.1850.48658.f6mail-145-152.rediffmail.com.forward.old.1279792426.12639@webmail.rediffmail.com> <1279792426.S.2657.51944.f6mail-145-186.rediffmail.com.old.1280213436.29610@webmail.rediffmail.com> Message-ID: On Mon, Jul 26, 2010 at 11:50 PM, Vikram wrote: > > > have the following: > > >>> x > [['NM100', 1, 2], ['NM100', 3, 4], ['NM200', 5, 6]] > >>> for i in x: > ... print i > ... > ['NM100', 1, 2] > ['NM100', 3, 4] > ['NM200', 5, 6] > > ------ > how does one obtain list z such that > > z = [['NM100',1,2,3,4],['NM200',5,6]] > > > Hint: collections.defaultdict (list) is your friend here. The first example from the docs is not far from your current problem. :) -------------- next part -------------- An HTML attachment was scrubbed... URL: From kpguy1975 at gmail.com Tue Jul 27 15:30:40 2010 From: kpguy1975 at gmail.com (Vikram K) Date: Tue, 27 Jul 2010 19:00:40 +0530 Subject: [Baypiggies] nested list help Message-ID: Suppose i have this nested list: >>> x [['NM100', 3, 4, 5, 6, 7], ['NM100', 10, 11, 12, 13], ['NM200', 15, 16, 17]] >>> for i in x: ... print i ... ['NM100', 3, 4, 5, 6, 7] ['NM100', 10, 11, 12, 13] ['NM200', 15, 16, 17] >>> how do i obtain from the above the following nested list: >>> z [['NM100', 3, 4, 5, 6, 7, 10, 11, 12, 13], ['NM200', 15, 16, 17]] >>> for i in z: ... print i ... ['NM100', 3, 4, 5, 6, 7, 10, 11, 12, 13] ['NM200', 15, 16, 17] >>> -------------- next part -------------- An HTML attachment was scrubbed... URL: From glen at glenjarvis.com Tue Jul 27 16:01:57 2010 From: glen at glenjarvis.com (Glen Jarvis) Date: Tue, 27 Jul 2010 07:01:57 -0700 Subject: [Baypiggies] nested list help In-Reply-To: References: Message-ID: To help define the problem, what behavior do you expect if the second element of your original list also contains a duplicate element. In this example, what result are you looking for if your second element was ['NM100', 7, 11, 12, 13] Glen > Suppose i have this nested list: > > >>> x > [['NM100', 3, 4, 5, 6, 7], ['NM100', 10, 11, 12, 13], ['NM200', 15, 16, 17]] > >>> for i in x: > ... print i > ... > ['NM100', 3, 4, 5, 6, 7] > ['NM100', 10, 11, 12, 13] > ['NM200', 15, 16, 17] > >>> > > how do i obtain from the above the following nested list: > > >>> z > [['NM100', 3, 4, 5, 6, 7, 10, 11, 12, 13], ['NM200', 15, 16, 17]] > >>> for i in z: > ... print i > ... > ['NM100', 3, 4, 5, 6, 7, 10, 11, 12, 13] > ['NM200', 15, 16, 17] > >>> > > _______________________________________________ > Baypiggies mailing list > Baypiggies at python.org > To change your subscription options or unsubscribe: > http://mail.python.org/mailman/listinfo/baypiggies From kpguy1975 at gmail.com Tue Jul 27 16:19:26 2010 From: kpguy1975 at gmail.com (Vikram K) Date: Tue, 27 Jul 2010 19:49:26 +0530 Subject: [Baypiggies] Fwd: nested list help In-Reply-To: References: Message-ID: ---------- Forwarded message ---------- From: Vikram K Date: Tue, Jul 27, 2010 at 7:48 PM Subject: Re: [Baypiggies] nested list help To: Glen Jarvis Hi Glen, the elements of the original list will never contain a duplicate element. The numbers other than the NMID are actually representing exon coordinates and the joining is being done to represent the fact that exons (or rather exon coordinates) corresponding to the same NMID are joined together to represent splicing during transcription from DNA to mRNA. On Tue, Jul 27, 2010 at 7:31 PM, Glen Jarvis wrote: > To help define the problem, what behavior do you expect if the second > element of your original list also contains a duplicate element. In this > example, what result are you looking for if your second element was > ['NM100', 7, 11, 12, 13] > > Glen > > > > > Suppose i have this nested list: > > > > >>> x > > [['NM100', 3, 4, 5, 6, 7], ['NM100', 10, 11, 12, 13], ['NM200', 15, 16, > 17]] > > >>> for i in x: > > ... print i > > ... > > ['NM100', 3, 4, 5, 6, 7] > > ['NM100', 10, 11, 12, 13] > > ['NM200', 15, 16, 17] > > >>> > > > > how do i obtain from the above the following nested list: > > > > >>> z > > [['NM100', 3, 4, 5, 6, 7, 10, 11, 12, 13], ['NM200', 15, 16, 17]] > > >>> for i in z: > > ... print i > > ... > > ['NM100', 3, 4, 5, 6, 7, 10, 11, 12, 13] > > ['NM200', 15, 16, 17] > > >>> > > > > _______________________________________________ > > 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 amax at redsymbol.net Tue Jul 27 17:36:53 2010 From: amax at redsymbol.net (Aaron Maxwell) Date: Tue, 27 Jul 2010 08:36:53 -0700 Subject: [Baypiggies] easily controlling the python version in python scripts Message-ID: <201007270836.53982.amax@redsymbol.net> Hi everyone, Here's a solution I recently figured out to a problem I had, and which others here might benefit from as well: http://ai.redsymbol.net/2010/07/env-and-python-scripts-controlling.html Cheers, Aaron -- Aaron Maxwell http://redsymbol.net/ From glen at glenjarvis.com Tue Jul 27 18:03:05 2010 From: glen at glenjarvis.com (Glen Jarvis) Date: Tue, 27 Jul 2010 09:03:05 -0700 Subject: [Baypiggies] Fwd: nested list help In-Reply-To: References: Message-ID: Vikram, From my experience with your previous posts, you're looking for an elegant and nice solution -- not just an "answer" (and I commend that!) What I have below is an answer, not an elegant solution. Everyone else, As a learning experience, I went through Julian's Snitow's suggestion on default dicts. What I have works -- however, what is "ugly" to me is trying to [].insert without getting a None... I have an ugly secondary outer list comprehension to get around that. It feels too hacky to me. I'd be very curious how someone fromt his group makes this better. I'll probably slap myself on the forehead when I see the better solution. from collections import defaultdict x=[['NM100', 3, 4, 5, 6, 7], ['NM100', 10, 11, 12, 13], ['NM200', 15, 16, 17]] d=defaultdict(list) for item in x: d[item[0]].extend(item[1:]) z = [ a for a, b in [(y, y.insert(0, x)) for x, y in d.items() ]] for i in z: print i lappy_adaptor> python vikram.py ['NM100', 3, 4, 5, 6, 7, 10, 11, 12, 13] ['NM200', 15, 16, 17] On Tue, Jul 27, 2010 at 7:19 AM, Vikram K wrote: > > > ---------- Forwarded message ---------- > From: Vikram K > Date: Tue, Jul 27, 2010 at 7:48 PM > Subject: Re: [Baypiggies] nested list help > To: Glen Jarvis > > > Hi Glen, > the elements of the original list will never contain a duplicate element. > The numbers other than the NMID are actually representing exon coordinates > and the joining is being done to represent the fact that exons (or rather > exon coordinates) corresponding to the same NMID are joined together to > represent splicing during transcription from DNA to mRNA. > > > On Tue, Jul 27, 2010 at 7:31 PM, Glen Jarvis wrote: > >> To help define the problem, what behavior do you expect if the second >> element of your original list also contains a duplicate element. In this >> example, what result are you looking for if your second element was >> ['NM100', 7, 11, 12, 13] >> >> Glen >> >> >> >> > Suppose i have this nested list: >> > >> > >>> x >> > [['NM100', 3, 4, 5, 6, 7], ['NM100', 10, 11, 12, 13], ['NM200', 15, 16, >> 17]] >> > >>> for i in x: >> > ... print i >> > ... >> > ['NM100', 3, 4, 5, 6, 7] >> > ['NM100', 10, 11, 12, 13] >> > ['NM200', 15, 16, 17] >> > >>> >> > >> > how do i obtain from the above the following nested list: >> > >> > >>> z >> > [['NM100', 3, 4, 5, 6, 7, 10, 11, 12, 13], ['NM200', 15, 16, 17]] >> > >>> for i in z: >> > ... print i >> > ... >> > ['NM100', 3, 4, 5, 6, 7, 10, 11, 12, 13] >> > ['NM200', 15, 16, 17] >> > >>> >> > >> > _______________________________________________ >> > 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 > -- Whatever you can do or imagine, begin it; boldness has beauty, magic, and power in it. -- Goethe -------------- next part -------------- An HTML attachment was scrubbed... URL: From rob at zuber.net Tue Jul 27 18:50:22 2010 From: rob at zuber.net (Robert Zuber) Date: Tue, 27 Jul 2010 09:50:22 -0700 Subject: [Baypiggies] Fwd: nested list help In-Reply-To: References: Message-ID: Glen, I too find myself wishing that list methods returned a reference to the list so that I could chain those calls or use them in list comprehensions. Look forward to anyone's input on why they don't. As far as simplifying, I'm not sure what the difference in intermediary objects is, but here's where I started: >>> from collections import defaultdict >>> d = defaultdict(list) >>> for key, values in ((i[0], i[1:]) for i in x): ... d[key].extend(values) ... >>> z = [[key] + values for key, values in d.iteritems()] >>> z [['NM100', 3, 4, 5, 6, 7, 10, 11, 12, 13], ['NM200', 15, 16, 17]] With a regular dict, you could use setdefault() so you don't have to append the key later: >>> d = {} >>> for key, values in ((i[0], i[1:]) for i in x): ... d.setdefault(key, [key]).extend(values) ... >>> z = d.values() >>> z [['NM100', 3, 4, 5, 6, 7, 10, 11, 12, 13], ['NM200', 15, 16, 17]] But then you get extraneous object creation. So, my best guess to get the benefits of both: >>> from collections import defaultdict >>> x = [['NM100', 3, 4, 5, 6, 7], ['NM100', 10, 11, 12, 13], ['NM200', 15, 16, 17]] >>> class KeyDefaultDict(defaultdict): ... def __missing__(self, key): ... self[key] = [key] ... return self[key] ... >>> d = KeyDefaultDict() >>> for key, values in ((i[0], i[1:]) for i in x): ... d[key].extend(values) ... >>> z = d.values() >>> z [['NM100', 3, 4, 5, 6, 7, 10, 11, 12, 13], ['NM200', 15, 16, 17]] Vikram -- I don't really understand your problem space, but given that you seem to be using a set of lists with keys as the first entries, I'm wondering if you would find your coding easier with dictionaries as the base. You would also likely save a lot of intermediary object creation. Cheers, Rob. On Jul 27, 2010, at 9:03 AM, Glen Jarvis wrote: > Vikram, > From my experience with your previous posts, you're looking for an elegant and nice solution -- not just an "answer" (and I commend that!) What I have below is an answer, not an elegant solution. > > Everyone else, > As a learning experience, I went through Julian's Snitow's suggestion on default dicts. What I have works -- however, what is "ugly" to me is trying to [].insert without getting a None... I have an ugly secondary outer list comprehension to get around that. It feels too hacky to me. > > I'd be very curious how someone fromt his group makes this better. I'll probably slap myself on the forehead when I see the better solution. > > > from collections import defaultdict > > x=[['NM100', 3, 4, 5, 6, 7], > ['NM100', 10, 11, 12, 13], > ['NM200', 15, 16, 17]] > > d=defaultdict(list) > for item in x: > d[item[0]].extend(item[1:]) > > z = [ a for a, b in > [(y, y.insert(0, x)) > for x, y in d.items() ]] > > for i in z: > print i > > lappy_adaptor> python vikram.py > ['NM100', 3, 4, 5, 6, 7, 10, 11, 12, 13] > ['NM200', 15, 16, 17] > > > > On Tue, Jul 27, 2010 at 7:19 AM, Vikram K wrote: > > > ---------- Forwarded message ---------- > From: Vikram K > Date: Tue, Jul 27, 2010 at 7:48 PM > Subject: Re: [Baypiggies] nested list help > To: Glen Jarvis > > > Hi Glen, > the elements of the original list will never contain a duplicate element. The numbers other than the NMID are actually representing exon coordinates and the joining is being done to represent the fact that exons (or rather exon coordinates) corresponding to the same NMID are joined together to represent splicing during transcription from DNA to mRNA. > > > On Tue, Jul 27, 2010 at 7:31 PM, Glen Jarvis wrote: > To help define the problem, what behavior do you expect if the second element of your original list also contains a duplicate element. In this example, what result are you looking for if your second element was ['NM100', 7, 11, 12, 13] > > Glen > > > > > Suppose i have this nested list: > > > > >>> x > > [['NM100', 3, 4, 5, 6, 7], ['NM100', 10, 11, 12, 13], ['NM200', 15, 16, 17]] > > >>> for i in x: > > ... print i > > ... > > ['NM100', 3, 4, 5, 6, 7] > > ['NM100', 10, 11, 12, 13] > > ['NM200', 15, 16, 17] > > >>> > > > > how do i obtain from the above the following nested list: > > > > >>> z > > [['NM100', 3, 4, 5, 6, 7, 10, 11, 12, 13], ['NM200', 15, 16, 17]] > > >>> for i in z: > > ... print i > > ... > > ['NM100', 3, 4, 5, 6, 7, 10, 11, 12, 13] > > ['NM200', 15, 16, 17] > > >>> > > > > _______________________________________________ > > 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 > > > > -- > Whatever you can do or imagine, begin it; > boldness has beauty, magic, and power in it. > > -- Goethe > _______________________________________________ > 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 recursive.cookie.jar at gmail.com Tue Jul 27 18:50:35 2010 From: recursive.cookie.jar at gmail.com (Zachary Collins) Date: Wed, 28 Jul 2010 01:50:35 +0900 Subject: [Baypiggies] Fwd: nested list help In-Reply-To: References: Message-ID: Will this work? import itertools import operator def magic_function(x): grouped_x = itertools.groupby(sorted(x), lambda l: l[0]) return [ [k] + reduce(operator.add, (l[1:] for l in gs)) for k, gs in grouped_x ] x = [['NM100', 3, 4, 5, 6, 7], ['NM100', 10, 11, 12, 13], ['NM200', 15, 16, 17]] print x print magic_function(x) On Wed, Jul 28, 2010 at 1:03 AM, Glen Jarvis wrote: > Vikram, > ?? ?From my experience with your previous posts, you're looking for an > elegant and nice solution -- not just an "answer" (and I commend that!) > ?What I have below is an answer, not an elegant solution. > Everyone else, > ?? As a?learning?experience, I went through Julian's Snitow's suggestion on > default dicts. What I have works -- however, what is "ugly" to me is trying > to [].insert without getting a None... I have an ugly secondary outer list > comprehension to get around that. It feels too hacky to me. > I'd be very curious how someone fromt his group makes this better. I'll > probably slap myself on the?forehead?when I see the better solution. > > from collections import defaultdict > x=[['NM100', 3, 4, 5, 6, 7], > ?? ['NM100', 10, 11, 12, 13], > ?? ['NM200', 15, 16, 17]] > d=defaultdict(list) > for item in x: > ?? ?d[item[0]].extend(item[1:]) > z = [ a for a, b in > ?? ? ? ?[(y, y.insert(0, x)) > ?? ? ? ? ? ?for x, y in d.items() ]] > for i in z: > ?? ?print i > lappy_adaptor> python vikram.py > ['NM100', 3, 4, 5, 6, 7, 10, 11, 12, 13] > ['NM200', 15, 16, 17] > > > On Tue, Jul 27, 2010 at 7:19 AM, Vikram K wrote: >> >> >> ---------- Forwarded message ---------- >> From: Vikram K >> Date: Tue, Jul 27, 2010 at 7:48 PM >> Subject: Re: [Baypiggies] nested list help >> To: Glen Jarvis >> >> >> Hi Glen, >> ?the elements of the original list will never contain a duplicate element. >> The numbers other than the NMID are actually representing exon coordinates >> and the joining is being done to represent the fact that exons (or rather >> exon coordinates) corresponding to the same NMID are joined together to >> represent splicing during transcription from DNA to mRNA. >> >> On Tue, Jul 27, 2010 at 7:31 PM, Glen Jarvis wrote: >>> >>> To help define the problem, what behavior do you expect if the second >>> element of your original list also contains a duplicate element. In this >>> example, what result are you looking for if your second element was >>> ['NM100', 7, 11, 12, 13] >>> >>> Glen >>> >>> >>> >>> > Suppose i have this nested list: >>> > >>> > >>> x >>> > [['NM100', 3, 4, 5, 6, 7], ['NM100', 10, 11, 12, 13], ['NM200', 15, 16, >>> > 17]] >>> > >>> for i in x: >>> > ... ? print i >>> > ... >>> > ['NM100', 3, 4, 5, 6, 7] >>> > ['NM100', 10, 11, 12, 13] >>> > ['NM200', 15, 16, 17] >>> > >>> >>> > >>> > how do i obtain from the above the following nested list: >>> > >>> > >>> z >>> > [['NM100', 3, 4, 5, 6, 7, 10, 11, 12, 13], ['NM200', 15, 16, 17]] >>> > >>> for i in z: >>> > ... ? print i >>> > ... >>> > ['NM100', 3, 4, 5, 6, 7, 10, 11, 12, 13] >>> > ['NM200', 15, 16, 17] >>> > >>> >>> > >>> > _______________________________________________ >>> > 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 > > > > -- > Whatever you can do or imagine, begin it; > boldness has beauty, magic, and power in it. > > -- Goethe > > _______________________________________________ > Baypiggies mailing list > Baypiggies at python.org > To change your subscription options or unsubscribe: > http://mail.python.org/mailman/listinfo/baypiggies > From kpguy1975 at gmail.com Tue Jul 27 18:59:16 2010 From: kpguy1975 at gmail.com (Vikram K) Date: Tue, 27 Jul 2010 22:29:16 +0530 Subject: [Baypiggies] Fwd: nested list help In-Reply-To: References: Message-ID: I received two emails from list members which the member did not cc to the mailing list. I've sent my thanks separately, but here is what i was sent: Method 1: mylist = [['NM100', 3, 4, 5, 6, 7], ['NM100', 10, 11, 12, 13], ['NM200', 15, 16, 17]] print mylist print '&&&&&&&&&&&&&&&&' d= {} for i in mylist: d.setdefault(i[0],[]) d[i[0]].extend(i[1:]) ------- Method 2 (similar to method 1 actually): z = [['NM100', 3, 4, 5, 6, 7], ['NM100', 10, 11, 12, 13], ['NM200', 15, 16, 17]] print z print '*******************' d = dict() for i in z: if i[0] in d: d[i[0]].extend(i[1:]) else: d[i[0]] = i[1:] print d On Tue, Jul 27, 2010 at 10:20 PM, Zachary Collins < recursive.cookie.jar at gmail.com> wrote: > Will this work? > > import itertools > import operator > > def magic_function(x): > grouped_x = itertools.groupby(sorted(x), lambda l: l[0]) > return [ [k] + reduce(operator.add, (l[1:] for l in gs)) for k, gs > in grouped_x ] > > > x = [['NM100', 3, 4, 5, 6, 7], ['NM100', 10, 11, 12, 13], ['NM200', 15, 16, > 17]] > print x > print magic_function(x) > > > On Wed, Jul 28, 2010 at 1:03 AM, Glen Jarvis wrote: > > Vikram, > > From my experience with your previous posts, you're looking for an > > elegant and nice solution -- not just an "answer" (and I commend that!) > > What I have below is an answer, not an elegant solution. > > Everyone else, > > As a learning experience, I went through Julian's Snitow's suggestion > on > > default dicts. What I have works -- however, what is "ugly" to me is > trying > > to [].insert without getting a None... I have an ugly secondary outer > list > > comprehension to get around that. It feels too hacky to me. > > I'd be very curious how someone fromt his group makes this better. I'll > > probably slap myself on the forehead when I see the better solution. > > > > from collections import defaultdict > > x=[['NM100', 3, 4, 5, 6, 7], > > ['NM100', 10, 11, 12, 13], > > ['NM200', 15, 16, 17]] > > d=defaultdict(list) > > for item in x: > > d[item[0]].extend(item[1:]) > > z = [ a for a, b in > > [(y, y.insert(0, x)) > > for x, y in d.items() ]] > > for i in z: > > print i > > lappy_adaptor> python vikram.py > > ['NM100', 3, 4, 5, 6, 7, 10, 11, 12, 13] > > ['NM200', 15, 16, 17] > > > > > > On Tue, Jul 27, 2010 at 7:19 AM, Vikram K wrote: > >> > >> > >> ---------- Forwarded message ---------- > >> From: Vikram K > >> Date: Tue, Jul 27, 2010 at 7:48 PM > >> Subject: Re: [Baypiggies] nested list help > >> To: Glen Jarvis > >> > >> > >> Hi Glen, > >> the elements of the original list will never contain a duplicate > element. > >> The numbers other than the NMID are actually representing exon > coordinates > >> and the joining is being done to represent the fact that exons (or > rather > >> exon coordinates) corresponding to the same NMID are joined together to > >> represent splicing during transcription from DNA to mRNA. > >> > >> On Tue, Jul 27, 2010 at 7:31 PM, Glen Jarvis > wrote: > >>> > >>> To help define the problem, what behavior do you expect if the second > >>> element of your original list also contains a duplicate element. In > this > >>> example, what result are you looking for if your second element was > >>> ['NM100', 7, 11, 12, 13] > >>> > >>> Glen > >>> > >>> > >>> > >>> > Suppose i have this nested list: > >>> > > >>> > >>> x > >>> > [['NM100', 3, 4, 5, 6, 7], ['NM100', 10, 11, 12, 13], ['NM200', 15, > 16, > >>> > 17]] > >>> > >>> for i in x: > >>> > ... print i > >>> > ... > >>> > ['NM100', 3, 4, 5, 6, 7] > >>> > ['NM100', 10, 11, 12, 13] > >>> > ['NM200', 15, 16, 17] > >>> > >>> > >>> > > >>> > how do i obtain from the above the following nested list: > >>> > > >>> > >>> z > >>> > [['NM100', 3, 4, 5, 6, 7, 10, 11, 12, 13], ['NM200', 15, 16, 17]] > >>> > >>> for i in z: > >>> > ... print i > >>> > ... > >>> > ['NM100', 3, 4, 5, 6, 7, 10, 11, 12, 13] > >>> > ['NM200', 15, 16, 17] > >>> > >>> > >>> > > >>> > _______________________________________________ > >>> > 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 > > > > > > > > -- > > Whatever you can do or imagine, begin it; > > boldness has beauty, magic, and power in it. > > > > -- Goethe > > > > _______________________________________________ > > 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 ferringb at gmail.com Sat Jul 31 01:53:45 2010 From: ferringb at gmail.com (Brian Harring) Date: Fri, 30 Jul 2010 16:53:45 -0700 Subject: [Baypiggies] keeping cpy extension docs in sync with the native implementation Message-ID: <20100730235345.GB32513@hrair> Curious, how do y'all manage to keep your docstrings for extension in sync with your native implementation? Specifically, say you've got 'module.submodule.some_class' , which will be 'module._cpython_extension.kls' if the extensions are enabled, and 'module.submodule.native_implementation' if not, how do you keep your literal __doc__ in sync? This pattern is semi common if you're not requiring extensions, but want to use the extension if it's available (for speed reasons)- a real world example would be http://www.pkgcore.org/trac/pkgcore/browser/ferringb/snakeoil-sphinx/snakeoil/caching.py So the question is, how do y'all keep the docstrings in sync? Personally I'd rather not be stuck trying to keep the docstrings in two places perfectly in sync, but I'm not aware of anything better. Thoughts/suggestions? ~brian -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 198 bytes Desc: not available URL: From sganguly at yahoo.com Sat Jul 31 06:21:04 2010 From: sganguly at yahoo.com (Sukanta ganguly) Date: Fri, 30 Jul 2010 21:21:04 -0700 (PDT) Subject: [Baypiggies] Any experience with Tornado server Message-ID: <300973.14676.qm@web120716.mail.ne1.yahoo.com> Hi, I would be very interested in learning from anybody about their experience with Tornado Web Server. I am trying to pick it up for some development but the documentation and samples are very lean. Any first hand experience would be greatly appreciated. Thanks SG -------------- next part -------------- An HTML attachment was scrubbed... URL: From motoom at xs4all.nl Sat Jul 31 10:20:57 2010 From: motoom at xs4all.nl (Michiel Overtoom) Date: Sat, 31 Jul 2010 10:20:57 +0200 Subject: [Baypiggies] Any experience with Tornado server In-Reply-To: <300973.14676.qm@web120716.mail.ne1.yahoo.com> References: <300973.14676.qm@web120716.mail.ne1.yahoo.com> Message-ID: <4C53DCE9.1050507@xs4all.nl> Sukanta ganguly wrote: > I would be very interested in learning from anybody about their > experience with Tornado Web Server. Interesting article, also featuring Tornado: http://nichol.as/benchmark-of-python-web-servers Greetings, From sganguly at yahoo.com Sat Jul 31 11:49:36 2010 From: sganguly at yahoo.com (Sukanta ganguly) Date: Sat, 31 Jul 2010 02:49:36 -0700 (PDT) Subject: [Baypiggies] Any experience with Tornado server In-Reply-To: <4C53DCE9.1050507@xs4all.nl> References: <300973.14676.qm@web120716.mail.ne1.yahoo.com> <4C53DCE9.1050507@xs4all.nl> Message-ID: <385223.62771.qm@web120717.mail.ne1.yahoo.com> Great review, Thanks SG ________________________________ From: Michiel Overtoom To: baypiggies at python.org Cc: Sukanta ganguly Sent: Sat, July 31, 2010 1:20:57 AM Subject: Re: [Baypiggies] Any experience with Tornado server Sukanta ganguly wrote: > I would be very interested in learning from anybody about their experience >with Tornado Web Server. Interesting article, also featuring Tornado: http://nichol.as/benchmark-of-python-web-servers Greetings, -------------- next part -------------- An HTML attachment was scrubbed... URL: