Older blog entries for mstarch (starting at number 32)

Code generators using XSLT ?

I have been experimenting with XSLT lately, and combined with an article I read in the C++ journal about code generation using XSLT, I have wondered if writing some code generators for some of the most normal tasks might be a good idea.

One example of a potentially time-saving application of code generators is database infrastructure. An SQL table is created, which must be accesible from a C++ program, which again must be accessible from an ASP script as a COM object. If this is hand-coded, a lot of time is spent doing simple and redundant typing. When a column is added to the table, multiple sections of code must be updated to reflect this change. The work invested in the specific SQL solution cannot be leveraged for later projects that have similarities.

Auto-generating this kind of code seems like a good idea, but the risk that the constructed templates aren't versatile enough to ensure their use for a sufficient number of cases to make them worthwhile exists.

Solving a specific problem by writing a code generator that generates code to solve the problem is a possibility, if a substantial part of the problem has traits that makes it likely to reccur at a later time, and if the code generator doesn't take substantially longer to write than what would be necessary to solve the problem directly. Writing modular code generators that are combinable becomes a worthwhile challenge.

To what extent should code generators be built and used ?


Finally finished reading Music & Silence; it was long, but relaxing. I've been reading a bit about XML Schema + an XSLT book; now I'm prepared when I stumble into an XSLT- prone project ;-)


Saw a nature program on television today about a 16 year old oak tree that got re-planted. Thinking about that tree growing there for another couple of hundred years made me think about why we seem to be so busy nowadays that we have to feel guilty for relaxing a moment. On the other hand I'm an achiever type, so I'm bound to feel guilty regardless ;-)

I'm going to see LOTR for the third time tomorrow, and after writing this entry I think I'm going to start reading Silmarillion yet again - I got inspired yesterday by seeing a map-book of Beleriand.


I have really enjoyed the discussion started by lkcl's article claiming that the Samba team uses proprietary restrictive implementation practices. I think a lot of people have raised a lot of good points, and it's nice to see open source development discussed in the open once in a while (no pun intended).

I hope that the Samba team and <person>lkcl</person can come to some agreement; it would be cool to have full DCE/RPC support on Linux, and even cooler if some of the developers doing remote connections using self-invented socket protocols realized what they're missing :-) (sorry)

lkcl, I wish you best of luck with your quest; you're certainly one of the more inspired open source developers, and I'm very sure that you're going to have your RPC plans come through sooner or later one way or the other :-) If not, I will lose my belief in many of the perceived benefits of open source development, because you're so obviously right IMO.

Open software

I think sej has a good point in his prognosis of the computer science profession. I particularly liked his end remark - sej, I bet you must have felt really smug about yourself when you made up that :-)


Finished reading "Peopleware". I know the book isn't new, it's actually more of a vintage classic, but it has a lot of classic good points. It's style is very warm and it is extremely well written. It covers a lot of issues regarding sound management of software teams, and in that regard it's very sociological in nature, because it primarily (entirely more like) focuses on the importancy of having highly motivated and cooperating employees/team members. No one will be worse off by having read this book.

Now I'm going to finish "Music & Silence".

29 Dec 2001 (updated 29 Dec 2001 at 23:38 UTC) »
The 'Is Open Source dead discussion'

Thought it an interesting discussion, so I will also contribute my 2 cents worth of open-source speculation;

Open source is thriving. Open source is a funny hobby, that allows individuals to gain experience, improve their social networks and have fun while doing it.

Open source does not depend on the succes of Linux or of any other "open" platform, because the two things are fundamentally different things.

Linux and all its related projects inspire lots of aspiring young programmers to get into the open source world. Linux is a crusade, a quest, a holy grail, that provide a focus- point for a lot of programming activity.

Linux makes it possible for all the distributed decision makers to make autonomous decisions that have as a focus- point what efforts will be to the good of the Linux community. However, due to the scattered activity and the absence of any real authority in the community, most or all decisions are made with a lack of information that prevents any decision from being optimal.

Of course there are several kinds of levels of decisions that are continually made. Decisions are made for a specific project, regarding how feature X should be implemented, whether feature X should be implemented at all, and decisions about who writes the documentation, or maintains the website or provides user support etc etc. I think this level of decision making is working flawlessly. All well-functioning open source projects have this level of decision making taken care of, that's what the project is all about.

