Today is a good day to code

iOS 6 is Going to be Lame … But Apple’s Competition Should be Deeply Afraid

Posted: June 15th, 2012 | Author: | Filed under: Apple, Companies, Google, Microsoft | Tags: , , , , , | 1 Comment »

The surprises everyone was waiting for from the Apple’s WWDC keynote never arrived. Instead, we got a handful of evolutionary features added to generally excellent software, and an amazing piece of hardware. I was actually yawning while following the liveblog. That fact should have the entire tech industry shaking and quaking. That boring keynote just put everyone on notice, but they may not realize it yet.

Apple has done this before. A few years before the launch of the iPhone, the iPod, iMac, and Mac OS X went through a period of minor updates, feature and spec bumps. All of these products never became any less incredible, but Apple wasn’t doing anything exciting.

We know now that Apple had a light guard working on continuing to bump aspects of their main product lines, while the majority of the engineers were toiling deep into the night to build iOS and all of the apps that we all know and love that launched on that device, namely mobile Safari.

It took them several years, while they were consolidating their dominance of the PMP market to completely disrupt everything we consider true about mobile computing. That is not to say that the products they launched in the interregnum weren’t great. The iPod nano launched among other things, but I remember thinking along similar lines as others, is this all you’ve got Apple?

The answer today was obviously, No. They had much more, and knew it.

We are seeing the same general stagnation today. It makes you wonder, what the hell are they doing in there? There is really no way to know, but when it is ready I would expect no less disruption than we saw when the iPhone came out.  Apple has maybe 14,000 engineers, do you really think that all of them are working on iOS 6, Mountain Lion, or trying to make the MacBook Pro thinner?

Apple takes their time, so it could be six months, or it could be three years. If I were a competitor of Apples, I’d be getting ready to be disrupted.

I’d think bigger than a television set Apple has already made personal content consumption more prevalent than group consumption.

Sitting around the TV and watching a movie rarely happens anymore. Everyone in the family, each watches whatever they want on their phone, iPad, or laptop.  Apple’s next great breakthrough doesn’t even have to be strictly media or tech. Perhaps it will be the iCar,  some sort of iAutomation for your house, the iHome, who knows.  Perhaps their plan is to start building luxury apartment buildings in San Francisco.  Making spartan, but delightfully, designed homes built out of glass and aluminium.


Dr. Strangephone or: How I Learned to Stop Worrying and Love Windows Phone

Posted: May 30th, 2012 | Author: | Filed under: android, Apple, Companies, Facebook, Google, Microsoft, Verizon | Tags: , , , , , , | No Comments »

Lumia 900 Live Tiles Flat

This weekend I switched back, once again, to Windows Phone from my ICS packing Galaxy Nexus.  Previously, I had switched to Windows Phone from my Froyo ( can you believe this phone was launched in the US with Froyo? ) Infuse 4G.  I seem to always switch away from Android eventually, and I haven’t been sure why, until now.  This is not meant to be an Android hate fest, I don’t want to say I hate iOS, and I don’t hate any OS.  I am a huge fan of iOS and Android, nor am I a fanboy of any camp ( any more ).

I think that Android is an excellent implementation of  the vision for which it was designed.  iOS was the first and is still the leader in its category. Both of which are largely cut from the same cloth.  Who copied whom, I’ll leave for history to decide.  For the my purposes, however I am happier with Windows Phone, and I have finally figured out why.

Windows Phone is Designed Around Use Cases

As I was transitioning between my various Android handsets, my iPad, and my new Lumia 900, I kept thinking about what it was in Windows Phone that kept causing me to want to use it.  The browser is merely sufficient, the hardware is technically behind the curve ( while the phone hardware as a package is superlative, hats off Nokia ), and the OS is, well… different.  One of the core things, which was immediately apparent, was that it didn’t take long for me to get to what I wanted to do with the Lumia from the live tile home screen.

I don’t subscribe to the “Smoked by Windows Phone” campaign, I think that was stupid and wrong.  Android is typically faster in specific areas, like time to app launch, etc… iOS smokes both of them in scrolling and touch screen responsiveness as well as time to app readiness on the newer iPad2/3 and iPhone 4S.  Windows Phone’s speech to text is great, but not comprehensive;  Android’s speech to text is better than Windows Phones, Siri’s voice recognition is marginally better than Androids, if only because of her witty retorts.

Despite all of the shortcomings I have just described, I still prefer Windows Phone.  For a few months, after I started with Windows Phone 7 on my Focus S, I started to think something was wrong with me for liking it.  Maybe I was a “feature phone” kind of guy after all.  The tech media kept telling me that Android and iOS are better because of their broader app selection, more sophisticated chips, hardware, etc… I could readily agree with this assessment, after all, Windows Phone doesn’t have NBA Jam, or Angry Birds Space.  The more I thought about it however, as far as I am concerned, I prefer to use my phone for communication first, and apps second.  Being presented with a grid of apps, or strange widgets, or the wrong panel of the launcher were all in the way of simple communication.

