rndguy.ca

excited about what's coming next

Malleable social graphs and the need for a better a reputation system

I’ve been following the foursquare and gowalla hoopla for almost a year and to be quite frank, it made no sense to me. Why wound I want to ‘checkin’ when I’m at a coffee shop? Just to get points, win a badge and maybe be the ‘mayor’. Don’t get that. Scobles blog post today hit the head on the name with what is missing and has some useful suggestions on how to make this class of app useful. The idea is that your social graph should adjust based on what you are doing. And for this to happen, we need a more sophisticated reputation system.

First of all, I do believe location based services are going to be big. And foursquare and gowalla have gotten some things very right. Specifically, the idea of a checkin process is right on the money. No one wants to have their entire movements recoded and available on the internet (Google Lattitude, I’m looking at you). The user should decide when they want to advertise that they are in a location. What I think both of these services have not gotten right is the motivation for checkin in. People are going to do that because there is a benefit to them. Maybe they’ll get some good advice or tips about the place. In a restaurant, I want to know what’s really good on the menu. And what’s bad. If it’s a store, are there coupons I can use. Now to be fair, one of the problems with being the 1st app o the block, is that without a big user-base most of this doesn’t work. Hence why foursquare and gowalla use gaming techniques to get people to checkin more. I’ve heard businessmen talk about wanting to be the ‘mayor’ of a location on foursquare. Really! To be sure, gaming has allowed foursquare and gowalla to build that initial base. But gaming is not the end goal.

The issue I have is that a badge can’t be the real reward for checking in. These apps needs to give me a real return on my investment. And here is where Scoble’s post really makes sense. He talks about the malleable social graph. What he means by that is that your social graph adjusts based on what you are doing. He gave the example of going to Napa Valley winerys. If you are looking for advice on that topic, your social graph should be adjusted to only include people that have some knowledge of that topic. Maybe they live close by, maybe they are big wine buffs, etc. The point is, you are on a quest (to enjoy fine wine) and you want you social graph to aid in that goal. Right now most social graphs don’t have the ability to make those kind of adjustments.

One thing that Scoble didn’t talk about was the need for a much deeper reputation system on our social graphs. If I’m interested in wine (because I’m in Napa Valley), my social graph needs to know who knows about wine. If I’m struggling with a home repair, my social graph should know who is good at that kind of thing. One thing that foursqare and gowalla could easily do is make their badges meaningful. Have a badge for being a wine lover, another for being good a house repairs. While they are called badges, what they really are is the beginning of a deep reputation system. When I meet someone at a party, you spend the first few minutes getting to know each other. You are basically learning about their background, interests and skills. Wouldn’t it be great if you could immediately see a list of their interests and find out what you have in common. I’m sure I’ve met lots of people that I could have made great connections with if only I was able to find the common links. I remember telling someone I had just met how much I was enjoying watching the winter Olympics. Her response was that she didn’t like sports at all. If I had known a bit more about her, I could have talked about something that both of us would have found interesting.

Hats off to foursquare and gowalla for getting the ball rolling. They are making real inroads into location services. Buts we’re only in the early stages. As far as the technology goes, we have not crossed the chasm yet. Scoble’s thoughts provide some really good suggestions on where we should go next. I believe a deeper reputation system needs to be part of the solution. And the elephant in the room, Facebook, has yet to show its cards (I’ll be going to F8 next month to see if they have anything interesting to announce). Either way, with all the attention this area is getting, I’m sure that it won’t be too long before I start ‘checking in’ to places I visit.

  • Share/Bookmark

Rural broadband internet moves forward

Getting decent broadband internet in rural areas has always been a real challenge. And I’m one who believes that broadband internet is a required / essential service, just like roads and electricity. For all the talk that there has been about equal access to broadband for all Canadians, I’ve yet to see the government do anything meaningful to make this happen though. The good news is that today, there are finally some good options.

I’ve had my rural property for about 3 years and during that time I’ve gone through 3 different solutions. I started with satellite service. It was expensive to install and offered 512K download and 128K up. While the speed was actually almost useable, the latency was atrocious. I was seeing ping times on average of 300-400 msec and sometimes it was worse. Moving from one message to another in my email client had a noticeable lag. Still, it was all that I could get (other than dialup) and I was grateful to have something.

Then last year, I was able to switch 802.11b wireless broadband. A local ISP provider has strung up transmitters on a number of barns and was offering the service. Again, I dished out for a hefty install charge. The result was speeds that were almost the same (400K down and 400K up) but the latencies were very good at under 100 msec. This is actually a very useable service and I really don’t have much bad to say about it. Note, because it is line of sight, the coverage is fairly limited and I was just lucky that there was a barn/tower close to me. A lot of people will not be able to get this kind of service.

Recently my local mobile company (Rogers) has been pushing a 3G broadband solution. Its called the Rocket Hub and even though its a home solution, it’s based on mobile 3G technology. So it’s got a SIM card just like my mobile phone. And the speeds are very good. For the 1st time, I’m getting download speeds that someone in the city might consider calling broadband.

