Archives
Rewriting my Protohackers repo as an umbrella app February 15, 2023
Add more OTP implementation of Speed Daemon - sdball/protohackers February 12, 2023
More OTP solution for Protohackers Problem 5 - sdball/protohackers February 9, 2023
Solving Protohackers Problem 6 - sdball/protohackers January 16, 2023
Add MobInTheMiddleServer - sdball/protohackers January 14, 2023
Rewrite ChatRoomServer to use active sockets - sdball/protohackers January 12, 2023
Add UnusualDatabaseProtocolServer - sdball/protohackers January 11, 2023
Add ChatRoomServer - sdball/protohackers January 8, 2023
Using git-blog January 8, 2023
Add git-blog - sdball/dotfiles January 8, 2023
Add helix shortcuts - sdball/dotfiles January 8, 2023
Add AssetPriceServer - sdball/protohackers January 5, 2023
Reduce the complexity of the IsPrimeServer - sdball/protohackers January 5, 2023
Comprehensively redesign IsPrimeServer - sdball/protohackers January 4, 2023
Things I’ve learned deploying a Phoenix 1.7 app using Bandit to fly.io December 28, 2022
Getting AlpineJS to work with Phoenix 1.7 November 24, 2022
Maintainable Code November 14, 2022
Elixir Conf 2022 Talk: Livebook Smart Cells are Amazing November 1, 2022
GIFs from my 2022 ElixirConf talk: “Livebook smart cells are amazing” August 31, 2022
Stephen’s Strange Leaflet about Elixir - Page 8 July 9, 2022
Stephen’s Strange Leaflet about Elixir - Page 7 June 28, 2022
Stephen’s Strange Leaflet about Elixir - Page 6 June 27, 2022
Stephen’s Strange Leaflet about Elixir - Page 5 June 20, 2022
Stephen’s Strange Leaflet about Elixir - Page 4 June 19, 2022
Stephen’s Strange Leaflet about Elixir - Page 3 June 18, 2022
Stephen’s Strange Leaflet about Elixir - Page 2 June 13, 2022
Stephen’s Strange Leaflet about Elixir - Page 1 June 12, 2022
Let’s query the GitHub GraphQL API from a Livebook smart cell May 22, 2022
Let’s write an Elixir Livebook smart cell May 18, 2022
A subtle Go bug that types cannot help with April 4, 2022
swapcase with the tr command April 1, 2022
nice go test output March 16, 2022
See where vim settings came from March 15, 2022
Containers in the real world and backpressure in distributed systems October 27, 2021
Elixir Phoenix and “role postgres does not exist” August 30, 2021
From awk to a Dockerized Ruby Script August 8, 2021
Finding leap years with the cal command July 11, 2021
The Problem of State May 1, 2021
Clojure Functions in Four Ways January 31, 2021
See Some Clojure January 19, 2021
A simple language spec isn’t a feature when you’re building applications October 11, 2020
The Fastest Possible Tests October 3, 2020
Shrink your data into bitfields (and out again) April 29, 2020
Every “if” statement is an object waiting to be extracted February 18, 2020
Choose Generic Tools January 2, 2020
Hyperlinks you might find interesting — #4 December 2, 2019
Running bundle install on rails master November 30, 2019
Use tldr for command line examples November 19, 2019
Friday Lunch Links — #3 November 15, 2019
Friday Lunch Links — #2 November 9, 2019
Logical Solver: Turn facts into conclusions November 7, 2019
Programming with jq November 6, 2019
Command line tools - jq November 5, 2019
Friday Lunch Links — #1 November 1, 2019
Why diversity matters October 30, 2019
Music for coding - October 2019 October 28, 2019
Code puzzles are a poor way to gauge technical candidates October 24, 2019
Add vim to a pipeline with vipe January 18, 2019
Connecting Objects with Observable December 5, 2018
Let’s write a shell script September 6, 2016
What’s a $PATH anyway? August 30, 2016
Let’s Use Hwacha to Scan URLs December 18, 2013
Deliberate Git June 19, 2013
Customize Your IRB March 19, 2013
Program Like a Videogamer February 6, 2013
Gem Spotlight: interactive_editor January 4, 2013
Things Most Interviewees Fail to Discover August 17, 2012
Rails isn’t for beginners April 3, 2012
How to use bundler instead of rvm gemsets March 19, 2012
How to write (and test) a gem to serve static files on the Rails asset pipeline March 15, 2012
A Taste of Metaprogramming March 1, 2012
Fun with Rock, Paper, Scissors February 28, 2012
Let’s Write a Gem: Part 2 February 23, 2012
Let’s Write a Gem: Part 1 February 21, 2012
Increase Rails Performance with Database Indexes February 16, 2012
Parsing Dates and Times from Strings using strptime February 9, 2012
Anonymous blocks as function arguments in Ruby February 8, 2012
Add more OTP implementation of Speed Daemon - sdball/protohackers February 12, 2023
More OTP solution for Protohackers Problem 5 - sdball/protohackers February 9, 2023
Solving Protohackers Problem 6 - sdball/protohackers January 16, 2023
Add MobInTheMiddleServer - sdball/protohackers January 14, 2023
Rewrite ChatRoomServer to use active sockets - sdball/protohackers January 12, 2023
Add UnusualDatabaseProtocolServer - sdball/protohackers January 11, 2023
Add ChatRoomServer - sdball/protohackers January 8, 2023
Using git-blog January 8, 2023
Add git-blog - sdball/dotfiles January 8, 2023
Add helix shortcuts - sdball/dotfiles January 8, 2023
Add AssetPriceServer - sdball/protohackers January 5, 2023
Reduce the complexity of the IsPrimeServer - sdball/protohackers January 5, 2023
Comprehensively redesign IsPrimeServer - sdball/protohackers January 4, 2023
Things I’ve learned deploying a Phoenix 1.7 app using Bandit to fly.io December 28, 2022
Getting AlpineJS to work with Phoenix 1.7 November 24, 2022
Maintainable Code November 14, 2022
Elixir Conf 2022 Talk: Livebook Smart Cells are Amazing November 1, 2022
GIFs from my 2022 ElixirConf talk: “Livebook smart cells are amazing” August 31, 2022
Stephen’s Strange Leaflet about Elixir - Page 8 July 9, 2022
Stephen’s Strange Leaflet about Elixir - Page 7 June 28, 2022
Stephen’s Strange Leaflet about Elixir - Page 6 June 27, 2022
Stephen’s Strange Leaflet about Elixir - Page 5 June 20, 2022
Stephen’s Strange Leaflet about Elixir - Page 4 June 19, 2022
Stephen’s Strange Leaflet about Elixir - Page 3 June 18, 2022
Stephen’s Strange Leaflet about Elixir - Page 2 June 13, 2022
Stephen’s Strange Leaflet about Elixir - Page 1 June 12, 2022
Let’s query the GitHub GraphQL API from a Livebook smart cell May 22, 2022
Let’s write an Elixir Livebook smart cell May 18, 2022
A subtle Go bug that types cannot help with April 4, 2022
swapcase with the tr command April 1, 2022
nice go test output March 16, 2022
See where vim settings came from March 15, 2022
Containers in the real world and backpressure in distributed systems October 27, 2021
Elixir Phoenix and “role postgres does not exist” August 30, 2021
From awk to a Dockerized Ruby Script August 8, 2021
Finding leap years with the cal command July 11, 2021
The Problem of State May 1, 2021
Clojure Functions in Four Ways January 31, 2021
See Some Clojure January 19, 2021
A simple language spec isn’t a feature when you’re building applications October 11, 2020
The Fastest Possible Tests October 3, 2020
Shrink your data into bitfields (and out again) April 29, 2020
Every “if” statement is an object waiting to be extracted February 18, 2020
Choose Generic Tools January 2, 2020
Hyperlinks you might find interesting — #4 December 2, 2019
Running bundle install on rails master November 30, 2019
Use tldr for command line examples November 19, 2019
Friday Lunch Links — #3 November 15, 2019
Friday Lunch Links — #2 November 9, 2019
Logical Solver: Turn facts into conclusions November 7, 2019
Programming with jq November 6, 2019
Command line tools - jq November 5, 2019
Friday Lunch Links — #1 November 1, 2019
Why diversity matters October 30, 2019
Music for coding - October 2019 October 28, 2019
Code puzzles are a poor way to gauge technical candidates October 24, 2019
Add vim to a pipeline with vipe January 18, 2019
Connecting Objects with Observable December 5, 2018
Let’s write a shell script September 6, 2016
What’s a $PATH anyway? August 30, 2016
Let’s Use Hwacha to Scan URLs December 18, 2013
Deliberate Git June 19, 2013
Customize Your IRB March 19, 2013
Program Like a Videogamer February 6, 2013
Gem Spotlight: interactive_editor January 4, 2013
Things Most Interviewees Fail to Discover August 17, 2012
Rails isn’t for beginners April 3, 2012
How to use bundler instead of rvm gemsets March 19, 2012
How to write (and test) a gem to serve static files on the Rails asset pipeline March 15, 2012
A Taste of Metaprogramming March 1, 2012
Fun with Rock, Paper, Scissors February 28, 2012
Let’s Write a Gem: Part 2 February 23, 2012
Let’s Write a Gem: Part 1 February 21, 2012
Increase Rails Performance with Database Indexes February 16, 2012
Parsing Dates and Times from Strings using strptime February 9, 2012
Anonymous blocks as function arguments in Ruby February 8, 2012