May 18, 2009

Simple Object Interactions

Here's a relatively simple piece of code that shows how easy it is to have Python objects interact. It's fairly standard stuff, so it probably won't be interesting to old hands, but if you haven't been using object-oriented programming very long then it might make a point or two.

Note that the code is in Python 3, though it will actually run on earlier versions, the printing will just be slightly different.
#
# Calling all reactive agents (with apologies to William Burroughs)
#
class Simulation:

def __init__(self, howmany):
self.agents = []
for i in range(howmany):
self.agents.append(Agent(self, i))

def showImportant(self, agent):
return "Agent: %d simulation: %d" % (agent.number, id(self))

def listAgents(self):
for a in self.agents:
a.showMe()

class Agent:

def __init__(self, sim, number):
self.sim = sim
self.number = number

def showMe(self):
print("Agent", self.number, "reporting:")
result = self.sim.showImportant(self)
print(result)

s = Simulation(3)
s.listAgents()
So, we start out with a class whose __init__() method is called with one argument, the number of agents to create. It creates a list of that many agents as its agents attribute. Note that when the Agent is created the Simulation instance passes itself as an argument to the Agent creator, and the Agent.__init__() method saves the reference to the Simulation instance as the Agent's sim instance variable.

Colloquially we could say that each Agent "knows" which Simulation it's a part of. So an Agent is able to call the methods of the simulation that it's a part of. This makes it possible to devise agents that call various simulation methods, and to incorporate them in several different simulations which implement those methods differently.

When building large data structures with this kind of pattern, by the way, it's important to note that the references are circular (simulations refer to agents, and agents refer to simulations). The garbage collector in older versions of Python would have real difficulties with structures such as the ones created in the code above. In essence it would say to itself "Well, I can't delete the simulation until I have deleted all the agents it refers to." Then it would look at all the agents, and for each one it would say to itself "I can't delete this until I have deleted the simulation it refers to". An unintelligent garbage collection might get stuck in an infinite loop here, but Python's garbage collector has never been that stupid.

Nowadays, I am happy to say, in Python 2 or 3 the collector is able to recognize these cyclic references and, as long as there are no references to such a structure from the outside, will (eventually) reclaim the space.

Next time we'll consider how a simulation might use several types of agents, still providing common behavior for them all.

May 17, 2009

Python is So Versatile

Even though I use Python all the time, and I am well-connected in the Python world, so much is happening that it's difficult to stay in touch with everything Python. Taking a look at the Python Package Index, in just the last 24 hours there have been over 40 submissions. Not all of them will be new releases, but it's instructive to take a look at what's come in to PyPI as an indication of the breadth of applications in which Python is used. Rather than list all 40 submissions available from the RSS feed, let's just take a look at some of the more interesting items.

You could use the new release of Dumbo to write programs in Hadoop, the language for specifying massively parallel map-reduce computations. With AMFast you could create rich Internet applications using Flash remoting. If you wanted to write a Unix daemon in Python you could use the python-daemon library that implements PEP 3143. You could write a network time client with ntplib.

If you wanted to add automated image processing to your Django web application you could do it with django-imagekit, or you could add AJAX with Dajax. To make it useful to a broader audience you could add django-bidi-utils to handle bi-directional text.

You might want to analyze some PDF files, in which case you could use pdfminer. If you are more interested in structural bioinformatics research then Biskit might be more your cup of tea. With all this complex software flying around you might need a program to handle a structured to-do list, and Task Coach would be ready and waiting for you.

There's also a slew of Zope and Plone components to add to these already very capable systems. Python is just so versatile!

May 16, 2009

Python Booth at OSCON

For the first time this year Python will have a booth at OSCON, thanks to the good offices of Aahz. If you'd like to keep the Python banner flying over the exhibition hall I am sure he could do with some help.

What's the point? Well, certainly it will help to raise awareness of the language, which can only be a good thing. Having a booth puts a human face on Python and gives people a chance to get first-hand information rather than being filtered through other people's prejudices. OSCON is probably the largest open source conference in the world, so it's a good place to advertise the best open source language in the world.

The Python Software Foundation will be funding a large banner, and whatever else is required. I am sure Aahz will be happy to have suggestions and (most especially) offers of assistance. I've spent time in the past manning exhibition stands, and while it's interesting to meet a wide range of people it can be surprisingly tiring, so a one-man effort won't be enough. You can subscribe to the Python OSCON mailing list if you are interested in helping with either or both of the planning and execution.

May 14, 2009

Help Files Should Help, Right?

Microsoft Documentation Sucks
God knows I've had my complaints about Microsoft documentation in the past. Often about manuals consisting mostly of descriptions of the following nature:
Threep Nardling
To nardle threeps, select the Threep tab and check the Nardling checkbox.
Frankly this kind of documentation is worse than useless - it elevates statement of the bleeding obvious to new heights, and frustrates all users with at least one eye and half a brain. If you don't know what a threep is, or when it might usefully be nardled, the implication is that you are in the wrong place (though quite where else you would be expected to go for this information escapes me).

Ubuntu/Gnome Documentation Sucks
That said, I hope I am setting myself up for a fall here. I've just installed a number of Ubuntu 8.04 virtuals (because I want to be compatible with a client environment, since you ask), and I have been having problems getting the network interfaces to behave. So I go to the help file for the GUI-based networking tool so kindly provided, and the main portion is filled with this sort of idiocy:

The really annoying piece is that I went to the help file to try and get an understanding of the roaming mode, only to discover that this steaming pile of placemarkers* masquerading as documentation contains zero mention of the one interface feature I needed to know about. They could at least have had a section saying "Check this box to put the interface into roaming mode".

I am really hoping that this documentation has improved a lot in the two versions of Ubuntu that have been released since 8.04. If not, then it's time somebody (either at the Gnome Foundation or at Canonical) started to give some serious attention to documentation. Help files that don't help are a major source of end-user frustration.

Somebody, please put me out of my misery and tell me that this nonsense is gone in more recent releases. Otherwise I might just have to go home and bang my head against the wall.

The Real Problem
All of this is merely subsidiary to the real issue, which is how to I get a VirtualBox Ubuntu guest running under a Windows Vista host to track changes in the Vista internet connectivity. It seems like every time I change locations I have to spend time tweaking settings on the virtuals, rebooting uselessly and generally poking things until I get them to work without any clear idea of the eventually successful strategy.

So, dear lazyweb, please help me. If there's a manual that explains this I'd be happy to make a donation to its author. The open source world should, in my less than humbe opinion, value good documentation as much as (or more than) good code. Once you get past the obvious, the docs help you more than the code.

* Admit it, you though I was going to write "dung" there, didn't you? I am trying to eschew the obvious.

May 10, 2009

SCO's Inevitable End Moves Closer

A recent development in SCO's Chapter 11 bankruptcy takes the company still closer to its inevitable final demise. Groklaw reports that the US trustee has filed a motion to convert the bankruptcy proceedings from Chapter 11 (reorganization under protection from creditors) to Chapter 7 (liquidation of the business).

Darl McBride, somewhat predictably, is quoted as saying he was surprised by the decision, and that the company will fight it. This doesn't hide the fact that a bankrupt strategy will lead to a bankrupt company. The current stock price of $0.15 capitalizes the company at just over $3 million. How are the mighty fallen.

April 30, 2009

Another Award for Python

With the month of May comes notification from Linux Journal that Python has won their 2009 Readers' Choice Award for Favorite Programming Language, narrowly beating C++ and Java. The favorite scripting language was bash.

Last year there were some fairly obscure rules about what constituted a programming language and a scripting language. This year the readers themselves decided, and Python also did quite well in the second category.

“In an industry conceived, created and driven by peers, an accolade from the community is the highest compliment you can get,” said Linux Journal publisher Carlie Fairchild. She's right, and it's nice to know that Python's mindshare continues to increase.

April 28, 2009

God Bless, Mum

You may remember that last year I entered (walked) the Race for Hope, a charity even in support of the attempt to find a cure for brain tumors. It was particularly appropriate as a family friend had recently been diagnosed with a brain tumor, and we didn't at that time know what her prognosis was. Happily it looks as though she will survive, albeit with some attendant problems.

I am entering the walk again, but this year I will be making a personal contribution as I have another charity in mind for a more public appeal. Some readers may know that my mother died recently (on Saturday March 28, in fact, the middle day of PyCon). She'd been in failing health, so her death didn't come as a surprise, but if you'd been wondering why I wasn't my usual bubbly self at PyCon that was the reason why.

Rather than have people send flowers to the funeral the family decided we would look for a deserving charity, and ask people to make contributions to that instead. Mum was a midwife, with a healthy interest in the third world—she even took Urdu lessons at one point, and so the charity we chose was Safe Hands for Mothers. I hope that readers will support them through this page (for US donors the CAF link is easiest if you want to give money, just remember to click the "I don't live in the UK" button before entering your address).They are trying to help communities like those in sub-Saharan Africa, where mothers face a 1 in 16 chance of dying during pregnancy and childbirth.

Their web site doesn't have any way to record donations against a particular name, so I'd appreciate it if you would add a comment here should you decide to make a donation. We have so much in the way of material wealth in the United States and the rest of the Western world, and our gifts can make a huge difference to less fortunate individuals. Over 1,400 mothers die every day, many of them from avoidable complications. Please try and help them if you can. Thanks.

April 20, 2009

Sun to Become Part of Oracle

I'm not a great one for handing out stock tips, but when I said a month ago that Sun Microsystems was worth buying at $8 it looked like I was wrong when the IBM acquisition talks fell through. Just the same I held on, and now it looks like I'll be able to take a $1.50 profit when Oracle buy the company in the summer. Of course buying after the talks failed made even more sense, as Alex Martelli wisely pointed out in a comment. Thanks, Alex!

April 10, 2009

Django Hangovers

I think my spell checker is trying to tell me something!

April 9, 2009

Django Dash

Fancy you and a buddy writing the spiffiest Django application of all in 48 hours? Sounds like a great way to spend the weekend. Well, geek, Django Dash might just be for you. Teams of three (or less, but this is supposed to be fun) compete to do just that.

April 6, 2009

WTF, StumbleUpon?

StumbleUpon is a web service I use for occasional amusement - you register your "interests" and it shows you pseudo-random allegedly-related web pages. There's even a toolbar, which I was silly enough to install for those long evenings when there's nothing on the television and the clients aren't screaming loud enough to get my attention.

Unfortunately it just stopped being funny. I wanted to search my browser history for a specific page, and suddenly I see hundreds of entries, which I am absolutely sure are not a part of my browsing history (I would know if I had seen this page before), listed as "refer.php" whose content reads (typically) "One of our members added your page to the Humor topic on StumbleUpon." Here's a typical example.

So until I get an explanation telling me that either it's a Firefox bug (and we all know how rare those are) or StumbleUpon publicly grovel to get me back they are out, and the toolbar is history, and I won't be going back.

Twitter is currently down for unscheduled maintenance

Talk about being a victim of your own success. Twitter has become my social networking tool of choice, but I wish the service were more reliable. It's just flaked for what seems like the tenth time in the last month, and now only displays the above message when you try and access it. You might regard that as the "this page intentionally left blank" of the web 2.0 world.

Of course the original design inevitably meant that the service is faced with scalability problems, but Twitter hasn't helped matters by providing tools for "weblebrities" like auto-follow (automatically following someone who follows you). Us regular no-hopers, of course, wonder exactly what the point is: if you have 10,000+ followers on Twitter it's self evident that you couldn't give a bugger what any of them are tweeting, which makes the whole thing a rather vacuous exercise to those of us who prefer two-way communications to broadcasts.

I've actually been a member of the open source identi.ca site since OSCON, and while I think it's great that there's an alternative I haven't yet found it compelling enough to be more than an occasional visitor.

Like email spam it's becoming obvious that whenever a new phenomenon arises in the technical world, once it becomes public knowledge the traditional spoilers (marketdroids, celebrities and the like) will climb aboard and screw it up for everyone else. They just haven't realised yet that the rest of the world is just one short step away from telling them to get the hell out. There are a lot of dinosaurs walking around right now, wondering why they are feeling so warm.

April 2, 2009

PyCon Video: Even More Amazing!

I just learned from the PyCon Blog that all the video for the conference is expected to be available on-line at blip.tv by the end of Friday April 3, less than a week after the conference ended. This is indeed an awesome process, and the two videos already available via the PyCon web site shows that the quality problem that existed last year has been solved.

As I was one of the skeptics who thought we should maybe move to a professional video team I'd like to publicly take my hat off as chairman of the PSF to the dedicated team of volunteers under Carl Karsten who have made this possible.

Yet again I am compelled to say that PyCon rocks!

March 30, 2009

PyCon Proves Its Worth

Here's a great quote from Catherine Devlin's blog post Five Minutes at PyCon Changes Everything reporting the unexpected recruitment of a high-powered development team after giving a lightning talk:
If I'd had $1 million of startup funding to hire a staff to work on sqlpython, I couldn't have gotten a team that large or that talented. I figure that gives me better than a 1000-to-1 return on my PyCon investment. :)
It's also been extremely gratifying to discover that the dip in numbers (initial assessment says we were maybe 10% down on 2009) represents an amazing result. Apparently many conferences have seen attendance at 50% of last year's numbers, and some have simply canceled because the cancellation fees were a smaller that their expected loss.

This really vindicates the low-cost community-based approach that PyCon has always used. Several people told me that they booked to attend the conference without knowing whether they could get company approval, because they knew the conference was great value and they could afford to attend on their own dime. PyCon is a very special conference indeed, and the Python community makes remarkable things happen there every year.

PyCon 2010: Hyatt Regency Atlanta

I would like to thank everybody who came to this year's conference. In discussions with the banqueting and other staff it's become clear that as far as conferences go PyCon is a delight to cater for! We aren't too demanding, we don't mess the place up too badly and we have brought a large chunk of much-needed business to the local hotel industry.

With that said, and before the sprints are more than just starting, I thought I would try to whet your appetite for next year's conference, which will be at the Hyatt Regency Atlanta. In October of last year I added an extra day to the beginning of a business trip to Atlanta to meet Ewa Jadlowska of CTE (the conference organizers who help the PyCon organizers to organize) in Atlanta and inspect four possible venues. I sent in a report to David Goodger, and CTE continued to negotiate with the venues. Ultimately the Hyatt bid was successful, and so I thought these snapshots I took at the time of my visit might be of interest to those who like to see where they are going in advance.

