Self-hosting and Embracing the Cloud

The computing field is always in need of new cliches.

Alan Perlis

My self-hosting journey is an odd one. Once upon the time in college, my computer was simultaneously my media center, my workstation, and a server. Self-hosting was how you did it. Back then, I also hosted websites on Pair.com. After my stint as an IT guy, I lost interest in that tinkering so my skills withered for the better part of a decade.

So when I first got this old fashioned blog back online I went with an old reliable host: Dreamhost. They’ve served me well before and made things easy. Simple shared hosting. Dreamhost gives more access than many other shared hosts (e.g., SSH access), but you didn’t have full control of the system. They were far better than some of the hosts I used earlier in this century. Remember iPaska? Yea those guys were terrible.

But that was just how things were done in the early 2000s. They were simpler times where you didn’t have full access. Instead, everyone had their own control panel of some sort, and they made it easy to install common applications like WordPress. Dreamhost was a competent shop and provided a reliable service (unlike iPaska). And although people complained about the speed of the service, I never had a problem. I also didn’t have that much traffic but that’s another issue for another day.

As with all things, times changed. Dreamhost is still here, providing the shared hosting experience. They sell a good service and continue to run it competently. But the big boys (Google, Microsoft, Amazon) now sell you cloud services and also offer free levels for people to use. Sure it isn’t a 12-core processor with gobs of memory, but it is more than enough to host a few web apps. And it isn’t like I get that kind of traffic anyway. All I need is a decently fast system that I can SSH into and have root on. What I would’ve given for this level of access back when I was younger.

The big boys are appealing, but there is a dark horse in the cloud race: Oracle Cloud Free Tier. They give you two AMD compute VMs, and you can get up to Arm Ampere instances, all for free forever. The AMD compute VMs are easier to get, depending on which region you’re interested in your instance living. And they let you use standard Linux distributions including Ubuntu. They’re not a big name in the space, but boy it is hard to argue with two free AMD VMs. It isn’t the fanciest (1 GB memory each) but it is more than enough to handle a few web apps.

With a free system like that online, I’ve spent a little time here and there over the past month to get everything setup. Lately I’ve started using Docker more at home to manage some of the applications hosted on the server. That has helped simplify deployment even though it isn’t as efficient as installing everything on bare metal. But hey the AMD VMs have the resources. WordPress has its official Docker image, so I used one of those variants as my base. The good people at linuxserver.io provided the database, and I tried out a reverse proxy of a more recent vintage with Caddy. The end result is a self-hosted WordPress instance that has a valid SSL certificate that autorenews. Not bad for the price of free, with a little bit of tinkering time over the past few weekends.

Now I’ve expanded on my self-hosted journey. I’ve created a Wallabag instance for my read-it-later service. I don’t commute anymore thanks to remote life, so I don’t have the same amount of idle time every day to read through the day’s articles on Pocket. But I want to guarantee that my articles are always there for me. Even though Pocket is owned by Mozilla now, I wanted to self-host if possible. And Oracle’s AMD VMs are more than enough to meet the task.

Now, not only am I back to self-hosting this blog and some useful tools, I’m back to tinkering. It feels nice after so many years away.

Drinking the M1 Kool-Aid

So I started a new job at the turn of the new year. For the first time, I get the chance to use a Mac as my main daily driver. This is in stark contrast to the entirety of my professional life which has always revolved around some sort of a Windows based system. Even when I was the weirdo running Linux on my laptop, my main system was a Windows system. From Windows 2000, XP, 7, and ultimately 10, it all revolved around Windows.

Suffice it to say, converting to a Mac dominated workflow was pretty different. Granted, for the last 7-8 years, I have had a Mac for personal use, and for occasional light work. So I am certainly familiar with the system. But using it on a daily basis is a very different prospect.

I was fortunate enough to receive one of the new MacBook Air systems with the Apple M1 processor. This is the direct successor to my Intel based MacBook Air that is from the earlier half of the 2010s. The long and the short of it is that the new M1 MacBook Air is absolutely amazing. From the effortless performance to the snappiness of all the applications to the seamless translation of Intel-complied applications using Rosetta 2, it is an amazing system. Although I’m not naive enough to believe that Macs don’t get viruses (e.g., new M1 compatible Mac malware), it certainly is a nice and seamless system. This, combined with a workflow centered around Dropbox Business, is bringing a fresh look to my daily work.

And fortunately, the M1 does not seem to have any of the issues I mentioned in an earlier post about my Dell U3818DW monitor. Except for some minor glitches when the Air wakes up from sleep, the monitor and the laptop play together perfectly using the USB-C cable to charge the laptop, transfer the video signal, and transfer the keyboard and mouse signals. Just one cable to make it all work. Admittedly, it is a slick solution. I sometimes hook in an additional cable (line-out to the integrated amplifier) for audio, but more often than not I simply AirPlay music from the phone or the Music app, or simply stream music from one of several Internet radio stations. Seamless and reliable, the perfect combination.

Unfortunately, we still work primarily in Microsoft Word. A serviceable software package but it would be nice to have iterated on the modern word processor somewhat. Maybe sometime soon there’ll be innovation in this end of the daily work software/hardware stack in the near future.

Rediscovering Internet Radio

Being old enough to have run my computer all night to rip a CD into MP3 format, I remember the genesis of Internet radio. When iwas first released onto the world, now anyone could be a radio host.

And holy shit do a lot of people have terrible music taste.

But this was also the genesis of the live stream. Of the democratization of content. And helped emphasize how sometimes, a curated feed is exactly what we want. Sorta like how Netflix is in fact a paradox of choice.

Similarly, with music, especially if you have a streaming package like Apple Music, you have at your fingertips a library of music that you will likely never be able to finish in its entirety.

But what do you listen to? At least Apple provides some guidance and recommendations. Along with radio shows where someone curates the content for you.

But sometimes, an aimless radio station is exactly what’s needed.

I’m glad to see that SomaFM continues to be a thing. The local NPR station, WAMU, is often streaming as well in the household. But I’m slowly poking around, seeing what is out there still. With a fairly decent sound system sitting with me at my desk now, what better time to rediscover serendipity in music?

For my setup, I’m using my trusty Airplay Express with my NAD C350 integrated amplifier which are driving two Klipsch R-15Ms that I picked up on a whim at Best Buy. Driving audio to this setup, I have forked-daapd running in a docker container (courtesy of the fine people at linuxserver.io). I’ve created a custom playlist that links directly to my favorite streams, including:

Because it is forked-daapd, it works well with the Apple Remote app on the phone and is therefore wife approved. And works well with Apple Music on our individual devices. The Marantz receiver in the living room purportedly supports Airplay as well, and usually performs well. But for reliability, you cannot beat the Airplay Express even though it was released in 2012. With a firmware update from 2018, it supports Airplay 2 and is more than sufficient for my needs for the time being.

The Improved Pandemic Office

One of the things that’s changed in the new working environment is the increased usage of the home office. Previously, all that was needed was something that could do the job after hours. So I would work on the laptop while on the couch, or if I needed extra screen real estate, I could use the desktop that is hooked up to the giant 38″ screen. Not perfect but good enough for usage at home.

But now I’ve gone and changed jobs to one that is fully remote for the foreseeable future, some changes are needed so that working day in and day otu from the location is possible. To do this, I wanted to consolidate things and rearrange things vertically so that floor space is maximized. And it sure would be nice to have a standing desk. But the pandemic created a shortage of standing desks and other office furniture. And although I certainly could get some of the nicer models that are in stock, $600+ is quite a bit for some furniture that may or may not survive the next move from this residence. Sadly, I don’t see this place being the forever home.

So in the meantime, I decided to address the first item and consolidate things. It turns out that IKEA’s IVAR system was the perfect size to consolidate electronics in the corner and off of my current desk. What kind of electronics are we talking about? It includes the main desktop PC (home-built i5-4570 in a Silverstone small form factor case), the home server (home-built i3 in a Fractal Design Node 804), a laser printer (Brother HL-2270DW), a flatbed scanner (Epson V600), the router and cable modem, a second generation AirPort Express, a HDHomeRun Extend, an Electronic Objects E01, and a Spyder4Pro colorimeter. These and more were previously split between the corner of the room and the shelves of the sideboard. Now, all of these and more are placed on various levels of the IVAR shelf, clearing my desk and reducing the used floor space.

One of the major improvements from this new arrangement is the ability to use components of my old sound system as my computer speakers. My NAD C350 integrated amplifier powers two Klipsch bookshelf speakers that are placed beside my 38″ monitor. The amplifier gets audio from either my desktop or my trusty AirPlay Express that supports Airplay 2 (thanks for this update Apple!).

Shockingly, the onboard sound card in my desktop is serviceable for now. Sound quality just doesn’t matter as much when it is largely system sounds. For some of the games I still do play (Cities: Skylines, Hitman), the new sound system is already considerable improvement over some small Logitech speakers I previously used. At some point I may get a USB DAC to connect the desktop to the amplifier. But the majority of my computer’s sounds just don’t need that kind of improved sound quality. And more importantly, my music collection doesn’t live on my computer anymore. That has moved to my iPhone. The result is that most days, the speakers are playing audio streamed to the AirPort Express. Either one of my iDevices is streaming to the device or forked-daapd is streaming an Internet radio station. I still value ambient music, particularly when I’m working. The only difference is that the music does not come from the desktop computer anymore.

It has been a few days now, and this rearranged home office is a good thing. In addition to using space more efficiently, all my geek gadgets are located on the shelves now. The physical proximity of the gadgets may result in more things being hardwired into the network. Not that doing so would dramatically improve performance but I do have enough cables and the usage of wires still appeals to me. And it has been great to be in the prime listening spot for speakers being driven by the NAD amplifier.

More importantly, I may also be able to improve functionality in some of these old devices. Although Apple upgraded the AirPort Express to allow for Airplay 2, the upgrade did not give the device the ability to AirPrint to printers connected to the USB port. The printer itself has WiFi and Ethernet and can therefore function as a network printer, but the printer is too old to have natively supported the feature. But I have read that CUPS can bring AirPrint functionality to older printers.

Another little project for another time, but this project would rank well in the wife-friendliness category.

All About Some Pixels

When I first built my current desktop back in 2013, it was a fast little bastard. An Intel i5-4570, 16 gigs of memory, an SSD main drive, and a Radeon 7850. I was already well into my photography hobby and this machine made short work of the RAW files coming from my Nikon D7000. Included with this setup was an Asus PB238Q monitor.

Fast forward to 2020 and some things have changed. Instead of Windows 7, we’re now using Windows 10. Adobe Lightroom is now cloud only. My D7000 is now the backup to the Nikon D850 and my everyday carry Leica Q2. As a result, instead of 16.9 megapixels, my cameras now each output 47 megapixel pictures, and the volume of pictures I shoot has gone up considerably. In addition, I now also shoot film and the negatives I scan are at least 20 megapixels each as well. But even after Spectre and Meltdown, my trusty little i5 soldiers on and processes these much larger images with aplomb. Soon I’ll have to switch things out to maybe a Ryzen, but that time is not yet here. Instead, to my surprise, I upgraded monitors first.

The Need for Space

Work has involved more and more documents so I decided I needed more screen real estate. At work, two 24 inch Samsung monitors are sufficient screen real estate but that made my home setup of a single 23 inch monitor seem cramped. In retrospect, my first monitor, a Sony 15 inch Trinitron, seems like it would have been impossible to use. But what monitor would I end up choosing?

Enter the Dell U3818DW. Yes, 38 inches of screen real estate. Quite an upgrade from the 23 inches provided by the Asus.

