+++*

Symbolic Forest

A homage to loading screens.

Blog : Posts from November 2020

Alternate reality

When you can't use Google as a verb

Many people are concerned just how much corporate technological behemoths have embedded themselves into our lives nowadays. A few years ago now I spent a few days in meetings with some Microsoft consultants at their main British headquarters, and I entertained myself by counting the number of times I saw a pained look on the face of a Microsoft staffer having to physically stop themselves using “Google” as a verb. “We’ll just do a…” wince “…internet search for that.”*

The people I feel sorry for now, though, are the producers of TV shows. Yes, a particular website or app might be key to your plot, it might be vital to the everyday life of your characters, but you can’t use it, because no doubt its owners will be greatly upset if you do. So, for TV, thousands of working hours are spent producing mockup apps and mockup websites for the characters to use on-screen.

An award surely has to go to the producers of Australian police drama Deep Water, a rather good drama series about gay hate murders in Sydney. Their murder victim was obviously going to be using apps such as Grindr to meet guys, but they couldn’t show it on-scrren: so, they invented—or, I assume they invented—an app called Thrustr for him to use instead. Now there’s a name that’s even better than the real thing.

What really made me want to write about this, though, is the Netflix series The Stranger, released earlier this year. Its not-Google-honest website is rather tasteful and well-designed, the Google screen layout but with a logo of interconnecting blue dots and lines that could, just about, plausibly be a Google Doodle that isn’t quite legible enough to make out the words of. When it comes to apps, though: they have a whole bevy of them, to fulfil whatever magical device the plot needs at the time. A phone-tracking app that uses some sort of dark-mode map layer for Extra Coolness. An app to allow the organisers of illegal raves to, well, organise illegal raves anonymously, but that also tells you where its anonymous users are. Of course, all these tracking apps always track people perfectly. They always have a mobile data signal and a good GPS fix, even in the city centre. The map view always updates exactly in real time: I hate to think how much battery power they must be using up sending out all those continual location updates.

The Stranger is set in a genericised North-West England: Cheshire and Lancashire with the place-names filed off. Because of that, it has the usual issues any sort of attempt at a “generic landscape” always has when it uses very recognisable places. The characters somehow manage to catch a through train, for example, from the very recognisable Stockport station to the equally recognisable Ramsbottom station, despite one being a busy main-line junction and the other being a silent, deserted heritage line. Talking of trains, there was also a rather fun chase sequence around Bury Bolton Street yard, although the joyless side of me has to say that you really shouldn’t crawl under stock the way they were doing. Nor can you in real life lean against the buffers of the average Mark 1 carriage and stay as clean as the characters did. Anyway. I was saying how unrealistic the GPS-tracking apps on the characters’ phones were: the one that really made me laugh out loud was when one character says that, as a given car registration is a hire car, he’ll be able to hack into the hire firm’s vehicle telemetry and get its current location in the time it takes to boil a kettle.

Admittedly, I have specialist knowledge here, because I used to be in charge of the backend tech for one particular vehicle telemetry provider’s systems. But the whole idea: assuming that they can see from the VRN which hire firm owns the car, they then have to know which telemetry firm that particular hire firm uses, and then know how to get in. Unless you do happen to have a notebook of where every car hire firm gets their telemetry services, and then have backdoors or high-level login credentials to every system, which I suppose is just about plausible for a private investigator, you’re stuffed. Getting in without that? Whilst someone makes you a cup of tea? Not feasible, at all.

Yes, maybe I’m applying unreasonable standards here for keeping my disbelief suspended. It seemed to be a particularly bad example, though, of technology either being magically accurate or terribly broken according to the requirements of the plot at any given time. Does the plot need you to know exactly where someone’s phone is? Bang, there you go. Does it need a system to be breakable on demand within seconds? All passwords to be immediately crackable as long as the right character is doing the cracking? No problem. Oh well: at least their not-Google looked relatively sensible.

* They all used Chrome rather than Edge or IE, though. Things might be different now Chromium Edge is out.

Astronomy

The art of not seeing very much (as yet)

The other day I mentioned The Children have just turned seven. As The Child Who Likes Animals has spent quite a lot of time in recent months liking space instead, watching Brian Cox’s The Planets innumerable times, memorising lists of dwarf planets, Kuiper Belt objects, centaurs and so on, and learning the difference between a red dwarf, a white dwarf and a brown dwarf. We decided, therefore, that it might be a nice idea for The Mother to get him a telescope, as a suitably grandmothery sort of present. Not trusting The Mother to judge what might be suitable, I reached out to a few astronomers I know for recommendations, and found something that both fell into The Mother’s budget and had a reasonable chance of imaging the rings of Saturn. The number of times I’ve looked down a telescope myself before can be counted on the fingers of one hand; but if I was age seven, was given a telescope, and found that it couldn’t show the rings of Saturn I’d be terribly disappointed.

