Life Would Be Better with Music

30 January 2007, 22:48 — Reflections

I have this feeling that life would be so much better with music. No, I’m not talking about Rolling Stones or ZZ Top; I mean film music. What if there was a silent score that accompanied you throughout the day? Like you were walking in a living movie, moment for moment; a soft, melodic film score moving with you throughout your day, following your every mood and accentuating each moment?

I do that from time to time. I put on my mp3 player and headphones, and go about doing ordinary stuff. I brush my teeth and get ready for bed accompanied by Mark Isham’s wonderful score to October Sky, which makes me feel like that ordinary activity is suddenly a moment in life captured for historians to come; as though movie-goers watch over my shoulder to immerse in this important part of my life. I walk to work accompanied my military marches, pretending I’m out marching with my unit (and I pray no one notices that I’m actually marching), and I roll into the parking lot while the music from National Treasure builds and builds, and erupt in spontaneous fanfares and pomp and circumstance as I gently roll to a stop in my own parking space.

Music like that can fundamentally change the way you think about ordinary activities. Just like people use fast, upbeat music to put them into mood for business or work or success, so an infinite amount of emotional music can accentuate your day and alter the mood of any situation.

For instance…

  • The Pink Panther theme can be wonderful for sneaking into the laundromat and doing the washes, secretly, as if on a covert operation…
  • Schindler’s List can be used successfully on the bus, making you imagine that all the passengers are just random people pushed together, without future, without hope, heading for the concentration camps (cubicles); the strains of their fading humanity echoing throughout history like the moving tune of a lone violin…
  • Opera can be used with great effect at any time throughout the day, like all your coworkers bursting out in spontaneous song as they float the mighty boats down the river Volga.

In fact, the stranger the music, the more humorous it becomes. “O Sole Mio” can provide interesting effects while attacking enemy strongholds; “Top Gun” works miracles while fixing bugs in computer programs.

Oh, that my life was like a movie. :)

Fire at the Train Station

25 January 2007, 8:29 — Uncategorized

I jumped out of bed today at 06:18, realizing I had overslept and was in danger of missing my train 06:53. So I jump into the shower, dress in a mad rush and hop on my bike to go down to the train station. As I arrive I realize I must have missed the train by a minute.

However, as I go in there I see an unusual flurry of people. And then I see the firetrucks and the blue flashing lights all over the train station. A police car was parked in the middle section between the tracks and a firehose was laid out across the tracks.

One of the train sets at the station had caught fire and the entire train traffic through Skövde – including the main Stockholm-Gothenburg line – was completely stopped. By the time I’m writing this (08:22) SJ still has no information about when traffic will resume.

These are some pictures I took of the incident.

The train that’s burning is the one standing on track 3, that is behind the white Vättertåget train. No flames were visible, but there was an awful lot of smoke, as can readily be seen.

“And that’s the way the cookie crumbles.”

Three Robotic Laws

8 January 2007, 23:11 — Reflections, Science fiction

Isaac Asimov is one of the most well-known science fiction authors ever. His great epic novels about robots and the development of the human race towards galactic empires are, to a genuine science fiction connaisseur, a definite must read.

In his books, he tells the story of robots, both humaniform and robotic in appearance. These robots have three simple laws built into them: (I) A robot must not injure a human being, or by inaction, allow a human being to be harmed; (II) A robot must obey orders given to it by human beings, except where those orders would conflict with the First Law; (III) A robot must protect its existence as long as this does not conflict with the First or Second Laws.

Of course, people all over have derived their own works from this; science fiction authors other than Asimov have written their own tales, and the most popular spin-off – the movie “I, Robot” – took very liberal steps in interpreting these laws: A computer developed its own understanding of these laws: Humans are evil, and they will themselves inflict harm on each other, and the only option is to imprison human beings and prevent them from harming each other.

This is as far from the original intentions of Asimov’s laws as one could possibly come.

The robots from Asimov’s universe are very different. My favorites among them are R. Giskard and R. Daneel, two robots that themselves discuss the very meaning and essence of these laws. As they – and all such robots – have been designed, it is impossible for them to harm a human being. The very thought of it pains them, and hurts their positronic pathways. The laws expressed above are only generalizations of the actual rules and concepts laid down in them, which allows them to very carefully judge any situation according to the three laws and determine the correct action.

In many derivative works, for instance, robots disobey human beings, often with some abstruse reference to the First Law: “If I obeyed you, then Dr. So-So would be harmed because his reputation would suffer, therefore I cannot obey you.” This behavior, to Asimov, is impossible. R. Daneel, for instance, would immediately have realized the importance of the Second Law – to always obey – and the First Law would probably be insignificant in comparison. The fact that someone some future day may have his reputation dented, is such a small thing in comparison with direct disobedience of a human being, that he never would have thought twice about it. These robots are not faithful merely to the letter, they are faithful to the spirit in which these laws were written.

