How’re you doing? The continuous employee engagement survey.

For the last few years my company’s been doing annual employee engagement surveys; a questionnaire asking how much you enjoy working at the place, what the best and worst things are, whether you’re thinking of leaving, etc. All of this data is aggregated and anonymised then a few months later presented back to us where we’re asked to help guide the company forwards to get the scores up the following year (and hopefully make the company a better place to work in the process).

The issue with this is you’re collecting data one day a year.

  • It’s pretty hard to remember what’s happened in that year, not comment on things from previous years, determine what’s still relevant to report on and mostly avoid biasing your results based on your current mood / the week’s events. As a result this kind of information isn’t very revealing.
  • As things are applied to try to resolve any issues and improve work life in general there’s no official feedback mechanism until the following year; at which point it’s hard to rate what worked and what didn’t.

Proposed Solution
A button. At the end of each day before going home employees go to a page on the intranet and press a button [“Woo” | “Meh” | “Ugh”] (number of options and their descriptions can vary per implementor’s preference). They may optionally also add a short comment (though should use this feature sparingly). This is then registered along with the date and their username (anonymised if required; but in such a way that the user cannot submit multiple answers per day) and fed into a database. Next you have a graph showing an aggregated view of all employees satisfaction ratings (depending on anonymity preferences you can do this at individual levels, for teams, for offices, or for the whole company). You can now compare these results with any activities taking place to see what’s upsetting people and what’s keeping them motivated. You can also see problem areas and upcoming issues (if there’s a long period of negative scores or everyone on a team gives a negative at the same time) and thus investigate and resolve them before they escalate. The comment function may provide additional information on why the scores are good/bad, and will also be useful if you continue with the annual detailed questionnaire as employees can look at their mood changes and the few comments they made throughout the year to remember key events to feed into this detail. Other benefits can come from including other info into your analytics (project deadlines, holidays, sick days, socials, weather (you can’t control it but can see its effect and compensate), etc).
Since it’s just a button it’s not a burden – so people will be likely to use it. You also get the satisfaction of stamping a close to your work day.


  • What do you guys think?
  • Has anyone done something like this at their place?
  • Anyone know of a LifeHacker style site for doing this kind of thing already which could be utilised (it’s pretty easy to build, but if there’s stuff out there which already includes common data sets (e.g. weather in your area, ability to log meals to allow individuals to make themselves happier by eating healthier, etc. so much the better)?

To keep discussion in one place I’ve disabled comments on this post and have left a discussion on Hacker News:


A Request / Random Thoughts

As with many of my posts, this is basically an unedited brain dump – apologies. Hopefully this will encourage some interesting comments / discussion though. . .

A Standard for Developer APIs
Facebook, Twitter, Worpress (and I’m sure Google+ will) offer APIs to developers allowing them to pull data out of their applications and manipulate it as they like. Most of these services offer similar functions; authentication, get the last x posts, pull back a grid of contacts, etc. All do this in their own way.
What would be great is some unification – either a library over the top of the existing APIs to pull them all in line, or for some set of social standards to be formed in the same way Netscape, IE, Mozilla and more came up with ECMAScript as a way to allow javascript to become portable. What I’m hoping for is something like this:

//this is entirely made up code - not (yet) some awesome new Google thing 
var application = GetApplication('Google+'); //creates a new object with an "application interface" for Google+
if (application.authenticate('Developer42','DemoCodePassword') //authenticate a user against the web app
    var identity =; //pull back an object which represents me
    var allFriends = me.ListContacts(); //by default pull back all contacts
    var colleagues = me.ListContacts('colleagues'); //or filter by group
    var posts = identity.GetPosts(20); //get my last 20 posts
    var friendsPosts = allFriends.GetPosts(100); //Get the last 100 posts by my friends/contacts

A Service for Services
This is probably what the guys who came up with UDDI were thinking:

If two companies offer a service to give out exchange rate information, and both use the same standard, when I want to get back exchange rate info why can’t I just post a request to the web saying “give me the exchange rate from USD to GBP” and have it chuck back .67 without all the hassle of searching for a suitable service.

There’s a whole bunch of data which we often need, but have to trawl the web for. Search engines began to make this better, WolframAlpha got a bit closer, but no one’s yet cracked it. What I’d like is a single web site containing a catalogue of services and their schemas. I pick a service, write code to its schema, then use the service url to pull back this data. From my point of view I’m just pulling data from, but in the background that could be talking to any (approved) provider. I guess the reason this doesn’t yet exist is the issue around monetisation; but surely there’s a way. . . ?
Below’s my wish list of services:

- Exchange Rates
- Share Prices
- National Holidays
- Daylight Savings Dates
- Post Code / Geo (long & lat) Conversion
- Credit Checks
- Product Prices
- Companies House Info


Psychic Site

Filed under: Ideas, Psychology, Technology — Tags: , , , , , , , , — Developer42 @ 16:35

One of the many projects I have queued up to code one day is a psychic site. This isn’t going to be any weird paranormal thing, or a way of ripping people off, but a way of showing what’s possible. The idea is to create a site, where a user fills in a few details, then the site does a cold reading. However, rather than just using the information provided, the site’s able to use information the person didn’t know they were giving to make it appear to be doing the impossible. Useful tools to aid with this are linked below:

Gender Genie. This shows how the language a person uses gives some indication as to their gender.
Polite Software’s Web Spy. This is a security flaw I discovered a while back, which it seems many geeks have worked out for themselves, but is still not that well known. Since you can tell a visited link from an active link by taking advantage of the different CSS style, and reading this using javascript, you can tell which popular sites a person’s been to. You can then use this information to build up a profile of the person, based on the sites and their demographics (e.g. someone who visits facebook is likely to be under 30, whilst someone going to the bbc news site is likely to be over 20).
HTML 5 GEO. HTML 5 introduces an amazing feature; your standard web browser is able to tell your location without requiring GPS. This is done by using GPS where available, your wireless network card to detect signals from various mobile phone masts, then using the strength of each of these signals along with signal strength maps to triangulate your location, your IP address to find the location of your ISP and various other methods. More on how this works can be found here W3 Geo Spec. Getting hold of this info is slightly less covert, as browser security will prompt the user to allow their location to be sent, but this small snippet of information can tell you much more. Once you know someone’s location, you can assume it’s their home, business, or school, since these are the most likely places from which someone will be accessing the net. You can then use data about these places to work out who someone works for, or how much their income’s likely to be (based on where they can afford to live), giving an idea of that person’s status in society. For an idea of what info you can get from someone’s address, UK residents may like to try putting their postcode into this site: Home Check.
You can then wrap all this data in with a few cold reading general comments (there’s a great example in Derren Brown’s
Tricks of the Mind, of a few paragraphs which describe almost anyone between 20 and 40, but sound as if they’re aimed directly at the reader) to make the few bits of real data you’ve gathered have more impact.

Other potential sources of info.
PIPL. Search for people.
192. Another person search tool
Facebook. Details on how to read data from people’s facebook accounts (with their permission!).
Google Dashboard. Everything Google knows about you (if you have a google account).
What’s My IP. Details glean-able from your IP address.
. Information on what web browser you use (safari people are artistic, chrome are techie purists, opera like elegance, firefox like functionality, and IE people follow the status quo).
How long is a piece of string?. A book with a few examples of ways in which people have been conned by not understanding statistics. Slightly off topic, but an interesting read (my favourite is the football score predictor that gets the result right every time).

When you find out how much it’s possible to find out about yourself, you may get scared. However, most of this information is harmless for people to find out, and the stuff that isn’t you have protection from (privacy settings in applications such as Facebook, prompts before allowing features such as HTML5’s Geo). These features can be put to good use, for example by having a site which changes it’s style to match the user’s likely tastes, and to bring more relevant content to the front (such as Google searches bringing up local restaurants when you look for somewhere to eat).


Ideas for Wave Robots

Filed under: Google, Ideas, Technology, Wave — Tags: , , , , , , , , , , , — Developer42 @ 21:32

One of the hardest things about developing a wave robot is coming up with an original idea. My smiley bot [] was just for me to play with wave & get used to uploading apps to App Engine / get back into java coding and using eclipse. Now that that’s done, it’s time to think of something useful; an application that people will actually want to use. The point of this post is partly a brainstorming session for myself, and partly to put these ideas out there to anyone stuck for ideas, who think they can code one of these, and finally, to encourage others to submit ideas.

Webby – The Web Service Robot
A robot which when added, detects any URLs pointing to web services, generates a form based on the parameters, then submits this data via SOAP, and puts the return value into a new blip.

Squely – A Database Query Bot
A robot which can run SQL statements against given connection strings. At present, this will only be possible if the database is publicly accessible, or if you have a wave server installed on the same network as your database.

QIFry – Interesting
This robot would monitor waves for key words, then on detection, pop in an interesting fact about that word (e.g. if it spots the word Banana, it says “did you know that bananas are herbs, and these shrubs can walk?”). It also monitors for boring words, and replaces them with more eloquent ones.

Pretty – Pretty Print
Detects common languages / markup & changes the layout to make it more readable.

Finds recipes based on ingredients or dish names in the wave.

Uses the GEO features of HTML 5 to locate where each wave user is and lets wavers know where their nearest wavers are. This could also take info about their interests to help match people up to folks whose hobbies they share.


BizTalk ConnectionString

Filed under: BizTalk, Ideas, Microsoft, Technology — Tags: , , , , , — Developer42 @ 19:24

When using BizTalk, there’s often one or two databases you’ll need to access regularly. Rather than hard coding these in parameters of the database methods, a potential solution is to create a functoid which returns the required connection string. This gives you the advantage that should you need to change your connection string, changing it in your functoid will simultaneously update everywhere using that connection string. Of course, once you’ve got one connection string to your configuration database, you can use simple names to access your other databases, since these names can be stored in your configuration database along with the relevant connection strings, making them even easier to maintain.


Genius Ideas

Filed under: Comedy, Ideas — Tags: , , , , , — Developer42 @ 23:07

For anyone who hasn’t seen or heard it, Genius is a BBC Radio 4 show, which recently also aired on TV (BBC 2). The premise of the program is to get members of the public to submit their ideas, after which host Dave Gorman and a guest celebrity “genius” will analyse the idea to determine the intelligence of the submitter. However, these ideas aren’t always the most standard of thoughts or inventions. Ideas such as the Democrabus; a bus where all passengers have their own steering wheel and the bus goes the way of the majority, the Torture Box; a box into which inanimate objects which have in some way wronged you are placed in order to punish them, and Cat Bars; clubs where women sit at a table having a few drinks whilst enjoying the delights of having a cat wander over to their table to be stroked for their pleasure, are just a few examples of the sorts of thing which can be expected. To see some of the televised episodes, look here:

So, introductions over, what’s this post about. Well, I’ve been busy submitting my own ideas for Genius; though so far have heard no word of a new series. So, in absence of further knowledge, I’ve decided to pop up a post of these ideas for all to enjoy. I hope you do.

The Hover Lawnmower
A device with spinning rotors on the bottom; two things spring immediately to mind. So why not combine these to reuse the rotation, and lose the wheels. This would allow an all-terrain lawnmower, able to cut grass on land or water. Adjusting the shape of the blades to a simple propeller design, and putting a skirt around the edge to focus the flow and reduce grass-throw would make this the perfect pitch preserving device.

Left Hand Man
Like a right hand man, but more creative. Your right hand man is someone who helps take care of all of the tasks you need to do and issues you need to resolve. Your left hand man helps you resolve some of the more design oriented problems, such as choosing the right shade of almost-white to paint the walls, choosing which songs to put on your iPod before jogging, and selecting spices to liven up your chicken pie.
Also available in this range are the right and left hand women (useful if you need to work on several things at once), and the foot range, popular with the upper classes.

The Jigsaw Shredder

Worried about identity theft? Then you need the Jigsaw shredder. This cunning device takes your sensitive documents and turns them into 1000 pieces of criminal entertainment. By moving from strips of paper to puzzle pieces, the task of reassembling the document becomes far more enjoyable. This, you think, may be counter-productive; however it’s actually counter-intuitive. By making the task more enjoyable, you’re encouraging the criminal to take up a new interest, helping to replace their bad habits with wholesome hobbies. Now, I know what you’re thinking. . . what about the edge pieces. If they can get the edge of the document together, they can reassemble my document in no time, making it far too easy to reassemble, thus completed too quickly for the seed of a hobby to be planted. Well, that’s the genius bit. Once a jigsaw shredding has been made, the edge pieces are removed and burnt. This burning of pieces produces enough energy to power the machine (whereas burning all the pieces wouldn’t be environmentally friendly).



Filed under: Books, Ideas — Developer42 @ 19:32

Most books about psychos focus on the negatives, but I’m sure there must be a yang to the yin; people with positive mental disorders. This idea came about from my own condition of “polite tourettes”; not a real condition, but a habit of saying words such as “cool” or “awesome” at random or awkward moments (which can be as bad as real tourettes if one of these words pops out just after someone says “my mum just died”)!
I haven’t started writing this book yet, since I haven’t got enough ideas to make it interesting, but I thought I’d pop it on here to see what people thought of the idea.
Other possible symptoms are:

  • People hear voices in their head telling them to make tea for people.
  • People who can get stuck holding a door open for days, never wanting to go in front of anyone else.
  • Not being able to eat whilst listening to someone else talk, as well as when talking yourself.
  • The inability to be negative about another person, regardless of what that person’s done.

Gradient Tolerent Graphics Tools

Filed under: Ideas — Developer42 @ 19:05

Most graphics tools these days provide a facility to fill areas using a gradient; an area filled with colour which gradually morphs from one colour to another. However, once an area’s filled, there’s rarely much functionality to work with these areas. Useful tools could be:

  • Tolerance Filter: When using tolerance filters, traditionally you can specify that a change is detected when the colour being analysed is a given value away from the selected colour. A more useful tolerance detection would use the tolerance value to compare each step & detect a border where this step is significant. As an example, say the tolerance value is 3 and the selected value is 10, in the following sequence, the area in quotes would be selected: 1,2,4,5,9,10,11,12,10,9,8,7,6,5,4. On the other hand, using the stepped tolerance filter would select the following: 1,2,4,5,9,10,11,12,10,9,8,7,6,5,4.
  • Colour Replace: Building on the above, when pasting an area with a gradient, it would be good to maintain the tone of the colour at the various points, so when pasting red over a blue gradient, the blue is replaced with red, but the shading remains the same (e.g. dark in one corner and light in another).

Proximity Alert (iPhone / Android App)

Filed under: Ideas, Technology — Tags: , , , , — Developer42 @ 15:21

This is an idea for an application for portable devices, such as The iPhone or devices running on the Android OS.
By taking advantage of features such as GPS and other technologies allowing you to find a user’s location, it should be possible to write an application which can sound an alarm when you come within a certain distance of a point.

Example Uses
When on a bus journey in unfamiliar territory, you often don’t know when you’re close to your stop. This alert would tell you to get ready to get off in time for you to make it.
When heading home on the train, late at night, you may fall asleep. Having an alert to wake you up in time to reorientate yourself, collect your belongings, and exit at your station could save countless taxi fares and embarrassing anecdotes.


  • Auto Default(s):
    • In certain conditions, the alert activates itself. An example may be after 11pm, when you’ve been in London, and you’re now following your normal route home (e.g. your location suggests you’re on the train, heading home).
    • Default location(s): The points at which your alerts should sound by default.
    • Default distance/time(s): The distance / time from the above points at which the alert should sound.
    • Default alert: Sound, Vibrate, or something else?
  • Time Sensor: Speed can be estimated by looking at the recent change in distance / time. This can be used along with the remaining distance to work out the ETA.
  • Periodic Check: To save on battery life, check the current position at intervals. Use the maximum possible speed to work out a suitable interval (e.g assume a top speed of 30mph if there’s only paths, or 120mph if there’s rail/roads between you and your destination).

Blog at

%d bloggers like this: