Categories
Experiences General

Kicking 2021 into High Gear with an Electronic Standing Desk

I’ve been interested in using a standing desk for about 3 years now. Soon after I moved into my own office space, one of the first things I did was purchase a decent ergonomic chair, and then a standing desk. Not wanting to buy an expensive adjustable desk I wasn’t sure I would actually fully utilize, I found a second hand, manually adjustable one.

Unfortunately, after I took it home I discovered that adjusting the height required me to climb under the desk, unscrew two large locking screws, manually raise the stand on either side and then tighten the screws again. This desk was meant to be set to one position, either standing or sitting, and not meant to be used to switch between either during the course of a day.

Crawling under my desk and using these on either side when I wanted to adjust the height was not what I had in mind.

I’d since been eyeing the TekDesk v2.0. This was a locally produced product from the Cape Town based company that launched the DeskStand, a unique way to turn a regular desk into a standing desk, back in 2015. While the DeskStand was not what I needed, I’ve followed the company since that launch, and recently they launched the updated TekDesk, which was exactly what I was looking for.

The price had always put me off though, so I stuck with the other desk and my ergonomic chair, until I badly injured my lower back late last year. One of the contributing factors to this injury was the fact that I sit for at least 8 hours a day. Not being able to walk properly for 2 weeks gave me food for thought as to my work habits. So this past Black Friday, I decided to take advantaged of their sales and invest in a TekDesk.

Unboxing

The TekDesk ships in two separate packages, one for the desk top, and one for the stand kit. The desk top is still manufactured locally in Cape Town, using the same material as the original DeskStand, and the stand kit is sourced from China. I will say that it’s all very safely wrapped in solid packing materials, so that everything is well protected, and nothing had a scratch on it.

Desk top and stand kit packages
The stand kit unpacked

Installation

On the product video on their website, DeskStand claim installation takes less than 5 minutes.

What they don’t tell you is that’s specifically for setting up the stand kit, but the process of actually attaching the stand to the desk top, and then sorting out the motor wires and cable tying them to the desk means the entire affair will take about 30 minutes. That’s still pretty quick and I had the entire thing set up, with all my computer hardware and peripherals in place, in under an hour.

Fully installed TekDesk

I would also point out that this was completed using an electronic screwdriver, as the combo allan key/screwdriver they ship with the stand is woefully incapable of being useful. Make sure you have a decent Phillips screwdriver handy.

My favourite features

The thing I love the most about the desk is the 3 memory presets for automatic height adjustment settings. Once I’d figured out my ideal sitting and standing height settings, and programmed the unit, it takes a mere 10 seconds to go from sitting to standing.

The other thing I really appreciate is the locally produced desk top. It is a natural birch top with a surface that is durable, but smooth enough to be used as as a mousepad. I will probably still keep using my actual mousepad, but it’s a really nice place to work on every day.

Local is lekker!

Finally, being locally produced, it also means if any goes wrong with it, I can take advantage of the 3 year warranty on the motors, or the 6 year warranty on the frame.

One final point I would mention, if you’re using a triple monitor set up with a PC, there’s not much space for the computer on the desk with the monitors, and unless all your cables are really long, you probably won’t be able to put it on the floor either. DeskStand does sell a separate holder for a PC, which can attach to the desk. Fortunately, I have a shelf next to my desk, so I put my PC on top of that.

If you’re in the market for a standing desk option, I highly recommend checking out the DeskStand range. They even sell the stand kit separately, if you want to use an existing desk top.

Categories
Experiences General

Personal Goals for 2021

I’ve never really been the type of person who writes “year in review” posts. Mostly this is because I don’t have any ventures that would be interesting to report yearly results on. What I have done in the past was to set some personal goals for the coming year, which I managed to do for 2016 and 2017. For some reason, I skipped setting goals for 2018 but picked it up again for 2019. I also didn’t do any goal setting for 2020, which turns out might not have been the worst idea, given how the year ended up turning out!

