Google Chrome OS – One Step Closer to Pure Cloud Computing

Posted 10 July, 2009 by uihero
Categories: Development, Industry, Technology

What is Cloud Computing?

Right around the time I was born, computing was performed by technicians on mainframes the size of my bedroom at centralized computing centers in laboratories and universities. Then, because of the microchip, there was a paradigm shift: suddenly there was a computer in everyone’s house. Computing changed from something technicians do at a lab to something everyone does at home and the office. Then the world got unwired and another paradigm shift occurred (some say this one is still in progress). Now computing is something everyone does all the time, without thinking about it (how many iPhones have been sold so far? It’s amazing to think about it).

We are on the precipice of another massive paradigm shift – the migration into the cloud. Until recently, when you use a computer you use software physically installed on that particular machine – Microsoft Office, Photoshop, iTunes – the vast majority of people’s daily computing operates this way. Over the last few years we have started seeing applications that duplicate the functionality of installed desktop applications, but are accessible online, from any machine. The most recognizable of these come from Google: Mail, Calendar, Maps, Docs, etc – these applications are not installed on one specific computer, they exist “in the cloud”, accessible from anyone, anywhere, anytime.

Why should I be interested in Cloud Computing?

Cloud computing is an inevitable evolution of the global computing paradigm. As systems get larger and, more complex, they get more and more difficult for the end-user to install and maintain. Over time, an increasingly large percentage of the software we use is going to be hosted online, instead of installed on our machine.

Cloud Computing also means end-user machines will get even cheaper and your whole computer will be available to you from any terminal. Going from end-user installed software to cloud software is like going from landline phones to mobile phones – a significant step forward.

The principles of cloud computing sound rather utopian (from the Cloud Computing Manifesto):

  1. User centric systems enrich the lives of individuals, education, communication, collaboration, business, entertainment and society as a whole; the end user is the primary stakeholder in cloud computing.
  2. Philanthropic initiatives can greatly increase the well-being of mankind; they should be enabled or enhanced by cloud computing where possible.
  3. Openness of standards, systems and software empowers and protects users; existing standards should be adopted where possible for the benefit of all stakeholders.
  4. Transparency fosters trust and accountability; decisions should be open to public collaboration and scrutiny and never be made “behind closed doors”.
  5. Interoperability ensures effectiveness of cloud computing as a public resource; systems must be interoperable over a minimal set of community defined standards and vendor lock-in must be avoided.
  6. Representation of all stakeholders is essential; interoperability and standards efforts should not be dominated by vendor(s).
  7. Discrimination against any party for any reason is unacceptable; barriers to entry must be minimised.
  8. Evolution is an ongoing process in an immature market; standards may take some time to develop and coalesce but activities should be coordinated and collaborative.
  9. Balance of commercial and consumer interests is paramount; if in doubt consumer interests prevail.
  10. Security is fundamental, not optional.

Why is Google Chrome OS an important step toward Cloud Computing?

Google has taken a pioneering, essential step forward in Cloud Computing – creating a cloud-based operating system called Google Chrome OS. As it stands now, the computer you’re using right now to read this post has some sort of operating system installed on it – likely some flavor of Windows, Mac OS or Linux. Without this large, complex piece of software installed on that computer, it wouldn’t be able to do much of anything. Google’s cloud operating system shifts the bulk of the software responsbilities off the individual machines and into the cloud – so you will have access to ALL your data from ANY web-capable computer at ANY time.

It appears that Google plans to adhere to some of the most critical principles of the Cloud Computing Manifesto: Google Chrome will be an open-source operating system and probably will be free for end-users.

How will Google Chrome OS be different from Windows, MAC OS X or Linux?

