November 2007 Archives

chromatic

AddThis Social Bookmark Button

Thomas Klausner, the head of the Vienna Perl Mongers group, has just announced the Winter of Code. YAPC::Europe 2007 made a tidy profit. Vienna.pm decided to sponsor several small Perl projects with the money, in hopes of encouraging further development.

My favorite item on the list is restarting the Perl 5 summaries. I’m jealous of projects such as Planet GNOME and Planet KDE which have daily flows of useful technical information. Though Planet Parrot and Planet Perl Six exist, and Perlbuzz takes up a lot of slack, there’s no substitute for someone with dedication to pick out the most important developments in a week or fortnight and publish them for the world to see.

If you can devote a couple of hours to this project, please let Vienna.pm know!

Jonathan Wellons

2008 Election Correctly Predicted

AddThis Social Bookmark Button

Three European scientists have produced a document which correctly states who will win the 2008 US presidential election.

They don’t need to give you the document (although they do) because they can give you the MD5 checksum. A checksum, which is a kind of fingerprint for the document, accordingly to the conventional wisdom can only come from that one document. In principle, other documents may exist with the same fingerprint, but are technically infeasible to find. Then, after the election is over, they will make the PDF available and invite you to measure its MD5. If it matches, that proves it has to have been the same one they fingerprinted back in Nov 30, 2007.

chromatic

AddThis Social Bookmark Button

My colleague Jim Shore has just released a transcript of a short talk he gave called Does It Work? Are We Done? Is It Right? (Keep It Light!). I share Jim’s thesis that there are three questions we need to answer in software development if we want to achieve any sort of success. In Jim’s words:

So I want to answer these quality questions, “does it work, are we done, is it right,” without incurring waste… and ideally, I’d like to do it in a way that makes me faster, not slower.

His talk specifically addressed testing, especially functional testing, but in working with him I’ve found that asking those questions of any part of a software development process is incredibly valuable.

Doug Hellmann

AddThis Social Bookmark Button

Due to overwhelming response, and the fact that we underestimated the skill-level of the contestants, the list of tasks assembled by the PSF for the Google Highly Open Participation contest is running out rapidly. The contestants are completing tasks faster than the existing mentors can think of new ones. We need your help to come up with more ideas for the contest, and soon!

Doug Hellmann

AddThis Social Bookmark Button

For the past few days I’ve been one of several people helping Titus Brown set up the Python Software Foundation’s portion of the Google Highly Open Participation(TM) contest. GHOP is an extension of Google’s Summer of Code project, for students not yet in college. The goal of the contest is to attract young people to open source, and teach them how to participate. Check out the FAQ for more details.

AddThis Social Bookmark Button

Verizon announced today that it plans to open its network to third party mobile devices.

At Verizon’s investor relations press conference: “Lowell McAdam, president and chief executive officer of Verizon Wireless … [discussed] the company’s announcement today to provide customers the option to use, on its nationwide wireless network, wireless devices, software and applications not offered by Verizon Wireless.”

McAdam was quoted as saying “This is a transformation point in the 20-year history of mass market wireless devices — one which we believe will set the table for the next level of innovation and growth.”

Could it be even bigger, dating back 40 years to 1968 when the Supreme Court ruled on the Carter Telephone Decision, allowing indpendent companies to connect over long distance lines?

Will this make a difference in the applications you develop or use? Will it make a difference in choosing a mobile carrier to go with your next cell phone plan? Has the November 5th introduction of Google’s Android Platform and the Open Handset Alliance helped to create a more open environment for wireless communications in the future?

brian d foy

AddThis Social Bookmark Button

The Chicago Perl Hackathon is Friday, Dec 14 to Sunday, Dec 16 at Hosteling International, 24 E. Congress Parkway in downtown Chicago (which is also in walking distance of most of the populoar tourist stuff). Meet other Perl people, work on other people’s projects, get other people to work on yours, or just hang out with other Perl people.

The week before the hackathon (Dec 10-14), Stonehenge is offering open-enrollment courses its Learning Perl and Intermediate Perl courses to the public, as well as two new courses, “Beginning Catalyst” and “Test Driven Development”. Take a course, then stick around for the hackathon to meet some Perl people. :)

chromatic

AddThis Social Bookmark Button