Why did I pick this monitor? In addition to a recommendation from a coworker, some of the nice features in this monitor include the built in KVM and USB-C charging. In addition to charging up my work laptop (Lenovo X1) via USB-C, I could use my keyboard and mouse with my work laptop immediately when I switch to the USB-C input. This is the year 2020 – things should be this slick!

The monitor isn’t one of the newer ones with a higher refresh rate (Freesync, G-Sync). This is not the concern it used to be for me. Although I do play some games still, the Nintendo Switch is my console of choice these days. And the PC games I do play don’t need the higher refresh rates. In other words, I don’t play many shooters anymore. But to be sure, I do sometimes wish the monitor had a higher refresh rate. It is rather easy to notice ghosting artifacts when I scroll through a document quickly. I’ve gotten used to it, but it is noticeable.

This monitor also has another drawback – there are apparently problems with the Dell U3818DW’s USB-C implementation (another link, reddit link). The result is that laptops may not operate entirely correctly with the monitor, including Macbooks, Thinkpads, and even relatively new Dell laptops! Hopefully this can be resolved with a firmware update in the near future. USB-C is becoming more and more popular and I expect that any personal laptop I buy in the future to replace my trust Macbook Air from 2012 will use this connector. For now, this problem manifests itself in random input switching and/or glitching when my Thinkpad is powered up. Annoying, but I’m past the return period for the monitor, and it isn’t an entire deal-breaker for me yet. But it is something to be aware of for any prospective future purchasers.

Now, with all this screen real estate, of course I’d have to do some tweaks for my photography hobby.

Open Source Color Calibration and Windows 10

A couple of years ago, when I started getting more serious about photography, I purchased a Spyder4Pro color calibrator. Why? I had noticed how photos could look entirely different based on the calibration of the monitor being used. And how these would typically be different than what an iPad would show. This was a result of people adjusting their color settings for their own personal preferences, among other reasons. Because I would post process photos through Lightroom, I felt it was important for me to get the monitor I was using properly calibrated before post processing the pictures. So I went and splurged for a color calibrator several years ago.

At the time, I was using the Asus PB238Q monitor in Windows 7 and everything was peachy. Spyder’s included software worked well enough in Windows 7 and I got the results I wanted – nicely calibrated colors and consistent display of these colors. Was the software all that impressive? Not really, but it did the job so I didn’t really mind. And even though Datacolor considers the device to be a legacy product now, the software does seem to work in Windows 10, with a few glitches here and there.

With the new monitor, I decided it was time to investigate my options. It turns out that DisplayCAL is an open source option that can use the Spyder4Pro color calibrator hardware to generate the needed color profile. It builds on top of runs a little slower than the included software, but the results so far have been good. And with this software being open-source, I’m more comfortable using this software than the software that came with my apparently legacy Spyder4Pro.

Downsides? None so far. Another win for open source and keeping perfectly functional hardware useful years after its original manufacturer has ended support for it.

Microsoft is the … good guy?

Once upon a time, Microsoft was the bad guy. Steve Ballmer once called the Linux kernel “communism” and Linux a “cancer that attaches itself in an intellectual property sense to everything it touches.” (Wikipedia citation) This is from the guy who once trounced across a stage yelling “Developers developers developers” In this era, Microsoft would do whatever was needed to maintain market share and keep open source software licensed under the GNU Public License or similar licenses from making the inroads at companies and municipalities.

My how times have changed. Ballmer has left and now regrets his statements on Linux. Satya Nadella has changed Microsoft’s stance and now embraces Linux. For example, Windows 10 now includes OpenSSH. There’s a Windows Subsystem for Linux on Windows 10 that is a compatibility layer for running Linux binary executables natively. In other words, you can install Ubuntu (or Debian) in Windows 10. Talk about a crazy change in posture.

The new Microsoft even tries to help individual developers. Visual Studio now has a Community version licensed and free for individuals and small teams. Although the Enterprise version is still superior in some ways, the Community version is more than enough for small projects.

If you had predicted this in the early 2000s, you’d have been laughed out of the room. But here we are. Amazing.