Author: Duncan Ellis

Technical Difficulties: Unnecessary Details

I wrote briefly yesterday about the broken commenting here and mentioned in passing that I had made some hasty decisions when moving the domain data. This post is going into unnecessary detail about what those choices were, and a plan to get things working again.

But first: why I moved web hosts.

The Straw

I really didn’t want to move web hosts at all. I’ve hosted my domain with the same company since the middle of 1999, long before I had even thought of leaving Oracle let alone moving to the States. Their web hosting service was very good: not the cheapest, but apart from some glitches early on they were helpful and responsive, with features to their service that allowed me to do all the things I wanted on a public web host.

The thing they did badly was email.

We’d had a few issues over the years with email sent to the domain being bounced. There would be a short period (usually 24-36 hours) where a sender would have emails returned because the message had been routed through a relay with a higher-than-acceptable rate of spam transmission. We would find out about it when some kind soul would try to reach us by other means.

The intent to not promote spam-supporting relays is very noble, but the response from the support was that the sender should send their email through a different relay.

That was an unacceptable answer in 2000 when most email users were tech savvy enough to be using email, but now? How many people have any control over the routing or delivery of their email? Why should anyone even care?

Then towards the end of last year we had two significant breakages in email. First we couldn’t send anything for two days, then a few weeks later the whole email system fell over for three days.

Three days.

In the end we didn’t appear to lose any email, but that – along with the blasé lack of communication about these outages – was the final straw: I started looking for a replacement web host.

The deadline was the end of February.

Hosts of Reasons

Choosing a web host is a lot like choosing a phone provider: every company has different features and different pricing models, but it is possibly to normalise the variant scales into something comparable.

The biggest difference between web hosts and phone companies is that there are only a dozen or so phone companies to look at. Web hosts are legion.

I figured out the features I needed and started tabulating based on a superficial Google search. I needed:

  • Perl CGI support
  • WordPress w MySQL
  • multiple domain hosting (more on this later)
  • storage minimum
  • email support

The last two were quickly relegated to mere sanity checks, because every host had offerings at their lowest plan tier that dwarfed my needs. Hosting multiple domains is also a very common feature; it’s not usually present in the cheapest offering, but you don’t have to get the gold-plated option either.

The main division seemed to be between Unix and Windows shops: I saw Microsoft-based hosts that provided scripting support, but I have no wish to give Microsoft money even by proxy so those were eliminated from consideration.

In the end I found three hosts who looked most promising at comparable prices and I asked their tech support teams some questions to gauge responsiveness and so on.

In the end, I settled on a host and bought a hosting plan.

Then all I had to do was transfer the data.

The Migration Plan

Twenty two years is a long time. Many things can happen to a web site in twenty two years.

All of the static content on my website lives on my laptop. I have deployment scripts that copy files from the ground up to the public server using rsync, which makes it pretty efficient.

The things I was worried about were the Mornington Crescent servers, this blog, and email handling.

I resolved to do a staged migration:

  1. stand up the website on the new host with another domain I own.
  2. test web site setup and email delivery
  3. migrate current data snapshots
  4. fix layout issues
  5. cut across hosting of dunx.org, overlaying the HTML document root
  6. setup new email addresses

Things worked as expected on the stand-in domain, and I was finding the setup I needed. Then we had that ice storm and I was unable to do anything much with the website stuff for a week.

When our Internet was restored, I had only a few days to finish the migration and cancel service before drifting into the new billing period.

But it all went fairly smoothly, in the end. There were some weird behaviours early on when things were still in the process of propagating. The hardest thing was getting the blog to work.

The Mending

… which of course is where we came in, because the blog does not, in fact, work.

The broken commenting seems to be an artifact of how I switched domains across. The WordPress installation seems to have a baked in reference to the domain I installed it on originally, even though I moved its home directory to the new dunx.org location. I know this because if I go to the blog via the other domain then I can leave comments.

The most likely plan to fix this is:

  1. split the document root so dunx.org has its own directory, then move the dunx.org content from its current shared location into the new document root.
  2. reinstall WordPress on dunx.org.
  3. import blog into new location

I’ve been verifying installing WordPress on distinct domains and want to test blog import in the new instance. I will be separating dunx.org from its neighbour next.

