This is a look back over the last year mostly focussing on software dev and related bits that I think readers of this blog might find interesting. COVID mentions are kept to a minimum.
A 2020 Retrospective?
In my day job an expanded development team has meant we are back in the rhythm of agile sprints. One thing I’ve realised I particularly missed from this structure is the end of sprint retrospective (‘the retro’). Having a specific time slot carved out to reflect on the last sprint, what went well, what perhaps didn’t go to plan, changes we can make etc, has a near immediate positive utility towards making the next sprint better.
This post is a very loose retrospective, focussed mostly on tech over the last year, rather than a more personal read about covid-and-lockdowns-and-what-on-earth-is-actually-going-on.
Less time travelling and socialising has resulted in more reading this year, both books and blog posts. I’ve really appreciated reading physical books again. I think it’s the natural focus when reading something that can’t also show notifications. Plus the book itself acts as a gentle physical reminder to finish reading it when just placed on the side.
On the book front a couple I’d recommend that I enjoyed this year include The World Is Flat by Thomas L. Friedman and Business Adventures by John Brooks. I also finally read The Pragmatic Programmer by Andy Hunt and Dave Thomas, which has been on my ‘to read’ list for years. Definitely a book I’d recommend to developers, especially those new to coding.
For blog posts I am a big fan of Instapaper. I realised whilst writing this that aside from creating a pleasant reading experience (simple layout, great typography) it’s also an easy way to view a list of the articles I read in the last year. Here are a few recommendations:
- Optimizations As A Company of One - Ever since subscribing to Indie Hackers years ago I've enjoyed reading about micro businesses. Micro in terms of staff, rather than impact!
- Relentlessly Simplify - Helpful refresher for a year where I've been more wired in to technology than usual.
- How Shopify Manages API Versioning and Breaking Changes - Worth reading just to consider the opening story about training security dogs and how that relates to software changes.
- I have been enjoying the essays from Paul Graham this year, particularly How To Think For Yourself and Early Work .
- Tips to stay focused and finish your hobby project - Intending to put these tips to the test in January for my 2011-road-trip-website project.
Prior to 2020 I used to work from home three days a week and head in to the office the remaining two. Like many who can work remotely, I am now working from my home office every day. Here are a few notable office hardware changes from this year:
Jabra Speak 510
I bought this conference speaker in January and its had hours of use almost every day since. I typically spend a large amount of my day on calls and was finding wearing a headset for that long to be a little uncomfortable. Since COVID events really kicked off this has also been used for plenty of zoom calls with family/friends.
I’ve not tried many other conference speakers, but the Jabra design is really nice and intuitive. There is a ring of LEDs around the unit that are used for all types of user feedback (e.g. all red when the mic is muted). The product is a good example of something that is genuinely enjoyable to use because it has such great affordance.
Microsoft LifeCam Studio
Work is taking a video-first approach for calls, which I agree is worthwhile even if initially a little uncomfortable. This Microsoft camera was recommended by a colleague for good picture quality and a ‘just works’ interface. Its been great. I also run my laptop in clamshell mode all the time, so using the built in webcam isn’t really practical.
Dell U2715H Monitor
Actually purchased in mid/late 2019, but I’m counting it still in this post. I’ve long had 27” as my preferred monitor size, but specifically with a WQHD (2560x1440px) resolution (I expect a greater resolution would also be fine, but I haven’t tried that). In my non-expert opinion Dell monitors tend to have great build quality and image representation. The difference is especially obvious side-by-side with a budget monitor. The Dell U2715H has continued to met these expectations.. For years I had a Dell U2711H which was ideal, plus I managed to purchase it for £70 on eBay 6 years ago — a bargain! The problem with that model is it runs incredibly hot due to CCFL backlighting. It was literally like sitting in front of a radiator. I finally got fed up with the heat and upgraded to the next model which has LED backlighting instead, much nicer. Another bonus is it’s cheaper to run being less power hungry (36W vs the old monitor’s 113W).
Herman Miller Mirra 2 Chair
My faithful Aeron gave up this year as both mesh pieces developed rips. This was originally an eBay purchase (a theme for a lot of the more expensive bits of gear in my office) which made the cost of replacement meshes seem a little high. I ended up selling for parts and replacing it with a Mirra 2, which I’ve been impressed with so far.
Office Bookcase and Shelves
More than just a single furniture item, but some time spent this year to re-work the shelves and bookcases in my office was very worthwhile. I forget the furniture models, but I am fairly sure the bookcase is the Ikea GERSBY (only £19 new!). I made some modifications to this, adjusting the bottom shelf so I could then make skirting board cut-outs to fit it flat against the wall. Definitely not my neatest wood work but worth it for the space saving and flush fitting look.
Software wise there haven’t been any big changes this year. I am still using lots of vim, git, tmux, Chrome/FF Developer Tools and various Microsoft programs (mostly Visual Studio 2019, SQL Management Studio, Teams).
Software for Web Development
Near the start of the year I had a couple of web development projects sent my way and decided to accept. These were WordPress theme and plugin builds, which I’ve not done for a couple of years. Once I got into the flow again I was pleased to find it enjoyable. Typing this now, I reckon it’s perhaps because these projects really do have a ‘finished’ state, at least for my involvement. A lot of bigger software projects tend to go from release to release which has a different feel.
Anyway, two software discoveries came about from those projects.
Most of us know it is good practice when working on someone else's code to follow the styles and conventions they are using (tabs or spaces, how to name functions and variables etc). One of the projects this year was all tabs, which kept catching me out.
I got around this with a local `.vimrc` file that stayed in the root of the project repo. There were just two steps to this: 1) Edit your main `.vimrc` to check the current folder for additional configuration files, that's just adding the line `:set exrc`. 2) In `my-shared-project/.vimrc` add `set noexpandtab` (or whatever configuration you need for the project at hand). This proved a definite time saver this year.
Chrome Developer Tools: CSS Overview
Chrome now has a CSS Overview tab in the developer tools. It's in beta at the moment, so to switch it on you have to go to Developer Tools, Settings (top right icon), then Experiments. I found this really useful when picking up a project that was already part-complete. It gives an overview of colours used (as pictured below for this blog running locally on my machine), main font sizes, media queries (are the various breakpoints matching?) plus any unused declarations. It's like a mini CSS consistency health checker. Looking forward to this feature getting further development and full release, I think it will become a regular part of my web development workflow.
I’ve been using even more of the Azure DevOps features this year. I have been particularly impressed with the wiki. Without going into the pros and cons of when a wiki is a good fit for documentation, I’ll just say that the Azure DevOps wiki is my top choice:
- Has good markdown support. By good I mean usual stuff (headings/lists/links) but good image support and syntax-aware code blocks
- Pages are flat files in a git repo, so easy to export elsewhere, or work on from your favourite editor.
- Has an easy to use markdown web editor built in, good for those not so comfortable with the syntax.
- Hosted for free in Azure DevOps. Aside from saving the hassle of having to host the wiki somewhere, also means access control is handled out of the box.
- Has support for diagrams via Mermaid. Sometimes a simple flow diagram makes it much easier to grasp data flow around a system compared to a paragraph of text.
On that last point, I haven’t previously done much with the Mermaid JS lib but I plan to change that in 2021. It supports sequence diagrams which are typically used to show SIP interactions. I think a SIP-flow-builder web app could be really useful, at least I’d definitely use it!
On a recommendation I’ve been trying out Toggl Track, which is an app for tracking time against work. It’s a natural fit for the type of fixed-scope development tasks I took on earlier in the year, and looking at the app history that’s when I made the most use of it. Currently undecided on whether to keep using it next year.
As an aside, I did not know that the Apache webserver was a play on the phrase ‘A PAtCHy server’, but I think that’s just fantastic. I am tempted to name all my future projects in a similar way.
Plans for 2021
The day job continues to be very interesting. The Call2Teams development team has all sorts of projects lined up which range from useful tweaks to some full blown performance architecture alterations. All exciting stuff. If you are a DevOps pro and want to join the team then get in touch!
Outside of that, I might aim for a monthly blog post again. I did this a couple of years back and found the frequency of posting every 4 weeks or so a good target that was actually realistic with my other commitments.
Some of the dev projects and posts I am hoping to complete in 2021 include:
The Europe 2011 Road Trip Site
The first project next year will likely be a blog post detailing a road trip I did in 2011. Well, the post will be around how I built the site that documents the trip. This might be my longest running project, even though it’s very underwhelming from a technical perspective.
I’ve just never quite been happy with the approach I was taking for the website and content, so have scrapped it and started over a few times. I got pretty close to finishing earlier this year so it doesn’t need a massive amount of effort to get it across the line. Plus 2021 will mark 10 years since I did that particular adventure, so it feels poetic to actually finish it once and for all next year.
Psion Series II
I learnt to program on a Psion Organizer II (Series 2). More time at home this year meant more time on eBay and these classic PDAs are pretty cheap. I’ve got as far as buying one but didn’t really think through what to do with it! You can buy a comms link module to communicate via a standard serial port. The protocol it uses has been reverse engineered and looks simple enough to work with. Part of me wants to just get two-way comms going and then pick something fun to do. Which reminds of the enjoyable Atari 2600 post on Human Clock.
SIP Dialog Creator
Mentioned briefly already in relation to Azure wikis, I reckon this would be a useful tool. Understanding different SIP flows is way easier with a diagram of example packets and state changes. A tool to quickly create these is probably not that difficult seeing as the Mermaid JS lib wrapper would do the tricky graph generation bits.
Finally, one other project that comes to mind for next year is to work on some smart home ideas. Our current house has several half-finished pieces of tech that I would like to complete. Specifically a Cat 5 cable ring going to every light switch, probably intended for a low-voltage light switch panel. There are also numerous other Cat 5 network socket runs that are (mostly) unused as well.
It looks like a lot of effort was taken to put all these cable runs in when the house was renovated a few years ago and I’d love to see it utilised to its full potential. It’s not an area I know much about mind, so if anyone reading this knows a good smart lighting system that is intended for this type of cabling do let me know!