Of course, I messed up to a certain extent. I’m sure I achieved my objectives, but there’s no way really that The Child Who Likes Animals would be able to actually point the telescope at something himself. So, this is going to be the sort of present that I set up in the garden on dark nights; find out what he wants to point it at; try to point it; and then he looks down the eyepiece. Naturally, it becomes a family event, with The Child Who Likes Fairies also wanting to get involved.

As I said, I’ve hardly ever been near a telescope before, despite having books and books on astronomy when I was that age myself. So, on the few nights we’ve had so far when the cloud has at least been broken rather than blanketing, it has gone something like this: I set up the telescope outside. A child asks to point it at something, in a brief pause for breath whilst running around with crazed excitement. If it is an easy thing—the moon, say—I contort myself to the right angle to try to see through the finder, point the telescope and roughly nudge it about until we can see what we’re looking for, all the time with said thing bouncing up and down in the eyepiece as children bounce up and down on the decking. A child then steps up, instinctively grabs the telescope and knocks it out of alignment, and we go back to square one.

Eventually everyone has seen what we’re looking at, and one of them will name something else. I try to work out how to find it, with my laptop and a copy of Stellarium. I fail to find it, and end up sawing the telescope back and forth across the sky desperately trying to find the thing they have asked for. I try again with the finder, drape myself over the telescope and twist it around until the red finder dot is in just the right place; then look through the eyepiece and see nothing but haze. I look up at the sky again, and my target patch of sky, clear a few moments before, is suddenly covered in thick cloud. This cycle repeats a few times, until we either look at the moon again instead, or The Children get bored and go back into the house.

So far, we’ve successfully looked at the moon, Mars, and some random patches of sky that have lots of stars in but nothing I can actually put a name to. Oh well. I’m sure at some point we will get the hang of it, even if I end up becoming the main telescope user myself. It certainly has shown me just how non-empty an empty-looking patch of sky actually is, even living in a hazy, foggy, light-polluted city like this one. I’ll let you know if I manage to find anything less easy to spot. Or, indeed, if we do ever see the rings of Saturn.

The changing mood and the changing season

Or, something of a lull, and the strange ways in which memory works

This blog has been relatively quiet this week. Clearly, finally completing that in-depth work-related post about inclusion and diversity on Monday must have taken it out of me. There are a number of things waiting in the to-be-written queue, but all of them are the sort of posts that deserve effort and energy and research putting into them, and this week has been too tiring a week for that sort of thing.

I like to think of myself as not a superstitious person, but the truth is that there are an awful lot of Dear Diary things I could have posted but didn’t because, frankly, if I do then it might jinx them and it might not happen. There are some things that have been lurking on my horizon for a few months now, but I don’t want to think about them too much in case one thing goes wrong and everything collapses. A couple of weeks ago it all looked to be going badly; this week it’s been going better, but I still don’t want to put too much effort into hoping everything will work out in the end in case that is all effort wasted.

The Children turned seven recently, which inevitably leads into thoughts of “this time seven years ago I was doing X” variety. At least, it does if you’re me: I think I picked the tendency up from my father, who would do it at the slightest potential reason. It’s strange to think that The Children were not always exactly as they are now. I don’t know how your memory works, but when I think back to my memories of people I knew long ago my brain tends to fill the image with them as they are now, not as they actually were then, which is very confusing when I think about things that happened, say, at school. It’s almost disconcerting to see things like school group photos and think “we all looked like children!” and similarly it’s strange to look at photos of The Children as babies and see that, yes, they actually looked like babies and not the children they are now. No doubt when they’re adults I will look back on how they were now and be surprised they looked like children.

A couple of weeks ago I posted about the season changing. Enough leaves have dropped from the trees now that if I look carefully I can see trains passing the end of the street again, rather than just foliage. The skies are dark at night, and on clear nights filled and sparkling with autumn constellations. I go outside, look up at Vega, at Mars, at the cross of Cygnus, and wonder what will happen when we have turned around some more.

The mighty chopper

Or, an eye for detail

Regular readers will know I’m the sort of person who always has an eye for odd little details, odd little quirks of history or mechanical gubbins. You’ll probably be unsurprised to know that this has never really changed much.

Last week I posted photos of my first ever trip to the Ffestiniog Railway, from back when I was still in primary school. I can still remember being intrigued by the “chopper” couplings the Ffestiniog has used as standard since the 1950s (and to some degree since the 1870s—naturally the full details are online). I can’t say it was the first time I had seen them, but it was the first time I had been close enough to notice they were a novelty to me, enough for me to want to take photographs of how they work. So, naturally, I did.

