Archive for the ‘ibm’ Category

Posting to IBM Connections from WP7

Friday, February 24th, 2012

IBM Connections is something we use at work: an internal, intranet-hosted social network for work stuff.

I use stuff like the wikis, file sharing, and bookmarks, quite a lot. But I don’t make status updates as often as I could.

I wonder if that’s because I couldn’t do it from my phone? I know that I certainly started using Facebook a lot more since getting a phone with support for posting to facebook and twitter built-in.

So I set up a way for me to post to Connections from my phone with just one tap on the home screen.

Well, one tap, plus all the taps to actually type the status message… plus another tap on the Send button. But you get the idea.

(more…)

What has Watson been up to since Jeopardy?

Tuesday, January 24th, 2012

It’s been about a year since the computer system IBM Watson entered a TV quiz show against two of the best people to play the game, and won.

You knew that already, right? If not, skip reading this and go watch some of the footage instead. It’ll be more interesting.

But what has been done with Watson since?

Watson still makes the news even if not as much as during Jeopardy!. And with updates on twitter, facebook and YouTube there’s a lot of info out there about the project.

With all those updates, it’d be useful to bring some of it together into an overview of what sort of work has been taking place in the last year.

(more…)

The problem with Jeopardy!

Tuesday, November 15th, 2011

The I’ve-been-blogging-for-five-years-but-am-still-paranoid-about-work-related-posts-being-misrepresented disclaimer:
I do work for IBM as a developer on Watson but that role doesn’t extend to this blog. My responsibilities for Watson are limited to writing code… so any ramblings here are my personal views, and not necessarily representative of IBM’s positions, strategy or opinions.

The first time most people saw or heard of Watson was on “America’s favourite quiz show”, Jeopardy!

And that association seems to have stuck. For the moment, at least, Watson’s identity seems to bound up with Jeopardy’s. It’s “the computer system that won on Jeopardy!”

I’m not sure that’s entirely a good thing.

Jeopardy! was a great demonstration of Watson’s capabilities in a lot of ways. It showed the breakthroughs in interpreting natural language, the breakthroughs in coming up with evidence and rationale and identifying the level of confidence in it’s answer’s, and the power of machine learning systems.

But… it does make it easy to misunderstand the future potential of the technology.

(more…)

MQTT over WebSockets

Sunday, April 10th, 2011

Overview

Extending WebSphere MQ to include support for WebSockets, allowing messaging to web browsers, including mobile browsers, without any additional client software

Background

I’ve talked about MQTT before – a lightweight messaging protocol that I’ve used both on personal projects and my day job.

From mqtt.org:

It is useful for connections with remote locations where a small code footprint is required and/or network bandwidth is at a premium.

I’ve used it in CurrentCost projects, mobile apps and with small and embedded computers like my Slug.

But in all cases, I’ve needed MQTT client software to talk to the messaging server. Whether writing in C, C#, Java or Python, I’ve needed a client library to get me started, something that knows the sequence of packets that make up the MQTT protocol.

It’d be useful to have a zero-install MQTT client: an MQTT client app delivered over the web, without the user needing to install any additional client libraries, or resort to Java applets.

What this does

One possible way to do this could be WebSockets. Part of HTML5, this is a protocol that describes how to do two-way messaging between web servers and web browsers. And I mean proper two-way communication, including push-notification from the server to the browser, without resorting to hacks or kludges like long polling or hidden iframes.

It’s an emerging protocol, still in draft form, but there are a few implementations around so there are already a few browsers that know how to manage WebSockets.

We’ve been exploring recently how this could work with MQTT – the aim was to build in support for WebSockets into an MQTT messaging server: IBM WebSphere MQ (WMQ).

I’ve mentioned WebSphere MQ before, as back in the dim-and-distant past (well, five or six years ago) I used to be a developer of it.

It’s one of the server implementations that support the MQTT protocol.

By adding support for WebSockets to it, it means that WMQ could send and receive messages to web browsers. It means a web app could be a fully-fledged MQTT client.

(more…)

What do I do at work?

Sunday, February 21st, 2010

I’ve been an Emerging Technologies Specialist for about a year and a half now. As I mentioned when I got the job, I don’t know of anywhere that I can point people at that explains what my team do.

I’ve been wary of filling this gap myself, partly because the work that the team does is so diverse that I’m not going to do us justice. But, allowing for the fact that I’ll miss a ton of cool stuff that my colleagues do, I figure that I should try and describe what I do.

I work in the Emerging Technology Services team.

How to explain this?

(more…)

Pretty CurrentCost graphing from Pachube

Tuesday, April 28th, 2009

Last Saturday was the second HomeCamp. This week has been very busy at work, so I’ve not had the chance to pull together a proper post about it yet, but in the meantime I thought I’d share a little Pachube tip that Usman demonstrated at the event.

I’ve been putting the live readings from my CurrentCost meter into Pachube as an input feed for several months now, but not really had much use for it, other than as an easy way to check my CurrentCost data from my mobile.

Usman showed us an app that lets you get a neat Google chart visualisation of a Pachube feed in just a few clicks:

It’s very simple – go to apps.pachube.com/google_viz, give it the ID of your pachube feed, and it generates the short snippet of code necessary to create the Google chart.

It takes no time at all, and really shows the power of being able to easily pipe together different stuff through pachube.

ScriptFu – scripting with Gimp

Wednesday, April 1st, 2009

I wrote on Sunday about my first attempt to use Gimp to script some image manipulation stuff I wanted to do – specifically, combining multiple images into a single, multi-layered image.

A few people have asked me for more info about how to do this, so I thought I’d share my script here. Gimp is an open-source image editor, but it also comes with a batch mode where you can run it’s functions from a script. The scripting language for Gimp is called ScriptFu, and is a Lisp-type language. I’ve not done anything in Lisp since learning Scheme at University… so it felt a little odd at first.

This was my first attempt at writing in ScriptFu, so it’s worth pointing that I’m not an expert, and what I’ve written might not be elegant or the “right” way to do it. But I did manage to get something working in a few hours of playing with it.

To start with, a few tips from how I got started:

The doc – The documentation on scripting at docs.gimp.org is fantastic, and got me off to a quick start. It includes enough snippets and samples that I could see the sort of thing I’d need to do.

Gimp’s PDB – If you launch Gimp, go to Help -> Procedure Browser. It starts up a very neat searchable API doc for all of the Gimp functions. Even when I didn’t know the name of functions I needed, typing a quick guess (e.g. “layer”) into here would show me a few sensibly-named options, and show me the full API info for them all.

Photobucket

(more…)

Fun with MQTT

Friday, July 18th, 2008

I’ve been quiet for the past month or so, as I was keeping my head down to finish a project at work. It’s done now, so now is a good time to crawl back out of my cave and share a bit about what I’ve been up to. This was for a customer who outsourced a software development project to us.

Some quick background: MQTT is a publish/subscribe messaging protocol that IBM products like WebSphere Message Broker can speak.

Our customer wanted an MQTT library written for the real-time embedded firmware that runs on their products. This client library needed to provide the API of the MQTT specification, implemented within the constraints of an embedded platform with significant resource constraints, and only a subset of the standard C OS functions (e.g. no multi-threading, no dynamic memory allocation, no malloc/realloc/calloc, etc.).

(more…)