Apr 06 2010

The Internet is Your Abstract Resource

This is the fifth and final post in a series of five weekly articles on issues related to Kynetx application development in a server-centric world.

Code libraries are wonderful things. In a few lines of code you can include functionality that would take a lot of time and effort to build from scratch. Platforms and languages provide libraries that abstract common functions or classes of objects. You don't have to know exactly how it happens, it's just magic functionality. It's an abstract resource.

Code libraries are engineered to be an abstract resource. In most cases they start out as a concrete resource, but then some abstractionist decides that it would be great if the concrete resource was abstracted for future use. Our own Phil Windley is a master abstractionist. He seems incapable of writing code that will just be used once.

In a sense, the internet is mostly a collection of concrete resources (websites). Most websites expose functionality intended to be used for limited purposes in limited use cases. They are built with the user in mind, although it may not seem so in some cases. They are not built with the intent of making them abstract resources for other applications to consume. The more popular websites are forced by the weight of demand to provide some abstraction layers (Facebook, Twitter, and Amazon are a few examples). Abstraction is not yet the norm but it will be in the future. Abstraction is a key requirement in the development of the Semantic Web.

The Kynetx platform can help developers skip ahead and treat the Internet as an abstract resource today. Kynetx applications can consume content from traditional websites and data sources from diverse places to make a whole new application. We have already released integrations with Amazon and Twitter abstraction layers that are built into the platform, but it is possible for a developer to identify a resource from an existing website that was not intended to be abstracted and use that resource in an abstract way today. A good example of this is search functionality on a silo-ed website that can provide value to the user on a second site. The Kynetx application can consume and abstract that search functionality.

So start thinking about silos that you visit (websites) as code libraries. Think about how they can be combined to create new valuable applications. Then come to Kynetx Impact on April 27 and 28 and learn how to actually do it (use the discount code FOK2010 for a 33% discount). To re-purpose a Kynetx tag line: The Internet is your canvas and your paints - and Kynetx is your paintbrush.

Mar 24 2010

Make Meaning Now

This is the fourth post in a series of five weekly articles on issues related to Kynetx application development in a server-centric world.

Guy Kawasaki

I've seen Guy Kawasaki speak on couple different occasions. Both times I found him entertaining and insightful. One of the key points that Guy makes is to align your efforts to "make meaning." He was referring to the desirability of making meaning over making money, and that if you make meaning you will eventually succeed in making money (you may have to change the way you make meaning, but that's OK too).

One thing that proponents of the Semantic Web share with Guy is a thirst for meaning. Although they are definitely referring to two different types of meaning (one refers to the meaning of data or other resources on the Internet and the other refers to human, societal, or personal meaning), I believe there are lessons to be drawn from Guy's philosophy that can apply to the creation of the Semantic Web. Let me explain...

Let's begin by assuming that the Semantic Web is our evolutionary destiny. If this is the case, then we will eventually use standards to tag everything out there on the Internet with meaning that can be processed by machines. RDF is one such standard. We will use RDF to write about our data in such a way that machines can make intelligent decisions about us and serve as our digital agents. The "semantic" part of the Semantic Web is important because, without applying meaning to resources, it is impossible to build these intelligent agents. I think we easily forget that it's not the "semantic" nature of the Semantic Web that is interesting, it's what you can do with it once it exists. RDF is well and good, but what do you do if you want to start to making these intelligent agents now? Are you going to wait until everyone adopts RDF or OWL or some other standard for meta data? Seems kinda silly, don't you think?

Now, I'm not saying that standards for meta data aren't important or won't be used (eventually), but I am saying that we should start to build these intelligent agents now. This is possible with Kynetx because:

  1. Kynetx provides a platform for building and deploying intelligent agents in the form of Kynetx apps
  2. Kynetx app developers can use disparate resources in their apps, assigning meaning to those resources in context with the app
  3. The client-side nature of Kynetx apps allows for the aggregation of resources and relationships at the only place that matters
  4. Kynetx apps allow for the private and secure evaluation of personal data without actually disclosing the data to third parties

I can't wait for the Semantic Web. Let me restate that: I won't wait for the Semantic Web. I want to help people build the kinds of agents referred to by Tim Berners-Lee right now. As Jeff Goldblum said on Jurrasic Park: "Life finds a way."

Mar 16 2010

10 Suggestions for Good Web Citizenship

This is the third post in a series of five weekly articles on issues related to Kynetx application development in a server-centric world.

The kynetx platform allows developers to create applications which augment existing web pages without the knowledge or express consent of the person or organization who posted the page. As I pointed out in the first post in this series, a lot of people think of web pages as places and not content to be consumed as they see fit. They also view the browser to be a sacrosanct interface, almost like a TV. There are tool-bars and plug-ins out there that bend the lines a little bit, but not nearly to the extent possible with Kynetx.

One of the most interesting augmentations possible with Kynetx is the annotation of search results on Google, Yahoo, and Bing. You can also percolate search results up to the top of the SERP. If you haven't tried it, sign up for a developer account and check out this recipe (look at the last one on the page). Our search actions are attractive to organizations wishing to provide added intelligence to the searches performed by members of their communities. They make it possible to create a CitySearch-like local ecosystem without actually forcing people to go to a portal.

