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

Caveats:

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!

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).

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 :/.

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).

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.

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.

i admit it – my first 4 or 5 days with Android i simply could not understand how to use the ListView and the related Adapter classes. i kept having to add 1 or 2 levels of containers between my data and the list view, and kept thinking, “certainly this is not intended to be so painful!” Finally, after hours of reading through example after example demonstrating SimpleAdapter and friends, i came across a comment post somewhere (now lost) which demonstrated a very simple anonymous subclass of BaseAdapter (far simpler than the jumping-through-hoops demonstrated by most examples i had seen). The following demonstrates a real live function (not a contrived example) which demonstrates how to use the ListAdapter: