Posted by: Jason | November 4, 2009

Android FAILs

It seems ironic to me, being in the software industry for so long, that the phone that is based on the open-source operating system has such Microsoft-feeling ads (the two mentioned here are at the bottom of this post). The latest bomb to drop is the “Stealth” Android commercial. I think they were shooting for the Lexus vibe, but I really think these spots are missing the mark (see 0:32 in the Droid spot, where they literally drop them into the ocean). But the spot that really compelled me to write this post was the highly-stylish the Sony-Ericsson Xperia ad. This ad drops so many name brands that for a second, I thought Chanel came out with a new phone. I fell under the Sony-Ericsson spell a few years ago and bought a beautiful phone with a big, bright screen (unusual at the time). Although I enjoyed the phone and browser parts, I found the media parts completely useless. Without illegally downloading content, there was no way to get anything useful on the phone. I found this really frustrating, because the software was actually kind of decent. Speaking of software, mobile applications will undoubtedly be ported to ever piece of hardware that can support them, and if the mobile gaming industry ends up driving the application content, they have tons of experience porting to different platforms. Although perhaps it would be nice if Android could showcase even one application. Of course, which hardware builder and/or mobile network is going to showcase an application that isn’t exclusive to them? I’m not sure. My real problem with Android phones is that there is no clear solution for distribution of content. I’ve found that audio/video compatibility becomes an unbearable burden with anyone but Apple. Or maybe Microsoft, since at least then I know I’ll be locked into Windows Media. Even then, I wouldn’t know how to legitimately get content onto a Windows Mobile phone. It’s pretty obvious with an iPhone.

Full disclosure: I’m a happy iPhone user. Ever since my first experience receiving a call while my iPhone was playing music through my car stereo, when the music faded out like a Hollywood movie, I’ve been in love. The experience has been closer to perfect than I ever imagined (note: I did not say perfect; it’s technology, and it has its problems). I would like the iPhone to have a better camera, and I’m sure Apple will produce one way before my contract is up, putting me in the awkward position of deciding whether to spend $500 on a phone or to wait another year or so to upgrade. That’s okay with me. I use my phone a lot to check email, hop on the Web, text message, and yes, I even make and receive calls from time to time. I’ve found that I’m not unusual among my friends and, surprising to me, my professional acquaintances. Text messaging has taken over. Voicemails are no longer left, because they are no longer answered.

So, Android phone builders, how about showing some commercials where people are actually doing something with these hot new pieces of hardware, besides dancing or quivering in fear? There will be people who will buy style over substance, and you’re selling the “sizzle”. But unless there is some “steak” to go along with that sizzle, your new customers will not turn into raving fans, like I have. I recommend iPhone to literally anyone who asks (or even to people I overhear talking about getting a new phone). Who’s going to do that with your phone? Any why will they do it?

Posted by: Jason | September 19, 2009

Futurama and the Art of Programming

Planet Express: Evil Universe-Destroying Conspiracy?

Planet Express: Evil Universe-Destroying Conspiracy?

If you’re reading my blog and you haven’t seen Futurama, watch an episode. For anyone who hasn’t seen it, here’s a brief synopsis: Our hero, Phillip J. Fry, pizza delivery guy, is delivering a pizza on New Year’s Eve 1999 when he inadvertently gets frozen for 1,000 years. He awakens in the year 3,000 and ends up working for his great-great-great-…-nephew, Prof. Farnsworth, who is over 100 years old and never looked better. Fry’s new job is delivering packages for Planet Express, a package delivery company Prof. Farnsworth put together with his faster-than-light spacecraft.

In one particularly suspenseful episode, Prof. Farnsworth’s clone is trying to figure out how to repair the Planet Express ship. It uses an exotic engine powered by exotic materials (dark matter). At the critical moment, the clone exclaims, “I understand how the engines work now. It came to me in a dream. The engines don’t move the ship at all. The ship stays where it is, and the engines move the universe around it.” This is like laying a sheet of paper on a flat surface, just touching it with your finger, and moving it around with your hand. Your finger’s location stays the same relative surface, but the paper changes its position relative to the ship. It’s a completely ingenious design, but what if Prof. Farnsworth built another ship? Now imagine adding a second finger to that piece of paper and another hand to move the paper relative to that finger. What if the two ships wanted to go in different directions? The ingenious design is now completely wrong and cannot be fixed. In order to add another ship, the entire design has to be thrown out.