When I use Windows Phone, it is clear, I press people for communication, me for updating my social networks, phone for calls.  This simplicity, and clarity; that is what keeps drawing me back.  It isn’t that Windows Phone is faster in any way than Android and iOS, not that it is slow.  It is that each specific task that I want to do with the phone has a well defined path, is clearly encapsulated, and is a complete end-to-end experience with no cruft.  It isn’t chaotic like the Android intent system, leading me all over the place from app-to-app, it isn’t ridiculously siloed like iOS.  Things that should be combined, like Facebook and twitter are grouped together.  Games are all in the same place, and share a coherent experience that is clearly differentiated from the other flows for when I want to play games.  Music, podcasts, and audio are all together, unified in their Zune experience, which also is differentiated from the game flow, and the social flow.

Sideways Lumia 900

Android and iOS are Designed Like Desktop/Tablet OS’s

Once I began to think about use-cases, I started to see how ill fitted Android and iOS were for the phone.  I started to put devices into categories based on these use cases, to try to figure out where they go wrong.

When using my desktop / laptop, I am consciously sitting down to perform some fairly complicated task, I expect to have to make lots of decisions to perform that task, and I do not mind the complexity of the windowing system.

When using my tablet, I am typically settling down to enjoy some content, a game, a book, a fun diversionary app, or I am attempting to use a productivity app, for which I could perhaps perform the task on my desktop / laptop.  I don’t mind actions taking a little extra time on my Tablet, I am expecting to explore and engage in an experience.

My phone is different.  I am not typically trying to explore.  I am trying to find a restaurant to eat at right now, or I am looking for my friends house and I am wandering around trying to read street numbers.  I am buying something and need to compare prices.  I am trying to call someone to have a conversation.  In short, most of what I am doing with my phone is immediate I don’t want to browse.

The grid of apps, is really nice for presenting an experience, it is an invitation to browse, to wade into an entire universe of possibilities.  A bunch of apps is great for when I want to spend time looking around, like window shopping.  I don’t necessarily know what I want to do, I just want to be entertained.

I don’t really need apps on my phone, I need the workflows that are in those apps.  I need the restaurant information inside of the Zagat application, I need the directions and augmented reality that is inside of google/bing maps.  I need the social graph that is inside of Facebook to find out if my friends are busy this weekend.  I need the content of the twitter app to find out what is going on right now.  As far as exposing that, some apps for Windows Phone can do this with their live tile, for other, well designed Windows Phone apps, there is a clear use case for the application, and it brings as much content to me as it can to assist me with doing something right now.

Windows phone isn’t perfect, there are still quite a few missing use cases that I would like to see fleshed out, like the augmented reality directions, or a better workflow around photo sharing.

When you think about things in use cases, you actually start to see that the multitasking system that Windows Phone employes is correct.  It is only broken if you are looking at it as you would look at Android or iOS, or if you are comparing your mobile computing environment to one that is less mobile.  Windows Phone is better thought out than its competitors. Once you let go of the fact that you believe you want your smart phone to be just like your desktop/laptop/tablet, then everything will be fine.

So what if Windows Phone doesn’t have many quality apps, for most of the things I want to do, I am covered.  As they add apps, so much the better, I only hope that the developers think about how their users will accomplish tasks in real-time with the applications they provide, and don’t fall back on the Android and iOS way of sticking a bunch of data into a silo and expecting the user to poke around to find it.

Lumia 900 Top Third

Windows 8, in its current incarnation is half-mistake, in my opinion.  For the designers to take UI and a set of interactions that are successful for phone use cases, and apply them to a desktop OS is to turn something useful into a chaotic chimera.  I believe that Microsoft is not allowing for as much richness and complexity as the interaction patterns of a stationary computing experience should provide by implementing the Metro interface on the desktop.

In the legacy interface, they are just screwing up what was working.  It makes sense for them to take the same approach as they allowed the Windows Mobile team to take.  Think about the use cases that people are likely to encounter when they are attempting to accomplish something with their desktop/tablets.  You may not be able to unify the interfaces, it is OK.  Apple is falling into the same trap, it is leaving a massive opening for someone to do something awesome with the desktop computer…. Canonical are you listening?

Let it go, the desktop paradigm is dead.  Stop worrying about how things used to be and learn to experience Windows Phone for what it is.  A beautiful breath of fresh-air, a new way of thinking about mobile interaction.  Hopefully Microsoft doesn’t screw it up.  If their marketing is any indication, I am worried about the future.  If they leave the Windows Phone team alone, and allow them to keep doing what they are doing, things will be great.


Google Should Voluntarily Break Itself Up AT&T Style

