Skip Day 02! Minimum Progress Despite Nausea

Posted Friday, November 7, 2025 by Sri. Tagged JOURNAL

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.

About the Title Picture: Friday was another bad lethargy day, the worst so far this cycle, so I made porridge and just did the very minimum. The theme was just keep moving.A pot of porridge for sick day consumption.A pot of porridge for sick day consumption. (full size image)

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

Figure 1. Added the numbers to the left of the pyramid block, properly aligned based on the text size and height.Closeup of rendered word counting calendar block, ten blocks stacked for rows high in a pyramid shape. Numbers 1750, 2250, and 2500+ show the accrued words for each filled-in block.Closeup of rendered word counting calendar block, ten blocks stacked for rows high in a pyramid shape. Numbers 1750, 2250, and 2500+ show the accrued words for each filled-in block. (full size image)

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.