Thinking About 2025

I feel that 2024 has been a good year for me with progress towards my goals even though they weren’t actually set. I feel that I’ve made good progress on the projects that I’ve been meaning to make for a while and they’re all in a good state at the end of 2024. Going forward into 2025 I’d like to focus more on my projects and I’m going to attempt to do this by setting some goals. But first to plan forward I need to look back.

Progress made in 2024

The following contribution graph is a cropped version gerenated at GitHub Contributions Chart Generator. It’s a nice tool that you put your GitHub username into and it shows activity since the account was created.

My 2024 GitHub Contributions

Looking at the contribution chart it’s rather easy to see when GitHub started getting used for work not just my personal usage. This just means that I get to play on GitHub all day 😄

Night Sky Pi

I’m very please to state that I feel that the Night Sky Pi project has reached a point where it’s got to release 2.0.0. This might not seem like much but it’s doing what I want it to do and feel that it’s really ready for others to use. To get to version 1.0.0 there were a series of requirements that it had to achieve.

  • capture images from sunset till sunrise
  • store the images in a folder for the observation date
  • ensure that the exposure is within a given range and recalculate the settings if required
  • store meta data for the image in a JSON file
  • zip the entire directory up ready for sending off device
  • integrate with MQTT to publish events at key moments
  • delete old observations after a number of days
  • all of the above being configurable

The release of 2.0.0 was just the fact that the build was migrated from tox to use poetry and now when a new version of the Night Sky Pi is released it’s published to PyPi. This is so that it can be simply installed with PIP and run from the commandline, allowing for better version control on the device deploying it, and it’s far simplier to use rather than having to clone the repository.

Night Sky Pi NTFY

Rather than monitor the Night Sky Pi, I wanted notifications to be pushed to my mobile when key events where triggered so I’d know that the system was still up and working. This is why I careated NSP NTFY.

It’s a rather simple utility which listens to the MQTT topics, when a message is recieved it takes the text, performs some decoration to it such as tags, priority and a nice title then posts a request to ntfy. It can listen to multiple topics and is somewhat tied to the Night Sky Pi trough the use of shared configurations.

The only work that needs to be done on this project is to migrate it to use poetry and eventually have it published to PyPi so it can just be pulled down with PIP and run as a command instead of a cloned repository.

I want to do some further investigation as this might even be forked into another project that generally monitors MQTT topics and then just forward onto ntfy without any reference or configuration for Night Sky Pi. It could be rather useful.

Harlow Bindicator

The Harlow Bindicator has been one of my long running projects, but now I feel that it’s got the point where it can go no further apart from keeping it up to date. It started as a script that needed MQTT and Node Read as well as an external SMS provider.

The second version was stripped back to just be a script that called on to ntfy to send a push notification also warn the day before.

The final version was repackages with poetry and is now published to pypi so it can be used as a binary and cli no need for the repository to be cloned.

Smigle Lite

Smigle Lite isn’t really 100% my project, it’s a fork and based on Smigle. However it was modified enough and to the point where the changes wouldn’t be merged into the source repository.

Most of the changes that I done with Smigle Lite was to remove functionality that I didn’t want on my own version and introduce a few things as well. My blog, the one you’re reading now uses this theme, and with it’s current version I can’t see anything more that really needs to be done with it.

The only thing that needs to be done is to have it published to the Hugo Theme repository for others to find if they want to use it.

Complete by end of 2025

Next is some of the goals I need to set, these are mostly getting projects to version 1.0.0 which I use to state that the initial code works, is tested and considered feature complete from the initial requirements. This year I’m keeping it three core projects as I don’t want to over commit myself, as there is life and other tasks that can easily get in the way and will always take priority.

NSP Data Sender 1.0.0

Now that I have a working and functional Night Sky Pi project, the next task is to get the data off the device. This can be easily done with remoting into the device however that’s annoying to remember to do and a couple of steps. What I want to be to do is have the device send the data to various locations when the zipped file is completed. The destinations that I’ve thought of at the moment are;

  • AWS S3
  • Mounted Drive
  • FTP

With the data off the device then I can ensure that I don’t run out of space, as currently the Night Sky Pi deletes data of a certain age. This feature can be turned off on the Night Sky Pi which would be useful as I could add the delete feature to the Night Sky Pi Data Sender so it only deletes files that it can confirm have been sent off device.

With this module completed I can then be certain that I have a system for gathering images of the night sky and then I can start thinking about the processing software.

Cbujo 1.0.0