There is a similar situation in computer programming. It used to be called a global variable. Now it’s more trendy to call them static or class variables. These are variables that hold a single value for the entire system in which the class (or global variable) operates. At first glance, they can seem to be an ingenious way to solve a problem. Any time you think about using them, though, you should think about what might happen if you add another “ship” to the system. Who knows? Maybe the whole universe would implode.

Posted by: Jason | September 7, 2009

A Few Reasons E-Book Readers Suck

I’m a casual video game player, but I’ve played a lot of games in my day. My first video arcade experience was at the Asteroids machine in the Stop-n-Go. After that game filled my body with adrenaline, it was all over for me. The prospect that I could control a whole ship that was able to blow up asteroids in space with just a dial and a button was magical. Later, playing more complex games like Ultima IV, I realized that there could be richer experiences that required a few more buttons. In college, I was introduced the the MUD (Multi-User Dungeon), which I never really got into. More recently, I started playing World of Warcraft, which I consider the most successful MUD in the world today. Along the way, I have played many console games from first-person shooters (Halo to Ghost Recon), platform games (Super Mario World to Mirror’s Edge, which is just fantastic for this genre), and, to a lesser extend, Real-Time Strategy (RTS) games (I love Pikmin in this genre). Along the way, I came to a startling conclusion:

Games can be too realistic.

At a certain point, games that increase in realism achieve a level of realism that… well, it makes them actually real. Real in the sense that all the real-life frustration you might experience in, say, infiltrating a heavily-defended building or training for the military. Let me put it this way: I would never play Halo if I had to go through 6 week of training in-game to qualify to play the game. Part of the magic of video gaming is that it lets people do things they would never have a chance (or the time, or even the physical ability) to do in real life.

If you’re still with me, you’re probably wondering what any of this has to do with E-Book Readers. I recently came across an article on a dual-screen E-Book Reader that says it will be “awesome”. Why? What is so awesome about using 60 years of accumulated technology to emulate 500 year-old book technology? Isn’t this akin to emulating basic training in a first-person shooter video game? Sure, a certain segment of the population (read: geeks) get thrilled at the prospect of running the Commodore 64 on their iPhones, but is that really the right approach?

When it comes to consuming long-form media on a high-tech device, what is needed is a new approach. Instead of emulating 8-bit technology, how about inventing a whole new 64-bit technology? In my life, audio books (in combination with the iPhone, a technology platform I always have with me) radically changed the way I enjoyed books. For one, it enabled me to read for pleasure again. I find that I’m very rarely in a situation where I can drag a book along with me, much less sit down and use my two hands and two eyes to actually read it. This new-fangled technology enables me to enjoy a book in a way the original author probably never intended. A first-person shooter video game is vastly more enjoyable than having actual terrorists actually shoot assault rifles at me. Likewise, an audio book is vastly more convenient than an actual pulp book.

So I ask, what advantage does an E-Book Reader have over a paper book? In my case, it’s actually worse. I don’t mind if I lose a $4.95 paperback book. I can drop it, dogear it, write in it, drop it, kick it, rub sand on it, prop a door open with it, hit my friend over the head with it to get his attention… Nothing I would do with two A4-sized pieces of LCD glass (okay, maybe prop a door open with it).

This whole e-book reader craze is destined to be relegated to history as a stop-gap technology to help folks who can’t or won’t adapt to new media technologies. In a few years, it should blow over after the “gee whiz” factor has passed by. Either that, or it will be adapted, like audio book technology, to a new, more fertile environment, and it will be another 15-year overnight success.

Update: Fake Steve Jobs and students at Princeton apparently agree with me. Glad I could help.

Update: FSJ almost quotes me: “There is no point in moving to digital readers if we’re just going to do what we did on paper.” Here’s hoping RSJ feels the same and actually comes out with a decent tablet.

