From brianhray at gmail.com Wed Dec 1 20:24:58 2010 From: brianhray at gmail.com (Brian Ray) Date: Wed, 1 Dec 2010 13:24:58 -0600 Subject: [Chicago] ChiPy North meeting Venue Message-ID: Good news... Texutra on Lake Cook Road in Deerfield has offered to host this months *North* meeting. Any objections? Cheers, Brian From pfein at pobox.com Thu Dec 2 03:31:00 2010 From: pfein at pobox.com (Peter Fein) Date: Wed, 01 Dec 2010 18:31:00 -0800 Subject: [Chicago] Sanity Check Message-ID: <4CF704E4.20208@pobox.com> Hiya- Need to sanity check with a broader group... I've had a few phone interviews lately, which have been followed by demands for programming tests. I am THIS CLOSE: || to telling the next company that asks to shove off. The actual content of the tests has ranged from the trivially easy to straightforward but annoyingly difficult. The former at best indicate whether I'm totally lying about knowing the language at all. Most of the later have been ripped straight from Code Golf or a sophomore algorithms textbook. In no case has the test had anything discernible to do with the actual job. Being a person of integrity, I don't just go look up the answers. I'm particularly ticked off because: * I have ample open source code, which I've pointed people to. In fact, one company got in touch with me because THEY LIKED MY OSS CODE, then demanded I do a coding test anyway. * Some of the companies are startups, which have explicitly prided themselves on their low-bureaucracy/bullshit factor. Hypocrites. I've been coding in Python for eight bloody years already. Marketers don't take marketing tests, do they? Should I tell them to bugger off? Am I on crack? --Pete PS - I have a blog post on this and other frustrations titled: "IT Hiring: You're Doing it Wrong (or) The Author Sinks His Career Prospects for Fun and No Profit" From orblivion at gmail.com Thu Dec 2 03:55:11 2010 From: orblivion at gmail.com (Dan Krol) Date: Wed, 1 Dec 2010 20:55:11 -0600 Subject: [Chicago] Sanity Check In-Reply-To: <4CF704E4.20208@pobox.com> References: <4CF704E4.20208@pobox.com> Message-ID: "Sanity Check" may in fact be an appropriate phrase for the situation. My personal (mostly uneducated) guess would be that they really do want to just do a quick check to make sure you're who you say you are. It doesn't take too long, and it saves them the hassle of an additional hire. I think I've heard that some people do weasel their way into a position they are unqualified for just to gain a little bit of experience. On Dec 1, 2010 8:38 PM, "Peter Fein" wrote: > Hiya- > > Need to sanity check with a broader group... I've had a few phone > interviews lately, which have been followed by demands for programming > tests. I am THIS CLOSE: || to telling the next company that asks to > shove off. > > The actual content of the tests has ranged from the trivially easy to > straightforward but annoyingly difficult. The former at best indicate > whether I'm totally lying about knowing the language at all. Most of the > later have been ripped straight from Code Golf or a sophomore algorithms > textbook. In no case has the test had anything discernible to do with > the actual job. Being a person of integrity, I don't just go look up the > answers. > > I'm particularly ticked off because: > > * I have ample open source code, which I've pointed people to. In fact, > one company got in touch with me because THEY LIKED MY OSS CODE, then > demanded I do a coding test anyway. > * Some of the companies are startups, which have explicitly prided > themselves on their low-bureaucracy/bullshit factor. Hypocrites. > > I've been coding in Python for eight bloody years already. Marketers > don't take marketing tests, do they? > > Should I tell them to bugger off? Am I on crack? > > --Pete > > PS - I have a blog post on this and other frustrations titled: "IT > Hiring: You're Doing it Wrong (or) The Author Sinks His Career Prospects > for Fun and No Profit" > _______________________________________________ > Chicago mailing list > Chicago at python.org > http://mail.python.org/mailman/listinfo/chicago -------------- next part -------------- An HTML attachment was scrubbed... URL: From herbieman2000 at gmail.com Thu Dec 2 03:56:35 2010 From: herbieman2000 at gmail.com (Frank Duncan) Date: Wed, 1 Dec 2010 20:56:35 -0600 Subject: [Chicago] Sanity Check In-Reply-To: <4CF704E4.20208@pobox.com> References: <4CF704E4.20208@pobox.com> Message-ID: I think you're on crack. I find one of the best ways to evaluate a new hire is to have them code something through with me. I get a feel of not only how they approach a real problem, but also how they work with me, what kinds of questions they ask, what kinds of development habits they have, etc, etc. It's not simply a question of whether they can solve a problem, but how and why they chose the solution they did. Then I can work through it with them and learn more about them. The reason I'm not as found of open source code is that it takes a lot of time for me to work through and understand it to the level that I'll be comfortable making evaluations based on it. For instance, if you solved it the best way that exists, but I don't understand that you did, I may be harsher because I thought the problem was easier than it actually was. However, if the problem is one I'm familiar with, or have solved myself, it gives me a good baseline about what questions to ask and what to expect. And yes, marketers are asked to bring in a portfolio of previous work, as well as to think up, on the spot, ideas for how to run a marketing campaign. They are absolutely asked to apply their creative skills to different problems in the interview just as they would on the actual job. I actually think it's a great thing that our industry has started to learn from the lessons other thought based industries rather than meaningless trivia quizes or waxing philosophical about previous projects. On Wed, Dec 1, 2010 at 8:31 PM, Peter Fein wrote: > Hiya- > > Need to sanity check with a broader group... I've had a few phone interviews > lately, which have been followed by demands for programming tests. I am THIS > CLOSE: || to telling the next company that asks to shove off. > > The actual content of the tests has ranged from the trivially easy to > straightforward but annoyingly difficult. The former at best indicate > whether I'm totally lying about knowing the language at all. Most of the > later have been ripped straight from Code Golf or a sophomore algorithms > textbook. In no case has the test had anything discernible to do with the > actual job. Being a person of integrity, I don't just go look up the > answers. > > I'm particularly ticked off because: > > * I have ample open source code, which I've pointed people to. In fact, one > company got in touch with me because THEY LIKED MY OSS CODE, then demanded I > do a coding test anyway. > * Some of the companies are startups, which have explicitly prided > themselves on their low-bureaucracy/bullshit factor. Hypocrites. > > I've been coding in Python for eight bloody years already. Marketers don't > take marketing tests, do they? > > Should I tell them to bugger off? Am I on crack? > > --Pete > > PS - I have a blog post on this and other frustrations titled: "IT Hiring: > You're Doing it Wrong (or) The Author Sinks His Career Prospects for Fun and > No Profit" > _______________________________________________ > Chicago mailing list > Chicago at python.org > http://mail.python.org/mailman/listinfo/chicago > From samir at esamir.com Thu Dec 2 04:17:24 2010 From: samir at esamir.com (Samir Faci) Date: Wed, 1 Dec 2010 21:17:24 -0600 Subject: [Chicago] Sanity Check In-Reply-To: References: <4CF704E4.20208@pobox.com> Message-ID: It really depends on the tasks they gave you to do. If the code is just some simple exercise to prove you coding ability, then its perfectly reasonable. If the code is a coding project disguised as a test, then I'd say no thanks...and walk away. Though, usually when you get to the point where they ask you to do a programming task, its usually because they have a pending job offer they want to present to you. -- Samir On Wed, Dec 1, 2010 at 8:55 PM, Dan Krol wrote: > "Sanity Check" may in fact be an appropriate phrase for the situation. My > personal (mostly uneducated) guess would be that they really do want to just > do a quick check to make sure you're who you say you are. It doesn't take > too long, and it saves them the hassle of an additional hire. I think I've > heard that some people do weasel their way into a position they are > unqualified for just to gain a little bit of experience. > > On Dec 1, 2010 8:38 PM, "Peter Fein" wrote: >> Hiya- >> >> Need to sanity check with a broader group... I've had a few phone >> interviews lately, which have been followed by demands for programming >> tests. I am THIS CLOSE: || to telling the next company that asks to >> shove off. >> >> The actual content of the tests has ranged from the trivially easy to >> straightforward but annoyingly difficult. The former at best indicate >> whether I'm totally lying about knowing the language at all. Most of the >> later have been ripped straight from Code Golf or a sophomore algorithms >> textbook. In no case has the test had anything discernible to do with >> the actual job. Being a person of integrity, I don't just go look up the >> answers. >> >> I'm particularly ticked off because: >> >> * I have ample open source code, which I've pointed people to. In fact, >> one company got in touch with me because THEY LIKED MY OSS CODE, then >> demanded I do a coding test anyway. >> * Some of the companies are startups, which have explicitly prided >> themselves on their low-bureaucracy/bullshit factor. Hypocrites. >> >> I've been coding in Python for eight bloody years already. Marketers >> don't take marketing tests, do they? >> >> Should I tell them to bugger off? Am I on crack? >> >> --Pete >> >> PS - I have a blog post on this and other frustrations titled: "IT >> Hiring: You're Doing it Wrong (or) The Author Sinks His Career Prospects >> for Fun and No Profit" >> _______________________________________________ >> Chicago mailing list >> Chicago at python.org >> http://mail.python.org/mailman/listinfo/chicago > > _______________________________________________ > Chicago mailing list > Chicago at python.org > http://mail.python.org/mailman/listinfo/chicago > > -- -- Samir Faci *insert title* fortune | cowsay -f /usr/share/cows/tux.cow From skip at pobox.com Thu Dec 2 04:25:37 2010 From: skip at pobox.com (skip at pobox.com) Date: Wed, 1 Dec 2010 21:25:37 -0600 Subject: [Chicago] Sanity Check In-Reply-To: <4CF704E4.20208@pobox.com> References: <4CF704E4.20208@pobox.com> Message-ID: <19703.4529.583127.383181@montanaro.dyndns.org> Pete> Need to sanity check with a broader group... I've had a few phone Pete> interviews lately, which have been followed by demands for Pete> programming tests. I am THIS CLOSE: || to telling the next company Pete> that asks to shove off. Pete, I think that's getting more and more common these days. Skip From mtobis at gmail.com Thu Dec 2 04:33:20 2010 From: mtobis at gmail.com (Michael Tobis) Date: Wed, 1 Dec 2010 21:33:20 -0600 Subject: [Chicago] Sanity Check In-Reply-To: <19703.4529.583127.383181@montanaro.dyndns.org> References: <4CF704E4.20208@pobox.com> <19703.4529.583127.383181@montanaro.dyndns.org> Message-ID: It makes sense; they want to make sure you are who you say you are. I know of at least one case where two people work in the same field and have identical names where one is much stronger than the other. I think the second one may not even know he is getting by on the first guy's reputation. I say chill. mt From brian.curtin at gmail.com Thu Dec 2 04:43:06 2010 From: brian.curtin at gmail.com (Brian Curtin) Date: Wed, 1 Dec 2010 21:43:06 -0600 Subject: [Chicago] Sanity Check In-Reply-To: References: <4CF704E4.20208@pobox.com> Message-ID: On Wed, Dec 1, 2010 at 21:17, Samir Faci wrote: > It really depends on the tasks they gave you to do. If the code is > just some simple exercise to > prove you coding ability, then its perfectly reasonable. I don't think that's reasonable at all, especially for the organization that contacted him due to his open source work. Pete stated this was post-phone interview, and I would hope they can figure out more from a phone interview than they can in a simple code golf idiot check anyways. If they can't, that's a sign to me that hiring isn't their forte. I'm all for weeding people out early, but you have to do it right. If I was a candidate and I got some irrelevant BS I'd wonder why they couldn't come up with something more fitting. As an interviewer, I want to give my candidates real problems. I want to see how they'd solve something I recently had to solve or will have to solve. Though, usually when you get to the point where they ask you to do a > programming task, > its usually because they have a pending job offer they want to present to > you. > Seems *way* early for that. He's through one phone interview and being setup with programming tests. I'm going to guess he hasn't even been on-site yet. Overall, I'd walk on irrelevant or poorly prepared tests. -------------- next part -------------- An HTML attachment was scrubbed... URL: From bryan.oakley at gmail.com Thu Dec 2 04:44:58 2010 From: bryan.oakley at gmail.com (Bryan Oakley) Date: Wed, 1 Dec 2010 21:44:58 -0600 Subject: [Chicago] Sanity Check In-Reply-To: <4CF704E4.20208@pobox.com> References: <4CF704E4.20208@pobox.com> Message-ID: On Wed, Dec 1, 2010 at 8:31 PM, Peter Fein wrote: > > I'm particularly ticked off because: > > * I have ample open source code, which I've pointed people to. In fact, one > company got in touch with me because THEY LIKED MY OSS CODE, then demanded I > do a coding test anyway. > * Some of the companies are startups, which have explicitly prided > themselves on their low-bureaucracy/bullshit factor. Hypocrites. > > I've been coding in Python for eight bloody years already. Marketers don't > take marketing tests, do they? > > Should I tell them to bugger off? Am I on crack? > > I think the answer to that is simple: do you want the job? If so, write the best solution you can, cheerfully and under deadline. If not, tell them to bugger off. As someone who evaluates such coding tests I know first hand how people who otherwise look pretty good on paper can be absolutely lousy coders. I mean, flat out awful. And remember, the people considering you for a job don't know you from Adam. Your reputation almost certainly has *not* preceded you. The coding challenge is one way for a company to evaluate you on a somewhat level playing field. For the coding test at my company we have seen solutions that range from a single source file of a hundred lines of java, to a couple dozen files jam packed with classes. Some have documentation, some don't. Some have unit tests (hint: provide them with your code), most don't. Just because you know a language or have been using it for 8 years doesn't necessarily mean you are a good programmer. AND, equally important, just because you are a good programmer doesn't necessarily mean you are good for a particular company. I've worked with a company where you were practically forbidden to add comments (and this code base was about the best I've ever seen as far as performance, robustness, maintainability, etc) to code that required more comments than actual code by a factor of several. I've worked with companies that refuse to do OO, and companies that go way overboard with deeply nested object hierarchies. Your code sample will tell them what sort of programmer you are, and whether there's a chance you'll fit. So, again, it all boils down to whether you want the job or not. If you submit the solution you have a chance at getting the job. If you tell them to bugger off your chances go down precipitously. From skip at pobox.com Thu Dec 2 05:04:59 2010 From: skip at pobox.com (skip at pobox.com) Date: Wed, 1 Dec 2010 22:04:59 -0600 Subject: [Chicago] Sanity Check In-Reply-To: References: <4CF704E4.20208@pobox.com> Message-ID: <19703.6891.77851.714851@montanaro.dyndns.org> Where I work (a trading firm), we routinely give tests to prospective software developers and quantitative analysts. For the most part the aim is to understand how people approach problems, not whether they necessarily get the correct answer. (Some of the questions don't have one correct answer anyway.) In fact, we often consider candidates with no previous financial industry experience. In those cases if we ask a finance-oriented question we really and truly are interested in seeing how they approach the problem. The host goes over the test with the candidate, again, with an aim to understand how they think. It's not treated like a 30-minute quiz in your college calculus class. Skip From brian.curtin at gmail.com Thu Dec 2 05:09:26 2010 From: brian.curtin at gmail.com (Brian Curtin) Date: Wed, 1 Dec 2010 22:09:26 -0600 Subject: [Chicago] Sanity Check In-Reply-To: <19703.6891.77851.714851@montanaro.dyndns.org> References: <4CF704E4.20208@pobox.com> <19703.6891.77851.714851@montanaro.dyndns.org> Message-ID: On Wed, Dec 1, 2010 at 22:04, wrote: > > Where I work (a trading firm), we routinely give tests to prospective > software developers and quantitative analysts. For the most part the aim > is > to understand how people approach problems, not whether they necessarily > get > the correct answer. (Some of the questions don't have one correct answer > anyway.) In fact, we often consider candidates with no previous financial > industry experience. In those cases if we ask a finance-oriented question > we really and truly are interested in seeing how they approach the problem. > > The host goes over the test with the candidate, again, with an aim to > understand how they think. It's not treated like a 30-minute quiz in your > college calculus class. > > Skip This type of thing I can get on board with. I didn't get the feeling that Pete's questions are done in this way, but maybe I was wrong. -------------- next part -------------- An HTML attachment was scrubbed... URL: From dgriff1 at gmail.com Thu Dec 2 06:25:49 2010 From: dgriff1 at gmail.com (Daniel Griffin) Date: Wed, 1 Dec 2010 23:25:49 -0600 Subject: [Chicago] Sanity Check In-Reply-To: References: <4CF704E4.20208@pobox.com> <19703.6891.77851.714851@montanaro.dyndns.org> Message-ID: I don't like it when they use it as their filter. They should take the time to read resumes and call the people they want to talk to. I do think it's a great way to decide if someone is the right fight. The ideal is a problem that should take a few hours and they can view your repo and see what you did. On Wed, Dec 1, 2010 at 10:09 PM, Brian Curtin wrote: > On Wed, Dec 1, 2010 at 22:04, wrote: > >> >> Where I work (a trading firm), we routinely give tests to prospective >> software developers and quantitative analysts. For the most part the aim >> is >> to understand how people approach problems, not whether they necessarily >> get >> the correct answer. (Some of the questions don't have one correct answer >> anyway.) In fact, we often consider candidates with no previous financial >> industry experience. In those cases if we ask a finance-oriented question >> we really and truly are interested in seeing how they approach the >> problem. >> >> The host goes over the test with the candidate, again, with an aim to >> understand how they think. It's not treated like a 30-minute quiz in your >> college calculus class. >> >> Skip > > > This type of thing I can get on board with. I didn't get the feeling that > Pete's questions are done in this way, but maybe I was wrong. > > _______________________________________________ > Chicago mailing list > Chicago at python.org > http://mail.python.org/mailman/listinfo/chicago > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jsudlow at gmail.com Thu Dec 2 08:48:54 2010 From: jsudlow at gmail.com (Jon Sudlow) Date: Thu, 2 Dec 2010 01:48:54 -0600 Subject: [Chicago] Sanity Check In-Reply-To: References: <4CF704E4.20208@pobox.com> <19703.6891.77851.714851@montanaro.dyndns.org> Message-ID: I understand what you mean. One time a potential employer had me write a hello world function in python and a "say the name" function....Then he offered me a job to sell computer network components and hold a "trouble call cell phone" for an entire weekend, but assured me its "not a big deal". Maybe you've had some bad experiences, but dont be so concerened with trying to guess the motivations of the person sitting accross from you. 9/10 if its a business your new too you will guess wrong because you dont know the business language yet. Just work through their hiring process as efficiently and best you can and see if the job is going to really match your skills. On Wed, Dec 1, 2010 at 11:25 PM, Daniel Griffin wrote: > I don't like it when they use it as their filter. They should take the time > to read resumes and call the people they want to talk to. > > I do think it's a great way to decide if someone is the right fight. The > ideal is a problem that should take a few hours and they can view your repo > and see what you did. > > > On Wed, Dec 1, 2010 at 10:09 PM, Brian Curtin wrote: > >> On Wed, Dec 1, 2010 at 22:04, wrote: >> >>> >>> Where I work (a trading firm), we routinely give tests to prospective >>> software developers and quantitative analysts. For the most part the aim >>> is >>> to understand how people approach problems, not whether they necessarily >>> get >>> the correct answer. (Some of the questions don't have one correct answer >>> anyway.) In fact, we often consider candidates with no previous >>> financial >>> industry experience. In those cases if we ask a finance-oriented >>> question >>> we really and truly are interested in seeing how they approach the >>> problem. >>> >>> The host goes over the test with the candidate, again, with an aim to >>> understand how they think. It's not treated like a 30-minute quiz in >>> your >>> college calculus class. >>> >>> Skip >> >> >> This type of thing I can get on board with. I didn't get the feeling that >> Pete's questions are done in this way, but maybe I was wrong. >> >> _______________________________________________ >> Chicago mailing list >> Chicago at python.org >> http://mail.python.org/mailman/listinfo/chicago >> >> > > _______________________________________________ > Chicago mailing list > Chicago at python.org > http://mail.python.org/mailman/listinfo/chicago > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From pfein at pobox.com Thu Dec 2 09:12:43 2010 From: pfein at pobox.com (Peter Fein) Date: Thu, 02 Dec 2010 00:12:43 -0800 Subject: [Chicago] Sanity Check In-Reply-To: <4CF704E4.20208@pobox.com> References: <4CF704E4.20208@pobox.com> Message-ID: <4CF754FB.9050401@pobox.com> Thanks for all the great responses. Wanted to clarify things a bit: In all of the cases, this has been after one or more phone interviews, always at least with a recruiter, and usually one or more developers. The decent developer interviews have included questions that elicit how I think/communicate: "how would you architect twitter?" "explain an algorithm for finding all permutations of a string" and so forth. I like those questions. My problem is with the take-home tests. What irks me about the tests is the utter irrelevance to what the job involves. They've mostly been the "write the most O(..) efficient algorithm" for jobs that are largely Django & systems integration based. All programmers are not the same - algorithm guys, refactoring guys, language geeks, UX, API & idiom designers, detail nuts, testers, guys who can write a spec from a shoestring, guys who can't write a line of code without one. Not to mention all of the particular areas we work in: webheads, distributed systems, scientific, machine learning, embedded, devops, compilers. I could go on. To try to determine quality amongst this diverse array by channeling Dijkstra is inefficient at best, malicious at worst and probably just plain foolish. Heck, many (most?) applicants are going to code up a well-known solution to your well-known problem looked up on Google (took me 2 searches) or from Rivest (right here under the monitor), which is *exactly what you want* once the person's on the job. But I can't legitimately do that when applying. Perverse. As for weeding out early, I think that's exactly the goal - hiring managers are overwhelmed by resumes. The obstacles they throw up are a way of narrowing the pile down, but not necessarily in a rational way. Heck, there's a job on the python.org board right now where you have to solve some silly little puzzle to find the email address to apply to. Gee, should I spend my time there or on the *three hundred twenty four* other jobs? When I've been on the hiring side, I've asked candidates for a code sample of *their* choosing (OSS or otherwise), preferably that's run in production. You can learn an amazing amount about a programmer by what *they* think is their best work - what they're good at, how they approach a problem, how well they know a language, how they structure code, comments, tests, and so on. Y'know, all the things you'd care about if you were actually working with them, that you'll never discover in the fake environment of a contrived test. --Pete On 12/01/2010 06:31 PM, Peter Fein wrote: > Hiya- > > Need to sanity check with a broader group... I've had a few phone > interviews lately, which have been followed by demands for > programming tests. I am THIS CLOSE: || to telling the next company > that asks to shove off. > > The actual content of the tests has ranged from the trivially easy > to straightforward but annoyingly difficult. The former at best > indicate whether I'm totally lying about knowing the language at all. > Most of the later have been ripped straight from Code Golf or a > sophomore algorithms textbook. In no case has the test had anything > discernible to do with the actual job. Being a person of integrity, I > don't just go look up the answers. > > I'm particularly ticked off because: > > * I have ample open source code, which I've pointed people to. In > fact, one company got in touch with me because THEY LIKED MY OSS > CODE, then demanded I do a coding test anyway. * Some of the > companies are startups, which have explicitly prided themselves on > their low-bureaucracy/bullshit factor. Hypocrites. > > I've been coding in Python for eight bloody years already. Marketers > don't take marketing tests, do they? > > Should I tell them to bugger off? Am I on crack? > > --Pete > > PS - I have a blog post on this and other frustrations titled: "IT > Hiring: You're Doing it Wrong (or) The Author Sinks His Career > Prospects for Fun and No Profit" > _______________________________________________ Chicago mailing list > Chicago at python.org http://mail.python.org/mailman/listinfo/chicago From skip at pobox.com Thu Dec 2 15:20:19 2010 From: skip at pobox.com (skip at pobox.com) Date: Thu, 2 Dec 2010 08:20:19 -0600 Subject: [Chicago] Sanity Check In-Reply-To: References: <4CF704E4.20208@pobox.com> <19703.6891.77851.714851@montanaro.dyndns.org> Message-ID: <19703.43811.547878.909546@montanaro.dyndns.org> Daniel> I don't like it when they use it as their filter. They should Daniel> take the time to read resumes and call the people they want to Daniel> talk to. Again, where I work this is not where it's used. It takes place during the on-site interview process. They have already been phone-screened (and hopefully that means someone has already read their resume). Skip From jason at jrandolph.com Thu Dec 2 15:43:11 2010 From: jason at jrandolph.com (Jason Huggins) Date: Thu, 2 Dec 2010 08:43:11 -0600 Subject: [Chicago] Sanity Check In-Reply-To: <4CF704E4.20208@pobox.com> References: <4CF704E4.20208@pobox.com> Message-ID: On Wed, Dec 1, 2010 at 8:31 PM, Peter Fein wrote: > Need to sanity check with a broader group... I've had a few phone interviews > lately, which have been followed by demands for programming tests. I am THIS > CLOSE: || to telling the next company that asks to shove off. The only way to avoid dancing for "The Man" is to become "The Man". Translated: start your own company. Then you won't have to play these silly games anymore. It's that simple. What's not simple, unfortunately, is having the requisite 2 years of income stashed up to survive your startup's initial trough of non-revenue. Once you have sufficient savings banked up, though, yes, tell the next company that asks to shove off. cheers, hugs Of course, dancing for investors is no fun either. (So, then, it's even better to start your own company *and* not have investors, either.) From dgriff1 at gmail.com Thu Dec 2 15:46:53 2010 From: dgriff1 at gmail.com (Daniel Griffin) Date: Thu, 2 Dec 2010 08:46:53 -0600 Subject: [Chicago] Sanity Check In-Reply-To: <19703.43811.547878.909546@montanaro.dyndns.org> References: <4CF704E4.20208@pobox.com> <19703.6891.77851.714851@montanaro.dyndns.org> <19703.43811.547878.909546@montanaro.dyndns.org> Message-ID: I wasn't saying it to you specifically. It's important to have an idea of who you want to hire and talk to them. I wouldnt hire the smartest programmer in the world if he was an asshole. Dan On Thu, Dec 2, 2010 at 8:20 AM, wrote: > > Daniel> I don't like it when they use it as their filter. They should > Daniel> take the time to read resumes and call the people they want to > Daniel> talk to. > > Again, where I work this is not where it's used. It takes place during the > on-site interview process. They have already been phone-screened (and > hopefully that means someone has already read their resume). > > Skip > _______________________________________________ > Chicago mailing list > Chicago at python.org > http://mail.python.org/mailman/listinfo/chicago > -------------- next part -------------- An HTML attachment was scrubbed... URL: From lance at roytalman.com Thu Dec 2 16:05:41 2010 From: lance at roytalman.com (Lance Hassan) Date: Thu, 2 Dec 2010 09:05:41 -0600 Subject: [Chicago] Sanity Check In-Reply-To: References: <4CF704E4.20208@pobox.com> Message-ID: It's becoming the norm...whether you judge them to be meaningless or not. A significant number of our clients will not only want to see Brainbench scores (percentiles not the useless Brainbench grading system) but many have also cooked up logic tests as well. In other words it's not just enough to say you are a great problem solver who thinks out of the box on your resume, you better be able to pony up and prove it. We will also recommend them (Brainbench) under many circumstances because we know that the programming depth our clients demand just isn't available to everyone and we need some sort of benchmark. It's not the "end all" but it establishes a starting point for managing expectations. If you take the test yourself then you own the results...the problem with a lot of companies is that they own the results and you keep having to repeat yourself. Thank You Lance Hassan Roy Talman and Associates -----Original Message----- From: chicago-bounces+lance=roytalman.com at python.org [mailto:chicago-bounces+lance=roytalman.com at python.org] On Behalf Of Jason Huggins Sent: Thursday, December 02, 2010 8:43 AM To: The Chicago Python Users Group Subject: Re: [Chicago] Sanity Check On Wed, Dec 1, 2010 at 8:31 PM, Peter Fein wrote: > Need to sanity check with a broader group... I've had a few phone > interviews lately, which have been followed by demands for programming > tests. I am THIS > CLOSE: || to telling the next company that asks to shove off. The only way to avoid dancing for "The Man" is to become "The Man". Translated: start your own company. Then you won't have to play these silly games anymore. It's that simple. What's not simple, unfortunately, is having the requisite 2 years of income stashed up to survive your startup's initial trough of non-revenue. Once you have sufficient savings banked up, though, yes, tell the next company that asks to shove off. cheers, hugs Of course, dancing for investors is no fun either. (So, then, it's even better to start your own company *and* not have investors, either.) _______________________________________________ Chicago mailing list Chicago at python.org http://mail.python.org/mailman/listinfo/chicago From shekay at pobox.com Thu Dec 2 16:42:25 2010 From: shekay at pobox.com (sheila miguez) Date: Thu, 2 Dec 2010 09:42:25 -0600 Subject: [Chicago] Sanity Check In-Reply-To: <4CF754FB.9050401@pobox.com> References: <4CF704E4.20208@pobox.com> <4CF754FB.9050401@pobox.com> Message-ID: On Thu, Dec 2, 2010 at 2:12 AM, Peter Fein wrote: > As for weeding out early, I think that's exactly the goal - hiring > managers are overwhelmed by resumes. The obstacles they throw up are a > way of narrowing the pile down, but not necessarily in a rational way. > Heck, there's a job on the python.org board right now where you have to > solve some silly little puzzle to find the email address to apply to. > Gee, should I spend my time there or on the *three hundred twenty four* > other jobs? Ha! A while back I saw one for a job listed from Australia but which said Chicago hours would be fine and the description made me wonder if only egomaniacs would apply for the job. I don't think it was the encoded email one though. -- sheila From pfein at pobox.com Thu Dec 2 16:59:31 2010 From: pfein at pobox.com (Peter Fein) Date: Thu, 02 Dec 2010 07:59:31 -0800 Subject: [Chicago] Sanity Check In-Reply-To: References: <4CF704E4.20208@pobox.com> Message-ID: <4CF7C263.5060205@pobox.com> On 12/02/2010 06:43 AM, Jason Huggins wrote: > On Wed, Dec 1, 2010 at 8:31 PM, Peter Fein wrote: >> Need to sanity check with a broader group... I've had a few phone interviews >> lately, which have been followed by demands for programming tests. I am THIS >> CLOSE: || to telling the next company that asks to shove off. > > The only way to avoid dancing for "The Man" is to become "The Man". > Translated: start your own company. Then you won't have to play these > silly games anymore. It's that simple. Hugs, I think you've nailed it - I think much of the interview process is unnecessarily demeaning and just there to set the stage for longer-term abusive power relationships. Though I've heard from two recruiters that tech hiring in the Bay area is the busiest it's been since '99, so perhaps that'll shift. I'm not asking to be treated like a prima dona, just don't waste my time. Speaking of time, assuming these things take about a day each, at the salary rate these companies are offering, that's upwards of $500/test (let alone what it would be at a consulting rate). Does that influence anyone's thinking? Maybe I should take that day and write some screenscrapers for job boards & blast out resumes instead? > What's not simple, unfortunately, is having the requisite 2 years of > income stashed up to survive your startup's initial trough of > non-revenue. Once you have sufficient savings banked up, though, yes, > tell the next company that asks to shove off. I had that, and I've spent half of it on a year-long sabbatical. Oops. ;-) Can't really say I regret it... > Of course, dancing for investors is no fun either. (So, then, it's > even better to start your own company *and* not have investors, > either.) Hmm, sounds like a case for consulting or a small apps shop... --Pete From jason at jrandolph.com Thu Dec 2 17:35:27 2010 From: jason at jrandolph.com (Jason Huggins) Date: Thu, 2 Dec 2010 10:35:27 -0600 Subject: [Chicago] Sanity Check In-Reply-To: <4CF7C263.5060205@pobox.com> References: <4CF704E4.20208@pobox.com> <4CF7C263.5060205@pobox.com> Message-ID: On Thu, Dec 2, 2010 at 9:59 AM, Peter Fein wrote: > Hmm, sounds like a case for consulting or a small apps shop... If you don't like "dancing", don't go the consulting route either. Ask any professional (like lawyers) about the phrases "dog and pony show" and "beauty contest". It'll be an eye-opening conversation. I think it's a universal truth of human behavior: if someone has money, and you want them to give the money to you, they'll probably make you dance for it, first. It appears the 37signals got it right... The only way you can get away saying "Forget you!" to anyone and everyone all the time (even your customers!) is to run your own small apps shop. Of course, that app has to be so rocking that the number of people who think you're a dick is outweighed by the number of people who are willing to give you money. cheers, hugs From lance at roytalman.com Thu Dec 2 17:35:27 2010 From: lance at roytalman.com (Lance Hassan) Date: Thu, 2 Dec 2010 10:35:27 -0600 Subject: [Chicago] Sanity Check In-Reply-To: <4CF7C263.5060205@pobox.com> References: <4CF704E4.20208@pobox.com> <4CF7C263.5060205@pobox.com> Message-ID: Peter, I think that is pretty close...for the rest of the thread...the cost assumption is just that, it's an assumption, and that cost, even if accurate, is much less to them then making a mistake, or finding out after booking tickets and flying you out and doing all the warm and fuzzies that the candidate can't program their way out of a paper bag. As has been pointed out the number of resumes flooding those places where you would want to work is mind boggling and HR departments are singularly inept at figuring out a good resume from a bad, and a keyword thrown in vs. actual project experience and analysis...they do an initial weed out and then pass it on to an equally stressed and typically less motivated hiring manager who really only wants to hire someone who will secure his next 6 months bonus. The sad truth is that most resumes don't get read past the first 2/3 of a page. And maybe, maybe, the first few bullet points in the work experience section make any impact...This is a sanity/reality check...we used to be able to call a client up and say "you need to see this person"...now even with our fairly select and narrow vertical of clients, tests, both technical and logical are a reality and we work with very few shops which have or use HR as gatekeepers. There is always the alternative: But when a long train of abuses and usurpations, pursuing invariably the same Object evinces a design to reduce them under absolute Despotism, it is their right, it is their duty, to throw off such Government, and to provide new Guards for their future security. --Declaration of Independence... Thank You Lance Hassan Roy Talman and Associates -----Original Message----- From: chicago-bounces+lance=roytalman.com at python.org [mailto:chicago-bounces+lance=roytalman.com at python.org] On Behalf Of Peter Fein Sent: Thursday, December 02, 2010 10:00 AM To: The Chicago Python Users Group Subject: Re: [Chicago] Sanity Check On 12/02/2010 06:43 AM, Jason Huggins wrote: > On Wed, Dec 1, 2010 at 8:31 PM, Peter Fein wrote: >> Need to sanity check with a broader group... I've had a few phone >> interviews lately, which have been followed by demands for >> programming tests. I am THIS >> CLOSE: || to telling the next company that asks to shove off. > > The only way to avoid dancing for "The Man" is to become "The Man". > Translated: start your own company. Then you won't have to play these > silly games anymore. It's that simple. Hugs, I think you've nailed it - I think much of the interview process is unnecessarily demeaning and just there to set the stage for longer-term abusive power relationships. Though I've heard from two recruiters that tech hiring in the Bay area is the busiest it's been since '99, so perhaps that'll shift. I'm not asking to be treated like a prima dona, just don't waste my time. Speaking of time, assuming these things take about a day each, at the salary rate these companies are offering, that's upwards of $500/test (let alone what it would be at a consulting rate). Does that influence anyone's thinking? Maybe I should take that day and write some screenscrapers for job boards & blast out resumes instead? > What's not simple, unfortunately, is having the requisite 2 years of > income stashed up to survive your startup's initial trough of > non-revenue. Once you have sufficient savings banked up, though, yes, > tell the next company that asks to shove off. I had that, and I've spent half of it on a year-long sabbatical. Oops. ;-) Can't really say I regret it... > Of course, dancing for investors is no fun either. (So, then, it's > even better to start your own company *and* not have investors, > either.) Hmm, sounds like a case for consulting or a small apps shop... --Pete _______________________________________________ Chicago mailing list Chicago at python.org http://mail.python.org/mailman/listinfo/chicago From lance at roytalman.com Thu Dec 2 17:47:38 2010 From: lance at roytalman.com (Lance Hassan) Date: Thu, 2 Dec 2010 10:47:38 -0600 Subject: [Chicago] Sanity Check In-Reply-To: References: <4CF704E4.20208@pobox.com> <4CF7C263.5060205@pobox.com> Message-ID: Hugs...yup...that would be about right. The question for you becomes if you take all the things you won't do or compromises you won't make... just how big is the corner you've painted yourself into and how long do you want to live there :-)? That is the real sanity check question. Thank You Lance Hassan Roy Talman and Associates -----Original Message----- From: chicago-bounces+lance=roytalman.com at python.org [mailto:chicago-bounces+lance=roytalman.com at python.org] On Behalf Of Jason Huggins Sent: Thursday, December 02, 2010 10:35 AM To: The Chicago Python Users Group Subject: Re: [Chicago] Sanity Check On Thu, Dec 2, 2010 at 9:59 AM, Peter Fein wrote: > Hmm, sounds like a case for consulting or a small apps shop... If you don't like "dancing", don't go the consulting route either. Ask any professional (like lawyers) about the phrases "dog and pony show" and "beauty contest". It'll be an eye-opening conversation. I think it's a universal truth of human behavior: if someone has money, and you want them to give the money to you, they'll probably make you dance for it, first. It appears the 37signals got it right... The only way you can get away saying "Forget you!" to anyone and everyone all the time (even your customers!) is to run your own small apps shop. Of course, that app has to be so rocking that the number of people who think you're a dick is outweighed by the number of people who are willing to give you money. cheers, hugs _______________________________________________ Chicago mailing list Chicago at python.org http://mail.python.org/mailman/listinfo/chicago From pfein at pobox.com Thu Dec 2 18:03:42 2010 From: pfein at pobox.com (Peter Fein) Date: Thu, 02 Dec 2010 09:03:42 -0800 Subject: [Chicago] Sanity Check In-Reply-To: References: <4CF704E4.20208@pobox.com> <4CF7C263.5060205@pobox.com> Message-ID: <4CF7D16E.7010008@pobox.com> On 12/02/2010 08:35 AM, Jason Huggins wrote: > On Thu, Dec 2, 2010 at 9:59 AM, Peter Fein wrote: >> Hmm, sounds like a case for consulting or a small apps shop... > > If you don't like "dancing", don't go the consulting route either. Ask > any professional (like lawyers) about the phrases "dog and pony show" > and "beauty contest". It'll be an eye-opening conversation. I think > it's a universal truth of human behavior: if someone has money, and > you want them to give the money to you, they'll probably make you > dance for it, first. Three cheers for late-stage industrial capitalism! Let's all treat each other like shit because the guy with the bigger wallet up the line did too... I think I outgrew that sometime in second grade. And there's nothing universal about it, though it's certainly dominant in America. I prefer "handshake capitalism", the kind you'll find at your local bike shop or farmer's market. Anyone who wants a top-notch Python coder with four times the experience of everyone else you're seeing, you know where to find me. You can keep your massages, your car washes and your ball pit, just treat me decently. > It appears the 37signals got it right... The only way you can get away > saying "Forget you!" to anyone and everyone all the time (even your > customers!) is to run your own small apps shop. Of course, that app > has to be so rocking that the number of people who think you're a dick > is outweighed by the number of people who are willing to give you > money. Sounds better and better all the time... now where's that idea notebook at? --Pete From jason at jrandolph.com Thu Dec 2 18:06:22 2010 From: jason at jrandolph.com (Jason Huggins) Date: Thu, 2 Dec 2010 11:06:22 -0600 Subject: [Chicago] Sanity Check In-Reply-To: References: <4CF704E4.20208@pobox.com> <4CF7C263.5060205@pobox.com> Message-ID: On Thu, Dec 2, 2010 at 10:47 AM, Lance Hassan wrote: > Hugs...yup...that would be about right. The question for you becomes if you > take all the things you won't do or compromises you won't make... just how > big is the corner you've painted yourself into and how long do you want to > live there :-)? That is the real sanity check question. Shhh... I'm trying to let Peter learn the lesson on his own: "Life: Some Dancing Required." ;-) cheers, hugs P.S. Let's start talking about Python again! :-) From dgriff1 at gmail.com Thu Dec 2 18:20:34 2010 From: dgriff1 at gmail.com (Daniel Griffin) Date: Thu, 2 Dec 2010 11:20:34 -0600 Subject: [Chicago] Sanity Check In-Reply-To: References: <4CF704E4.20208@pobox.com> <4CF7C263.5060205@pobox.com> Message-ID: I once did the take home problem in python? I think I had to write a blackjack game. On Thu, Dec 2, 2010 at 11:06 AM, Jason Huggins wrote: > On Thu, Dec 2, 2010 at 10:47 AM, Lance Hassan wrote: > > Hugs...yup...that would be about right. The question for you becomes if > you > > take all the things you won't do or compromises you won't make... just > how > > big is the corner you've painted yourself into and how long do you want > to > > live there :-)? That is the real sanity check question. > > Shhh... I'm trying to let Peter learn the lesson on his own: "Life: > Some Dancing Required." ;-) > > cheers, > hugs > > P.S. Let's start talking about Python again! :-) > _______________________________________________ > Chicago mailing list > Chicago at python.org > http://mail.python.org/mailman/listinfo/chicago > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jason at jrandolph.com Thu Dec 2 18:21:55 2010 From: jason at jrandolph.com (Jason Huggins) Date: Thu, 2 Dec 2010 11:21:55 -0600 Subject: [Chicago] Sanity Check In-Reply-To: <4CF7D16E.7010008@pobox.com> References: <4CF704E4.20208@pobox.com> <4CF7C263.5060205@pobox.com> <4CF7D16E.7010008@pobox.com> Message-ID: Okay, last non-Pythonic comments from me on this thread. (Can we move this to the Antiestablishmentarianism list? ;-P On Thu, Dec 2, 2010 at 11:03 AM, Peter Fein wrote: > And there's nothing universal about it, though it's certainly dominant in > America. I prefer "handshake capitalism", the kind you'll find at your local > bike shop or farmer's market. I suspect it's function of the dollar (euro?) amounts involved. $10 <-> $100 == hand-shake. $100,000 == dancing. cheers, hugs From pfein at pobox.com Thu Dec 2 18:59:16 2010 From: pfein at pobox.com (Peter Fein) Date: Thu, 02 Dec 2010 09:59:16 -0800 Subject: [Chicago] Sanity Check In-Reply-To: References: <4CF704E4.20208@pobox.com> <4CF7C263.5060205@pobox.com> Message-ID: <4CF7DE74.3090404@pobox.com> On 12/02/2010 09:06 AM, Jason Huggins wrote: > On Thu, Dec 2, 2010 at 10:47 AM, Lance Hassan wrote: >> Hugs...yup...that would be about right. The question for you becomes if you >> take all the things you won't do or compromises you won't make... just how >> big is the corner you've painted yourself into and how long do you want to >> live there :-)? That is the real sanity check question. > > Shhh... I'm trying to let Peter learn the lesson on his own: "Life: > Some Dancing Required." ;-) Hey, me & my buddies *like* our corner... y'all might too. ;-) Look folks, I'm not unwilling to compromise - I'm looking for a job instead of spending my time cooking and riding bikes. Rent's gotta get paid, that's fine. > P.S. Let's start talking about Python again! :-) Yeah, +1. For a closing thought, I think I'm going to tell these particular folks to take their test on a hike (politely)... not super interested in this one anyway. But mainly, I want to get some data on how they'll react. I'll let you know. Thanks all. --Pete From lance at roytalman.com Thu Dec 2 20:03:15 2010 From: lance at roytalman.com (Lance Hassan) Date: Thu, 2 Dec 2010 13:03:15 -0600 Subject: [Chicago] Sanity Check In-Reply-To: <4CF7DE74.3090404@pobox.com> References: <4CF704E4.20208@pobox.com> <4CF7C263.5060205@pobox.com> <4CF7DE74.3090404@pobox.com> Message-ID: Hey, me & my buddies *like* our corner... y'all might too. ;-) Look folks, I'm not unwilling to compromise - I'm looking for a job instead of spending my time cooking and riding bikes. Rent's gotta get paid, that's fine. And no one is saying there is anything wrong with your corner...and I was likely a previous occupant...it's about choices and how you manipulate the options (yeah I know ...duh). my only advice would be to not get too emotional about the choice, at some point you might want/need to change your mind and you are better off if you have left the bridge intact (mixing metaphors). This message will self-destruct in five seconds. Thank You Lance Hassan Roy Talman and Associates -----Original Message----- From: chicago-bounces+lance=roytalman.com at python.org [mailto:chicago-bounces+lance=roytalman.com at python.org] On Behalf Of Peter Fein Sent: Thursday, December 02, 2010 11:59 AM To: The Chicago Python Users Group Subject: Re: [Chicago] Sanity Check On 12/02/2010 09:06 AM, Jason Huggins wrote: > On Thu, Dec 2, 2010 at 10:47 AM, Lance Hassan wrote: >> Hugs...yup...that would be about right. The question for you becomes >> if you take all the things you won't do or compromises you won't >> make... just how big is the corner you've painted yourself into and >> how long do you want to live there :-)? That is the real sanity check question. > > Shhh... I'm trying to let Peter learn the lesson on his own: "Life: > Some Dancing Required." ;-) Hey, me & my buddies *like* our corner... y'all might too. ;-) Look folks, I'm not unwilling to compromise - I'm looking for a job instead of spending my time cooking and riding bikes. Rent's gotta get paid, that's fine. > P.S. Let's start talking about Python again! :-) Yeah, +1. For a closing thought, I think I'm going to tell these particular folks to take their test on a hike (politely)... not super interested in this one anyway. But mainly, I want to get some data on how they'll react. I'll let you know. Thanks all. --Pete _______________________________________________ Chicago mailing list Chicago at python.org http://mail.python.org/mailman/listinfo/chicago From aphor at me.com Fri Dec 3 04:20:18 2010 From: aphor at me.com (Jeremy McMillan) Date: Thu, 02 Dec 2010 21:20:18 -0600 Subject: [Chicago] Chicago Digest, Vol 64, Issue 6 In-Reply-To: References: Message-ID: Hey Pete! Don't get so down. 1) Your example of the sophomore algorithms textbook problem absolutely begs looking up the answer. Unless you expect to solve all your programming problems locked in a basement with no Internet access research skills are very complimentary to raw programming ability. Of course, I'm not talking about copying the answer from the back of the book, but rather doing a quick survey to measure your own instincts against the state of the art and take the better solution. 2) I think a lot of people seem to be defending programming tests at an interview. I think your original complaint was that they wanted the programming test at the end of a phone interview. I don't think that's appropriate unless the job is not a face-to-face job. 3) You really have already convinced yourself, and I think you will prevail taking the high road. The "handshake capitalism" is lubricated by mutual trust based on the good faith effort all parties can easily observe from their counterparts. If someone spends 5 minutes of effort to get an hour worth of (silly or not) code from you, then you have correctly observed that the hiring company isn't showing you that kind of commitment. It's a corollary of the Pig and Chicken story from Scrum lore. 4) You could have fun with the programming. Embed some commentary, make it funny. There's lots of latitude in variable/class/method names and you could turn your Python into a kind of poetry. Maybe I'm on crack, or just my 4 year old's mentality is affecting me, but If I were you, I'd definitely be dropping some Dr. Seuss-ized code. On Dec 2, 2010, at 11:20 AM, Peter Fein wrote: > Date: Thu, 02 Dec 2010 09:03:42 -0800 > From: Peter Fein > To: The Chicago Python Users Group > Subject: Re: [Chicago] Sanity Check > Message-ID: <4CF7D16E.7010008 at pobox.com> > Content-Type: text/plain; charset=ISO-8859-1; format=flowed > > On 12/02/2010 08:35 AM, Jason Huggins wrote: >> On Thu, Dec 2, 2010 at 9:59 AM, Peter Fein wrote: >>> Hmm, sounds like a case for consulting or a small apps shop... >> >> If you don't like "dancing", don't go the consulting route either. >> Ask >> any professional (like lawyers) about the phrases "dog and pony show" >> and "beauty contest". It'll be an eye-opening conversation. I think >> it's a universal truth of human behavior: if someone has money, and >> you want them to give the money to you, they'll probably make you >> dance for it, first. > > Three cheers for late-stage industrial capitalism! Let's all treat > each > other like shit because the guy with the bigger wallet up the line did > too... I think I outgrew that sometime in second grade. > > And there's nothing universal about it, though it's certainly dominant > in America. I prefer "handshake capitalism", the kind you'll find at > your local bike shop or farmer's market. > > Anyone who wants a top-notch Python coder with four times the > experience > of everyone else you're seeing, you know where to find me. You can > keep > your massages, your car washes and your ball pit, just treat me > decently. > >> It appears the 37signals got it right... The only way you can get >> away >> saying "Forget you!" to anyone and everyone all the time (even your >> customers!) is to run your own small apps shop. Of course, that app >> has to be so rocking that the number of people who think you're a >> dick >> is outweighed by the number of people who are willing to give you >> money. > > Sounds better and better all the time... now where's that idea > notebook at? > > --Pete > -------------- next part -------------- An HTML attachment was scrubbed... URL: From kumar.mcmillan at gmail.com Fri Dec 3 20:09:17 2010 From: kumar.mcmillan at gmail.com (Kumar McMillan) Date: Fri, 3 Dec 2010 13:09:17 -0600 Subject: [Chicago] Sanity Check In-Reply-To: References: <4CF704E4.20208@pobox.com> <4CF7C263.5060205@pobox.com> <4CF7DE74.3090404@pobox.com> Message-ID: This is a big thread but I think it's important to discuss. Every company should strive to hire the best possible talent but they are going to lose out on some smart people if they continue their excessive bureaucracy. I think companies should respect open source more -- you can discover all sorts of ways the developer operates and collaborates with others (mailing lists, bug reports, etc). If open source is not the dev's day job then it's probably what he/she does *for fun*. Check out their projects and you'll learn tons about a potential hire. I recently took a job at Mozilla and thought the interview process was great. Lots of discussion about complex problems, sure, but in ways that made me want to work with these people. I had to do tests but they were just sanity checks about Python and JavaScript nuances and knowledge of http, etc, and we did it all on a whiteboard, not take home tests. You have to do checks like that because there are some seriously deceptive people out there who will do anything for a job. Christian Heilmann wrote about starting at Mozilla recently too and talks about why the more common hire-by-intimidation strategy is not a good one http://www.wait-till-i.com/2010/10/28/so-what-is-the-job-i-am-going-to/ especially: "I went through a few other interviews (no, I won?t mention names) and felt unhappy during the interview. A lot of companies try to make you uncomfortable or intimidate you during an interview. I find this pathetic. The interview in Mozilla was 5 hours of the best brainstorming I had done in a while. We bounced ideas off one another and people came into the meeting room in between interviews as they were excited to see me there and asked me for a quick comment on a new idea of theirs. It was pure creativity." As a developer who also has conducted interviews at my last job, hiring talent is a fine art and it's difficult to master. Some people are gifted at hiring -- find out who they are in your company and always ask them to help conduct interviews! On Thu, Dec 2, 2010 at 1:03 PM, Lance Hassan wrote: > Hey, me & my buddies *like* our corner... y'all might too. ;-) Look folks, > I'm not unwilling to compromise - I'm looking for a job instead of spending > my time cooking and riding bikes. Rent's gotta get paid, that's fine. > > And no one is saying there is anything wrong with your corner...and I was > likely a previous occupant...it's about choices and how you manipulate the > options (yeah I know ...duh). my only advice would be to not get too > emotional about the choice, at some point you might want/need to change your > mind and you are better off if you have left the bridge intact (mixing > metaphors). This message will self-destruct in five seconds. > > Thank You > Lance Hassan > Roy Talman and Associates > > -----Original Message----- > From: chicago-bounces+lance=roytalman.com at python.org > [mailto:chicago-bounces+lance=roytalman.com at python.org] On Behalf Of Peter > Fein > Sent: Thursday, December 02, 2010 11:59 AM > To: The Chicago Python Users Group > Subject: Re: [Chicago] Sanity Check > > On 12/02/2010 09:06 AM, Jason Huggins wrote: >> On Thu, Dec 2, 2010 at 10:47 AM, Lance Hassan ?wrote: >>> Hugs...yup...that would be about right. The question for you becomes >>> if you take all the things you won't do or compromises you won't >>> make... just how big is the corner you've painted yourself into and >>> how long do you want to live there :-)? That is the real sanity check > question. >> >> Shhh... I'm trying to let Peter learn the lesson on his own: "Life: >> Some Dancing Required." ;-) > > Hey, me & my buddies *like* our corner... y'all might too. ;-) Look folks, > I'm not unwilling to compromise - I'm looking for a job instead of spending > my time cooking and riding bikes. Rent's gotta get paid, that's fine. > >> P.S. Let's start talking about Python again! :-) > > Yeah, +1. For a closing thought, I think I'm going to tell these particular > folks to take their test on a hike (politely)... not super interested in > this one anyway. But mainly, I want to get some data on how they'll react. > I'll let you know. > > Thanks all. > > --Pete > _______________________________________________ > Chicago mailing list > Chicago at python.org > http://mail.python.org/mailman/listinfo/chicago > > _______________________________________________ > Chicago mailing list > Chicago at python.org > http://mail.python.org/mailman/listinfo/chicago > From mdipierro at cs.depaul.edu Fri Dec 3 20:25:08 2010 From: mdipierro at cs.depaul.edu (Massimo Di Pierro) Date: Fri, 3 Dec 2010 13:25:08 -0600 Subject: [Chicago] Sanity Check In-Reply-To: References: <4CF704E4.20208@pobox.com> <4CF7C263.5060205@pobox.com> <4CF7DE74.3090404@pobox.com> Message-ID: <05B99389-7496-4F3D-BAE1-6064B3393D15@cs.depaul.edu> On Dec 3, 2010, at 1:09 PM, Kumar McMillan wrote: > This is a big thread but I think it's important to discuss. Every > company should strive to hire the best possible talent but they are > going to lose out on some smart people if they continue their > excessive bureaucracy. Although I agree with this, I would like a not-so-funny anecdote. At the University we have a career center and I deal with a lot of employers. Often we have meeting with them and often we discuss our curriculum with them to see if our students have the right skills. Sometimes they contact me directly asking to recommend a somebody for hire. Ofteny I reply something like: "you should contact Mr. XYZ, he is my best student this quarter". In more than one occasion the employer replied: "we do not want the best student. We want an average student. One that will do what he/she is told without questioning". Massimo From robkapteyn at gmail.com Fri Dec 3 21:34:48 2010 From: robkapteyn at gmail.com (Rob Kapteyn) Date: Fri, 3 Dec 2010 14:34:48 -0600 Subject: [Chicago] Sanity Check In-Reply-To: <05B99389-7496-4F3D-BAE1-6064B3393D15@cs.depaul.edu> References: <4CF704E4.20208@pobox.com> <4CF7C263.5060205@pobox.com> <4CF7DE74.3090404@pobox.com> <05B99389-7496-4F3D-BAE1-6064B3393D15@cs.depaul.edu> Message-ID: On Dec 3, 2010, at 1:25 PM, Massimo Di Pierro wrote: > > In more than one occasion the employer replied: "we do not want the best student. We want an average student. One that will do what he/she is told without questioning". > Yes, it is often very hard to figure out what some of these companies are looking for. And yes -- being too good is often really bad -- often it is because a manager doesn't want someone that might end up replacing them. I have also felt that many of my interviews have been a giant waste of time. Sometimes, a company just can't hire anyone, until they interview X number of candidates. I believe that one interview was just to find a reason to reject me and show that they searched and there was no American worker available for an H1B visa. It would be nice if there was a wiki where techies could anonymously share their job search experiences. It would help to keep some of these employers in line. Problem is -- it would get sued constantly and would need to be offshore. Perhaps a side business for WikiLeaks ;-) -Rob From shekay at pobox.com Fri Dec 3 21:47:25 2010 From: shekay at pobox.com (sheila miguez) Date: Fri, 3 Dec 2010 14:47:25 -0600 Subject: [Chicago] Sanity Check In-Reply-To: References: <4CF704E4.20208@pobox.com> <4CF7C263.5060205@pobox.com> <4CF7DE74.3090404@pobox.com> <05B99389-7496-4F3D-BAE1-6064B3393D15@cs.depaul.edu> Message-ID: On Fri, Dec 3, 2010 at 2:34 PM, Rob Kapteyn wrote: > It would be nice if there was a wiki where techies could anonymously share their job search experiences. > It would help to keep some of these employers in line. > Problem is -- it would get sued constantly and would need to be offshore. > Perhaps a side business for WikiLeaks ;-) I thought glassdoor looked promising, but I left a review for a company that I used to work for. They had it taken down despite it not containing anything libelous or slanderous. -- sheila From johnstoner2 at gmail.com Fri Dec 3 21:57:45 2010 From: johnstoner2 at gmail.com (John Stoner) Date: Fri, 3 Dec 2010 14:57:45 -0600 Subject: [Chicago] Sanity Check In-Reply-To: References: <4CF704E4.20208@pobox.com> <4CF7C263.5060205@pobox.com> <4CF7DE74.3090404@pobox.com> <05B99389-7496-4F3D-BAE1-6064B3393D15@cs.depaul.edu> Message-ID: The Daily WTF/Worse Than Failure: http://thedailywtf.com/ Doesn't identify employers, but it's usually good for a laugh. Some good interview stories, some bad project stories, some horrfic code examples, some funny bug screens. I like it. On Fri, Dec 3, 2010 at 2:47 PM, sheila miguez wrote: > On Fri, Dec 3, 2010 at 2:34 PM, Rob Kapteyn wrote: > > > It would be nice if there was a wiki where techies could anonymously > share their job search experiences. > > It would help to keep some of these employers in line. > > Problem is -- it would get sued constantly and would need to be offshore. > > Perhaps a side business for WikiLeaks ;-) > > I thought glassdoor looked promising, but I left a review for a > company that I used to work for. They had it taken down despite it not > containing anything libelous or slanderous. > > > -- > sheila > _______________________________________________ > Chicago mailing list > Chicago at python.org > http://mail.python.org/mailman/listinfo/chicago > -- blogs: http://johnstoner.wordpress.com/ http://boogiepants.typepad.com/ 'In knowledge is power; in wisdom, humility.' -------------- next part -------------- An HTML attachment was scrubbed... URL: From tal.liron at threecrickets.com Fri Dec 3 21:53:52 2010 From: tal.liron at threecrickets.com (Tal Liron) Date: Fri, 03 Dec 2010 14:53:52 -0600 Subject: [Chicago] Sanity Check In-Reply-To: References: <4CF704E4.20208@pobox.com> <4CF7C263.5060205@pobox.com> <4CF7DE74.3090404@pobox.com> <05B99389-7496-4F3D-BAE1-6064B3393D15@cs.depaul.edu> Message-ID: <4CF958E0.5060307@threecrickets.com> Crazy discussion, guys. On a positive note: hey, at least we're wanted for our *brains* and not our *bodies*. You want demeaning? Imagine a job interview where you're asked to stand up and turn around slowly... The bottom line is that every position in which you are employed, paid by someone else to do their bidding, involves a certain amount of degradation. (And let's not kid ourselves about independence: for a freelance consultant in our field, the "client" can end up far more domineering than any employer.) I think it's very right to defend your personal dignity and put limits on what you're willing to accept for a job. At the same time, let's put our situation in some perspective: We're damn lucky to have the skills we have in this day an age; We're damn lucky to be able to pick and choose OUR employers. Sincerely, Miss Oklahoma 1998 From provato at gmail.com Sat Dec 4 00:44:09 2010 From: provato at gmail.com (David Kim) Date: Fri, 3 Dec 2010 17:44:09 -0600 Subject: [Chicago] desktop development Message-ID: most of my work involves developing desktop applications on windows. hence i've been doing mostly .net c#. like many of you, i have a great liking toward python and would like to know if any of you successfully deployed large scale desktop application using python with any on the ui toolkits. if so, recommendations? gotchas? lessons learned? also, would python be a viable choice for building software that may be "shrink wrapped" and sold? dave -------------- next part -------------- An HTML attachment was scrubbed... URL: From tal.liron at threecrickets.com Sat Dec 4 01:02:26 2010 From: tal.liron at threecrickets.com (Tal Liron) Date: Fri, 03 Dec 2010 18:02:26 -0600 Subject: [Chicago] desktop development In-Reply-To: References: Message-ID: <4CF98512.3080400@threecrickets.com> I've done desktop GUI applications professionally for more than a decade, and worked with almost every GUI framework you ever heard of, from various versions of Windows, X, Java, mobile platforms, etc., and can say that using PyGTK has been the most pleasurable dev experience in this domain. Strongly recommend it for pure dev joy, though I know that GTK is not easily available on all platforms. If there's a gotcha in it, it's that it's important to learn how to work with GTK (and any GUI framework's!) event queue. For anything but the most trivial desktop app, you'll want to do multithreading, which will always conflict in strange ways with the GUI framework -- things might seem to work sometimes, but unless you're following the rules, you'll get weird hangs, redraw issues, etc. (There are some very good reasons for GUI frameworks being singe-threaded: read up on it if you're interested.) For what it's worth, I also believe that GUI and command line utilities are Python's best domains. I do not find CPython to be an acceptable server platform, despite its popularity in that domain. -Tal On 12/03/2010 05:44 PM, David Kim wrote: > most of my work involves developing desktop applications on windows. > hence i've been doing mostly .net c#. > > like many of you, i have a great liking toward python and would like > to know if any of you successfully deployed large scale desktop > application using python with any on the ui toolkits. > > if so, recommendations? gotchas? lessons learned? > > also, would python be a viable choice for building software that may > be "shrink wrapped" and sold? > > dave > > > _______________________________________________ > Chicago mailing list > Chicago at python.org > http://mail.python.org/mailman/listinfo/chicago From brianhray at gmail.com Sat Dec 4 01:05:45 2010 From: brianhray at gmail.com (Brian Ray) Date: Fri, 3 Dec 2010 18:05:45 -0600 Subject: [Chicago] desktop development In-Reply-To: References: Message-ID: I worked on a widely available commercial app with wxWidgets. WX has python bindings. Also, some apps use python in conjunction with XUL like komodo and Miro.. I am not sure how it connects or if uses Python directly. QT is also widely used and has python bindings. All there are multi platform. When you get out of the multi-platform support, you will find some operating systems that rely heavily on python even for UI. Lately, I have been doing more stuff in the browser so I have been out of the loop for desktop for awhile. Nonetheless, when it comes to python and desktop UI it can be done and it does lend some things while other things can still be frustrating. Regards, Brian From ed at leafe.com Sat Dec 4 01:43:16 2010 From: ed at leafe.com (Ed Leafe) Date: Fri, 3 Dec 2010 19:43:16 -0500 Subject: [Chicago] desktop development In-Reply-To: References: Message-ID: <505314D8-EFC8-4BEB-BF4B-E41137109AAE@leafe.com> On Dec 3, 2010, at 6:44 PM, David Kim wrote: > most of my work involves developing desktop applications on windows. hence i've been doing mostly .net c#. > > like many of you, i have a great liking toward python and would like to know if any of you successfully deployed large scale desktop application using python with any on the ui toolkits. You should certainly check out Dabo, which is probably the most popular desktop application framework. http://dabodev.com (I'm one of the authors) We have several screencasts available that demonstrate various aspects of development with Dabo; these can be found on http://dabodev.com/documentation -- Ed Leafe From bryan.oakley at gmail.com Sat Dec 4 02:20:07 2010 From: bryan.oakley at gmail.com (Bryan Oakley) Date: Fri, 3 Dec 2010 19:20:07 -0600 Subject: [Chicago] desktop development In-Reply-To: <4CF98512.3080400@threecrickets.com> References: <4CF98512.3080400@threecrickets.com> Message-ID: On Fri, Dec 3, 2010 at 6:02 PM, Tal Liron wrote: > For anything but the most > trivial desktop app, you'll want to do multithreading, ... I have a hard time believing that. I've got similar experience to yours (20ish years non-trivial commercial desktop GUI development in many languages and platforms) and only rarely have I ever needed multithreading. In fact, the only time I've really needed multithreading is for toolkits that more-or-less require it. The last commercial app I worked on was multi-threaded, and when I stripped that out the code was considerably less complex and ran faster. Now, multi-*processing*, that's another story. My GUIs almost always spawn external processes to get work done. So yeah, you can use threads but they are far from being a given in my experience. (that being said, my current project has three threads -- one for the GUI, one for a built-in jabber client, and one for a built-in xmlrpc server. If I were using Tcl instead of Python, though, I probably would only need one thread ) From tal.liron at threecrickets.com Sat Dec 4 02:50:44 2010 From: tal.liron at threecrickets.com (Tal Liron) Date: Fri, 03 Dec 2010 19:50:44 -0600 Subject: [Chicago] desktop development In-Reply-To: References: <4CF98512.3080400@threecrickets.com> Message-ID: <4CF99E74.9080702@threecrickets.com> Any GUI that needs to run "something" in the background would need an extra thread, if you want to keep the app responsive and have a good user experience (asynchronous notifications, progress bars, etc.) -Tal On 12/03/2010 07:20 PM, Bryan Oakley wrote: > On Fri, Dec 3, 2010 at 6:02 PM, Tal Liron wrote: >> For anything but the most >> trivial desktop app, you'll want to do multithreading, ... > I have a hard time believing that. I've got similar experience to > yours (20ish years non-trivial commercial desktop GUI development in > many languages and platforms) and only rarely have I ever needed > multithreading. In fact, the only time I've really needed > multithreading is for toolkits that more-or-less require it. The last > commercial app I worked on was multi-threaded, and when I stripped > that out the code was considerably less complex and ran faster. > > Now, multi-*processing*, that's another story. My GUIs almost always > spawn external processes to get work done. > > So yeah, you can use threads but they are far from being a given in my > experience. > > (that being said, my current project has three threads -- one for the > GUI, one for a built-in jabber client, and one for a built-in xmlrpc > server. If I were using Tcl instead of Python, though, I probably > would only need one thread) > _______________________________________________ > Chicago mailing list > Chicago at python.org > http://mail.python.org/mailman/listinfo/chicago From bryan.oakley at gmail.com Sat Dec 4 04:02:37 2010 From: bryan.oakley at gmail.com (Bryan Oakley) Date: Fri, 3 Dec 2010 21:02:37 -0600 Subject: [Chicago] desktop development In-Reply-To: <4CF99E74.9080702@threecrickets.com> References: <4CF98512.3080400@threecrickets.com> <4CF99E74.9080702@threecrickets.com> Message-ID: On Fri, Dec 3, 2010 at 7:50 PM, Tal Liron wrote: > Any GUI that needs to run "something" in the background would need an extra > thread, if you want to keep the app responsive and have a good user > experience (asynchronous notifications, progress bars, etc.) That's not necessarily true. All GUIs have an event loop that is typically 90%+ idle. All those idle cycles can be used to do processing. If you take the time to divide up your work into small chunks you can easily do that work when the main thread is otherwise idle. Progress bars and asynchronous I/O are perfect cases for that (except in performance critical operations, of course). It's also possible (and IMHO more desireable) to push this heavy lifting into a separate process. That to me is a better solution than threads because separate processes are less complex than multiple threads. And in this day and age (certainly not true a dozen years ago!) the overhead of spawning another process is negligible. Sometimes, yes, a second thread is useful. I don't dispute that sometimes they are necessary. I just don't agree they are always necessary. Obviously, YMMV. To me, multiple threads are like modal dialog boxes: they should be avoided like the plague, but sometimes they are the exact right tool for the job. From tal.liron at threecrickets.com Sat Dec 4 08:41:36 2010 From: tal.liron at threecrickets.com (Tal Liron) Date: Sat, 04 Dec 2010 01:41:36 -0600 Subject: [Chicago] desktop development In-Reply-To: References: <4CF98512.3080400@threecrickets.com> <4CF99E74.9080702@threecrickets.com> Message-ID: <4CF9F0B0.9000206@threecrickets.com> Threading isn't always necessary, true. But not all processes can be easily split into tiny tasks that you can insert into the event loop. And any application which deals with outside libraries and resources is likely one of these. It's true that spawning a separate process is cheap, but it's also true that you can't share memory with it. The overhead of serializing data between processes can be more than that of synchronizing thread access. Another problem (rare in desktop applications, but standard in server applications) is that you would might need a lot of concurrent tasks. If each task is a processes, it means you'll take up a lot of memory. I think spawning tasks should be avoided like the plague! It's the easy programming solution, but the wasteful resource solution. It seems to me that it's exactly in dynamic languages like Python, where data hiding is frowned upon and all classes are open, you would want the same openness for inter-task communication. And yet, I get this anti-threading sentiment all the time in the Python community. Which is why CPython has a GIL, why threading tools are almost non-existent in the standard library, and why most Python platforms are such a problematic choice for server platforms. This is something that Python culture should embrace more, but I don't see it happening, as this sentiment seems ingrained at the very top. -Tal On 12/03/2010 09:02 PM, Bryan Oakley wrote: > On Fri, Dec 3, 2010 at 7:50 PM, Tal Liron wrote: >> Any GUI that needs to run "something" in the background would need an extra >> thread, if you want to keep the app responsive and have a good user >> experience (asynchronous notifications, progress bars, etc.) > That's not necessarily true. All GUIs have an event loop that is > typically 90%+ idle. All those idle cycles can be used to do > processing. If you take the time to divide up your work into small > chunks you can easily do that work when the main thread is otherwise > idle. Progress bars and asynchronous I/O are perfect cases for that > (except in performance critical operations, of course). > > It's also possible (and IMHO more desireable) to push this heavy > lifting into a separate process. That to me is a better solution than > threads because separate processes are less complex than multiple > threads. And in this day and age (certainly not true a dozen years > ago!) the overhead of spawning another process is negligible. > > Sometimes, yes, a second thread is useful. I don't dispute that > sometimes they are necessary. I just don't agree they are always > necessary. Obviously, YMMV. To me, multiple threads are like modal > dialog boxes: they should be avoided like the plague, but sometimes > they are the exact right tool for the job. > _______________________________________________ > Chicago mailing list > Chicago at python.org > http://mail.python.org/mailman/listinfo/chicago From tonkinjs at yahoo.com Sat Dec 4 19:48:06 2010 From: tonkinjs at yahoo.com (Jonathan Tonkin) Date: Sat, 4 Dec 2010 10:48:06 -0800 (PST) Subject: [Chicago] Several items that may be of interest to group members Message-ID: <545293.52412.qm@web111311.mail.gq1.yahoo.com> Hello, While this may not be directly related to group topics, here are several items that may be of interest to group members. 1.) (shortest first) The Chicago Chapter of the ACM is now on Facebook and Twitter. Join our Facebook Group (http://www.facebook.com/group.php?gid=59120137059) or follow us on Twitter (username: chicagoacm). 2.) Next ACM Meeting: December 8, 2010? A joint meeting with the Loyola University Computer Science Department Speaker: Zdenek Vrbka Topic: "Modern Methods of Computer Network Protection" Wednesday, November 10, 2010, 6:30 pm 5:30 pm -6:30 pm (Social Hour) Loyola University Water Tower Campus (Chicago/Michigan Area) 820 N Michigan, Chicago IL 60611 Beane Ballroom (13th Floor, Lewis Towers) Campus map: http://www.luc.edu/about/pdfs/wtc_may09.pdf? Admission: Free (General Admission, No Reserved Seats) Reservations: To make a reservation, use this form: (http://spreadsheets.google.com/a/chicagoacm.org/viewform?authkey=CI-D38YG&formkey=dHF4Y1RhNi1DNGtsaUxRLXRLRWpQSGc6MA#gid=0) or send an e-mail to greg at neumarke.net.? About the Topic:? The speaker will present a network security and monitoring approach based on network behavior analysis. This approach uses NetFlow network statistics (L3 Network Layer) and can be used to analyze huge amounts of network traffic, even in encrypted form. The discussion will include techniques for revealing particular attacks/misuses, for example SSH attacks, illegal music sharing using peer-to-peer networks, and social engineering. The presentation will also include lessons learned in the development of the commercial solution MyNetScope and bringing that product to market. About the Speaker:? Zdenek Vrbka is a professor in the Faculty of Informatics, Masaryk University, Czech Republic, where he specializes in software quality and domain understanding and modeling. He holds his PhD degree in Informatics with a specialization in Information Science. He is also member of the company AdvaICT, a spin-off from Masaryk University, which develops the network security and monitoring solution MyNetScope. More details at: http://www.chicagoacm.org/ Thanks, Jonathan Tonkin? -------------- next part -------------- An HTML attachment was scrubbed... URL: From carl at personnelware.com Sat Dec 4 22:30:58 2010 From: carl at personnelware.com (Carl Karsten) Date: Sat, 4 Dec 2010 15:30:58 -0600 Subject: [Chicago] talks for Dec 9 Message-ID: It's that time again. actually it was that time a while ago... anyway, anyone working on something interesting? As soon as anyone +1's a suggestion, consider it accepted and give me a title and description for the announcement. let me know if it is a 20 or 45 min talk. -- Carl K From adrian at holovaty.com Sat Dec 4 22:56:17 2010 From: adrian at holovaty.com (Adrian Holovaty) Date: Sat, 4 Dec 2010 14:56:17 -0700 Subject: [Chicago] Audio spectrograms Message-ID: Hey guys, Has anybody used Python to create spectrograms of audio data? Here's what I mean: http://en.wikipedia.org/wiki/Spectrogram I've been futzing with numpy but haven't gotten anything working yet. Just wondering whether anybody on the list has gone down this road and has any tips and tricks. Adrian From carl at personnelware.com Sat Dec 4 23:32:52 2010 From: carl at personnelware.com (Carl Karsten) Date: Sat, 4 Dec 2010 16:32:52 -0600 Subject: [Chicago] Audio spectrograms In-Reply-To: References: Message-ID: I did get this working: levs = [message.structure[type] for type in ("rms","peak","decay")] https://github.com/CarlFK/veyepar/blob/master/dj/scripts/cklevel.py That shows how to build a gstreamer pipeline that spits out audio levels, not what you want. What you want is: http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-good-plugins/html/gst-plugins-good-plugins-spectrum.html """ GstValueList of gfloat "magnitude": the level for each frequency band in dB. All values below the value of the "threshold" property will be set to the threshold. Only present if the message-magnitude property is true. """ On 12/4/10, Adrian Holovaty wrote: > Hey guys, > > Has anybody used Python to create spectrograms of audio data? Here's > what I mean: > > http://en.wikipedia.org/wiki/Spectrogram > > I've been futzing with numpy but haven't gotten anything working yet. > Just wondering whether anybody on the list has gone down this road and > has any tips and tricks. > > Adrian > _______________________________________________ > Chicago mailing list > Chicago at python.org > http://mail.python.org/mailman/listinfo/chicago > -- Carl K From kenschutte at gmail.com Sun Dec 5 00:46:10 2010 From: kenschutte at gmail.com (Ken Schutte) Date: Sat, 4 Dec 2010 15:46:10 -0800 Subject: [Chicago] Audio spectrograms In-Reply-To: References: Message-ID: I've done a lot of work with spectrograms. I'll paste a basic script for it below using numpy, scipy to load a wav file, and matplotlib to display. I have written much more refined versions, but can't release them publicly at the moment. There are some variations on this, and you may want to change the parameters I've used there - it all depends on how you want to use them. These parameters are fairly typical for speech analysis. Let me know if you have any questions. Ken """ Compute and display a spectrogram. Give WAV file as input """ import matplotlib.pyplot as plt import scipy.io.wavfile import numpy as np import sys wavfile = sys.argv[1] sr,x = scipy.io.wavfile.read(wavfile) ## Parameters: 10ms step, 30ms window nstep = int(sr * 0.01) nwin = int(sr * 0.03) nfft = nwin window = np.hamming(nwin) ## will take windows x[n1:n2]. generate ## and loop over n2 such that all frames ## fit within the waveform nn = range(nwin, len(x), nstep) X = np.zeros( (len(nn), nfft/2) ) for i,n in enumerate(nn): xseg = x[n-nwin:n] z = np.fft.fft(window * xseg, nfft) X[i,:] = np.log(np.abs(z[:nfft/2])) plt.imshow(X.T, interpolation='nearest', origin='lower', aspect='auto') plt.show() On Sat, Dec 4, 2010 at 1:56 PM, Adrian Holovaty wrote: > Hey guys, > > Has anybody used Python to create spectrograms of audio data? Here's > what I mean: > > http://en.wikipedia.org/wiki/Spectrogram > > I've been futzing with numpy but haven't gotten anything working yet. > Just wondering whether anybody on the list has gone down this road and > has any tips and tricks. > > Adrian > _______________________________________________ > Chicago mailing list > Chicago at python.org > http://mail.python.org/mailman/listinfo/chicago > From tottinge at gmail.com Sun Dec 5 01:33:35 2010 From: tottinge at gmail.com (Tim Ottinger) Date: Sat, 4 Dec 2010 18:33:35 -0600 Subject: [Chicago] desktop development In-Reply-To: References: Message-ID: Not so much. Worked with a team on a big python web app, did some back-end web integration for a factory automation system. On Fri, Dec 3, 2010 at 5:44 PM, David Kim wrote: > most of my work involves developing desktop applications on windows. hence > i've been doing mostly .net c#. > > like many of you, i have a great liking toward python and would like to > know if any of you successfully deployed large scale desktop application > using python with any on the ui toolkits. > > if so, recommendations? gotchas? lessons learned? > > also, would python be a viable choice for building software that may be > "shrink wrapped" and sold? > > dave > > > _______________________________________________ > Chicago mailing list > Chicago at python.org > http://mail.python.org/mailman/listinfo/chicago > > -- ------------------------------------- http://agileinaflash.com/ http://agileotter.blogspot.com/ http://tottinge.blogsome.com -------------- next part -------------- An HTML attachment was scrubbed... URL: From alans at risingrealty.com Sun Dec 5 19:12:13 2010 From: alans at risingrealty.com (Alan Stern) Date: Sun, 5 Dec 2010 12:12:13 -0600 Subject: [Chicago] beginner help - role playing game Message-ID: Hi all. My name is Al Stern. I am an absolute beginner to programming and based on what I'd read, decided to try Python as my 1st language. I am starting with a book called Python Programming for the Absolute Beginner by Michael Dawson. The book has been pretty good and up to this point, I have grasped all the concepts it has covered. At the end of each chapter, there are a number of challenges you need to complete before moving on. Problem is, I have gotten stumped on one in Chapter 5: Lists and Dictionaries. I'm not sure exactly how this mailing list works but was hoping someone here could give me some insight as to how to proceed. Apologies if I am not posting the following in the correct format. I just copied and pasted.) Feel free to point me in the right direction if there are instructions as to how to do it. Here is the challenge: Write a Character Creator program for a role-playing game. The player should be given a pool of 30 points to spend on four attributes: Strength, Health, Wisdom, and Dexterity. The >player should be able to spend points from the pool on any attribute and should also be able to take points from an attribute and put them back into the pool. I think I did ok setting up the variables but haven't figured out where to go from there. Here is what I have (along with my latest error message). Thanks in advance. # character creator / role playing game # have 30 total points to work with # set variables attributes = ["strength", "health", "wisdom", "dexterity"] points = [0,0,0,0] MAX_POINTS = 30 available_points = MAX_POINTS - sum(points) print(""" Our hero will need strength, health, wisdom and dexterity to survive. You will have a limited amount of points to 'spend' on these attributes. Use them wisely. His life depends on it. """ ) # point allocation print ("You have", available_points, "points available to use.") for x in range(len(attributes)): print ("\t",attributes[x], points[x]) for x in range(len(attributes)): point_choice = input("\n\nHow many points do you want to assign to ", attributes[x] , "?: ") My error is: Traceback (most recent call last): File "C:/Users/Public/Documents/My Python programs/role_playing_game1.py", line 24, in point_choice = input("\n\nHow many points do you want to assign to ", attributes[x] , "?: ") TypeError: input expected at most 1 arguments, got 3 ______________________ Alan Stern Rising Realty 1820 W. Webster Ave #307 Chicago, IL 60614 (W)773-395-9999 (F)773-395-9553 (C)773-502-2556 www.risingrealty.com Statement of Confidentiality The contents of this e-mail message and its attachments are intended solely for the addressee(s) hereof. In addition, this e-mail transmission may be confidential and it may be subject to privilege protecting communications between attorneys or solicitors and their clients. If you are not the named addressee, or if this message has been addressed to you in error, you are directed not to read, disclose, reproduce, distribute, disseminate or otherwise use this transmission. Delivery of this message to any person other than the intended recipient(s) is not intended in any way to waive privilege or confidentiality. If you have received this transmission in error, please alert the sender by reply e-mail; we also request that you immediately delete this message and its attachments, if any. Rising Realty reserve the right to monitor all e-mail communications through their networks. -------------- next part -------------- An HTML attachment was scrubbed... URL: From chad at glendenin.com Sun Dec 5 19:31:00 2010 From: chad at glendenin.com (Chad Glendenin) Date: Sun, 5 Dec 2010 12:31:00 -0600 Subject: [Chicago] beginner help - role playing game In-Reply-To: References: Message-ID: The input() function only takes one param: a prompt string. To do what you're trying to do, you need to build the string first, then pass the finished string to the input() function. If you're in the python intrepreter, you can do >>> help(input) to see the documentation. (Also, check out the raw_input() function.) You probably want something like: prompt = "\n\nHow many points do you want to assign to %s? " % attributes[x] input(prompt) On Sun, Dec 5, 2010 at 12:12 PM, Alan Stern wrote: > Hi all.? My name is Al Stern.? I am an absolute beginner to programming and > based on what I?d read, decided to try Python as my 1st language.? I am > starting with a book called Python Programming for the Absolute Beginner by > Michael Dawson.? The book has been pretty good and up to this point, I have > grasped all the concepts it has covered.? At the end of each chapter, there > are a number of challenges you need to complete before moving on.? Problem > is, I have gotten stumped on one in Chapter 5: Lists and Dictionaries. > > > > I?m not sure exactly how this mailing list works but was hoping someone here > could give me some insight as to how to proceed.? Apologies if I am not > posting the following in the correct format.? I just copied and pasted.) > Feel free to point me in the right direction if there are instructions as to > how to do it. > > > > Here is the challenge: Write a Character Creator program for a role-playing > game. The player should be given a pool of 30 points to spend on four > attributes: Strength, Health, Wisdom, and Dexterity. The >player should be > able to spend points from the pool on any attribute and should also be able > to take points from an attribute and put them back into the pool. > > > > I think I did ok setting up the variables but haven?t figured out where to > go from there. > > > > Here is what I have (along with my latest error message).? Thanks in > advance. > > > > # character creator / role playing game > > # have 30 total points to work with > > > > # set variables > > > > attributes = ["strength", "health", "wisdom", "dexterity"] > > points = [0,0,0,0] > > MAX_POINTS = 30 > > available_points = MAX_POINTS - sum(points) > > > > print(""" > > Our hero will need strength, health, wisdom and dexterity to survive. > > You will have a limited amount of points to 'spend' on these attributes. > > Use them wisely.? His life depends on it. > > """ > > ) > > > > # point allocation > > > > print ("You have", available_points, "points available to use.") > > > > for x in range(len(attributes)): > > ? print ("\t",attributes[x], points[x]) > > > > for x in range(len(attributes)): > > ??? point_choice = input("\n\nHow many points do you want to assign to ", > attributes[x] , "?: ") > > > > My error is: > > > > Traceback (most recent call last): > > ? File "C:/Users/Public/Documents/My Python programs/role_playing_game1.py", > line 24, in > > ??? point_choice = input("\n\nHow many points do you want to assign to ", > attributes[x] , "?: ") > > TypeError: input expected at most 1 arguments, got 3 > > > > > > ______________________ > > Alan Stern > > > > Rising Realty > > 1820 W. Webster Ave #307 > > Chicago, IL 60614 > > > > (W)773-395-9999 > > (F)773-395-9553 > > (C)773-502-2556 > > > > www.risingrealty.com > > Statement of Confidentiality > > The contents of this e-mail message and its attachments are intended solely > for the addressee(s) hereof. In addition, this e-mail transmission may be > confidential and it may be subject to privilege protecting communications > between attorneys or solicitors and their clients. If you are not the named > addressee, or if this message has been addressed to you in error, you are > directed not to read, disclose, reproduce, distribute, disseminate or > otherwise use this transmission. Delivery of this message to any person > other than the intended recipient(s) is not intended in any way to waive > privilege or confidentiality.? If you have received this transmission in > error, please alert the sender by reply e-mail; we also request that you > immediately delete this message and its attachments, if any. Rising Realty > reserve the right to monitor all e-mail communications through their > networks. > > > > > > _______________________________________________ > Chicago mailing list > Chicago at python.org > http://mail.python.org/mailman/listinfo/chicago > > -- about.me/ccg From theslade at gmail.com Sun Dec 5 19:39:54 2010 From: theslade at gmail.com (Francesca Slade) Date: Sun, 5 Dec 2010 12:39:54 -0600 Subject: [Chicago] beginner help - role playing game In-Reply-To: References: Message-ID: I think you can also construct the string in the input function: input("\n\nHow many points do you want to assign to %s? " % attributes[x]) or input("\n\nHow many points do you want to assign to " + attributes[x] + " ?") On Sun, Dec 5, 2010 at 12:31 PM, Chad Glendenin wrote: > The input() function only takes one param: a prompt string. To do what > you're trying to do, you need to build the string first, then pass the > finished string to the input() function. If you're in the python > intrepreter, you can do > > >>> help(input) > > to see the documentation. (Also, check out the raw_input() function.) > > You probably want something like: > > prompt = "\n\nHow many points do you want to assign to %s? " % > attributes[x] > input(prompt) > > > On Sun, Dec 5, 2010 at 12:12 PM, Alan Stern > wrote: > > Hi all. My name is Al Stern. I am an absolute beginner to programming > and > > based on what I?d read, decided to try Python as my 1st language. I am > > starting with a book called Python Programming for the Absolute Beginner > by > > Michael Dawson. The book has been pretty good and up to this point, I > have > > grasped all the concepts it has covered. At the end of each chapter, > there > > are a number of challenges you need to complete before moving on. > Problem > > is, I have gotten stumped on one in Chapter 5: Lists and Dictionaries. > > > > > > > > I?m not sure exactly how this mailing list works but was hoping someone > here > > could give me some insight as to how to proceed. Apologies if I am not > > posting the following in the correct format. I just copied and pasted.) > > Feel free to point me in the right direction if there are instructions as > to > > how to do it. > > > > > > > > Here is the challenge: Write a Character Creator program for a > role-playing > > game. The player should be given a pool of 30 points to spend on four > > attributes: Strength, Health, Wisdom, and Dexterity. The >player should > be > > able to spend points from the pool on any attribute and should also be > able > > to take points from an attribute and put them back into the pool. > > > > > > > > I think I did ok setting up the variables but haven?t figured out where > to > > go from there. > > > > > > > > Here is what I have (along with my latest error message). Thanks in > > advance. > > > > > > > > # character creator / role playing game > > > > # have 30 total points to work with > > > > > > > > # set variables > > > > > > > > attributes = ["strength", "health", "wisdom", "dexterity"] > > > > points = [0,0,0,0] > > > > MAX_POINTS = 30 > > > > available_points = MAX_POINTS - sum(points) > > > > > > > > print(""" > > > > Our hero will need strength, health, wisdom and dexterity to survive. > > > > You will have a limited amount of points to 'spend' on these attributes. > > > > Use them wisely. His life depends on it. > > > > """ > > > > ) > > > > > > > > # point allocation > > > > > > > > print ("You have", available_points, "points available to use.") > > > > > > > > for x in range(len(attributes)): > > > > print ("\t",attributes[x], points[x]) > > > > > > > > for x in range(len(attributes)): > > > > point_choice = input("\n\nHow many points do you want to assign to ", > > attributes[x] , "?: ") > > > > > > > > My error is: > > > > > > > > Traceback (most recent call last): > > > > File "C:/Users/Public/Documents/My Python > programs/role_playing_game1.py", > > line 24, in > > > > point_choice = input("\n\nHow many points do you want to assign to ", > > attributes[x] , "?: ") > > > > TypeError: input expected at most 1 arguments, got 3 > > > > > > > > > > > > ______________________ > > > > Alan Stern > > > > > > > > Rising Realty > > > > 1820 W. Webster Ave #307 > > > > Chicago, IL 60614 > > > > > > > > (W)773-395-9999 > > > > (F)773-395-9553 > > > > (C)773-502-2556 > > > > > > > > www.risingrealty.com > > > > Statement of Confidentiality > > > > The contents of this e-mail message and its attachments are intended > solely > > for the addressee(s) hereof. In addition, this e-mail transmission may be > > confidential and it may be subject to privilege protecting communications > > between attorneys or solicitors and their clients. If you are not the > named > > addressee, or if this message has been addressed to you in error, you are > > directed not to read, disclose, reproduce, distribute, disseminate or > > otherwise use this transmission. Delivery of this message to any person > > other than the intended recipient(s) is not intended in any way to waive > > privilege or confidentiality. If you have received this transmission in > > error, please alert the sender by reply e-mail; we also request that you > > immediately delete this message and its attachments, if any. Rising > Realty > > reserve the right to monitor all e-mail communications through their > > networks. > > > > > > > > > > > > _______________________________________________ > > Chicago mailing list > > Chicago at python.org > > http://mail.python.org/mailman/listinfo/chicago > > > > > > > > -- > about.me/ccg > _______________________________________________ > Chicago mailing list > Chicago at python.org > http://mail.python.org/mailman/listinfo/chicago > -------------- next part -------------- An HTML attachment was scrubbed... URL: From alans at risingrealty.com Sun Dec 5 19:51:23 2010 From: alans at risingrealty.com (Alan Stern) Date: Sun, 5 Dec 2010 12:51:23 -0600 Subject: [Chicago] beginner help - role playing game In-Reply-To: References: Message-ID: input("\n\nHow many points do you want to assign to " + attributes[x] + " ?") Thanks. This definitely seems to fix the problem but I don't understand functionally why this '+' works but the commas don't. I don't think the book have covered plus signs being used in this way before. Any insight as to what direction I should go from here to complete the challenge? Pretty sure I will need a while loop the covers when points are under 30 but other than that, I'm lost. ______________________ Alan Stern Rising Realty 1820 W. Webster Ave #307 Chicago, IL 60614 (W)773-395-9999 (F)773-395-9553 (C)773-502-2556 From: chicago-bounces+alans=risingrealty.com at python.org [mailto:chicago-bounces+alans=risingrealty.com at python.org] On Behalf Of Francesca Slade Sent: Sunday, December 05, 2010 12:40 PM To: The Chicago Python Users Group Subject: Re: [Chicago] beginner help - role playing game I think you can also construct the string in the input function: input("\n\nHow many points do you want to assign to %s? " % attributes[x]) or input("\n\nHow many points do you want to assign to " + attributes[x] + " ?") On Sun, Dec 5, 2010 at 12:31 PM, Chad Glendenin > wrote: The input() function only takes one param: a prompt string. To do what you're trying to do, you need to build the string first, then pass the finished string to the input() function. If you're in the python intrepreter, you can do >>> help(input) to see the documentation. (Also, check out the raw_input() function.) You probably want something like: prompt = "\n\nHow many points do you want to assign to %s? " % attributes[x] input(prompt) On Sun, Dec 5, 2010 at 12:12 PM, Alan Stern > wrote: > Hi all. My name is Al Stern. I am an absolute beginner to programming and > based on what I'd read, decided to try Python as my 1st language. I am > starting with a book called Python Programming for the Absolute Beginner by > Michael Dawson. The book has been pretty good and up to this point, I have > grasped all the concepts it has covered. At the end of each chapter, there > are a number of challenges you need to complete before moving on. Problem > is, I have gotten stumped on one in Chapter 5: Lists and Dictionaries. > > > > I'm not sure exactly how this mailing list works but was hoping someone here > could give me some insight as to how to proceed. Apologies if I am not > posting the following in the correct format. I just copied and pasted.) > Feel free to point me in the right direction if there are instructions as to > how to do it. > > > > Here is the challenge: Write a Character Creator program for a role-playing > game. The player should be given a pool of 30 points to spend on four > attributes: Strength, Health, Wisdom, and Dexterity. The >player should be > able to spend points from the pool on any attribute and should also be able > to take points from an attribute and put them back into the pool. > > > > I think I did ok setting up the variables but haven't figured out where to > go from there. > > > > Here is what I have (along with my latest error message). Thanks in > advance. > > > > # character creator / role playing game > > # have 30 total points to work with > > > > # set variables > > > > attributes = ["strength", "health", "wisdom", "dexterity"] > > points = [0,0,0,0] > > MAX_POINTS = 30 > > available_points = MAX_POINTS - sum(points) > > > > print(""" > > Our hero will need strength, health, wisdom and dexterity to survive. > > You will have a limited amount of points to 'spend' on these attributes. > > Use them wisely. His life depends on it. > > """ > > ) > > > > # point allocation > > > > print ("You have", available_points, "points available to use.") > > > > for x in range(len(attributes)): > > print ("\t",attributes[x], points[x]) > > > > for x in range(len(attributes)): > > point_choice = input("\n\nHow many points do you want to assign to ", > attributes[x] , "?: ") > > > > My error is: > > > > Traceback (most recent call last): > > File "C:/Users/Public/Documents/My Python programs/role_playing_game1.py", > line 24, in > > point_choice = input("\n\nHow many points do you want to assign to ", > attributes[x] , "?: ") > > TypeError: input expected at most 1 arguments, got 3 > > > > > > ______________________ > > Alan Stern > > > > Rising Realty > > 1820 W. Webster Ave #307 > > Chicago, IL 60614 > > > > (W)773-395-9999 > > (F)773-395-9553 > > (C)773-502-2556 > > > > www.risingrealty.com > > Statement of Confidentiality > > The contents of this e-mail message and its attachments are intended solely > for the addressee(s) hereof. In addition, this e-mail transmission may be > confidential and it may be subject to privilege protecting communications > between attorneys or solicitors and their clients. If you are not the named > addressee, or if this message has been addressed to you in error, you are > directed not to read, disclose, reproduce, distribute, disseminate or > otherwise use this transmission. Delivery of this message to any person > other than the intended recipient(s) is not intended in any way to waive > privilege or confidentiality. If you have received this transmission in > error, please alert the sender by reply e-mail; we also request that you > immediately delete this message and its attachments, if any. Rising Realty > reserve the right to monitor all e-mail communications through their > networks. > > > > > > _______________________________________________ > Chicago mailing list > Chicago at python.org > http://mail.python.org/mailman/listinfo/chicago > > -- about.me/ccg _______________________________________________ Chicago mailing list Chicago at python.org http://mail.python.org/mailman/listinfo/chicago -------------- next part -------------- An HTML attachment was scrubbed... URL: From mtobis at gmail.com Sun Dec 5 20:34:27 2010 From: mtobis at gmail.com (Michael Tobis) Date: Sun, 5 Dec 2010 13:34:27 -0600 Subject: [Chicago] beginner help - role playing game In-Reply-To: References: Message-ID: "this " + expresion " + "evaluates to a string." "this", "one", "yields", "a", "tuple of strings" print handles both, but that doesn't mean they are interchangeable. You should join this mailing list: http://mail.python.org/mailman/listinfo/tutor The tutor mailing list is the best place for this sort of question. mt From verisimilidude at gmail.com Sun Dec 5 22:09:29 2010 From: verisimilidude at gmail.com (Phil Robare) Date: Sun, 5 Dec 2010 15:09:29 -0600 Subject: [Chicago] Audio spectrograms In-Reply-To: References: Message-ID: Ken, This is the sort of thing I would like to see a talk about at a meeting - putting together lots of the python tools to do something that seems like it should be much more daunting. Can you give a talk? Do others agree that this would be something interesting to hear about? Phil On Sat, Dec 4, 2010 at 5:46 PM, Ken Schutte wrote: > I've done a lot of work with spectrograms. ?I'll paste a basic script > for it below using numpy, scipy to load a wav file, and matplotlib to > display. ?I have written much more refined versions, but can't release > them publicly at the moment. > > ... > > Ken > >> ... >> Just wondering whether anybody on the list has gone down this road and >> has any tips and tricks. >> >> Adrian From jsudlow at gmail.com Sun Dec 5 22:56:14 2010 From: jsudlow at gmail.com (Jon Sudlow) Date: Sun, 5 Dec 2010 15:56:14 -0600 Subject: [Chicago] beginner help - role playing game In-Reply-To: References: Message-ID: The commas are a comma separated list, where your giving the inputs one at a time. You have to look at context. In the context of a function call, cammas seperate parameters so you use the plus concatentoator operation to make all your different parameters into one big parameter before you actual pass that parameter to the input function. On Sun, Dec 5, 2010 at 1:34 PM, Michael Tobis wrote: > "this " + expresion " + "evaluates to a string." > > "this", "one", "yields", "a", "tuple of strings" > > print handles both, but that doesn't mean they are interchangeable. > > > > You should join this mailing list: > > http://mail.python.org/mailman/listinfo/tutor > > The tutor mailing list is the best place for this sort of question. > > > > mt > _______________________________________________ > Chicago mailing list > Chicago at python.org > http://mail.python.org/mailman/listinfo/chicago > -------------- next part -------------- An HTML attachment was scrubbed... URL: From shekay at pobox.com Mon Dec 6 17:17:19 2010 From: shekay at pobox.com (sheila miguez) Date: Mon, 6 Dec 2010 10:17:19 -0600 Subject: [Chicago] Audio spectrograms In-Reply-To: References: Message-ID: I agree it would be interesting. Something this week? On Sun, Dec 5, 2010 at 3:09 PM, Phil Robare wrote: > Ken, > > This is the sort of thing I would like to see a talk about at a > meeting - putting > together lots of the python tools to do something that seems like it should > be much more daunting. ?Can you give a talk? ?Do others agree that this > would be something interesting to hear about? > > Phil > > On Sat, Dec 4, 2010 at 5:46 PM, Ken Schutte wrote: >> I've done a lot of work with spectrograms. ?I'll paste a basic script >> for it below using numpy, scipy to load a wav file, and matplotlib to >> display. ?I have written much more refined versions, but can't release >> them publicly at the moment. >> >> ... >> >> Ken >> >>> ... >>> Just wondering whether anybody on the list has gone down this road and >>> has any tips and tricks. >>> >>> Adrian > _______________________________________________ > Chicago mailing list > Chicago at python.org > http://mail.python.org/mailman/listinfo/chicago > -- sheila From shekay at pobox.com Mon Dec 6 17:29:52 2010 From: shekay at pobox.com (sheila miguez) Date: Mon, 6 Dec 2010 10:29:52 -0600 Subject: [Chicago] desktop development In-Reply-To: <4CF9F0B0.9000206@threecrickets.com> References: <4CF98512.3080400@threecrickets.com> <4CF99E74.9080702@threecrickets.com> <4CF9F0B0.9000206@threecrickets.com> Message-ID: How expensive have you found serializing data between processes to be? It hasn't been too bad for us. How large are your payloads? On the tail end we have a few MB but those are very infrequent. I think the network hops are the most expensive part in that. At some point it was nice to compress but you have to see if the trade off for compression time is worth it. Iirc Garrett gave a talk on things like thrift, protocol buffers, etc? Or maybe it was only thrift. We use protocol buffers. Very nice serialization time and size compared to java serialization. I have not done any desktop stuff in forever. What would it be communicating with? a bunch of distributed services? Maybe this would make an interesting panel, but I don't know if everyone could make it. I'd like to hear Bryan and you discuss pros and cons. Ps. I am trawling for talks since we have a meeting this week. On Sat, Dec 4, 2010 at 1:41 AM, Tal Liron wrote: > Threading isn't always necessary, true. But not all processes can be easily > split into tiny tasks that you can insert into the event loop. And any > application which deals with outside libraries and resources is likely one > of these. > > > It's true that spawning a separate process is cheap, but it's also true that > you can't share memory with it. The overhead of serializing data between > processes can be more than that of synchronizing thread access. Another > problem (rare in desktop applications, but standard in server applications) > is that you would might need a lot of concurrent tasks. If each task is a > processes, it means you'll take up a lot of memory. I think spawning tasks > should be avoided like the plague! It's the easy programming solution, but > the wasteful resource solution. > > > It seems to me that it's exactly in dynamic languages like Python, where > data hiding is frowned upon and all classes are open, you would want the > same openness for inter-task communication. And yet, I get this > anti-threading sentiment all the time in the Python community. Which is why > CPython has a GIL, why threading tools are almost non-existent in the > standard library, and why most Python platforms are such a problematic > choice for server platforms. This is something that Python culture should > embrace more, but I don't see it happening, as this sentiment seems > ingrained at the very top. > > > -Tal > > > > On 12/03/2010 09:02 PM, Bryan Oakley wrote: > >> On Fri, Dec 3, 2010 at 7:50 PM, Tal Liron >> ?wrote: >>> >>> Any GUI that needs to run "something" in the background would need an >>> extra >>> thread, if you want to keep the app responsive and have a good user >>> experience (asynchronous notifications, progress bars, etc.) >> >> That's not necessarily true. All GUIs have an event loop that is >> typically 90%+ idle. All those idle cycles can be used to do >> processing. If you take the time to divide up your work into small >> chunks you can easily do that work when the main thread is otherwise >> idle. Progress bars and asynchronous I/O are perfect cases for that >> (except in performance critical operations, of course). >> >> It's also possible (and IMHO more desireable) to push this heavy >> lifting into a separate process. That to me is a better solution than >> threads because separate processes are less complex than multiple >> threads. And in this day and age (certainly not true a dozen years >> ago!) the overhead of spawning another process is negligible. >> >> Sometimes, yes, a second thread is useful. I don't dispute that >> sometimes they are necessary. I just don't agree they are always >> necessary. Obviously, YMMV. To me, multiple threads are like modal >> dialog boxes: they should be avoided like the plague, but sometimes >> they are the exact right tool for the job. >> _______________________________________________ >> Chicago mailing list >> Chicago at python.org >> http://mail.python.org/mailman/listinfo/chicago > > _______________________________________________ > Chicago mailing list > Chicago at python.org > http://mail.python.org/mailman/listinfo/chicago > -- sheila From shekay at pobox.com Mon Dec 6 17:35:56 2010 From: shekay at pobox.com (sheila miguez) Date: Mon, 6 Dec 2010 10:35:56 -0600 Subject: [Chicago] serialization bench marks Message-ID: found http://stackoverflow.com/questions/296650/performance-comparison-of-thrift-protocol-buffers-json-ejb-other which links to https://github.com/eishay/jvm-serializers/wiki/ but I know pbuf works with python (and def jython) so please don't kick me off for posting this. -- sheila From tal.liron at threecrickets.com Mon Dec 6 18:26:47 2010 From: tal.liron at threecrickets.com (Tal Liron) Date: Mon, 06 Dec 2010 11:26:47 -0600 Subject: [Chicago] desktop development In-Reply-To: References: <4CF98512.3080400@threecrickets.com> <4CF99E74.9080702@threecrickets.com> <4CF9F0B0.9000206@threecrickets.com> Message-ID: <4CFD1CD7.8000308@threecrickets.com> Serialization is often not terrible, but still utterly unnecessary if you are using threads. And there are many other costs to using multiple processes: multiple instances of your virtual machine (memory use, inability to share JIT optimizations between them, inability to share resource pools such as database connections, high costs for negotiating access to shared resources, etc. etc.). I guess IPC could be an interesting panel, but it really shouldn't be. :) More interesting to me would be a panel on strategies to deal with threads on the small scale and in massively multi-core environments, possibly with a comparison to single-threaded strategies, such as non-blocking I/O. Unfortunately, most of this discussion would leave Python behind. Python does a lot of things elegantly and well, but threading isn't one of them. An interesting panel might be about strategies and principles in desktop application responsiveness. Too many programmers don't the user experience seriously enough and don't plan well for failure. What if the resource you are trying to access is not responding? A hanging application is terrible. The alternative, though, is to make your operation asynchronous, which adds numerous challenges to the programmer: threads (or processes), status notifications to the user, throttling, etc. We could possibly offer various solutions and give examples in various GUI frameworks. Oh, and I can't make it this week. -t On 12/06/2010 10:29 AM, sheila miguez wrote: > How expensive have you found serializing data between processes to be? > It hasn't been too bad for us. How large are your payloads? On the > tail end we have a few MB but those are very infrequent. I think the > network hops are the most expensive part in that. At some point it was > nice to compress but you have to see if the trade off for compression > time is worth it. > > Iirc Garrett gave a talk on things like thrift, protocol buffers, etc? > Or maybe it was only thrift. We use protocol buffers. Very nice > serialization time and size compared to java serialization. > > I have not done any desktop stuff in forever. What would it be > communicating with? a bunch of distributed services? > > Maybe this would make an interesting panel, but I don't know if > everyone could make it. I'd like to hear Bryan and you discuss pros > and cons. > > Ps. I am trawling for talks since we have a meeting this week. > > On Sat, Dec 4, 2010 at 1:41 AM, Tal Liron wrote: >> Threading isn't always necessary, true. But not all processes can be easily >> split into tiny tasks that you can insert into the event loop. And any >> application which deals with outside libraries and resources is likely one >> of these. >> >> >> It's true that spawning a separate process is cheap, but it's also true that >> you can't share memory with it. The overhead of serializing data between >> processes can be more than that of synchronizing thread access. Another >> problem (rare in desktop applications, but standard in server applications) >> is that you would might need a lot of concurrent tasks. If each task is a >> processes, it means you'll take up a lot of memory. I think spawning tasks >> should be avoided like the plague! It's the easy programming solution, but >> the wasteful resource solution. >> >> >> It seems to me that it's exactly in dynamic languages like Python, where >> data hiding is frowned upon and all classes are open, you would want the >> same openness for inter-task communication. And yet, I get this >> anti-threading sentiment all the time in the Python community. Which is why >> CPython has a GIL, why threading tools are almost non-existent in the >> standard library, and why most Python platforms are such a problematic >> choice for server platforms. This is something that Python culture should >> embrace more, but I don't see it happening, as this sentiment seems >> ingrained at the very top. >> >> >> -Tal >> >> >> >> On 12/03/2010 09:02 PM, Bryan Oakley wrote: >> >>> On Fri, Dec 3, 2010 at 7:50 PM, Tal Liron >>> wrote: >>>> Any GUI that needs to run "something" in the background would need an >>>> extra >>>> thread, if you want to keep the app responsive and have a good user >>>> experience (asynchronous notifications, progress bars, etc.) >>> That's not necessarily true. All GUIs have an event loop that is >>> typically 90%+ idle. All those idle cycles can be used to do >>> processing. If you take the time to divide up your work into small >>> chunks you can easily do that work when the main thread is otherwise >>> idle. Progress bars and asynchronous I/O are perfect cases for that >>> (except in performance critical operations, of course). >>> >>> It's also possible (and IMHO more desireable) to push this heavy >>> lifting into a separate process. That to me is a better solution than >>> threads because separate processes are less complex than multiple >>> threads. And in this day and age (certainly not true a dozen years >>> ago!) the overhead of spawning another process is negligible. >>> >>> Sometimes, yes, a second thread is useful. I don't dispute that >>> sometimes they are necessary. I just don't agree they are always >>> necessary. Obviously, YMMV. To me, multiple threads are like modal >>> dialog boxes: they should be avoided like the plague, but sometimes >>> they are the exact right tool for the job. >>> _______________________________________________ >>> Chicago mailing list >>> Chicago at python.org >>> http://mail.python.org/mailman/listinfo/chicago >> _______________________________________________ >> Chicago mailing list >> Chicago at python.org >> http://mail.python.org/mailman/listinfo/chicago >> > > From adrian at holovaty.com Mon Dec 6 19:01:38 2010 From: adrian at holovaty.com (Adrian Holovaty) Date: Mon, 6 Dec 2010 12:01:38 -0600 Subject: [Chicago] Audio spectrograms In-Reply-To: References: Message-ID: On Sat, Dec 4, 2010 at 5:46 PM, Ken Schutte wrote: > I've done a lot of work with spectrograms. ?I'll paste a basic script > for it below using numpy, scipy to load a wav file, and matplotlib to > display. ?I have written much more refined versions, but can't release > them publicly at the moment. Wow, thanks very much, Ken! Yes, FWIW, I'd love to see a talk on this in more detail. Adrian From shekay at pobox.com Mon Dec 6 19:31:56 2010 From: shekay at pobox.com (sheila miguez) Date: Mon, 6 Dec 2010 12:31:56 -0600 Subject: [Chicago] desktop development In-Reply-To: <4CFD1CD7.8000308@threecrickets.com> References: <4CF98512.3080400@threecrickets.com> <4CF99E74.9080702@threecrickets.com> <4CF9F0B0.9000206@threecrickets.com> <4CFD1CD7.8000308@threecrickets.com> Message-ID: My bad ideas will help people suggest better ones. :) On Mon, Dec 6, 2010 at 11:26 AM, Tal Liron wrote: [...] > I guess IPC could be an interesting panel, but it really shouldn't be. :) [...] -- sheila From brianhray at gmail.com Mon Dec 6 19:56:31 2010 From: brianhray at gmail.com (Brian Ray) Date: Mon, 6 Dec 2010 12:56:31 -0600 Subject: [Chicago] talks for Dec 9 In-Reply-To: References: Message-ID: Did anybody offer to present this Thursday? I know it is busy this time of year, but it also is a good time to get inside and chat about Python. I see topics like employment, audio files, UI.... lots of fun stuff. Also, a week later we will have th *North* meeting. Any offers? best meeting ev...va ! Thanks! From carl at personnelware.com Mon Dec 6 20:11:50 2010 From: carl at personnelware.com (Carl Karsten) Date: Mon, 6 Dec 2010 13:11:50 -0600 Subject: [Chicago] talks for Dec 9 In-Reply-To: References: Message-ID: No offers yet. Anyone propose a talk for PyCon? On Mon, Dec 6, 2010 at 12:56 PM, Brian Ray wrote: > Did anybody offer to present this Thursday? I know it is busy this > time of year, but it also is a good time to get inside and chat about > Python. > > I see topics like employment, audio files, UI.... lots of fun stuff. > Also, a week later we will have th *North* meeting. Any offers? > > best meeting ev...va ! > > Thanks! > _______________________________________________ > Chicago mailing list > Chicago at python.org > http://mail.python.org/mailman/listinfo/chicago > -- Carl K From kenschutte at gmail.com Mon Dec 6 20:27:15 2010 From: kenschutte at gmail.com (Ken Schutte) Date: Mon, 6 Dec 2010 13:27:15 -0600 Subject: [Chicago] Audio spectrograms In-Reply-To: References: Message-ID: I'm not sure if I can make it this Thursday, but perhaps sometime in the future. What exactly would be an interesting talk? Just all about spectrograms? audio processing? I don't really know first-hand any related Python libraries, so it seems it would be just more of a DSP lecture with maybe a little numpy. Ken On Mon, Dec 6, 2010 at 12:01 PM, Adrian Holovaty wrote: > On Sat, Dec 4, 2010 at 5:46 PM, Ken Schutte wrote: >> I've done a lot of work with spectrograms. I'll paste a basic script >> for it below using numpy, scipy to load a wav file, and matplotlib to >> display. I have written much more refined versions, but can't release >> them publicly at the moment. > > Wow, thanks very much, Ken! Yes, FWIW, I'd love to see a talk on this > in more detail. > > Adrian > _______________________________________________ > Chicago mailing list > Chicago at python.org > http://mail.python.org/mailman/listinfo/chicago > -------------- next part -------------- An HTML attachment was scrubbed... URL: From waltaskew at gmail.com Tue Dec 7 05:27:40 2010 From: waltaskew at gmail.com (Walter Askew) Date: Mon, 6 Dec 2010 22:27:40 -0600 Subject: [Chicago] Testing Submitted Python Scripts Message-ID: I'm going to be teaching an Intro to Programming class at Pumping Station One sometime after the holiday stuff clears up, and I'll be using Python to impart the art of computer programming. I'll probably post again once I'm about to fire up the class to try get the word out and grab some more students. I'm working on a website for the class, and I'd like to have a way to distribute homework to the students and then validate the programs they write. I'm trying to think of a clever way to do this, but I can't quite come up with something I'm happy with. I think the best thing to do would be to distribute a tester program, let the students run it, and on a successful check of the code they've written pop out a random-looking code they can enter in the website to prove they've solved the problem. I'd like this because I'd be able to avoid the whole 'execution of foreign code on my server' thing. That'd be great, but I can't really come up with a clever way to generate a secret code without exposing the secret code itself in the tester program I'd be distributing. I don't really want to get into distributing non-source tester programs, because the source of the tester could be useful to the students and I'd have to get involved with distributing non-source python programs. The other alternative is to let students upload their programs and do the validation on the server. If I do this I'll need to get involved with a bunch of security precautions -- I'm thinking a chroot with nothing but the read-only binaries for the python interpreter -- but I'm appropriately concerned with executing arbitrary code on my server. What would you guys do in this situation? Is there a clever solution I'm overlooking? Any advice in implementing the solutions I've put forward? I'm doing the site in Django, so bonus points for any Django snippets. Thanks folks. -------------- next part -------------- An HTML attachment was scrubbed... URL: From carl at personnelware.com Tue Dec 7 05:48:40 2010 From: carl at personnelware.com (Carl Karsten) Date: Mon, 6 Dec 2010 22:48:40 -0600 Subject: [Chicago] Testing Submitted Python Scripts In-Reply-To: References: Message-ID: On Mon, Dec 6, 2010 at 10:27 PM, Walter Askew wrote: > I'm going to be teaching an Intro to Programming class at?Pumping Station > One?sometime after the holiday stuff clears up, and I'll be using Python to > impart the art of computer programming. ?I'll probably post again once I'm > about to fire up the class to try get the word out and grab some more > students. > I'm working on a website for the class, and I'd like to have a way to > distribute homework to the students and then validate the programs they > write. ?I'm trying to think of a clever way to do this, but I can't quite > come up with something I'm happy with. > I think the best thing to do would be to distribute a tester program, let > the students run it, and on a successful check of the code they've written > pop out a random-looking code they can enter in the website to prove they've > solved the problem. ?I'd like this because I'd be able to avoid the whole > 'execution of foreign code on my server' thing. > That'd be great, but I can't really come up with a clever way to generate a > secret code without exposing the secret code itself in the tester program > I'd be distributing. ?I don't really want to get into distributing > non-source tester programs, because the source of the tester could be useful > to the students and I'd have to get involved with?distributing non-source > python programs. > The other alternative is to let students upload their programs and do the > validation on the server. ?If I do this I'll need to get involved with a > bunch of security precautions -- I'm thinking a chroot with nothing but the > read-only binaries for the python interpreter -- but I'm appropriately > concerned with executing arbitrary code on my server. > What would you guys do in this situation? ?Is there a clever solution I'm > overlooking? ?Any advice in implementing the solutions I've put forward? > ?I'm doing the site in Django, so bonus points for any Django snippets. > Thanks folks. I would look into running the code on the server. the security problem has been solved. Here is one example: http://codepad.org/UngHomhU I am sure the build bot things are secure. like Hudson, which I know nothing about. If needed I am up for helping you setup a VM that gets the .py file, runs it and drops output.txt somewhere. If the VM stays alive for more than.. um.. 15 seconds, it gets killed. Pretty sure this is overkill, and will make sure it is really needed if it comes to it. OTOH, is this level of validation really needed? I would think "click here to see the answer... did you get it right?" would be good enough. You may want to expand on your goal if not. -- Carl K From waltaskew at gmail.com Tue Dec 7 14:09:41 2010 From: waltaskew at gmail.com (Walter Askew) Date: Tue, 7 Dec 2010 07:09:41 -0600 Subject: [Chicago] Testing Submitted Python Scripts Message-ID: <34222ED7-7F55-47E0-8A5A-8937FF7FFA20@gmail.com> > If needed I am up for helping you setup a VM that gets the .py file, > runs it and drops output.txt somewhere. If the VM stays alive for > more than.. um.. 15 seconds, it gets killed. Pretty sure this is > overkill, and will make sure it is really needed if it comes to it. I appreciate the offer. I was thinking about hosting this on Google App Engine because it's free Python hosting. I've never used it before, so I'm not sure how much control you are given over your little corner of Google. Running off of my home computer is an option, too. > OTOH, is this level of validation really needed? I would think "click > here to see the answer... did you get it right?" would be good > enough. You may want to expand on your goal if not. I've already got the forms and models put together for an 'enter an answer and see if you're right' thing. That's fine if I have assignments like 'calculate the 100th prime number', but I'd like to be able to get a bit fancier. I want to be able to give assignments like 'Implement your own version of a Python dictionary. Create a class named 'MyDict' with methods foo, bar and baz which do x, y and z'. My tester program would essentially be a bunch of unit tests that exercise the class written by the students. > I would look into running the code on the server. the security > problem has been solved. Here is one example: > > http://codepad.org/UngHomhU > > I am sure the build bot things are secure. like Hudson, which I know > nothing about. > > If needed I am up for helping you setup a VM that gets the .py file, > runs it and drops output.txt somewhere. If the VM stays alive for > more than.. um.. 15 seconds, it gets killed. Pretty sure this is > overkill, and will make sure it is really needed if it comes to it. > > OTOH, is this level of validation really needed? I would think "click > here to see the answer... did you get it right?" would be good > enough. You may want to expand on your goal if not. > > -- > Carl K -------------- next part -------------- An HTML attachment was scrubbed... URL: From tottinge at gmail.com Tue Dec 7 14:38:32 2010 From: tottinge at gmail.com (Tim Ottinger) Date: Tue, 7 Dec 2010 07:38:32 -0600 Subject: [Chicago] Testing Submitted Python Scripts In-Reply-To: <34222ED7-7F55-47E0-8A5A-8937FF7FFA20@gmail.com> References: <34222ED7-7F55-47E0-8A5A-8937FF7FFA20@gmail.com> Message-ID: How many students? If you distribute live USB sticks, you can have them work with a standardized toolset and you can distribute assignments, pre-written tests, etc. A friend of mine does this when he teaches C++ (via TDD) and has been pretty happy with it. Afterward, the student keeps the stick and has his old work and whatever free references you've left him on it. OTOH, the google thing sounds good. When I was left to grade a Java language course's submissions, we ended up standardizing the grading as best we could, and hand-checking the solutions. I learned more java in order to do the grading, which I don't recommend, but it worked out pretty well. I'm interested in how the google thing works out. Please keep us posted. I may want to do something rather like that in the future. -- ------------------------------------- http://agileinaflash.com/ http://agileotter.blogspot.com/ http://tottinge.blogsome.com -------------- next part -------------- An HTML attachment was scrubbed... URL: From skip at pobox.com Tue Dec 7 14:43:32 2010 From: skip at pobox.com (skip at pobox.com) Date: Tue, 7 Dec 2010 07:43:32 -0600 Subject: [Chicago] Testing Submitted Python Scripts In-Reply-To: References: Message-ID: <19710.14852.497299.716058@montanaro.dyndns.org> Walter> I think the best thing to do would be to distribute a tester Walter> program, let the students run it, and on a successful check of Walter> the code they've written pop out a random-looking code they can Walter> enter in the website to prove they've solved the problem. I'd Walter> like this because I'd be able to avoid the whole 'execution of Walter> foreign code on my server' thing. Walter> That'd be great, but I can't really come up with a clever way to Walter> generate a secret code without exposing the secret code itself Walter> in the tester program I'd be distributing. Maybe have it contact your server, get a token (which might be time-dependent), then combine that token with their credentials to generate a "secret" code? How bulletproof does this have to be? Nobody's getting college credit for the class are they? -- Skip Montanaro - skip at pobox.com - http://www.smontanaro.net/ From waltaskew at gmail.com Tue Dec 7 14:50:43 2010 From: waltaskew at gmail.com (Walter Askew) Date: Tue, 7 Dec 2010 07:50:43 -0600 Subject: [Chicago] Testing Submitted Python Scripts In-Reply-To: <19710.14852.497299.716058@montanaro.dyndns.org> References: <19710.14852.497299.716058@montanaro.dyndns.org> Message-ID: Doesn't have to be tremendously bullet-proof -- folks aren't even getting grades. I think people will take the course more seriously and be more likely to do assignments if I have a legitimate looking system that does a good job evaluating their work, though. On Dec 7, 2010, at 7:43 AM, skip at pobox.com wrote: > > Walter> I think the best thing to do would be to distribute a tester > Walter> program, let the students run it, and on a successful check of > Walter> the code they've written pop out a random-looking code they can > Walter> enter in the website to prove they've solved the problem. I'd > Walter> like this because I'd be able to avoid the whole 'execution of > Walter> foreign code on my server' thing. > > Walter> That'd be great, but I can't really come up with a clever way to > Walter> generate a secret code without exposing the secret code itself > Walter> in the tester program I'd be distributing. > > Maybe have it contact your server, get a token (which might be > time-dependent), then combine that token with their credentials to generate > a "secret" code? > > How bulletproof does this have to be? Nobody's getting college credit for > the class are they? > > -- > Skip Montanaro - skip at pobox.com - http://www.smontanaro.net/ > _______________________________________________ > Chicago mailing list > Chicago at python.org > http://mail.python.org/mailman/listinfo/chicago From brianhray at gmail.com Tue Dec 7 16:45:59 2010 From: brianhray at gmail.com (Brian Ray) Date: Tue, 7 Dec 2010 09:45:59 -0600 Subject: [Chicago] Movie night Message-ID: For this week's meeting, may I be bold enough to propose a movie night where we pick some interesting videos from past presentations or something culturally interesting? Any ideas? -- Brian Ray From joe at germuska.com Tue Dec 7 17:03:55 2010 From: joe at germuska.com (Joe Germuska) Date: Tue, 7 Dec 2010 10:03:55 -0600 Subject: [Chicago] Testing Submitted Python Scripts In-Reply-To: References: Message-ID: <774FC92C-B346-4A6A-BE31-894CFDF36F67@germuska.com> On Dec 6, 2010, at 10:27 PM, Walter Askew wrote: > What would you guys do in this situation? Is there a clever solution I'm overlooking? Any advice in implementing the solutions I've put forward? I'm doing the site in Django, so bonus points for any Django snippets. Do you know about Crunchy? http://us.pycon.org/2009/conference/schedule/event/12/ http://code.google.com/p/crunchy/ I haven't taught Python in anything but casual one-on-one situations, but since Pycon '09, I've thought I'd try to use it if I were doing something more structured. Joe -- Joe Germuska Joe at Germuska.com * http://blog.germuska.com * http://twitter.com/JoeGermuska "Learn to fear any church that fears drums." --Regie Gibson -------------- next part -------------- An HTML attachment was scrubbed... URL: From adrian at holovaty.com Wed Dec 8 05:44:16 2010 From: adrian at holovaty.com (Adrian Holovaty) Date: Tue, 7 Dec 2010 22:44:16 -0600 Subject: [Chicago] Audio spectrograms In-Reply-To: References: Message-ID: On Mon, Dec 6, 2010 at 1:27 PM, Ken Schutte wrote: > I'm not sure if I can make it this Thursday, but perhaps sometime in the > future. ?What exactly would be an interesting talk? ?Just all about > spectrograms? ?audio processing? ?I don't really know first-hand any related > Python libraries, so it seems it would be just more of a DSP?lecture with > maybe a little numpy. My two cents: that would be awesome. :-) I hear Python (especially with numpy) is awesome for DSP stuff, but I'm pretty clueless about the details. Even if you skimp on the Python libraries part, any DSP stuff (or even stuff about processing large datasets with numpy) could make for a really interesting talk. Adrian From carl at personnelware.com Wed Dec 8 22:32:58 2010 From: carl at personnelware.com (Carl Karsten) Date: Wed, 8 Dec 2010 15:32:58 -0600 Subject: [Chicago] no talks with your mouth full Message-ID: So we got exactly 0 talks. Should we plan on meeting somewhere for food and drinks? It would be like the tweeners, only on the fence post. fits in with party season. -- Carl K From brianhray at gmail.com Wed Dec 8 22:53:28 2010 From: brianhray at gmail.com (Brian Ray) Date: Wed, 8 Dec 2010 15:53:28 -0600 Subject: [Chicago] No ChiPy This month Message-ID: We will have our next meetings January 13th 2011 in the Loop and January 20th up North. There is an effort underway to form some informal gathering. Stay tuned to the chipy mailing list (see http://chipy.org for details). Again, no official meeting this month. Next month will be the best ChiPy Meeting ever. Seasons Greetings and Happy New Year! -- Brian Ray From jason at jrandolph.com Wed Dec 8 23:35:22 2010 From: jason at jrandolph.com (Jason Huggins) Date: Wed, 8 Dec 2010 14:35:22 -0800 Subject: [Chicago] no talks with your mouth full In-Reply-To: References: Message-ID: On Wed, Dec 8, 2010 at 1:32 PM, Carl Karsten wrote: > So we got exactly 0 talks. ?Should we plan on meeting somewhere for > food and drinks? ? It would be like the tweeners, only on the fence > post. ?fits in with party season. If I wasn't in San Francisco this week, I would have thrown my hat in the ring... :-( Sorry, it's my fault. - hugs From verisimilidude at gmail.com Thu Dec 9 15:22:11 2010 From: verisimilidude at gmail.com (Phil Robare) Date: Thu, 9 Dec 2010 08:22:11 -0600 Subject: [Chicago] No ChiPy This month In-Reply-To: References: Message-ID: On Wed, Dec 8, 2010 at 3:53 PM, Brian Ray wrote: > > Again, no official meeting this month. > The only month where we won't have the best meeting ever. From brianhray at gmail.com Fri Dec 10 17:48:20 2010 From: brianhray at gmail.com (Brian Ray) Date: Fri, 10 Dec 2010 10:48:20 -0600 Subject: [Chicago] The current state of Testing Stuff Message-ID: This is an intentionally vague topic regarding testing from acceptability to unit tests. I am suggesting things have changed and perhaps it is time to review testing methodologies. I am sure many of you have dealt with this change already. At least this could be an interesting topic for some I hope. I recall in 2005 ChiPy had a plethora of talks on unit testing, Mock Objects and fitness testing. Later we talked a lot about nose tests and runner tools. More recently we had talks on great tools like tox but it still included things like hudson to run. Somewhere in between we talked about Selenium. There was a link (oh here it is) that lists tools http://pycheesecake.org/wiki/PythonTestingToolsTaxonomy . I am not sure this test is exhaustive. So here comes my question.... What did we learn from these different efforts in testing; what has changed in testing; what is the best modern method to implement large scale testing that covers the whole stack? How much testing in development should be made available for testing in QA and acceptability? What is the point of writing test on something that will never fail? Have testing tools changed to become more restful? Has anyone ever had a test failure from an automated suite that actually pointed to something useful? It seems testing the smaller lower level items can be covered well with Unit Tests. Higher and middle level items perhaps are covered well by fitness and maybe browser level? How do we automate useful tests? How does one approach testing more complicated things like events and threads? Now things are becoming so mashed... what are people doing to test interpolation with thinks like web services that someone else maintains? I guess I am also looking for life cycle configuration ideas. I could see someone saying something like this: "We write UnitTests we run from Nose for TDD, for acceptability in development we use urllib2 to test RESTFul stuff, and then on top of that we use Selenium for browser testing..." -- Brian Ray From tal.liron at threecrickets.com Fri Dec 10 22:01:09 2010 From: tal.liron at threecrickets.com (Tal Liron) Date: Fri, 10 Dec 2010 15:01:09 -0600 Subject: [Chicago] The current state of Testing Stuff In-Reply-To: References: Message-ID: <4D029515.50100@threecrickets.com> This is very much a matter of 1) quality standards in your industry, and 2) personality. I have two rules of thumbs: 1) The Scripting Rule: If I find myself having to do the same thing more than once, I make it into a script. In the realm of testing, this is anything automated, from "unit" tests to Selenium browser scripts. I never, ever, write "unit tests" just because. I've tried the path of religiously testing everything, and found it to be a huge waste of my creative juices, with meagre benefits. I think that in most cases there are better ways to assure quality, involving a combination of responsible humans assisted by automated scripts. With exceptions. There are definitely industries where any level of failure is unacceptable, and anything that could be tested must be tested a zillion times. I just haven't worked in these industries for a while, because I like sleeping at night. On that note, I find the name "unit test" to be so completely misused that it's lost its meaning to me. What is the "unit"? Far too often, programmers and frameworks use it to refer to an "object" or some other implementation-specific construct. I think the "unit" should be whatever aspect, subsystem, entry point, etc., of your software that could be tested. In particular, the paradigm of "unit testing" creates a tunnel vision that ignores a unit's deep integration into larger systems. Many bugs (especially concurrency bugs) will only appear when run as a whole. So, let's just call it "automated testing" and describe the "unit" as appropriate. Even the name "regression suite" is a bit annoying to me, because it implies a suite of "unit tests." The unit, again, is slippery. So, again, rule of thumb: I write a test only when I find myself repeating myself. Like I am now. :) 2) I do a lot of work on subtle concurrency stuff, where testing = debugging. The only to find concurrency bugs is to throw massive amounts of threads, processes, browsers, etc., at your software, and also to test on multi- vs. single-core machines. (P.S. I love BrowserMob.) This kind of testing always involves robust logging, stack traces, and sometimes VM instrumentalization (if your platform supports it). Programming concurrency is really, really hard (for me), and no amount of poring over the source code can help me find bugs. I can't count how many times concurrency tests have discovered major breakage in my code. Moreover, they teach me a lot. The rule of thumb here is to ALWAYS test concurrency, and this does contradict my previous rule of thumb. -Tal On 12/10/2010 10:48 AM, Brian Ray wrote: > This is an intentionally vague topic regarding testing from > acceptability to unit tests. I am suggesting things have changed and > perhaps it is time to review testing methodologies. I am sure many of > you have dealt with this change already. At least this could be an > interesting topic for some I hope. > > I recall in 2005 ChiPy had a plethora of talks on unit testing, Mock > Objects and fitness testing. Later we talked a lot about nose tests > and runner tools. More recently we had talks on great tools like tox > but it still included things like hudson to run. Somewhere in between > we talked about Selenium. There was a link (oh here it is) that lists > tools http://pycheesecake.org/wiki/PythonTestingToolsTaxonomy . I am > not sure this test is exhaustive. > > So here comes my question.... What did we learn from these different > efforts in testing; what has changed in testing; what is the best > modern method to implement large scale testing that covers the whole > stack? How much testing in development should be made available for > testing in QA and acceptability? > > What is the point of writing test on something that will never fail? > Have testing tools changed to become more restful? Has anyone ever had > a test failure from an automated suite that actually pointed to > something useful? It seems testing the smaller lower level items can > be covered well with Unit Tests. Higher and middle level items perhaps > are covered well by fitness and maybe browser level? How do we > automate useful tests? How does one approach testing more complicated > things like events and threads? Now things are becoming so mashed... > what are people doing to test interpolation with thinks like web > services that someone else maintains? > > I guess I am also looking for life cycle configuration ideas. I could > see someone saying something like this: "We write UnitTests we run > from Nose for TDD, for acceptability in development we use urllib2 to > test RESTFul stuff, and then on top of that we use Selenium for > browser testing..." > From kumar.mcmillan at gmail.com Sat Dec 11 02:25:00 2010 From: kumar.mcmillan at gmail.com (Kumar McMillan) Date: Fri, 10 Dec 2010 19:25:00 -0600 Subject: [Chicago] The current state of Testing Stuff In-Reply-To: References: Message-ID: There's no magic bullet and you will get the most mileage by testing at all levels (with the right balance). It might help to think of it like this. What if you didn't have any tests whatsoever? - You would have a hard time upgrading 3rd party libs, e.g. Django or even Python itself - It would be hard for other people (team mates) to work on your code because they might not understand what will break when they change something - you will have a hard time understanding what will happen to your app in the face of exceptions or error cases because those are hard to trigger manually - you run the risk of building a tightly coupled system - you won't feel confident in experimenting with new code layouts (refactoring) - development might feel quicker but it will soon become cumbersome during the debugging phase That said, it's easy to write brittle or useless tests. If you find yourself deleting massive amounts of test code on each commit don't get discouraged from testing! Instead try to figure out why the tests were brittle. For people new to testing I'd suggest trying to avoid unit tests because they are the easiest to mess up. Start at a higher level like testing each web request or each command line script. After that you'll start to see more efficient tests that integrate only a few components at a time. This is my 2 cents from many failures and lots of trial and error. Pretty soon you won't trust any code unless it has a test and writing the tests will come naturally -- won't slow you down. Kumar On Fri, Dec 10, 2010 at 10:48 AM, Brian Ray wrote: > This is an intentionally vague topic regarding testing from > acceptability to unit tests. I am suggesting things have changed and > perhaps it is time to review testing methodologies. ?I am sure many of > you have dealt with this change already. At least this could be an > interesting topic for some I hope. > > I recall in 2005 ChiPy had a plethora of talks on unit testing, Mock > Objects and fitness testing. Later we talked a lot about nose tests > and runner tools. More recently we had talks on great tools like tox > but it still included things like hudson to run. Somewhere in between > we talked about Selenium. ?There was a link (oh here it is) that lists > tools http://pycheesecake.org/wiki/PythonTestingToolsTaxonomy . I am > not sure this test is exhaustive. > > So here comes my question.... What did we learn from these different > efforts in testing; what has changed in testing; what is the best > modern method to implement large scale testing that covers the whole > stack? How much testing in development should be made available for > testing in QA and acceptability? > > What is the point of writing test on something that will never fail? > Have testing tools changed to become more restful? Has anyone ever had > a test failure from an automated suite that actually pointed to > something useful? It seems testing the smaller lower level items can > be covered well with Unit Tests. Higher and middle level items perhaps > are covered well by fitness and maybe browser level? How do we > automate useful tests? How does one approach testing more complicated > things like events and threads? ?Now things are becoming so mashed... > what are people doing to test interpolation with thinks like web > services that someone else maintains? > > I guess I am also looking for life cycle configuration ideas. ?I could > see someone saying something like this: ?"We write UnitTests we run > from Nose for TDD, for acceptability in development we use urllib2 to > test RESTFul stuff, and then on top of that we use Selenium for > browser testing..." > > -- > > Brian Ray > _______________________________________________ > Chicago mailing list > Chicago at python.org > http://mail.python.org/mailman/listinfo/chicago > From steder at gmail.com Sat Dec 11 16:36:14 2010 From: steder at gmail.com (Mike Steder) Date: Sat, 11 Dec 2010 09:36:14 -0600 Subject: [Chicago] The current state of Testing Stuff Message-ID: > > Message: 1 > Date: Fri, 10 Dec 2010 10:48:20 -0600 > From: Brian Ray > To: The Chicago Python Users Group > Subject: [Chicago] The current state of Testing Stuff > Message-ID: > > Content-Type: text/plain; charset=ISO-8859-1 > > This is an intentionally vague topic regarding testing from > acceptability to unit tests. I am suggesting things have changed and > perhaps it is time to review testing methodologies. I am sure many of > you have dealt with this change already. At least this could be an > interesting topic for some I hope. > > I recall in 2005 ChiPy had a plethora of talks on unit testing, Mock > Objects and fitness testing. Later we talked a lot about nose tests > and runner tools. More recently we had talks on great tools like tox > but it still included things like hudson to run. Somewhere in between > we talked about Selenium. There was a link (oh here it is) that lists > tools http://pycheesecake.org/wiki/PythonTestingToolsTaxonomy . I am > not sure this test is exhaustive. > > So here comes my question.... What did we learn from these different > efforts in testing; what has changed in testing; what is the best > modern method to implement large scale testing that covers the whole > stack? How much testing in development should be made available for > testing in QA and acceptability? > This is a pretty open ended question. I think the only real answer is that there are enough options to test any and all aspects of your application either and that there are more tools now. I'm not sure there are "better" tools than PyUnit runners, Fitnesse, Selenium, Hudson, but there are certainly more options. I'd say one of the big new trends is BDD which seems to be interested in sharing more of the effort of creating tests between development teams and those business analysts that own the requirements. Fitnesse is similar but more clunky than something like Lettuce. Anyway, I think it's important to realize that every organizations appetite for production failures and their budget to allow developers to write tests is different. Without having some sense what that balance is it's hard to say what the correct tools and balance will be for that organization. I've worked in environments where a complete automated test suite was a series of a 1000 nosetests that generated HTTP requests against our REST backbone service and there were few if any unit tests or browser driven tests. The positive thing about something like that is that the tests give you some reasonable confidence that the system works. The negative thing about that coarse grained approach is that those tests can break for any number of reasons, are slower than molasses in January, and can require extensive debugging to fix. Personally, I think that testing should support the development process and so while functional test suites and benchmarking tools like Grinder are great for coverage and confirming that everything integrates and works together I think that unittests are there to support a developer workflow that is based around the so called "virtuous cycle". That is, write a failing test, write some code, make that test pass, repeat. The complaint many people have is that unittests can feel completely specific to the brain of the developer who worked on the feature, sort of like how not everyone can read "that guys" code, there's always that one guy who's testing aesthetic is different from everyone else. However, this is where your agile coach friend comes in and says "well why aren't you pairing on code and tests?" and you kind of just blubber about how no one can understand your snowflake like genius... *cough* My point is simply that expecting any testing methodology to be useful to everyone requires team consensus and can really be assisted by pair programming. > What is the point of writing test on something that will never fail? > Have testing tools changed to become more restful? Has anyone ever had > a test failure from an automated suite that actually pointed to > something useful? It seems testing the smaller lower level items can > be covered well with Unit Tests. Higher and middle level items perhaps > are covered well by fitness and maybe browser level? How do we > automate useful tests? How does one approach testing more complicated > things like events and threads? Now things are becoming so mashed... > what are people doing to test interpolation with thinks like web > services that someone else maintains? > A test should always start out failing. If a test never fails it is a bad test and should be deleted. I'd do an SVN blame on a test that fails and ask why that test is there. This is why folks suggest "test first", it makes it easier to ensure that the test fails before you've written any code. Of course, I have run into cases where there might be 1 sanity test just to confirm that a testing framework like Fitnesse is correctly installed as tests can fail due to environmental issues like PYTHONPATH settings. > I guess I am also looking for life cycle configuration ideas. I could > see someone saying something like this: "We write UnitTests we run > from Nose for TDD, for acceptability in development we use urllib2 to > test RESTFul stuff, and then on top of that we use Selenium for > browser testing..." > > -- > > Brian Ray > Is this a hypothetical question about starting from greenfield, or adding tests to a system that doesn't have them? In new projects I think a "3 tier" approach like what you're suggesting is very reasonable, although I would argue that there's room for a 4th. For example, unittests are great for developers in my opinion, but suck for the rest of the organization. So while you're code does exactly what you want it to do the business analyst three desks over may not have a very easy time communicating with you or reasoning about the system in terms of those tests. This is where a BDD tool like Lettuce or Fitnesse may come in and help the business analyst actually write tests in a form they can read and you can make execute. Otherwise I think it is a very powerful approach to write HTTP level tests against any web service and ideally jsUnit, Selenium, Windmill, etc will be used to cover the UI and Javascript over your supported browsers. Anyway, just contributing more cents. ~Mike -------------- next part -------------- An HTML attachment was scrubbed... URL: From tottinge at gmail.com Sun Dec 12 22:47:35 2010 From: tottinge at gmail.com (Tim Ottinger) Date: Sun, 12 Dec 2010 15:47:35 -0600 Subject: [Chicago] The current state of Testing Stuff In-Reply-To: References: Message-ID: State of the art, state of practice, state of our practitioners? I live on autonose when I get to program in python. On my day job, we are using watir and some custom stuff to do "gold standard" testing (browser driving, and comparison to last-known-good version of page). NUnit for C# unit testing, and FitNesse for business rules & specification. The fitnesse stuff is falling apart but we shore it up now and then with dedicated effort. The product owner/customer/ whatever doesn't like to write tests, so fitnesse is an afterthought more than a proper specification framework these days. I pulled down a python project to play with the other day and the test suite failed (not due to dependencies) right out of the box. It wasn't a very good testimonial. I wont' say which it was, but if you are on a project, check yours. -- ------------------------------------- http://agileinaflash.com/ http://agileotter.blogspot.com/ http://tottinge.blogsome.com -------------- next part -------------- An HTML attachment was scrubbed... URL: From joel at flourishconf.com Fri Dec 10 04:09:16 2010 From: joel at flourishconf.com (Joel Luellwitz) Date: Thu, 9 Dec 2010 21:09:16 -0600 Subject: [Chicago] Flourish 2011 - Call for Speakers Message-ID: Hello, Below is a request for speakers for the Flourish Free (Libre) Open Source Software conference that the students at the University of Illinois at Chicago (UIC) put on every year. I should also mention that we are also in need of people who are passionate about open source software or open culture to help us run this event. Please contact me directly if you are interested. It is a great way to give back to open source without actually coding. Thank you, Joel Luellwitz *ABOUT FLOURISH* Now in its fifth year, the Flourish Conference promotes the use and adoption of Free Libre Open Source Software (FLOSS) by demonstrating the practical applications of FLOSS for business, academia and the enthusiast community. Through engaging talks and in-depth workshops, Flourish introduces participants to new concepts and ideas, gives them the opportunity (re)connect with the local open-source community, and provides a forum for healthy debate. More information is available at http://www.flourishconf.com/. Flourish 2011 will be held on April 1st-3rd at the University of Illinois at Chicago. *CALL FOR PRESENTATIONS* The Flourish organizers are now accepting speaker proposals for Flourish 2011. There are principally two types of talks: presentations and workshops. Presentations are typically an hour long (incl. Q&A) and discuss open-source-related matters of technical, community, or industry importance. Past presentations have been fairly high-level and tackled a diverse array of topics--from kernel hacking and programming languages to community/project management and women in open source. Note that, if we get a lot of proposals for a particular topic, we may opt to build a panel discussion. Workshops are usually three hours long and explore a particular topic in an intensive, hands-on environment. In the past, Flourish has offered workshops in Android, Websphere, Erlang, Processing, Plone and Drupal. The organizers provide all the necessary connectivity. So, do you have expertise to share? Please fill out the Flourish 2011 Speaker Proposal form located here: http://www.flourishconf.com/2011/speaker Questions? Please contact info at flourishconf.com. From maniabill at yahoo.com Mon Dec 20 16:27:37 2010 From: maniabill at yahoo.com (Bill Mania) Date: Mon, 20 Dec 2010 09:27:37 -0600 Subject: [Chicago] Proposed topic for January meeting Message-ID: <20101220152737.GB18945@bill-desktop> Brian Ray and I would like to propose a presentation topic for the 13 January 2011 Loop meeting. We'd like to describe what we know so far about ROS and its rospy collection. ROS is the Robot Operating System from Willow Garage. There is a technical overview of ROS at http://www.ros.org/wiki/ROS/Introduction. Is there interest in a presentation on this topic? Neither of us are experts with ROS (yet), but there's a lot of vacation time and plane travel between now and the 13th. -- Bill Mania /'m? ??/ dum vivimus, vivamus! From verisimilidude at gmail.com Mon Dec 20 23:25:45 2010 From: verisimilidude at gmail.com (Phil Robare) Date: Mon, 20 Dec 2010 16:25:45 -0600 Subject: [Chicago] The current state of Testing Stuff In-Reply-To: References: Message-ID: When I release code to QA it has no known bugs. It then takes forever to get back to that status. From brianhray at gmail.com Wed Dec 15 22:14:23 2010 From: brianhray at gmail.com (Brian Ray) Date: Wed, 15 Dec 2010 15:14:23 -0600 Subject: [Chicago] reminder... no ChiPy North tomorrow. Message-ID: See you all next month... for the best ever! -- Brian Ray -------------- next part -------------- An HTML attachment was scrubbed... URL: From contezta at yahoo.com Fri Dec 24 20:09:37 2010 From: contezta at yahoo.com (N Form) Date: Fri, 24 Dec 2010 11:09:37 -0800 (PST) Subject: [Chicago] WE ARE HIRING: Python Developers / C++ Developers - Top Tier Financial Firm(Chicago) Message-ID: <336061.78657.qm@web30104.mail.mud.yahoo.com> http://goo.gl/LSom1 ----- Finder's fees can be offered for anybody you can recommend that YOU KNOW (providing contact info is a start) and obviously they MUST BE QUALIFIED and get interviewed and HIRED. --------------- Call or text 203-29-QUANT 203.297.8268 if you have any questions and are qualified for this role or others posted. Please speak clearly if leaving a voicemail, and let me know the role you are applying for and if you have sent a resume or not. You may call or text at any time. All discussions and messages are fully confidential... If QUALIFIED &AUTHORIZED FOR USA WORK, email resume QuantRec @gmail.com Goto http://www.QuantRec.com for updates on jobs, bookmark it! You can fax in resume to 206-202-7703 as well. PLEASE BE SURE TO INCLUDE your salary requirements (2010 base/bonus), location preferences, and for my notes where you have been interviewing or been submitted to in the past 6 months (as there are multiple opportunities if you are a solid techie). Must currently be in USA and be Green CARD/US CITIZEN/h1b with enough years left on visa (at least 3 years). Also include the best times to reach you over the near term. Candidates MEETING MOST OF the SPEC below will be contacted PROMPTLY. ----------------------------------------------------------- $$ All levels from Junior to Expert Level Note to Recruiters: Team expects to hire at least 6 developers in 2011, most in Q1. Team wants to hire at all levels, junior, mid level and senior level. This team is developing the core trading platform for the firm which will cover all asset classes and this team is responsible for all aspects of the system from the low level infrastructure code to the data technology to the front end, but the bulk of the development which needs to be done is the server side development - the core business logic to the core systems. This is a team which only hires best of breed talent, whether junior or senior level candidate, must have excellent academic and/or professional accomplishments which make them stand out. The bulk of the development will be done in Python but there will be some C++. They are happy to hire a pure Python developer, but some C++ is desirable and they will not hire a pure C++ developer. Financial background is not particularly critical to the job function. Candidates need to be able to show great fluency in Python. The "extras" they're really looking for though are some background with dependency graphs, python twisted, python numpy, python numeric. In general they would also like developer with experience developing large-scale, high performance systems as well as developers who have experience developing software solutions to work with very large data sets. The GUI will be developed in Python WX which is also a plus. This may show up in math people or compiler people or data mining people. -------------- next part -------------- An HTML attachment was scrubbed... URL: From nuptyu at 163.com Fri Dec 31 07:05:14 2010 From: nuptyu at 163.com (=?GBK?B?0+DBwe64?=) Date: Fri, 31 Dec 2010 14:05:14 +0800 (CST) Subject: [Chicago] A quesstion with matplotlib Message-ID: Dear all, I have a quesstion about change the width of the ylabel.You know the width of the ylabel is relaete to the x axi,how can i change the width of the ylabel not depend on the width of the x-axis? Thank you! George -------------- next part -------------- An HTML attachment was scrubbed... URL: