Hosted Email Servers

November 30, 2009

Build 353: Some New Functions for Kynetx Rule Language

Filed under: Computer news — Tags: — admin @ 4:49 am




Kynetx Logo

We released Build 353 of the Kynetx Rules Engine (KRE) this morning. Actually, I should point out that Wade Billings released it and I watched over his shoulder. This is the first time in the history of Kynetx that someone besides me released KRE code. Yeah!! This is an exciting thing in and of itself. Wade’s job is to build a continuous integration environment for Kynetx so that code changes appear in production as quickly as possible. Until then, I’ve pushed the pain on him to ensure he’s properly motivated.

The new release adds two new features to KRL:

  • The as operator provides a way to coerce primitive values. The most interesting ones are coercing strings and regular expressions. You can construct a string and then coerce the result to be a regular expression for use in a replace:
    my_str.replace(("/this/"+ e).as("regexp"),"do you want a")
  • You can use math:random to generate random numbers. The function takes an argument and generates a random number between 0 and the argument. For example, you could bind r to a random number between 0 and 9999999 with the following:
    pre {
      r = math:random(9999999)
    }
    notify("Randomness", "A new random number: " + r)

    Here’s the result showing on my blog:
    Random numbers in KRL

Both of these features were the result of developers asking for something they needed. We can’t promise same day turn around, but for small features like this we try to be as responsive as we can. On Monday we’ll announce the new Kynetx Developer Exchange where you can ask questions, answer questions, and make feature requests. More on that later.

Tags:

krl


kynetx


features

Post to Twitter Tweet This Post

Exercising Power vs Doing Better Work

Filed under: Computer news — Tags: — admin @ 4:49 am



Apple Inc.Image via Wikipedia

Paul Graham has a new essay called Apple’s Mistake about how badly the AppStore approval process is broken. This line speaks volumes:

An organization that wins by exercising power starts to lose the ability to win by doing better work

From Apple’s Mistake
Referenced Mon Nov 23 2009 08:40:31 GMT-0700 (MST)

Go read the whole thing and ponder what it means to organizations whose success is measured by the degree to which others use their platform.

Tags:

apple


appstore


business

Post to Twitter Tweet This Post

Kynetx Impact and New Features

Filed under: Computer news — Tags: — admin @ 4:49 am

One of the great things about an event like the Kynetx Impact conference that we’re holding this week is that they are great focusing tools for a company. This has been true of our thinking, but especially our technology. There were three big features we’ve been thinking about and working on for a while, but we wanted to have them done for Impact and that made them happen.

The first, I’ve already mention on this blog: FLWR in KRL, the ability to create foreach loops within a rule. This is a pretty big feature for KRL.

The second feature is creating browser extensions with the push of a button. AppBuilder now has a new link under the “deployment” tag that creates a Firefox and Internet Explorer browser extension that will run a ruleset. Just click the link and you’ve got browser extension you can distribute any way you like. This is HUGE. In short, you can create browser extension without knowing anything about programming browser extension. This is still a bit experimental, but will firm up over the next few weeks.

Last but not least, we exposed versioning in AppBuilder so that developers can have development version of their ruleset that’s different from their production version. This has been much requested by rule writers after they get users up and running. No one wants to test on the production system and this features fills in that missing piece.

Of course in addition to all these, there’s countless changes we’ve made large and small to make things a little nicer before the big event: a new navigation menu in APpBuilder, an updated tutorial, proxy endpoint changes, and so on. I love the way everyone came together and made it all happen. The energy was fun.

Tags:

Post to Twitter Tweet This Post

Come to Kynetx Impact This Week

Filed under: Computer news — Tags: — admin @ 4:48 am




Kynetx Logo

If you’re a regular reader of my blog, then you know that we’re having a developers conference for Kynetx on this week on November 18-19 in Provo called Kynetx Impact. There’s an awesome agenda with some great speakers including Doc Searls, Kim Cameron, and Paul Trevethick.

There will also be great food, great people, and a chance to see first hand what we’re doing at Kynetx. You can sign up online. Over 110 people are signed up already and we’re expecting a standing room only crowd.

I’d like for you to come to Impact. Use Windley25 to get 25% discount on the admission fee. I’d love for you to see what we’ve built and get your feedback.

Tags:

kynetx


events


utah


impact

Post to Twitter Tweet This Post

We Need More Than a Selector

Filed under: Computer news — Tags: — admin @ 4:48 am




Kynetx Logo

If you glance at Johannes Ernst’s latest blog post, Why We Really Don’t Need an “Identity Selector”, you might think he’s speaking out against identity clients, but in reality, he’s speaking out against identity “selectors.” That is, the idea that the most important, useful feature of such a client is “selecting” an identity. He says:

The correct product is not a “selector”. It also must be:

  • An identity “de-selector”, with which the user can become anonymous again (or perhaps even remove all the information from the site which was conveyed during the “identity selection” phase). The much-desired “single sign out of the web” button should logically reside there.
  • An identity-aware session “visualizer”, which conveys to the user that there they have open sessions with which sites, which of the user’s identities are currently used with which site, which others they have used with which site in the past, whether the session is valid (as opposed to expired), what information about them they have shared with the site and perhaps how to log out.
From Johannes Ernst’s Blog ยป Why We Really Don’t Need an “Identity Selector”
Referenced Tue Nov 10 2009 21:25:44 GMT-0700 (MST)

I agree, but I’d argue that it ought to do even more than this.

At Kynetx we’re building a platform for creating what we call purpose-centric applications. These apps are necessarily client-side because the client is the only place that sees all of the user’s activity and thus the only place that can mediate on the user’s behalf.

Consequently, I think that the client ought to also:

  • Help users manage the apps that mediate their online experiences on their behalf
  • Provide a way for users to provide feedback about such applications and show the reputation of each app based on that feedback (among other things)
  • Provide security and privacy warnings to the user
  • Mediate data requests for the user’s personal data store and other data sources (i.e. data authorization)

Of course, it ought to do the things Johannes recommends too–why not? But as he correctly points out, authentication is a small part of the overall experience and we ought not name the whole client based on 0.5% of the interactions. What should we call it? I don’t know yet, but I’m sure Craig Burton could come up with a few suggestions.

Why put this in the identity client and not somewhere else? My first answer is that we’ve we’ve been using a selector to do this for 12 months and it feels natural. The second answer is that client-side, experience-mediating apps deal with lots of personally identifying information. Indeed the security, privacy, and data autorization tasks I mention are part and parcel of the larger “identity management” world.

You might say, but couldn’t this be built into the browser? No, unfortunately. That would be easier in the short term, but it won’t solve the problem; the apps might be mediating the user’s email or IM interactions outside of the browser. I think a separate interface provides greater opportunity for a better user experience.

Kynetx apps need a client that performs these services. Whether we can define them for some generic “action card” concept inside Information Cards or whether we end up building a client that functions as an Information Card selector but also adds additional features like Johannes and I propose is an open question. I’ve never been shy about building what I need, but I’m also not anxious to reinvent to wheel if something out there meets the need.

In any event, I’m convinced that more full featured identity-management, app-management clients will need to be built to support the coming purpose-centric web that is unfolding. If that idea intrigues you, join us next week at Kynetx Impact.

Tags:

information+cards


kynetx


identity


purpose+centric

Post to Twitter Tweet This Post

KNS Build 351: FLWR Comes to KRL

Filed under: Computer news — Tags: — admin @ 4:48 am




Kynetx Logo

One of the big features missing from KRL as a rule language is a foreach statement that allows looping. Build 351 of KNS (released today) fixes that problem. The thing that kept holding me back was confusion on my part about the best way to add it and how it should work.

The problem was that I wanted, thought KRL needed, more than just looping. I wanted full-blown FLWOR statements (foreach, let, where, order by, result). I realized one day on a bike ride that the entire rule ought to be a FLWOR statement and that meant that the foreach needed to happen before the rule body executed.

