Wednesday, July 20, 2011

The State of the Nook

I've already mentioned how I think the B&N Nook Color is the best, most cost efficient tablet out there right now. At under $200 (if you get a brand new one on eBay, or even a factory refurbished one), you get a device that can run Android 2.3 (Gingerbread) remarkably well, and even a hacked version of Honeycomb.

What I want to describe in this post is the further steps you can take to get more out of your Nook.

Step 1: get a better ROM
Whatever phone or tablet you get, you can safely assume the OS installation (commonly known as ROM) you got with it contains some stuff that you could do without. Whether it's stock applications that your mobile provider tries to push on you, or some OS features that they locked out "for your own good".

For Android, there's no better alternative ROM then CyanogenMod. Not only does it free your Android, it also add extra features like themes, CPU overclocking and various widgets. It's supported on almost 30 devices (find out if yours is on the list) and installed with the aid of a micro SD card, that all devices support. It does requires some expertise to install, but the site contains step-by-step guides.

I came across Maurice Mongeon's blog, dedicated to improving your Nook. This particular post discusses how to deploy a CM nightly build and he has several other helpful ones, including instructions on how to restore your Nook to its original state (nice if you intend to return or resell it). Not only is the blog helpful, but Maurice helped me to fix some issues and even recommended some great apps to get more out of the Nook. Thanks Maurice!

Step 2: get some apps
Here's a list of apps I currently have on my Nook, all of which you can get from the Android Market (with the exception of Netflix, see note below).
1. Utilities
    1. ES File Explorer - best file manager
    2. Gemini app - task manager
    3. Gemini Task killer widget - cleans memory with 1 click
    4. Dropbox
    5. PocketCloud - VNC client
    6. Terminal Emulator - terminal into Android
    7. ConnectBot - SSH client
    8. Titanium Backup - backup all your apps and settings
    9. Wifi Analyzer - find the strongest signal
    10. Speed Test - test Wifi connection speed
    11. Shark - network sniffer
    12. Keepass Android - password vault
    13. Hacker Keyboard - full keyboard, with all special keys and TAB
    14. Battery widget - see battery % on main screen
2. Hacks
    1. ROM Manager - install new ROMs
    2. Battery Caliberation - calibrate battery after ROM installation
    3. Nook Screen Recalibrate - after every ROM installation
    4. Nook tweaks - speed, audio and USB host
    5. ClockSync - atomic clock synch for WiFi
3. Media
    1. CNN
    2. Aldico - multiple format book reader
    3. ACV - best comic book reader out there
    4. Nook - well, you did buy a Nook :)
    5. Kindle - Amazon's book app
    6. Evernote - share notes across devices
    7. MoboPlayer - media player
    8. Pandora - music service
    9. Tunein radio - bettr than an FM receiver
    10. HD wallpaper - get a new one every day
    11. Netflix - stream movies from Netflix
    12. IMDB
    13. Youtube
    14. Amazon MP3
4. Social and shopping
    1. LinkedIn
    2. Gh4a
    3. Google+
    4. Twitter
    5. Meetup
    6. WootWatch
    7. Amazon
    8. eBay
    9. NewEgg
    10. Wiki Encycloopedia


To use Netflix on your Nook, follow these easy steps:
  1. Download the app "Nook Color Odds and Ends"
  2. Select EMMC>fix netflix and reboot the device.
    This basically will change the device name in you Nook's props file to a device Netflix supports
  3. Download the Netflix apk (currently 1.2.2 - search for newer ones)
  4. Run it and log in
  5.  If you like doing things manually, or understand how things work, read this article.
Step 3: get some hardware
Like all other tablets, the Nook is great for consuming media, less so for producing media. Well, not anymore.

App #4 on the "Hacking" apps list allows you to turn on "USB Host" mode. What it means is that with the help of a simple USB plug (less than $3 on Amazon), you can connect any USB device (keyboards, mice, cameras) to your Nook.

I already had an HP wireless media keyboard (got it for less than $20 3 months ago). It has a built in mouse, a tiny USB connector and several multimedia shortcut keys.

Finally I got a tablet stand to prop up my Nook - and Tada! Instant mini laptop.
The Android OS supports keyboards and mice easily, and even some of the multimedia keys (volume, start/stop) work in some of the apps.
This album contains photos of all pieces of hardware mentioned.

I actually managed to write this post in the Android Blogger app on the Nook, and upload photos from my phone. My favorite use for the Nook right now is taking notes at meetups and classes directly into Evernote. I can always access and edit them later on my laptop.

Thursday, July 7, 2011

East Coast Android

The last 3 weeks I went back on the road for some family visits. I did manage to squeeze some tech in the form of my “new” Android phone.
[in this post, clicking a photo will take you to the full album]

I started by flying out to Montreal. I lucked out and got there while they were having one of those perfect summer weeks. I had an amazing day at the farmers market, and the park, watching a group of Brazilian drummers and an encounter with a raccoon who just didn’t take no for an answer.



From there, we drove down to NY, spent the night and continued to Stamford, CT for a big family gathering. I saw some relatives from all over the US I haven’t seen in years. Fun was had by all.

At that point in time I bought an Android phone on eBay. My small Comet was running through its battery to fast and it’s screen was a bit too small to get the full Android experience. I also became a bit disenfranchised with the virtual keyboard (even when it uses Swype – which is a step in the right direction) and started yearning for my Blackberry real keyboard days.


I therefore opted for the T-Mobile G2 (also known as the HTC Desire), that has both virtual and physical keyboards. It also supports the T-Mobile 4G network, that worked great for me throughout the trip. I got it for $220 and T-Mobile immediately unlocked it for me, so it can be used worldwide.
g2
I actually left AT&T after being with them since 2004 because they wouldn’t unlock an Android phone and actually had some of the stock Android options (like applications source – needed for private and Amazon apps, and tethering) locked out in their ROM. I mean, if I buy a phone, I get to decide what it can or can’t do, not a network. So goodbye AT&T – call me back when you’ve bought a clue.

I’m glad to report the transfer was quick and painless – I got to keep my number, my Google Voice was oblivious to the change, and I even got a refund from AT&T – they sent me a check for $1.83 Smile.

So when I hit those hotels along the way with a verrrry slow internet connection (I’m talking to you, Hilton hotels – all of you in the US. The ones in London have such high speed, I’d like to live in them permanentlySmile), I pulled out my G2 and used it as a wireless hotspot (make sure you sign for the “unlimited” package first). Speed was 3-5Gbit, and I managed to watch Netflix files on the device as well.

The battery runs out fast when streaming and the solution I found was to spend $11 on a 3500mAh battery at DealExtreme (free shipping). Yes, it makes the phone more cumbersome, but at more than 2.5 times the original battery, you can do more and recharge your phone once every 3 days.

One pet peeve I have with Android’s way of treating batteries (other than the way it drains them quickly with all those needless services running in the background), is the power alerts. Android issues an alert at 20%, 10%, 15% and 5% of power, finally starting a shutdown at around 3%. The problem is: it does it by percentages, not actual left power. Case in point: with the original 1300 mAh battery, a 10% alert means you have less than 130 mAh left. But with the 3500 mAh one, you still have 350 mAh left, which is almost 30% of the original. And 3% of 3500 should still be enough for several more hours. Just one more way statistics are lying to us.

From Stamford we continued to a weekend in Boston. Sadly, we got rained in for most of it, but we did get to tour the Boston Commons and the downtown area. Since it was the day before the final Stanley Cup game between Boston and Vancouver, all the statues were dressed with Bruins jerseys.I wonder what would George Washington say about this Smile



From there we continued to Cambridge and got a tour of Harvard from an old friend who studies there. There’s a tradition kept by tourists, that if you touch the left shoe of John Harvard’s statue, you get accepted to Harvard.



This tradition, according to my host, has 3 main flows:
  1. John Harvard was not the founder of Harvard’s university – it existed several years before he arrived
  2. This statue is not of John Harvard – no one know what he looks like so the artists just improvised
  3. The fraternity kids tend to tank up on beer, piss on the left shoe of the statue and stand in the windows laughing their asses off as tourists touch the shoe
So all in all, another tourist trap – literally Smile.

From Boston, we continued back south to NY, with one night stop at Hartford (another slow networked Hilton – for shame). After a brief visit with my sister, I flew back to SFO, utilizing some of my Continental points to boot myself to first class on a United flight. This was one of those 3-class flights, so 1st just made me want to stay on the plane and continue to Australia.

And to end this post on a celebratory note, I attended the 4th of July concert at Shoreline Amphitheater for the 3rd year in a row. It was nice as always, this being the 100th year of the SF Symphony, who performed well. I took some shots of the fireworks and 2 videos, one of Jon Miller, the SF Giants anchor, performing the poem “Casey at the bat” and the other of the E.T. theme by John Williams. Several hours later I got an email from youtube notifying me I may be violating copyrights. So, hopefully the videos are still there.

Tuesday, June 28, 2011

36 Hours at the Hackathon

imageLast weekend I took part in the Muther of all Hackathons at the Computer History Museum in Mountain View. The goal was to come up with a new mobile app within 24 hours. The apps are then judged in several categories and awarded prizes by the sponsors. They apps can be useful, novel, look nice, or just promote a certain sponsor’s pet technology, to win.

I got to CHM at 8:30am Friday morning with no idea what will I be doing next. I sat through several sessions on the state of the mobile industry, the various mobile platforms and their disparity and various predictions that Android and Windows Phone 7 will drink Apple’s iOS milkshake by 2015.

But the real fun started after lunch: people divided into 2 groups: people with app ideas looking for developers for their team, and developers looking for a team to join. Every team could consist of no more than 4 people, serving as developers, designers, or product managers – often all at the same time.
I had several app ideas, but decided to shelve them and added my name to the 2nd list. That’s how I found Mark. Mark is a volunteer firefighting pilot and he had an idea about an app that will warn people about their proximity to wildfires and allow them to communicate with each other and with firs responders. The app was itched as a not-for-profit app, with the sole purpose of saving lives. I was sold immediately.

I met Le, who already helped Mark win an earlier Android competition. We went over the available app categories and decided to develop a cross-platform mobile app and enter in as many we could. This entire hackathon was promoting mobile web development, as a mean to bridge the platform disparity gap. We decided to use PhoneGap as our main library, with jQuery and jQuery Mobile as the UI layer.

We found a corner, opened our laptops and started writing code.
We still needed a UI/UX designer. Those were snatched up fast all around us, but we were lucky and managed to get Marco on our team. He immediately set to work building a UI that will be clear, simple, work on all platforms, but most importantly, be useable to a person who sees fire approaching him. Team DisasterRadio was complete.

Team DisasterRadio at CHM
From right: Mark, MArco, Le and me at the CHM Hall of Fellows
We ran into multiple issues and problems throughout the night: this web solution is still young, and most libraries we used were in either alpha or beta stages. Internet forums are full of bug reports similar to the ones we encountered. But we had a race against the clock, so we cut corners.

Some of our issues were not technological: since our app shows data from a real time feed of fire reports, we had to make sure we can show a real live fire. Since fire conditions changed every several hours, we “froze” a fire into our demo. We took one of the real fires that raged in Arizona, dubbed “Wallow Fire” and saved its data to our server. And while our application uses geo-location to locate the user and fires around him, there were no fire around Mountain View, so we set our demo user in the town of Springerville, AZ – several miles north of the Wallow fire.

Our app allows the user to communicate with people around him through twitter, by using the fire’s name as a hash tag. We assumed that the first person to twit about the fire would create that hash tag and we played with it a bit. But we soon realized fires already have names and tags assigned to them by the fire department, so all the test twits using hash tag #wallowfire went into the real feed of actual people and firefighters around the fire. We stopped that immediately and faked our twits on top of the live twit feed in the app.

We worked all night, stopping once in a while to push coffee and Red Bull into our systems. The only thing I deeply regretted was not bringing a long-sleeved shirt – it got so cold later. The great hall was peppered with small air mattresses, and some people took turns at grabbing a few hours of sleep. But I reasoned that if I take 3-4 hours of sleep, I’ll be even more tired when I get up, so I decided to power through. And I wasn’t alone. The team worked hard all night and when dawn rose, we had a working prototype, with a final design.

wildfire screens

We spent the rest of the morning making sure that the app worked well on an iPhone, an iPod an Android phone and finally, on an HP WebOS TouchPad, that the HP team was kind enough to loan us. We also compiled our app to work with appMobi – a cloud solution for cross-platform mobile development. At this point, we started faltering a bit. Due to tiredness, pressure and inherent issues in the technologies, we ran into issues, regressions and at one time, I merged a file wrong and went back a version. But we kept our eye on the prize (and the other on the clock) and at noon o Saturday, we nearly achieved our goal.

Our last snag, occurring few minutes before noon (the official deadline), was that the TouchPad stopped showing the map. I rushed to the HP expert table and the very helpful dude confirmed they have had problems displaying Google maps and suggested some solutions. We had no time to implement those, so we just took a screenshot of our map and pasted it in WebOS Smile.
There were a couple of presentations after lunch, but frankly, no one was listening. People who had been hacking through the night struggled to stay awake and practiced their presentations. The random order put us 2nd in line to demo. There were supposed to be 45 demoed apps.

Our demo went without a hitch. We had 2 minutes to pitch and we used them fully. We demoed Wildfire on 5 devices at the same time: iPhone, Android, iPod, TouchPad and as a web site on my Mac. All in all, being a recent arrival to the mobile app development arena, I couldn’t believe we accomplished all of this in 24 hours.
Wildfire demo
Demoing the app

We sat through the rest of the demos. Some people decided to present more than one app, and we got 60 demos instead of the 45 scheduled. The judges became lax with the rules: some people took muuuch longer than the allotted 2 minutes per pitch. Some didn’t have their app ready and just used PowerPoint slides – a big no-no. Some just came from home with a readymade app (a pair of developers that demoed an app – I shall not name it here) actually demoed the same app 2 weeks before at an Android app meetup. Basically, at that point I could have whipped out armodello and demoed it, competing for an augmented reality prize, if I wanted.
Team DisasterRadio after our presentation
Waiting for the judges

At around 5pm, after 33 sleepless hours, the demos ended and the judges took some time to render their decisions. We all sat together, waiting for each judge to pick his best 3 candidates.
We won 2nd place from HP (we each got a new Veer 4G phone and a Dr. Dre Beats Studio headphones) and a 2nd place from appMobi ($250 for the team). Joe from appMobi actually whipped out a wad of bills and paid everyone on the spot.
Team DisasterRadio winning the appMobi prize
Winning appMobi prize. Joe holding cash

The grand winner was Air Guitar Move – an app that uses a unique piece of hardware, shaped like a guitar pick, to turn your iPhone into an air guitar. I have to admit, it is a very cool app and I enjoyed playing with it during one of the breaks. And it certainly was the most exciting one shown, but (you knew there was a but coming), it was definitely not built during the night or on premises.

Winners
Winners of Muther - group shot

I finally left at around 6:30pm and managed the drive home on sheer adrenaline. I hit my bed like a sack of potatoes at 8pm on Saturday – 36 hours after the weekend started. Haven’t done that for a while. Still, it was a great fun. I was taken back to my university days of finishing a project the night before it was due, and my army days, when we hacked at night and fixed really big problems, consuming coffee and stale cookies to stay awake (my record then was 48 hours straight).

And I learned that even though I progressed to “management”, I still “had it” – I can sit down in front of a blank screen, with a ticking clock, and deliver a working solution. And even though I’ve been working on my own for several years now, I still enjoyed working with a team, especially one so talented.

I would like to thank Mark, Le and Marco for turning this weekend into a great experience and I’d very much love to build a for-profit app with you all - any time.
Also, thanks to Tony from appMobi for jumping in at the last minute to assist with some issues we’ve encountered. And thanks to Caroline and Carlo from WIP for putting this even together. Caroline said the next such event will take place in Brazil. Hmm, haven’t been there yet…

For more shots from Muther, go to my album, or fitml’s flickr.
Also, here’s a review of the entire event on WAPReview.

Friday, May 27, 2011

All Over the Place

NOOKcolor screenIt has been more tech than travel over the last couple of weeks. The only 2 (paying) projects I’ve been working on were research related (i.e., can be completed from home). That left me plenty of time to learn new technologies, play with new toys and go to several meetups to keep current with latest trends.
A technology consultant is like a shark – he can’t stop swimming, lest he drowns. In my case, it means constant learning. I’ve long been of the opinion that you cannot know “enough”. The more you learn, the more times you can answer “yes” to the question “have you heard/used technology X?”. Over the last 2 years, I found myself replying with either an outright “yes” or with “no, but give me a day and ask again”.
With that in mind, and in no particular order, the last few weeks have been spent learning:
  1. Node.js – a new JavaScript server side technology
  2. Netduino + electronics (see my Code Blog for some samples)
  3. New version of armodello – coming soon!
  4. Pachube – I have a feed that shows the light conditions and temperature in my kitchen in real time. More on this (including code) soon
  5. Android development
  6. iPhone development
  7. Developing for the MS Kinect
  8. Test-driven development – learn how to write tests for your code, before writing your code
  9. A new version of Ubuntu – install and play
  10. PhoneGap – a cross device HTML5 development environment
  11. Bringing together 5, 6 and 10 to develop an app that runs on both Android and iPhone, showing your geo-location info, based on your external IP
  12. Android rooting/customizing – if you own ANY Android device, pay a visit to CyanogenMod to see whether a ROM exists for it