It should be fixed in a couple of days. I only hope I don’t have to delete the dunx.org domain and recreate it un-mirrored, but if I do then I am sure it won’t take all that long to setup the email addresses again.

The Aftermath

One lasting consequence of going through this process is that I see endless adverts for one of the providers I looked at but decided against (they use Microsoft tools for email management so I was never going to use them).

Anyway. Hopefully that will die down eventually. Maybe I should go and look at boats so I get more variety in my spamvertising.

Leave a Comment

Technical Difficulties

Thank you to the friends who gently told me that commenting on the blog doesn’t work at the moment. It turns out that installing WordPress in one domain and then picking it up and dropping it somewhere else makes it not work properly.

As is so often the case with these things, I thought I was saving time.

I’m going to blame the snow a little bit. We had to be off the old host by the end of February, and I lost a week of transition time. I might have made better decisions on this front with a less compressed timeline.

Anyway, excuses aside, I’m investigating how to fix the problem. Thank you for your patience, and here is a cute sleeping rat picture in the meantime.

a sleeping rat almost obscures his snooze buddy
Angel uses Axel as a pillow, while Axel uses Angel as a blanket.

Leave a Comment

Frozen Out

I grew up in Yorkshire in the North of England. Winter was cold, and snow was no stranger. We used to get at least a couple of good six inch snowfalls every year, and life would mostly carry on. The town I grew up in was small enough that we just walked most places we needed to get to, and if we had to use the car then we knew the roads would be salted so the snow would be navigable. The only reason school would be cancelled would be if the boiler stopped working.

Portland… Portland isn’t like that.

Winters here are pretty mild. It might hover around freezing for a couple of days, but weeks of freezing temperatures is not something you see here usually. Usually.

Portland is on the Columbia River, though, which means that if the weather systems line up right we can get Arctic air channeled down the Gorge from Canada. We are also close to the Pacific which brings the potential for rain. So we can get several inches of snow quite quickly, but much worse than the snow is the ice. This is the hidden secret of why Portland can’t handle freezing weather: it’s actually the sheets of ice covering everything that make it impossible to get anywhere.

We had one of these freezing weather systems run into us three weeks ago. We hunkered down as the cold air and the snow moved in, checking our supplies just in case. There was word of power outages elsewhere but we had juice all weekend. I even went for a run in the snow on Sunday morning, belligerent perversity powering me through the icy conditions. In fact, on that run the thin sheen of ice that coated everything helped stabilise what would otherwise have been very powdery snow.

Things went wrong for us on Sunday evening. We were finishing dinner and we saw a yellow flash and heard a bang. The lights went out. Moments later, they gave a glimmer more of illumination before there was a blue flash and an even louder bang.

Darkness reigned.

We were, in fact, lucky: we were only out of power for twenty four hours, and we had camping equipment we could use to cook. We weren’t looking forward to another cold night, but the lights came on just as it was starting to get properly dark.

Our Internet didn’t come back though, and mobile phone service was out too.

Normally this wouldn’t faze us. I would have caught a bus to the office, or at least walked to a place where I could catch a bus (our neighbourhood is hilly; busses often get rerouted when its icy); the boys would have gone to school. Even if we couldn’t have travelled we might have been able to go to a coffee shop to use their Internet, or even find a friend we could stay with.

But these are not normal times. We isolate ourselves and shy away from contact; we don’t dare visit each others’ homes except in very restricted and carefully arranged circumstances. Indeed, the very idea of going into the office is frightening to me at the moment.

Having taken Monday as a snow day, I ended up needing one more day off to let the snow clear enough to drive in. On Wednesday Jen gave me a lift to down town and I had the rare opportunity to do work again. I wasn’t the only one who’d come in to use the Internet; it was actually quite novel to have another human to talk to.

Our Internet came back on after lunch on Saturday, almost six days after we initially lost power.

This incident has caused us to reflect on how much we rely on these accoutrements of modern life. As I say, if we hadn’t already been in a remote working and learning situation things might have been less disrupted, but knowing that so many of our daily activities, such a large part of our lives, is entirely up-ended by losing access to electrons and bits is quite humbling. It’s certainly made me more fond of physical media.

