Category Archives: Things I Like

My relationship with Android is on shaky ground

Lets get something out in the open. I’m really picky, particularly with consumer electronics. I expect something to work as advertised, intuitively, smoothly and without crashing. I’ll quickly dismiss a device over things others will quickly get over. The Western Digital TV Live Media Player is one such device that got great reviews that I simply couldn’t stand. It was advertised as a product that could play virtually any file format either through an attached USB device or through a network connection. What I found was it “could” do some of those things but only some of the time. It repeatedly crashed, treated the same file different based only on the file extension and in the end, the product was a nightmare to own and I quickly sold it.

So anyway, lets talk about Android. Recently the on call phone that is passed around between myself and two of my co-workers was replaced by a Droid2 (which I pushed for). The Droid2′s hardware is top notch. It has a high quality feel to it and a great, to my eyes, screen. I haven’t had much time with the camera so I really can’t say much about it.

Android on the other hand is a mixed bag and as my co-workers pointed out today, this is where my picky tendencies just get out of control. I find many parts of the Android OS to look fantastic, especially when not in motion, and have a polished feel, while other parts just feel half-assed. For example, waking the Droid2 from sleep quickly fades the screen into view which looks very elegant. You are then offered two basic options using the same motion, just in different directions. Pull the tab on the left to the right and you unlock the phone. Pull the tab on the right to the left and you toggle between vibrate only mode or sounds on. These are great except the animation of either tab looks rather poor. Once the phone is unlocked, the lock screen fades away to reveal the default interface, which again looks great and is very smooth. This disparity between how the screen fades so smoothly and poor unlock animation breaks the continuity of the experience. The two bits feel like different parts when they should feel as if they’re all one part melded together.

As a long time iOS user, if there is such a thing, there are other parts to the Android experience that really stick out. One of them is text input. So far, I have yet to find a text entry box that brings up the keyboard by default. For example, open the Gmail app and compose a new message. The keyboard won’t show unless you tap the To: field even though the To: field is focused by default. Another example. Add the Android News and Weather widget by doing a tap and hold on the a screen. Once added, attempt to manually add a location. You will be faced with an all black screen with a single text entry field that has focus and a magnifying glass to the right of it. There will be no keyboard even though clearly this is the only text box and the only thing to do on that form is enter text. Touching the already focused text box will cause the keyboard to appear allowing you to enter text. If you then click the done button on the keyboard the keyboard goes away and then nothing happens. You have to click the little search icon instead. I find this incredibly irritating.

Another surprisingly jarring thing is that list views aren’t able to scroll past either ends. The ability for a list view to scroll slightly past the top or bottom of the list provides a visual cue that you’ve reached the top or bottom of a list of items. On Android, the scrolling simply stops but you don’t always know that it has stopped because it is out of items or because it isn’t registering that you want it to scroll. In other cases where the entire list contains just enough items to fill the whole screen, you again can’t really tell if it isn’t scrolling because there are no additional items, or if the screen isn’t meant to scroll or if the hardware isn’t “getting” your gesture.

Speaking of scrolling. Android’s response to touch is great except for initiating a scroll, either up and down or left and right. It seems to take almost twice as much distance for Android compared to iOS to realize you want to scroll a list view or move between screens. Once Android begins scrolling, the animation looks poor and full of judder. Again, this distracts from an otherwise pleasant experience.

All that said, this phone is far superior to the previous phone that was Windows Mobile based. Windows Mobile wasn’t great then and compared to what is available today was positively atrocious. I think Android has come a long way in a short amount of time and I hope Android can close the experience gap with iOS in future releases. Until then, I consider Android versus iOS to be like Windows 7 vs OS X. While I prefer iOS or OS X, having to use Android or Windows 7 isn’t a step backwards, it’s just a different way of doing things.

Using expect to automate a process

In my previous post I talk about needing a TFTP server in order to serve some files to a hardware device. This post describes how I used expect to automate the process of logging into the hardware device and issue commands that copy in a config file, commit it to the device, upgrade the firmware and finally tell the device to reset to factory defaults and reboot.

Expect is a way to programmatically work with a normally interactive process. Using expect you can write a script that telnets into a system and then issues commands based on what it “sees.” Here is the script I used, with some important values removed, to automate the process of updating a number of devices.