The nice side of doing so many things at once: you never get bored. If you’ve been staring at that Objective-C file for an hour, just jump to that JS file, or connect another resistor to your Netduino’s light sensor. The bad part is loss of focus: I have 3-4 projects I work on at once, and they’re all creeping foreword at about the same pace.
And then there are the toys: Other than my shining Netduino Plus board, and tons of electronic components needed to complete projects (and a solder, and some tools, and a box and…), I also got what I think is one of the best tablets you’ve never heard of: the Nook Color.
The Nook Color was introduced by Barnes & Noble to compete with Amazon’s Kindle. However, somewhere along the way someone gave it specs that rival current generation Android phones: 800Mhz CPU, nice GPU, 8GB onboard memory, 7” IPS screen (that is not as reflective as my new mirror aka iPad), bootable micro SD card slot and finally, Android 2.2 (Froyo). BN sells it for $249+tax, but you can easily get a new one for ~$200 off eBay, or a used one for $180.
The problem is: having been designed to be just a book reader, the Nook is locked into this nice, dumbed down interface that allows you to read books from BN, read PDFs, and buy the 8 apps BN allows in its “store”. Which is great for people who just want to read books, but is boring for people like me.
What the bootable SD card slot allows you to do is boot the device into an alternate OS. For example, Android 2.3 (Gingerbread) or even the newest version 3.0 (Honeycomb). And you can choose whether to keep your device’s ROM (skin) intact, or deploy a new ROM on top of it. You can find clear step-by-step instructions on this great blog.
I played with the dual boot Honeycomb option for a while, and then after backing up the original ROM, I deployed a Gingerbread ROM. Basically, I can now install any Android application I want: games (Angry Birds anyone?), browsers (FF5 beta is my current favorite), multimedia apps and book readers. I use 4 readers:
  1. nook – the BN nook for Android gives you (almost) the same experience as the one in the original ROM. Only now it’s an app – not the whole device
  2. Kindle – read your favorite free and paid Kindle books – on the nook!
    I bet the following screenshot gets people from both Amazon and BN totally mad: the 2 reading apps, side by side on one device Smile

    2. book readers
  3. ACV – a comics book viewer
  4. Aldiko – allows you to read everything else: ePub, PDF, mobi – you name it, you can read it
I also have Google books installed, but I never bought, nor will I buy a book from them.
My current favorite multimedia apps are Amazon MP3 – allowing you to stream your music from your Amazon CloudDrive and buy music on the spot, and TuneIn Radio, which allows you to listen to radio stations from around the world. Oh, and if I haven’t mentioned already, the Nook can play almost all video formats, and it’s screen, while a bit smallish, is great on airplanes.
Here are some more screenshots from my Gingerbread NookColor.
In short, what I learned over the last couple of weeks is that off-the-shelf products are a good starting point: you can root your Android, jailbreak your iPhone, reverse engineer your electronics and skip a web server deployment for a Node.js.
But most importantly, you should keep on reading, trying and testing everything that comes your way. What you’ll learn along the way is how to learn – and that is a lesson worth your time and efforts.

Monday, May 2, 2011

Announcement: New Code Blog

I'm glad to announce a new blog: Traveling Tech Guy Code blog.

In this blog I'll describe my new projects, the new technologies and paradigms I'm testing, and post samples, videos and code of my current and past projects.

The 2 main reasons for moving that information to a new blog are:
  1. Some of the info is way too technical for my blog. I really want to go deep into code, and this blog is still more about experiences and opinions
  2. I've gotten to a point where I'm doing way too much at the same time; right now I'm knee deep into v2 of armodello, learning Android development, working on a Netduino project and on a brand new stealth idea I'm hoping to turn into a startup (know a good Biz. Dev./Product Manager? I suck at the business side of things). This blog would allow me to document my projects, keep my key code snippets in one place, and maybe serve as a sort of a portfolio for future jobs.
So, if you're interested in software development, if code and technologies don't scare you, or if you just want to see what am I up to lately, head over to my new blog. Comments appreciated.