Blog
1 Posts
This part is intentionally left blank.
2 Legacy posts (Hakyll)
Posts older than 2026 were generated with Hakyll (not Lilac), so they'll look very different than this site.
2025-09-29 Status Update
2024-10-11 Using Git the Right Way
2024-06-29 A New Chapter Begins
2023-11-21 Lilac and Codex
2023-03-21 Git Archaeology
2021-03-15 Bresenham's Circle Drawing Algorithm
2021-01-05 Using MPD for ReplayGain
2021-01-04 Thoughts on Baduk
2020-12-05 The Two Sum Problem Explained
2019-11-13 The Esrille Nisse: Three Years Later
2019-11-11 Status Update
2018-11-11 Status Update
2017-11-11 Useful Manpages
2017-05-13 The Math Behind the Tower of Hanoi Problem
2017-04-14 The Fastest Way to Compute the Nth Fibonacci Number: The Doubling Method
2017-04-02 Calling C from Haskell
2016-12-04 Open-sourcing My Dotfiles
2016-12-03 Replaying Vim Macros
2016-10-30 Shelling Out From Latex
2016-10-01 My Esrille Layout: The ZQ Layout
2016-08-28 TexLive 2016 with Docker
2016-07-17 Improved git-diff(1)
2016-04-29 Software Development Philosophy
2016-04-14 My Quest for Keyboard Perfection: The Esrille Nisse
2016-01-04 Status Update
2015-09-12 Tig Tips
2015-08-01 Why I Use NixOS
2015-06-25 Useful rxvt-unicode (URxvt) Plugins
2015-05-04 SRM 485: AfraidOfEven
2015-02-27 Generating Random Numbers without Modulo Bias, Redux
2015-02-24 Programming Puzzle: Game Button Sequence Recognizer
2015-02-10 Using the Nix Package Manager for Haskell Development from Arch Linux
2014-12-13 Implementing Binary Search
2014-09-22 The Parking Lot Problem: A Successor to FizzBuzz?
2014-09-09 My First Contribution to Git
2014-09-05 Reverse Polish Notation (RPN) Calculator in Ruby and Haskell
2014-06-04 Solving the "NVRM: API mismatch" Problem on Arch Linux
2014-05-20 Quad Monitor Setup
2014-05-02 Linus's Haskell Coding Style (LHCS)
2014-03-19 OpenGL from Haskell (#3: Matrices)
2014-03-15 OpenGL from Haskell
2014-01-06 Using cblrepo in Arch Linux
2013-11-19 Review: AKG K702 Headphones
2013-11-13 Review: Filco Majestouch 2 Ninja Cherry Brown MX Keyboard
2013-09-07 Development Best Practices
2013-08-21 Functors for Newbies
2013-08-07 Brother MFC-9840CDW: Setup on Arch Linux
2013-06-13 Review: Leopold Tactile Touch Tenkeyless Keyboard (MX Brown)
2013-06-06 Review: Realforce 104UG Hi-Pro
2013-05-31 Becoming a Programmer
2013-04-30 Emacs: Using a Unix Filter
2013-04-23 Haskell: System.Random.MWC: High Quality Fixed Seeds
2013-03-10 Installing Arch Linux and Enabling System Encryption
2013-01-21 Programming as a Life Skill
2013-01-11 Using Hakyll with GitHub Pages
3 New post script
mkpost.bb is a Babashka script which creates a new blank Org file with a new UUID.
(require '[clojure.string :as str]
'[babashka.fs :as fs])
(if (empty? *command-line-args*)
(binding [*out* *err*]
(println "Usage: mkpost.sh <WORD_1>...<WORD_N>
where WORD_1...WORD_N are word(s) separated by whitespace.
Example:
mkpost.sh foo bar baz")
(System/exit 1))
(let [sep "-"
;; Handle filename text generation (hyphenated, lowercase)
joined (->> *command-line-args*
(map str/lower-case)
(str/join sep))
date-str (str (java.time.LocalDate/now))
fname (str date-str "-" joined ".org")
;; Handle Org header info (space-separated, original casing)
title-str (str/join " " *command-line-args*)
uuid-str (str (java.util.UUID/randomUUID))
file-content (str ":PROPERTIES:\n"
":ID: " uuid-str "\n"
":END:\n"
"#+title: " title-str "\n\nHello\n")]
(spit fname file-content)
(println (str "Created file: " fname))))