Axis 1.2 Finally Released

According to Jesús Rodríguez, the Apache group finally released version 1.2 of Axis, still the most popular SOAP toolkit for Java despite being complex and slow, while I was celebrating my birthday with a particularly horrible cringe. Good. Now I can replace the RC version I've been using. It should show up here soon, but you can download it here until then.

Update:

Drools 2.0 RC1 was also released. I've been using a beta version in an ongoing project so I am glad to see a release candidate version. FYI, Drools is the fastest open source Rete-based rules engine that I know of. It supports JSR-94 (Java Rules Engine API) and domain-specific rule declaration languages. Definitely recommended.

Updates to two key third party components in a single day!

Guild Wars

Wow. Gamespot reviewed Guild Wars, a new MMORPG from ArenaNet, and gave it a 9.2 out of 10 points. World of Warcraft got 9.5 but WoW charges monthly network fee ($14 if I remember correctly) where Guild Wars don't. And it looks great. I am gonna have to avoid driving near Fry's for a while because I just don't have the time to swing virtual swords regardless of how shapely the lass ahead of me looks.

BTW, ArenaNet is a division of NCsoft, a Korean game company, where Richard Garriot the Lord British also works. NCsoft is obviously not just playing around.

RSS and Atom Programming

My complimentary copy of Beginning RSS and Atom Programming by Daynny Ayers and Andrew Watt arrived today. When Danny asked me where he should send the book to, I thought the title was Beginning RSS, a modestly sized high-level technical tour of the RSS technology that one can read over a couple of nights. What I received instead was a huge book of over 700 pages and 32 chapters, full of technical details and advices along with screenshots and code examples in Python. Excellent stuff.

Don't let the word 'beginning' in the title mislead you into thinking that it's another fluff book because there is enough knowledge in it to let you do what Matt Mullenweg did with WordPress. Of course, you'll also need a big bucket of talents and an even bigger bucket of sweat but that's to be expected. The book should also be useful as a boat anchor after your fortunes are made with your RSS-enabled product or service.

Note that the book's cover features a scene from the famous Surprised Rabbit and the Grim Hunter story. Just kidding. I have no idea why Wrox uses consistently mediocre covers on books whose authors invested so much time and energy into.

Life is a Game

I've been missing the World of Warcraft, so I took a trial dip into EverQuest II. EQII is a stinker when compared to WoW. I didn't particularly mind the long time it took to update the trial client but the first real gripe was that the view into the 'world' was not full screen like WoW was (visual suffocation). And the overall graphics as well as the UI sucked. Was it my imagination or did EQ2 felt more like a 3D version of Sierra Online's King's Quest games? Phew! With EQ2, Sony flushed their previous dominance in the MMORPG business down the toilet. They just don't get it and I doubt they ever will.

On the other hand, Blizzard needs to work hard to keep the players they have. For people like me, they should allow players to deep freeze characters, meaning I should be able to suspend my account for months without abandoning characters. While playing WoW, I raised enough characters to be tired of doing it again. I tried most of the quests appropriate for level 50 or less players and tried no less than ten race/class combos so I am not going to feel good returning to WoW if I had to start all over again. Besides, how much storage would it take to deep freeze a character?

Blizzard seems to be responding to user feedback though because I've heard that they are now allowing players to move characters between servers. I would have been happy if they allowed that only for level 60 characters. They should also introduce 'rides', meaning events characters can pay money to participate in. They should be highly controlled (dungeon masters!) and as fun as rollercoasters yet each one as unique and unpredictable as life on the edge can be. I think they don't even need to pay those dungeon masters. Let the dungeon masters pay to grind strangers into the ground. But then I don't think they are that smart. They are smart enough to beat the pants off Sony but not enough to make players scream with joy while spilling gold, minute by minute.

Mobile in a Box

Tired of mobile developer blues?

Try building your app for your ideal mobile device and then bundle it with the device and necessary connectivity. Then release a new version every 1-2 years to leverage latest advances in hardware.

Don't sell it to teenagers. Sell it to small business owners who need weapons to compete against the online onslaught. Read my handblogging post if you are short of ideas. Think barcodes, RFID tags, customization, availability, and relationships. Aggregate metadata collected by a national network of application-specific mobile devices.

If this trail of thought doesn't make you shiver, try farming.

Password Hashing Revisited

Sam Ruby and Jon Udell points to Nic Wolff's password generator as a simple ingenious simple single sign-on (SSO) solution. It's a neat technique but the core idea is definitely not a new one.

For example, Dan Boneh and Stanford students used it in PwdHash, an IE plugin, as an anti-phishing solution. Applying the technique on the password generation side reduces some weaknesses in the PwdHash solution but there are still significant user experience and security issues remaining.

Also, countless lazy yet paranoid users have practiced the technique manually ever since the password input box was invented. Please don't remind me how long ago that was. Not on my birthday.

Lua binding for QDBM

While Lua the little script language is not as well known as Python, it is popular in the game industry (World of Warcraft uses it to drive client UI) and there is even a sourceforge-like website just for Lua, LuaForge.net.

For persisting Lua data types, there is Pluto which converts any Lua data type (even functions, closures, and threads) into an octet sequence which can be written out to a file (i.e. game save/restore), sent over the net (LuaSocket), or inserted into databases using LuaSQL (ODBC, ADO, Oracle, MySQL, SQLite, JDBC, PostgresSQL supported).

For my recent need, persisting tens of thousands of small Lua tables to local storage, I used lgdbm (tar.gz file) with QDBM which I've been using in other projects instead of gdbm for performance. I am not releasing the source code to my Lua binding for QDBM (lqdbm?) because only minor modifications are needed. I'll do that when and if I expose other functionalities of QDBM like B+ tree.

Deep OS X Tiger Review

I can't remember the last time I got tired from reading a review but reading this extraordinarily detailed review about Tiger, the latest version of OS X being released today, did. It started off fluffy enough but went on and on, diving into the guts about details only developers would care about. Being a developer, I enjoyed every page after page.

I did cringe though when I got to the page about the extended file attributes (aka file metadata) support because it mentioned HFS+. You see, I have painful memories of implementing HFS on top of *shudder* DOS for a client long time ago (can anyone member Dayna Communications?) during my Macintosh days. Files under HFS had two parts, data fork and resource fork. DOS files don't have resource fork which means, to allow Mac users to drag and drop Mac files into DOS diskettes, I had to come up with elaborate schemes to simulate it. The product got rave reviews but I regretted having taken on the contract afterward because the experience was definitely not fun.

Anyway, Apple apparently did the same in OS X to support non-HFS volumes by saving the resource fork under files with '._' prefix. Same file is used to store extended file attributes in non-HFS+ format volumes.

I am not sure if non developers will survive through the middle part of the long review, but I definitely recommended it for developers. Having read it, I pity the pre-Tiger OS X developers. They must have felt like eskimos living on drifting icebergs. Tiger seems like solid ground, however.