The 22-story lobby greets you at ground level and draws you in. The general flavor is somewhat similar to that in the Hyatt Regency O'Hare we just occupied, but the extra height and larger area makes it even more impressive, though the elevators don't have fancy colored lights underneath them. The view of this space from about halfway up gives you an impression of its size.

There's a purpose-built registration office that should come in useful, and the audio-visual guys will be interested to hear that the main ballroom area has a balcony (from whence I shot this picture) for their use so that they can view the session without intruding on it. The height of the ballroom leaves nobody feeling claustrophobic.

The room I stayed in (which might have been rather up-market because I wasn't a secret shopper and they wanted to impress me) was large, clean and comfortable. Rather than show that I photographed a regular room, which is likely to give you a better idea of how comfortable you will be.

All in all I think PyCon will have a great time in Atlanta, and I am already looking forward to it. See you there?

March 28, 2009

PyCon 2009 Day 1

Way too much stuff going on to fully describe it. I should already be in bed, as tomorrow I want to be up early enough to see Jesse Noller's lightning talk: he had me do some graphics for him (so for Heaven's sake don't expect anything classy - we haz gimp but do not really know how to use it :)

Finally got to read Kirby Urner's instantaneous blog of my tutorial session yesterday. Great verisimilitude, lends an authentic flavor to his description.

PSF Members' meeting at lunchtime gave very good results: all members and sponsor members elected/ratified, board now expanded to 10, new bylaws adopted (thanks, Stephan Deibel) and motion to discard logo trademark protection defeated.

My presentation The State of the Python Community: Leading the Python Tribe took too long to present as I didn't have time to shorten the slide presentation, so I only had ten minutes to exchange ideas, but discussions afterwards made it obvious that some people with valuable information are intimidated by the level of research and/or determination it takes to get through to someone who can update the web site. Also there is a lot of enthusiasm to help the PSF. Apparently Jacob Kaplan-Moss is at least toying with the idea of stepping up to help the PSF volunteer web team. That would rock.

Brief hiatus followed by a short Board meeting. I am chairman for another year, and we decided on a couple of Python Community Awards. I was stunned (in the most pleasant way) to be able to view a recording of my session in the Green Room two hours after I had started presenting it! Way to go, audio-visual guys. When this stuff hits the met it will make tech news. They really *are* good.

On to dinner with my Board colleagues plus Allison Randal of the Parrot Foundation, Liew Beng Keat from the Singapore user group and Luciano Ramahlo of Brazil. The Board's only chance to socialize through the face, so an important occasion even if the table was a little long and narrow to allow round-table communication.

Then back to the hotel for a quick drink, a look at today's tweets and a bout of email responding before finally capsizing into bed after finishing this post. Always busy at PyCon. Time flies when you are enjoying yourself. More tomorrow ...

March 27, 2009

Chairman's Challenge for PyCon Delegates

I was originally hoping to offer an enormous prize for the best delegate video of PyCon, so I could put it up on python.tv, (sorry about the currently-parked domain status - I am at a conference!) but I didn't get my stuff together despite good advice from Leslie Hawthorn. The better the advice the worse it's wasted, I guess. Sorry, Leslie.

Anyway, absent any clear probability of video appearing (and if video does appear then I will judge it and award a prize) I have decided to issue a challenge to those delegates with electronics knowledge and a practical bent. I have brought to the conference a (working) Arduino duemilanove board, an assembled but untested motor driver board, a prototyping breadboard, two power supplies, a butane powered soldering iron with solder and a shitload of electronic components.

I will award whichever delegate who (in my sole opinion) produces the best gadget by noon on Sunday a gift certificate for Elegant Stitches, the vendor who produces wearable Python regalia.

The first person to find me or the stash of components should find a corner of an Open Space room somewhere that can be used by anyone wishing to take up the challenge. Extra points for proving the motor driver board as either good or bad (but convincing evidence will be required).

Delegates working in teams will be given extra credit and will receive more generous consideration in the event of a win. Entries to me in person or via the registration desk team.

Even if you don't want to seek a prize, feel free to play with the bits and pieces if you have any electronics knowledge. The Arduino is an interesting little device, and it would be great to have Python support for it.

PyCon Tutorial Slides

My PyCon tutorial attendance was closed at 60 students, but there were a few spare seats still due to dropouts and such. Next year some way of allowing wait-listed students the flexibility of a last-minute change would be a small improvement.

Extremely happy that this is the most negative thing I can imagine saying about the way Greg Lindstrom and his team ran the tutorials. As a presenter I have nothing but praise for the way the organization supported me: all I had to do was follow the line of least resistance. That always makes it easy for a presenter.

Please post any questions or corrections about the slides as comments.

Thanks to everyone who supported PyCon by coming to the tutorial. What should I do next year (when I think I will limit myself to one)?

March 19, 2009

Sun Microsystems in Play

For a couple of days now Sun's stock has been the subject of speculation due to IBM's wish to acquire the company. Strangely enough the company would have been worth more a month ago, since IBM's interest is unlikely to be in Sun's hardware range (which IBM would be well advised to spin off as no longer a part of their core competency).

No. IBM's interest in Sun is its software, which in turn means its people. So the price would have been higher before Sun's recent round of layoffs. If the deal goes ahead it's an unfortunate fact that many remaining Sun employees will lose their jobs because there will be duplication of administrative functions. I doubt, though, that many of those with higher-level technical skills will find themselves redundant, as they are the basis of the $7bn valuation of Sun.

I should have bought Sun stock at $4 a year ago (but didn't, for reasons I won't bother to go into here). But I think even at $8 I'll manage to make a modest profit on them.

March 18, 2009

PyCon Web Registration Closes Today

If you are planning to register for PyCon before you arrive at the venue, save yourself some money and do it on the web before web registration closes.

March 14, 2009

New Training Policy

OK, from now on every public Holden Web Python class is going to have at least two free places available for open source programmers. We are running a quarterly schedule right now. The next Introduction to Python class runs on yet-to-be-announced dates in September: the June class was canceled due to bereavement.

If you know someone who might benefit, please ask them to contact me to get themselves on the waiting list.

March 12, 2009

United Gets Lost Luggage Right

Earlier this week I flew back to Washington Dulles from Memphis via Chicago. Familiar story: short change, airplanes right next to each other, luggage transferred via central routing came on a later 'plane. The courteous assistant looked up my baggage details and led me to an entry terminal. He asked me to select the "OK to deliver by overnight service", which I did.

9:30 I get a call asking if it's OK to leave it tonight. I say "sure" and attach a signed note to the door asking the delivery service to leave the bag on the stoop.

Next morning I wake up and the bag is on the stoop. I've complained in the past when they've got it wrong.

So, this time, United, well done.

March 11, 2009

Lest We Doubt ...

You know your software is popular when people send you bacon in the mail. Jacob Kaplan Moss of the Django team certainly knew, because the people from bacn.com built a web business and said they "couldn't have done it without Django" in a note to Jacob ... with bacon enclosed.

Jacob captioned the image on Flickr "Do you have any idea how awesome it is receiving unsolicited bacon in the mail!?", which certainly winds up top of my list of questions most likely to receive the answer 'No'. He tweeted:
jacobian [...]! Just got BACON IN THE MAIL from the amazing people at bacn.com!
So, through those long dark nights as you try to stay awake long enough to compile your extension module, instead of wondering why you work on open source softwar, comfort yourself with the thought that someone may, one day, send ... bacon.

March 10, 2009

Microsoft Shoots Self in Foot in Iceland

Since Holden Web has a modest interest in the Icelandic economy it's nice to see a major competitor's decision to unleash their draconian rapacious capitalist instincts has met with a swift kick in the gonads by way of a prompt reply.

Making design decisions about Icelandic markets in Redmond is like making design decisions about Europe in Detroit, say. Now major resellers in Iceland are realizing that the local market trusts them far more than Microsoft to say what's best for the Icelandic markets. And why wouldn't it? Unsurprisingly the vendors now prefer open source, so more revenue stays in Iceland.

Hey, Icelandic guys, welcome to the open source community. What's more you an train a generation of open source programmers who understand Icelandic. This could even help the long-term survival of the Icelandic language itself.

Congrats to Simon Willison

Simon tweeted recently to announce that the launch of the Guardian Open Platform appeared to have gone well. Clearly this is a newspaper management that "gets it", and the service looks fascinating from a technical point of view.

I am hoping to find out how easily information services can be built on this content.

The Guardian is one of the things I miss from back home. During my time back in Scotland it became a real pleasure to drop in at the newsagents near the station for a copy of The Guardian. So now I can at least get the content.

Congratulations, Simon! I am really looking forward to hearing about this development project at PyCon in a couple of weeks. Or at EuroPython later this summer

The Guardian Goes Open


So, some newspapers do appear to "get" the open source phenomenon. I linked recently to Washington Port open source software and now in the UK a national daily newspaper has opened access to its content. Hooray for the Guardian! Though I think you'll find if you look at the top left that they have made a typographical error in their masthead

Nice to see a Python application advertising on the Open Platform site. [Edited after correction from Simon Willison] Of course the Open Platform application is in Java/Spring. The client-side application, however, is in Python. So that gives anyone who already knows Python (say, the growing army of Google App Engine programmers) a head start.

Get to it, Python tribe!

March 8, 2009

Python Success Story Graphics Wanted

Andrew Kuchling points out today that he has a patch ready for testig that would allow us to see different Python success stories (typically but not necessarily links to stories featured in the python.org success stories). The idea appears to be to supplant the space walker with other images from the righ and varied world of Python applications.

The format is 240 x 90 pixels, so look over the success stories and see what you can concoct. Below are three that I did with simple screenshot techniques using SnagIt (tm).

Can you do as well, or better? This could brighten up the home page a bit ...

March 5, 2009

Been Busy Lately

Amused to notice just now I am 2740 messages behind on django-users. That list is a firehose!

February 25, 2009

Free Python Training

Free training worth $1,195? Yes, it's true, though naturally this offer isn't just for anyone. But if you want to learn Python for nothing and you are (or can be) close to Washington DC next week, this could be your chance.

I'd like to spread Python even further throughout the open source world, and Holden Web is running a three-day Introduction to Python class with open places next week (Tuesday March 3 to Thursday March 5). If you are a contributor to an existing open source project then please contact me to confirm your place.

That's it. The only requirement is that you must have already made public contributions to some open source project. My decision on who gets free places is final and I reserve the right to accept or refuse any application. The number of free places is limited. If you need accommodation that will be your responsibility. To thank you for your open source work Holden Web will even provide your course notes, and a free lunch each day of class.

Pythonistas: if there's anyone in the open source world you'd like to learn Python, please let them know about this possibly one-time-only offer.

If anyone would like to buy a place on the class, of course, we'll be happy to accommodate you there too! Just click the handy dandy buy now button on the courses page to get started!


February 24, 2009

How Marketing Sucks (pt. 117)

I came across this interesting (but sadly totally predictable) little snippet in a marketing blog (which, to be fair, did point out that this technique is appalling) today. Apparently Jenny lives in Brooklyn, NY.

But wait, there's more, she also lives in Pensacola, FL:


Make user geolocation possible and marketers will use it to add false appeal to advertising claims by pretending to have local consumers using their products. No wonder that marketers are held in such high esteem.

The web used to be a place of wonder. Now, sadly, much of it is about as interesting as commercial television. I wonder if a lobotomy would help (me, that is)?

Would You Buy Training on eBay?

We have spare places on next week's Introduction to Python class, and given that our costs are covered I am thinking of offering the remaining places with a fairly low reserve on eBay. Is this a good idea?

February 21, 2009

Last Day For PyCon Early Bird Pricing!

Remember that today (Saturday February 21) is the last day you can register for PyCon at early bird prices. Even at the full rates it's a bargain, but for sheer value the early bird pricing is perhaps the best value technical conference in North America.

So go do it now. Not only is PyCon excellent technically, the Python community is one of the most friendly and welcoming crowds around. Come and find out what all the fuss is about!

February 17, 2009

Sell the Sizzle, Not the Sausage

I was pushed into thinking about open source adoption by another thoughtful Seth Godin blog post today. Seth points out that decisions are not always made in the way we'd like to think they are. We know that open source makes sense, but people still refuse to adopt it for what we in the open source world tend to consider irrational reasons. But of course a) people aren't always rational, and b) even when they are, they have motivations we may be unaware of, or (more likely) paying insufficient attention to.