#!/usr/bin/expect
set timeout 300
spawn telnet 192.168.1.1
expect "login: "
send "root\n"
expect "Password: "
send "tehmagicphrase\n"
expect "# "
send "cd /tmp \n"
expect "# "
send "tftp -g -r config.ini 192.168.1.159\n"
expect "# "
send "config.sh import config.ini\n"
expect "# "
send "tftp -g -r firmware.img 192.168.1.159\n"
expect "# "
send "firmware_upgrade /tmp/firmware.img 1\n"
expect EOF

The above script was saved into a file called pushConfig.expect and set as executable using ‘chmod +x pushConfig.expect’. To run the script, I powered on the device and waited for it to be ready, once ready I issued ./pushConfig.expect to start the update process.

Using expect is fairly straightforward. The most difficult part is ensuring you correctly tell expect what to look for before sending the next command. In the script above I do the following:

set timeout 300

This tells expect to wait at least 5 minutes for matching text before continuing to the next send command. What this means, is if I tell it to send some data it’ll wait up to 5 minutes to see what is in the expect line after the send. In the case of my script the firmware upgrade could take quite a bit of time and I didn’t want it to timeout so I set the value fairly high.

The next line tells expect to start a telnet session to a remote machine and then to wait until it sees:

login: 

Once it sees that it sends the username. The script continues like this until it sees EOF. At this point expect knows that the process is now complete and it exits.

By using an expect script I was able to simply power on the hardware device and wait for it to boot. Once booted I ran the script. This saved me and a co-worker a lot of time while pushing custom configurations and upgrading the firmware on a number of devices.

Expect is capable of a lot more than I used in my example and can react differently based on what it receives back from the interactive process or even loop over a series of commands. To learn more about expect try ‘man expect’ or search your favorite search engine.

Jailbreaking the Apple TV and the legality of jailbreaking

Came across this article talking about progress being made with the new Apple TV in regards to jailbreaking and adding new functionality. Jailbreaking was recently ruled as legal. I think this is a big win for consumers who want to be able to use their hardware devices for whatever they want. For example, I think it’s ridiculous that Apple is allowed to force me to join their developer program if I want to write my own iOS application for a device I own. It’s perfectly reasonable that if I want to distribute my software using their App Store platform but beyond that I should be faced with such restrictions.

Also, just because jailbreaking has been deemed legal doesn’t mean pirating software is suddenly legal as well. There are still plenty of other existing laws protecting against that. In the next few months or years I think we’ll see additional clarifications with the DMCA and jailbreaking. For example, although the iPhone was specifically mentioned in the ruling, I actually don’t think it should be ok to jailbreak an iPhone for security reasons as it pertains to the cell phone network. The iPhone is part of a bigger infrastructure that is not owned and operated by the owner of the phone and in that case it’s a lot like a business PC being connected to a business network. At the same however, such a ruling will hopefully coerce Apple into providing a toggle on the phone allowing end users to install software outside of the App Store. This would satisfy what some end users want while still protecting the security of the cellular network.

Restore window positions and sizes

Few weeks ago I was telling my co-workers how I wish there was an application that would put the windows of running applications back to “where they belong” when I plug my MacBook into a secondary monitor at work. Yesterday I finally found that app.

Stay

Today Apple will demonstrate why they don’t need flash for video

Apple announced yesterday that they will be streaming their September 1 event live. The catch? It’ll only work in Safari on Mac and on iOS devices. So in other words, only about 9/10′s of the internet will be able to view the live stream.

But that 9/10′s of the internet will be able to enjoy the exact same video stream no matter what device they are on, be it laptop or the tiny iPod touch. No need for a desktop optimized version and no need for a mobile optimized version. The same stream will play on any sized device.

Make no mistake, this is a giant stab at anyone who is arguing that flash is needed on Apple’s devices. If you need any further information about the state flash on Android you need only watch the video here and then read the comments. People love to rail on Apple while completely missing the point that having flash at all doesn’t mean flash works and a half-assed flash experience is not what Apple is willing to allow on their devices. Reading through the comments you’ll find a few people who argue that “at least it is there” and that “it doesn’t matter that flash sucks today because there are better phones coming out tomorrow.” That makes no sense.

My Favorite Mac Apps

