Tag Archives: kynetx

Hiding the “personal appeal” banners on Wikipedia using Kynetx

I’ve already seen the Wikipedia banners a million times: “Please read this personal appeal from Jimmy Wales/Sue Gardner/whoever”. I’m not interested in seeing them anymore. So I wrote a simple Kynetx app to get rid of them.

Here’s the code:

ruleset a163x33 {
  meta {
    name "Hide Wikipedia notices"
    description <<
      Hides the siteNotice>centralNotice divs at the top of Wikipedia
      (such as the "personal appeals" from people)
    >>
    author "Steve Nay"
    logging off
  }

  dispatch {
    domain "wikipedia.org"
  }

  global {
    css <<
      #siteNotice > #centralNotice { display: none; }
    >>;
  }

  rule hideNotice {
    select when web pageview "en.wikipedia.org/w(iki)?/(.*)"
    noop();
  }
}

It basically just emits some CSS that will hide all the div tags with the id centralNotice that occur as direct children of the siteNotice divs. Then it does that any time you visit a page on Wikipedia. Really simple.

Now those banners will never appear at the top of Wikipedia articles anymore!

You can get this app on the Kynetx MarketPlace.

Linux notifications for the Kynetx KRL command-line tool

This is a response to Mike Grace’s excellent post, Growl Notifications for Kynetx KRL Command Line Tool. The idea is entirely his; I’ve just implemented a solution for Linux. I recommend you go read his post so you know what this is all about.

Since Linux uses libnotify instead of Growl, it’s fairly simple to implement as similar solution to Mike’s on a Linux system.

You’ll need the libnotify-bin package installed. You can do that in the normal manner.

First, add the following to your ~/.bashrc file:

krl() {
  if [[ $1 == "commit" ]]; then
    command krl $@ | tee status.txt
    notify-send -i ~/.kynetx-x.png “KRL” “`cat status.txt`”
    rm status.txt
  else
    command krl $@
  fi;
}

This is basically creating a function that will run whenever you issue the “krl commit” command. It pipes the output of the KRL gem to a file and then uses the text of that file in the notification.

You can download the Kynetx “X” image to your home directory if you like with the following command:

curl https://kynetx-apps.s3.amazonaws.com/krl-commit-growl-notify/kynetx-x.png > ~/.kynetx-x.png

That’s it! Have fun!

Ideas for context automation at BYU

  • The book you placed on hold last week at the BYU Library is now in for you to pick up. You receive a notification on your phone just as you enter the atrium. Want to check it out right now?
  • Your favorite stand-up comedy group is doing a show right now next to the Cougareat. Your phone alerts you to such as you walk through the quad just outside the Wilk. Care to take a look?
  • Your Physics 121 homework is in your backpack, all finished. Now that you’re in the MARB, your phone reminds you to run upstairs and turn it in before you forget.
  • You’re still on the other side of campus and class starts in 10 minutes. Since you’re on your work computer, perhaps you’re deep in thought on a project. Don’t forget to leave in time!
  • You’ve been searching Google, Wikipedia, and the Library’s website for 10 minutes with keywords all relating to Rembrandt and van Gogh. You don’t seem to have found anything satisfactory yet. There’s an art history subject librarian online right now. (She even has a specialty in Dutch painters.) Maybe she can help you break this mental block–care to chat?


Location-aware context automation is an extremely powerful and relevant concept. The possibilities are endless.

How do we make this a reality on a college campus?

BYU could use information I supply about my intent to give me relevant, useful information (call it advertising if you must): books I want to read, my favorite groups, academic interests, homework reminders, etc.

Such location-aware context automation is currently a hot topic at Kynetx, industry leader in pioneering the purpose-based, context-aware web of the future.

Kynetx provides the platform to enable the kind of context-aware applications I mentioned earlier.

What if BYU’s network routers were Kynetx endpoints? Then my smartphone (also acting as a Kynetx endpoint, probably through an app) could detect when I’m in range of one of these wireless access points. It can also trivially determine which building or perhaps even which classroom I’m in. That takes care of the location part of the context puzzle.

What if my laptop were a Kynetx endpoint that knew what building I was in and what I was working on–where I’m browsing the web, whether I’m online on my chat client, etc.?

Other data can be used to determine the intent part of my context–books of my Amazon.com wish list, books I’ve checked out or reserved at the library (both currently and in the past), classes in which I’m enrolled, clubs of which I’m a member, homework assignments that are due soon. Insert your favorite piece of data here. You get the idea.

Given that information, BYU could provide me contextually relevant information to make me more productive at my current location or the current time of day. That context automation could stretch across my web browser, my computer, or my smartphone.

That opens the doors for some really powerful applications that aren’t currently possible with the web as we know it.

What ideas do you have?

Kynetx and the spectrum of identity

This article is also cross-posted on Kynetx Code.

This week was the Kynetx Impact Conference 2.0, held in Sandy, Utah. I met a lot of cool people there, and I thoroughly enjoyed the intellectually stimulation of being in such close proximity to so many brilliant innovators.

One topic of particular interest was treated by Chad Engelgau from Acxiom Corporation: the spectrum of identity.

Chad argued that in order for the web to work, we need to have an identity continuum that places anonymity at one end and verified identity at the other, with room for one or more personas in between. In light of Facebook’s recent announcement of the Open Graph Protocol, this is an intriguing idea. Facebook would like to do away with anonymity and personalize everything. But that model is broken.

From Chad’s remarks, I’d like to construct a real-world analogy of Facebook’s new proposal:

Imagine you walk into a grocery store. You have to scan your government-issued ID card before they’ll let you through the door. Once they’re sure you are who you say you are, you’re granted access to the store and are given a cart. It knows what kinds of things you’re looking for (either ones you explicitly declared or ones that are relevant based on your demographics, etc.) Advertising all over the store is modified when your cart rolls by to offer products and services of interest to you. This can make it very easy (but potentially very annoying) to find the things you really want and may or may not speed up your shopping trip.

Such a grocery store would be simply absurd. If you frequent the store, you will know what is being sold and where it is located; you’ll know what you need to buy. Preserving your anonymity in a grocery store is the most efficient and the most relevant way to shop.

Now consider going to a bank to take out a loan for a new car you just purchased. If anyone could just walk in to the bank anonymously and obtain a loan, the banks would soon be in deep financial trouble. They have a need to know who you are and what your financial background is before they will offer you a loan. In this case, anonymity is absurd; a verified identity is necessary.

If the real world works this way–built around spectrum of identity–why shouldn’t the web?

If Facebook’s new method of personalizing sites by using your full, “verified” identity everywhere was ever intended to become mainstream, it is a broken method. It is simply not necessary.

Chad Engelgau postulated that users of the web ought to be able to browse anonymously but still get a personalized experience. In some situations, anonymity is best; in others, one or more personas that may or may not accurately represent the “real you.” And in a few situations (especially where financial transactions or sensitive data are involved), a verified identity is absolutely necessary.

This is where the power of Kynetx and context automation enter the picture.

With Kynetx, users can browse the web anonymously without the need for some intermediary (think Facebook) to store and disperse personal information about you. The user can instead give information about relevant pieces of her context and allow Kynetx apps to leverage that information. If I’m Amazon.com and I want to show my visitors relevant purchase suggestions, I only really need to know what they’re thinking about buying or what they like to buy from me. I don’t care what their email address is or who their Facebook friends are or whether they use Visa or MasterCard. We can figure out the relevant details later when I need to know more about the user’s identity (e.g., when the purchase is actually made).

Facebook wants to kill this spectrum of identity by doing away with anonymity. While that brings some benefits with it, the model is inherently broken. How do we fix it? Kynetx.

Kynetx: This changes everything

How I landed a job through Twitter

Kynetx: This changes everythingDon’t know what Kynetx is? Read this article by Jesse Stay explaining why the current model of the web is broken and how Kynetx solves that problem: context-aware apps.

If you follow me on Twitter, you will have seen my recent tweet:

It’s all but official now: I’m a new #Kynetx employee! This is gonna be awesome!

It’s been a long and rewarding journey.

Several years ago, I started following Phil Windley’s blog. I don’t even remember how I found it. It was either the fact that I listen to the IT Conversations podcast (of which he is the executive producer), or that he’s a BYU Computer Science professor (where I go to school).

A little while after that, I left and went to Europe for two years. When I came back, I learned that Phil had started a company called Kynetx. His posts hardly make any sense to me, but I kept reading to see what it was all about.

Around that same time, I also started following him on Twitter. (Before my two-year hiatus I had thought Twitter was a rather useless idea, but I decided to give it a try this time around. It was what all the cool kids were doing, after all.)

Every once in a while, I’d retweet things Phil wrote. Eventually I guess he took notice of me and personally invited me to the inaugural Kynetx Impact Conference in Provo. I went. There was some pretty mind-blowing stuff there.

I wrote a little “hello world” app but didn’t do much else with Kynetx for a while. But I started following almost all of the employees on Twitter and became intrigued by all the cool stuff they were building. I started tweeting a lot about #Kynetx. I even wrote an app of my own, which the Kynetx guys were kind enough to let me present at a visit they made to the BYU CS department.

It was quite apparent to me by now that Kynetx had taken note of me. But I never expected they would offer me a job. I was quite surprised when the VP of Developer Services called me up and invited me to their customary Free Lunch Friday for an interview. Soon thereafter, I was hired to join their two other interns in the Lehi office.

It’s been interesting to see how all of this grew out of my use of social media to follow the interesting things going on right around me.

I’m reminded of Joel Spolsky’s book, Smart and Gets Things Done. The best programmers don’t have to go searching for jobs–the jobs come to them. I don’t pretend to think that I’m anything special as far as programmers go. But I can tell you that networking and effective use of social media can go a long way in advancing your career in the direction you want to take it.

BTW, thanks to Sam for coming up with the title, whether unwittingly or not. :-)