January 31, 2003


A lot of blogs this morning that I want to draw your attention to, but aren't necessarily worth a separate entry each time. Here goes:
  • Ant tasks I haven't heard about yet. To investigate what they can do for me.
  • Pier praises Cocoon flow. If somebody like Pier would say this about code I've written some day, my life will have had a meaning.
  • Hacker's radar. I don't know. #4 bites. Especially when seen together with #10.
  • Mark has another attack of the winter blues. You're not the first one to learn this, Mark, nor will you be the last one.
  • Duncan wants to move. Actually, when we choose our house to buy, this was one of the criteria: to be able to walk fearlessly around in the neighbourhood. I think we have done well. In the summer time, it is not uncommon to see 3 or 4 families sitting in the front of their house, with their children playing on the sidewalk, chatting with each other. I love it. After spending my whole day in digital world, it is nice to sit in the sun and chat with creatures of flesh and blood. Another big plus is that we live near the center of our village. Every shop is on walking distance. That's just awesome. Oxygen while doing grocery shopping. Anyway, I hope that Duncan will find a place like ours. And maybe this one actually was worth a separate entry.
Posted by tomk at 10:00 AM | TrackBack

Clueless and well-paid

Marc discovers the "perception is reality" principle in the real world. My first impression of somebody always has to do with his appearance. As a general rule of thumb, the more expensive somebody is clad, the more cluelessness he wants to hide with his clothes. I even experienced this myself: on a blue Monday, I put on a suit to go to work. I even felt dumber than normal. Seriously.

The catch is, that for most people, this works. "He's got a nice suit, he must be very intelligent". That's how they get away with it. Maybe my next career choice will be to start wearing expensive suits, become blissfully ignorant, and earn tons of money.

Posted by tomk at 09:26 AM | TrackBack

January 30, 2003


Another one bitten by the roadVision beast. I've experienced the exact same situation: somebody who wasn't going to touch code by far, choose the B-beast for us to use. JB is still lucky though: when I was using it, you still had to program everything in JavaScript (yes, serverside). Did you know that variables in JavaScript have global scope, unles you put var before them? Try nesting several while (i < n) loops. In different source files. And find the bug.

Anyway, the price of a product doesn't say anything about its quality. And if it does, it tends to be an inverse relationship.

Posted by tomk at 06:13 PM | TrackBack

Effective Java

Another positive review of Joshua Bloch's "Effective Java". The book stays on top of my "best all-time Java books" list.
Posted by tomk at 05:50 PM | TrackBack


Jummy: A Rubik's cube solution that is easy to memorize. Thanks, Cedric!
Posted by tomk at 02:53 PM | TrackBack

January 28, 2003

Profiling in Java

Just found jMechanic (via Glen via Erik). Looks like something I want to get my hands dirty with.
Posted by tomk at 01:41 PM | TrackBack


Another one for the maybe-this-is-useful-in-the-future bucket: SysTray for Java.
Posted by tomk at 01:32 PM | Comments (2) | TrackBack

January 27, 2003

To IDE or not to IDE?

I stumbled over HotLinks Ednote: 10 Reasons to Dump Your Java IDE (via AcroYear). All good reasons why not to use JBuilder, NetBeans, and what else. But nothing that stops you from using Eclipse. Basically, the author's comments only go for GUI development IMO, not for "IDE"s that have auto-completion, "Show declaration", "Extract method", "Rename method", and even ctrl-Q!
Posted by tomk at 10:31 AM | Comments (3) | TrackBack

January 24, 2003

Warm, fuzzy feeling

The tags may be pointy, but mails like this make me feel fuzzy. Batteries are charging even more.
Posted by tomk at 10:11 AM | TrackBack

January 23, 2003

About the economy

The FuzzyBlog is talking about how current salaries are low, and will stay low for years to come. Just one thought: in Belgium, it is forbidden to sell anything with loss (except in nationally defined "sales" periods). I guess Scott has just explained why. And if he lived in Belgium, he should be more careful what he's blogging, or he could get sued ;-)

On a related note, I hope he's wrong. Are there any economists out there?

