Google TV still has Room to Grow

After playing with the leaked Google TV Honeycomb build and now the official OTA for the Logitech Revue, I’ve come to the personal conclusion that I still don’t like it. I still don’t think it has that polished touch that gets me excited about it or even want to use it. Now before I continue, I’ll point out first and formost that I don’t know what the solution is, nor do I pretend to. I just know what I don’t like and what I see as missing. Google employs hundreds if not thousands of people smarter than me, and I’m sure that can figure it out, but from a consumer perspective…

It stinks.

Cohesive UI Flow

The user interface just blows. Still. Google has yet to get it right. And the problem is that the interface centers around the launcher/taskbar/app drawer, whatever you would call it in this instance. On my television, content should be king. My primary focus for using TV isn’t going to be apps or internet, it’s going to be media and information. And that should be at the forefront.

That’s not to say there shouldn’t be apps, because there absolutely should be, but the primary focus of my TV should be content, namely media.

The UI looks too much like like a tablet and too much like a PC. But it’s not either of those. It’s my television. So give me a better way to navigate my media taken that into account.

Network Sharing is a Pain in the Ass

There’s no easy way to load content onto the device. It doesn’t even have much storage, aside from USB slots. So it’s painful that the device doesn’t pay more attention to DLNA or other media sharing services. I have content all over my home, from my phone, to my laptop to my desktop, and I should be able to easily stream that content to watch or listen to it on my TV. And I can’t.

The Revue does come with a Logitech Media Player that connects to 1 DLNA source at a time, but it’s such an utter pain in the ass to use that it’s not even worth it to try.

Meanwhile, Apple TV got this absolutely perfect and right with their media streaming. And Google needs to take a page out of their book. Or better yet, improve the snot out of it.

Google Music Sucks on the TV

One of the features I was most excited for with the Honeycomb update is the ability to stream my large Google Music library on my TV. It would be perfect for parties or just doing chores around the house. Except it’s not.

It’s slow (slower than loading the music via the browser), and the remote’s native controls don’t work within the app. If I push play, pause, skip or forward on my Google TV remote, I want the Google Music app to respond. And sadly, it doesn’t.

And navigating through the music is a giant pain in the ass. You have all this real estate to beautifully display my music. But you don’t. You put it in a giant grid or list, and the keyboard remote is an absolute pain in the ass for navigating through it.

So in my personal opinion, Google TV has a long way to go before it becomes a revolutionary product, or even one I’d recommend to my friends. But the most painful part about it is that it just has so much damn potential that it hurts to see it not live up to it.

2 Killer Features Android Needs

After juggling around both an Android smartphone (HTC Thunderbolt) and an Android tablet (Samsung Galaxy Tab 10.1), there are two killer features I’d love to see in Android that I think would particularly help those who have both types of devices or help those who share a tablet with family members.

Cross-Device Syncing

This is handy for those who have both a phone and tablet running Android, or those super rich folk who have 4 tablets: the ability for apps to sync your data across multiple devices. When I think about this, I’m specifically thinking about games, but it could easily apply to any application.

Picture this scenario: You have a game that you primarily play on your tablet, but thanks to the ability of the Android market to buy once and install on all devices, you also have the game on your phone. You stuck waiting for the train or are at a particularly boring family event and you decide you want to play the game on your phone. Only once you discover that your game progress isn’tĀ propagatedĀ from your tablet to your phone, you decide you’d rather not replay all those levels and instead find something else to do on your device.

Wouldn’t it be fantastic if Google opened up storage within your google account for applications to save limited state data and your could easily start where you left off in that game?

Multiple User Accounts on Device

Similar, but almost counter to the first feature is the ability to have multiple user accounts on the same device. This makes a lot more sense for tablets than for phones (in fact it may not make any sense whatsoever for phones). When I pick up my tablet, I’m inundated with data from other users within my household: bookmarks, browser history, widgets, account logins, etc.

