On Andy's repeated recommendation, I've been fiddling around with Knoppix on and off for a while. But I'm nowhere near the point where I know what I'm doing. With Windows, love it or hate it, at least I know my way around pretty well by now.
So, the Windows-to-Linux roadmap might be just what I'm looking for...
If Steve can flaunt pictures of his beautiful family to make up for his own aesthetic shortcomings, I don't see why I can't.
I love this school photo of my girls, Freja and Ella. Their smiles aren't as cheesy as they usually are in school photos.
Masters of their universe: "Most video games stipulated the experience the player was going to have. They said: you stand here and we'll throw aliens/dragons/humorous frogs at you. Bell and Braben's sequence of inventions amounted to a gradual refusal to do anything of the kind. They were arriving at a game that left what to do and where to go entirely up to the player."
I remember playing Elite for weeks and weeks, for hours at a time. Brilliant. Rarely equalled as a gaming experience, and never surpassed.
(One thing missing from the article - Elite's trading system was clearly heavily influenced by that of the Traveller RPG (1977), which I also played around that time.)
There are a few modern Elitealikes floating around at the moment. X-Tension is one good one, which I played for a good while. Independence War II - Edge of Chaos, which I'm playing at the moment, is even better, if a bit less open ended. I hear good things about Freelancer, too, but I've not tried it. This month's spare cash is going on Christmas presents, so I won't get the chance for a while.
Via little things.
London Java Meetup - Xmas Party 2003, 15th Dec 2003. I'm not too sure about this Electricity Showrooms place, and I hope I don't end up fist-fighting the Perl mongers, but I'll be there. It'll be interesting to meet Sam, if nothing else.
I daresay Tactics Arena Online will keep us amused.
Via The Ultimate Insult.
One for you, Witho: World Wide Words, "English words and phrases—what they mean, where they came from, how they have evolved, and the ways in which people sometimes misuse them".
OK, two, then. Common Errors in English.
Via The Ultimate Insult and little things respectively.
No, I don't believe it either, but it's an excellent conspiracy theory.
Steve has a job. Good. Let's hope that this means that Kim is right, and things are picking up.
Google's dominance as a search engine is unchallenged at the moment. It's from a position like this that Microsoft gets up to all its anti-competitive shenanigans. So, might Google get up to the same sort of Tricks? Charles Miller thinks not - Google, Microsoft and Tall Poppies. I hope he's right.
Spam - it's a bad thing. So far, so uncontentious.
The volume of spam that people are receiving these days is such that many are using automated tools to filter it out. Many of the state-of-the-art use Bayesian Filtering to decide if something is spam or not. SpamBayes seems to be one of the most successful at the moment.
In Bayesian Dark Side, Ian Bicking raises an important issue which hadn't occurred to me. An oppressive government could use this technology to control its citizens' access to the 'net. The better spam filters become, the more effective they might be as censorware. And they are getting very good indeed, given the Red Queen style arms race that the spammers and the spam tool writers are engaged in.
You get it from your children. My mum has a blog: Lotus in the Mud.
My programming job went offshore, and all I got was this lousy T-shirt.
Via PragDave.
Is it just me, or is Vocaloid's rendition of Amazing Grace a bit, well, unnerving?
Via The Benblog.
Unpaid overtime soars in the UK.
I think I'll do my bit to restore balance by fecking off home early today.
Blogging MPs are still fairly rare at the moment. This is a bit strange, really, 'cos it's a cheap and effective way to communicate directly with a potentially large number of people, without the media filtering which annoys politicians so much. I'm sure that we'll see blogging used more in the future.
Labour MP Tom Watson was the first MP to take up the new medium, so far as I know, starting his blog in March this year. Recently, I came across another couple of Blogging MPs: Clive Soley, and Richard Allan.
Both are interesting reads. Today's sound-bite mass media don't really allow politicians to put their views across at any length, so any subtleties in their arguments are lost. In posts like George Bush speech in London and Identity Cards – A Solution Looking for a Problem, Stoley and Allan show that with a bit more freedom, they can make a lot more sense.
Eclipse 3.0 M5 - New and Noteworthy
More fabulous refactorings: Generalize Type and Introduce Factory. Amongst other things.
Tail for Win32 - A Windows version of the Unix 'tail -f'
Monitors a text file in real time. It can, for example, keep an eye out for certain keywords in a log file, and send an email if they occur. Very handy.
Via Sanjay.
Lest we be allowed a moment of national pride, David Blunket has given us something to be ashamed of again: Asylum child care plan.
Normally, I despise jingoism. But there is a place for "my country, right or wrong", and that place is the rugby field.
Update: The Auzzies display grace in defeat.
Author rejects prize from 'anti-migrant' newspaper
Via splinters.
Is it just me, or does Michael Jackson remind you of the Child Catcher?
One for Tracey - RecipeZaar.
This is a great website. It's a recipe database, with superb search facilities.
Via 0xDECAFBAD.
codeja vu: the feeling that you are coding something that you already coded before.
Via James Strachan.
Via Minnow town.
Before Bill kills you - Natural Deselection.
"So here we have examples of Microsoft squeezing customers and at least three different kinds of "partners" to increase revenue. But that's not enough, they need more. No amount of money is enough for Microsoft."
Via 0xDECAFBAD.
Computers 'hamper the workplace'
Received via email, providence unknown, originally from b3ta.
Simple. Just reinstall IE. You'll have to reboot so many f$@king times that your password will be burned into your brain forever.
I can't get Java applets running in IE6 at the moment. It keeps suggesting that I download and install the Microsoft Virtual machine, which I've already done. Several times. Arrrrgh! Reinstalling IE hasn't helped.
I must point out that I'm only using IE for testing purposes - Firebird remains my browser of choice.
Some days, the code just flows. But not when you are calling the Windows API. :-(
I've been working a bit more on Windows GUI automation, specifically on combo boxes.
The problem was with automating the selection of items in the combo. To begin with, I was just sending a CB_SETCURSEL message to the combo, like so:
win32gui.SendMessage(hwnd, win32con.CB_SETCURSEL, item, 0)
This did the selection in the combo box so far as I could see, but it wasn't sticking - the changed selection wasn't having any effect on the rest of the dialog.
Turns out, I need also to send a CBN_SELCHANGE, too. Finding this out, along with working out how to send the bloody thing, has taken all day. Sigh.
For what it's worth, here is the final (working?) selectComboboxItem() function, and the whole winGuiAuto module. This is work in progress, mind, but you're welcome to it if it's useful to you.
The world's smallest flying robot, controlled wirelessly via Bluetooth. How much fun could you have with this?
Update: BBC coverage - Mini-copter stars at robot show. It's got a camera, too!
I was woken at four this morning by a car exploding not twenty feet from my bed. Really.
I'm in a ground floor flat, and my bedroom window looks out onto some off-road parking. One of the cars was on fire. It wasn't that big an explosion - it wasn't the petrol tank cooking off or anything. But something went "bang", and it was loud enough to wake me.
Five minutes later the Fire Brigade pitched up, and the excitement was over. By this time, the car was gutted.
My first thought was that someone had torched it - either it was a vandal, someone holding a serious grudge, or perhaps a joyrider-come-arsonist. But in fact, the car's owner come out, and explained that he'd been having trouble with the electrics. It had been spontaneously starting itself up the previous day! So, the car probably set itself on fire, which is a scary thought.
There's something special about four in the morning. If I wake up before then, I can get back to sleep without too much difficulty. But after four, that's it, I'm awake.
Until ten minutes before the alarm goes off, that is.
I'm off to see transit station this evening. Might be interesting.
Lots of new stuff in the Diablo II 1.10 patch. Groovy.
Now, where can I find out what the new rune words are?
Update: Blizzard Chess, via Crummy.
Well, at work alone - no one else in my office today. It's so quiet I can hear my watch ticking. Depressing.
The Eclipse Visual Editor Project has been announced. Building GUIs by hand is a pain in the arse, so this might be nice to have. Except that virtually all my Java is server side these days - web applications rule.
Still, nice to know it's there. We do have Java desktop apps here, and they may well need to grow new dialogs at some point. It'll be interesting to see how layout managers are handled...
Update: Via mgc - a flash demo of the Eclipse Visual Editor. Looks really nice...
Via Newsforge.
The Jython taglib allows you to embed Jython code in your JSPs. I'm not suggesting that this is a good idea, but it's there if you want it. ;-)
The 3D Tube Map (via little things) is a thing of beauty.
See also: the Geographically Accurate Tube Map, the Tube Map with Walklines, the Real Time Tube Map, the Morphing Tube Map, and the London Bloggers Tube Map for more tube map goodness.
Oooh! And a new one - tubeguru. Nice!
Update 20/11/2003: Via Kayodeok, A History of the London Tube Map.
Hmmm. I like to feel that I'm pretty cutting edge, pretty state of the art. So, it's pretty embarrassing for me to admit it, but I've been caught well behind the curve when it comes to LOAF. Until this morning, I didn't even really understand what LOAF was for. Can you imagine that!
Perhaps, though, it's understandable. A paradigm shift of this magnitude doesn't come along every day. The 'net will never be the same again. Empowerment through standards.
Well, anyway, you'll be pleased to know that Small Values is now fully LOAF compliant.
You can't con an honest man, they say. An avaricious fuckwit, OTOH...
This is the sort of thing that makes generating spam worthwhile. If one recipient in a million falls for it, the spammers are quids in.
Via Tilesey.
Update 17th December: Good God, they got Polly Toynbee now!
I've tried a great many varieties of Indian food in my day, but I think I'll be giving arse curry a miss.
Besides, if you must use curry sauce from a jar, Patak's is the only way to go...
I was helping out at Dad's club again on Saturday night. I don't intend making a habit of it, but the band, So Long Angel, is particularly good. Besides, Dad was a little under the weather, and needed the help.
The club next door was running an "Over-40's Nite" (sic). From my post at the door, it looked more like a "Comfortably Over-40's Nite". Paul, the landlord, rather uncharitably referred to it as "Grab a Granny".
Sigh. I'm just a few short years off 40 myself. Is this what life holds in store for me?
"Unum is a Python module that allows defining and manipulating true quantities, i.e. numbers with units like volts, hours, meter-per-second. Consistency between units is checked at each expression evaluation; unit conversion and unit output formatting are performed automatically when needed."
I mainly work on reinsurance industry software, and we only really care about money, so I won't find much use for this. But it's worth keeping a note of - should I ever need to work with physical quantities in future, this package looks like it would be worth its weight in gold.
Via Off on a Tangent, the Web Page Analyzer is a great tool. All bloggers probably ought to give it a go.
I come out OK, especially after moving my archives of to a separate page (which I'm still cleaning up), and cutting down the number of day's posts displayed. It's not too happy about the size of my CSS file, but I don't think that there's any way I could get it below 1160 bytes.
George W. Bush thinks he can hide from an angry public. He's wrong.
The UK Weblogger's Xmas Bash, 2003. I may go, if I can guarantee the presence of a few nerdy types.
Why is it in a Yank blog that I find these great Grauniad links?
This week's headlines, with guidance from the lawyers
101 things we don't miss
Hmmm. Just about every other blogger on the face of the planet has linked, or will link, to this: Mom finds out about blog.
You know the sad thing - my mother does read this blog, and there's nothing in it that I would want to keep from her. In fact, I can't think of anything in my life that I can't tell my mother.
Sigh. I have to get a life. Can you get one from Argos?
BTW, Mum, when are you starting your blog?
A friend of mine was recently looking for the wonderful "Hoax Moon Landing" parody, featuring The Clangers.
I had a look for it. I found that it had been defaced - NASA fake Moon Landing!!!. Clearly some fuckwit didn't notice the joke. This is a bit of a shame - it was pretty funny. I hope that the OP can repair the damage.
But, while I was looking for this, I found some fab links at me(ish).org: A sociopolitical analysis of Bagpuss ("The Mice on the Mouse Organ. They represent the workforce, the proletariat. Normally frozen on the mouse organ (the 'organ' of the state which controls and represses them) they are animated by the waking of Bagpuss, showing the enervative power that a single individual's vision can wield within society.") and Men are from Morden, Women are from Wimbledon. Class.
And this marks the third mention of Morden in a week. Scary. (Morden, that is - I'm not scared of coincidences. ;-)
Right - diaries out. Python UK 2004, Friday 16th and Saturday 17th April, Oxford.
So, I managed to survive being on the door of a pub in Morden on a Saturday night. I didn't even have to call in air support.
I wasn't on the door by myself, I must admit. In fact, I've never been in a pub with so much security. The landlord is dragging the place upmarket a bit, but he's not there yet...
The punters were really nice, in fact. The same cannot be said, though, of some of the pub's regulars, who didn't take kindly to being told that there was a £5 charge to get into their local, and felt happy to share their feelings on the matter fully and frankly. And rudely.
In common with everyone else in the UK with an Internet connection, I know what the current "Royal sex scandal" is all about. Whether the allegations are true or not I neither know nor care.
I will say this, though - that Prince Charles is always really nicely turned out, isn't he?
Fame and influence at last!
Well, not that much influence. ;-)
Jokes apart, it's nice that in land of Python, the little man like me has a voice. Better to be heard and disagreed with than ignored. And Guido ahs, to say the least, a history of getting things right. If he thinks 'magic strings' should remain, the chances are he's right.
Steve's just about getting to the end of Head First Java now. (Which, BTW, he recommends.) He's going to work through Thinking In Java next, which I recommend.
But I've also advised him not to stick too closely to book learning. The best thing to do, I find, is dive off onto real coding whenever you have an idea for something to write. Do as much as you can, then and when you get stuck, go back to the books until you have another brain wave.
Robocode is great for this, if you are learning Java. You can write a simple robot very quickly, but the sky's the limit - as you work through the books, you'll get ideas for all sorts of clever things that you can do.
Another good source of ideas are Dave Thomas's Code Kata. Not just good for newbies, these coding exercises are good practise for anyone. I see Andy and Ian have been using them. I may have a go myself!
I was chatting to Michael yesterday about job interviews. Interviewees can be dishonest occasionally, but it's usually the interviewer who is the most bare-faced. Just once, I'd like to hear the truth:
"Yeah, it's pretty shit working here. The work is tedious, there's no training, and we've not introduced any new technology or work practises since 1985. And the bureaucracy is a bastard.
On the other hand, we don't mind if you are a bit shit at your job, and just so long as you spend the hours here, we don't care if you achieve fuck all."
Games at work are good for productivity.
So, anyone for a game of I-War 2 (my game du jour)?
Oh dear, oh dear, oh dear.
For me, Hugo Weaving (Smith) hamming it up like crazy, and Ian Bliss (Bane) taking him off were the best bits of the film. In general, it wasn't a fraction as deep as it pretended to be, and the action scenes were far too Star Wars-like.
The Matrix: Revolutions - the abridged script (spoilers) is very funny.
There Are Going To Be Some Pointless Changes Around This Office. I, too, used to work at this office - CitiBank, I think it was.
Via Off On A Tangent.
Another shameless plug. I'll be helping my dad run his new club this Saturday night. The music will be good, at least, and if anyone is brave enough to come to Morden on a Saturday night, I'd be glad to see you.
I recently heard a story that a gaggle of Japanese tourists pitched up at Morden, thinking that they were going to visit Mordor, The Land of Shadow. They didn't go too far wrong, in fact. (Whether this story is actually true, I just don't know. Nor do I care, really.)
Belle De Jour, a working girl's blog. Very well written, and interesting too. If, like me, everything you know about prostitution comes from movies, The Bill, and a drunken wander through Amsterdam's red light district, a dose of reality will be illuminating.
Via B.Logman.
Very Quick Wiki, a J2EE Wiki.
Via Near to the Barking Seals.
Java theory and practice: A brief history of garbage collection. A good, high-level overview of the subject.
The Matrix Trilogy – Deleted scenes #1
The Matrix Trilogy – Deleted scenes #2
The Matrix Trilogy – Deleted scenes #3
The Matrix Trilogy – Deleted scenes #4
The Matrix Trilogy – Deleted scenes #5
No spoilers. Thought from what I hear, it would be pretty hard to spoil Revolutions anyway. :-( I'll be seeing it tonight, so I'll let you know what I think tomorrow.
The SchoolTool project isn't making too much of a wake at the moment, but I suspect that before too long, there will be a bit more buzz around it.
SchoolTool is (or will be) a fully open source, free education administration system. Think SAP for schools. It's written in Python, with an interesting and flexible architecture.
The project is being funded by The Shuttleworth Foundation, as founded by Mark Shuttleworth. Yes, that Mark Shuttleworth.
Mark was at last year's Python UK conference. He was already planning this project at that time, and he was looking for people to work with. He basically wanted someone with strong Python skills, and lots of XP experience. Since I don't really fit the former category, and I don't even remotely fit the latter, I wasn't the man that he was looking for. Which was a bit of a shame. But I though I knew a man who was - Steve Alexander, whom I'd met at a previous Python UK conference.
Bizarrely enough, I bumped into Steve on a crowded train to Reading just a couple of weeks later, and I mentioned Mark's project to him. Steve was (and is) working in Lithuania, so it seemed to me unlikely that Steve would be able to join the project. I was under the impression that Mark wanted the it all be based in London. But, with Steve's permission, I passed his contact details on to Mark anyway.
Clearly I was wrong, since Steve is now on the SchoolTool team. Cool! I suppose that these days, there's little reason why a project needs to be based on any one place, after all.
So, anyway, if you want to contribute to a truly worthy open source project, SchoolTool could be your man. I wish it luck.
Is anyone else unable to download JTOpen at the moment, or is is just me? I've been trying on and off for a week or so now...
... and it looks like the Liberal Democrats won. ;-)
Very professional looking - Revenge of the Menu Bar.
Via magpiebrain.
More bloody clever JavaScript stuff from Stuart Langridge - JavaScript Event Sheets allow you to apply event handlers to elements without explicit JavaScript tags.
Economic Left/Right: -2.88
Libertarian/Authoritarian: -4.31
Via Ned Batchelder.
The numbers by themselves mean nothing at all. As Ned points out, placement the centre lines is entirely subjective. But it seems to me that relative scores might have some meaning - so, for example, I'm a little less left wing then Ned, and a little more libertarian.
But is it a good test?
What do you score?
O'Reilly's online Alphabetical Directory of Linux Commands is a great resource. One to bookmark.
BTW, does anyone know how to write to an NTFS partition from Knoppix?
The new PSP looks delectable.
But I've always thought that Nintendo consoles have the best software, so I'll probably stick with my GBA SP.
(As if I have the choice with my finances. ;-)
I'd not heard about the Game Programming With Python book, but it seems that it's out. Blinding.
Wow! Now this is a PC! (With the 92" monitor, naturally.)
Any chance, Boss?
No, thought not.
Via Richard.
It's the pepper spray.
Break email altogether! Thank you, Derek Wyatt MP, for showing us just how well informed the UK decision making process is.
Via random stuff.
Don't have tickets for Revolutions tonight? Like beer? Got a high nerd threshold?
Then come along and meet Steve, Andy and I this evening at the The Porterhouse London in Covent Garden.
If pervious meetings are anything to go by, we'll talk about Java, Python, blogging, perhaps a bit of DHTML, and any other nerdy stuff that springs to mind.
Oh, and birds, and beer. And probably Australia.
Python 2.3 Quick Reference. Don't leave home without it.
Bravo, Richard.
Sortable tables in pure DHTML. Cool stuff.
I've just about installed everything I need now, but there are still a few things that I only use occasionally, and which I'm installing as I come to need them. There is, though, one big problem all of a sudden.
For some poorly understood reason, whenever anyone installs any Windows software at my place of work, all the program groups and shortcuts get put into the 'all users' profile, rather than into one's own profile. Most of us remember to move these to our own profiles, lest other users pick these up when they next log in. Most of us. Most of the time. ;-)
At least, this is what used to happen. Now, our network fascists team have removed everyone's write authority to the 'all users' profile. Which means that you now get no program groups and shortcuts when you install stuff. Usually this doesn't matter, 'cos you can create your own. Some software, though, needs shortcuts which aren't so easy to create manually. One product that I use creates 30+ shortcuts, each with different arguments.
To create these, I just zipped up the appropriate program group from someone else's PC. But of course, all these shortcuts have the wrong paths in them. Sigh.
Python to the rescue! Mark Hammond's Python Extensions package contains working example code in link.py
. With this, you can knock up a quick-and dirty like fix_paths.py in a couple of minutes, and away you go.
PEP 289 -- Generator Expressions
I like this proposal. (Sorry, Hans!)
Python's List Comprehensions have long been a favourite of mine - powerful, and terse without being difficult to read or, uh, comprehend. (Those with only one for
, that is. List comprehensions with multiple for
s overflow my brain.)
But I must admit - I don't like the name much. 'Comprehension' - what does that have to do with anything?
List comprehensions always create the whole list. You don't always need the whole list at once, and if the list is big (or contains big objects), this might be a problem memory-wise. And if course, if your 'list' is infinite you can't materialise it at all! Python's generators are perfect for dealing with large or potentially infinite sequences.
PEP 289 proposes a list comprehension like syntax for creating generators - the generator expression.
Since the output of any finite generator can be turned into a list using the list()
built-in, the existing list comprehension syntax will become merely syntax sugar for a generator expression so wrapped. But by wrapping in calls to dict()
or tuple()
or so on, one can create dictionaries and tuples as easily as lists.
Also, generator comprehensions are a natural fit with reduction functions like sum()
- why materialise a whole list at once just to add up the numbers? New reduction functions are also planned to take advantage - though I hope these go into a module, rather than bulk out the built-ins too much.
All this, and a name that makes sense!
Ted Leung points out a couple of iSeries related articles. An Object-based Systems Architecture, which talks about how OS/400 is object oriented to the very core, and its capability-based security features. Few people outside of IBM's Rochester development lab. are aware that the AS/400 is a marvellous bit of advanced technology - still (IMHO) many years in advance of anything else on the market.
WinFS Vs GNOME Storage? Can you Say OS/400? is about the '400's database based filesystem, how ahead if its time this was, and how bloody useful it is.
I just went over to a client this morning to make a quick fix, and I have to say that the '400 doesn't feel particularly cutting edge. But that's just the tools, really - PDM, SEU and DFU, (the tools I used today) are all out of the ark. IBM have certainly provided more up to date tools, but in my experience, no one uses them.
In fact, I was using a 5250 dumb terminal today. Good God, no cut and paste! I kept looking over my shoulder, worried about being attacked by a saber-tooth.