If I think about it, one of the possible reasons I skipped out on public goal setting for 2018 and 2020 was the fact that both 2017 and 2019 were quite busy, so I didn’t really have time to set any specific plans for the year to come.

This year I do have some very specific goals for things I want to achieve in 2021, so this post serves as a record for those goals.

It’s worth noting that these are very much personal goals, and fall outside of what I want to achieve professionally in my career as a developer. That’s a whole other blog post…

Write a book

I’ve had the idea to write a book for about 2 years now. My initial attempts to start a book on working with freelance developers didn’t make it past chapter 1. That was partly because, over the course of the last two years, I’ve moved away from freelancing. I think my best option here is to focus on a technical book, something which I’m very comfortable with, and something that I think people will actually pay money for.

I already have one idea, based on a talk I gave at a conference a few years ago. It won’t be the longest book in the world, so I’m not expecting it to make millions, but if it goes well it should inspire me to create more technical content. I’ll probably look at writing it “in public” so to speak, using this blog. What I may do is write the outline and introductory chapter(s) as a couple of publicly published blog posts, and then invite folks to pre-purchase access to the rest of the content, as it’s being written. I’m not entirely sure if this will work but I have a feeling that knowing folks have prepaid for the final book, meaning they want to read it, will help me focus my efforts towards finishing it.

Plugin Testing Course

Earlier this year I came up with the idea of creating a WordPress plugin testing course. I even got as far as creating the outline for the course, but that’s as far as I got, for two reasons. Firstly, I discovered a fellow WordPress developer has already released a similar course (he kindly invited me to take his course and give him my feedback, which I’ve embarrassingly not had the chance to do yet, sorry Fränk). Secondly, the global pandemic had an effect on the amount of time I could spend on non-income-generating activities.

This is still something I would like to look into, perhaps from a different perspective, in the new year.

Open Sourcery Podcast

I initially launched the WP Hacker Cast on a whim, with no real plan other than trying to connect with fellow WordPress folks. Last year I didn’t really have much success with it, but I did at least manage to interview someone I’ve been dying to talk to since it began.

In 2021 I plan to rebrand the podcast and move the focus away from just being about people in WordPress, to being about all folks involved in open source projects. I have some very interesting people I follow on social media, and I’ve never been able to invite them to the podcast, because of it’s WordPress slant. By switching to a more general focus on open source, I hope that I’ll not only be able to interview interesting WordPress folks but folks from all walks of life in our wider open source community.

WP Notify

Speaking of open source, this year I am looking forward to being able to put more time into WP Notify, the WordPress notifications feature project I’ve been working on for almost a year and a half. Over the course of last year, I struggled to find a way to put regular, scheduled time into it, so for 2021 I plan to dedicate at least one hour per week to make sure the project is moving forward.

Moar blogging

In 2020 my blogging efforts suffered. A large part of this is that I didn’t really have a lot of solid ideas to talk about. I tend to prefer to blog about things that might be interesting to my handful of readers, be it general tech content, development tutorials, or personal updates that might interest folks. My hope is that with the goals I’m setting this year, I’ll be doing more interesting things, and therefore have more to blog about.

Categories
General

OBS Studio 26.1.0 for Linux – Now with Virtual Camera Support.

Some time ago I discovered OBS Studio as a solution for recording internal screencasts for tutorials and workshop videos. As a Linux user, I was pleased to find that it was both open-source, and therefore available for Linux. It lags a bit when it comes to releasing new features vs the Windows version, but it’s perfect for what I need.

Recently I was trying to see if the Linux version supported the Virtual Camera option that the Windows version did, and at the time it sadly did not. Thanks to an in-depth tutorial by J. B. Rainsberger, I was able to configure a working virtual camera, but for some reason, I could never get it to work right every single time, and had to reinstall things every time I wanted to use it.

Fortunately, since the latest release, OBS Studio for Linux now includes support for a Virtual Camera.

All I needed to do to enable it, was to install v4l2loopback-dkms using this command:

sudo apt install -y v4l2loopback-dkms

I initially couldn’t find where to enable the Virtual Camera, until I saw the button under my Stream/Recording Controls.

After clicking “Start Virtual Camera” I fired up my Zoom application, and lo and behold, there it is as an option for my camera feed.

I’m pretty happy about this, I use OBS quite a bit for recording walk-through videos for the development and support teams at Castos, so this is going to save me a lot of time and stress.

Categories
Development Experiences General Ubuntu

Building A New AMD Powered Workstation

If there’s one hobby that I have that I don’t get to spend much time on, it’s building/upgrading PCs.

A few years ago I upgraded my 10-year-old workstation/gaming PC, to something a bit more modern. At the time I was working with a fairly limited budget, and so I had to make some concessions around what parts to purchase for the upgrade.

During the course of the 10 years since the original build, I had added a 128 GB SSD boot drive and included additional two additional 1 TB HDD storage drives. So when I upgraded I opted to merely improve the PC internals, namely the motherboard, CPU, memory, and graphics card. The plan was to use this as both a workstation PC as well as for gaming and keep my laptop for remote work/conferences. During the upgrade, I discovered that I had a spare 128GB M.2 SSD from my then laptop that I could use as a secondary boot drive. So I ended up with a dual boot Windows (for gaming) and Ubuntu (for work) machine.

I’ve been using this way successfully for the past two years, but over the course of the last year, a few things become clear to me.

Firstly, while the 128 GB M.2 SSD was nice and fast as a boot drive for Ubuntu, it wasn’t enough space to keep all my work-related files on, so I had to purchase an additional 1TB storage drive, move my work files there, and symlink them all up to my boot drive. This meant that indexing new projects in PHPStorm could often be painfully slow.

Secondly, Steam Play, and especially the work being done on the Proton tool, was getting REALLY good. It’s gotten to a point where most modern triple-A games run natively on Proton or require a few tweaks here and there to get running smoothly. Even Star Wars: Jedi Fallen Order (my favourite game of 2019), got to Gold level status on ProtonDB, even with the EA Origin account sign in required nonsense.

Thirdly, and a little selfishly, I wasn’t actually getting much time to game. Call me stupid, but as it turns out, the plan of having a gaming PC that would double as my workstation, while sounding like an amazing idea (gaming in my breaks during work hours, woohoo!) didn’t quite work out. In the two years since I upgraded the PC, the only game I actually managed to play through was the aforementioned Jedi Fallen Order, and that was only because I took the PC home and played in the evenings during my year-end leave.

With these realizations, I spent the latter part of 2019 and the rest of 2020 putting some money aside for a new build. The new PC would remain at the office, and the older, upgraded one would come home, giving me the ability to work and game at both locations. Over time I will probably only need to upgrade specific parts of the new machine to stay up to date, and then the parts they replace could be moved to the older one. By the time November rolled around, I’d saved enough to buy the parts for a modest mid-range build, with a decent upgrade path for future changes. Given that 2020 turned out to be the year it was, I decided I would like to end the year on a happy note.

A note on naming. I used to always call my workstation/gaming PC “Psyrig”, a portmanteau of my then online nick (Psykro) and the word “rig” (from the term gaming rig). As I got older I’ve dropped that name, and simply called it my workstation/gaming PC. Now that I have two, with different sets of parts, I’m going to have to think up some new names.

The parts

After much online research, I finally settled on the following parts

  • AMD Ryzen 5 3600 CPU
  • Asus TUF GAMING B550M-PLUS (WIFI) Motherboard
  • 16GB Corsair VENGEANCE LPX DDR 4 RAM
  • Samsung 970 EVO Plus 500GB NVMe SSD
  • Gigabyte GeForce GTX 1660 Ti OC 6GB Graphics Card
  • Cooler Master MWE GOLD 650W ATX PSU
  • Cooler Master Masterbox K500L ATX case

