« March 2010 | Main | May 2010 »

April 29, 2010

Personal Data, Freedom, and Value Creation

Woman looking at truck/train crash

Image by mkrigsman via Flickr

Data is big business. Whether its demographics or FICO score, people know things about you and sell it to people who want know about you. If you're read my blog post on the Power of Pull (or listened to the podcast) then you know that I believe we haven't even scratched the surface of where data exchange is going. As more and more of our life goes online there will be more and more semantic, structured data available about every aspect of our lives.

For example, your golf clubs will automatically register your strokes, power, and so on. Your toilet will automatically analyze your waste and register the results. You purchases (even those made offline) will be collected and collated. Is this kind of world scary or not? It depends. If all of this is being done without your involvement, permission, or visibility then it can be very scary. On the other hand, if this kind of personal data ends up in your very own personal data store and you (or agents acting on your behalf) can decide when, where, and for what purpose it's used, then not so much. In fact it could be the source of increased wealth and quality of life for everyone.

Whether or not it does result in increased wealth depends a lot on how it's done. We could create personal data storage and interchange in a couple of different ways. I like to think of these models as railroads and highways.

When they came about in the mid-1800's, the railroads were a better way of transporting goods and people than the previously existing methods by several orders of magnitude. Suddenly a trip across the continent that previously took months and involved great personal peril could be accomplished in day at relative ease. Whole businesses came into being based on the ability to ship goods around cheaply (remember Sears Robuck?).

But railroads have disadvanteges. For one, they require huge capital investments to create. Consequentlty the owners get to make the decisions about how they're used and most of the wealth that is generated ends up concentrated in relatively few hands. That investment in infrastructure also means the new and better ideas in how to move things around are expensive to try and consequently most of them end up as only dreams.

Railroads stand in contrast to the US Interstate Highway System. Sure it is held in common and thus represents a shared investment, but that's not really the point. We could nationalize the railroads but that wouldn't mitigate the disadvantages I speak to above. The interstates have created a situation where individuals can, with a relatively small investment start a trucking or bussing company, try out new business models, and create wealth for themselves, their investors, and their families. Moreover, the interstates enable great personal freedom for people to travel where they want, when they want, in relative anonymity.

There are several important differences between railroads and highways that enable these benefits:

  1. Highways are distributed and require almost no centralized control
  2. Anyone who meets certain minimal requirements (mostly licensing and safety) can use them
  3. Standards ensure that a truck built in Michigan can be used on highways in Utah and that I can buy fuel, tires and other consumables with little worry about interoperability.

We need to ensure that the personal data services that get set up over the next several years are more like highways than railroads. I'm not suggesting a huge public works project since the Internet serves for transport. More important are adhering to the three ideas I list above.

  1. The PDS infrastructure should be designed in a way that requires minimal or no centralized control. We may need naming and discovery and that typically involves a few organizations have disproportiate control over those aspects, but the Internet has taught us a lot about governance in those areas.
  2. The design ought to be such that anyone can implement all or part of the service on their own and have it interoperate with others. This implies that there's no lock-in advantage to other providers int he ecosystem. Fedex and UPS don't have lock-in based on where their trucks go, etc. They compete on terms and service, not by capturing customers. There shouldn't be "approval" by a central authority, although there will certainly be (already are) regulations and trust frameworks.
  3. The standards ought to be open and non-proprietary. User should be able to swap out any piece of the service with another provider of the same type of service without retooling.

I think that personal data services have the promise of creating great wealth and inproving quality of life. However, done wrong there will be huge pushback and those benefits will be lost or delayed for years.

When I was CIO for Utah, there were 27 or 28 different databases that kept track of children's health data. The problem was that there was no good way to link a record in one with a record in another. Part of that was technial, but much of it was a result of paranoia about "big brother" having too much control of data about people. As a result there was no easy way for a receptionist at the children's immunization clinic to know that Johnny hadn't have his free childhood ear exam and recommend an appointment. If one child grew up deaf because of that, we've failed.

Similarly, I'm concerned that many of the benefits that could acrue from personal data services could be lost if they are implemented in ways that concentrate the benefits or, worse, creates backdraft that delays or destroys them. If that happens, we'll still have lots of data being generated and collected, but individuals not only won't see the benefit but may see their quality of life diminish.