I know someone who just picked up a new Mac and it got me to thinking, I bet people new to the Mac platform don’t know about all of the great software you can find for the Mac. I thought I’d write up a post on some of my favorite free and paid apps.

  • Firefox
  • RipIt: DVD ripping made easy
  • Adium: Multi-protocol chat
  • Growl: Must have notification system
  • NetNewsWire: RSS reader that syncs with Google Reader
  • BootChamp: Simple menu for rebooting directly into your BootCamp OS installation
  • Tweetie: Twitter client
  • iTerm: I can’t let go of this great ssh client.
  • 1Password: Store all of your passwords. LastPass is free alternative that is more cross platform
  • Automator: Built in robot too useful not to mention
  • Caffeine: Sometimes you just don’t want your Mac to dim the display or go to sleep.
  • Colloquy: Decent IRC client
  • Cord: Remote Desktop Client for Mac.
  • CrashPlan: Time Machine is good but I just have to have a second way of backing up all of our photos. CrashPlan really does a good job and has saved me.
  • HandBrake: Very good video encoder and DVD ripper (requires VLC)
  • Loginox: Swap out that ridiculous login screen image.
  • MarcoPolo: Change preferences based on your location or “context.”
  • MacFusion: Mount/Map ssh/sftp servers in Finder allowing any app to directly access remote files
  • smcFanControl: The Mac generally does a good job with the fan but there are times when having it cranked up on high is a good thing, especially for your lap.
  • NTFS-3G: Mount NTFS drives as read/write
  • SmartSleep: Preference pane that allows you to adjust how your Mac sleeps or hibernates

I think that about covers it. There are far more applications in my applications directory but the apps I listed are must haves in my book. If there are any apps you think I missed leave a comment.

Western Digital WD TV Live

I’ve been trying for a while now to find a reasonably priced way to play video files that live on my computers on our TV or projector with acceptable quality while still being easy to use. Finding a solution has proven more difficult than I initially thought. I could never really find anything that gave me everything I wanted without some major compromise and didn’t cost a lot in terms of price or time spent configuring. I simply want to be able to take a file from the computer and play it on my TV or projector on a device that feels integrated with the rest of my setup.

Enter Western Digital’s WD TV Live. The WD TV Live does exactly what I want and does it in a tiny and silent, remote controlled package. It is able to stream virtually every common video or audio format in use today from a network share or from a locally attached USB drive. As an added bonus, it can also access YouTube, Pandora, Flickr as well as a couple of other online services. You can read more about the WD TV Live at http://www.wdtvlive.com/products/wdtv_live#highlights.

There are some isues with the device right now that are supposed to be cleared up in a soon to be released firmware update. It will play DVDs ripped to .iso format but doesn’t support menus, or even chapters, at all. This makes it nearly impossible to watch a TV series on DVD. The other issue the player currently has is with h264 files but oddly enough it is all in the name. A file with the extension .m4v will most likely have audio sync issues. Renaming the file to .mp4 will resolve the audio sync issue but will do nothing with the stuttering playback for all but the most basic of h264 encoded files. Incredibly, taking the same h264 file and putting it into mkv format will fix all of the issues and the file will play perfectly.

Despite these very easily fixed issues, this is the best device I’ve come across for playing videos at this price point. Yes, there are probably more capable devices available and there is certainly more capable software available (XBMC for one) but for the money, it’s hard to beat the WD TV Live. My next few blog posts will focus on how I’ve integrated the WDTV into my home network including how I’m encoding files for it using HandBrake, Linux and Automator in OS X.

Windows 7 Review

A while back I installed Windows 7 on my work laptop so I could give it a real trial. Since installing it I’ve been using it to some capacity almost daily and now after a couple of months I thought I’d write out a few of the things Windows 7 gets right and a few of the things that could use some fixing.

What Windows 7 Gets Right

Windows 7 is a big improvement over Vista. It boots quicker, introduces a remixed taskbar, better window management, fixes a number of interfaces issues that Vista had like managing wireless networks and it makes Windows Explorer much more useful. And, while there are a lot of tests out there that show Windows 7 isn’t actually faster than Vista, Windows 7 certainly feels faster and that is arguably much more important.

