Tuesday, January 17, 2012

Two Weeks With the Galaxy Nexus

After having my Samsung Galaxy Nexus active for just over two weeks, I wanted to write a follow up on what I do and don't like about the device. Most of the following has already been discussed at length on various tech blogs and sites, but I wanted to offer my own personal opinion as well as a few things that may not have been mentioned.

Don't Like

Probably the number one complaint that you'll hear about the Verizon Samsung Galaxy Nexus is it's abysmal battery life. Unfortunately my experience has completely verified this, and while there are ways to make it last longer, compared to my OG Droid and other phones out there it really missed the mark. From my experience it is the 4G LTE that causes the biggest power draw, although form looking at my battery stats Android OS is usually the biggest consumer of power. It seems though Android 4.0.3 (phone is currently 4.0.2) is suppose to address these issues and hopefully it rolls out in an OTA update soon. Flipping over to CDMA only also improves battery life dramatically as many sources have already noted.

After using ICS it's almost impossible to go back to Gingerbread or Honeycomb. Probably the strangest thing is using my Honeycomb tablet which looks similar to ICS but then lacks many of the features I've started to get use to (application button, app folders, etc). The biggest complaint I have though is I randomly hit the soft keys more than I though I would. This usually happens when typing a text message out and I miss the space bar, instead hitting home or back. Thankfully most messages are auto-drafted and I don't lose any work, but it's still frustrating and interrupts the flow. I can't think of a better way to do this though other than practice, or maybe making the buttons have a larger gap between the soft keyboard.

Using the OD Droid QWERTY keyboard for the last two years really spoiled me on not having to use the soft-keyboard and it is probably the biggest feature I miss from my old phone. It wouldn't be that bad if it weren't for two things. First I seem to mistype very fifth letter, requiring me to correct a word or do a suggestion. This you can attribute to a newbie with a soft-keyboard though. The second, and this is definitely not a newbie thing, is the bug that happens when in landscape mode. If you turn the phone sideways and try to use the landscape keyboard, it becomes slower and slower the more you type in it. This is not just me, but a known bug that hopefully is addressed soon.

Random Locks and Reboots
The phone also likes to lock up and reboot randomly. It doesn't happen constantly, but sometimes I'll take it out of my pocket, fully expecting the normal fast and responsive UI, only to wonder why it's not turning on, and once even having to remove the battery to completely reset it after it froze. This seems more like a software issue as well which I'm crossing my fingers for a fix soon.

Charging Issues
In combination with the poor battery life, it seems it also occasionally with not charge correctly. I noticed this last week when plugging the phone it on my desk, walking away, then hearing the "disconnect" beep. Re-plugging it in seemed to work, only to beep when I was five feet away again. Repeat this dance about five times in a row and begin to realize if you have a bum device.

Poor Signal
LTE is amazing, but unfortunately doesn't always work, which also seems to affect 3G and just phone service in general. I can't count how many times I've seen no bars or tried to load up a page or make a call only to get the "No Connection" window, sometimes even having to reboot the device to get it to come back at all. The battery stats app shows LTE is constantly dropping in an out and there are long periods of "no connection" at all, especially in my house in San Diego. I attribute this to Verizons newer LTE network though and believe it's just growing pains. LTE is if I flat out fantastic when it does work and I've found for a reliable and solid connection flipping over to CDMA only does the trick.

Do Like

The camera is probably one of the best features of the phone, even though it lacks some of the higher resolution that other Android counterparts offer. The zero shutter lag is something I instantly became grateful for and it's good to know in less than 5 seconds I can have my phone out taking a photo where with other devices I'd still be waiting for the app to load. The time-lapse and panoramic features are a great addition as well and I've found myself experimenting with them in a variety of different ways. The built-in editing software is nice too, but I haven't had much experience with it yet.

