September 2010
M T W T F S S
« Feb    
 12345
6789101112
13141516171819
20212223242526
27282930  

I was out at Cold Stone, with my wife the other day, when a developer buddy of mine asked me about Kynetx and what we do here. As I was explaining to him the power and promise of context automation, I saw that I was losing him. I changed tack and then told him that Kynetx is a development platform that lets coders build apps like Greasemonkey in the cloud. He totally got it and I was able to move on from there. While this explanation works, and creates common ground from which to start, the comparison is really rather weak. Its weak cuz Kynetx is sooooo much more than that comparison brings to mind. Allow me to explain.

As most of you know, Greasemonkey allows you to create scripts that manipulate the browsing experience by injecting Javascript onto a webpage. And, while that is cool, there are inherent limitations. It needed to evolve. Now think of Kynetx as the giant monolith from Stanley Kubrick’s 2001 A Space Odyssey. We are all IN that moment where the monkey touches the monolith, something amazing is about to happen. So, why the needed for the evolution? Greasemonkey is a good client side solution, but there are huge problems associated with client side execution of a script meant to change a users’ individualized experience. The most common problem is stability. How many times have you heard a GM script user lament… “ This is one of my absolute favorite extensions but unfortunately I can’t use it anymore”. For several reasons with Kynetx this and other script based problems are gone forever.

Instead of writing a script that must be re-downloaded every time it is enhanced or fixed due to browser changes, like those that just happened with the release of Firefox 3.6, or problems related to changes made on the specific website i.e. when Google started using AJAX search result pages. changes are made to the App in the cloud and all fixes are inherited by all users regardless of endpoint type (Action Card or Internet Explorer, Firefox, Chrome browser extensions or even on a proxy server)….that’s cuz there are no scripts running on the PC that can break…the application runs in the cloud. Client side execution was a good start. But now there is a better way.

That said, let’s now get to the really good part. What really sets Kynetx rules based apps apart from Greasemonkey is the power the platform provides with data access. Let me give you an example.

My buddy Craig Burton just finished creating a tutorial on how to use the new Twitter Module in KRL for using OAUTH to authenticate a user and access a twitter timeline. It seemed a little too simple. Here is what a code snippet to execute OAUTH looks like in KRL.

It’s all of ten lines of code. The real OATH work in the code is done by one line
The whole thing is done in ten lines of code and the real OATH work in the code is done by one line of code. Really?….YES

twitter:authorize()

Contrast that with the JavaScript code sample that follows. 114 lines of code. Complicated. Lots of opportunities for bugs. KRL is doing all this messy stuff for you. All of the setup, the calls to the twitter API, the OAUTH process….everything…is done for you.

And that is just a single example. The power of the proposition KNS makes for the coder that it does all of the heavy lifting when it comes to data access, should not be under estimated. For instance, KNS takes care of all of the translation foo between XML and JSON so that it can be consumed. KNS intrinsically serves up a slew of primitives designed to take the weight of external data access off your shoulders. Now imagine access to Amazon Web Services API’s, Google API’s, PayPal API’s…I think you get the picture, all of these and more are on the Kynetx roadmap. Integrating data with KRL is an important part of what makes the language so useful for building cross-site applications that mash-up data and user interactions.

Now let’s add to this all of the advantages a cloud based platform adds to the mix. As I have already mentioned. Greasemonkey is a client only solution, although it can, of course, reference data in the cloud. Phil Windley, Co-Founder and CTO of Kynetx in a recent blog post has pointed out:

  • Like any good cloud-based application, Kynetx apps are available and work consistently on any machine you use.
  • Referenced data sources can be easily cached and proxied. This offers opportunities to increase performance and ease of use.
  • Updates happen automatically as the servers are updated, like any cloud service. For example, as I already mentioned, recently Google started experimenting with AJAX search result pages which required updating scripts that augment Google. We changed some things on the server and users saw the updates immediately.
  • Increased security. As an example, a malicious KNS app can be disabled on the server saving all users from the effects.
  • Auditing and analytics are possible. Kynetx can audit apps for suspicious patterns and provide easy-to-understand reports about app privacy and security policies and activities. Server-side analytics give developers usage data on their cards without compromising individual privacy.
  • We can track when the actions (ruleset) associated with a particular card change and warn the user.

