Tuesday, May 14, 2013

Bloomin' ridiculous

Bloomin' ridiculous

Forsythia should be long over by the time the cherry blossom is out

The garden has in the last few weeks leapt from winter torpor to that point of high spring where you just have to turn your back for weeds to be ankle-deep; so there have been a lot of delayed chores to catch up with -- and on the surprisingly good weather for the early bank holiday, the temptation to get out in the sunshine and fresh air on the bicycle.

So now the plants in the greenhouse are getting to the size to be planted out, or into grow-bags, the weather turns cold and very wet again.



Tuesday, April 30, 2013

A short month and a busy one

With spring catching up from being six weeks late, meaning plenty of catch-up in the garden, and work getting to that stage of a release cycle, amongst other distractions, I'm building up a backlog of things to post about. But this will just have to do for the time being.

An odo reading of 6365.2 means 253.5 miles cycled -- highest monthly total so far (excluding holiday miles) despite rain and events that kept me at home on some of the best fine days, and on the road for the cool, cloudy ones.


Wednesday, April 10, 2013

Spring may be here

In warm sunshine today, I mowed the lawn for the first time this year, and do a bit more hoeing and weeding. The cherry tree looks like it will burst its buds soon, ahead of the plums, which is unusual.

And that won't be the only bit of catching up needed in the garden. Hardy plants can start emerging from the greenhouse, and seeds get planted, in the coming days.


Sunday, April 07, 2013

Hints of spring

Even though on Friday, when cycling home, there were still patches of snow in the more sheltered ditches, the weekend has started to feel warmer, at long last. I even managed to start pottering in the garden, removing moss and straw from some of the beds, pruning the dogwood, and planting out narcissi that had bloomed on the window-sill six weeks ago.

Monday, April 01, 2013

Q1 cycling

I'm up to 6111.7 on the odo, or 519 miles on my bike, plus 85 on the hire bike for last week's holiday, so 604 miles total in the quarter, compared with last year's 344 by this point.

The downside is that having cycled in snowy/slushy conditions, I clearly picked up a fair bit of salt from gritted roads, as there's a lot more surface rust on the various fixtures and fittings, and the dérailleurs -- let alone the chain -- have needed continual attention to keep from seizing up.

Friday, March 29, 2013

Sunny Suffolk Cycling


View 27-Mar-2013 in a larger map

When I stayed at the Westleton Crown last year, I wasn't aware that it was a bit declassé -- it just seemed like a nice country hotel, located conveniently to the coast, not too far from Southwold. Nice enough that as CycleBreaks offered it as a new single centre this year, I used up the remnants of last year's leave carried over to take a couple of nights there with the intention of enjoying the spring weather.

Now I hadn't been planning on the weather being like it was last year, but nor had I been expecting this

At least the road is clear

This is how an Ice Age begins

when I booked. And this wasn't the worst -- on the way there, taking a wrong left out of three near Stradbroke, the satnav helpfully corrected me down a single-track road where the drifted snow was still across the road in places, as rutted ice between small lakes (not that some of the bits on the route it had intended were much better -- approaching this bit


View Larger Map

was much the same, with drifted ice across the road before seeing this wonderful sign ahead). The sun was generally shining, though, and in the bits where I was sheltered from the relentless north-easterly, the glorious spring day that should have been managed to emerge in places.

At least having been accustomed to these sorts of temperatures on the commute to work, I had judged how much to wrap up so as not to overheat, and so I was warm enough, even wanting a little of the breeze through my fleece for air cooling. The other side-effect was that I didn't get anywhere as thirsty as I usually do on long summer rides, so getting to Halesworth around 11, it was just time for a cup of coffee for warmth, before taking the scenic route (past Bernard Matthews Bootiful Turkeys) to Southwold for lunch.

Wizards tower?

Wizard's Tower

Southwold was as near to deserted as I've ever seen it on this day in the school holidays running up to Easter, and while there were a few well wrapped up holidaymakers on the beach, nobody was trying the water.

Sunny Southwold

Sunny Southwold

A substantial lunch was had at the Blue Lighthouse, and then I did the loop around the town and over the bridge to Walberswick, where, based on past experiences I declined to take the off-road bit to cut off the corner. The main road to Westleton being closed, I went into Dunwich, though didn't feel the inclination to stop for beer at the Ship. The bridlepath from Minsmere was actually quite passable -- drier than it has been last summer -- though there were some places on the last leg towards Eastbridge where I wheeled over snow/icy slush. And thence going off-piste back to the hotel, discovered some sights I wouldn't have by staying to the rustic routes.

Stainless Steel Sherrif

Stainless Steel Sheriff