This thing is fast. Opening apps is almost instant and I know when I pull it out (if it isn't frozen/crashed as mentioned above) I can do exactly what I want to do in record time.

So many things have been said about the screen it's hard to say much more. Surprisingly after comparing it to a HTC Rezound which is suppose to have a better screen the Nexus far outshines it.

Request Desktop Site
I know it's a small feature and most people will overlook it, but the "Request Desktop" feature baked into the web browser is great. Sure there are apps you can download to change the user-agent or use a different browser entirely, but having it two clicks away with no additional hassle is great. At first I didn't think I would use this feature that much, but I use it automatically now whenever a site puts up one of those limited "mobile" sites that hides most of the features.

Google Wallet
Sure Google Wallet it's officially supported on the phone, but that doesn't mean you can't install it still. After installing the modified apk I am now able to make purchases using a Google Pre-Paid card. It has an option for a Citi Mastercard, but since I don't really need another card I haven't set this up yet. I have used it a few times at CVS though and it's fun to see it pay just as fast a a credit card and make a nice charming beep when it's completed the transaction. I hope that more cards are supported soon and then I can start using it as my default payment device.

So after all these problems am I still glad I have a Galaxy Nexus? Heck yeah I am. There are times where I cannot put this phone down, sure the above are pet peeves and obvious bugs, but the overwhelming ability and functionality of the device more than make up for it. The good thing too is most of the issues listed above seem software related, and the bug reports listed with Google have a good amount of visibility. Once Verizon gets it's newer LTE network in order too this phone will be a juggernaut of Android phones in the next year.

Saturday, December 31, 2011

One Day With the Galaxy Nexus

Almost two years ago I traded in my LG flip phone for an original Motorola Droid. At the time I was blown away with how customization and responsive Android could be on a device that fit on my pocket. After a solid run of daily use, ~2G monthly bandwidth usage, and countless custom roms and hacks later it was finally time to retire it.

To find a suitable replacement I started making a checklist in my head of what I wanted in a new device:

  • Qualcomm Inside
  • Dual Core 1Ghz+ Processor
  • 1Gb+ Memory
  • Android Ice Cream Sandwich
  • NFC Capability
  • HD Screen
  • Verizon 4G LTE
  • Physical Keyboard
  • HDMI Out
  • Accessories (Car dock, media dock, etc)
  • Easy to root/mod

These all started to show up in devices in the fall of 2011 when Google had a streaming online event showcase their new Nexus device and release of Ice Cream Sandwich. Along with the Nexus two other phones made a debut, the Motorola Droid Razr and the HTC Rezound. After reading multiple reviews, release delays, and countless speculation I finally decided to get the Samsung Galaxy Nexus.

The Motorola Razr had many benefits going for it. The first is after owning a Droid and Xoom I have had hands on experience with the build quality and reliability with the type of hardware Motorola produces. The Gorilla glass and kevlar backing seemed like a perfect combination for a sturdy and solid phone. Also the Razr has many accessories that would compliment it and continue the daily conveniences that I was used to with the Droid such as a car and media dock. However the lack of a NFC chip and size of the phone (width, not depth since it is a extraordinarily thin) were playing against it.

The HTC Rezound on paper seemed like a winner, especially with all the high praise the screen was getting for being the best and highest definition. It also had the bonus of having a Qualcomm Snapdragon chip in it at 1.5Ghz, 300Mhz faster than the other two. The cameras also outclass the other devices. It too lacked the NFC chip though and unfortunately previous experience with a HTC Touch Pro left a bad taste in my mouth even years after I last used it.

Finally it came down to the Samsung Galaxy Nexus. While the other two phones had the advantage in processor and build quality he Nexus had the overwhelming advantage of being a "pure" Google phone and being built specifically for ICS. While the Razr and the Rezound will most likely get ICS in the near future, they will still have the hardware buttons reminding me every time I use it after the ICS upgrade that they are outdated and useless. The NFC chip was also a major factor, not because currently it's unused, but because in the next few years it will be more used. While Google Wallet may be blocked at the moment, because it is a Google device and rooting/hacking it is easier the limitation is almost moot.

After an adventure on getting the phone, since some retailers won't sell the device unlocked for full retail, or other stores were sold out. My fiance and I finally got on at Best Buy a few minutes before they closed. Since my phone plan is through my employer (hence the Qualcomm criteria above) activating it on LTE will have to wait until approvals go through to port the number and get a SIM card. 

After using it all night and this morning on our wireless-n network I can already say I love it. It's extremely responsive and the new additions in ICS such as the soft keys, folders, and familiarity of Gingerbread really make it a pleasure to use. Strangely with folders I really only use one home screen and only have the power bar widget on the other 4 screens.

Since the phone isn't on Verizons network at the moment it couldn't make or receive calls. Since I use Google Voice I knew there must be some way to use VOIP with my Google Voice number on the device over a data-only connection. After a bit of searching I stumbled on Talkatone which allows you to use Google Chat to use your Google Voice number from your phone (you can see the app stacked with the normal dialer in the lower left menu). It works extremely well, and I had a hour long conversation using it with no interruptions (except when I was trying to play with the app settings mid call and accidently closed it).

After setting up Talkatone I know basically have a fully functioning Galaxy Nexus and have already started to love it even after only about 12 hours of use. I was at first concerned about the battery life after reading a few reviews. But apparently most of that is software related and I'm assuming with a few more patches to ICS it should last just as long as my Droid does. It also covers all the bullets points I listed above with the exception of the physical keyboard (which are rare anyway). I also originally thought it couldn't do HDMI out either, but it can do MHL (Mobile High Definition Link) that has a HDMI converter to hook up.

Even though the Galaxy Nexus may not come out on top in some categories the combination of all it's features added up to be a winner and I'm extremely pleased with it as a replacement for my Droid.

Saturday, January 22, 2011

Vim, rdesktop, external monitors, and X Forwarding on a Google CR-48

While there are my other impressive hacks going around for the CR-48 (minecraft, ubuntu) I needed a few utilities that were more pragmatic. The following assumes that your CR-48 is in developer mode and you have a basic understanding of bash, scp, and compiling source code under GNU/Linux.


When I first went into the developer shell I saw approximately 1000 different binaries to run, but not one of them was a text editor. Eventually I stumbled upon qemacs, but we're just on a CR-48 not the middle ages. It was time to figure out how to get vim up and running.

Although ChromeOS is it's own GNU/Linux distro, it appears to mimic Debian/Ubuntu and is adhering somewhat to the LSB. I first just tried a straight copy of the vim binary from a Ubuntu 10.04 system but after some investigating with ldd saw it had a lot of shared libraries that weren't available on the CR-48 (most notably libselinux.so). So the quickest way to get around this was to build a static binary on a 32-bit Debian host (Ubuntu works as well).

On a 32-bit Debian Squeeze I downloaded latest VIM source code and built a static binary with a limited set of features and disabling GUI and selinux options:

USER@DEBIAN ~ $ wget ftp://ftp.vim.org/pub/vim/unix/vim-7.3.tar.bz2
USER@DEBIAN ~ $ tar -xvjf vim-7.3.tar.bz2
USER@DEBIAN ~ $ cd vim73
USER@DEBIAN ~ $ export LDFLAGS=-static
USER@DEBIAN ~ $ ./configure --with-features=small --disable-gui --with-vim-name=vi --disable-selinux
USER@DEBIAN ~ $ make

This will make a static binary called vi in the src directory. On the CR-48 in /home/chronos/user make a directory called bin and scp the vi binary to it.

Try and execute it, but you'll get a Permission Denied error because by default the /home/chronos/user directory is mounted with the noexec option. Fix this by remounting it with exec.

chronos@localhost ~ $ sudo mount -i -o remount,exec /home/chronos/user

Now the binary will run and you have a basic vi editor.


Rdesktop is much easier to put on the CR-48 since all of the libraries are available. From a 32-bit Debian/Ubuntu host, or by downloading the rdesktop i686 package from packages.debian.org, copy the rdesktop binary to the /home/chronos/user/bin directory. If it's mounted with exec then it will just run. Pass it whatever options you like, and it will open a new GUI window on the CR-48, completely independent of the Chrome UI and any shells.

chronos@localhost ~ $ ~/bin/rdesktop -u USERNAME -g 1280x800 -K -z -r clipboard:PRIMARYCLIPBOARD HOSTNAME

Copy/paste works well, although the arrow keys may not function properly due to the keymap not getting set correctly. This may be due to a libiconv issue and I'll need to spend some more time figuring it out.

External Monitors

While the CR-48 works just fine with it's VGA output without much tweaking, you'll either need to sign in/out or reboot the laptop for it to display to an external monitor. In dev mode xrandr is available making it easy to switch between display resolutions.

Mirror to a monitor that can do 1024x768:

chronos@localhost ~ $ xrandr --output LVDS1 --mode 1024x768 --output VGA1 --mode 1024x768

Turn off the external display and reset the CR-48 display back to the default 1280x800:

chronos@localhost ~ $ xrandr --output LVDS1 --mode 1280x800 --output VGA1 --off

X Forwarding

The simplest piece to enable is X-forwarding from a remote X client. Connect over ssh with the& -Y option and run any X applications:

chronos@localhost ~ $ ssh -Y USER@HOSTNAME

Bringing It All Together

Now that all the binaries are in place let's set it up so they work across reboots.

Edit /home/chronos/user/.bashrc with our new vi editor and append the following:

#Setup our environment
source ~/.bash_aliases

#Remount /home/chronos/user as exec so anything in ~/bin runs
sudo mount -i -o remount,exec /home/chronos/user

Create a /home/chronos/user/.bash_aliases and add in any aliases:

alias rdesktop-home='~/bin/rdesktop -g 1280x800 -u USER -K -z -r clipboard=PRIMARYCLIPBOARD HOSTNAME'
alias projon='xrandr --output LVDS1 --mode 1024x768 --output VGA1 --mode 1024x768'
alias projoff='xrandr --output LVDS1 --mode 1280x800 --output VGA1 --off'
alias ssh-host='ssh -Y USER@HOSTNAME'

Now you have a much more flexible environment to add your own aliases, functions, and binaries.

Wednesday, January 19, 2011

I Read A Lot Online

While working my way through Google Reader today I accidentally clicked the trends link on the left hand menu. I don't know if it just appeared recently or I just never noticed it before, but there's some interesting statistics there of items read, clicked, shared, etc. It even has friends stats for anyone you share or read items with through Reader. The stat that caught my eye though was total of items read since I started using Reader the end of 2005... almost 150,000... that's a big number.

Saturday, January 15, 2011

Hulu and Netflix on Android

Last night I was able to get my Droid to play Hulu and Netflix using the Playon server using UPnPlay and VPlayer. Unfortunately it's only over local wifi and it won't run over 3G, although the Playon team has made mention multiple times they are working on an Android app similar to the iPhone app that can play over 3G. Until then this works relatively well if you're on your local wifi network and want to use your Android phone or tablet for streaming Hulu, Netflix, and a variety of other channels Playon provides.

What you need:
  1. Install and setup Playon on a local media server
  2. Install UPnPlay from the Android Market
  3. Install VPlayer from the Android Market
Connect to the wifi network that has the Playon server, start up UPnPlay and start browsing until you find the content you want. A prompt will come up asking what app to play the media with, select VPlayer and it should start playing. The usual Playon streaming rules apply here; pause/rewind works and fast-forward only works if the content has already buffered to the server.

Playon channel list and Netflix queue:

Video Demo:

Technical Notes:
Motorola Droid 1 running Android 2.2 Froyo
Is rooted with custom kernel but stock Droid ROM
Apps are available in Market and don't require a rooted phone

Wednesday, January 12, 2011

Droid Screenshots

One of my favorite games last year was Assassin's Creed: Brotherhood, and one of the cool things that came with the collectors edition was a concept art book. Today while reading Kotaku I came across a link to the concept artists Donglu Yu's blog and found they make excellent Android wallpapers.

The panning affect when moving between workspaces is really cool, and below I tried to replicate it with a few screen shots from my rooted Droid. I should also note that I used my excellent Chrome cr-48 netbook and the cloud photo editing site Picnik putting these images together.

Saturday, January 01, 2011

TW Cable Modem Status Chart

Chart of our Time Warner cable modem going on and offline. Someone is coming out to replace the line from the alley to the house which hopefully fixes it.

Script that generated data, originally was so I could tell the cable tech when the connection dropped and then I used the data over a few days to make the above graph.


while true; do
DATE=`date +"%D %r"`
if ping -c 1 -W 2 ${IP} 2>&1 >/dev/null; then
echo "${DATE} - Ping successful"
echo "${DATE} - Ping unsuccessful"
sleep 60