Coupling on Car 100

This is my grainy 110-film photo of the coupling on FfR Car 100. On the far left is its electrical connector, with a hood to shelter it. In the middle is the coupling: a central buffer with a hinged hook fitting into a slot, and a weight (the “bob”) hanging below. Bear in mind that when I took this picture I didn’t know any of this; I was just intrigued by this peculiar metal prong. I’ve learned the technical details since.

Car and loco coupled together

After the loco (Mountaineer) coupled up to the train, this is what it looked like. The hook on each coupling is swung down into the opposite slot, but initially it doesn’t drop all the way; it’s blocked by a camshaft attached to the bob. The bob is swung to one side until the hook drops into its running position, and then swung back; the bob’s camshaft locks the hook into place and prevents it lifting. After that, you can attach the brake hoses.

Nowadays, of course, there are probably a thousand videos of how this works online, that you can go and watch whenever you like. I’m quietly pleased with myself, though, that back in the day when you couldn’t do that, this is the sort of thing I felt worth recording on film.

Feeling at home

On inclusion and diversity

Serious posts are hard to write, aren’t they. This article has been sitting in my drafting pile for a couple of months, and has been sitting around taking up space in my head for most of the past year. It’s about an important topic, though, one that is close to me and one that I think it’s important to discuss. This post is about diversity and inclusion initiatives, in the workplace in general, and specifically in the sort of workplaces I’ve experienced myself, so it will tend to concentrate on offices in general and tech jobs in particular. If you work in a warehouse or factory, your challenges are different and I suspect in many ways a lot harder to deal with, but it is not something I am myself in a position to speak on.

It’s fair to say, to start off with, firstly that my career has progressed a lot since I first started this website; and also that attitudes to diversity and inclusion have changed a lot over that time too. I’ve gone from working in businesses where you would have been laughed at for suggesting it at all mattered or should even be considered, to businesses that care deeply about diversity and inclusion because they see that it is important to them for a number of reasons. What I still see a lot, though, are businesses that start with the thought diversity is important, so how do we improve it, and I think that, frankly, they have things entirely the wrong way round. If instead they begin from a starting point of inclusivity is important, so how do we improve it diversity will naturally follow. If you try to make your workplace an inclusive workplace from top to bottom, in across-the-board ways, then you will create a safe place for your colleagues to work in. If your colleagues feel psychologically safe when they are at work, they’ll be more productive, you’ll have better staff retention rates, and people will actively want to work for you.

The Plain People Of The Internet: But I’ve always felt happy at my desk, chair reclined, just being me, anyway. It’s not something we have trouble with!

But this is where the inclusivity part really comes in to it. There are always going to be some people who feel at home wherever they are. They’re usually the people who are happy in their own identity, which is very nice for them. They’re also the people who expect everyone else to go along with what they want, which is less nice. The people who say “well I have to put up with things in my life, so I don’t see why we should make life easier for everyone else,” and “they’re just trying to be different because they want the attention.” These are the people who are going to have to have their views challenged, in order to make the office round them a truly inclusive place for everybody. At the same time, though, you can’t ignore these people, because inclusivity has by definition to include everybody. You have to try to educate them, which is inevitably going to be a harder job.

For that matter, you always have to remember that you don’t truly know your colleagues, however well you think you do—possibly barring a few exceptions such as married couples who work together, but even then, this isn’t necessarily an exception. You don’t know who in your office might have a latent mental health issue. You don’t know who might have a random phobia or random trauma which doesn’t manifest until it is triggered. Whatever people say about gaydar, you don’t know the sexuality of your colleagues for certain—they might have feelings they daren’t even admit to themselves, and the same goes for gender identity and no doubt a whole host of other things. You can never truly know your colleagues and what matters to them, or who they really are inside their heads.

The Plain People Of The Internet: So now you’ve gone and made this whole thing impossible then!

No, not at all; it’s just setting some basic ground rules. In particular, a lot of companies love “initiatives” on this sort of thing, but they tend to be very centralised, top-down affairs: “we’ll put a rainbow on our logo and organise a staff party”. Those aren’t necessarily bad things to do in themselves, but I strongly believe that to be truly successful, inclusivity has to come from the ground upwards. The best thing you can have is staff throughout the organisation who care about this sort of thing, if they can be given the opportunity to gather people around them, educate them about the importance of the whole thing, and push for change from the bottom upwards.

