November 2005 Archives

Kevin Shockey

AddThis Social Bookmark Button

Today the computer science students around the Interamerican University of Puerto Rico Bayamón campus were abuzz with visions of grandeur. It seems that over the last few weeks the faculty has been discussing and preparing to participate in the 2006 Imagine Cup, which is sponsored by Microsoft Corporation.

The Imagine Cup is an annual competition that provides an opportunity for young technologists to help solve some of the world’s toughest problems. Students from high school and college can compete within different categories - Software Design, IT, Short Film, Algorithm, Project Hoshimi Programming Battle, and Interface Design - all focused on this year’s theme, health. The competition is organized into regional invitationals; with a world-wide finals held this year in Dehli, India.

The main focus of the Imagine Cup is the software design competition. Teams of up to four persons are asked to build health-related solution that feature a self created Web service, is designed on .NET Framework 2.0, and uses Visual Studio for development. Invitational winners will receive $8,000 and an all expenses trip to India to compete in the world-wide finals. The winners of the Imagine Cup will receive $25,000 and world wide recognition. What a wonderful opportunity! There is a small catch, however. According to the legal notice for the competition, by accepting the prizes, competitors must: “… agree that Microsoft shall be free to use for any purpose the residuals resulting from access to or work with your Application. The term “residuals” means information in intangible form, which is retained in memory by persons who have had access to the Applications, including ideas, concepts, know-how, or techniques contained within.

By entering you agree that Microsoft will not have any obligation to limit or restrict the assignment of such persons or to pay royalties for any work resulting from the use of residuals. “

So although as the legal notice states later, you are not granting a license of any copyrights or patents, you grant Microsoft an irrevocable, royalty free, fully paid up, worldwide license to use, review, assess, test and otherwise analyze your entry and all its content in connection with this Contest. Although this is the fourth year for the Imagine Cup, this is the first year I have heard students I know talking about it. Now that I have checked into the details, I find the conditions for this contest deplorable. Microsoft is trying to fund its research and development by stealing the ideas from young students. This couldn’t be any clearer when you compare the terms and conditions to another competition of sorts that Paul Graham founded in the form of Y Combinator.

If selected to participate as a Y Combinator founder, each team receives a $6,000 (per person) stipend to work for three months under the mentorship of Paul Graham and his associates. In exchange Y Combinator helps each team create a company, incorporate, present their technology to angel investors (including Yahoo and Google), and retain full ownership of all rights to their work. Y Combinator receives up to a 7 percent stake in each company for their efforts.

If you were a talented young technologist, which competition would you rather enter? One where you slave over a piece of software for months with the hope of winning $33,000, a trip to India, but giving away the license for someone else to market your software or doing the same amount of work and walking away with full rights minus 7% of any profits if you sell that software to Google?

The Imagine Cup is a huge farce and should be resented by any institution or country that is trying to install in their youth the entrepreneurial spirit. I recommend any teams that are considering this competition to seriously evaluate the cost of giving Microsoft “an irrevocable, royalty free, fully paid up, worldwide license to use” your innovation. I would also recommend reading Thomas Friedman’s book “The World is Flat”. Then do yourself a favor and check out the Y Combinator’s Founders program. The world has indeed been flattened and the Imagine Cup represents old world thinking.

Am I missing something here?

chromatic

AddThis Social Bookmark Button

Related link: http://slashdot.org/article.pl?sid=05/11/27/1645214;mode=nocomment;tid=166;tid=1…

When discussing how no single writer or publisher knows as much about a story than all of the experts in the world combined, Robin Miller makes a whopping claim:

With thousands of readers as fact-checkers, mistakes would rarely go uncorrected for long…

That’s a huge assumption, requiring you to believe also that:

  • Thousands of readers know the facts
  • Some significant percentage of those readers will make corrections
  • Those corrections represent the truth and not the opinions or biases of the correctors
  • You can tell true corrections from false ones
  • People read the comments!

Having read press releases and seen demonstrations staged for the mutual benefit of television cameras, I believe more strongly in the ability of a small group of people dedicated to manipulating the press (however willingly) than in the as-yet unproven ability or desire of a larger group of disinterested people to report more accurately on an issue they don’t care about.

More bluntly, unless you become an investigative reporter yourself, how can you tell a legitimate correction from deliberate misleading published by someone with an agenda? Does the loudest voice win? Does the most popular opinion win? Does the last edit win? Do you flip a coin?

Are Robin’s ideas bad? Not at all! Giving people more information about more perspectives about an event probably does improve the chances of knowing what really happened and why.

However, I just can’t believe that merely allowing feedback from anyone, regardless of experience, bias, knowledge, or skill, means that the truth is suddenly obvious and easy and widespread. The Internet doesn’t magically solve epistemological problems.

Here’s where you register a dozen different accounts and tell me I’m wrong.

Jeremy Jones

AddThis Social Bookmark Button

First of all, let me say that I am not a Microsoft hater. I will say that I am not fond of the majority of products I have used which bear the Microsoft label. They tend to leave me feeling as though my hands are tied and my options are limited and that I’m being “guided” by a paternalistic entity who feels that he knows what is best for me…but rarely ever really knows what is best for me. Whatever my experience, Microsoft creates products which are great for the majority of people out there. That is why Microsoft is such a successful company. Further, I believe that Microsoft has done more to push the computing world forward more than any other single company. So, I am by no means anti-Microsoft.

Next, let me say that I am not a conspiratorial person by nature. I’m a simple person and I tend to believe that the simplest explanation for something is typically the most plausible. This “Occam’s razor” principle causes me to become skeptical when I hear speculations about a group of people (or company) engaging in covert activity with the intent of duping, subverting, or harming another group of people. While this may sound overly optimistic, I’m really quite realistic. I recognize that there are rare occasions where regular people do engage in dubious, subversive, harmful activity. I also recognize that there are regular occasions where rare people also engage in dubious, subversive, harmful activity. Maybe it is my optimism, but I sincerely believe that nefarious behavior is not the norm across society as a whole. And I believe that most people and groups who have obtained a negative reputation probably have a worse reputation than they deserve.

So where am I going with all this? How can Microsoft kill Python? As I mentioned in the lead-in to this blog entry, when I say “kill”, I mean “seriously damage the relevance of Python”. Let me first outline what I don’t mean. I don’t mean that Microsoft, as some have suggested, will work on IronPython for a while, get people using it, then hijack the language by seriously changing the syntax of it and thereby breaking compatibility with CPython. I really don’t believe that Microsoft is going to do that nor do I believe that they have had secret meetings to conspire to such an end. I find such suppositions entertainingly absurd.

What I do mean is Microsoft’s emphasis of Python as one of many potential “dynamic and scripting languages”. The type of wording that I keep hearing to describe Python’s place in the overall .Net framework seems to keep it very separate from “real” languages like C#. It is true that Python is a very dynamic language. It is also true that Python makes a fantastic scripting language. But it is more than that. I believe that there is no reason to shy away from offering Python as an alternative to C# for application development. Sure, its dynamic nature can be emphasized, but I would market that dynamism as a selling point rather than a liability. It could just be me, but I get the feeling that Microsoft doesn’t want to encourage people too strongly to use IronPython for “real” application development.

So, how does this damage the relevance of Python? If Microsoft, who is investing considerable time and money to create a .Net implementation of Python, only refers to IronPython as a “dynamic language” and only pushes it as a “scripting language”, many people will begin to assume that that’s all that it is good for. If this causes more people to think of Python only as a scripting language (which many do, already) or a dynamic language to be used only when they can’t accomplish something in a static language, that will reduce the situations which IronPython might have been used for otherwise. If people limit what they use Python for, its relevance for a whole realm of programming tasks has been diminished.

And I think that would be a terrible shame. From what I have seen, Jim Hugunin and crew have done a fantastic job of integrating Python into .Net. I was really excited about this project when I heard about it. I’m still excited about the technology. And I’m more excited still about the overall possibilities and what it could do for Python. I’m just concerned that the current marketing words might cast Python in a limited light. Microsoft has the opportunity to promote Python as a full-blown viable alternative programming language with tremendous productivity benefits to its customers. I hope I’m wrong with my concerns. But more than that, I hope that Microsoft will begin to encourage Python usage for a broad range of programming tasks. Why shouldn’t they?

Sid Steward

AddThis Social Bookmark Button

Related link: http://news.yahoo.com/s/nm/20051128/tc_nm/tivo_dc_3

From the 11/28 WSJ:

“TiVo users will be able to set up a profile of products on their television screens by clicking on categories such as automotive or travel or typing in keywords such as ‘BMW’ or ‘cruises.’ … TiVo will then download relevant commercials to TiVo recorders over the Internet or, for those users who don’t have broadband, send the video via traditional broadcast signals.”

I could see myself using this to get detailed, media-rich product descriptions.

Andy Oram

AddThis Social Bookmark Button

A correspondent named Tim Almond just wrote me to point out a modern
barrier to communications:

How can person A know that person B uses OpenDocument? Everyone
assumes that people can read .doc and .pdf, but no-one assumes that
people can support .odt.

This is an interesting challenge. Computer systems don’t know how to
inquire what utilities are used on other systems, or formats they
support. That’s why, for instance, when you visit a site that offers
audio or video files, it makes you choose the format you want. Your
browser can tell the server what browser and operating system you’re
using, and the server can tell your browser what encoding it’s using
to send data, but the browser and server don’t figure out between the
two of them what format to use, when multiple formats are available.

Now, programming libraries such as the X Window System and CORBA
contain mechanisms whereby one side in an exchange can inquire what
extensions are used by the other side. And many networking protocols,
such as SSH, negotiate a lot of their parameters at the start, such as
what kind of encryption to use. But no such system is in use for
negotiating file formats.

The

Content Negotiation

section of the HTTP/1.1 protocol specification contains some
interesting reasoning as to why it would problematic to let computer
systems negotiate content. If driven by the server, any such system
would have to make assumptions about user preferences, or force the
user to describe her system in great detail (a potential privacy
violation). A browser-driven system would avoid some of these problems
but would add complexity and inefficiency.