Posted by tomk at 04:17 PM | TrackBack

So much OSS ...

Darren writes about "A few of my favourite things". All stuff I want to know and understand too.

I want to have a look at Castor (especially since I read some stuff on JDO, which looks like I could use it in my day-time job project), OpenJMS (just because JMS seems to stir so much feelings lately), and XDoclet (programming without programming?). The problem with all these (and a lot of other) stuff is that not only you have to know it, but you also have to think in it. It's not just "Oh, let's use that", but more like "I'm going to use that, how would my problem be solved with that tool?", which leads to the hammer-and-nail syndrome. Still, I want to study those things, since I believe they will reduce my dummy-typing and improve my creativity-unleashment (if that's a word).

In the mean time, I'm proud to say that I know and use Ant and CVS. I'm taking baby steps in JUnit, too (which is also more a way of thinking than a tool).

The role of TortoiseCVS and WinMerge is gracefully replaced by Eclipse, so I don't need to worry about them.

Scarab looks useful, but people are afraid of the "oh no, more administration" syndrome when introducing it into our team. As a result, we're coping with several Excel sheets and workbooks now...

As for Jetty: a servlet container is a servlet container in my eyes. I couldn't care less if my project was run on Tomcat, Jetty, or whatever. That's what standards are for.

One final note: SAP gives away a DB now? It even comes with a JDBC driver. I wonder what the business model behind that is ...

Posted by tomk at 10:43 AM | TrackBack


... is a sin, I know, but when reading Ovidiu Predescu's Weblog: The first week at Google, it's a feeling I can't suppress. Enjoy, Ovidiu! And I'll drink a Belgian beer today =)
Posted by tomk at 09:14 AM | TrackBack

January 22, 2003

What's a programmer?

IT Trends Blog - Citation du jour. Smile :-)
Posted by tomk at 09:48 AM | TrackBack

Blog danger

Sucking less, on a budget:
Certainly I recognize the irony that my musings about my fifteen minutes running out generated more email than my weekly amount of spam. Next time I get depressed, remind me to just talk to my cats.
Without comment.
Posted by tomk at 09:45 AM | TrackBack

January 21, 2003

Unit testing vs API definition

There is one thing I always get confused with when trying to make do some solid unit testing: how do you test private methods? AFAIU, unit testing should be done on chunks that are as small as possible. Those small chunks are most of the time implementation-specific. So good API design dictates to make them private. But then they become invisible for the TestCases...

I've just tried to develop some naming convention (make the real method doStuff() private, and define another method public doStuffTestHook()) to indicate that the public method is not to be used for normal use, but it still stinks. I've heard about some unit testing adagio "make everything public", but I don't like it, because I'll end up seeing somebody else using the method while she wasn't intended to.

I guess I have some serious googling/reading/learning to do about this. In the meanwhile, if you could send me some URLs, I'd be thankful.

Update I've been beaten by the FAQ again. Note to self: The information is out there.

Posted by tomk at 03:28 PM | Comments (2) | TrackBack

January 20, 2003


