+++*

Symbolic Forest

A homage to loading screens.

Blog : Post Category : Dear Diary : Page 1

Motivational speaking

Or, principles and platitudes

It’s nearly a month now since I started the new job. It’s not been plain sailing all the way, of course, but it feels like it’s going reasonably well.

One aspect of coming in and taking over a team is that naturally I want to put my own flavour on things. I’m not saying I automatically think my ideas are always better than what the team already does, of course, but I do think firstly that new ideas can often trigger new thinking and give new energy to a team, and secondly, that some of the things are familiar to me are inevitably going to be new to my new colleagues, and things they might not have considered before. So, if I can bring in processes and practices that have worked well for me before, they may well work well in the new job too. If anything, as long as I can get the team behind them, they might be worth a try.

“As long as I can get the team behind them” is the key point there, of course; and it’s important to make sure we all feel we are a team and that we can all contribute to making change happen. I started writing down some Basic Good Principles along those lines. “We know we’re not perfect but we’re always improving,” for example. “We all review each other’s code, because everyone gets it wrong sometimes.” — I’m always surprised how many people don’t quite follow that one. “This document is not set in stone and is always changing, just as our processes are always changing and improving.” is another one, because when a particular practice or process turns into dogma is when it starts to impede you rather than work for you.

After a while brainstorming this stuff, writing down these sort of things, though, I started to get a bit of self-doubt. Is writing down these sort of principles really helpful, or were my notes just turning into meaningless platitudes in themselves? Was I at risk of accidentally coming up with the “Live, Laugh, Love” of software development?

Which of course, set me thinking. What is the “Live, Laugh, Love” of software development? Maybe if I deliberately came up with something quite so awful, quite so twee and nauseating, it would reduce the risk of ending up in that zone by accident?

I scribbled a few things down, crossed some out, shuffled some ideas around, and eventually came up with the following. I think it’s pretty good. By which I mean, I feel slightly disgusted with myself.

Code

Create

Care

One of our regular correspondents writes: Yeah, I think you might need a shower after that.

Most definitely. I felt dirty. If you ever find me giving that as advice to my team, please, tell me I need to take a holiday. All the same, if I was to pick a font and put it on a framed print, I wonder how many I could sell?

Flashback

Or, someone from the past

Regular readers might have noticed that there haven’t been many posts on here lately: the pressure of various other things that come before this place. The new job, for example, is one. Going to visit The Mother and help her with various bits of paperwork, another. I was up visiting The Mother the other day, as it happens. Not only did I also fit in a few nice long walks on her local beach, which will be the subject of another post another day, but I went down the pub and met up with this chap for lunch.

Wee Dave, allegedly

In the post about the new job, I mentioned how I used at one time to write lots of posts about my colleagues, giving them all false names and talking about some of the less controversial things some of them got up to. The chap in the picture is the guy referred to on this site as Wee Dave—not his real name of course. I called him Wee Dave because he succeeded Big Dave, although of course that wasn’t Big Dave’s real name either.

I hadn’t seen him for, ooh, it must be thirteen years nearly. We caught up, on and off, about various things that had happened through the intervening time: him on how strange it was, after I left that job, to stay on for a few more years in a business that was slowly shrinking as its owner wound down towards retirement, selling off a department here and shutting down one there, until in the end only Wee Dave and a couple of other people were left rattling around inside an empty warehouse. For my side, I told him all about some of the things I’ve worked on since, some of them interesting and some of them less so.

Naturally, we also reminisced about the people we worked with and that I wrote about here. “Say hi from me!” messages were passed over, and we talked about how few of the people there we actually kept in touch with, and quite what a strange place it was to work. Wee Dave ended up working with someone else from that place at his next job; unlike me, of course, disappearing to the far end of the country. Like me, though, he’s moved from general IT work into software development, partly because it’s far more interesting and challenging than setting up servers, rotating backup tapes and generally being a systems dogsbody. We shared the usual gripes that all software developers have, such as nobody really agreeing on what Agile is supposed to mean even though everyone claims they do it. That, indeed, is something I might have a long ramble about on here some time.

Thirteen years is a long time, from one meeting to the next. Of course, as I have to go up there and visit The Mother fairly regularly nowadays, I’m going to be in the area much more often in the future. Hopefully the gap until we next have a drink together won’t be quite so long.

Milestones

Or, how and how not to learn languages

I passed a very minor milestone yesterday. Duolingo, the language-learning app, informed me that I had a “streak” of 1,000 days. In other words, for the past not-quite-three-years, most days, I have fired up the Duolingo app or website and done some sort of language lesson. I say “most days”: in theory the “streak” is supposed to mean I did it every single day, but in practice you can skip days here and there if you know what you’re doing. I’ve mostly been learning Welsh, with a smattering of Dutch, and occasionally revising my tourist-level German.

My Welsh isn’t, I have to admit, at any sort of level where I can actually hold a conversation. I barely dare say “Ga i psygod a sglodion bach, plîs,” in the chip shop when visiting I’m Welsh-speaking Wales, because although I can say that I am wary I wouldn’t be any use at comprehending the response, if they need to ask, for example, exactly what type of fish I want. To be honest, I see this as a big drawback to the whole Duolingo-style learning experience, which seems essentially focused around rote learning of a small number of set phrases in the hope that a broader understanding of grammar and vocabulary will follow. I’ve been using Duolingo much longer than three years—I first used it to start revising my knowledge of German back in 2015. When I last visited Germany, though, I was slightly confused to find that after over a year of Duolingo, if anything, I felt less secure in my command of German, less confident in my ability to use it day-to-day. Exactly why I don’t now, but it helped me realise that I can’t just delegate that sort of learning to a question-and-answer app. If I want to progress with my Welsh, I know I’m going to have to find some sort of conversational class.

Passing the 1,000 days milestone made me start wondering if anyone has produced something along the same lines as Duolingo but for computer languages. In some ways it should be a less difficult problem than for natural language learning, because, after all, any nuances of meaning are less ambiguous. I lose track of the number of times Duolingo marks me down because I enter an English answer which means the same as the accepted answer but uses some other synonym or has a slightly different word order. With a coding language, if you have your requirements and the output meets them, your answer is definitely right. In theory it shouldn’t be too hard to create a Duolingo-alike thing but with this sort of question:

Given a List<Uri> called uris, return a list of the Uris whose hostnames end in .com in alphabetical order.

  1. uris.Select(u => u.Host).Where(h => h.EndsWith(".com")).OrderBy();
  2. uris.Where(u => u != null && u.Host.EndsWith(".com")).OrderBy(u => u.AboluteUri).ToList();
  3. uris.SelectMany(u => u.Where(Host.EndsWith(".com"))).ToList().Sort();

The answer, by the way, is 2. Please do write in if I’ve made any mistakes by being brave enough to write this off the top of my head; writing wrong-but-plausible-looking code is harder than you think. Moreover, I know the other two answers contain a host of errors and wouldn’t even compile, just as the wrong answers in Duolingo often contain major errors in grammar and vocabulary.

Clearly, you could do something like this, and you could memorise a whole set of “cheat sheets” of different coding fragments that fit various different circumstances. Would you, though, be able to write decent, efficient, and most importantly well-understood code this way? Would you understand exactly the difference between the OrderBy() call in the correct answer, and the Sort() call in answer three?* I suspect the answer to these questions is probably no.

Is that necessarily a bad thing, though? It’s possibly the level that junior developers often work at, and we accept that that’s just a necessary phrase of their career. Most developers start their careers knowing a small range of things, and they start out by plugging those things together and then sorting the bugs out. As they learn and grow they learn more, they fit things together better, they start writing more original code and slowly they become fluent in writing efficient, clean and idiomatic code from scratch. It’s a good parallel to the learner of a natural language, learning how to put phrases together, learning the grammar for doing so and the idioms of casual conversation, until finally they are fluent.

I realise Duolingo is only an early low-level step in my language-learning. It’s never going to be the whole thing; I doubt it would even get you to GCSE level on its own. As a foundational step, though, it might be a very helpful one. One day maybe I’ll be fluent in Welsh or German just as it’s taken me a few years to become fully fluent in C#. I know, though, it’s going to take much more than Duolingo to get me there.

* The call in answer 2 is a LINQ method which does not modify its source but instead returns a new enumeration containing the sorted data. The call in answer 3 modifies the list in-place.

What rhymes with...?

Or, a trip up a mountain

What do you do on a random Saturday with zero plans? Walk up a mountain? What an excellent suggestion, thank you! So yesterday morning I headed off for a gentle amble up to the summit of the Blorenge, the mountain that stands over the valley of the River Usk opposite the Sugar Loaf, and separates the urban environs of Blaenafon from the rural tranquility of Abergavenny and Crickhowell.

