iPhone 11 Pro

I upgraded to the iPhone 7 nearly three years ago and was very impressed with the camera, and here I am again being impressed by the camera in a new iPhone! Or more specifically, three cameras, since the iPhone 11 Pro comes with 13mm full frame-equivalent, 26mm-equivalent, and 52mm-equivalent lenses.

I absolutely love the look of the iPhone 11 Pro, especially in Midnight Green as Apple has been using for a lot of its promo shots. Someone on Ars Technica described it thus and I think they really nailed it:

It’s a touch retro, a touch cyberpunk, with a hint of bounty hunter droid (somewhere between 4-LOM and IG-88)

The cameras themselves are extremely impressive as well. Sadly there’s (currently) no way to get RAW images out of the ultrawide 13mm-equivalent lens, so you’re stuck with JPEGs, but the images direct out of the phone are still quite impressive. I’ve gone for three walks on my lunch break so far, two with the ultrawide (1, 2) and one with the regular 26mm-equivalent shooting in RAW with Halide.

That last shot was taken with the telephone lens on the way home from the train station.

I’ve also found myself sharing way more photos on Mastodon lately thanks to the combination of image quality, ease of taking photos even in dim lighting (Night Mode is extremely good), combined with our 40Mbps upstream NBN HFC connection and the custom iOS shortcut I have to post things to my website before sending them to Mastodon. It’s all very frictionless.

Another fantastic part of this whole setup is using Lightroom and my Apple Pencil on my iPad Pro to fully edit photos I’ve taken with the iPhone and then send them on to Flickr. My standard for images to go on Flickr is ones that are Proper Photography, if you will, rather than just snapping an image of something that’s happening or something that’s cute, and of good quality. The iPhone 11 Pro delivers that in spades, and not having to use a computer for Proper Photography is an absolute delight. There’s still some kinks — I obsessively tag my photos on Flickr and Lightroom Classic on my computer has a big hierarchical list of tags that all get uploaded along with the image, and sadly there’s no hierarchical tagging available at all in Lightroom Mobile or CC, so I have to manually add them all after the fact — but it’s incredibly freeing nonetheless.

The iPhone 11 Pro is just effortlessly fast, whatever I want to do just happens immediately without any sort of needing to think about it. It was an extremely worthy upgrade from my trusty old iPhone 7!

Cardiovascular health and a new shiny: Apple Watch Series 5

We bought a treadmill back at the start of 2014 and it came with a heart rate monitor that you wear around your chest, which is pretty cool. I gave the treadmill a pretty good going and was doing one of those Couch to 5K programs, but I keep having issues with my knees where running messes one of them up. We bought an elliptical in August last year — which apparently I didn’t post about here — and I’ve been thoroughly enjoying using it. The one we have has a tablet holder right at eye level so I’ve been watching TV shows on Netflix while using it, and it really helps pass the time.

The downside was that I had no heart rate monitor, as the one that came with the treadmill only works with the treadmill (it shows your current heart rate right alongside the distance and estimated calories burned and such). I’d been going pretty hard on it but had noticed that I was getting some heart palpitations, and had a couple of feeling-dizzy moments a while after I’d finished exercising. I went to the doctor and she suggested cutting down on caffeine to start with — I was on four admittedly only instant coffees a day — and see if that improves things to start with, and if not we could get an EKG done.

Quite conveniently timed, the Apple Watch Series 5 was announced on the 10th of September this year, and it comes with an always-on display. Prior models had their display totally black and would only light up when you’d either raise your wrist or tap on the screen. I’d been eyeing the Apple Watch off for a couple of years, and finally decided I’d jump on board because it’d be usable as a regular watch even if the screen doesn’t fully light up. I got the 40m stainless steel with black leather Modern Buckle band and it looks classy as hell.

(I also realised after my first workout that I needed to get one of the cheaper non-leather bands as well because man do I get sweaty wrists when I’m exercising 😛).

