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.