I love using a Bullet Journal, or as some would call a BuJo. In it’s purest form it’s a way of rapid note taking and collecting ideas. Usually all that’s needed is a notepad and a pen. I like to keep my Bullet Journal simple and clean, like it was intended, however some people go all artistic with it, that’s not me, I’m not artistic and also it’s a lot of work to me, and kinda defeats the point of it.

I thought to myself this might translate well to a a command line version that just has the functionality of pure bullet journal. This has been done before, however I’m using this as an excuse to learn how to write a feature rich commandline tool using Python and Click. Plus like all Open Source tools, you always write it for yourself first, then others might find it useful. The GitHub Repository has been created and version 0.0.1 has been released to PyPi, just to reserve the name, and it currently only prints “Hello, World!” like all new projects should.

Metmesh 1.0.0

This project is going to be another long running project. I’m not completely sold on the end goal, however I have a gut feeling on what I want for version 1.0.0 which is to have sources of weather data. So this will be a way to state the sources of the weather data for a location. This could be either a pull or a push. For example there will be sources where an endpoint would be reached out to to get some weather data, or even other services such as open weather map. Then there will be sources where MetMesh will recieve data from a device. At the moment the metrics will be simple weather information. This data will be persisted and rolled up in to grouped data metrics for example hourly, daily, monthly and so on. Then there will ways to group data sets for example if you were to have serveral sources that cover a town, then you could ask for each of those, or the town. Then the endpoints would provide useful endpoints for graphing or even render the graphs not completely sure yet.

Other Items

There are a few things I want to address in 2025 which are not really project related however will take some of my time, and I really want to get done or at least have some sort of idea what I’m doing.

Workspace Aesthetic changes

My workspace hasn’t changed much over 2024. I spend a lot of time here, as I use it for work during the day as well. So any changes that I would like to make would normally get in the way of me actually being productive in the workspace.

alt text

From the picture it doesn’t look like a great place to work, and it’s not cozy, it’s purely functional. The same issues at the start of the year are still here mostly cable management and having a home for everything, this isn’t helped with me jumping from project to project but I’d really like a workspace to be nicer. So this year I’m looking to address this space.

The main thing I want to address is that it’s a cold area with no real personality or sense of home. I feel that the issue is the surfaces, everything is white which was done initially because all the surfaces had to sealed and it’s cheap. Now that it’s all sealed I feel that needs to be some colour added. This would be paired with some different textures and accents. Currently three of the four walls are brick, one of which is blocks. It’s got a prision vibe going for it. I’d like to add some things to walls to break this up a bit, maybe some wood or just coverings.

The next area that takes a lot of the room, well all of it really depends on how you look at it is the floor. This is the concret floor of the garage, I’d like to add some sort of nice flooring to this to bring the room together, however I’m not decided on wood or carpet. Also there is the question of the work needed to pull this off, can it go directly on concerte? Will I loose depth as I can’t make the desk higher.

Workspace Optimisations

I’ve created an organisation system for my office / garage which in the long term hasn’t really worked for me. I still find myself searching for things, and nothing is really to hand when I want it. This goes for the office and the longer term storage in the garage. This is frustrating and stops me from jumping into my project work as I can’t be bothered to get stuff ready. I need to work on this system and lower the barrier of effort to start working on things. There is no real plan at the moment as I’m still investigating systems and trying to find something that works for me.

Cluster Rebuild

I used to have my Raspberry Pi’s on my Skadis boards behind me, this looked great and was rather convenient however there was an issue with noise as these were powered by PoE the fans would be going for it, which was frustrating while I was working more so when in meetings. So what I’m wanting to do is rack them up, I’m thinking about getting a 10 inch rack for this and they no longer be powered by PoE.

The reason for moving away from PoE is for a few reasons, firstly the noise of the PoE hats, the fans are loud and seem to be going even when idle. Secondly is the cost, deploying a Pi with PoE adds another £30 to the device along with the fact that the Pi 4 and Pi 5 require different HATs. Secondaly is the need for a PoE switch, which adds even more cost and the quality of these switches changes between brands and ports so much so that for a cluster of reasonable size I’d required a few PoE switches.

Blog Post Frequency

Looking back I’ve published a few posts, most of which have been updates to projects like new versions and my battles to solve certian problems. However, I feel that the size and quality of the posts have been lacking so this year I’m going to focus on longer content that I can create as I’m working on things rather than small updates.

I’m also going to focus more on tutorials on subjects that I come across, these might not be new things to be, but as I set them up I’ll document them as they might help others when configuring or just trying to get something working.


↤ Multiple Python Versions With Tox
2025 Starts With a Rut ↦