I just installed a new version of Eclipse (Version: 2.1, Build id: 200301151011). It has Ctrl-Q! This takes you to the last position where you did an edit. Totally kewl. (Actually, I don't know if Eclipse had this in previous versions.)
Posted by tomk at 04:02 PM | Comments (3) | TrackBack


Just for my link collection: jVNC (Java VNC Server). Might come in handy some time. Might not. Who knows the future?
Posted by tomk at 10:37 AM | TrackBack

To blog, or not to blog?

It seems like an "Is this it?" feeling wave is running through blogland: Incessant Ramblings doesn't want to write about his work, and even dive into mark is not too optimistic. The good news is: they blog about not wanting to blog anymore :-)
I can only say this: I love to learn about anecdotes of the bowels of Microsoft (where the author of the first works), and I like to read stuff I don't understand about standard compliance ;-) Lighthouses could be nice also, though.
Which brings me to the following: Mark teaches some zen:
One day Zen Master Bo Woi asked Zen Master Jun Kang, "A long time ago, Zen Master Ma Jo said to the assembly, 'I have a circle. If you enter this circle, I will hit you. If you do not enter this circle, I will also hit you. What can you do?' So I ask you, Jun Kang, if you had been there, how would you have answered?"

Jun Kang replied, "I don't like nonsense. How do I not get hit by Ma Jo's stick?"

Bo Wol answered, "Why are you holding Ma Jo's stick?"
I don't get it. Where does the stick come from? And why shouldn't I hit Ma Jo first? Any help?
Posted by tomk at 10:19 AM | Comments (2) | TrackBack

January 19, 2003

Eclipse, CVS and SSH

The first point has been accomplished. Not that hard, since Eclipse has a FAQ about this. The hard part was to actually find this link (I'm the kind of guy that doesn't think of clicking "Help" from the menu. I think I got that from the "Start -> Help" menu from Windows: is there anybody who's actually found anything useful in there?) Anyway, I just thought I'd put it in here for the Googlers :-)
Posted by tomk at 09:08 PM | Comments (1) | TrackBack


I'm trying to get over my winter dip now. "Sick and tired of being sick and tired." My fingers are itching to get Wings in the air. Action points:
  1. Get CVS and SSH working again on this W2K machine
  2. Separate Wings again from the Cocoon/Avalon jars. I wrongly coupled them while writing a Transformer.
  3. Get the link I always refer to, to actually show something
  4. Make everything machine-independent (now you have a lot of path fixing to do).
  5. Provide an easy-to-run demo, that makes people say "yummy".
  6. Weed out all old code that still is in the codebase, but is not used anymore. If people still want to see that code, there always is CVS. I think this is an Extreme Programming principle :-)
  7. Work out the file formats a bit more
  8. Document the file formats.
  9. Replace Xalan XPath with jaxen.
This is a fairly chronological list. I'd like to try some XP alongside this: get unit tests. Program as simple as possible. Pair programming won't be an option though ;-)
Posted by tomk at 04:02 PM | TrackBack

January 17, 2003

Andy and Microsoft

Andy makes me curious about his MS interview (yeah, there, on the bottom). I hope to read more soon...
Posted by tomk at 04:35 PM | TrackBack


I did it! But now the badge collection starts to look messy...

Posted by tomk at 02:46 PM | TrackBack

Collecting "good boy" badges

As you can see on the left, this blog is now considered having valid RSS. Next one: valid XHTML. Seems like I have still some work to do on that one...

Posted by tomk at 02:25 PM | TrackBack

99 Botles of beer

While idling around, I saw Thierry's Corner: One program in 487 languages. Awesome. For kicks, compare the Java and C# version. And give 101 reasons why one is better than the other ;-)

Posted by tomk at 11:00 AM | TrackBack

The Switch (2)

I moved here. Nothing personal, I still love FreeRoller, but the recent blackouts of the FreeRoller server made me step over.
Posted by tomk at 07:34 AM | Comments (0) | TrackBack

January 15, 2003


AdCritic.com has become a paysite. I don't know when this happened, but I just stumbled over it. I wonder who is willing to pay USD 70 a year to see ads and parodies on ads? It used to be a fun site for the idle moments though...

Posted by tomk at 04:12 PM | TrackBack


Going with the flow, I added a new toy on the blog. Observations: I spent quite some time retrieving my coordinates. I ended up using Maporama for this.
Posted by tomk at 01:52 PM | TrackBack

IE troubles

I just saw that this page is too broad when seen in IE. I'll have to look into that. In the mean time, please be so kind to use the scroll bar on the bottom of your browser.

Posted by tomk at 11:34 AM | TrackBack

Unsafe Java