Apple has been leaning pretty hard into the health thing with the Apple Watch in recent years, and as well as the heart rate monitor — which is constantly taking your heart rate periodically throughout the day as well as constantly when you start a workout — it comes with an app called “Activity” on the iPhone to help motivate you to keep moving. The way it works is that there’s three “rings” you should try to close each day, called Move, Exercise, and Stand. Move is just generally getting up and about and not sitting on your arse, and is set to 1422kJ for me based on my height and weight. Exercise is 30 minutes of brisk movement — I walk fast enough that I get a few minutes counted towards it each time I’m walking to or from the station or taking the stairs at work. The stand goal is standing up and moving for at least a minute during a one hour period for 12 separate hours during the day, and if you’ve been sitting around for 50 minutes in a given hour you get a little buzz on your wrist at ten minutes to the next hour that reminds you to stand up and move around a bit.

Apple must have done a whole lot of psychological research into what’s most satisfying in terms of motivation because god damn closing those rings feels good. You get a little round fireworks animation of the given colour of ring when you fully complete one for the day, and the one with all three when you’ve finished all of them. I bought the Watch on the 23rd of September and every single day since then I’ve closed all three rings! You get little badges called “Awards” when you complete certain goals, like getting a full week of closing all three rings, which has meant that when I’ve been working from home I’ve been jumping on the treadmill or elliptical for just a quick half hour to get my exercise goal done. I also downloaded an app for the Watch called HeartWatch that gives you a little speedometer of heart rate when you’re exercising and ensures you keep it in the correct zone — not too fast and not too slow — for what you’re trying to do, in my case just generally be fitter.

I completed October with every single day’s rings fully closed, which I’m pretty chuffed about!

A screenshot of the Activity app for Apple Watch showing every single day in October having all three rings closed

We’d also bought a set of smart scales last year that sync with the Health app on iOS, I’ve been weighing myself each morning and as a result of all of this fitness I’m hovering around 70.2kg, which is a weight I don’t recall being for many years now; I was at 82kg a few years back. The heart palpitations have definitely decreased as well and I haven’t had any dizziness since I’ve been monitoring what my heart rate has been while exercising.

I don’t do much by way of outdoor exercising, but the Apple Watches all come with GPS as well so you can keep maps of the routes you’ve taken and see the speed you did during each section. Overall I’m wildly impressed with this bit of technology! I hadn’t worn a watch since about 2001 when I got a job and bought my first mobile phone, but now I feel naked without it, haha.

A new hobby: Making bread!

A new hobby: Making bread!

Back in July and August, Kristina had been on a bit of a bread-making spree. We have an old bread machine that Kristina bought from Vinnies back in 2009 when she first moved over here from the US, and she’d been using that with varying amounts of success. I was talking to some of my co-workers and one of them recommended a book called Flour Water Salt Yeast and said you absolutely cannot go past it. I bought that for Kristina’s birthday, as well as the thing it says to bake the bread in, a Dutch oven.

It’s a really interesting book, even the most basic recipes only use a tiny amount of yeast (2 grams/½ a teaspoon), you don’t knead them, and the shortest recipe has the dough rising for five hours and proofing for another hour. You can get a good idea of how it all goes from the man himself, Ken Forkish.

As it turns out Kristina doesn’t really have the patience for it, so the bread-making has become my thing, and OH MY GOD THE BREAD FROM THIS BOOK. It is absolutely epic, nice and chewy like sourdough and the Dutch oven is the magic around how the crust comes out so good.

I’ve been doing a batch of bread almost every weekend now, and there’s something really enjoyable about the whole process. I’ve been tooting my efforts, get a load of all of this damn bread! The first two photos were the “Saturday White Bread” recipe where it’s done in one day, the third was the Overnight 40% (actually 35% and rye) Wholemeal Bread, and the last was the Overnight White Bread (which I screwed the timing up for because I didn’t read the recipe of when to start it and so had to put it into the fridge overnight so it didn’t rise too much, but it came out delicious anyway).

A magnificent-looking round brown crusty bread loaf.
A dark brown round loaf of bread covered in flour.
A brown absolutely delicious-looking round loaf of bread sitting on a cooling rack, with a light dusting of flour on it.
Two round loaves of bread on a cooling rack, the left one being noticeably browner than the right one.

An artistic update

An artistic update

I posted back in February about some of the stuff I’d been doing in Procreate on my iPad, and I’m overdue for another post! I haven’t been doing as much in the intervening months, as there’s been lots of other things taking up my time and I haven’t felt as inspired but I still managed to do a few.

I’ve quite enjoy using Procreate’s Acrylic brush, you can get some really nice layer and lighting effects with it, and I used only that brush for this one:

A painting of a window at night, from inside a room. There's sheer curtains over the window, a candle is on a small table at the right casting light, and there's a tall cupboard at the left in the shadows.
The Window

I don’t actually remember the brush I used for this next one, but I definitely took full advantage of Procreate’s symmetry guides so I could get it properly even:

A painting of a cybernetic woman, her eyes look like blue glass and she has green and very shiny "skin". She has a purple hood over the back of her head.
Cybernetic Woman

This next one is interesting, I was intending on the main structures that take up the top two-thirds of the image to look like a big craggy mountain range, but I showed it to Kristina and she can’t see it as anything but a tornado coming down!

A painting of a craggy grey mountain range in the top two-thirds of the image, with a river of fire making its way the whole way across the image, and a bunch of conifers at the bottom.
The River

I quite enjoy doing epic-looking landscapes, and this one ended up starting out in a very different place than it finished. It was much more brown, the feature in the middle was a river, and the sky was a sunset which I didn’t manage to get looking how I wanted. In the end it became very much inspired by the aesthetic of the Hive from Destiny!

A painting looking down a desolate grey rocky valley. A deep black rift runs down the middle with a sickly green glow at the bottom, at the left is a crystal embedded in the ground with the same green glow coming from it. At the right is a cave entrance in the valley wall with another glowing crystal. The sky is awash with stars, and the moon peeks from behind the valley peak at the far left.
The Emergence

The paintings above were all done from about March to half-way through May, then there was a bit of a break until July.

I decided to take advantage of Procreate’s drawing guide again, this time with the perspective guide. I was aiming for buildings in a futuristic city but the thing that I always struggle with is details and a sense of scale, so it didn’t turn out to be anything but big blocks. ? Still pleased with the shadows and sense of lighting though.

A very clean geometric painting of grey and blue city buildings. The sky is purple and the light is coming from the very right, the buildings casting shadows to the left.
City Buildings

This next one I did as “speed-painting”, and did it in about 45 minutes! It was a combination of the acrylic brush and a palette knife brush from a big third-party brush pack I bought.

A painting of a volcano erupting atop a hill, the hill is surrounded by taller mountains all around, and the sky above is filled with striated dark orange clouds.
Volcano

Then lastly, this one was done in August, again with Procreate’s symmetry guide on! I was going to give her a witch’s hat but couldn’t get it looking right.

A head and shoulders portrait painting of a white woman with piercing green eyes, long red hair, and dark green lipstick. She’s wearing a dark purple top, and there’s a bright light shining behind her that’s lighting up her shoulders and the very edges of her hair.
The Witch

I also had a burst of inspiration and got some more miniature painting done! I’m still working my way through the Dark Imperium box set I got nearly two years ago, but the main impetus here was Games Workshop releasing their “Contrast” line of paints. They’re essentially a base coat plus wash combined into one single coat, and they’re seriously incredible. Dark Imperium comes with twenty poxwalkers which I was dreading having to paint, but the Contrast paints made them far quicker to deal with! There’s twenty models (but only ten unique ones), and I’ve done half of them so far.

As part of doing this, I also discovered how much better the miniatures look when you apply a varnish to them! The Contrast paint specifically comes off a lot more easily than regular paint, so varnish is a necessity, but it also really makes the colours pop, they’re a lot more vibrant than without it.

Poxwalker 1
Poxwalker 2
Poxwalker 3
Poxwalker 4
Poxwalker 5

I also finally finished off the Plague Marine champion that’d been sitting there mostly-finished for months, and I’m really happy with the base I did. I had a bunch of really old Space Marines from a starter painting box that a friend had given me, so I sacrificed one of them and cut him up to adorn the base, and it looks absolutely fantastic.

Plague Marine Champion

It’s fascinating seeing the evolution of Games Workshop’s plastic miniatures, back when I started (*cough*24 years ago*cough*) plastic was the cheap and crappy option, and the pewter (or lead as they were back then!) miniatures were much more detailed. Nowadays it’s very much the reverse, the plastic is INSANELY detailed — have a look at the full-size poxwalkers on Flickr and zoom all the way in — and the pewter ones are a bit shit by comparison.

There’s also a small-scale Warhammer 40,000 game called Kill Team that I’ve started playing at work with some people, and have bought the new box set that was released in September. It’s similar to Shadespire in that your squads only have a small number of miniatures so it’s much more feasible to get them painted, but it comes with a bunch of absolutely amazing-looking terrain. I put it together and took a couple of photos prior to it being painted, just to get a sense of the scale and what the terrain looks like.

