In the Navel of the Moon

Question: which country’s name translates literally as “In the Navel of the Moon”?

I recently came across this fascinating map which gives the literal translation of every country name. Some are very pedestrian, but some are fascinating. (I’m not sure why it’s on a site dedicated to comparing credit cards, but other places I’ve found it give them the credit. If this is an SEO thing, I’m happy to reward them for producing decent content…) Most appropriately, Canada apparently means “The Village”…

Eurovision Bingo (yet again)

Some people say that all Eurovision songs are the same. That’s probably not quite true, but there is perhaps a hint of truth in the suggestion that some themes tend to recur from year to year. Hence, I thought, Eurovision Bingo.

I wrote some code to analyse a directory full of lyrics, normally those from the previous year of the competition, and work out the frequency of occurrence of each word. It will then generate Bingo cards, with sets of words of different levels of commonness. You can then use them to play Bingo while watching this year’s competition (which is on Saturday).

There’s a Github repo, or if you want to go straight to pre-generated cards for this year, they are here.

Here’s a sample card from the 2014 lyrics:

fell cause rising gonna rain
world believe dancing hold once
every mean LOVE something chance
hey show or passed say
because light hard home heart

Have fun :-)

Fractional Desktop Scaling

In my last computer upgrade, I went from a Lenovo X240 (screen resolution: 1366×768 on a 12.5″ display) to an X1 Carbon 4th Gen (screen resolution: 2560×1440 on a 14″ display). As it turns out, at its native resolution the Ubuntu Unity desktop on the X1 Carbon is simply too small to read. This wasn’t a problem until recently as I did most of my computing with an external monitor. But now I find getting up 2 flights of stairs difficult, I’m doing a lot more using the built-in panel, and experiencing this issue. Fortunately, X11 as shipped in Ubuntu 16.04 LTS has some sort of support for desktop scaling. Unfortunately, it’s a bit rudimentary. I use a scaling of 1.38, but still find that some dialogs look shonky and I have to do extra adjustment for some apps. But it’s just about workable.

I am considering an upgrade to Ubuntu 18.04 LTS where, famously, they have switched from Unity back to GNOME. GNOME does not support fractional scaling with X11 – you can only scale in whole numbers. It does do it with Wayland, experimentally, but Ubuntu decided (after giving it a go in the test releases) not to make Wayland the default for 18.04. I’d like to try this out, but the instructions I found online to do so don’t work with the LiveUSB version – so I’d have to take the plunge before being able to even try it.

So it seems I get the choice of 1x (everything too small) or 2x (everything too big). This is a significant loss of functionality; the X1 Carbon comes with screen options of 2560×1440 and 1920×1080, and it perversely makes me think I would have been better off getting the one with the lower resolution screen! As it is, using 2x gives an effective resolution of 1280×720, which is lower than the resolution of the X240 I used to use. The loss of vertical height is a particular pain point.

Can any reader of my blog suggest a way to solve or mitigate this problem? Is there a “compact” theme for GNOME that still looks like Unity? Are there ways of setting particular apps, like Firefox, Thunderbird or LibreOffice, to use less space or have a default zoom?

Coffin Fits

One fairly common need when someone dies is a coffin. There are various sorts on the market, from bamboo eco-coffins to embarrassingly-tasteless photo wraparounds to heavy walnut ones with carved panelling, which seems rather overkill for something which is to be observed once and then buried underground. I was discussing this with my father when he remembered that he actually has several sets of what are called coffin “blanks” stored away in a roof space. A coffin blank is basically an uncustomised coffin – the top and bottom are full size, waiting to be cut to fit, and the set includes the necessary extra pieces (sides and trim) to make it up.

When the local joiner in our home village retired 15+ years ago (and the jobs of joiner and undertaker were the same job for many centuries) he had several sets of blanks spare, and my father obtained these from him and stored them. They are made of elm, which is a traditional material for coffins but is now almost never used since Dutch Elm disease devastated the British population of elm trees in the 70s and 80s.

We found a joiner here in Loughborough with experience of making up coffins (although he says this is the first time he’s been commissioned to do one by the eventual occupant!). We had the blanks shipped to him, and I sent him my height and shoulder width. On Wednesday, we went to view the result. Elm is rather a “wibbly” wood, as can be seen from the first photo below, which means it’s relatively hard to work but also means it has lovely grains which come up beautifully when polished. Without further ado:

