Blog
ibis - a better pandas
short `ibis` method-chaining showcase for dataframe workflows.
Building Dashboards using Param and Panel in Python
guide to building reusable dashboard components with Param and Panel in Python.
Jupyter prelude
reusable setup template for Jupyter notebooks.
Power Lines with `ibis`
walkthrough for plotting power lines with Ibis and Folium.
Pandas vs Polars vs ibis
comparison of idiomatic data workflows in pandas, Polars, and Ibis.
The Basic Building blocks of Ratatui - Part 5
ratatui guide to designing custom widgets.
The Basic Building blocks of Ratatui - Part 4
ratatui fundamentals guide to built-in widgets.
The Basic Building blocks of Ratatui - Part 3
ratatui fundamentals guide to spans, lines, and text rendering.
The Basic Building blocks of Ratatui - Part 2
ratatui fundamentals guide to layout primitives.
The Basic Building blocks of Ratatui - Part 1
ratatui fundamentals guide to buffers and rectangles.
Effect of type inference on performance in Julia
analysis of how type inference affects performance in Julia.
Publishing documents with Quarto
guide to publishing documents with Quarto.
Graphing CGP Grey's Rock-Paper-Scissors YouTube Game
graph analysis of CGP Grey rock-paper-scissors YouTube game dynamics.
Julia Workflow Tips and Tricks
practical collection of Julia workflow tips and tricks for day-to-day development.
Visualizing roads in the cities of Canada
data visualization walkthrough of city road networks in Canada.
Using Makie with Quarto
guide to using Makie with Quarto via CairoMakie.
Understanding variables and mutability in Julia
introduction to variables and mutability in Julia.
Installing `homebrew` in an alternative location
guide to installing Homebrew in a custom location.
Programmers' preferences for package names
exploration of package-naming patterns across language ecosystems.
Quickstart guide to using a terminal
quickstart guide to using the terminal effectively.
Pandoc lua filter for alerts
pandoc Lua filter for rendering alert blocks.
Compiling firmware for the Moonlander keyboard with QMK
step-by-step guide to compiling Moonlander keyboard firmware with QMK.
Sveltekit tailwind starter
minimal starter template with SvelteKit, Tailwind CSS, and Font Awesome.
Using Tikz with Pandoc
guide to integrating TikZ diagrams with Pandoc using Lua filters.
Using MermaidJS with Pandoc
guide to integrating Mermaid.js diagrams in Pandoc-based posts.
Reinstall Xcode command line developer tools
step-by-step guide to uninstalling and reinstalling Xcode Command Line Tools.
Loading a Rust library as a Lua module in Neovim
guide to loading a Rust cdylib as a Lua module in Neovim with mlua.
Advent of Code 2020 Retrospective
julia retrospective covering all 25 days of Advent of Code 2020.
My Unicode cheat sheet
unicode reference for Vim, Python, Julia, and Rust.
Using `pre-commit` hooks
guide to improving a Git workflow with pre-commit hooks.
Three built-in `neovim` features
guide to three built-in Neovim features that improve editing workflow.
The egg tower puzzle
analytical solution to the two-egg, 100-story tower puzzle.
Drawing in ASCII
guide to creating ASCII diagrams and rendering them as SVG with svgbob, Pandoc, and Lua filters.
Neovim + LanguageServer.jl
showcase of Neovim with LanguageServer.jl for Julia development.
Python 2 vs 3
retrospective on the state of Python 2 and Python 3.
Pelican margin notes with Pandoc
guide to implementing margin notes in Pandoc-generated posts.
mpld3 networkx d3.js force layout
guide to force-directed graph layout with mpld3, NetworkX, and D3.js.
Raspberry Pi powered LED lamp
guide to controlling a desk lamp with a Raspberry Pi.
Neovim and Tmux
guide to configuring Neovim and tmux together on macOS.
Using conda to manage packages
guide to managing project environments and packages with Conda.
Writing technical papers with Markdown and Pandoc
guide to writing academic papers with Markdown and Pandoc.
Jupyter Notebook, Reveal.js and Github Pages
guide to publishing Jupyter Notebook presentations with reveal.js on GitHub Pages.
Spotify and tmux
tmux status integration that shows the current Spotify track.
Change `$PATH` inside vim
guide to updating PATH from inside Vim.
Uninstalling and re-installing Homebrew on OSX
guide to uninstalling and reinstalling Homebrew on macOS.
How to add line numbers for code blocks in Pelican
guide to adding line numbers to code blocks in Pelican.
How to install gdb on OSX
guide to installing GDB on macOS and fixing certificate issues.
Emacsclient and tmux split navigation
guide to seamless navigation between Emacs and tmux splits.
Emacs workflow — Using Emacs in the terminal
overview of an Emacs workflow in the terminal.
Emacs tips — Close compilation buffer
emacs tip for closing the compilation buffer automatically after successful builds.
Create Emacsclient.app using AppleScript
guide to creating an Emacsclient.app with AppleScript for launcher workflows.
Patched fonts madness
guide to using patched fonts on macOS.
Better git log with git ls
guide to replacing git log with a custom git ls command.
Vim, tmux and zsh — the productivity trio
setup guide for Vim, tmux, and zsh working together.
How to set up a Pelican blog with Github pages
step-by-step guide to setting up a Pelican blog on GitHub Pages.
Fast track to being productive in Vim
practical guide to becoming productive in Vim faster.
Active, reactive and apparent power
introduction to active, reactive, and apparent power concepts.
Mac OSX productivity apps
curated list of productivity apps for macOS.
Mac OSX Tweaks
collection of practical macOS tweaks and configuration tips.
Geektool and Desktop Widgets in OSX
geektool tutorial for building a custom macOS desktop widget setup.
Robotics
collection of videos and notes from undergraduate robotics projects.
Tasker and Google Maps
tasker workflow for automating Google Maps actions on Android.
Tasker projects
collection of Tasker automation projects.
Home monitoring system
raspberry Pi setup for monitoring room temperature at home.
Welcome to my blog
introduction to the blog and the topics it covers.