I'm working with a group of people trying to define charters and standards to create just such an open personal data service ecosystem called the Personal Data Exchange. Paul Trevethick has produced a strawman architecture that takes a stab at defining how this could work, including applications that use personal data (like Kynetx apps). There will be many discussions and sessions about this concept at the upcoming Internet Identity Workshop on May 17-19 in Mountain View CA. Come and join us; we'd love to have you participate.

2:31 PM | Comments () | Recommend This | Print This

Come to Digital Death Day

Still-Life with a Skull, vanitas painting.

Image via Wikipedia

The day after IIW (that would be May 20th), Kaliya is running a workshop called Digital Death Day at the Computer History Museum.

Death is a part of life but what does death of the physical self mean for the digital self? This is a conference focused on this question and others around "digital death".

  • What does it mean for loved ones of the departed?
  • What does it mean for professionals in end of life care and post mortem services?
  • What does it mean for online tool and service providers?
  • What does it mean for estate and legacy planners?
  • What do people do to prepare for their own deaths in relationship to their online life?
  • What do friends and relatives do with the digital assets of a loved one when they die? What if aspects of their online life were secret or just not understood?
  • What does it mean for governments and public records?
  • What businesses are serving this market?

Why are we just asking questions here -- aren't there going to be "panels" with the answers? Well this is a different kind of conference -- at this conference all the people who attend are the participants and together at 9am the day of the event are facilitated through a process that creates a multi-track conference agenda about this theme. The range and diversity of participants will mean that there will be many rich discussions about all these topic areas. "Answers" will be found in the discussions in the collective wisdom of the group. Notes will be gathered from all of the sessions, aggregated, posted online and shared with all attendees.

This event is for:

  • People planning their Digital Wills
  • Online Social Networks
  • Companies offering services for digital afterlife management
  • Death Care Professionals
  • Estate Planners
  • Legacy Planners
  • End of Life Planners
  • Death Attorneys
  • Hospice volunteers
  • ANYONE interested in this topic

This event immediately follows Internet Identity Workshop X (May 17-19) in the same location. The Internet Identity Workshop focuses on "user-centric identity" and trying to solve the technical challenge of how people can manage their own identity across the range of websites, services, companies and organizations that they belong to, purchase from and participate with. This is where everyone from a diverse range of projects doing the real-work of making this vision happen gather and work intensively for three days. It is the best place to meet and participate with all the key people and projects.

Kaliya Hamlin is the designer and facilitator of both events and both are professional unconferences.

You can follow this event on twitter @digitaldeathday

9:11 AM | Comments () | Recommend This | Print This

April 28, 2010

Automatic Negotiation of Contracts Using Context

FM Liberman signs agreement with OECD Secretar...

Image by IsraelMFA via Flickr

I had some great discussions with Renee Lloyd of Project VRM this week at Kynetx Impact on the subject of legal agreements and context. I don't pretend to understand the legal issues sufficiently well to exilian them here, so I'll just summarize my understanding and let Renee and others correct me where necessary.

The problem is that the terms and condition agreements that most Web sites use ubiquitously have some legal issues that make them less than ideal. Moreover people dislike them. Their inflexibility leads to lost business and opportunity.

What if we had the ability to automatically negotiate agreements based on various context available when the transaction is being completed? What do I mean by "context?". Here's a few examples:

  • because you're a repeat customer I might offer an agreement without certain clauses that I would require of a new customer
  • I might offer you a lower price if you choose to forego indemnification in certain situations
  • based on the fact that you're a male I don't have to give you clauses regarding dangers to pregnancy
  • customers might be able to shop based own agreement terms rather than just price, shipping cost, etc.

In short, agreements could be generally less complex because they would not have to cover every conceivable problem.

The problem is how to automate these negotiations because companies and individuals don't have the resources to do it manually. I see it as a subset (mostly) of the more general VRM problem. In an earlier blog post, I posited that rules acting on behalf of the customer and rules acting on behalf of the merchant could use contextual data, including data from the customer's personal data store (or exchange, depending on your view), to automatically negotiate deals. Why not terms also? Indeed.

KNS and the Personal Data Store