We’re very pleased with the results – it’s a lovely job.

Eggshells and Frailty

In the past seven years or so I’ve got into creating decorated blown eggs, first with a traditional Ukranian wax-resist method called Pysanka, and later with an EggBot. It takes a few hours to do a pysanka so, since starting a family, finding enough time is difficult, but Easter is often both an appropriate moment and a period with enough space. Last year I taught William (then 5) and this year I’ve taught John (now 5). Here are the results from this weekend:

John’s is on the left, then William’s, then mine. I pencil out the designs on the eggs for them, in William’s case according to his specification, and then they try and follow them with the heated wax pen (called a kistka), with varying levels of dexterity and success. Still, even a shaky hand produces quite beautiful results, I think.

One thing which appeals to me about this art is that it produces artifacts which are both beautiful and very fragile – like human beings. Paul writes, using a similar analogy: “But we have this treasure in jars of clay to show that this all-surpassing power is from God and not from us.” The treasure is the gospel, and we are the jars of clay – weak vessels who can do nothing by themselves but can, with God’s help, nevertheless powerfully shine God’s light into the world.

Recently, I was reading a sermon on death by Charles Spurgeon, a noted 19th century London preacher, sent to me by a friend. I’ve not read much or any of his work before; he is certainly a man who can turn a phrase. His text was: “The last enemy to be destroyed is death“. As I increasingly bump into reminders of my own fragility and frailty, and know that my own encounter with it is not so far away, is was good to be reminded that for those with the hope of eternal life, our attitude to death is entirely transformed. The second verse of a famous Easter hymn, which I hope to have sung at my burial, sums it up well:

Lo, Jesus meets us,
Risen from the tomb;
Lovingly he greets us,
Scatters fear and gloom;
Let the Church with gladness
Hymns of triumph sing,
For her Lord now liveth,
Death hath lost its sting.

Thine be the glory,
Risen, conquering Son;
Endless is the victory
Thou o’er death hast won!

Spurgeon comments:

And since that memorable victory, every day Christ is overcoming death, for He gives His Spirit to His saints and having that Spirit within them they meet the last enemy without alarm. Often they confront him with songs. Perhaps more frequently they face him with calm countenance and fall asleep with peace. I will not fear you, death, why should I? You look like a dragon, but your sting is gone! Your teeth are broken, oh old lion, why should I fear you? I know you are no more able to destroy me, but you are sent as a messenger to conduct me to the golden gate wherein I shall enter and see my Saviour’s unveiled face forever!

Happy Birthday, Mozilla

Mozilla is 20 today. Most of what can be said about that has been ably said by others, some of whom have been involved for even longer than the 18 years I managed. Asa and I started at roughly the same time, but at least Mitchell, Myk and dmose have been around longer and are still involved. (Apologies if I’ve forgotten someone.)

As most of you know, I probably won’t be around to see much more of it, but (this will seem trite if it’s not to seem big-headed!) Mozilla is much more than one or even a few people. There will always be a Mozilla as long as there is an Internet and people who care about people on it. In that vein, let me also say that I’m absolutely delighted with the final outcome of the worldview project. The four items in the addendum to the Manifesto are admirable goals to aim for, and ones I endorse wholeheartedly.

Lunar Construction

A thought: the moon has water ice and a dusty surface (regolith). Could you use a material akin to Pykrete (a composite of ice and wood pulp about as strong as concrete, and stable at -15C) to create building blocks for lunar habitations in lava tubes, where the temperature is stable and at the correct range for the Pykrete-alike to also be stable (-20C)? Making it would be trivial and only involve raw materials which were present – melt water in lunar daytime, add dust and stir, freeze it at lunar night into whatever shape you want. Even if the habitat were built from blocks, it could be made airtight by spraying the inside with pure water to create a further thin and complete layer of ice. Or, you could just inflate something inside it.

Poetic License

I found this when going through old documents. It looks like I wrote it and never posted it. Perhaps I didn’t consider it finished at the time. But looking at it now, I think it’s good enough to share. It’s a redrafting of the BSD licence, in poetic form. Maybe I had plans to do other licences one day; I can’t remember.

I’ve interleaved it with the original license text so you can see how true, or otherwise, I’ve been to it. Enjoy :-)

Copyright (c) <YEAR>, <OWNER>
All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions 
are met:

You may redistribute and use –
as source or binary, as you choose,
and with some changes or without –
this software; let there be no doubt.
But you must meet conditions three,
if in compliance you wish to be.

1. Redistributions of source code must retain the above copyright 
   notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright 
  notice, this list of conditions and the following disclaimer in the 
  documentation and/or other materials provided with the distribution.
3. Neither the name of the <ORGANIZATION> nor the names of its 
   contributors may be used to endorse or promote products derived 
   from this software without specific prior written permission.

The first is obvious, of course –
To keep this text within the source.
The second is for binaries
Place in the docs a copy, please.
A moral lesson from this ode –
Don’t strip the copyright on code.

The third applies when you promote:
You must not take, from us who wrote,
our names and make it seem as true
we like or love your version too.
(Unless, of course, you contact us
And get our written assensus.)

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 
FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 
BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 
ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 
POSSIBILITY OF SUCH DAMAGE.

One final point to be laid out
(You must forgive my need to shout):
THERE IS NO WARRANTY FOR THIS
WHATEVER THING MAY GO AMISS.
EXPRESS, IMPLIED, IT’S ALL THE SAME –
RESPONSIBILITY DISCLAIMED.

WE ARE NOT LIABLE FOR LOSS
NO MATTER HOW INCURRED THE COST
THE TYPE OR STYLE OF DAMAGE DONE
WHATE’ER THE LEGAL THEORY SPUN.
THIS STILL REMAINS AS TRUE IF YOU
INFORM US WHAT YOU PLAN TO DO.

When all is told, we sum up thus –
Do what you like, just don’t sue us.

Feeling Fraudulent

I sometimes feel a bit like a fraud.

Some of the time – when I climb stairs, or get into a coughing fit which takes 5 minutes to recover from, or can’t eat – it’s clear that I’m not well. But at the right time of day with the right pills, I can sit in a chair and chat to a friend and feel entirely normal. And so when my wife fetches me a drink from the kitchen, or someone else hastens to answer the door, I feel I want to say “No, please, I can do that for myself.” When I ordered a blue badge (a marker for your car allowing you to use disabled parking spaces), I felt that there must be many who are more deserving of one than I am.

But these feelings of wellness and fitness are really an illusion. Normality already includes having to deal with bouts of severe coughing, tiredness requiring multiple naps per day, back pain, and shortness of breath. And, while various symptoms have come and gone (I had oedema in my legs, then didn’t, and now do again but less strongly) the general trend is clear if you look dispassionately. The fact that I can have short periods where none of the symptoms are bothersome doesn’t mean they aren’t there. So why is my heart so keen to believe that the feelings of wellness are real?

As God would have it, we had a sermon today at The Crowded House, Loughborough (on Romans 3:27-31) which touched on this. The root of these desires is the sin of pride. I want to feel independent, in control, autonomous, competent, normal. That makes me feel good. But God has made us to be dependent beings – primarily on him but also on each other – and to find our contentment in him, not in our health or strength. And it seems he is teaching me to depend on him more, both by having to pray for the strength to make it through each day, but also having to graciously accept the fact that I am ever more dependent on others.

In a verse which has been important to me ever since I was diagnosed 18 years ago, God promises that in all things he will “work for the good of those who love him, who have been called according to his purpose” (Romans 8:28). In other words, I have cancer for my own good. Here is yet another way, the latest in a line of many, where God is demonstrating that he is using it to make me, slowly and sometimes painfully, more like Christ, for his glory.

To Planet Mozilla Readers

This is a quick note addressed to those reading this blog via a subscription to Planet Mozilla. Following my stepping back from the Mozilla project, posts to this blog are unlikely to feature Mozilla-related content in the future, and will instead be about, well, what it’s like to be dying :-) I therefore won’t be syndicating them. If you wish to keep reading what I write, you may want to take a direct subscription. Here’s my direct feed.

Going Home

I’m going home.

As some of my readers will know, my cancer (read that link if the fact I have cancer is new to you) has been causing difficulty in my liver this year, and recently we had a meeting with my consultant to plot a way forward. He said that recent scans had shown an increased growth rate of some tumours (including the liver one), and that has overwhelmed my body’s ability to cope with the changes cancer brings. The last two months have seen various new symptoms and a reasonably rapid decline in my general health. The next two months will be more of the same unless something is done.

