JavaScript perversities

Just looking at Douglas Crockford’s “JavaScript: The Good Parts” once again. One of the definitely Not Good parts is the NaN value, supposedly standing for “Not a Number”.

Given that, what would you expect from typeof NaN? Probably not 'number'.

Even better:
NaN === NaN gives false
NaN !== NaN gives true
NaN is not equal to itself!

And best of all, for some reason NaN isn’t a constant, but a global variable. So if you want to change it to something else (e.g. NaN = 'fishcake') you can. Anyone who does should probably be shot, but the fact that it can be done at all is baffling.

My favourite Android apps

Thought I’d write a quick blog on some of the Android apps I’ve found most useful. I haven’t included any of the built-in apps here – obviously Gmail, Google Calendar, Maps etc. are great but you don’t really need me to tell you that! Also I’ve not included any games, maybe will do another post for them later.
I’m using a Samsung Galaxy S II with Ice Cream Sandwich, but all these apps should work perfectly well on most phones. Most are free, a few are paid but I consider them all excellent value.
  • aTimer – A simple concept (multiple simultaneous countdown timers) fantastically executed. The interface design is both beautiful and easy to use, and it comes in really handy for cooking.
  • BeyondPod – I’d experimented with podcasts on my PC a bit in the past but never really got into them, probably due to the annoyances of iTunes. I’d fire it up occasionally, but most of the time just wanted to avoid it, so hardly kept up with those I did try.
    It was quite a while after getting my first smartphone that I thought “hmmm… this could be used for podcasts”. (It was possibly the BBC’s excellent “In Our Time” that finally got me into it.) As it turned out, it became basically the killer app for my phone, and BeyondPod is the slickest one I’ve tried by far. Keeping up with podcasts is so easy, variable playback speed and support for audiobooks just seal the deal.
  • Catch That Bus – Just an incredibly useful app for finding live UK bus times. Good use of maps, plus the ability to set stops as favourites and even create shortcuts for them on the homescreen is handy.
  • GTasks – Task list with the crucial ingredient: seamless integration with Google Tasks. Also supports multiple lists, and has some nice looking widgets.
  • Minimalistic Text – A widget that does what it says on the tin. Simple but endlessly customisable text widgets for time/date, battery, weather and other things. Particularly great combined with Tasker (see below) as it can use variables set by that, and with Widget Locker.
  • Pomodroido – A bit niche, but this is a simple and brilliant timer for the Pomodoro Technique (http://www.pomodorotechnique.com/)
  • Screen Filter – For when the minimum screen brightness is still too bright, this just lets you dim the screen even more. Saves burning your eyes at night.
  • Spotify (beta) – There was no way Spotify was going to be on the list originally. The previous version of their app a buggy piece of crap, arguably the worst app I’d tried on Android – especially so as I was paying a monthly fee for Spotify Premium largely for the ability to use it on mobile. Confusing interface, constant crashes, and an even more annoying bug – it would sometimes start playing tracks completely unprompted!
    But the new beta version (not in the market yet, you have to get it from their website, linked above) is an immense improvement. Hasn’t crashed once on me yet, plus the interface is beautiful and fits right in with Ice Cream Sandwich. Also the options for higher quality streaming are nice. There are some features missing (main one for me is last.fm scrobbling), but these are minor and promised to be coming soon.
  • Tasker – If you haven’t come across Tasker, it’s an amazingly powerful app for automating your phone. For example if I’m at home (connected to home wi-fi) and it’s late at night, Tasker will switch my phone to silent mode and dim the screen (using Screen Filter). When I leave the house it automatically switches off wi-fi, until I turn it on again. The only issue I have, is that I’m not using it to anywhere near its full potential. There’s a subreddit with some more great examples.
  • Twitter – Some people swear by alternative Twitter clients, and personally I love Tweetdeck on the PC. However the official Android app works great for me, and looks nice too.
  • Unified Remote (free, full) – It’s a remote control for your PC that works over a wifi connection. Or more accurately it’s several remotes, covering a wide variety of programs as well as basic mouse and keyboard control. The VLC remote is my personal favourite. The whole package is nicely done, and surprisingly easy to set up.
  • Widget Locker – By far the app I use the most, because it entirely replaces the lockscreen. And it doesn’t even need root. As the name suggests you can add widgets (looks great with Minimalistic Text), but you can also choose different unlocking styles. One fantastic feature is that some styles allow you multiple unlock options, for example mine is set up so that swiping right unlocks normally, but swiping left jumps straight to the camera. I think this is now a standard feature in Android 4, but Widget Locker meant I could get it beforehand and it’s more customizable.
  • Winamp – It took a while to find a music player on Android that I was really happy with, and Winamp was it. It hasn’t seen many updates recently, and it seems the competition has greatly improved since, but it still does everything I want, and does it excellently. Plus if you use Winamp on the desktop like I do – wireless syncing!
  • Yaaic – IRC client, which often comes in handy for work. Nothing particularly fancy, but does it well.

Google Glass

Oh wow, so I haven’t blogged here in a long time. But this annoyed me and was too lengthy for twitter, so here we go…

Saw an intriguing tweet from Google’s corporate account earlier:

Project Glass: building tech to help you explore your world & put you back in the moment. We’d love your feedback: g.co/projectglass

No context about what it actually was (sigh 1), but sounded interesting and I guessed it would be some kind of augmented reality thing based on recent news stories so clicked through on my phone. Was taken through to a Google+ profile page (sigh 2), which read:

We think technology should work for you—to be there when you need it and get out of your way when you don’t.

We started Project Glass to build this kind of technology, one that helps you explore and share your world, putting you back in the moment.

Follow along as we share some of our ideas and stories. We’d love to hear yours, too.

Which again, told me basically nothing about the project (sigh 3). Clicked on the “Posts” link to see if that had more useful information. “Please sign in to Google+”. (Sigh 4)

Signed into Google+. Immediately taken back not to the Google Glass page, but to my home feed (sigh 5) populated by the few people I know who are still actually using Google+. There was however a helpful banner at the top of the page telling me I could download the Google+ app for Android. Which I already have (sigh 6), and which it should have opened in to start with to save the signing-in hassle.

So jumped back to Twitter, and clicked the link once again to get back where I was. Clicked on “Posts” and lo-and-behold, was able to read a single post:

We think technology should work for you—to be there when you need it and get out of your way when you don’t.

A group of us from Google[x] started Project Glass to build this kind of technology, one that helps you explore and share your world, putting you back in the moment. We’re sharing this information now because we want to start a conversation and learn from your valuable input. So we took a few design photos to show what this technology could look like and created a video to demonstrate what it might enable you to do.

Please follow along as we share some of our ideas and stories. We’d love to hear yours, too. What would you like to see from Project Glass?

Again, basically information free. (Sigh 7). Still clicked on the video, since Google are apparently no longer capable of explaining things with text, only with cutesy videos. And boy was this cutesy and hipstery. (Sigh 8).

But anyway, my point is: this is definitely something I’m interested in. I wanted to learn more about it. So why were so many roadblocks in my way? They even say it themselves: “technology should work for you—to be there when you need it and get out of your way when you don’t”, which is basically the exact opposite of my experience.

I do love Google, many of their tools are incredibly useful and they are still kings of search. But in my opinion they would be far better off fixing annoyances and doing a better job of explaining/marketing their existing products than constantly churning out new things. With an experience like this, there’s no way I’d want them in my eyes all day long.

Reddit – Doing it right

Over the past few weeks I’ve been spending more and more time at reddit.com. It’s a site I’d known about for a long time, but only through occasional links via it. I never had it in my favourites or made a habit of checking. Now I’ve delved a little deeper, and found it’s a remarkably nice community (well, actually a collection of separate communities, which is part of the attraction).

Things I really like:

  • The huge choice of sub-reddits, and how you can subscribe/unsubscribe to them for the front page
  • A remarkable self-policing community
  • A clean, simple interface
  • I switched off AdBlock Plus for reddit today, as I’d heard their ads were fairly unobtrusive and I want to support them. First thing I see? “Reddit would like to use this ad space to say: Thanks for not using AdBlock!” with a thumbs up from their cute alien logo. Clever both technically and psychologically, it raised a smile (and prompted me to write this post) :)

