April 10, 2010

Digital Rights Repression

There's something about the phrase "Digital Rights Management" that gets right up my nose. I suppose it's because it makes it sound as though we have digital rights and other rights, and they are somehow different. The digital age has definitely brought new approaches and new legislation which infringe on our freedoms.

The US Digital Millenium Copyright Act has had a "chilling effect" on free speech by allowing copyright holders to achieve censorship of publication without any prior scrutiny by a court being required. This is very definitely a bridge too far.

Now the UK has gone the same way with the second reading of the Digital Economy Bill. This reading was cynically timed to assure the bill's passage and enactment in the "wash-up" process following the dissolution of parliament prior to the general election of May 6. The most sinister and at the same time the most ridiculous aspect of the Bill is its provision that someone about whom three complaints have been received will be liable to have their Internet services removed - again without the intrusion of any legal process, let alone the requirement for conviction in a court of law. The Bill makes no mention of the collateral damage caused to other people living in the same domicile, nor does it propose any sensible way of stopping such disenfranchised individuals from using the many free wireless access points that are available throughout the world. The law is, in short, an ass.

It's easy to see in both the DMCA and the DEB the hand of corporations seeking to enforce their copyright and bolster their profits. It's also easy to see that the laws were framed by people who either didn't understand the broader implications of their work or who didn't care. The DEB is the brainchild of Lord Mandelson, an effete politician who's too snobby to tread in dogshit and no more a servant of the people than Dick Cheney.

This handover of power to the corporate world has now officially gone way too far. The legal notion that corporations should be granted the same rights as individuals, although enshrined in case law, is fundamentally unconstitutional. Corporations wield a disproportionate amount of wealth and power in today's society. The recording industry lobbied for a levy on blank audio cassettes because (to use their slogan) "Home Taping is Killling Music", yet twenty years later music seems very much alive.

I have railed against the DEB, unsuccessfully. The DMCA is ten years old. I've been a supporter of the open source movement for over twenty years, and I can tell you that it's a harbinger of  new approach. In the short term the corporations may feel they are winning, but in fact they are merely sowing the seeds of their own eventual destruction. You might care to bear that in mind in your investment strategy, if you have one. The music industry is like the boy who cried wolf; pretty soon nobody will care when they get eaten.

March 30, 2010

Students: Help Python 3 Take Off

If you are a student you have a chance to get paid to work on Python this summer. Google is once more funding the "Summer of Code", and once again Python is participating in the hope of getting as many students as possible to move the language's development forwards. In fact this year the focus is on supporting the migration to Python 3 - although the "current" release of Python is 2.6.5 there is also a perfectly competent 3.1 release available, and 3.2 is shortly on the cards.

So this year the Python GSoC efforts have a distinctly forward looking flavor, and as you will see there are some amazing mentors available to help you complete your projects and earn the $5,000 that Google is offering.

Kudos to Arc Riley for once again agreeing to keep the Python show on the road as the Python Software Foundation's education projects manager (and to C. Titus Brown for the support he lends). Come and help them repeat the successes of earlier years, move Python forward in a visible way, and become a part of the growing Python community.

February 25, 2010

Small Python from Synapse is a Big Deal

The guys from Synapse didn't appear to be at PyCon this year, but they impressed me last year with their hacking of the "Easy Button" to tweet on Twitter when the button was pressed.

It seems they are still impressing people, as they have just been awarded a SmartGrid.TMCnet.com Product of the Year award. Congratulations to them - I am sure they will be a significant Python user in future.

February 20, 2010

#PyCon on Twitter ... or wait for posts like these.

John Graves, a New Zealand reader, wrote in to let me know:

Plug for PyConPads
http://bit.ly/dgBcpA

Plug for PyCon 2010 Slides
http://bit.ly/dASBF7

By the way, New Zealand had a very successful Kiwi PyCon last November:
http://nz.pycon.org/
Thanks, John. Hope this gives the links a little extra publicity.

February 18, 2010

A Python 3 Idiom?

A while ago I wrote a short Python 3 snippet as an introduction to a post about factory functions. Second thoughts are proverbially the best, and I realised that in the following code:

def powers(a):
    return a, a*a, a*a*a

a, square, cube = powers(10)
print(a, square, cube)

the last two lines could be refactored as:
print(*powers(10))

This technique is ineffective in Python 2, where print is a statement and the syntax would be invalid.

February 17, 2010

Software QA Rant

Don't want to publish the whole thing on the Python feed, but this post applies equally to Python users if you have the time to read it ...

February 16, 2010

Customer Hostility

Seth Godin is right: the world is full of commercial dinosaurs, due to expire shortly. And I will be happy to dance on their graves.

I have written before about the rigors of modern day travel, and the travel industry (or a large part of it) appears to be doing its best to discourage people from traveling. Part of it, of course, is the TSA and its associated stupidities, but I will not again go into the irrationality of spending billions of dollars to make what is already the safest mode of transport in the world even safer (assuming that the TSA is indeed living up to that dubious claim, which I frankly doubt -- otherwise why aren't they shouting from the rooftops about the number of plots they have foiled?)

So today, for "convenience" I am flying to Atlanta. To minimize the airport hassle I have already checked in on-line, and paid $23 for the privilege of checking a bag. Assuming the charge on the way back is the same, this will amount to just over 24% of the price I have already paid for the ticket.

I have always disliked unbundling, ever since I argued in Sun against Eric Schmidt's proposal that Sun unbundle the C compiler from what was then SunOS. Since I was a minion and Eric was a big-shot you can guess how that one went (though Sun's eventual fate makes me glad that I sold my stock at $28). I suppose that's why I'm a socialist: while it may not give each user of a service the absolute lowest possible cost, it's much more efficient to spread the load around. If the rich weren't so mean, the poor could enjoy better lives. Sorry, where was I?

Oh, right. So, I have got through the security theater (doubly inconvenient this trip, since I am carrying two laptops) and I decide that, to conserve battery, I will find a venue that allows me to plug my power brick in. What do I find? Each and every establishment in the newly-refurbished Dulles airport appears to have been designed specifically to exclude any possibility that the on-line traveler such as myself  might steal a few joules at their expense.

So, for the record, let me squeak this into the ears of any future airport Eric Schmidts who might be reading. If you provide power and wifi (assuming, of course, that your license from the airport doesn't force you to make your customers rely on the airport's crappy facilities) in your establishment, and advertise that fact, I will support your business in preference to the short-sighted idiots who insist on trying to milk me dry whenever I come into contact with them.


So now we come to Verizon Wireless. Having finally found a place quiet enough that I can plug into the power without creating a trip hazard (which, believe me, would be impossible when the airport was anything like busy), and to avoid whatever extortionate rates the airport authority might choose to charge, I plug in my cellular broadband card and fire up the Internet,only to be confronted by a dialog box telling me that I can upgrade. Upgrades are always good, right? Well, yes, but ... here's the dialog box, at the left.

Call me picky if you like, but this seems to me like the ultmate failure in quality assurance. I have to wonder how many pairs of eyeballs scrutinized this dialog box before it went into production, and how come none of the owners of said eyeballs thought to ask the question "What 'Update' button"? I am imagining that each scrutineer, supposing they notice any discrepancy at all between the text in the dialog box and the reality they were presented with, thought to themselves (consciously or otherwise) "Well, clearly they mean the 'Download' button". To which my immediate response is that they cannot possibly be geeks. I am a geek, and believe me I am intimately familiar with all the shit that can land on your head in short order when you make that kind of dumb-assed assumption. So being a geek, I decline to either "Download", or "Update" or whatever kind of trouble it is that Verizon would like to get into.

Next I am presented with an opportunity to "view my account". Now I actually have two accounts with Verizon Wireless, one of which seems to be uncomfortably and inextricably intertwined with my home-based FIOS account. So I am impressed to see both a "register" link and a pulldown that allows me to select "Business Account" rather than "Personal Account". Which I do before clicking the "register" link, whereupon I am presented with a form that asks me for quite a bit of information including both my Employer Identification Number (EIN) and my Dun and Bradstreet number.

