Spring in Autumn

This week is turning out to be a slow blogging week because I was busy wrestling with funky HTML email formats.  Generating email is easy just as generating HTML is easy.  Trying to make sense of all the wild variations and loosy goosyness at the receiving end is tougher and doing content surgery in route is even tougher.

I did have some enjoyable time integrating Spring Framework with the pure Java milter though.  It took me only a few hours to wash most of the configuration mess out of code and into an XML file.  Nice.

Although I did notice the recent release of HiveMind 1.0 final, I went with Spring Framework because I felt more comfortable with its design and terminologies than HiveMind's.  But then they are very similar so which you choose to use is just a matter of taste.  HiveMind is fairly small though because it is boxed in by rest of Jakarta projects in terms of functionalities.  Joining a community means having more toes and egos to avoid stepping onto.

Spring Framework, on the other hand, has a growing flotila of integration packages.  Since I was short of time, I ignored them for now and used only the core and context packages.

Firefox on Fire

While it's cool to see that Mozilla Foundation has met their goal of 1 million Firefox 1.0PR download in 10-days, it's sad to see that they achieved that by doing it the Old Fashion Way, delivering every byte to everyone themselves.

Instead of the irrelevant, so called, RSS Support, they could have added BitTorrent support to the Firefox, enabling Mozilla servers to share the download frenzy stress with network download clients and enabling every Firefox installation to be BitTorrent-ready at the same time.

But then it's a puzzle why AOL, Mozilla's former patron, didn't add BitTorrent support across it's product line (AIM, WinAmp, etc.) to make it easy for people to download multimedia.  IMHO, the best way to control illegal sharing of copyrighted goods is by controlling the client.  And lets not forget all the legal ways to leverage P2P technologies.

One example is peer to peer education.  Recording video or audio is so much simpler than writing books.  Why not ask people to share amateur How-To videos?  Time/LIFE made a bundle selling How-To books and market interest is clearly there.  Turn on those Visa/MC logos and let people make money off teaching others how to fix things.

The best time to embrace a technology is when everyone is scared of it.  Grab it by the horn and flip it to your advantage.

Firefox Live Bookmarks == IE CDF?

William Slabbekoorn (see his comment in Firefox RSS Support) duplicates Firefox Live Bookmark feature for IE with a bit of server-side ASP code that transforms RSS into CDF.  You remember CDF don't you?  If my feed was in CDF format, server-side component wouldn't have been necessary which makes Live Bookmarks as uncrappy and useful as CDF.

Below is a partial screenshot of my feed displayed as IE's 'Live Channel':

Full screen version from William Slabbekoorn (Local Copy).

IMHO, false praises are worse than no praise at all.

Bug Enhancement?

This entry in the most latest list of changes to QDBM, a fast dbm-like open source library, gave me a good laugh:

A bug in the extended API was enhanced.

Aside from the typo, I have no complaints about QDBM.  Coming from me, that's a complement.

Open Bookshelf

Being an entrepreneur means I have a fetish for domain names.  I just got the openbookshelf.com and the gang.  What is the chance of me actually using it?  Near zero.  Sometimes I feel like a dumb squirrel.  Thankfully, there are dumber squirrels.

Year of Firefox: Right On Schedule

I wrote back in February:

I predict that Firefox browser marketshare will be near 20% by end of year 2004.  It's that good and getting better.

And browser marketshare numbers so far:

2004 IE 6 IE 5 O 7 Moz NN 3 NN 4 NN 7
September 68.3% 6.5% 2.5% 17.7% 0.2% 0.2% 1.3%
August 70.3% 7.0% 2.3% 15.5% 0.3% 0.3% 1.4%
July 71.0% 7.7% 2.3% 13.8% 0.3% 0.3% 1.4%
June 72.4% 8.3% 2.3% 11.8% 0.3% 0.3% 1.4%
May 72.6% 9.2% 2.2% 11.0% 0.3% 0.3% 1.4%
April 72.4% 10.1% 2.1% 10.3% 0.3% 0.3% 1.4%
March 72.1% 10.7% 2.1% 9.6% 0.4% 0.4% 1.4%
February 71.5% 11.5% 2.2% 9.0% 0.4% 0.4% 1.5%
January 71.3% 12.8% 2.1% 8.2% 0.4% 0.5% 1.5%