I say “a gentle amble” because it’s not a particularly strenous walk. It’s not like the sort of mountain where you park your car at the bottom and hike up a path so steep you’re almost too scared to come down again. The road over the mountains north from Blaenafon isn’t that much lower than the summit, only about eighty metres or so. The walk, therefore, is essentially a cross-moorland ramble more than anything else. Still, it’s definitely a good way to spend a morning.

When I thought of posting this, I was intending to turn it into something hugely informative: a long story full of history, geology, packed with information about the mountain. Unfortunately, I couldn’t quite work out how to get into it. It turned into something dry and meaningless, without flavour, when I wanted to write something evocative, something that would make you really feel you were on the mountain alongside me. What I do have, though, are pictures.

Keepers Pond

I started here at Keepers Pond; at least, that’s what it’s called on the signs. The Ordnance Survey map calls it Pen-ffordd-goch Pond—the head of the red path. Older, Victorian-era maps call it Forge Pond. The whole area around the Blorenge is filled with ancient industry: pits, hollows, old quarries and old mining tips, joined up by tracks that were once horse-drawn railways. Nowadays Keepers Pond is busy with wild swimmers, canoers and paddleboarders. The only ancient industry I found was one length of Victorian railway rail.

Bridge rail

Keepers Pond

Despite all its ancient industry, the Blorenge now is a quiet place, a place where the loudest sounds are of songbirds. There are many hikers, but they walk silently, conversations blown away by the wind. In the distance you can see all the way to the Severn Sea, in the far distance the coast of Somerset, but on Saturday the skies were grey, the clouds low, and sea, sky and distant land all merged into one continuous blue-grey palette.

The view to the sea

At the summit, naturally, there’s a trig point. On the ground, though, unmarked, a second benchmark was carved. An old one, by the look of its shape. Possibly, it is the benchmark labelled on an 1880s map as 1,832 feet.

Bench mark

1880s map

To the north, at first, the view was lost in cloud, leaving just impressions of a valley. Then, slowly, as I returned back to the car, it started to open up again. The valley of the Usk, the Black Mountains and the Sugar Loaf. The grand vista stretched before me, before the cloud came back down again once more.

The view

Changing jobs

Or, something new on the horizon

Back in the day, back in the mists of time when I first started writing this blog, I wrote quite a lot about work. If you go into the appropriate category there are many, many posts of slightly-disguised stories about the various characters I worked with: Big Dave, the cute one from the Accounts office, Wee Dave, Big Dave, the office tea fund lady, and, well, usually Big Dave. It all backfired somewhat in the end: it turned out that they all knew about it, and eventually the office tea fund lady complained I was being too sarcastic about her and I was asked to stop. I’m glad to some extent that I did it, but I’ve never risked being quite that open about the people I work with again.

It’s on my mind at the moment, though, partly because I’m changing jobs soon. I’m almost at my last day in my current position, and as part of that I’m considering, when I write to everyone to tell them how to keep in touch, giving them the address of this website in case they want to read it. If I did do that and you’re reading this, rest assured, there is absolutely nothing about you on here; and none of you have interesting slightly-fictionalised names either.*

There’s a new job starting for me very soon, and it’s going to be a whole new world: people I have no idea about yet, new things to learn, things to do, and hopefully worlds to change. I’m apprehensive about it, partly because I have no idea at all what is around the corner for me. But, moreover, this is an unusual change of job for me, because I genuinely have regrets about it. I really do love the people I work with, in a sense. Collectively, they’re one of the best groups of people I’ve been lucky enough to work alongside, and going forward into the unknown means leaving them behind. I’m only a small cog there, and my departure won’t really have any effect on the company as a whole, but they’ve been a big part of my life for the last few years.

Naturally, I’m not going to write about the new job either, although if we do anything particularly earth-shattering I might drop hints about it occasionally. When we do anything earth-shattering, of course, I mean. If I write about tech stuff on here, it won’t be anything that relates directly to work; it’ll be general tech stuff like “how the git version-control system works” or “tips I’ve learned from working in tech that are also useful in daily life”.

I’m scared, I admit, of exactly what’s around the corner. Soon, though, I’m going to find out. Whatever happens, it’s going to be an adventure, and I’m sorry I can’t bring all the people who currently work around me, with me on that adventure. I’m sure they’re going to do their own great things too, though. I’m sure they’re going to go out and change the world.

* If I do ever write about that workplace, which I doubt I will, I’ll just call everyone Matt. Most people there were called Matt at one point, so it’s probably right.