I announced last week the release of Parrot 0.5.0, a major milestone in the development of the Parrot virtual machine. The largest accomplishment in this release is the development of a powerful new object system which we believe is capable of serving as the foundation for several modern languages running atop Parrot, including Ruby and Perl 6.

This new object system — known in Parrot circles as PDD 15 — was a dependency for Parrot’s compiler tools, specifically Parrot’s AST.

With PDD 15 in place, well-tested, and stable, Patrick Michaud has in the past week made tremendous progress on Parrot’s compiler tools. He’s written a Perl 6 on Parrot ROADMAP.

An early milestone there is the completion of a language called NQP, which is a simplified version of Perl 6 built on Parrot which is powerful enough to use to build other compilers. Previously, the canonical way of writing a compiler for Parrot was to use PIR, Parrot’s native high-level language. That worked, but PIR is a line-oriented assembly language despite some syntactic sugar, so it can occasionally lead to verbose code. You might remember that a few months ago, we made tremendous progress to make the Perl 6 implementation pass the Perl 6 sanity tests (see Adding a Feature to Perl 6 on Parrot); progress slowed when it was clear that NQP would improve our work tremendously.

As of yesterday, NQP is powerful enough to write real compilers. Within the Parrot source tree, languages/abc is an implementation of the Unix bc command written entirely with the Parrot compiler tools using NQP. Perl 6 is a more complex language, but abc uses enough features of NQP and the compiler tools to demonstrate that they are complete enough to use to write Perl 6.

What’s next? Migrating the existing Perl 6 implementation from PIR to NQP. Then the fun begins.

Doug Hellmann

AddThis Social Bookmark Button

The inspect module provides a variety of functions for introspecting on live objects and their source code.

Noah Gift

AddThis Social Bookmark Button

For the privilege of watching a Red Band Trailer, of nocountryforoldmen, all you need to do is give the MPAA and some third party site, your home IP address, Driver’s License Information, and zip code. What a deal! I am sure this information will be very safe, and it would never be used to track me, if I chose to use a P2P site.

Thanks MPAA for making my world safe! Is that SDK available to everyone? I could build one heck of Social Networking site. You just browse to the site, the webabb detects your IP address, and automatically builds a profile based on your driver’s license records.


Digg!

Andy Lester

AddThis Social Bookmark Button

Here in the US, it’s Thanksgiving, a day of eating lots of food, watching football, and sometimes, just sometimes, expressing gratitude and giving thanks for those things that make life wonderful.

Here are the things I’m grateful for in late 2007, in no particular order after the first.

Google Code

Google’s project hosting service has been a godsend. It’s changed the way I do open source projects. It has leapfrogged SourceForge for ease of maintenance, and the bug tracker trumps RT for CPAN that we’ve been using for so long. Add that to the integration with Google Groups which makes it trivial to create mailing lists, and it’s at the tops of my list for 2007. I can’t say enough good about it.

The readers of Perlbuzz

Eleven weeks ago, Skud and I started this little website called Perlbuzz as an alternative to the “more traditional outlets” for news in the Perl world. The response has been tremendous. We get 600 RSS readers every day, and have had over 10,000 unique visitors in that time. It makes me happy that our little venture is used and appreciated by the community.

Test::Harness 3.0

It’s been over a year in the making, but the new version of the crucial Test::Harness 3.0 means more flexibility for module authors, and lots of UI improvements for people who just want to run prove and make test.

Mark Dominus

MJD is so much a fixture in Perl it’s easy to forget that he’s there. For 2007, though, never mind all the things he’s done for Perl in the past, or the hours I’ve spent being enthralled in talks of his. His Universe Of Discourse blog is the single most intelligent blog out there, and sometimes it just happens to be about Perl.

Andy Armstrong

Was Andy Armstrong always around, or did I just not notice? His time and dedication spent on climbing on board with Ovid and Schwern and the rest of the Test::Harness 3.0 crew has been invaluable in getting it out. Plus, he’s a really swell guy anyway.

Dave Hoover

When I finally despaired of the amount of time and frustration it took to organize content for Chicago.pm’s Wheaton meetings, Dave Hoover stepped up and volunteered to take it over. I’m thankful, but not as much as I hope the other Chicago.pm folks are.

Perl::Critic

I’m all about having the machine keep an eye out for the stupid things we do, and the goodness of Perl::Critic is always impressive. You won’t like everything Perl::Critic says about your code, but that’s OK. It’s an entire framework for enforcing good Perl coding practices.

The Perl Community in general

The Perl community is populated by some tremendous folks. Some names are more known than others, but these people help make daily Perl life better for me. In no particular order, I want to single out Pete Krawczyk, Kent Cowgill, Elliot Shank, Liz Cortell, Jason Crome, Yaakov Sloman, Michael Schwern, Andy Armstrong, Ricardo Signes, Julian Cash, Jim Thomason, chromatic, Chris Dolan, Adam Kennedy, Josh McAdams and of course Kirrily Robert. If you think you should be on this list, you’re probably right, and I just forgot.

My wife, Amy Lester

Because even if she doesn’t understand this part of my life, she at least understands its importance to me.


I’d love to hear back from any readers about what they’re thankful for. I’m thinking about having a regular “Love Letters to Perl” column on Perlbuzz where people write about what they love in Perl.

Noah Gift

AddThis Social Bookmark Button

Are you an IPython nut too? Here is your chance to help out testing this Thanksgiving weekend. In between bites of Turkey, and pecan pie, download the latest 0.8.2 version, dev egg here, and report any bugs to Trac

Noah Gift

AddThis Social Bookmark Button

I finally found a copy of GVIM that works for Leopard. Download it here

chromatic

AddThis Social Bookmark Button

Jack had avoided looking into his sons’ faces during this Oration, because he reckoned they’d not wish to be seen with tears streaming down their faces. But looking up at Jimmy now he saw dry eyes and a quizzical if impatient phizz. Turning the other way, he saw Danny gazing distractedly at the White Tower.

“Before you embark on a new life overseas, assuming that is your fate,” Jack said, “find Eliza and tell her she is my true love.” And then he jerked the chains loose from the restraining grip of first Jimmy, then Danny. He leaned forward, pushed off against the rail with both feet, and launched himself into space above London. His cloak spread in the wind of his flight like the wings of an eagle, revealing, to anyone who might be gazing up into the sky, a lining made from cloth-of-gold that glistered in the rays of the setting sun like the chariot of Apollo. He was on his way down.

— Neal Stephenson, The System of the World

On behalf of the Parrot team, I’m proud to announce Parrot 0.5.0 "Caulked Snack." Parrot is a virtual machine aimed at running all dynamic languages.

Parrot 0.5.0 is available from the CPAN (soon), or follow the download instructions. For those who would like to develop on Parrot, or help develop Parrot itself, we recommend using Subversion or SVK on our source code repository to get the latest and best Parrot code.

Parrot 0.5.0 News:

- Implementation
  + PDD15 (OO) branch merged with trunk; this release contains a working,
    tested implementation of the latest OO model
  + Added pop_eh/push_eh_p/count_eh opcodes
  + Add --runcore command line option
  + Add gcdebug runcore to help track down GC bugs
  + minor improvements to IA-32 JIT
- Documentation
  + PDD19 (PIR): updates to macros, .pcc* directives
  + PDD25 (Concurrency): updated
  + PDD26 (AST):  draft approved
  + PDD23 (Exceptions): draft approved
  + Copyright cleanups
- Languages/Compilers
  + languages/APL: minor updates, PDD15 conformance
  + languages/dotnet: minor updates
  + languages/lua: minor updates, PDD15 conformance
  + languages/lisp: minor updates
  + languages/perl6: minor updates, PDD15 conformance
  + languages/plumhead: minor updates
  + languages/punie: minor updates, PDD15 conformance
  + languages/nqp: minor updates
  + languages/scheme: many updates, PDD15 conformance, improved tests, use
    PMCs instead of primitive registers to represent values
  + languages/tcl: bugfixes, PDD15 conformance
  + languages/WMLScript: minor updates
  + compilers/pirc: updates from PDD19, PDD06
  + compilers/pct: minor updates, PDD15 conformance
  + compilers/pge: PDD15 conformance
  + compilers/tge: PDD15 conformance
- Configuration
  + Improve test coverage
  + Improve reporting when a step fails; allow abort on failure