Since Google Chrome OS has only just been announced and very few specifics are available at this point, some of this section is conjecture. However, the items that are guesses are educated guesses.

  • (vs. Windows) Google Chrome OS will be built on top of a Linux kernel, just like Mac OS X. That will give the operating system the same trusted, secure, stable foundation OS X and Linux enjoy.
  • (vs. Windows, OS X and Linux) Google Chrome OS will probably operate on a “thin client” model. There will be very little software on an end-user’s machine – just enough to connect to the cloud and access the rest of the operating system. This means startup times will be limited by network speed, not by a bloated operating system loading hundreds of megabytes of libraries up front.
  • (vs. Windows, OS X and Linux) Google Chrome OS will feature an “occasionally connected” model (like the browser Google Chrome employs in Google Gears), allowing the computer to run offline at times, and sync back up with the cloud when it can.
  • (vs. Windows, OS X and Linux) Initially, almost all software run on Google Chrome OS will be web-based. Unless Google Chrome OS is able to emulate other software platforms (like using Mono to emulate Microsoft.NET, which is highly unlikely), third-party developers will be very slow to create versions of their non-web-based software for a new operating system until it starts to get traction with a large user base. Don’t expect Microsoft Word for Google Chrome OS any time soon after launch.
  • (vs. Windows, OS X and Linux) Google Chrome OS has no legacy code, existing user base or historical conventions to hold it back. As far as I know it is the first genuinely significant operating system designed from the ground-up to work in the cloud. Therefore, it will be very cleanly written, tight, performant and reliable, as Google services tend to be.
  • (vs. Windows) Google Chrome OS will likely feature Google’s typical design style – clean, minimal, efficient and simple to use.
  • (vs. Windows and OS X) Google Chrome OS is open-source, enabling the global community of developers to make improvements to the operating system with a more cost-effective model than closed-source systems.

When will Pure Cloud Computing become a reality?

Partial Cloud Computing is already here – in the form of Gmail, Docs, etc. However, Pure Cloud Computing – being able to access your entire operating system, all your files and all your applications from any machine – is still some time away. The biggest limiting factor is network bandwidth. Once the network is as fast or faster than the internal components of your machine, the system will inevitably move into the cloud.

Where can I find out more?

  • Google’s official blog post, discussing Google Chrome OS, is here.
  • Cloud Computing at Wikipedia is here.
  • A thoughtful blog post from Ben Parr of Mashable about Google Chrome OS vs. Microsoft Windows is here.

IdentityMine Creates Silverlight 3 Homepage Control

Posted 10 July, 2009 by uihero
Categories: Design, Development, Industry, Technology

Microsoft Silverilght Homepage

Microsoft Silverlight Homepage

You have probably already heard a lot of buzz about Silverlight 3. Well, I’m very proud to announce that IdentityMine created the super-neato control at http://www.microsoft.com/silverlight. It was a pleasure working with Jonathan Russ, who is brilliant, by the way, and a thrill to create something that is featured so prominently. We’re on the Silverlight homepage *pinches self to make sure I’m not dreaming*!

You can read the official announcement here.

VJ Software for Microsoft Surface

Posted 1 June, 2009 by uihero
Categories: Industry, Music, Technology

Microsoft Surface VPlay

Microsoft Surface VPlay

The innovative multi-touch collaborative synthesizer Reactable was one of the first multi-touch applications that impressed me with its use of object recognition for user interface control. Microsoft Research has taken the idea (and, pretty much the exact same user interface paradigm) and created an application called VPlay, which is a VJ application (VJing is like DJing, but with video) for Microsoft Surface. Check out CreateDigitalMotion for more coverage.

More Great Press For Surface Applications

Posted 20 May, 2009 by uihero
Categories: Design, Development, Industry, Technology

One of IdentityMines Killer Surface Apps

One of IdentityMine's "Killer" Surface Apps

Blogger Chris Dannen recently wrote an article for tech magazine and blog Fast Company entitled “11 Killer Apps for Microsoft Surface“. Indeed, Dannen presents an impressive collection of what independent software vendors have been able to do with the Surface platform.

A feather in IdentityMine’s cap is that we have been involved in four of those eleven applications. That means, according to Fast Company, that more than a third of the Surface applications cool enough to be “Killer Apps” are IdentityMine applications. Sweet!

Routed Events in Silverlight 3

Posted 19 May, 2009 by uihero
Categories: Development, Industry

Foundation Expresssion Blend 3 with Silverlight

Foundation Expresssion Blend 3 with Silverlight

I am pleased to announce that I once again had the privilege of editing a new book for Friends Of Ed: Foundation Expression Blend 3 with Silverlight.  Compared with the last book, this title focuses exclusively on Silverlight, as opposed to the last book which covers both Silverlight and WPF. The book should be released in a month or so.