Posted: January 21st, 2012 | Author: | Filed under: AT&T, Companies, Facebook, Google, Management, Microsoft, Twitter | Tags: , , , , , , , , | No Comments »

The Bell Telephone system courtesy of thephonebooth.com

When Google added world plus social, at first I didn’t think there was much of a problem. I understood that since Twitter and Facebook limit the ways in which Google interacted with them, it wasn’t really possible for Google to offer truly social search. This cabal between Facebook and Twitter is quite obviously hugely damaging to Google’s future interests as a company. So I also supported the need for Google Plus.

However, as I have been thinking about it, most companies in the past have gotten into trouble, become anti-competitive, or foes of the free market under the banner of simply looking out for their business interests in responding to a threat. Inside most potential monopolies, the issue that crops up after smashing a formidable challenge is when to stop.

Google is promoting G+ as the bulk of its social search, G+ is completely unavoidable as you are using the search engine. This puts Facebook and Twitter at something of a disadvantage. They also promote YouTube in a similar in-your-face manner, putting Vimeo and other web video companies at a disadvantage.

It isn’t hard to imagine a world in which startups don’t even look at web video because YouTube is un-assailable. Similarly one could imagine, though it is more of a stretch, that eventually Facebook and Twitter would whither and die at the hands of Google Plus since there is really only one search engine, and the entire world uses it. That world would be ridiculously anti-competitive, and no one, including Google really wants to see that.

I believe that if Google had had its just desserts, Facebook and twitter would have given it unfettered access to their data, and Google Plus would have been unnecessary. But since they didn’t G+ is more than beneficial for Google’s survival, it is essential. The same thing could be said about YouTube and Google Music in the face of iTunes.

One could argue as well that Google hasn’t been very effective of late at controlling what is going on within the company. Clearly there is a massive amount of resource contention, and a general challenge in keeping everyone on the same page, and playing for the same team. In addition, there is the kind of limited thinking that prevents the company from disrupting its own business units. Microsoft had(has) this problem, so did IBM, and so did AT&T.

AT&T, however operated like a well oiled machine, they had no problem crushing all competition and effectively responding to all challengers. Google is just as innovative as AT&T used to be, they will similarly get through their management issues, in fact I think they are very near this point. Google getting through their effectiveness issues however, is exactly what bothers me; Once they become as effective as AT&T used to be, isn’t that where the government steps in?

So what I propose instead is that Google break itself into separate businesses voluntarily. One of the main rules of business today is never to let a competitor, or government, disrupt you. It is better, and more profitable to disrupt yourself. I would suggest to Google, for this reason, that now is a good time to do it.

I would imagine that Google would become 5 corporations, split along the lines of social, media, search, mobile, and advertising. This would see Google Plus, Reader, Gmail, Google Talk and Google Docs become the Google Social business. Google docs may initially seem like a strange product to call social, but the purpose of Google Docs is to collaborate on work. That is pretty social as far as I’m concerned, in fact, it is probably the most social that people are in general.

The media business would consist of YouTube, Google Music, Google TV, and the nascent Google Games. The search business is self explanatory. Mobile would be Android, but also Motorola with the new purchase. And Google advertising would be their display, print, and television advertising business. Each company could retain a small portion of ownership of the other company that it was dependent upon. For example, Google media might maintain a 5% to 10% stake in Google social such that they can be sure that their requests are heard and honored. All of the business would have a small share of the advertising business, but the total should not add up to more than 40% so that the advertising business could remain autonomous.

The resulting companies would end up becoming far more competitive and profitable than their corresponding business units, due primarily to the need for providing open APIs to the other businesses that need their services. In the process, these businesses would make these APIs available to other startups who could build off of Google’s services as a platform, driving further profitability and end user lock in.

This would in turn surround their competitors, who are still just a simple silo, and who would begin to run into anti-trust concerns themselves. The now ridiculously nimble Google, which could be known as the Googles, would have them surrounded.

As a single entity Google is vulnerable to the same diseases which have, in the past, felled their erstwhile competitors. As multiple independent profitable companies, the Googles could remain dominant for decades. This would be better for the industry as a whole because each Google business with public APIs would provide a platform for numerous job creating profitable startups. C’mon Google, do what is right for the market, and for your business. Don’t wait for the DOJ to hold a gun to your head like AT&T. Even with the government forcing the issue with AT&T, being broken into the baby bells seems to have worked out pretty well for them.


The Battle Between Geeks and Non-Geeks

Posted: May 24th, 2010 | Author: | Filed under: android, Apple, Companies, Google, iPhone, Microsoft, Programming | Tags: , , , , , | No Comments »

This weekend, on a bike ride, I was thinking through the Apple vs Google situation, as well as the paid vs non-paid, and this whole concept of open systems vs closed and I came to the conclusion that it is really just about geeks vs non-geeks.

