Categories
Posts by category. See archive for
chronological order, or tags for tags.
Blog
Scraping XML sitemaps with Racket
02 Dec 2024 in Blog
Day 2 of “Advent of Racket”
Sapling Cage
27 Nov 2024 in Blog
My thoughts on Margaret Killjoy’s Sapling Cage .
Server-sent events with Racket
23 Nov 2024 in Blog
A small amount of server-side Racket and client-side JavaScript give me a
passable version of a reactive front-end.
Little utilities
15 Nov 2024 in Blog
Like many other full-time shell users, I write small utilities to add to my
toolbox. Let’s compare.
Tip: use symmetric differences with git-range-diff
15 Nov 2024 in Blog
I’ve been using range-diff
for a while now , but I’d been stuck with a long input
method for arguments. Today I learned a shortcut.
Perspective on software development models
11 Nov 2024 in Blog
Update 2024 November 22: I may have some misunderstandings about trunk-based
development, and this article needs a (as-of-yet incomplete) rewrite as a
result.
Copying a git-range-diff to GitHub
04 Oct 2024 in Blog
I’ve been using git range-diff
for the past few months to explain changes
between versions of a patch series, such as different versions of a branch after
responding to review comments on a Pull Request. This post explains how I use
post the output for Markdown-ish consumption on GitHub.
Performance of Racket Pict Comparison, Part 2
14 Sep 2024 in Blog
I eliminate “eyeball statistics” from part 1 . This post is based on
Chelsea Troy’s “Data Safety”
series ,
especially Quantitative Programming Knife Skills, Part
2 .
Churn and Weight
07 Aug 2024 in Blog
I examine a metric that might be correlated with churn, and I posit a new
concept for code bases called weight. I also call attention to 2 tools for
measuring churn and weight.
Developer Experience, Redux
03 Aug 2024 in Blog
I pull excerpts from recent Communications of the ACM articles relevant to
developer experience advocates and add my own commentary.
The case against squashing to merge via GitHub
02 Aug 2024 in Blog
Squash and merge is a bad default action, and it grates when it’s the only
permitted merge option.
What everyone should know about git commit
02 Aug 2024 in Blog
These tips make it easier to write better commit messages.
Re: The Functional Programming Hiring Problem
16 Jun 2024 in Blog
The identified problem may be missing the mark.
Em-dashes are not spaced hyphens
16 Jun 2024 in Blog
Please use an em-dash—like this one—for parenthetical asides or for a gentler
colon. Do not use spaced hyphens - like this - they are wrong.
Re: Beautiful Python Monsters
15 Jun 2024 in Blog
Making flaky tests pass cries out for functional-programming idioms.
30 Apr 2024 in Blog
It’s time to remind ourselves that GitHub and Git are not synonyms.
Performance of Racket Pict Comparison
15 Feb 2024 in Blog
I get a brief glimpse of the performance characteristics of two methods for
comparing pict
s for equality.
A Strategy to Change Core Data Structures in Programs
13 Feb 2024 in Blog
This relates to the refactoring rule “Make the change easy, then make
the easy change” from Kent Beck. He warns that the first step may be hard. I
present one strategy to make the first step easier for data structure
changes.
Solving Boggle
27 Oct 2021 in Blog
I solve Boggle in several languages. The following post is a literate program
written in Scribble.
Learning is not (usually) time wasted
09 Jul 2021 in Blog
Way back in January, YouTube subjected me to an advertisement from Exam Labs.
What follows is a direct quote: “Looking for a job in tech? Don’t waste hundreds
of hours learning.”
2021 Resolutions
12 Jan 2021 in Blog
I haven’t done (or kept) New Year’s Resolutions in a long time. This
article from the Angry GM inspired me to do them differently.
The State of Dis-union
11 Jan 2021 in Blog
While Ben has other articles planned for upcoming technical topics, we feel that
now, in the wake of the January 6th terrorist attack on the US Capitol by US
citizens, is a time for reflection on a scary political landscape and a time for
the explicit condemnation of white supremacy.
Please *do* generate man-pages
07 Dec 2020 in Blog
The recent trend of not including man-pages with command-line “apps” (“tools” or
“programs” are better words!) irks me.
Excel for Mac cannot simultaneously edit files with the same basename
29 Sep 2020 in Blog
Yes, you read that right: you can’t open (e.g. ) Documents/budget.xlsx
and
Work/budget.xlsx
at the same time.
Stop, sed i!
06 Aug 2020 in Blog
Right tool for the job people, right tool for the job
Making mass-edits to many repos via shell pipelines
16 Jul 2020 in Blog
I spend 1 day to save 3 immediately, and more long-term, by scripting git into
pipelines.
Solving a logic puzzle the right way™
22 Jun 2020 in Blog
I take a break from my internship with Capital One to solve a puzzle they posed:
for a chance to win!
Programs invoked by Git have libexec/git-core on $PATH
22 May 2020 in Blog
I discover a strange edge-case in my usage of Git and Vim together.
Why I finally switched to zsh
21 May 2020 in Blog
Some people were astonished I still used bash (though I was on version 5+).
Advent of Code 2019 : Day 5
11 May 2020 in Blog
The Advent of Code series is back (from last year…)
Re: Coding the Impossible: Palindrome Detector with a Regular Expressions
12 Feb 2020 in Blog
Another internet
post
sparks a small rant.
CS Students Must Learn Computation Fundamentals
14 Jan 2020 in Blog
Another internet post sparks a small rant.
Getting Help Dos and Don'ts
13 Jan 2020 in Blog
Keep these things in mind when asking for help from others.
A terminal case of mysteries
24 Dec 2019 in Blog
I play through clmystery , and log the
journey here.
Advent of Code 2019 : Day 4
19 Dec 2019 in Blog
Password-cracking elves, oh my!
Advent of Code 2019 : Day 3
18 Dec 2019 in Blog
I feel like an electrical engineer, unscrambling these wires…
Advent of Code 2019 : Day 2
17 Dec 2019 in Blog
In this episode, the intcode computer is born.
Advent of Code 2019 : Day 1
16 Dec 2019 in Blog
We begin the Advent of Code journey, commit by commit…
Please do not post images of text
24 Nov 2019 in Blog
If you’ve never seen this kind of comment on
StackOverflow (also
this ), I’m going to break it
down for you, because I’m frustrated.
Re: Dumpster Diving through Dotfiles
07 Nov 2019 in Blog
I learn a lot after some advice from
thoughtbot .
6am Wake-up Call: Day 4/5
25 Oct 2019 in Blog
Days 4 & 5 of the early-bird experiment.
6am Wake-up Call: Day 3
23 Oct 2019 in Blog
Day 3 of the early-bird experiment.
6am Wake-up Call: Day 2
22 Oct 2019 in Blog
Day 2 of the early-bird experiment.
5am Wake-up Call: Day 1
21 Oct 2019 in Blog
1 week of early-birding begins!
Re: How Did Perl Lose Ground to Bash?
27 Sep 2019 in Blog
Spoiler: Because I don’t need or use Perl everyday
11 Sep 2019 in Blog
Ever awk
‘d a bunch of fields out of a pipeline? Tired of typing single quotes,
dollar signs, and prints, when you just want the fields? Me too.
The Alignment Axes of Type Systems
27 Aug 2019 in Blog
I map D&D alignments to type systems.
I/O Funnels
23 Aug 2019 in Blog
I teach a lab, and think of a new way to teach I/O redirection operators.
Efficient Shell—Git Commit Statistics
14 Aug 2019 in Blog
I convert a unusably slow script to a surprisingly fast tool.
Ruby, where are you (in GitHub workflows)?
13 Aug 2019 in Blog
A treasure hunt for ruby in the beta of GitHub actions and workflows leaves me
scratching my head…
Effective Study Habits
31 Jul 2019 in Blog
I study effective study habits and present some advice. How meta.
Open-source Transparency
19 Jul 2019 in Blog
My first contribution to tmux was
accepted! Only, the history is not transparent.
Something is rotten in the state of Dotfiles
12 Jul 2019 in Blog
After a recent adventure rewriting my entire Dotfiles system
to use POSIX make , I wanted something better.
I am an ally
03 Jul 2019 in Blog
Status Badges
13 Jun 2019 in Blog
Today I made some status badges to represent the quality of the code I publish
on the internet. Here they are.
Build-a-Octocat
08 Dec 2018 in Blog
You can make your very own!
Week 7—Code and Communication
05 Aug 2018 in Blog
One week after my forays of unit testing, and I’m almost ready to ship.
Adventures with Python unittest
28 Jul 2018 in Blog
Some good, some bad, some ugly, as with all tests.
Life Lessons
24 Jul 2018 in Blog
This is my first “Today I Learned” on the new schedule, though it now spans
multiple “today”s…
Time Stops for No Mouse
22 Jul 2018 in Blog
…or man, as it happens. Read on for some of my thoughts about time, how to
manage it, and why you sometimes shouldn’t.
Openings & Closings
17 Jul 2018 in Blog
Tuesday is meeting day. And after our meetings, I met up with my younger brother
who has NC State orientation.
Week 5 (and a Quick Recap)
16 Jul 2018 in Blog
I’ve officially crossed the halfway point of my internship. But don’t worry,
because I start a co-op with the same company the week after.
Kaves and Kobolds
12 Jul 2018 in Blog
As promised , read about my latest adventures in the RPG world !
Day 16—The Three Pieces of Software
10 Jul 2018 in Blog
There’s probably more than that, but these are the bigguns.
Day 15—Fresh Start
09 Jul 2018 in Blog
Refreshing your browser page does not count as one.
Bag of Holding (Everything)
08 Jul 2018 in Blog
You never know what you might pull out…
Feature—Round and Round Again
04 Jul 2018 in Blog
Day 11—Third Time's (Not) Always the Charm
03 Jul 2018 in Blog
Day 01010—Everything Runs on Cycles
02 Jul 2018 in Blog
\[A \to B \to C \to A \to \cdots\]
Feature—Flexibility and Engagement
29 Jun 2018 in Blog
Physical and temporal flexibility.
Day match [0-9]—Regex
28 Jun 2018 in Blog
This is not a regex tutorial. Those are in the manpages.
Day 8, Context and Computers
27 Jun 2018 in Blog
I will keep this alliteration up until it kills me. Just sayin’.
Day 7, Asking Questions
26 Jun 2018 in Blog
Because that’s what the job of any scientist is.
Week 2—Refactoring++
25 Jun 2018 in Blog
Something about those R ’s keeps coming back…
Feature—Taking a Break
24 Jun 2018 in Blog
The animal kingdom has known for centuries, if not millenia, that breaks are a
necessary fact of life. Why, then, do we so often forget to take them?
Reading, Refactoring, and RPatterns
22 Jun 2018 in Blog
I couldn’t leave the alliteration hanging in a title containing the word
‘patterns’…
Day Four, My Two Cents
21 Jun 2018 in Blog
Penny for your thoughts?
Day Three—Slacking
20 Jun 2018 in Blog
I promise it is work related!
Second Day
19 Jun 2018 in Blog
My second day at work–progress was made.
First Day
18 Jun 2018 in Blog
Today was my first day with Nuage Networks , a [software-defined
networking][] company from Nokia. Here are some insights.
Ready, Player Two ?
25 Apr 2018 in Blog
Brace yourself. The Oasis launches in 3…2…1…
Lady Book Dragon
04 Aug 2017 in Blog
Long have I wanted to write book reviews on this blog. I have not yet made it
there, but a friend of mine has.
Secrets from a Freshman—Survival Skills, Chapter 2
30 May 2017 in Blog
Want to know what it takes to succeed during your Freshman year on a college
campus? So did Lee Bierer .
Survival Skills, University Edition
12 Jan 2017 in Blog
I spent part of my Junior and most of my Senior year working with Lee Bierer,
columnist and independent college counselor at CAS . After my first
semester, she interviewed me about my experiences in college and published the
results.
Quiver
06 Jan 2017 in Blog
No, this isn’t about my brief stint with archery.
Git Branch Cheat
01 Jan 2017 in Blog
Sometimes, you need to do a particular operation on every single branch in a
repo, like pushing or merging. I thought it would be difficult. It’s not.
25 Dec 2016 in Blog
I (re)affirm my allegiance to the three promises of the Scout Oath. I
thoughtfully recognize and take upon myself the obligations and
responsibilities of an Eagle Scout. On my honor, I will do my best to make my
training an example and my status and my influence count strongly for better
Scouting and for better citizenship in my troop, in my community, and in my
contacts with other people.
To this I pledge my sacred honor.
Chrismtas Cutout Cookies
23 Dec 2016 in Blog
Every Chrismtas, my younger brother and I bake cutout cookies with our grandma.
These are their stories.
Skill Checks in D&D 5e
30 Sep 2016 in Blog
Migrated and edited from the Temple of Time site, where it was originally
posted by me as I experimented with GitHub pages.
Rain, Rain, Go Away
20 Sep 2016 in Blog
Migrated and edited from the Temple of Time site, where it was originally
posted by me as I experimented with GitHub pages.
Advice for College Students
18 Sep 2016 in Blog
Migrated and edited from the Temple of Time site, where it was originally
posted by me as I experimented with GitHub pages.