The diagram (see a description in in the post) shows rules acting on behalf of the customer and rules acting on behalf of the merchant interacting inside the Kynetx Rules Engine to produce a custom, negotiated result based on the desires and situation of both parties. The engine has contextual data about the transaction as well data from the personal data store (as permissioned by the customer). The details of the transaction and, more importantly, the customers personal data don't have to be revealed to the merchant to negotiate the agreement. Neither do the details of the transaction or the merchant's position need to be revealed to the customer.

Clearly the result of the negotiation might not always be a complete agreement, but it could give the user the specific points of the agreement that have to be agreed to beyond what the customer's rules dictate are automatically ok in the specific context of this transaction. These are just some initial thoughts on how this might work and they clearly need to be built out for us to understand just how well they'd work. But if they do, contextual negotiation of custom agreements (as simple contracts rather than a contract of adhesion) could provide significant benefits to both customers and merchants.

5:40 PM | Comments () | Recommend This | Print This

April 26, 2010

CTO Breakfast Following Impact

Kynetx Impact Banners

Image by windley via Flickr

In one of those scheduling goofs that look good 6 months beforehand, but utterly silly up close, I've schedule this month's CTO Breakfast just a day after the Kynetx Impact conference. Not to mention we have 20 people staying over after Impact to talk about personal data exchanges on Thursday. Nevertheless, the CTO Breakfast will happen on Friday morning at 8am in the usual place (Novell cafeteria). You're invited. You don't have to be a CTO, just interested in technology developments.

While you're planning your week, please also come to Kynetx Impact on Tuesday and Wednesday. We've got a great agenda and it's going to be a fantastic event. I'm very excited and looking forward to it. Register here with code "pjw33" for a 33% discount.

9:44 AM | Comments () | Recommend This | Print This

April 23, 2010

Putting a Facebook Like Button in a Movabletype Blog

Facebook, Inc.

Image via Wikipedia

The top of this post has a Facebook "like button." I'm not sure I'm going to leave it there, but I though I'd share how I did it. These instructions are for Movabletype:

  1. Edit the "Individual Entry Archive" template under "Archive Templates"
  2. Once you decide where you want the button in the template, insert the following code: Note that <$MTEntryPermalink$> is what gets the entry URL and places it in the call to Facebook
  3. Save the template
  4. Republish any entries you want to have the like button

You might want to change how the Facebook like button looks. You can do that on Facebooks like button generator page. Just remember to change the URL to use <$MTEntryPermalink$>. I had to add a "height: 25px" to the iframe style to make it the right height. Still not sure this is right, but without it, I got a big white space underneath the iframe.

Pretty simple and now your blog has been assimilated by Facebook.

11:10 AM | Comments () | Recommend This | Print This

Programming the Internet: Reactive Systems, Events, and KRL

Billard balls

Imagine walking into Borders and having your smartphone alert you to the fact that the book you put on your Amazon wish list this morning is available right now and on sale. As another example, think about an application that gathers relevant articles from your RSS and Twitter feeds based on searches you've performed or that are related to an email your received from a friend today. These examples show the power that can be achieved when we start programming the Internet and not just the Web. There's no reason that clients in different domains (like your smartphone and Web browser) shouldn't be cooperating under your guidance to help you get things done. But to make that happen, we need new architectures and programming paradigms.

One way of viewing the Internet is a big reactive system. When you browse, tweet, email, and so on the Internet reacts to what you're doing, or so it seems. Programming on the 'Net requires reacting to user activities. Web programs do this in a fairly ad hoc manner because most Web frameworks provide little support for managing program data and control flow across individual user interactions.

When we invented KRL, the Kynetx Rule Language, our goal was to build notational support for the hard things that Web programmers face everyday--especially on the client-side. The goal is let the machine take care of the details. Linguistic expression and abstraction give programmers the tools to do amazing things without making heroic efforts. One example of this principle at work is the integration of the Twitter API and OAuth into KRL so that developers don't have to manage the OAuth protocol dance by themselves. But there are bigger fish to fry than OAuth.

Thus far, most KRL apps have been fairly simple reactive systems because the responsibility for responding to more complicated scenarios rested firmly on the programmer's shoulders. For example, if you wanted to respond to a user visiting page A only after they've visited page B in KRL, you had to use persistent variables to store the page A visit and then check in the rule responding to the page B visit if that variable had been set. More complicated scenarios required that the developer design and then manually construct whatever state machine was appropriate to keep track of the user's current spot in the scenario.