After some unsuccessful procedures on my liver over the course of this year, the last option is radiotherapy to try and shrink the problem tumour; we are investigating that this week. But even if that succeeds, the improvement will be relatively short-lived – perhaps 3-6 months – as the regrowth rate will be faster. If radiotherapy is not feasible or doesn’t work, the timelines are rather shorter than that. My death is not imminent, but either way I am unlikely to see out 2018. In all this, my wife, my children and I are confident that God is in charge and his purposes are good, and we can trust him and not be afraid of what is coming. We don’t know what the future holds for each of us, but he does.

We’ve taken this news as a sign to make some significant changes. The most relevant to readers of this blog is that I am stepping away from Mozilla so I can spend more time focussed on the most important things – my relationships with Jesus, and with my family. I love my work, and God has blessed my time at Mozilla and enabled me to do much which I think have been good for the Internet and the world. However, there are things in life which are much more important, and it’s now time for others to take up those projects and causes and carry them into the future. I have every confidence in my colleagues and fellow Mozillians that this will be done with the greatest care and skill. The CA program, MOSS, and Mozilla’s policy work are all in very good hands.

If you pray, please pray that we would make wise decisions about what to do when, and that we would live through this process in a way that brings glory to Jesus.

In case it’s of interest, we have set up a read-only mailing list which people can join to keep informed about what is going on, and to hear a bit about how we are handling this and what we would like prayer for. You can subscribe to the list using that link, if you have a Google account. If you don’t you can still join by emailing lightandmomentary+subscribe@googlegroups.com.

“Though outwardly we are wasting away, yet inwardly we are being renewed day by day. For our light and momentary troubles are achieving for us an eternal glory that far outweighs them all. So we fix our eyes not on what is seen, but on what is unseen, since what is seen is temporary, but what is unseen is eternal.” — 2 Cor 4:16-18.

If I have done anything good in 18 years at Mozilla, may God get all the glory.

Talk Scheduling At Conferences

I’m at FOSDEM this weekend; it’s a large conference. They seem to find one or two new rooms to use every year, and it now sprawls across most of the ULB campus in Brussels.

It has rather surprised me that several otherwise experienced and excellent devroom organizers (naming no names) have organized their rooms on the mistaken belief that switching between speakers, and having people exit and enter the room, happens instantaneously. It doesn’t.

If you schedule your talks in 25 or 55 minute slots (including Q&A) instead of 30 or 60 minute slots, you benefit yourselves, your audiences, and the whole conference in the following ways:

  • Attendees don’t feel they have to leave the talk in your room before the end in order to be sure of catching the beginning of the next talk somewhere else, thereby disrupting the talk, missing the last bits of content (perhaps the all-important summary) and missing the chance to thank the speaker.
  • Attendees can enter and leave the room without feeling they are being rushed or have to be totally silent. (“Please be quiet while entering and leaving/during the Q&A” really doesn’t work.)
  • Room organizers have time to encourage people to move to the middle, or other compression strategies, and pack their rooms for maximum benefit.
  • Whoever is helping you with audio-visual can switch over laptops and get microphones moved over without disrupting the end of the previous talk or making the next speaker start late.
  • Attendees released from your room do not turn up at a different room 5 minutes after the start, thereby disrupting their talks. Love your neighbour.

If you don’t do this, and schedule in 30 minute slots, what happens is that people actually still get 25 minutes or less to speak, as changeovers still have to happen, but the speaker ends up starting late, rushed and grumpy and no-one really knows when they need to finish. 30 minute slots are an illusion. 10 minute/5 minute/2 minute/Time’s Up! cards are a very useful addition to this system, so the speaker knows exactly where they are. If they don’t finish in time and have to be cut off, then they need to be gently encouraged to prepare better next time.

It may be that 5 minutes is not long enough for people to get from one side of the conference campus to the other, and so the issues are not totally suppressed. But there’s only so much you can do, and giving people 5 minutes is much better than giving them 0 minutes.

Transparent Suitcases Hack

When our boys (now nearly 6, nearly 5 and nearly 3) first got old enough that it made sense to pack them each a bag when we went away, we found it hard to find something suitable. We ended up using some transparent plastic rectangular zippered bags with handles, which had originally held mattress covers when on sale in a shop. These were just the right size, and it turns out that having a transparent suitcase for kids is really rather handy for a number of reasons.

However, mattress cover bags were not really designed for reuse and, despite the liberal application of clear Duck tape and cardboard patches, soon they were definitely showing the wear and tear.