The rule prelude already functions in the capacity of a “let,” the rule premise (condition on the action) already functions in the capacity of a “where,” and the rule action itself is the “result.” Yeah, I left out “order.” More on that later.

KRL now allows one or more foreach clauses to be added to the select statement like so:

select using "/archives/" setting ()
  foreach [1, 2, 3] setting (x)

The value of x will be bound to the values 1, 2, and 3 on successive executions of the rule body. KNS optimizes the rule so that declarations in the prelude aren’t executed inside the loop unless they depend on the value of the variable (directly or indirectly).

Of course, the array is an expression, so it doesn’t have to be an array literal. You could do this:

select using "/archives/" setting ()
  foreach f.pick("$..store") setting (x)

This works fine as long as f has been declared outside the rule in the global and the pick returns an array.

The entire rule body–everything after the select is executed once for every loop. If the premise is true, an action is produced, so a rule with a foreach over a three element array would produce three actions if the premise were true each time.

We can’t order the array yet. Adding a sort operator on arrays would do the trick but to do that I need someway to specify the comparison function and KRL doesn’t have functions or closures…yet.

Looping has been a long time coming, but I’m excited to see what people do with it. Surprise me!

Tags:

kynetx


krl


programming+languages

Post to Twitter Tweet This Post

Spamming Like a Pro: The Value of Social Data

Filed under: Computer news — Tags: — admin @ 4:48 am



Facebook, Inc.Image via Wikipedia

This article at TechCrunch: How To Spam Facebook Like A Pro: An Insider’s Confession is written by Dennis Yu, a reformed ad spammer on Facebook. In it, he says:

When the Facebook platform first launched, developers used Google AdSense, which was paying 10-15 cent eCPMs, meaning that developers were earning 10 to 15 cents for every 1,000 ads they shown. But soon, ad networks, such as the one I operated, stepped in to show that by using social data and some clever ad copy, we could raise this to well over $6–that’s 60 times better than AdSense. AdSense was getting a 0.1% CTR and earning 15 cents a click. Our ads were getting up to a 4% CTR and also earning 15 cents a click. You do the math.

From How To Spam Facebook Like A Pro: An Insider’s Confession
Referenced Wed Nov 04 2009 14:19:41 GMT-0800 (PST)

That number–60x–jumps out of that statement. There’s trmendous pressure, as this article points out, to sell out users. That’s a good reason to find technologies that let users manage their data. With the right model, users could share in that revenue and make this kind of sale more above board that what’s happening right now.

Tags:

facebook


advertising


vrm

Post to Twitter Tweet This Post

IIW Trending Topics: OpenID and IC Cooperation and Activity Streams


IIW Logo

IIW IX, the 9th Semiannual Internet Identity Workshop is underway at the Computer History Museum in Mountain View. At each meeting, I’m usually surprised by the emergence of one or two topics and pleased to see continued moves toward even further consolidation and cooperation between mature identity protocols.

There continues to be increased cooperation between OpenID and Information Cards. I’ve see demos of using Information Cards to store and apply OpenID from Microsoft and heard discussion around OpenID selectors and trust frameworks. I quipped that OpenID keeps adding features incrementally in a way that asoptotically approaches the design of Information Cards. Information Cards, on the other hard, search for way to ride the popularity of OpenID to relying party acceptance. For both, getting relying parties to accept them for authentication remains the hopy grail.

One topic that is trending up at IIW is activity streams.
Activity Streams is an extension to the Atom feed format for sharing user activities among various systems. The Activity Streams format has already been adopted by Facebook, MySpace, Windows Live, and Opera. Monica Keller created a Prezi on the anotomy of an activity stream: who did what, where, when, and under what circumstances. What did they say about it? Who else was there?

As I learned about activity streams I couldn’t help thinking how neat it would be to build them into KRL so that you could write rules around activities.

