I'm being packed off to Madrid next work, to help a client patch something into their software. Which I've never seen, so this might be a piece of cake, or it might be a nightmare.
Naturally, they want estimates. :-) I'm not giving them any. Not yet, anyway.
I wonder if I'll have any time to see anything of Madrid? I've never been before. Any suggestions? I'm flying out on Sunday night, and coming back on Friday at the latest. Hotel looks nice, anyway.
Note to my imaginary readers: I have no idea what 'net access I'll have, if any, so don't be surprised if it goes a bit quiet next week.
Update: Aside from the suggestions you see below, my mate Jay recommended the Prado. I'm a big fan of Goya, and The Naked Maja and Saturn Devouring His Son are among my favourites, so this is a must. If I'm out of the office in time, that is. (Jay introduced to to Python, so I'm eternally in his debt.)
Steve suggested that I shouldn't go out drinking before ten, or I'll find myself alone. Sigh. I'm usually in bed by ten!
Cars with TVs. Madness, sheer madness.
Via techdirt.
Hopes dashed for UK IT jobs recovery. Oh dear, oh dear, oh dear.
Why on Earth are Sun using Lee Hurst (a relatively famous, and indeed relatively funny comedian) in this advert (found attached to this week's Computer Weekly? There is, so far as I can see, nothing funny about this at all - they just used him as a model.
Or am I mistaken? Is it not him at all?
If you view Iraq in a classical Newtonian framework, then you must concede that they either do or do not have weapons of mass destruction. It is this narrow mindset that causes such confusion in the uninformed.
But, over President’s Day weekend at Camp David, I delved into the collected writings of Erwin Schrödinger, and now have no recourse but to conclude that Saddam both has and does not have weapons of mass destruction.
Via online.effbot.org.
It's Robert Mugabe's 79th birthday today. Happy, birthday, Bob.
Now hurry up and die, you fucker.
What the French are up to, hosting a summit for a bunch of murderous old African dictators, I can't begin to imagine.
True love is a wonderful thing, but more and more people are finding that other things are wonderful, too, such as self-sufficiency, independence and not twisting ourselves in knots straining to hear the ticking of our biological clocks.
Yeah, say it, brother! (Sister? Hadley? Who knows?)
Still, I must say that I might be cheating a little. I might be hearing the old biological clock myself if I hadn't already had children.
Via londonmark.
The Homeland Security Threat Monitor made me smile, until I realised that it's not like the Elvis Detector. Oh no, this one is for real. Sigh.
Via dutchbint.
Over the last couple of weeks there has been the Mother and Father of all debates (degenerating into ranting, trolling, and personal abuse at times) on c.l.py regarding the possible introduction of a ternary operator to Python. Guido is happy to add one, or not, but he wants the community's consensus of opinion for once and for all - should there be a ternary operator in Python, and if so, what should its syntax be?
I've not really used anything like the ternary operator. Java has one, but I don't use it, and my cow orkers don't know what it is, so they don't either. So, I'd be happier doing without it.
But if we must have one, then I'd prefer one of the more Pythonic syntaxes. Let's use words, not punctuation! Of all of them, I dislike:
result = (if condition then expression1 else expression2)
least. It has a slightly list comprehension like feel to it, and I think that its meaning would be fairly obvious even to someone who had never even heard of the construct, which is a sign of good syntax, I think. But I gather that there is some problem parsing this. Ho hum...
Update: Turns out that Mark does know what the ternary operator is, and uses it, but didn't know it by that name. Sigh.
Update: Guido has spoken. There will be no ternary operator in Python.
Seven Deadly Sins of Introductory Programming Language Design (PDF)
An interesting read this, I thought. Most I agree with, some I don't.
It occurred to me that a few of the issues raised might point towards ways of improving Python as an introductory language. (I'm not talking about Java here 'cos I consider Java to be totally inappropriate for beginners.)
loop
statement. The standard idiom for this in Python is while 1:
, which I can see a beginner mistaking for something happening once. Perhaps better these days would be while True:
, but again, I can see a beginner thinking - while what is true?list[1]
refers to the 2nd item of a list is likely to be a problem for a newcomer. But what to do about it? Apart from the practical impossibility of changing something like this in an existing language, (can you imagine the furore on c.l.py if this was suggested!), it's also the case that in practise this is a more convenient notation. If beginners started off with 1 offsetting, and had to move to zero offsetting later, well, that's even harder. And I speak from experience here, coming from RPG.On reflection, it seems that none of these would have any chance of making it into Python. Only the non-terminating loop construct would be reasonably backward compatible, and while while True:
is ugly, it works. Ah well...
One thing I didn't agree with, (as you might expect from a Python fan) is the paper's assertion that using indentation to specify scope is an example of 'detrimental cleverness'. It refers to 'useful redundancy' between delimiters and indentation. I don't see it as useful redundancy, I see it as potentially confusing. If the two don't match, which is correct (in terms of the programmers intention)? Redundancy is almost always A Bad Thing in code, and having both delimiters and indentation is no exception.
What I don't see, though, is any indication that all this is anything more than personal opinion. Informed opinion, yes, but opinion nevertheless. Real useability studies would be good.
Via iamcal.
Archbishops question Blair's claim to 'moral legitimacy' of invasion
I wonder if The Archbishop of Canterbury, Rowan Williams makes fun of the Catholic Archbishop of Westminster, Cormac Murphy O'Connor. "I've got 70 million Anglicans across the world. You've only got four million. Nyaaaaah!"
IBM pitches eServer iSeries to wider user base
The IBM eServer iSeries platform, formerly known as AS/400, is very highly regarded by those who work with it day in and day out, says The Register.
Damn right it is. I'm one of them. The iSeries (still known as the AS/400), is a good box for business. Not exciting, not even particularly interesting, but solid, capable, reliable, predictable, cost effective, simple to administer, and scalable.
But for some reason, IBM has never made much of a noise about them. Might this change?
I don't want to get into a discussion about whether or not we should invade Iraq. For the record, I don't think we should act without explicit UN backing, but those who think otherwise have valid points of view.
Steve is right too, though - the US and UK don't look like they are even trying to win hearts and minds.
The angle which I haven't seen explored is the medium to long term effect on the UN. It seems to me that we might be looking at the beginning of the end.
If the French veto military action, the US will go it pretty much alone if they have to. (They'll probably have British support, though Blair might, just might, take notice of the pretty much overwhelming public opposition.) This will leave the UN looking pretty irrelevant. League of Nations, anybody?
Of course, one has to wonder whether it's appropriate for France and Britain to have a UN veto. Russia, China, and the US, the superpowers, I can see - the UN would be meaningless without their support, so it's necessary to ensure that it never adversely affects their interests. But Britain and France's positions on the Permanent Security Council is a historical anomaly, reflecting those nation's pre WWII power.
The Python 2.3 Method Resolution Order. Everything you wanted to know about Python's implementation of multiple inheritance, but were afraid to ask.
Very interesting and, I think, insightful. The idea had occurred to me that nerds are unpopular because they are too busy with, well, more interesting stuff to play the games that need to be played in order to be part of the social A-list. Paul Graham looks much more deeply into this.
Perhaps the most important thing to take away from this is this: If you have kids of your own, remember how hellish it was, remember what you went through, and what your children might be going through now. Talk to them about it, tell them what it was like for you at school, tell them that it really isn't like that in the world outside school.
Also, bear in mind that they might be on the other side of the fence - they might be the ones giving other children a hard time. If they are, that doesn't make them bad people - most children do this to some extent. But if you can point out to them the error of their ways, you'll be saving them some guilt in later life.
Alan Green: Typing: Safety causes Bugs.
Hmmm. Well, I've been using a mixture of Python and Java for some time now, so here is my personal conjecture:
I don't think that the extra typing required by 'safety' features actually cause bugs - they just don't stop them. Or rather, the ones that they stop are balanced by the additional ones that they introduce. For every time Java saves me from using a String
as an int
, I'll get a runtime error casting something around in order to get to a method that I know damn well it has, even if the bloody compiler doesn't.
In Python, if an object has a method, I can just call it. Thank you. If this isn't going to work, I'll find out while testing.
Ah yes, testing. That's where you stop bugs. Static typing might have pointed you at a few bugs a little earlier than your testing would have, but your testing would have picked them up soon enough. And if you don't test properly, your stuff is going to be buggy anyway.
The so called 'safety' features are only going to catch a subset of problems, and you would have found these problems eventually anyway. So if they add too much work at the coding stage, they are a net time loss.
Cameron Laird and Kathryn Soraiz's Syntax Checking the Scripting Way is interesting on this. And I'm reminded of a quotation:
The static people talk about rigorously enforced interfaces, correctness proofs, contracts, etc. The dynamic people talk about rigorously enforced testing and say that types only catch a small portion of possible errors. The static people retort that they don't trust tests to cover everything or not have bugs and why write tests for stuff the compiler should test for you, so you shouldn't rely on only tests, and besides static types don't catch a small portion, but a large portion of errors. The dynamic people say no program or test is perfect and static typing is not worth the cost in language complexity and design difficulty for the gain in eliminating a few tests that would have been easy to write anyway, since static types catch a small portion of errors, not a large portion. The static people say static types don't add that much language complexity, and it's not design "difficulty" but an essential part of the process, and they catch a large portion, not a small portion. The dynamic people say they add enormous complexity, and they catch a small portion, and point out that the static people have bad breath. The static people assert that the dynamic people must be too stupid to cope with a real language and rigorous requirements, and are ugly besides.
This is when both sides start throwing rocks.
Quinn Dunkan, 13 Jul 2001
Shipping the prototype - Let's promote scripting languages to the status they deserve
My point is that languages like Python, but also Perl, Ruby, and JavaScript/JScript/ActionScript/EcmaScript, are strategic in ways that we don't yet fully acknowledge.
Via The Daily Python URL.
Links to artima.com's A Conversation with Guido van Rossum interview have been floating all over the blogsphere, but I haven't seen any links to this Guido van Rossum interview.
The interview is part of the pre-publicity for the Python UK Conference 2003.
An interesting set of stuff:
It looks like Java is reacting to the competition!
Of course, type-safe enumerations in Java are already pretty easy once you know how to do them, but it isn't obvious.
Via SlashDot.
I just don't know how I ever managed to live without Global Potato News.
Via Nick Jordan.
Fine-tuning Java garbage collection performance
More than you need to know. Well, more than I need to know, for sure. Bookmarking for future reference...
Python Programmer Weblogs is an online aggregator, feeding off thirty or so Python oriented weblogs, including mine.
Might this be the beginnings of a Python version of java.blogs? The software that it runs on, Spycyroll, now has a SourceForge project.
Dave Thomas (co-author of The Pragmatic Programmer) has a new weblog - PragDave. One for the aggregator!
If you've not read The Pragmatic Programmer, you should. Well, if you are a programmer, that is. Not a lot in it for accountants, for example. (Or maybe there is - 'No broken windows', anybody? Still, there is certainly a lot of techie stuff in there.)
Via Ned Batchelder.
U.N orders Wonka to submit to Chocolate Factory Inspections
When we found evidence that Wonka was developing so-called 'everlasting gobstopper' technology—'the mother of all gobstoppers'—we knew it was time to act.
Via Neil Gaiman.
You're on a particularly useless cusp known as "being a bit of a nerd". Nobody really trusts what you say about computers, but at the same time, they keep asking you really annoying questions that they could answer for themselves if they just spent five minutes thinking about it. You also have to spend a lot of time not having a life in order to keep your slightly inadequate skills up to date.
Yup, that's me alright.
Find out how geeky you are with the Geek-o-meter.
71% way my result giving honest answers. It's pretty easy to go higher...
Update: Also:
|
And:
JSR-666: Programmability Enhancements.
Is this a conscious reworking of Python's PEP 666: Reject Foolish Indentation?
Via Charles Miller.
Marcus Nylander's VSS Plugin for Eclipse has been upgraded to to COM automation - it's much faster now.
Funnily enough, I've had to do some VSS automation myself, in Python. VSS's object model is a bit nasty, but it's easy enough to write an OO wrapper while clutching the documentation. Then you can use the wrapper, and forget all about the ugly stuff underneath.
I'll probably clean this VSS stuff up and post it at some point.
I'm no longer a python developer
A real shame, this. He's been a real contributer to Python. Possible his most high profile contribution is Python's new (at 2.0) unicode regular expression module, which I use every day. (Well, OK, most days.) But this is far from being his only contribution.
I don't see him much on c.l.py any more, either, which is a shame. He's helped me out in the past. I'm not surprised, though - the volume of postings on c.l.py is huge these days.
Oh, and if you are a Python developer and don't yet have The Python Standard Library, I recommend it. When using a new module for the first time, I find a simple example or two a much more effective quick start than the docs, good though they are, and Python Standard Library gives you exactly this.
RPG doesn't have anything like as powerful as Exception handling, but it is ironic that for many years the iSeries' scripting language, CL, has offered a more powerful error handling via its MONMSG command than RPG offered.
Well, RPG is finally being dragged kicking and screaming onto the eighties. Power of MONITOR Opcode shows you how to make use of RPG's new
Well, made me laugh, anyway.