I love words. And puzzles. And logic. And so Wordle is right up there for me. Not in a ‘posting it on Twitter’ sort of a way, though. Something about the simplicity of the gameplay and the English language (and the success story of a simple viral app, of course) is just cool. Right?
But it only recently occurred to me - what it would be like to write a solver for it1? How hard would it be? Not because I need or wanted a solver to help play the game, but simply because I was intrigued by the complexity. It was also a decent excuse to write some code, something I don’t get to do a lot nowadays, and maybe a chance to play with some shiny things in .NET8 2. And also the recently announced AI Assistant in JetBrains Rider… could I write my usual janky code and then have an AI smarten it up right nice?
Read more
We use the excellent Plausible Analytics for tracking and analytics on the majority of our websites (including this one!)
This is in a direct and conscious alternative to Google Analytics. However, there is a known issue with all tracking scripts is that they can be blocked either by the browser or by plugins. Plausible are doing what they can to convince the maintainers of those products to stop blocking but on the basis that blocking can account for anywhere from 5% to 25% of tracking, it’s something that needs a more immediate fix. There used to be a workaround which meant hosting the script on a sub-domain (using DNS/CNAME) but apparently this is no longer reliable.
Read more
Quick tip, because I cannot recall how many times I’ve had to do this.
Despite being fairly rigorous about using a password manager whenever I create a password for something, I haven’t been able to break the bad habit of whenever I (re-)provision a Raspberry Pi for something, whilst I do invariably remember to change the default username and password but I also invariably forget to write down what I changed them to. Sub-ideal.
It’s reasonably easy to just reflash and start over, but sometimes you really don’t want to have to do that.
Read more
Summer of 2022 in Guernsey was pretty epic. It was gloriously sunny, hot-but-not-too-hot and just an all-round jolly pleasant place to be. It’s one of the perks of living here but it’s also probably one of the most undervalued perks of living here.
– When a beautiful sunny beach is always on your doorstep, where’s the fun in going to the beach?
IS A BLOODY STUPID THING TO THINK.
OK, maybe we don’t exactly think that precisely, but there is a tendency to overlook just how nice it is and prioritise other things like… ugh, being in the office. Working. Yuck.
Read more
A few months ago, at the start of what should1 have been a glorious Guernsey summer, I published a new website - DipNDine.gg. What’s more, ChatGPT wrote ~80% of the code for me.
The site was as much a personal hobby thing as it was an evaluation of just what could be achieved with ChatGPT. I mean, everyone loves a Dip and Dine right? (If you need to ask what a DnD is then please go to the site and find out!) I’d had the idea to publish the various locations that you can Dip and Dine in the Bailiwick of Guernsey for a number of years but it was just never quite high enough up the priority list to actually get done. There were some challenges - assembling the data about the locations, some technical challenges that I wanted to have a go at… and, well, you know - time, life. It’s difficult.
Read more
Note: This is the first post about creating a website using ChatGPT. The below was entirely generated by ChatGPT and is, as you will agree, utter bollocks. Part 2 talks through it.
In the bustling and ever-evolving world of technology, building a website from scratch can sometimes feel like a daunting task. With numerous technological frameworks and libraries at your disposal, choosing the right ones and integrating them seamlessly can be overwhelming. This is the story of how I harnessed the power of ChatGPT to streamline the process of creating a successful website, DipnDine.gg, a dynamic platform that has remarkably benefitted from the prowess of AI in coding with technologies like Tailwind CSS and Leaflet.js. Here, I recount my journey and share insights on how the synergy of human creativity and artificial intelligence can revolutionize web development.
Read more
Of all the many, mnay toys on my ’to buy’ list, a laser engraver definitely wasn’t one of them. I’ve had mixed success with 3d printing in the past, and whilst I’ve often thought a CNC could be fun, despite the appeal of burning things with fire and the occasional Austin Powers reference to frickin’ laser beams, engraving with lasers has never been high up my priority list.
So when an Atomstack A5 randomly showed up on Facebook marketplace, the inevitable happened. The seller had actually made a nice little side hustle doing personalised gifts and such like so there was maybe even a vague chance of recouping the cost and turning it in to something. Haha, yeah right, but hey whatever helps to justify it. With my motto1 of ‘why let being sensible stand in the way of an opportunity to buy new dangerous tools’ the purchase was made and a rather spangly new frickin’ laser beam made its way in to my possession.
Read more
The code is all in Python is not that complicated. If you followed my previous guide on beginning web scraping with Python then there will be nothing here to catch you out.
The flow is reasonably simple:
- Open a connection to the camera
- Grab an image
- Store a copy of it (possibly on an external USB stick)
- Watermark that image with something
- Upload it to Azure, always with the same name, so that the website displaying it doesn’t need to know the name of the latest file
The solution (moreorless) consists of 2 files:
Read more
I had no plans to change the original design, other than performing a little bit of maintenance.
Given that the Raspbian image on there was now 2 years out of date, it made sense to stick on a fresh copy. So that meant following pretty much my previous guide on setting up a Pihole on a Raspberry Pi, again choosing the Lite OS option, setting up static IPs for eth0 and wlan0 and enabling SSH. The only additional step is in raspi-config and to enable the legacy support for the camera.
Read more
A couple of years ago, peering lustfully out the back door of the 4th floor Cortex offices, I spotted an unusual sight - a plug on a roof top:
What could that be for? I wondered.
More precisely… what could that be used for? I immediately started thinking. Well, given the glorious view behind said roof top, it seemed pretty obvious that we could stick a webcam up there.
Something connected via wifi to our office network should do the trick. Since we are on a metered internet connection, I didn’t want to put something up that would completely flatten our internet connection, especially if a few people started using it, so I figured something that would periodically take an image and upload it to our storage CDN on Azure would be fine.
Read more