Categories
Work

A Few Useful React Links

A few of us at work might be moving to a project that uses React more heavily than anything we’ve done before, so I wanted to make a list of any interesting links which might be useful to share with the group. Some might not be specifically about React, but were useful for me getting up and running on my home PC, or are worth storing for future reading:

Much like my development environment notes, this post is pretty much just for me – but if you find it useful, I’m glad!

Categories
General/Life

A Belated Check-in

You know when you have something nagging at you, where it’s “I should be doing this, I want to do this, but I just don’t have any drive”? That’s been me looking at this editor most days for the last 2 months. Ennui, I think they call it. But not really through boredom in my case. Just the overwhelming sense of *waves arms at everything* getting on top of me a bit lately. So now that I’m managing to get some words out, what have I been up to?

Training

At the start of September I virtually attended a four-day, Microsoft-delivered training course, covering AZ-104: Microsoft Azure Administrator. The course itself was good, with great instructors. It was also a nice change of pace to the relentless project work I’d been doing. The one knock against it was there was too much content that could be covered in the four days that in reality we only covered a fraction of what could be in the exam.

As the instructors acknowledged – the course by itself is not enough to pass the exam; it needs more practice, reading, and knowledge. Which is to be expected, but I don’t think I appreciated just how much more would be needed.

Right now, I’m scheduled to take the exam at the end of November, but I’m not feeling like I have enough time with everything that’s going on in the race towards the end of the year. I’ll give it another week or two of trying to get into my groove with regards to study and revision, and if I’m still not comfortable then I’ll reschedule to early next year.

I should have attended an AZ-204 course at the start of October, and sat that exam… today, I think… but I rescheduled that one last month when I realised what was involved in the AZ-104 exam. I also felt that the project was too busy at the time to justify leaving my colleagues a person down for another week of training so soon after the last one. AZ-204 is still in my plans, it’s just been moved down the road a bit.

Work

I can’t go into my project work, at all, but the other things going on at work have been both weird and rewarding.

The first was I was asked to record a short (thirty seconds) video on the positive experiences I’ve had over the last year – a kind of “yes, this last year and a bit has been rubbish, but there were good points” feel good piece – my video was largely on training and personal development. It was combined with several others and played as part of a video package at the annual meeting which kicks off our new financial year. So a video of me in my tiny home office, talking quickly about how I’d achieved several certifications in the last year, played to several thousand colleagues in the UK. Even though I knew the video was coming during the livestream, it was incredibly bizarre to see myself onscreen.

In a similar vein I was asked to give a seven minute talk on training and development to a couple of hundred colleagues in an account-wide all-hands call. I seem to have acquired a reputation for thinking about this topic a lot while also putting things into action, and it was insights on this “doing part” I was asked to get across to my colleagues. I plan to write a blog post on this in the future as it’s something I’ve been mulling over in my head for a while and deserves a longer-form expression.

Delivering the talk itself didn’t make me as anxious as I’d expected. I didn’t stutter and uhm-and-ah as much as I might once of. So I’m getting better at this, at least. I did find it all went very fast though; I think we were running behind so the person controlling the slides sped things along at a clip, faster than I’d practiced. By the end of it I was quite out of breath. I think in part it’s because I’m highly conscious of breathing too hard while wearing a headset, so I breath quite shallowly when not on mute. But that’s something I can work on – my breathing while delivering a talk.

Hobby

Not much to report here, really. I started on an Armies on Parade entry, which is usually one of the hobby projects I’m most able to focus on and work through each year. But this year isn’t going to happen. I managed to get the barest base of a board created; just a 22″x30″ board in a retro flocked style. I started on pieces of scenery to decorate the board with, and managed to get the army to parade on it built and primed… and then I just seemed to stop. I’m not entirely sure why, but every time I thought about painting or making progress I just… didn’t do it. So I’ve resigned to not completing Armies on Parade this year. Hopefully I’ll be back to it in time for next year.