For about the past 20 years or so, computer stuff, anything digital really, has been produced primarily by the geeks at Microsoft, and later by various open source geeks around the world.  It was reflecting their world view, that everyone ought to be able to tinker, and that they might want to.  This caused the severe amounts of confusion that people have had for years.

It would appear that now that consumers have a clear and viable choice in Apple and the iPhone that they are choosing, in droves, really, the closed app store based system.  It would appear that consumers would prefer an app store to the open web, an individual coherent vision to multiple pieces of different developer’s visions of the optimal way to do x.  As Apple likes to put it, they want an appliance, in which applications are just another type of content, and all methods of doing anything are consistent.

I would say that consumers have chosen that, but not because Apple always provides a superior method, or that they like being closed an limited,  I would say that it is because Us, as geeks, have not done a good job of providing clear and usable alternatives.  For developers and geeks, configuration and making tons of choices are just table stakes for getting our devices and software working exactly the way we want them to work.  We have a difficult time creating things that violate the ability to choose a different way.  Part of that is that most of us never have the hubris to think that we can decide for others how to do a given thing, or which thing to choose.  But that is exactly what makes Apple more powerful than Google to the consumer.  Google is catching on, but in a way, at the same time they just don’t get it.

I, personally, understand and prefer many choices.  I like Mac OS X and Linux, particularly because there are so many different ways to set things up, the 3rd party developer community, around the Mac especially, have done an amazing job of filling in the usability gaps that Apple has left.  Should users choose these productivity enhancers, Apple has wisely seen fit to let the 3rd party devs keep doing their thing.  The problem with Android, and the internet in general is that most people are not like us.  They don’t want to seek out and try 5 different text editors and window managers, and text expanding solutions before finding the right one.  They want to just use it most of the time, and they would prefer if the base implementation didn’t suck.

Geeks, and Google, we would prefer to just let the base interfaces and systems suck, since our partners are either going to replace them, or augment them.  That is exactly what shouldn’t happen.  Technical solutions should be like European Socialism… The government provides a generally acceptable set of services that everyone pays for, but it is possible to get better solutions.  This provides something of a floor for service providers.  Likewise, if you are developing a music solution for example, provide a playback solution that works with it first, then give the ability to plug into other services if the user prefers.  That way, they aren’t left hanging initially.

Where I get frustrated with Apple, and where I continue to choose Google’s services, even they are less usable, are that they do not give me the latter solution.  They provide a kick-ass initial implementation, but when I want to go and replace or augment it, particularly around the iPhone ecosystem, there are no options, in fact, they go out of the way to defeat any other option.  If I wanted to use Apple’s music purchasing service, but I didn’t want to use the iTunes application, I am SOL.  Apple feels that they make the best music playback solution as well as the best service.  For some they may, but for me, I would much rather use AMAROK or something else to manage my music, inferior or no.  If I chose the other way, I might want to use Amazon’s MP3 service for buying, but iTunes for managing.  Apple should make that easy for me.

At some point, geeky companies like Google, and to their credit, they are starting to, need to create good baseline solutions that run up to, but stop short of competing with other products and services that are auxiliary to their primary product.  Apple needs to accept that people may occasionally choose to do their own thing and allow them to.

I do not buy the assertion that in order to provide a cohesive solution you have to block all others.  I feel that a system can be aesthetically pleasing and useful, as well as permissive.  Karmic Koala I think gets really close to being there, but there are still too many places that I can get into with the OS where regular users would go WTF?!!?

This is why I am continually working on a new OS that as an ambition would combine the completeness and ease of use of the Mac OS, but honor the internet, as well as user choice.  They are not mutually exclusive, and the only way to prove it is to build something that shows it.  It is a huge amount of work, which is why the only way to do it is open source, but since you have to make clear choices for the user, at least in the initial state, some stuff just couldn’t be committed.

Basically, end-users won’t realize the cost of the choices they are making until they are gone.  In a balkanized, app-store-ized internet, choices will be limited, prices will be high, and satisfaction will be generally low.  That is where we are going, that is the choice that users are making because they can’t wrap their heads around the internet.  It is our fault as geeks, and we are the only ones who can fix it.  The average user is going to pick the shiniest and easiest widget.  There is no reason we can’t make that.


What if Apple’s Vision of a Modern Platform is Right?

Posted: February 8th, 2010 | Author: | Filed under: Apple, Cocoa, Companies, Google, iPhone, Microsoft, Objective-C, Programming | Tags: , , , | No Comments »

This past weekend, I was thinking more about the iPad.  One of the thoughts that kept coming back was about the iPhone / Cocoa Touch development ecosystem as a platform, and how that looks in comparison to existing platforms.  The conclusion that I came to was a bit disturbing to me as a developer concerning the future of application development in general.

