login
Blurts on the Art of Software Development

Today | RSS | RDF | Atom | Other Tags
Categories : All | All | CI | .NET | General | Humour | Java | Personal | Reviews | Ruby | SW Eng

I was. Thanks to Dion's tip, I no longer need to suffer when copy-pasting stuff from Word documents.

Paul Graham's Great Hackers essay has created some serious ruckus among Java developers, including your's truly, and boy am I glad to see him get biled.

Paul Graham is a tedious windbag

Adrian's fresh blog entry just reminded me how different the world of compiler programming is from your typical business applications. Then again, I haven't really worked too much on "business applications" (I'm more of a backend guy myself although that might change of course).

How the h*ll can a Java book cost almost a hundred dollars?

James Strachan has written a lengthy appeal for Sun to open source rt.jar. I'm really undecided here (I see James's point but I just don't feel the pain myself) but decided to spread to word anyway.

This is something I still don't quite get. I just doesn't feel right. Yes, I acknowledge that Red Hat has a legal right to take an open source (LGPL) application server like JOnAS, rebrand it, and distribute it as part of their Linux distro, but there's still something that makes me feel uncomfortable.

My brief self-analysis indicates that my "WTF" response to Red Hat's doings is probably caused by me not believing that Red Hat has added anything significant of their own into what they're rebranding.

It's a bit like IBM would take JBoss, add a Windows installer for it, and sell it as WebSphere 7.0...

Gosh. I just realized that I've managed to add a total of 101 feeds to my BlogLines.com account. I think I went triple-digit at some point during this week. Thank god not every one of those are pushing stuff out several times a day...

I know I have mentioned playing audio to signal things about an automated build, but an ambient orb like this would definitely be more practical.

I almost missed them.

Thanks to Darrell, I found out about a presentation by Mike Cohn (author of User Stories Applied which I recently reviewed) introducing the main agile processes in just a couple of slides each.

David Anderson (author of Agile Management) has posted pictures of some heavy-duty use of whiteboards and PostIt notes.

That's something I wouldn't do. Can you imagine the horror when you come to work on a monday (it has to happen on a monday...) only to find out that your beloved PostIt notes have fallen down? I'd prefer little magnets.

Anyway, pretty impressive looking whiteboards :)

I just spotted something cool from the XP Yahoo! group.
Check it out if you happen to be using Subversion!

F-Secure has a free MyDoom disinfection tool available from http://www.f-secure.com/tools/f-mydoom.exe.

I've been very active today. That is, compared to the normal me. My girlfriend dragged me down to the shore to wash our carpets. By hand. By scrubbing. Geeks don't scrub. Oh, the pain.

Once that was done, it was vacuuming time. Geeks don't vacuum. But I did. Oh, the pain.

Then, it's time to go downtown to fetch a couple of bottles of a particular red wine my girlfriend absolutely insisted on having. Oh, and we came back with a brand new shiny (read: expensive) blender as well. Oh, the monetary pain.

The worst thing about tomorrow is that when my muscles hurt like hell, I know it's my own fault for not exercising more...

Google seems to have it in for you even before that interview.
(Note: I already tried all known 10-digit primes against the first 52 digits of e, without a match...)

Chris Matts, the other Agile Business Coach (the other is Andy Pols), has blogged a link to the original waterfall paper by Winston Royce, and an accompanying rant about why the big consultancies never actually read the paper.

What can I say? I absolutely agree with Chris. I have no love for people who still go around claiming that the best way to build software is to start by spending a couple of million bucks on paper with some writing on it...

Apparently, Google's IPO will bring us a stock ticker worthy of the company: GOOG.

Danese Cooper is telling a hilarious story from BlogOn 2004. Worth checking out, I promise!

PS. I am using FireFox :)

To me, it seems like Chris Matts just might be available if you have a need for his expertise and an exciting proposition to make...

I just watched The Pentagon Wars from TV. It's a satire about a multi-billion dollar project of the Pentagon for developing the Bradley armored personnel carrier.