If the tablet had the ability to have multiple logins – much like your computer does – you could simply switch users, log in as yourself, and have all your bookmarks, history and app logins at your finger tips, without having to trudge through your husband or wife’s data. Imagine an app like Facebook, where you’d literally have to log out and back in as yourself. A feature such as this could also increase your privacy. I want my roommate to be able to use my tablet to look up some information, but I don’t want him getting access to my Gmail, Facebook and banking app.

And using the example above, when I go to grab my tablet, I won’t have to listen to my girlfriend get disgruntled that I beat the level of Angry Birds she was stuck on and so eager to figure out herself. The data would be exclusive to our own user accounts.

These two features would help enhance the user experience for those who share devices and those who manage multiple devices. But as they aren’t deal breaker features, and none of the competition sports such features, it’s hard to see Google implementing them soon.

The Insecurity of Security Questions

Security questions on websites where you have a log in can be great: they can help you gain access to your account when you’ve forgotten your log in credentials. Unfortunately, there are some gaping holes in the types of questions you have to answer in order to gain this access that could leave you unable to gain access to your site, or allow others who have the adequate information to gain access to your site.

Some sites allow you to use your own questions, while others provide you with a preset list of questions to chose from. And of course, some sites allow you to chose or create your own questions. There are essentially two types of questions: hard fact-based questions and floaty, non-permanent questions. Continue reading ‘The Insecurity of Security Questions’ »

The Lack of Good Software Developers

We’ve recently been interviewing candidates to fill two PHP Developer positions, and I’ve been astounded with the gaping holes in knowledge that just about all of the candidates have:

  1. Modulo Operator (%)
  2. Constructor/Destructor
  3. Terinary Operator (?:)

These items are not PHP specific, and, while the last one might be excusable as some people frown upon using it, the first two seem like things that would be covered in programming 101. Anyone with a Computer Science degree (which most of these candidates had), should understand the modulo operator, and object construction and destruction.

It’s basic programming. We’re doomed.

Issues Adding a Second Gmail Account in Android

I’m unable to add a second Gmail account to my Samsung Fascinate. Each time I try, I get this annoying error:

You don’t have a network connection.

This could be a temporary problem or your phone may not be provisioned for data services. Please try again when connected to a mobile network, or connect to a Wi-Fi network. If the problem continues, call Customer Care.

Regardless of whether I’m on Wifi or 3G, and even though I can utilize other internet services fine, I was getting this error for days. Until I found the wonky solution.

  • Open or Install the YouTube app
  • Try to sign into the YouTube app using your second (third, etc) Gmail account, even if it’s not a valid YouTube account. You’ll likely get an error about an invalid login.
  • Go to Settings / Accounts and Sync, then scroll down to Manage Accounts.
  • You should see your new Gmail account listed. Open it up and change your sync settings to your desire.

It seems stupid; it seems like it won’t work. But it does. Go figure.

1 Big Reason I Returned the Droid X

I feel like a teenage girl the way I can’t make up my mind lately. First I post an article on why the Droid X sucks, then I post an article on why I bought it anyway, and now I’m posting an article announcing that I returned it on the 30th day of ownership. So why did I return it? Simple: Motorola is a dick.

I already talked about the encrypted bootloader and the eFuse, which are meant to cripple the device if anyone tries to load any unauthorized firmware on it. This pissed me off, but I bought it anyway. But Motorola keeps throwing shit in the face of Android enthusiasts who want to push their device to the limit and help improve the Android operating system.

Recently, a leaked image of the Android 2.2 update found it’s way onto the web, and immediately Motorola launched a cease and desist and take down requests on the leaked image. Today they’ve announced that anyone who has applied that update is screwed, and will no longer receive any OTA updates to their device.

You might be thinking: it’s their choice how their software is used and applied. But it’s my device, and once I own it, I should be able to flash any custom firmware on it I want. Because I bought it. I don’t care if the carrier offset the cost by me signing a two year contract; I own it.

Compare Motorola’s policies with HTC, who was in a similar situation: a leaked 2.2 update was installed on an unknown number of devices, and when the official update hit, those devices were unable to update. HTC posted via Twitter that they were working hard to help those early adopters (beta testers?) and very quickly modified the update to work for those who had installed the leaked version.