After editing this title, I was impressed with the improvements in features, functionality and workflow over the previous version of Silverlight. However, I found myself missing a feature so central to WPF application architecture: custom RoutedEvents. The W3C Document Object Model Level 2 Event Model, an industry standard, details how event routing should happen in great detail. Actionscript added event routing in version 3.0, to universal acclaim. Even Javascript events use the routing standard.

Silverlight 3 employs event routing for built-in events but, unfortunately, you cannot create your own custom RoutedEvents. Many people, myself included, feel that a properly-used eventing chain is a key element to creating flexible, decoupled applications. The fact that Silverlight 3 still does not allow you to define custom RoutedEvents is a big limitation.

Andrew Whiddett of IdentityMine must have felt the same way because he created a library that addresses that very problem. With this library, developers can create custom Routed Events in their Silverlight 3 applications! As usual with IdentityMine libraries, the implementation is simple and efficient.

The solution is so elegant, so useful that IdentityMine generously chose not to keep it as proprietary intellectual property. Instead, this one is for the community – free and open source. Check out the project at CodePlex for more information.

IdentityMine For Windows 7 Makes Front Page News

Posted 15 May, 2009 by uihero
Categories: Design, Development, Industry, Technology

IdentitYMines Lu Silverstein demonstrates Windows 7

IdentityMine's Lu Silverstein demonstrates Windows 7

I don’t cross-post other articles and blogs very often but this news is directly in line with UIHero content so, in this case, I’ll make an exception.

Renowned blogger Todd Bishop of TechFlash featured IdentityMine as a company leading the way forward in Natural User Interfaces for Windows 7, and potentially reviving a sagging tech industry. His article is featured on the front page of TechFlash as well as syndicated on the front page of  Puget Sound Business Journals.

I have lived on the bleeding edge of User Interface design and technology for a long time now so it’s not uncommon to be considered a pioneer and industry leader in the field. However, it is a unique privilege to be considered a focal point in the revivial of an entire industry. When the distinction comes from a respected publication such as Puget Sound Business Journals, it’s an even more flattering. I’ve always said “the right UI deisgn can change the world”. Perhaps I’m right after all.

IdentityMine Gesture Engine Announced

Posted 13 May, 2009 by uihero
Categories: Development, Technology

Wow. I can FINALLY talk about what I’ve been working on in secret, dark rooms for the last several months: a Gesture Engine for .NET!

Multitouch is all the rage, everyone knows that. Well, handling multiple, simultaneous input is much, much more complex than the single-point-of-contact mouse paradigm. After analyzing the space extensively, IdentityMine determined that a custom library of tools and behaviors is necessary to give developers (and ourselves) the flexibility we need to create multitouch applications that work the way they should. Now, I’ll acknowledge that the touch libraries in Microsoft Surface and Windows 7 are good; it’s just that ours are much, much more powerful.

Ever wondered how all these sophisticated, easy-to-use multitouch applications on this blog can be created in such a short amount of time? The answer is that they’re all built on the sturdy back of the IM Gesture Engine.

So, why did we need our own Gesture Engine above and beyond what Microsoft created for Surface? Well, there are a number of reasons:

The Microsoft gesturing system is single-level.

All contact in the native Surface and Windows 7 gesturing system is handled at the same priority. In contrast, the IdentityMine Gesture Engine implements a strategy where these gestures can be placed at any point of the user interface, and work seamlessly together to interpret the intended navigation or command. For example, say you have a resizable control with a sliding panel inside with tear-off items inside that. If you put your finger down on the control, how does the application know what you intend to do? With Microsoft’s gesture system, there is just no way to determine the user’s intent. The IdentityMine Gesture Engine uses context to tell.

The Microsoft gesturing system includes a fixed set of gestures.

The IdentityMine Gesture Engine supports all the standard gestures like Rotate, Resize, Pan, Click/Touch, Slide, Flick, Hold and Drag. It also supports purpose-built gestures like 3D Pan and 3D Orbit. however, the real strength is the fact that the IdentityMine Gesture Engine allows you as the developer to DEFINE  YOUR OWN GESTURES! You can simply record a Gesture into an application, say, for example, a one-finger-curly-q for an Undo command, then connect your Gesture to any command, event or behaivior you want. This created unlimited gestural flexibility for the developer.