- Miscellaneous
  + More coding standard conformance, tests, cleanup, speedups,
    warnings cleanup
  + Bug cleanup, esp. GC bugs
  + Eliminate .imc extension (use .pir)
  + Simplify some core config steps to not allow interactive prompting
- Removed
  + clear_eh opcode

Thanks to all our contributors for making this possible, and our sponsors for supporting this project.

Enjoy!

Noah Gift

AddThis Social Bookmark Button

I am pleased to announce we have a special PyAtl meeting this December 13th, in Atlanta, GA! Some consider WSGI to be the future of Python web development, and Derek Richardson, Brandon Rhodes and the Atlanta-Plone User Group, have arranged to bring the authors of Repoze, Chris McDonough and Tres Seaver, to our local PyAtl meeting. With Repoze, it allows Zope/Zope Components, and standard web application frameworks to work together under a unified WSGI stack.

“If you haven’t been paying attention, pay attention to Repoze. I’m pretty sure this is the future. Repoze lets us set up Zope so that it runs directly in Apache (using mod_wsgi), no separate process to manage. It lets us create pipelines with things like Deliverance in them. Virtual hosting, retry (on ConflictError) and transaction management is all middleware, enabled or disabled as desired with a dead-simple configuration file and re-usable in other contexts. The Repoze website runs four or five different pieces of software, all themed up using the same Deliverance theme. Issue tracking with roundup, blogging with pyxblossom. This is cool stuff. :-)”
-Martin Aspelli

If you would like to attend, I would highly recommend doing a RSVP ASAP, as it appears we are going to have a full house. If you want to see the future come to the next PyAtl meeting, details below. There will also be a sprint that Friday following the meeting, for those lucky enough to be able to skip work.

Please go to our meetup site for more information:

Repoze Event RSVP PyAtl

(We will also be talking about our Python Web Development Related Conference planned for this summer! Stay tuned for more information.)

Doug Hellmann

AddThis Social Bookmark Button

Titus Brown is looking for small projects suitable for new developer to work on.

chromatic

AddThis Social Bookmark Button

Michael Schwern, Perl clown and maintainer of ExtUtils::MakeMaker and Test::Simple has announced that MakeMaker and Test::Simple will no longer support Perl 5.005. This is extremely significant because those two distributions are important pieces of Perl’s upgrade infrastructure.

Perl 5.005 is nine years old, and its stable successor Perl 5.6 is seven and a half years old. From Schwern’s message:

Finally, I’m coming around to chromatic’s philosophy: why are we [worrying] about the effect of upgrades on users who don’t upgrade? Alan Burlson’s comments about Solaris vs Linux are telling: if you’re worried more about supporting your existing users then finding new ones, you’re dead.

My argument has always been very simple. There have been nearly a dozen stable releases of Perl since the release of Perl 5.005 in 1998. Anyone still running code that old obviously is not interested in upgrading to modern, supported versions of Perl. That’s the one conclusion you can draw about them. Thus, it doesn’t make sense to write new versions of Perl libraries and applications for them because they don’t upgrade their software.

My personal oldest supported version is Perl 5.6.2, released just over four years ago, but with Perl 5.10 coming in the next month or so, I might drop official support for anything older than Perl 5.8.1 (which, amusingly enough, is a couple of months older than Perl 5.6.2).

I’m all for software stability, and I’m glad that Perl 5.005 is a high-quality product that’s still viable almost a decade after its release, but we have fixed a few bugs and added a few nice features in the intervening years. I’d like to take advantage of some of that new code sometime. Kudos to Schwern for seeing the light.

Doug Hellmann

AddThis Social Bookmark Button

The urlparse module provides an interface for splitting up Uniform Resource Locator strings into their parts.

AddThis Social Bookmark Button

Mobile Internet World took place in Boston this week. Here are some highlights.

The presentations and audience represented all the activities from around the mobile ecosystem.The three-day event brought together the industry’s leading thinkers on the convergence of the internet with highly mobile devices. Tim Berners-Lee hit the stage along with senior executives from companies like Nokia, Sprint, Google, Qualcomm, Texas Instruments, Motorola and Ericsson. (The constellation of presenters was similar to the composition of the recently announced Open Handset Alliance.)