speed test 2010-03-08

It’s a world of difference and something that is exactly what rural homes need. So while I’ll always be looking for faster solutions, I am now able to be productive whenever I’m at my country property. For anyone in a rural location, I recommend you check out the Roger’s Rocket Hub.

  • Share/Bookmark

not all dynamic DNS services are equal

In the tech world, once you have something working, you tend stick with it for a long time. I’ve been using Zoneedit to host my various DNS domains for almost 10 years. But today, I’m switching to DnsMadeEasy.

This is being driven by Zoneedit’s Dynamic DNS limitations. Specifically, when you update the IP associate with one of your hosts, it can take a while before Zoneedit start publishing the new address. In my tests, it was taking over one hour. On top of that, you can not set the Time-To-Live (TTL) on the (A)ddress records. For DDNS, both of these are non-starters. The whole idea with DDNS is that you know your IP address will change periodically. And when it does, you want the world to have the new IP address as soon as possible.

Several months ago, for a service I was creating, I had the chance to use DnsMadeEasy. At a high level, there is not a lot of difference between DNS hosting companies. But sometimes the small differences are important. DnsMadeEasy has a much better web interface that allows you to have fine grained control of your DNS records. And equally important, changes to your zone are live almost immediately. Finally, rather than hosting your domain on just 2 DNS servers, DnsMadeEasy gives you six.

I think I would be more accommodating if I had been using ZoneEdit’s free version but I have been paying for the service. So while I have not been unhappy with ZoneEdit’s service over the years, it’s time to move to something better.

  • Share/Bookmark

LinkedIn API vs Facebook API

Today I was investigating the LinkedIn API. Most developers who want to create a social app have tended to use the Facebook API but I was looking at an idea that was business focused so LinkedIn would be a better fit. While the API is fairly full featured, there are some big differences compared to what Facebook offers. Most of those differences focus on how you discovery the app and how you use it.

On Facebook, apps are tightly integrated into the Facebook UI. Apps appear right in Facebook pages, you can discover new apps in the global directory and apps can add make updates to the news stream. All these means that if you have a good app, you can get away with a fraction of the marketing that you normally have to do. This opportunity has driven a lot of developers to create a Facebook app. Today there are over 500K apps that have being created (500K by Facebook’s own stats).

With LinkedIn, your app does not live inside the LinkedIn site. In fact, the LinkedIn API is more like Facebook Connect, which is geared for companies that already have their own website. It allows your site to not require users to have to create a new account on your site and allows you to access the user’s Facebook data. But as mentioned, all this happens on your own site. It is up to you to find ways to drive new traffic to your app. While there is an app directory on LinkedIn, it only has 13 apps on it. In terms of the actual API, it’s fairly robust. You are able to get at all of a user’s profile information. Also, you can get their connections and do updates to a user’s status.

So as long as you already have an installed base or feel comfortable building your vistor/customer base in the traditional way, the LinkedIn API does allow you to add social type features.

  • Share/Bookmark

Fully automated ubuntu server setups using preseed

When you are building a server on a cloud like Amazon’s EC2, its quite typical to create a shell script to automate the process. This saves you time when you need to create a test server or god-forbid, your production server dies. But one of the challenges in creating these scripts is that some packages display a UI asking for user input. Two common examples of this are mysql (root password) and postfix (server type, root email, etc).

The solution to this is to use preseeding. This is where you tell the debian installer, in advance, the response to each of the questions it would normally ask when it installs the package. The command-line tools used to preseed are part of the debconf-utils package. So the 1st step is to make sure these are installed.

sudo apt-get -y install debconf-utils

Now you can go ahead and figure out which settings need to be set for each package. Let’s use mysql as an example. The easiest way to do this is to install the package manually and then use the debconfig-get-selections command to query the list of settings.


# sudo apt-get -y install mysql-server
# sudo debconf-get-selections | grep mysql
...
mysql-server-5.1 mysql-server/root_password_again password
mysql-server-5.1 mysql-server/root_password password
mysql-server-5.1 mysql-server/start_on_boot boolean true

So what we need to do now is create a preseed file with the above settings and then pass it to the debian installer using the debconf-set-selections command.

# echo "mysql-server-5.1 mysql-server/root_password password $MYSQL_ROOT_PWD" > mysql.preseed
# echo "mysql-server-5.1 mysql-server/root_password_again password $MYSQL_ROOT_PWD" >> mysql.preseed
# echo "mysql-server-5.1 mysql-server/start_on_boot boolean true" >> mysql.preseed
# cat mysql.preseed | sudo debconf-set-selections
# apt-get -y install mysql-server

Once the values have been set, you can run apt-get to install the package without prompting for any inputs.

One final note, if you have a lot of servers or rebuild them on a regular basis, you should probably be looking at Puppet or Chef.

  • Share/Bookmark