Welcome friend
Join me on my written adventures in software
Resolving a Prisma Generation Issue with PNPM workspaces
A quick write up on a problem I ran into with Prisma and PNPM workspaces.
π€Dependabot for private packages
Dependabot is a great tool for keeping your dependencies up to date. But what if you have private packages? This piece dives into setting up Dependabot for private Github packages.
πΉοΈOpening the current PR in Arc
Lets step through a workaround to open the current GitHub pull request in the Arc browser using a custom Fish shell function. We even touch a little bit of AppleScript.
πͺImplementing a binary heap in Ocaml
Lets learn about and implement a new datastructure in the (mostly) purely functional beast of a language, OCaml πͺ
π³οΈSvelteKit dynamic page components
Lets look at how to dynamically load and display Svelte components for pages in SvelteKit
πThoughts On Moving Away From Ash
Ash is a freaking cool technology. But here's why I'm moving away from using it.
πFile based routing with Plug
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
πͺ²Debugging Tailwind's Language Server Protocol
I use Neovim as my code editing driver. At work, our tech stack revolves around the Phoenix framework on top of Elixir Recently we've made the move to incorporate TailwindCSS into the mix - hardly a controversial decision since TW is basically bundled into Phoenix at this point!
π€Metaprogramming in Elixir with macros
Macros are one of the most powerful concepts in Elixir. Its what differentiates the language from the underlying Erlang BEAM your code is compiled to run upon.
ποΈComparing a file with master branch
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.
π«Moving to Zola
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!
π―Exploring Haskellβs `newtype` as a type wrapper
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.
π³οΈType safe local storage
In my day job we were continually hitting an error with users whenever we rolled out changes to a particular form based feature.
πͺ’Checkout that PR
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.
πFind and stop systemd services
A delve into the CLI toolbox to kill a rogue Caddy process
π¦Running my package json test command - the hard way
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.
π§Fast and dirty favicon
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.
πͺSolid is Solid
πͺ Solid in a good way. No more manually managing dependency arrays to trigger re-renders.
πFarewell for now XMonad
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!
π€ABC's of Javascript - Apply, Bind & Call
Here's a super quick reference of how each of the confusing initially confusing JS function `apply` , `bind` & `call`
πΊDamn you pango!
Today the unthinkable happened. On booting into my arch box, I couldn't open Firefox.
πSSH me to Github
π₯ SSH randomly no longer wanting to work when pushing/pulling/fetching etc?
π€useLess useCallback
I found this `useCallback`Β in the one of the components at work. This is actually not needed.
πThe Quest For PWD In A Fresh Shell
π₯ 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!
π―Focusing on inputs in react
π― Inputs can require focus... Focusing the user onto an input is usually pretty simple
π³Flattening nested objects
π― When your object has nested objected, sometimes you just need to flatten that s**t down!
β¦οΈAsync Array.reduce
π― Handling async actions in a reduce function
πΏοΈGit Squash in style
π₯ Instructions on how to implement single commit branches
ποΈReleasing Podcasts
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).