Needless to say, everything was going south faster than you could imagine but everyone was repeating "everything's proceeding as planned" like a mantra as you'd expect. Unfortunately, I was reminded of our very own software industry. It is a common joke these days how certain giant consultancies work, thinking about promotions and promotions only... Obviously, that is not true. Right?

My review of Mike Cohn's latest, User Stories Applied has been published at JavaRanch.
Here and here.

I just watched the first set of a tennis match between Lindsay Davenport and Venus Williams on EuroSport. I never watch sports other than ice hockey and sometimes football (that is, soccer for you Americans). What made me stop channel surfing was that I noticed Venus Williams leading the set 5-0 (6-0 would mean winning the set) which was rather unusual (I think) considering that Lindsay Davenport is a world-class player as well.

Anyway, the first set ended... (drum roll, please) ...5-7 for Davenport. Yes, you read correctly. She somehow turned the boat and won 7 serves in a row (after first losing 5). Impressive, I say. Very impressive. It must've felt like a mission impossible. Or then she's just not thinking about that kind of things.

We'll see whether I can keep up my interest to last a second set :)

Ok. The second set lasted for two serves (won by Davenport). Venus gave up because of problems with her wrist. Apparently the wrist had a lot to do with her losing 9 serves in a row. Too bad.

Reading Tim Bray's blog today led me to find this fantastic set of illusions.

Jason Schroeder's rant about airline delays reminded me of something I had forgotten to blog about my trip to Switzerland recently.

We flew from Zurich to Copenhagen where a connecting flight was supposed to take us to Helsinki. Supposed is indeed the right word. We had already boarded the plane and were waiting for the plane to taxi towards the runway when I noticed that people around us were suddenly starting to do something. A second later, I realized that they're all staring at the air conditioning system which had started to blow some kind of gas inside the plane!

Think about it. You're in an airplane, full of people, and suddenly you see white gas coming in from every single air conditioning hole there is on board. Think about the panic that would've caused in the air!

Luckily, it wasn't gas. It was plain old steam. The air conditioning system was malfunctioning, failing to remove moisture from the hull and instead circulating it back inside. It was a very real reminder of how technology does break sometimes -- even on airplanes which probably get more service than any other vehicle in use (except perhaps helicopters...).

Oh, and the story ended with the passengers and crew switching to a different plane after some 45 minutes of waiting for the mechanic to arrive, check the air conditioning system, consult his colleagues, and finally declare that the plane is not going up today. At that point, I was glad that we had to switch planes. Who gives a shit if you get delayed by a couple of hours when the alternative is to take off in a plane you can't fully trust in actually staying in the air...

Apparently Google is indeed a great place to work.
I wonder if Adam was seeing some Resign Patterns at BEA :)

Man, I'd love to know what they're cooking in there...

Buy a couple of satellites and start chasing the really big ones!

Congratulations to Michael Yuan, mister J2ME himself, who's about to become a PhD in astrophysics!

Here's a snapshot of Mike Cohn's User Stories Applied from where he talks about planning releases:

Showing off your sense of humour, eh? :)

Honestly, I can't figure out why someone would want to develop his own Java compiler, but Bob McWhirter seems to think it's somehow a great thing.

Thanks to Dion/Cameron, I spotted something way cool:

A screenshot of the prototype in action

I'm currently reading Mike Cohn's User Stories Applied and the chapter about user roles included something that was completely new to me so I decided to share it.

Specifically, the part I'm talking about was when Mike referred to possible use of Extreme User Roles to reveal stories for your software that you might've otherwise missed. Basically, the technique works as follows:

  1. Come up with a set of extreme characters such as "drug dealer", "woman with multiple boyfriends in circulation", "the pope", etc.
  2. Think about how these characters would want to use your software


