Knative Intro @ Devoxx UK

May 30th, 2019

I presented an introduction to Knative at Devoxx UK, the recording for which can be found below. I’m afraid I deviated somewhat from the abstract given the changes to the project in the five months since I submitted it. With only half an hour, I probably shouldn’t have tried to cover Tekton as well but I wanted to have an excuse to at least touch on Jenkins X, however briefly! The demo gods largely favoured me except when hey failed to return (not the part of the demo I was expecting to fail!). The script and source for the demo are on GitHub although I’m afraid I haven’t attempted to abstract them away from the Docker Hub/GCP accounts.

OMM Lite Alone

May 29th, 2019

After last year’s success, we had signed up for our third Long Score at the OMM Lite, this year taking place on Cannock Chase over the May Bank Holiday weekend. Unfortunately, a week and a half beforehand, Christine decided to kick a hotel bed sufficiently hard that she suspected she had broken a toe. I failed to find a replacement partner but, for better or worse, this year they were allowing individual participants…

I set off on Saturday morning with a certain amount of trepidation. At the forefront of my mind was the 53km that we had run on Saturday in the Forest of Dean and the expectation that in similar terrain, on my own, I should be going further than that. Having taken a few minutes to pick an initial direction and set off for the first checkpoint, I started to do the mental math about the pace I was doing. Given the size of the map, I fairly rapidly worked out that it was not a question of which controls was I going to do, but which I should leave out.

I panicked a little when I couldn’t find the second checkpoint but it was an early lesson in how important it was to read the descriptions containing the detailed location of the SI box. After that, I settled into a steady pace and, in hindsight, it was remarkable that it was only after about 4.5 hours, as I was wading through bracken along a path that didn’t really exist, that I was starting to struggle. The only problem was that still left over two hours to go!

I slowed the pace and managed to keep moving. I even managed to force myself to do a dogleg to pick up some extra points towards the end. At the finish, I’d covered over 66km collecting 800 out of 900 points and was placed first. I had, however, been overtaken by another individual runner travelling at speed and he duly finished 40 points ahead of me.

The next morning, I was very stiff and started at a much slower pace. It was quite refreshing to be able to just focus on what controls it made to sense to visit rather than having to go to every far-flung corner of the map. I made a couple of route-choice errors though. The first, trying to persuade myself that a purple cross on a junction didn’t apply to the direction I wanted to go and then having to retrace my steps when faced with a ‘Private’ sign. Later, I then managed to get tangled up in some housing where the exit into the forest wasn’t clear on the map.

I made a calculated decision to return late and collect a 50 point control near the finish although another dogleg down a hill and back up again was soul destroying! I wasn’t surprised to be 100 points behind the winner but, having covered just under 70 miles over the two days, I still managed to hold onto second place.

The rest of the family hadn’t just been resting on their laurels. Christine went out on the Bike Score but didn’t fare too well after a major blowout on the first day. The children did some helping, a bit of biking, and also ran the trail race. A fun if tiring weekend was had by all although, writing this three weeks later, I am still enduring some enforced rest from a dodgy knee.

South Central JK

May 28th, 2019

We arrived back from our US trip just in time for Easter and the JK. We decided to skip the sprint race to give us a little time to recover (and Christine was doing the entries and isn’t a fan of the discipline). Saturday’s middle-distance event at Windmill Hill wasn’t optional though as we were organising the string course!

There were mixed fortunes in the Currie family. I had a decidedly average run, making a few mistakes and was generally slow in the physical terrain. Amidst lots of controversy about the Emit Touch Free punching, Emma was disqualified on her course for a missing punch (at a control she definitely visited). Christine took fifth place and Duncan had a storming run on M10 to finish first. Regardless, it was a lovely day and we had a great turnout for the string course!

