I like version control systems. Since I got my VPS to run my own server stuff on I’ve been using “Subversion”:http://subversion.tigris.org to store many of my files in. This is not only great for when I screw things up and want to retrieve an older version of a file, but also for synchronisation between different computers. Version control systems pop up in many pieces of software, in wikis for example. Version control in wikis works great, do you know why? Because wiki pages are plain text documents.
One of the most useful features in version control systems are diff and merge. Diff (for difference) compares two versions of the same file (an old one and a new one, usually) and shows you the differences. Merge can then apply the output of the diff to the old version which will result in the new version (a diff is like a delta). This becomes really useful if two people are working on the same file at the same time, but in different parts of the file. One is editting one section of the file, somebody else is editting another. When both check their changes in the version control systems compares (diffs) each version with the current one in the repository and if they don’t conflict it can merge them both in; so nobody’s work is lost.
But this only works with text files. If you would do a diff on a word document or JPEG image it won’t work. Why not? Because the diff and merge tools compare files on a line-by-line basis. Even it would work on a byte-by-byte basis it wouldn’t work right because changing one pixel in a JPEG image can change the whole file around.
This is a problem also raised by “Tjaard”:http://www.tjaard.nl/2005/05/21/smart-version-controlling-why-diff-is-just-not-enough. He argues that version control systems should become more file-type specific. Right now there are basically two kinds of files: text files and binary files. That’s it. A while ago I went to a graduation talk of somebody at our university who researched diffing and merging UML diagrams. That’s the kind of stuff I’m talking about. A version control system should have plug-ins for different file types. For word files, for JPEG files, for UML diagrams, for XML files.
Tjaard asks if this wouldn’t cause performance problems. All I can say is: screw that. Even if you need a bigger server for version control it saves so much (wo)man hours and productivity that it’s totally worth it.
Since “Ajax was first launched as a term”:http://www.zefhemel.com/archives/2005/03/19/and-it-got-a-name-ajax a lot has been happening in the web development world. If you’ve been reading the blogs, in particular the “Ajaxian blog”:http://www.ajaxian.com you will already know about it. If not, I’ll point you to some cool stuff now.
First some examples:
* “Cojax Source Code Viewer”:http://code.communityserver.org
* “AjaxAdvocates example”:http://www.ajaxadvocates.com
* “WICK”:http://wick.sourceforge.net/wick_sample/ (auto-complete toolkit)
* “Ajax spellchecker”:http://www.broken-notebook.com/spell.php
But really, this is all minor stuff compared to the demo Jon Udell put online of “TIBCO”:http://weblog.infoworld.com/udell/gems/tibco.html. What these guys did is create a complete UI toolkit for use within the browser. In order to make development easier they created a whole IDE using this toolkit. That’s right, that means that they developed a IDE inside the browser, including a visual designer. You just have to see it to believe it.
If you want to see more cool stuff like that, read the “Ajaxian”:http://www.ajaxian.com blog.
Scott Berkun is a project management consultant and writer. He previously worked at Microsoft as a lead program manager. He recently published a book called “The Art of Project Management”:http://www.amazon.com/exec/obidos/tg/detail/-/0596007868/104-7397168-1549531?v=glance.
Beside writing books Scott also publishes essays. Last month’s essay was entitled “Why Smart People Defend Bad Ideas”:http://www.scottberkun.com/essays/essay40.htm and it’s a good read. I particularly liked this passage:
Smart people, or at least those whose brains have good first gears, use their speed in thought to overpower others. They’ll jump between assumptions quickly, throwing out jargon, bits of logic, or rules of thumb at a rate of fire fast enough to cause most people to become rattled, and give in. When that doesn’t work, the arrogant or the pompous will throw in some belittlement and use whatever snide or manipulative tactics they have at their disposal to further discourage you from dissecting their ideas.
This sounds so familiar. I’ve talked to people like that. Their convincing strategy consists of firing relevant and irrelevant facts at you at an unbelievable pace. They continue doing this until you give up and you say “ok, you’re probably right.”
So your best defense starts by breaking an argument down into pieces. When they say “it’s obvious we need to execute plan A now.” You say, “hold on. You’re way ahead of me. For me to follow I need to break this down into pieces.” And without waiting for permission, you should go ahead and do so.
First, nothing is obvious. If it were obvious there would be no need to say so. So your first piece is to establish what isn’t so obvious. What are the assumptions the other guy is glossing over that are worth spending time on? There may be 3 or 4 different valid assumptions that need to be discussed one at a time before any kind of decision can be considered. Take each on in turn, and lay out the basic questions: what problem are we trying to solve? What alternatives to solving it are there? What are the tradeoffs in each alternative? By breaking it down and asking questions you expose more thinking to light, make it possible for others to ask questions, and make it more difficult for anyone to defend a bad idea.
“Why Smart People Defend Bad Ideas”:http://www.scottberkun.com/essays/essay40.htm. Recommended reading!
Oh, at the moment of this writing his website suddenly went offline, you can still read the essay through “Google’s cache”:http://216.239.59.104/search?q=cache%3Ahttp%3A%2F%2Fwww.scottberkun.com%2Fessays%2Fessay40.htm&start=0&start=0&ie=utf-8&oe=utf-8&client=firefox-a&rls=org.mozilla:en-US:official.
Ok, I haven’t been posting a lot in the past week or two. That’s mainly because of some things happening in my personal life (that’s right, I’m rumoured to have one of those) that need some more attention.
But anyway, my younger brother started with his high-school final exams today. Good luck Wouter!
As you may know the last Starwars episode has hit the cinemas. Not that I care one bit, I find them kind of boring, but nevertheless “Rory Blyth’s review was a fun read”:http://neopoleon.com/blog/posts/14280.aspx.
“Tjaard”:http://www.tjaard.nl/?p=52 handed me the music baton, so here we go.
First of all, the size of my music collection. It’s not as big as “some people”:http://www.standardbehaviour.com/articles/2005/05/18/running-around-with-a-musical-baton. As a matter of fact, it fits all on my iPod. Admittedly, I sometimes remove stuff that I won’t probably ever listen to so that it will keep fitting. I think I got around 14GB of music right now. Most of which MP3, but also some DRM AAC files from the iTunes music store.
*The last CD I bought was…*
It has been a little while since I bought a CD, but I think it’s Diana Krall - Live in Paris.
*Song playing right now…*
Cosmos - Pa un par
*Five songs I listen to a lot/mean a lot to me…*
This depends so much on my mood. But anyway, from the top of my head:
* Diana Krall - Case of You
* Hooverphonic - Inhaler
* Shakira - Tu
* Massive Attack - Teardrop
* Muse - Space Dementia
Of these the Muse song is most remarkable in the sense that I’ve only known about Muse for about a week or so and I have been playing their songs almost full-time since (together with the Cosmos songs).
*The five people where this meme will go on…*
* “Bas Westerbaan”:http://blog.w-nz.com - because I want to know.
* “Shane Bauer”:http://www.shanebauer.com - because he hasn’t posted for so long that I wonder if he’s even alive.
* “Manuzhai”:http://www.manuzhai.nl/weblog/ - because he needs a wake-up call similar to Shane’s (although less loud).
* “Jacob Duursma”:http://zef.cc/~jaap/ - because I honestly have no idea what his music taste is like.
* “Matt Mecham”:http://www.mattmecham.com - because I wonder he still listens to Radiohead so much (not that that’s a bad thing)
I want to point you all to one of my favourite weblogs in my 118-feed long subscriptions list: “O’Reilly Radar”:http://radar.oreilly.com/.
Many of you will own an O’Reilly book. They’re the very good and expensives ones with the animals on the cover. O’Reilly always seems to launch the right books at the right moment. O’Reilly Radar gives you a look at the trends that the people at O’Reilly see in the IT industry. Very interesting stuff.
“O’Reilly Radar”:http://radar.oreilly.com
Long-term readers of my blog might already have gotten some hints about how much I love Joel Spolsky. Shirts. Mugs. Posters. Books. I got ‘em all. I won’t even talk to you if you haven’t read “Joel on Software: And on Diverse and Occasionally Related Matters That Will Prove of Interest to Software Developers, Designers, and Managers, and to Those Who, Whether by Good Fortune or Ill Luck, Work with Them in Some Capacity”:http://www.amazon.com/exec/obidos/tg/detail/-/1590593898/002-0415684-0102450?v=glance.
And so I ask you: put down your pen; save the source files you’re working on; close the door to your room; unplug your phone and read what Joel has to say. Yesterday he wrote about “how to make code that is wrong look wrong”:http://www.joelonsoftware.com/articles/Wrong.html and why Hungarian is the ultimate solution to that. And that exceptions suck. And it’s always cool to hear people say that things suck.
“Making Wrong Code Look Wrong”:http://www.joelonsoftware.com/articles/Wrong.html