Skip to content

Instantly share code, notes, and snippets.

-- intro
:{
introRhythm = cat
[ n "~ fs fs fs g fs b fs e@8"
, n "~ e e e cs6 as fs e d@8"
, n "~ a a a b a g fs g@8"
, n "~ fs fs fs b fs gs as b@8"
]
introChords = cat
@joe-warren
joe-warren / ShareTechMono-Regular.ttf
Last active March 8, 2026 19:12
Permutive Kafka Migration Keyring
import qualified Waterfall as W
import Linear
import Control.Lens
loadFont :: IO W.Font
loadFont = W.fontFromPath "/home/joseph/.fonts/GothamRounded-Bold.otf" 40
bearingHeight = 7
totalHeight = 7 + 4
import qualified Waterfall as W
import Linear
phi :: Double
phi = (1 + sqrt 5) / 2
rotateIntoPlace = W.rotate (V3 1 1 0) (unangle (V2 1 (sqrt 2)) - pi)
. W.rotate (unit _z) (-pi/4)
rotateBack = W.rotate (unit _z) (pi/4)
@joe-warren
joe-warren / meetup-event-members.sh
Created November 21, 2025 15:14
Meetup Attendee Name Scraper
#!/usr/bin/env sh
EVENT_ID=$1
jq ".variables.eventId = \"$EVENT_ID\""< request-template.json \
| curl \
-H "Content-Type: application/json" \
-X POST --data-binary @- \
https://www.meetup.com/gql2 \
| jq '.data.event.title, .data.event.rsvps.edges.[].node.member.name'
#!/usr/bin/env stack
{- stack script --resolver lts-23.15
--package linear
--package waterfall-cad
--extra-dep waterfall-cad-0.6.0.0
--extra-dep opencascade-hs-0.6.0.0
-}
import Linear
import qualified Waterfall as W
import qualified Waterfall
import Linear
import Control.Lens
circlePath :: Waterfall.Path
circlePath = Waterfall.fromPath2D . mconcat . Waterfall.shapePaths $ Waterfall.unitCircle
hoop :: Waterfall.Solid
hoop =
Waterfall.translate (unit _z ^* 1.5 )
import qualified Waterfall
import Linear
import Control.Lens
haskellLogo =
let paths = [
Waterfall.pathFrom (V2 0 12)
[ Waterfall.lineTo (V2 4 6)
, Waterfall.lineTo (V2 0 0)
, Waterfall.lineTo (V2 3 0)
import qualified Waterfall
import Data.Function ((&))
import Linear
import Control.Lens
type Triple a = (a, a, a)
dieFaces :: [Waterfall.Solid]
dieFaces = fmap faceSolid . over (traverse . each . each) (== 1) $ [
((0, 0, 0),
(0, 1, 0),

Browse what is essentially Etsy for printers

So this model of using a 3d printer is fine and good, but eventually, I assume you're going to want to at least investigate designing your own things, right?

When you do, you'll have a range of options for tooling.

  • Graphics tools, like blender
  • Graphical CAD tools
  • Kind of divided into old-school engineering heavy tools like Fusion360, or FreeCAD, (and modern incarnations like OnShape), vs things that are simpler, like TinkerCAD