We’re more or less back to normal now. The last breakage for us was the landline, which worked flawlessly while we were without Internet but was disconnected when the Internat came back, and that was repaired a couple of days ago. I lost time on tasks with deadlines (particularly the domain move), Jen couldn’t work at all for a week, and the boys lost a week of school, but these are pretty small in the scheme of things. We’re all caught up now, anyway.

I hope you stayed warm in the recent freezes, especially in Oregon and Texas. Be kind to each other in the snow.

Leave a Comment

Welcome to My New Home

This post is by way of reintroduction and rededication to the idea of this blog. It’s been a while.

Welcome, then, to Identity Function. I’m Dunx. I write things. In fact, I write a lot of things. I was described by a colleague once as having hypergraphia because I wrote so much stuff down, and so I thought that was an appropriate element to celebrate here.

I’m choosing to revive this place because I recently moved web hosts, which meant copying the WordPress gubbins. This reminded me that I had a blog and that I used to enjoy writing here.

Although I haven’t posted regularly in some time, I am still writing. The hypergraphia is very much in action, it’s just been a bit more private than it used to be.

My intention is to post at least once a week, usually on Tuesday. There might be a couple of bonus posts in the near future as I catch up on things, but I really want to talk more about the stories I write and my progress in getting these things out in the world.

So, if you are interested in science fiction and code, games and the business of playing at human, then please stick around. I hope you will be at least amused.

Leave a Comment

Confronting Privilege

I’m an old leftie.

I haven’t always been an old leftie because I haven’t always been old, but I have a deep belief in the moral imperative on society to help those who need help. This belief was formed on the anvil of Thatcherism, which was an ideology of class war.

My understanding of social narrative has therefore been through a class-based lens, by which I mean class in the British sense: something close to a caste system where there is little mobility between the strata of society, regardless of wealth.

Given that upbringing, my perception of the police has never been as rosy as many of my heritage: the police were used to break strikes and suppress dissent against Conservative policies. I’ve written before here about how living in Liverpool during the 80s felt a lot like living in Portland now: the people around me have similar views to my own, but the central power in the country has no inclination to listen to those views.

But you’ll notice I haven’t mentioned race. This is my central privilege: I don’t have to.

Because as left-wing as I might be, I am white. I am a white cis het male in a society built by and for white cis het males.

So. I have some learning to do. I’m not starting from a position of no knowledge, but I do not understand the lived experiences of people without the privileges that I have benefited from.

To help me in this learning I am working through Me and White Supremacy by Layla F Saad. The book speaks quite candidly about how the work of raising consciousness in this matter is going to be difficult. It does help me  that the author has a British background, though, however little it should matter objectively. Even as I am aware that British racism is as ingrained as American racism, the British experience is less driven by the wounds of slavery.

Anyway, I’m going to be over here learning and donating to organisations that actually understand the work that needs to be done.

Leave a Comment

Magic Without The Gathering

A large part of the point of tabletop gaming is to get together to play. That hasn’t been possible recently.

I have three primary venues where I play Magic: with my day job friends, with my kids and their friends, and at our local game shop (LGS). I have been working at home since March, physical interactions with any friends have been absent, and our LGS can’t operate any events on the premises. It’s all very sad.

Fortunately, my kids still want to play.

Also, I made that webcam bracket and so I’ve been able to play a little bit of Magic over the Internet.

this is where I play Magic on the Internet

this is where I play Magic on the Internet

The tripod is wedged in place with its legs slightly opened for stability. The playmat isn’t square on the table because the camera isn’t: it’s easier to adjust the playmat angle than the camera. The light on the right is my daylight lamp and is the only illumination for the play surface. I turn off the room lights when playing because otherwise the cards are just white rectangles of glare as the overhead bulb reflects into the camera!

the webcam mounted to the tripod with my custom bracket

the webcam mounted to the tripod with my custom bracket

This is the bracket in operation on the tripod. The camera’s clamp looks more rickety there than it actually is – that’s quite firmly wedged in place.

The tools we’re using are:

  • Discord – great for voice chat, and the desktop client supports video. Point your webcam at your playmat and go. This is what our LGS uses, based on a template from Wizards of the Coast.
  • Spelltable – similar video option to Discord, but with Magic-specific features on top like life total and commander. When we’ve used this for video we’ve still been using Discord for voice. It has a limit of four players in a game, which Discord does not, but does have some basic video manipulation features.
  • OBS – this is not strictly necessary, but it can be used to supply a virtual camera to your video platform and that allows you to apply transforms to the video. Specifically, my webcam has its video mirrored. OBS will allow me to flip that, amongst other things I don’t understand yet.

