In my last post, I talked about the important of backing up, and how I do it. The upshot is I use a cloud file provider, which automatically synchronises my data, keeps a file history, and allows delete restore. There are many options here – I settled on Sync.com because it is zero-trust out of the box, is reasonable value, enables file and folder sharing, and generally seems good. In the post before last, I outlined my website setup, which is a Linux box running a collection of Docker containers. Unfortunately Sync.com doesn’t have a Linux client or API yet, […]
You don’t need to work with technology for long before you realise the importance of having a backup strategy. The two main use cases are disaster recovery, and mitigation against accidental deletion or edit. The first is generally more straightforward – you are simply looking to be able to restore all your data in the case of hardware failure, or catastrophic user error. The scenarios are losing or dropping your phone or laptop, hard drive failure, memory stick loss or corruption, cloud provider failure, malware, accidentally deleting an account or formatting a hard drive, and so on. Furthermore, you also […]
Well – it has taken some time (and partially explains the lack of posts), but I think I’ve got my personal websites set up “just so” now. The core engine is still WordPress, which is running headless to provide all the content to the front-end. I use WordPress admin to manage the site, write posts, update pages, and so on. The interaction is via WPGraphQL, which took a bit of effort to get working, but provides a nice standard API to access the details. The front end (www.eutony.net) now runs off nextjs, running on a node server. So the majority […]
So, learnt something today. With nextjs “getInitialProps” will run server-side when the page first loads, but then run client-side on reloads (i.e. if you navigate back to it). This means my website breaks if you go “back” to a search results page, as it tries to hit the headless WordPress back-end – which it can’t. So it errors out, and you get this lovely message: Application error: a client-side exception has occurred (see the browser console for more information). Solution – put the WordPress call behind an api, and then either always hit that api from “getInitialProps”, or work out […]
Well, the radio silence since May has been for a number of reasons, a large aspect of which was some infrastructure work behind the scenes. I manage to b0rk the pi which hosts this website, but rather than spending ages recreating all the websites, database, config, etc. I decided to put everything into Docker containers, so they can, in theory, be deployed anywhere, and should have a very rapid restore time if anything breaks. All the config files are in source control. So each of my sites running on this host is now in its own Docker container, with an […]
Quick shout out to Scott Hanselman, who recently gave an ACM tech talk on running Linux Apps on Windows, which I would recommend. First, as is perhaps often the way, an “off-topic” comment of his struck me, and partially inspired this post. I paraphrase from memory. I always think that we have a limited number of keypresses in our life, so I want to use them well. If someone asks me a question, I blog the answer so that the keypresses live on. E-mails are where keypresses go to die. Anyway, aside from the stuff I learnt about WSL, there […]
I recently did a live streamed church service from home, and along the way learned what is needed to get certain types of microphone to work. I have a couple of microphones I use for video work – I have a Rode VideoMic GO shotgun microphone and a Rode SmartLav+ label microphone. I use my Canon DSLR for filming stuff, and almost any external mic is a huge improvement on the built-in one, so this has worked well. However, when I plugged either of these into my laptop for the broadcast, I had to boost the gain, which in turn […]
Since DynDns announced they were withdrawing their free offering, I have been looking for an alternative. Turns out Microsoft’s Azure DNS has a REST API, and python library. While not free, it is very cheap – so far my DNS costs with Azure are running at 1p/day (although I only incur 5k queries a day). Setting up Azure and a DNS zone is pretty straightforward, getting the authentication and python script working as a bit more tricky, so here’s what I did. First set up the DNS zone in your Azure Portal Now Create an App: Go to Azure AD, […]
Sometimes I deeply dislike computers, especially when they try and be too clever. It’s actually a little bit scary (The Terminator‘s looking less and less far fetched!). Recent incident – true story. My website now runs on my own server at home, at the end of my broadband pipe. Despite what the provider claims it really isn’t fibre, but it is 100 Mbps down and 20 Mbps up, which is far more bandwidth than the traffic I generate. So far so good. Last week, I suddenly started getting e-mails from Google’s search bot telling me the number of 404s on […]
Very excited that I’ve relocated my website and my photo site onto a Raspberry Pi, which is sitting on my desk looking at me as I type! I purchased said Pi for this purpose over a year ago, but somehow didn’t quiet get around to doing anything more than having it as a Linux box I could SSH into should the spirit move me. This is more useful than it sounds, as Linux network tools are good, it’s immensely useful to be able to test things from outside my work LAN while at work, plus SSH tunelling is the best […]