Tools and technology that I use. You can contact me with any suggestions.
Hardware
-
A Lenovo Thinkpad T430 (which is over 10 years old now but was new when I got it)
- I also have a Librem 14 from Purism, though I haven’t used it much.
- A discbound notebook (Arc notebook, Junior or A5 size)
-
A Brother laser printer
Brother has pretty excellent GNU/Linux support. I’ve experienced some user-hostile features in competitors like HP or Epson, mostly in undismissable nagging prompts in their software.
- Jabra microphone for video calls
- Yubikey 5 Neo as a second factor
-
BQ Cervantes as an E-ink reader, which is GPLv2Unfortunately I accidentally broke the screen
Software
I exclusively use free software.
- Emacs (see my .emacs)
-
GNU/Linux
- NixOS for all my GNU/Linux needs, both on my laptop and increasingly on my servers
- Debian for where I don’t use NixOS
- systemd for writing and managing services (as well as timers a.k.a. cron jobs). systemd helps me use Linux-kernel-specific features without having to write C every time.
- Either Gnome or Sway, depending on my mood. Both use Wayland, but I still have some X11 applications. (Back when I was using X11 I used sawfish and FVWM.)
- Wireguard
- btrfs as a COW filesystem for snapshots
- Pipewire for audio
- GNU Bash, zsh, or eshell as a shell
- Unbound and dnscrypt-proxy2 for DNS resolving
- systemd-nspawn and podman occasionally for containers
- For my keyboard, my
xkbOptions
aregrp:switch,ctrl:swapcaps_hyper,compose:rctrl
, and I useus(symbolic)
(English (US, Symbolic)) for the layout. Occasionally I use ibus for when I need to type Chinese.
-
Firefox
- to block tracking and other web spam
- Multi-Account Containers and Cookie AutoDelete to isolate websites from my browsing history
- Redirector (see my Redirector rules)
- Privacy Badger from the EFF (though uBlock Origin does most of my blocking needs)
- HTTPS Everywhere (I think this is increasingly less necessary)
- for playing media
- Anki for spaced repetition and learning
- Inkscape any time I need to make a diagram or annotate photos. I’ll manually edit these SVG files with Emacs as well.
- Krita when drawing things with a tablet
- darktable for photo processing
- Occasionally Blender for 3D stuff or editing OBJ files
- ffmpeg for converting or compressing/optimizing media formats
- OBS Studio for streaming and video calls
- Zotero for papers
- PostgreSQL
- nginx
- Clojure and Pedestal via Jetty
- git-annex for syncing, backing up, and archiving data
- BorgBackup for backing up files
-
Android (which contains Linux but unfortunately not GNU) on my phone
-
Firefox Nightly (which allows you to add arbitrary extensions like Redirector)
- uBlock Origin
- Redirector (otherwise sites like Reddit try to make you download their app)
- Dark Reader
- F-droid for most apps
- OsmAnd and Organic Maps for orienting myself in the real world
- Signal
- Element
- Anki
- NextCloud
- VLC
- Unexpected Keyboard (which contains the Control key for when I use Emacs on my phone)
I’ve also used a PinePhone with Mobian and hope to eventually move more to it. -
Firefox Nightly (which allows you to add arbitrary extensions like Redirector)
- FreeSwitch for telephony/VOIP for my phone numbers
Statistics and Data
-
R for statistics with ESS as an interface
It’s a GNU Project! This is what we used in statistics courses at Berkeley. I also TA’d Stat 133 a bit. I’m so glad we were able to use free software rather than proprietary environments like MATLAB.
- for Bayesian inference (previously used JAGS)
- Previously used D3.js a lot for visualization. Also tried React Three (see /rtft/ for an example visualization I made) via Reagent and ClojureScript.
- data.table, but also tidyverse stuff
- ggplot
- ColorBrewer for a color palette
- Sometimes Clojure and ClojureScript. Clojure for where I’m doing realtime analysis (instead of batch). ClojureScript for interactive visualizations and presentations using reagent/re-frame.
- LaTeX for writing math, which I’ll embed using MathML (preferred) or MathJax.
Web Development
Backend
-
Clojure and Pedestal
- Jetty
- GraphQL via Lacinia
- PostgreSQL for data
- WebSockets for real time events
- nginx for reverse proxying and some static resources
- LetsEncrypt for my certs
-
node.js and Express(not so much recently, but this site used to be run through node.js)MongoDB- Not anymore. They’re no longer open source, and Postgres does what I need anyway.
Frontend
-
HTML5 written in the XML syntax (formerly “XHTML”)
- Occasionally RDFa for metadata
-
For JavaScript I either use
-
Handwritten JavaScript
Gives me a better feel for various Web APIs
- Web Components
-
- React via
-
node.js
- Webpack
Angular 1- Never made the jump to Angular 2, I just started using React.
require.js- Back before JavaScript modules became a thing
-
-
For CSS I either use:
-
Handwritten CSS with a lot of flexbox, grid/subgrid
- CSS custom properties along with cascade layers for theming
- Semantic UI
-
Handwritten CSS with a lot of flexbox, grid/subgrid
-
SVG
- - For manually drawing, editing
- Emacs - For tweaking and optimizing SVGs, adding metadata, creating SVG filters, and so on
- Usually CSS keyframes for animation, but sometimes SMIL
- D3.js
- React/reagent
- R when creating SVGs with data
-
WebGL
- Three.js (sometimes via React Three Fiber)
-
Static site generatorsHexoPelican
Services
- Firefox Relay for giving out emails
- Digital Ocean and Linode for VPSes
Mozilla VPN
(homepage)- Wikipedia
- The Internet Archive (and especially the Wayback Machine)
- MDN
- Nextcloud for backups and RSS/Atom feeds
- OpenStreetMap
- The National Weather Service (weather.gov) for weather data
- Hacker News
- A VOIP provider for my phone numbers (and occasionally for fax when I still need that)
- A combination of DuckDuckGo, Google, and occasionally Marginalia and Wiby for searching the internet
- fatcat, Internet Archive Scholar, Google Scholar, Semantic Scholar for looking up papers. And *cough* Sci-Hub *cough* (even when I have an institutional VPN, as many publishers add tracking data to their PDFs)
- SomaFM for radio
Other /uses
Check out other /uses
pages at uses.tech.