However, the project doesn't contemplate the fact that 5 other projects exist that are spending time doing the exact same thing. All 6 projects are convinced that they're creating the best solution to the "problem" that this class of projects aim for, and none or very few of the projects cooperate amongst themselves. This is a new level of decision making. An absent level of decision making, because no decisions are made. The decision is left to evolution; the most stubborn project wins (or best if you're an optimist). This kind of decision making incurs a horrendous amount of replicated work, that is useless if any long-time success of the "open source crusade" is intentioned.

There is no way to make people give up this mode of operation, because the open source world is fundamentally an ego-boosting business. It's just not as cool to work on someone else's project. You can do the stuff he's doing better, and you're going to show it to the World. Linux is about ego boosting, and many developers work for projects related to the primary open source platforms to be a part of, and thereby gain part of the prestige that the platforms provide. Ego boost is measured in number of users, but most developers are kidding themselves if they say that they are working on their project for their users. We're only human.

At the same time, because the whole thing is a voluntary "for fun" hobby, no one but the most visionary/obstinate is interested in working on all the dull bits and pieces that are essential for the mass of projects to be able to function together.

This is why the open source community has got to come to terms with the fact that open source software projects like Linux will always be a niche, because it's made for the good of the developers, not for the good of the users. I think thats only fair, because it's the developers who have spent countless hours of their life working on cool software.

To conclude; open source as a creative hobby is far from dead, but a user-focused open source platform is a dead end.

25 Dec 2001 (updated 25 Dec 2001 at 22:57 UTC) »

So this is christmas...

In the following I will adher to the established Advogato trend of partitioning my diary into sections


Finished reading "Flashman and the Redskins", yet another refreshing read about the english voyeuer and hen-teaser Sir. Harry Flashman, knight of the order of Bath, holder of the Victoria Cross, the order of the Elephant (funny for a dane), the congressional medal of Honour, and several other ill-deserved honourary titles. This book takes place both in the year of the gold boom of 1849, as well as 27 years later, in 1876, where he takes part in the "battle" of little Big Horn.

Because I've run fresh out of Flashman books, because I didn't get any for christmas (sigh), I've started reading a book by Rose Tremain, entitled "Music & Silence", about a english musician who get's hired at the court of the danish king Christian IV in the 1630's. Very relaxing.

Inspired by reading joelonsoftware.com, I ordered "Peopleware" and "High stakes, no prisoners" from amazon, which I will be looking forward to reading.


No work until january 3rd :) Although I at the moment don't know what other uses I can make of my time, I probably need some time off.


How about an option to "show recent diary entries, without observer diaries". In either case I really don't mind if a spammer writes a few diary entries once in a while. It's really quite interesting that someone can be so incredibly bored that he spams a site as effectively "boring" and "dry" as advogato :)


Sometimes I worry that we as programmers will run out of cool software to write. When the ultimate operating system exists running the ultimate productivity apps, and when every industrial sector has killer stock-management and auto-ordering, auto-configurating management programs. When hospitals have the best patient monitoring software that money can buy, when military weapons and space rockets as well as crude household equipment never fail. What if new software becomes unneccesary, or what if the need for new software stabilizes at a level supportable by very few people given the ultra-high-productivity languages and tools that are made for that purpose?

This might very well happen in our lifetime, and sometimes I wonder if all we're doing as programmers is working towards the day where we will all be obsolete or at least to a large extent neglectable.

I try to console myself with the thought that humans are basically vain creatures, who will always desire new and improved versions, if not to have better software, then to follow the newest trends and the newest fashion.

Maybe software will some day not be a matter of "pushing the envelope", but instead of polishing new and improved slick interfaces to the same low-level implementations of this years "software-fashion".

I guess that development would basically be a good thing, because it would mean that the basic infrastructure will already be in place, software and computers and the possibilities they provide will be a commodity taken for granted. I think the development is inevitable, given the basic "construct-once-use-in-all-eternity" nature of software.

It's like being amongst the many people who are building the big railways across asia or the north american continent. While building them we are heroes, but when the tracks are complete, we better start look for some alternative ways to make ourselves useful, because history will not be looking back.

Advogato diaries are such clich├ęs :)

I have been reading some more of the "Flashman" series. I finished "Flashman and the Dragon", and am now reading "Flashman and the Redskins". It's some pretty funny books, that have an entertaining way to convey some impressions from the world as it may have been around the 1840-60's.

I saw a link on Slashdot (oh no, not another Slashdot- reader) pointing to www.joelonsoftware.com, so therefore I've been reading some of his "rants" about the software industry. He really has some very good points, and I recommend reading the articles as they have sound advice on subjects ranging from employment policies to GUI design.

It's soon christmas, but work continues to be as stressing as ever - I need a vacation soon.

I've pretty much decided to follow a course at university next semester, dealing with techniques for creating adaptive "artificial intelligence" algorithms using Prolog.

Maintaining an online diary does provide a lot of censuring constraints on what can be written.

I feel like I've been so busy lately it's difficult to track the days. The past two weeks, when it was friday I wondered how the week had passed by so quickly. But still, I guess some stuff must have happened since my last diary entry from the 10th. So, let's go through it little by little, as I remember it.

There was election in Denmark, and a new government got elected. I don't know how that will affect the daily life, but I guess it will probably be 95% same-ol-same-ol, which is fine.

