- http://meditation-helper.blogspot.com/2010/08/version-100-release-notes.html
- http://meditation-helper.blogspot.com/2010/08/using-widget.html
- http://meditation-helper.blogspot.com/2010/08/quick-tips-timer-screen.html
- http://meditation-helper.blogspot.com/2010/08/quick-tips-recording-extra-sittings.html
Tuesday, 17 August 2010
New Version of Meditation Helper
I've pushed out an update to my meditation timer today. Here are links to articles that cover the key functionality.
Labels:
android
Saturday, 14 August 2010
My First Android Application
I've just pushed the first version of my first Android application to the market:
http://meditation-helper.blogspot.com/2010/08/version-050-ugly-baby-release.html
It's a bit rough round the edges, but works pretty well. I've been using it every day for the last couple of months. I wonder if anyone will use it...
http://meditation-helper.blogspot.com/2010/08/version-050-ugly-baby-release.html
It's a bit rough round the edges, but works pretty well. I've been using it every day for the last couple of months. I wonder if anyone will use it...
Thursday, 12 August 2010
The Problem with Kindle
I refuse to voluntarily lock myself in to Amazon’s proprietary e-book format. If they release a version that also does e-pub, I may reconsider. Until then it’s “Yes” to Amazon tree-books, “No” to Amazon e-books.
Sunday, 1 August 2010
How I Improved My HTC Desire Battery Life
Reset Battery Stats
NB: This requires root access- Charge phone to 100%.
- Re-boot into Clockwork Mod recovery.
- Select Advanced --> Wipe Battery Stats
- Re-boot phone.
- Run phone until it runs out of battery.
WTF? Why is "Android System / OS" Eating My Battery??
Occasionally some kind of runaway process appears to take over my phone and make it lose battery power more quickly. It's either Android System, or Android OS which is apparently using the battery. I haven't been able to work out why this is happening, but I have stumbled upon a workaround. Yep, it's the IT Crowd workaround.
With CyanogenMod 6, re-booting is as simple as holding down the power button and selecting 'Reboot'. However, I'd far rather make the technology work for me, rather than make me a slave to the machine. So I installed 2 apps to enable me to automate a reboot every morning:
- AppAlarm Pro - there's a free version available, but I'd rather pay to support the developer.
- Quick Boot
I set up an alarm in AppAlarm pro which launches a shortcut to Quick Book / Reboot at 04:45 every morning.
Before doing that I had to switch 3G off to get through a full day. Now, even with 3G running, I have over 50% left at the end of the day, with battery drain of somewhere between 2 and 3% per hour on average.
Update 18th August: Just found a post on XDA developers forum about how to improve battery life. I might give this a try to see if it improves my battery life even more (it's already pretty good following the process from above). See http://forum.xda-developers.com/showthread.php?t=755903.
Labels:
android
Monday, 17 May 2010
I Know Global Variables are a Bad Idea...
...so why on earth did I use them in Sponge?! Well, there is a reason for that. Inexperience. Sponge is my first attempt at writing an application primarily in Clojure, and as such was a massive learning experience.
One of the design decisions I had to make early on was how to maintain state. I don't ever really need to consider this when programming in Java - I would have instance variables in an object somewhere. But with Clojure there are no objects. So where to put the state?
The decision that I made (and that I have been regretting all day today) was to create global references in the relevant namespaces. This had the advantage that I could easily access the current state from wherever I wanted in the code, and so it was one less level of organisation that I had to deal with. What could possibly go wrong?
Well, a colleague of mine requested the ability to run multiple sessions at once i.e. from the same Sponge GUI, launch different servers listening on different ports. That wasn't possible with a single global state. So, I have spent the whole of today going through the code adding a level of indirection. Instead of a single global state across multiple global variables, I am creating a single 'session' map which holds all the state. This is a hugely painful process that has taught me a valuable lesson:
Global variables in Clojure are as bad as global variables in any other language. Don't use them.
Labels:
Clojure,
Programming
Friday, 7 May 2010
The Joy of Clojure
I've just bought the early access edition of The Joy of Clojure using the checkout code "infoq35", as listed here. I've only read 16 pages and already I love it.
This seems like the ideal next book to read after Programming Clojure. Idiomatic Clojure here I come!
This seems like the ideal next book to read after Programming Clojure. Idiomatic Clojure here I come!
Labels:
Clojure
Friday, 30 April 2010
Operation "Bad Apple"
For a long time Apple didn't really impinge on my consciousness. Any time I tried to use a Mac I went away feeling frustrated. A child of the Windows age, I'd grown up to love Linux through Ubuntu, and the Mac just seemed too alien.
That all changed when I saw the video where Steve Jobs introduced the iPhone.
I knew as soon as I saw that video that I wanted an iPhone. I stood in a queue on the day the original was released. And then, when the 3G version came out, I queued again to upgrade to it. The iPhone acted as a gateway drug to the world of Apple. I couldn't bring myself to use Windows on a day to day basis, so went out and bought a Mac Mini. And then, having drunk the kool aid, I went out and bought a Mac Air. I'd turned from sceptic to true believer through the seductive wiles of the iPhone.
And for a while I was happy. I moved all my development at home to my Macs. My Ubuntu machine went into semi-retirement. The whole "Unix with a friendly interface" thing appealed.
But that's all gone now. When Apple sued HTC for patent violations, it confirmed my suspicion that I had backed the wrong team. And so Operation "Bad Apple" began. I am gradually ridding myself of the bad Apple stench. I have ordered a custom build PC on which I intend to install Ubuntu 10.04. I've ordered a Acer 1810TZ for my portable computing needs. And I already have a HTC Desire.
In my brave new world I will do all my development on Ubuntu, I will write apps for Android, and I will never buy another Apple product again. As far as I'm concerned, Apple are no longer a company for developers.
I'm switching sides.
That all changed when I saw the video where Steve Jobs introduced the iPhone.
I knew as soon as I saw that video that I wanted an iPhone. I stood in a queue on the day the original was released. And then, when the 3G version came out, I queued again to upgrade to it. The iPhone acted as a gateway drug to the world of Apple. I couldn't bring myself to use Windows on a day to day basis, so went out and bought a Mac Mini. And then, having drunk the kool aid, I went out and bought a Mac Air. I'd turned from sceptic to true believer through the seductive wiles of the iPhone.
And for a while I was happy. I moved all my development at home to my Macs. My Ubuntu machine went into semi-retirement. The whole "Unix with a friendly interface" thing appealed.
But that's all gone now. When Apple sued HTC for patent violations, it confirmed my suspicion that I had backed the wrong team. And so Operation "Bad Apple" began. I am gradually ridding myself of the bad Apple stench. I have ordered a custom build PC on which I intend to install Ubuntu 10.04. I've ordered a Acer 1810TZ for my portable computing needs. And I already have a HTC Desire.
In my brave new world I will do all my development on Ubuntu, I will write apps for Android, and I will never buy another Apple product again. As far as I'm concerned, Apple are no longer a company for developers.
I'm switching sides.