2012-10-28

Walled gardens suck

I've recently started to become acquainted with the idea of consuming content online, via services such as iTunes, Amazon Kindle Store, and Google Play.  I might be a bit slow to catch on, since people have been using these things for years.  Although I started using a smartphone around the end of 2008, an iPhone 3G, the only digital content I had consumed is eBooks mostly from Amazon.

About a week and a half ago, at the OpenStack summit, I was lucky enough to win a new Kindle Fire HD from the awesome folks at InkTank, which was quite serendipitous since I had a wish for a tablet for some time.  The [frustrating] experience of using this device, on top of the already frustrating experience with the iPhone, made me curious to understand the state of the cloud, devices, and where this is all going. I got so curious that I also picked up Google's current flagship device, the Nexus 7, for the sake of comparison.

It seems that in the emerging post-PC era, several walled gardens are emerging, and that they are becoming more and more hostile towards each other.  I really think this is much to the detriment of the consumers.  I, for one, am becoming rather annoyed at the restrictions imposed on me, in the attempt to keep me inside one walled garden or another.

Since iOS and Android are different operating systems, there is fragmentation at that level, since an app must be written for one platform.  But why are they so locked down?


Apple iDevices are totally locked down, so one cannot install apps except from the Apple appstore.  Android devices, for now, seem to be less locked down; at least one can install apps from sources other than the default app store.  (On that note, I'm actually a bit surprised that Amazon allows installs from 3rd party appstores.)

Even so, the user experience is not great.  Using Google services on the iPhone is a frustrating experience.  The google account is not a first class citizen on the iPhone, as it is on Android.  The result being that one has to login with one's google account separately for every app.  Google services are entirely absent from the Kindle.  (I managed to install Chrome and Maps from a 3rd party appstore, but the functionality is far from ideal; the google account services cannot be installed unless one has root access, so the account management is missing.)

The catalyst for the lockdown might have been the appstore, which is brilliant but also evil.  The appstore concept gives total control over the apps available; the platform users are a captive audience. When the Apple App Store was started, it really made the experience of using a smartphone into an awesome experience.  Does anyone remember how ridiculously difficult it was to load software onto a Windows Mobile phone?  The App Store made that all go away, as well as increased our 'security' ,supposedly, by protecting us from bad apps.  The cost, however, is pretty damn high, when Apple, Google, or Amazon, charge a 30% commission!  We have to assume that at least part of that cost, and probably most of it, is passed onto the consumers.


There is also a huge fragmentation of services, which is probably more worrisome.  Apple removed Google Maps from the iOS.  Amazon eschewed google services from the Kindle; no google maps, so instead they endorse some lame Nokia app; no google search, so they use Microsoft Bing, but for how long, we don't know.  Amazon, Google, and Microsoft each have their own cloud storage systems, which is a pretty big lock-in once one has tens of gigabytes of personal documents and content on one of these.  What is the logical conclusion of this trend? Will each of these walled gardens have to independently implement all of the required services?

How feasible is it for each of these companies to successfully execute quality services in such disparate areas as search, maps, email, cloud storage, etc?  Not to mention the content distribution services for eBooks, music, video, movies, online courses, textbooks, etc?

Each of the competitor companies has its own strengths and weaknesses.  Some of Apple's services, like maps and mail, are not very good, and it's unclear if they will ever match Google's or Microsoft's.  Consuming content from the Google Play Store is not a great experience compared to Amazon's Kindle store.  Apple has good educational content, much better than others.  Google doesn't even offer music as far as I can tell.  Amazon doesn't have its own maps, but has tried to build them before, see A9.

Why can't the users have the choice of using the best of breed service for each function, without jumping through hoops and achieving a suboptimal experience.  What happened to using open standards so that these services can interoperate?

What we have to remember is that these devices are becoming extensions of their respective clouds; they are not general purpose computers.  The cost of switching ecosystems is high, and is becoming higher.  There is the cost of investment in apps, and there is also the data that is trapped in services in the cloud. How are consumers supposed to choose? The choice isn't just of the device, iPhone 5 vs Galaxy S III, but about the entire ecosystem!  Is there even such a thing as the optimal choice?

Tablets and phones are sold as consumer devices, not general purpose computers.  They are as powerful as computers, and far more powerful than computers of 20 years ago.  If desktops are dying out, and even laptops are losing their luster, will access to the internet move to these consumer devices? The locked down nature of these devices will inhibit tinkering and experimentation, the likes of which helped educate and foster creativity.  What do these guys, Google, Amazon, Apple, etc, want us to become?  Dumb consumers of their content?  These mobile devices don't seem very good for creating content, just for consuming it.  (I might be overgeneralizing, so please chime in if you believe otherwise.)

Anyway, there's my rant.  I'm very concerned about where this will all lead.

2009-07-04

Google App Engine Task Queue

Google has added a task queue feature to the app engine (http://code.google.com/appengine/docs/python/taskqueue/overview.html). So far it's Python only, and they say Java should be coming soon. This is an essential feature for being able to do break down work into fine grained tasks, which are still subject to the 30 second execution limit and a daily quota.

2007-12-31

Review of Haru, downtown near Wall

Sadly, this is a typical bs yuppie restaurant which coopts a Japanese name, yet serves poor imitations of Japanese dishes. It's a real shame too, since the space it so amazing. One more piece of advice - if your waitresses are from Long Island and don't speak Japanese, don't make them welcome the patrons with 'Irasshaimase!' - there's nothing authentic about it, it's just insulting, or ridiculous, or both.

Food-wise, I had only unaju, which was total crap. Come on guys, you can get the sauce from the freakin' supermarket! Why are you trying to mess with it when you don't understand it?!

The bar is cool, but I'd never eat there again. Oh, I just remembered - my vodka tonic was weak too! Sigh...

Review of Sobakoh

Just before I sadly left behind my beloved Nakameguro, I went to my favorite soba restaurant, which is absolutely excellent - we'll leave that one for another time. Also, two weeks before I had eaten a wonderful kakesoba in Saitama-ken. I might have been all soba-ed out, but I just can't get enough! So, when I got here to the Big Apple, naturally I wanted to find only the best. According to some random articles Sobakoh is *the* place. Well, let's move on to the food.

To start, my friend and I ordered a misogindara (sea bass) which was very tasty, but a bit on the sweet side. I then moved on to kakesoba. The soup was reasonable - I especially liked the addition of a slight bit of citrus (whose name escapes me presently). The soba itself, unfortunately, I feel was overboiled! The noodles were even a bit 'short', having broken up. That was a bit of a showstopper for me. I am very willing to give it another try, and get zarusoba, which might have a better chance of maintaining structural integrity.

The soba-dude in the window is a nice touch, but ultimately it's not about the show, it's about the food!

Review of Otto's Pizza

I am always looking for a good pizza! While walking around the East Village the other day I passed Otto's Restaurant Enoteca Pizza, what might be a decent Italian restaurant with a decent pizza. Despite the fact that they have the cohones to call themselves an 'Enoteca', mostly to appeal to rather clueless patrons, I decided to give it a shot. I was interested in one and only one dish, Pizza Margherita, which they claimed is D.O.C. (Denominazione di Origine Controllata). Let me cut to the chase. It was *fine*, but very unexceptional. The most positive comment I can make is that "at leats they were trying to make Pizza Margherita", as opposed to 99.99% of the pizzerias around here which don't give a crap about what exactly they're making.

More detailed pizza comments are as follows. The cheese seemed like the real deal, mozzarella di buffala, though it was rather skimpy. The sauce was not bad, in that there was nothing bad about it, for example too much sweetness, but it was also unexceptional. The real problem was the crust, which resembled a dried out pitta bread. Clearly these guys know nothing about what a proper pizza crust is supposed to be like! Thin, yes, but also moist, chewy, glutinous! Come on people, how hard can it be?! I'm not a pizzaiolo but for fuck's sake, at least I know the theory of making a proper pizza dough!

Anyway, given the state of the crust, I am unlikely to visit Otto's again. Oh, I almost forgot - I figured out what 'enoteca' means. It means that they gouge you with 15-20 USD glasses of wine. :-)

Yet Another Perversion of Nature

I just saw this infomercial for the Bowflex Treadclimber. Now, those of you who know me already know that I'm not a big fan of exercise machines, but I think this one takes the cake!

Here's the new cycle of energy waste. People eat too much food, which did itself require a substantial amount of energy to produce, and thereby become fat. Now, being dissatisfied with their newly acquired girth, they embark on vigorous exercise routines, some of which involve machines which themselves require energy to operate! I thought it already sufficient that the bodies of humans have been perverted into heaters - isn't that, after all, what we're doing when we eat too much and then 'burn it off' - now it seems that the heater itself needs more power yet! Doesn't this situation strike anyone else as incredibly stupid?

On a slight tangent, I recently read an article about the diet of the medieval man of Europe. Apparently this diet consisted of nearly 5000 calories per day, composed mostly of bread, meat, lots of vegetables, and copious amounts of relatively weak ale. Sounds pretty good eh?! Well, let's not forget that the typical medieval man also did physical labor for over 14 hours per day! Most people these days barely do 30 minutes of physical activity per day. Clearly we should do more, normal, natural physical activity. We don't need machines for that! We have legs and feet!

Finally, we should be eating only as much as we need to sustain our typical daily lifestyle, not more. That probably means no more than 2500 calories for most of us - I daresay 2000 for the vast majority!


Oh well, just my thoughts eh. I have been known as a person who loves food and has many cravings. However, I have over time acquired the ability to control my cravings, and especially to contend myself with smaller portions. It requires only will.

2007-03-19

RPC over JMS with Load Balancing

I've been working on putting together a very simple way to do RPC such that they're load balanced to a set of servers implementing the interface in question. After not to much reading, I realized that this path has been trod on before. It took me a little time, but I did manage to put together a test using ActiveMQ http://activemq.apache.org/, Lingo http://lingo.codehaus.org/, and Spring http://www.springframework.org/. ActiveMQ provides the JMS Queues and consequently the load balancing. Lingo provides a request/reply mechanisms using JMS Queues, which normally provide only oneway asynchronous messaging. (That's not 100% true, but we'll not get into the details.) On top of all that, Spring Remoting can export any POJO implementing a Java interface as a service. There are a few too many layers to this whole thing, coupled with a bit too much use of reflection for my taste, but it does work. Now to test its performance...