Archive for the ‘Javascript’ Category
Gestalt = Low-Lying Awesome
Microsoft appears to be betting big on Silverlight. When the Silverlight 1.0 bits were released in 2007, my initial thoughts were, “Yay, Flash for .NET developers.” As Microsoft pushed forward with version 2, version 3, and now version 4 of Silverlight, those sarcastic thoughts have subsided to make way for more genuine curiosity. How did that happen?
Well, for starters, Microsoft delivered real features. Initially, Silverlight demos were all about media (music and video). In addition, Microsoft touted the interopability between dynamic languages like vbx, c#, python, ruby, and javascript. Then, that interopability was sidelined and Silverlight applications started to emerge. Which was interesting. In fact, Silverlight 2 had enough features to stir up debates in the enterprise over which RIA technology was best suited for enterprise applications: Flash 8 with Flex or Silverlight 2. Then, Microsoft played their wildcard. They made Silverlight play nicely with … ugh … Mac OSX. Out-of-browser Silverlight applications made me raise my eyebrows for a technology that I had quickly written off as a “fad”.
That might still be the case. I won’t make a claim either way. But, Silverlight and RIA are spaces where Microsoft continue to innovate. Gestalt is a very good example of that last statement. Gestalt is built atop a foundation consisting of XAML, Silverlight, and dynamic languages. It enables web developers to script their way to rich internet applications in a way that both Flash and Silverlight seemingly missed.
With that said, it is difficult to pinpoint exactly what value Gestalt adds, but you feel it when you’re molding some python, ruby, or javascript hackery into a magical Silverlight-powered application that just works.
The technology appears to still be more of a proof-of-concept than a supported product. But, it makes a strong case for embracing XAML and Silverlight.
Checkout the website and the samples at http://visitmix.com/labs/gestalt/.
Getting user information for Firefox extension using Javascript
var userInfo = Components.classes["@mozilla.org/userinfo;1"] .getService(Components.interfaces.nsIUserInfo); /* userInfo will now have the following readonly properties: username domain fullname emailAddress */
The Significance of Prototype.js and REST
One of my boys sent me a link to an article on Joelonsoftware.com entitled “Strategy Letter VI.” It is a great article that compares the strategy that IBM employed when they were trying to keep Lotus 1-2-3 relevant in the 80s to the challenge web-based software companies faced with keeping their applications relevant today.
Usually, I take Joel’s words with a grain of salt because (ironically) I have interpreted many of his public writings and actions as desperate attempts to stay relevant. However, this article offers true value to the reader. He offered knowledgeable insight that got me thinking about two things that have swept across the web and propelled web development forward by leaps and bounds: Prototype.js and REST architecture.
Prototype.js is the Godfather of Javascript Libraries (RIP James Brown). A large percent of the leading js libraries such as Mochikit, Scriptaculous, Mootools, JQuery, and YUI are either dependent on Prototype or HEAVILY influenced by it. Sam Stephenson, the creator of Prototype, showed the rest of the web that js didn’t have to be stressful. His library gave us an extremely helpful API for easily forging our own js solutions. But, this plain text file also showed the intermediate web developer how to take js and OOP it up; that is, use object-oriented techniques to deliver some advanced cross browser functionality. It was functional and educational at the same time – two attributes stressed out web junkies love.
Similarly, non-groundbreaking but super important, is the emergent REST architecture. REST is an architecture for interfacing with web applications. This increases the interoperability of your web app with other web apps out in the real world. It gives Amazon’s web services a predictable interface so that I, the burned out programmer, can think-less by reusing their chunks of functionality in a very familiar way.
REST does not require you to share your application with other web apps. In fact, the benefits of REST can be reaped by internal applications as well. REST can be a great approach to simplifying any application and making it more maintainable by using a well known architecture. Think of it as REST and relaxation.
Both of these technologies are inherent in Ruby on Rails, the hot young web framework that has all the ladies talking. So, it is no surprise that the management buzzword of the year, Web 2.0, is usually reserved for some RoR application that offers a fairly trivial service, but tons of ways of interacting with it.
In fact, when I think about what Prototype and REST did for AJAX calls, it becomes hard to imagine the term Web 2.0 without them. However, be mindful that the term Web 2.0 only means your web application is relevant today.