KNS is controlled by a domain-specific language: KRL (Kynetx Rule Language). Greasemonkey uses raw Javascript.

  • KRL provides developers with an easy way to create apps that work across browsers and operating systems. All of the details about working in Firefox or IE are abstracted away.
  • KRL provides developers with a powerful lever for quickly developing apps. Augmenting search result pages, for example, is a simple action that replaces dozens of lines of Javascript.
  • The abstractions of KRL allow Kynetx to respond to changes in browsers, Javascript, and Web sites with updated interpreters or runtime libraries to address the changes without developers having to change their apps.
  • People who would never develop Javascript programs have successfully developed Kynetx apps.
  • When the going gets tough, like any good domain specific language, KRL let’s you jump out into raw Javascript to make up for holes in the language. As this happens, we’ll incorporate commonly used patterns into KRL, making it more powerful.

KNS has the option of incorporating Information Cards. Greasemonkey scripts are not associated with any particular identity system.
Information cards are tied to a specific action. Because of the security model of information cards, the KRL ruleset associated with a particular card cannot be changed. Thus, when a user gets an Action Card (a Kynetx based information card) they can be assured that the actions associated with it are the ones the developer intended and haven’t been replaced by a malicious program.

  • The converse of the last point is that if someone creates a malicious app, it has a specific identity that cannot be hidden or changed. Action Cards can be rated, reviewed, and analyzed based on a non-mutable identifier.
  • The information card selector provides a nice user interface for installing, controlling, managing, and deleting Action Cards and their associated actions.
  • While Action Cards do not yet support in-card claims (personally identifying data), when they do, access to that data will be via the well-thought out and “socially tested” information card ceremony putting users squarely in control and mindful of what personal data they’re releasing to make a Kynetx app work.

In summary, there has been an evolution. The Greasemonkey script of the past has now become a Kynetx App. Client side execution has given way to cloud based solutions. The loading of libraries replaced with the abstraction of library management, No more dealing with broken scripts. No more uninstalling and reinstalling of scripts. Bottom line….no more Greasemonkey business to deal with when trying to optimize the browsing experience.

Check this out,  billions of internet users jumping from site to site to accomplish their internet related tasks are about to experience a change in the way the internet “works for them”.  Not since the 1994 release of the Netscape Browser has there been such a quantum change in the way the average internet user experiences the web. 

Kynetx has created a development platform designed to create web applications that respond to context in the users environment.  In other words, the internet now knows who I am based on what I want it to know about me when I want it to know….know what I mean?

Lemme give you a simple example.  I am a AAA member,  but I rarely use their services.  In fact, I have subscribed and unsubscribed from the service several times over the years (I usually re-up just before a big road trip then let it expire again).  Apparently, I’m not alone.  But I don’t need their services when I am not traveling cross country.  I can change my own tires, I can tow my own vehicles with my truck and if my truck needs towing….I have friends with even bigger trucks.  But, you know what?….There is another service AAA provides that I always forget about….The AAA discount.  I just never seem to remember to ask for it.  So, what if AAA could remind me every time I shop on the web?  Well… now they can and do in certain regions.

Working with a developer that has created several solutions for companies in the Kynetx platform, AAA has provided a small application that is downloaded from the AAA website.  When installed, every time I perform a search on ANY browser with ANY search engine.  Any vendor that offers a AAA discount will prominently display the AAA logo…..soon they will even be able to automatically apply the discount code to the shopping cart as you are checking out.  Now AAA is working for me!!  The community that I belong to now has greater value and meaning and the internet now has a better understanding of what I am doing and what I am interested in….CONTEXT…..Think I am gonna resubscribe to AAA again?…..Dang Skippy!

Google search augmented with AAA information

More to come on some COOLER and far more POWERFUL uses of the Kynetx platform……