Warning: May Contain Granite

But without any other explanation

Back in March, I wrote about the colour of the Afon Ebwy, and what it might contain, based on a guide to camping I read as a child which included a dire warning about Alpine river water. A dire and entirely unexplained warning.

Well, visiting The Mother the other day, I managed to dig up the original book with the warning in it. So here, along with some other advice about where to pitch your tent, you go:

A dire warning

(for accessibility, the full text is transcribed further below)

The Plain People Of The Internet: So what does this thingy do, then? Turns you to stone? Petification?

I’m not sure that’s entirely what that means. And I’m still not entirely sure what it might lead to. A brief search of the internet has not thrown up any obvious risks it might lead to, only to people worried slightly about food prepared with granite mortars. But remember: if you’re going camping in a blizzard, make sure you fasten a flag to your tent so you can find it. Or, you know, maybe reschedule that trip?

The book, should you want to hunt down a copy, is Illustrated Teach Yourself Camping by Nigel Hunt—published 1969 by Brockhampton Press and withdrawn from library stock in 1985 at which point I assume it came to me. I’m not sure I’ll ever want to get rid of it, despite how dated and idiosyncratic almost every little bit of its advice now is. But not all of it.

That’s the end of the post proper; here’s a transcription of the photo above.

V is for View: try to pitch camp in the best scenery possible. Good for morale and memories … of silver tarns, valleys hazed with brass, gold rust tints, reeds framing the tent door, clouds trailing from the moon.

W is for Water—checking on siting camp. Is it drinkable? Muddy water need not harm you if it is just suspended mud; a crystal stream could be running over a dead sheep fifty yards upstream. Always boil water before drinking (or use purifying tablets). Never drink Alpine river water (contains powdered granite). Camp above a town or village for best water. Fish in river is usually a good sign.

X marks the spot in snow so you don’t lose the tent. Lash a readymade flag to tent so that you could find it again after a blizzard (or if you have to go outside in a blizzard). Note landmarks in remote places.

Yet another crafting project (part eight)

Or, series two, episode five

The latest crafting project was finished last week, after just over seven weeks of work. I was surprised how quickly I finished it, to be honest, considering how much more difficult it was compared to the previous cross-stitch project. I say “finished”: it still needs blocking and framing, which is always going to be the least interesting job in a project like this. Because I’m fairly pleased with how it looks, there’s a larger picture if you click through.

Bumblebee

I’ve already started the next cross-stitch project, which is going to be a much, much easier one; I will actually start a different series of posts for it this time. After only a week or so, it’s already well under way. At some point, too, I’ll pick up all those other projects that have been ongoing since some time last year.

The other posts in this series are part four, part five, part six and part seven.

Be aware. Be very aware

Or, words versus deeds (part one)

Welcome to Mental Health Awareness Week! Seven days put aside specially for you to feel extra Aware about mental health. Apparently, the theme of Mental Health Awareness Week 2021 is “Nature“, which is almost ironic given that the theme of National Gardening Week this year was “wellbeing”. It’s almost as if this sort of PR-driven Awareness Week is a continuous cycle devouring its own tail.

Of course, being negative about something like Mental Health Awareness Week is in some ways a bit like kicking a puppy, because Mental Health Awareness is most definitely a good thing. More people should be more aware of mental health, of the risks they face and the effects it has on all of us; and its sheer overwhelming prevalance in our society. Nevertheless, there is so much that needs to be done, so many ways in which mental health care in Britain is lacking and needs to be improved, that Mental Health Awareness is really just papering over the cracks.

Far too many businesses and organisations use Awareness as a means to an end in itself, a means to avoid directly addressing an issue. Raising awareness, in this way, becomes a way to avoid meaningful action. In some cases it even becomes counterproductive; encouraging employees to attend mental health awareness sessions that are only available out of hours or at lunchtimes, for example. It’s all very well saying “nature is beneficial to your mental health,” if you are in a position to get out into nature in a healthy way. It’s all very well saying it, but it’s no excuse for proper, preventative and easy-to-access mental health care, regardless of your situation. We do not have that, I can safely and flatly say, anywhere in the UK right now. Nowhere in this country has the access to mental health care that we all deserve, and very few of us receive sufficient support from our employers either—a phone counselling helpline and the occasional wellness event really just isn’t enough. If you want to be aware of something this Mental Health Awareness Week, be aware just how poorly served our national mental health is.