I’ve also made a few small inroads into items in my backlog, and not *just* by adding to it (although I have done more of that than I’d like). Assembling the odd kit here, priming something there, maybe making small progress on basecoats. But never much of anything, and certainly not getting anywhere near finished. I said in the talk I gave recently that “even small steps add up” and I feel I need to remember that myself. The only real issue is I have so much stuff “in flight” right now it’s hard to juggle it all or store it conveniently and safely when it’s not being worked on. I think I’m getting to a point where some things are going to have to be packed away – not permenantly, but properly out of the way – to give me some breathing room. Maybe that will give me the headspace I need to make some proper progress. Or maybe some dedicated time off to work on things might be an idea? I’m not sure.

Wrap-up

So that’s the major events I want to get into from the last couple of months. Hopefully it won’t be another couple of months before I manage to get the words out again – I really want to write that personal development article, for one thing – but with the way things seem to be right now I can’t make any promises

Categories
Work

Some Development Environment Notes

Because Docker have changed their licensing and subscription TOS overnight, I’ve had to rebuild my development environment so it doesn’t use Docker Desktop on Windows anymore. What follows are notes I’ve made along the way on how I got this working on my particular laptop. This is not a tutorial! While the notes below might help you, they’re mostly a reminder to myself, in case I need to rebuild again, or adapt this into documentation for the rest of the team.

Docker on WSL

Uninstall Docker Desktop. Make sure WSL2 and a distro are installed and updated, then follow this guide by Jonathan Bowman.

Install docker-compose:

sudo apt-get install docker-compose

Git configuration in WSL

Setup Git to use your email address and username:

git config --global user.name "Your Name"
git config --global user.email "youremail@yourdomain.com"

Use the Windows Credential Manager, to share credentials across WSL/Windows:

git config --global credential.helper "/mnt/c/Program\ Files/Git/mingw64/libexec/git-core/git-credential-wincred.exe"

WSL Tweaks

Set the default WSL distro:

wsl -l --all #list your available distos
wsl --setdefault Ubuntu-20.04

Create the file %USERPROFILE%\.wslconfig, and add the following:

[wsl2]
memory=8GB              # How much memory to assign to the WSL2 VM.
processors=4        # How many processors to assign to the WSL2 VM.

Adjust the values as necessary. This limits the VMMEM process to a sensible amount of resource usage – it’ll consume everything it can otherwise.

Restart WSL:

wsl --shutdown

(Open a new WSL terminal to start it again)

Windows Terminal Tweaks

To create a command which opens a single tab which is split into four panes, with each pane set to a different service directory, open the settings.json file, and add the following in the commands array:

{
            "command":
            {
                "action": "wt",
                "commandline": "new-tab -p \"Ubuntu-20.04\" -d \"//wsl$/Ubuntu-20.04/home/chris/dev/graphql\" ; split-pane -V  -p \"Ubuntu-20.04\" -d \"//wsl$/Ubuntu-20.04/home/chris/dev/inbound-service\"; split-pane -H  -p \"Ubuntu-20.04\" -d \"//wsl$/Ubuntu-20.04/home/chris/dev/outbound-service\"; mf left; split-pane -H  -p \"Ubuntu-20.04\" -d \"//wsl$/Ubuntu-20.04/home/chris/dev/front-end\""
            },
            "name": "startdev"
}

The network-style formatting of the starting directory is necessary, otherwise the path won’t be parsed properly.

Other

Install Node, etc on WSL by following this guide in the Microsoft docs.

To get VS Code Remote working, open a WSL terminal, then run the following:

code .

This should automatically install the Remote server. Once done, a Remote editor can be opened in Code on the Windows side. Extensions for Remote are managed separately, so install any that are needed, such as Docker, etc.

To have the VS Code Remote window make sure Docker is started when it’s opened up, add the following to ~/.vscode-server/server-env-setup on the WSL side:

DOCKER_DISTRO="Ubuntu-20.04"
DOCKER_DIR=/mnt/wsl/shared-docker
DOCKER_SOCK="$DOCKER_DIR/docker.sock"
export DOCKER_HOST="unix://$DOCKER_SOCK"
if [ ! -S "$DOCKER_SOCK" ]; then
    mkdir -pm o=,ug=rwx "$DOCKER_DIR"
    chgrp docker "$DOCKER_DIR"
    /mnt/c/Windows/System32/wsl.exe -d $DOCKER_DISTRO sh -c "nohup sudo -b dockerd < /dev/null > $DOCKER_DIR/dockerd.log 2>&1"
