Another skip day, but I managed to add janky word count labels to the PDF renderer then passed out. Bonus thoughts on momentum and loving the journey.


I thought I was going to have a good production day, but was struck down by cramps, lethargy, nausea, and fuzzy-headednessI suspect this is a side effect of GAHT.. After battling this without much success, I settled for minimum progress: drawing text in the word counting calendar day block.
Theme of the Day: Sticking to Journey


It took me about 30 minutes to make some janky drawing code so I could see what pdf-lib API methods would give me the dimensions I needed to do the programmatic layoutASIDE: An annoyance I'm facing is that I'm drawing with the origin in the upper left of the page, but PDF puts it in the lower left. That's what the _x() and _y() functions are doing for me, converting coordinates. This affects a lot of things...in the final engine I'll have to revert to PDF-native origin conventions. SO JANKY..
// DRAW TEXT
const thresh = ['2500+', '2250', '1750'];
let twoff = 0;
for (let label of thresh) {
const tw = helveticaFont.widthOfTextAtSize(label, 9);
if (tw > twoff) twoff = tw;
}
let thoff = helveticaFont.heightAtSize(9, { descender: false });
thoff = thoff + (DIM - thoff) / 2; // center in unit size
let counter = 0;
for (let label of thresh) {
const yy = 10 + counter * 11 + thoff;
page.drawText(label, { x: _x(72 - twoff), y: _y(yy), size: 9 });
counter++;
}
The rest of the day I just slept and tried not to throw up.
November 2025 Building Challenge Posts
URSYS Web App Template code01
Embedded TypeScript Apps in Eleventy code02
A Review of Old Work and Stories coll01
Eleventy Templates for Atom Feeds blog01
Productivity Energy Crash prod01
Workshopping the 'Activity Bingo' Form prod02
Last Run of ETP Notebook Production tool01
Activity Bingo Form Progress prod03
ETP Mini Notebook Printing Press Tour tool02
Identity and Logo Thinking Pass coll02
Unprofessional Business Cards card01
Word Counting Calendar Reboot wcal01
Word Counting Calendar Interim Release wcal01
Calendar Layout Code Progress wcal02
Super Simple PDF Progress wcal02
Articulating Friendship docs01
First skip day due to day trip to Concord, etc. prod04
A PDF-LIB Reference docs02
Programatic Drawing of Word Counting Calendar Blocks wcal02
Minimum Progress Despite Nausea; useful noobly attitudes wcal03
Calendar Day Drawing Progress wcal04
Progress noted in Groundhog Day Resolutions for November 11 ghdr01
A Mythical Magical Adventure Cat Primer docs03
Correct Calendar Layout Progress wcal05
Calendar Labeling and Space Filling wcal06
A Restorative Visit to the North Shore arts01
Alpha Word Counting Calendar! wcal07
Mini ETP Production Update! tool03
Personal Cards Revisited card02
Visiting an Old Friend in Beverly, MA arts02
Experimental Collaboration
Short Productive Sprint Day
BUILD CHALLENGE COMMENTARY
I would have liked to have a hugely productive day and finished all this stuff this week, but allowances had to be made for health. I was also inspired by this video by Brainless on YouTube: How to Make Games When You're Bad at Everything
It's a remarkably candid and self-deprecating video about motivation and willpower, describing the journey in terms that anyone doing something huge for the very first time having to be not only persistent, but also fun. If the journey isn't fun, then motivation flags. Willpower can take you a certain distance too, but this is in short supply for someone like myself. It's a great watch and the video editing/production is excellent as well as charming. Kudos!
The video reminded me of my own 30 Day Building Challenge. For once, I'm letting myself not constantly being in the PUSH PUSH PUSH mindset. Recapturing the parts of the creative journey is, perhaps, what I've been missing.
When I was in design school at the RIT Computer Graphics Design department, one of the most profound lessons I learned that my best work seemed to come when I did subversive stuff that secretly pleased me. Remembering to do that, I hope, will pay off with increased capability to do the things I want.
I like writing blog posts, and this kept me going. As a bonus, sharing a media link is a first for this new blog, and I can see this becoming a regular thing in the future, providing commentary on things I like. I used to do that 20 years ago on the old blog, but fell out of the habit for some reason.
The journey of discovery continues!
Share! Share!
We chat about personal projects and challenges on the DS|CAFE Community Discord Server every day. Come visit! Maybe you'll make some friends!
You can reach me at Mastodon or Bluesky. Or subscribe to the blog feed to stay up-to-date.