Start Up and Shutdown
Improved start up and shutdown speeds have been a selling point of most Windows releases since Windows 95 but no release has ever really delivered on that promise. If anything, better start up and shutdown speeds have been because of hardware improvements over the years, not the OS. Vista promised to bring with it improved start up and shutdown as well but it would seem the engineers had trouble actually delivering on that promise once again. Instead, Vista cheated by using sleep and suspend to mask the amount of time it took the OS to start up and shutdown. So, once Vista had been booted up choosing shutdown would put the computer to sleep or suspend. To truly shutdown or reboot the computer the user had to visit a secondary menu.

Of course, Windows isn’t the only operating system promising better start up and shutdown speeds but it wasn’t until this year that someone was finally able to really deliver on the promise of faster start up and shutdown. When Ubuntu 9.04 arrived, it shattered the status quo delivering start up times that seemed much more inline with the amount of power modern computers offer. While Windows 7 doesn’t seem to quite match Ubuntu’s speed it does seem that Microsoft was able to actually improve things enough that they no longer had to rely on the tricks that they used in Vista. Clicking shutdown now causes the OS to actually shutdown.

The Taskbar
The Windows taskbar isn’t something I’ve felt was an issue. In fact, I’ve always thought it was just fine. I’d typically expand the bar so it was a bit taller and put the quick launch icons under the application buttons. In Windows 7 however Microsoft has dramatically changed how it works and the end result works very well. It is clearly superior to the taskbar model it replaces by offering real time previews of running apps or even Internet Explorer tabs by simply hovering over a running application’s icon. From there you can hover your mouse over a preview and Windows will make all other Windows transparent so you can see the full version where ever it might be on your monitor. You can easily pin new applications to the taskbar by dragging them or right clicking the icon of a running application and choosing “pin to taskbar.”

There are however a couple of issues worth pointing out, both of which could probably be fixed in an update or service pack. Installing an updated version of an application will break the icon on the taskbar. It simply won’t work until you remove the old icon and place it there again. The other problem is that using the taskbar beyond it’s obvious functions is difficult to discover. Clicking the application icon always displays the running application, but what if you want a new window? The secret is to hold down the shift key while clicking the application icon. This will cause a new instance or window of the application to launch instead of simply showing the running version. If you want to launch an application and run it as Administrator, hold control and shift while clicking the application icon. Microsoft would do well by providing some way to educate the user on how to use the new taskbar.

Window Management
Microsoft is always being accused of stealing features and ideas from Apple and sometimes I believe they do. The new taskbar for instance is very dock like but does add an innovative new twist to the idea. But in the case of window management Microsoft has, for once, truly one upped Apple and Apple should really consider implementing a similar if not exactly the same set of features.

Windows 7 introduces several new ways of sizing windows automatically. A user has always been able to resize a window by dragging it bigger on any corner or side of the application window. Windows 7 however now allows you to simply drag the entire window to a sort of hot spot to resize it. Drag a window to the top of the screen and Windows 7 will maximize the window. Drag it to the left or right and Windows will resize it to the full height of the screen but only 50% of the width. This makes it extremely easy get two applications side by side on a single monitor.

Interface Tweaks
One of the things I simply couldn’t get over in Windows Vista was how poorly implemented the wireless network interface was. In fact, the entire networking interface was overly complicated. While most of the networking interface is just complicated as it was in Vista, the part that you’ll use the most is much improved and now works exactly as it does under OS X or Linux. You simply click the icon and choose an available wireless network.

The Explorer was another item in Vista I found awful. It was cluttered and confusing. Windows 7 again seems to have taken one from the Apple playbook and Explorer is now much more usable. A number of sensible default shortcuts are available on the left side and you can easily add more. Over all, Explorer feels much less confusing and cluttered.

What Windows 7 Gets Wrong
Despite all of the things Windows 7 gets right, there are a few things that simply don’t work or just aren’t useful. Below I’ve listed a couple of my biggest Windows 7 gripes.

Aero Peek and Show Desktop
Of all the new features of Windows 7, Aero Peek is arguably the most pointless. Placing the mouse in the lower right corner causes Windows to make all of the windows translucent so that you can see through them and see the desktop. This is great, except now that I can see the desktop I want to be able to access what is there. Moving your mouse away from the bottom right causes all of the windows to become opaque again. In order to actually access what is on the desktop you have to click the bottom right corner. This causes all application windows to simply go away, as if they’re minimized. Why bother with Aero Peek at all?