fi
Categories
Hobby

Warhammer+ First Impressions

So far, so good; let’s see where it goes.

I think that’s probably the best way to summarise my thoughts day one of Warhammer+, Games Workshop’s new subscription service. It’s received a fair bit of hype and attention over the last few months and, paradoxically, because of that my expectations were low. But it looked on the surface to be a good deal so I figured I’d sign up for the first year and see how the various services covered by the subscription grew.

Signup was – for me – very simple, and I was up and running before the service officially launched. The Warhammer TV app was available in the App Store by the time I woke up, so I had it on my phone and Apple TV in minutes. At the time the app didn’t offer in-app subscription options, and because of Apple’s rules the app also doesn’t display any links or instructions on how to subscribe outside of in-app purchases. So for a few minutes I figured there was no choice but to wait until the go-live announcements were made and instructions given – and then I remembered the whole thing was driven by the same MyWarhammer account system which powers the 40K app and the online store. A quick login later, and I had the option to upgrade my 40K app subscription to Warhammer+.

Now, here is where I had a much easier time of it than many of the people I follow on Twitter. My previous app subscription was not made through iOS, so I just had to give my billing information, pick my free miniature, and my upgrade was done. It took seconds. In-app subscription users have had to jump through several hoops to do the upgrade, which I can imagine were frustrating.

Linking the app on the Apple TV to my subscription was a case of entering a one-time code into a web page, just like the YouTube app and similar. After that, I was able to access the small library of launch video content.

The app itself is fine, and does what it needs to do. There’s a small amount of free content (trailers, some basic painting tutorials) so there’s at least something you can try out to see if the experience is OK on your devices.

There’s also a web version, if you’re using a device which doesn’t have a supported app.

A screenshot of the Warhammer TV web UI

So far I’ve watched the Masterclass painting videos, and two episodes of the Hammer & Bolter anthology show. The painting videos are really good: clearly presented, with great production and a high level of detail. There’s a lot of why to go with the how, which is refreshing to see.

Hammer & Bolter is a show I know will split opinions. It’s interesting, and it’s got a unique style – but I can definitely see why it wouldn’t be to everyone’s tastes. It’s not a slick anime or polished CG animation, and often comes across as cheap and lazy… but there’s something endearing about it that I enjoy. Personally, I think the look of it is 100% a stylistic choice, rather than a cost-cutting concern. The initial episodes have a bit of an 80’s Saturday morning cartoon vibe (with the violence ramped right up), but the comparison I keep coming back to is an animated heavy metal music video. It’s a bit low-budget looking and over the top, but it’s fun.

I’ll be watching the other videos as time allows over the next few days; I’ve heard good things about all of them.


So that’s the streaming service bit, but what about the rest? Warhammer+ (for now) covers two more services: the 40K app, and Warhammer Vault.

The 40K app isn’t really worth spending any time on. After an update which rolled out mid-morning it works with the new subscriptions, but otherwise it’s the exact same app, warts and all.

Warhammer Vault, however, is something I’m very interested in. It promises to be the official go-to repository for out-of-print lore material and magazines. For many people, high quality and simple access to old White Dwarf issues is worth the price of Warhammer+ alone!

Oddly, he Vault isn’t delivered as an app at this time, but a website. This stands out a bit given everything else digital covered by Warhammer+ is an app you can download. Games Workshop have released apps for this sort of content in the past, so I wonder why not now? Maybe it’s something coming later and wasn’t ready for launch?

The Warhammer Vault

The reading experience is fine enough for the moment; it works, which is the main thing. It’s basically a “PDF” viewer embeded in a web page so you lose some of the potential reading area to the website UI. You can’t download files for offline reading, and you can’t make them fullscreen by themselves. The file sizes are massive too, which could cause issues on older devices or metered internet connections. Even my PC and iPad struggle to render some pages without it getting stuttery. It’s not the end of the world, but it’s something to be aware of.

