BUILD 22/30: Word Counting Calendar Drawing Spaces

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

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

About the Title Picture: Making progress writing new layout rules in Javascript, using Visual Studio Code. It's still very much prototype code, but I'm getting a more accurate feeling what what I need in an expressive PDF rendering toolkitTitle image is a screenshot of Visual Studio Code, showing javascript code fragements alongside a preview of the generated PDF outputTitle image is a screenshot of Visual Studio Code, showing javascript code fragements alongside a preview of the generated PDF output (full size image)

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

Figure 1. This November 2022 calendar now has the leading/trailing cells and day names!Current progress on rendering a complete Word Counting Calendar, showing addition of day names and blank cells athe the beginning and end of weeksCurrent progress on rendering a complete Word Counting Calendar, showing addition of day names and blank cells athe the beginning and end of weeks (full size image)

REFERENCE DESIGN

Figure 2. For comparison, here is the hand-designed calendar that I'm using for a reference.Manually-designed version of the same calendar from 2022 for comparison with current progressManually-designed version of the same calendar from 2022 for comparison with current progress (full size image)

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!

2025 Building Challenge Posts

Making an URSYS App Example

Adding Typescript support to Eleventy

Review of Old Design Work

Improving my Eleventy Atom Feeds

Managing a Productivity Crash

Activity Bingo Board: Layout with Affinity Designer

ETP 5885 Notebook Press Run Prep

Activity Bingo Board Revisions

ETP 5885 Notebook Press Tour

A Silly Pass at Logo Design

Unprofessional Business Cards

Word Counting Calendar PDF Quickie Reuse

Word Counting Calendar PDF Now Available!

Word Counting Calendar Preparing to Code

Word Counting Calendar Simple Beginnings

Articulating Friendship

First skip day due to day trip to Concord, etc.

Making a PDF-LIB Reference

Word Counting Calendar Drawing Blocks

Minimum Progress Despite Nausea

Word Counting Calendar Drawing Blocks II

Writing A Mythical Magical Adventure Cat Primer

Word Counting Calendar Drawing Days

Word Counting Calendar Drawing Spaces

A Restorative Visit to the North Shore

Word Counting Calendar: Alpha Release!

ETP 5885 Notebook Production Update!

Personal Cards Revisited

11/21 - Visiting an Old Friend in Beverly, MA

Experimental Collaboration

Short Productive Sprint Day

Thanksgiving Reset Break

ETP 5885 Notebook back on Amazon!

ETP 365 Day Journal Updated for 2026!

Making a Freelance Services Page

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-coder and gpt-oss-20b models, 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 from qwen3-coder and gpt-oss-20b were...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.