Needless to say, search-related actions make some people n-n-n-nervous because you are "changing Google." "Won't Google sue?" many people ask. How do you stay out of trouble? Well, here are ten guidelines that we suggest you follow in order to be a good web citizen:

  1. Stay away from registered marks in your applications, meaning don't alter them, spoof them, or otherwise misuse them.
  2. It's ok to mash up or re-skin general functionality of existing sites.
  3. You should disclose to users exactly what your app will do to their browsing experience.
  4. Do not use any actively-provided user data without explicit authorization from the user.
  5. Do not use your app to deceive users.
  6. Do not use your app to spy on users.
  7. Always allow the user to control their experience.
  8. Bring the user value, eschew evil.
  9. Be patient with those who think location rather than purpose.
  10. Do not squander the platform on cheap tricks - create rich experiences.

Following these suggestions will not guarantee that some powerful placer won't be fussy about what your app does. However, if you follow these guidelines, you will be less likely to arouse a negative response from users and service providers.

Mar 10 2010

The new CRUD

This is the second post in a series of five weekly articles on issues related to Kynetx application development in a server-centric world.

All developers are familiar with the acronym "CRUD" which stands for "create, read, update, and delete." Traditional development projects involve putting in place the components necessary to accomplish these four tasks. You may start with a development framework that makes it easy to get a working system running that accomplishes CRUD. Even I can create a Rails app that does basic CRUD in an afternoon. CRUD applications usually join the ranks of other single-purpose silos of data and functionality in the lonely world of who cares. A few lucky ones break out of their silos through APIs or web services and make friends with other applications, but these apps are just loaning each other their CRUD capability. They are the mayors of the world of who cares.

The Kynetx platform has modified the meaning of CRUD. Instead of create, read, update, and delete we have:

  • Context: intent + location + relationship = omniscience
  • Rules: creative capacity codified
  • User: master of all she surveys
  • Delivery: endpoint ubiquity

In order to understand what Craig Burton calls the Tao of KRL you need to grok the new CRUD. In order to understand 4th party applications as described by Phil Windley you need to grok the new CRUD. It's the key. It's the future.

Here's a little bit more to chew on:

Context is what we use to guide our interactions and relationships with individuals. If we are astute we gather context from every credible source available. Context is more than demographics: it's intent, relationships, mood, location (both physical and virtual), history, preferences, and opinions. Context is knowing. Context starts with the simple get-to-know-you questions that you ask when you first meet someone and can be as complex, nuanced, and mature as a 60-year marriage relationship. Kynetx is a powerful platform for gathering context.

Rules determine what we do with that context. Rules define the events that we watch for, the conditions we evaluate, and the actions we take when those events and conditions are met (AKA an event-condition-action, or ECA system). The advantage of Kynetx is the fact that you can listen for a significant number of different events, and that number will increase over time. Events can be things like accessing a web page, meeting a data threshold, initiating a relationship, or walking into a store, among many others. Conditions can be just as varied as events. Actions include things like annotate search results, data integrations, and content aggregations.

The User is the center of the universe with Kynetx apps. The user decides what apps they want to use, what data they provide. Kynetx apps give the user a new mechanism for controlling their internet experience. In the case of 4th party applications, users are the focus of every other party in the system.

Delivery is accomplished through endpoints. Kynetx is starting with browser-based endpoints, but will move out to other systems. Endpoints live where the user lives. Endpoints listen for events that are written into Kynetx apps and trigger application evaluations.

When developers understand the new CRUD available in the Kynetx platform they are liberated from the old CRUD and can build new, interesting things. Ultimately, Kynetx is a way to program the Internet and any Internet-connected endpoint.

Mar 02 2010

Placers and Appers

This is the first post in a series of five weekly articles on issues related to Kynetx application development in a server-centric world.

Kynetx is on the forefront of creating the app-driven purpose-centric web. As we talk to people about our platform I have discovered that there are two main categories of Internet users:

Category 1: Placers- as in users who think about the Internet only as a collection of locations. Placers are firmly rooted in the paradigm of location. You go to an address, you visit a site, etc. They consider web sites analogues to physical stores or your front lawn. Most people are placers because they have only been exposed to server-delivered/browser-consumed web applications, which reinforce placer thinking. You can’t blame a placer for being a placer.

When placers see what can be done with Kynetx applications their initial reaction usually includes two sentiments: the first being, “that’s really cool,” and the second being, “the site owner won’t like it.”

Category 2: Appers- as in users who think about the Internet as a platform for building interesting applications. Appers can separate location from application, and can appreciate the organization of data and functionality from different sources to bring new value. Appers are not averse to trying new apps in their client environments. Ultimately they know they are in control of their experience. Appers are relatively rare, but mobile platforms are converting more people to this kind of thinking, and the markets are recognizing this coming shift. This shift is inexorable on all platforms, including the server-centric web.

When appers see their first Kynetx demo they get very excited and always want to sign up for a developer account on our platform. They frequently make statements where they compare Kynetx favorably to such ideas as sliced bread.

Phil Windley coined what I will call the Apper’s Creed:

I claim the right to mash-up, remix, annotate, augment, and otherwise modify Web content for my purposes in my browser using any tool I choose and I extend to everyone else that same privilege.

Put in other terms, the Apper's Creed asserts the right to run apps in the browser environment. I believe that more and more people will discover the value that appers enjoy and will make the transition from the placer world.

A very important question for Kynetx application developers is: how do we get placers to begin to make the transition to appers? Another important question: how do our apps get along with location-centric resources and developers on the Internet?

I will explore answers to those two questions in a series of weekly posts. I hope you find them useful.