pult – simple fuss free internet tv

I rarely get excited about technology these days, in fact I can’t remember the last service that launched which made me say “wow”, but Pult has done just that.

Coming out the recent Seedcamp and based in Tallinn, Estonia, the team at Pult, have created a really simple way to display video on an internet connected screen and then control it using a smart phone all without the need to install any software.  At the moment the content available is somewhat limited, but it’s not the content itself that that really interests me here, its the concept and the fact that this is all done in the browser, with no apps to install and no need for devices to support protocols like Apple Airplay or DNLA.

How It Works

Navigate to the pult.io website in the browser of your large screen (internet connected TV, PC, iMac etc) and you will be presented with a 4 character code

Pult setup process

Pult setup process

Now navigate to pult.io on your smartphone and you are presented with a different screen that allows you input the 4 characters shown on your large screen, via the connect button at the bottom.

Pult mobile device web app

Pult mobile device web app

And that’s it…. your phone is now connected through the magic of the internet to your large screen. So you can chose to display anything from the options presented. It’s just using websockets behind the scenes which in laymans terms means your large screen maintains an open connection to the Pult  servers, so when you tell your phone what to play it tells the Pult server and they tell your large screen.

Here’s a rather dull, sorry, video here demonstrating how it works:

And Now The Interactive Part

The code showing for my laptop right now is GDPC, as shown above, which means you should be able to play something on my screen using your phones. I’ll keep it open for most of today (1st March 2012) unless I get sick of being Rick Rolled

UPDATE – My code is actually now AEQT as I closed my browser.


Setting up a Jenkins build server on EC2

In my last post about setting up Jenkins I looked at how to do a basic Jenkins setup on an Ubuntu machine. In my case I set it up on an old machine which is fine when I’m working at home but if I make changes when I’m not at home or when my build machine isn’t running the changes are not built and tested. If you hadn’t worked it out, in a proper continuous integration environment you should be running your builds continuously. So this morning I set out to get an EC2 instance running Jenkins.

The other reason I wanted to have the build server running continually is that I need to start scheduling some jobs for Knowsis to do the NLP part of our process., which I could do with Cron, but buildservers liike Jenkins and Teamcity offer really flexible scheduling and a nice interface for feedback so I don’t need to worry about building one myself, for now.

Setting up an EC2 instance

The first step in the process is to set up your EC2 instance. Amazon kindly provide a free tier so you can get a free micro instance for a year. This should work for you initially if your builds aren’t overly complex.

I won’t run through exactly how to get your instance running as you can find plenty of guides online, if you are completely new to EC2 I would recommend this guide provided by Amazon.

One thing to note is that you should make sure you set up the security group for your image to allow all traffic on port 80 so you can actually see Jenkins.

Installing nginx

In my previous post I mentioned setting up nginx to route requests to Jenkins  but didn’t cover it. So we’ll go though it here as we need a webserver running to host the requests coming through.

We’ll need to use YUM here as apt-get and aptitude aren’t installed. Thankfully the Amazon package index includes a version of nginx.

yum install nginx

Once installed we should start the nginx server to make sure that we can see our new EC2 instance before proceeding.

sudo /etc/rc.d/init.d/nginx start

You should be be able to hit your instance in a web browser. You can get the public hostname of your instance from the AWS management console, but it should look something like this:


Installing Jenkins

In my previous post we used aptitude to install Jenkins but the Amazon Linux AMI doesn’t have the aptitude package manager, s owe have to use YUM instead.

First we need to add the repository to the list of YUM repos:

sudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo

and then get the GPG key:

sudo rpm --import http://pkg.jenkins-ci.org/redhat/jenkins-ci.org.key

then we can install Jenkins:

yum install jenkins

The installer will install the server as well as create jenkins user under which the service will run. You can now start the jenkins service:

sudo /etc/init.d/jenkins start

As Jenkins runs on port 8080 by default, the next step is to get nginx to proxy all requests on port 80 to port 8080. You could probably just change Jenkins to run on port 80 by default if you wanted. Anyway, just change your nginx config (/etc/nginx/nginx.conf) so that the server section reads as follows:

server {
listen 80 default;
server_name _;
location /{

I won’t go into the details of nginx setup, but this is the minimum required to get you to a point of having Jenkins working.

Make sure you restart nginx to take account of the config changes,

sudo /etc/rc.d/init.d/nginx restart

You should be be able to view the jenkins homepage in a web browser using the same url as before:



One of the topics mentioned but not covered previously was security. As your build server is now visible publicly, you will want to set up some sort of security to prevent people from doing bad things.  The simplest way is to use Jenkins own user database, but there are other options to use an LDAP server or the underlying OS users. A few points to make sure that the server is secure:

  •  Disable the option to allow new users to sign up (unless you actually want people to be able to signup)
  • Change the authorisation section to either allow logged in users to do anything or use matrix based security and make sure anonymous users have no permissions

Setting up builds

You should refer back to my previous post on how to get your builds set up.7

Let me know how you get on

My Datsusara Journey Begins

Datsusara (脱サラ) is the Japanese term used to describe leaving life as a salaryman and moving on to do something completely different. It’s not used in the case of moving for more money, out of boredom or due to termination of employment; it’s used to exemplify the act of pursuing a childhood dream or having a moment of inspiration that leads to a completely different career path.

As you may have worked out by now, this post is about me moving on from my current role as Product Manager at 7digital after almost 5 years there to start a company, Knowsis, with two friends . The reasons for me leaving are very much in line with the principles of Datsusara – starting a company is something I’ve wanted to do for a long time and a few things have happened recently which have made me realise that there is never going to be a right time to do these things and we need to get out there and Just Do It™ 

Oh, and if anyone has a spare meeting room or some desk space in Central London that we can borrow for the whole day on Wednesday this week it would be much appreciated.

The Cost of Free

I’ve been stung several times of late where someone has offered something for free or way below the market value and the goods were never produced. In fact, if I’m totally honest I’ve done the same thing to someone else in the past…I think they call it karma!

If someone gives you something and says that they don’t want anything in return that’s great. They’re probably lying and will call a favour in the future, but the goods are in hand and it cost you nothing right now. However, if someone promises to produce something in the future for a lot less than the going rate or free, you need to ask yourself whether it’s the right thing to do.

If they aren’t getting paid then they’re likely to be less motivated to do the work. Sure, there may be exceptions to this but if your boss asked you to work unsupervised and free for a day, a week, a month – would you do it? Would you honestly put your whole heart into it?

And in the meantime, if they get offered work which will pay them, they are more likely to put your work to the back of the queue in favour of getting paid. It’s a natural reaction, we all have bills to pay and mouths to feed (even if it is just your own).

In many cases the reason for wanting it cheap or free are to do with funding. In a bootstrapping start up it’s hard if not impossible to pay the full market rate for everything. But can you really afford to get it done for free?

If it takes 6 weeks before it becomes apparent that the work won’t be done or completed to a satisfactory level, you have just lost 6 weeks. For some people this may be ok, but if it could seriously affect your market advantage or delay your product launch can you really afford that. You will still need to find someone else to do that work for you and you will probably end up paying over the odds to make back your lost time.

I’m not saying that all offers of free or cheap work are going to cause you headache but you need to look at how critical the work is, how important it is to your strategy, what a delay in getting the work done would do and ask yourself whether it would be better to just pay someone, get a contract and keep your peace of mind.