On the exhibitor floor, Access (one of the event’s sponsors), demonstrated their NetFront browser running in phones, MID computers, and gaming systems. Opera also was there (its browser runs on 52 new phones and millions of desktop computers.) The W3C Mobile Initiative held a Developer’s Summit as part of the pre-conference program.

MobileInternetWorld_3090_one_quarter.jpg

chromatic

AddThis Social Bookmark Button

Here’s a provocative thought from Mark-Jason Dominus on a rainy Friday afternoon:

Programming cannot be run on the convoy system, with the program code written to address the most ignorant, uneducated programmer. I think you have to assume that the next maintenance programmer will be competent…. If an incompetent programmer has trouble understanding your code, that is not your fault; it is their fault for being incompetent. You do not have to take special steps to make your code understandable even by incompetents, and you certainly should not do so at the expense of making it harder for competent programmers to read and understand, no, not to the tiniest degree.

— Mark-Jason Dominus, Creeping featurism and the ratchet effect

Please note that I don’t believe that any one particular programming language can solve this problem; see Does Your Programming Language Have Magic Powers? This is a people problem.

Brent Gorda

AddThis Social Bookmark Button

done.jpg

A day late, but the team from Canada under the supervision of Dr. Paul Lu has won the SC07 Cluster Challenge. Teams were scored on a combination of HPC Challenge benchmark results, application data set completions and an interview with the judges.

For a first run of this event, the results are exceptional. Every team strongly over-achieved and the level of professionalism and camaraderie was exemplary. The teams are all to be congratulated for their achievements and the committee wishes them safe travels back home.

There have been numerous positive outcomes from the event. The educational aspect alone makes the project worth while. But the real value of the live activity is the ability to make contacts. Teams went away with numerous new friends in the other teams and lots of professional contacts to help them in their search for summer or permanent employment.

Everyone is off for a well-deserved break, but soon we will be back looking at the event for SC08 in Austin November 15-21, 2008.

AddThis Social Bookmark Button

PCW has a story about IBM’s initiative to create virtual computing clouds using Xen and PowerVM in an effort called Blue Cloud. IBM hopes that this push will be it’s latest world changing decision and compares it to their decision to support Linux. Of course, IBM wasn’t being totally altruistic when they started backing Linux, and they’re not now either.

It made market sense for IBM to push Linux to keep them from getting into another OS/2 crushing fist fight with Microsoft. And now it makes sense for IBM to push Xen and PowerVM from an open source perspective, especially given XenSource’s “off the table” status. This is survival tactics from the company that knows it best.

On the other hand, this gives IBM the space to define a great deal of the coming cloud computing boom, where physical machines become incidental cogs in a greater processing mechanism…an uber CPU comprised of small pieces loosely joined. Last month, IBM and Google announced the creation of joint academic cluster computing initiative to provide datacenters for remote computer programming to students at several U.S. universities. This will be IBM’s fertile land for the rearing of another generation of technology workers steeped in virtualization.

chromatic

AddThis Social Bookmark Button

Last week, the Perl Foundation announced that the Mozilla Foundation has awarded a development grant to Patrick Michaud to work on the Perl 6 on Parrot compiler. Thank you, Mozilla Foundation (especially Zak Greant and Frank Hecker.)

This grant is particularly important because it’s the largest grant of money to any Perl 6 hacker in several years. There have been a couple of other grants; the NLNet foundation made a very generous grant to Parrot a couple of years ago, which the Perl Foundation is doling out as Parrot hackers reach specific milestones. A well-known Perl-friendly development and consulting company also sponsored several microgrants for Perl 6, Pugs, and Parrot.

If you’ve read between the lines of several of my recent postings related to development, motivation, sponsorship, and scheduling (for example, Squeezing One Year of Work into Eight) you’ve probably recognized that I believe strongly that external resource constraints have slowed Perl 6 development dramatically. (Alternate phrasing: the progress of various Perl 6-related development efforts is impressive considering how few resources any of the projects actually have.)

I have confidence in the work of Patrick and a strong belief that the Mozilla Foundation’s generous grant will enable him to devote more attention to the Parrot compiler tools and Perl 6 on Parrot — and even more important, to recruit and encourage more developers, testers, documenters, and participants to participate. I do believe that we can develop and are developing high-quality, useful, inventive software for comparatively few resources, and I’m proud of what we’ve all accomplished.