Tags:

activity+streams


iiw


iiw9


openid


information+cards

Post to Twitter Tweet This Post

It’s My Browser and I’ll Auto-Click if I Want To!

Filed under: Computer news — Tags: — admin @ 4:48 am



Electronic Frontier FoundationImage via Wikipedia

A month ago, I posted a piece claiming my right to a purpose-centric web. In it, I stated:

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.

Not surprisingly, the EFF agrees with me. Not on this exact issue, but in the spirit of the user having the right to control the experience on their own machine. They say:

Free file hosting provider MediaFire seems to think that, when you follow a link to download a file from its service, it has the right to control your browser. This is yet another example of a web site owner forgetting that it’s your computer, and it’s none of their business how you choose to experience their web pages.

And then later:

Fortunately, there’s nothing in the law that says that by simply visiting a website, I give up the right to control my desktop.

From It’s My Browser, and I’ll Auto-Click if I Want To
Referenced Fri Oct 30 2009 14:57:26 GMT-0600 (MST)

Read the article for the particulars, but the bottom line is that users should control their experience and choose their browser–not Web site owners.

Tags:

eff


kynetx


google


sidewiki


purpose+web


online+rights

Post to Twitter Tweet This Post

Starting a High Tech Business: No Cold Hires

Filed under: Computer news — Tags: — admin @ 4:48 am



This Gun for Hire album coverImage via Wikipedia

I’m starting a new business called Kynetx. As I go through some of the things I do, I’m planning to blog them. The whole series will be here. This is the twenty-first installment. You may find my efforts instructive. Or you may know a better way–if so, please let me know!

In the past two weeks Kynetx has doubled in size. There’s lots to do and the resources to make it happen, so getting more people became a priority. Getting the right people became the most important thing Steve and I could do for the long term health of the company.

I’ve been in lots of hiring situations before–at iMall we grew from three people to over 125 in a little over 16 months. I’ve learned a few things. The most important being that mistakes in hiring can cause untold grief later on down the road. You definitely want to get this right the first time–iterating to a solution is too expensive.

I’m in firm agreement with Joel Spolsky on what constitutes getting it right: hire people who are “smart and get things done”. That’s not easy; the good people aren’t usually out looking for jobs. They’ve already got jobs where they’re respected and well compensated because they’re “smart and get things done.”

One good rule of thumb for getting good employees is “no cold hires.” Four out of the five people we hired this past week are good friends who Steve and I have worked with in multiple ventures in the past. The fifth was someone who had worked closely with another key member of the team in mutliple ventures. We know these people well: we know their personality, we know their strengths, and we know their weaknesses. And…they know ours. Most importantly, we know they’re “smart and get things done.”

Clearly, the more you grow, the harder it is to only hire people you personally know, but, as was the case in our fifth hire, you can tap other members of the team you trust for referrals. And regardless of the source, the owners of a small business ought to be involved in every hiring decision and involve the rest of the team in the decision. The wrong person can be organizational poison and the smaller you are the less tolerance you have to weather bad hiring decisions.

Your personal network of people may not be very deep. That’s a place where being older and having worked at more places gives an entrepreneur a definite advantage. Still, you can work on your network and get to know good people. There’s an old saying that goes: the best time to plant a tree is 20 years ago; the second best time is right now.

One of the most valuable aspects of warm hires is that you can hit the ground running and get up to speed much more quickly because you have less of the “storming and norming” phases team building. These folks come predisposed to fit in your culture. At iMall, we did a lot of cold hires and the results were mixed. Most of them were pretty good people from a technical point of view, but some didn’t fit the culture and that caused a lot of problems.

I’m sure there will reach a point where we are forced to make hiring decisions about people we have little background with, but I will forestall that day as long as possible. Good hiring is easier when you follow the simple rule: no cold hires.

Tags:

kynetx


startup


hiring


relationships


blogging

Post to Twitter Tweet This Post

Older Posts »

Powered by WordPress