On Sunday, the action moved to Cold Ash for the long distance race. Christine was out first with the rest of us getting to run in the midday heat. Duncan sadly succumbed to the electronic punching and was disqualified (although probably would not have retained his lead anyway). Emma, in contrast, was out an age but was pleased to actually finish successfully. My effort was pretty much on a par with the previous day. We stayed for the prizegiving as Emma was meant to be helping but the results had turned into a bit of a fiasco and it was eventually cancelled.

The relays were at Minley and, after a brief stint on parking, I watched Emma head off in the mini-relay. She handed over to Duncan and then, unfortunately, the club had exhausted its supply of juniors! Christine’s team was also non-competitive as they had swapped in a New Zealand ringer due to injury. I was running third leg on the JK trophy and continued my run of mediocre efforts.

All that said, there was some good orienteering to be had over the course of the weekend and the good weather made for a sociable event (which is largely why we attend the JK).

Days in DC

May 27th, 2019

On arrival in Washington DC from New York for the second half of our holiday, we checked in to our hotel and headed a few blocks south to the White House. It ended up being a longer lap of the building than we had anticipated as the immediate area was cordoned off due to a security incident earlier in the day.

The next day was a Saturday and we took the Metro to Roosevelt Island, somewhere that is probably not high on the list of attractions for most visitors but is the home to one of DC’s parkruns. It was nice to be out doing something other than seeing yet more sights. After showering back at the hotel, we walked along the Mall where the Cherry Blossom Parade was just coming to an end and went to the Botanic Garden. My eyes were streaming by the end of the day which I put down to the tree pollen and spent the rest of the holiday on antihistamines.

The next day was spent at the National Air and Space Museum. The downside of the Smithsonian Museum’s being free is that it was absolutely jam-packed with people. We’d booked in to see a 3D film which was a relief from the crush even if two out of the four of us ended up watching the film in 2D (with the same colour glass in each eye!). We walked back to the hotel via the tidal basin where the cherry blossom was, unfortunately, past its best.

Christine was working the next day so we were left to our own devices. We started at the far end of the Mall this time with a trip to the Library of Congress where the baseball exhibition was somewhat wasted on us. We then moved onto the Postal Museum which was a surprise hit (even if just because they were giving away free stamps to start your own collection). Next stop was the Natural History Museum which was as packed as the Air and Space Museum had been; the butterfly exhibit that Emma had quite fancied also turned out to be a paid extra. We rounded off the day with a quick whizz round the Museum of American History and eventually found the superheroes exhibit.

Christine rejoined us for our final day when we spent about seven hours at the zoo! The main aim was to see the giant pandas and they duly obliged (if only because they had been kicked out whilst their cages were being cleaned). Emma also finally got the large soft pretzel that she had been the object of her desire for most of the holiday!

We were flying back from New York although out of JFK so the following morning we took the Amtrak back up north. Christine had ended up on a different flight back (a long story) and so had an extra five hours to kill at the airport. We were having breakfast on our flight around the time she was having dinner on hers! I’d had several hours asleep at home when I was woken by the phone asking us to collect her from Winchester station.

All-in-all a fun ten days away even if it did sometimes feel like we were working our way through a long list of tourist attractions. Indeed, Duncan was heard to remark at one point: “I just want to do something rather than see something”. I suspect we’ll probably revert to our normal formula in future of a few days in the city at one end or other of a more outdoorsy holiday.

New York, New York

May 26th, 2019

I’ve been getting horribly behind on writing blog posts so I’m going to make a concerted effort to catch up. On the plus side, it means that you’re likely to get just the edited highlights! The first couple of posts cover our Easter trip to the US. Christine has been on sabbatical this semester and we decided to combine her visit to some American colleagues with a holiday in New York and Washington DC.

Christine was already out in the US so I had the pleasure of escorting the children on their first transatlantic flight alone. As anticipated though, they were no bother, with the opportunity to spend quite so many hours sitting in front of a screen going down a treat. We could have done without the 75-minute delay on takeoff and Emma was less than impressed by airline food but otherwise, the journey was uneventful. We were flying into Newark which at least meant the journey to our hotel in Jersey City was fairly short and Christine was there waiting for us on arrival.