So I returned my Droid X, not because I didn’t enjoy the device, but because I strongly disagree with the policies of the manufacturer, and would rather support a manufacturer that encourages and works with consumer innovation.

The Samsung Fascinate is about to hit Verizon, and I might just buy that, but more than likely, I’ll wait for the newly rumored 4.3″ HTC device. Because HTC sounds like a company with policies I’d like to support.

Thus ends the Droid X saga.

4 Reasons I Bought the Droid X

In my last post, Four Reasons I Don’t Care About the Droid X, I whined about… well, four reasons I didn’t care about the Droid X. Open mouth, insert foot: I just back-ordered a Droid X. Bah!

So I present to you, Four Reasons I Bought the Droid X:

  1. Big Fucking Screen
    The screen is just absolutely huge. While I wish it was a tad shorter, and a tad wider (like the beautiful EVO 4G), it’s still great. Initially, I was worried how it would feel in my hand or if it would fit comfortably in my pocket, but after using it for 45 minutes, I wasn’t worried anymore. I went back and forth, looking at an Incredible and an X, and the Incredible just felt atrociously small after playing with the X.
  2. It’s Possible to Remove the Software Ugly
    I complained a lot in my last post about how damn ugly the phone was, software and form factor. There’s not much you can do about the actual phone itself besides dressing it up with a case, but it is much more possible to make the software look better by removing all the MotoBlur widgets, installing a 3rd party launcher, and downloading some other widgets (namely the Fancy and Beautiful widgets) to make it look more appealing.
  3. HDMI Out
    While it can only be used for viewing pictures and videos right now, I’m hopeful that someday it’ll support being able to put whatever is on your screen on your television or monitor. Couple that with some Bluetooth keyboard and mouse solution, and I’m hoping this phone will eventually be my computer.
  4. It has the Bigger GBs
    Okay, this really doesn’t matter at all as you can easily upgrade the SD card in the Incredible, but the fact that the X comes preloaded with 8 GB internal and a 16 GB SD card is just boss.

So after my whiny bitching about it being ugly and locked down, I still bought the Droid X.

4 Reasons I Don’t Care About the Droid X

I’ll be honest: there are a lot of reasons to be excited about this weeks release of Verizon’s Droid X by Motorola. The device has some massively awesome specs: 4.3″ screen, 1Ghz processor, 24 GB of storage out of the box, an 8MP Camera and HD video recording. Sounds great, but there are some definite show stoppers.

  1. It’s Ugly
    Let’s just get this out of the way: the phone looks terrible. It looks like it’s straight out of the early 90s. When you compare it to the beautiful phones rolling out of HTC, like the Droid Incredible and EVO 4G, this thing looks like an outdated hunk of crap. And while I know I shouldn’t judge the phone based on how it looks, this odd-shapped, button popping monstrosity is almost too much to deal with.
  2. No Front Facing Camera
    Why does this matter? Front-facing cameras are a great new feature to a lot of phones rolling out (EVO 4G, iPhone 4), and for one very good reason: video chat/phone. Both the EVO and iPhone sport this functionality, but it’s completely impossible without a front facing camera, because with a back facing camera, you won’t be able to see the screen, and thus, won’t be able to see the person you’re talking to. Tsk, Tsk.
  3. Motoblur
    I know they’re touting it as a new, revised Motoblur, but the damn thing still looks ugly as sin, from the UI to the widgets; it’s just awefull, especially if you compare it to the HTC Sense UI. Even the stock Android UI looks so much better. This isn’t a big deal, because you can just flash it with a custom ROM, right?
  4. No Custom ROMs (yet)
    The Droid X suffers the same fate of the Droid Milestone: an encrypted bootloader that prevents loading custom ROMs on the phone. For the average consumers, this doesn’t even matter, but for tech heads and developers like me, this sucks all the fun out of Android.

I was dead set on purchasing this phone as soon as I am eligible at the start of August and was totally willing to deal with #1-3 on this list, but #4 killed it for me. If I can’t install and play with custom firmware on an Android phone, I don’t want it.

Now I’m going to sit on the waiting list for the Droid Incredible and bask in the glory of a sexy phone, with custom ROMs, with a smaller screen and less than stellar specs. You almost had me Motorola; you almost had me.

Droid Doesn’t? Pros and Cons of the Droid X

The Droid X by Motorola on Verizon was announced today (regardless of the fact that almost everything about it was already know for months due to leaks). Here’s the skinny:

  • 1GHz Processor
  • 8gb internal memory
  • 16gb MicroSD included
  • 4.3″ 854 x 480 screen
  • HDMI out
  • 8 MP HD camera with dual flash and 720p video capture
  • Android 2.1 with a new version of Motoblur

This sounds great on the surface. But why am I skeptical?

For one, it doesn’t ship with Android 2.2, but that was just released today, along with Flash mobile 10.1, with promises that it’ll be rolled out to the device in “late summer.”

But more importantly, the thing is just terribly ugly. The actual phone is just hideous, especially the physical buttons on the bottom that stick out like a phone straight out of 2004. Just look at it’s biggest Android competition, the HTC EVO 4G. Now that phone is hot. Compare the two, and the Droid X looks like vomit. Whoever was in charge of the phone design at Motorola should seriously be fired. You suck.

On top of that, it runs Motoblur, which is down-right hideous. Even the new version of it (from the leaked screenshots), just look terrible, even compared to the stock Android UI, and especially compared to the beauty of HTC’s Sense UI. Come on, this thing looks hideous. You did the right thing by not putting that crap on the original DROID (maybe Motoblur wasn’t out at the time), why do you have to ruin a decent operating system this time around?

But the specs are absolutely phenomenal. The only thing I have to complain about is that it doesn’t have a front-facing camera (boo!). Other than that… HOLY STORAGE SPACE, Batman. I know the iPhone has up to 32gb, but not the stardard cheap model. You have to pay extra for that. This baby comes with 8gb internal with an included 16gb card. NICE…

So will I get one? We’ll see. When I’m up for renewal at the end of July, I’ll have to stroll into Verizon and compare the Droid X and Droid Incredible side-by-side and see who wins.

Zend Framework Sucks: One Validate Callback per Form Field

I completely loathe Zend_Form and it’s silly validation system, but I’ll save that for another time and just concentrate on a specific example: You can only have one validation callback per form element.

There’s the awesome Zend_Validate_Callback which allows us to try to make up for other validation shortcomings by allowing us to define our own validation rules.

But apparently you can only add one callback validator per form element.

Why is this an issue?

Zend_Validate_Callback provides silly error messages (“% is not valid”). So it’s desirable to override this message, but if you’re doing multiple custom validations, you’ll want multiple messages depending on how validation failed. Well, you can’t add multiple messages, so the intuitive (as close as you can get to intuitive with ZF) thing to do would be to break it out into multiple validators and add a helpful message for each. You can’t do that!

Thanks, ZF.

A possible solution would be to pass an instance of the object to the callback via setOptions(). But the messages are private, with no method to change them.

Hackish solution: create our own validator.

<?php
require_once 'Zend/Validate/Abstract.php';
require_once 'Zend/Validate/Callback.php';
 
class My_Validate_Callback extends Zend_Validate_Callback
{
 
    public function setMessage($message, $value)
    {
        if(isset($this->_messageTemplates[$message]))
            $this->_messageTemplates[$message] = $value;
    }
 
    public function isValid($value)
    {
        $this->_setValue($value);
 
        $options  = $this->getOptions();
        $callback = $this->getCallback();
        $args     = func_get_args();
        $options  = array_merge($args, $options);
 
        $options[] = &$this;
 
        try {
            if (!call_user_func_array($callback, $options)) {
                $this->_error(self::INVALID_VALUE);
                return false;
            }
        } catch (Exception $e) {
            $this->_error(self::INVALID_CALLBACK);
            return false;
        }
 
        return true;
    }
}

All we’re doing here is extending Zend_Validate_Callback and (1) adding a method to override the message templates and (2) passing a reference to this object to the callback method.

Complex. Insane. Should be unneeded. Zend Framework.