It is somewhat useful to quickly recap the development environments of the past to contrast them to today.  First we need to talk about Microsoft and what a platform meant to them.  To Microsoft, the computer was a tool for technical users.  Even if their said goal was to put a computer on every desk, the engineers clearly have and had difficulty putting them into the place of their users.

As the computers’ abilities increased, so did their complexity, and the complexity of the OS.  Doing simple tasks like taking a piece of text from a word processing program and putting it into your spreadsheet program in DOS was mostly ridiculously complicated.  Windows made things a bit easier initially, but only for the most technical users.  Doing what should be mostly simple tasks were still difficult, DOS was still around and necessary to do many common tasks.  The thing booted from DOS which created no end of problems.  It just wasn’t an optimal solution for the mass of computer consumers out there.  This was evinced by a proliferation of “computer” classes which were supposed to take the burden of designing something that was easy off of the engineers who designed the system.  That it did, and they proceeded to make a system that was even more of a tangle.

For those who would say that the Macintosh is much easier, I take issue with the word “much.”  In reality Unix / Linux / Mac OS X.x is not terribly easy to use.  To someone who has a good understanding of the computer, and conventions it is much simpler and more straightforward to use and manage.  For a technical user Apple does a fantastic job of making most things that normal people want to do easy without preventing technical users from doing complicated things, but the underlying complexity is not without its cost to the typical end user.

Now, if you were designing a platform today, for millions of people worldwide, with different levels of technical ability, the issue of computer and operating system security looming large, and the ever increasing abilities developers have to make computers do insanely complex things in the blink of an eye, how would you develop it?  Would it be like Windows, putting the burden of learning, understanding, and protecting themselves on the user?  Would it be like Unix / Linux, putting the burden of everything on the user, but exposing incredible levels of customization to the user?

What you would do would depend on what your goal was, but if your goal was to provide the best possible user experience, you would likely ( I know that I would ) take it upon yourself to protect your users from viruses, phishing, hacking, malware, etc…  You would likely make it difficult or impossible for developers working on your platform to make choices that would negatively impact the usability of the platform.  You might choose a somewhat difficult language combination for development to make a barrier to entry for developers, to make sure that the developers that did create for your platform were of a caliber such that they could actually make compelling content for your devices.

You might establish a certification board of some sort to determine if the applications being developed for your platform met your requirements for ease of use, stability, and security.  You may come to the conclusion that the only way to enforce your vision of the platform and be the ultimate consumer advocate, you would have to make sure that every application went through this board before they were available on your platform.  Once available for your platform, you might make the installation and configuration experience as painless as possible for the user, even if it meant imposing further complexity of implementation on the developer.

Does any of this sound familiar.  When I went through, designing a platform as a consumer advocate, what I ended up with was pretty much like what Apple has for the iPhone / iPad / iPod Touch development environment.  With one exception, I was actually more stringent in that I wouldn’t allow wapletts ( web application applets ) on the platform.  I would require those developers to just build a web application customized for the experience.

The funniest thing, or strangest if you don’t like that colloquialism, was that designing the platform as a developer, it didn’t look anything like this, in fact, it looked much more like the development experience around Ubuntu linux.  Where I ended up is that perhaps as developers, we are heaping too much responsibility on the average user trying to use the platform.  I think that Apple has the right mix with the app store experience for the types of devices that are running the Cocoa Touch framework on Objective-C.

That being said.  I don’t like it.  However, I understand it, and the UX / UI Designer at my heart rejoices at the emergence of this paradigm, where the responsibility for security and workflow consistency are on the developer, not the user.  But the programmer in me rebels at having someone tell me how to design and implement what I want on my device.  Having someone lord over me as to what is an acceptable software application is irritating to say the least.  I think the UX designer, and consumer advocate in me wins, and there are platforms like Mac OS X that I can work on to satisfy the programmer urges in me.

I predict, however that Apple will do away with the use of the existing Mac OS X on the MacBook,the iMac, and the MacBook Air.  I think they will start running this Cocoa Touch OS with all of the restrictions and HIG guidelines as the iPhone.  I think that there will be an app store for these devices, and I think that it will be the only way to install software.  Seeing iWork on the iPad is the first example of the migration of Cocoa Touch to a full fledged computer operating system.

Apple will probably, keep the MacPro line and the MacBook Pro, perhaps adding an iMac Pro running Mac OS X.x in the way we have always come to expect it, and it will likely become even geekier than it already is.  The most floor slapping, hilarious thing is that Apple has come full-circle to an old Microsoft idea that was right on, however, big surprise, was improperly executed.

Originally Microsoft had its Windows Professional and Home lines, they had Windows 2000 for business and Windows 98 for home users.  The concept was that they wanted to have a much simpler OS for normal consumers and a much more complicated, and powerful, platform for businesses to use.  Apple has slightly turned this on its head, they, in my humble opinion, want to have a platform that is an awesome one for media consumers, and general consumers, and a platform for the programmer geeks that have made Apple what it is.  It is for that reason that I anticipate a iPad Pro soon after the launch of the iPad, perhaps even as soon as WWDC ’10.  The iPad Pro would likely run a Cocoa Touch OS that was less restricted, and more like Mac OS X.x.

