The Curious Engineer

All blogs / Software / engineering practice

Brian Douglas

briandouglas.ie

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

  1. MariaDB Typescript enum fix
  2. Adapt, improvise, and overcome
  3. Command pattern for canvas games
  4. Install Temurin from tar
  5. RSS Feed Added
  6. Front page of the Orange Site
  7. Tailwind and slop apps
  8. AI and The Redmonk rankings
  9. Ignore what everyone else is doing
  10. 1 Bit Jam #11
  11. Pong in C with Raylib
  12. I'm a "Software Engineer"
  13. Featured in GameDev Weekly Again!
  14. Degrees to Radians
  15. Featured in GameDev Weekly
  16. gamebot.studio
  17. GameDev in JS "The Canvas"
  18. Bye bye Github
  19. Use it or lose it
  20. Binary Search
  21. Using git hooks locally
  22. Use an index when sorting
  23. http_status_codes table
  24. Add generics to MariaDB Node Connector
  25. Modeling Tags in a Postgres schema
  26. Some useful rsync tips
  27. Install Temurin JDK on Fedora
  28. The future of videcoding
  29. 2026 new year's resolutions

2025 58

  1. Please don't write code
  2. Card deck in C
  3. Hosting this blog
  4. Advent of code d6
  5. Advent of code d5
  6. Advent of code d4
  7. Advent of code d3
  8. Advent of code d2
  9. Advent of code d1
  10. A year of experiments
  11. Neovim 0.12 adds vim.pack
  12. Part-time sheep farmer
  13. Go install script
  14. Managers, managers, managers
  15. mise-en-place
  16. Generate SQLite table types for Typescript
  17. Literal templates
  18. Template strings as a view engine - Part 2
  19. Template strings as a view engine
  20. Object field validators in Typescript
  21. Feature flags db schema
  22. PostgresSQL full text search
  23. startswith and endswith
  24. Stack Overflow is dieing, no wonder
  25. Trimming strings in c
  26. Banned from lobste.rs and Hacker News
  27. Making a StringBuffer in C
  28. Use Codium not Code
  29. Get inode type in C
  30. Handle Spring form errors with JTE
  31. Add a CSRF token to HTML forms with JTE
  32. Spring database seeding
  33. New Lib: Blueprint Factory
  34. New Lib: Placeholder Image Generator
  35. Request cache in Spring
  36. Checking ownership in Spring
  37. Slurp - A Java task runner
  38. Using CPU branch prediction in Java
  39. Using Docker on Linux Mint
  40. Install OpenJDK on Ubuntu
  41. Yoda Conditions
  42. Tower of Hanoi in Java
  43. AxeRunner
  44. European Alternatives
  45. Using a virtual screen size in Raylib
  46. Using astyle to format C code
  47. Creating a database dump with SQLite
  48. Optimise SQLite for Laravel apps
  49. Backing up an SQLite database
  50. GameDev in C Part 4: A Snake Clone
  51. I'm off social media
  52. GameDev in C Part 3: Drawing a Slime
  53. Linting is procrastination.
  54. GameDev in C Part 2: Raylib
  55. GameDev in C Part 1: Hello World
  56. Homer's Drinking Bird
  57. I joined social media
  58. 2025 new year's resolutions

2024 19

  1. Setting up PostgreSQL and Lua in Docker
  2. Rust, the Cunning Wizard
  3. Partial function implementation
  4. Chicken Farmer, a Snake clone
  5. Useful ImageData Methods
  6. Using the form attribute on buttons
  7. I wrote a test framework in Julia
  8. Sensible SQLite defaults
  9. Prevent pixel art blur on canvas
  10. Add IF NOT EXISTS to your migrations
  11. Using a PostgreSQL enum for state
  12. Conway's Game of Life in Go
  13. Writing a DB migrator in Go
  14. Creating a Pong clone using Raylib and Go
  15. Bit shifting to increase performance
  16. Generate OG images for blog posts
  17. One assertion per test please
  18. Slugs with an ID fallback in Laravel
  19. Seeding a Laravel DB with Irish Counties

2023 4

  1. Genghis Castle Battle
  2. Beam Moo Up
  3. Time Match
  4. Connection Defender