đź‘‹ Hi, I’m Tom.

This is a personal blog where I (infrequently) write about technology and other topics of interest to me. I currently work at Royal Navy DNA. Before that I was a Lead Software Engineer at Simpplr, Inc.

LangChain and OpenAI

I built a conversational AI using LangChain and the OpenAI API that analyzes Facebook Messenger data. This enables you to have meaningful conversations with your historical chat data. Here’s a quick walkthrough of the process and some insights. Find the related source code here: https://github.com/m7kvqbe1/llm-messenger-history Obtaining Historical Chat Data Facebook allows you to download a copy of your data through the “Download Your Information” section in your account settings. After downloading, place your data in a ....

November 4, 2024

GitHub Action Move Issues

m7kvqbe1/github-action-move-issues is a GitHub Action that automates the movement of issues within GitHub Projects V2 based on specific labels. Find the related source code here: https://github.com/m7kvqbe1/github-action-move-issues Overview Automatic Issue Movement: Moves labeled issues to the specified column. Supports Multiple Labels: Triggers on multiple specified labels. Column Filtering: Configure columns to ignore or target. GitHub Projects V2 Integration: Works with the latest version of Projects. Example Workflow Here’s how you can configure this Action in your workflow:...

October 10, 2024

Go Packages and Cobra CLI

Cobra is a library for creating CLI applications in Go. It provides a simple interface for defining commands, flags, and subcommands. I’ve utilized Cobra to create a CLI tool and organized the code into multiple packages. Find the related source code here: https://github.com/m7kvqbe1/advent-of-code-2023 Init First we initialize the project as a new module: go mod init github.com/m7kvqbe1/advent-of-code-2023 This creates a go.mod file (there is also go.sum file which is essentially a lockfile)....

July 18, 2024

Automated Ticket Alerts

A small program in Go for polling and scraping ticket websites then sending SMS messages when resale tickets become available. This was a learning exercise in Go concurrency: goroutines, channels, wait groups etc. Find the related source code here: https://github.com/m7kvqbe1/go-ticket-polling Overview Polling and Scraping: Uses the colly web scraping library to poll a site and search for the availability of resale tickets. SMS Notification: When tickets are found, sends an SMS to the specified phone numbers using the Textbelt API....

May 9, 2024

Unix Sockets and Protobuf

Recently, I explored Unix Sockets and Protobuf with Go. Here’s a brief overview of some of the things I learned. Find the related source code here: https://github.com/m7kvqbe1/unix-sockets-protobuf-play Unix Sockets: Inter-Process Communication Unix Sockets offer a method for inter-process communication (IPC) on the same machine. It’s faster and leaner than leveraging a network protocol like TCP. They’re straightforward to set up in Go: listener, _ := net.Listen("unix", "/tmp/example.sock") conn, _ := net....

April 5, 2024