Still, as Allison Randal’s Impact of Parrot Grant report to NLNet illustrates, even modest sponsorship can help us work even more effectively.

Think of the community-driven software projects you rely on and please consider how individual and company sponsorships may help us build and maintain a powerful, useful, and above all free ecosystem of high quality software.

Jeremy Jones

AddThis Social Bookmark Button

I’ve been digging into setuptools and easy_install lately, so you can expect to see more of these tips in the coming weeks.

One of the really cool features of easy_install is that you can install packages from the Python Cheese Shop, which is a web-based repository of Python packages. For example, in order to install IPython using easy_install and the Cheese Shop, you would simply type `easy_install ipython`. It’s all fine and dandy for open source projects to put their source code out there for the world to look at, but what if you work on (gasp) closed source code? Do you have to miss out on all this easy_install remote repository goodness? Not at all.

First, you have to setup a web server that will serve up your packages. I am using lighttpd on my laptop, which misses the point in practice since i could just as easily install the eggs locally rather than by pointing at http://localhost, but it works for example purposes. I have lighttp serving up a directory that contains a repository directory called “repo”. So, http://localhost/repo will give a directory listing of all the packages I can serve up.

Second, you need to build your packages and put them in a directory that your webserver can serve up, the “repo” directory in my case. I have 2 packages, foo v0.1 and bar v0.1, that I made into eggs. The filenames are bar-0.1-py2.5.egg and foo-0.1-py2.5.egg. In this example, foo has a dependency on bar. Since easy_install handles dependencies so well, I would expect an easy_install of foo to resolve the bar dependency and install them both. Step three will prove this assumption either correct or incorrect.

Third, and finally, you simply tell easy_install to look at your local repository for packages. Here is the command and output from installing from my local repository:

root@lanik:/usr/lib/python2.5/site-packages# easy_install -f http://localhost/repo foo
Searching for foo
Reading http://localhost/repo
Best match: foo 0.1
Downloading http://localhost/repo/foo-0.1-py2.5.egg
Processing foo-0.1-py2.5.egg
Moving foo-0.1-py2.5.egg to /usr/lib/python2.5/site-packages
Adding foo 0.1 to easy-install.pth file

Installed /usr/lib/python2.5/site-packages/foo-0.1-py2.5.egg
Processing dependencies for foo
Searching for bar==0.1
Best match: bar 0.1
Downloading http://localhost/repo/bar-0.1-py2.5.egg
Processing bar-0.1-py2.5.egg
Moving bar-0.1-py2.5.egg to /usr/lib/python2.5/site-packages
Adding bar 0.1 to easy-install.pth file

Installed /usr/lib/python2.5/site-packages/bar-0.1-py2.5.egg
Finished processing dependencies for foo

The “-f” flag tells easy_install where else it can look for packages. That’s it!

Todd Ogasawara

AddThis Social Bookmark Button

The OLPC Give One Get One program lets you buy one OLPC that will be donated to a child somewhere in the world and get one for yourself for US$399 (plus shipping). $200 of that amount is tax deductible for US federal taxes. This offer is only available for those in the US and Canada. The G1G1 program ends on November 26, 2007. After mulling it over for a good chunk of the day, I made the order this evening and hope whoever gets the donated OLPC is able to make good use of it. My daughter gets to play with the one shipping to me.

I downloaded the OLPC LiveCD ISO file and tried it on a PC before actually making the order/donation. I was quite impressed by what I saw. The LiveCD was even able to detect the PC’s network card and let me browse the web. One thing that didn’t work 100% was Google Docs. I was able to login and open a document. However, attempts to save and close the document resulted in what first looked like nothing happening (the document remained open). It turns out that the document changes were actually saved. However, I could not close the window and return to the Google Docs list. I suspect it is because Google Docs opens a second window (or tab) on most browsers and then closes that window or tab. On the other hand, the ISO is dated April 7, 2007. So, the shipping version may be different.

Various reviews of the OLPC indicates that the keyboard may be too small for many adults to type on comfortably. I’ll give it a try when it comes to get a feel for it. Then, I’ll ask my daughter to take it for a spin and let me know what she thinks (maybe I should ask her to write a short review :-).