Actual marketshare of Firefox is less than the 17.7% because this statistic does not distinguish between Mozilla and Firefox.  My guestimate for actual Firefox marketshare is 12~14%.

So it looks like my prediction is still on track.

Update:

Apparently News.com is seeing similar numbers:

Among CNET News.com readers, site visitors with the Firefox and Mozilla browsers jumped to 18 percent for the first two weeks of September, up from 8 percent in January.

Firefox RSS Support

I just finished looking at the code implementing Mozilla's RSS support (aka 'Live Bookmarks') and came up with these tips:

To make the orange RSS button show up on the bottom right corner of Firefox when your webpage is displayed, add following HTML fragment to your webpage's HEAD element for each feed.

<LINK type="{feedMimeType}" rel="alternate"
    title="{feedTitle}" href="{feedUrl}">

where {feedMimeType} can be:

application/rss+xml
application/atom+xml
application/x.atom+xml

if {feedMimeType} is not one of the above then {feedTitle} has to be one of the following (case-sensitive):

rss
RSS
Atom

Otherwise, {feedTitle} can be anything.

To make feed items appear correctly in Firefox bookmark sidebar, your feed items *must* have both non-empty 'title' and 'link' tags.

And what do I think of Firefox's so called RSS support?  Words like crappy and useless comes to mind.

Update #1:

Following is a copy of my comment to Dan Gillmor's post quoting my 'crappy and useless' comment:

Some details behind my rather rude comment:

1. There is no such thing as RSS support in Firefox 1.0PR. Firefox 1.0PR *uses* RSS feeds to implement Live Bookmarks. While Live Bookmarks is useful for del.icio.us, live bookmarks are read-only.

2. While such use of RSS is laudable, they failed to distinguish between Live Bookmarks, a specific application of RSS, and the RSS technology, creating confusion as a result.

3. Live bookmark behavior is inconsistent across feeds. For link blogs, live bookmarks point to different destination sites. For other blogs, they point to different sections of a page or different pages at the same site. Live bookmarks confuses and wastes bandwidth.

4. Bookmark sidebars are too narrow to display item titles effectively.

ChatToon: a chat game

After reading Wired's Instant Messaging Goes Graphical article this morning, I came up ChatToon.

ChatToon is a graphical game for IM, SMS, IRC, and MUD users on platforms with graphics capability.  The idea is to either cooperatively or competitively fill in cartoon dialogue bubbles of a typical morning cartoon provided by the chat hosting service or uploaded/pulled by one of the users.

Cartoonists can make their one to four cell cartoons available and are compensated with per-usage fee and publishing fee.  Publishing fee is charged when people want to share the end product of their ChatToon game with friends and family or post it to their blog.  If it's good enough to be distributed widely, then the cartoonist and the ChatTooners share the generated royalty.

I am not going to pursue ChatToon because I am busy with other ideas and because ChatToon has many sticky issues which I don't have time nor interest to resolve.  Still, I thought the idea was interesting enough to post about.

Struts 1.2.2 Released

Struts is still widely used by server-side Java developers, but I have stopped tracking it after the release of Struts 1.1 more than a year ago.  So it's no surprise that I didn't notice the release of Struts 1.2.2 until now.

Scanning through the Release Notes, I don't see any compelling reasons to upgrade.  Even worse, there are good reasons to not upgrade, like removal of code deprecated in 1.1 which will break some existing code.

I don't think I'll be upgrading my Struts 1.1-based projects and, for new java webapp projects, I'll be using the Spring Framework.

So long and thanks for all the actions, Struts.  It's been fun watching the paint dry.

Backside of the GUI

We can't see the backside of the Moon, only photos.  Likewise, we never see the backside of GUI objects.  Not only do we not see it, we don't expect it to be there like we do with the Moon.

As a kid, I had a moment of enlightenment of sort when I saw my father open up a gadget (I forget what) with a screwdriver.  From that point on, I had the urge to open things up to see what's inside.  Usually screws that hold gadgets together were in the back or on the side.  So the bit of knowledge I added to my model of the world then was that the front of a gadget was for controls and the back was for opening it up.

That bit of knowledge didn't apply to GUI objects.  To open up a gadget onscreen, you have to browse the menus to find the settings or preference command because there is no backside to GUI objects.

Backside is a lost word in the language of GUI design.

Now we can google, but we still can't flip or turn.