2024
- Modelling
throughrelationships with AshThey’re not natively supported, but you can still make them!
- Dynamic HTML progress bars with TailwindCSS
Don’t reinvent the wheel - use what HTML gives you!
2023
- Updating flash messages from Phoenix LiveView components
Making liveviews the source of truth for all flash-related information.
- How does Ecto know the current UTC date/time?
Going down a rabbit hole while trying to fix a timezone issue, as one does.
2022
- Got errors with file uploads in Phoenix LiveView 0.18?
Phoenix LiveView 0.18 is out with a bunch of cool new features, but a few hidden gotchas for upgraders…
2021
- One neat trick to getting Tailwind’s JIT compiler working in Phoenix
JIT compilation is amazing for your development productivity, but it requires some non-obvious changes to get it working with Phoenix.
- Efficiently querying data in batches using Absinthe
Building APIs with Absinthe and GraphQL gives you great power, but with great power comes great responsibility. It can be easy to make a bit of a mess and go about fetching data in very slow and inefficient ways, and it’s up to us as developers to notice it happening and nip it in the bud.
2020
- Adventures With Base-64
Recently a friend was looking at generating random-but-unique URL identifiers for a web project, and I immediately thought about this awesome video by Tom Scott about how YouTube encodes its IDs for URLs. Rewatching the video, I was like ohhhh, base-64 encoding, I know how that works…. wait a minute.
2018
- One-keystroke Unicode characters in QMK on macOS
I recently picked up an ErgoDox EZ keyboard, and was excited to add some Unicode characters to it…
- How I Work: Tackling Advent of Code, Day 21
A description of how I thought through and solved a tricky coding challenge
2017
- The Noobs Guide to Programming a Vortex Core
It’s not intuitive, and it doesn’t always work, but it can be done!
- When Rubygems gem versioning goes bad
And how to fix it. If you want to use old gems, you should be allowed to, darnit.
- The awesomeness of sass-autocompile
Or how to leverage your editor into doing the hard work for you.
- TIL: Ecto reading after writes
Today I learned that by default, Ecto doesn’t read data back from the database, after writing new or updated data!
2016
- A Whirlwind Guide to Esperanto
What is it? Where did it come from? Why are you learning it???
2015
- Internationalization using Gettext in the Phoenix framework
A new feature that dropped in Phoenix 1.1, that I’m really excited about!
- Books, books, books!
Everything I plan on reading….. That’s a lot of books.
- Using page-specific page titles in the Phoenix framework
Two ways of accomplishing the same goal, using view helper methods.
add_foreign_keygotchas in Rails 4.2Why things go wrong with associations that don’t match model names, and how to fix it.
- Slaying Dragons
How great it feels when you can slay the dragons hiding in your code.
- Why you should be using Database Cleaner’s
deletionstrategyDatabase Cleaner and I have a complicated relationship. But for today at least, it’s going a lot better.
- New Year’s Resolutions
What I hope to achieve in 2015.