The more I think on it, the more I do hope they release an app with an optimised reading experience. Perhaps with the ability to curate reading lists? Better organisation would also be good to see, because at the moment there is none. Everything is listed on a single page. While I’m poking holes, do I really need to see a large “subscribe to Warhammer+” banner if I’m logged in and subscribed?

The launch content selection is a bit eclectic… but it’s generally good stuff. there’s the lore sections from a dozen or so old supplements and rulebooks, with seemingly no rhyme or reason why these particular publications are available and not others from the same period. There’s the Gathering Storm trilogy from 40K, which sets the stage for the current state of the in-game universe, along with a few pieces from 7th Edition. On the Age of Sigmar side, there’s the lore from the first edition rulebook of the main game and from the Underworlds spin-off.

The stars of the Vault in my view are the entire 30-issue run of Warhammer: Visions, and every issue of White Dwarf from 2020. Visions was a great-but-misunderstood magazine from 2014-2016 that was packed full of great miniatures photography and inspiration. I’m looking forward to diving into it again, and hopefully more people will come to appreciate how nice of a resource it was.

I suspect most people will be interested in the White Dwarf back-issues. For now it’s just 2020, which has a lot of good content – including some I was about to buy back issues for – so I can’t really complain. Games Workshop have said they’ll be adding content to the Vault on a weekly basis, so I’m hoping we start seeing some truly ancient issues appearing in the not-so-distant future (by which I mean issues from my childhood!). I’m interested to know the lead time between new issues of White Dwarf hitting the shops and then being added to the Vault will be. I suspect it will be around a year, but I’ll be keeping an eye on it. Even beyond magazines, there’s 40ish years of publications to draw upon, so there shouldn’t ever be a “content drought” in the Vault.


So… to wrap things up in a bow: Warhammer+ and the various services it covers are off to an fine start.

The content that’s available is (in my opinion) good, but there’s obviously not a huge amount of it yet. Weekly additions are promised, but I can totally understand if you take a wait-and-see approach right now.

The means of accessing the content work well enough, but could do with at least a little refinement in the coming months. Nothing’s broken in a “the 40K app at launch” kind of way, it just would be nice to see a few improvements to the user experience.

Ultimately, I like what I’ve seen so far, but I’m more excited about where things go from here. If they can keep up the momentum, regularly add interesting content, maybe even add new services, and sustain the services beyond the launch “honeymoon” period, then Warhammer+ could be a real winner. If not, then I feel like I’ve already got access to enough to justify this year’s subscription fee.

Categories
General/Life Work

Microsoft Certified: Microsoft 365 Fundamentals

Note to self: don’t book exams for very first thing on a Monday, as you might not get to finish your coffee beforehand! Bad scheduling aside, this morning I passed the Microsoft MS-900 exam. This takes me to five certifications this year, adding Microsoft Certified: Microsoft 365 Fundamentals to the list.

I hadn’t really planned to do this exam, and it was very much a spur-of-the-moment thing, largely driven by “well, I’ve done the others, so I might as well…” As I mentioned the other day, I found this one a bit odd to study for. Although I passed, I don’t feel I was as prepared for this exam as I was my others, even though I tried to approach it in the same manner I’ve approached my other certifications this summer. I really struggled to find resources which were both comprehensive and up-to-date. A lot of the non-MS resources were from 2019 and 2020, but the exam was updated in 2021. That said, enough of the core information was available, and my view is probably being tinted by my initial… disappointment(?)… at my own performance. Yes, I know that sounds odd to say after passing, but I guess I just feel I could do and should have done better.

I guess if I had any advice to give about the exam it would be: study the chart of MS365 editions and what features are available in each one. There were a lot of very specific questions on this – more than I was expecting – and I wish I’d learned it in greater detail.

As far as resources go, I used my regular mix of Microsoft Learn’s free study material, and the Percipio video courses I have access to through my work. As there is no Whizlabs module for MS-900, I used MeasureUp for the first time, so I could have access to a reliable online practice test. It was good, following the format of the real exam pretty closely. I’ll be using their tests again when I’m going for the AZ-104, AZ-204, and AZ-400 exams.

Categories
General/Life

Varying Degrees of Depth