Two more problems get in the way of creating a system that
automatically delivers documents in the format people want:

  • The choice of format tends to take place when a document is created.
    Unless all utilities support all formats (something that Microsoft
    shows no interest in, and which would be unfeasible for any utility
    when taken to an extreme) the person sitting down to create a
    spreadsheet or presentation has to make assumptions about what all the
    correspondents on the other end want.

  • Most documents are still delivered through the clunky, non-interactive
    medium of email. There is no way to negotiate parameters for
    communication.

So we’re going to have to continue doing what I do with my authors
every time I start working on a new book–ask what formats each side
can accept and do the negotiation on a human level. Still, it would be
interesting to speculate about systems that would be more flexible
than email and where you could set preferences before retrieving a
document from a colleague.

Jono Bacon

AddThis Social Bookmark Button

You know, we Open Source types tend to bang on a fair bit about rights. If it is not the rights associated with free software, it is the rights to free media with the Creative Commons, and then, with some tired gusts of air, we blurt out our rights associated with software patents, the overreach of copyright, the abuse of technology to invade privacy, the protection of free speech, and the protection of open knowledge. These rights affect everyone, but despite our objections, some people and organisations just want to trample on them anyway.

A while back I headed down to London to the OpenTech event in which a number of people had gathered to talk about digital media and Open Source. While there, I noted a deep undercurrent of discussion about digital rights. Aside from the notable Cory Doctorow and the fantastically insane Danny O’Brian, most of the delegates seemed to be engaged in some form of discussion about digital rights while lurking around the corridors. Danny had proposed earlier in the day that if people just paid a fiver a month (thats five English pounds for those of you not living on our isle), we could have a digital rights organisation with a suitably plump wallet to put some up some barriers to some of these people with little regard for our rights. An organisation such as this in the UK would be key in protecting these rights that are the subject of the aforementioned banging on.

A little while later I was milling around the foyer of the event minding my own business when Danny came up with a grin on his face, pinched my arm and told me he had set up a Pledgebank Pledge for such an organisation. Off went the sign-up request and I was rather chuffed to be the very first name on the list. Although I genuinely hoped the organisation would be founded and someone would wrestle that fiver from my bank account, there was a distinct possibility that it wouldn’t, and it would just be another great idea lost in the ether.

For the pledge to be successful, my name needed to be joined by 999 other names. Thats right, 1000 people needed to sign up for this thing to kick off; a lot of arms to be pinched. Thats a lot of names, and a lot of fivers. Well, through a series of mind bending jumps and feverish work on behalf of the team behind the pledge, they currently have 979 people signed up to an organisation now called the Open Rights Group. They are so close to hitting the big 1000 that you can practically hear their teeth vibrating. So what are you waiting for, get over and sign up!

Eating your own dogfood

Many of you will be reading this because you have a love of Open Source, not only because you believe in the technology and the community, but also the ethics and rights that this incredible new culture has afforded us. As a consultant I have experienced cases from large organisations right down to one man and his dog finding something valuable in Open Source, and the very real and human impact this has on all of these individuals is what makes Open Source and the Creative Commons much more than just ones and zeros; it actually enables people.

The Open Rights Group is essential for not only providing an intelligent and reasoned defence of our rights in the UK, but to also set a standard for digital rights advocacy and the execution of this advocacy with a reasoned method, free from zealotry. So, to find out what your fiver gets you, go and check out their website and a rather good wikipedia page summarising what they intend to do. Then, go and pledge your fiver and support this important group.

So what do you think? Are you going to do your bit? Do you have any thoughts on UK digital rights?

Chris Tyler

AddThis Social Bookmark Button

Related link: http://download.fedora.redhat.com/pub/fedora/linux/core/test/4.90/

The first test release of Fedora Core 5 provides an intriguing glimpse of what’s coming down the pipe next February (or, perhaps, March). There’s still a lot of sawdust and sharp edges, but there are some obvious improvements over FC4:

  • The installation uses logical volume management (LVM) by default. This is great technology and far superior to traditional partition managment — it’s good to see it in the defaults. To go along with this, there’s a very nice graphical tool for post-installation LVM management.

  • A complete switchover to yum for package management, and the new Package Updater (pup) tool takes over from up2date.

  • Lots of X11 changes: X11R7-RC2 has replaced X11R6.8.2. This means the end of the /usr/X11R6 hierarchy, the appearance of the X server and utilities in /usr/bin, new directories such as /usr/share/X11, the ability to install a reduced subset of X functionality if desired, and the debut of the evdev driver and -noswitchvt options which provide the ability to support multiple local X users out of the box (well, with a bit of configuration :-).

  • Gnome personal file sharing through WebDAV and mDNS/Rendezvous. Turn it on, plunk some files in ~/Public, and find them in Nautilus anywhere else on the network (what other clients will pick up a WebDAV share advertised via Rendezvous?).

  • Version bumps on most apps (of course!).

  • Lots and lots of little fixes and improvements. gdmflexiserver reliably does what it should (even when invoked by KDE), hardware detection and driver support seem to have been improved (at least on my laptop), and many annoyances are fixed up.

  • Some cosmetic changes: the Desktop menu is gone, replaced by System, and the System Settings submenu has been replaced by the Administration submenu. There’s a very cool new wait cursor, and the Gnome screensaver has been reworked.

I haven’t had a chance to look at all of the changes yet - including Xen and SELinux - but I look forward to checking them out over the next week.

There’s still a lot of work to be done on the installer and package manager renovations, but overall, it looks great. Congratulations to the whole Fedora team and the upstream developers!

What’s your take on Fedora Core 5?

Jeremy Jones

AddThis Social Bookmark Button

My wife is starting her own business and needs a web presence for it. Since I am the only geek she knows, I was her first choice in being the one to create her website. I expressed my absolute willingness to do whatever she wanted me to do, but I warned her that it would probably look like the droppings of a Siberian mountain goat. For some odd reason, that didn’t dissuade her.

So, what tool was I going to use to create my^H^Hher website? I looked into Nvu, but I wasn’t overly impressed with what I saw. I mentioned what I was doing to my boss, Tony, and he brought up FrontPage, whipped up a simple demo site in navigation view, and threw a navigation bar on one of the pages. Tada! That’s all there is to it. I’ve got to admit that I was pretty impressed by what I saw FrontPage doing. FP 2003 wasn’t at all the toy I remember some of the older versions being, so I decided to give it a try.

The first thing I did was lay out the site in navigation view and created all the pages that she needed. Next I began trying to figure out how to insert a navigation bar onto all the pages. I’m sure there is an easier way to do it, and I’m also pretty sure that one of you will chime in and point me in the right direction, but the best way that I found was to use frames and insert the navigation bar in the top frame. Well, I don’t particularly want to use frames. I could create a page template and create all the other pages from that page template, but what would happen I wanted to change the template? Would changes from the page template populate to all the child pages? I really don’t know.

The “ease of use” promise of Microsofty products was quickly fading for me. Each failed attempt to get things working in FrontPage added to my frustration and subtracted from the time I have to work on this site. I decided to scrap the idea of using FrontPage. It was turning out to be way too much work. Maybe the initial learning curve eventually pays off, but I doubt it would pay off for me. At least it wouldn’t pay off for this one website.

If I didn’t use FrontPage, what would I use? It should be pretty easy to write a script or two to manage the site navigation and put all the pieces of the website together. I did a quick search on Google and SourceForge to see if someone else had created something like this, but I came up empty. Not totally, but it looked like the projects which did what I was looking for hadn’t been updated in a couple of years. I decided to hack together a really simple, site-specific templating script to throw Debra’s site together. I began with the layout for most of the pages on the site. There would be a top area for navigation and maybe a logo. I also wanted an optional region on the left side of the page for navigation within a specific area of the site. The content for each page would occupy the majority of the middle-right section of each page. And the very bottom would a footer area.

The architecture for this templating system is pretty simple. So simple, that I’m almost ashamed to call it a “templating system”. There is an XML file which describes the structure of the site. There are individual XML files for the header, left pane, content of each page, and footer region. Each page can either use the default header, footer, and left pane, or it can specify its own. I could have used plain Python code instead of XML, but decided to use XML instead, just in case I wanted to use this templating system again. I then created a Python script to parse the XML files and create the HTML files.

So far, it’s working pretty well. I can add new pages and automatically have the page added to the overall navigation of the site. If I change the site-wide header, I just have to re-run my Python script and it updates all the files in the site.

Sure, I could have looked into using includes, but I would have to specify includes in each page. Plus, the navigation structure, specifically the optional left pane, would have been a little work to manage.

FrontPage might still have have its uses. I might use it for some page-specific design details. I can only believe that it will help this design-challenged hacker.

What does all this say about me? Either I’m too stupid or impatient to figure out FrontPage, or I’m just unwilling to be stuck in the range of ways of doing things which FrontPage provides. I hope it’s the latter.

What does all this say about FrontPage? It’s a fine tool as long as you’re willing to work within what it provides. And even if you don’t use it for website management (which was the biggest issue I had with it), you can still at least use it to help lay out individual pages.

Andy Oram

AddThis Social Bookmark Button

It was on the front page of the Boston Globe newspaper today, and the
lead article on their web site–an investigation that normally would
be buried in the City & Region section of the paper. So you can’t
miss it: IT manager Peter Quinn of the Massachusetts state government
is criticized for not fully reporting trips he took during his
promotion of the OpenDocument format.

Microsoft, after a late start (like most technology companies) has
poured millions into lobbying over the past decade. Rumors even
suggest that several government IT managers who dared to consider
open-source alternatives to Microsoft heard promptly from both the
company and their own bosses to pull back. So it would be highly
gratifying to Microsoft and those trying to maintain the status quo if
someone could turn the tables and try to smear the proponents of open
source and open standards with similar influence.