One of our short term goals in KRL is to support what we call "dialoguing"--essentially KRL apps that react to user's actions in ways that any normal Web application would. Dialoguing will support the ability to create and respond to forms within KRL and interact with users in much more sophisticated ways. Building your own ad hoc response state machine--as defined above--wasn't acceptable (even though this is essentially what all other Web frameworks require).

If we were to classify KRL, it would be called an "event-condition-action" (or ECA) rule language. The basic pattern is

when Event
if   Condition
then Action

So, I call KRL an ECAE language with the last 'E' standing for 'effect.' The ECA pattern is typical of most business rule systems and is a great way to write reactive systems.

A while back I ran across a bunch of research done on active databases in the 90's and realized that the ideas developed for specifying and implementing complex event expressions in databases would serve nicely for the kinds of things we want to do in KRL. (If you're interested in such things, I've made my bibtex file on rule languages available.) A good event language adds considerable power to rules. By incorporating events more fully into KRL, we can allow developers to create much more complicated rules without requiring that they manage the scenarios themselves.

The key to understanding these ideas is to realize that how KRL has traditionally used events and how this can be expanded into a more full-featured and complete event system. Here's the high-level diagram:

Endpoints and KNS

The three components in this diagram are the user client (traditionally a browser), the endpoint (traditionally a browser extension), and the Kynetx Network Service (KNS). Before today KRL had just one primitive event: pageview. When you write a select statement in a rule, you're specifying the event on which to select the rule. For example, consider the following select statment:

select using "/archive/\d+/" 

This select statement says when the user visits a page matching the regular expression "/archive/\d+/" select the rule. When the browser extension, acting as the endpoint, raises a "pageview" event with KNS, KNS selects rules that match that event. Of course, if nothing matches then nothing is selected.

In addition to the single "pageview" event supported by the select statement, KRL also supported two other event types, but only as second-class citizens in the callback postlude: click and change.

Today we're announcing a more generalized event expression language for KRL. Event expressions come in two forms:

  • primitive events - these specify the primitive event in a given domain.
  • complex events - these combine primitive events using event constructurs such as then or between

Primitive events will depend on the domain. For now, we have pageview with more coming. Complex event expression allow us to combine primitive events to form event scenarios. The following event operators are available now:

  • A before B - event A occured before event B:
  • select 
      when   pageview "bar.html" 
      before pageview "/archives/(\d+)/x.html" setting (year)
    
  • A then B - event A occured then event B occured with no intervening (salient) events
  • select 
      when pageview "bar.html" 
      then pageview "/archives/(\d+)/foo.html" setting (year)
    
  • A and B - event A occured and event B occured in any order.
  • select 
      when pageview "bar.html" 
      and  pageview "/archives/(\d+)/foo.html" setting (year)
    
  • A or B - event A occured or event B occured.
  • select 
      when pageview "bar.html" 
      or   pageview "/archives/(\d+)/foo.html" setting (year)
    
  • A between(B, C) - event A occured between event B and event C
  • select 
      when pageview "mid.html" 
         between(pageview "firs(.).html" setting(b),
                 pageview "las(.).html" setting(c))
    
  • A not between(B, C) - event A did not occured between event B and event C
  • select 
      when pageview "mid.html" 
        not between(pageview "firs(.).html" setting(b),
                    pageview "las(.).html" setting(c))
    

Of course, these can be nested as well. Parentheses specify execution order where precedent is not apparent.

select 
  when (pageview "mid.html" 
    between(pageview "firs(.).html" setting(b),
            pageview "las(.).html" setting(c)))
  before pageview "/archives/(\d+)/foo.html" setting (year)

I anticipate that we'll add other event expressions operators as we get more experience with them. Also while the only primitive event shown in the previous examples is pageview, other primitive events will soon be available. There's no restriction that requires all of the primitive events in a particular scenario coming from a single domain.

