Friday, June 27, 2008

Powerset does, FAST is

I haven't used Powerset much. I have used FAST a lot. I used their API fairly extensively. I could write a book about that (something i have considered - see my "previous life"), but i won't go into all that just now.

What i DID like when i used Powerset was the "factz" (in itself a slightly ironic spelling). You see FAST is all centred around Nouns - people, places, things, authors, books and so on. This works pretty good. (So for example) You search for Steven Livingtone and you get my books, my friends, my bookmarks, my relations and so on - nouns related to me - in facets.

However, what i liked about Powerset what the fact the use verbs in the facts. So again i search for Steven Livingstone (someone has to) and i maybe get "writes", "likes", "bookmarks" and so on - well something to that effect.

Unfortunately i'm not entirely sure how to get these factz appearing (you seem to need to do the search and then select something and even then it isn't always verbs), but i DO like the idea of making a search and combining the doing with the object.

"Steven Livingstone writes MSXML" and so on. One part powerset, one part fast.

I'm still looking into Powerset so things may become more obvious to me.


Got my haircut - what's best?

Livz in the past

Livz in the present

10 startups to watch

I read the list over at Technology Review and here's my take:
Nice idea - great idea in fact. Got an account but the software isn't available outside the US and Canada, but the number is (i would have thought it would have been the reverse!). As I am hopless at numbers and baring in mind when you are ON the mobile phone it's impossible to look up someone's number (you tried it?) - i am going to wait until i can use the software.

I tried their Outlook add-in, but it never seemed to do anything. Needs work.
I just keep wandering why it took so long for Comvu to really push their offering.
Another good idea which could be a platform for hyperlocal citizens jourlalism anywhere. Probably needs branded a bit but should be interesting to follow.

Anything that helps me remember stuff is good - i like the idea but the interface was a little confusing and when i dialled the number it asked for for a pin- i gave it my mobile and added something but it then said "thanks for the comment for our support team". The UI was also a little confusing but will improve.

Tells you who is influential in the world. No idea how good it is. No signup i could see or way of registering interest which was slighlty ironic given its remit.

I love anything semantic (but i bet it becomes the most overused word after Web 2.0 soon!). Advertising sure needs to get smarter and take in context. I'm not an advertiser so not sure how useful it is, but their list of publications looks a good read!

Could be huge.

Now this is interesting. It's not a million miles from something i am looking at just now (maybe a few thousand tho') and managed API's are important for enterprises. I'll be keeping my eye on these guys. Very interesting to see how mashups take a step inside the firewall!!

Great list. The other companies looked great too, but these are the ones that i could play around with and are closer to what i do.

Wednesday, June 25, 2008

Live Poll - Will Germany or Turkey win?

Take a look at this:

RESTful WCF Web Services

I spent some time looking at how you could remove the ".svc" from WCF web services and looking at it last year i got quite close but just not close enough. Well, i'm back writing WCF services again to expose JSON for my REST API, and this time i was determined to spend time looking for a solution. I found some people who did a lot of great work but the solutions were all missing the extra i really needed. I needed an extensible method of re-writing any kind of URL.

The solution was to combine the ideas here and here using a mixture of IHttpModule and regular expressions to provide a solution allowing any URL to be mapped in the configuration file. The code is below and is made up of RestModule.cs and some rules in the web.config.

This code will actually work for any URL you wish to make RESTful but my target was WCF.


using System;
using System.Configuration;
using System.Web;
using System.Xml;
using System.Text.RegularExpressions;
using System.Xml.Xsl;

public class RestModule : IHttpModule
public void Dispose()
{ }

public void Init(HttpApplication app)
app.BeginRequest += delegate
HttpContext ctx = HttpContext.Current;
string path = ctx.Request.AppRelativeCurrentExecutionFilePath;

if (ctx.Request.Url.Query.Length > 0) path = path + ctx.Request.Url.Query;
string zSubst = ReWriter.Process(path);

//did we have a new path match?
if (!zSubst.Equals(path))
int i = zSubst.IndexOf('/', 2);
if (i > 0)
string svc = null;
string rest = null;
string qs = null;

svc = zSubst.Substring(0, i);
rest = zSubst.IndexOf('?') > -1 ? zSubst.Substring(i, zSubst.Length - i).Split('?')[0] : zSubst.Substring(i, zSubst.Length - i);
qs = zSubst.IndexOf('?') > -1 ? zSubst.Split('?')[1] : null;

ctx.RewritePath(svc, rest, qs, false);


public class ReWriter : IConfigurationSectionHandler
protected XmlNode _oRules = null;

public string GetSubstitution(string zPath)
Regex oReg;

foreach (XmlNode oNode in _oRules.SelectNodes("rule"))
oReg = new Regex(oNode.SelectSingleNode("url/text()").Value, RegexOptions.IgnoreCase);
Match oMatch = oReg.Match(zPath);

if (oMatch.Success)
return oReg.Replace(zPath, oNode.SelectSingleNode("rewrite/text()").Value);

return zPath;

public static string Process(string requestpath)
ReWriter oRewriter = (ReWriter)System.Configuration.ConfigurationManager.GetSection("system.web/urlrewrites");

return oRewriter.GetSubstitution(requestpath);

#region Implementation of IConfigurationSectionHandler
public object Create(object parent, object configContext, XmlNode section)
_oRules = section;

// TODO: Compile all Regular Expressions

return this;

Add a new section group to your web.config ...

<sectionGroup name="system.web">
<section name="urlrewrites" type="ReWriter"/>

Finally add some rules in the web.config in the system.web section ...


Now you can have ...{"Name":"Starbucks%20Manhattan"}

or ....

Neat heh?

Wednesday, June 18, 2008

Vint Cerf @ Sharkfest 2008

<div><a href=''>Share and annotate your videos</a> with Omnisio!</div>

Tuesday, June 17, 2008

social web, without the kids

I listened to an interesting question at SuperNova that was put to Clay Shirky around the SPAM issues around Web 2.0.

He answer was based around reactive solutions managed by the crowd. That is YOU don't manage the comments etc but rather the members of that community do this for you. Which works great in the adult world (most of the time).

I DO have issues around this - more and more i am beginning NOT to trust the crowd. No necessarily the people i know, but rather the way that companies tend to promote media created by the crowd.

YouTube for example will show many videos that just should NOT be seen by kids (and some of them by adults!) by default until someone flags this. A recent experience taught me this. So, someone - or likely a number of people - need to flag a video before it is removed ... which is just too late when all you wanted to do was show your kid a "Puff the Magic Dragon" video.

How could this work better? Well, for a start ONLY show videos recommened by specific friends - all others are not seen by default. Links from videos work in a similar manner. Same with comments.

This stuff isn't hard and with OpenSocial i'd expect youtube to be making this higher priority than allowing MORE comments on videos.

It concerns me that the younger generation are being ignored in the social web and i'd like to see a hell of a lot more effort put into it than PICS which the social web seems to completely ignore.