The motherboard was the most important part of the build. I wanted something that would be solid now, but have a decent upgrade path. The Asus board supports both the current-gen AMD Zen 2 CPUs, as well as the newly released Zen 3 chips, has PCIe 4.0 connectivity, supports the latest standards for external ports (USB 3.2 and USB Type-C) as well as having built-in WiFi and Bluetooth. So when the time comes to upgrade either the CPU or the Graphics Card (or both) this board should be able to handle it.

I really wanted to get an X570 based board, but the price was just to high for my budget, so the B550 would have to do.

The AMD CPU was the second most important part. I’d been eyeing the Zen2 Ryzen 5 3600 for a while, and it was a great little upgrade from my previous 2600x.

The third most important part was a decent-sized NVMe SSD, that I could use for my boot drive, as well as for storing my work-related files, instead of needing to offload them to a separate hard drive. This also meant I could keep one 1TB HDD with the old PC, for general storage.

When it came to the graphics card, I didn’t quite have enough in my budget to afford an RTX 2060, so I opted for a GTX 1660 Ti instead. Once the current shortage of the new graphics cards is over I’ll probably want to upgrade this to either an RTX 3060 Ti or the equivalent AMD 6000 series card.

I wanted to get DDR4 3200 Mhz RAM, but that was out of stock so I settled on DDR4 3000 Mhz RAM instead. To round out the build, I went with a Gold rated 650W power supply, that can handle any modest planned future upgrades, and the Masterbox case because it was the most understated, within my budget.

The goal of this build is to only ever need to upgrade the graphics card when the current one gets a bit out of date. The rest of the hardware should be pretty solid for at least a couple of years, and I can easily swap out anything that might cause bottlenecks down the line.

The build

I decided to stream the new build, instead of just taking before and after shots. I only ended up streaming the pre-build, where I made sure that all the parts were working, as trying to get a decent camera angle while I put the parts inside the case proved more difficult than I had anticipated.

Warning, content slightly NSFW

The completed build looks more or less how I wanted it to, simple, clean, fairly well cabled managed, and with all the RGB on the motherboard turned off. I still need to turn off the front fan RGB, but that’s only still on (I think) because I didn’t connect up the fan headers to the motherboard properly, so that’s a problem for another day.

Benchmarks

Hardinfo

I discovered Hardinfo when I wanted to benchmark my workstation against my laptop, for my Zenbook laptop review. While the benchmarks are related to the processing capabilities of the CPU, it was nice to see that all of those benchmarks were improved across the board in the new build. The only benchmarks that were worse were the FPU (Floating-point unit) benchmarks, which was interesting, but I have no idea what this means in the grand scheme of things.

BenchmarkWorkstation1LaptopWorkstation2
CPU Blowfish (lower is better)0.971.050.50
CPU CryptoHash (higher is better)1284.821058.341613.40
CPU Fibonacci (lower is better)0.550.390.28
CPU N-Queens (lower is better)5.124.804.40
CPU Zlib (higher is better)2.351.462.82
FPU FFT (lower is better)0.800.650.70
FPU Raytracing (lower is better)2.561.134.47
GPU Drawing (higher is better)16462.808428.9919499.27

UNIGINE

In my Windows benchmarking days, 3DMark would have been my go-to graphics benchmark tool. However, I wanted to test something on Ubuntu. After a bit of searching, I found UNIGINE, and installed and ran the Superposition benchmark, at the “1080p medium settings” configuration on both PCs.

The old machine had a score of 7355, with an average framerate of 55, while the new machine had a score of 11153 and an average framerate of 83.

For completeness, I also ran the benchmark on “1080p high settings” on the new build, and recorded a score of 8111, with an average framerate of 60. While I can’t compare this to the old build, as the 3GB VRAM on the graphics card can’t handle the high settings, it’s nice to know that I should be able to run most games at high settings going forward, or as a worst-case scenario, drop down to medium.

I’m very happy with this new build, and I hope I don’t have to upgrade anything major for at least a year. That being said, I am fully aware that the new AMD CPUs and GPUs, as well as the new nVidia GPUs, have just launched, so I have no idea how long things will last in their current state. I’m a bit of a sucker for new upgrades!