Posted by: Jason | May 17, 2009

A Word on Star Trek’s (2009) Poor Prop Choices

This is a little out of the ordinary for me, but I just had to say something. I recently saw the 2009 Star Trek movie directed by J.J. Abrams. First, I am a Lost fan, and just seeing the “Bad Robot” banner gives me butterflies in my stomach. That guy is great. This Star Trek has some of the grit of Battlestar Galactica (the best Sci Fi drama since Farscape, IMHO) while maintaining the wholesome goodness of the original series and movies.

But there was a problem. The Star Trek movies’ audiences are primarily people who are both technologically savvy and, if not anal-retentive, at least have an almost obsessive-compulsive attention to detail. Okay, so full disclosure: I just described myself. And I just can’t let go of the worst set design choice in this decade: using an actual bar code scanner on the bridge of the new/original Enterprise. Don’t believe me? Take a look at this shot, particularly in the very prominent position on top of the helm, between the two bridge personnel:

Bridge of the Enterprise NCC-1701 (2009)

Bridge of the Enterprise NCC-1701 (2009)

And now, let me introduce you to the Symbol/Motorola M2000 general purpose barcode scanner:

Motorola M2000 Omnidirectional Barcode Scanner

Motorola M2000 Omnidirectional Barcode Scanner

Tell me I’m wrong! This anachronism totally blew the movie for me. I see these in department stores. I don’t want to think about buying groceries or T-shirts while I’m watching a futuristic geek-fest!

What other interesting and/or distracting props have you seen in movies?

I’ve had a few situations with photos that just don’t look right when iPhoto corrects the red eye. The algorithm in iPhoto is sometimes just too sloppy, ruining nearby parts of the photo, especially if there is too much red tone to the skin around the eye. I needed a better way, and here it is.

What you’ll need

  1. A tool with “Instant Alpha”, the feature introduced in OS X Leopard’s Preview.app tool. You could also use Keynote, but I find Preview to be the best
  2. A compositing tool. Compositing is the process of combining two images. I use OmniGraffle for this, but you could also use Keynote, OpenOffice, etc. The key here is that you will need to draw an object and be able to place it behind your photo after applying the Instance Alpha.

Step by step

Try it in iPhoto

Here is my original picture:

Original Red Eye Picture

Original Red Eye Picture

And here is iPhoto’s attempt at red eye reduction:

iPhoto Red Eye Reduction

iPhoto Red Eye Reduction

Note the over-ambitious red eye reduction turning my green/brown eye blue and bruised!

Get the red out

To get the red out, I use OS X’s Preview.app to apply an Instant Alpha filter. This tool is great and gives a lot of control over the size of the selected red area. Open the tool, click and drag starting in the “reddest” part of the red eye, and drag until the entire pupil of the eye is selected by the tool. Repeat for the second eye, then hit the “enter” key to apply the mask. You should see some ghostly white eyes in your picture.

Instant Alpha in Preview.app

Instant Alpha in Preview.app

Red Eye Removed in Preview.app

Red Eye Removed in Preview.app

Get the black in

Okay, so far I’ve gotten the red eye out of your picture, but it’s not anything you’re likely to publish. To do this step, we copy the image into the compositing tool (OmniGraffle in this case). OmniGraffle is what they call an object drawing tool. After copying the image into the tool, we just draw a plan rectangle right over the eyes. Make it big, but smaller than the original picture. Next, change its color to black. You may want to play with the color to get the best result; adding some red to the black will soften any red edges that might have been left during the Instance Alpha stage. Or, you might feel that a deep gray gives better results. You should really zoom in on the eyes to make sure you’re satisfied, because you’re almost done!

Build the Rectangle

Build the Rectangle

Change the Rectangle Color to Black

Change the Rectangle Color to Black

Push the Rectangle Behind the Pic

Push the Rectangle Behind the Pic

Save your new picture

Once you’re satisfied with the picture, use the Export command of your compositing tool to save the image as a JPG. Since it’s a photo, this is the format I highly recommend. You could also use PNG, but JPG will give you the most natural results.

Export Options

Export Options

Final Result

Final Result

Finish it off