A photo of some Death Guard and Space Wolves miniatures on the new Kill Team starter box terrain. The terrain itself is unpainted grey plastic but is towering over the miniatures and has a very steampunk aesthetic to it.
A photo of some Death Guard and Space Wolves miniatures on the new Kill Team starter box terrain. The terrain itself is unpainted grey plastic but is towering over the miniatures and has a very steampunk aesthetic to it.

I’ve finished painting a couple of pieces of it, but it’s so big that I don’t have a large enough white backdrop that’ll fit the whole terrain piece! Photos will definitely be forthcoming once I do get said backdrop though. ?

More coding adventures: Migrating to TypeScript and Express.js

Three and a half years ago I blogged about learning Javascript and Node.js, and then again at the start of 2018 about my progress and also learning React, and I figured it was about time for another update! This time it’s been moving from Sails.js (which is a web framework based on Express.js) to using raw Express itself and moving the language from Javascript to TypeScript (TypeScript is basically Javascript, except with type-checking).

At work, we migrated the codebase of the server that runs our internal platform-as-a-service from Javascript to TypeScript, and I figured it seemed like a neat thing to learn. TypeScript ultimately gets compiled down to Javascript, and I started by trying to just write my Sails.js modules as TypeScript and have them compiled to Javascript in the locations that Sails expected them to be in, but this proved to be a fair bit of a pain so I figured I’d just go whole-hog and move to raw Express.js while I was at it.

I did a whole heap of reading, and ended up coming across this absolutely excellent series of blog posts that takes you through using Express and TypeScript step by step. It took about a month all up, and you can really see how much code was removed (this excludes Node’s package-lock.json file because it’s massive):

$ git diff --stat a95f378 47f7a56 -- . ':(exclude)package-lock.json'
[...]
 151 files changed, 2183 insertions(+), 4719 deletions(-)

My website looks absolutely no different in any way, shape, or form after all of this, but when writing code it’s quite nice having all of Visual Studio Code‘s smarts (things like complaining when you’ve missed a required parameter when calling a function, auto-completion, and on).

Having moved to raw Express.js from Sails.js means I have a much better understanding of how it all works under the bonnet… Sails is great for getting up and running quickly, but there’s a lot of magic that happens in order to accomplish that, and more than once I’ve run into the boundaries of where the magic ends and have had to try to hack my way around it. Express by itself is a lot more widely-used than Sails too, so if I run into problems I generally have an easier time finding an answer to it!

Twenty years of VirtualWolf

Today twenty years ago marks the earliest point I can find of where I started going by “VirtualWolf” online! That’s over half my life. 😮

I had posted previously back in 2009 (back when this blog was on LiveJournal) about being VirtualWolf online for around ten years at that point but it was pretty vague in terms of dates, and I’ve since consolidated all my old websites and put them up online. Further digging reminded me that I have a whole bunch of other sites that I never actually finished — I should add those to archive.virtualwolf.org too, now I think about it — and there was one called “DevlinSlayer’s Imperium” from February of 1999 so it was clearly after that.

The earliest mention of VirtualWolf I can find is from my Realm of the Wolf site from the 28th of June 1999, and the name of the Myth II map I’d created, “Realm of the VirtualWolf”. Unfortunately that file has been lost and I cannot for the life of me find the original anymore. I was able to recover all but one of my Marathon maps from various places, but I can’t even find the original pre-compiled image files for the Myth II map. The only image related is the overhead map view from the website I created after Realm of the Wolf.

Since that point, it’s been all VirtualWolf, all the time. I’ve owned the domain virtualwolf.org since the start of 2002, and have made a point of ensuring all the old links to images I’ve posted here and on Ars Technica still work even now.

Here’s to me making a post in twenty years saying “Forty years of VirtualWolf!”. 😛

Ten years of marriage!

Ten years of marriage!

Ten years ago today, on a very cold and windy but at least sunny day at Dee Why headlands, Kristina and I got married!

TEN. YEARS.

I have no idea how it’s been ten years, it doesn’t remotely feel like it’s been that long. I’ve mentioned on this blog before, and on LiveJournal before it, that everything is so effortless, and it still remains true!

