- A History Degree Is A Programming Superpower in the Age of AI
- I’d use Spinel for Ruby projects
- Switched to Bear
- Programming Videos
- A Global Elixir Phoenix Multiplayer Game
- Conway's Game of Life: A Functional Approach
- Writing an Elixir/Phoenix based multiplayer Minesweeper game
- Rewriting Strange Leaflet in Phoenix and LiveSvelte
- Running Kafka locally in Kubernetes using Minikube
- Rebooting this blog in Svelte and SvelteKit
- Rewriting my Protohackers repo as an umbrella app
- Add more OTP implementation of Speed Daemon - sdball/protohackers
- Solving Protohackers Problem 6 - sdball/protohackers
- Add MobInTheMiddleServer - sdball/protohackers
- Rewrite ChatRoomServer to use active sockets - sdball/protohackers
- Add UnusualDatabaseProtocolServer - sdball/protohackers
- Add ChatRoomServer - sdball/protohackers
- Add git-blog - sdball/dotfiles
- Add helix shortcuts - sdball/dotfiles
- Add AssetPriceServer - sdball/protohackers
- Reduce the complexity of the IsPrimeServer - sdball/protohackers
- Comprehensively redesign IsPrimeServer - sdball/protohackers
- Things I've learned deploying a Phoenix 1.7 app using Bandit to fly.io
- Things I've learned deploying a Phoenix 1.7 app using Bandit to fly.io
- Getting AlpineJS to work with Phoenix 1.7
- Maintainable Code
- ElixirConf 2022 Talk: Livebook Smart Cells are Amazing
- GIFs from my 2022 ElixirConf talk: Livebook smart cells are amazing
- Strange Leaflet about Elixir - Page 8
- Strange Leaflet about Elixir - Page 7
- Strange Leaflet about Elixir - Page 6
- Strange Leaflet about Elixir - Page 5
- Strange Leaflet about Elixir - Page 4
- Strange Leaflet about Elixir - Page 3
- Strange Leaflet about Elixir - Page 2
- Strange Leaflet about Elixir - Page 1
- Let's write an Elixir Livebook smart cell
- Let's query the GitHub GraphQL API from a Livebook smart cell
- A subtle Go bug that types cannot help with
- swapcase with the tr command
- Better Go test output
- See where vim settings came from
- Containers in the real world and backpressure in distributed systems
- Elixir Phoenix and "role postgres does not exist"
- From awk to a Dockerized Ruby Script
- Finding leap years with the cal command
- The Problem of State
- Clojure Functions in Four Ways
- Basics of Clojure
- A simple language spec isn't a feature when you're building applications
- The Fastest Possible Tests
- Shrink your data into bitfields (and out again)
- Every if statement is an object waiting to be extracted
- Choose Generic Tools
- Links you might find interesting — #4
- Running bundle install on rails master
- Use tldr for command line examples
- Friday Lunch Links — #3
- Friday Lunch Links — #2
- Logical Solver: Turn facts into conclusions
- Programming with jq
- Command line tools - jq
- Friday Lunch Links — #1
- Why diversity matters
- Music for coding - October 2019
- Code puzzles are a poor way to gauge technical candidates
- Add vim to a pipeline with vipe
- Connecting Objects with Observable
- Let's write a shell script
- What's a $PATH anyway?
- Let's Use Hwacha to Scan URLs
- Deliberate Git
- Customize Your IRB
- Increase Rails Performance with Database Indexes
- Program Like a Videogamer
- Gem Spotlight: interactive_editor
- Things Most Interviewees Fail to Discover
- Rails isn't for beginners
- How to use bundler instead of rvm gemsets
- How to write (and test) a gem to serve static files on the Rails asset pipeline
- A Taste of Ruby Metaprogramming
- Fun with Rock, Paper, Scissors
- Let's Write a Gem: Part 2
- Let's Write a Gem: Part 1
- Parsing Dates and Times from Strings using strptime
- Anonymous blocks as function arguments in Ruby