Jan 29, 2004

Optimization - your worst enemy.

Optimization - your worst enemy.
Optimization - your worst enemy is an article that talks about basic truth of code optimization. They are basic but often neglected so it’s good to brush up on them from time to time, especially if they’re illustrated with real-world examples. To quote the summary:

Optimization matters only when it matters. When it matters, it matters a lot, but until you know that it matters, don’t waste a lot of time doing it. Even if you know it matters, you need to know where it matters. Without performance data, you won’t know what to optimize, and you’ll probably optimize the wrong thing.

The result will be obscure, hard to write, hard to debug, and hard to maintain code that doesn’t solve your problem. Thus it has the dual disadvantage of (a) increasing software development and software maintenance costs, and (b) having no performance effect at all.

Category:  — Permalink

Jan 23, 2004

Mulberry 3.1 IMAP client.

Mulberry 3.1 IMAP client.
In my never-ending search for an ideal IMAP client after short evaluation period I purchased Mulberry 3.1. Evaluation period was short because I was getting more and more irritated by Thunderbird 0.4 (it started acting worse and worse). I can’t say I’m very satisfied. Mulberry was supposedly designed for good IMAP handling. Unfortunately it wasn’t designed for comfortable use. All e-mail clients have this irritating tendency to block UI when doing network I/O. I can sympathize with them (making snappy UI isn’t easy) but I cannot forgive. Opera’s M2 e-mail client is an example of UI responsiveness done right - when I click on a folder I’m immediately there - new messages are downloaded in background. Everyone else blocks and makes me white while they update the view with freshest data. The worst offender is Outlook - switching to another folder causes it to redownload all the header. While it’s a correct thing to do (since that’s the only way to stay in sync with the server) it shouldn’t block the UI with a progress-showing dialog box. For a brief time I was using dual setup: Mulberry for reading new messages, Thunderbird for writing new messages. This is mostly because Mulberry gives me control over expunding e-mails (expunge strange IMAP thing) while Thunderbird doesn’t show deleted-but-not-yet-expunged messages and, what’s worse, doesn’t let me expunge messages in other folders than Inbox. Another reason is that Thunderbird’s spam detection sometimes is over-eager and gives false positives - which is very bad.

However, Mulberry’s UI is ugly - in general and in particular. For the “in general” part - you just have to experience it. In particular, it took me a while to figure out that in order to create a new message I have to press button named “Draft”. Very intuitive indeed. Mulberry exposes IMAP as it is, which has pros (people who care get a better insight into what’s going on in their IMAP folders) and cons (most people don’t care about such insight and are confused by it). There was a project Mulberry 2003 started in January 2003 whose goal was to improve Mulberry. Suggested improvements, while not earth-shattering, would help but they weren’t implemented yet (and I didn’t find any information that suggests that they will).

In the end I gave up on Mulberry and instead upgraded Thunderbird to a recent daily build (works better than official 0.4).

Now the only IMAP client I didn’t evaluate is Pine. Not that I didn’t try - I just failed to setup it (Pine is very oldschool and setting it up involves editing text files). BTW: to get more information about IMAP that you probably care, go to “ IMAP service providers - A Step in Dealing with Viruses, Spam, and Email Overload”. Site rich in information.

Category:  — Permalink

Jan 21, 2004

IRC clients.

IRC clients.
I’m very late to the IRC game but I just found a usage scenario for IRC that makes it worthwile exploring it: keeping in touch with developers on open-source projects. Many open-source projects have dedicated IRC channels and often key developers hang out there. IRC chat is a good way to keep in touch, especially if you’re contributing, in addition to e-mail or discussion groups. Therefore I decided to test a few Windows IRC clients:

  • mIRC seems to be most popular and regarded as the best IRC client for windows. It costs $20
  • HydraIRC is a farily new, somewhat open-source (you can get the access to the source if you ask nicely)
  • xChatis an old, open-source client that used to be Unix only but since it uses GTK it has also been ported to Windows

I don’t have fancy needs and I know next to nothing about IRC (which is very complicated when you really dig into it). I just wants something that does the basic stuff (joining few IRC channels and chatting in them) in a nice gui. All three clients seem to be adequate for the task. The winner, for me, is xChat. mIRC lost because there’s no point spending money on software when there’s an adequate open-source and free equivalent. HydraIRC looks quite nice. It lost mostly because channels within a given IRC network are displayed using MDI interface i.e. one window per channel. Managing those windows is a mess. I much prefer tabbing interface of xChat. I was completely happy once I figured out to a channel at startup.

Category:  — Permalink

Jan 20, 2004

Disable Flash in Mozilla/Thunderbird.

Disable Flash in Mozilla/Thunderbird.
I wanted Flash Click To View and now I found it (via Jeremy Zawodny). This will block Flash animations in Mozilla/Firebird. It’s still possible to view them (if you click on them).

Another Firebird trick: type about:config in the url box and you’ll see all the configuration parameters.

Category:  — Permalink

Jan 19, 2004

Noah and WikiPedia bookmarklets.

Noah and WikiPedia bookmarklets.

I found a bookmarklet for WordNet dictionary. I think it’s a great idea so I created those bookmarklets:

  • Noah (version for IE and Mozilla), Noah (Safari version, not tested)
  • WikiPedia (version for IE and Mozilla), WikiPedia (Safari version, not tested)