Note that Mike is not suggesting that this technique should always be used. He just mentioned that playing around with it for a couple of minutes might be fun and potentially otherwise beneficial. Just don't over-do it.

  • Thanks to Carlos, I just learned that the "1.0rcf" version of C-JDBC has been released approximately a month ago. They've also published a new paper on C-JDBC which looks good!
  • If you're still missing out on Subversion because you've got all your stuff in CVS, you could try the cvs2svn script for migration (after backing up your repository twice, of course...).
  • Darrell recently found out that crunching out some numbers for the management can be a good thing when adding tests and refactoring non-TDD code.
  • That's about it. Now I'm off to bed.

It just dawned on me that one of the biggest advantages NUnit has over JUnit (considering that I don't have too much experience writing .NET stuff) is that they've named the framework classes perhaps a bit better than the JUnit folks did. I'm talking about org.junit.framework.TestCase, not the usual "we should also use metadata instead of naming conventions" argument that you must've heard 113 times already.

The minor issue I have with TestCase is that, based on my observation, the name tends to lead developers new to unit testing write not-so-good test code. Specifically, while the name "TestCase" implies that the class you're looking at should represent a single test case, the fact that you can write a dozen test methods seems to lead to thinking that it's actually the test methods that are test cases, not the class.

So, what's the actual difference with NUnit regarding this issue I've managed to make up -- in addition to NUnit using attributes to mark up test classes and test methods?

The difference is that for the .NET developer, a test class explicitly represents a test fixture -- something all tests in that class should have in common! This is something that a JUnit user can easily forget, eventually leading to lack of cohesion in the test classes.

Personally, I'm finding the single-assert-per-test-method to be a reasonably good reminder for keeping my fixtures clean. It's just that a majority of JUnit users seem to not agree with this rule of thumb.

Do you see this as a real problem or am I again making it all up? Should the JUnit team apply the "Rename Class" refactoring on TestCase?

Something reminded me just a couple of minutes ago about a very unique programming language I stumbled onto some time ago (months, years, can't say) and I decided to share. Let me know if you're going to deploy something written in the language -- I'd love to hear about any maintainability problems you might have ;)

  • It's good to see that JPOX and JBoss have passed TCKs
  • It's amazing to realize that the world is full of open source JMS implementations
  • I completely agree with Michael Harmer on single-person teams being dangerous (I've been there a lot lately!)
  • There's an exciting agile management book on its way at this Yahoo! group (review chapters available from here)
  • It's funny that Ernest mentioned Advanced UNIX Programming just a couple of weeks after I bought a brand new copy of it from a sale. I couldn't let such a classic be left alone in that godforsaken far corner... (It was also kind of scary how I ended up seeing the book in the first place -- my girlfriend was killing time while I was browsing a "geek" shelf in the bookstore and I spotted the treasure only because she was close to that "we'll never sell these anyway so let's dump 'em there" shelf)

I just came back from Switzerland and thought I should share something absolutely hilarious:

Martin Fowler has posted a nice article, Mocks Aren't Stubs, which talks about the differences between two styles of using "mock" objects in testing your code.

Thanks to Alan, I just laughed my ass off reading Rock Paper Saddam. :)

I would be really, really interested to know what's behind Joshua Bloch getting hired by Google... Could it have something to do with Java or is it just generic API design they hired him for?

I went cruising yesterday with a few co-workers. It was fun and it was very late when I got home. And I managed to avoid hangover :)

Web Performance Inc. has published a very interesting report, which included a couple of surprises. Jetty pretty much sucked, JRun was one of the top guns, and Tomcat wasn't too far behind JRun.

I have two monitors hooked up to a Matrox graphics card at work. Sometimes I feel like I couldn't live without the 2nd monitor, and sometimes I feel like I'm just causing myself neck pains (since the desk doesn't facilitate placing the monitors in any ergonomic way...). The latter point of view seems to be dominant nowadays.

Still, when I see something like this or this, I feel an unimaginable itch to run to the nearest geek heaven and make my credit card squeal like a pig...

...and then, of course, I remember the old 800MHz Linux box I have lying around un-plugged that I really should hook up, upgrade the OS, and spend any spare moments (including the hours when 99,5% of the local population is sound asleep) with tweaking the crontab and init files. It's got a 14" monitor. I can't believe I've actually coded with that thing not so many years ago.