Log in

No longer maintained

February 25th, 2017 by

Hi, all,

since late 2014 a “protruded disc” in my back has partially disabled my left hand and reduced my programming ability to very near zero. Thus all but a very small number of my open source projects are now unmaintained (and the “maintained” ones only get patches for problems reported by users).

This blog, initially intended for posting about Android development, is no longer maintained.

If anyone would like to take over the source code for HGR, it is available at:


—– stephan beal

HGR v20130921 released

September 21st, 2013 by


A new HGR is upon us. As always, it can be downloaded for free (and ad-free) from Google Play:


The changes for the past couple of days include:

- Minor layout improvements. Load/Delete are now only enabled if there is something to load/delete.

- Minor robustness improvements when applying changes causes an exception.

- Minor improvements in German translations.

- Added a basic toolbar. It is off by default but can be toggled via the menu.

- Added rudimentary mechanism for removing saved grid profiles.
- Added menu option which shows the export path.


Have fun!

—– stephan beal

Tip of the day: Amazon App Store from outside the U.S.

October 27th, 2012 by

Only yesterday i discovered that even though i live in Germany, where i cannot content from amazon.com, i can still buy Android apps (legitimately) from amazon.com by using their App Store application. Why would one want to do that when the Google Play store has such a rich selection of apps? Because Amazon has some which Play does not, for example the Aralon RPG.

Instructions for installing the Amazon App Store app are here: English or German


  • The Amazon App Store is (from what i understand) only available in the US, UK, France, Italy, Spain, and Germany.
  • The Amazon App Store app is dog slow, especially on my tablet (it’s a bit faster on my phone, with half the number of CPUs).
  • Its structure makes it difficult to browse through the long list of apps. It’s much easier to browse them on a desktop machine and then search (by name) for the ones you want via the Android app.
  • The download mechanism does not tie in cleanly with the Android OS. Insofar as i can tell, the Amazon app must stay open while an app is downloading or else the download can get interrupted. When i downloaded Aralon it got interrupted about 80% of the way in and i had to start all over. It’s kind of like using old DOS programs for downloads: while its downloading, just stare at the screen and wait for it to finish. It also does not create shortcuts on the home screen after installation.
  • Many of the apps in this store are only available for various Kindle devices. Oh, well.
  • App prices sometimes differ between this store and Google Play – be sure to check both before buying!


Have fun!

—– stephan beal

How the HELL does one order a Nexus 7?

September 6th, 2012 by

Google Play has no way for me to report bugs there, so i’ll just bitch and moan here (that’s what a personal blog is for!)…

The past 48 hours i’ve tried repeatedly to order a Nexus 7 from Google Play and i get only a “sorry, technical error” message every time i click on the “check-out” button. i’ve tried 7 browsers (Dolphin and the stock browser on Jellybean, Firefox on Jellybean and Ubuntu 11.10, Chrome on Jellybean, ICS, Ubuntu 11.10 AND Ubuntu 12.04) on 4 different operating systems (ICS, Jellybean, Ubuntu 11.10 on i32, and Ubuntu 12.04 on x64), and every one of them either shows me the same error or just fails to do anything without any error (that’s you, Firefox for Android).


Order and Chaos Online: cocaine for computer RPG fans

September 3rd, 2012 by


Since this is supposed to be an Android blog, and i haven’t been doing much Android development lately, i figured i’d take a moment and post something (non-dev) Android-related…

Back in the late 90′s, when MMORPGs first game about, i never allowed myself to start playing them because i knew that i would quickly get addicted and they would ruin my life. (That, and i had only a 56kbit internet connection until 2004, making online play unfeasible.) A few weeks ago, however, there was a 99 cent sale for an app i’ve been eye-balling on the Google Market since i got my first Android device in November, 2011: Order and Chaos Online. At 99 cents i couldn’t resist… but now i almost wish i had. The past 3 weeks or so i’ve done little other than work, sleep, and play OaC. i don’t play it for the community or interaction with other players (i don’t belong to a guild and generally prefer to play alone!), but there is just something primordially satisfying about leading an overly-muscular avatar around the countryside smashing evil-doing bad guys of all sorts, collecting more and more loot and skills, and exploring a huge virtual world. Last week i had two days off of work and did little other than play that damned game (and leveled up some 25 times…).

OaC is a “freemium” game with a required subscription (anywhere from 50 to 99 cents per month, depending on whether one renews monthly or half-yearly), but a 6-month “trial membership” is included with the purchase of the game. In-game premium content can be purchased for real cash, but there is nothing there which requires expenditures other than the subscription. My avatar is currently almost maxed out in terms of levels (they have a cap of level 60), and i have purchased in-game content, but i could have gotten just as far (but taken a bit longer to do so) without having purchased any. In terms of pennies-per-hour, OaC offers a fantastic deal (with the option to spend as much as you like if you really feel compelled to do so).