I would also highly recommend against playing any deck that permanently steals other players’ permanents or lets you search someone else’s library. Both of those operations are very difficult to navigate. Pacifism is bad enough.

I’m very much looking forward to getting back to in-person play, but at least this is a way to play the game.

Leave a Comment

Abandonment Issues

It’s not every day that I decide to abandon one of my stories. If I run out of steam on a story then I will usually put it down and then just never pick it back up again.

The Kissiltur trilogy was the first story I consciously abandoned because I kept trying to make it work and it kept not working – I was spending time better used for other projects when I didn’t even really have any passion for it any more. In that case I was fighting against the sunk cost fallacy: I had put so much time and energy into it; surely I could make a story out of it somehow?

Another term for “spending time better used for other projects” is “wasting time”, and that was ultimately what pushed me to the decision to abandon that story. I just needed to work on other things, so drawing a line under the effort on the Kissiltur books was important – it gave me permission to stop.

The other week I decided to pick up my 2017 NaNovel, Disconnected, and see what I could make of it. I did a rough compile into ebook for review, then realised it was unreadable because the default font was Courier and it still included all my [embedded notes].

Disconnected is a sequel to my first novel-like story, The Manx Connection. Cleaning up the text for review reminded me of some of the misgivings I had when I was writing it, and then when I actually went through and read it all in a straight line it confirmed what the problem with the novel was: it was bad.

The manuscript is not technically bad: my writing technique has improved a great deal over the years so that first drafts are actually readable and only tend to be disjoint between widely separated sections (eg the name of some incidental characters might drift on their infrequent appearances). No, the story and the characters are bad.

These things are fixable, eventually, but my experience tells me that the prize is not worth the effort. There are things about the story that I like – the central motifs of loss and shame are powerful – but I don’t know how I rescue the things I like from the problematic story elements and characterisations.

So after patching up my comments for the first handful of chapters I decided to put the story down, a positive decision which allows me to move on.

I’ve instead gone back to Song, recompiling the latest state to see what I am missing. I feel like I am reacquainting myself with a machine I haven’t operated in a while, but the controls are familiar and it still functions pretty well. I’m looking forward to working on this.

As for the other story… Disconnected is not the first novel I put down, nor is the Kissiltur trilogy. The first NaNoWriMo story I abandoned was my 2006 effort Paragons, and I rewrote that one in 2016 as a much better book. So I have hope that I can come back more successfully to the others at some point in the future.

I already have ideas for how I could fix them. I’m just not going to work on those right now.

Leave a Comment

Routine Reestablishment

As I reemerge from the brittle burned out shell of the work I was doing last summer, I have become increasingly frustrated that I have not been writing much.

There are many reasons I wasn’t writing consistently before, although it was mostly just raw burn out. Since I have rested enough to recover some of my enthusiasm for creating I’ve found the need to reestablish some of the habits and routines from the before times.

Setting Aside Time

The new normal is a timeless wasteland where the days merge into one undifferentiated stream of anxiety and boredom. Finding the mental energy to create is one thing, but finding a way to set aside time and space for creative work is hard.

I’ve been able to maintain my regular Friday evening creative time, although with the burn out it has not been as writing-focussed as I would usually expect.

I have also had good luck writing in my notebook. I will read a bit of something, then take a break to write half a page or so on the story I am working on.

It’s a start.

Transitions

I am in the position of being able to perform my day job more or less unimpeded from my home, which is fortunate economically but unfortunate creatively because I still have the same workload and the same demands on my time during the day.

Something that I and many of my colleagues have complained of is the difficulty in demarcating between work and personal time. For me this specifically means I have been missing the transition time, especially the bus ride between home and office. That half hour each way of time when I can do nothing else but write or read or feed my brain in some way was a critical component in completing creative content.

So I’ve been taking the “bus”.

I have a standing desk riser that I do my day job at but if I sit down at my personal desk for 25-30 minutes I can get a lot done before I start the day job. I set a kitchen timer to limit the commute time.

