Archive for January, 2008

Links on a busy monday

January 28th, 2008

Escher in LegoDid I ever mention i hate domain squatters ? I do. Fat leeches on the fabric of the web, they are. Well, there’s plenty there to suck, apparently.

Reddit for Ruby hackers : the half-full side of me says: Nice ! The grouchy side complains about feed overload and information numbness (through Koen). But better too much than too little.

Some of us are wont to dream about what we would do if we every won the lottery. Since I don’t play (as advised by my statistics professor), my chances are faintly smaller than the usual. Well, here is a story about a bunch of people who won the lottery of life.

Excessive focus

January 28th, 2008

aliceI’ve noticed a characteristic about myself, and i wonder if it’s something other people in the profession experience.

Walking through life, i tend to register some people and objects in great detail, but large parts of the surroundings go completely unnoticed. Say, i can tell the color of some child’s toy, but not the fact that there was a dance demo across the street. People usually ask me “but how could you not see this ?”

I can be completely involved in one activity, and miss all the rest. When i read books, talk to someone, work – all the rest fades in the background.

I’ve always been a bit of a space cadet, but i feel this particular aspect is getting stronger with age. I wonder if it’s a geek attribute, this. Something linked to the profession – the long stretches of concentration on 19″ of reality. Are any of you affected by it ?

Music for programming

January 25th, 2008

Koen tossed me one of them blog hot potatoes. Since i like the subject, and he’s a nice guy, and nowhere was implied that not passing it on would blight my love life, destroy any chance of financial success, and generally curse me onto the seventh generation, i’ll do it.

What music do i listen to when i work ?

Well, to be honest, not a lot. I’m not very good at dividing my attention, and i need long stretches of silence for top notch concentration.

If i listen to music, it will usually be music without voice text: two favourites are Phil Glass music and Mesmeric Revelations from an obscure project called One Thousand Spirits.

For more repetitive and uninvolved tasks, i’ll take Queens of the Stone Age for upbeats. For more quiet moods there’s The Beta Band “Heroes to zeroes” and “HotshotsII”. And radio if those get old (StuBru or PureFM).

I pass this on to Philip, Kris and Koen, if they want.

Hum

January 22nd, 2008

OK, for those who wonder where the previous post went – i just realized i probably ought to keep it quiet for a while – it’ll pop up again later.

Thanks for the comments :-)

Semantic web

January 20th, 2008

A good few weeks ago i promised i’d report on that talk I attended at work about the semantic web. As they say in french “Chose promise, chose due”, so here we go … It’s a loose interpretation of what was said there, based on my notes at the time.

Ontologies
Ontology is actually a concept from philosophy, not computer science. Quoting wikipedia:

It seeks to describe or posit the basic categories and relationships of being or existence to define entities and types of entities within its framework.

In other words, concepts and categories within a domain of interest and the relationships between them.
To take a practical example from the speech: pizza’s are composed of a base and ingredients (3 concepts already). Ingredients can be tomato sauce, toppings, cheese. Cheese can be parmesan or mozarella. A pizza that contains meat toppings is not a vegetarian pizza. You get the idea.

Ontologies are set up by humans, not by machines: they are an expression of the understanding of the world around them, and machines are not there (yet).

OWL
Ontologies need to be expressed in a parsable way: and the most widely accepted way is OWL, the Web Ontology Language. OWL is a W3C recommendation.

To understand what OWL looks like, you need to know about RDF (Resource Description Framework). RDF allows you to lay relationships between concepts, by using triples (statements made out of 3 components): subject predicate object. Ex. vegetarian pizza – is a kind of – pizza. Sky – has colour – blue.
OWL
RDF triples are expressed in XML. The “Resource” part refers to the fact that the subject and the predicate are URI. Quoting Wikipedia:

The subject of an RDF statement is a resource, possibly as named by a Uniform Resource Identifier (URI). Some resources are unnamed and are called blank nodes or anonymous resources. They are not directly identifiable. The predicate is a resource as well, representing a relationship. The object is a resource or a Unicode string literal.

If this sounds familiar to you: RSS is an application of RDF.

An ontology expressed in OWL is a set of these triples around a domain of interest.
OWL comes in 3 flavours:
OWL Lite ⊂ OWL DL ⊂ OWL Full
OWL lite is a light version and contains enough expressiveness to allow to make taxonomies (“is a kind of”, “has 0..1″, …).
OWL DL has maximum expressiveness constrained by what can be used for software.
OWL Full gives full freedom and maximum expressiveness, without taking into account parsability by a computer program.

Software
No need to open vi (unless you really insist): there are editors for setting up an ontology. An example is Protégé, a tool from Stanford, that allows you to set up an ontology in a user-friendly way (Swoop is another).

Now what will computers do with this ? Well, once you’ve got a coherent ontology, you can use an inference engine to draw conclusions, or to search in a semantically relevant way.

Examples of inference engines: FaCT++ (open source),Cerebra (proprietary), Racer, Pellet. There are undoubtedly numerous others i don’t know about.

This part made me think of Prolog, except that OWL is more expressive, and in OWL we work with an Open World assumption: what can’t be proven is true (in Prolog it’s closed world assumption). This can lead to bugs if the ontology is not air-tight.

Practical applications
I’m told there’s successful applications using semantic technologies in genetics and pharmaceutics. I know of some practical applications that allow salespeople to select products to propose to the customers based on that customer’s criteria. I’ve also read a pretty interesting article using RDF in Ruby on Rails for an enlarged social network.

Semantic web ?

