No More Holding Down Keys
Audience:button holders
“The chains of habit are too weak to be felt until they are too strong to be broken.” ― Samuel Johnson
I’m trying an experiment where I’ve turned my keyboard repeat rate way down.
This should force me to never hold down a key for repetition, but rather use a
prefix like 4w
(vim) or Ctrl-Backspace
(browsers). I’m learning some
interesting things!
Programming Heroes
Audience:anyone
“To be a hero, you have to learn to be a deviant, because you’re always going against the conformity of the group. Heroes are ordinary people whose social actions are extraordinary. Who act.” — Philip Zimbardo
The question of “who is your programming hero” comes up on episodes of [The Changelog], and it’s a good one. I have no means or aspirations to be asked, but it’s a fun question to answer, so here are my programming heroes…
AUR Getting Started Guide
Audience:intermediate
There are many options to access Arch’s User Repository (AUR). The AUR is one of the most compelling features of Arch Linux. I’ll walk you through the simplest path to getting started with the AUR, with minimal bootstrapping effort.
The most primitive yet useful tool I’ve found for first accessing the AUR is cower. On the right side of that page you’ll see a link to “Download snapshot”. It’s https://aur.archlinux.org/cgit/aur.git/snapshot/cower.tar.gz
Lisp Jargon
Lisp Jargon
The following is a glossary of fundamental lisp terms that may be somewhat foreign to someone who is not versed in a lisp. I have cherry-picked the terms that I find to be most productive.
They are intentionally not alphabetical, but are ordered and grouped into logical sections.
- sexp
s-expression, symbolic expression
- statement
nothing — everything is an expression
- expression
- form
(vim)
- string
(vim)
- element
like atom (vim)
- redex
reducible expression
- regex(p)
regular expression
- lisp
list processor
- list
()
- sequence
- singleton
a sequence with only one element
- pair
- rpn
reverse polish notation: operator first
- quoting
- boolean
- homoiconic
code is data
- scheme
academic lisp dialect
- racket
another scheme implementation
- clojure
modern lisp on java/javascript
- clisp
common lisp; old, robust lisp dialect/implementation
- repl
read, eval, print, loop
- emacs
most common way to edit lisp
- vim
another powerful editor
- slime
an editor mode that enables immediate transfer of forms from editor to repl
- tree
leaves, nodes
- recursion
- iteration
- loop
- tco
tail call optimization for recursive functions
- lexical (scoping)
referring to scope of visibility, done through textual analysis
- formal parameter
- actual argument
- splice
- slurp
- barf
- name
an identifier bound to an object
- object
any lisp datum
- atom
- identifier
a symbol used to identify names
- variable
- symbol
- value
the result of an evaluation
- reference
refer to an object or binding by name
- binding
association between a name and its value (e.g., “let-binding”)
- literal
- keyword
- vector
- hash table
mapping of keys to values
- macro
- reader
- eval
- immutable
- concurrency
- parallelism
- primitive/built-in
ex: car, cdr, cond, cons, map, null?, add1, sub1
- null
- map
- apply
- rest list
cdr
- operator/operand
- predicate
- lambda
- function
- procedure
- application
- continuation
- signature
descirption of the parameters of a method
- block
- begin/do
- implicit block
if
has these- currying
- closure
- hof
higher-order function, passed in to another func or returned
- declaration
- definition
- htdp
- tls
- sicp
- ror
- exception
- environment
set of bindings
- package
bundle of reusable, installable code
- rank
number of dimensions of an array
- R5RS
revision 5 report on scheme
- fingernail clippings and oatmeal
- lambda calculus
- srfi
scheme requests for implementation; see the SRFI FAQs
(The definitions herein are mostly my own, but much of what I know is inevitably copied from others.)
Firewalld Best Practices
Audience:sysadmins
Firewalld is the replacement for iptables in RedHat-family distros. Like it or not, you’ll probably end up having to wrestle with it at some point. I’ve read several articles describing it with an overview, but most miss out on important subtleties of a tool that’s in production but maybe not friendly enough for prime time. Here you’ll find my guide to getting the most out of Firewalld and avoiding its gotchas.
The commands get long, long, and very long to type frequently. What’s worse is
that it seems you usually need to repeat them with a --permanent
option, which
is painful and easy to forget.