From dt-sapug at handcraftedcomputers.com.au Thu Mar 6 13:00:35 2008 From: dt-sapug at handcraftedcomputers.com.au (Daryl Tester) Date: Thu, 06 Mar 2008 22:30:35 +1030 Subject: [sapug] Plethora of jobs on SEEK for Python programmers in Adelaide. Message-ID: <47CFDCE3.3090003@handcraftedcomputers.com.au> Well, by plethora I mean 5. And 3 of them seem to be the same job. Sorry for the spack URL. -- Regards, Daryl Tester "There is no 'I' in team, but there are 6 I's in 'Dissociative Identity Disorder'" From chris at inetd.com.au Fri Mar 7 02:46:50 2008 From: chris at inetd.com.au (Chris Foote) Date: Fri, 7 Mar 2008 12:16:50 +1030 (CST) Subject: [sapug] Plethora of jobs on SEEK for Python programmers in Adelaide. In-Reply-To: <47CFDCE3.3090003@handcraftedcomputers.com.au> References: <47CFDCE3.3090003@handcraftedcomputers.com.au> Message-ID: On Thu, 6 Mar 2008, Daryl Tester wrote: > Well, by plethora I mean 5. And 3 of them seem to be the same job. Yep, that's a huge amount, not :-) I thought it might be interesting to see the proportions for different languages in different cities for Seek IT Job listings: |-------------+----------+-------+-----------+--------| | Search Term | Adelaide | Perth | Melbourne | Sydney | |-------------+----------+-------+-----------+--------| | Ruby | 2 | 1 | 27 | 58 | | Perl | 4 | 19 | 157 | 312 | | Python | 5 | 5 | 50 | 86 | | COBOL | 5 | 4 | 22 | 42 | | PHP | 9 | 26 | 174 | 312 | | Javascript | 18 | 46 | 287 | 734 | | ASP | 20 | 30 | 172 | 336 | | VB | 29 | 23 | 100 | 332 | | C | 33 | 107 | 234 | 525 | | C++ | 39 | 122 | 228 | 596 | | C# | 53 | 177 | 369 | 1189 | | .NET | 54 | 220 | 609 | 1538 | | Java | 62 | 125 | 631 | 1517 | |-------------+----------+-------+-----------+--------| The dynamic languages don't fare well for job listings. Here's a stack of guesses to explore as to why this might be the case: - Existing programmers within organisations are so productive in moving to dynamic languages that they haven't needed to employ extra programmers even with growth. - Job satisfaction for existing programmers using dynamic languages is higher than when using traditional languages, so there's no need for filling replacement positions. - Dynamic languages aren't popular. - The popular dynamic languages have an interpreter implementation that doesn't lend itself to hiding proprietary code from prying eyes. - It takes 10 to 20 times more people to produce software when not using dynamic languages. I wonder if someone has done a real study on dynamic language use for employment. Chris Foote Inetd Pty Ltd T/A HostExpress Web: http://www.hostexpress.com.au Blog: http://www.hostexpress.com.au/drupal/chris Phone: (08) 8410 4566 From kim.hawtin at adelaide.edu.au Fri Mar 7 04:20:37 2008 From: kim.hawtin at adelaide.edu.au (Kim Hawtin) Date: Fri, 07 Mar 2008 13:50:37 +1030 Subject: [sapug] Plethora of jobs on SEEK for Python programmers in Adelaide. In-Reply-To: References: <47CFDCE3.3090003@handcraftedcomputers.com.au> Message-ID: <47D0B485.4080200@adelaide.edu.au> Chris wrote: > Daryl wrote: >> Well, by plethora I mean 5. And 3 of them seem to be the same job. > > Yep, that's a huge amount, not :-) there are regularly python jobs advertised on a number of mail lists in on, VMWare is particularly hungry at the moment. they've advertised six jobs in the last 9 weeks. > I thought it might be interesting to see the proportions for different > languages in different cities for Seek IT Job listings: > > |-------------+----------+-------+-----------+--------| > | Search Term | Adelaide | Perth | Melbourne | Sydney | > |-------------+----------+-------+-----------+--------| > | Ruby | 2 | 1 | 27 | 58 | > | Perl | 4 | 19 | 157 | 312 | > | Python | 5 | 5 | 50 | 86 | > | COBOL | 5 | 4 | 22 | 42 | > | PHP | 9 | 26 | 174 | 312 | > | Javascript | 18 | 46 | 287 | 734 | > | ASP | 20 | 30 | 172 | 336 | > | VB | 29 | 23 | 100 | 332 | > | C | 33 | 107 | 234 | 525 | > | C++ | 39 | 122 | 228 | 596 | > | C# | 53 | 177 | 369 | 1189 | > | .NET | 54 | 220 | 609 | 1538 | > | Java | 62 | 125 | 631 | 1517 | > |-------------+----------+-------+-----------+--------| > > The dynamic languages don't fare well for job listings. > > Here's a stack of guesses to explore as to why this might be the case: > > - Existing programmers within organisations are so productive in moving > to dynamic languages that they haven't needed to employ extra > programmers even with growth. > > - Job satisfaction for existing programmers using dynamic languages > is higher than when using traditional languages, so there's no need > for filling replacement positions. > > - Dynamic languages aren't popular. > > - The popular dynamic languages have an interpreter implementation that > doesn't lend itself to hiding proprietary code from prying eyes. > > - It takes 10 to 20 times more people to produce software when > not using dynamic languages. - the bottom six languages are taught in Universities. - the bottom three languages are taught at TAFE - go to borders and pretty much the only books you'll find are on the bottom six languages kim -- Operating Systems, Services and Operations Information Technology Services, The University of Adelaide kim.hawtin at adelaide.edu.au From dt-sapug at handcraftedcomputers.com.au Fri Mar 7 05:13:21 2008 From: dt-sapug at handcraftedcomputers.com.au (Daryl Tester) Date: Fri, 07 Mar 2008 14:43:21 +1030 Subject: [sapug] Plethora of jobs on SEEK for Python programmers in Adelaide. In-Reply-To: References: <47CFDCE3.3090003@handcraftedcomputers.com.au> Message-ID: <47D0C0E1.5080000@handcraftedcomputers.com.au> Chris Foote wrote: >> Well, by plethora I mean 5. And 3 of them seem to be the same job. > Yep, that's a huge amount, not :-) Yeah, I posted this because it's more than normally gets posted for Adelaide (which is typically zip). > I thought it might be interesting to see the proportions for different > languages in different cities for Seek IT Job listings: Automated query, or did you just punch in these keywords and write down the results? > |-------------+----------+-------+-----------+--------| > | Search Term | Adelaide | Perth | Melbourne | Sydney | > |-------------+----------+-------+-----------+--------| > | Ruby | 2 | 1 | 27 | 58 | > | Perl | 4 | 19 | 157 | 312 | What? No Smalltalk or Lisp? (I saw a few Smalltalk ads recently interstate, but they look like they were bridges into other languages). I tried searching for Scheme recently, but far too many hits for non-related terms. :-/ > Here's a stack of guesses to explore as to why this might be the case: Where was "enlightened management"? :-) > - The popular dynamic languages have an interpreter implementation that > doesn't lend itself to hiding proprietary code from prying eyes. I have written an obfuscator/signing module import mechanism for Python, but ultimately these things are breakable (I've no delusion about how easily breakable these schemes are :-). It was more of an experiment with Python's import process than anything else. > I wonder if someone has done a real study on dynamic language > use for employment. I have read something along these lines, but I'm stuffed if I can remember who what or where the paper was (not so much employment but definitely use of higher level languages in business). -- Regards, Daryl Tester "There is no 'I' in team, but there are 6 I's in 'Dissociative Identity Disorder'" From dt-sapug at handcraftedcomputers.com.au Fri Mar 7 05:17:39 2008 From: dt-sapug at handcraftedcomputers.com.au (Daryl Tester) Date: Fri, 07 Mar 2008 14:47:39 +1030 Subject: [sapug] Plethora of jobs on SEEK for Python programmers in Adelaide. In-Reply-To: <47D0B485.4080200@adelaide.edu.au> References: <47CFDCE3.3090003@handcraftedcomputers.com.au> <47D0B485.4080200@adelaide.edu.au> Message-ID: <47D0C1E3.4010900@handcraftedcomputers.com.au> Kim Hawtin wrote: > there are regularly python jobs advertised on a number of mail lists in on, > VMWare is particularly hungry at the moment. they've advertised six jobs in > the last 9 weeks. Local or otherwise? (If they're applicable, feel free to forward 'em here). > - go to borders and pretty much the only books you'll find are on the bottom > six languages I have seen a Common LISP book in Borders, but it's been a while. . -- Regards, Daryl Tester "There is no 'I' in team, but there are 6 I's in 'Dissociative Identity Disorder'" From chris at inetd.com.au Fri Mar 7 07:05:48 2008 From: chris at inetd.com.au (Chris Foote) Date: Fri, 7 Mar 2008 16:35:48 +1030 (CST) Subject: [sapug] Plethora of jobs on SEEK for Python programmers in Adelaide. In-Reply-To: <47D0C0E1.5080000@handcraftedcomputers.com.au> References: <47CFDCE3.3090003@handcraftedcomputers.com.au> <47D0C0E1.5080000@handcraftedcomputers.com.au> Message-ID: On Fri, 7 Mar 2008, Daryl Tester wrote: > Chris Foote wrote: > >> I thought it might be interesting to see the proportions for different >> languages in different cities for Seek IT Job listings: > > Automated query, or did you just punch in these keywords and write down > the results? Manual searches. I had a spare half hour :-) >> |-------------+----------+-------+-----------+--------| >> | Search Term | Adelaide | Perth | Melbourne | Sydney | >> |-------------+----------+-------+-----------+--------| >> | Ruby | 2 | 1 | 27 | 58 | >> | Perl | 4 | 19 | 157 | 312 | > > What? No Smalltalk or Lisp? I did some searches and found zilch for languages like LISP, Lua, Fortran, Prolog, Erlang, Haskell, Smalltalk, Tcl. I forgot Ada and didn't bother with others. Perhaps in the case of non-mainstream languages, job adverts might just list development experience instead. >> Here's a stack of guesses to explore as to why this might be the case: > > Where was "enlightened management"? :-) or perhaps these: - Lack of organisational awareness of high level language benefits. - Organisational resistance to change to new development environments stemming from large amounts of legacy code. - Management's failure to embrace technologies before their use by the late majority or laggards. - Management and staff are influenced by tool vendors &/or the press. - Management's failure to listen to recommendations from their staff. >> - The popular dynamic languages have an interpreter implementation that >> doesn't lend itself to hiding proprietary code from prying eyes. > > I have written an obfuscator/signing module import mechanism for Python, > but ultimately these things are breakable (I've no delusion about how > easily breakable these schemes are :-). It was more of an experiment > with Python's import process than anything else. That's cool. I know that Obsidian (http://www.obsidian.com.au) ship .pyc files with their proprietary Jet billing software (also uses a license key), but they didn't think it was worth the effort. >> I wonder if someone has done a real study on dynamic language >> use for employment. > > I have read something along these lines, but I'm stuffed if I can > remember who what or where the paper was (not so much employment > but definitely use of higher level languages in business). Yes, I did mean to say its use. If you come across the study, send me a link ;-) Chris Foote Inetd Pty Ltd T/A HostExpress Web: http://www.hostexpress.com.au Blog: http://www.hostexpress.com.au/drupal/chris Phone: (08) 8410 4566 From chris at inetd.com.au Fri Mar 7 07:30:58 2008 From: chris at inetd.com.au (Chris Foote) Date: Fri, 7 Mar 2008 17:00:58 +1030 (CST) Subject: [sapug] Plethora of jobs on SEEK for Python programmers in Adelaide. In-Reply-To: <47D0B485.4080200@adelaide.edu.au> References: <47CFDCE3.3090003@handcraftedcomputers.com.au> <47D0B485.4080200@adelaide.edu.au> Message-ID: On Fri, 7 Mar 2008, Kim Hawtin wrote: > - the bottom six languages are taught in Universities. C & C++ much less so than in the past it would seem. (IMHO that's a good thing from an educational perspective.) > - the bottom three languages are taught at TAFE > > - go to borders and pretty much the only books you'll find are on the bottom > six languages hmm.. A couple of years ago I purchased Practical Common LISP from there. I found that Dymocks in Rundle Mall always had a good selection of Python, Perl & PHP books. The book market for Python and other dynamic languages seems to have a higher ratio to traditional lanuages than what the job market suggests. Perhaps it's because dynamic languages have higher adoption from programmers outside of their employment ? Chris Foote Inetd Pty Ltd T/A HostExpress Web: http://www.hostexpress.com.au Blog: http://www.hostexpress.com.au/drupal/chris Phone: (08) 8410 4566 From steve at adam.com.au Fri Mar 7 11:11:32 2008 From: steve at adam.com.au (stephen white) Date: Fri, 7 Mar 2008 20:41:32 +1030 Subject: [sapug] Plethora of jobs on SEEK for Python programmers in Adelaide. In-Reply-To: References: <47CFDCE3.3090003@handcraftedcomputers.com.au> Message-ID: <0C59E5D1-C4E4-41FF-854E-A32E4D9142C8@adam.com.au> On 07/03/2008, at 12:16 PM, Chris Foote wrote: > - Dynamic languages aren't popular. > > - The popular dynamic languages have an interpreter implementation > that > doesn't lend itself to hiding proprietary code from prying eyes. Or: - Dynamic languages suck for scaling up to real projects, even though they're great for small scale RAD exploring. Even I would hesitate before using Ruby or Python on a company web site, because I wouldn't have the DHH option of saying "Fuck You"... > I believe, if I could point at one thing it?s the following > statement on 2007-01-20 to me by David H. creator of Rails: > > (15:11:12) DHH: before fastthread we had _400 restarts/day > (15:11:22) DHH: now we have perhaps 10 > (15:11:29) Zed S.: oh nice > (15:11:33) Zed S.: and that's still fastcgi right? > Notice how it took me a few seconds to reply. This one single > statement basically means that we all got duped. The main Rails > application that DHH created required restarting _400 times/day. > That?s a production application that can?t stay up for more than 4 > minutes on average. > > Let me put this into perspective for you: I?ve ran servers that > needed to be restarted once in a year. They were written in PHP, > Python, Java, C, C++, you name it. Hell, I?ve got this blog on a > server I?ve restarted maybe 10-20 times the whole year. > > Now, DHH tells me that he?s got 400 restarts a mother fucking day. > That?s 1 restart about ever 4 minutes bitches. These restarts went > away after I exposed bugs in the GC and Threads which Mentalguy > fixed with fastthread (like a Ninja, Mentalguy is awesome). > > If anyone had known Rails was that unstable they would have laughed > in his face. Think about it further, this means that the creator of > Rails in his flagship products could not keep them running for > longer than 4 minutes on average. > http://www.zedshaw.com/rants/rails_is_a_ghetto.html all of it equally applicable to Python in different ways. Steve. PS. He says smugly, having moved onto something even more obscure and non-mainstream. :) -- steve at adam.com.au From twegener at fastmail.fm Fri Mar 7 11:21:47 2008 From: twegener at fastmail.fm (Tim Wegener) Date: Fri, 07 Mar 2008 20:51:47 +1030 Subject: [sapug] Plethora of jobs on SEEK for Python programmers in Adelaide. In-Reply-To: <0C59E5D1-C4E4-41FF-854E-A32E4D9142C8@adam.com.au> References: <47CFDCE3.3090003@handcraftedcomputers.com.au> <0C59E5D1-C4E4-41FF-854E-A32E4D9142C8@adam.com.au> Message-ID: <1204885307.2468.2.camel@bergamot.wegener.org.au> On Fri, 2008-03-07 at 20:41 +1030, stephen white wrote: > On 07/03/2008, at 12:16 PM, Chris Foote wrote: > > - Dynamic languages aren't popular. > > > > - The popular dynamic languages have an interpreter implementation > > that > > doesn't lend itself to hiding proprietary code from prying eyes. > > > Or: > > - Dynamic languages suck for scaling up to real projects, even though > they're great for small scale RAD exploring. Don't they use Python (Pylons and a bunch of other stuff) for reddit.com? Tim From steve at adam.com.au Fri Mar 7 11:55:58 2008 From: steve at adam.com.au (stephen white) Date: Fri, 7 Mar 2008 21:25:58 +1030 Subject: [sapug] Plethora of jobs on SEEK for Python programmers in Adelaide. In-Reply-To: <1204885307.2468.2.camel@bergamot.wegener.org.au> References: <47CFDCE3.3090003@handcraftedcomputers.com.au> <0C59E5D1-C4E4-41FF-854E-A32E4D9142C8@adam.com.au> <1204885307.2468.2.camel@bergamot.wegener.org.au> Message-ID: On 07/03/2008, at 8:51 PM, Tim Wegener wrote: > Don't they use Python (Pylons and a bunch of other stuff) for > reddit.com? Couldn't reddit almost be replaced with some text files? echo "new item" >> page echo "comment" >> item123 PHP is running some very big sites, so enough metal and processes can handle any load. I'm in the middle of going through a very different programming language, so please forgive my somewhat random pot-stirring using a specific point that would take elaborate explanations to highlight how this programming language is superior. :) (Pssssttttt... it's related to Lisp - but not the Smug Weenie kind. But Lisp... you hear that and know the battle is over. :) -- steve at adam.com.au From dt-sapug at handcraftedcomputers.com.au Fri Mar 7 13:10:57 2008 From: dt-sapug at handcraftedcomputers.com.au (Daryl Tester) Date: Fri, 07 Mar 2008 22:40:57 +1030 Subject: [sapug] Plethora of jobs on SEEK for Python programmers in Adelaide. In-Reply-To: <0C59E5D1-C4E4-41FF-854E-A32E4D9142C8@adam.com.au> References: <47CFDCE3.3090003@handcraftedcomputers.com.au> <0C59E5D1-C4E4-41FF-854E-A32E4D9142C8@adam.com.au> Message-ID: <47D130D1.3040706@handcraftedcomputers.com.au> stephen white wrote: > Or: > > - Dynamic languages suck for scaling up to real projects, even though > they're great for small scale RAD exploring. Sorry, I don't buy that. I've a Python application that's real time processing RADIUS data for ADSL sessions, and currently handles about 10 requests per second (not particularly high, but real-world). Its uptime frequently matches the box (I can reload the business logic portion without having to restart the entire process). Its peak processing rate is around 40 requests per second, but the limit is incurred by outstanding Postgres and LDAP queries, not due to the interpreter (I've got a Todo item to stub out those queries to see what could be achieved - one day). >> (15:11:12) DHH: before fastthread we had _400 restarts/day >> (15:11:22) DHH: now we have perhaps 10 I think the problem there (and this sounds more like a framework issue than interpreter) is thinking that this sort of thing was acceptable. Colleagues know how mercilessly I hunt down these sort of things in my own code. Heck, I'm peeved that I can't use Linux's getrusage() to get an app to monitor its own memory consumption correctly (something other Unices don't seem to have a problem getting to work correctly). >> Now, DHH tells me that he?s got 400 restarts a mother fucking day. >> That?s 1 restart about ever 4 minutes bitches. These restarts went >> away after I exposed bugs in the GC and Threads which Mentalguy >> fixed with fastthread (like a Ninja, Mentalguy is awesome). Although now this is starting to sound more like the interpreter. I'm confused. > http://www.zedshaw.com/rants/rails_is_a_ghetto.html I read most of this, but it just came off as juvenile ranting and character assassination. I'm not sure what his point was outside of that. -- Regards, Daryl Tester "There is no 'I' in team, but there are 6 I's in 'Dissociative Identity Disorder'" From steve at adam.com.au Fri Mar 7 15:32:49 2008 From: steve at adam.com.au (stephen white) Date: Sat, 8 Mar 2008 01:02:49 +1030 Subject: [sapug] Plethora of jobs on SEEK for Python programmers in Adelaide. In-Reply-To: <47D130D1.3040706@handcraftedcomputers.com.au> References: <47CFDCE3.3090003@handcraftedcomputers.com.au> <0C59E5D1-C4E4-41FF-854E-A32E4D9142C8@adam.com.au> <47D130D1.3040706@handcraftedcomputers.com.au> Message-ID: <6E7F49C6-9380-4FE2-BDA2-EF784954CF78@adam.com.au> On 07/03/2008, at 10:40 PM, Daryl Tester wrote: > 10 requests per second (not particularly high, but real-world). Its > uptime frequently matches the box (I can reload the business logic > portion without having to restart the entire process). Its peak Ah, you're forcing me to bring out the big guns of my chosen obscure programming language! I am comparing the single process completing request model of computation against large clusters or grid computing. Here's how it's shaping up in my chosen obscure programming language! http://blog.neontology.com/posts/2008/03/02/objective-c-actors and that's somewhat based on the ease of doing distributed objects with Smalltalk messaging conventions: http://blog.neontology.com/posts/2008/02/17/simple-distributed-objects It can't have escaped your attention that there's a certain Lisp flavour to the syntax: http://blog.neontology.com/posts/2008/01/13/y-combinator Of course you don't have to use Cocoa or GNUStep... http://blog.neontology.com/posts/2008/02/22/smallsockets But it does stay right up to date with the very latest! http://blog.neontology.com/posts/2008/03/06/nu-iphone-sdk All the meta-power of Lisp, the sanity of Smalltalk, the metal of C, and the complete absence of any bridging between those layers. AND... the best feature of all! You can indent it any way you like! Can't argue with that! ;) -- steve at adam.com.au From chris.were at gmail.com Sat Mar 8 00:32:26 2008 From: chris.were at gmail.com (Chris Were) Date: Sat, 8 Mar 2008 08:32:26 +0900 Subject: [sapug] Plethora of jobs on SEEK for Python programmers in Adelaide. In-Reply-To: <0C59E5D1-C4E4-41FF-854E-A32E4D9142C8@adam.com.au> References: <47CFDCE3.3090003@handcraftedcomputers.com.au> <0C59E5D1-C4E4-41FF-854E-A32E4D9142C8@adam.com.au> Message-ID: <35bb42690803071532k33a6aeedt63222b82f14bfd52@mail.gmail.com> > Or: > > - Dynamic languages suck for scaling up to real projects, even though > they're great for small scale RAD exploring. > > Even I would hesitate before using Ruby or Python on a company web > site, because I wouldn't have the DHH option of saying "Fuck You"... Python used heavily at Google: http://panela.blog-city.com/python_at_google_greg_stein__sdforum.htm PHP use at Yahoo: http://jeremy.zawodny.com/mysql/scaling-mysql-and-php.html From chris at inetd.com.au Sat Mar 8 01:50:14 2008 From: chris at inetd.com.au (Chris Foote) Date: Sat, 8 Mar 2008 11:20:14 +1030 (CST) Subject: [sapug] Plethora of jobs on SEEK for Python programmers in Adelaide. In-Reply-To: <0C59E5D1-C4E4-41FF-854E-A32E4D9142C8@adam.com.au> References: <47CFDCE3.3090003@handcraftedcomputers.com.au> <0C59E5D1-C4E4-41FF-854E-A32E4D9142C8@adam.com.au> Message-ID: On Fri, 7 Mar 2008, stephen white wrote: > On 07/03/2008, at 12:16 PM, Chris Foote wrote: >> - Dynamic languages aren't popular. >> >> - The popular dynamic languages have an interpreter implementation >> that >> doesn't lend itself to hiding proprietary code from prying eyes. > > > Or: > > - Dynamic languages suck for scaling up to real projects, even though > they're great for small scale RAD exploring. It depends what you mean by scaling. If it's a software system designed to have fault redundance and high performance across a cluster of machines, then it easily accomplishes those things (I completed a VoIP SIP/H323 voice peering project last year which uses Psycho, Pyro, PyJudy for Python, and integrates with PowerDNS, MySQL, Quagga, FreeRadius & the proprietary Mera Systems MVTS soft switch across a cluster beginning starting out with 6 servers. It's primary function is to provide ENUM DNS lookups and route calls between providers, but the project had performance, scalability and lookup database update constraints - 10M number ranges, < 0.2s response time to DNS queries regardless of load, and needed to withstand DOS attacks (two boxes handle >20Mb/s of DNS traffic). In addition to this, database updates needed to occur with less than <1 second of outage across all systems with guaranteed consistency). On the other hand, if what you mean by scalability is that a language provides a good environment for >1M lines of code across >50 developers, then Python does not provide such things as true data hiding (i.e. no private/protected data & methods), which might be an issue. Static typing might have larger benefits in such cases too. Python 3000 has some new features that help with that (e.g. typing hints for documentation and tools). > Even I would hesitate before using Ruby or Python on a company web > site, because I wouldn't have the DHH option of saying "Fuck You"... There are some good horizontal-scaling web systems written in Python. They easily scale for an ordinary "company web site". Even a large framework and CMS system like Plone (bloatware in comparison to most web frameworks in Pyton) will scale well horizontally - see: http://plone.org/documentation/tutorial/optimizing-plone http://plone.org/documentation/how-to/ha-load-balanced-cluster-for-zope-and-plone It's certainly good enough to use for a huge number of high-profile organisations: http://plone.net/sites (list includes Akamai, Novell, Oxfam and many others for their primary web sites). Other popular frameworks are Django and Turbogears, both of which scale very well, but are somewhat younger. If raw performance stats have any meaning to you, then this article compares 6 different frameworks: http://www.alrond.com/en/2007/jan/25/performance-test-of-6-leading-frameworks/ Chris Foote Inetd Pty Ltd T/A HostExpress Web: http://www.hostexpress.com.au Blog: http://www.hostexpress.com.au/drupal/chris Phone: (08) 8410 4566 From steve at adam.com.au Sat Mar 8 07:38:48 2008 From: steve at adam.com.au (stephen white) Date: Sat, 8 Mar 2008 17:08:48 +1030 Subject: [sapug] Plethora of jobs on SEEK for Python programmers in Adelaide. In-Reply-To: References: <47CFDCE3.3090003@handcraftedcomputers.com.au> <0C59E5D1-C4E4-41FF-854E-A32E4D9142C8@adam.com.au> Message-ID: <72DFB769-C2F5-405F-8D52-F775C3354740@adam.com.au> On 08/03/2008, at 11:20 AM, Chris Foote wrote: >> - Dynamic languages suck for scaling up to real projects, even though >> they're great for small scale RAD exploring. > > It depends what you mean by scaling. I have to apologise for taking too much of your time with a small pot- stir aimed at maintaining my "demon spawn" reputation with Daryl. > database update constraints - 10M number ranges, < 0.2s response > time to > DNS queries regardless of load, and needed to withstand DOS attacks > (two > On the other hand, if what you mean by scalability is that a language > provides a good environment for >1M lines of code across >50 > developers, There is a third type of scaling, which is having one program running on multiple CPUs and across clusters of machines. Google's "map- reduce" is a one off "request-response" implementation of this, but it is possible to scale up from this to more general programming. For example, Erlang is nearly parallelisable by default, and functional programming languages are automatically parallelisable except in the case where they have unclean side-effects. Consider this sample: http://programming.nu/benwanu The same technique can be used in Ruby and Python and Perl, but they would need bridges to the C code that performs the speed-critical section of Mandelbrot calculations. Because Nu is directly built on the underlying framework rather than bridging across, this is the actual code: http://code.neontology.com/gitweb.cgi?p=Nu.git;a=blob;f=examples/ Benwanu/objc/ Benwanu.m;h=fdd0ebf5c6b9a224b5324c161b58bc7bbd21802b;hb=HEAD Not one bit of bridging to be seen. Nu calls the function directly, via Objective C's runtime. Any time any bit of Nu code is a bit too slow or needs something at a lower level, it can be directly dropped down a level without changing anything else. This is in contrast to Ruby's C bridge, which effectively ruled out that option for me. http://www.onlamp.com/pub/a/onlamp/2004/11/18/extending_ruby.html No thanks, that's just ridiculous. > There are some good horizontal-scaling web systems written in Python. > They easily scale for an ordinary "company web site". Even a large I agree with what you are saying for these systems, but these are web type workloads... a request comes in, the result is computed, and sent back. It's all "wham bam, thank you ma'am". I want to do computer vision algorithms, simulated annealing and run lenses distortion calculations over 100MB image files. While C is fast enough, and Objective C is simple enough, I'm still lurking around dynamic languages because I want to type something and have a response (I'm the wham-bam!), without that thinking destroyer, the concentration disrupter, that awful edit-compile-run cycle. > (list includes Akamai, Novell, Oxfam and many others for their primary > web sites). They are all web sites. They don't run large compute jobs on massive amounts of data using grids and clusters of machines. Steve. -- steve at adam.com.au From chris at inetd.com.au Wed Mar 19 08:07:22 2008 From: chris at inetd.com.au (Chris Foote) Date: Wed, 19 Mar 2008 17:37:22 +1030 (CST) Subject: [sapug] Excellent presentation on generators Message-ID: I've never really thought of a use for generators, but this presentation at PyCon 2008 certainly changes my mind: http://www.dabeaz.com/generators/ Chris Foote Inetd Pty Ltd T/A HostExpress Web: http://www.hostexpress.com.au Blog: http://www.hostexpress.com.au/drupal/chris Phone: (08) 8410 4566 From dt-sapug at handcraftedcomputers.com.au Thu Mar 20 05:16:35 2008 From: dt-sapug at handcraftedcomputers.com.au (Daryl Tester) Date: Thu, 20 Mar 2008 14:46:35 +1030 Subject: [sapug] Excellent presentation on generators In-Reply-To: References: Message-ID: <47E1E523.50401@handcraftedcomputers.com.au> Chris Foote wrote: > I've never really thought of a use for generators, but this presentation > at PyCon 2008 certainly changes my mind: It certainly explains them a little more clearly (maybe it's the "sysadmin" focus of the examples). I got to some point during the "pipelines" potion and thought "Ooo - lisp streams". Still working my way through the examples, but thanks for that link. Decorators still don't come naturally to me - have to stare at them for a while before the light clicks (instead of just going 'Aha!' and moving on). -- Regards, Daryl Tester "We are sexy, sexy Von Neumann machines." -- http://www.xkcd.org/387/ From chris at inetd.com.au Thu Mar 20 05:32:44 2008 From: chris at inetd.com.au (Chris Foote) Date: Thu, 20 Mar 2008 15:02:44 +1030 (CST) Subject: [sapug] Excellent presentation on generators In-Reply-To: <47E1E523.50401@handcraftedcomputers.com.au> References: <47E1E523.50401@handcraftedcomputers.com.au> Message-ID: On Thu, 20 Mar 2008, Daryl Tester wrote: > Chris Foote wrote: > >> I've never really thought of a use for generators, but this presentation >> at PyCon 2008 certainly changes my mind: > > It certainly explains them a little more clearly (maybe it's the > "sysadmin" focus of the examples). I got to some point during > the "pipelines" potion and thought "Ooo - lisp streams". The generator expressions are amazingly powerful for the idea of making producers and filters to be consumed. I love the guy's example of log processing from multiple sources and custom queries using filters. I haven't looked at Common LISP streams yet... The language is so big that you can study it for ages and not scratch the surface :-) > Still > working my way through the examples, but thanks for that link. I've been playing with Lua lately, and its co-routines make my brain hurt :-) The end of the PyCon presentation gets into co-routines, which I think might be in Python 3000. I haven't made up my mind whether they're good or not. > Decorators still don't come naturally to me - have to stare at them > for a while before the light clicks (instead of just going 'Aha!' > and moving on). I've only used them for @staticmethod in the past. I need to find some good examples of what you can do with them before I know how they're really useful. Chris Foote Inetd Pty Ltd T/A HostExpress Web: http://www.hostexpress.com.au Blog: http://www.hostexpress.com.au/drupal/chris Phone: (08) 8410 4566 From dt-sapug at handcraftedcomputers.com.au Mon Mar 24 21:50:34 2008 From: dt-sapug at handcraftedcomputers.com.au (Daryl Tester) Date: Tue, 25 Mar 2008 07:20:34 +1030 Subject: [sapug] Excellent presentation on generators In-Reply-To: References: <47E1E523.50401@handcraftedcomputers.com.au> Message-ID: <47E8141A.9040309@handcraftedcomputers.com.au> Chris Foote wrote: > I haven't looked at Common LISP streams yet... The language is so big > that you can study it for ages and not scratch the surface :-) Luckily, they crop up in Scheme, so it doesn't take as long to reach 'em. :-) > I've been playing with Lua lately, and its co-routines make my brain > hurt :-) The end of the PyCon presentation gets into co-routines, > which I think might be in Python 3000. I haven't made up my mind > whether they're good or not. Ah, well that will dredge up some submerged memories for me - the last time I played seriously with co-routines was when I implemented them. Under CP/M. (which might date when that happened somewhat :-) >> Decorators still don't come naturally to me - have to stare at them >> for a while before the light clicks (instead of just going 'Aha!' >> and moving on). > I've only used them for @staticmethod in the past. I need to find some > good examples of what you can do with them before I know how they're > really useful. Likewise with staticmethod (and because of that that's the first thing that leaps to mind when I see an @ in Python ...). I saw some examples the other month for unit testing, where they were used for patching the module under test for mocking purposes (i.e. stubbing out database lookups, etc.) in a pre/post manner. Again it didn't look intuitively obvious to me. :-/ I guess my brain is less rubbery than it used to be. -- Regards, Daryl Tester "We are sexy, sexy Von Neumann machines." -- http://www.xkcd.org/387/