habiting the net
Wednesday, October 22, 2025
At the start of 2025 I embarked on a rewrite of HistoryPin.org for Shift Collective, an Exygy Client and important place on the web where communities self-determine their stories. After being impressed with Cursor’s ability to create a meaningful contribution summary gleaned from the git commit history for SF’s Our415.org code, I let Cursor loose again. Strung together, these terse paragraphs form a pretty reasonable narrativization of my work on the rewrite.
Continue reading →
Wednesday, October 22, 2025
In the fall of 2024 I joined the Consulting division of Exygy, an agency that delivers web tech solutions for civic and non-profit organizations. My very first assignment was getting a project of the Deparment of Youth and Families – Our415.org – launch-ready. Having a direct impact on families in SF was a very rad proposition, being a resident myself. Bringing a project home that’s close to home.
In short time I completed a gaggle of technical work on Our415.
Continue reading →
Wednesday, October 25, 2023
Matz giving us many ways to do things.
> I want to make Ruby users free. I want to give them the freedom to choose. People are different.
From:
🔗 The Philosophy of Ruby: A Conversation with Yukihiro Matsumoto, Part I
def two_lowest(numbers) numbers.min(2).sum end Enumerable methods that can receive an operator as symbol. Glacial autumn breeze whipped up from the 101. I don’t have a brevity fetish, like I know many of you do.
Continue reading →
Sunday, October 18, 2020
Javascript:
const cards = () => ['♥','♠','♣','♦'] .map((suite) => (['2','3','4','5','6','7','8','9','10','J','Q','K','A'].map((card) => suite + card))) Clojure:
(defn new-deck [] (for [r [\♥ \♠ \♣ \♦] s [:2 :3 :4 :5 :6 :7 :8 :9 :10 :J :Q :K :A]] [r s]))
Continue reading →