I’m studying for the MS-900 exam (yes, yes, I know I said I was going to take a break from exams…), and one thing I’m really struggling to reconcile in my head is that all of the security-related questions are much more technically in-depth than any of the questions I remember getting in the security-focussed SC-900 exam or its preparation material. In fact, a lot of the questions seem to be more in-depth than the equivilent tests for most of the other Fundamentals-level exams I’ve studied for.

Like, SC-900 didn’t touch on Password Hash Sychronisation, or Pass-Through Authentication at all (at least, not by name). Like all 900-series exams it covered the area broadly, but at a relatively shallow technical knowledge level.

It’s not a big thing, but it’s enough of a WTF moment whenever it comes up that I often doubt myself when answering the practice questions, because I should know this. So far I’m finding MS-900 to be one of the harder Fundamentals exams to prepare for. Not quite as bad as PL-900, but it’s getting up there. I’ve generally found the practice exams to be harder than the real thing (to help you learn the material), so it could be an element of that at play.

I guess we’ll find out on Monday morning!

Categories
Hobby

Warhammer 40,000: Imperium Partwork

Having just done a massive clear-out and reorganisation of my Waarhammer “backlog”, I’m very wary of signing up to the Warhammer 40,000: Imperium partwork and adding more, even though it appears to be good value for money and covers four armies I’m interested in… but I do have a soft spot for unique special edition Space Marine miniatures, and this captain is tempting:

ImperiumPartwork Aug18 Captain
Categories
General/Life

Results May Vary

We got our fully fibre-optic internet connection fitted and activated today. The engineer arrived promptly, just after 8am, and despite the previous engineers making his job more difficult by fitting the connection point in an awkward spot he managed to finish everything within an hour and a half.

Before they left, the engineer ran a speed test on the line, and it reported a maximum speed of roughly 940Mbps in both directions. For comparison, our previous “half fibre” maxed out at around 63Mbps down/30ish up. So 900+Mbps is the confirmed upper bounds we can expect (in theory), and in line with what the ISP is promising.

In reality, things have varied wildly from device to device. I should note here that the engineer’s test was done over ethernet, and all our devices are WiFi-only. Most are up to WiFi 5 (AC) standards, but we do have a few still on the older WiFi N.

My iPhone 12 posts results anywhere between 350-575Mbps down. My older 9″ iPad Pro gets around 230-305Mbps down. My creaking, old, desktop PC was getting 44Mbps until I remembered I had a WiFi AC USB adapter I could use to upgrade the internal N adapter – at which point it started getting around 141-215Mbps. Curiously, both the iPad and desktop get upload results up to around 120Mbps higher than their respective download speeds. My work laptop (which is more or less on top of my desktop) gets around 450-475Mbps in both directions.

This isn’t intended to be a “first world problems” moaning post about not getting the absolute maximum speed. I know WiFi is much slower than a wired connection, and I know that different factorsaffect the speed an individual device. Rather this is just me noting how surprised I was to see such a large discrepancy between devices of broadly similar capability – many of which are sat right next to each other as they’re being tested.

Categories
Work

Appraisal

I had my yearly performance review/annual appraisal today. I know a lot of developers (and non-developers!) who treat these with a very dismissive or laid-back attitude. A lot of the time it’s because it’s seen as a “box ticking” exercise with little obvious benefit to the appraised. Another common attitude I’ve seen over the years is that the outcome is already decided before the meeting, often on personal or emotive reasons rather than an honest and clear-eyed look at how the preceeding twelve months have gone.

I’m not someone who sees the annual appraisal this way. As someone who has been on both sides of the table at different times, I view the appraisal as an important milestone in the year, and should be treated as such. If you don’t take your own appraisal seriously – particularly in the preparation for it – then how can you expect others to? In the rest of this post I want to talk about the appraisal, and my thoughts around how to approach it (from the point of view of the appraised in this case – maybe next time I’ll do the appraiser viewpoint)

In my experience the appraisal is a good opportunity to do three things:

  1. Confirm to yourself what you’ve achieved over the last year – and maybe more importantly – remind your manager of it. Managers are not omnipotent. They don’t necessarily know or remember every little victory you’ve had. So remind yourself, and remind them.
  2. Look at the trajectory you’re on and where you’re headed over the next year. Is that where you want to be? Is that where your manager wants you to be? What do you want to achieve?
  3. How do your colleagues see you? Where does that fit into the above two points? Make sure you get some honest, constructive, feedback from coworkers.