The Plain People Of The Internet: Aha, I get you now! Get all the minorities together, shut the boring white guys out of the room, and get the minorities to tell us how to sort it out!

No! Firstly, the people who you need to get to seed things off are the people who are passionate about it, moreover, people who are optimistic that their passion is going to have an affect. That applies whoever they are, too. If you want to be inclusive, you must never shut out anyone who is passionate about the topic—with certain exceptions that we’ll come to—because, firstly, inclusivity is for everyone, and everyone has a part to play in it. Secondly, as I said above, you don’t know your colleagues: you don’t know why any particular colleague is passionate about it.

Deliberately making inclusivity and diversity the responsbility of the minorities on your staff is, I’d go far to say, nearly always a counter-productive option. For one thing, you want to find passionate people to drive this forward: you shouldn’t automatically assume that everyone who doesn’t fall into a particular “minority” bucket in some way will be passionate about diversity and inclusion, or even that such a bucket exists. Equally, you need to be very wary of some people who will ride the concept as their own personal hobby-horse, and insist that they, personally, should be the arbiter of what diversity means. There are people out there who will insist that because they are disadvantaged in one way or another, they have the right to determine the meaning of diversity and inclusion in any organisations they are part of. These are the sort of people who conflate inclusivity across the whole office with advantage for themselves personally; they will insist that inclusivity and diversity efforts be focused solely on aspects that benefit them, and will attempt first to narrow the scope of diversity and then to gatekeep what is allowed inside. If you’ve followed my logic about diversity flowing from inclusivity and not vice-versa, you’ll immediately see that this is a nonsense. The reason the type of person I’m talking about doesn’t see it as such, is that they see it, even if they don’t realise it, as being something solely for their own benefit in one way or another.

The Plain People Of The Internet: Now you’re not making sense again! Find people that are passionate but not too passionate? You’re just looking for a team of nice milky liberals who won’t really do anything!

It’s difficult, really, to talk about hypotheticals in this sort of area, partly because every organisation and every situation genuine is very different to another. I’m confident, though, that when you do start getting involved in this sort of area it’s straightforward to see the difference in the two different kinds of passion I’m talking about: passion to improve everybody’s lives, or passion to get more for themself. Sadly, the latter are often much louder, but it’s often very clear: they will be the people saying that they know Diversity and can precisely define it, because they are themselves more Diverse than anybody else so know exactly what needs to be done. The people who say “I’m not really sure what diversity is, but I know we need to get everyone’s input on it” are the people that you want on your team.

The Plain People Of The Internet: So what was the point of all this again? Just what are our team trying to do here?

Make your workplace a more inclusive place, whatever that takes. Make sure that nobody feels excluded from social events. Try to make everyone feel that they are on the same broad top-level team. Make sure that “soft” discriminatory behaviour is discouraged,* and that people are educated away from it: for example, teach people to use non-discriminatory language. Make sure your interview and hiring processes are accessible and non-biased—this is particularly important at the moment when doing remote interviewing, because requiring the candidate to pass a certain technical bar is inevitably going to exclude people. But, most importantly, when your passionately inclusive pathfinders of inclusivity come up with ideas and want to get them adopted, make sure they have the support and resources to actually get that done.

The Plain People Of The Internet: And then you’ll magically be Diverse with a capital D?

There’s a lot more to it than that, of course. People have written whole books on this stuff; I can hardly squeeze it all into a single blog post. But if you can find people to transform your office into a more inclusive space—a space where everyone can feel safe and at home—then you are one step along the road. Actually generating that atmosphere: another step. After that, your office will become somewhere that a diverse range of people feel comfortable working in, because it is a fully inclusive space and because everyone across that range can feel at home working there. And then your management can start being proud of being a diverse organisation, rather than deciding that you are going to be Diverse but not knowing how to get there on more than a superficial level.

The Plain People Of The Internet: Feel at home at the office? Pshaw! Terrible idea!

I agree with you completely that the office shouldn’t be your home, “working from home” notwithstanding. It’s still important to separate the two and not hand over your entire soul to the capitalist monster. Nevertheless, much as you might hate working for a living, if you do have to work for a living, it’s important for you to try to be as happy as you can be within that context. Finding a workplace that can be a safe place for you to exist in, whilst not being your home, is one way to go about that. It’s not really what this post is supposed to be about, but it’s a digression it might be a good idea to explore at some point.

This post is getting a bit long now, judging by the way my scrollbar is stretching down the screen. It’s a personal view. I don’t pretend to know all the answers, and it’s not a field I claim to be an expert in, but it’s a suggestion towards a sensible approach to take. Diversity is important to all of us, because we are all diverse: none of us is any more diverse than the other, and none of us has the right to judge another’s lifestyle as long as it causes others no harm.** The key thing, to my mind, is accepting that genuine diversity does require acceptance and appreciation of this; and that if you want to become diverse, becoming inclusive first is by far the easiest approach.