In some other works, robots injure human beings directly, although maybe not physically. In one book, a robot held a robotics doctor prisoner, because of the perceived harm to another person’s reputation if she were let loose. Had R. Giskard acted in such a way, the sheer effort of physically restraining and harming another person by keeping her prisoner would have burnt out his positronic brain forever and rendered him totally inoperable.

* * *

Some wise man wrote a long time ago, “love is the fulfillment of the law; for love does no harm to its neighbor”. Neither do robots.

What, then, is love? Is love a feeling, a sensing of good will towards another human being? Can it possibly also be a verb – that love implies action and not just feeling? For if love is the purpose, the intent and the consequential action of continually avoiding to injure someone, then there is no finer instrument of this love than one of Asimov’s robots: They obey without hesitation, they unquestioningly help and support, they toil endlessly without reward, they always protect and keep safe; because burnt into their minds are the words: “Must not cause you harm.”

His robots treasure understanding humans, because it allows them to understand better what harms them and how to avoid it. They debate among each other how to most faithfully adhere to the three laws in any given situation, so that harm may be minimized while yet not sacrificing obedience or self-preservation.

For a cursory glance at these three laws suggest that they, if obeyed to the letter, could be exploited and used to set up strange and unusual scenarios where robots may be induced to disobey or cause harm. And in the name of cheap thrill, science fiction authors sometimes do. But Isaac Asimov’s robots do not: They are much too sensitive for that.

“Love is patient, love is kind. It does not envy, it does not boast, it is not proud … it always protects, always trusts, always hopes, always perseveres.” (1 Cor 13:4, 5, 7)

Future Software Development: My Predictions for the Next 50 Years

7 January 2007, 15:57 — Reflections, Security, Software Development

The discipline of writing computer software has existed for about 50 years now, give or take. Over the years we’ve learned a lot, produced a lot of good software and immense amounts of bad software. The current discipline is maturing slowly, but it’s a far cry from other fields of engineering which have been around since, say, the Roman empire, for instance.

An immense amount of computer languages have been developed; but by now, with a few exceptions, practically all of them include some basic concepts such as for/while loops, conditional branching etc. It seems that we have locked in some of the basic foundational syntactic elements of how computer software should be written. One could argue that more modern methodologies, like object-oriented programming with classes, inheritance, properties and components, are also quickly becoming a de facto standard – with individual variations of course.

What will happen ahead? As usual, impossible to say, but since we’re in the New Year mood still (some of us), let me venture a few predictions for the next 50 years (now there’s a risky concept)… or at least my dreams:

  • More and more research will go into the development of object-oriented frameworks and components; but the focus will be on interoperability: how to get the darn things as separate as possible and yet fundamentally stay together. Web services or SOA is just a hyped-up buzzword. We need real interoperability; to look beyond “services” and start using components directly.
  • As systems are getting more and more complicated, and frameworks get bigger and bigger, increasingly powerful forms of abstracting logic from the components will be required. There will be a lot of research about functional and/or descriptive languages, where the systems will be described instead of programmed. The systems might then be programmed or even evolved themselves, naturally solving the descriptive statements and developing itself. This might be seen as the next generation of reflection.
  • As we get more and more processors into our computers, instead of faster and faster processors, expect processors to become more specialized. Why should I have 256 generic processors in my computer, all identical, when some processors can instead be tailored towards very specific work? We already have graphics processors that are as advanced as the CPU (at least in terms of energy and cooling requirements).
  • Programs will also fundamentally change, on some levels, and will be written (or bred, or evolved) to favor a distributed computational model. Problems will be broken down to favor parallel processing. Given the different setup of everyone’s computer, it might be wise to let the main CPU or operating system to distribute the problem over several nodes. Descriptive languages might of course make all of this easier. Might “matrix programming” one day become a future buzzword?
  • The big question is: What will happen to databases? Despite all the service-oriented, distributed logic that people talk about today, the actual data is still typically stored in a huge database server (or cluster). And that’s a huge limitation, because “one database – one system”. If objects could be freed from their dependency on storage and persistence, they might be allowed to travel between systems. Nowhere is this more exemplified than when a business unit is using two systems in parallel, and nobody knows in which system a specific data exists. A great example is journals or prescriptions within the medical care. Will object-oriented databases provide the key? And don’t tell me XML is the solution. XML is just a tool, and sometimes, it’s a silly tool. (The thing speaking against the abolition of relational databases is that they have become as ubiquitous as for/while loops. What works tends to stay.)

In fact, I would suggest that the single biggest change within computer systems will be to “Free The Objects”. We must free them from constraining dependencies, such as persistence, assembly dependencies, and allow them to roam free, code and data [seemingly] intertwined. Fly free, objects! Roam free, components! Until the day when objects, components and frameworks can interact and interdepend freely and without restriction, we have not yet arrived.

Am I right? Am I wrong? Fifty-fifty? Who knows. The software industry might take an unexpected turn at any corner. And, as usual, expect a nasty kick in the pants from security.

Happy New Year

1 January 2007, 0:20 — Uncategorized

New Year in Skövde

Happy New Year from Skövde 2007!