We originally knew each other from Everything2, which is still around but very much dead compared to the old days, and has been for many years now (my registration date there is May 2000). There was a bit of a mass-migration from E2 over to LiveJournal a couple of years afterwards, and I have a happy birthday wish from Kristina on one of my LJ posts from 2003! She said I was always “That guy in Australia who likes metal”, but we got to chatting more towards the end of 2007 and then on a whim decided to come visit in March of 2008, and the rest, as they say, is history!

With both of us being keen photographers we tend to be behind the camera instead of in front of it, but we’ve got a few photos together over the years!

Kristina and I
The first one of us together, in August 2008 in Boston the first time I visited (we don’t have any of the two of us from March when Kristina first visited Sydney). This was right before I trimmed my goatee entirely down because it’d started just triangulating outwards and getting all wispy.
Untitled
November 2008, we were up in the Blue Mountains when we got the call that the engagement ring was ready to be picked up!
Untitled
Then our wedding, of course. I love this photo so much!
December 2011, being all arty!
Selfie!
This was taken in May 2014 when we bought the Fujifilm X100S. Kristina looks so hilariously unimpressed.
Kristina and me
December 2015!
Untitled
Then an attempt in February 2017 at taking a photo with the two of us and Beanie. It didn’t go so well.
Untitled
And finally the most recent one of us together from December of 2017, taken with the flash and massive parabolic umbrella directly behind the camera.

In the time we’ve been married we’ve been to:

And that’s not counting the day trips or single night trips of which there have been plenty.

Here’s to many more years of adventures to come! ❤️

New bathroom!

The bathroom in our house was always a little bit crap, it’d clearly been done on the cheap and many years ago, and we wanted to get a new one put in. Conveniently, my parents were going away on holidays for three weeks last month so we decided that this was a pretty perfect time to do it. We schlepped our stuff over to their place and stayed over there while the old bathroom was ripped out and a brand new shiny one put in! (We also got the second toilet redone in the same style, so there were no toilets at all hence the inability to stay at home while this was being done; also Beanie would have lost his mind when with the tradies being over all the time).

I borrowed a really wide-angle lens from a friend in order to properly take before and after photos, this is the old bathroom (the shower screen is filthy because we’d given up on cleaning it by this point).

A wide-angle view of a bathroom, the floor tiles are sickly grey and the grout looks dark just from being dirty. A cheap-looking white vanity with a single sink is in the middle of the photo, the shower screen around the shower is at the left and is totally soap scum-encrusted. The tiles in the shower are black with discoloured grout between them. A toilet roll holder is attached by suction cup to the outside of the shower screen next to the toilet, that's just visible at the bottom-left.
A wide-angle view of a bathroom, the floor tiles are sickly grey and the grout looks dark just from being dirty. A cheap-looking white vanity with a single sink is in the right of the photo, the shower screen around the shower is in the middle and is totally soap scum-encrusted. The tiles in the shower are black with discoloured grout between them. A toilet roll holder is attached by suction cup to the outside of the shower screen next to the toilet, the toilet itself is small and very plastic-looking and sits next to the shower. In the ceiling above the shower is an EXTREMELY yellowed plastic fan vent.
A wide-angle view of a bathroom looking towards the bath, the floor tiles are sickly grey and the grout looks dark just from being dirty. The bath is in the middle of the photo, with black tiles around it, the shower screen is at the right of the photo and the vanity is just visible at the bottom-left.

The grout on the floor was all dirty and discoloured, the tiles were really thin, clearly cheap, and also quite ugly, and the vanity was really cheap-feeling, and we’d had to clean mould out of the inside of the cupboards more than once.

Kristina was interested in doing the bathroom in a much more modern and minimalist style than we’d done with the kitchen, to try to minimise the amount of nooks and crannies that would need to be cleaned, and to ensure it didn’t end up looking cluttered. We decided on white wall tiles, and slate grey floor tiles, plus a wall-hung vanity and wall-mounted taps.

The guy who was overseeing the whole lot sent us daily updates on how it was going, and it was fascinating to see everything ripped out and just the bare frame and insulation after they’d finished on the first day.

The bathroom with no tiles or gyprock on the bottom half of the walls, just bare timber frame and insulation.

After that, each day’s updates were just more and more things being put in, we were able to come back on the Saturday of the third week though the shower screen itself wasn’t in by that point. On the Friday of the following week the guy came to install it, and with that it was done, and it looks absolutely amazing!