This brings up a point that's commonly known in the commercial sales world and almost completely ignored by the open source community. We focus way too much on the wonderful feature set of our "products", and nowhere near enough on the needs of our "customers". So when you visit python.org for your first introduction to the language, you learn
Python is a dynamic object-oriented programming language that can be used for many kinds of software development. It offers strong support for integration with other languages and tools, comes with extensive standard libraries, and can be learned in a few days. Many Python programmers report substantial productivity gains and feel the language encourages the development of higher quality, more maintainable code.
The potential adopter isn't bothered about the features of open source software, they need to know the benefits. In other words, what's in it for them? A first-cut rework might read
Python lets you get more programming done faster, and helps you integrate your systems more effectively. You can train your existing programmers to use Python and see almost immediate gains in productivity and lower expenditures on maintenance.
Now I don't claim to be a marketing professional, but even I can see that this addresses the problems of the user more directly than the current text. A lot of open source people see the word "marketing" and shriek because they perceive it as being intimately connected with the world of proprietary products and commercial licensing. Which it is, but it doesn't have to be. There's no reason at all why open source and free software shouldn't take a page from the proprietary book and start marketing itself more aggressively.

In fact I like that blurb so much it's going straight into the Holden Web Python training page! I just know that someone properly trained in marketing could do much, much better. If the goal is to get more people to adopt Python, what's wrong with using the best techniques from the proprietary world and bending them to our own ends?

February 15, 2009

Help Publicize PyCon

It's going to be difficult to get PyCon to exceed last year's numbers given the parlous state of the economy. One way you can help is to make yourself a part of its publicity campaign. The organizers have just come up with some great badges. Put them on your blog, use them in your email sigs, add them to your web sites, and most of all don't forget to actually link them to the PyCon site!

February 13, 2009

Impress Me ...

Dear Lazy Web:

I've created a presentation for PyCon and I want to publish it as a PDF. Open Office seems like the best bet (yes, I created in it PowerPoint, but I did have my reasons, honest).

Unfortunately I can't seem to find a way to get Impress to produce a PDF containing only the notes pages (each slide with its notes underneath); it insists on putting all the slides in before it starts on the notes pages. This is probably just some UI aspect that I am unfamiliar with and can't find. But it would be really nice to know how to do this.