Because the whole thrust of choosing an open document standard is to
improve transparency in government, one could hardly find a cleverer
complaint than to accuse the proponents of lack of transparency.

A nice side effect of the controversy is to intimidate government
staff and punish them for doing what they should be doing: going out
into public forums and exchanging ideas with the communities affected
by their decisions. Especially in a major paradigm shift, and
especially when dealing with open standards that have far-flung
communities.

People opposing change have claimed that moving to an open standard would raise
costs, playing up the obvious observation that any investment in the
future requires a temporary increase in short-term expenditures. Then
representatives for the disabled raised the concern that tools
providing the OpenDocument format don’t support all the accessibility
options that Microsoft Office contains; this gap is being addressed
surprisingly fast.

Pamela Jones of groklaw pointed out that representatives for the
disabled were demonstrating an unseemly helplessness in raising their
complaint. Because several open-source tools support OpenDocument,
anyone who wants accessibility added can pay someone to do the job
rather than complaining about it.

So they’re running out of FUD, and it became time to shoot the
messenger. The Boston Globe article is short on details–suggesting
that there isn’t much legal basis for the whole complaint to start
with–but the argument goes like this; state officials have to receive
written authorization for trips paid by outsiders, and have to give a
detailed estimate of the costs of travel. Quinn, as director of IT for
the state government, made a dozen trips during the last two years,
receiving written authorization for some. It is not clear whether he
received verbal authorization or written authorization for the others.
He paid for some trips himself and accepted payment from the
conference sponsors, duly reporting these payments.

Now someone in state government is claiming Quinn should have listed
all the companies that sponsored the conferences, to allay fears that
these companies were trying to gain underhanded influence. By this
standard, a speaker who gets free admission to a conference such as
LinuxWorld Expo or O’Reilly’s Open Source conference would have to
list that his trip was paid for by Intel, Sun, Dell, and any other of
the one or two dozen companies listed as sponsors–even Microsoft!

Yes, companies are involved in open source. Contrary to the critics,
open source does create markets, and companies will rush in to make
money there. So the publicity around this investigation may
inadvertently weaken another form of anti-open source FUD.

Attending a conference, however, does not necessarily mean one comes
in contact with a company representative. Usually, to actually
interact with that company, an attendee has to take the deliberate
step of arranging a meeting; otherwise he’s unlikely even to get a
demo at a booth. A speaker at a conference is likely to come in,
deliver a speech, and leave without ever seeing a company
representative.

I managed to reach Quinn’s former boss, Eric Kriss, which the Globe
did not. (Choosing to break a story over Thanksgiving weekend, when
protagonists are on vacation and government offices that could answer
questions are closed, definitely does not contribute to clarity.)

Kriss, whom I know because he’s contacted me with a book idea earlier,
pointed out that:

  • Most of Quinn’s trips occurred after Massachusetts made the decision
    to adopt OpenDocument. There is no possibility that the trips would
    influence the decision that had already been made.

  • While some two-way communication occurs at any conference–and is
    beneficial to the public–the primary purpose of the trips were to let
    Massachusetts government tell the rest of the world what it was doing.

  • Far from being junkets, these trips were normally squeezed in on
    weekends around his normal duties and represented a contribution of
    his free time to the community.

I’m not going to express an opinion on the law, which is none of my
business, particularly because I err on the side of supporting more
information rather than less. Lapses in authorization and reporting
should be investigated by the state, and the Globe should report the
investigations. But it seems that their fundamental misunderstanding of
the dynamics of technical conferences has threatened to create an
unwarranted hysteria. Sponsorship of a technical conference does not
mean the sponsor is paying the speakers, or has any influence over
them.

What we’re left seeing is a lot of scurrying to transform an important
issue of government documentation into a spurious issue of staff
documentation, with publicity flourishes to warn that anyone trying to
open up government has to be ready for every kind of backlash.

Jeremy Jones

AddThis Social Bookmark Button

Related link: http://www.modpython.org/

From the website linked to above,

Mod_python is an Apache module that embeds the Python interpreter within the server. With mod_python you can write web-based applications in Python that will run many times faster than traditional CGI and will have access to advanced features such as ability to retain database connections and other data between hits and access to Apache internals.

Here is a changelog from version 3.1.4.

Some folks have done some work on running CherryPy with WSGI servers and have written one specifically for mod_python. I haven’t tried it, but it sounds like this would allow a CherryPy app (and, thus, a TurboGears app) to run under Apache without having to run a standalone CherryPy server. If this is, in fact, the case, I can see this being of tremendous help in finding more available and cheap hosting for your CherryPy/TurboGears apps.

If anyone has had any experience with running CherryPy apps under mod_python without running a standalone CherryPy server, I’d love to hear from you. Or if my understanding is incorrect, I’d love for you to correct me.

Christopher Diggins

AddThis Social Bookmark Button

Related link: http://www.cdiggins.com/marketing-books-online.html

If you aren’t an author, you should still find the article useful. Just substitute your product or service in place of “book” and ignore the bit about Amazon.com and you are ready to roll.

Does the article need more or less?

Sid Steward

AddThis Social Bookmark Button

Related link: http://en.wikipedia.org/wiki/Click_fraud

To what degree might Google shareholders click Google ads simply to boost their company’s profits? I think it would be an interesting and valuable point to research.

It is so easy to do that some shareholders might not even think it is wrong. Clicking a few Google ads a day is much easier than sharing copied music, for example. However, how many shareholders does Google have? How much would it boost Google’s profits if many of them clicked a few ads per day? These small acts could quickly add up.

What if people started buying ‘pay-per-click’ business stock simply because it gives them this direct control over company profits? I ask myself this, and I get flashbacks to dot-com scammers who worked the web to influence stock price. We know those kinds of people are out there.

This is all the more concerning given how many publicly traded companies are rushing into pay-per-click services, like Microsoft. If advertisers felt that click fraud was out of hand, it could be the end of Web 2.0.

Update: More Ruminations

It occurs to me that click fraud might be perfectly legal for most shareholders. There’s no law against clicking ad links, and Google’s Terms of Service doesn’t even mention it. AdSense and AdWords users are constrained by stricter terms.

I also suspect that even if click fraud became as pervasive as email spam, Google would always have AdWords advertisers. These kinds of online ads would never go mainstream, however. They would remain a niche.

brian d foy

AddThis Social Bookmark Button

Related link: http://www.theperlreview.com

The next issue of The Perl Review comes out December 1.

Coming up in this issue:

  • The Seven Sins of OO Programming — chromatic
  • PerlWar — Yanick Champoux
  • Hash Anti-Patterns — Alberto Simões
  • Haskell for Perlers — Frank Antonsen
  • reviews of “Pro Perl Parsing” and “Perl Testing: A Developer’s Notebook”, Perl Mongers News, TPF News, and more

If you’ve been a subscriber, check your email for a renewal notice. If you aren’t a subscriber, why not?

New this month is a two year “time traveler” subscription: you can get the last four issue and the next four issues with one payment. Use your holiday free time to catch up on everything that you missed.

Sid Steward

AddThis Social Bookmark Button

Related link: http://www.edge.org/3rd_culture/dyson05/dyson05_index.html

George Dyson reports: “My visit to Google? … The mood was playful, yet there was a palpable reverence in the air. ‘We are not scanning all those books to be read by people,’ explained one of my hosts after my talk. ‘We are scanning them to be read by an AI.’”

I forget where I first read this, but it makes sense. Expert humans study books to learn new facts and to learn how those facts relate to each other. Likewise expert search engines.

Here is more:


When I returned to highway 101, I found myself recollecting the words of Alan Turing, in his seminal paper Computing Machinery and Intelligence, a founding document in the quest for true AI. “In attempting to construct such machines we should not be irreverently usurping His power of creating souls, any more than we are in the procreation of children,” Turing had advised. “Rather we are, in either case, instruments of His will providing mansions for the souls that He creates.”

Google is Turing’s cathedral, awaiting its soul. We hope. In the words of an unusually perceptive friend: “When I was there, just before the IPO, I thought the coziness to be almost overwhelming. Happy Golden Retrievers running in slow motion through water sprinklers on the lawn. People waving and smiling, toys everywhere. I immediately suspected that unimaginable evil was happening somewhere in the dark corners. If the devil would come to earth, what place would be better to hide?”

For 30 years I have been wondering, what indication of its existence might we expect from a true AI? Certainly not any explicit revelation, which might spark a movement to pull the plug. Anomalous accumulation or creation of wealth might be a sign, or an unquenchable thirst for raw information, storage space, and processing cycles, or a concerted attempt to secure an uninterrupted, autonomous power supply. But the real sign, I suspect, would be a circle of cheerful, contented, intellectually and physically well-nourished people surrounding the AI. There wouldn’t be any need for True Believers, or the downloading of human brains or anything sinister like that: just a gradual, gentle, pervasive and mutually beneficial contact between us and a growing something else. This remains a non-testable hypothesis, for now. The best description comes from science fiction writer Simon Ings:

“When our machines overtook us, too complex and efficient for us to control, they did it so fast and so smoothly and so usefully, only a fool or a prophet would have dared complain.”

Murugan Pal

AddThis Social Bookmark Button

As more and more IT and ISV executives understand the power and promise of open source, proprietary software companies are starting to adopt the open source model. I quoted this phenomena as ‘Opening Up - Who, When, What’ in one of my presentations in May 2004. Since then, Ingres, Open Solaris, and many other commercial products have been open sourced. Recent announcements on Google’s Free Urchin (free software, not open) and Sun’s PostgreSQL support stress the importance of ‘Software Delivered As A Service (SAAS)’. Larry Augustin’s editorial describes why open source model is better very well.

Just in the last week, 3 proprietary software companies informally discussed with me on how to open source their products. I suggested the following migration approach and thought would share the same for wider community consumption.

Pricing Model:

Commercial and Proprietary software vendors charge one time License (L) and annual Maintenance/Updates (U) plus Support (S) fees. Remember, in open source model - you ‘may’ not be able to charge for newer versions (’Upgrades’) as that restricts customers and violate the open source adoption model. Typically, the maintenance and support costs are 18 - 22% of license cost. When you migrate to open source or SAAS model the L becomes zero as the software itself is free. Customers prefer at least two third cost savings on a 5 year TCO before making a software migration.

Hence, you may want to price your Updates & Subscription as a nominal annual subscription matching to 12% of your typical license costs derived from: [( L+L*5*20/100)*1/3*1/5 - mapped per year on a 5 year TCO of L+U&S after two third cost savings]

Migration Steps:

  1. Decide on the business model and licensing type: Caveats include how your business model will be perceived by community, licensing type impacts your prospective customers, and competition exploits your open sourced offering
  2. Make your product intuitive, easier to download, deploy and manage: Count on operational excellence, instant gratification and not on proprietary lock-in
  3. Conduct Technology Audit and do code walk through with architects and senior developers: If there are suggested improvements, either you can improve the code or document it for community to improve/enhance
  4. Blue Wash: Scan for IP issues (patent, copyright and license infringements), there are tools like BlackDuck and Palamida which offers code scanning services
  5. Community Involvement and Enablement: Have an action plan for how community can benefit from the offering. The community of developers or users or administrators must have key take-away after visiting your community site. This is important as open sourcing a product without a plan to help foster a community does not help.
Sid Steward

AddThis Social Bookmark Button

Related link: http://laptop.media.mit.edu/faq.html

I hate to be a negative nancy, but all this press over the $100 laptop gets me thinking… and doubting. It is supposed to help schoolchildren, but where is the content? Where is the curriculum? What is it actually supposed to teach?

From the 11/14 Wall Street Journal:

“Software will include a word processor, a web browser, an email program and a programming system. Governments would decide how to use the machine in classrooms. ‘We’re going to give them general tools so they can make big changes [in curriculum] if they want to,’ says Dr. Papert, who is a pioneer in using computers in education.”

This sounds most uninspired, especially coming from such a pioneer. Basically, you’re on your own — there is no content, no curriculum. You get the HOWTOs, Info docs, man pages and other great, geek staples. You might get Alice in Wonderland and other PG stuff. But your $100 doesn’t appear to include instructional material for children.

Of course there’s the Web, where you can find everything from scripture to porn. It isn’t really instructional, however. And it’s not putting booksellers out of business. Why not? Booksellers don’t sell books — they sell quality content.

The laptop’s FAQ waves its hands furiously trying to convince you of its value:

“In one Cambodian village where we have been working, there is no electricity, thus the laptop is, among other things, the brightest light source in the home.”

A 500MHz flashlight? That is more useful than some of the pentium doorstops I have around here. Which brings me to recycling.

The laptop FAQ attacks the current practice of recycling old hardware into developing nations. But it doesn’t answer: who is going to recycle these millions of laptops in a few years when they’re junk? How much will that cost?

Finally, what is the advantage of ‘one laptop per child’ over ‘$100 in books per child,’ or rather ‘$100 of school supplies per child.’ The notion that “500MHz, 1GB, 1 Megapixel” is a magic formula for superior education and economic acceleration goes unquestioned, for some reason. To me, a laptop without content is like a book without words.

* Update *

I have been debating this with some folks, and I would like to clarify my position. I am not against accessible technology. However, I believe the ‘one laptop per child’ program is overlooking the hidden costs of: 1) training educators, 2) technical support, 3) educational content, 4) infrastructure, and 5) upgrades/disposal. Looking at this bigger picture, the $100 laptop seems like the easy part.

Given the Web, some folks believe all content is free — they don’t understand my ranting about content. Indeed, information is free… you can’t copyright facts. Assembling relevant facts into a history book, however, takes skilled work. You can pay for this work, or somebody could do this for free, but it is work that must be done before you have a valuable history book.

So far, the $100 laptop sounds like a software development tool more than anything else. As a programmer, I use GNU/Linux every day — I love gcc and emacs. Programming is a trade skill, however. It might leverage skills in Reading, Writing, and Arithmetic, but I don’t think it is a substitute for general education.

Here We Go (Update)

From

Free Online ‘Open Content’ Initiatives Announced:

“New Web Portal Connects People in Developing Countries to Course Materials from Universities Worldwide

“Hewlett Foundation Announces $900K Grant to African Virtual University for Teacher Training Program”

Other Issues (Update)

I just discovered this article by Lee Felsenstein via BoingBoing: Problems with the $100 laptop.

It articulates some thoughtful criticisms to OLPC’s approach. Here are some excerpts:

Top down structure

… By marketing the idea to governments and large corporations, the OLPC project adopts a top-down structure. So far as can be seen, no studies are being done among the target user populations to verify the concepts of the hardware, software and cultural constructs. …

Distribution problems

This represents a particularly striking form of a command economy where a market economy is an absolute necessity. … For this reason, among others, we can expect the OLPC laptops to gravitate toward other segments of the population, where money and influence may be available but where budgets are still tight enough to place standard laptops out of reach.

Hardware issues – power generation

But what of the absence of reliable electrical power? OLPC statements refer to the hand-cranked generator included in each unit, having a ratio of 100:1 for operating time to crank time. For an optimistically low power drain of 1 watt this implies a 100 watt generator. … This would tire a strong adult quite rapidly.

Hardware issues – mesh networking

… Also, mesh networking depends upon most of the links being operational whenever connectivity is needed. Are we to assume that all of the OLPC laptops will be left running, especially when the effort of battery charging is considerable? …

Infrastructure and alternatives

… It is sufficiently discomfiting to consider that the outcome of a massive project like OLPC may be a different form of commercial television for the developing countries. Worse yet would be the preemption of funding for many other projects designed under a community model. Future talk of computer systems for the developing world would meet the dismissive response that “it’s been tried and it failed”.

Yet More Issues (Update)

Eduardo Villanueva Mansilla outlines his own concerns in: A sub-hundred dollar folly Here are some short excerpts:

The OLPC project starts the other way round: we have the tool, now change everything else to fit the tool. The few resources left will be used to adapt everything in the educational system to work with the tool, being software, adequate security measures or teacher training. And the original goals will be changed to fit the tool.

… Just one example: replacing books with the sub-hundred dollar computer could mean the end for local publishing houses, and that is certainly a very unfortunate unintended consequence. …

Jeremy Jones

AddThis Social Bookmark Button

Related link: http://www.djangoproject.com/

From the release announcement:

Django is a high-level Python Web framework that encourages rapid
development and clean, pragmatic design. It lets you write high-quality
Web apps very quickly, with very little code.

Andy Oram

AddThis Social Bookmark Button

It may seem uncivil to say this in light of the upcoming U.S. holiday
Thanksgiving, but I wonder why the governments of the world have not
announced a total ban on raising poultry. The dense concentrations of
birds provide incubators for new strains of avian flu, one of which
will eventually break out and cause perhaps the worst disaster in the
history of mankind.

It would be unfeasible to ban all domestic foul, such as the handful
of chickens in the yard of a middle-class household, but governments
could certainly shut down the enormous prison-like facilities where
thousands of birds are kept in cruel and unhealthy conditions; the
conditions most conducive to outbreaks of disease. Consumers can
substitute vegetable sources of food for poultry and eggs–not an easy
way to bake a cake, but certainly enough for a healthy diet.

And if no one can stomach the fight necessary to deny a living to the
Purdues of the world, there are intermediate steps that could be
taken, such as cutting down on the number of poultry and ensuring they
have more space and air.

Recent strains of avian flu have killed half the people they infect.
How many hundreds of millions of deaths is it worth to have your
Thanksgiving turkey?

Chris Shiflett

AddThis Social Bookmark Button

Related link: http://shiflett.org/archive/169

With any luck, Geoff Young and I will be giving a PHP testing tutorial at this year’s ApacheCon. Here’s a snippet of the abstract:

Admit it - deep down inside, you know you should be testing your PHP applications. With all of the different PHP test environments and the daunting documentation, sometimes it is difficult to know where to start. This tutorial will help. The first step in testing is deciding what to test, so we will begin by offering a very simple (but not contrived) PHP application with identifying elements that lend themselves to testing - both unit tests and functional tests. Next, we will write some real tests using several of the existing PHP testing frameworks, including PHPUnit, Simple Test, phpt, and Apache-Test.

Unfortunately, testing hasn’t really caught on in the PHP community for some reason, despite the existence of several useful tools and resources:

We need a few more people to register in order to have the opportunity to give this tutorial, so please sign up soon. If you do so before November 20, you get a $100 discount.

Do you test?

brian d foy

AddThis Social Bookmark Button

Crime in my neighborhood (ChicagoCrime.org) and Housing prices (Housing Maps.com).

brian d foy

AddThis Social Bookmark Button

Related link: http://www.wired.com/news/technology/bugs/0,2924,69355,00.html?tw=wn_story_page_…

Simson Garfinkel compiles Wired News’s list of the 10 worst software bugs of all time, including three that aren’t software bugs.

I don’t think you get to count deliberate CIA sabotage for the explosion of a Soviet pipeline. The software did what the CIA told it to do. It just didn’t do what the Soviet’s wanted it to do.

The Intel Pentium floating point error is a “silicon error”, as Simson says. That’s hardware in my book.

The foul-up of the doctors at the National Cancer Institute in Panama City is a case of garbage in, garbage out. They gave the computer bogus information on purpose, then didn’t check the result (as they were required to do).

It’s still interesting reading, especially when you put them in the context of people giving their supervisory power to the computers then trusting their answers.

chromatic

AddThis Social Bookmark Button

Related link: http://lambda-the-ultimate.org/node/view/1112#comment

Programming language debates often devolve into debates over the value of type systems — and, unfortunately, over meaningless terms. A recent Lambda the Ultimate discussion produced a gem of a post by Scott Johnson that explained several different levels of type safety.

C’s types are superficial… looks right to me!

Sid Steward

AddThis Social Bookmark Button

Related link: http://news.com.com/2061-10812_3-5950115.html

