Skip to main content
Thomas Stewart

Thomas Stewart

Computer enthusiast and sysadmin

Codex Evaluation

Recently I’ve wanted to understand more about using AI/LLM technologies to assist with code creation. I have in the past played with using chatbot style vibe coding. This is where one describes what is desired and the LLM produces an entire program. However I have found that subsequent iterations with further features hard to keep copy and pasting the entire source file, assuming a single source file is required, to be difficult. I have not really tried with in editor coding. However for the most part the “help me write this one function” to be smaller picture that I desired. So when I found out about Codex from ChatGPT I was really excited to understand how this works. For me it’s the integration with GitHub that make’s it really useful. In stead of having to write an ever larger perfect prompt that covers the entire aspect of the functionality, one builds up functionality one GitHub pull request at a time. I liked this concept because it’s also how I develop things, eg I start small with basic functionality and then iterate. Given that each unit of work is a pull request I can inspect each change to the code base’s multiple files to see if it’s making the desired changes.

Book List

Books I’ve read per year. Title - Author (ISBN) (https://isbnsearch.org/)

Hash benching

Intro # This is far from exhaustive, but I needed to perform some light benchmarks in CRC, MD5 and SHA hashing. The idea was to compare crc, md5 and sha as well as compare Naive Python hashing to Linux based tools.

Opinionated Router Benchmark

My home Internet connection is a VDSL/FTTC (fibre to the cabinet) which comes over the telephone line into a BT master socket which has an ADSL filter and requires a modem. The modems are now usually built into the BT Home/Smart Hub CPE (Customer-premises equipment) but I still use a Huawei HG612 standalone modem as I don’t particularly like the CPE I was given. So I need a router to talk PPPoE to the modem and also firewall, route and NAT my home lan traffic to the Internet. I used a pair of Linksys WRT3200ACM devices: one as a router and wireless access point and the other as just a wireless access point. However while I was quite happy with them, the overall experience was not great: Ring devices would not connect, Tapo devices would not upgrade firmware and the overall signal quality around the house was not very good. So I upgraded to some Aruba Mesh wireless access points, which turned out to be great. However this left most of the functionality of the WRT3200ACM unneeded in what is quite a large physical footprint, also I don’t want to overload the device by turning my internet router into a NAS. Thus I needed to find a replacement device that just does the routing. Also with the new access points I also changed to a managed network switches with vlans to allow guest wifi, an untrusted iot network, etc. Thus the new device could just be a single port router on a stick with a single trunk link.

UK Petrol Prices

I recently repeated some analysis on the UK Petrol Prices. Slightly different from last time, instead of a large hand-written Excel workbook, I wrote a Python script that downloads and processes the data and creates charts from it. This also plugs into GitLab’s CI/CD functionality and, by making use of Hugo, creates a sort of dynamically updating page of charts. This is hosted over on my GitLab pages: https://thomasdstewart.gitlab.io/ukpetrolprice/

Debian on Devterm R-01

I recently found out about DevTerm Kit R-01 via Bryan Lunduke. I’ve been interested in RISC V for ages and so far have resisted buying any dev boards as they would just sit in boxes. However because this is an entire portable computer it’s a great way to play, there is hope it can become a useful piece of kit, so I immediately decided to get one.

Cameras

Canon EOS 700D (2015) # https://www.canon.co.uk/for_home/product_finder/cameras/digital_slr/eos_700d/

Linux Networking Config

Linux Networking Config is a complex beast these days. In fairness networking is complicated, and there has to be a way to configure a multitude of technologies: Ethernet, Wi-Fi, PPP, VPN, mobile, bridge, bonding, VLAN, tunnels. Originally networking was configured during boot up in shell scripts as part of sysvinit. However over the last 20+ years many newer ways have popped up; this is a short comparison of the options.

Network Based LUKS Unlock

Recently I wanted to see if I could make my public cloud-based Linux infra more secure via LUKS (Linux Unified Key Setup) disk encryption. I realise that one must fully trust one’s cloud provider, as they have access to the hardware. However it would be nice to know that data is encrypted when stored on disk. This does not mitigate against a very bad cloud provider, as ultimately if they are determined enough they can get at the data. However implementing some sort of encryption does offer some protection against reading the data if disks are reused and certainly makes the barrier much higher for access casually.

Rhubarb Wine

Method # Pick rhubarb, wash and cut into 1-2cm chunks place in container (20:00 21/07/2021 after cutting 3.348 kg) Add sugar at a 5:3 rhubarb:sugar ratio (21:00 21/07/2021 2.009 kg of sugar was added, mixed and left to stand) Wait for 36-48 hours (13:30 23/07/2021 all sugar dissolved) Filter into demijohn (2.4L therefore ~0.4L rhubarb juice) Use two teabags in a jug, add 300ml of boiling water, brew for 5 min, remove bags and top to 300ml add to demijohn Add 10 grams of raisins Add one heaped teaspoon of yeast into 5L demijohn Add water at a ~1:1.2 rhubarb:water ratio to fill 5L demijohn (2.5L so more like 1:0.75?) Take some liquid and read with hydrometer (60) Racked on 31st July, g read 0.988, eg (1.060-0.988)*131 = 9.4% abv