It is only at this step that I recommend you bring the new photo into your photo tool (I use iPhoto) to adjust exposure, etc. Adjusting these setting before getting the red out could make the process more difficult. Crop, size, and upload your photo to your favorite service!

Posted by: Jason | April 8, 2009

Internet Will Eventually Be Remote Controlled

I worked on a project in 2002 to build a “rich media server” for HP. At that time, I realized that content delivery is essentially an asymmetric activity, where the “command and control” channel needs to be much smaller than the content delivery channel. This was the original philosophy of ISDN phone lines, too, except when you’re processing HD content, it’s at a slightly different scale. It seemed pretty obvious at the time that the infrastructure required to process the content is fundamentally different from that required to process the control signals. The visual we used on this project is a guy sitting in his easy chair pointing a remote control at a TV. The bandwidth of the remote control is extremely tiny, essentially a few hundred bits per second. However, the bandwidth of the projected image and sound is enormous by comparison. That’s the nature of high-quality content.

That’s why I’ve been intrigued by some of the stories I’ve been reading lately. GigaOm covers “fat pipes” in the cloud, which is already happening. From my work in the social technology space, I already know that one reason Joyent has a thriving Facebook application deployment business is the fat pipe it has from its data center directly into Facebook’s. Take that, Net neutrality! I also think the new (nascent?) OnLive service is pretty interesting. The concept there is that by having highly efficient means of rendering games, the end user needs a skinny pipe to “remote control” the game. To be honest, I’ll believe it when I see it. I remember playing Nintendo 64 in a hotel room once for $4/hr, and it was not a good experience. I can’t imagine trying to do that with Call of Duty 5 over the Internet.

But it’s true, I think, that deployments will continue to be optimized and the special sauce for the solutions will be the remote control capabilities. Look at Amazon’s Web Services offerings (including their recent MapReduce offering). By using a Web Services interface, you can remote control deployments, including optimizing the deployment so there is a fat pipe (close association, anyway) between some number of instances. I think Amazon “gets it”. Of course, they’ve had the pain of operating an ecommerce site for so long, and they have been so successful at it, that I probably shouldn’t be surprised.

So, how are you making your solutions “remote controlled”? What integrations with other services do you provide to your customers? How easy do you make it for your customers to control their overall solutions from their easy chair? This will continue to be a huge differentiator for the next few years as it all shakes out.

Posted by: Jason | April 6, 2009

Value and Profit

In the recent Stephen Colbert interview of Biz Stone (co-founder of Twitter), Biz contrasts building “value” and building “profit”. It’s something that’s been on my mind lately, too. Here are my simple definitions:

  • Value: Customers would miss you when you’re gone
  • Profit: Customers are willing to pay you to make sure you won’t be missed

I think Twitter’s approach is right on, building the value first. Biz claims to have “patient investors”, and I think this is critical to making this approach work. I’d like to think that at Ringside Networks, we built value (based on the number of downloads of the open source platform we built) and the interest in the platform that resulted. We were far from producing profit when we folded, but I still have confidence in the formula.

Posted by: Jason | February 11, 2009

Cost, Reward, and Adoption

I’m a parent, and like many parents, I think my son is pretty smart. He and I play World of Warcraft occasionally, and recently the world added a new playable class for players who have reached at least level 55. Upon launch, it is clear that the Death Knight is “OP” (Over-Powered). My son provides me with the following analysis, which I am paraphrasing. Last time WoW introduced a new class, it was the Rogue. It, too, has long been considered “OP”, especially in Player-versus-Player (PvP) scenarios, where the Rogue can pwn n00bs all day long through stealth, backstabbing, and the dreaded “stun lock”. Gradually, the Rogue has lost some of what once made it over-powered, and although the “DKs” are more powerful than Rogues when they were introduced, they are now dramatically more powerful. Being a conspiracy theorist and cynic like myself, my son concludes that this was not, in fact, an exercise in fixing the game balance that was broken by an OP class being introduced into the game. Instead, he thinks it may be an intentional strategy to get people using the new class. By making the class desirable (over-powered), WoW can populate the world with as many of the new class as it thinks is right, then “Nerf™” the class by adjusting (read: “removing”) the attributes, skills, and powers that make the class so desirable.