The dichotomy really, I suppose, is between organic growth and forced construction. Consider, if you’ll forgive me another painful analogy, your workforce as the shifting sands of a beach. If you build a Tower of Diversity and Inclusion on top of those shifting sands, it will fall, or get swallowed up by the dunes. If you let a Forest of Inclusion and Diversity grow up through the sand, it will hold it together and make it more cohesive. I know it’s a bit of a daft analogy really, but hopefully it helps you see what I’m trying to painfully and slowly explain. If you try to be inclusive, and if you turn your workplace into a safe space for everyone to be themselves, the latter is hopefully what you will be able to grow.

* I’m working on the basis here that “hard” discriminatory or offensive language or behaviour is immediately called out and shut down, which I know isn’t always the case in all workplaced.

** I have cut a whole section out of a previous draft of this post, discussing how to spot people who use diversity as a shield to do horrible things. Hopefully, in most situations, it’s not something people have to worry about, but it does happen. It’s a shame that we do have to worry about these situations, but they do happen. Going round again, though, if an inclusive workplace is one where people feel safe to be themselves, it’s also one where hopefully people feel safe to report any transgressions and make sure they are dealt with. I have, sadly, heard of people who use diversity-styled language to try to defend themselves against accusations of abuse or of sexually predatory behaviour, and I’m not surprised there are some who think that diversity is some sort of loophole in that regard, because some people will always take whatever advantage they can.

In the footsteps of Fox Talbot (part three)

Or, some cardboard engineering

Another weekend, more work on the papercraft pinhole camera kit I’ve slowly been working on. If you haven’t seen the previous installments, part one is here and part two is there.

This time, I spent most of the time on some of the cosmetic detailing. I glued on a whole set of fake camera controls: shutter button, wind-on lever, timer lever and lens mount release button. They’re not the neatest job, but they’re only there to make the thing look like a camera, so it doesn’t really matter if I don’t get them quite right. More important is the film take-up spool, which I’m trying to assemble very carefully and slowly because, fundamentally, it has to work mechanically as well as look good.

Camera so far

On that photo you should be able to make out that the take-up spool looks as if it has an extra lamination. That’s a strip of card added and only glued at the ends. The idea is, the leader is slipped between that strip and the main part of the take-up spool, and that (with a few turns of the spool) that should be enough to hold the film in place. I’m intrigued how well it’s going to work.

The other part I made up that is fundamental to the camera’s workings is the camera back

Camera back

Given that if the back comes off at the wrong time the whole thing is useless, and that the integrity of the back relies on four small corner tabs, I thought it worth holding the whole thing together with foldback clips whilst the glue did its thing. Normally I’d just rely on a good firm squeeze between finger and thumb, but this seemed rather more important. I suspect I’ll end up taping the back on with something like washi tape when the camera is loaded in any case, because it’s going to be a fine line between a back that’s too tight to go on properly and a back that’s so slack it falls off.

I’m not sure this camera was really designed to run more than one film through it anyway: as I said last time, the instructions tell you to take the whole thing to your local photography lab rather than try to unload the film yourself. Which would seem a bit of a shame, because how are you supposed to learn from your mistakes with a new camera, and learn how it behaves, if you basically have to throw it away before you get the results back? Hopefully it will cope with at least a couple of films before the back falls apart.

Technical advice post of the week

Or, what to do with a particular compilation problem

This week, Microsoft released .NET 5, and it reminded me I’ve been meaning to post a piece of technical advice that has bitten me a few times but which doesn’t seem to be very well-documented or well-described online. It’s a piece of technical advice, though, that will slowly be fading away in relevance because it’s advice on .NET Framework; so I thought I should put it up here whilst it is still helpful to people.

(Note for non-technical readers, who are used to photos of trains and cemeteries and probably won’t find this post very interesting: .NET 5 is the latest version of .NET Core, which is the replacement for .NET Framework, hence Microsoft have dropped “Core” from the name to try to make that clearer. .NET 5 is the successor to .NET Core 3, because there were many very popular versions of .NET Framework 4.x which were and are heavily used for a long time, so Microsoft thought reusing the number 4 would be just Too Confusing. Are you less confused now?)

This problem, too, is pretty much specific to people working in teams. It only happens (well, I’ve only seen it happen) if all of the following apply:

  • you’re working in parallel in a team, on a complex system, probably that has solutions containing a relatively large number of projects
  • you’re using the MSBuild tool as part of your continuous integration pipeline, deployment process, or similar
  • you’re using Git as your version control system

