Well, 2021 is coming to an end, and while I haven’t updated the blog with much other than a few technical projects I’ve been working on. Part of the reason for this is that being in supervision there’s a lot of work and a lot of stuff I can’t really share, but the other major thing is just that the aging blogging software I keep using is holding me back.
In 2021, I wrote a book, got it published, created a social media network, a video hosting service, a search engine, and much more, and it really made me realize how important modern tools are. So I’ve moved to a newer platform on a highly upgraded server, and I’m hoping to get the ActivityPub plugin working.
ActivityPub is a protocol for sharing messages between websites. In my opinion, it’s our only option right now for getting away from big tech and towards a Free Internet. That’s why I’ve started to go through the pain period of making the new site and getting it all working.
Most of the old articles are on here, and in some cases I was even able to add corrupted elements that didn’t work on the old site. Obviously one problem is that they all think they were posted today, but I’m willing to take what I can get.
Looking forward to more productive writing in 2022, and now that my book is completed, I’m hoping I can focus a bit more on producing content for this blog.
As I’ve documented previously, I moved this website from a third party host to hosting it from my own ‘datacenter’. For a while, said ‘datacenter’ consisted of a bunch of computers sitting in my spare room on the floor, but I wanted to clean things up and make it a bit more permanent, since I intend to just let them sit and run for a very long time, hence getting fanless PCs (and two of the machines don’t have a single moving part)
I would have preferred to use slotted tray such as the kind available from panduit, but I was limited to what I could find from home depot, so I used stickybacks and ty-wraps and hid the complexity with an extra little board. I’m very happy with the results, and it’s something that doesn’t look bad on the wall. Even better, these computers really are meant to be mounted vertically, so I immediately got a 10+ degree celsius temperature drop.
In the field, neat installations are very important. A neat installation is more likely to stand the test of time, and the extra thought you put into workmanship will translate to a more robust final product most times. This home installation took a bit more time and money to complete, but it’s working better than ever and there’s a lot fewer ways it can be damaged than if I let everything be loose.
I’m never a fan of when the website is down in spite of the fairly small number of readers (hi everyone!), but I have wanted to make a change for quite some time.
In a previous entry, I talked about migrating from from my previous hosting provider. Godaddy was a decent host, but they made some changes that stopped this blog from operating properly, so eventually I switched. I didn’t really want to go with a third party host, but after fighting with trying to get a port opened to the outside world, I decided it was safest to do so. At the same time I started playing with Nextcloud, a service that’s sort of like a self-service google cloud. I really like nextcloud, and every few months I see it get better and better.
Unfortunately, nextcloud isn’t a small or simple program, and eventually the hosting company got upset with me for using to much resources on their servers. They offered me to pay a large sum for their top plan, but I wasn’t really feeling warm and fuzzy about third party hosting — who was to say they wouldn’t take the money and still be upset with me for using too many resources? Besides that, there were things I wanted to do that I’d want direct control to accomplish, so I decided to run my own server. In my experience, fans are the #1 most likely cause of failure on a PC, so I decided my websites would run on a fanless PC. I found a fantastic deal on an NDIS 163 fanless sign PC. The specifications of the PC are right on track with what I was looking for: a Core 2 Duo low energy CPU, and a SATA hard drive. It came with a Crucial MX500 SSD, but I wanted to use a spinning hard drive for this server because in my experience spinning hard disks are still the most reliable choice for long-term storage.
I looked inside at the box, and found some standard DDR-3 memory slots, a couple mini pci-e card slots for wifi or wlan, and a replacable CPU block. The heat sink for the CPU and chipset connected to the top of the machine with some thermal pads. Overall a simple, boring design which is exactly what I wanted.
The power connector turned out to be the biggest issue. The power connector is KPPX-4P 4-pin male connector. I determined by looking at the circuit board that the top to pins were positive, and the bottom two pins were negative. Miracle of miracles I actually happened to have such a connector in my house, so I quickly built a power supply.
It’s surreal turning on a PC like this. Most PCs announce that they’re running with a loud whirr, this one doesn’t have anything like that. Even the mechanical hard drive is so quiet that all other ambient noise in the room overwhelms it. You don’t hear a thing.
If anyone is coming here hoping to find out if you can use an NDiS-163 as a daily driver PC, I strongly recommend against it. I ran pcbenchmark in Windows 10 and what I found is that it was relatively fast for the components within, but really very slow compared to anything you’d use on a regular basis. Mobile versions of CPUs tend to be de-rated to reduce the energy consumption, so even as a core 2 duo, it is already slower than usual, and the video is just a standard intel integrated graphics which don’t like Windows 10 very much at all. Based on the temperatures this ran during setup (The core temperatures were below 40C) I expect this machine to run for decades without issues, which is what I wanted. Worst case scenario the hard drive fails and I install another one.
To be honest, for the sake of a good story I wish I could tell you there was a bunch of excitement and interesting problems setting up the computer, but there wasn’t. The machine is a pretty straightforward intel-based machine, and ubuntu server installed without any problems. This document contained all the basic steps for installing nextcloud, and the only big change is I switched from php 7.2 to php 7.4 since I saw that the next version of nextcloud won’t support 7.2 any longer.
I’ve wanted to use nextcloud talk between my wife and I, so I used This document to set up a TURN server. Such a server acts as a go-between if two machines are both behind NAT and thus cannot talk to each other directly. This meant that video conferencing functioned — which is fantastic. Imagine, you get full video conferencing without a middle-man. Everything involved is your own hardware!
I used this tutorial to set up encryption, so everything is https. Google pushed for https to be default on the Internet quite a few years ago. Frankly, it’s sort of a waste for 99% of what you’d do. Did you really need to encrypt this article to read it? It’s free for all to see, you know… Regardless, playing ball with Google is a pretty much a given in 2020, so I went ahead and did as they asked.
One of the problems I faced last time is that I couldn’t get a port 80 or port 443 to the outside world. Thankfully, I resolved the issue by taking control on my own — replacing the phone company’s router with one of my own. Now I face a problem of dynamic IP addressing. Someone made a great article here that shows how to automatically update your dns records within 15 minutes of an IP address change. I followed that and now all my sites resolve to their domain names.
And that’s about it! Like the rings in a tree, I can go back and see the signs of the different eras of my websites, and I love the process of learning how to set it all up.
For the past most of a year, this site sat in limbo. The question was, “What do I do with this place?”
After several years, my web hosting was about to expire, and I didn’t know if I wanted to pay to keep things running.
Bottom line is, yes I am, but along the way I learned a lot about behind the scenes stuff, and I’m more in control of my website.
At first, I was looking at hosting the site myself. I downloaded a copy of Ubuntu server 18.04 and threw it onto a spare machine. Ubuntu server is pretty straightforward to get running. I set up apache, mariadb, and PHP. This all came from different write-ups I found online.
Apache is a web server that’s been around forever. It’s open source and has a modular architecture that allows a lot of different technologies to be used by just loading a command line. One thing I learned this time around is that one apache Apache server can be configured to serve a lot of different websites. For example, jasonfirth.ca can be configured to point at /var/www/JasonFirth.ca/ but my fake outrage site canceljasonfirth.ca can be configured to run off the same server at the same IP address and configured to point at /var/www/canceljasonfirth.ca/
Apache is smart, it knows how you access the site. If you reach the server from the url https://jasonfirth.ca or something else.
Mariadb seems like a fork of MySQL. There’s some stuff to unpack here. Open source projects allow any person to create a new project based on their source code. You could take the source code of Firefox and make all the icons green and rename it luckycharmsfox and as long as general Mills is ok with you using the lucky charms trademark and you follow the Mozilla license.
MySQL is a database server that’s free and open source, but it also has a paid version. The paid version is called “enterprise” and has additional features. Mariadb appears to be a fork of MySQL that brings many of those enterprise features to MySQL.
PHP is a scripting language also called “post hypertext processor”. Essentially, it’s a programming language that lets a website you’re watching make decisions on the server and make modifications to the page before it is sent to you. One way i used PHP on a previous version of this website is I had a script to add a navigation menu from one file to all the pages without having to maintain the menus on all the different pages, but php can do many things. The entire page is now a PHP based content management system.
So why did I go with these particular packages? Well, once I set up the server in my home, I was sitting there with a server whose only job was to serve webpages and who had a huge hard disk. I decided to play around with a software package called nextcloud. Nextcloud is a really neat package. It basically lets you run your own cloud services — it starts with something like Google Drive and contacts, but there are hundreds of plugins that let you add new features — calendars, task lists, budgets, chat systems including video chat, webmail, and much more. Obviously these services already exist, but in this way you own them and control them on your own server or your own web hosting, and that’s liberating.
I made the joke about cancel culture before, but it’s true regardless — Google in particular is looking to pare down the number of people using their services on YouTube to “commercially viable” ones, and we have been seeing the freedom we previously enjoyed slowly but surely being reduced. By being the one paying for your hosting, by being the one controlling your cloud services, You take that freedom back.
Let’s think about a completely different application. Some companies have air gapped control networks, but your team still needs to communicate. Imagine setting up your own cloud services within an air gapped network, so your workers get isolated chat, file storage, file sharing, video chat, web email, calendar management, and task management. You could end up with a team with all the tools of the cloud, working in an air gapped island.
It’s good to be back, now that I know what I’m doing I expect to post more.
Welcome to the first entry of my instrumentation, automation, and control blog!
This is something I’ve been wanting to start for a while.
One reason I’ve wanted that is the disconnectedness that I percieve within instrumentation, automation, and control. There seems to be a void between forum posts, and really dense academic literature.
Of course, there’s a lot we can’t talk about: Proprietary control technology owned by our employers and such, but I’m not talking about that. It seems like a lot of the fundamentals don’t get talked about, and it’s to our detriment: Because control professionals are virtually invisible, there are many people who assume there are no real control professionals. Lots of people see the neat PLC things, and assume there’s a weekend course you can take to become the expert. I think that’s a disservice to everyone.
So I’m going to talk a bit about different control topics — from fundamentals, to my personal opinions on different instrumentation, control, and automation devices, to trying to wrap my mind around some of the dense academic stuff I read every month.
One thing: The emphasis is on “personal opinion”. Everything I write is my own personal opinion, and nothing should be taken as the opinion of any of my past, present, or future employers.