Surface gestures are incompatible with Windows 7 gestures.

Unless you’re a multitouch .NET developer, you probably aren’t aware that the Surface gesturing system and the Windows 7 gesturing system are built on completely different paradigms. The IdentityMine Gesture Engine bridges this gap, allowing the developer to write one set of code that could be deployed to BOTH Microsoft Surface and Windows 7.

There’s so much other coolness about the IdentityMine Gesture Engine I’d love to discuss but I don’t think those features of the library is public yet. I’ll keep you informed as the news filters out.

The official IdentityMine press release is here.

3D Modeling With Gestures – On The Horizon

Posted 13 May, 2009 by uihero
Categories: Development, Industry, Technology

Tags:

SolidWorks eDrawings Surface in Keynote

SolidWorks eDrawings Surface in Keynote

I finally got a moment to write this post. Even though it’s not recent news anymore, it’s still very cool.

The R&D division of SolidWorks, one of the largest CAD software companies in the world, invited IdentityMine to port their popular eDrawings 3D model viewing sofware to Microsoft Surface, to start getting a feeling for how their customers would interact with 3D models in a gestural, natural user interface environment. Naturally I was very excited to be a part of this project.

In meatspace, models are built out of physical objects like wood, ceramics, metal and glass. The visceral experience of constructing something with your hands is unmatchable in the digital realm. Creating an application where users can view, interact with and manipulate 3D models with their hands is as close to physical modeling as one can possibly get (until we have holographic interfaces like in the film Iron Man – that’s just down the road, I’m sure). I had personally been waiting for an opportunity like this since I started working in multitouch software design and development. It’s exciting to be on the forefront of this technology.

The application was one of the most challenging Surface applications I’ve worked on. Interfacing with the OpenGL-based eDrawings application in a DirectX/WPF based Surface host application was no easy task! The team really came together to pull it off in time and with style.

We demonstrated this application at SolidWorks World 2009 International User Conference and Exposition. in Orlando Florida to a very warm welcome. The SolidWorks’ founder Jon Hirschtick demonstrated the application in his keynote address, we got very good international press from places as far away as India and Sweden, and the users on the trade floor were genuinely excited about the future of touch in 3D modeling.

There are a couple short videos of the running application at SolidWorks APACBlog, as well as photos and the official IdentityMine press release are here.

Presenting Microsoft Surface Service Pack 1 at TechEd

Posted 12 May, 2009 by uihero
Categories: Development, Technology

IdentityMine Healthcare Product Selector

IdentityMine Healthcare Product Selector

To my readers, I apologize about the extended blog post hiatus. I’ve been working on super-duper top-secret stuff that I couldn’t write about. However, now I finally have the opportunity to post one of the projects I’ve been working on!

The Microsoft Surface team invited my company to create an application to demonstrate in front of an audience at TechEd North America 2009. The application is intended to showcase the new features in Surface Service Pack 1. With only two-and-a-half weeks, we worked furiously into the night to get something to show that we could be proud of. To add additional challenges to the project, we needed to use not only the Surface SP1 SDK but also the Microsoft HealthVault SDK and the SDK for the Nonin Onyx II Bluetooth Pulse Oximeter I demonstrated in the application.

Surface SP1 adds lots of new features to the platform that both developers and customers have been asking for that are all centered around making Surface easier for developers to develop for as well as easier for users to use. We highlighted many of the new SP1 features including Object Routing, Seamless Drag and Drop, the LibraryBar, and the ElementMenu.

Congratulations goes out to the entire IdentityMine team for making the end result a smashing success (in alphabetical order): Jamey Baumgardt, Jason Cook, Kurt Brockett,  Mark Brown, Jesse Hsia, Issa Johnson, Sameer Thiruthikad, Josh Wagoner and Andrew Whiddett. The session was well attended, the attendees asked lots of interesting questions and people recognize IdentityMine as experts in natural user interface design and development.

You can see IdentityMine’s official page on the presentation and application here. Microsoft’s official announcement of Surface SP1 is here.

