30 October 2007
Posted in Uncategorized at 8:24 pm by kkj
My new blog at the largest it-media in Denmark, Version2, was announced earlier today. With respect to the articles posted here at Vaportrail.dk, this means two things:
1) I will not post as frequently here as I didn’t use to do anyway 
2) When I post, the topics will be of a sort that don’t fit naturally with the Version2 blog profile (personal projects, company related stuff, etc.)
I am excited about the opportunity to reach a bigger audience and look forward to the experience.
See you at my blog, version 2.
Permalink
24 September 2007
Posted in Conferences at 8:29 pm by kkj
It’s that time of the year again: September and time for JAOO. This year I have been asked to share my thoughts with a wider audience at the special JAOO blog on Version 2. It means, this posting will most likely be the only one about JAOO 2007 on this blog, and that you have to be well versed with Danish to read the subsequent impressions from the conference.
JAOO is the one conference, where I cannot move more than 10 meters before running into someone I know. It is simply amazing how among 1200 people this phenomenon seems to take place every year, regardless off the fact that I have only got some 240 people in my address book. I guess that means a) my address book is not complete and b) the concentration of people with whom I have a 1-degree (as in 6-degrees, remember?) relation is rather large here.
The keynote this Monday morning was refreshing. Robert C. Martin of ObjectMentor gave a good solid list, sprinkled with vivid examples of what to do and what to certainly NOT do when building software. For instance, the old truth that Netscape came to learn the hard way: “don’t ever throw out the old system … ever†was repeated, as was the fact that architects should be thrown from the ivy tower to the keyboard to ensure some sanity in frameworks.

Kresten Thorup acting as timeline from big-bang to agile software development. Robert C. Martin to the left.
The rest of my day prior to the party will be filled with virtualization … read all about it at Version2.
Permalink
06 September 2007
Posted in Presentations, Public Sector at 8:33 pm by kkj
Yesterday saw the convergence of no less than 160 people from all over the Danish Public Sector, at the SAS Hotel, Amager, Copenhagen. The Digital Taskforce of the Ministry of Finance called the event to promote the 1.0 (0.8) launch of a common integration model (OIM) for web based public sector information portals. See the previous post on the topic for details.
The day was packed with presentations that outlined goals and solutions of a strategic, and technical nature as well as backgrounders on how the two portals virk.dk and borger.dk are being designed.
My involvement in the project was on the appendices of the OIM that contain the low level guidelines that service providers need in order to get started on publishing content via portals. I gave a presentation on this topic just after lunch, the time of day which in my experience is about the worst time to present: people are full and dazed, and if there’s no coffee (which there wasn’t), it can be quite a challenge to sow any intellectual seeds.
The solution? I don’t think there’s a universal panacea, but I try to keep a loud voice, have interesting as in “less text, more pictures†slides, and maybe crack a joke or tell a story. That tends to help a little … although, truth be told, at the end I did spot two that had their gaze firmly fixed on the inside of their eyelids.
There were no evaluation sheets, but from the discussions I got the impression that people were positively curious. For instance the dreaded, “why is this relevant at all?†question didn’t show, and instead lots of relevant topics were brought up.
A good day, kudos to the Taskforce. Now let’s see this baby in action!
Permalink
01 August 2007
Posted in General Ramblings, Mac at 8:33 pm by kkj
Vacation time and the weather still sucks … DMI and Accuweather both agree on this and almost with identical forecasts
. At the same time I’ve been struck by a frenzy, a crazed state of widget-mania ignited by my recent success in the field *coughs*. Talk about being stuck between a rock and a hard place …
I often travel from Ã…rhus to Copenhagen by car and whenever I remember to check the itinerary the day before and actually get up in time I choose the short cut by ferry to Zealand. This gives me an hour to doze or read while digesting the possibly most expensive breakfast in Denmark. That is, when I remember to check the schedule.
The ferry I take is operated by Molslinjen who offer up-to-date travel information in HTML and WML. I’ve bookmarked the WAP link in my cell, but thought it would be nice to have a widget that displayed the same information as well. As an added bonus that would mean having a fairly decent project on which to experiment with AJAX. Enter: The Molslinjen Widget:

The widget uses the Javascript XMLHttpRequest object to retrieve the current itinerary in WML format asynchronously whenever the Dashboard is displayed. You can switch between the different routes by clicking on the headline, and get to the not-so-informative back page by clicking on the info icon, which appears when the mouse rests over the widget.
For some reason, the WML offered by Molslinjen is not well-formed. My cell phone doesn’t seem to mind, but the XMLHttpRequest object choked on the XML and I had to perform a bit of string replacement to work around the problem. If Molslinjen ever decides to remedy this shortcoming, my widget will break.
Oh and I should mention: Molslinjen is not involved in this project. You can use the widget at your own peril as long as you leave me out of it, should you miss the ferry anyway.
Sail on by!
Permalink
24 July 2007
Posted in General Ramblings, Mac at 8:33 pm by kkj
Okay, so given that we have a Paris in Denmark as well, I guess I should have expected there to be a Copenhagen in the USA also. Turns out my AccuWeather widget defaults “Copenhagen” to “Copenhagen, USA” … obviously. When you enter “Copenhagen, Denmark” you get a more accurate picture of the weather situation:

Sorry about the noise AccuWeather - maybe you should consider adding a country code to the city name as well to avoid similar situations in the future?
Permalink
22 July 2007
Posted in General Ramblings, Mac at 8:24 pm by kkj
… especially of the future! This fact of life has to be a daily nuisance to meteorologists all over the planet as they struggle to interpret satellite images of the Earth’s atmosphere painted in all colors of the spectrum. Meteorology is a science of probabilities, a trade whose precision diminishes rapidly the farther into the future predictions are made. Tomorrow’s weather can almost always be predicted with certainty, but what about today’s?
InAccuWeather
The OS X Dashboard sports an “Accuweather Widget”, which, although extremely slick in its look and feel, fails miserably at displaying even the current weather situation. At least in Denmark. Today on July 22nd 2007 AD the Danish Meteorological Institute (DMI) informs anyone who shows an interest that it is raining. In fact it will rain so much here that the institute has issued a warning for “extreme weather conditions” with 17°C and yet AccuWeather thinks that we have a cloudless sunshine here and 27°C!!
Did anyone say “useless”??
What to do? I decided to ditch AccuWeather and write a widget that grabs the current 5 day forecast image from DMI. The result can be seen in the picture below with AccuWeather gleaming sunshine on a rainy Sunday:

The image caching nightmare
Writing a widget is not rocket science, and requires little more than HTML and Javascript skills in its most basic form. The Dashboard is basically a specialized web browser. Brilliant! Unfortunately this also means that widgets inherit any problems that browser applications suffer. One of these problems relate to the caching of images. In this case, the forecast, which DMI has decided to publish on the same image URL. The current 5 day forecast for Eastern Jutland, for instance, is always published on http://www.dmi.dk/dmi/200611090030_cms6dognostjylland.jpg”. Once the Dashboard has downloaded this image, it will be cached for the lifetime of the widget i.e. until it is eventually removed, and so the forecast slowly but surely becomes irrelevant.
I spent the better part of an afternoon scouring the web for solutions to this annoying problem and ran in to numerous frustrated Javascript developers. After pondering the problem some more I came up with the following possible solutions:
- Delete the widget cache. The Dashboard cache lives under ~/Library/Caches/DashboardClient and can be removed by a user with root privileges without problems. In theory this solves the problem, but alas the Dashboard will have to be restarted for the cache to be reread. No go.
- Write an applet that gets the image. I was hoping a Java or a Flash Applet could do the trick, but these are limited to their sandboxes and can generally not access the HTML DOM of their enclosing document.
- Make a server side PHP image proxy. This site, Vaportrail, has PHP support and I wrote a simple script to proxy the image from DMI. While this solution works, it means lots of irrelevant traffic on my site and hence load. Not the best solution.
- Leverage the fact that widgets have extensions for calling shell scripts. A bash script could use CURL to get the image, write it to /tmp/ with a name made unique by the current date, and the widget could load it from the local folder. Eureka!
Caveat: While my solution works, it will fill /tmp/ with images: one per day per region you choose to display. I could have implemented a cleanup facility in the shell script as well, but I am not a big fan of scripts that perform “rm” on my local folders. I leave that as an exercise for those with strong stomachs.
The widget can be downloaded from this link. Quote Apple: “Mac OS X v.10.4 Tiger is required. If you’re using Safari, click the download link. When the widget download is complete, the widget installer appears. Click Install if you want the widget installed on your Mac. If you’re using a browser other than Safari, click the download link. When the widget download is complete, unarchive and open it to show the widget installer.”
Enjoy! And have a sunny summer …
Permalink
03 July 2007
Posted in Public Sector at 8:40 pm by kkj
The Danish Government has launched a large scale initiative to modernize and digitize the Danish Public Sector and is channeling information about the details via the website modernisering.dk. One important goal of this exercise is to increase the level of service provided to citizens, while at the same time reducing the cost of delivering it.
Government Agencies, Ministries, Counties, and Regions, all flock (some more than others) to the Internet to provide self-service to it-literate citizens. Such a flurry of service provider activity is bound to become slightly chaotic lest something be done, so enter the portals: Sundhed.dk for health care services, Borger.dk for citizen services, Virk.dk for company services, and The Danish Nature and Environment Portal for … well you guessed it.
Virk.dk and borger.dk are currently having makeover and will be launching new versions within the not-so-distant future. The remake will focus on bringing new services to citizens and companies thru leverage of the enabling infrastructure that we are so fortunate to have here, including (but not limited to) a national address register of all citizens (CPR), and a national digital certificate initiative (OCES). The vision is to provide two very thin portals whose primary functions are to expose (web based) services from other public entities. In other words, the portals will not implement any business logic, but delegate actual service implementations to other servers, elsewhere.
Many service providers will be exposing services on more than portal. Thus, in order to reduce the cost of implementation and the time to market, it becomes imperative that the portals agree on integration mechanisms …
For the past months I have been working intensely for the Digital Task Force with a few colleagues to provide a common service provider integration model (OIM) for borger.dk and virk.dk. Our efforts were initially restricted by the vision of thin portals, and by a Gartner report, which pointed to 4 different integration technologies: simple linking, embedded frames, web services remote portlets (WSRP), and the Java Portlet Specification (JSR-168). As we dug into it, however, JSR-168 disappeared from the radar because portlets written with this technology will have to be installed into the portal server, hence violating the “thinness†principle (and introducing loads of other issues).
The Digital Taskforce has bravely decided to expose the OIM to the public on a project WIKI - while it is constructed. At the time of writing, however, you will find only the main document for which we’re not responsible, and not the 3 appendices for which we, are as they are currently thru an internal hearing.
On the horizon there will be a public conference on September 5th 2007 where 1.0 of the OIM will be presented. By then, if not sooner, everything should be publicly available.
Permalink
21 May 2007
Posted in Architecture, Conferences, SOA at 8:40 pm by kkj
In 2005 I was working as a consultant for Copenhagen County (now the Captial Region), getting myself involved in various internal and external it-projects. One of these revolved around the fact that all hospitals were required by law to enhance their EHR systems to report information about medicine given to patients during hospitalization to a central server at the Danish Medicines Agency. The deadline for having implemented this feature was originally set to January 1st. 2007.
At the time there was no common infrastructure for secure communication of information in the Danish health sector, so together with colleagues from the County of Ribe (now Region South) we started working on one. This became what is now known as the SOSI project a pilot, which tries out a single-signon infrastructure for web services with digital certificates. The project has now gone national and is being funded by Danish Regions.
While SOSI was being defined, MedCom was working on a similar project, “Den Gode Webservice†(DGWS). By means of the The National Board of Health, the two projects were brought together and coordinated: The single-signon assets from SOSI made it into DGWS and version 1.0 of the specification was released by MedCom last summer.
Since then, the SOSI project has made it into its final stages complete with a SAML IdP, clients and servers that communicate using DGWS over VPN with OCES digital certificates playing the role of credentials and adding non-repudiating and integrity. Project evalutation is imminent, and SOSI will presumably wrap up later this year.
It won’t disappear, though.
About six months ago, MedCom and The Danish Medical Association held a conference for decision makers with the intent of creating consensus for a national common medicines project (see my post about it). The conference was a huge success. Since then, The Danish Medicines Agency has become the driver of the project with MedCom and a number of other participants paving the road.
The Common Medicines project aims at making medicines information available where needed, when needed in the entire Danish Health Sector. This is done by defining a model for medicines data to be used initially among hospitals, private physicians, pharmacies, and retirement facilities along with web service interfaces, and a communication model, the infrastructure of which is based upon experiences from SOSI.
Though the technical details aren’t entirely completed yet, much work has already been done and the project is about to take off: Four pilot organisations have volunteered to update their systems with the changes required to communicate medicines data. This will be implemented in autumn of 2007 and pilot thu the early months of 2008. With good fortune, all hospitals should then be covered before 2009.
Last week MedCom and The Danish Medicines Agency held a workshop about the Common Medicines Project, and I gave a presentation of the security aspects in context of SOSI and DGWS.
An exciting project indeed!
Permalink
01 April 2007
Posted in Architecture, Conferences, SOA at 8:43 pm by kkj
Ouch. It’s been another couple of months with no activity on this blog. I’ve been under siege by massive amounts of work, all of which decided to have a deadline just before Easter. Anyway, there’s a small pause right now, which I’ll hastily exploit to catch up a bit on my vapor trails.
Last week had representatives from the better part of the Danish Public Sector descend upon Ã…rhus at the annual OIO conference for a Tuesday and Wednesday packed with sessions. My schedule was interleaved with meetings so I only caught about half of what was going on (max). Not surprisingly, the keynote and the first couple of talks in the big hall focused at a high level on the status of what’s happened during the past year. Fine. Then a meeting and lunch.
Well fed I went to hear about the health of the Health Sector with some anticipation that plans or at least hints for the future of EHR in Denmark would be revealed. That would have been prudent now that a director has been found for the National EHR Organization. No so, and no word from the organization at all. Of course the new director doesn’t start until the 15. of April, but still …