Ultimately, I think Apple wants, and will make everyone happy, but we are at the beginning of this incredible consumer platform, and I think that for its stated goals, the App Store, the “awful policies,” et cetera, are the best possible way to get to it.  However, I think for its perception among geeks, Apple needs to communicate their strategy as soon as possible.  If they intend to make all of their devices like the iPod Touch, then we have a problem.  However, this is extremely unlikely.  I can’t wait until WWDC this year!


Google Wave : Simultaneous Attack on Facebook, Twitter, Yahoo, and Microsoft

Posted: January 29th, 2010 | Author: | Filed under: Companies, Google, Microsoft | Tags: , , , , , , , | No Comments »

I have had a wave account for some time, but I never really got it.  I understood it as a communication platform and all of that, but I didn’t really understand what was in it for google.  Then I thought a bit more about it and I remember something that Yahoo! said a long time ago, “email is the social network.”  That didn’t make sense to me at all, until now.

Most people use email for a large chunk of their interaction with other people.  By Yahoo! saying that email is the social network, they were indicating that most of what Facebook does is overglorified email.  People typically, pre – facebook would share photos, music, and videos over email.  The biggest complaint was that email didn’t allow them to have large enough attachments.  Enter youtube and flickr.  They allowed people to embed links to larger content and then email them.

Enter Facebook.  Facebook allowed people to be able to control who could see what.  It allowed for semi-private posting, plus all of the features of youtube and flicker with email.  It became the ultimate communication platform.  Once apps was created, it was over, runaway success.

Google initially tried to build a social network with Orcut, but that really wasn’t going to have the traction that Facebook had obtained.  Google wisely stopped pushing that.  When wave was announced, I thought that it was aimed specifically at outlook in the enterprise, and maybe some minor aspects of personal communication, but nothing significant.  However, with their plugin system, and its federated nature, it starts to pretty much become a better facebook than facebook.

The first aspect of Google’s attack on Facebook with Wave is that it is private by default.  Waves are only available to specific people or groups that you explicitly choose.  You have a wave status that you can update, you can attach pretty large files or URIs, or even embed some content into the wave… There is commenting.  It really feels like a social network, and the plugins are just genius.  This will eventually challenge facebook since anyone can run a wave server.  It also tackles Ning, and pretty much any other social network out there.  All it takes is for Google to flip a switch to give users the option to produce a public wave, or a wave that all your contacts can see, and it starts seriously eyeing content management systems.

It attacks Twitter in that it is immediate, and it is optional.  I can follow or unfollow waves as I wish, so I can jump in and out of conversations.  Something that I have desperately wanted for some time, this is what makes Twitter and Yammer awesome.  That I don’t always have to pay attention to them, email is too immediate, and there is always important stuff mixed up with unimportant stuff.  Wave lets me discriminate.  Wave will always scale better, and have more history, therefore more data mining value than Twitter.  It is federated, and peered from what I understand of the spec, and therefore should be more resilient than anything a single company, save Google could build.  Also since it is an open standard, more people should get behind it.  If I were Twitter, I would be looking at how I could merge my service with the standard.

Wave destroys Yahoo mail, period.  I would imagine that Yahoo has something up their sleeve since they killed 360, but they are hurting so badly for cash right now that I’m not sure.  I think that a federated wave could hurt a lot of web email providers.

Finally, Microsoft.  Exchange has hammered everyone for a decade with its expensive licensing and limited feature set.  Wave easily destroys it on features and usability.  Hopefully Google will unleash Wave into Google Docs, and the enterprise Google Docs.  I think that savvy IT managers and most of the engineers will jump nearly immediately.  This will be mostly the end of Yammer if it happens.  Although I think Twitter and Yammer have features that wave is missing, the standards body could just add them, everyone could implement their UI for the features and be done with it.  Microsoft exchange and outlook never really understood why anyone would need additional features and media types, so I don’t expect for it to live long past the wave proper launch with enterprise wave server and client providers.  The costs would be so cheap that it would be difficult for them not to look at it.  Especially since most enterprises are still running very old version of Exchange.

Microsoft has such a tarnished reputation in enterprise now that most people have to seriously look at whether to upgrade to the latest Microsoft thing or not.  Mostly they trial it for extremely long periods before committing the updates to the masses.  Since waves can persist, this can even replace sharepoint, and it does it with a metaphor that people are very comfortable with… email.


The End of WinTel: Quad-Core ARM Cortex A9 Apple Tablet

Posted: July 24th, 2009 | Author: | Filed under: Apple, Google, iPhone, Microsoft, mides | Tags: , , , , | 1 Comment »