Here’s an overview of the Red Hat Sugar OS inside the OLPC:
Building the XO: Introducing Sugar

Here’s a link to the Sugar OLPCWiki.

Brent Gorda

AddThis Social Bookmark Button

TheTeams2.jpg

Last night teams were given a green flag and set off on the 44 hour race. All teams completed the HPCC benchmarks by 1:00am and results were handed in to the judges. Teams were then given data sets for GAMESS, POP, and POVRay, and will spend the rest of the available time working through them.

Arriving back about 6am, we found a few team members in the ‘understudy’ position (crashed out on the floor, sofa or under the tables). About half were in the midst of a team change, so there were a few bright eyes available. One team was reported to have to pull a team members fingers off the keyboard and send them back to the hotel for some sleep (and to stay within the rules).

About 12:20 the convention center experienced loss of power, and the Cluster Challenge teams’ equipment all suffered a hard crash. Not all came back fully, and the teams are working on it. Some times real world things happen and we learn from it: at least one team is now using checkpoint features in some of the applications so they don’t lose much runtime should they have this issue again.

Visitors to the event are enthusiastic, and are having excellent interaction with the teams. Kudos to the teams for taking the time to answer visitor questions while they are in the middle of this race.

Brent

Nitesh Dhanjani

AddThis Social Bookmark Button

The Halting Problem described by Alan Turing in 1936 states that is impossible to come up with a general algorithm that can compute if a given algorithm will terminate (for all possible input pairs). In other words, the only way to generally determine how a program will behave is to execute it, and this may not give you a definite decision either (just because an algorithm seems to be in a loop for example, doesn’t automatically imply that it will never terminate at a later stage). The keyword here is general (it may be possible to tell if a particular instance of an algorithm will terminate).

Andy Oram

AddThis Social Bookmark Button

I went down to the Cambridge, Massachusetts lab of One Laptop Per Child today to find out what they’re doing with mesh networks. This was a particularly appropriate day for a blog on OLPC, because today they’re launching a fifteen-day-long purchasing opportunity called Give One Get One. You pay them for two of their brightly colored, impressively lightweight computers, and one goes to a child in a developing nation, while the other goes to you.

But the whole point of this blog is that a One Laptop Per Child system has limited value on its own. Its most innovative and powerful features lie in its participation in a mesh network with other laptops. So get your neighbors and workmates to buy them too!

Brent Gorda

AddThis Social Bookmark Button

SC07-CC-Booth.jpg

After almost a year of preparation by the committee, a week of on-site infrastructure setup, and 2 days of on-site prep for the teams: we are finally at race day!

Tonight at about 8pm at the SC07 conference in Reno, we will officially kick-off the first attempt to build and race cluster-based supercomputers on the conference floor. The room is huge (20,000 ft^2) and beautiful, being decorated with banners, posters and even an airplane courtesy of the Reno Air Race Association.

If you are at SC07 and in the technical program, we invite you to visit us in hall 1 @ 8:00pm for the start and to cheer on your favorite team.

Brent Gorda

Andy Oram

AddThis Social Bookmark Button

We’re used to think of system-enforced access policies as crude and coarse-grained, such as the setuid permission bit that lets a user execute a program as the file’s owner. Fine-grained access has to be enforced by individual applications, a laborious coding process that is weakened by not being able to take advantage of underlying operation system security. PolicyKit, developed by Red Hat and included in Fedora 8, ameliorates this unsatisfactory situation.

Red Hat developer David Zeuthen describes through examples the types of access problems solved by PolicyKit: “it’s fine to mount removable media; it’s not fine to mount fixed media; it’s not fine to change the timezone.” These are operating system capabilities that can be enforced by such operating system components as the HAL or the filesystem. But any application can use PolicyKit API to enforce any kind of access it chooses to, and it gets the backing of the operating system. Zeuthen compares PolicyKit to Authorization Services on Mac OS X and Group Policy in Windows.

Brent Gorda

AddThis Social Bookmark Button

crates.jpg
The Cluster Challenge at SC07 is in the preparation phase, with all 6 teams and their hardware on site in Reno Nevada. In a little over a day, the teams will begin a 44 hour computational competition (called the SC07 Cluster Challenge).

