All blogs / Software / engineering practice
Brian Douglas
I write about programming, thing's I've learned whilst programming, and hopefully, some useful code snippets.
Software / engineering practiceGame developmentDatabasesJavaScript / TypeScript
- Posts
- 110 from 5 Mar 2023 to 23 Jul 2026
- Posting
- weekly (41 in the last year)
- Kind
- personal blog
- Feed
- https://briandouglas.ie/rss.xml
2026 29
- MariaDB Typescript enum fix
- Adapt, improvise, and overcome
- Command pattern for canvas games
- Install Temurin from tar
- RSS Feed Added
- Front page of the Orange Site
- Tailwind and slop apps
- AI and The Redmonk rankings
- Ignore what everyone else is doing
- 1 Bit Jam #11
- Pong in C with Raylib
- I'm a "Software Engineer"
- Featured in GameDev Weekly Again!
- Degrees to Radians
- Featured in GameDev Weekly
- gamebot.studio
- GameDev in JS "The Canvas"
- Bye bye Github
- Use it or lose it
- Binary Search
- Using git hooks locally
- Use an index when sorting
- http_status_codes table
- Add generics to MariaDB Node Connector
- Modeling Tags in a Postgres schema
- Some useful rsync tips
- Install Temurin JDK on Fedora
- The future of videcoding
- 2026 new year's resolutions
2025 58
- Please don't write code
- Card deck in C
- Hosting this blog
- Advent of code d6
- Advent of code d5
- Advent of code d4
- Advent of code d3
- Advent of code d2
- Advent of code d1
- A year of experiments
- Neovim 0.12 adds vim.pack
- Part-time sheep farmer
- Go install script
- Managers, managers, managers
- mise-en-place
- Generate SQLite table types for Typescript
- Literal templates
- Template strings as a view engine - Part 2
- Template strings as a view engine
- Object field validators in Typescript
- Feature flags db schema
- PostgresSQL full text search
- startswith and endswith
- Stack Overflow is dieing, no wonder
- Trimming strings in c
- Banned from lobste.rs and Hacker News
- Making a StringBuffer in C
- Use Codium not Code
- Get inode type in C
- Handle Spring form errors with JTE
- Add a CSRF token to HTML forms with JTE
- Spring database seeding
- New Lib: Blueprint Factory
- New Lib: Placeholder Image Generator
- Request cache in Spring
- Checking ownership in Spring
- Slurp - A Java task runner
- Using CPU branch prediction in Java
- Using Docker on Linux Mint
- Install OpenJDK on Ubuntu
- Yoda Conditions
- Tower of Hanoi in Java
- AxeRunner
- European Alternatives
- Using a virtual screen size in Raylib
- Using astyle to format C code
- Creating a database dump with SQLite
- Optimise SQLite for Laravel apps
- Backing up an SQLite database
- GameDev in C Part 4: A Snake Clone
- I'm off social media
- GameDev in C Part 3: Drawing a Slime
- Linting is procrastination.
- GameDev in C Part 2: Raylib
- GameDev in C Part 1: Hello World
- Homer's Drinking Bird
- I joined social media
- 2025 new year's resolutions
2024 19
- Setting up PostgreSQL and Lua in Docker
- Rust, the Cunning Wizard
- Partial function implementation
- Chicken Farmer, a Snake clone
- Useful ImageData Methods
- Using the form attribute on buttons
- I wrote a test framework in Julia
- Sensible SQLite defaults
- Prevent pixel art blur on canvas
- Add IF NOT EXISTS to your migrations
- Using a PostgreSQL enum for state
- Conway's Game of Life in Go
- Writing a DB migrator in Go
- Creating a Pong clone using Raylib and Go
- Bit shifting to increase performance
- Generate OG images for blog posts
- One assertion per test please
- Slugs with an ID fallback in Laravel
- Seeding a Laravel DB with Irish Counties