Casting the runes

And exercising my rights

The line was certainly longer than usual. More spaced out. Not that I knew what “usual” meant, of course. Yesterday was the first time I’d been to this polling station—the first time anybody had, I think, because the city council has reviewed and rebalanced and rejigged where they all are.

Oriau Agor

You could say I was lucky, really, moving house just a few months before a Senedd election. Getting to vote for my national representatives straight away, rather than having to wait a few years. It was all very well organised, to be honest. In general in my experience people in this part of Wales have been doing social distancing and similar much better than people in Bristol; here, for example, people will cross the street or walk into the middle of the road to avoid passing someone on the pavement, whereas I don’t think I’ve never seen that happen in Bristol. The queue was nicely spaced out, with most people wearing facemasks well before they reached the chapel door. A woman on the door was carefully regulating admission, making sure there were never more than three voters inside the station at once, one collecting their ballot papers and two actually voting.

So who to vote for? As I said a few months ago, British politics is in a fairly terrible state right now; a dangerous state, you could say, in which populist reactionary Kulturkampf seems to be winning out over any sort of belief in honesty or integrity. It’s a depressing sight, in a situation where however awfully the Prime Minister behaves, however angry he gets at the thought of being held to account, any attempts to try to hold him even slightly to account seem to fail to make any impact on the voting public.

However, the awful state of British politics is very much the awful state of English politics. In Scotland and Wales the situation is somewhat different. In the former reactionaries are desperately trying to stop the country following its natural path to independence; here in Cymru, the Labour government is in the strange position of dealing with one opposition whose main selling point seems to be pride in their own inability. “We want to be leaders,” they seem to be saying, “who know we’re no good at leading, who want to give all our power away.” It’s embarrassing, every time the Welsh Tory leader speaks, to hear just how much he shows off his own anxieties of inadequacy and incompetence. On the other front, support for independence is understandably growing but it doesn’t seem to translate into support for Plaid Cymru.*

At the time of publishing this post, only a handful of the Senedd results have been declared and it’s far too early to say what the final numbers for this Senedd will be once the regional papers have all been counted and seats allotted. Hopefully, though, we’ll continue to have a sensible and compassionate centre-left government, ruling for the benefit of everyone in the country. If only England was so lucky.

* As an aside, one thing that annoys me slightly is the habit the press have of abbreviating PC’s name to “Plaid”, because that just means “Party”.

The needle

Or, an appointment with the nurse

NO PHOTOGRAPHY” said the sign at the door in big, bold letters. So this post doesn’t have any images in it; no photographs, at any rate.

It’s curious, the banality that major events can sometimes carry with them. The extent to which a world-changing event becomes a matter for paperwork. I walked through the chicane of barriers to the door of the leisure centre; was given hand sanitiser and had my ID and my temperature checked, before joining the end of the first queue.

Many, clearly, had gone before me. Almost three-quarters of the adult population of Wales have now had their first vaccination dose. For everyone who does it, though, it’s a significant step. Each queue, each desk that takes your name and details and gives you a different leaflet to read. I’m not sure quite why there had to be two separate desks to take the same details each time, with a new queue between each one.

My local vaccination centre is in the local leisure centre, its sports hall converted into a production line for vaccinating the masses. After the final check of who you are and where you live, you enter a long, fat holding chicane, fat to make sure each strip of the queue stays well apart. Plenty of time to appreciate the details of the production line arrangements. The hall split half and half between the stations for giving jabs, and the seating for patients to sit and wait afterwards. At the side of the room, desks for the Clinical Controller and the Admin Controller. Each of the numbered trestle tables had two nurses, two seats for patients, two computers and two big yellow sharps disposal bins. Whenever a nurse is free, they hold up their hand, and the nurse at the head of the queue directs the patient where to go, which route to follow to avoid stepping through someone else’s exhaled breath.

After you’ve been injected, after giving your name and details yet another time, you are moved over to the waiting area, to sit to ensure no serious side effects ensue in the first few minutes after the jab. Sitting in a sports hall, at a well-spaced chair, staring at a slowly-moving clock on the wall: naturally, it feels more like some sort of school exam than anything else. Possibly one of those dream-logic exams from years after you have left school, where there is no desk and no exam paper ever comes. Of course, in an exam, you still can’t sit and read your phone. I counted the minutes around the dial of the clock, turned my chair the regulation ninety degrees to flag it for disinfection, and walked out ready for the rest of the day.