Being in an airport, I figure I have done pretty well to produce the former, and I happily fill in the other fields, only to be presented with the message shown at the left. Now, this is telling me a number of things I don't particularly like.

First off, there is something "invalid" about my company name. But of course I am left to guess what; it would clearly be far too easy to provide any description of the rules that are declaring my company name to be invalid.

Next I am informed that the Tax ID is invalid. I discover by reading the form (not the error message) that this is because I have failed to put a dash between the second and third digits, but apparently the programming monkeys who have put this application together have never thought about maybe, hey, just throwing anything that isn't a digit away. Even though only the digits in this particular identifier carry any meaning. Give me a break.

There is a similar problem with the telephone number, though in this case the programmers have taken the trouble to tell me exactly how the number needs to be formatted (thank you!). I especially like the double period at the end of that line, which implies that not only do I have to put dashes after the third and sixth digits, I also have to put a period at the end of it. This reminds me of many interactions where people have asked me my telephone number and I have replied "eight hundred dash four nine four dash nine one one nine". Not. This is getting quite cussworthy, but I am restraining myself.

Now the message about the email address again throws me into confusion, since I have (as a look at the form clearly shows) entered my email address one hundred percent correctly. username@domain.com, just like I always type it. So again I am left to guess exactly what about my email address the Verizon system has chosen to declare "invalid". The f-bomb is now hanging in the air, poised like the sword of Damocles above a web site that has clearly been programmed by monkeys, and not even monkeys with brains.

Lastly, just in case I didn't understand that I should have put that oh-so-important dash between the second and third digits, I am presented with a message that my "Federal Tax ID" was incorrect, as though the form has requested two separate tax IDs (which, by the way, it hasn't).

At this point my almost-forty-three years of programming experience, integrally connected to my geek identity, makes me want to scream "WHAT IS WRONG WITH THESE PEOPLE? DON'T THEY WANT MY [expletive deleted] BUSINESS?". I swear, at this moment, if there was a button I could click with the label "Consign VerizonWireless and all its employees to hell" I would click it whether or not there was the slightest chance that the click would have any positive effect. It would just make me feel better. I am trying to interact with a corporate entity (which due to a strange and to my mind totally obsolescent notion of law has most of the legal rights of an individual) that doesn't give two hoots what its customers think about it or how infuriating its systems are to use.

At this stage I realize I am not complaining just as a programmer, or even just as a web systems designer, I am complaining as a human being. Where, I ask myself, is the VerizonWireless Quality Assurance department in all this? (They must have one: no corporation of that size can possibly have failed to consider the liability implications of not doing). Did anyone actually take the time to interact with this application and deliberately provide "invalid" answers to determine whether the systems response would be considered reasonable by a human being?

I swear, sometimes, I truly believe that top-level corporate managers' ultimate dream is a system that requires no human intervention at all. If this really is the case then I have to explain (and will do so, given access to the Verizon top level management and a sock full of wet sand, in explicit detail) that they are a long way from reaching their goal.