The symptoms of the problem are:

  • You can open the solution in Visual Studio and build it with no problems
  • When MSBuild tries to build the solution, it immediately errors, claiming that the solution file has a syntax error on line 2.

Spoiler: there is no syntax error on line 2.

Another note for non-technical readers who are still here: what you might think of loosely as a programming project, in any kind of .NET flavour, has a primary file called a “solution” (its name ends in .sln). The solution contains one or more “projects”; each project contains code. Visual Studio can open your solution file and your project files and turn the projects into some sort of output product, such as a program, a website, a code library or whatever. However, you don’t have to use Visual Studio to do this. .NET Framework has a program called MSBuild that does the same thing. If you have automated your build process (which if you’re working in a team you probably should) and you’re using .NET Framework, your build process will probably use MSBuild to do its work. What happens here is one of a range of problems called “well it worked on my machine”. A developer has code that seems to be in a happy, working state, they upload their code to the team’s server, the automated build process runs, and the automated build process falls over and says it doesn’t work.

The cause of the problem is: two people on the team have added different projects to the solution, in parallel. Now, Git is often quite good, when two people change code at the same time, at either working out how to merge the changes together, or at least, asking you to sort the situation out manually. This, though, is a situation where Git does the wrong thing and breaks your solution file—but it breaks it in a way that only MSBuild notices, and that Visual Studio happily ignores.

The reason this happens is down to the syntax of solution files. The part which lists the projects they contain looks a bit like this:

Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Important.Project.Library", "Important.Project.Library\Important.Project.Library.csproj", "{E6FF8E04-A41D-446B-9F8A-CCFAF4B08AD2}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Important.Project", "Important.Project\Important.Project.csproj", "{9A7E2940-50B8-4F3A-A535-AB6220E6CE3A}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Important.Project.Tests", "Important.Project.Tests\Important.Project.Tests.csproj", "{68035DDB-1C24-407C-B6B3-32CEC1D964E5}"
EndProject

Don’t worry too much about what each line says: the important thing to spot is that each project has a pair of lines: a Project(...) = line that contains the important information, and an EndProject line that, er, doesn’t. The projects are in a fairly arbitrary order, too; on your screen in Visual Studio they get sorted alphabetically, but that isn’t reflected in the file, where they are in the order they were added in.

The real cause of the problem is that Git doesn’t know that every Project... has to be followed by an EndProject. So, imagine two people have added new, different projects to the solution file. Git sees this and thinks: Alice has added Project... to line 42, and Bob has added a different Project... to line 42. So I’ll make those into lines 42 and 43. Alice added EndProject to line 43, and so did Bob, so I’ll just pop that in as line 44. So you get this:

Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Alices.Library", "Alices.Library\Alices.Library.csproj", "{0902233A-3857-4E5E-99F4-54F3F5E695E5}"
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Bobs.Library", "Bobs.Library\Bobs.Library.csproj", "{56ABE9BB-1373-43D3-B1C5-1526E443AD73}"
EndProject

Visual Studio is quite unpeturbed by this. MSBuild, however, doesn’t like it at all. It reads the file, realises there’s a Project without a matching EndProject, and falls over. For some reason, it always complains that the error is on line 2, even though it isn’t anywhere near line 2.

The fix for this, as you might have guessed, is to open up the solution file in a text editor and manually enter that missing EndProject line after Alice’s project. And that’s it. Or, if you don’t feel comfortable going in and hacking your solution file directly, remember I said that Visual Studio is completely unfazed by this? You can make some sort of small change in Visual Studio that will imply a different change to the solution file: for example, tell it not to build one of the projects in one of the build configurations. Visual Studio doesn’t just change that bit, it will write out the whole file from scratch, so the problem gets silently fixed for you. Which one is less work depends on which one you’re happier doing, to be honest.

That’s the abstruse technical post over for now. Next time I write one, I’ll see if I can find something even more technically obscure.

Photo post of the week

Neu, hanes Cymreig

Occasionally, when I visit The Mother, I look through old photos. Either family ones, or ones from my own albums. My first camera was a Christmas present I’d asked for when I was age 7 or 8: a Halina-branded Haking Grip-C compact camera that took 110 cartridge film. With a fixed focus, a fixed shutter-speed and a choice of two apertures, it was an almost-entirely mechanical beast. The shutter was cocked by a lever which engaged with the film’s sprocket holes (a single hole per frame on 110 film) and the only electrical component was a piezoelectric switch attached to the shutter, for firing a Flipflash bulb if you’d inserted any. I might still have an unused Flipflash somewhere.