The next morning we went in search of breakfast and must have made a good choice given the length of the queue around the corner from the bagel shop. From there, it was a short journey on the PATH train (note to visitors that one ticket can be reused by up to four people) under the river to 33rd Street where we walked around mid-town Manhattan taking in Broadway, the Empire State Building, Grand Central Station, the Chrysler Building, St Patricks Cathedral, the Rockefeller Building and finally Times Square. Particular highlights were the Macy’s Flower Show and the Lego Store.

We were staying in a suite with a kitchen (something that was made affordable by staying outside of Manhattan) so at least when everyone woke early the following morning we didn’t have to wait for breakfast. Just to vary our transport options, we took the ferry today. This time we went up to 39th Street and spent the day at the Intrepid Museum of Air, Sea and Space (the NJ Transit discount made the price more reasonable). The museum has it all: it’s based on an aircraft carrier, has a submarine moored alongside, and has a space shuttle parked on the flight deck! We walked back along the High Line which, I have to say, wasn’t looking at its best at this time of year. It was a good excuse to have a nose at the Hudson Yards development though including the Vessel and the recently opened Shed.

I felt sufficiently with-it the following morning to go for a run along the waterfront. To even up the science/arts balance we then headed to the Museum of Modern Art. The building was undergoing redevelopment but there was still plenty to see. We then hit Central Park where Christine ticked ‘going for a run’ off her to-do list.

We couldn’t visit New York without going up a skyscraper and it might as well be the tallest: the One World Trade Center. Even having found a decent discount, it was still ridiculously expensive but on a clear day, there were excellent views to be had from the Observatory on the 100th floor. Perhaps as a consequence of the price, the queues were minimal. We wandered around the 9/11 memorial afterwards but declined to visit the museum which just seemed a little too ghoulish. Instead, we went for a walk over the Brooklyn Bridge.

For our last full day, there was one obvious attraction still left to go: the Statue of Liberty. The last time I visited NYC as a tourist (over twenty years ago) I had just done the Staten Island ferry. Tickets for the climb to the crown sell out months in advance but getting a ticket to the island that included the museum and ascending as far as Liberty’s feet was easy enough. Unfortunately, the museum is about to relocate from the pedestal to a new building which meant the audio tour described lots of artifacts that had already been moved!

Next stop was the immigration museum on Ellis Island which has enough content in its own right to easily fill a day (including an exhibit by the Clan Currie Society!). The children were definitely beginning to flag a bit by the end though and didn’t appreciate the detour on the way back to the hotel to take in Wall Street.

The following morning, we packed our bags and took one last trip on the PATH train into Manhattan to Penn Station where we were to catch the Amtrak train to DC. It would probably have been cheaper to fly but, not-withstanding environmental concerns, we thought the train would be more fun. If we’d been more on the ball, we would have got one final advantage from our Jersey City accommodation and joined the train later at Newark Penn Station. All that remained though was to sit back in the enormous comfy seats and watch Philadelphia and Baltimore go past as we sped our way south.

To be continued…

Eastleigh 10K PB

March 24th, 2019

It was the Eastleigh 10K this morning and I managed to clock up a new PB of 35:34 – almost a minute faster than my previous fastest time on the course and just edging my previous 10K PB from 2003 (although admittedly that was on a hilly course at Ryde on the Isle of Wight).

Preparations had gone pretty well, managing to complete most of a Runner’s World training plan. A couple of overseas work trips threatened to derail things: the early morning’s around Cary were not particularly inspiring – the same cannot be said of running along the waterfront in Marbella! The effect on the waistline was likely to be the most problematic!

Conditions on the day were pretty spot on with cool temperatures and a light breeze. I started far too quickly but the pace didn’t feel uncomfortable and it wasn’t until around the 6k mark that I settled into something closer the pace I had been anticipating. I must have judged it about right as, despite my best efforts, I slowed a fraction for the final kilometre.