This new event expression language gives us a great platform for growing the expressive power of KRL in the the coming months. In increasing the expressiveness of KRL for events, we can move along three dimensions:

  1. Adding event expressions with composition operators that allow the expression of complex event scenarios through the combination of multiple primitive events.
  2. Adding new primitive events to the Web domain by making click and change first-class events in the language and adding any other relevant events that a browser extension might raise. Note that these need not be limited to the events available in Javascript, although those are all good candidates, but also browser events like "bookmark added" and so on.
  3. Adding new event domains so that endpoints for mail clients, RSS handlers, queue services, telephony engines, and so on can raise events with KNS. In addition to endpoint events, we anticipate adding temporal events to event expressions.

Item (1) is done and incorporated in KRL now--more on that in a minute. We're working on (2) and expect to have additional primitive events in the Web domain in the next few weeks. We also have an active project to develop an endpoint--and corresponding event primitives--in an IMAP client that hope will start to address (3) in the next several months.

You might be wondering how we can add complex event scenario evaluation to KRL efficiently. The key is that event expressions are actually no more powerful than regular expressions over the alphabet of primitive events. We compile each event expression into a corresponding state machine as part of the ruleset optimization process. Then we simply keep a state marker for each rule in each ruleset that each user has installed. The storage requirements aren't that great and reacting to an event only requires looking at the user's current state for a rule and calculating the next state. If the state machine is in a final state the rule is selected and the state machine reset. The exact details of how event expressions compile to state machines is left as an exercise for the reader based on the bibliography given above and basic computational theory.

I'm very excited about this release; I've been working on it for 3 months. Support for complex events are the most fundamental shift in the core KRL execution engine in the 2.5 years we've been working on it. These changes significantly increase the expressive power of KRL now and lay the foundation for furture improvements. More importantly, a robust event expression language will make it easier for developers to create applications that work across multiple domains, helping users achieve their purpose and get things done.

9:35 AM | Comments () | Recommend This | Print This

April 22, 2010

Branding and Indispensability vs Reputation and Influence

A young steer being branded with an electric b...

Image via Wikipedia

I was asked by Cyd Tetro to sit on a panel today at the Women Tech Council along with Sue Johnson. The topic is "personal branding, indispensability, and networking." I'm planning to be a little contrarian. First off, I agree with Doc that the idea of branding is dehumanizing. Fine for corporations, not necessary for people. We already have an identity and we have our humanity. Those are the things that we need to emphasize, not the idea of personal brand.

Second, as the saying goes, "the graveyards are full of indispensable people." The idea isn't to be indispensable, but rather to be influential. Individuals gain influence when they relate and lead. Everyone, at every level, can and should lead out. If you're stuck in an industrial-age org that believes that top management's role is to create a framework within which to cram everyone else at the expense of their individuality, then get out. We are not cogs in the machine. Good organizations provide platforms that individuals can leverage to do their best work.

On relating, I'm reminded of something I wrote recently in my starting a high tech business blog series: 10 years from now only the employees will care whether the company existed.

One of the critical observations I've made about iMall, almost 10 years after we sold it to Excite@Home is that only the employees care anymore. In 2009 the investors---those who made money and those who lost it---rarely think about iMall. The customers certainly don't give it a second thought. But the employees are a completely different matter. They made friendships there and gave important parts of their lives to making iMall a success. They learned things there that they use in their careers even now. There's even an active mailing list of former iMall employees.

One of the primary reasons for starting a business is that it's a lot more fun and exciting than getting a job. Part of the fun is that you get to pick the people you'll work with. You get to build a team and create a culture. If you succeed in creating a team that works everyone on that team will remember it as a highlight of their lives. I remember reading somewhere that when people are part of a successful team they spend the rest of their lives trying to recreate that experience. I think that's one of the reasons that most entreprenuers do it over and over again. They love the social side of starting a business.

Your influence is directly proportional to the people to relate to and your knowledge, insight, and passion. To have knowledge, you have to focus on developing your career. Your employer won't do it--you have to be responsible for it. Looking after yourself ensures that you're in a better position to lead now and in the future. Get plugged in and read. Follow interesting people on Twitter and read good blogs.

Passion is critical. If you're not passionate about what you're doing, do something else. Start your own company if you have to. Focus on making meaning (to borrow an idea from Guy Kawasaki) rather than money.