Also, show desktop is still a broken feature when compared to Exposé on OS X. Clicking show desktop causes all application windows to go away. If you click it again all application windows will, usually, appear back where they were with the right application in focus. If you click an application icon before clicking show desktop again, the whole “set” is lost. You can’t return your desktop they way it was unless you now manually click each application icon.

Aero Shake
Another new feature is Aero Shake. Aero Shake mimics an OS X feature that allows you to hide all other Applications. The problem with Aero Shake is that it is an awkward gesture. You activate Aero Shake by clicking and holding on the Window you want and then shaking it for a bit. In theory it seems sound and simple, in practice it feels awkward.

Another issue with Aero Shake is that it reveals a key difference between Windows and OS X. Under OS X, an application is NOT the same as the window. It’s entirely possible (and very useful) for an application to be running but not have any visible windows. When an application has focus in OS X you can hide that application by pressing command+H or by choosing “Hide ApplicationName” from the application menu where ApplicationName is the name of the application. The opposite of that is similar to Aero Shake does. From the same menu you have the option to hide all other applications, leaving any windows that belong to that application still visible.

Windows however doesn’t differentiate between a window and an application because in Windows, the window IS the application. This makes Aero Shake, aside from the goofy gesture, less useful in my opinion.

Conclusion
Windows 7 is what Windows Vista should have been. If you’re Windows fan then Windows 7 is something to truly be excited about. If you’re an XP user and you’ve been hanging on to it because of all the bad things you heard about Vista, wait no more. Especially if you bought a Vista “capable” or “ready” machine and then downgraded to XP. If you truly need XP for compatibility be sure to pick up at least the professional version and then download the XP mode package from Microsoft. XP mode is a preconfigured Windows XP system running in Microsofts VirtualPC and the end result is fantastic. You can upgrade to a modern Windows system and still run apps or hardware that will only work under XP.

Ubuntu, Netatalk and OS X

Recently I removed Fedora 10 from my Linux server at home and installed Ubuntu 9.10 Server. I did this partly because I was tired of finding packages that weren’t available on Fedora but were available in Ubuntu. Ironically I ended up trading one mess for another. Under Fedora I was compiling software that simply wasn’t available, but under Ubuntu I need to recompile the provided netatalk package in order to enable support for newer versions of OS X.

Netatalk is the Linux package for providing the native file sharing protocol to Macs and also provides better performance than Samba under most conditions. The missing feature in this case seems like quite the over site considering it makes the software virtually useless on networks with modern Macs as it prevents them from authenticating. Lucky for me, someone else has gone through the work of figuring out what it takes to get things working again.

The information is Debian/Ubuntu centric but you should be able to apply the same fix on other distributions. Here’s the link http://www.kremalicious.com/2008/06/ubuntu-as-mac-file-server-and-time-machine-volume/

Time Machine saves me again

Lately I’ve been talking a lot of talk about how great the Mac platform is. At work I go back and forth with a coworker on the merits of Linux and OS X. Of course he claims that Linux is all you need and I’m confident that the Mac is where it’s at. The reality is that OS X suffers its own set of issues which I have talked about in the past. No OS is perfect, just a matter of which one best fits your needs.

Anyway, through no fault of my own I managed to royally screw up my iTunes library to the point where some of the files were pointing to random objects in my backup drive. I have no idea how. At the same time my iPod Touch would simply not cooperate. Many files that I normally sync were listed as missing including over half of my largest play list which is still just a small subset of my entire collection.

So anyway, what’s my point right? My point is that I was able to save myself a ton of work simply because I turned on Time Machine.

Everybody says, “make sure you make a backup” but lets be serious, who actually does? This is one of the many reasons I claim OS X to be one of the best operating systems available for “normal” people. No other system that I am aware of provides such a simple, easy to use and surprisingly robust backup AND restore system. It is so easy you might actually forget it is there.

Restoring my iTunes library to normality was as easy as entering the Time Machine interface, going to the previous point in time, clicking the iTunes library files in my Music folder and clicking the restore button. Done deal. I plugged my iPod in and all of my files were copied back to it as if nothing had happened.