Jens Rahbek Nørgaard / MedCom in vivid action
More meetings and day one ended with a party, with way too much beer, and with a slight intoxiaction at 2 in the morning. For that reason I had to start Wednesday rather late with lots of water and coffee, and the first session I attended was the ubiquitous DGWS presentation by none other that yours truly and Jens Rahbek Nørgaard from MedCom.
Jens put on a great performance, and despite all odds even my presentation went rather well, I thought.
I attended one more presentation, which featured a rather extreme case from Denmark`s Road Safety and Transport Agency, illustrating how tons of paperwork can be replaced by efficient digital processes. Very interesting and highly illustrative of the potential.
Another meeting, coffee and I must confess to leaving the conference early … Overall I had a great time and will be back next year.
Permalink
26 January 2007
Posted in General Ramblings at 8:43 pm by kkj
I went running this morning, feeling rather sporty considering that a) it is winter and b) it is therefore cold outside. My favorite track runs alongside a local lake in a wildlife preserve: it is quite close, and there are no cars around to smite the air. When I got there I turned left only to find the trail flooded and completely impassable a few hundred meters down. Turning around, I ran well about a kilometer in the other direction when again I was stopped by flooding. Close to this point there’s an expressway overpass. I got up there, ran along the road for a little while, crossed over and got onto the path again where it runs on the other side of the lake … only to find it blocked by flooding some hundred meters down.
Darn. Determined not to let this stop my exercise, I left the road, climbed a little hill, and started making my way thru an overgrown terrain, which was completely suitable as a backdrop for the place where maniacs come to dump their victims in dark crime series. Luckily I didn’t stumble across any lost limbs poking out of the ground, but somewhat scratched and dirty I finally found myself on the other side of the flooded path and started running again. Guess what. About a kilometer down, where the trail passes a road there was another flooding and nowhere to go, but follow the road home.
And what did I find when I finally got back? My friend Tommy had blog-tagged me daring me to expose 5 not-so-well-known facts about myself. What a tough morning.
If you’re still with me at this point in the post, you asked for it. Here goes:
- When I was a kid, I took piano lessons and even played in a scout-band once. Every year around x-mas I exercise that old instrument from my childhood, and according to my wife with increasingly disastrous results.
- I fence and recently switched from foil to saber. My name is pronounced and almost spelled like the Danish word for epee, leading to lots of rather awkward and generally bad jokes when the subject is brought up.
- After high school I spent a year with a couple of friends producing what must have been the most boring and least interesting computer game in history, “Shepherdâ€, about a shepherd who lived in the Faroe Islands herding sheep. Yawn. Don’t ask why we chose that topic, but thank the higher powers it was never finished.
- For a short while I was into movies, producing and costarring in a few motion pictures. Most notably of these is “Fisk”, which is remembered for being the only film in history where the director’s cut version is shorter than the original. There’s an online teaser available at the official Fisk The Movie site at your own peril. Remember to turn on sound.
- When I was young and wild I had a goatee and long hair. If you’re good you can spot the old me in the Fisk teaser.
As it is supposedly bad luck to not send a chain letter to other people, I tag the following two bloggers (sorry ladies):
- Julie Thorendal whose blog on the musical scene in Copenhagen I helped setup
- Signe Wagner who had a very lively blog on Enterprise Architecture until she graduated and became a business woman. Maybe this challenge will rekindle her writing?
Technically speaking I should have tagged 5 people to avoid bad luck, but alas the other bloggers I know have already been tagged. This is not surprising if you consider for a moment the implications of 1 person tagging 5 people who in turn tag 5 people and so on. It turns out that 5^14 equals 6.103.515.625 … so after 15 iterations (including the source) the entire planet is in the game, and following the tagging path backwards thru blogs across the world I seem to be in the 12th row along with some 50.000.000 other people … Go figure.
Permalink
« Previous entries