When people talk about personal branding, mostly what they're talking about is ensuring that outside identifiers are consistent. To the extent we're talking about that, I'm all for it. In particular, reputation depends on consistent identifiers. So here's a few tips:

  • Get a LinkedIn account and use it. LinkedIn is the resume of the 21st century
  • Get a Twitter account and follow interesting people
  • Choose account names carefully so that you can be found
  • Link things together so that people can find your Twitter account from your LinkedIn page, etc.
  • Pick a good avatar or picture and update it infrequently
  • Decide upfront how public you want to be and make some rules.
  • Don't assume that you can keep your "personal persona" on Facebook and your "professional persona" on LinkedIn separate; you can't. Everything about you is fair game and will be linked together.

Networking is about connection, but the real work comes in relating. Twitter's a good example. Connecting is easy, but the real benefit comes from following someone over time and understanding them. At Kynetx we hold open lunches every Friday as a way of networking both within the team and with external partners and friends. Those have a very personal dynamic to them. The Kynetx Impact conference (being held next week, by the way) is another way that our company networks and allows our partners and developers to network. The CTO breakfast that I started years ago is another example.

In the end, if you build a good reputation, trust will follow. And influence will follow trust. Doc Searls is a great example of the fact that you can be gracious and kind and still be influential. He's one of my heros. Follow his example: disagree without being disagreeable, challenge without getting personal, and lead without ego.

11:01 AM | Comments () | Recommend This | Print This

The Power of Late Binding

Late binding tattoo

Lately the subject of late binding keeps coming up. In computer science the term refers to runtime resolution of what names mean and includes the concept of dynamic loading. Most of the languages that have gained favor over the last decade like Python and Ruby are late binding languages. Usually these languages also include other runtime resolution features like dynamic types. Raising the topic causes programmers to reach for their crusader sword and shield as they prepare for the religious battle that is sure to follow. Late binding is a big deal in many OO langauges because of the influence of Alan Kay (the creator of Smalltalk and big fan of late binding). And to be sure, some dynamic features--like dynamic scoping--have few adherents.

I find this concept resonates--to my surprise--with non-programmers as well. Last week in NY I described Kynetx as a "late-binding Web technology" and went on to explain that traditional Web site construction is like static binding--you make all the decisions up front and spend lots of effort coding it, only then to reveal it to the world. Kynetx is a late-binding Web technology because it comes long at runtime--just as the user visits the site--and makes important changes specific to that user's context.