So, PowerPoint slides to PDF, what's my best path without involving more proprietary software?

regards
 Steve

February 12, 2009

Seven Year Itch?

Today is the seventh anniversary of this blog. I don't know how many people were blogging back then, but there sure are a hell of a lot more now!

Gmail Labels Google Alerts as Spam

I wondered a while ago why I wasn't seeing my Google alerts, and discovered today that's because Gmail is throwing them away as spam. I don't remember ever doing anything that might have triggered such behavior. Left hand, meet right hand ...

Blogger UI Mistake?

From the Blogger help database here's a list of keyboard shortcuts:
  • control + b = Bold
  • control + i = Italic
  • control + l = Blockquote (when in HTML-mode only)
  • control + z = Undo
  • control + y = Redo
  • control + shift + a = Link
  • control + shift + p = Preview
  • control + d = Save as Draft
  • control + p = Publish Post
  • control + s = Autosave and keep editing
  • control + g = Indic transliteration
I can't help feeling that it might be a mistake for the two entries I have marked in red to be so close. Especially when there's no "unpublish" button ...

PyCon Open Space Session Idea

I just saw Mark Cuban's Open Source Funding blog post (as many interesting ideas do, this one came my way via Seth Godin). If anyone in the Python world is looking to fund new ideas then this might be worth looking at, given that they will already have a predisposition to open source anyway. So here's an idea for a PyCon session.

Get together in an Open Space room with a few like-minded individuals and see if you can't come up with a plan for a real cash-generating business that Cuban would fund. As far as I can see from the first 684 responses there's still a lot of room for real business plans. If you need cash this would be a good way to get it, and who knows - you might find a way of getting the business off the ground without cash, thereby avoiding the need to hand over a chunk of your equity!

If you are looking for a way to start a new business it's hard to think of a better pool of Python talent than the one that congregates at PyCon every year. As far as ideas goes, PyCon might also be a good place to collect those. Most of these aren't computer-related, but here's a list of 999 business ideas that anyone could consider. Why shouldn't the Python world have a similar list?

February 9, 2009

PSF Policy Neither Stickist nor Hattist

While I could not go so far as to say that some of my best friends are hat-wearing stick-people, I would like to vociferously reject any suggestion that the Python Software Foundation is in any way stickist or hattist. The recent PyCon blog entry was not approved in advance by the PSF Board, and can in no way be said to represent the views of anyone but the PyCon organizers.

If I had my way these people would end up talking to the PSU before

Do Not Visit xkcd

In a not-usually-required follow-up post to my original note [translation: "somebody appears to have read one of my posts"] I have to express in the strongest terms my support of the PyCon organizers' policy vis a vis Randall Munroe and urge both my readers to under no circumstances visit the primary source of this poison at xkcd.org. Some of the material there is such that no sensible person would ever consider publishing a link to it, let alone two.

Some of this material is of an adult nature. You have been warned.

Randall Munroe Banned from PyCon

Wow, this will get tongues wagging! As PSF chair I hardly know what to make of this.

February 5, 2009

Teach Me Web Testing

Thanks to Grig Gheorghiu for agreeing to involve the web testing community in my up-coming Open Space Teach Me Web Testing session at PyCon in March. Thanks also to Doug Napoleone, who has done his usual excellent job on the PyCon web site and has harnessed a bit of Google technology to provide a web page that allows you to add topics to a list and to vote those topics up and down. The session will attempt to address the user-provided and -prioritized issues in more or less the order they eventually end up on that list.

This session is inspired by last year's Teach Me Twisted, where the Twisted community generously came along and tried to educate me about their excellent asynchronous networking software.

I have no idea how this year's session could be as much fun as last year's, but I am going to do my best to enjoy it even though it's rather intimidating facing a room with no real plan as to how the session is going to proceed (except for the knowledge that one's ignorance will be the focus of the event). Just the same I hope everyone with an interest in web testing will come along, have a little fun and hopefully learn something too.

February 3, 2009

On the Take?

While we're at it, what about politicians like Tom Daschle, who now says he's "deeply embarrassed and disappointed" about his failure to pay more than $120,000 in taxes. Seems to me that being a senator should be a full-time job or, if not actually full-time, it should keep you busy enough to preclude your earning $5.2 million advising people in the industries the government is supposed to be regulating. [UPDATE: Daschle earned this money after standing down as a senator].

I believe Daschle is Obama's poorest pick yet, and this choice of nomination for the head of Health and Human Services seriously threatens to undermine Obama's credibility. Even ignoring the fact that the guy might (or might not) be a tax cheat ("What, you want me to join the cabinet? Damn, I'd better undo a few lies") Daschle owes the health services industry a lot, and he's unlikely to turn and bite the hand that's fed him once he joins the cabinet.

So think again, President Obama and the Senate Finance Committee. This is one nomination that shouldn't be confirmed. Let Senator Daschle retire on his nest-egg and let's see whether we can't actually give the Office of Government Ethics some teeth. Or maybe $5.2 million isn't enough ...

Jobs for Life?

One question I have to ask about the financial world. The largest financial organization in the world have clearly been managed by people who have failed to take to heart the lessons of Fooled by Randomness. In fact they don't even seem to be aware that the past does not always allow you to predict the future, except when their undertakings need billions of dollars and suddenly become "too big to fail".

So how come these people are still in their jobs? I think we can do without the Gordon Gekkos in Wall Street and the City, thank you very much. If they won't do the work without being paid huge bonuses perhaps it's time to look for people who know what "enough"means.

There's been a suggestion that nobody in one of the banks that the US government has recently invested heavily in should earn more than the US President ($400,000 when Bush was in office). I think that's a great idea. If the fat cats won't take a pay cut, let them find better-paid work elsewhere.

January 28, 2009

PyCon Tutorial: Terrific Response

I've just seen the statistics sent out after the day one signups for PyCon tutorials, and Python 401: Some Advanced Topics already has eight signups! Thanks very much to everyone who has shown so much confidence in this tutorial. If there are specific points you'd like to make about your expectations of the session then please let me know here.

Ken Whitesell has already made one suggestion, which I am going to try and adopt. Thanks for the feedback, Ken.

Google Groups Plus

OK, I have tired of having ideas that I never get around to implementing, so I am going to take a page out of Seth Godin's book and just write this thing up so somebody with more time and inclination can get rich from doing it. Or at least provide a service to people who could use it.

It's time that Google Groups (or at least some of them) were available via NNTP. Sure, I can use the somewhat quirky and always less than satisfactory web interface that Google provide. Or I could set the groups I am interested in to deliver the posts via email. But an NNTP client would just be so much more convenient and usable. So what we need is a system that scrapes Google Groups and offers NNTP access to the resulting content.

There is, of course, the minor issue of Google's terms of service. The most significant part says:
Google authorizes you to view and download a single copy of the Materials solely for your personal, non-commercial use. You may not sell or modify the Materials or reproduce, display, publicly perform, distribute, or otherwise use the Materials in any way for any public or commercial purpose without the written permission of Google. Special rules may apply to the use of certain software and other items provided via the Services, and are noted where appropriate.

If you would like information about obtaining Google's permission to use any of the Materials on your Web site, please send an e-mail to groups-support@google.com.
So we will have to persuade Google not to be evil - I imagine they will be upset not to be able to insert advertising in the stream, but if they did that wouldn't be Usenet, now would it? I would hope Google would be mindful of how they came by the archival content that started this venture in determining how to license the materials.

