Journal 2025

Because I'm getting old and need to write things down, 😀

Hadley Bradley

Table of Contents
» July

July

It’s been a while since I wrote anything here. I’m planning to restart for nobody in particular but myself 😀.

As a start to getting back into a regular writing rhythm, I wrote a technical article on how I reduced the size of a clinical database by 12TB by reviewing and removing the HTML slop and poor coding within sixty million letters.

On a whim, I decided to give my twenty-five year old 35mm Film SLR and wrote up some notes about the cost of using film in 2025.

Work has issued a new policy regarding working from home. The policy requires employees to return to the office three days a week. After working from home for the last two years, this will be particularly challenging for me, as the commute will add over nine hours a week to my schedule.

As such, I’m on the lookout for a new job. If any company is interested in hiring a dedicated software development manager who has great recommendations from his current team, then please get in touch. I’m open to remote work opportunities first.

As I’m approaching fifty-six, it will be interesting to see if I can get a new position. I’m intrigued to know if age bias is really a thing.

This was the month that I paid of the mortgage on the family home. A whole six years early. It’s a nice feeling knowing that I won’t have to pay another mortgage payment. I’ll be investing that money for my retirement.

Schema Extraction

We’re gearing up for a big new feature for the document management solution at work. Up till now, the database schema was locked away in the database and none of the stored procedures were checked into source control.

My free Microsoft SQL Server Schema Extraction Tool came in handy this month as I extracted all the code for the stored procedures and custom functions before submitting them to Git.

At least the team have a solid starting point before making schema change required for the new feature.

Data Migration SQL to Parquet

One of the projects I’m currently working on is a significant LIMS data migration.

It has become apparent that not all data items can be automatically migrated to the new regional LIMS. The project aims to archive all the data tables from SQL Server into individual Parquet files. Each Parquet file will be stored on AWS S3 , and AWS Athena will be used to query the archived data.

I think this would be a fun recreation programming project; to create a command-line tool which will perform the data conversion from an SQL table to Parquet. I’d then release the tool for free on my site Bradley Software.

The tool would need to create the necessary Athena create table statements with the correct schema, as well as perform the data migration. A cool name could be ParquetPioneer pp. Watch this space.

The intention would be that ParquetPioneer would support all the databases that Go supports. I’d start with SQLite, and proceed to add support for the following drivers SQL Server, MySQL and PostgreSQL.

Updated my PDF combing tool

I update my PDF Combing Tool this month. I added a slurp option that allows to you supply a folder name containing PDF files. The software will then proceed to combine all PDF files in that folder into a single file called combined.pdf.

The version 1.02 update also adds optimisation to the resulting PDF making it as small as possible. This upgrade also reports the number of files, pages and bytes saved.

Galeón Andalucía

We visited the Galeón Andalucía, a full-scale 17th-century replica Spanish galleon, which was docked in Whitehaven Harbour.

Galeón Andalucía docked at Whitehaven Harbour

The Galeón Andalucía is a unique floating museum, offering visitors a chance to explore its decks, learn about its history, and even interact with exhibits and crew members. It wasn’t cheap, considering that we were only on the boat for twenty minutes, but it was a rare opportunity to experience a piece of maritime history.

Banding

July was a busy month for brass banding. I played at Wigton Carnival, Skelton Show, Durham Miners Gala, Penrith Agricultural Show 2025.

I did by first dep job for another band. Dumfries Town Band played a concert at St George’s Church and needed additional players.

Reading/Listening

Reading Nick Clausen’s Invaders 1: An Alien Invasion Thriller
Listening to the first book of Ruins of the Earth. Narrated by RC Bray.

Watching

Ended the month with an eye infection. A mild form of Blepharitis, OMG it was itchy as hell. Drove me to distraction.

August

I use notebooks all the time. I prefer to take notes on paper, gives me a chance to get away from the keyboard.

I’ve been looking through some old notebooks used around the Covid years. I did a lot of doodling while in meetings. Here is a collection of them.

Doodles

I wonder what doodle analysis would say about me.


This month I started investigating adding auto-save to a legacy web application that creates clinic letters. The challenge being that the system only generates the unique document ID when saved fully. The full save process currently involves four stages of checks throwing up UI roadblocks at each stage. Any auto-save feature would need to by-pass these UI interactions and save the state to a temporary table.

Further considerations are needed before making a decision on how best to proceed.


Took two weeks holiday in the French Alps.

Blog Engine

I made a small tweak to my blog generation application. The code that generates the table of contents used a hash of the anchor text for H1 and H2 tags. However, this wasn’t sufficient enough for a page like this journal which may have several titles with the exact same text. The generated links would just jump to the first instance of that title.

1anchorText := s.Text()
2anchorHash := getMD5Hash(anchorText + strconv.Itoa(s.Index()))

I changed the code to include the titles position within the document as part of the hashing algorithm. This now allows me to have several titles within a page which are identical, and the table of contents generation works as expected.

Reading/Listening

Finished reading Nick Clausen’s Invaders 1: An Alien Invasion Thriller and started reading The Short Victorious War (Honor Harrington Book 3).

Listened to book 1 of the Kwan Thrillers Series The Secret of Giza. Narrated by Eric Michael Summerer. Also started We Are Legion (We Are Bob)

Watching