It’s also very helpful in resetting my brain. I don’t have the crashing gears of going from family interaction to day job tasks without a transition; the commute has always helped me get in the right frame of mind to do my job. I’m just making the commute a time of choice rather than necessity.

But with that the “bus” has arrived at the stop (the timer has gone off) so it’s time to take up the day job controls.

Onward.

Leave a Comment

Webcam Tripod Mount

I miss playing Magic with my friends.

I want to play paper Magic rather than online. None of the digital clients run on computers that I have access to (translation: everything is written for Windows, an operating system I have, to summarise, problems with) but to stream an overhead view of a playmat while also seeing your opponent’s (or opponents’) board state requires an external camera.

So I ordered a webcam. Pandemic times being what they are, it took six weeks to arrive. I had intended to get a camera with a tripod mount, but a combination of not reading the listing properly and a limited array of choices meant that the camera I received does not have such a thing.

The camera instead has a clamping bracket intended to wedge it against the top of a screen (flat monitor or laptop lid). So attaching it to tripod needs a bracket for the clamp to attach to which can itself then be mounted on a standard tripod thread.

Technical Details

The standard tripod thread is 1/4″ / 20 UNC. I cannot give a definitive statement on what those numbers mean, but I have exactly that size of thread in my tap and die kit1.

The ideal material for this would probably be an angle of extruded plastic, something like HDPE, about two inches on a side. It would be simple to drill and tap, and it’s definitely strong enough to carry the load of a camera that weighs less than 100g.

But I don’t have any of that, and since this is a project where I would like to use what I have on hand I will be making this out of 1″ x 1/16″ mild steel bar.

The Plan

The bracket is going to be an ‘L’ shape, two inches on a side.

The fabrication plan is therefore:

  1. cut a 4″ piece of bar stock
  2. clean up rough edges
  3. drill appropriately sized hole (use matching bit to 1/4″ / 20 tap) an inch from one end
  4. tap the hole
  5. bend the bracket in the middle

I am fairly confident that the steel is thick enough to take a meaningful portion of thread especially since, as noted already, the camera is not heavy. Indeed, the bracket itself is likely to weigh more than the camera.

That’s it. I will report back on how my fabrication efforts proceed.

[1] the ability to cut threads into an appropriately sized hole or onto bare rod stock lets you solve problems fairly easily that you might otherwise fix with glue. Currently I only have a set with SAE sizes because living in the US means that those are the thread types you encounter most often.

Leave a Comment

Aft Gang Aglay

I wouldn’t claim that my plans in the second half of last year were especially well laid.

I worry about burnout. When I look back I would say that I’ve had several phases of being burned out in the past, although they also coincided with episodes of depression. Last year I was not depressed in any meaningful way: anxious, certainly, because there were things going on that made me fret far more than I usually would, but I was not undergoing the numbness that depression usually brings to me.

Not depressed, but definitely burned out. Burn out city, man.

Hence, while I planned on continuing my monthly goal update posts during this hiatus, I have not been following my personal planning routines at all. While I expected to focus on my writing, I instead found myself flapping around loose, too exhausted to focus on anything at all.

In the midst of that flap I went to the Willamette Writers Conference. I like that conference, and I like the people I meet there. I found several like-minded writers who I wanted to stay in touch with… but then my burn out took away any hope of actually maintaining contact. Everything seemed hard, from sending email to making words. I felt like I had been given a gift but then squandered it.

My gut feeling on this is that I was trying to do too many things at once. I have always been someone who starts new things readily, but I don’t have the time or energy to do all of it and while I can sometimes manage to juggle six or ten things for a short period of time, something has to drop. Last summer, I dropped everything.

Two things this year have helped me drag myself back to something approaching a functional creative life.

Firstly, my wife and I took a mindful self-compassion class. I am not someone who has ever had any kind of mindfulness practice, although one of the goals of my exercise routine is to shake my brain away from its loops and whorls, and I now identify this as a kind of mindfulness. The tools I learned in that class have been very helpful in letting myself be kinder to myself.

Secondly, the pandemic pause. This time of forced separation from the world has allowed me to retrench, to recharge some batteries that I didn’t even know were drained. It has got me back to making stories because I want to rather than out of obligation.

With that, I will say that this blog is still on hiatus from any kind of regular posting, but I expect to put things here a little more often. There are stories and projects I want to talk about, and this is where I do that.

Leave a Comment