I know there are people in the Python world who could put this together in under a week.

While I am dealing in quirky ideas, here's another one, in this case to monitor (and hopefully control) spending on government credit cards. Could this work?

January 27, 2009

Snakebite.org Announced: Get Bitten by the Python Bug!

Things are looking up! I mentioned Trent Nelson's snakebite.org in my Python Magazine column a while ago, but at that point everything was still in stealth mode, so you couldn't get much information about what was going on from the web site.

That's all over now, because yesterday Trent mailed the python-dev list to announce the forthcoming availability of the network, which far from being "a couple of clunky old boxes off eBay" turns out to be the makings of a comprehensive distributed test and development network, with hardware and software contributions from major companies, that's going to be the envy of the open source world.

I know that Trent has larger plans for snakebite.org, but on behalf of the Python community I would like to thank him (and a cast of many others) not only for his munificence but also for the incredibly hard work that's been done to bring this project to fruition.

January 26, 2009

Monty Python Leads the Way

Showing the RIAA how do to it, the Monty Python team have released all their content to be freely viewed on YouTube. Guess what? Their sales on Amazon have increased over 200 times (23,000 percent).

The music industry will die before it adopts any kind of free content model, but open source has led the way and persuaded other people to try similar models. Lo, it turns out you can make a living giving things away!

So head over the the YouTube Monty Python channel and pick out your favorite sketches, but don't forget to by something.

January 22, 2009

PyCon 2009: The Magic Begins ...

I've just spent a half an hour reading the list of talks accepted for PyCon 2009. I think the Program Committee has done an excellent job this year [full disclosure: I am notionally a member of the PC, but was unable to attend any of its selection meetings] and their choices will make this the best PyCon yet.

There's information about packaging Python applications, using Stackless to speed up massively multi-player games, OpenGL graphics, testing, giving presentations (and presentation technology), scientific applications, ... you name it.

I challenge anyone with a practical interest in Python to spend three days at PyCon and not find so much of interest that they would like to be in two places at once at least some of the time. With luck the quality and quantity of video coming from this year's conference will increase once more, but watching the videos is definitely no substitute for being there.

PyCon is the most enjoyable conference I attend, and a jewel even among open source conferences. I haven't missed a single one so far, and I am not about to start this year. Be there!

[Note to speakers: every year PyCon offers help to speakers, both experienced and inexperienced, to help them be more effective presenters. Please take advantage of this facility, particularly if you are new to presenting at conferences: it can really help].

January 9, 2009

United.com Fail Again

I really love this one. Forget that when I go to the main site my browser already knows how to fill the Mileage Plus number and the password in already. OK, so they are using another domain to try to get me to pay ($1,400+!) to upgrade to Premier status. This is just so wrong. Why can't I put fricking spaces or dashes in the account number if it helps me? Are they really so hard to ignore? Give me a break.

Don't people realize it's this kind of obtuseness (in the middle of a journey, under great stress) that makes people go berserk? Over ten years ago I wrote some web callback software for a small but customer friendly 'phone company (with a fabulous domain name). I asked them what they wanted to do about number validation, and they just said "Throw anything away that isn't a digit". Is it really that hard for large companies like United to understand?

The ironic thing is, United are trying to sell me access to their lounges. I am sitting in Atlanta airport, waiting to fly United, and I am in the Delta lounge, because Delta take the Priority Pass that I buy annually for around $300. On the way down from DC I upgraded to first class, one of the reasons being I had plenty of time at the airport and thought it would be nice to use the lounge. Foiled again: only United international first class passengers get to use the lounge. So all I get for my $79 is a little extra legroom on a 2-hour flight. On only one occasion in the last five years did a friendly United staffer grant me access to the lounge because I was traveling with them even though I didn't have the right card with me. I will love her for ever - she treated me like a human being.

I am left wondering why on earth I bother to be a United frequent flyer. It's not that I fly that often any more, and I know all airlines suck, but I can't help feeling that United have this inbuilt self-destructive ability to suck harder than anybody else while they think they are succeeding. No wonder Untied.com is going from strength to strength. I am convinced the United management never fly incognito as economy passengers. If they did, they would realize what a crappy airline they are running.

January 5, 2009

Oldest Files Meme

Happy New Year! Brandon Rhodes started this meme, which seemed worth continuing to me.
  1. Run the following script in your home directory. (You might want to use less to read the output.)
  2. Ignore files whose date does not reflect your own activity.
  3. List the oldest files in a blog post and discuss!
#!/usr/bin/env python
"""Print last-modified times of files beneath '.', oldest first."""
import os, os.path, time
paths = ( os.path.join(b,f) for (b,ds,fs) in os.walk('.') for f in fs )
for mtime, path in sorted( (os.lstat(p).st_mtime, p) for p in paths ):
print time.strftime("%Y-%m-%d", time.localtime(mtime)), path
OK, omitting some font files I bought from Adobe, here are the results:
1988-02-12 ./tools/doc/classify.1
1988-02-12 ./tools/doc/getmail.1
1988-02-12 ./tools/doc/mailio.3l
1991-10-13 ./writing/wdp.rv
1992-08-10 ./chum/SCCS/s.sch.trm
The first three are manual pages for Icon programs that I wrote to handle email folders. classify filtered a mail file, ordering its messages by subject line; getmail extracted messages by number; and mailio was a primitive library used by the other utilities. Man, 21 years ago! Just in case you want to read the ancient manual pages I've linked each file name to its man2html output.

wdp.rv is a review I wrote, probably for the Sun UK User Group magazine, of the Island Software Write, Draw and Paint tools. I've been a writer or sorts all my life, and involved with user groups quite a lot, too.

s.sch.trm is the source control master (for the venerable SCCS source code control system that used to come on Sun workstiations) of a termcap file for a Wyse-60 terminal. I suppose I could use CSSC to try and revive it, but I don't know anyone nowadays who uses Wyse-60s. I can't think of any reason why I should have kept that file except for inertia.

I hadn't realised I've been using source code control so long. Although the SCCS files for most things are no longer in evidence I used it a lot at Sun from 1985. Other gems I came across that I'd completely forgotten about include a database publishing utility from 1994 that I used to drive FrameMaker from various databases, and a system that would merge the alias files from a bunch of UUCP sites to allow the use of simple email aliases rather than the bang-ridden paths that preceded the domain name system.

An interesting exercise in nostalgia. I think I'll allow them to live a bit longer.

December 28, 2008

PyCon 2009 Presentations

I've just been thinking about planning for PyCon, and I have a lot to do. The tutorial schedule is a little bare right now, but I am hoping it will be fleshed out soon. There are over 30 tutorials, two of which I am involved in.

Firstly I have to write Python 401: Some Advanced Topics (not my own choice of title), which is supposed to discuss iteration, generators, descriptors and metaclasses. These are all features of Python that could stand some more explanation, but I'd like to put a twist on the material and have the audience suggest potential applications that we can discuss as a part of the tutorial.

There's a second tutorial, Python for Teachers that I'll be presenting jointly with Kirby Urner. The idea behind this one is to try and enthuse those involved with formal education about Python's potential for teaching mathematics of various kinds. Kirby has a lot of experience doing that, and I am supposed to provide irreverent questioning and keep Kirby headed in the right direction. He's the education side, I represent the geeks, if you like. I'm really looking forward to it, but I owe Kirby email about those plans.

Then I have to give an invited talk which I believe will be a plenary session, though that hasn't been confirmed yet. My working title for this is Leading the Python Tribe, in which I want to investigate the shared sense of direction in the Python community, in so far as it currently exists, and offer some thoughts about the roles of the Python Software Foundation.

I am also hoping to run an Open Space session along the same lines as last year's Teach Me Twisted, but this time looking at web testing - an area I would really like to learn more about. I think I have Grig Gheorghiu interested in helping out, but he's a busy guy and hasn't yet committed. If anyone can rope in the knowledgeable web testers we need it's Grig.

To top this all off there'll be the PSF members meeting to chair, sundry sessions in the bar, meals with friends old and new, and all the other wonderful things that happen at PyCon with absolutely no formal scheduling. So I expect to be busy, but I also expect to enjoy myself hugely. See you in Chicago?

December 17, 2008

Sun Developer Network Podcast

It's taken quite a long time to get through the production cycle, but here's a podcast of Ted Leung and me discussing Python 3.0 migration. Something to listen to on the commute?

December 13, 2008

We're TravelNow.com, and We Fail

Don't you just hate it when an advertised email address fails? Particularly so when you've sent the email to notify a company about a problem with their web site? It's surprising how some quite large companies fail to pay proper attention to the basics, and I came across a perfect example today.

I've just booked a trip with Jet Blue, and wanted to add a car rental reservation to the booking. Let's ignore for the moment the tedium of having to enter the same details twice due to a lack of integration between Jet Blue and TravelNow, as the price of lower-cost flying. Alas, when I click the "printable version" link after completing the rental reservation I see a pop-up window saying "Unrecoverable error: if this persists please email webmaster@travelnow.com". Being a good web citizen and having a certain fellow feeling for anyone who struggles to keep the Intarweb working I dash off an email with the URL and my reservation details, only to receive the following missive:

Oh well, these things happen in the best-regulated domains, I guess. An email to postmaster should sort it out. I mean after all, RFC2821 explicitly says
SMTP systems are expected to make every reasonable effort to accept mail directed to Postmaster from any other system on the Internet. In extreme cases --such as to contain a denial of service attack or other breach of security-- an SMTP server may block mail directed to Postmaster. However, such arrangements SHOULD be narrowly tailored so as to avoid blocking messages which are not part of such attacks.

so that's bound to work, right? Wrong:

So I guess the lesson here is "we don't care if there's anything wrong with our web site, and we haven't bothered testing our customer feedback channels". If this company has stockholders, they should be asking questions.

Yes, I have verified my own domain's webmaster and postmaster addresses. I thought it would be a good idea before I made this post. Can you say the same?

Edit: A colleague pointed out that I had amused her by including a typo in the email address, which I have now fixed. So I am not as good at checking the basics as I'd like to be myself ...

December 6, 2008

A Pythonista Lending Group?

I've finally taken the plunge and become a lender with Kiva. It got me wondering whether there might be some potential for a lenders' group in the Python world. I know from personal experience that it contains many people with philanthropic and charitable instincts. If you'd like to join in, let me know.

December 4, 2008

Python 3.0 Is Out

Even though I am on vacation this is worth a quick note. After long efforts by many developers Python 3.0 was released today!

I posted a short article a while ago about 3.0 (in)compatibility, but the differences between 2.6 and 3.0 aren't so great. It's perfectly possible to write 3.0 code that will run on 2.6 too, as most of the language hasn't changed at all.

The preferred strategy for writing code that runs on both versions is to write in 2.6 and then apply the 2to3 converter and verify that it produces a correct 3.0 program. There's no guarantee that it will, so you may need to paraphrase the 2.6 code a few times before you get a transatable program.

Once all the third-party modules you and extensions you rely on are 3.0-ready, and you no longer have clients requiring 2.6 version of your software, you can simply drop the 2.6 compatibility requirement and start to make use of the few 3.0-only constructs that have been introduced.

December 2, 2008

Religion is not Python

About six months ago I made a post called Python is not a Religion, discussing some aspects Python advocacy in response to some comments by Doug Napoleone. About two weeks ago I see a new comment (by Jonathan) appear against that piece:
I noticed that your Blogger profile says "Catholic tastes" for your favorite music. Are you a Catholic, and would you be interested in joining the recently formed Association of Catholic Computer Programmers?
Firstly, I should like to point out that I am not a member of any church. I have no interest at all in worshipping anybody else's imaginary friend, though I try (with varying degrees of success) not to make too much fun of other people's delusional belief systems. I have my own to maintain. In this case I am going to make an exception. Without my really knowing why, this particular comment got right up my nose. I suppose, now I think about it, it's the shallowness of understanding that led the person to post the comment. Google has a lot to answer for.

Secondly, the word "catholic" in my profile is specifically used in the sense of "free from provincial prejudices or attachments", but apparently some Catholics don't appreciate that the name of their church has a broader (and far less exclusionary) meaning, dating back to the days when you were Catholic or you were on the rack, buddy. The Catholic church is so named because it was originally the "general or universal" Christian sect. Of course Henry the Eighth laid waste to that when he started the Church of England, and as far as I can see the Christian faith has more branches than the average oak tree. Whatever.

The Association of Catholic Computer Programmers (Catholics interested in software engineering best practices) appears to be a little schizoid. Are they a social network, a religious institution, or a movement? Some of the discussions are interesting, with comments like "I think we should start a project to benefit a charity of our choosing and put our collective talents as Catholic SEs to good use", which makes me wonder what skills Catholic software engineers have that I don't.

The same guy who started ACCP has started "a pro-life network", though apparently it have only four nodes so far. There's a pretty badge people can use "to identify themselves as being pro-life". Well, of course I am pro-life. Without life I'd be nowhere, and you wouldn't be reading this drivel now. In fact I find it difficult to understand how any living being can be anti-life, with the exception of the dysfunctional. But of course there's a hidden semantic trap there: the opposite of pro-life isn't really anti-life at all, it's "murderer".

