December 31, 2009

Open Source Documentation, Again

I had a whole blog entry written, but sadly the new and "improved" Blogger application appears to have eaten it. Personally I don't think they have improved the application, as ^Z after setting something to a block quote now appears to delete the complete entry contents, the preview is way less friendly in the new popup format, and the editor icons don't seem as intuitive as they used to. Overall I think I'd rather go back to the previous version, but there doesn't seem to be any way to do that.

Anyway, to cut a long story boring, I just wanted to point out that when I went to update my Cygwin installation (hoping that Python 2.6 and/or 3.1 would now be available, which sadly they aren't - where's Jason Tischler when you need him?) I got a parse error on the setup configuration file. No biggie, the setup program even pointed out that I probably needed to download a new copy, and when I did so the updated copy told me to read the Cygwin documentation to find out what I needed to know to update from 1.5 to 1.71 (I presume 1.6 was omitted for some reason).

Sadly when I went to the Cygwin home page the only relevant information I see is "PLEASE read the new User's Guide before upgrading your Cygwin installation to 1.7. You're avoiding trouble."

This is OK, but when I follow the link to the users' guide I get a list of three different possible formats plus links to two different quick start guides and another link to Setting Up Cygwin. It's only by clicking one of the users' guide links that I finally discover the link, in the table of contents, to What's new and what changed in Cygwin 1.7. Guess what? None of the information in there relates to upgrading from an earlier version, so I am left with the only hint being the note at the start of the home page that says
Please note that the update from Cygwin 1.5.x to Cygwin 1.7.x might require some manual changes afterwards. Most notably the mount point storage has been moved out of the registry into files. User mount points are NOT copied into the new user-specific /etc/fstab.d/$USER file. Rather, every user has to call the /bin/copy-user-registry-fstab shell script once after the update.

Now I don't want you to think that Cygwin's documentation is lousy. In fact the situation might seem less problematical if the documentation were worse, but generally Cygwin is up there with Python and Django in terms of the quality of its documentation. All of which only makes it seem more jarring that there is no specific advice to use migrators, even though the project home page seems to imply a) that there is, and b) that it's important to read it.

Anyway, I am going to finish this post now, before Blogger decides it's time to delete all my typing again. Happy New Year!

EDIT: Interestingly the original entry came through on Feedburner, but I decided to leave the revised entry as it was, modulo this edit. As is so often the case, a re-work improved the quality of the work.

December 24, 2009

New Podcast: A Little Bit of Python

For some time Andrew Kuchling has been agitating to get a Python-based podcast going. He's finally made it by teaming up with Jesse Noller, Brett Cannon, Michael Foord and me. We have now recorded three episodes, and I believe the first two are already available via RSS feeds:

Choose from the MP3 version or the AAC Version (better for iTunes). The first two episodes are a little chaotic. It will take us a while to work out how to collaborate most effectively, but I am sure it will improve with time.

I'm interested in any and all opinions of the podcasts, and of course if you can let us know what topics you'd like to hear about we'll try and accommodate you. Please send e-mail to all at bitofpython dot com. We'll do our best to listen and respond.

Finally, since there's just half an hour to go before Christmas Day, a very Happy Christmas to all my readers.

December 23, 2009

PyCon Asia Pacific Call for Papers

If you would like to visit Singapore next year, please consider submitting a paper to PyCon Asia Pacific, which runs from June 9-11 next year. The call for papers is open until February 1, but why not get that proposal in before Christmas?

December 21, 2009

PyCon Financial Assistance Closing Date Looms

If you want to go to PyCon but won't be able to make it because of financial constraints, please remember that the PSF does make some limited financial assistance available to assist in such cases. Yes, it's a band-aid, but one that can help increase the conference's diversity and ensure that interesting voices that wouldn't otherwise be heard have the chance to speak up.

The assistance program closes tomorrow, Tuesday December 22, so if you want to apply then please do so quickly.

This year, thanks to Google's generosity as a sponsor, we have additional funds with which to try and increase the number of women attending. Obviously we would prefer to use the funds to sponsor women who wouldn't otherwise be able to go (otherwise we won't increase attendance, we'll just subsidize women who would have attended anyway).

Happily the PyCon world appears to be rife with good common sense, so I don't anticipate problems. See you at PyCon!

December 19, 2009

Please Publicize PyCon

If you have a blog, now would be a good time to use it to start encouraging people to attend PyCon. In Atlanta, from February 19-21, with two days for tutorials before and up to four days of sprinting afterwards, it's likely to be the best and biggest PyCon to date.

I would be especially grateful if you would make sure that word gets out to people who might otherwise not think about coming to PyCon. The conference thrives on new blood - typically at least fifty percent of delegates will be attending their first PyCon. There are badges you can use to give your posts a graphical flavor, too.

