Added new layout elements to the Word Counting Calendar code generator. It's coming along! Still need to implement variable data and conditional layout.


I had a pretty good day, despite waking up very late. I was able to hop right into work quickly after deciding to add the layout rules for leading/trailing blank cells, add the day names, and the banner areas.
CURRENT PROGRESS


REFERENCE DESIGN


Again for the very curious, you can download the 12-month draft PDF below. Be warned, though, that it isn't the complete calendar yet!
There are some subtle differences other than the typography:
- The base cell is a little flatter than the original, likely due to the different font used; the base cell is influenced by the rendered height of the day numbers
- The colors are not rendering quite the same, as they're being programmatically lightened, whereas in the original I tweaked each color set slightly.
- There is a color shift happening between different monior sources. If you compare the blog title pic with the screen captures, you'll see what I'm talking about. I haven't set up color management on this computer as it's been a while since I've done it, but when I am going to make press-ready output, I'll have to figure this color profile stuff out. A pain in the butt.
Next steps: probably dynamically-generated labels and word counts based on a target count, rather than using the assumption of 50,000 words per month. It would be far more useful to set the number of counts to anything we want!
November 2025 Building Challenge Posts
URSYS Web App Template code01
Embedded TypeScript Apps in Eleventy code02
A Review of Old Work and Stories work01
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 work02
Unprofessional Business Cards work03
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
BUILD CHALLENGE COMMENTARY
Today felt like a very good day in terms of flow. I'm wrapping up this blog post around 6PM my time, after spending about 5 hours total working through various issues.
BONUS ACHIEVEMENTS
I used several AI tools today.
- Converting my CMYK color tables using different AI tools to process the text list into a Javascript data structure, because I didn't want to type all this persnickety decimal points to the 4th place. YUCK.
- Comparing the ollama with the
qwen3-coderandgpt-oss-20bmodels, which are small enough to fit in 16-30GB of unified memory on my 64GB Macbook M1. My takeaway: these require a lot of refined prompting to match the quality (such as it is) of Claude Code running Sonet 4.5. The out-of-the-box results fromqwen3-coderandgpt-oss-20bwere...not good. - Re-enabling my Github Copilot integration for the "Free" account because I just need autocomplete on demand, as the autocompletion as-you-type is quite stupid. I just want to insert fragments of code signatures without having to scroll backwards.
These explorations took extra time, but bringing them back into my workflow for handling tedious data entry helped maintain mental energy that otherwise would have been consumed by eye straining work.
I'm not sure how other people are getting good results out of the qwen3-coder and gpt-oss-20b models with ollama, but it's nice to have such a "free" option available should I want to do simple data screening and reformatting work.
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.