The important piece is that this isn’t just some onerous process which is mostly for the benefit of HR. An appraisal is guaranteed one-on-one time with your manager to have an open and frank discussion about you and your career. Not just the job you’re doing now, but also what you’ll be doing next and beyond. The appraisal can be thought of as the regular status check on your career ambitions.

This year, my appraising manager isn’t who I directly report to on a day-today basis. They used to be closer to me in the reporting structure, and they chaired my promotion panel earlier this year, so they’re not unfamiliar with me – but they don’t necessarily know the fine details. For example, they knew I had been looking into training and development activities, but didn’t specifically know I had completed four certifications in the last few months; they also didn’t know all of the impact I had been making on my current project – so I had to recount those stories, backed up by the feedback from my colleagues.

It’s supposed to be an honest discussion, so I make sure to touch on the things I feel didn’t go so well – not to dwell on them, but to acknowledge what could have been better and that I am or have been thinking about ways to improve for next year. Showing self-awareness and openness to identifying, accepting and working on your own failings is an underrated skill, in my opinion, and it’s generally stood me in good stead over the years

In return my manager highlighted some areas of feedback that I had glossed over in my own reading, chiefly around leadership skills and my capabilities as a leader. It’s odd; I’m a lead developer who can guide a team to a goal, but I never really see myself specifically as a leader. Cheerleader for the team members, maybe! Yet here I was being asked to think about my leadership style and if there were any leadership-oriented training I would like to do. I hadn’t considered it before the meeting, but maybe I do want to start thinking about what comes after the full-time technical roles.

Finally, I make sure round out each appraisal by asking the appraiser to tell me exactly where they see how I fit into the organisation and what it is they expect from me. Normally you’ll have a sense of this from throughout the discussion, and there’ll usually be a written version of this after the appraisal, but I find explicitly asking the question has some benefits:

  1. It lets you know immediately if you’ve been successful in getting your own message across about the year.
  2. Generally it will give you the more “unfiltered” version of your appraiser’s thoughts. We can’t always help it, but often there will be a difference in how people answer a question directly in conversation with someone, versus how we write it in a document which might be read by others.

You want to use your appraiser’s response to judge where you go from here. It should inform and set the tone for what you do in the year to come.

I won’t give you the response I got to this question, but I was definitely happy with it. It was positive, constructive, and gave me ideas for the coming twelve months. It told me that where I want to get to is well aligned with where the organisation would like me to go, while also suggesting steps to bridge into what comes after the shortterm plan.

And that’s great. Because it meant that the work I put in for this appraisal – and the previous appraisals too – meant that I’ve been able to carve out a space where I can be fulfilled in the sense of controlling my own career progression and what I want to do, while also keeping myself in tune with what the organisation wants and needs from me.

So I implore you: don’t write off the annual appraisal process. Engage with it, learn from it, and use it to your advantage as another tool you can use to build your career.

Categories
General/Life Work

Microsoft Certified: Security, Compliance, and Identity Fundamentals

Microsoft Certified: Security, Compliance, and Identity Fundamentals award badge

This evening I completed (and passed) the Microsoft SC-900 exam, earning my fourth certification this year – Microsoft Certified: Security, Compliance, and Identity Fundamentals.

This certification was interesting in a few different ways – first, it was kind of done “spur of the moment”; I’d passed my other exams and wanted to keep the momentum going, so I booked it without much forethought. Secondly, I’ve done loads of Secure Software Development Lifecycle training and documentation over the last few years, so I feel I might have had a leg-up on at least some of the fundamentals of this topic (pardon the pun). Finally, I genuinely found some of the tools referenced in the training to be quite interesting in and of themselves – something I hadn’t appreciated before diving in.

As per usual, I used my regular mix of Microsoft Learn’s free online resources, supplemented by access to Percipio resources through my work, and this great “cram” video by John Saville.

I’m planning to have a bit of a break before I’m back on the exam trail; I next have some virtual classroom training in September and October, followed by Associate-level exams in October and November, which will be my last for the year.