11 Aug 2017

TJBot is an open source DIY kit from IBM Watson to create a Raspberry Pi powered robot backed by the IBM Watson cognitive services. First published late last year, the project provides all the design files needed to create the body of the robot as either laser-cut cardboard or 3D printed parts.

It includes space for an RGB LED on top of its head, an arm driven by a servo that can wave, a microphone for capturing voice commands, a speaker so it can talk back and a camera to capture images.

There are an ever-growing set of tutorials and how-tos for building the bot and getting it hooked up to the IBM Watson services. All in all, its a lot of fun to put together. Having played with one at Node Summit a couple weeks ago, I finally decided to get one of my own. So this week I’ve mostly been monopolising the 3D printer in the Emerging Technologies lab.

A post shared by Nick O'Leary (@knolleary) on

A post shared by Nick O'Leary (@knolleary) on

After about 20 hours of printing, my TJBot was coming together nicely, but I knew I wanted to customise mine a bit. In part this was for me to figure out the whole process of designing something in Blender and getting it printed, but also because I wanted my TJBot to be a bit different.

First up was a second arm to given him a more balanced appearance. In order to keep it simple, I decided to make it a static arm rather than try to fit in a second servo. I took the design of the existing arm, mirrored it, removed the holes for the servo and extended it to clip onto the TJBot jaw at a nice angle.

The second customisation was a pair of glasses because, well, why not?

I designed them with a peg on their bridge which would push into a hole drilled into TJBot’s head. I also created a pair of ‘ears’ to push out from the inside of the head for the arms of the glasses to hook onto. I decided to do this rather than remodel the TJBot head piece because it was quicker to carefully drill three 6mm holes in the head than it was to wait another 12 hours for a new head to print.

In fact, as I write this, I’ve only drilled the hole between the eyes as there appears to be enough friction for the glasses to hold with just that one fixing point.

There some other customisations I’d like to play with in the future; this was enough for me to remember how to drive Blender without crying too much.

Why call him ‘Bleep’? Because that’s what happens when you let your 3 and 7 year old kids come up with a name.

I’ve created a repository on GitHub with the designs of the custom parts and where I’ll share any useful code and how-tos I come up with.

10 Aug 2017

Rather predictably, I’m already 6 weeks behind on my weekly notes of what I’m doing. So here’s a bumper catch up.

Weeks 4 + 5 were focussed on three things; sorting out some fixes for issues that slipped into 0.17, writing up the Node-RED roadmap to take us to version 1.0 and preparing for upcoming events.

The end of week 5 was the FullStack conference itself. I could only make it on the last day, when I was scheduled to speak. When I arrived, all the sessions of the day were written up on a whiteboard and everyone could vote on which talk they planned to see. The organisers then used that to assign the sessions to the different sized rooms. Slightly unfortunately the title of my talk had been lost somewhere along the way, so was simply listed as “Node-RED”. I got a roomful of 30 or so people; many of who had heard of Node-RED already. With the talk done, I couldn’t hang around for the other sessions as I had to get home ahead of a weekend away.

Week 6 started with us publishing the Node-RED roadmap to version 1.0. It was great to get that shared and start to get feedback from the community on it. Its an ambitious roadmap – I said in the blog post the goal is to get there by the end of the year. I suspect it will by a bit later than that, but it sets out the tone and direction of the project nicely.

One of the more interesting things I did this week was to spend a bit of time talking with a startup who were having some issues with Node-RED. They were using it to create bots for social-media engagement and had a high profile event coming up that they expected to drive particular high workloads through the system. I reviewed their flows and provided some feedback on areas that were potential bottlenecks. A few days later I heard back that they had implemented some of the suggestions and were happy it was handling the workload they needed it to.

Week 7 was mostly spent in San Francisco for Node Summit. On Monday I took the opportunity to have a catch up over breakfast with Matt Biddulph, followed by an impromptu Node-RED talk as his new company. I then spent the rest of the day at the Galvanize office where IBM were hosting an IoT workshop in the afternoon, followed by a meetup in the evening at which I did my Node-RED talk.

Tuesday was the Day Zero part of NodeSummit where I did my full Node-RED talk to a packed room and got to see lots of other great talks. If anything, there was too much good stuff – the afternoon session had 6 back-to-back 30 minute talks with no break. For a jet lagged Brit who hadn’t had a decent cup of tea for a few days, I definitely faded out.

The week ended somewhat abruptly the next day when I found myself having to rearrange flights to get home two days early. I have to say a big thanks to American Express Global Business Travel who showed a great deal of empathy and great customer service when they agreed to refund the $900 fee Delta Airlines charged me without any empathy or good customer service to change the ticket.

Week 8 was a bit all over the place.

Week 9 was back to normal somewhat, but most notably came the announcement that Hitachi are adopting Node-RED as the tooling for their Lumada IoT platform. We’ve been working with Hitachi for the last few months, discussing their requirements and how Node-RED can fit with what they are doing. The roadmap we published a couple weeks ago has certainly been influenced by their involvement and I look forward to their contribution growing.

I also kept the Emerging Technologies’ 3D printer busy building a TJ Bot – more on that soon.

And that brings us to today – Toby’s 7th birthday. We’ve just watched Star Wars (A New Hope) for the first time – although he knows it backwards thanks to the various Lego versions he’s already seen. And I’ve taken the opportunity to get these notes written up.

Next week is a holiday, so there won’t be any updates, but hopefully it won’t be another 6 weeks before I write again.

30 Jun 2017

I’ve liked the idea of writing week notes for ages, but I’ve never managed to get started. When you’re busy with work, without taking the time to reflect on what you’ve actually done, you can look up and realise half the year has already passed. Hi July!

In the past, there has always been too much I can’t talk about publicly which has made it hard to write anything meaningful. But now I have a new job, a new purpose and a new found energy to write here more.

Between my Developer Advocacy role and running the Node-RED project there will be plenty I can write about. There will undoubtedly be things I can’t talk about directly, but that shouldn’t get in the way.

The main thing I need to remember is who I’m writing these week notes for. I’m sorry, dear reader, but it isn’t you. Whilst I hope you find them interesting, if you chose to read them, they are primarily here for me to record just what it is I spend my time doing. Sometimes there will be a story to tell, sometimes there will be a collection of bullet points. The main thing is to get that rhythm going.

Given the slightly blurred lines of when I formally moved from ETS to the Digital Business Group, I’m going to call Monday June 12th as the start of Week 1. Which does mean I’m already 3 weeks behind on my notes. So lets catch things up.

Week 1 was spent juggling three things; trying to get Node-RED 0.17 finished and released, preparing and delivering a talk on Node-RED Dashboard and preparing three separate workshops on Node-RED and IBM Watson IoT to be delivered the following week.

We try to do regular releases with Node-RED, but inevitably, things get in the way and more time passes than we’d like between them. 0.17 was overdue but there were a small number of outstanding issues that needed squashing. I wanted to get them done and released before the workshops the following week as I knew they’d benefit from it. But in the end, it had to give way.

The Node-RED Dashboard talk was an internal call with a community of technical sales folk to introduce them to Dashboard and show them it can do. Whilst we have a standard set of slides for the main Node-RED project, we didn’t have an equivalent set for Dashboard. So I spent a day pulling those together. (Note to self: we really should make our standard intro slides available publicly somewhere)

The workshops were part of large education event for the senior technical architect community across the whole of Europe. I was running the IoT stream and had three workshops to prepare to take the participants through the whole process of using Node-RED on a device, getting it connected via Watson IoT into Bluemix and then controlling it using the Watson Conversation service. The material I produced was a set of high-level exercises that addressed each step in the process. I have to admit I wasn’t sure on how high-level or how detailed I had to make the material, but decided I’d be able to improvise once I got a better sense of the participants at the event. Which leads me neatly on to…

Week 2 was spent in Lisbon, Portugal, at the Future Skills event to deliver the workshops. 250 Technical Architects from across Europe converged on this event to participate in one of four streams; Cognitive, Blockchain, Data Science and IoT. In all, we had about 60 colleagues in the IoT stream. Across the first day and a half, we delivered the workshops and they then had to take what they had learnt and produce a demo/project/poc that was relevant to their clients. With all the usual challenges of unusable wifi at big events it was great to see a genuine variety of projects at the end.

My main takeaway was the workshop material I had produced was too ambitious for the time available. It also left too much for the participants to figure out for themselves. A good start for the material, but needs more work to be properly reusable.

Week 3 was back in Hursley focusing on 0.17. The remaining issues had been mostly resolved and the last task was to get the release notes written and some final documentation updates done. For a release that had over 300 commits, that took some time. Some releases have obvious headline features – this one was much more a sum-of-its-parts type release. That made it a challenge to decide what things to pull out into the release blog post. But I got there eventually and 0.17 was released today.

Being back in Hursley also meant catching up on things that I’d had to put to one side whilst in Lisbon. Conversations around our plans for developer advocacy activities, discussions with other teams to ensure we’re working in the same direction and the usual time spent help out colleagues with their random questions about Node-RED that pepper my time.

With the move to the DBG group, I knew I’d still spend a lot of my time on Node-RED, but it was the pieces around the edge that were going to change. Based on the conversations this week, there’s lots of interesting things to get done.

Finally, I got confirmation that I’m speaking at Node Summit in San Francisco at the end of July and also just managed to submit both a talk and workshop proposal for NodeConfEU in November before the deadline today.

Next week is more planning; with Node-RED 0.17 I’m working on the plan for the next release and beyond. I also need to start preparing my talk for FullStack conference two weeks from today. And it looks like we have a couple issues to tidy up and get a 0.17.1 released sooner rather than later.

That’s it. First set of week notes done, spanning three weeks and almost hitting 1000 words. Expect a few scrawled bullet points next time.

16 Jun 2017

Last September, as I marked my 15 years with IBM, I ended a post wondering what the next 5 years would hold in store. Perhaps a bit sooner than I had planned, it’s time to find out.

I’ve been in IBM’s Emerging Technologies Services group for close to 6 years now. In that time I’ve worked on a host of projects, including:

  • writing embedded MQTT code for smart energy meters
  • connecting a Scalextric to a mind-reading headset
  • 6 weeks spent in a 7th floor conference room writing custom Dojo UI widgets (not a highlight, but you’ve got to pay the bills)
  • wiring up some Arduinos and Pis in an Ice Cream factory (a highlight)

And of course, the main thing I’ve focused on for the last 3 years, Node-RED.

The client-funded nature of the work ETS does has meant I’ve only been able to work on Node-RED because someone has been willing to pay me to do so. I’ve been incredibly fortunate to have been in that position; being able to turn a side-project into a job.

I’ve enjoyed my time in ETS, but the time has come to make a change.

I have now moved over to IBM Digital Business Group to be a Developer Advocate, focussing on IoT. This is a new part of IBM where all of our work around developer advocacy is being brought together in one place.

Making our products, APIs and services attractive to developers is vital to the future of the business. Long gone are the days that software is sold to the CIO. Developers are far more empowered than they ever were to make their own technology choices. Go read Stephen O’Grady’s The New Kingmakers for a far more insightful take on how this has been the trend for quite some time now.

In my new role I’ll be working to help developers engage with our technology. Whether that’s through hackathons, conferences, blog posts, stack overflow questions, videos, Coursera courses – really anything and anywhere that developers are.

So what does this mean for my time on Node-RED?

Well, truth be told, the group I now work for is the group who was previously funding my time on Node-RED. So whilst I have changed departments, the primary focus of my work stays exactly what it has been: leading the Node-RED project and working hard to grow the community and eco-system around it.

Everything changes. Nothing changes. On to the next 5 years.

3 Sep 2016

In a previous post, I wrote about how I ended up at IBM. I finished that post with a question: Will I still be here in another 10 years? Well, I’m half-way to finding out, but I’m no closer to an answer.

The last 5 years in the Emerging Technologies group have flown by. The last three years of which have been pretty much dominated by my work on Node-RED. It’s been a lot of hard work, but it has been incredibly satisfying work. I’m very fortunate to be in this position; not everyone gets to turn a side-project they created into a job.

That said, as I spoke about in my Monkigras talk this year, when a side-project becomes a job, it risks becoming a chore. I have to continually make sure I strike a balance between the fun and the not-so-fun parts. I don’t always get that balance right which can make it harder work than it should be.

So what of the next 5 years? No doubt Node-RED will continue to be my focus for now, but that doesn’t stop me wondering what else I could be doing.