The 11/14 Wall Street Journal says: “Search company Google Inc. has approached at least one book publisher to measure interest in a program for consumers to “rent” an online copy of new books for a week. According to this publisher, the books wouldn’t be downloadable or printable. …”

Sid Steward

AddThis Social Bookmark Button

Related link: http://wordcast.audible.com/

Audible Wordcast tracks whether podcasts are played and for how long. It also offers controls to prevent unauthorized distribution. For tracking and DRM they will charge $0.05 per download. They can also insert ads dynamically. Due early next year. How long before they offer an AdSense-like program for podcasting?

From: the press release:

“The AudibleWordcast podcasting platform will play on the Apple iPod and 160 other devices in Audible’s .aa file format, the most widely playable file format on portable devices, second only to mp3.”

From ClickZ:

“The detailed ad measurement features are still on the horizon. For the time being, the platform offers audience audits, ad management and secured transactions.”

Christopher Diggins

AddThis Social Bookmark Button

Related link: http://www.cpp-cookbook.com

The C++ Cookbook is hot off the presses and is now for sale at Amazon.com.

Andy Oram

AddThis Social Bookmark Button

Related link: http://www.codecon.org/2006/cfp.html

My author David Molnar, whose own career has been a tour of the most interesting and pressing software issues of the decade and who is now at UC Berkeley, has just told me about CodeCon, a small but very broad conferencing exploring a wide range of “cutting edge software development.” Last year’s program showed a particular interest in identity and reputation systems, but covered projects as varied as education curricular support and web site templating. Check out the site, and if you’re working on something pretty cool, submit a project.

brian d foy

AddThis Social Bookmark Button

Josh McAdams and Pete Krawczyk are organizing the next North American Yet Another Perl Conference (YAPC), and I went to the first planning meeting last night.

I’m just an interested person and I resisted the impulse to volunteer to do anything (other than sponsorship from Stonehenge Consulting and The Perl Review), but some of the things they’re thinking about are pretty exciting:

  • Cross pollenization: There are a lot of Ruby folks in the area, and the local Perl people are interested what they have to say. There might be a couple of Ruby talks, or at least a get-together.
  • I’m going to try to put some reduced-price (YAPC is about low cost) open enrollment Perl training next to the conference so people can get both on the same plane ticket.
  • If we’re going to turn on the lights for open enrollment training, we might as well maximally use the facility we’re already paying for. I’m going to encourage other Perl presenters to do extra pre-conference stuff too.
  • Since Josh runs Perlcast, there might be some interesting live or minimally delayed podcasts.

There are also a lot of things that probably won’t happen, but YAPC will survive without them:

  • Senators Obama and Durbin taking part in a panel discussion about technology in government.
  • Mayor Daley declaring a Perl Day while opening the conference.
  • Touch football at Soldier Field

I can’t announce the dates or any real details. They haven’t issued the Call for Papers yet, but that doesn’t mean that you can’t start thinking about it!

Jeremy Jones

AddThis Social Bookmark Button

Related link: http://codespeak.net/pypy/dist/pypy/doc/weekly/summary-2005-11-11.html

I’ve heard of PyPy, but never really understood what they were trying to accomplish. I guess I always figured it was a “for the heck of it” project. Not so. Here is their mission statement (from the PyPy architecture document):

PyPy is an implementation of the Python programming language written in Python itself, flexible and easy to experiment with. Our long-term goals are to target a large variety of platforms, small and large, by providing a compiler toolsuite that can produce custom Python versions. Platform, memory and threading models are to become aspects of the translation process - as opposed to encoding low level details into the language implementation itself. Eventually, dynamic optimization techniques - implemented as another translation aspect - should become robust against language changes.

So, there’s some serious stuff going on in PyPy. I’ve got to confess that this particular “this week in PyPy” doesn’t mean much to me. Maybe once I read the architecture overview and some of the other docs on the PyPy webpage, it’ll come together for me a little better.

The PyPy team is going to post a weekly update of the happenings in PyPy at this website: http://codespeak.net/pypy/dist/pypy/doc/weekly/. I’ll try to post a link to the specific weekly update as I notice them.

Sid Steward

AddThis Social Bookmark Button

If the courts decide indexing is fair use, what will you index first? I would love to have a search engine for my print library. Magazines, too. I know Google wants to give me that, but I’m impatient. How about a distributed indexing effort, a’la Project Gutenberg? That will ensure the most popular titles are indexed first.

People and businesses could contribute numerous ways:

  • Bandwidth
  • Scanning/OCR
  • Books
  • Money for books, operations

Here are some ideas on how it could work.

The online service would let the user create an account and specify all the books in her library. The user could then search against this collection to find information lurking on her own shelves … much faster than flipping through book Indexes.

Of course the user could also search the larger collection. Add some social features to help users discover interesting books from like-minded folks.

If necessary, use ads, bookseller links or sponsors to fund operations.

Promote independent press. Tie into print-on-demand? Kinkos? Print(fu)?

Export an excellent API.

Sound interesting? If so, please contact me.

Christopher Diggins

AddThis Social Bookmark Button

I had a successful stint doing online marketing back in the old days. Now that my book is out ( C++ Cookbook ) I find myself thinking like a marketing pro again.

For fun I wrote a 10 page article about online marketing with regards specifically to books, and I am wondering where to go from here. It is very minimalist, so I could easily swell that up to a couple of hundred pages. The question is, do I try an pitch a “Book Marketing Hacks” book? Or perhaps an eBook? Should I go independant, or stay with O’Reilly? Should I make a series of articles? Or perhaps an entire column?

My question then specifically is this: would you buy a book about marketing books online, or would you prefer something more general, and what format would you like to see such a book? Any suggestions would be greatly appreciated.

So do you want me to tell you how to sell more books?

chromatic

AddThis Social Bookmark Button

Related link: http://www.oreillynet.com/pub/wlg/8317#thread

In the talkbacks on
“Our Long Java Nightmare”
, href="http://weblogs.oreillynet.com/pub/au/1712">Rick Jelliffe and I have
had a small debate over the relative maintainability of Perl and Java. My
position is that no single language can enforce maintainability in the ways
that really matter most.

Certainly languages that lack certain features — meaningful error
messages, namespaces, encapsulation, abstraction, code-reuse — can do a lot
to discourage maintainability, and certain language features, when
abused, don’t help maintainability (operator overloading, macros, code
generation), but at some point your programmers have to take responsibility
for their own actions.

For example, if a team of Perl programmers refuse to use lexical variables,
making all of their subroutines work on global variables, is that the fault of
Perl for allowing global variables?

If a team of Java programmers re-invents leap-year checking code badly and
gets it wrong for century years, is that the fault of Java?

I don’t believe any programming language or compiler can ever analyze a
program on its own and verify that it truly meets the needs of the customer.
Nor do I believe that any tool can analyze the design of a package or class or
function or method and judge it appropriately maintainable. I reject the idea
that any automated tool can reject invalid, inappropriate, or irrelevant
symbol names. These abilities require axioms completely outside the set of
rules of a programming language — yet these are better criteria for
maintainability than the choice of programming language.

At some point, if you hire programmers who don’t know what they’re doing or
who do sloppy work, you’re going to get bad results. Blame it on the language
they used if you want — but expect few improvements from switching to another
language, platform, library, or toolset.

Your programmers really can’t read punctuation symbols? That’s… odd.

Jeremy Jones

AddThis Social Bookmark Button

Related link: http://www.tuxed.de/vimpst/video.html

The link is a screencast of a code-completion/calltips plugin for vim created by Roman Roelofsen. Every time I try an IDE or another text editor, I always come back to vim for its simplicity, usability, and power. Sure, code-completion and calltips are nice features, but not something that would make me abandon vim. Now, I won’t have to choose. The calltips appear to pull from dir() and __doc__ on whatever object your cursor is over. It looks like it intelligently discovers the type of the object and displays its attributes and methods. While I typically code with vim and an IPython shell up simultaneously, this will almost definitely reduce the amount of time I spend switching between the two.

Roman said on the Python mailing list that he should be announcing a beta soon. This is a very impressive piece of work so far. I look forward to the release.

Andy Oram

AddThis Social Bookmark Button

Related link: http://www.bitdefender.com/VIRUS-1000058-en–Backdoor.IRC.Snyd.A.html

The BitDefender anti-virus software company reports finding a Trojan in the wild that exploits the notorious rootkit installed by Sony with its CDs to check for copyright violations. BitDefender promotes its own software, of course, to detect the exploit. But whatever is going on out there, it’s obvious that Sony’s attempt to outsmart its own customers is not a good idea in terms of security–or customer relations.

Jonathan Bruce

AddThis Social Bookmark Button

Related link: http://blogs.datadirect.com/jonathan_bruce/2005/11/the_next_fronti.html

XQuery has achieved Candiate Recommendation and I think it’s safe to say that many individuals, organizations and vested interests are working hard to make sure it reaches Recommendation as smoothly as possible.

With this significant milestone achieved, Jonathan Robie, DataDirect’s W3C representitive blogs about XQuery Updates today. He is appealing to the community at large to give their feedback to working group on the kinds of usecases they antcipate for XQuery Updates. The product of this feedback cycle will eventually look something like the XQuery Use Cases.

Although this was far before my time in the software industry, XQuery is entering the next stage in it’s evolution, similar to how SQL evolved in the 80’s. SQL was originally specified a query language only - to this day it maintains that name Structured Query Language. You can read more about the history here. SQL quickly adopted update characteristics in subsequent revisions.

If you have ideas, you are certainly free to talk about them here, you can go straight to the source and check out Jonathan Robie’s blog to send him your ideas directly.

Post your use cases and ideas here…

chromatic

AddThis Social Bookmark Button

Related link: http://www.penguinppc.org/

I’m in the market for a new desktop machine. My goal isn’t extreme performance. I care more about low noise and lower power consumption. Aside from too-little memory by default, running Ubuntu on a Mac Mini seems like a good option, especially for the price.