View 28-Mar-2013 in a larger map

Having been heartened by the good state of the offroad sections on Wednesday, Thursday I took the short-cut track past Minsmere, which only had a couple of bits of wheeling past wide puddles, and after a diversion to the coast at Sizewell

Sizewell Memorial

Sizewell Memorial

I headed along the off-road section (cautioned as for hybrids and mountain bikes in the itinerary) towards Thorpeness, finding that while there were a few sandy sections that called for pushing, it was nowhere near as bad as the Walberswick off-road, and far better signed than I'd been led to believe to boot.

Breakers

Aldeburgh Beach

It was not yet half past ten after heading to the southern end of Albeburgh, so I headed through Snape to Orford via Iken, and was there by about 11:30 -- time for shopping at the smokehouse, too early, and a bit too far from base, for lunch, so I took the direct route back to Snape and took a light lunch at the Golden Key, just off the main drag, before ambling back.

There was a little bit of "twisty lanes all alike" where trees and thickening cloud put me off my dead reckoning when faced with a series of possible left turns at Eastbridge, but I was back to base by 3pm, time for a cup of coffee before beating the worst of the Bank Holiday rush home.

In total, about 85 miles, pretty much evenly distributed between the days; keeping up the cycle commuting, even at a reduced level, over the winter helped me avoid the usual long first day and collapsed second.

Sunday, March 24, 2013

Just when you think it's safe...

Slight technical difficulty

Slight technical difficulty

...to put the winter gear away, along comes more!

The cold weather seems to have brought out foraging wildlife, as both days this weekend, I've seen a deer in the garden, one time quite close to the house. The cats are neglecting their duties here, so what if it's a bit bigger than a rabbit, the principle is the same.

It's hard to remember, with snow lying on the ground and temperatures barely above freezing, that a year ago, we were having pretty much the best we got of the summer weather for the year. I just hope the couple of spring days we got near the start of the month aren't it for this year.

I miss the '90s and early '00s, when you could still believe in global warming.

Tuesday, March 19, 2013

Playing some catch-up on the web, hitting gotchas on the bleeding edge

Ever since I got a first set of static web space on GeoPages back in '97, I've been playing around with designs, on and off. So I went through the phases of frame-sets, and then table based layouts and Java applets, before getting to the bleeding edge ten years ago and doing the whole semantic XHTML1.1, CSS, minimal JavaScript thing, applets in <object> tags, while still having to provide graceful degradation to Netscape 4 and passing conditional CSS with JavaScript fixups to IE6. (The current blog layout is really a spin-off from the sort of design I was playing around with at about the time I started blogging).

Then there was jQuery, and I did a little bit with that, like accordions to cut the space occupied by what had been growing heavily styled nested lists full of links. Oh, and scripting for the rounded corners too. And then <canvas> in some browsers, while having to feed SVG or VML to the rest either explicitly or through a wrapper library.

But that was all a while ago, and I felt it was time to start playing with the new things we can do that had been passing me by -- HTML5/CSS3, more semantic mark up, webfonts rather than image-substitution, with symbol fonts for icons, CSS3 effects (so we can do script free accordions like we used to do script-free drop-downs) -- and see what we can get away with these days, which changing the rather stale aesthetic of textured backgrounds and hard delineations.

So, getting to the point, I hit a CSS3 gotcha when trying to push the envelope. What I was after was to style a navigation list with a symbol font right-arrow in a circle at the start. So I tried this:

nav>ul>li:first-letter { font-family:...symbol font...; display:block; border: 2px solid #aaa; border-radius: 1em; padding: 3px; margin-right: 5px; }
nav>ul>li:before { content:'\e059'; }

And I was disappointed to see Firefox render a little circle, then a placeholder glyph from the text font in use, then the list content -- whereas IE9 did exactly what I wanted, and Opera 11.6 drew a square around the arrow rather than a circle, even though all three browsers draw an arrow in a circle if I put the appropriate HTML escape in a span and style that. After some experimentation, it seems that Firefox will not put the glyph in the border, nor use the symbol font, for symbols in the private use area unicode range. And Opera 11.6 will use a square outline regardless.

So I can have a pure CSS solution with not quite the glyph I want, and in some browsers, not the outline; or I put the symbol I want in explicitly or by script. Or maybe some combination.

Still have to try it in a Webkit browser, mind you.

Later: experiments with other code points (abandoning the symbol font) shows that letter forms do get circled by this technique in Firefox, but symbol ranges e.g. Mathematical Arrows don't.

Even later: Chrome, as a representative webkit, doesn't show any glyph at all -- just the border! Looks like I might have to do this by script.

Even later yet: I ended up doing it with an image.

Monday, March 04, 2013

StyleCop and ILMerge don't mix

Just in case anyone else has the same sort of bright idea that had me flummoxed for a while today...

I had put together a little tool for some C# meta-programming that mixed some reflection with some source code parsing driven through the StyleCop parser, and it was working nicely, but actually deploying it was a nuisance, because it wanted the StyleCop assemblies as well as just the .exe -- so I thought to myself "Let's ILMerge it all together, that should be nice and convenient."

And that's when the test harness stopped working, with no parsers found.

Chasing through the decompiled sources, it appears that the parser assembly StyleCop.CSharp.dll gets loaded by looking through other co-located assemblies with the same strong-naming key and whose name ends in ".dll" -- assumptions which merging into a .exe for distribution had just blown away.

Apart from having to manage what is no longer a single unit, however, the end result of using StyleCop for examining source (and in particular comments and suchlike not compiled into the assembly being reflected upon) in conjunction with reflection worked very nicely.


Friday, March 01, 2013

February cycling

While I didn't cycle on the 1st, I managed to work in an extra day cycling to work, plus cycling into town to the dentist yesterday, ending the month of 5915.0 miles recorded -- 322 so far this year and 144 even in this shortest of months. And with the evenings opening out, though I didn't get to cycle today, from now on, it's cycling by default, so the totals should climb even further.

And the weather is looking properly springlike for the coming days...


Monday, February 25, 2013

FsCheck is great for for native code too!

I've just had call to write some good old-fashioned 'C' code recently, for use in an environment where my access to anything fancy like external libraries is limited. And a one part needs a simple transcoding function to take data in and manipulate it from the form convenient to provide into a form that's actually useful.

But of course, I want to test that bit before I start wiring it into place. There are, of course a whole slew of 'C' unit test frameworks out there, none of which I've used before, but really I wanted to just soak-test the algorithm quickly and simply, with a maximum of coverage and a minimum of distractions, so, I actually wanted a QuickCheck-equivalent tool that would "just work".

And this is where F#'s easy P/Invoke syntax (almost as simple as cutting and pasting out of the 'C' header file) and FsCheck were just the tools I was looking for -- write a property (or, in fact, a series of properties) that asserted that an input mapped by my function was the same as obtained using an equivalent .net library function already to hand as reference, invoke them with FsCheck.Check.Quick, and then TDD away, starting with the rough outlines as asserted by the early properties, and then filling in details as asserted by the later ones.


Sunday, February 24, 2013

Dear diary

After last week-end showing early promise of spring, with warm sunshine enough to be comfortable in a T-shirt outside, and thoughts turning to gardening, it's now gone back to grey and around freezing again, with three days of light snow flurries, though no perceptible settling.

At least the generally dry cold has meant that I've just had to wrap up well to continue the one day a week cycling to work (on average -- the 1st was washed out so I did the 7th and 8th). The downside of cycling in winter conditions has been picking up a lot of salty mud on the bike, and a chain that, despite drenching with GT-85, was often stiff in places after being parked a few days. That warm spell at least gave me chance to do a good clean and re-grease.

And the car is now at 8008 miles.

Recent Reading

Exaltations by Richard Garfinkle

A strange, almost indescribable, and most inventive meta-fiction, as a narrator of lives gets tangled, along with some of his subjects, into the machinations of the archetypal Quest. And as a tale about telling (or Telling), it scatters the seeds for a small library's worth of tales in passing. As airy ephemera, just to decorate one short scene, we are shown the three different-yet-similar versions of the Trojan War and the founding of Rome that spin from Paris' choice of which goddess to give the apple of Eris; and none of that is really important.

This time, the ending is satisfying if understated, rather than just fading out.

Star Carrier by Ian Douglas

Somewhat a change of pace, a good solid hard mil-SF trilogy that shows that the John Campbell school of SF still lives, as the US Space Force squares off against an ancient Galactic Empire, intent on subjugating the human race.

A solid page-turner of space battles and some seriously alien races in a purely relativistic setting with Alcubierre warps (handwaving away the engineering details involved).


Thursday, January 31, 2013

January round-up

Well, leaving work at around half-past five, the clear sky was still blue. Dark blue, admittedly, but definitely not night-black. The corner is well turned; and as an additional sign of progress, some time in the last few days, the snowdrops have come out in the front garden.

And I close the month with 178 miles cycled, and the promise of a wet Friday morning, which will break my run of cycle to work Fridays.


Monday, January 28, 2013

Numerology

Got home from work today with the car odo reading 7777. Given that the worst of the long nights is well behind us, that's looking to give another very low total for the year.