How to use them: drag&drop this link to the bookmarks bar. Once you have it, select a word on a page and click the link.

Those bookmarklets open new window and in Firebird 0.7 (which I use) this window is usually hidden behind the main window. It’s very annoying. Maybe I should open it in a new tab?

Category:  — Permalink

Jan 13, 2004

WinExpose and stealing ideas.

WinExpose and stealing ideas.
I’ll never understand people whining about “ripping off” or “stealing” ideas. Someone implemented functional equivalent of Mac OS X built-in feature called Expose and that’s apparently a bad thing. It’s bad, because… well, just because, I guess. Yes, some guy inside Apple came up with this idea first. Does that mean that WinExpose guys didn’t work hard to implement that on Windows? They did work hard. Does that mean that such feature should forever be banned from Windows (or any non-Apple OS, for that matter, including Linux/X-Windows)? What if we apply similar thinking in reverse and ban any technology/idea that happened to be implemented on Windows first from ever being implemented on any non-Windows OS? Where does this “thou shall not use other people’s ideas” rule gets us? It gets us nowhere. It gets us to a place where software doesn’t evolve because no-one can improve anything because to improve something you first have to copy the original idea. How those Netscape folks dared to copy Mozaic and make it better? Ok, they’re excused because some of the guys that started Netscape worked on Mozaic (but not all Mozaic devs became Netscape devs and not all Netscape devs were Mozaic devs). But all others cheaters with no original idea in their brain are not excused. That includes Microsoft (IE), Apple (Safari), Mozilla (ok, they emerged from Netscape, but even if we were to be charitable because of that, they should be dismantled once Netscape stopped producing Netscape) and numerous, too many to mention, folks working on open-source browsers. Actually, I’ve changed my mind about Mozaic. They’re also a bunch of chaps without an original thought in their brain - after all what they did is just an implementation of ideas of Tim-Berners Lee. He should be the only one allowed to implement it - anyone else doing that is clearly just stealing his ideas, ripping him off. And that newspaper thing, I’m sure someone was first to came up with the idea. Why do we have hundreds of competing newspapers and magazines? Because we have hundreds (minus one) bastards without a creative thought in their minds that shamelessly stollen the idea. May they rot in hell.

WinExpose folks should be applauded for:

  • good business sense (porting apps that proven to be successful on one platform to another platform is as good of a business plan as it gets; I wonder why people don’t do it more often)
  • providing an utility that people might find useful and if they do, they’ll fork their money over to WinExpose makers making them rich and that’s how healthy market should work
Category:  — Permalink

Jan 09, 2004

How to drive VoIP business out of US.

How to drive VoIP business out of US.

According to this article FBI wants telcos to allow them to wiretap VoIP calls. The problem (for US VoIP providers): you don’t have to be in US to provide VoIP to US customers. FBI can’t force non-US companies to do that so, with the help of a little bit of awarness campaign, non-US companies can make it very clear to US customers that they have a big advantage over US companies therefore should get more business. US looses, everyone else wins.

Not to mention, that this might be impossible to do. Skype, I belive, is architected with encryption so that wiretapping is simply impossible (and if it’s not, someone will build fully-encrypted system). Whoever provides fully-encrypted VoIP in US will either have to add back-doors or re-implement the service without encryption in order to comply with the regulations (if FBI gets its way).

Category:  — Permalink

Jan 08, 2004

First VMWare disappointement.

First VMWare disappointement.

Given than my computer happily reboots when I try to run SmartPhone emulator (not a very good video driver). So I thought that I would run this under VMWare but no luck. VMWare refused with a message of something being unimplemented. Oh well.

Category:  — Permalink

Palm OS 6 news.

Palm OS 6 news.

Palm OS is a terrible OS to program. There’s hope, however, and her name is Palm OS 6. According to this Brighthand article Palm OS 6 is already finished although, as is usually the case, it’ll take some (a lot) of time before it shows up in Palm PDAs.

From the description it seems that it’ll be the first Palm OS version deserving the title of “operating system”. For the first time it will have:

  • memory protection (today the smallest programming mistake will crash Palm OS)
  • multi-tasking (today it’s more or less impossible to do multi-tasking and as a result implementing some nice features is not possible)
  • fully ARM-native code (today, if you invest a great deal of pain, you can compile portions of the code as ARM; a majority of the code runs as emulated 68000 code which is a terrible waste of cycles)

I suspect that for backward-compatibility reasons they’ll continue to propagate their braind-dead APIs (especially the graphics/windows handling APIs are a terrible, terrible mess).

re on February 10 which is the date of PalmOne’s developer conference and the day where they release the OS to developers (i.e. provide SDK and developement tools).

What is not clear is what compiler will be used for Palm OS 6 - will PalmOne coordinate with Metrowerks to ship upgraded CodeWarrior for Palm or will they provide their own tools (most likely gcc-based)? Only the time will tell.

Category:  — Permalink

Jan 07, 2004

Zoe - google for e-mail.

Zoe - google for e-mail.

I’ve recently praised e-mail search capabilities of Bloomba. A reader pointed me to Zoe, an interesting, open-source project that was doing this type of e-mail googling before Bloomba.

As an interesting note: it looks like Bloomba used to have a weblog (according to this message) but it doesn’t anymore.

Category:  — Permalink