May 2007


Really, I’ve seen a lot. You really don’t have to be ashamed of being… different – but on the other hand, this pick of search phrases that have been used in arriving to this blog the last two days is… Just a little, little bit disturbing you know?

  • bastianini live performances on dvd
  • sin of narcissism
  • Encode charcters to ASCII in java
  • goddes of dawn
  • eclipse launch configurations not seen i
  • how to start with spring programming
  • hansi kursch religion
  • java programming converting inputstream
  • if i can build a computer i can make you
  • the body bags and little rags
  • if jesus comes back we’ll kill him again
  • chocolate mousse translated in Finnish
  • need joomla multilingual help?
  • php cms in JSR-168
  • islay alcohol

At least they gave me a good laugh. “chocolate mousse translated in Finnish”?! God gracious me.

My book library have been updated. First, the latest installment of Steven Erikson’s epic fantasy series, The Bonehunters. I am, as I suspect many others, slightly in awe of Erikson. Extremely complex. Extremely well written. Extremely good stuff.

The second update is the classic The Design of Everyday Things, by Donald A. Norman. This is really good stuff, and anyone aspiring to design software, be it GUI or API’s, really, really should read it. I picked it up after reading an interview with Ken Arnold over at Artima.com:

Taste is a very personal thing. There is no textbook. When people ask me about books on object design, the books I hand them have nothing to do with object design per se. I commonly recommend The Design of Everyday Things, by Donald Norman. This book promotes focusing on usability in the design of doors, teapots, and faucets – everyday things. If you do that for objects, you’ll have the idea.

Oh yes, Ken Arnold as in:

State is hell.

Or:

Every program has at least one bug and can be shortened by at least one instruction — from which, by induction, it is evident that every program can be reduced to one instruction that does not work.

I just came home from leaving a Sonny Rollins concert during the intermission. Shame on me.

As Mr Rollins won the Polar Music Price this year, they also arranged a concert, in the Royal Concert Hall, and yours truly actually won a ticket for it when I was at Jazz Club Fasching the other week.

So why leave? Well, color me ignorant (which would be true) but I had expected something more… expressive. It is ever so slightly embarrassing when the, by far, most expressive and intensive and interesting player in a set is a 77 year old jazz legend who has, I’m afraid to say, clearly passed his peak. The band behind Rollins was bland. Gray. Vanilla soft.

Sure, Clifton Anderson blew some evil phrases on the bone. And the old trombonist (9 years no less) in me was happy for a whole minute hearing some good jazz bone again. But after a minute it was plain that he would play a soft kind of mezzo piano and nothing else. Expressive? No. Interesting? No.

The rest of the band was like watching a big vat of milk very slowly turning bad. Uninspired and boring.

So when the last tune before the intermission was “Park Palace Parade” from their latest recording, sounding like a strange kind of “Sonny Rollins discovers happy-happy latin jazz” (think Ove Törnquist with saxophone), I decided to drop off.

Hats off to Sonny Rollins for showing the band who’s boss though.

This years JavaOne announced several important Java technologies. The one that got most initial attention was of course JavaFX. Well, exciting as this may sound I wasn’t alone in wondering how on earth Sun could hope to launch such a technology on their existing platform. Take these bullet points:

  • Huge download (JRE)
  • Slow startup (no pre-loading here, no)
  • Crappy browser integration (seen any applets lately?)
  • Bad JRE detection (part of the above problem)
  • Somewhat slow graphics performance
  • Sub-standard installer

As a profoundly specialized server developer (I still have nightmares about the one time I had to dive deep into the source of JTable and JTree, the horror! the horror!) I’ve never been very concerned personally. It has annoyed me on an academic level, as I’ve never understood why Sun just didn’t smarten up and fix it.

So why launch JavaFX now? Well, it turns out someone was a bit smarter than I first thought. You see, there was an announcement made on JavaOne which got drowned out a bit, the Consumer JRE. It would appear Sun has finally granted all our wet dreams. Here. And here.

Wheee! Damn good stuff!

Sooo, yesterday Karin and Miklos celebrated their wedding. And yours truly acted as toastmaster. The actual ceremony had taken place privately a week earlier ar Thorskogsslott.