Codito ergo sum talks about the Unsafe class. Direct memory access in Java (although I"m not sure if you can really access memory that's not allocated by the JVM). Dreams shattered.
(This post was entered by the MovableType bookmarklet. Kewl!)
Posted by tomk at 11:20 AM | TrackBack

The Switch 2

Another switch: FreeRoller has been failing too much on me lately. It's not only frustrating for me, trying to enter something, but also for people trying to read. Steven has kindly offered me to create an account here, which I kindly accepted :)
Things to do:
  1. register this at JavaBlogs
  2. import the archives from FreeRoller
  3. update link on my "homepage"
  4. get the permalinks to be # instead of the time
Posted by tomk at 09:55 AM | TrackBack

GUI testing

This is for me to remember the link in the future. Most of my work is in web application development, but occasionally I write a Swing thingy.
Posted by tomk at 03:30 AM | Comments (1) | TrackBack

Search Java API

Into my bookmarks you go. (Via some blog, but I forgot which one. Will add when found. Update: Who else than my favorite unix girl! )
Posted by tomk at 03:13 AM | TrackBack


Another happy customer of jCharts. I'm using jCharts myself in the Wings project, which takes XML and outputs charts in SVG or JPEG. Admittedly it's not ready for every day use (there's still a lot of configuration that's hard coded, and there's one file format I definitely still have to look into), but the OuterThought guys already managed to get it working as part of xReporter. They showed it to me on The GetTogether. But I digress... What I wanted to say: if you want charts, have a look at jCharts, and if you want charts with XML input, have a look at Wings (and don't hesitate to send patches :p ).
Posted by tomk at 02:58 AM | Comments (0) | TrackBack

January 13, 2003


Steven wants a Python IDE. JEdit has a plugin for Python support. Maybe Steven can add this to his to-be-reviewed list. I haven't used it (I once did a lazy effort to get into Jython, but I didn't get convinced of "the magic"), but I have used JEdit as a Java editor (before the Eclipse-days, when the only alternatives were TextPad and UltraEdit), and it did fairly well.
Posted by tomk at 07:13 AM | TrackBack

January 12, 2003

Geek marriage

Andy Oliver asks
I am curious how many geeks marry inside the clan.
I didn't. My wife is a nurse in "neonatology", where they take care of the children that have been born too soon or with complications. I'm glad she isn't a geek: she drags me outside to see some sun from time to time. And it's great for relativising things. When I come home after a day's work, I grunt "goddamn, I've been busy whole day because the live site was down. We probably lost a lot of money." She: "We lost a twin today. Their lungs weren't capable of surviving."

We still could use a good bookkeeper though ;-)

Posted by tomk at 08:44 AM | TrackBack

January 11, 2003


Another reason for starting a mexican wave. Marc, I wouldn't feed him too much mexican food though. And you can be comfortable about the P&G guys: they're gonna be just fine. I'm sponsoring them now, and for quite some time to come.

(Now, does this belong under "General", "Entertainment", or "Technology"?)

Posted by tomk at 06:39 PM | TrackBack

Aggie: the sequel

Well, what do you know... Remember that I wanted to get Aggie to send mail? The only problem was to compile some C#. Today I finally got a go at it. First I tried csc *.cs, but that didn't work. Then I noticed a Makefile in the directory. First try was to type make, but that didn't work. Then, from the depths of my memory, something like nmake came to mind. I typed it, and tadaaa... Aggie compiled! I have no idea where that nmake comes from (was it installed already? Is it installed when you install .NET SDK?), but it magically was there.

The big advantage over Hep? It doesn't require a server. That is, it doesn't have to be reachable from the outside. It only needs outgoing HTTP and SMTP, and that's it. You can get to your RSS feeds from everywhere where you can read your mail. It comes pretty close to this.

I discovered a strange thing though: on Win2K, the finest interval between 2 scheduled tasks is 1 day. I wanted to schedule AggieCmd to run once every hour or so, but that's just not possible. I wonder why... Anyhow, I hacked some C# to get finer intervals. In Java, you would use Thread.sleep(3600000). I casted The Magic on C# sleep, which led me to the Timer class. A quick course in Delegates (summary: you can pass methods as variables), and I got it running. Probably not the shiniest code a C# programmer has ever seen, but it seems to be working. (If you're interested in the code, send me a mail. But I warn you: if you've coded more than 2 lines of C# in your life, it really isn't worth the trouble.)

A final note on the Delegate idea: I've got mixed feelings. I like it, because I missed it in Java a time or two (yes, I know you can design around it, but that always seems such a drag), but it also kind of makes methods and objects interchangeable. The OO purist in me isn't too happy about this. Luckily, I'm pretty good at getting purists in me to shut up.