I was reading this blog post from John Hagel about his new book (along with Lang Davison and John Seely-Brown called The Power of Pull. He says:

Pull allows each of us to find and access people and resources when we need them, while attracting to us the people and resources that are relevant and valuable, even if we were not even aware before that they existed. Finally, in a world of mounting pressure and unforeseen opportunities, pull gives us the ability to draw from within ourselves the insight and performance required to more effectively achieve our potential.

The power of pull puts each of us, individually and together, in a position to collaborate in a complete re-imagination of our biggest private-and public-sector institutions, one that may eventually remake society as a whole. As customers, we have more choices, and more information with which to make those choices, than ever before. As talented employees we have greater power too than before, since we create the lion's share of today's corporate profitability.  As each of us votes with our feet and allies ourselves with new generations of institutions, we'll abandon the old ones, leaving them to drift into obsolescence and setting in motion a reshaping of broad arenas of economic and civic life.

From Edge Perspectives with John Hagel: The Power of Pull Has Finally Arrived
Referenced Thu Apr 22 2010 09:32:54 GMT-0600 (MDT)

A concept that they use in the book is the shift from stocks of resources to flows. Anyone who's been paying attention for the last 10 years knows that the move to flows is a huge trend in the modern world. The idea that you pull things to you "just in time" from the flows that are all around us is very much a late binding concept.

The more dynamic the Internet gets, the more data there is floating around, the more we mashup things to create just what we need, the more important late binding becomes--in your life, your programming language, and your Web technology.

9:45 AM | Comments () | Recommend This | Print This

April 20, 2010

Things Every Programmer Should Know

Kevlin Henney

This week on the Technometria Podcast, I interview Kevlin Henney, the editor of the book 97 Things Every Programmer Should Know. I really enjoyed reading this book and I enjoyed the conversation with Kevlin. One of the things that struck me is that there's so much wisdom here that we just don't teach people. Rather, we expect them to pick it up as they go along. I heartily recommend the book (and the podcast) to beginning programmers and old-hands alike. The book's Web page has copies of the contributions that made it into the book and also the one's that didn't, so pop over and see for yourself.

2:46 PM | Comments () | Recommend This | Print This

April 9, 2010

UTOS Hackathon on April 24

Utah Open Source 2009

Image by mindjuju via Flickr

UTOS (Utah Open Source Foundation) is sponsoring a hackathon on April 24th. Here's Clint Savage's description:

Concept is a coding barcamp. People show up to help or to present a coding project, new or existing, in 30 seconds. Everyone spends a bit of time getting organized (determining where each group will reside to hack), then the hacking begins. Breakfast, Lunch and Dinner are provided as well.

There is also a Wiki page about the hackathon with more information. The hackathon is sponsored by XMission and Stackable.com. This sounds like it will be a fun day!

8:29 AM | Comments () | Recommend This | Print This

April 8, 2010

Students, Come to Kynetx Impact Free

Kynetx Impact

I like students--it comes with being a professor for 20 years. So, students can come to Impact for just $10. Since the price includes 5 meals, that's a pretty good deal. Still, I recognize that for some students, the cost of the conference may be small compared to the travel costs of flying or driving and finding a place to stay. So, if you're a student and would like Kynetx to give you a $500 scholarship to help with your travel costs and lodging, send us a note and tell me why you deserve to come on our dime.

As an aside, if you're a skier, we've been having some pretty good spring storms and I expect that Snowbird (and maybe some others) will still be open the end of April, so come to Impact and then stay to ski.

Sign up using the form below, or on Eventbrite:

If you're still not sure it will be worth it, read my blog post with ten reasons you should come to Impact.

5:42 PM | Comments () | Recommend This | Print This

April 6, 2010

Apps Make Downloads Cool

SAN FRANCISCO - JANUARY 27:  Apple Inc. CEO St...

Image by Getty Images via Daylife

Have you ever noticed that many of the things you do in an app on your iPhone, iPad, or Android phone could just as easily be done using just the Web and a browser? My bank, for example, has an iPhone app. They also have a pretty nice Web site. What they don't have is a pretty nice mobile version of their Web site. They put their money into creating an app rather than merely putting a mobile skin on their current system. Many other apps are similar.

Why do they do this? Simple: community. If my bank can get me to download an app, then they have a permanent space on my app list. I see their brand when I swipe through my app screens. If they just have a mobile skin on their Web site, none of those things occur. Although I might bookmark their Web site to my app screen, they can't be sure and there's no good way to make sure it happens.

As you might know, Kynetx is based on the idea that people will download a client side app that manages context across multiple Web sites. When we were talking to VCs they all said: "no one will download anything--isn't there anyway you can do this without a download." Of course that was the conventional wisdom two years ago. The iPhone has changed all that.

While it may be more difficult to get someone to download something than to just get them to visit your Web site, once they do, they're a much more valuable customer. Downloads are cool again!

8:49 PM | Comments () | Recommend This | Print This

April 5, 2010

My Initial Thoughts on the iPad

Screen shot of Apple iPad in use

Image by Tom Raftery via Flickr

On Saturday, the UPS truck pulled up to the front of my house and dropped off a couple of iPads (32Gb, no 3G). The driver said they were delivering about 350 of them around Utah County that day. I spent a good part of rest of the weekend playing, exploring, and evalutating it. Here are my initial thoughts.

First, as many have already said, the screen is gorgeous and the form factor incredible. The first thing many comment on when they first hold it is: this is beautiful. The device was a little smaller than I expected (maybe an inch each direction), but after holding it and using it, I think it's a good size. I expect larger one's will be available in later versions--like anything else.

I haven't missed 3G yet, although I only had it out of the house a little. I have a MiFi for those times when I'm mobiled and need a connection. That said, this is a device that cries out to be continuously connected. While I'm really not prepared to buy a third data plan (iPhone and MiFi are my first two), I expect I'll cave and do that for the convenience at some point.

I bought around $40 dollars with of apps, including Keynote and Pages. I also downloaded another dozen or so iPad specific apps. I think the iPad will further fuel the growing app marketplace. The iPad shows that apps are not just about mobile (as in mobile phones).

One complaint about apps: it's too easy to buy and iPhone app when you wanted the iPad app. I did that once this weekend and was pretty mad about it. When I'm buying an app on the iPad, iTunes Store ought to recognize that I probably want the iPad version and ask me to confirm if I really want to by the iPhone version. There's just one place where that difference is highlighted after a search. In fact, I think that more apps ought to be universal: less for me to manage. I'd be willing to pay more for many universal apps (although not the same as buying both versions).

My kids loved playing with it. They were on it for hours. I bought the Scrabble game and my daughter and I played that Saturday night. It was an enjoyable time since we sat next to each other on the couch and passed the iPad back and forth--I actually liked it better than sitting across a board from her. I see the iPad as a gaming device that's completely different from what we normally expect from computer gaming because of it's form factor. The iPad makes the game go quicker than normal because it takes the accounting work out of it.

Speaking of being on it for hours, the battery life is phenomenal. We used it all day and spent only 50% of the battery. I expect I can get several days out of it in typical use. That's good because having yet another device to dock and charge is a pain.

The soft keyboard is quite usable for simple tasks like responding to email. The email app is nice and much better than using email on a mobile phone because of it's size. On my iPhone I mostly do email triage--responding to urgent things, deleting email that just needs to be read, and so one. But I rarely do important email tasks on the phone because it's small size and limited keyboard get in the way. Not true with the iPad. It's big enough to do serious work. I paired my Bluetooth keyboard with it to see how that worked and I'm sure I'll be using it that way a lot.

I've only played a little with Pages and Keynote, but they seem very capable of being used for creating, rather than merely consuming, on the iPad. After spending 20 or 30 minutes in them, I can imaging creating a complete presentation or document on the iPad--especially with a Bluetooth keyboard. One thing: I kept reaching for a mouse when I was in Pages and using an external keyboard. I'm not sure I'll ever be comfortable pointing at the screen when I'm editing a document. It's a lot more work than moving a few inches to the mouse.

I love the iPad when I'm in a position to hold it, but when I'm not, it's difficult to use. Laying it flat on the table--for reading the news while eating breakfast, for example--is unsatisfactory because it's glossy surface reflects light too well--a matte screen would be better for this kind of device. It's hard to prop up because it's too slick. I ordered the leather case and that might help, but it hasn't come yet. I'll probably get a dock for home, but I doubt I'll carry it around with me.

Some, like Cory Doctorow have complained about the iPad's closed nature. I share those concerns. i think if computing, in general, goes toward closed devices that can't be used to program themselves (a major telling point, I think) we're in trouble of losing something truly important.

A related fact is that you can't use an iPad without a computer running iTunes. That's really a broken model. Using iTunes as the gate to get things on and off my computer is a pain. The iPad--or its competitors--will have to be stand alone in order to be really great. Using iTunes has more to do with Apple's business model of command and control than it does with ease of use.

I can see the iPad replacing a lot of other devices I might have bought. For example, while I wanted a Kindle, I didn't want to buy a device that was pretty just an ebook reader. I have bought and read several Kindle books over the week end using the excellent Kindle for iPad. I also looked at some books in Apple's iBook application. I expect I'll use them both, but I am pretty loyal to Amazon, so I look there first. I'm miffed that I have to buy books in a format that work on one reader and not the other. Publishers ought to push for a single standard and more people will be willing to invest money in eBooks. There are still so many limitations that a physical book doesn't have. I'm likely to still buy most of my books in paper.

On a related note: I love reading on the Kindle in bed. I was afraid it might be awkward, but it's better than a real book. The form factor and weight are great and it has it's own light source. Reading outside--something I did for 30 minutes on Saturday isn't as nice on the iPad as a Kindle, but it works.

As almost everyone knows, the iPad is missing some important things like a camera and multi-tasking. I rarely miss multi-tasking in my phone. I missed it all the time in the iPad. Rumors are that version 4 of the iPhone OS will have it and that's good. The iPad needs it in a major way. The missing camera will be taken care of in future editions I'm sure and for now, there's so many other things to do with this version I doubt I'll miss it much.

There's probably a lot more I could say, but I'm running out of steam. Final thought: this is a device worth owning. I think it's evocative of many of the ways using computing devices could be better. I expect my iPad will get a lot of use over the coming months. I'm taking it with me to New York this week and while I'm not comfortable enough with it to leave my laptop behind, I expect that will be more and more possible for me in the future.

10:45 AM | Comments () | Recommend This | Print This