This weekend I bought and rooted a Nook Simple Touch. The reason? I’ve been looking for an eink platform that one could make astronomy applications and data available for. Eink is ideal for a hobby where stray light destroys your ability to see anything.
Where is Io on Nook Simple Touch
Having written an astronomy application (albeit one that needs a lot more polish) I pushed it over. There are a few rendering issues with the buttons (which completely confuses me), and the fact that there aren’t any real location services means rise / set times are completely off, bother are fixable in software. Computational speed seemed on par with my HTC Evo, which means this is something I can work with.
Sadly, both B&N and Amazon have equivalently limited imaginations when it comes to making Apps for their e-ink platforms (my Amazon knowledge comes from email exchanges with the Kindle team), and don’t see the other possibilties for e-ink.
Fortunately, B&N seem to be lacking on having a crack security team, so the Nook ST can be wedged open to an open platform pretty easily. I’ll be making Where is Io optimized to run on it, and look at what it would take to get Google Sky Maps over there (now that it is open sourced). And, I’ll hold out a small amount of hope, that B&N one day figures out it might be useful to provide this additional value to their customers. Based on email exchanges with Amazon, I’ve completely written them off.
Key Takeaway: don’t let your own limited imagination, and need for control prevent your creations from meeting their full potential.
Update: now that the Android Market finally activated, I pulled down a number of apps to see how they all worked. The Mobile Observatory UI is actually really useful on this size and type of UI, and I think is worth the price of the Nook Simple Touch even if you only decide to run it.
Last night I finally got time to re-setup eclipse after the Ubuntu upgrade and did a couple of quick fixes for Where is Io.
One includes making my ghetto math for the Diorama slightly less ghetto. It still needs future work, and still won’t work above the arctic circle, but Jupiter will show up at 6pm now, which it often wasn’t before.
The other is making it a fat binary. NDK 4 lets you build optimized libraries, so now I’m building Arm5 and Arm7 libraries for the planetary simulator. This means the application is bigger (it can be moved to SD if you care), and it should run faster on most of the phones that came out since Christmas.
It’s called version 2.1 and is available in the Google Marketplace, Archos’s AppsLib, and on github. I have no idea if things will work right on Archos, because location is important, so if you’ve got experience let me know. Enough local friends had been talking about Archos recently that I decided it was worth adding that to my distribution channels.
Things are going to be quiet here for a few days as I prep for 2 upcoming talks, both which are about aspects of Where is Io. The first of which is this Saturday at the Central PA Open Source Conference, which I’m about 2/3 of the way through creating that presentation. Here is the title slide:
The CPOSC presentation is about Android development, using Where is Io as a roadmap through some of the interesting parts of Android.
The second is coming up a week from today at the Mid Hudson Astronomical Association at SUNY New Paltz. It’s called “Tracking the Movement of the Heavens” and is about the math and astronomy behind Where is Io. There will be a little bit of content sharing between the two, but they’ll be quite different in many ways.
I’m really looking forward to both talks, especially now that I’ve got quite a bit of material and narrative for the first one nailed down, and a decent set of notes for the second one.
The last Where is Io release was a few weeks ago. That’s because I’ve been working through a new chunk of math that I’ll need for a few new features. One of the things I needed was rise and set times for Jupiter and the Sun, which quickly turned into all the planets (because it’s basically no additional work to fill it in for everything else).
The application is evolving in it’s own direction into a more general solar system almanac, which makes me wonder if a new name is going to be in order on the next release (probably called 2.0 because of so many changes). Name suggestions are welcomed.
Where is Io 1.3 has been released, and is available for free on the Android Market. Most of this release was behind the scenes refactoring, as I tried to get this into a shape where I could do useful animations. Being a good little agile minion I made sure there were some user visible enhancements for the release. There are only 2, but they should be useful:
- Time hash marks so you get a good idea of how far in the future I’m displaying
- The main screen will actually update over time (before it was just drawn on start or rotate)
I learned a heck of a lot about the Android state model; threading in Android; when certain threads like to stop and start relative to the state model; how much the Java thread signaling model leaves to be desired; the fact that google knows that, and created this really nice Handler infrastructure to do async message passing; and that it’s really important to have good utility functions when you are converting between 3 different time schemes.
I also broke down and learned how to use the Eclipse debugger on Android applications, as one of my bugs was just not finding its way to the surface (the afore mentioned time conversions). Holy crap. I am seriously impressed with how good and intuitive the integrated debugger is when it comes to Android apps. Nicely done folks.
The project has gotten me to appreciate Java again. Java was never my favorite environment, but with the support in eclipse, Google’s quite tight API set for Android, and emacs keybinding support, I’m now about 1/2 as productive in Java as I am in Ruby. That’s saying something, as previously that number would have been 10% or less.
Now that I’ve got the basic threading and signaling going in this application, I’m going to see about some animation on startup. Maybe I’ll even get that done in time for Frank’s Android talk on Wednesday.
In between cutting lumber for this set of shelves, I managed to push the Where is Io source code up onto github. The parts I wrote are under GPLv3, the parts that came from others are under their respective licenses.
The code is very rough. It was enough to get me minimally to a release. Lots of refactoring and optimizing required.
I just pushed Where is Io out to the Android market for the low low price of free. The application presents a “spirograph” view of the 4 large moons of Jupiter over the next 96 hours, including an indicator on the current position. There are details provided on each of the objects in the system. Jupiter is just starting to come up in the early mornings, so over the next few months it should be handy.
You can download it directly here:
Or check out the Where is Io page for more screen shots and information (screen shots skipped for this post, because I just put some up in the last post).
It will be a couple of weeks before the next release, as I’ve got a real world building project that has to get done, but rest assured this is just the beginning.