Let’s apply this to Google’s new Location services. Privacy concerns aside (since so few consumers actually care about protecting their privacy, much less understand how to protect it; sounds like a later post!), the location services have the potential to be incredibly valuable to Google over the long term. Location-based advertising the the next nut Google needs to crack to continue to expand their reach in online advertising. By providing these service on mobile devices and now right there in GMail, they are planting the seeds that they will most likely reap in the coming years. Look at YouTube. In that case, they provided “all-you-can-eat” consumer-generated content… totally free and with no obligation. Only now, they are providing ecommerce links (to the songs used to make the video), advertising, etc. to try to monetize the asset. Likewise, these location-based services are likely to be the Trojan Horse that gets lots of consumers to use their location totally for free and with no obligation. That is, until they receive an ad for that Pizza Hut they are standing right next to while watching a YouTube video on their iPhone.

Posted by: Jason | December 29, 2008

Gaming twitter-based services

When people talk about their “culture”, they often mean their ethnicity, their religion, or the region where they grew up. As a child of the Internet, Internet culture is my culture. One frustrating aspect of Internet culture is the propensity for people to game systems, exploiting the properties of one (or several) person’s (people’s) work to serve their own ends.

When I was checking out DM Fail (because, yes, I do have to watch trains wreck), I was really taken aback by how quickly the “service” devolved to shameless self-promotion. Then I was taken back… back to a time when people wrote short messages to your console screen, normally when you were trying to get some “real work” done (read: playing a MUD; for the uninitiated, that’s like World of Warcraft without the 3D graphics, and it’s much more addictive than it sounds). Back to a time in the Golden Era of the Internet, when the console didn’t always know that your backspace key was meant to delete the character just before your cursor. Instead, it would helpfully print the character code (^H) of the key. Thus was born such tongue-in-cheek gems as:

That new blog post is so boring^H^H^H^H^H^Hinteresting!

Now that I understand that my culture is alive and well, I’d like to declare that, thanks to DM Fail, “dm” is the new “^H”. Enjoy!

Posted by: Jason | December 4, 2008

Implementing OpenID… in About a Half an Hour

I’m a fan of OpenID, OAuth, and the other protocols that make up what Chris Messina calls DiSo (Distributed Social). There is a lot of exciting stuff that can be done using these open protocols, but I haven’t had a compelling reason to integrate them into anything I was working on. But, the Amazon EC2 server I was working on was on the fritz, and I was waiting for the load to go down. This opportunity gave me about 30 minutes to look into how hard (easy?) it is to implement OpenID login.

I had all the key components: an OpenID login (via my friends at chi.mp; Chris also works for an OpenID provider, Vidoop, and there are many others, covering some people who certainly don’t even know what OpenID is), PHP 5, PEAR, and all the trimmings. I also had experience implementing other authentication mechanisms, such as Facebook Auth. And I had the all-important walk-through at OpenID Enabled. In about 30 minutes and about 50 lines of code (including a login form where I could enter the name of the page I was trying to reach and all the redirect code), I successfully logged into the site I was working on.

Here’s the thing. Implementing the OpenID protocol is, in the immortal words of G.I. Joe, only “half the battle.” The biggest issue facing adoption of OpenID is simply the fact that we have 50 years of legacy where people design authentication into their system when they build it. We even did it at Ringside Networks when building our open source social platform, and we knew about OpenID, OAuth, and the like (something I hope will be addressed, given some community effort and time). If you operate a site that already has authentication built in, you end up having to do significant refactoring of the authentication and user profile system to accommodate OpenID. The net result of an OpenID login is a claimed identity… and not probably not an identity your site knows anything about. I’m sure there are folks smarter than me that, 5 years ago when they were building their Web 2.0 site before there was a Web 2.0 label, separated the concepts of authentication and user profiles. But I’m willing to bet there are plenty who didn’t.

Oh, and your OpenID implementation isn’t free (at least not from me) if it can’t be done in a half an hour, just in case you were wondering!

Older Posts »

Categories