Skip to content

Instantly share code, notes, and snippets.

View mbbx6spp's full-sized avatar
:shipit:
emacsclient -nw README.org

Susan Potter mbbx6spp

:shipit:
emacsclient -nw README.org
View GitHub Profile
@mbbx6spp
mbbx6spp / category-theory-study-materials.org
Last active December 20, 2025 06:56
List of books/lecture series/courses/conference talks and practices used to learn about category theory, functional programming, and dependent types by a software developer in industry who has limited time to do this stuff with some suggestions on how to consume the material.

Category Theory and Functional Programming Study Materials

Acronyms/Terms

  • CT: Category Theory
  • FP: Functional Programming (typically meaning more pure functional programming)
  • TFP: Total Functional Programming
  • TDD: Type Driven Development (e.g. via Idris or Agda)
  • TT: Type Theory
  • PLT: Programming Language Theory
@mbbx6spp
mbbx6spp / README.md
Created December 4, 2011 04:24
Best UNIX shell-based tools I can't live without with example usages

Best UNIX Shell tools

These are a list of usages of shell commands I can't live without on UNIX-based systems.

Install

Mac OS X

Using Homebrew (yes, I am opinionated) you can install the following tools with the following packages:

@mbbx6spp
mbbx6spp / ALTERNATIVES.adoc
Last active September 30, 2025 14:13
Super quick list of alternatives to Jira and/or Confluence, Stash, Crucible, etc.
@mbbx6spp
mbbx6spp / README.md
Last active September 26, 2025 13:22
Gerrit vs Github for code review and codebase management

Gerrit vs Github: for code review and codebase management

Sure, Github wins on the UI. Hands down. But, despite my initial annoyance with Gerrit when I first started using it almost a year ago, I am now a convert. Fully. Let me tell you why.

Note: This is an opinionated (on purpose) piece. I assume your preferences are like mine on certain ideas, such as:

  • Fast-forward submits to the target branch are better than allowing merge commits to the target branch. The reason I personally prefer this is that, even if a non-conflicting merge to the target branch is possible, the fact that the review/pull request is not up to date with the latest on the target branch means feature branch test suite runs in the CI pipeline reporting on the review/PR may not be accurate. Another minor point is that forced merge commits are annoying as fuck (opinion) and clutter up Git log histories unnecessarily and I prefer clean histories.
  • Atomic/related changes all in one commit is something worth striving for. Having your dev
@mbbx6spp
mbbx6spp / 00README.org
Last active July 20, 2025 04:49
A gist of the commands, metadata file (.desktop), and script I wrote to delegate web URLs to the correct sandboxed web browser inside of the appropriate user profile in Linux. Should work in all distros.

Delegating web requests in Linux to correct browser profile

A few months ago I set this up and here is the write up on it since yesterday, while talking to a fellow Linux user, they found it intriguing.

My requirements

Any URL I click in Slack, Signal desktop app, or launch via terminal actions should launch into the correct sandboxed, user-profile web browser instance (in precedence order):

  • https://github.com/<workorg>.* should open in the work Firefox profile
@mbbx6spp
mbbx6spp / HappyNewYear.scala
Created January 4, 2025 04:22
Yesterday Jan 2, I had fun with the compiler and a coworker with the following inlines. :)
inline def CURRENT_YEAR = 2025
opaque type CurrentOrFutureYear <: Int = Int
object CurrentOrFutureYear:
inline def apply(n: Int) =
inline if (n >= CURRENT_YEAR) n: CurrentOrFutureYear
else compiletime.error("Given year is in the past")
inline def make(inline n: Int): Option[CurrentOrFutureYear] =
Option.when(n > CURRENT_YEAR)(n)
@mbbx6spp
mbbx6spp / pdsh.md
Last active February 13, 2025 04:27
Tutorial on pdsh. I am revising this for pdsh from my previous tutorial on dsh from 2013 found here: https://gist.github.com/mbbx6spp/6181003

Parallel Distributed SHell (pdsh)

Similar to ansible command but allows you to use any command that will work in your shell. Not tied to specific configuration management tooling, just SSH and your default shell on remote systems. Just works. I <3 it :)

What does it do?

Runs commands across potentially many machines. Allows you to organize your servers/VMs/instances into groups very easily.

@mbbx6spp
mbbx6spp / prepare-boot-drive-from-iso
Last active January 6, 2025 20:04
Prepare bootable (USB) drive on OS X. I validated this script on a Retina MBP running Yosemite.
#!/usr/bin/env bash
# Purpose: To create a bootable (USB) drive on OSX
# Note: For a NixOS 14.12 ISO (~330MB) to a 512MB USB drive, the last step (rsync) took over 3 minutes.
declare -r platform="$(uname -s)"
if [ "${platform}" != "Darwin" ]; then
>&2 echo "Error: This will not run on ${platform} (anything other than Darwin."
exit 1
fi
@mbbx6spp
mbbx6spp / capistrano-memcached.rb
Last active October 20, 2024 14:38
Memcached Capistrano tasks
# 2007 Copyright Susan Potter <me at susanpotter dot net>
# You can read her software development rants at: https://www.susanpotter.net/software/
# Released under CreativeCommons-attribution-noncommercial-sharealike license:
# http://creativecommons.org/licenses/by-nc-sa/1.0/
namespace :memcached do
desc "Restart the Memcache daemon"
task :restart, :roles => :app do
deploy.memcached.stop
deploy.memcached.start
end
@mbbx6spp
mbbx6spp / Types.purs
Last active October 20, 2024 14:35
Accompanying PureScript demonstration of native ADTs for the 'Algebraic Data Types in PureScript': https://www.susanpotter.net/software/algebraic-data-types-in-typescript/
module Main (main) where
import Data.Unit (Unit)
import Data.Maybe (Maybe (..))
import Effect (Effect)
import Effect.Console (log)
main :: Effect Unit
main = log "hello world"