All is well and all went well. Some 63 guests and a number of children. The party was at Konstnärshuset in Stockholm. Lovely place.

I had been somewhat lax in the preparations for this one, which I felt keenly with one hour to go and I still had no real handle on the timing for the evening. Miklos and Karing would arrive aprox. 1730, does that mean we can start the dinner 1800? Or will it take longer? And, really, how many speeches will there be? And how much time do I have between the first course and the second? And what have I forgotten? However, it turned out alright, there was just the right amount of speeches and performances and I kept a running dialog with the cooks and the waitresses which kept the momentum flowing nicely.

I did, however, make the noob mistake of hitting the red Bordeaux, Chateuax de Seguin, a little hard, making me loose a bit of edge in the middle of the dinner. If nothing else apparent in my horrible, but rather fun, performance of the opening duet from The Marrige of Figaro which Miklos sister Noemi, pianist Bonita, and I slaughtered to general laughter.

There were several really god speeches during the evening.

And one really bad speech where I consciously lost edge and improvised a rather bumbling, rambling and strange “speech” from the Club of Mondays, supposedly derived from several disjointed SMS messages I’d received during the evening. All ending in an incorrectly recited version of One who is like an eagle, now formally re-dedicated for the occation, and the authentic quote “I once signed up for a dream interpretation course by mistake”, courtesy of the Matts of all Matts.

After desert the party slowly faded out when quite a few of the guests left rather immediately. I hit the bar, and its, frankly quite pathetic, whisky shelf, fairly hard and proceeded to enjoy the rest of the evening. A nice surprise was that I turned out to know quite a few guests, Lars, Marcus, Mio, Lina, Johanna etc. Nice seeing them all.

Yes, we have pretty, but mosly dark and out of focus, pictures!

All in all? A lovely evening indeed.

I just realized Google Earth has been ported to Linux… Ooooh, it is fun to play with, isn’t it? But anyway, it got me thinking, so for the love of satellite imagery, nostalgia and the sheer hell of it…

Places where I’ve lived – In order

  1. Redskapsgatan, Arboga, 16 years (exact hit)
  2. Allmogeplatsen, Västerås, 2 years (exact hit)
  3. Hammarbacksvägen, Västerås, 1 year (west end of house)
  4. Dalarö Folkhögskola, Dalarö, 1 year (wrong house, look north)
  5. Storgatan 105, Piteå, 8 months (house north of marker)
  6. Storgatan 69, Piteå, > 2 years (exact hit)
  7. Nygatan 66, Piteå, 10 months (exact hit)
  8. Sundial Court, London, 1 year (exact hit)
  9. Västra Andersgårdsgatan 7, Göteborg, 2 years (exact hit)
  10. 23 Derwent Grove, East Dulwich, > 1 month (exact hit)
  11. 149 Dudley Road, Birmingham, < 2 years (exact hit)
  12. Eklandagatan 44, Göteborg, 3 months (exact hit)
  13. Adventsvägen 17, Göteborg, > 2 years (exact hit)
  14. Odengatan 36, Stockholm, > 1 year and counting (exact hit)

I’ve only included the places where I lived, that is to say the places which  not just felt like pit stops in my life. As a result, my brothers place isn’t there, nor is the Bed and Breakfast I stayed in for a month or two in Birmingham, etc. But as a bonus, here’s where I spent most of my childhood summers:

As these places appear in many, and very different, phases of my life it is hard to point out any favorites, although… perhaps… Ah, sod it: #3, #6, #9 and #13. OK?

Rob Walling has posted an excellent article on How to become a programmer. I especially liked that he stresses the importance of apprenticeship, formal or not, if nothing else because that’s how I did. My first two years as a professional I played wing mate to Mr Gibara, which was in hind sight, extremely valuable. I also agree to his answer on the question “Is it necessary to know mathematics?”, although my answer is simpler but, if I read him correctly, amounts to the same thing: No, but in order to be a great programmer you need to be good at it should you apply yourself. In other words, you can be a good programmer in many fields without knowing maths, but I have yet to meet a great programmer who wasn’t at least in potentia good at maths too.

Other than that, two comments on his article prompted me to add my two cents to the stack:

Is programming an art?
No, it is not. Although “art” can be used as in “the art of driving a car” very few uses it, and mostly my impression is that the following definition is the most understood:

4 a : the conscious use of skill and creative imagination especially in the production of aesthetic objects; also : works so produced b (1) : FINE ARTS (2) : one of the fine arts (3) : a graphic art

But reading Merriam-Webster shows up a synonym which in my mind is much closer, that of the “craft” (m-w.com here). Programmers do not create art, the most important thing when programming isn’t to stimulate the mind, it is to produce working software. In fact, I think Wikipedia actually nails it:

For example, a painting may be a pure art, while a chair, though designed to be sat in, may include artistic elements. Art that has less functional value or intention may be referred to as fine art, while objects of artistic merit but serve a functional purpose may be referred to as craft.

Bingo. If you can’t sit in the chair you aren’t a craftsman, but you may still be an artist. There are also other stimulating similarities between a craftsman and a programmer, we have our tools and our toolbox. Craftsmen of old often traveled to were they were needed. A craftsman, at least in my imagination, has pride (and to me, pride is a vital component if you want to be a great programmer). Etc.

Do not forget: programming is a task that can be learned much learning a foreign language, or how to refurbish a bathroom. In many fields you can be a good programmer indeed without the slightest bit of creativity, curiosity or mathematical abilities. The difference between the master and the merely very good isn’t necessarily about artistic abilities, it is all about how good [insert definition here to your own liking] the end product is.

Is programming engineering?
No, it is not. In some fields, like aviation control or satellite navigation, it may come quite close, but I wager it isn’t there either. There are many reasons for this, but merely asserting “if only programming was more like engineering” is like wishing for cold fusion: it would be nice to have, but we have no idea how it would work. Many smarter persons than me have discarded this notion so I’ll leave it as this.

I’ve ranted about Windo$e Vista previously. Well, here’s another article to consider, comparing XP with Vista on a number of games using two high end graphic cards. Verdict? Vista is way behind in performance:

In the end, it looks like the new, bulky, poorly supported operating system is at the root of it all. This is not to say that this is a final verdict. If Microsoft keeps to its pattern, we can expect a service pack that may do some Spring cleaning with the OS and improve its ability to support better performance in games.

Currently Cubeia Ltd is using the methodology called Scrum, which is a part of the family of so called Agile software methodologies.

Works fine for us and many others. There are some problems though. One is that it feels curious committing on hard deadlines in the future, “product X will be delivered at date Y”. Another is the lack of a design phase, and hence this little post.

Designing component X is about finding out how X is supposed to work (perhaps you’d call this “requirements”, but I think there’s a tangible difference between “requirements” and “specification”), how X can be made to work as specified, and how we can ensure X a long lifetime, in other words that X can be reused and that X will not impair future designs.

Design is hard.

Software has become a commodity. It is everywhere. The mass of software produced worldwide is staggering. And 99% of it is bug-ridden and/or badly designed.

When people ask me why software isn’t like engineering, perhaps something in the lines of “why does software always have so many bugs, I mean, we can build bridges and machines, and they don’t have that many errors do they?”, I usually sneer back: “Well, give me enough cash and I’ll give you bug-free software.” This may sound strange considering how much software costs to develop as it is, but not if you take software complexity in mind. A bridge for example is, at least in its basic forms, is simple, static and built with material which has static and reliable properties. Software on the other hand is often complex, dynamic and is very seldom build upon reliable hardware components.

Scrum works because it provides a pragmatic way forward in a rapidly shifting and changing problem domain. On the other hand, more traditional “engineering” does exist in software development. And no, I’m not primarily talking about waterfall methodologies, but something like this: How do they write software at NASA? It should be pointed out quickly though, that, say,  an ordinary web developer, has no control over that hardware, whereas NASA probably knows on beforehand exactly what hardware the software is going to run on, so you can perhaps remove one tier: complex, dynamic but build on reliable components.