I have been poking around with ARM chips via the beagleboard for a while now, and I have to say that at a far lower speed, they are much more energy efficient than the Intel Atom, and I have a hard time finding the difference in performance.  After Intel’s tirade at that conference, I was sure that there was something to the threat from ARM, now we are seeing some rumors about the possible fruits of the Apple / PA Semi merger :  AppleInsider exclusive: Apple Tablet Early Next Year.

While that is interesting in its own right, I think there is more at stake here than just what chips are powering the coolest devices.  I have been waiting, as have most everyone else, for this conceptual tablet.  I want to not have to carry a Kindle, an iPhone, and my laptop.  It would be awesome if I had a single device that used wireless HDMI to connect to my screen and speakers, bluetooth to communicate with my keyboard and mouse, and 3G for phone calls and mobile data.  This mythical tablet is the closest thing to this.  If it runs full OS X, and has the ability to run iPhone apps as well as native OS X apps it will complete the hat trick.  It should have a virtual keyboard for when I am not near my bluetooth keyboard, and when it is in proximity, it should use it, without dialogs or configuration.  Likewise when the monitor is away, it should display on device, otherwise, it should use my monitor.

So even if this device is only partially what my dream is, it will be enough to get me to buy it and probably most of everyone else will buy it too.  That makes for an interesting shift in the consumption of applications.  Now people will start developing for mobile first and desktop second.  This means that they are developing for ARM first and Intel second.

From the server room to our pockets, power is a concern.  One of the things that I can’t wait for is the ability to have a server that runs 100 ARM Cortex A9 cores at 1 GHz instead of 8 CPUs at 3.4 GHz.  The former server would consume way less power and perform far better as a web application server due to the extreme threading that would be possible.  Desktop machines would follow directly behind with 50 core desktop machines with 50 PowerVR video card on a chip chips with the monitor divided up in a 25 x 25 grid ( this will take some work ).  This could be a very thin box with only one very silent fan and have insane performance.  Not to mention that the same machine could be a laptop that runs way cooler than my MacBook Pro, which hovers around 135 degrees(f) while just playing iTunes.  It could get 16 hours of battery life using the same battery that I use today.

In this world, Apple is far better positioned than Microsoft, with their / Kronos’ OpenCL.  Snow Leopard will be in a great place to benefit from this type of architecture.  Not to mention the AppStore, Apple has the DRM, distribution, signing infrastructure all in place, and hundreds of thousands of developers know how to use it, don’t think they aren’t thinking about pushing this model to the macintosh for application distribution, it just makes too much sense.

The future is clearly mobile, but who is going to lead that charge is an open question.  Apple has made moves to secure their superiority for the next few years, Microsoft appears to be going backwards.  Intel just can’t seem to break into the ultra-low power CPU space without an acquisition.  I think the Wind River purchase was to put a dent in the number of ARM customers.  Clearly the future is not dominated by WinTel.  I am shocked that AMD hasn’t abandoned its platform and moved to ARM computer on a die chips, I am sure you could imagine how awesome it would be to have a muti-core ARM chip with an ATI GPU on a die.  Intel would say that the ARM doesn’t perform as well as their Atom CPU, but that was the mistake that let AMD back into the game before, they just kept sticking to the performance argument while the market was telling them that the current speeds were fast enough, and that they wanted better performance per watt.  If Intel hadn’t had that R&D group pushing ahead with the Mobile Pentium in Israel, the computer industry would look very different today.

I think that the Apple tablet will be a game changer, and will ultimately be their most successful computer launch, even more so than the iMac which brought them back.  I am afraid that if Microsoft and Intel can’t answer, the one-two-punch of Steve Jobs, and Google will finally have felled the giant duopoly.


Safari 4 – Worker Threads… JavaScript Domination

Posted: February 24th, 2009 | Author: | Filed under: Apple, Companies, Google, JavaScript, Microsoft, Programming | Tags: , , , , , , | 1 Comment »

I do hope you will pardon the hyperbole a bit, but If someone had told me a few months ago that we would have JavaScript threading, which I have been begging for for years, built into the HTML standard.  I would have thought they were crazy.  Now we have a situation where Safari 4, Firefox 3.1, Chrome ( Gears ), and IE 8 ( all in beta ) support it.

Lets look into my crystal ball for a minute.  We have a situation where browser based apps are becoming more and more capable all the time.  Where arguably the most efficient method for developing against mobile devices is to use web technologies, and where we have an insanely awesome JavaScript engine available for general use in any programming system in Chrome.  Looking down the line, I can see that JavaScript will be the primary development language once we start seeing implementations for HTML 5 Web Sockets.  It may be there, I just haven’t checked yet…

If you have Safari 4, or the webkit nightlies, you’ve got to check out this link:

JavaScript Ray Tracer

The speed of JavaScript as an interpreted language is up there with any of the others, in fact, Firefox 3.1, Chrome, and Safari 4 are wicked fast.  Soon, we may not need desktop apps at all, and Microsoft’s bungled ActiveX dream may just come to pass.  What an exciting time to be a developer!


A Response To: “The CSS Corner: Using Filters In IE8”

Posted: February 23rd, 2009 | Author: | Filed under: Companies, CSS, Microsoft | Tags: , , , , , , , | No Comments »

Well, the IE team has posted an excuse for why IE 8 will not handle widely used CSS 3 extensions.  The reason, its hard, and it was a stretch goal.  Instead we are left with a slightly more standard implementation of the filter css attribute, -ms-filter, as opposed to filter.

Furthermore, the IE team claims that they are doing this so that “web authors do not have to rewrite their stylesheets”. 

OK.  Let’s look at this objectively.  It is indeed hard, building a web browser from scratch is no joke.  I have tried several times, and I am still trying to build a web browser.  I have tried this in C++, Java, even Ruby.  It is always hard.  Most of the difficulty comes from trying to render pages that aren’t formatted properly.  Right or wrong, it is how the web is currently built.  However; I have a radical solution, I apologize in advance for the shout, *USE WEBKIT*.  Why is this a problem?  It would be easy to use the standard msie7.dll or whatever for pages that need the *broken* button in IE 8.  Then use a new WebKit based render mswebkit.dll for pages that are standards compliant, or not using that strange IE 7 tag.  If Multiple IEs works, this would be completely possible.

Let’s take a quick look at why Microsoft might not want to do this.  Google uses WebKit, and Apple uses WebKit.  As far as the technical difficulty in this, many lesser organizations have implemented a WebKit based browser from the webkit source without hiring a million developers.  I think that an organization like Microsoft should be able to handle building a browser using or based on WebKit within a few months.  I wish Microsoft could occasionally be more like Google and throw out the product managers and just build what the world wants. I don’t understand why they can’t consider this.

Now about the sentence, so that “web authors do not have to rewrite their stylesheets.” I am a web author, and I will not rewrite my stylesheet.  IE users, I am sorry, you will just have to live with a broken layout.  I do not have the time or the interest in rewriting my cool, cutting edge web applications to work with 10 year old technology.  They said this stuff was written originally in IE 4.  It came out for the PC originally in 1997!  Come on, advance!  I will not write anything for IE.  I will make sure it functions and none of the tasks that a user would do in my web applications are blocked, but I am not going to try to make it have rounded rects, or opacity, if IE doesn’t support web standards.  That sentence alone indicates Microsoft’s hubris, note the “have.”  If it were mozilla, they would say so that web authors don’t want to rewrite their stylesheets, not that they would ever have that problem.  Microsoft is still pretending that IE is relevant as far as developer mindshare.  

Microsoft does some amazing things, but as far as the web is concerned, it is pretty much off my radar.  Users, please, please upgrade your browser to Chrome, Firefox, or Safari.


Windows 7

Posted: February 10th, 2009 | Author: | Filed under: Companies, Microsoft | Tags: , , , , , , | No Comments »

I have been running Windows 7 on an old Dell that I have laying around the house, that I wasn’t using.  So far so good.  I installed the 64-bit version and the only thing I had driver trouble with was my printer, but I was able to choose a slightly different printer that had the same features, and it worked like a charm.  

Another funny thing was that on the NASA site, the Windows Media plugin doesn’t really work.  I can not play the videos there.

The biggest concern that I had upon installing Windows 7 was the UAC.  I had installed an early beta of Windows Vista, and decided after the second RC that I didn’t need it.  With Windows 7 I have a different opinion.  I think that the current beta is awesome.  The UI is clean and uncluttered.  The OS only gets in your way sometimes, this is coming from a Mac user, and has many useful features like hovering over the taskbar icon will show you a preview of the open tabs in the browser, and you can select them from there.  I like the progress indicator in the icon on the taskbar too, you can keep track of multiple installs.

But here is where the problem comes in.  The early betas of IE 7 were pretty good as well, and by the time it came out it was bloated crapware.  I hope that Microsoft avoids this fate with Windows 7, but I have to say that after the past few releases, I am not hopeful.  Especially with their insistance on many different SKUs. It seems that Microsoft is content to emulate only the most superficial of things that makes Apple successful without embracing the core of what they do.  Apple makes products that make their customers happy.  They aren’t always the cheapest, or technically the best, but they are what the customer wants.  Until Microsoft can stop focusing on the bottom line and get back to making awesome software, they will continue their decline.  I have a bit of guarded optimism, and if they weren’t to do anything else to Windows 7 outside of bug fixes between now and release, they would have earned my $299 for the OS.  Otherwise, I’ll just keep sticking to XP.