We have 4 teams from the US: Purdue, Indiana, University of Colorado, and Stony Brook
The University of Alberta from Canada is here, as well as the National Tsing Hua University from Taiwan.

Yesterday all the teams made it to the convention center and found their equipment. The energy of the students is huge at this point, and it is creating a level of excitement that is bound to grow throughout the week. The committee is rushing to complete last minute items and ensure preparation.

Stay tuned…

Noah Gift

AddThis Social Bookmark Button

UPDATE: If you want see an “application”, Plone 3.0, run under WSGI with a “framework”, Grok, you can check out this demo on the Repoze Site. This is one of the more exciting things I have seen all year. So what is this called, a framework, a product, WSGI…you tell me

Our local Atlanta, Python User’s Group, PyAtl, is collaborating with the local, Plone User’s Group, to build a Plone 3.0 site. I have been attending the Atlanta Plone meetings recently at ifPeople, and we had a mini-sprint last weekend where we got a demo site running behind a, newish, forward proxy server called Varnish.

On Wed, I attended an Atlanta Plone meeting, where Brandon Rhodes, gave a presentation on Grok. Brandon has kindly agreed to post his presentation on his blog, which he did in KeyJnote, which is written in Python, of course.

In Brandon’s talk, he mentioned that Grok, which is built on top of Zope 3, is less of a framework and more of a component based architecture. In looking at the Grok website, I liked two things in particular:

1. Grok offers a lot of building blocks for your web application.
2. Grok is informed by a lot of hard-earned wisdom.

One of the reasons why web application developers should look at Grok, and Zope 3, in particular, is the second point. Failure over a long period of time, leads to experience. When people learn from their failures, it then turns into wisdom. The Python world has much to learn from Zope, and that is why I am especially interested in Grok, and Zope 3. Remember Zope Corporation was founded in 1995, a lifetime in software development.

All of this background information brings us to the meat of the discussion, which is Repoze, WSGI, and the eventual death of webframeworks as they exist in their current state. I for one, welcome our new WSGI, overlords. WSGI, and products like Repoze, will make webapplication frameworks much less important, and component based architectures, much more important.

One of the massive, unaddressed until WSGI, problems of standalone, web frameworks, is that, ultimately, they could never win in the long term. If a web framework has a frenzied pace of development, then the API, and documentation will never be accurate. Additionally, web frameworks, like Django, can lock you into a specific set of “tightly coupled” components, in which your ability to use other components, like SQLAlchemy, is not possible.

With WSGI, these issues become much like relevant, as something like Repoze, can use the WSGI spec, to do things like, “allow for systems that participate in a WSGI pipeline to make use of the existing two-phase commit transaction management provided by the ZODB transaction package.” WSGI is clearly the future for Python web development, and in hindsight, it even seems silly that such an emphasis has been placed on web frameworks as a one stop solution.

Clearly the better solution, is a loose set of components that work together in a unified fashion under one specification, much like how the standard library of Python itself works. I suppose, to further illustrate the point, can you imagine how irritating it would be if you used, say, the tarfile module, and that meant that you could not use the zip module? That would clearly be unpythonic, and this is why WSGI is the new buzzword. By using the WSGI spec, and optionally, something like Repoze, combined with deliverance,it is possible to run multiple web applications, running under one URL, all with the same “skinning”, or look and feel. This smells like victory, for Python web application developers.

Note update: I want to make it clear that I am not slamming any web framework, including Django, my point is that ANY web framework can run independently inside of something like Repoze, coupled with Deliverence, making even a full framework an actual component and in fact eliminating problems like one architecture is tied to a specific ORM, or templating engine etc.. My apologizes if this point was not clear in the original post. What this does is take the emphasis, and pressure, off of a site being one specific component architecture, or framework. A site won’t be a “Django site”, or a “Turbogears” site, it will be a “website”.

(Thanks to Derek Richardson, for being such a strong advocate of Repoze, WSGI, and deliverence, as much of this post is based on things I have heard for the first time from him. On that note, it is looking more and more likely that we have the authors of Repoze speak at PyAtl in December, 2007. If you are interesting in helping to sponsor this event, please contact me or Derek Richardson.)

Doug Hellmann