I’m looking forward to some time off road running now but the result was sufficiently encouraging to make me wonder whether I could still break under 35 minutes…

Exmoor Half-Term Hols

March 24th, 2019

A (very) belated blog post to record our half-term trip to Exmoor. The destination was selected as someone not too far away but where we haven’t spent much time before. As we drove there on Friday evening, what we’d failed to appreciate was how slow the roads would be to get there. The roads got narrower and narrower until, after passing Porlock Weir, we eventually reached a toll gate. I had started reversing back up the single-track road before Christine checked the details which indicated that we should pass through the arch, then through a tunnel under the coast path, which would take us to our randomly selected cottage (the left half of the building in the picture).

Reading through bumph left in the cottage it transpired that the cottage was part of the Ashley Combe estate, once owned by Lord William King, and where he honeymooned with his bride Ada Byron (to become Ada Lovelace) mathematician and colleague of Charles Babbage. The tunnels were part of an elaborate scheme to keep the tradesmen out of sight!

We woke to beautiful views north across the Bristol Channel to South Wales and east across the bay to Hurlstone Point. Our first day was fairly relaxed. We explored the private path down to the pebble beach and then drove back to Minehead to stock up on food. Christine and I took it in turns to explore, running from the cottage.

On Sunday, we drove to Bossington at the other end of the bay. From there, we walked up the headland to Selworth Beacon, returning via the National Trust tearooms at Selworth and an obligatory cream tea.

For the next two days, I was making the most of my remote working and saving a bit of vacation for later in the year. On Monday, the others went to Dunster Castle where they met up with their cousins and on Tuesday they explored on foot from the cottage.

Come Wednesday, I was back in holiday mode and we headed along the coast to Lynmouth. I then drove whilst the others took the cliff railway up to Lynton. From there we spent a few hours exploring the Valley of the Rocks. We returned to the cottage over Exmoor which looked particularly bleak at this time of year.

For our last full day we went south to Tarr Steps, a 17-span ‘clapper’ bridge. Our walk ended up being a little longer than anticipated as all the other crossing points on the river were under water until we reached Withypool (where the tea shop was not due to open for another week but the village shop ran to ice creams!).

Friday was departure day and we decided to stop off at Stourhead on our way home. The house was closed for its winter cleaning so we joined the masses on a lap of the lake as the sun broke through the morning mist.

It was a fun week but, other than perhaps to walk the Coast Path, I don’t think we’ll be rushing back.

Debugging with Telepresence

February 11th, 2019

I’ve spent the last few days trying to debug an issue on Kubernetes with an external plugin that I’ve been writing in Go for Prow. Prow’s hook component is forwarding on a GitHub webhook and the plugin mounts in various pieces of configuration from the cluster (the Prow config, GitHub OAuth token and the webhook HMAC secret). As a consequence, running the plugin standalone in my dev environment is tricky, but just the sort of scenario that Telepresence is designed for.

The following command is all that is needed to perform a whole host of magic:

  • It locates the my-plugin-deployment deployment already running in the cluster and scales down the number of replicas to zero.
  • It executes the my-plugin binary locally and creates a replacement deployment in the cluster that routes traffic to the local process on the exposed port.
  • It finds the volumes defined in the deployment and syncs their contents to /tmp/tp using the mount paths also specified in the deployment.
  • Although not needed in this scenario, it also sets up the normal Kubernetes environment variables around the process and routes network traffic back to the cluster.

Now, it was convenient in this case that the binary already exposed command line arguments for the configuration files so that I could direct them to the alternative path. Failing that, you could always use Telepresence in its--docker-run mode and then mount the files onto the container at the expected location.

And the issue I was trying to debug? I had used the refresh plugin as my starting point and this comment turned out to be very misleading. The call to configAgent.Start() does actually set the logrus log level based on the prow configuration (to info by default). As a consequence, everything was actually working as it should and my debug statements just weren’t outputting anything!