Some fellow volunteers and I are on an “away weekend” in the forest; this morning before our first meeting I lead a quick expedition of both established and first-timer geocachers
around a few of the local caches.
Coordinates didn’t put us very close: perhaps because of tree cover interfering with the GPSr; we needed to decipher the hint. The hint was good, though, and I went straight to the
dino’s hiding place, trampled past a few fresh nettles, and retreived it. Excellent caches; we loved these!
Some fellow volunteers and I are on an “away weekend” in the forest; this morning before our first meeting I lead Ga quick expedition of both established and first-timer geocachers
around a few of the local caches.
Geoff pounced right onto this one, stunning some of our less-experienced ‘cachers who’d never considered the possibility of a container like this!
Some fellow volunteers and I are on an “away weekend” in the forest; this morning before our first meeting I lead a quick expedition of both established and first-timer geocachers
around a few of the local caches.
Our tagalong 5-year-old and 2-year-old co-found this one; they were pretty much an ideal size to get to the GZ. This was the last of the three caches they attended; they went back to
their cabin after this but most of the adults carried on.
Some fellow volunteers and I are on an “away weekend” in the forest; this morning before our first meeting I lead a quick expedition of both established and first-timer geocachers
around a few of the local caches.
So THAT is what a Parasaurolophus looks like! Swiftly found by our tame 5 year-old, who was especially delighted to pull a dinosaur out of its hiding place.
Some fellow volunteers and I are on an “away weekend” in the forest; this morning before our first meeting I lead a quick expedition of both established and first-timer geocachers
around a few of the local caches.
After a bit of an extended hunt (this dino was well-hidden!) we found this first container; delighted by the theming of this series; FP awarded here for the ones we found.
Like Automattic (Matt’s company), Three Rings has also long been ahead of the curve from a “recruit
talent from wherever it is, let people work from wherever they are” perspective. Until I was recently reading (more than I had previously) about the way that Automattic “works” I was
uncertain about the scalability of Three Rings’ model. Does it work for a commercial company (rather than a volunteer-run non-profit like Three Rings)? Does it work when you make the
jump from dozens of staff to hundreds? It’s reassuring to see that yes, this kind of approach certainly can work, and to get some context on how it does (in Automattic’s case,
at least). Nice video, Matt!
As a child, I wanted to be a botanical researcher. I loved being outdoors and used to visit the botanical gardens near my house all the time. My grandma inspired me to change my
mind and helped me get interested in science. She lived in the country and we would look at the stars together,…
As a child, I wanted to be a botanical researcher. I loved being outdoors and used to visit the botanical gardens near my house all the time. My grandma inspired me to change
my mind and helped me get interested in science. She lived in the country and we would look at the stars together, which led to an early fascination in astronomy.
Unusually for the era, both my grandmothers had worked in science: one as a lab technician and one as a researcher in speech therapy. I have two brothers, but neither went
into technology as a career. My mum was a vicar and my dad looked after us kids, although he had been a maths teacher.
My aptitude for science and maths led me to study physics at university, but I didn’t enjoy it, and switched to software engineering after the first year. As soon as I did my
first bit of programming, I knew this was what I had been looking for. I like solving problems and building stuff that works, and programming gave me the opportunity to do
both. It was my little eureka moment.
…
Wise words from my partner on her workplace’s blog as part of a series of pieces they’re doing on women in technology. Plus, a nice plug for
Three Rings there (thanks, love!).
Some fellow volunteers and I were staying at nearby Wroxall Abbey following our Christmas party this weekend and I took the opportunity to walk out here between breakfast and check-out
to hunt for this cache. Passing GC5RZB4 (and a herd of cows) on the way I was soon able to spot the tell-tale signs of a cache hiding place and soon had the container in my hand.
I love to see a good location with a week maintained cache; nice work CO, and TFTC!
Staying in nearby Wroxall Abbey for a Christmas party with a nonprofit I volunteer with, I took the opportunity to wander out to find this cache and nearby and GC1H3PK this morning
between breakfast and check-out. I was watched suspiciously by herd of cows nearby. TFTC.
Staying at the conference centre down the road I got up early this morning to come out and find this cache before breakfast. After a little while struggling to make out the letters on
the gravestone in the dim November morning light I was eventually able to find the cache. Don’t understand the checksum, though! SL, TFTC.
For the last eight winters, we at Three Rings have sent out Christmas cards – and sometimes mugs! – to our clients (and to special
friends of the project). The first of these was something I knocked up in Photoshop in under an hour, but we’ve since expanded into having an official “company artist” in the form of
our friend Ele who each year takes the ideas that the Three Rings volunteer team have come up with and adapts them into a stunning
original design that we’re proud to show off to our clients.
This year’s card is still winging its way to some of our more-distant customers, as Three Rings is used in six countries, and so it doesn’t yet appear on our gallery of previous cards. But here’s a sneak peek:
For most of Three Rings life, our server’s been hosted by the awesome folks at Bytemark. We had a brief dalliance with Amazon Web Services for a while but had a seriously unsatisfying experience and we eventually came crawling back to Bytemark (complete with a
conveniently-timed Valentines’ Day message expressing our love for them and our apologies for our mistake). What I’m saying is that we’ve made a habit of sending seasonal greetings to
our buddies at Bytemark – and this Christmas was no different – but what surprised us was what we received from them this year:
Not only did Bytemark send us a delightful Christmas card (with a pixel-art picture of Sana literally burning the logs) but they included a fabulous-looking fruitcake. Thanks
for bringing a little bit of extra cheer to our Christmas, Bytemark!
Maybe it’s because I was at Render Conf at the end of last month or perhaps it’s because Three
Rings DevCamp – which always gets me inspired – was earlier this month, but I’ve been particularly excited lately to get the chance to play
with some of the more “cutting edge” (or at least, relatively-new) web technologies that are appearing on the horizon. It feels like the Web is having a bit of a renaissance of
development, spearheaded by the fact that it’s no longer Microsoft that are holding development back (but increasingly Apple) and, perhaps for the first time, the fact that the W3C are
churning out standards “ahead” of where the browser vendors are managing to implement technical features, rather than simply reflecting what’s already happening in the world.
It seems to me that HTML5 may well be the final version of HTML. Rather than making grand new releases to the core technology, we’re now – at last! – in a position where it’s possible
to iteratively add new techniques in a resilient, progressive manner. We don’t need “HTML6” to deliver us any particular new feature, because the modern web is more-modular and
is capable of having additional features bolted on. We’re in a world where browser detection has been replaced
with feature detection, to the extent that you can even do non-hacky feature detection in pure CSS, now, and
this (thanks to the nature of the Web as a loosely-coupled, resilient platform) means that it’s genuinely possible to progressively-enhance
content and get on board with each hot new technology that comes along, if you want, while still delivering content to users on older browsers.
And that’s the dream! A web of progressive-enhancement stays true to Sir Tim’s dream of universal interoperability while still moving forward technologically. I’ve no doubt
that there’ll always be people who want to break the Web – even Google do it, sometimes – with single-page Javascript-only web apps, “app
shell” websites, mobile-only or desktop-only experiences and “apps” that really ought to have been websites (and perhaps PWAs) to begin with… but the fact that the tools to make a genuinely “progressively-enhanced” web, and those tools are
mainstream, is a big deal. If you don’t think we’re at that point yet, I invite you to watch Rachel Andrews‘ fantastic presentation,
“Start Using CSS Grid Layout Today”.
Some of the things I’ve been playing with recently include:
Intersection Observers
Only really supported in Chrome, but there’s a great polyfill, the Intersection Observer API is one of those technologies that make you say “why didn’t we have that
already?” It’s very simple: all an Intersection Observer does is to provide event hooks for target objects entering or leaving the viewport, without resorting to polling or
hacky code on scroll event captures.
What’s it for? Well the single most-obvious use case is lazy-loading images, a-la Medium or Google
Image Search: delivering users a placeholder image or a low-resolution copy until they scroll far enough for the image to come into view (or almost into view) and then
downloading the full-resolution version and dynamically replacing it. My first foray into Intersection Observers was to take Medium’s approach and then improve it with a Service Worker in order to make it behave nicely even if the user’s Internet connection was unreliable, but
I’ve since applied it to my Reddit browser plugin MegaMegaMonitor: rather than hammering the browser with Javascript the plugin now waits
until relevant content enters the viewport before performing resource-intensive tasks.
Web Workers
I’d briefly played with Service Workers before and indeed we’re adding a Service Worker to the next
version of Three Rings, which, in conjunction with a manifest.json and the service’s
(ongoing) delivery over HTTPS (over H2, where available, since last year), technically makes it a Progressive Web App… and I’ve been
looking for opportunities to make use of Service Workers elsewhere in my work, too… but my first dive in to Web Workers was in introducing one to the next upcoming version of MegaMegaMonitor.
Web Workers add true multithreading to Javascript, and in the case of MegaMegaMonitor this means the possibility of pushing the more-intensive work that the plugin has to do out of the
main thread and into the background, allowing the user to enjoy an uninterrupted browsing experience while the heavy-lifting goes on in the background. Because I don’t control the
domain on which this Web Worker runs (it’s reddit.com, of course!), I’ve also had the opportunity to play with Blobs,
which provided a convenient way for me to inject Worker code onto somebody else’s website from within a userscript. This has also lead me to the discovery that it ought to be possible
to implement userscripts that inject Service Workers onto websites, which could be used to mashup additional functionality into websites far in advance of that which is typically
possible with a userscript… more on that if I get around to implementing such a thing.
Fetch
The final of the new technologies I’ve been playing with this month is the Fetch API. I’m not pulling any punches
when I say that the Fetch API is exactly what XMLHttpRequests should have been from the very beginning. Understanding them properly has finally given me the confidence to stop
using jQuery for the one thing for which I always seemed to have had to depend on it for – that is, simplifying Ajax requests! I mean, look at
this elegant code:
Whether or not you’re a fan of Javascript, you’ve got to admit that that’s infinitely more readable than XMLHttpRequest hackery (at least, without the help of a heavyweight library like
jQuery).
So that’s some of the stuff I’ve been playing with lately: Intersection Observers, Web Workers, Blobs, and the Fetch API. And I feel all full of optimism on behalf of the Web.
Despite being only a short journey away (made even shorter by the new railway station that appeared near by house
last year), I rarely find myself in London. But once in a while a week comes along when I feel like I’m there all the time.
On Friday of last week, Ruth, JTA and I took one of the London Transport Museum‘s Hidden London tours. Back in 2011 we took a tour of Aldwych Tube Station, probably the most well-known of the London Underground’s disused stations, and it was fantastic, so we
were very excited to be returning for another of their events. This time around, we were visiting Euston Station.
But wait, you might-well say: Euston station isn’t hidden nor disused! And you’d be right. But Euston’s got a long and convoluted history, and it used to consist of not one but
three stations: the mainline station and two independent underground stations run by competing operators. The stations all gradually got connected with tunnels, and then with a
whole different set of tunnels as part of the redevelopment in advance of the station’s reopening in 1968. But to this day, there’s still a whole network of tunnels underneath
Euston station, inaccessible to the public, that are either disused or else used only as storage, air vents, or cable runs.
A particular highlight was getting to walk through the ventilation shaft that draws all of the hot air out of the Victoria Line platforms. When you stand and wait for your train you
don’t tend to think about the network of tunnels that snake around the one you’re in, hidden just beyond the grills in the ceiling or through the doors at the end of the platforms.
I shot a video (below) from the shaft, periodically looking down on the trains pulling in and out below us.
No sooner were we back than I was away again. Last Saturday, I made my way back to London to visit Twitter’s UK headquarters in Soho to help the fantastic Code First: Girls team to make some improvements to the way they organise and deliver their Javascript, Python and Ruby curricula. I first came
across Code First: Girls through Beverley, one of Three Rings‘ volunteers who happens to work for them, and I’ve become a fan of their work.
Unfortunatley my calendar’s too packed to be able to volunteer as one of their instructors (which I totally would if it weren’t for work, and study, and existing volunteering, and
things), but I thought this would be a good opportunity to be helpful while I had a nominally-“spare” day.
Our host tried to win me over on the merits of working for Twitter (they’re recruiting heavily in the UK, right now), and you know what – if I were inclined towards a commute as far as
London (and I didn’t love the work I do so much) – I’d totally give that a go. And not just because I enjoyed telling an iPad what I wanted to drink and then having it dispensed minutes
later by a magical automated hot-and-cold-running-drinks tap nearby.
And that’s not even all of it. This coming Thursday, I’m back in London again, this time to meet representatives from a couple of charities who’re looking at rolling out Three
Rings. In short: having a direct line to London on my doorstep turns out to be pretty useful.