Creating an iCalendar from online timetables

January 19th, 2014

I’m a member of my local swimming pool, Fleming Park. I’m trying to swim a lot at the moment (as it’s a big help for my back).

I don’t have a regular schedule, I just try and squeeze in time for a swim any time I can spare. This means I’ve not learned the pool’s schedule and frequently have to check their website to find when the pool is available.

I’m checking it so frequently that it’s one of my Most Visited thumbnails in Chrome.

This isn’t efficient, particularly as it’s normally on my phone making me switch between the browser and Calendar apps. It’d be quicker and easier if I had the timetable in my calendar alongside my appointments, so I could easily see when I’m free and the pool is open.

The leisure centre doesn’t provide a feed so I can subscribe and add their schedule to my calendar.

So I made my own.

dalelane.co.uk/…/swimflemingpark.ics

If you use the Fleming Park pool, import this in your Calendar app (or subscribe to it from Google Calendar) and the next week’s pool timetable will be kept up to date in your calendar.

Read the rest of this entry »

A scheduler for Remember The Milk

January 4th, 2014

A quick tool I made for setting due dates of tasks in Remember The Milk by dragging them onto a calendar

I’ve mentioned Remember The Milk (RTM) before – the online to-do list manager. I’ve been using it for years.

My workflow has settled into:

  1. Capture
    Any time I think of something that I’ll probably need to do, it gets thrown into RTM. Then I relax knowing it won’t get forgotten.
  2. Plan
    Periodically review everything in RTM, working out what needs to be done soon, what can wait, and so on.

The RTM web application interface doesn’t suit my approach to scheduling tasks. I need a different view for planning and triaging.

So I made one.

Remember The Milk scheduler

Read the rest of this entry »

Standing desks

December 10th, 2013

Standing deskI’ve switched to a standing desk for work, and thought I’d share my experiences with it.

I tend to get involved in a variety of things at work, but I’m primarily a developer. I’m a code monkey.

Traditionally, this has involved a lot of sitting. Not just a lot of sitting overall, but for long periods, too. I couldn’t tell you the number of times that I’ve been hunched over a laptop and lost track of time… looking up in surprise hours later.

There has been a lot of press about how bad this is for me. Excessive sitting is lethal. Sitting for an hour does more to shorten your life than smoking a cigarette.

I figured that as long as I went for a run and kept my weight down, that would make up for it. There is also research that says this doesn’t work and that sitting causes harm which isn’t undone by a bit of exercise every day.

I’d ignored more or less all of this.

But then I screwed up my back and sitting for long periods wasn’t an option. Working on a standing desk started as a necessity, but now that I’ve gotten into it, I wish I’d started years ago.

I don’t want to sound like a zealot or try to convert people to it. I just want to share what it’s been like.

Read the rest of this entry »

Avoiding monitor contention in Java’s Double parseDouble

November 30th, 2013

Overview

You can call Double.parseDouble in Java to convert String representations of numbers like “1.234567” into a number representation.

I needed to do this, a lot of times, from a lot of threads. And it was horrendously slow.

In this post, I’ll explain why and what I did about it.

Background (skip this if you don’t care why I had this problem!)

I’ve mentioned UIMA before : an Apache framework for doing text analytics, that I use at work. One of the ways that it stores and moves around units of work is in XML files (called CAS files).

For a particular task at work, I will have a lot of these. Thousands of them. I need to deserialize these, and parse and process the contents. The contents includes scores from the various analytics operations that are done on the contents of the CAS:

<myElement
    myRawScore="1.2345678"
    myThisScore="2.46801357"
    myThatScore="1.35792468"
    ...

Thousands of XML files, each containing several thousand numbers in String form.

As part of the deserializing the CAS files, the UIMA library (specifically org.apache.uima.cas.impl.CASImpl) was calling Double.parseDouble 500,000,000 times or more.

I’ve got 64 processor cores and lots of memory, so I kicked off 64 threads – each one processing an XML CAS file at a time.

This took *ages*.

Read the rest of this entry »

Making handwritten notes on an iPad mini

November 28th, 2013

I’ve had a Bamboo stylus for my iPad mini for a while now. I’ve used it for sketching and rough diagrams but only recently started using it for making handwritten notes.

It’s not immediately obvious that it’d really work. The iPad touchscreen is designed for use by pudgy human fingers, so that’s what the stylus mimics. You don’t get a fine point for precision drawing, you get a big fat rounded end. (As an aside, this is something that the Surface gets right – a proper active pressure-sensitive stylus is very cool. But anyway…) So your handwriting has to end up really big – like trying to make notes with a child’s chunky crayon.

And the iPad mini screen is so small that you don’t have much room to write.

I ended up carrying a Moleskine notebook and pen around as well – making handwritten in notes in that and then taking photos of it with the iPad. It’s a bit of a kludgy and time-consuming workaround.

I’ve started using Penultimate instead, and it’s pretty neat. It makes up for the limitations of handwriting by giving you a zoomed-in view of a bit of the screen, and scrolling that view around for you automatically as you write – matching the speed of your handwriting. And it’s reasonably good at knowing how how to ignore a wrist resting on the screen.


Camera work by Grace, book to copy provided by Faith 🙂

Read the rest of this entry »

Why do I keep moaning about my back?

November 15th, 2013

If you’ve spent any time in person with me in the last month or two, you’ll know that I’ve barely shut up about my back hurting.

If you follow me on twitter or facebook, you might have noticed the occasional moan, or at least mentions of physio, hospital trips and pain meds.

This post is my way of drawing a line under all of this. I’ll explain what’s wrong with me, and then shut up about it. Really. I promise.

I have degenerative disc disease.

Read the rest of this entry »

Why am I still at IBM?

August 6th, 2013

Ten years ago.

6 August 2003.

I was a recent University graduate, arriving at IBM’s R&D site in Hursley for the first time. I remember arriving in Reception.


Reception – the view that greeted me when I arrived

Ten years.

It was a Wednesday.

I’m still at the same company. I’m still at the same site. I still do the same drive to work, more or less.

For a *decade*.

How did that happen?

It was never The Plan. The Plan (as cynical as it sounds in hindsight) was that I’d stay for two or three years. I figured that would be long enough to get experience, and then I’d leave to work at a small nimble start-up which was where all the “cool” work was.

The Plan never happened. A few years passed, and then another few… I kept saying that I’d leave “later” and before I knew it a ten year milestone has kind of snuck up on me.

I think I’m more surprised than anyone. I’ve never been at any place this long. I was at Uni for five years. The longest I was at any school was four years.

It’s a serious commitment, and one I never realised that I had made. I’ve not even been married for as long as I’ve been with IBM.

So why? Why am I still here?

I live here.

Read the rest of this entry »

Working in the USA

August 5th, 2013

US tripWe’re in America!

We’ve been here for a few weeks now, so I thought I should let you know how we all are in case you’re missing us.

We’re staying in Westford, which is sort of near to Boston, Massachusetts.



I’ve been spending most of my time here – the IBM Mass Lab near Littleton.

US trip

Read the rest of this entry »