The most revelaing thing of all to me is that neither the ACCP nor the above-mentioned network are prepared to do what enabled the commenter to make his or her comment in the first place. They require sign-up to make any sort of input to their site, while my blog allows anonymous comments from anyone (though as a spam reduction measure they aren't immediately posted). So the Catholic Programmers aren't at all catholic in their approach to discussion.

I know a lot of good Christians, but I don't want to join that club. Sorry. I suppose Jonathan can only hope there's no such thing as bad publicity.

November 13, 2008

LodgeNet Censoring python.org?

So, here I am at this hotel, using their network to browse the web as one does, and I suddenly see this web graphic notifying me that my network access has been blocked for ten minutes because "[the] server has detected questionable traffic originating from this computer".

At first I was concerned that perhaps I had unwittingly picked up some virus or other malware, so I made a call to the "support" team to see if they could tell me what was wrong with the traffic. Of course, I might as well not have bothered, since they couldn't tell me anything about why this might have happened without me being "naughty" in some undefined way. After ten minutes the service came back on again, only to be lost once more as soon as I retried a web access. So it seemed to me there was something extremely significant about the URL I was trying to access, which was actually the documentation for the PIL ImageDraw module.

A further support call elicited the information that the help desk couldn't do a bloody thing about anything, had no idea why the content was being blocked, and weren't interested in helping to change whatever bizarre piece of policy was responsible. Several times they mentioned that "the server will cut you off if you are downloading, there's nothing we can do about that", leaving me somewhat perplexed about what they thought the Internet was for, but of course I assured them that I had only been "browsing," which is apparently different.

It would have remained a curiosity had I not then received the same response when I tried to visit the Python programming language home page. Now suddenly the position is different, as I am the chairman and an officer of an organization whose web site is being subjected to censorship. So I have sent the customer service department at LodgeNet the following snotty letter. We'll see whether I get any response, but I am not holding my breath.
Sirs:

As a resident at the Town and Country Resort Hotel on San Diego, California, I have been a consumer of your company's service. Several times I have had my service blocked, seeing the attached graphic.

Calls to your customer service department elicited no useful information as to how I could stop this unwarranted blocking of my service, and the staff involved, while sympathetic, were completely unable to help (and indeed appeared to know nothing at all about the policy responsible for this). The only suggestion they could make was that "downloading" would cause the service to be blocked: hardly helpful, since I was merely browsing the web and handling email.

My fourth call to your support desk was put on hold and then unilaterally terminated. This is completely unacceptable.

Experimentation demonstrated that your service blocker appeared to come into play when the certain URLs (among others: my patience was limited) were accessed. I would emphasize that my use of bandwidth was *not* excessive; the previous evening I had transferred a couple of PowerPoint and PDF files, but no malicious content of any kind was involved.

http://www.pythonware.com/library/pil/handbook/imagedraw.htm (documentation for a graphics package)

http://python.org/ (the home page for the Python programming language).

This last site is of particular concern to me as I am the Chairman and a Director of the Python Software Foundation, the organization responsible for the site.

I would like to know why you are censoring our web site, and what you propose to do to make sure that its content is available to all who wish to access it.

Sincerely
Steve Holden
Chairman, Python Software Foundation

Don't Use Python 3.0? Really?

It's difficult to say "don't use Python 3.0" without being rude to the developers, as the code seems to be of very high quality. Now that Python 3.0 is almost here (release candidate 2 is a week old as I write) we should encourage people to use it, but only under well-defined circumstances. Here is some text I put together for inclusion in the release notes, to give people guidance about when and why it is and isn't appropriate to use 3.0. I would welcome further ideas to refine this text.
Readers should note that this release has significant backwards incompatibilities with the 2.X series, both at the language level and also in the C APIs available to extension module authors. These have been introduced by design, with the goal of improving the language in the long term, but this situation has implications for production use.

Furthermore it is likely that there will be a considerable delay before some authors of Python packages and extension modules start to provide 3.0-compatible releases. There are significant hurdles to be overcome in migrating extension modules from Python 2 to Python 3.

For these reasons you are NOT recommended to rely on Python 3.0 as your main production Python implementation until you know that all supporting code is available in compatible forms. While every care has been taken in the production of the Python 3.0 release, and the release team feels that the system is of a quality comparable with the recently-released Python 2.6, the latter system is currently the recommended version for production use.
I hope that clarifies things, but I would welcome further ideas to refine this text and make it more helpful. One of the primary reasons for using 3.0 is to get a migration strategy ready. But 3.0 is undoubtedly not for everyone, at least not just yet.

November 12, 2008

Phrase From Nearest Book

Well, here's a turn-up. I spotted this meme on Grig Georghiu's blog.
  • Grab the nearest book.
  • Open it to page 56.
  • Find the fifth sentence.
  • Post the text of the sentence in your journal along with these instructions.
  • Don’t dig for your favorite book, the cool book, or the intellectual one: pick the CLOSEST.
As luck would have it I am on a trip to San Diego and the only book I have with me is Rapture for the Geeks by Richard Dooling. [Disclaimer: Richard was kind enough to send me this book in return for a programming favor I did him some time ago]. By the most amazing coincidence, when I examine the bookmark I placed to make a telephone call I see I am currently reading page 56! Here's the fifth sentence:
If he is gay, man needs man; otherwise, man needs woman.
This doesn't actually represent the compelling nature of Dooling's prose particularly well. For that I like the next two sentences rather better:
Not photos or Web clips or blog entries or text messages or e-mails or even video clips taken of or sent by woman. Man needs woman in the flesh, in meatspace, where he-meat meets she-meat to beget meatlets.
Anyway, it will be interesting to see what others come up with.

November 11, 2008

United.com Broken

So I have this trip coming up to San Diego, and I fly tomorrow. I get this friendly little Web-2.0 e-mail from United. It comes from an address in a subdomain of p0.com, telling me that United are using Yesmail, and it includes a link for me to follow to "view my complete itinerary". They even have it link to a server in the p0.com domain so my browser doesn't think this is a phishing attack. The only problem comes when I click on the link, and repeatedly see 
Connection Interrupted
The connection to the server was reset while the page was loading.
The network link was interrupted while negotiating a connection. Please try again.
"Not to worry", I think to myself, "I'm a United frequent flyer (God help me), so I can just log in to my Mileage Plus account and check my itinerary there". Of course this wouldn't have been much of a post if that had worked, but good old United didn't let me down. Every attempt to log in gives me
Redirect Loop
Firefox has detected that the server is redirecting the request for this address in a way that will never complete.
The browser has stopped trying to retrieve the requested item. The site is redirecting the request in a way that will never complete.
Attempts to retry just bring up the same message again. Wonderful. Let's hope the people who run the web site have nothing to do with keeping the 'planes flying.

[PS: Fortunately this appeared to be a transient condition. The site now responds normally.]

November 10, 2008

Final "Introduction to Python" of 2008

As the year draws to a close Holden Web is pleased to remind readers that its final public "Introduction to Python" class of this year will be held from December 9-11 at our education center close to Washington, DC.

There are several hotels conveniently located within walking distance, and we provide breakfast snacks and lunch each day.

Purchase places on-line by credit card or using PayPal.

Thanks to all students who have already attended this class. We look forward to meeting you again as our range of course offerings increases.

November 9, 2008

For Would-Be Python Users

If you are new to Python, or know someone else who is, you (or they) could do a lot worse that visit Richard Dooling's Seven Minutes to Hello World web page. It explains about the easiest way to get Python up and running on your Windows XP computer.

I am pretty sure it will run for Vista too, the only reservation I have being the need to run the installer as an administrator if you want to install Python for all users. Since most Vista systems are single-user machines anyway, this isn't likely to be a big issue.

November 7, 2008

World Plone Day? Communicate, Dammit!

So just now, somewhat after midday Eastern Time, I discover that today is World Plone Day.

Forgive me for saying so, but as Python Software Foundation chairman I should have expected to hear about this event a little in advance. I would even have welcomed the opportunity to lend PSF resources towards publicizing it, seeing as how Plone is one of Python's showcase applications. Alas apparently nobody thought to try and use the PSF as a channel. So I hope World Plone Day goes well this year, and that it doesn't pass everybody else by as it did me.

For the record, the PSF runs its own blog, whose articles are well-syndicated on the web, and we are also usually happy to put Python-related events as front-page news on the python.org web site.

If you are running some newsworthy event, mail the webmasters (if you aren't savvy enough to work out the correct email address, webmaster at python dot org should get you there) to avail yourselves of the opportunity! However can we achieve world domination if we continually hide Python's light under a bushel?