Another option is to build my own small form-factor x86 PC. That’s a little trickier — not only is there more research to do, but I have to assemble more pieces myself. Of course, there’s a lot more customization there. If I go with the Mac Mini, the first thing to do there is to crack the case and add a Gigabyte of RAM, just to have enough. That’s fine; I can handle that.

Still, that’s as expandable as the Mac Mini gets. With the SFF PC, I have the option of adding or replacing (a few) components. That’s a nice thing. I can probably even stick with the quiet and low power consumption goals with a processor faster than the 1.25 GHz G4.

There’s also the issue of paying for a copy of Mac OS X I’m not going to use. (Sorry Apple fans, but I’m not trying to start a debate here. I used Mac OS X for several months and prefer Linux. That’s just how it is.) I could put that $100 to better use with a decent video card.

Still, the price and the fact that it’s already built makes the Mac Mini compelling…. Am I overlooking something hardware-wise? Does anyone else have Linux PPC running on it? How’s the hardware support? How’s the performance?

This isn’t about Mac OS X versus Linux PPC. It’s about hardware and suitability!

Jeremy Jones

AddThis Social Bookmark Button

Related link: http://blog.ianbicking.org/unzen-of-unpython.html

Ian Bicking has written a brilliantly hilarious (and probably very accurate) commentary on programming philosophy. He has taken Tim Peter’s “The Zen of Python” and inverted it. If you’re not a Python programmer, you may be offended. If you are a Python programmer, you may still be offended if you’re writing “unpythonic” code. Regardless of your linguistic orientation, this article will make you think. And perhaps the world will be a better place because of it. Now, go click on that link and read Ian’s article! It’s worth it!

Great blog, Ian!

Andy Lester

AddThis Social Bookmark Button

I’ve come to appreciate, though not love, those manual checkout
lanes in the grocery store. If they haven’t come to your town,
they allow shoppers to ring up and pay for their own purchases,
without having a cashier do it. At my local Jewel/Osco, four manual
lanes take up the space of two lanes that used to be staffed by a
clerk.


The checkout system is simple. You scan the item, and the price
and description show up on the screen, and you bag the item in one
of the three plastic bag holders to the right of the scanner. The
bag holders, and the shelf on which they rest, are on a big scale
that keeps track of the weight of your purchases. If you “forget”
to scan an item and bag it, it tells you “hey, you put an item in
a bag without scanning it.” (Actually, the female computerized
voice is much nicer about it.) If you take something off the shelf,
or put a bag back in your cart, you have to click a little “item(s)
removed” button so the scale recalibrates. The scanner is about
three feet off the ground, and the scale/shelf is two feet high.


The system works well enough. After a few items, and you get used
to the quirks of the rhythm of scan-bag-scan-bag-scan-bag, it’s
pretty quick. Some people hate it, but I think it’s more from fear
of the new, rather than it being very difficult.


However, I believe I found a scenario that the designers didn’t
take into account: Ringing up your groceries with a four-year-old
in tow.


On Sunday, Quinn and I
selected about 40 items and went to the manual checkout lane. I
started checking out items, and Quinn wanted to help, of course.
She grabbed a can of Spaghetti-O’s out of the cart, and put it up
on the scanner (”boop!”), right as I had scanned a box of Triscuits
(”boop!”). The register was not happy at having the Spaghetti-O’s
scanned before I’d bagged the Triscuits, so up pops an error. I
had to wait for the system to get itself back in sync before I could
continue, but Quinn went to get a can of alphabet chicken soup and
tried to scan that, which only made things worse.


After a few attempts at this, I implored Quinn to let Daddy do the
groceries. “Please just wait a minute, honey, and we’ll go out to
the car, OK?” She wasn’t too happy about it, but she was a good
girl and decided to sit quietly… on the shelf.


Suffice to say the system didn’t account for an unscanned four-year-old.
I had to explain that she couldn’t sit on the shelf with the bags,
so she stood next to it… for about 15 seconds before she put her
hand on the shelf and leaned on it.


Human cashiers still win as far as fault tolerance.

What other systems have fallen afoul of a four-year-old?

Jeremy Jones

AddThis Social Bookmark Button

Related link: http://www.turbogears.org/docs/TurboTunes/index.html

CatWalk is a web-based database browser which is slated for inclusion in TG 0.9. CatWalk has a very web2.0ish feel to it. Certain areas support drag and drop. It appears to do a great job in facilitating a programmer to quickly populate a database with a small sample of data.

As I watched the video, I was impressed yet again by the innovation that has gone into this project. The new non-CatWalk portion of the screencast walks through creating an iTunes-like web application.

I really have nothing left to say at this point other than, “Watch the video.”

Christopher Diggins

AddThis Social Bookmark Button

Related link: http://www.osxml.org

If you have used open-source code as much as I have, you have probably come to the same realization: the wheel has been reinvented thousands of times, and it is rarely round.

Colorful analogies aside, my point is that most, but not all, open-source code sucks. The majority of open-source code, is untested, unproven, and redundant. I would estimate from my own experiences that for every 1 line of good open-source code there are 9 lines of bad copies of the original. Often these copies occur coincidentally because the coders don’t know the originals exist. Or the programmers don’t understand the issues that went into making the mature/stable code the way it is today. Mature code is almost never as pretty as naive first versions.

I propose that by using a standardized method of publishing open-source code, such as through an XML schema, it can become easier for people to publish, find, evaluate, and use open-source code. I believe this would reduce redundancy and improve open-source quality.

My suggestion is a format called OsXml which is in a rough first draft stage. I would appreciate some help in trying to make this format viable.

Do you think OsXml, or something like it, could help improve open-source quality? What else can be done?

Jeremy Jones

AddThis Social Bookmark Button

My first Perl module reverse-engineered a proprietary network protocol used at the company I worked for at the time. My purpose in creating it was to test the production and development implementations of the protocol. The module quickly grew to over 1,000 lines of code. I developed a sense of dread every time I had to make even the slightest modification to this particular module. After a while, I couldn’t take it any more. I needed a language with cleaner OO support. That’s when I found Python. And I have used Python nearly exclusively ever since.

What was so painful about that Perl module? The first thing was my newness to OO…and to programming in general. At that point, I had done some C and shell and was still pretty new to Perl. The majority of my OO exposure was what I had read in the perltoot.

The next thing was the general oddness that went into creating a Perl module. For example, there was this “bless()” function. I didn’t get that. What was “bless()” and why was I doing it to my “$self”? Another weird thing was the “1″ at the end of my module. I didn’t get that, either. But, neither of these things were deal breakers for me.

The next, and probably more significant, thing was dealing with complex data structures such as a hash of hashes. At the time, all those curly braces and arrows and backslashes were just not intuitive to me for creating the data structures that I needed. And I had even read perldsc.

I’ll go ahead and admit it. The problems I had with Perl says more about me and my understanding of Perl (and programming) at the time than it does Perl. I was a newbie trying to do something that was fairly complex with a language which will gladly give you plenty of rope to do with as you please. I happened to be putting that rope rather uncomfortably around my neck. At least that’s how it felt at the time.

I was reading Perl Testing by Ian Langworth and chromatic the other day and had a moment of enlightenment regarding Perl and OO. One of the example pieces of code was a simple OO module. As I was reading the code, something about it was comfortably familiar. The constructor (typically “new”) returned a reference to itself (typically “$self”). That vaguely reminded me of the __new__ method in Python. “$self ” was a hash, which reminded me of an object’s __dict__ attribute in Python. Each method’s first argument was an implicit “$self”, which is pretty much identical to Python.

I still prefer the Python syntax over the Perl syntax, but I feel that my exposure to Python helps me “get” what Perl is doing with its OO implementation. Funny. I feel like I could probably do some Perl coding again and not mind it so much…even before Perl 6 is actually released. So, I don’t consider Perl’s OO evil (any longer). And I don’t consider OO to be so bolted on as an afterthought (which it might be…I really don’t know). And, even though it appears as such at first glance, I’m not so sure that the internals to OO are any more exposed in Perl than they are in Python; they’re just more Perlish.

The “take away” from this little stroll down nostalgia lane is that Perl isn’t so evil. And specifically, its OO support is usable. I still prefer Python, but Perl is a viable language for getting work done.

Sid Steward

AddThis Social Bookmark Button

Related link: http://caselaw.lp.findlaw.com/casecode/uscodes/17/chapters/1/sections/section_10…

I discovered a section of copyright law that gives libraries exceptional privileges. It seems to address some of the points emerging around the Google Library debate. It’s called Section 108 — Limitations on exclusive rights: Reproduction by libraries and archives.

Subsection (a) looks bad for Google Library

In subsection (a), it outlines a scenario where libraries are allowed to reproduce copyrighted content. This first scenario pointedly does not allow digital distribution. While this scenario (detailed below) doesn’t really touch on Google Library, it does shed some light on the spirit of copyright law. Legistators have already given libraries special powers, and they have shown a prejudice against digital media.

Subsection (h) looks good for Readers

In subsection (h), it outlines a scenario where libraries are allowed to reproduce and distribute content
in numerous forms, even digital. This scenario seems designed to address Tim’s concern over works in the Twilight Zone. That is, works that are under copyright but no longer in print and possibly orphaned.

From: Section 108. Limitations on exclusive rights: Reproduction by libraries and archives

Here’s the part that outlines cases where the library is allowed limited reproduction and distribution. I added the emphasis:

...

      (a) Except as otherwise provided in this title and
    notwithstanding the provisions of section 106, it is not an
    infringement of copyright for a library or archives, or any of its
    employees acting within the scope of their employment, to reproduce
    no more than one copy or phonorecord of a work, except as provided
    in subsections (b) and (c), or to distribute such copy or
    phonorecord, under the conditions specified by this section, if -
        (1) the reproduction or distribution is made without any
      purpose of direct or indirect commercial advantage;
        (2) the collections of the library or archives are (i) open to
      the public, or (ii) available not only to researchers affiliated
      with the library or archives or with the institution of which it
      is a part, but also to other persons doing research in a
      specialized field; and
        (3) the reproduction or distribution of the work includes a
      notice of copyright that appears on the copy or phonorecord that
      is reproduced under the provisions of this section, or includes a
      legend stating that the work may be protected by copyright if no
      such notice can be found on the copy or phonorecord that is
      reproduced under the provisions of this section.
      (b) The rights of reproduction and distribution under this
    section apply to three copies or phonorecords of an unpublished
    work duplicated solely for purposes of preservation and security or
    for deposit for research use in another library or archives of the
    type described by clause (2) of subsection (a), if -
        (1) the copy or phonorecord reproduced is currently in the
      collections of the library or archives; and
        (2) any such copy or phonorecord that is reproduced in digital
      format is not otherwise distributed in that format and is not
      made available to the public in that format outside the premises
      of the library or archives.
      (c) The right of reproduction under this section applies to three
    copies or phonorecords of a published work duplicated solely for
    the purpose of replacement of a copy or phonorecord that is
    damaged, deteriorating, lost, or stolen, or if the existing format
    in which the work is stored has become obsolete, if -
        (1) the library or archives has, after a reasonable effort,
      determined that an unused replacement cannot be obtained at a
      fair price; and
        (2) any such copy or phonorecord that is reproduced in digital
      format is not made available to the public in that format outside
      the premises of the library or archives in lawful possession of
      such copy.
...

Here’s the part that seems to allow reproduction and distribution of ‘orphaned’ works, even in digital format:

...
      (h)(1) For purposes of this section, during the last 20 years of
    any term of copyright of a published work, a library or archives,
    including a nonprofit educational institution that functions as
    such, may reproduce, distribute, display, or perform in facsimile
    or digital form a copy or phonorecord of such work, or portions
    thereof, for purposes of preservation, scholarship, or research, if
    such library or archives has first determined, on the basis of a
    reasonable investigation, that none of the conditions set forth in
    subparagraphs (A), (B), and (C) of paragraph (2) apply.
      (2) No reproduction, distribution, display, or performance is
    authorized under this subsection if -
        (A) the work is subject to normal commercial exploitation;
        (B) a copy or phonorecord of the work can be obtained at a
      reasonable price; or
        (C) the copyright owner or its agent provides notice pursuant
      to regulations promulgated by the Register of Copyrights that
      either of the conditions set forth in subparagraphs (A) and (B)
      applies.
...
Jonathan Wellons

AddThis Social Bookmark Button

Related link: http://www.securityfocus.com/brief/34

Many people know by now that a Sony BMG copy protected CD provides you with a rootkit that you can use for a number of malicious purposes, including cheating at World of Warcraft (WoW). What I haven’t heard anyone suggest is that Script Kiddies and cheaters were the revenue stream Sony originally had in mind when they produced the copy protection. As this property is becoming better known, consumers are buying the CD simply for the rootkit. Who knew that Sony would compromise the integrity of WoW? Who knew there so much money to be made in exchange for players’ happiness?

Truly shareholder-oriented, aren’t they?

Sid Steward

AddThis Social Bookmark Button

Related link: http://www.forbes.com/2005/11/04/amazon-bezos-google-cx_gl_1104autofacescan05.ht…

Forbes says:

“Amazon Pages will dole out the data in increments–by chapter, section or even a single page. Thus, one needn’t buy an entire book–although that option will exist, too–if all one desires is, say, a recipe or other chunk of how-to info.”

I first learned about this in the Wall Street Journal. It has a good quote from Bezos: “It’s really important to do this cooperatively with the copyright holders, with the publishing community, with the authors. We’re going to keep working in that cooperative vein.” This makes sense only in the context of Google Library and its strong-arm relationship with print publishers.

The press enjoys comparing Amazon Pages to Google Library. They aren’t related, except possibly as salvos in a larger battle. However, I had earlier suggested that Google could win over publishers by giving them a means to make money on out-of-print material. My idea was much like Amazon Pages: charge money to show the page scan to the reader, split the money with publishers.

Forbes continues talking about another service, Amazon Upgrade:

“Amazon Upgrade, the slightly less amazing stepsister of Amazon Pages, furnishes Web access to a book already purchased.”

The WSJ article also continues talking about a plan announced by Random House to place book content online. Here’s an online article on the topic:

“… The plan, which will include agreements with a range of online vendors, will be based on per-page micro-payments that could revolutionize the way books are bought and read.

“The world’s largest trade publisher will charge websites four cents per page for fiction and narrative nonfiction (a 350-page book would cost $14, for example), ostensibly allowing vendors to determine their own pricing schemes.”

I am impressed that Random House is partnering with vendors instead of trying to run the whole show. It would be cool if publishers offered APIs into their collections. Very Web 2.0.

Of course, you already knew that Safari Online has an API.

Jeremy Jones

AddThis Social Bookmark Button

Related link: http://www.microsoft.com/downloads/details.aspx?FamilyID=ba268a8e-0d79-4245-b14b…

These folks are doing a great job of keeping the release cycles pretty quick with this project. I wish I had more time to dig into exactly what they’ve been up to.

Here are some words from the release email:

Hello IronPython community,

we have just released IronPython 0.9.4. The biggest change is implementation of static compilation (IronPython.Hosting.Compiler), a component that compiles multiple sources into the single executable.
As a response to requests we have been getting recently, we are also including an IronPython tutorial with the 0.9.4 release. Check out the Tutorial directory!

Since the .NET Frameworks 2.0 has released and is publicly available for download, IronPython is now built and depends on the final release of .NET Frameworks 2.0.

More improvements include:

* __del__ is supported on old style classes.
* time.time() is fixed to report time correctly
* few smaller parser fixes (try and print statement parsing)
* various module kinds (built-in, python module and “sys”) now have the same type
* ReflectOptimizer doesn’t handle System.Single fix
* string fixes - we added missing methods and fixed those that didn’t work as expected.

We also enabled some more regression tests to run. Test_string runs without changes and few with variety of changes to allow us to run the test while we add missing features and fix bugs: test_str, test_set, test_exceptions, test_grammar.

There are many of you who contributed to this release and we thank you:

Nicholas Jacobson, Anthony Tarlano, Michael Shilman, Chris Trimble, Ray Djajadinata

Jeremy Jones

AddThis Social Bookmark Button

Related link: http://codespeak.net/pypy/dist/pypy/doc/news.html

From the release announcement:

pypy-0.8.0: Translatable compiler/parser and some more speed
==============================================================

The PyPy development team has been busy working and we’ve now packaged
our latest improvements, completed work and new experiments as
version 0.8.0, our third public release.

The highlights of this third release of PyPy are:

- Translatable parser and AST compiler. PyPy now integrates its own
compiler based on Python own ‘compiler’ package but with a number
of fixes and code simplifications in order to get it translated
with the rest of PyPy. This makes using the translated pypy
interactively much more pleasant, as compilation is considerably
faster than in 0.7.0.

- Some Speed enhancements. Translated PyPy is now about 10 times
faster than 0.7 but still 10-20 times slower than
CPython on pystones and other benchmarks. At the same time,
language compliancy has been slightly increased compared to 0.7
which had already reached major CPython compliancy goals.

- Some experimental features are now translateable. Since 0.6.0, PyPy
shipped with an experimental Object Space (the part of PyPy
implementing Python object operations and manipulation) implementing
lazily computed objects, the “Thunk” object space. With 0.8.0 this
object space can also be translated preserving its feature
additions.

Sid Steward

AddThis Social Bookmark Button

Related link: http://biz.yahoo.com/prnews/051101/sftu130.html?.v=23

Here’s the press release. These offerings are a long way off from a web-based StarOffice suite.

Sun Microsystems Adds Two New Services to Sun Grid Utility, Easing Transition to Emerging Web 2.0

New Free Retail Services Convert Text to Podcasts and Proprietary Microsoft Word Documents to Open Document Format

Using the new Sun Grid service, virtually any consumer with a Web browser will be able to upload proprietary documents, and have them automatically converted to Open Document Format (ODF). The ODF is an XML-based industry standard file format specification for office productivity applications, including text, spreadsheet and graphical documents. ODF documents are readable by any ODF-enabled applications such as OpenOffice or StarOffice(TM), and provide an open, neutral format for users seeking to make content available to the broadest set of audiences, platforms and devices. ODF was recently adopted by the State of Massachusetts for government usage. The Sun Grid Utility service will help simplify the process of converting documents from Microsoft Office to free and open alternatives that radically lower cost, promote cross-platform communications and help users with older versions of Microsoft Windows avoid the costs and risks associated with deploying a newer release of Windows.

In addition, Sun expects to make available within the next 30 days a retail service that generates audio podcasts from any text based content, such as weblog or web site. Podcasts allow users to subscribe to audio content for playback at a later date, and provide those with visual impairments an opportunity to have the Internet “read” to them without human assistance.

Both services will be accessible through a simple web user interface — documents or URL’s will be submitted, as photos are submitted to photo sharing services, and converted on the network as .odf or .mp3 files, accessible via any browser or appropriate application, such as OpenOffice/StarOffice or Apple’s iPod.

“It is clear a second generation of the web is emerging, with a broad array of on demand services available freely and ubiquitously, tied not simply to a web browser, but to any application or device that connects to the Internet,” said Jonathan Schwartz, president and chief operating officer for Sun Microsystems. “Built atop Sun’s core innovations, from our industry standard Sun Fire servers, to the fastest growing open source operating system, Solaris, the Sun Grid Utility will spare consumers and enterprises alike from having to build complex infrastructures that are better delivered via a centrally shared service. Innovation will be a core differentiator for Sun, and for Sun’s customers, in taking advantage of this next generation web.”