Posted by tomk at 06:01 PM | Comments (0) | TrackBack

January 10, 2003


It seems like I could link to kasia every time she writes something. Add her to your aggregator. I hope one day, she'll write something I disagree with. It makes more interesting posts than "I agree"...
Posted by tomk at 10:10 AM | TrackBack

WORA, Java, and .NET

Ted Neward is writing about WORA. Especially the last paragraph is interesting:
Remember how long it took us to get Sun to do a Linux port? They never really wrote the port, either--they just swiped the Blackdown port and forwarded it as their own. Sun has long only been interested in Java for two platforms: Solaris (by choice) and Win32 (by necessity). Let me also take this moment to redirect readers to John Lam's article questioning where WORA leaves Sun in terms of a business strategy; in many respects, WORA doesn't make sense for a company that makes the majority of their revenue from hardware, and this is a point that Sun has never explained the rationale behind. Given this kind of fogginess, why do you expect Microsoft to follow a similar strategy? Where's the money in WORA for the platform implementor?
Food for thought. What's Sun's hidden agenda for promoting WORA? (and why weren't they consistent in it?) If you were Bill today, would you port .NET to other platforms? (No, honest. You're in his chair. You have a mortgage to pay on a 2500-acre house. You want to buy the misses a nice island or so for her birthday.)

What I appreciate in the Softies community, is that at least they admit that MS is in the game for the money. Be sure that Sun is too, but they don't advertise it that much (and some Java people seem to think they're some sort of charity, too).

Posted by tomk at 05:17 AM | Comments (0) | TrackBack

The Hacker FAQ

It's floating around in blogworld now, but just in case you missed it: How to hire a hacker.
Posted by tomk at 03:07 AM | Comments (0) | TrackBack

January 09, 2003

Blogger API in Eclipse

snellspace: blog from within your Eclipse. Looks awesome. I seem to have troubles to get it to use a proxy though :-(
Posted by tomk at 05:50 AM | TrackBack

January 08, 2003


Let's start a Mexican wave. Let's hope stuff like this (releasing professional in-house developed code as OSS) gets more common.
Posted by tomk at 08:03 AM | Comments (0) | TrackBack

Free Java Tip of the Day

Kasia: Why chaining is bad. IMO, it's even not only for stepping, but think what happens if you get an NPE in the first example. And in the refactored one...
Posted by tomk at 04:08 AM | Comments (0) | TrackBack

January 06, 2003

Java Blogs

Java Blogs now has an RSS feed. Should be quite a fat stream, I think. Added it to my HEP anyways :-)

Update HEP seems to choke on that stream :-(

Posted by tomk at 04:53 AM | TrackBack

January 05, 2003

Work vs hobby

Mr Roller:
However, if you spend too much time on the work and career side of things even as a hobby, you may regret it later. If you spend too much time with the people that you love, you'll have nothing to regret.
Cheers to that. I'm trying to get myself to live by this rule, too. (Now entering only my 3th computer hour on a Sunday. Hey, it's a start).

The hard thing is the dilemma I've already discovered when I had to choose a college study: if your hobby becomes your work, what do you do in your free time? Work, essentially... (of course, you can live your hobby at least 8 hours per working day. That's the other side of the same medal :) )

Posted by tomk at 03:24 PM | TrackBack

Programming vs development

Mr Roller:
I have to admit that the idea of a guy who sucks at programming doing analysis and design frightens the hell out of me. I hope Tom is just being self-deprecatingly modest.
Thanks for the addition of the last line :-) Rest assure that I feel the same: you can't be a good analyst without being an (at least) decent programmer. The "suck at" was a bit exaggerated, but I've accepted the fact that I will never be as good a programmer as the guys who drop an RSS feed implementation out of their sleeves in one night. On the other hand, if I wrote the RSS spec, it would be good. Those two things just require very different skills, but an analyst and a programmer have to have a bit of both.

