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.
Our first Christmas card, in 2009, was knocked-up quickly and printed only a couple of days before the Christmas posting deadline, but it kicked-off a tradition that’s grown every
year since.
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:
Last week, I helped stuff a little under 400 of these into envelopes and put stamps on them all for delivery to our UK customers. (Our international customers needed slightly
more-careful attention.)
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:
Bytemark sent us not only a Christmas card but a fancy-looking fruitcake! Thanks, Bytemark!
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.
Ben Foxall at Render Conf 2017 discusses the accompanying JSOxford Hackathon. Hey, who’s that near the top-right?
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”.
Three Rings’ developers hard at work at this year’s DevCamp.
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.
MegaMegaMonitor’s processor-intensive “Lists” feature sees the most benefit from Web Workers
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).
Other things I’ve been up to include Laser Duck Hunt, but that’s another story.
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.
TODO: funny caption
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.
Stylish hi-vis jackets for everybody!
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.
This lift shaft used to transport passengers between what are now the Northern and Victoria lines. Now it’s just a big hole.
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.
Twitter’s offices, by the way, are exactly as beautiful as you’d hope that they might be.
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.
I’m not sure I ‘get’ the idea of a sculpture of tweets, though. Wouldn’t a “live display” have been more-thematic?
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.
An annual tradition at Three Rings is DevCamp, an event that borrows from the “hackathon” concept and expands it to a week-long code-producing factory for the
volunteers of the Three Rings development team. Motivating volunteers is a very different game to motivating paid employees: you can’t offer to pay them more for working harder nor
threaten to stop paying them if they don’t work hard enough, so it’s necessary to tap in to whatever it is that drives them to be a volunteer, and help them get more of that out of
their volunteering.
This photo, from DevCamp 2011, is probably the only instance where I’ve had fewer monitors out than another developer.
At least part of what appeals to all of our developers is a sense of achievement – of producing something that has practical value – as well as of learning new things, applying
what they’ve learned, and having a degree of control over the parts of the project they contribute most-directly to. Incidentally, these are the same things that motivate paid
developers, too, if a Google search for studies on the subject is to believed. It’s just that employers are rarely able to willing to offer all of those things (and even if they can,
you can’t use them to pay your mortgage), so they have to put money on the table too. With my team at Three Rings, I don’t have money to give them, so I have to make up for it with a
surplus of those things that developers actually want.
At the 2015 DevCamp, developers used the solar eclipse as an excuse for an impromptu teambuilding activity: making a camera obscura out of stuff we had lying about.
It seems strange to me in hindsight that for the last seven years I’ve spent a week of my year taking leave from my day job in order to work longer, harder, and unpaid for a
voluntary project… but that I haven’t yet blogged about it. Over the same timescale I’ve spent about twice as long at DevCamp than I have, for example, skiing, yet I’ve managed
to knock out several blog posts on that subject. Part of that might be borne out of the secretive nature of Three Rings, especially in its early days (when
involvement with Three Rings pretty-much fingered you as being a Nightline volunteer, which was frowned upon), but nowadays we’ve got a couple of
dozen volunteers with backgrounds in a variety of organisations: and many of those of us that ever were Nightliner volunteers have long since graduated and moved-on to other
volunteering work besides.
Semi-cooperative horror-themed board games by candlelight are a motivator for everybody, right?
Part of the motivation – one of the perks of being a Three Rings developer – for me at least, is DevCamp itself. Because it’s an opportunity to drop all of my “day job” stuff
for a week, go to some beatiful far-flung corner of the country, and (between early-morning geocaching/hiking expeditions and late night drinking tomfoolery) get to spend long days
contributing to something awesome. And hanging out with like-minded people while I do so. I like I good hackathon of any variety, but I love me some Three Rings DevCamp!
The geocaches near DevCamp 2016 were particularly fabulous, though. Like this one – GC4EE6C – part of an Alice In Wonderland-themed series.
So yeah: DevCamp is awesome. It’s more than a little different than those days back in 2003 when I wrote all the code and Kit worked hard
at distracting me with facts about the laws of Hawaii – for the majority of DevCamp 2016 we had half a dozen developers plus two documentation writers
in attendance! – but it’s still fundamentally about the same thing: producing a piece of software that helps about 25,000 volunteers do amazing things and make the world a better place.
We’ve collectively given tens, maybe hundreds of thousands of hours of time in developing and supporting it, but that in turn has helped to streamline the organisation of about 16
million person-hours of other volunteering.
So that’s nice.
An end-of-day “Show & Tell” session at DevCamp 2016.
Oh, and I was delighted that one of my contributions this DevCamp was that I’ve finally gotten around to expanding the functionality of the “gender” property so that there are now more
than three options. That’s almost more-exciting than the geocaches. Almost.
Edit: added a missing word in the sentence about how much time our volunteers had given, making it both more-believable and more-impressive.
Note: this is the first of a two-part blog post. Part 2 can be read here. In this blog post, we look at some of our philosophy and values here at Three Rings CIC, and what it means
for us to focus our efforts on selling Three Rings to community enterprises, charities, and voluntary organisations, rather…
Three Rings routinely gets contacted by commercial organisations who feel that the rota/volunteer management system would benefit them, but
we don’t sell it to them. JTA wrote a pair of blog posts to explain why.
Lovely place, but after the recent rain, I’m glad I wasn’t driving here! Some colleagues and I from a voluntary organisation are having a
couple of “away days” in a house up the road, so I thought I’d spend my lunch break coming out and finding this cache. Glad I did! TFTC.
A week ago, Ruth pushed a baby out of her body, completely upstaging my birthday and, incidentally,
throwing all of our lives pretty much into chaos. Having gotten to the point at which she’d resigned herself to “being pregnant forever“, Ruth would have certainly been glad to have that stage over and done with, were it not for a long and painful labour followed by
a torturous and exhausting birth.
If Ruth looks like she’s about to die of exhaustion in this photo, that’s because that’s how she’s feeling.
There’s a lot that can be said about the labour: a 38-hour crescendo of Ruth gradually and repeatedly finding levels of pain and tiredness that each seemed impossible, until she reached
them. But Ruth has suggested that she might like to write a little about it herself, so I shan’t steal her limelight. What I can say is that I didn’t – and I don’t think that JTA, either – appreciate quite how emotionally draining the experience would be for the two of us, as well. There was a
strange sensation for me about twelve hours in: a sensation perhaps most-comprehensible by our friends who’ve done emotional support work. That was: after watching somebody I love so
much suffer so greatly for so long, I felt as if I’d somehow begun to exhaust whatever part of my brain feels empathy. As if the experience of supporting Ruth had served to drain me in
a way I’d never fully experienced before, like when you discover a muscle you didn’t know you had when it aches after an unusual new exercise.
Forcep-marks still visible, the newborn takes an extended nap in a crib alongside Ruth’s recovery-bed.
Of course, after the ordeal we got to take home a little bundle of joy, who continues – despite now having a perfectly fabulous name of her own – to be referred to as “tiny”, even
though her birth weight of 8lbs 12oz (that’s about 4kg, for those who – like me – prefer to think in metric) doesn’t really make that a very fitting nickname! Nor the amount of damage
she did to Ruth on the way out, which also might be ill-described as “tiny”! She’s also often referred to as “the poopmachine”, for reasons that ought not need spelling out.
I’m smiling, because I don’t yet know that, within seconds of this photo being taken, she’s about to fill her nappy.
My employer was kind enough to give me paternity leave, even though I’m not the biological father (JTA is; and he’s very-much still in the picture!). I’d looked at my contract and
discovered that the wording seemed to imply that I was eligible, stating that I’d be permitted to take paternity leave if I was about to become a father, or if my partner was about to
give birth, the latter of which seemed perfectly clear. To be certain, I’d wandered along to Personnel and explained our living arrangement, and they just had looks on their faces that
said “we’re not touching that with a barge pole; let’s just err on the side of giving him leave!” As a result, we’ve had all hands on deck to help out with the
multitudinous tasks that have suddenly been added to our lives, which has been incredibly useful, especially given that Ruth has been spending several days mostly lying-down, as she’s
been recovering from injuries sustained during the delivery.
If only we had some kind of way to set up a web-based rota of feeding, changing and comforting the little one…
Despite everything, we and the rest of the Three Rings team still managed to push the latest version into testing on schedule, though
fitting in time for bug-fixing is even harder than it would be were we at our “day jobs” during the daytimes! It’s not that our little poopmachine takes up all of our time, though she
does seem to take a lot of it, it’s simply that we’re all so tired! For the last few nights she’s been fussy about sleeping, and we’ve all lost a lot of rest time over keeping her fed,
clean, and feeling loved.
Who loves boob? Baby does! Also, everybody else in the house.
For all my complaining, though, what we’ve got here is an adorable and mostly well-behaved little bundle of joy. And when she’s not covered in poop, shouting for
attention, or spitting milk all over you, she’s a little angel. And I’m sure you’ll all be sick of hearing about her very soon.
Hot on the heels of our long weekend in Jersey, and right after the live deployment of Three
Rings‘ Milestone: Krypton, came
another trip away: I’ve spent very little time in Oxford, lately! This time around, though, it was an experimental new activity that we’ve inserted into the Three Rings
calendar: Dev Training.
We rented a secluded cottage to which we could whisk away our prospective new developers. By removing day-to-day distractions at work and home, our thinking was that we could fully
immerse them in coding.
The format wasn’t unfamiliar: something that we’ve done before, to great success, is to take our dedicated volunteer programmers away on a “Code Week”: getting everybody together in one
place, on one network, and working 10-14 hour days, hammering out code to help streamline charity rota management. Sort-of like a LAN party, except instead of games, we do
work. The principle of Code Week is to turn volunteer developers, for a short and intense burst, in to machines that turn sugar into software. If you get enough talented people
around enough computers, with enough snacks, you can make miracles happen.
I’m not certain that the driveway was really equipped for the number of cars we brought. But I don’t get on terribly well with laptops, so clearly I was going to bring a desktop
computer. And a second desktop computer, just in case. And that takes up a lot of seat space.
In recent years, Three Rings has expanded significantly. The test team has exploded; the support team now has to have a rota of their own in order to keep track of who’s
working when; and – at long last – the development team was growing, too. New developers, we decided, needed an intensive session of hands-on training before they’d be set loose on
real, production code… so we took the principles of Code Week, and turned it into a boot camp for our new volunteers!
New developers Rich, Chris, and Mike set up their development environments. Owing to the complexity of the system, this can be a long part of the course (or, at least, it feels that
way!).
Recruiting new developers has always been hard for us, for a couple of reasons. The first reason is that we’ve always exclusively recruited from people who use the system. The thinking
is that if you’re already a volunteer at, say, a helpline or a community library or a fireboat-turned-floating-museum or any of the other organisations that use Three Rings, then you already understand why what we do is
important and valuable, and why volunteer work is the key to making it all happen. That’s the bit of volunteering that’s hardest to ‘teach’, so the thinking is that by making it a
prerequisite, we’re always moving in the right direction – putting volunteering first in our minds. But unfortunately, the pool of people who can program computers to a satisfactory
standard is already pretty slim (and the crossover between geeks and volunteers is, perhaps, not so large as you might like)… this makes recruitment for the development
team pretty hard.
Turfed out of the Ops Centre and into the living room, JTA works on important tasks like publicity, future posts on the Three Rings blog, and ensuring that we all remember to eat at
some point.
A second difficulty is that Three Rings is a hard project to get involved with, as a newbie. Changing decisions in development convention, a mess of inter-related (though
thankfully not inter-depedent) components, and a sprawling codebase make getting started as a developer more than a little intimidating. Couple that with all of the things our
developers need to know and understand before they get started (MVC, RoR, TDD, HTML, CSS, SQL, DiD… and that’s just the acronyms!), and you’ve got a learning curve that’s close to vertical. Our efforts to integrate new developers
without a formal training program had met with limited success, because almost nobody already has the exact set of skills we’re looking for: that’s how we knew it was time to make Dev
Training Weekend a reality.
Conveniently, there was a pub literally just out the gate from the back garden of the cottage, which proved incredibly useful when we (finally) downed tools and went out for a drink.
We’d recruited three new potential developers: Mike, Rich, and Chris. As fits our pattern, all are current or former volunteers from organisations that use Three Rings. One of them had
been part of our hard-working support team for a long time, and the other two were more-new to Three Rings in general. Ruth and I ran a series of workshops covering Ruby, Rails, Test-Driven Development, Security, and so on, alternated between stretches of supervised “hands-on”
programming, tackling genuine Three Rings bugs and feature requests. We felt that it was important that the new developers got the experience of making a real difference, right from the
second or the third day, they’d all made commits against the trunk (under the careful review of a senior developer, of course).
Mike demonstrates test-driven development, down at the local pub: 1. touch cat 2. assert cat.purring? When the test fails, of course, the debugging challenge begins: is the problem
with the test, the touch, or the cat?
We were quite pleased to discover that all three of them took a particular interest early on in different parts of the system. Of course, we made sure that each got a full and
well-rounded education, but we found that they were all most-interested in different areas of the system (Comms, Stats, Rota, etc.), and different layers of development (database,
business logic, user interface, etc.). It’s nice to see people enthused about the system, and it’s infectious: talking with some of these new developers about what
they’d like to contribute has really helped to inspire me to take a fresh look at some of the bits that I’m responsible for, too.
Chris drip-feeds us fragments of his life in computing and in volunteering; and praises Ruby for being easier, at least, than programming using punchcards.
It was great to be able to do this in person. The Three Rings team – now about a dozen of us in the core team, with several dozen more among our testers – is increasingly geographically
disparate, and rather than face-to-face communication we spend a lot of our time talking to each other via instant messengers, email, and through the comments and commit-messages of our
ticketing and source control systems! But there’s nothing quite like being able to spend a (long, hard) day sat side-by-side with a fellow coder, cracking through some infernal bug or
another and talking about what you’re doing (and what you expect to achieve with it) as you go.
Chris, Mike and Rich discuss some aspect or another of Three Rings development.
I didn’t personally get as much code written as I’d have liked. But I was pleased to have been able to support three new developers, who’ll go on to collectively achieve more than I
ever will. It’s strange to look back at the early 2000s, when it was just me writing Three
Rings (and Kit testing/documenting most of it: or, at least, distracting me with facts about Hawaii while I was trying to write the original Wiki
feature!). Nowadays Three Rings is a bigger (and more-important) system than ever before, supporting tens of thousands of volunteers at hundreds of voluntary organisations spanning five
time zones.
I’ve said before how much
it blows my mind that what began in my bedroom over a decade ago has become so critical, and has done so much good for so many people. And it’s still true today: every time I think
about it, it sends my head spinning. If that’s what it’s done in the last ten years, what’llitdo in the next ten?