All posts

Little man
Life is fragile.
Only inputs that are not in focus can be modified from the server side in Phoenix LiveView.
A couple examples of what works and what doesn't when modifying the backing form values in Phoenix LiveView.
What happens when you put multiple Phoenix LiveView hooks on an element?
Asking the obvious so you don't have to.
VSCode tasks for Phoenix projects
Here are some useful tasks that I find myself reaching for almost any Phoenix project.
Migrating to Phoenix LiveView 0.18
Some patterns for migrating from Phoenix LiveView 0.17 to 0.18.3
Phoenix LiveView: Writing a component that takes arbitrary root elements as an argument
Write a component that replaces the root element with an arbitrary tag
Enum.into alternatives and matching structs
Some new elixir trivia I learned this last week
Some birthday gif(t)s
Some quality gifs for my birthday
Using multiple inputs_for for the same entity
Tips for working with the Phoenix.HTML module
Symbiote
A short story written collaboratively with an AI
MASH steel all-road mullet build
Documenting the build process for my MASH steel all-road build
Discovering the extra container element for Phoenix LiveViews
The data-phx-main element makes live.html.heex DOM structure slighty different than app.html.heex. Learn about where it comes from and how to configure it.
Antojitos El Cabezazo!
Just discovered a new foodtruck on the Central Bench
Some tailwind libraries I've been dabbling with
Component libraries
Solved: ERR_MODULE_NOT_FOUND
Ran into some issues with module resolution when working with typescript.
Sending and receiving SMS messages with Phoenix and ex_twilio
Weekly update: 2022 Week 12
11.5 years with my partner Allyanna
Weekly update: 2022 week 11
Ally and I went to Pocatello for the week.
Good reads for software engineering
Articles I keep coming back to for software engineering wisdom
Weekly update: 2022 week 5
Week five update
Weekly update: 2022 week 4
Reconnecting with Jessica
Using Phoenix's `schema.web_path` to account for web namespaces in your templates
Reference the path of the web namespace passed to your custom generators
Weekly update: 2022 week 2
Vintage bike conversions oh my!
Elixir live view cheat sheet
Commonly referenced resources for elixir live view
Valheim selfie
A selfie to commemorate beating Valheim with the best of friends
2011 Cinelli x Mash Histogram: Freak Alley photoshoot
A N T I
Confusing day
A gif explaining a lot of my days as a software engineer
Poem number two
A poem that I wrote for the book "Toilet Tag"
Setting up an elixir app to run under systemd
How to set up an elixir app to start on raspberry pi using systemd.
Elegant UI: Amazing Marvin's add to list items
Great UI for adding items to a list
Weekly update: 2021 week 48 - 52
Week 48 to 52 update
Weekly update: 2021 Week 46
Mind ok, everything ok
Weekly update: 2021 Week 43
This week
2021 Week 40: Weekly update
I'm changing the format a little bit
2021 Week 39: What I'm reading
Journaling, kayfabe and more functional programming.
2021 Week 37: What I'm reading
Helpful Elixir links for tracing and troubleshooting mixed with some resources for writing typescript in a functional style.
Shiny tools
Some shiny tools I want to check out but haven't had the time for.
Command Click in GraphiQL
Jump to a definition in your query or mutation.
Waxing your chain
Marginal gains
Summer is almost over
Riding with Velo
K8s link dump of the week
This week in k8s learnings
From zero to hosted with Digital Ocean Kubernetes: Part 1 bootstrapping Argo CD
From zero to a K8s cluster managed by Argo CD
Geocaching
Ally and I went geocaching
Motion
Playing with motion in photography
A light in the darkness
Scouting with Allyanna
Elixir DI
Links about DI in elixir
Don't start Supervisors under GenServers
How to properly structure your OTP application's process tree.
OSTEP resources
Videos, notes and code for CS 537
Improving your React application performance with Lighthouse, dead code removal and code splitting
Follow along as I tweak https://pencyclopedia.ink's page load performance.
IO.inspect supports a label option.
Make your console output easier to read with labels.
Two questions 29th birthday edition
Questions I ask everyone during their birthday.
Ecto nested preloads
The various ways you can preload in Ecto
Two questions
Questions I ask everyone during their birthday.
Hot sauce
Just my favorite hot sauces.
Elixir learnings - 2020 week 17
Is LiveView going to be the feature that causes a tipping point for mainstream adoption of Phoenix/Elixir?
Elixir learnings - 2020 week 16
This week I discovered confusing environment variable behavior building Elixir apps. I also whipped up a helper function to copy output to your clipboard in iex sessions.
Elixir learnings - 2020 week 12
Mucking with the database from Gigalixir.
Dactyl Manuform 5x6
A guide to building an ergonomic split keyboard.
Elixir learnings - 2020 week 10
Setting up continuous deployment to Gigalixir with Github Actions and distillery.
Elixir learnings - 2020 week 9
Setting up continuous integration with Github Action. Learn about configuring JetBrains tooling for elixir development.
Elixir learnings - 2020 week 8
This week I looked into disabling tests using tags.
Elixir learnings - 2020 week 7
This week I learned about setting up ExUnit's built in test coverage to generate reports.
Elixir learnings - 2020 week 6
This week I learned about GraphQL project structures, iex configurations and some awesome books and modules.
K8s learnings - 2020 week 5
What I learned about k8s during week 5 of 2020
Elixir learnings - 2020 week 5
This week I learned about some standard library function behaviors such as Map.get and Enum.reduce_while. I also learned about connecting multiple erlang nodes together with peerage and libcluster.
Elixir learnings - 2020 week 4
This week I learned about some awesome (🕶️) Elixir learning resources and PaaS.
Elixir learnings - 2020 week 3
This week I learned about using module docs and a little bit about metaprogramming in Elixir.
Elixir learnings - 2020 week 2
This week I learned about a smattering of topics.
Elixir learnings - 2020 week 1
Pattern matching, iex and some slick libraries.
Letters to a young software engineer in Boise
What I wish I knew when I was just starting in the tech industry.
Scrum tactics
My favorite parts of agile software development.
Debugging strategies
Techniques that I've learned over the years for dealing with those tricky bugs 🐛🐛🐛.
A5 Kokuyo soft ring business notebook review
Kokuyo soft ring business notebook review.
bash TIL
Exclude files when searching with find and learn about the ! operator.
ffmpeg downscale all videos in a directory
Learn how to downscale all videos in a directory
What's better than writing code?
Deleting it.
Elixir tasks
Learn about elixir tasks
Listing text expansions in Keyboard Maestro
Learn how to show your current Keyboard Maestro text expansions with Keyboard Maestro.
How to hijack a webpage
Learn about the target=_blank security vulnerability
Spotify daily pro tips
Use a little hack to save your favorite music curated for you by Spotify.
Idioms
I'm starting again, again.