The first of the Sun Grid utility services, announced nearly a year ago, is a basic high performance computing facility, the retail release of which will mark the industry’s first true on-demand computing utility. Unlike traditional “on demand” models, marked more by structured financing and datacenter inventory management than true “computing services” such as eBay or salesforce.com, Sun’s Grid offering can spare customers the need to build, manage, provision or power their own computers and storage devices. For tasks as diverse as rendering movies, exploring for oil, or running complex spreadsheet calculations, high performance computing is one of the fastest growing market segments in the IT marketplace. Priced at $1 per CPU-hour(1), with no minimum commitment, the Sun Grid utility will provide supercomputing facilities, with no upfront investment, to users and applications alike.

Sun plans to work with the open source community to enhance the OpenOffice and StarOffice platforms to leverage these services as native features. With more than 50 million downloads around the world, OpenOffice and StarOffice are the most rapidly growing productivity suites on the Internet.

About Sun Grid Utility Services

Sun Grid helps customers and partners to derive immediate benefits from an open, grid-based computing infrastructure on a utility basis by giving them more choice and control over how they purchase and leverage IT. The Sun Grid offerings include the Sun Grid compute utility, a $1 (USD) per CPU per hour pay-per-use offering ($1/CPU-hour), and the Sun Grid storage utility.

Stephen Cawood

AddThis Social Bookmark Button

my latest book, Halo 2 Hacks, hit the shelves recently. in this book, Halo 2 players can learn all about gameplay tricks, Halo 2 Easter eggs, glitches, and more. but what’s caught the attention of some is a commonly misunderstood aspect of gaming: modding.

modding is the act of altering a game so it behaves differently from the way its developers intended. it can be as simple as altering the sprites in an Atari 2600 game or it can be as complicated as creating a whole new level for Halo 2.

with the help of game makers such as id Software and Valve, mods have been created for numerous PC games. for example, Counterstrike began its life as a mod of Half-Life. Half-Life is an easy game to mod because all of the modding tools you need are provided for you. some games, such as Halo 2, don’t make it as easy. a big part of this is the fact that Halo 2 runs on the Xbox. for a variety of reasons, Microsoft does not condone modifications to the console or the games that run on it. however, their primary reason for this stance is that mod chips have been used for game piracy.

unfortunately, altering the Xbox to enable mods was used to open the door to a huge problem: online cheating. I share the animosity people feel toward cheaters on Xbox Live. just like every other Halo 2 fan, I was annoyed when my online rank was wiped out by people who cheated with standby, spoofing, and mods.

however, modding is not the same as cheating. many folks from the modding community contributed to this book and the modding community certainly does not support cheaters. for example, anyone who posts a question about cheating to HaloMods.com is instantly banned.

in addition to misunderstandings about the difference between a modder and a cheater, some of the negative comments about Halo 2 Hacks stem from confusion regarding the title of the book. o’reilly is aware that the term hacking has a bad reputation. the press use it to refer to someone who breaks into systems or wreaks havoc with computers as their weapon. among people who write code, the term “hack” refers to a “quick-and-dirty” solution to a problem, or a clever way to get something done. the term “hacker” is taken as a compliment, referring to someone as being creative, having the technical chops to get things done. the Hacks series is an attempt to reclaim the word, document the good ways people are hacking, and pass the hacker ethic of creative participation on to the uninitiated.

look inside Halo 2 Hacks, and you’ll see plenty of cool things you can do with Halo 2 that don’t involve mods: Easter eggs, vehicle stunts, glitches and much more. we also spent a lot of the book discussing the impressive user-created maps such as Zentation and All H#ll Breaks Loose. these maps can only be experienced with a modded Xbox. what you won’t find are ways to cheat on Xbox Live!

the long and positive history of modding is based on the fact that many game developers openly support the practice of developing creative adaptations of their games. while Bungie may not publicly support Halo mods, they did support mods for their Marathon games. the reason for this is that many people understand that modding is a creative outlet for hardcore fans and future game developers.

Ming Chow

AddThis Social Bookmark Button

Related link: http://www.bookpool.com/ct/98076

I just received an e-mail that Bookpool is once again having it’s big sale on O’Reilly books (trade books only) this month only. This time, not 43% off, but 47% off!

Bookpool offers free shipping if your order is greater than $40.

Jono Bacon

AddThis Social Bookmark Button

You know, the Open Source community is filled with hero’s. This is evident from the helpful souls who walk you though your mailserver configuration again at 3am to those who feverishly hack on your favourite software and continue to refine and develop into the world-class tool you brag about to your pals. There are of course many unrewarded heros, and this entry is dedicated to one particular breed - the optimisers.

In recent years the focus on performance has flooded the Open Source community. From old chestnuts such as KDE and X being slow, to newer complaints with GNOME and OpenOffice.org, it seems that ‘just buy a faster computer’ is still as useless an excuse it was five years back. Although various developers have tried speed up and refine the system, it seems that in recent months a new breed of developers are really tearing things open and squashing down the padding for a smaller footprint and better performance.

Back in May 2001, Waldo Bastian, an esteemed and well respected KDE developer wrote Making C++ ready for the desktop. In those days, KDE was taking quite some flak for its performance issues and although the developers were using better coding practises and techniques, there seemed to be a general feeling that the underlying tools need optimising and sheening. Waldo pinpointed the source of some of these problems to the way applications linked with shared libraries. The objprelink tool was developed to solve these issues and KDE got faster.

In recent months, some brave souls have stepped up to the fold to also speed things up. In the GNOME camp, Federico Mena-Quintero, contender for one of the coolest names in Open Source (closely rivalled by the equally cool Torsten Rahn from KDE) has been working extensively on improving the performance of the GNOME file picker dialog. Back on the 20th July 2005 Federico expressed concerns about the file picker, “Starting up a GtkFileChooser is slow. On my 1.7 GHz laptop, a file chooser never seems to come up in under a second. That’s way too long, given that even the old Midnight Commander could display a large directory in under 0.3 sec“. What followed is a series of detailed blog entries that track the experiments, problems and efforts that Federico made to optimise this small but important part of the GNOME desktop. Currently at part eight, each blog entry is both fascinating and perplexing at the same time. A great example of this is in Part 6. Federico utters a nugget of profiling wisdom, “ At first we thought of splitting this table into two: a tiny one for code points below 8192 (0×2000), and another one for the high code points. But then we figured out that we can instead use the upper bit of each entry in our lookup table for the gunichar->scripts (the one I described above). Since the numbers that we store in that table are small — 0 through 62, which is the number of scripts in Pango — the upper bit is free for us to use. So we modified the program that computes the lookup table, and put the new table into the code“. The entire post is comprised of heavy technical discussion about the problems and tell-tale performance issues and then at the end summarises with “ In total, we have managed to kill around 24% of the original running time. Not bad for two days of work on a seemingly-intractable flat profile!” Amazing.

Not content with just hacking the file chooser performance, Federico went on to have a fiddle with OpenOffice.org Calc performance. Although he confesses that the speed improvements need to be factored in by an established OpenOffice.org developer, it seems from his post that his knowledge of identifying performance bottlenecks in GNOME helped in identifying similar problems in OpenOffice.org.

Recently, Federico has not been the only person blogging about OpenOffice.org optimisation. Michael Meeks, insanely clever gent and long time OpenOffice.org poker has also been buffing the free software office suite. Michael also has the ability to both baffle and excite in his short but accurate blog entries. Gems such as “Need to work out why we loose 260ms without using any of the -Bdirect stuff; an unusually large amount of time. Interestingly 75% is about the upper limit I’d expect by analysis of the relocations, many of which are vague-linkage type info related.” and “Saved 400k over all OO.o libraries by stripping the .comment sections (full of “GCC: (GNU) 4.0.2 20050901 (prerelease) (SUSE Linux)” over and over again).” demonstrate more fascinating experiments into profiling.

What I find so interesting about Waldo’s, Federico’s and Michael’s work is that they are playing with something of a black-art. Performance optimisation is something that not only requires an expansive knowledge of how software is built and represented in memory, but also how to optimise code and the way code is interpreted. I find it fascinating in the same way that kernel hacking is so intriguing. The difference is that my coding is entirely exposed within a software platform, and every action, effect and result is displayed and interpreted with the usual screen, keyboard and mouse. Writing code that makes motors turn, lights flash, network cards transmit, LCD panels glow and remote controls respond is incredible. This kind of profiling does just that. It takes the rather safe and transient world of application development, turns it on its head and draws conclusions.

The work that these chaps and others like them are doing is really important, and I can’t stress it enough. Years back, performance was always a card we could play to move people over to an Open Source OS, but recently the system has become rather bloated and sluggish. Federico’s efforts into the file picker are a great example of a devotion to really refine something to the n’th level. A lesser soul may have performed some initial optimisations and then given up. To write eight parts that chronicle the full gamut of the file picker performance issues is a real achievement. Just imagine if Federico did that to every base component in the GNOME desktop.

What do you think? Have you done any profiling work? Can you suggest a place for interesting hackers to start profiling and optimising applications?

AddThis Social Bookmark Button

Related link: http://www.whereihadmyfirstkiss.com/

The random things that people think to do with mapping information: where I had my first kiss . com

AddThis Social Bookmark Button

What’s been happening in the BSD and friends world in the last
couple of months.

Worth Reading

Misc Reading

EuroBSDCon 2005

Basel, Switzerland - 25-27 November

RSS Aggregation of news

OpenBSD

RAID Management in 3.8

(this rocks)

Pre-Orders for 3.8

3.8 Song

Misc

IPMI support

‘Nightmare’ drove desperate user to open source

G5 support in progress

NetBSD

tmpfs integrated

“NetBSD and my life”

(can be said for all the BSDs)

A package manager for pkgsrc

(doing as a third party what the OpenBSD pkg tools do by default)

Misc

FreeBSD

FreeBSD 6.0 Beta 4

Interview with Scott Long

New website launched

DragonFlyBSD

Dragonfly to use pkgsrc

DragonFly at NYCBSDCon

Intricacies of Journalling

Apple

XAR

“The XAR project aims to provide an easily extensible archive format”

iPod nano

iTunes handles video

After a intermittent few months, hopefully this will now stay
on a monthly schedule.

Advertisement