All their birthdays are in a 40-day period over Feb/March, so we decided we’d get them all transparent suitcases this year. After all, someone must sell those, right? Turns out, not. Most people apparently don’t want strangers peering at their dirty underwear in the airport security queue. Funny, that.

So I came up with a hack. Start with a “Really Useful” box of an appropriate size. (You’re better off with an original; these are much imitated but never bettered.) We used their 21 litre box; you may want larger or smaller. Such a box can be carried by the sides, but not with one hand, and the span is a bit tough for the younger ones. So we need something else.

Remove any ugly sticky labels the shop may have attached, and drill a couple of holes half way up one side at the edges of the central section.

I find drilling plastic is a slightly uncertain art; if you use too much speed you’ll melt it, and if you press too hard you can crack it, or get stuck swarf. I did get swarf stuck around the holes so they weren’t clean, but mostly cleaned that up with a little light Dremel-ing.

Next, you need some plastic pipe – wide enough that it’s comfortable to hold, but narrow enough that the handles don’t protrude too far or that little hands can’t get around it. I bought this, as being cheap and about the right size. Cut it to a length around 4cm short of the hole-to-hole distance.

Then, you need some plastic rope – I bought 6mm plastic rope (and drilled hole sizes to match) but anything strong enough to take the weight will do, as the kids aren’t holding it directly. (We could have done that, but it’s not very easy on the hands.)

Plastic rope is cheap and strong, but has the disadvantage of fraying ends, of not taking knots well, and I didn’t want to try melting it to itself. After a bit of thought, it turned out that electrician’s tape bound tightly round stops the ends fraying, and the same technique can be used to join a length of rope to itself. (My wife pointed out, as I proudly displayed the finished work, that I should have sourced some white electrician’s tape. Oops.)

So cut the rope to a generous length (3 times the hole-hole distance), bind round one end and trim, and place through the holes and the pipe. Then, inside, pull the rope tight so each loose end almost reaches the opposite hole, mark the spot, bind round again and cut at the top of the bind. You now have nicely-finished rope and a handle – the only remaining job is to stop it coming out of the holes.

Loosening it off some (you need enough play for kids to get their hands under the handle, and if it’s too tight you can’t get the roll of electrician’s tape round behind it) put a small piece of tape to join the two ends at the point half way between the holes. Having this makes it much easier to do the wind-round binding without the rope slipping.

Then, starting at once end with a few turns on top of itself, spiral-wind the electrician’s tape around both pieces, proceeding from one loose end to the other, making sure to pull it tight all the time. The result is a binding which I hope will support the weight of any sensible thing they are considering putting in there – and, if it turns out not, I can pull the tape off and try something else.

The finishing touch is to personalise them – it was harder than I thought to find name stickers of the right size, as most are too tiny (designed for books or small objects) or too large (designed for walls). But Amazon came to my rescue, and I ordered 3 of these (well actually, I ordered another item from the same company, but that’s what they sent me, and it worked perfectly!), which come in pairs, and I used their favourite colours. I placed one on the lid and one just above the handle.

Being sure to apply the decal from one side to the other rather than from sides to middle (to avoid unsightly creases), I lined them up, stuck them on, rubbed them down hard, removed the backing paper and Bob is your mother’s brother.

As well as doubling as under-bed storage when not travelling, and being neat and eye-catching when out and about, these also stack nicely in the car, easing the complex problem I face whenever the whole family has to fit everything they need for a week in our Ford Galaxy. I hope they enjoy using them for many years :-) Cost per suitcase: ~£15.

Meeting a Slow Doom

This directory provides a branchless, mov-only version of the classic DOOM video game. This is thought to be entirely secure against the Meltdown and Spectre CPU vulnerabilities, which require speculative execution on branch instructions.

You look at the example screenshot, and see it’s basically the game’s initial view. A bit lazy on the part of the author? Well, no…

The mov-only DOOM renders approximately one frame every 7 hours, so playing this version requires somewhat increased patience.

MOSS Q4 2017 Update

We’ve just published MOSS’s Q4 2017 update, bringing you up to speed on what’s going on in the world of MOSS (Mozilla Open Source Support, our program for giving back to the open source and free software community).

The application deadline for the next round is at the end of this month. If you know a project that Mozilla is using somehow that could do with some financial help, or a project that’s working on something in line with Mozilla’s mission and goals, please do encourage them to apply.