Big Bang Theory

Watched an episode of The Big Bang Theory on the plane, but laughed harder at the episode description than anything else: “Sheldon atttempts to invent 3-player chess”. Because my housemate had been trying to do that just a couple of weeks earlier.

It really is the most inconsistent series. Some episodes are brilliantly funny with clever references. And some are just poor, with terrible “jokes” followed by a gale of canned laughter. Sadly this was one of the latter type.

Journey review

Just because.

Cambridge-Peterborough, Crosscountry
Fairly quiet, punctual. Nothing to complain about. Still think Cambridge station is being greedy by having 3 AMT coffee stands and should share them with less fortunate stations.

Peterborough-York, East Coast
Fast, quiet and on-time. Ridiculously huge amounts of legroom. Loads of power sockets. “Free Wi-Fi” did turn out to be free for only 15 minutes, after giving away all your personal details, and be slower than just using the intermittent 3G. But on the whole A++ would ride again.

York-Blackburn, Northern Rail
Absolutely rammed, especially after Leeds.

Blackburn-Darwen, Northern Rail
Late. Inexplicably swapped destinations with another Northern train arriving Blackburn at the same time, causing much confusion. Also fairly certain train was on fire. Well done Northern Rail.

Travel Promotion Act

Travelling to America soon, and I have to go through ESTA (Electronic System for Travel Authorization) to enter without a visa. Joy. I quote:

On March 4, 2010, President Obama signed into law the Travel Promotion Act (TPA) of 2009, Pub. L. No. 111-145. The Act directs the Secretary of Homeland Security to establish a fee for the use of the ESTA system, comprised of $10.00 for each VWP applicant receiving authorization to travel to the United States and $4.00 for the processing of the ESTA application.

Apparently the word “promotion” means something different in America.

Pink Floyd Fan’s Guide to Cambridge

Took a quick look at a Pink Floyd Fan’s Guide to Cambridge in a bookshop today, and there were some amusingly tenuous links.

  • Trinity College: Isaac Newton studied here, and also discovered the phenomenon illustrated on the cover of Dark Side of The Moon
  • The Regal: The Beatles played here. Syd Barrett bought a ticket, but never made it to the gig because he had an interview.

Review: Heart of Darkness

Heart of Darkness Heart of Darkness by Joseph Conrad

My rating: 1 of 5 stars

This is supposedly a classic novella, or short novel. Well it certainly felt short on plot, yet reading it seemed to drag on forever.

I’ve never given up on a book partway through, but this time it was incredibly tempting. The narrator’s prose is tedious and nothing of consequence seems to happen for ages (perhaps because he is constantly travelling with a fixed goal, and only meets other characters briefly). Only the fact that it was short encouraged me to plough on.

Fortunately later on it did pick up a tad. Actually my favourite part was the meeting between Marlow and Kurtz’s fiancée, something of an epilogue to the actual story.

However I still can’t understand why it’s regarded as a classic. Kurtz, the driving force of the story, exists mainly through reputation and other characters extolling him, rather than any of his actions. “Mr. Kurtz was the best agent he had, an exceptional man…” “I was then rather excited at the prospect of meeting Kurtz very soon…” “I was cut to the quick at the idea of having lost the inestimable privilege of listening to the gifted Kurtz…” It’s as if Conrad had never heard of ‘show, don’t tell’. Then inevitably, finally meeting Kurtz seems like a huge anti-climax. Nor did I find the supposed anti-colonial themes compelling. Perhaps when it was written they were more shocking, but the fact that colonialism was not all sweetness and light hardly qualifies as a revelation these days.

Oh and by the end if Conrad title-dropped the words “heart” and “darkness” one more time I was quite ready to drop dead muttering “the horror! the horror!” myself.

Review: Masters of Doom

Masters of DoomMasters of Doom by David Kushner

My rating: 4 of 5 stars

I have to say first of all, what a fantastic choice of topic! It’s amazing what an influence ID have had in computer games and beyond, and I was delighted to find a book like this had been written.



And very well written it is too. Kushner has researched his topic in incredible depth, as is made clear from the author’s notes at the back of the book including how many people he interviewed. More than that he strings all the disparate details into a compelling story. Clearly the author is a fan of the two Johns and the other people involved, but he doesn’t shy away from presenting their flaws.



My only quibble is that there could be more detail in places, especially on Carmack’s significant technical achievements.