Seems to work well for them. I’d love to try it one day, if nothing else because I hate, with all my body and soul, to write bugs; to the point of physical nausea at times. But I doubt we’ll see any major revolution in the software industry yet for a while.

Design will remain hard.

As time goes by things passes. People and places flow in front of our eyes, and even though we often would like to stop the motion, hold the current, we never can. And sometimes, you don’t even notice loved things passing until they are already out of sight.

Really. Normally I wouldn’t write this post. I really haven’t got much to say. Last time I saw the man was 14 years ago. And really, my memory isn’t the best. But nevertheless.

And, all I could find on the net, other than the sporadic listing of dead peoples, was a short mention in the protocol from “kyrkorådet” in Domkyrkan from December 2004. And somehow, it doesn’t seem enough.

So. Nevertheless.

RIP Ulf Ehnbom, 1943 – 2004
Yesterday, meeting some friends, word finally reached me that Ulf Ehnbom, long time history and religion teacher at Carlforsska Gymnasiet in Västerås, had passed away almost 3 years ago.

Ulf was “klassföreståndare” for the music course students at Carlforsska Gymnasiet, 90 – 92. He didn’t really want to be, and his first word to the collected students in front of him that warm autumn day 17 years ago was: “I have been given you for my sins.” What a thing to say to a confused group of 16 year olds! We were some 30 people in the course and more than half of them had moved away from home to attend. And what is it you’re told on the first day of that new life? The guts of the man! What he meant wasn’t as bad as it sounds though, being responsible and taking care of the music students at that time was a chore, and as he explained to us, “music students in general often show quite ambivalent behavior, on one hand, intelligent, thoughtful and expressive, and on the other, right little bastards.” He ended the information meeting with something in the line of: “and now I’m supposed to take you around the school, show you were the principals office is, where the restaurant is etc. But really, I’d much rather go home and stretch out with a beer. I mean, you’re 16 years old, I do think you can find your way cantina without me hold your hand.” There was general agreement in the class. And the word on the street afterwards was that he’ll be alright. Somewhat strange, but alright.

Over the 2 years he was responsible for us, we gradually started to respect him like no other teacher we had. You see, we were without doubt right little bastards at times, but what Ulf did and what, for me at least, was quite a revelation, was not caring overmuch. What we did wasn’t really his problem. He would look us in the eye and tell us when, and importantly, how, we were wrong. But at the end of the day, he considered us grownups and if we wanted to fuck up badly he had at least warned us. It may sound like a cold relationship, but in our eyes, he respected us and our choices, misguided as they may have been, he gave us the freedom to screw up badly, he didn’t take all the more or less ridiculous things we did very personally, and in return we gave him respect back.

Some strange results came out of that relationship. For example, almost everyone in the class studied hard for his examinations. Everyone. This might not sound strange to you, but if you had met us at the time, right little bastards as we were, you’d probably be surprised we went to school at all. We really only cared about music, and every other subject, and its teachers, was in for a nasty surprise when meting us. But for Ulfs exams, the entire class studied.

More than any other single person, Ulf taught me how to think. That using your brain wasn’t about learning algebra from a list. That learning history wasn’t about years or dates or even names. That separating history from religion in western Europe was a futile academic exercise. That understanding causes and effects was much more important than the fiddly little details. That it is OK being intelligent and to use your brain, even when others might not think it politically correct. (He considered writing an academic paper on the conflicts among the disciples in the new testament, just because he knew it would annoy certain persons in aforementioned “kyrkorådet”).

Of course, everything wasn’t peaches. I know that others don’t remember him fondly at all. But such is life when it is not cencored, and I’ll leave it to them to voice their opinions. I do know though, that Ulf was the only teacher from that time that I wanted to meet again. That I’d wonder from time to time what and how he was doing. And I know I’m not alone in that: Marcus, Erik, Gustaf et. al. would certainly agree.

And now it is getting late. For certain things it is already too late. But before I blow out the candles tonight I’ll pour myself a generous dram and raise my glass. For what it is worth: thank you Ulf. We remember.

Let my weary soul find release for a while
In the moment of death, I will smile
- Hansi Kürsch

Next Page »