I'm using the badge above because I am speaking early on the first morning about Building the Python Community. There are others you can use if you are attending, or giving a tutorial. So please, do everything you can to make this the best PyCon ever (which won't be easy, given the event's history). And have a very Happy Christmas!

December 17, 2009

Skribit Schmibit?

I just noticed that Skribit log the number of followers for each writing suggestion on the blog, and some of the suggestions that have been made actually have people following them. Presumably this means that people would like to read such posts, so in the New Year I am going to try and pen at least one article a week on a Skribit topic.

This leads me to the question: how do I tell Skribit that a particular piece satisfies one of their suggestions, and should therefore be notified to the list of followers. Or is Skribit just making this information up as they go along? If you can't help me I'm going to have to read the FAQ ...

December 15, 2009

Slap on the Wrist for Microsoft China

[EDIT:As Michael Foord points out in the comments, the actions described below were taken by a company with which Microsoft had contracted. Microsoft appear to have acted in good faith once the duplicity was discovered].

I'm not terribly happy with the "Evil Empire" theory of Microsoft. There's little doubt that when the company was younger it was an aggressive competitor up to and occasionally beyond the limits of the law, and there was a culture of "what's good for Microsoft is good for the world". The company has been known in the past to take information obtained from smaller partner companies and use it to build competing products and services, to the partner's disadvantage.

But I know quite a few people who work in Microsoft, and none of them are the kind of people who I would expect to indulge in any kind of ethically questionable behavior. I have assumed, perhaps naively, that as the company grew its culture would be molded more by the requirements of the legal jurisdictions it operated in, and less by the cowboy ethic of earlier years. Silly me.

The latest and most egregious example of Microsoft rip-off behavior comes from China, where the Microsoft subsidiary in November published a "Chinese copy" of Plurk Asia's micro-blogging service. Following the link will make it obvious this isn't just a cosmetic copy - the similarities appear to extend deep into the code base.

Given Microsoft's holier-than-thou approach to piracy issues, particularly with regard to the Chinese and other Asian markets, it makes one wonder who took the decision to go ahead with this project, and why heads haven't already rolled - or maybe they have? I hope (but alas sincerely doubt) that it costs Microsoft a lot of money to put this right, since it appears that money is the only thing that Microsoft understands.

December 13, 2009

Abstract Programming? Structured Music?

People sometimes claim that programming is an art (me, I am happier to regard it as a craft, notwithstanding the fact that one of computer science's greats is writing a book called The Art of Computer Programming). If the parallel were clearer then presumably we'd be able to do abstract programming (people do abstract visual art, right)? What the hell would that represent?

All of which is a rather feeble introduction to a few of my brother's abstract images. David has way more talent in the arts than I do (he's also a very talented musician). Since I find both his art and his music appealing, and since he is currently trying to make it more accessible, I wanted to find out whether his work generally appeals to geeks, or is it just my starry-eyed fraternity that makes me like his work?