The fantastic new bathroom, a white wall-hung double-basin vanity and wall-mounted chrome taps are in the middle of the photo, a shaving cabinet with mirror above, and two lovely in-ceiling LED lights above that. To the left is a waist-high thin wall tiled in white, and that side of the shower screen starts at the top of the wall. The wall tiles are white and the floor tiles are a dark slate grey.

There is a towel on the wall that's a dark pink, and on the right of the vanity is a small towel ring that has a hand towel of the same dark pink colour.
The fantastic new bathroom, a white wall-hung double-basin vanity and wall-mounted chrome taps are at the right of the photo. In the centre is a waist-high thin wall tiled in white, and that side of the shower screen starts at the top of the wall. Next to the wall sits a white ceramic toilet, and the toilet roll holder is a chrome metal one that's attached to the waist-height wall. The wall tiles are white and the floor tiles are a dark slate grey.
The fantastic new bathroom, a white wall-hung double-basin vanity and wall-mounted chrome taps are at the left of the photo. In the centre is the bath surrounded by white wall tiles, at the right is a waist-high thin wall tiled in white, and that side of the shower screen starts at the top of the wall. The wall tiles are white and the floor tiles are a dark slate grey.

A dark pink towel hangs on the wall over the left end of the bath.

There’s lovely LED lights above the vanity, and the mirror is actually a shaving cabinet so we can put stuff into it and not have to be rummaging around in a dark cupboard. As we discovered with the kitchen and the drawers in there, drawers are far superior to cupboards for anything but really shallow depths.

We didn’t even get anything moved in terms of layout, it’s all in the exact same position as it was before, but it just feels so much larger and more spacious, it’s wonderful!

A trip to Switzerland!

Kristina and I have been married for ten years (!) come June, and we had a very small wedding and no honeymoon because we were completely broke at the time. We decided we’d do a big trip for our ten-year anniversary to make up for it, and decided on Switzerland. Kristina had been there about fifteen years ago and loved it, and was really keen to show me around and also to take photos with a proper camera and better eye for composition.

See full post (and LOTS of photos)

Configuring a virtual machine with Linode StackScripts

Configuring a virtual machine with Linode StackScripts

I’ve been using Linode to host myself a Linux virtual machine since 2011, originally so I could run Jira on it (now long since moved to a cloud-hosted instance), since my entire job was supporting it back then, and also just generally to dabble with Linux and the command line. I started out with CentOS 5 as that’s what we were using at work at the time, and slowly installed more and more random things on it.

When I decided it was time to upgrade to CentOS 7 in 2015, I put together a page in Confluence noting down each thing I was doing, as I was starting with a fresh new virtual machine and migrating only the bits and pieces I needed to it. That was better, but still ended up with a bit of a sprawling page and me forgetting to update it after I’d completed the initial migration. I eventually shut down my whole Dreamhost account and moved solely to having my website and blog and various miscellany (15 years worth of images from LiveJournal entries and posts on Ars Technica, as two examples) hosted on the Linode. Unfortunately I wrote down absolutely none of how I configured it all!

As part of playing around with my YubiKey and setting up GPG agent forwarding, I discovered that the version of GnuPG that CentOS 7 ships with is too old to support agent forwarding from newer versions, so I decided to spin up a new Linode but with Debian 9 instead (since thatdoes support agent forwarding), and migrate everything to it. This time, however, I would do it programatically!

Linode have a thing called StackScripts that let you start up a fresh VM and run a bunch of commands on boot to configure it how you need. Over the course of probably two months, I built up a Bash script to install and configure all my various software packages at boot to a fresh Debian 9 machine to configure it how I needed, and with everything stored in a Git repository. That included also adding Git repositories with my Nginx and systemd configurations as well as running a script on my existing CentOS 7 VM to grab database dumps of my website and our respective blogs, as well as the aforementioned 15 years’ worth of images and other files.

The end result is a ~500 line Bash script that’s version-controlled so I can see exactly what I did, with any new changes I’m making since I cut over to the Debian VM being saved in that as well, and the same with my systemd/Nginx/everything-else configuration! As long as I’m disciplined about remembering to update my StackScript when I make software changes, whenever the next big move to a new VM is should be a hell of a lot simpler.