A Million Little Pieces Of My Mind

Changes for March 15, 2026

By: Paul S Cilwa Posted: 3/15/2026 Page Views: 22
Documentation review, Whatever2JPG migrated to .NET 10, Manifesto Obscura project, NamtiraWeb section restructured; plus 33 NamtiraWeb code documentation pages published, PageProperties cleanup, TimeRibbon bug fix, Navigation warnings fixed, clean-build skill added.
Estimated reading time: 4 minute(s) (742 words)

Project Documentation Review

Five project documentation pages were reviewed for spelling, grammar, typos, broken links, keyword formatting, and missing Copy buttons. Pages reviewed: CSS Photo Fade, Missing Tracks, Register DLLs, VB Legacy Runtimes, and Whatever2JPG.

Common fixes included:

  • Adding Copy buttons to all block-level <code> elements
  • Fixing keyword formatting (each word capitalized, comma-separated, no extra spaces)
  • Converting Posted dates from string format to date literals
  • Adding missing Published = True property
  • Removing dead external links (thinkexist.com)
  • Removing vestigial class="DOS" from inline code elements
  • Adding contextual <aside> notes where appropriate (e.g., modern .NET no longer needs COM registration on the Register DLLs page, legacy nature of VB runtimes)

Whatever2JPG Migrated to .NET 10

The Whatever2JPG project was migrated from .NET Framework 4.8.1 to .NET 10 with an SDK-style project file. The duplicated NamtiraLib code (SuperStrings.vb) was removed and replaced with a reference to the shared NamtiraLib DLL. The Magick.NET NuGet package was updated from 14.2.0 to 14.10.3. Version bumped to 2.1 to reflect the library change and AVIF conversion support. Website documentation updated accordingly.

New Project: Manifesto Obscura

A new utility project was documented: Manifesto Obscura, a single-purpose tool that puts the display to sleep with one click. Built on .NET 10 using the Windows SendMessage API via NamtiraLib's TurnOffDisplay method. An Inno Setup installer was created and the documentation page added to the Projects section of the site.

NamtiraWeb Section Restructured

The NamtiraWeb parent page was trimmed from a five-paragraph essay to a concise two-paragraph header that introduces its child pages. The redundant content about ASP Classic history and AI was removed (the "Why NamtiraWeb?" child page already covers that ground). Spelling and grammar fixes were applied across the section ("commericial", "articial", "it's/its", duplicate words).

The ASP child section was rewritten to focus on ASP.NET Web Forms specifically, with an architectural diagram showing how Site.Master and code-behind files feed into content pages. An aside was added clarifying that while Microsoft now recommends ASP.NET Core with Razor Pages, Web Forms remains a practical choice for this site. A new "Alternatives to ASP.NET Web Forms" page was added covering MVC, Razor Pages, Blazor, static site generators, and WordPress.

All pages in the section had "ASP.net" and "VB.net" corrected to "ASP.NET" and "VB.NET", string dates converted to date literals, and backslash link paths fixed to forward slashes.

NamtiraWeb Code Documentation Published

All VB.NET modules and CSS stylesheets under the NamtiraWeb code section were documented and published. New pages cover: SiteMaster, PageProperties, KeywordList (new folder 25.Keywords), WebSpecific, SiteData (with four child pages), Navigation, SpiderService, and ShareData. The Styles section received 19 child pages—one per CSS file—plus a parent overview page explaining the stylesheet loading order and the CacheBustedUrl() cache-busting mechanism. TimeRibbon was fully rewritten from an older stub. All 33 pages set to Published = True with Posted = #3/15/2026#.

PageProperties Cleanup

Removed the dead ThumbnailOwnedPath property (no callers anywhere in the codebase). Renamed the Thumbnail property to ThumbnailInfo to clarify it returns a WebFileInfo object, not an image. Callers in Navigation.vb and Site.Master.vb updated accordingly.

TimeRibbon.vb Bug Fix and Reorder

Fixed a bug in GenerateYears where the single-year case was unreachable—the y = StartYear branch always fired first, giving the wrong colspan for any new site whose data doesn't yet span two calendar years. Fixed PopulateMilestones parameter name from Employment to Posts. Classes reordered bottom-up to match the documentation reading order: TimeRibbonItem ? TimeRibbonRow ? TimeRibbon ? PersonalTimeRibbon.

Navigation.vb Warning Fixes

Eliminated six BC42025 compiler warnings in Navigation.vb by replacing instance access of shared/constant members with direct class-name access: _SiteData.Home ? SiteData.Home, and five ThisPage.ActualPage.XButtonText references ? SiteMaster.XButtonText. These were legitimate warnings, not suppressed.

New clean-build Skill

Added a clean-build Claude Code skill triggered by "clean up for build". It clears the contents of all bin and obj folders without deleting the folders themselves, then re-applies attrib +S +H so OneDrive continues to ignore them between builds.

Navigation Button Text Wrapping

Multi-word section names such as "Namtira Web Code" were overflowing their 55px navigation button and obscuring adjacent buttons. Fixed in 30.Navigation.css by changing white-space: nowrap to white-space: normal and adding word-break: break-word. Buttons now grow taller as needed to accommodate wrapped labels.