A photography geek might look at the above spec and be amazed that I managed to photograph anything recognisable on that type of camera. Frankly, even aged 7 so was I: to go with the camera I’d been given a book called something like A Children’s Guide To Photography which made no bones about this type of camera being a very basic one that it was hard to get good results from. It lasted me a few years though, despite at least one drop that popped the back off; I was still using it in my teens, I think.

Sometimes on this blog I’ve mentioned visiting the Ffestiniog Railway; last December for example. The last time I visited The Mother, though, I dug out the photos I’d taken on my very first visit, on which we did a single round trip from Blaenau to Porthmadog and back again behind the Alco. All the photos were taken right at the start of the day, it seems.

The Alco at Blaenau

The Alco at Blaenau

The Alco at Blaenau

The weather in Blaenau is famously murky and damp; I’m not sure quite how much of the murk and grain in those photos is down to the camera and how much is down to the weather. Still, what the photos lack in sharpness, they certainly have in atmosphere.

Fun times

Or, another post on death, discussed somewhat bluntly

I’ve written a few things so far about my father’s death, just over a year ago now. Some were recollections written recently; the post about his death itself was written down not long after it happened. I’m glad I wrote it when I did, because, in trying to write this post, on how it felt to “host” a funeral, to be one of the more prominent mourners at it, there is an awful lot that I realise now I don’t remember.

It’s amazing just how long it takes to arrange a funeral, after someone dies; all the things that have to be aligned in everyone’s calendar. It ended up being booked for a date about three weeks or so after his death, which at least gave me time to discuss with The Children whether they wanted to go or not; give various other relatives time to decide if they could make it, and so on. “There’ll be a good turnout for his funeral,” one of his old colleagues had said. “There’s always a good turnout for funerals.” He had never been social in any way during his working life; after he retired work funerals had made up a good proportion of his social calendar, or so it seemed. A group of his old colleagues had made a point of visiting him regularly during the four years of his terminal illness; part of me thought it was rather nice of them, given I’d never have thought him likely to do the reverse, and part of me wondered if they were just getting themselves stoked up for the eventual social event that would result.

We got to The Mother’s house in plenty of time, we thought, before anyone else would get there; plenty of time to get The Children into their funeral outfits but not enough time for them to get into a mess. We had, I hoped, already sorted out the debate as to who would travel with who; sorting out the various priority arguments as to who would get to ride in the undertakers’ limousines. My father’s family could hold grudges for years;* if one of his older sisters fell out with the other over some aspect of funeral etiquette, it would be quite plausible they would never speak to each other ever again. Thankfully my cousins all arrived to try to negotiate and marshal things; The Mother sat stony-faced in silence, letting the debate all happen around her, trying to avoid getting involved.

The cortege arrived, and slowly everyone shuffled into their correct seats. “Just follow us in your car,” said the undertaker, “and turn your car’s lights on. That way other people will know you’re with us.” Is this some rule of the road that all drivers know except me, I wondered. The hearse and the limousine pulled away, and I pulled out of the drive behind at dead slow pace.

Being part of a funeral procession gives you a certain amount of privilege, the privilege to make other people stop or delay what they are doing. We glided serenely down the main road into the village, dead straight for a mile. I concentrated on keeping my speed even, worrying throughout what would happen if some random driver did pull out and separate me from the rest of the procession. Who knows if anybody saw us, or realised what was happening? The village church is on the main road, but when we arrived all normal road rules went out of the window. We drove into the middle of the road as if turning into the lane alongside the church; but instead, glided like swans onto the wrong side of the main road to stop on yellow lines, facing the wrong way into the traffic. We carefully unloaded ourselves onto the pavement, and the Rector was there to greet us solemn-faced, her surplice flapping in the wind. I left the keys in the ignition so the undertakers could shunt the cars out of the way for us; it felt unnatural and wrong.

Funeral orations must be a key skill for a priest. As we sat in the front pew listening to her New England vowels, I thought about all the things we had said to her, me and The Mother, when she’d come to gather information for it. I had been pretty open and honest with her about everything I saw as Dad’s faults, his coldness, his distance, his sudden rages. The Mother denied much of this had ever happened; I wasn’t sure if this was a desire to hide things from the Rector, a pair of rose-tinted grief spectacles, or a lifelong inability to admit he had faults. It was impressive to hear the Rector’s editorial skill: how she turned the account of how my parents got together into something resembling a romcom meet-cute, when phrases like “restraining order” are arguably more appropriate. They say, once you’ve seen the inside of a sausage factory you never want to eat another sausage. I’m sure I’ll be rather more cynical listening to funeral tributes in future. Anything at all negative, anything at all that might give the listener uncomfortable thoughts, is carefully wiped away to avoid upsetting them.