Sure, we all understand (even those of use who aren't lucky enough to hold stock in public corporations) that a publicly-owned business has a duty to be cost-efficient. We also understand that in a capitalist world we are likely to be forced to interact with entities that don't always choose to employ human labor to interact with its human customers. But in the final analysis, if I personally can choose to pay a few percent more to deal with a business that bothers to pay someone to listen to my problems and help me get my confusion sorted out, I will always take that option.

That is why, being the bloody-minded socialist that I am, I usually choose to stand in line at the supermarket checkout rather than take the option of the "self-service" checkout. I don't want to serve myself. I want the companies I deal with to pay someone to help me, and I want to be sure that my own business always presents a human face to its human customers. All Holden Web's customers are corporations, but it's their employees that I have to satisfy.

So, if you happen to be a Verizon Wireless stockholder, please ask some awkward questions at the next stockholders meeting. This laziness should be stomped on quickly, and hard.

If you happen to be in the IT industry, please make sure you don't phone it in by producing this kind of shabby excuse for a human interface.

And now I am in Atlanta, and things feel better.

February 12, 2010

New Python Class Available

I am happy to announce that the O'Reilly School of Technology have made the first of four Python classes available on their interactive teaching system. Students passing all four modules will be eligible to receive a Certificate for Professional Development from the University of Illinois' Office of Continuing Education.

The PSF has discussed certification schemes in the past, and the general feeling of the membership appeared to be against them. This may be true for high-level personnel and those with advanced degrees, but we should remember that Python will also be increasingly used by technicians and others whose formal educational background does not include a training in computer programming. I feel that a university-approved certification will be helpful at that level.

While many certifications aren't that meritorious, if a scheme requires proper practical experience and the training includes mentoring by live instructors or advisers rather than just the passing of a multiple-choice examination it can have some real value.

Time will tell, but I believe we will have passed a milestone once a university-accredited Python certification scheme is available. All I have to do now is write the other three courses ...

[NOTE: the author of this blog will receive royalties based on the number of students taking the classes mentioned in this article]

Ubuntu 9.10 Wireless on Dell Precision M6300

For reasons too complex to go into (they involve a talking penguin) I have just installed Ubuntu 9.10 (Karmic) 32-bit on the laptop I was talking about when I wrote this post last June.

Whether it's the change to 32-bit or the change to Karmic I do not know, but I am happy to report that everything works like a dream: I just had to install the BroadCom proprietary driver (boo! - I wish companies like Nvidias and BroadCom would cooperate more fully with the open source world) and suddenly I could disconnect the wires and away I went. This post is being made from the very laptop about which I complained so bitterly eight months ago.

February 9, 2010

One More Day to Register for PyCon on the Web

Incredible though it seems, PyCon tutorials start a week tomorrow!

If you are planning to attend and want to register at pre-conference prices you have just over 24 hours to do so!

PyCon is the place to learn about new and existing Python features and meet Python personalities. Register now while you still have chance to save money!

February 5, 2010

Choose Python

Ethan Furman linked to this "Choose Python" poster on comp.lang.python. While some of the humor might not mean much to people who haven't chosen Python yet it certainly gave me a smile on a cold, grey morning.

[EDIT: as you can see in the comments design credit should go to Tim Lesher]

January 27, 2010

iPad Name Already in Use

One thing that Apple appears to have lost sight of in all the thrills of announcing their new tablet computer is that Widgetaria, presumably an Apple business partner, already promotes software called iPad. I wonder if they care?

January 17, 2010

Welcome BlueBream

Finally, a chance to start afresh with a promising set of technologies that has consistently been under-utilized. I am not even going to mention the old  name of the project, simply say that if you use Python you have likely heard of it. I have blogged  in the past about the confusion of search results.  Hopefully under the new name the vast preponderance of search results will be accurate and useful. So go meet BlueBream.

So, One of Life's Little Frustrations ...

... is the way Vista insists on taking the numbers in my filenames as numbers, thereby sorting them in precisely no convenient order. These files, however, are effectively named using a Hamming Code, so 62 is actually greater than 212, just like XP always knew. I just know this is going to turn out to be one of those awful tweaks that I should have put in three minutes after starting Vista.


I don't think we'll bother those nice Python people with that one. Which probably dooms this post to have me as the single reader.

Sudden pleasant thought. I will email the client to whom I first promised this work and then they will know that work is not only underway but almost complete. I have to finish this today or send an incomplete deliverable, since the client has paid for the classes, which have been delivered.

Happy Sunday. And people think that consulting is a part-time job ...

Not Really Python, But ...

We interrupt the newly established Python-only regime with a message from your fellow human-beings in Haiti.

if YouGiveAShit:

'Nuff said. This is a long-term project.

January 16, 2010

Definitely Not P*thon

And, to  complete my test of the feed reconfiguration I am going to post something that isn't about the P-language and ensure that it doesn't show up in Planet P*thon.

To make ad hominem remarks about the collective denizens of the planet would be like talking behind their backs - and besides, what if the test fails?

January 15, 2010

Just the Python, Please

The webmasters are having a spring clean and suggested that I might like to provide a "pure Python" feed. Michael Foord pointed out that such feeds existed already. If you want to skip the irrelevant waffling and occasional foray into politics then from now on Planet Python should see such a feed.

Direct subscribers wanting only Python can follow
    http://holdenweb.blogspot.com/search/label/python
    http://holdenweb.blogspot.com/feeds/posts/default/-/python
if they prefer.

Other blogs:
    A Yorkshireman in America where the rabid politics really live
    On Your Desktop lame celebrity desktop blog
    PyCon conferences - you probably get this via the Planet
    Python Software Foundation News others contribute more than I do

January 7, 2010

Absent DB API Test Files Fixed

I saw a somewhat annoying comment from a web site reader recently:
The following message was received via the web site.

From:       
Email:      
Subject:    /PyConTX2007/dbapi.tgz  Not Available
Telephone: 

I am grateful to the anonymous commenter for letting me know that I'd failed to redirect certain essential links in the recent web site migration.

It would have been even better if I could have replied to the comment to let my reader know that the problem is fixed (which it now appears to be). Alas he or she left absolutely no contact information whatsoever.So all I can do is record the fix and hope that this file wasn't being urgently sought (which I doubt it was).

January 6, 2010

Register for PyCon, or the Kitten Gets It



Just sayin', it might be better if you planned to attend the conference.

It's not that I like harming innocent small furry creatures, it's just that there are still thousands of Python users and potential Python users who still don't know what excellent value for money the conference is, or how much fun you can have there.

PyCon is in Atlanta this year, and despite the parlous state of the world economy there's a chance that it will be the biggest Python event ever. But hey, we all know that size isn't everything.

Although I was notionally on the program committee, and did at least register my opinions of the talks I was allocated by the submissions scheme, I (yet again) didn't manage to make a single meeting due to pressure of other business.  I'm actually not too unhappy about that, given the incredibly difficult task that the committee had to perform in order to ... well, I was going to say "sort the wheat from the chaff", but in fact there was so little chaff that wouldn't really be an appropriate analogy.

A number of people have blogged already about Five PyCon Talks You Must Not Miss, but since there's still a few hours to get in at the early bird rate I thought I'd throw out my list of unmissables from the extensive list of talks. How's that for arrogance?

A Short Pinax Tutorial, Danny Greenfeld. I have heard Danny speak at local Python user groups. If I had time I would be attending the half day Pinax tutorial that he and James Tauber are giving, but this is the second best way to find out how to get started with Pinax.

What Every Developer Should Know About Database Scalability, Jonathan Ellis. This one will be straight from the horse's mouth - it's always worth hearing Jonathan's summaries of his immense practical experience.

IronPython Tooling, Dino E Viehland. As a Windows user who has hardly touched IronPython so far I am interested in finding out what my options are. Nobody is likely to know better than Dino, who is probably the most prominent member of the Microsoft development team.

Scaling Python Webapps from Zero to 50 Million Users - A Top-Down Approach, Jinal Jhaveri. Although I haven't heard Jinal speak before I can't resist the lure of hearing what someone with really high-volume Python web experience has to say.

Why Not Run All Your Tests All the Time? A Study of Continuous Integration Systems, Titus C Brown. Ever since I hear Titus' tutorial (with Grig Gheorghiu) on testing a couple of year's ago I've wanted to hear what he has to say about CI. This is my chance.

Alas, five talks isn't anywhere near enough to encompass everything I want to hear, and I am also keenly anticipating Turtles All The Way Down: Demystifying Deferreds, Decorators, and Declarations, Pay Only for What You Eat: A Tour of the Repoze.BFG Repository and Philosophy, On The Subject Of Source Code, Python's Dusty Corners, Debating 'til Dawn: Topics to Keep You Up All Night, Powerful Pythonic Patterns and Tests and Testability.  This is going to be a knockout conference even before you consider all the amazing things that will be happening in Open Space.

You really have to be there. And you'll be helping to save a poor kitten that never did anyone any harm in its life!

January 5, 2010

Two Days Left to be a PyCon Early Bird

Just a quick reminder that PyCon early bird registrations end on January 6, so you don't have long to take advantage of these rates. Quick! Before you forget!