Sunday, May 29, 2011

Netflix and Amazon instant indie films: my top picks

I keep stumbling on great indie films on Netflix and Amazon's video on demand services, and though I've mentioned a few of them here before, I think it's worth recapping the best of the last few years:

Monsters
Netflix: Instant Queue
Amazon: VoD Rent, Buy

Monsters is hard to pin down, and it's definitely the sort of film which many will be disappointed with because they walk in with the wrong expectations. Let's clear it up right away: there are giant, alien monsters in this movie, but it's not a giant monster movie. Ultimately, it's closer to a wartime travelogue than anything else. Our heroes are trapped in Central America some time after Mexico and parts of Central America are overrun by an alien infestation, accidentally returned from space by a NASA probe. The aliens appear briefly from time to time, but for the most part are just there to provide the motive force that keeps our heroes moving. The question the film silently asks is: who are the monsters and to whom? An excellent movie I'm happy to recommend.

(more after the break)

Friday, May 20, 2011

Building an Android App Development Workstation

I've recently started doing Android App development. It's actually not trivial to get started, and I hit a number of difficult roadblocks along the way. I started off by thinking long and hard about OS. I'm a Linux guy at heart, and Android is Linux-based, so a Linux system seemed the right choice, but I didn't want to have to have two desktops, and in my spare time I also play Windows-based games, so in the end I decided on Windows with a Linux virtual machine.

Next up was my choice of hardware. I already have a good keyboard, mouse and display, so I only needed the box. Along the left, I've linked the Titanium Gamer AMTI7013 which is roughly the same hardware that I bought (though I got mine at MicroCenter). This has the Sandy Bridge-based i5 2500K. The system I picked up had more RAM, so you might want to explore picking up some extra if you buy that box.

My primary performance concern was the Android emulator. It's slow and greedy, so I wanted plenty of RAM and at least 2 if not 4 cores so that it would be guaranteed plenty of dedicated instruction pipeline.

Having picked the hardware, I needed software. It's amazing how much software you have to install to get going. I started with the Android Development Tools (ADT) installation guide. But in the end, I had to install all of this (I'll describe this for the Windows setup, since I'm not running the emulator under Linux):

Optional components that I found useful included:

A few tips on getting things installed: make sure that you create a new directory that's separate from everything else (I made it C:\Dev) to put all of the downloaded items in. It's important that you not place Eclipse into existing system areas, since it doesn't always play nicely with the Windows file protection model.

Some notes about your app. You're going to need to sign it eventually, so you might as well get that out of the way when you're still in the "hello world" stage of development. To save a signed APK, just right-click on the top-level project name under the "Package Explorer" in Eclipse and select "Android Tools -> Export signed application package..." Once you've done this, you can use that key that you created for lots of useful purposes, not the least of which is to interact with Google APIs for services like Calendar and Maps. For example, there's a document that Goolge provides on extracting the md5 signature of the key and using it for access to the Maps API. To do that, you'll need the keytool program that came with Java SE, and can be found in that package's "bin" directory.

I'll continue to post more as I learn and get my first application up on the app market. Enjoy!