I haven't had much time to read lately, but this saturday I bought two books; a Kurt Cobain biography, and a book modestly entitled "Civilizations". I've read the Cobain biography, which was kinda interesting. I've always been a fan of Nirvanas music, and it's impossible to avoid becoming fascinated by Cobains short, tragic and eventful life story. I didn't know a lot about Cobain before reading the book, but now at least I have some understanding of what his music was about, and what made life so hard for him. I still think of Nirvanas unplugged show in mtv, as mtv's finest hour. Reading about the circumstances of the show, didn't make it less interesting. The book made me think of a lot of things, among the more superficial, how eventless the music scene has become, and how 90% of all popular bands are totally worthless and uninteresting. sigh.

I'm going to read the "Civilizations" book soon (kind of a gamble book-wise), but first I'm reading a book called "Flashman and the Dragon", a book recommended to me by a friend.

I have been working a lot on packaging at work lately, trying to make the search engine more of a packaged product. It's one thing to write a piece of software that performs a given task, but it's quite another to create logical product boundaries, and decide what features arguably belong in the product, and which ones don't. Then there is pricing policies, license policies, extra features policies, support policies, maintainance policies, customer support, product tailoring and more. Thankfully I only have a small part of that responsibility, but it makes you think about how a better focus on the big picture of product development would have avoided many problems. On the other hand, theres the problem of evaluating which problems could have been avoided by better planning, and which problems would have surfaced no matter what. After all, it's impossible to plan every stumbling block in advance.

I've decided to be more active in my studies next semester. The last year, I've used too much time working, and too little time studying. In fact, I haven't had a single course this entire year, but now I've reached a point where I'm beginning to actually feel inspired for some more studies. There was a reason for not studying the last year, I've not really been in the mood for written projects or courses or exams or stuff like that. I hope that has changed now.

Advogato as a community is a funny animal. Unlike most other communities which are by nature focused on discussions and direct interchange between participants, Advogato is most of all (in my mind) a forum where people publish their immediate thoughts and diary entries, with no particular audience in mind. Of course the other readers of advogato is the audience, but the connection is very indirect. The diary entries are like a continuous stream of consciousness which is fed into the community as a testimony of the daily lives of other in the community. Most readers of a given diary entry does not know the person writing the entry, but still people recognize user names from previous entries, and gradually get an impression of that person. Of course it's impossible to follow all "threads" of diary entries, so instead you naturally "pick up" a couple of people (who you don't know) and follow their diaries. I don't why, and I don't know if it's only me (which I doubt). I guess its both natural curiosity, and at the same time the desire to assert that ones everyday feelings are shared by others in this "community". At times I fear that advogato attracts narcissists. At times I fear that I am a narcissist, in a culture of self-love gone wrong. Or maybe I've rust read too much Cobain biography in the weekend :)

These are busy times. I've hardly had time to read, and have only read Couplands new book, "All families are phychotic". I like most of Couplands books, and this one is no different. All the books are different, yet share the same style of writing, which although sometimes being on the verge of becoming too "chic", is always refreshing.

At work I'm becoming more and more involved in non-coding stuff, and although I've always thought that was a thing to avoid, it's currently quite interesting, and is a nice variation, although I fear the price will be paid along the road in terms on missing product development.

Today I bought Monty Pythons complete set of Flying Circus shows on dvd. Although I just had to buy it, at the same time I felt ripped off at the shameless prices they asked for it. I mean, how can a work that has been sold and resold so many countless time, continue to be sold at almost-as-new prices?

21 Oct 2001 (updated 21 Oct 2001 at 21:27 UTC) »

Finished reading a book called Marcus the Roman, about a roman who happens to be in Jerusalem at the time of the crucifiction of Christ. The book provides an interesting speculation (its pure fiction) about how the events at the time may have been experienced by some of the contemporaries, and is as such very interesting.

Lots of stuff at work, so much to do, so little time. I think I need to learn myself to take the necessary time to prioritize my actions on a given day. Friday I fixed a bug in the search engine which has bugged me for a long time, so that was positive.

I'm involved in a software process workgroup at work, where I have been made responsible for constructing a software requirements specication template for use in our company. We have agreed to use the basic layout from Karl Wiegers "Software requirements", but I'm wondering what's a "typical" amount of standardization in that regard in software companies in general. I guess it's really just a matter of trying some alternatives until you find something that works in the specific context of your organization.

We have started playing some quake arena at office, it's good with some fast-paced action once in a while :-)

Oh, and I bought Dead Man on dvd - Neil Youngs soundtrack for that movie is so cool, so cool.

Btw, I think lkcl's and others work on dce/rpc support is great. I think of their work as one of the few examples of a really constructive effort to increase the long-term viability of Linux as a server platform.

Things have been busy at work lately, and it seems like I have somehow become involved with most of the ongoing projects there. But I guess that's cool, because then at least I don't have to worry about not having anything to do at work ;-)

I guess I havent experienced anything interesting since last time (do I ever?), but I at least just wanted to add this entry to show that time hasn't gone by without leaving a mark. Oh wait, I read most of Karl Wiegers "Software requirements" so I actually did somehing active :) (and I also bought a new cellphone and did tons of other things that are meaningless to tell about). And yesterday, I won a small tournament of table fussball at work :)

I'm also wondering whether now is a good time to buy stocks.

23 older entries...

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!