In the 3 weeks or so i’ve been playing it, OaC has easily become my most-CPU-time Android app, quite possibly more-so than all of my other apps combined (i say that with some degree of shame!). Just this (extended) weekend i ran my tablet through at least 5 chargings (and OaC is not at all the battery hog which so many high-performance apps are).

If you enjoy fantasy role playing games, OaC’s game world is huge, there are hundreds of quests, lots of people, tons of options, nice controls, and it’s just fun to play. And the subscription price is certainly fair (50 cents per month doesn’t even begin to cover Gameloft’s electricity costs for an active player).

A big tip for new players (i wish i had known this much earlier): don’t sell the various cloths/metals you collect along the way to normal merchants. Save them up and sell whole “stacks” of them in the Auction House in Greenmont (the first of several major cities you will encounter). One can easily accumulate a princely sum in a short time. i managed to collect somewhere around 400-500 gold (that’s a lot in this game) in about 3-4 (admittedly over-active) days of play. Unfortunately i didn’t know about that option until i had already been playing for 2 weeks (you, however, having read this, do not have that problem ;).

For other OaC players: i’m on the European server and my primary avatar is an Orc named Orchiböb (a.k.a. “bob”). i have a Guild Stone (the thing one uses to create a guild), but have not yet used it because i have yet to find a satisfying name for the guild (and, to be honest, have little interest in managing a micro-community, so it would likely be a 1-person guild). If you’ve got interesting ideas for a guild name, please drop them as comments to this post :). My initial choice, and still current favourite, is a quote from a monkey in the film Cloudy with a Chance of Meatballs: “Steeeeeve!”

Happy Hacking (and Slaying!)

PS: no, i am not in any way affiliated with OaC, nor did Gameloft (OaC’s publisher) sponsor this post! i just felt compelled to do something other than play OaC for a few minutes, and this post is the result :/.

Hex Grid Renderer 20120709 Released

July 9th, 2012 by

i’m at home with asthma problems today and finally got around to doing some touch-ups on HGR. Tweaks include:

  • Loading can now be undone.
  • Re-implemented the grid configuration UI using a preferences-style sub-activity (no more endless menus). Multiple changes can be made at once and undo treats them as a single change.
  • Replaced color selection lists with something prettier.
  • Removed “toggle buffering” option.

Have fun!

Fossilite: Fossil SCM Client

June 24th, 2012 by


Rather than re-type it all, here’s the link.

Happy Hacking!

—– stephan beal

Hex Grid Renderer v20120622 released

June 22nd, 2012 by


HGR v20120622 has been released. It fixes one force-close which could appear with wide-grain grids and certain combinations of width/height. It also replaces the color selection lists with something prettier (and more extendable later on).

Have fun!

—- stephan beal

Tip of the day: multiple droid devices and Google Latitude

June 22nd, 2012 by

Since a few weeks Google Latitude, which my ex and i use quite a bit to coordinate our shared dog-sitting responsibilities, has been acting a bit flaky, often showing me at home when i have not been at home, and unable to locate my ex at all (even though she’s logged in via her phone). At first i figured it was a Google-side glitch and would be resolved soon. A few days later i began to suspect that my mobile network carrier (which my ex had switched to at about the same time the problems started) had started blocking (or had otherwise broken) network-based geolocation. As the old song says, though, “it’s my own damned fault.”

A couple nights ago both my phone and tablet beeped simultaneously as a mail arrived, and then it hit me: my new tablet was also logged in, i had explicitly configured it to stay online even when in sleep mode, and… the problems with Latitude had started at about the time i got the tablet. Hmmm….

After reconfiguring the tablet to disable wifi when sleeping, Latitude can once again find me (i.e. my phone) as long as the tablet is not online (which it “shouldn’t be” unless i’m at home using it!).

The moral of the story is: don’t lie to Latitude and it won’t lie to you.

Happy Hacking!

—– stephan beal

Serialization 101 with JSON in Android

June 17th, 2012 by

JSON is a wonderful data format. It is lightweight, easy to use, and has a simple structure that closely matches data types and structures available in any full-featured programming language (implementations exist for several dozen programming languages). When i am not using libs11n for serialization, i use JSON.

This post is about getting started with JSON-based serialization in Java. What does “serialization” mean? It basically means “saving and loading,” but at a more abstract level than simply to/from files. Serialization has many uses, e.g. passing data between activities or services (e.g. GDrive or the clipboard). Why not use Java’s built-in serialization? It is fine for RPC and other forms of transient data, but its format is not guaranteed to stay stable across invocations, and is therefore completely unsuited for use in storing application data longer-term.