Written adventures in software

My avatar
  1. 🔌 File based routing with Plug

    1. 10 minute read
    2. Published: 2023-05-02

    A lot of frontend frameworks take the design decision for the project file structure to dictate the structure of the API. Let’s mirror that with Elixir’s Plug library

  2. 🪲 Debugging Tailwind's Language Server Protocol

    1. 10 minute read
    2. Published: 2023-02-09

    I use Neovim as my code editing driver. At work, our tech stack revolves around the Phoenix framework ontop of Elixircontroversial decision since TW is basically bundled into Phoenix at this point!

  3. 🕊️ Comparing a file with master branch

    1. 10 minute read
    2. Published: 2023-01-09

    I find myself very regularly needing to understand what has changed in a specific file compared to (most commonly master) another Git branch.There’s no quickfire git command which will just take the file and branch you want and hand you back the file unfortunately, so we are left to come up with other means.

  4. 🛫 Moving to Zola

    1. 10 minute read
    2. Published: 2023-01-08

    First article of the new year, and I tell myself that this time, this time I’ll actually stick to writing!As every developer knows, you can’t just go and start writing articles, you need to build the platform which they will be hosted on first!

  5. 🌯 Exploring Haskell’s `newtype` as a type wrapper

    1. 10 minute read
    2. Published: 2022-10-07

    Sometimes when programming in various languages, it can be incredibly useful to be able to adapt the core primitive or third party types in your platform. A particular library’s API not quite to your liking? Need an additional sorting function on that damned list type? Sounds like a nice, ergonomic way of wrapping that external type to provide more functionality is in order.

  6. 🗳️ Type safe local storage

    1. 10 minute read
    2. Published: 2022-07-28

    In my day job we were continually hitting an error with users whenever we rolled out changes to a particular form based feature.

  7. 🪢 Checkout that PR

    1. 10 minute read
    2. Published: 2022-07-27

    The gh CLI is awesome. Everyone and their nan knows this. For me one of the best parts about it, is its potential for compose-ability with other CLI tools.

  8. 🛑 Find and stop systemd services

    1. 10 minute read
    2. Published: 2022-01-28

    A delve into the CLI toolbox to kill a rogue Caddy process

  9. 📦 Running my package json test command - the hard way

    1. 10 minute read
    2. Published: 2022-01-05

    Sometimes it can be super handy to have a quick and dirty way of accessing your package json scripts. Maybe you just want to know what the right name to call is. For that jq is our friend.

  10. 🧙 Fast and dirty favicon

    1. 10 minute read
    2. Published: 2021-12-28

    We’ve all been there. We need a favicon for our new shiny website, but its in the wrong bloody format. Legends across the internet have spoken of a tool. A single tool so mighty, it can handle any image, video or audio manipulation any young squire could possibly dream up.That tool… is ffmpeg.

  11. 💪 Solid is Solid

    1. 10 minute read
    2. Published: 2021-12-04

    🪖 Solid in a good way.No more manually managing dependency arrays to trigger re-renders.

  12. 🌉 Farewell for now XMonad

    1. 10 minute read
    2. Published: 2021-03-27

    For the last 3 months or so I’ve been using Xmonad on my Arch box. Its been greater. Its a super powerful window manager, with #limitlesspotential to do anything and everything you could want on a linux desktop …but you have to have the skills to do it!

  13. 🔤 ABC's of Javascript - Apply, Bind & Call

    1. 10 minute read
    2. Published: 2021-03-25

    Here’s a super quick reference of how each of the confusing initially confusing JS function apply , bind & call

  14. 🕺 Damn you pango!

    1. 10 minute read
    2. Published: 2021-03-21

    Today the unthinkable happened. On booting into my arch box, I couldn’t open Firefox.

  15. 🐙 SSH me to Github

    1. 10 minute read
    2. Published: 2021-03-21

    🔥 SSH randomly no longer wanting to work when pushing/pulling/fetching etc?

  16. 🤙 useLess useCallback

    1. 10 minute read
    2. Published: 2021-02-07

    I found this useCallback in the one of the components at work. This is actually not needed.

  17. 🏈 The Quest For PWD In A Fresh Shell

    1. 10 minute read
    2. Published: 2020-09-25

    🔥 I open a new shell. I’m greeted by the home directory. Dang! I wanted to be back in pwd.With the power of zsh on our side we will conquer this worthy challenge!

  18. 🎯 Focusing on inputs in react

    1. 10 minute read
    2. Published: 2020-04-09

    🎯 Inputs can require focus…Focusing the user onto an input is usually pretty simple

  19. ♦️ Async Array.reduce

    1. 10 minute read
    2. Published: 2020-03-26

    🎯 Handling async actions in a reduce function

  20. 🎙️ Releasing Podcasts

    1. 10 minute read
    2. Published: 2019-12-10

    Despite its popularity, the technology which drives the world of podcasting is surprisingly archaic. Although it is true that there are paid services which abstract the nitty gritty of what is actually happening away from you, the podcast releaser. I’m sure there are many DIY-minded content producers who would prefer, like me, to go it alone and see the release of their product from start to finish (or just want to do it on the cheap and not pay a third-party service when you don’t need to).