Actually, when I finished college, I wanted to go in the analysis direction. I never understood those guys who were getting kicks in C by removing 2 CPU cycles out of their algorithm. But since I didn't (and don't) believe you can be a good analyst without knowing how to program, I started as a programmer ("Software Engineer" was the term at the time). And while working as a programmer, I've often had to work with analysts who didn't live to this rule. It wasn't them who suffered from this...

BTW, Steven seems to think I know Java. Perception is reality. He has been my boss for some time ;-)

Posted by tomk at 09:10 AM | Comments (1) | TrackBack

January 04, 2003

Sequence diagrams

Bookmark to self: investigate this further.
Posted by tomk at 06:07 AM | TrackBack


Digest of my Saturday-morning wake-up:
  • Linux is not ready for the desktop. Glad I'm not the only one who feels this way.
  • Software development is all about programming. I don't agree on this. I basically suck at programming (well, compared to some real programmers that I know at least), but I'm great at analysis and design. (Remember my saying: in a weblog there is no place for modesty ;) ) It comforts me to think that A&D are at least as important as the actual coding. I feel a long blog coming forth from this in a not too distant future (alas, not much time now).
  • Greg:
    I wouldn't be one of them, but that's only because for some reason I can't use PayPal living in Poland.
    I thought you could use PayPal as long as you had a credit card? It's true you can't have any real money sent to your checking account, but we're talking the other way here. Well, I could be wrong about this.
  • Steven has written a todo on Configuring HEP for MovableType. He has now 'invited' me to do the same for FreeRolller/RollerWeblogger.
Posted by tomk at 05:31 AM | Comments (0) | TrackBack

January 03, 2003

Emailing RSS

Steven has found an RSS mailer for me. Thanks, Steven. It looks nice. I'll give it a try during the weekend.
Posted by tomk at 04:39 AM | Comments (0) | TrackBack

Greg again

Greg describes his first new-year-with-a-child.
Posted by tomk at 04:22 AM | TrackBack

January 02, 2003

Can't... resist.....

Steven again
  • An RSS feed with only the first few words of your post makes me just as sad as an RDF feed (which, by the way, shows up just the same in Aggie to me).
  • What's the metaphor for having a permalink on a timestamp? A # at least looks like something engraved in stone.
For the rest, all the best, don't take my remarks too heavily, "it's all about having fun", we all only have 2 hands and 25 hours in a day, etc etc.
Posted by tomk at 07:35 AM | Comments (0) | TrackBack


Steven has left Radio Userland, and is now residing on a Moveable Type. Two things that jumped to my eye:
  • Steven doesn't know the title of his own weblog (compare the new version with the old one).
  • Steven now has RDF instead of RSS. That makes me sad. Hopefully he just didn't find out how to provide an RSS feed yet.
One other thing: he finally has noticed that life is all about saying goodbye. (And why is there no permalink to this article on your main page, Steven?)
Posted by tomk at 04:24 AM | TrackBack


Cameron writes:
My theory with Unix is that it is so hard to install anything that once you get it running, no one screws with the box, so Unix servers work really well. Less software equals less problems.
Right on.

He also mentions the ingenuity of Sun:

So as long as I can work on Windows and let someone else figure out how to install the finished applications on Unix, I'm happy. If you stop and think about it, that's the genius behind Sun pushing Java so hard: all of a sudden, they had a ton(ne) of programmers building applications for their overpriced servers.
That's how all Java programmers think and feel.
Posted by tomk at 04:06 AM | TrackBack

January 01, 2003

E-mailing RSS

Yay: Aggie goes e-mail. It seems to be only in the CVS version for now. Let's see if I can compile a C# project...
Posted by tomk at 04:04 PM | TrackBack

New Year

Following the masses: happy new year to all of you! May your wishes (whatever they might be) come true.

It was my first new year's eve with a child. We invited some friends over (including a couple who have a 2-month old daughter) and had an exquisite evening (although there was a lot of crying and milk involved). I think I had a better time than in the days when I "had" to go out and get drunk in some bar. People change.

Only one good intention: remember "it's all about having fun" more often.

Posted by tomk at 02:41 PM | TrackBack