I stared at the coffin, looking awfully small. We’d gone for a wicker coffin, nicely rustic and biodegradable, ignoring the undertakers’ warning that it would creak like a ship in a gale as it was carried down the aisle. It was something Dad genuinely did believe in: self-sufficiency, living at one with the land, biodegradability and so on. Of course, due to the delay between death and funeral, and the amount of necrotic flesh already inside his abdomen by the time he died, the undertakers had also recommended we had him thoroughly embalmed. I knew, therefore, that sitting there by the lectern was an environmentally-friendly fully-biodegradable basketwork coffin with a thoroughly-unfriendly preservative-pumped corpse inside it. I still sit and wonder sometimes, a year since the whole arrangement went into the soil, what the relative rates of decay of coffin and body are, and just how recognisable his body still is.

At least myself and The Mother had immediately agreed on the coffin, knowing he would have liked the idea, because talking to the Rector we had disagreed wildly as to what else he had believed. For example, the Rector had asked if he was an religious man: not a surprising question, given that she had probably never seen him inside her church, whereas The Mother is there weekly.**

The Mother: Oh yes, he was always very religious.

Me: Really?

The Rector: I’m sensing some disagreement here…

The Mother: Of course he was religious!

Now, if I have to be completely scrupulous and honest about it, I can’t say. At no point in my life, no point at all, did he ever give me any indication of what he did or did not believe. The only thing I can say is: The Mother, ever since a sudden draught of religiosity when I was young, has gone to church every week as routine as clockwork, dragging me with her until I was old enough to say no. My Dad, barring weddings, funerals etc, went grudgingly once a year to the family event where they give everyone an orange and peanuts.

The Mother: Well, I know he was religious.

I don’t remember, now, what hymns she chose, only that the Rector thought them rather too mournful for a funeral and tried to get her to pick something less depressing. The Mother doesn’t do cheerful at the best of times. The Child Who Likes Animals could not cope with the sound of everyone’s voices around him; I held his ear defenders firmly on his head.

The undertakers hoisted the coffin to their shoulders, and started to process out down the aisle. As we had been told to, the family pews followed behind, through the middle of the other mourners, out into the cold of the church porch. Built in the 1970s, every surface of the church porch seems to be tiled, and at all times of year, whatever the weather, it is freezing cold. The cars were where we had left them, but flipped around.

“Do you want to wait and say thank you to everyone who came?” the Rector asked The Mother.

I was all for staying; it would have been good to shake the hands of anyone who didn’t want to go to the cemetery, or the buffet we’d laid on for afterwards.

“Oh no,” said The Mother, “I just want to get going and get it done with.” And so, to the cemetery, we went.

* One of my dad’s sisters once bought him a ticket for an event he was going to go to anyway, as a present. He was so insulted they refused to speak to each other for over a year.

** Barring pandemics, naturally. But it was the case then.

In the footsteps of Fox Talbot (part two)

Or, recovering from mistakes

At the weekend, I did a bit more work on the papercraft pinhole camera I posted about the other week.

Camera, from behind

Can you see the mistake I made near the start, but didn’t realise until everything was set truly firm and solid? The dashed lines marked on the card are a bit of a clue. The entire central portion of the body is upside-down. Because the film passes through the body off-centre, this means that the frame mask is in the wrong place: it’s about 3mm or so too high. The photos this camera takes are going to have their bottom sprocket holes exposed, but (unless I take a scalpel to the frame mask) will have a black band along the top. Oh well: it’s not as if they were ever going to be perfect photos in any case. I did, at least, realise this before sticking on the film guide rails, because if I’d put those the wrong way round, with the fat one at the bottom and the thin one at the top, the camera would be completely unusable. As a 35mm film canister is handed, they have to be the right way round for the film to slot properly into place. Luckily, I decided to measure up the guide rails against the leader of a new film, and immediately realised what I’d already got wrong.

Camera, from the front

The next step is the takeup reel, which worries me because, even more so than the “shutter”, it’s the one part of the camera that’s made from card but needs to function mechanically. It feels as if the tolerances in this part of the machine are quite tight, which should hopefully help, so long as they’re not too tight that it takes a camera-destroying force to turn the wind-on knob. You can see that in these pictures: a hollow card hexagon which I would imagine is quite easily distorted if the wind-on action is a bit stiff.

Incidentally this camera has no sort of rewind mechanism. The instructions suggest you take it to a photography shop to get the film out again after it’s exposed. Luckily, I have a changing bag I can use to do it myself.

The next update on this project is here.