Since this blog is mostly read by geek (when it's read at all ...) it seemed like a good place to ask the question. So, what's the answer? Comments, please.

December 11, 2009

How Do You Update Your Content?

Since I moved to Django I've been struggling with the question of how to keep the site's body content up to date. I started out just editing the body pages' HTML, which was stored in the database (crude, but it did allow an earlier transition to Django).

I've since experimented with various mechanisms, including two WYSIWYG editors in the Django admin (not sufficiently expressive) and a full content management system (too cumbersome and tricky to install, though it may become the favored solution eventually). For now I've settled on a scheme that allows me to keep the body page text in the database as either ReStructured Text or raw HTML, but I am sure this is far from the best answer.

So how do you keep your web's textual content up to date without going crazy?

December 10, 2009

Talk at PyCon, Become a TV Star?

Well, maybe not a star, but who knows? You will certainly get to meet a lot of interesting people with a common interest in Guido van Rossum's invention. And sessions are televised. Last year I posted two months after PyCon to point out that there had been 180,000 views of PyCon-related videos on

Of course it's too late now to be a speaker at PyCon 2010 if you haven't already been accepted - those decisions were made a while ago (with great difficulty, as there were so many excellent submissions this year).

It would be interesting to hear from some of the quarter of a million people who've viewed the PyCon videos just to see what you thought was good and bad about them. They certainly make information about Python much more readily available.

The people who speak at PyCon (and the many other Python conferences throughout the world) are stars anyway, in my opinion, and deserve our support. They are giving freely of the experience they have developed, and they deserve our thanks and recognition. PyCon speakers don't get free registration or much else in the way of reward, so when you are at the conference (or if you come across one of them elsewhere) please let them know how much you appreciate their work.

December 8, 2009

Reaching Out to the .NET World

If you know people, particularly in New York city, who work with Microsoft's .Net environment I'd be grateful if you could make them aware of Michael Foord's .NET: IronPython from the Ground Up class, running on January 21.

My main contacts with the .NET world are currently limited to the SharePoint environment (yes, you can use the SharePoint APIs from IronPython), and I suspect (but do not know) that the .NET world isn't quite as heavily imbued with the open source ethos as the Linux/UNIX world is.

I think we still need to get the word out. Despite all the noise about the DLR introduction (including excellent publicity in MSDN magazine), plus the availability of IronPython and IronRuby, dynamic languages don't yet appear to have the traction in the .NET space that they do in the Unix world.

Or am I talking through my hat? I've written before that I think the Windows environment is a great platform for supporting open source applications -- if you think about it, it's the logical way to put open source on the majority of desktops.

The event should also be of interest to the existing Python user base who want to be free from some of the CPython implementation's current restrictions. Here are some of the reasons why you might consider IronPython:

* Using Python libraries from .NET
* Using .NET libraries from Python
* Writing multi-threaded Python code without a GIL
* Embedding IronPython in .NET applications for user scripting
* Exploring new assemblies and classes with the interactive interpreter
* System administration and scripting
* Developing for Silverlight (Python in the browser)

I've been a Resolver user for over a year now, and I've been impressed with IronPython's stability and usability. It would be nice to see more .NET users at PyCon

Note: the seminar linked above is a commercial activity of Holden Web LLC

December 4, 2009

Why Soldiers Deserve Proper Respect

People who know me well (and there aren't that many of them) have asked me why, when I am so at odds with the policies that led to the Iraqi and Afghanistan wars, I insist on differentiating between the cause in which the service is enlisted and the service itself.

This article says far better than I, who have never served in any country's armed forces (and was grateful, growing up, to escape the conscription that killed men only two or three years older than me), why I feel respect is due to the men and women who stand up to serve their country in the military.

I remember being amazed in 1987 to meet some Viet Nam veterans in San Diego and hear at first hand the difficulties they had getting the benefits to which they were entitled. I disagreed with the Viet Nam war too, violently, but was shocked to find that a country could turn its back on the youth it had conscripted to fight its battles in its "backyard" (yeah, right).

The conscription now is largely economic. I have a brother-in-law who learned his trade in the army because it was the only place that would teach him a trade, but it crafted him in other ways too. I remember the amazement of his family when he came home after basic training and made his own bed unasked. I remember too, later, the nervous tic his eyes acquired (and retained) from too many attacks on the troop carriers he drove in Belfast. He joined the army because it offered him the best career opportunities. There are a lot of people today who are joining up for the same reasons. Economic opportunity does not abound for the youth of today's America, and so many of the least fortunate will choose to serve their country. Would that the congressman and senators would protect them as they protect their own sons and daughters.

So I hope, when those who have served return, that this adopted country of mine will find more than empty words to honor the service they have performed. "Thank you for your service" means less than nothing if it isn't accompanied by a place to live, a secure income, a decent standard of living and an honest appreciation of the time spent in harm's way.

Much as I regret President Obama's decision to send yet more troops to Afghanistan, he was at least honest about his intentions during his campaign. I hope that this further investment of America's young men and women will lead to a real improvement in the most corrupt country in the world (or is it the second most corrupt, I forget). Those who agree with his decisions must accept that they bring with them a cost: that of ensuring that the survivors, and the families of the fallen, are not left standing in the cold once this economic winter, manufactured by the bankers in their snug financial parkas, is over.

Hell, if bankers and politicians had to fight wars in person this world would be a far more peaceful place. It's too easy to condemn those in uniform to die by proxy for some policy with purely economic motives. At least, for the moment, this country appears to have a commander in chief who properly weighs the lives he risks. If I felt I had the right I would salute those who venture forth, knowing not whether they will ever return.

December 3, 2009

Google Thinks I'm Naughty

I've been doing quite a lot of web stuff lately, and this has involved doing link checking on my site. Since it now has AdWords in it, this means my (totally unsophisticated) web crawler has been following the advertisers' links. Oops.

This afternoon I get an email from WellKnownSearchEngine saying:
It has come to our attention that invalid clicks have been generated on your Google ads, posing a financial risk to our AdWords advertisers. Please note that any activity that may artificially inflate an advertiser's costs or a publisher's earnings is strictly prohibited by our program policies.
You can imagine the rest. Dire Warnings, Serious Threats, and so on, coupled with a refusal to offer specifics. So I just thought I'd ask: what tools do you use use for link-checking, and how do you avoid this issue?

December 2, 2009

Way Back When?

So what's with the Wayback Machine, then? Or, to be more specific, why did it appear to stop archiving in October, 2007? It's not like I think my content is so valuable that it would be a loss to the Internet, but it would be nice to understand why the archiving suddenly stopped.

I'm still waiting to hear back from the Internet Archive, but I have a nasty suspicion that the answer is going to be that Cool URIs don't get indexed. I hope not. More information when it becomes available.