There was video recorded of my presentation. I’ll update this post once it’s available online.

Adobe Flash Catalyst Alpha Released

Posted 22 November, 2008 by uihero
Categories: Design, Development, Industry, Technology

Adobe Labs released the Alpha build of Flash Catalyst, previously codenamed “Thermo,” and distributed it at Adobe MAX last week. Flash Catalyst is a new design and development tool that lives halfway in between Photoshop/Illustrator/Fireworks and Flex Builder.

These days most applications are created by two separate teams: design and development. As applications increase in complexity, the number of individuals capable of effectively creating both sides of an application by oneself is rapidly diminishing. Therefore, at some point the designer needs to hand off the comps to a developer to “make work.” This step is a critical, complex and typically expensive part of the software development lifecycle. In fact, some companies devote entire departments to the task to improve the efficiency and accuracy of the translation from design into code.

Flash Catalyst is not intended for designers to create designs directly inside it. Photoshop, Illustrator and Fireworks have much richer design toolsets. Likewise, Flash Catalyst is not intended for developers to create primary application logic inside it. That’s what Flex Builder is for. Rather, Flash Catalyst is a bridge to allow designers to take what are essentially comps and begin to basic interactivity to them, allowing Catalyst to create actual usable MXML behind the scenes. This pushes the handoff point further down the development side and eases the burden on developers to interpret the designers intent.

For simpler projects like basic websites, electronic press kits, rich content ads, online portfolios, the final output of a Flash Catalyst file may have enough functionality and interactivity for the designer to not even need a developer to complete the project. For more complex functionality like applications (whether internet, SaaS, or enterprise) or projects that need back-end server connections, a developer can import the Catalyst project file directly into Flex Builder to finish the job.

To see an early version of Flash Catalyst, when it was still codenamed “Thermo,” check out this three-part video Aral Balkan recorded last year at Adobe MAX in Chicago.

Thermo preview, part 1

Thermo preview, part 2

Thermo preview, part 3

The functionality Flash Catalyst offers may be likened to Microsoft’s Expression Blend, which lives halfway in between Microsoft Expression Design and Visual Studio. While it is still too early to meaningfully compare and contrast Catalyst (still Alpha at this stage) and Blend (second major revision already released), I can still offer my expectation of the differences between the two products’ design-time experiences.

I should note there are a number of comparisons and contrasts that I deliberately avoid in this post.

  • This is not about Flash vs. Silverlight. I’ve already covered that topic here.
  • This is not about Actionscript vs. C#. Since they’re both ECMAScript languages that comparison is mostly just about the different implementations of the ECMAScript standard. Not very interesting.
  • This is not about MXML vs. XAML. Since they’re both XML-based declarative markup structures that comparison is effectively meaningless.
  • This is not about Flex Builder vs. Visual Studio. I’m sure you can find plenty of blogs that can pound the whole Eclipse vs Visual Studio argument into the ground for you.
  • This is not about Photoshop/Illustrator/Fireworks vs. Expression Design. That comparison is so ridiculous it doesn’t even merit discussion.
  • This IS about Adobe Flash Catalyst vs. Microsoft Expression Blend. That’s it.

So the bottom line is: which product is better? Well, it’s hard to say definitively. Since the tools are both “integration applications” that exist to more seamlessly connect other major software suites, its almost impossible to evaluate the Catalyst vs. Blend argument without comparing the toolsets they live in between. I guess the only real litmus test is this: put Photoshop, Illustrator, Fireworks, Expression Design, Flex Builder and Visual Studio out of your head and think hypothetically. If both Catalyst and Blend could be used on either platform, which would people choose? Would you rather use Catalyst or Blend to turn a comp into an application? I think we will have to wait until Catalyst is released (or at least Beta) to answer that question fairly.

Adobe has made some big promises here. If Flash Catalyst lives up to them it will be a hit. Guaranteed. I’d even go so far as to suggest that it may be another “game-changer.” If you weren’t one of the lucky ones to get a copy of the Alpha build at Adobe MAX, you can sign up to be notified of when the public Beta is available early next year at http://labs.adobe.com/technologies/flashcatalyst/.