So in fact, the dream of a semantic web refers to perfect searchability for documents and resources on the web. You could search on a particular term and get results that make sense, even if they don’t contain the exact word you’re refering to.

Of course we’re still far from an over-arching, universally accepted set of ontologies that would allow us to do that. But the enormous mass of information available makes it necessary for more advanced search mechanisms to be developed. Maybe it will happen subdomain by subdomain. See what the future holds …

Of bacteria and men

January 15th, 2008

sick teddy bearI had the displeasure to be sick last week. Nothing serious, something in the variety of bad colds with throat and ear extensions.

In fact, being moderately indisposed is not that bad: sitting in a heated room, with a pot of tea next to me. My computer giving me endless opportunities to various degrees of brainless entertainment. And above all, the luxury to know that it was going to be all right: if this pill didn’t kill the bug, some other spray-antibiotics combo would. Aches chemically reduced to background whispers.

So I pictured what it would have been a few hundred years ago. Panic. No central heating. Books if in a rich household, otherwise endless boredom and no distraction from pain. No medical science to speak of: you don’t know what’s happening to you (fiery humours?). If you’re lucky the local herbwoman has figured out that birch bark tea is aspirin.

You don’t know if you’re going to survive – it’s a lottery. And you might be permanently damaged, like, say, go deaf. And sometimes there’s no escape, like with the ever fashionable TB.

In fact, forget the time machine: that’s probably what it’s like when you’re ill in an underdeveloped country. Suddenly, organizations like Doctors without Borders start to make very much sense.

Darn. Never looked at it like that.

Riding the dinosaur

January 11th, 2008

dinosaurAs a developer, if you’re very, very lucky, you might get to start a project from scratch. Your own reasonable coding conventions, your own rules, your own dependency management.

Unfortunately, most of the time, developers are confronted with what is called “legacy software”. Legacy as in the pink lampshade you’ve inherited from dear great-aunt Gertrude.

Again, if you’re lucky, this legacy code is self-explanatory. Nice structure, commenting, names.

On the project I’m on, we’ve been partly lucky. We get to code web applications more or less from scratch. However, we’ve got to interact with The Portal (capital letters).

The Portal was written (from scratch, apparently) by another subcontractor, who the customer is now on very bad terms with. It manages authentication using a smart card, and has the usual menu and search functionalities such a thing has.

Now what can i say ? It’s a miracle. That it works. Just looking at the directory structure gives you shivers. And then you look at the code. It’s obscure, and it’s chockablock with hardcoding in the most unlikely places. Control structure monstrosities galore. It’s heavily intermeshed with the local (proprietary) firewalling and load-balancing device.

So this code bugs me. The problem is: i know i could do better in my sleep, but it would take me at least 15 man-days to re-implement. Time we’ve not got: it is there, so just use it and shut up.

In nearly every deployment we run into trouble with The Portal. We debug our way through it. And every time it takes a while to figure out the exact ritual to make it work.

What’s your experience ? Can you convince your customer to spend money replacing something that does work ? Do you just cope with the horror and move on ?

Company event bingo again

January 8th, 2008

CEO BarbieIn keeping with tradition, my employer organized a New Year reception tonight. As usual, there was a speech.

Like last year, it was excruciatingly boring. And he still can’t pronounce Belgium properly – sounds like Belgeen – probably nobody dares telling him. The man rambled on and on about percentages of growth, across sectors, across geographical areas. Top 15 customer. New customers. How sustained growth was necessary on all fronts .

And then it dawned on me: this is what this guy does ! It’s his whole universe ! Other CEO’s may be better at packaging those number in spiritual quotes and inspiring visions. But basically, as a big company CEO, you push and prod numbers. Always more. A little green arrow next to that market share.

And if you don’t get those plus signs, you’re doomed. Your reputation starts to sink. As a matter of fact, hordes of fresh-faced obsessive-compulsives in expensive suits surround you, waiting for that space to vacate.

These may well be the most powerful men on this planet for now, but in this sense they are the most limited. There’s only one way they can go, and that’s cash-upwards.

This is a vision that manages to be both boring and scary at the same time.

(wee soundtrack to that)

Links on paracetamol and herbal infusion monday

January 7th, 2008

electronic eyeSeems my rate of posting is going down a bit lately. Sorry about that – blame it on hibernation mode.

Once again i’ll do a links post. Today my nose feels as if a pumpkin got stuffed into it overnight, which leaves less room for my brain to function. I can still appreciate what other people are saying.

Ruby on Rails Security: a presentation by Jonathan Weiss at 24C3. Security, the more you know about it the better, and sadly, there’s always more to know. Good overview.

Cybercrime economy: everything is for sale. Including malware, worms, botnets, you’ve got money, it’s yours. The shady streetcorners of the metaverse, as it were.

And finally:Skeemr, an mp3 search engine. It works !

Links on this freezing tuesday

January 3rd, 2008

copyright popfly websiteMy favourite item: Rails is a Ghetto. Rant with a Capital R by ZFSA. Vitriolic and highly entertaining. There might even be a smidgen of truth here and there – i’ll look up Merb (via Peter Van Dijck).

Scala seems to be the Next Language of the moment. Saw a presentation on Scala at Javapolis, and while i was interested, i wasn’t totally blown away. But then that may be too much to expect, i suppose.

Innovation : apparently, the less you know, the better you are at it. It’s also my experience. As a non-expert you come up with seemingly idiotic suggestions which sometimes turn out to be good ideas. People with a mixed background are often interesting, in my opinion.