Ergodex BIY Keyboard
July 31, 2006
Another really clever keyboard. Whereas the Optimus keyboard allows you to quickly configure each key with a character or image, the Ergodex keyboard allows you to customize the placement of each key. Each key has a sticky backing, keys can be unstuck and moved, and macros can be recorded and assigned to each key. It doesn’t seem to have the same utility as the Optimus, but you could build yourself a truly custom gaming board with this.
Anyone not heard of Mobile Google Maps?
July 27, 2006
I haven’t seen this many similar posts since. . . the release of Google Pages.

Tips for Writing MIDP Applications, Part 2
July 26, 2006
Part 1 of this article discussed several higher-level tips for writing MIDP applications. In this part, I thought I’d delve a little more deeply into the weeds for some specific tips on using various controls in the MIDP toolkit.
Sign Your Application
See my earlier post about application signing. If at all possible, sign your application with a Verisign code-signing certificate. JavaVerified is even better,
but is not realistically achievable for many applications.
Eric Giguere’s new blog: J2ME Programming Guide
July 25, 2006
Eric Giguere launched a new blog — it looks like within the past several days — that you should check out if you’re interested in J2ME, err Java ME.
If you’ve been involved with Java ME for a short while, you’ve probably heard of Eric. He’s written two books on J2ME, and I’ve stumbled across countless articles and Tech Tips that he’s written. What I like most about his articles is that he presents some elegant solutions that are relevant and useful in your work. He doesn’t just regurgitate an API, but shows you how it can be used to perform real world tasks. If you’re familiar with Manning’s “In Action” series, you’ll understand the point.
I’ve built a provisioning system, an RMS data layer, a bluepulse widget, and a small MIDP application based on or inspired by some of his articles. I’m sure a healthy portion of the practices I use have stemmed from his writing in ways I don’t even consciously realize.
His blog is now at the top of my must read list. Check it out. I bet he makes you better at what you do!
Eric’s blog: J2ME Programming Guide
The Tipping Point
July 25, 2006
I generally don’t use this blog to post daily musings. And by
generally, I mean never. I didn’t even mention last week’s incident involving
cheese, bananas, and a Walmart checkout line. I have to break that code
of conduct; I suspect because I’ve reached the tipping point.
Do you remember the first time you saw the phrase “Building a better
-something- one -something- at a time? For instance, “Building a better
Web, One Client at a time.” Ugh. It was mildly clever the first time
you heard it. Maybe. The second time or third sightings didn’t sting
that much. Good taglines are hard to come by after all. Then you saw it
again and again. Years pass, and you’ve forgotten all about this
hideous phrase, until one day it blindsides you.
I never suspected to read this phrase again, yet, inexplicably, there it is. Someone didn’t get the memo.
Link: Career Builders Blog. Check out the fantastically cheesy, dated tagline.
As an aside, how would like to have the last name “Mediocre?” Ouch.
Tips for Writing MIDP Applications, Part 1
July 24, 2006
Several months ago, I wrote an article on creating bluepulse widgets. At the time, I put another article -– this one -– on my mental to-do list. There it languished, being pushed ever further down until I read this article from little springs design. It’s tongue-and-cheek, and contains some great tips for what not to do when writing a mobile application.
I wholeheartedly agree with the intent of each of the ten guidelines they mention, but I tend to view articles from the design perspective with a degree of trepidation. Full disclosure: yes, I’ve killed a back button or two in my day, and I continue to do so. The intent is always honorable, but execution of some well-meaning guidelines can get hairy. Nowhere is this more true than in the mobile space, where, despite standards, developers face a near-vertical incline when deploying to many handsets.
From a development perspective, here are several good practices for building mobile applications. This is not intended to be an exhaustive list. I should also point out that these guidelines apply specifically to the development of MIDP applications.
A Collection of Ajax / DHTML Toolkits
July 7, 2006
I’ve just started using another Ajax framework in a current project I’m working on. This one is known as SACK, the Simple AJAX Code-Kit. Its usage is very similar to zXml, but is better encapsulated, so it generally requires fewer lines of code on my part to accomplish the same thing, though with the corollary that some flexibility is lost.
It’s not an effects library, and doesn’t do many of the nifty things that other Ajax libraries do. It’s only intended to manage the details of connecting to a server, checking the response, and then forwarding execution back to you.
SACK is available via Twilight Universe, though it seems that things are being rearranged a bit at the moment.
All of these Ajax libraries are getting hard to track, so here is a list of several of the libraries that I use:
- Simple AJAX Code-Kit (SACK): see above
- zXml: similar to SACK; general purpose connection library
- AdvancedAJAX: add request batching, caching, connection retries, and more control via events to SACK or zXml and this is what you get. It’s more than twice the size at 17KB, but the extra features are handy. For example, you can use the events to display and clear a progress indicator, add messages, etc. You can do the same with the other libraries, as well, but AdvancedAJAX builds the support into the script.
- moo.fx: not strictly an Ajax library, but rather a lightweight, general-purpose JavaScript library. It’s handy, and when I get around to announcing the last project I was working on (Amazon OnTheGo widget porting to Java ME), you can check out two effects created with moo.fx: smooth scrolling pages, and an accordion-like effect.
- Google Web Toolkit (GWT): This has been in my “Review” folder for quite some time, but I have never used it. According to Google, you can write a client application in Java, and then use the GWT to convert it to JavaScript and HTML that is cross-browser compatible. There’s a learning curve on this one.
- Yahoo! User Interface Library (YUI): Not strictly Ajax, but a wealth of tools for DOM scripting, events, animations, drag and drop, Ajax connections, sliders, calendars, tooltips, panels, dialogs, auto-complete, treeview. Yes, there’s a lot of good stuff here.
- Prototype: the one library to rule them all. What doesn’t run on Prototype?
- Rico: the usual Ajax functions, plus drag and drop, animation effects, accordions, and LiveGrid.
- script.aculo.us: you can make some killer effects with this library, and it also includes a slider, auto-complete, drag and drop, and sortable lists (drag and drop variations).
- The X Library: another all-purpose library, but like Prototype, X is very mature and stable, and is of substantial assistance when working with the DOM or the browser event model.
- MochiKit: seems to be gaining in popularity, but I have never used it myself.
- dojo: an extensive widget-based framework. Dojo is heavy enough to be considered a full web development framework, and it has some seriously nifty containers and UI controls.
This list is not intended to be comprehensive; it’s just an overview of what I use, or have bookmarked in my browser for investigation.
Tags: JavaScript, web applications, web 2.0, Ajax
Location Based Services Post at MobHappy
July 3, 2006
If you’re not a regular reader of MobHappy, I’d encourage you to read a short post on LBS. Russell Buckley discusses a conversation he had with the folks at Openwave, and has some interesting statistics regarding LBS. Also read through the comments — some are spot on.
I find LBS to be the most compelling use of a mobile device, and therefore the most compelling area for development.



Recent Comments