<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Janusworx</title><link>https://janusworx.com/</link><description>Recent content on Janusworx</description><generator>Hugo -- gohugo.io</generator><language>en</language><managingEditor>feedback@janusworx.com (Mario Jason Braganza)</managingEditor><webMaster>feedback@janusworx.com (Mario Jason Braganza)</webMaster><copyright>© 2026, Mario Jason Braganza</copyright><lastBuildDate>Thu, 10 Sep 2026 05:30:00 +0530</lastBuildDate><atom:link href="https://janusworx.com/index.xml" rel="self" type="application/rss+xml"/><item><title>Fantastic KEPs and Where to Find Them: A Guide to Kubernetes Enhancements!</title><link>https://janusworx.com/talks/kubecon-in-2024-fantastic-keps/</link><pubDate>Tue, 17 Dec 2024 05:30:00 +0530</pubDate><author>feedback@janusworx.com (Mario Jason Braganza)</author><guid>https://janusworx.com/talks/kubecon-in-2024-fantastic-keps/</guid><description>&lt;p&gt;&lt;br&gt;&#10;&#10;Venue: &lt;em&gt;&lt;a href="https://kccncind2024.sched.com/event/1mVS3/fantastic-keps-and-where-to-find-them-a-guide-to-kubernetes-enhancements-priyanka-saggu-suse-mario-jason-braganza-janusworx" target="_blank" rel="noreferrer"&gt;KubeCon + CloudNativeCon India 2024&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;&#10;&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;&#10;&#10;&lt;iframe width="720" height="405" src="https://www.youtube-nocookie.com/embed/O7G8Y5O15Ag?si=usQdNQ06mlRa3OtD" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen&gt;&lt;/iframe&gt;&#10;&lt;br&gt;&#10;&#10;&lt;figcaption style="font-style: italic; text-align: center; font-size: 85%; color: var(--secondary)"&gt;&#10;&lt;p&gt;&lt;a href="https://janusworx.com/docs/KUIN-enhancements-2024-handout-slides.pdf" &gt;Slides&lt;/a&gt;&lt;/p&gt;&#10;&lt;/figcaption&gt;&#10;&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;&#10;&#10;</description></item><item><title>Peribolos: GitHub Management Amidst Growth in Kubernetes Project!</title><link>https://janusworx.com/talks/kubecon-eu-2024-peribolos/</link><pubDate>Fri, 05 Apr 2024 05:30:00 +0530</pubDate><author>feedback@janusworx.com (Mario Jason Braganza)</author><guid>https://janusworx.com/talks/kubecon-eu-2024-peribolos/</guid><description>&lt;p&gt;&lt;br&gt;&#10;&#10;Venue: &lt;em&gt;&lt;a href="https://kcseu2024.sched.com/event/1aOpr" target="_blank" rel="noreferrer"&gt;KubeCon + CloudNativeCon Europe 2024&lt;/a&gt;&lt;/em&gt;,&lt;br&gt;&#10;&lt;em&gt;(Kubernetes Contributor Summit Europe 2024)&lt;/em&gt;&lt;/p&gt;&#10;&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;&#10;&#10;&lt;iframe width="720" height="405" src="https://www.youtube-nocookie.com/embed/NQHwWEB5XzE?si=iQK60qNFiGmBFyuK" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen&gt;&lt;/iframe&gt;&#10;&lt;br&gt;&#10;&#10;&lt;figcaption style="font-style: italic; text-align: center; font-size: 85%; color: var(--secondary)"&gt;&#10;&lt;p&gt;&lt;a href="https://static.sched.com/hosted_files/kcseu2024/04/KCSEU24-PS-MJB-Peribolos.pdf" target="_blank" rel="noreferrer"&gt;Slides&lt;/a&gt;&lt;/p&gt;&#10;&lt;/figcaption&gt;&#10;&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;&#10;&#10;</description></item><item><title>Prow Jobs: Day 2 Aspects and How to Navigate, Read &amp; Write Them</title><link>https://janusworx.com/talks/kubecon-eu-2023-prow-jobs/</link><pubDate>Wed, 19 Apr 2023 16:25:00 +0530</pubDate><author>feedback@janusworx.com (Mario Jason Braganza)</author><guid>https://janusworx.com/talks/kubecon-eu-2023-prow-jobs/</guid><description>&lt;p&gt;&lt;br&gt;&#10;&#10;Venue: &lt;em&gt;&lt;a href="https://kccnceu2023.sched.com/event/1HyYE" target="_blank" rel="noreferrer"&gt;KubeCon + CloudNativeCon Europe 2023&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;&#10;&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;&#10;&#10;&lt;iframe width="720" height="405" src="https://www.youtube-nocookie.com/embed/gKKfXTZd7VU?si=sASnk39QYnaZz1R1" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen&gt;&lt;/iframe&gt;&#10;&lt;br&gt;&#10;&#10;&lt;figcaption style="font-style: italic; text-align: center; font-size: 85%; color: var(--secondary)"&gt;&#10;&lt;p&gt;&lt;a href="https://static.sched.com/hosted_files/kccnceu2023/6d/kube-eu-prow-jobs-day2-sched-pdf.pdf" target="_blank" rel="noreferrer"&gt;Slides&lt;/a&gt;&lt;/p&gt;&#10;&lt;/figcaption&gt;&#10;&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;&#10;&#10;</description></item><item><title>Efficient Kubernetes E2E Testing: Unleash the Power of Prow</title><link>https://janusworx.com/talks/kubecon-in-2023-e2e/</link><pubDate>Fri, 08 Dec 2023 14:40:00 +0530</pubDate><author>feedback@janusworx.com (Mario Jason Braganza)</author><guid>https://janusworx.com/talks/kubecon-in-2023-e2e/</guid><description>&lt;p&gt;&lt;br&gt;&#10;&#10;Venue: &lt;em&gt;&lt;a href="https://kubedayindia2023.sched.com/event/1T743" target="_blank" rel="noreferrer"&gt;KubeDay India 2023&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;&#10;&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;&#10;&#10;&lt;iframe width="720" height="405" src="https://www.youtube-nocookie.com/embed/NsJGwtj6PcQ?si=TO0doLbFldPeIHX1" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen&gt;&lt;/iframe&gt;&#10;&lt;br&gt;&#10;&#10;&lt;figcaption style="font-style: italic; text-align: center; font-size: 85%; color: var(--secondary)"&gt;&#10;&lt;p&gt;&lt;a href="https://static.sched.com/hosted_files/kubedayindia2023/4e/kd-blr-final.pdf" target="_blank" rel="noreferrer"&gt;Slides&lt;/a&gt;&lt;/p&gt;&#10;&lt;/figcaption&gt;&#10;&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;&#10;&#10;</description></item><item><title>Lindy Books</title><link>https://janusworx.com/lindy-books/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><author>feedback@janusworx.com (Mario Jason Braganza)</author><guid>https://janusworx.com/lindy-books/</guid><description>&lt;br/&gt; &#10;&#10;&lt;figure&gt;&#10; &lt;img class="my-0 rounded-md" src="https://janusworx.com/images/reread-liniers.jpg" alt="" /&gt;&#10; &#10; &#10; &lt;/figure&gt;&#10;&lt;figcaption style="font-style: italic; text-align: center; font-size: 85%; color: var(--secondary)"&gt;&#10;&lt;p&gt;via &lt;a href="https://twitter.com/linierscartoon/status/1397678865032622082/photo/1" target="_blank" rel="noreferrer"&gt;Ricardo Siri&lt;/a&gt;&lt;/p&gt;&#10;&lt;/figcaption&gt;&#10;&lt;hr style="margin-left: auto; margin-right: auto;margin-bottom: 40px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;" /&gt; &#10;&lt;p&gt;Yea, Lindy. From the term popularised in Taleb’s &lt;a href="https://janusworx.com/reading/longform/antifragile/what-i-learnt-from-antifragile-iv/" target="_blank" rel="noreferrer"&gt;Antifragile&lt;/a&gt;.&lt;br&gt;&#10;That is how most of the folks I learn from, read.&lt;/p&gt;&#10;&lt;p&gt;Shane Parrish uses it as a &lt;a href="https://fs.blog/2013/08/choose-your-next-book/" target="_blank" rel="noreferrer"&gt;guide to choose a book&lt;/a&gt;.&lt;br&gt;&#10;As do the readers of his blog at &lt;a href="https://fs.blog/2014/10/the-most-page-for-page-wisdom/" target="_blank" rel="noreferrer"&gt;Farnam Street&lt;/a&gt;.&lt;/p&gt;&#10;&lt;p&gt;Vishal Khandelwal writes about it on &lt;a href="https://www.safalniveshak.com/latticework-mental-models-lindy-effect/" target="_blank" rel="noreferrer"&gt;his awesome blog&lt;/a&gt;.&lt;br&gt;&#10;And also uses it as &lt;a href="https://www.safalniveshak.com/guide-to-reading-for-investors/" target="_blank" rel="noreferrer"&gt;a guide to reading for investors&lt;/a&gt;.&lt;/p&gt;&#10;&lt;hr style="margin-left: auto; margin-right: auto;margin-bottom: 40px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;" /&gt;&#10;&#10;&lt;figure&gt;&#10; &lt;img class="my-0 rounded-md" src="https://janusworx.com/images/02-reading-spectrum-safal-niveshak.jpg" alt="" /&gt;&#10; &#10; &#10; &lt;/figure&gt;&#10;&lt;hr style="margin-left: auto; margin-right: auto;margin-bottom: 40px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;" /&gt;&#10;&lt;p&gt;So these, are &lt;em&gt;my&lt;/em&gt; Lindy books.&lt;br&gt;&#10;The ones I cherish and have read ragged and have gifted and own multiple formats of.&lt;br&gt;&#10;The ones I reread &lt;em&gt;every, single, year&lt;/em&gt;.&lt;/p&gt;&#10;&lt;div class="book-list"&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;&lt;a href="https://janusworx.com/blog/hats-boas-the-little-prince-has-them-all/" target="_blank" rel="noreferrer"&gt;The Little Prince,&lt;/a&gt; Antoine de Saint-Exupéry&lt;/li&gt;&#10;&lt;li&gt;The Song of the Bird, Anthony de Mello&lt;/li&gt;&#10;&lt;li&gt;Meditations, Marcus Aurelius&lt;/li&gt;&#10;&lt;li&gt;The Count of Monte Cristo, Alexandre Dumas&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://janusworx.com/reading/longform/antifragile/" target="_blank" rel="noreferrer"&gt;Antifragile: Things That Gain from Disorder, Nassim Nicholas Taleb&lt;/a&gt; (one of the few books that changed my life … and made me fall in love with reading all over again)&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://janusworx.com/blog/atomic-habits/" target="_blank" rel="noreferrer"&gt;Atomic Habits,&lt;/a&gt; James Clear&lt;/li&gt;&#10;&lt;li&gt;So Good They Can’t Ignore You, Cal Newport&lt;/li&gt;&#10;&lt;li&gt;Deep Work: Rules for Focused Success in a Distracted World, Cal Newport&lt;/li&gt;&#10;&lt;li&gt;Bird by Bird, Anne Lamott&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://janusworx.com/blog/brave-enough/" target="_blank" rel="noreferrer"&gt;Brave Enough&lt;/a&gt;, Cheryl Strayed&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;/div&gt;&#10;</description></item><item><title>15 (Love’s Not Time’s Fool … )</title><link>https://janusworx.com/personal/15/</link><pubDate>Thu, 10 Sep 2026 05:30:00 +0530</pubDate><author>feedback@janusworx.com (Mario Jason Braganza)</author><guid>https://janusworx.com/personal/15/</guid><description>&#10;&lt;figure class="mjb-img-center"&gt;&#10; &lt;img class="my-0 rounded-md" src="https://janusworx.com/images/2026/happy-anniversary-15-a.jpg" alt="Photo of Abby and me in church under a floral arch" /&gt;&#10; &#10; &lt;figcaption&gt;&lt;a href="https://www.youtube.com/watch?v=XW5nIlIfR5s" target="_blank" rel="noreferrer"&gt;Somewhere, under the rainbow … 🎶 🎶&lt;/a&gt;&lt;/figcaption&gt;&#10; &lt;/figure&gt;&#10;&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;&#10;&#10;&lt;div style="text-align: center"&gt; &#10;&lt;p&gt;Let me not to the marriage of true minds&lt;br&gt;&#10;Admit impediments. Love is not love&lt;br&gt;&#10;Which alters when it alteration finds,&lt;br&gt;&#10;Or bends with the remover to remove:&lt;br&gt;&#10;O, no! it is an ever-fixed mark,&lt;br&gt;&#10;That looks on tempests and is never shaken;&lt;br&gt;&#10;It is the star to every wandering bark,&lt;br&gt;&#10;Whose worth’s unknown, although his height be taken.&lt;br&gt;&#10;Love’s not Time’s fool, though rosy lips and cheeks&lt;br&gt;&#10;Within his bending sickle’s compass come;&lt;br&gt;&#10;Love alters not with his brief hours and weeks,&lt;br&gt;&#10;But bears it out even to the edge of doom.&lt;br&gt;&#10;    If this be error and upon me proved,&lt;br&gt;&#10;    I never writ, nor no man ever loved.&lt;/p&gt;&#10;&lt;p&gt;&lt;em&gt;— &lt;a href="https://en.wikipedia.org/wiki/Sonnet_116" target="_blank" rel="noreferrer"&gt;the Bard&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;&#10;&#10;&lt;div style="text-align: center"&gt; To many many more years, together 🤗 &lt;/div&gt; &#10;&#10;&lt;figure class="mjb-img-center"&gt;&#10; &lt;img class="my-0 rounded-md" src="https://janusworx.com/images/2026/happy-anniversary-15-b.jpg" alt="Diptych of Abby and me, on joyride" /&gt;&#10; &#10; &lt;figcaption&gt;&lt;a href="https://www.youtube.com/watch?v=3-AXs-tR_oI" target="_blank" rel="noreferrer"&gt;You and me, Sunday driving, not arriving … 🎶 🎶&lt;/a&gt;&lt;/figcaption&gt;&#10; &lt;/figure&gt;&#10;&lt;p&gt;&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;&#10;&#10;Feedback on this post?&lt;br&gt;&#10;Mail me at &lt;a href="mailto:feebdback@janusworx.com?subject=%22Feedback on post: 15 (Love’s Not Time’s Fool … )&#10;%22" &gt;feedback at this domain&lt;/a&gt;.&lt;br&gt;&#10;P.S. Subscribe to my &lt;a href="https://janusworx.com/subscribe/" target="_blank" rel="noreferrer"&gt;mailing list!&lt;/a&gt;&lt;/p&gt;&#10;</description></item><item><title>Books I Read in August, 2026</title><link>https://janusworx.com/reading/books-i-read-in-august-2026/</link><pubDate>Tue, 01 Sep 2026 12:30:54 +0530</pubDate><author>feedback@janusworx.com (Mario Jason Braganza)</author><guid>https://janusworx.com/reading/books-i-read-in-august-2026/</guid><description>&#10;&lt;figure class="mjb-img-center"&gt;&#10; &lt;img class="my-0 rounded-md" src="https://janusworx.com/images/2026/what-i-read-in-august-2026-dantes-divine-comedy-tgc.jpg" alt="cover image of a Great Courses course on Audible, called, Dante’s Divine Comedy by William R. Cook and Ronald B. Herzman" /&gt;&#10; &#10; &lt;figcaption&gt;via &lt;a href="https://www.audible.in/pd/Dantes-Divine-Comedy-Audiobook/B07B8W19HN" target="_blank" rel="noreferrer"&gt;Audible&lt;/a&gt;&lt;/figcaption&gt;&#10; &lt;/figure&gt;&#10;&lt;p&gt;Lots of work this month.&lt;br&gt;&#10;Tried to keep reading on an even keel, on slow regular cadence in addition to reading in the cracks of time.&lt;br&gt;&#10;Coffee and Audiobooks in the morning are such a pleasure.&lt;/p&gt;&#10;&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;&#10;&#10;&#10;&lt;h3 class="relative group"&gt;Building Great Sentences, Brooks Landon (The Great Courses)&#10; &lt;div id="building-great-sentences-brooks-landon-the-great-courses" class="anchor"&gt;&lt;/div&gt;&#10; &#10; &lt;span&#10; class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;&#10; &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#building-great-sentences-brooks-landon-the-great-courses" aria-label="Anchor"&gt;#&lt;/a&gt;&#10; &lt;/span&gt;&#10; &#10;&lt;/h3&gt;&#10;&lt;p&gt;While learning about Danté&lt;sup id="fnref:1"&gt;&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref"&gt;1&lt;/a&gt;&lt;/sup&gt; is defintitely more important and why I did &lt;em&gt;this&lt;/em&gt; course, &lt;em&gt;Building Great Sentences&lt;/em&gt;, will probably be the biggest skill I pick up this year.&lt;br&gt;&#10;I loved it so much that I bought both, the &lt;a href="https://www.kobo.com/in/en/ebook/building-great-sentences" target="_blank" rel="noreferrer"&gt;book&lt;/a&gt; and the &lt;a href="https://shop.thegreatcourses.com/building-great-sentences-exploring-the-writers-craft" target="_blank" rel="noreferrer"&gt;course&lt;/a&gt;.&lt;br&gt;&#10;It finally unveiled to me, just what was involved in constructing a beautiful sentence, and why the aim is always to write &lt;em&gt;longer&lt;/em&gt; sentences. The trick, &lt;a href="https://youtu.be/ObGVA1WOqyE?si=PR6UbVRTOAq2qVDs&amp;amp;t=65" target="_blank" rel="noreferrer"&gt;the turn&lt;/a&gt;, if it be called that, is the skill involved in &lt;em&gt;constructing&lt;/em&gt; the long sentence, using the best possible vocabulary and rhythm to deliver the prestige: a beautiful line of prose.&lt;/p&gt;&#10;&lt;p&gt;Word choices, depth of clauses both vertical and horizontal, the inseparability of form from content, the importance of rhetoric over grammar and much, much more. For folks like me, who want some tools, (of the folks studying and writing good literature,) to express themselves more eloquently, this book really is godsent.&lt;/p&gt;&#10;&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;&#10;&#10;&#10;&lt;h3 class="relative group"&gt;Writing for Developers, Piotr Sarna &amp;amp; Cynthia Dunlop&#10; &lt;div id="writing-for-developers-piotr-sarna--cynthia-dunlop" class="anchor"&gt;&lt;/div&gt;&#10; &#10; &lt;span&#10; class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;&#10; &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#writing-for-developers-piotr-sarna--cynthia-dunlop" aria-label="Anchor"&gt;#&lt;/a&gt;&#10; &lt;/span&gt;&#10; &#10;&lt;/h3&gt;&#10;&lt;p&gt;This gave me another set of skills, that of writing technical blogs. Not that I am going to use this on the current blog, (I am defintitely not the target audience) but this is another set of knives in the toolbelt.&lt;br&gt;&#10;Lots of tips and tricks and scaffolding and templates and handholding on how to write a “modern” technical blog. Specially helpful for folks, who use English as their secondary, tertiary or quaternary language and yet have to write blog posts or documentation to support their code.&lt;/p&gt;&#10;&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;&#10;&#10;&#10;&lt;h3 class="relative group"&gt;Disney, &lt;a href="https://www.acquired.fm/episodes/the-walt-disney-company" target="_blank" rel="noreferrer"&gt;Part I&lt;/a&gt; &amp;amp; &lt;a href="https://www.acquired.fm/episodes/disney-the-renaissance-and-the-empire" target="_blank" rel="noreferrer"&gt;Part II&lt;/a&gt;, Acquired Podcast&#10; &lt;div id="disney-part-i--part-ii-acquired-podcast" class="anchor"&gt;&lt;/div&gt;&#10; &#10; &lt;span&#10; class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;&#10; &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#disney-part-i--part-ii-acquired-podcast" aria-label="Anchor"&gt;#&lt;/a&gt;&#10; &lt;/span&gt;&#10; &#10;&lt;/h3&gt;&#10;&lt;p&gt;Lovely history of Disney and Co from Walt all the way to the modern day. I don’t know if there will be a follow up, but these episodes cover a fairly large block of time. Leans hagiographic as Acquired is wont to do. Lots of Disney villainy, specially towards creative folk, is swept under the rug.&lt;/p&gt;&#10;&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;&#10;&#10;&#10;&lt;h3 class="relative group"&gt;&lt;a href="https://podcasts.apple.com/gb/podcast/sherlock-co/id1710121792" target="_blank" rel="noreferrer"&gt;The Boscombe Valley Mystery&lt;/a&gt;, Sherlock &amp;amp; Co. Podcast, Season 47&#10; &lt;div id="the-boscombe-valley-mystery-sherlock--co-podcast-season-47" class="anchor"&gt;&lt;/div&gt;&#10; &#10; &lt;span&#10; class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;&#10; &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#the-boscombe-valley-mystery-sherlock--co-podcast-season-47" aria-label="Anchor"&gt;#&lt;/a&gt;&#10; &lt;/span&gt;&#10; &#10;&lt;/h3&gt;&#10;&lt;p&gt;Dr. Watson gets into a funk, gets really grumpy, kills a fatuous, smug, arsehole and then gets thrown in the slammer.&lt;br&gt;&#10;Find out how our duo fares in Season 47! This one was on the lighter side; not too heavy (excepting the murder, of course.)&lt;/p&gt;&#10;&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;&#10;&#10;&#10;&lt;h3 class="relative group"&gt;Absolution by Murder, Peter Tremayne&#10; &lt;div id="absolution-by-murder-peter-tremayne" class="anchor"&gt;&lt;/div&gt;&#10; &#10; &lt;span&#10; class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;&#10; &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#absolution-by-murder-peter-tremayne" aria-label="Anchor"&gt;#&lt;/a&gt;&#10; &lt;/span&gt;&#10; &#10;&lt;/h3&gt;&#10;&lt;p&gt;Sister Fidelma, the Irish nun, solves a murder mystery at the dawn of Christianity in seventh century Northumbria. For someone so ancient, Sister Fidelma comes across as quite modern. I love the writing and the history and the exposition. I love the world. And while you’ll probably see the murderer from a mile away, I also love that the cause seems both quite modern as well as something as old as time. Very, very, enjoyable.&lt;/p&gt;&#10;&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;&#10;&#10;&#10;&lt;h3 class="relative group"&gt;The Silver Pigs &amp;amp; Shadows in Bronze, Lindsey Davis&#10; &lt;div id="the-silver-pigs--shadows-in-bronze-lindsey-davis" class="anchor"&gt;&lt;/div&gt;&#10; &#10; &lt;span&#10; class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;&#10; &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#the-silver-pigs--shadows-in-bronze-lindsey-davis" aria-label="Anchor"&gt;#&lt;/a&gt;&#10; &lt;/span&gt;&#10; &#10;&lt;/h3&gt;&#10;&lt;p&gt;And now, to go even further back in time, to the Roman Empire to solve even more murder!&lt;br&gt;&#10;Nero is dead. Three more emperors die in quick succession before commonplace Vespasian wrests control to begin the Flavian dynasty.&lt;br&gt;&#10;And in the centre of this hot, boiling, odorous, unsettled mess that is the city of Rome, is informer&lt;sup id="fnref:2"&gt;&lt;a href="#fn:2" class="footnote-ref" role="doc-noteref"&gt;2&lt;/a&gt;&lt;/sup&gt; and later imperial agent, Falco. Contrary to modern noir tropes, Falco matches the messiness of Rome. He has a large family that is always underfoot, is social and works with everyone he possibly can.&lt;br&gt;&#10;The stories themselves range from Rome to ancient Britain to Magna Graecia (southern Italy) and back. There are all sorts of shenanigans. Mischief, murder, mayhem and everything in between. The two books have two murders, yes, but the bigger arc feels like a single novel. These c(sh)ould be read like a duology.&#10;The language is beautiful. It feels very much like how I would write, if I could write well. It’s slightly curt, just like me. There are plenty of things left unsaid for folks to find if they wish to. I &lt;em&gt;&lt;strong&gt;loved&lt;/strong&gt;&lt;/em&gt; it!&lt;/p&gt;&#10;&lt;blockquote&gt;&lt;p&gt;“Lie still, Falco; don’t make such a fuss…”&#10;The dependable vindictiveness of Helena’s voice swung with me through delirium. To a freed slave, tyranny can be oddly comforting.&lt;/p&gt;&#10;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;p&gt;I have no intention of describing what happened next. It is private between me, the senator’s daughter, and the gardener’s horse.&lt;/p&gt;&#10;&lt;/blockquote&gt;&lt;p&gt;[Reading this below, on my &lt;a href="https://janusworx.com/personal/75-years-in-memoriam/" &gt;father’s birthday&lt;/a&gt; … this really struck home — mjb]&lt;/p&gt;&#10;&lt;blockquote&gt;&lt;p&gt;My mother’s face would never age. Only her skin had grown tired in recent years, so it no longer fitted properly on her bones. After I came back from Britain she seemed smaller than before. Her black-rimmed eyes would stay bright and sharp-witted to the day she died. One day that would happen, and though I now spent so much effort fending off her encroachments, when she was gone I would be desolate.&lt;/p&gt;&#10;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;p&gt;I bought a pancake stuffed with hot minced pork which I ate as I walked. A watchdog wagged his tail at me but I told him to take his smiling fangs elsewhere.&lt;br&gt;&#10;Life is unfair. Too unfair, too often, to ignore a friendly grin; I went back and shared my pancake with the dog.&lt;/p&gt;&#10;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;p&gt;Sometimes I stood at the sea’s lisping edge …&lt;/p&gt;&#10;&lt;/blockquote&gt;&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;&#10;&#10;&#10;&lt;h3 class="relative group"&gt;How to Read and Understand Shakespeare, Marc C. Conner (The Great Courses)&lt;sup&gt;‡&lt;/sup&gt;&lt;sup&gt;#&lt;/sup&gt;&#10; &lt;div id="how-to-read-and-understand-shakespeare-marc-c-conner-the-great-courses" class="anchor"&gt;&lt;/div&gt;&#10; &#10; &lt;span&#10; class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;&#10; &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#how-to-read-and-understand-shakespeare-marc-c-conner-the-great-courses" aria-label="Anchor"&gt;#&lt;/a&gt;&#10; &lt;/span&gt;&#10; &#10;&lt;/h3&gt;&#10;&lt;p&gt;More study on how to engage with the bard. This course focuses on the tropes and techniques across Shakespeare’s plays and helps us see them, so that we can enjoy and engage with the plays even more. Here’s one called …&lt;/p&gt;&#10;&lt;blockquote&gt;&#10;&lt;h4 class="relative group"&gt;Words, Words, Words!&#10; &lt;div id="words-words-words" class="anchor"&gt;&lt;/div&gt;&#10; &#10; &lt;span&#10; class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;&#10; &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#words-words-words" aria-label="Anchor"&gt;#&lt;/a&gt;&#10; &lt;/span&gt;&#10; &#10;&lt;/h4&gt;&#10;&lt;p&gt;One of the essential keys for unlocking Shakespeare is the way he uses words. We will call this the “words, words, words” tool because when Hamlet is asked what he is reading, he responds, &lt;em&gt;“Words, words, words.”&lt;/em&gt;&lt;br&gt;&#10;How does Shakespeare use these words? Shakespeare uses language in figurative ways, meaning that the language is representative, symbolic, metaphorical; in other words, he uses words to mean something other than their literal meaning.&lt;/p&gt;&#10;&lt;p&gt;Pay close attention to how Shakespeare explores and exploits the many meanings of words. Where does he make puns—that is, highlight the double meanings of words? Where does he employ obviously poetical language, and where does he use language that is quite ordinary and familiar? What does he gain by this? How does he use particular aspects of language—the speech of lower classes, prose versus poetry, high poetic language of true love, the Shakespearean sonnet, etc.—to attain his meanings? What do readers need to know in order to understand Shakespeare’s language?&lt;/p&gt;&#10;&lt;p&gt;Romeo looks up and sees a light. Well, sure, Juliet’s bedroom candle is burning. However, Romeo does not stop at that literal meaning. The window, he says, is the eastern horizon, and the light he beholds is the sun rising—which, he says, is Juliet herself.&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;What is gained by using language in this way?&lt;/strong&gt;&lt;br&gt;&#10;What is gained is precisely a surplus of meaning—larger significances than the literal words would allow.&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;If Romeo is telling us that Juliet is now his sun, this means that she has a cosmic significance to him, and indeed, a few lines later, he compares her eyes to stars and says that they could burn “so bright that birds would sing and think it were not night.”&lt;/li&gt;&#10;&lt;li&gt;Juliet even becomes a goddess to Romeo, just as primitive people once worshiped the sun. Indeed, later in the play, Juliet calls Romeo “the god of my idolatry,” which is a dangerous confusion of the love one gives to a person with the love one gives to God.&lt;/li&gt;&#10;&lt;li&gt;In almost the very last line of the play, the prince says, because these young lovers are now dead, “The sun for sorrow will not show his head”—as if the light that was embodied in Juliet has now been extinguished. All of these meanings are suggested in the first small comparison Romeo makes with his language: “It is the east and Juliet is the sun.”&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;Romeo says one thing and means many things. It’s one of the major tools to keep in mind with Shakespeare: His language means more than one thing and works on more than one level of meaning.&lt;/p&gt;&#10;&lt;p&gt;Romeo says: “It is my lady, O, it is my love!” This simply means that the girl he beholds is the girl he adores.&#10;Shakespeare alternates lines fraught with condensed, poetic meaning with lines that mean pretty much exactly what they say. Usually, the characters that are most interesting move back and forth between figurative language and literal language.&lt;/p&gt;&#10;&lt;p&gt;When Juliet first speaks from the balcony, her initial words are a succinct statement of the whole problem of the play: that she is of the Capulet family and Romeo is a Montague, the sworn enemies of the Capulets.&lt;/p&gt;&#10;&lt;blockquote&gt;&lt;p&gt;O Romeo, Romeo, wherefore art thou Romeo?&lt;br&gt;&#10;Deny thy father and refuse thy name.&lt;br&gt;&#10;Or if thou wilt not, be but sworn my love&lt;br&gt;&#10;And I’ll no longer be a Capulet.&lt;/p&gt;&#10;&lt;/blockquote&gt;&lt;p&gt;&lt;em&gt;“Wherefore art thou Romeo”&lt;/em&gt; means “Why are you named Romeo?”&lt;br&gt;&#10;This problem of the name strikes Juliet as an odd thing: If she loves Romeo and Romeo loves her, why should mere names be such a problem?&#10;She moves into her own meditation on, in fact, language itself.&lt;/p&gt;&#10;&lt;blockquote&gt;&lt;p&gt;What’s in a name? That which we call a rose&lt;br&gt;&#10;By any other word would smell as sweet;&lt;br&gt;&#10;So Romeo would, were he not Romeo call’d,&lt;br&gt;&#10;Retain that dear perfection which he owes&lt;br&gt;&#10;Without that title. Romeo, doff thy name,&lt;br&gt;&#10;And for thy name, which is no part of thee,&lt;br&gt;&#10;Take all myself.&lt;/p&gt;&#10;&lt;/blockquote&gt;&lt;p&gt;Juliet is taking on the very problem of Shakespeare’s words:&#10;Why use one word rather than another? What difference does the word make? What’s in a name? If this play tells us anything, it tells us that we cannot simply abandon the meanings words have. Romeo and Juliet struggle mightily to escape the fate that their family names demand, and the tragedy of the play is that they cannot do it. Words, Shakespeare tells us, are of enormous, life-changing, world-shaping importance, which is another reason why Shakespeare tries to bring out their power through his figurative language.&lt;/p&gt;&#10;&lt;p&gt;Shakespeare’s central focus on language also takes the form of an extended conceit, or poetic analogy, such as when Romeo meets Juliet at the ball. Pay close attention to how this comparison in words functions. What does the comparison tell you about Romeo and how he feels toward Juliet? What does Shakespeare gain by using language in this way?&lt;/p&gt;&#10;&lt;p&gt;Shakespeare’s language can at times depend on archaic or lost words for a contemporary audience. Readers need to look up some of his strange or historically distant words. Think about how these words contribute to Shakespeare’s meaning.&lt;/p&gt;&#10;&lt;/blockquote&gt;&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;&#10;&#10;&#10;&lt;h3 class="relative group"&gt;Twelfth Night, or What You Will, William Shakespeare&#10; &lt;div id="twelfth-night-or-what-you-will-william-shakespeare" class="anchor"&gt;&lt;/div&gt;&#10; &#10; &lt;span&#10; class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;&#10; &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#twelfth-night-or-what-you-will-william-shakespeare" aria-label="Anchor"&gt;#&lt;/a&gt;&#10; &lt;/span&gt;&#10; &#10;&lt;/h3&gt;&#10;&lt;p&gt;So I finally took all that Shakespeare learning and tried to read my first Shakespeare.&lt;br&gt;&#10;I watched the play first and then went on to read it. &lt;a href="https://www.youtube.com/@ShakespeareNetwork" target="_blank" rel="noreferrer"&gt;Shakespeare Network&lt;/a&gt; is an splendid place for lots of really good performances.&lt;br&gt;&#10;The play is lovely. Now I know, why Shakespeare is Shakespeare and why the plays have been copied and adapted over and over, over the millenia.&lt;/p&gt;&#10;&lt;p&gt;I loved the language. I loved the prose and the poetry. I loved the characters. I loved the play. And I’m going to love rereading this again next month.&lt;br&gt;&#10;I read the Arden edition of the play which has copious notes and context, which I haven’t read yet. Going through those and then reading the play again, should be fun.&lt;/p&gt;&#10;&lt;p&gt;A thought that struck me reading this, is that things of art, of beauty, of remembrance come from hard, blue collar work.&lt;br&gt;&#10;The product might be enduring and beautifully wrought, but it’s made in the dirt. By flawed, human people crafting things bit by bit. Shakespeare struck me as such a man.&lt;sup id="fnref:3"&gt;&lt;a href="#fn:3" class="footnote-ref" role="doc-noteref"&gt;3&lt;/a&gt;&lt;/sup&gt;&lt;br&gt;&#10;One example of his earthy vulgarity was Malvolio finding the planted letter and then going: &lt;em&gt;“By my life, this is my lady’s hand. These be her very C’s, her U’s and her T’s, and thus makes she her great P’s.”&lt;/em&gt;&lt;/p&gt;&#10;&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;&#10;&#10;&#10;&lt;h3 class="relative group"&gt;&lt;a href="https://www.dancarlin.com/product/hardcore-history-74-mania-for-subjugation-iv/" target="_blank" rel="noreferrer"&gt;Mania for Subjugation IV&lt;/a&gt;, Hardcore History, Episode 74&#10; &lt;div id="mania-for-subjugation-iv-hardcore-history-episode-74" class="anchor"&gt;&lt;/div&gt;&#10; &#10; &lt;span&#10; class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;&#10; &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#mania-for-subjugation-iv-hardcore-history-episode-74" aria-label="Anchor"&gt;#&lt;/a&gt;&#10; &lt;/span&gt;&#10; &#10;&lt;/h3&gt;&#10;&lt;p&gt;Four very enjoyable hours. Alexander takes Turkey. Darius the Third, escapes.&lt;br&gt;&#10;And that is all I will tell you about this episode!&lt;br&gt;&#10;The history is known. What you have to experience is how Dan brings it alive :)&lt;/p&gt;&#10;&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;&#10;&#10;&#10;&lt;h3 class="relative group"&gt;Classical Mythology, Elizabeth Vandiver (The Great Courses)&#10; &lt;div id="classical-mythology-elizabeth-vandiver-the-great-courses" class="anchor"&gt;&lt;/div&gt;&#10; &#10; &lt;span&#10; class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;&#10; &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#classical-mythology-elizabeth-vandiver-the-great-courses" aria-label="Anchor"&gt;#&lt;/a&gt;&#10; &lt;/span&gt;&#10; &#10;&lt;/h3&gt;&#10;&lt;p&gt;I found another primer on the classical myths of the Occidental world.&lt;br&gt;&#10;This is the big girl edition of &lt;em&gt;&lt;a href="https://janusworx.com/reading/books-i-read-in-july-2026/#daulaires-book-of-greek-myths-ingri--edgar-parin-daulaire" &gt;D’Aulaires’ Book of Greek Myths&lt;/a&gt;&lt;/em&gt; that I read last month.&lt;br&gt;&#10;Elizabeth Vandiver covers all the big stories, and grounds them in history wherever possible.&lt;br&gt;&#10;I loved her definition of a myth: &lt;em&gt;“traditional stories, a society tells itself that encode or represent the world-view, beliefs, principles, and often fears of that society.”&lt;/em&gt; When seen through this lens, lots of “weird” things about myths suddenly start to make sense. She also makes the point that no culture, thinks of their myth as myth. To them it’s just the daily truth; an account of the way things really are.&lt;br&gt;&#10;This was a wonderful introduction to the old western world. I just wish I can find something like this for India (the subcontinent as a whole) as well!&lt;/p&gt;&#10;&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;&#10;&#10;&#10;&lt;h3 class="relative group"&gt;Dante’s Divine Comedy, William R. Cook &amp;amp; Ronald B. Herzman (The Great Courses)&#10; &lt;div id="dantes-divine-comedy-william-r-cook--ronald-b-herzman-the-great-courses" class="anchor"&gt;&lt;/div&gt;&#10; &#10; &lt;span&#10; class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;&#10; &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#dantes-divine-comedy-william-r-cook--ronald-b-herzman-the-great-courses" aria-label="Anchor"&gt;#&lt;/a&gt;&#10; &lt;/span&gt;&#10; &#10;&lt;/h3&gt;&#10;&lt;p&gt;This is the one that I really sank my teeth into, because I have had a copy of the Comedy in my shelves for years and I have been scared to go read it. And then to add to it, I bought myself a handmade coffee table edition of the Comedy (with gorgeous Gustave Dore artwork) in French, earlier this year.&lt;br&gt;&#10;So Cook and Herzman were my guides through Dante’s voyage through the Inferno, Purgatario and Paradiso.&lt;br&gt;&#10;And in a word, &lt;em&gt;&lt;strong&gt;this&lt;/strong&gt;&lt;/em&gt; was what I was looking for all my life.&lt;br&gt;&#10;Something based on the Christian faith I was born into, and the Greek and Latin&lt;sup id="fnref:4"&gt;&lt;a href="#fn:4" class="footnote-ref" role="doc-noteref"&gt;4&lt;/a&gt;&lt;/sup&gt; myths I grew up with, the philosophers whose quotes were pounded into my head as a kid&lt;sup id="fnref:5"&gt;&lt;a href="#fn:5" class="footnote-ref" role="doc-noteref"&gt;5&lt;/a&gt;&lt;/sup&gt;, all painstakingly crafted with symmetry in a gorgeously fashioned poetic structure.&lt;br&gt;&#10;And going through the course, I realised that Danté “spiced” things up by adding gossip from all over in his day and age. There are popes and politicians and poets and pariahs, saints and sinners, and of course the Devil and God.&lt;br&gt;&#10;I might never get to reading it in all its poetic glory in Italian, but at least I can now read it in English and French. Twice is nice :)&lt;br&gt;&#10;Also someday, I hope to make a pilgrimage to Florence and Ravenna.&lt;/p&gt;&#10;&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;&#10;&#10;&lt;p&gt;P.S. If you want to watch a Shakespeare play, and you don’t know which one, &lt;a href="https://goodticklebrain.com/home/2016/4/18/which-shakespeare-play-should-i-see-an-illustrated-flowchart" target="_blank" rel="noreferrer"&gt;here’s a handy-dandy flowchart from Good Tickle Brain.&lt;/a&gt;&lt;/p&gt;&#10;&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;&#10;&#10;&lt;p&gt;Feedback on this post?&lt;br&gt;&#10;Mail me at &lt;a href="mailto:feebdback@janusworx.com?subject=%22Feedback on post: Books I Read in August, 2026&#10;%22" &gt;feedback at this domain&lt;/a&gt;.&lt;br&gt;&#10;P.S. Subscribe to my &lt;a href="https://janusworx.com/subscribe/" target="_blank" rel="noreferrer"&gt;mailing list!&lt;/a&gt;&lt;/p&gt;&#10;&lt;div class="footnotes" role="doc-endnotes"&gt;&#10;&lt;hr&gt;&#10;&lt;ol&gt;&#10;&lt;li id="fn:1"&gt;&#10;&lt;p&gt;lower down the page&amp;#160;&lt;a href="#fnref:1" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li id="fn:2"&gt;&#10;&lt;p&gt;read, Detective&amp;#160;&lt;a href="#fnref:2" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li id="fn:3"&gt;&#10;&lt;p&gt;Feynman was another. My dad, another.&amp;#160;&lt;a href="#fnref:3" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li id="fn:4"&gt;&#10;&lt;p&gt;the site is called Janusworx because Janus is the Roman god of liminal spaces. And I loved that idea :)&amp;#160;&lt;a href="#fnref:4" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li id="fn:5"&gt;&#10;&lt;p&gt;Aquinas and Augustine.&amp;#160;&lt;a href="#fnref:5" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;/div&gt;&#10;</description></item><item><title>2026</title><link>https://janusworx.com/reading/2026/</link><pubDate>Mon, 31 Aug 2026 05:30:00 +0530</pubDate><author>feedback@janusworx.com (Mario Jason Braganza)</author><guid>https://janusworx.com/reading/2026/</guid><description>&lt;div style="font-size: 85%; "&gt;&#10;&lt;p&gt;&lt;em&gt;&lt;strong&gt;What do all the stars and daggers after the book titles mean?&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;&#10;&lt;p&gt;¶ for &lt;a href="https://janusworx.com/lindy-books/" target="_blank" rel="noopener noreferrer"&gt;Lindy books&lt;/a&gt; &lt;br&gt;&#10;† for most non fiction&lt;br&gt;&#10;‡ for tech / work / study / reference stuff &lt;br&gt;&#10;# for alternate media (like audio or video)&lt;br&gt;&#10;numbers are footnotes&lt;br&gt;&#10;Some book titles might be repeated (in addition to the annual Lindy reads :)&lt;br&gt;&#10;After all, &lt;a href="https://janusworx.com/lindy-books/" target="_blank" rel="noopener noreferrer"&gt;we are what we re-read&lt;/a&gt; :)&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;br&gt;&#10;&#10;&#10;&lt;h3 class="relative group"&gt;January&#10; &lt;div id="january" class="anchor"&gt;&lt;/div&gt;&#10; &#10; &lt;span&#10; class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;&#10; &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#january" aria-label="Anchor"&gt;#&lt;/a&gt;&#10; &lt;/span&gt;&#10; &#10;&lt;/h3&gt;&#10;&lt;p&gt;&lt;a href="https://janusworx.com/reading/books-i-read-in-january-2026/" &gt;&lt;em&gt;Thoughts and notes&lt;/em&gt;&lt;/a&gt;&lt;/p&gt;&#10;&lt;div class="book-list"&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;&lt;a href="https://therestishistory.com/episodes/" target="_blank" rel="noreferrer"&gt;The Rest is History&lt;/a&gt;, The Nazis at War, Parts I-IV&lt;sup&gt;†&lt;/sup&gt;&lt;sup&gt;#&lt;/sup&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://podcasts.apple.com/gb/podcast/sherlock-co/id1710121792" target="_blank" rel="noreferrer"&gt;The Second Stain&lt;/a&gt;, Sherlock &amp;amp; Co. Podcast, Season 37&lt;sup&gt;#&lt;/sup&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://podcasts.apple.com/gb/podcast/sherlock-co/id1710121792" target="_blank" rel="noreferrer"&gt;The Man with the Twisted Lip&lt;/a&gt;, Sherlock &amp;amp; Co. Podcast, Season 38&lt;sup&gt;#&lt;/sup&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://www.dancarlin.com/product/hardcore-history-73-mania-for-subjugation-iii/" target="_blank" rel="noreferrer"&gt;Mania for Subjugation III&lt;/a&gt;, Hardcore History, Episode 73&lt;sup&gt;†&lt;/sup&gt;&lt;sup&gt;#&lt;/sup&gt;&lt;/li&gt;&#10;&lt;li&gt;The Thin Man, Dashiell Hammett&lt;/li&gt;&#10;&lt;li&gt;Sister, Maiden, Monster, Lucy A. Snyder&lt;/li&gt;&#10;&lt;li&gt;Shattered Lands, Sam Dalrymple&lt;sup&gt;†&lt;/sup&gt;, &lt;a href="https://janusworx.com/reading/shattered-lands/" &gt;Related Post&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;The Psychology of Money, Morgan Housel&lt;sup&gt;†&lt;/sup&gt;, &lt;a href="https://janusworx.com/reading/the-psychology-of-money/" &gt;Related Post&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;History of the Alphabet, Kevin Stroud&lt;sup&gt;†&lt;/sup&gt;&lt;/li&gt;&#10;&lt;li&gt;A Play of Isaac, Margaret Frazer&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://therestishistory.com/episodes/" target="_blank" rel="noreferrer"&gt;The Rest is History&lt;/a&gt;, Jack the Ripper, Parts I-IV&lt;sup&gt;†&lt;/sup&gt;&lt;sup&gt;#&lt;/sup&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://podcasts.apple.com/gb/podcast/sherlock-co/id1710121792" target="_blank" rel="noreferrer"&gt;The Muskgrave Ritual&lt;/a&gt;, Sherlock &amp;amp; Co. Podcast, Season 39&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;/div&gt;&#10;&lt;br&gt;&#10;&#10;&#10;&lt;h3 class="relative group"&gt;February&#10; &lt;div id="february" class="anchor"&gt;&lt;/div&gt;&#10; &#10; &lt;span&#10; class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;&#10; &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#february" aria-label="Anchor"&gt;#&lt;/a&gt;&#10; &lt;/span&gt;&#10; &#10;&lt;/h3&gt;&#10;&lt;p&gt;&lt;a href="https://janusworx.com/reading/books-i-read-in-february-2026/" &gt;&lt;em&gt;Thoughts and notes&lt;/em&gt;&lt;/a&gt;&lt;/p&gt;&#10;&lt;div class="book-list"&gt;&#10;&lt;ol start="13"&gt;&#10;&lt;li&gt;The Spy Who Came in from the Cold, John le Carré&lt;/li&gt;&#10;&lt;li&gt;The Novice’s Tale, Margaret Frazer&lt;/li&gt;&#10;&lt;li&gt;Beyond the Rift, Peter Watts&lt;/li&gt;&#10;&lt;li&gt;The Servant’s Tale, Margaret Frazer&lt;/li&gt;&#10;&lt;li&gt;Call for the Dead, John le Carré&lt;/li&gt;&#10;&lt;li&gt;A Murder of Quality, John le Carré&lt;/li&gt;&#10;&lt;li&gt;The Outlaw’s Tale, Margaret Frazer&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://www.thedeeplife.com/listen/" target="_blank" rel="noreferrer"&gt;Deep Questions&lt;/a&gt;, Cal Newport, Episodes 381-390&lt;sup&gt;†&lt;/sup&gt;&lt;sup&gt;#&lt;/sup&gt;&lt;/li&gt;&#10;&lt;li&gt;The Girl with the Dragon Tattoo, Stieg Larsson&lt;/li&gt;&#10;&lt;li&gt;Falco, The Official Companion, Lindsey Davis&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;/div&gt;&#10;&lt;br&gt;&#10;&#10;&#10;&lt;h3 class="relative group"&gt;March&#10; &lt;div id="march" class="anchor"&gt;&lt;/div&gt;&#10; &#10; &lt;span&#10; class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;&#10; &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#march" aria-label="Anchor"&gt;#&lt;/a&gt;&#10; &lt;/span&gt;&#10; &#10;&lt;/h3&gt;&#10;&lt;p&gt;&lt;a href="https://janusworx.com/reading/books-i-read-in-march-2026/" &gt;&lt;em&gt;Thoughts and notes&lt;/em&gt;&lt;/a&gt;&lt;/p&gt;&#10;&lt;div class="book-list"&gt;&#10;&lt;ol start="23"&gt;&#10;&lt;li&gt;The Girl Who Played With Fire, Stieg Larsson&lt;/li&gt;&#10;&lt;li&gt;The Girl Who Kicked the Hornet’s Nest, Stieg Larsson&lt;/li&gt;&#10;&lt;li&gt;The Looking Glass War, John le Carré&lt;/li&gt;&#10;&lt;li&gt;Tinker, Tailor, Soldier, Spy, John le Carré&lt;/li&gt;&#10;&lt;li&gt;The Honourable Schoolboy, John le Carré&lt;/li&gt;&#10;&lt;li&gt;The Bear and the Nightingale, Katherine Arden&lt;/li&gt;&#10;&lt;li&gt;The Girl in the Tower, Katherine Arden&lt;/li&gt;&#10;&lt;li&gt;The Winter of the Witch, Katherine Arden&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;/div&gt;&#10;&lt;br&gt;&#10;&#10;&#10;&lt;h3 class="relative group"&gt;April&#10; &lt;div id="april" class="anchor"&gt;&lt;/div&gt;&#10; &#10; &lt;span&#10; class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;&#10; &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#april" aria-label="Anchor"&gt;#&lt;/a&gt;&#10; &lt;/span&gt;&#10; &#10;&lt;/h3&gt;&#10;&lt;p&gt;&lt;a href="https://janusworx.com/reading/books-i-read-in-april-2026/" &gt;&lt;em&gt;Thoughts and notes&lt;/em&gt;&lt;/a&gt;&lt;/p&gt;&#10;&lt;div class="book-list"&gt;&#10;&lt;ol start="31"&gt;&#10;&lt;li&gt;50 Literature Ideas, You Really Need to Know, John Sutherland&lt;sup&gt;†&lt;/sup&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://www.thedeeplife.com/listen/" target="_blank" rel="noreferrer"&gt;Deep Questions&lt;/a&gt;, Cal Newport, Episodes 391-400&lt;sup&gt;†&lt;/sup&gt;&lt;sup&gt;#&lt;/sup&gt;&lt;/li&gt;&#10;&lt;li&gt;Lincoln the Unknown, Dale Carnegie&lt;sup&gt;†&lt;/sup&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://podcasts.apple.com/in/podcast/empire/id1639561921" target="_blank" rel="noreferrer"&gt;Empire Podcast&lt;/a&gt;, The Bronze Age Apocalypse, Episodes 332-337&lt;sup&gt;†&lt;/sup&gt;&lt;sup&gt;#&lt;/sup&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://podcasts.apple.com/in/podcast/empire/id1639561921" target="_blank" rel="noreferrer"&gt;Empire Podcast&lt;/a&gt;, Indian Uprising 1857, Episodes 322-329&lt;sup&gt;†&lt;/sup&gt;&lt;sup&gt;#&lt;/sup&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://podcasts.apple.com/gb/podcast/sherlock-co/id1710121792" target="_blank" rel="noreferrer"&gt;The Beryl Coronet&lt;/a&gt;, Sherlock &amp;amp; Co. Podcast, Season 40&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://podcasts.apple.com/gb/podcast/sherlock-co/id1710121792" target="_blank" rel="noreferrer"&gt;The Stockbroker’s Clerk&lt;/a&gt;, Sherlock &amp;amp; Co. Podcast, Season 41&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://podcasts.apple.com/gb/podcast/sherlock-co/id1710121792" target="_blank" rel="noreferrer"&gt;The Six Napoleons&lt;/a&gt;, Sherlock &amp;amp; Co. Podcast, Season 42&lt;/li&gt;&#10;&lt;li&gt;Songteller, My Life in Lyrics, Dolly Parton&lt;sup&gt;†&lt;/sup&gt;&lt;sup&gt;#&lt;/sup&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://podcasts.apple.com/in/podcast/empire/id1639561921" target="_blank" rel="noreferrer"&gt;Empire Podcast&lt;/a&gt;, The Middle East: From the Arab Cold War to the Israeli Invasion of Lebanon, Episodes 346-353&lt;sup&gt;†&lt;/sup&gt;&lt;sup&gt;#&lt;/sup&gt;&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;/div&gt;&#10;&lt;br&gt;&#10;&#10;&#10;&lt;h3 class="relative group"&gt;May&#10; &lt;div id="may" class="anchor"&gt;&lt;/div&gt;&#10; &#10; &lt;span&#10; class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;&#10; &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#may" aria-label="Anchor"&gt;#&lt;/a&gt;&#10; &lt;/span&gt;&#10; &#10;&lt;/h3&gt;&#10;&lt;p&gt;&lt;a href="https://janusworx.com/reading/books-i-read-in-may-2026/" &gt;&lt;em&gt;Thoughts and notes&lt;/em&gt;&lt;/a&gt;&lt;/p&gt;&#10;&lt;div class="book-list"&gt;&#10;&lt;ol start="41"&gt;&#10;&lt;li&gt;&lt;a href="https://podcasts.apple.com/gb/podcast/sherlock-co/id1710121792" target="_blank" rel="noreferrer"&gt;The Three Garridebs&lt;/a&gt;, Sherlock &amp;amp; Co. Podcast, Season 43&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://podcasts.apple.com/gb/podcast/sherlock-co/id1710121792" target="_blank" rel="noreferrer"&gt;The Empty House&lt;/a&gt;, Sherlock &amp;amp; Co. Podcast, Season 44&lt;/li&gt;&#10;&lt;li&gt;Smiley’s People, John le Carré&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://podcasts.apple.com/in/podcast/empire/id1639561921" target="_blank" rel="noreferrer"&gt;Empire Podcast&lt;/a&gt;, Simon Bolivar: the Liberator, Episodes 354-357&lt;sup&gt;†&lt;/sup&gt;&lt;sup&gt;#&lt;/sup&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://www.acquired.fm/episodes/vanguard" target="_blank" rel="noreferrer"&gt;Vanguard&lt;/a&gt;, Spring 2026, Episode 3, Acquired Podcast&lt;sup&gt;†&lt;/sup&gt;&lt;sup&gt;#&lt;/sup&gt;&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;/div&gt;&#10;&lt;br&gt;&#10;&#10;&#10;&lt;h3 class="relative group"&gt;June&#10; &lt;div id="june" class="anchor"&gt;&lt;/div&gt;&#10; &#10; &lt;span&#10; class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;&#10; &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#june" aria-label="Anchor"&gt;#&lt;/a&gt;&#10; &lt;/span&gt;&#10; &#10;&lt;/h3&gt;&#10;&lt;p&gt;&lt;a href="https://janusworx.com/reading/books-i-read-in-june-2026/" &gt;&lt;em&gt;Thoughts and notes&lt;/em&gt;&lt;/a&gt;&lt;/p&gt;&#10;&lt;div class="book-list"&gt;&#10;&lt;ol start="46"&gt;&#10;&lt;li&gt;&lt;a href="https://therestishistory.com/episodes/" target="_blank" rel="noreferrer"&gt;The Rest is History&lt;/a&gt;, The Fall of the Incas, Episodes 644-649&lt;sup&gt;†&lt;/sup&gt;&lt;sup&gt;#&lt;/sup&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://podcasts.apple.com/in/podcast/empire/id1639561921" target="_blank" rel="noreferrer"&gt;Empire Podcast&lt;/a&gt;, Spice Wars: The Battle of the East India Companies, Episodes 358-360&lt;sup&gt;†&lt;/sup&gt;&lt;sup&gt;#&lt;/sup&gt;&lt;/li&gt;&#10;&lt;li&gt;Learning Object-Oriented Programming, Design and TDD with Pharo, Stéphane Ducasse &amp;amp; Damien Pollet&lt;sup&gt;‡&lt;/sup&gt;&lt;/li&gt;&#10;&lt;li&gt;The Secret Pilgrim, John le Carré&lt;/li&gt;&#10;&lt;li&gt;Control, Andy Diggle, Angela Cruickshank, Andrea Mutti &amp;amp; Vladimir Popov&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://fs.blog/knowledge-project-podcast/outliers-chung-ju-yung/" target="_blank" rel="noreferrer"&gt;Chung Ju-yung &amp;amp; Hyundai&lt;/a&gt;, Farnam Street Podcast&lt;sup&gt;†&lt;/sup&gt;&lt;sup&gt;#&lt;/sup&gt;&lt;/li&gt;&#10;&lt;li&gt;The Art of Reading, Timothy Spurgin (The Great Courses)&lt;sup&gt;‡&lt;/sup&gt;&lt;sup&gt;#&lt;/sup&gt;&lt;/li&gt;&#10;&lt;li&gt;Steve Jobs in Exile, Geoffrey Cain&lt;sup&gt;†&lt;/sup&gt;&lt;/li&gt;&#10;&lt;li&gt;Data Structures the Fun Way, Jeremy Kubica&lt;sup&gt;‡&lt;/sup&gt;&lt;/li&gt;&#10;&lt;li&gt;Platform Decay, Martha Wells&lt;/li&gt;&#10;&lt;li&gt;Apple: The First 50 Years, David Pogue&lt;sup&gt;†&lt;/sup&gt;&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;/div&gt;&#10;&lt;br&gt;&#10;&#10;&#10;&lt;h3 class="relative group"&gt;July&#10; &lt;div id="july" class="anchor"&gt;&lt;/div&gt;&#10; &#10; &lt;span&#10; class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;&#10; &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#july" aria-label="Anchor"&gt;#&lt;/a&gt;&#10; &lt;/span&gt;&#10; &#10;&lt;/h3&gt;&#10;&lt;p&gt;&lt;a href="https://janusworx.com/reading/books-i-read-in-july-2026/" &gt;&lt;em&gt;Thoughts and notes&lt;/em&gt;&lt;/a&gt;&lt;/p&gt;&#10;&lt;div class="book-list"&gt;&#10;&lt;ol start="57"&gt;&#10;&lt;li&gt;Analysis and Critique, Dorsey Armstrong, (The Great Courses)&lt;sup&gt;‡&lt;/sup&gt;&lt;sup&gt;#&lt;/sup&gt;&lt;/li&gt;&#10;&lt;li&gt;D’Aulaires’ Book of Greek Myths, Ingri &amp;amp; Edgar Parin d’Aulaire&lt;/li&gt;&#10;&lt;li&gt;A World is Born, Leigh Bracket&lt;/li&gt;&#10;&lt;li&gt;Becoming a Great Essayist, Jennifer Cognard-Black, (The Great Courses)&lt;sup&gt;‡&lt;/sup&gt;&lt;sup&gt;#&lt;/sup&gt;&lt;/li&gt;&#10;&lt;li&gt;Writing Down the Bones, Natalie Goldberg&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=EAe6hdB4uDM" target="_blank" rel="noreferrer"&gt;How to Read a Book&lt;/a&gt;: The Art of Reading &amp;amp; Dialogues about Books, Mortimer Adler &amp;amp; Charles Van Doren&lt;sup&gt;‡&lt;/sup&gt;&lt;sup&gt;#&lt;/sup&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://podcasts.apple.com/gb/podcast/sherlock-co/id1710121792" target="_blank" rel="noreferrer"&gt;The Greek Interpreter&lt;/a&gt;, Sherlock &amp;amp; Co. Podcast, Season 45&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://podcasts.apple.com/gb/podcast/sherlock-co/id1710121792" target="_blank" rel="noreferrer"&gt;The Engineer’s Thumb&lt;/a&gt;, Sherlock &amp;amp; Co. Podcast, Season 46&lt;/li&gt;&#10;&lt;li&gt;Pirates of Venus, Edgar Rice Burroughs&lt;/li&gt;&#10;&lt;li&gt;Death of an Expert Witness, P. D. James&lt;/li&gt;&#10;&lt;li&gt;Joyce’s Ulysses, James A. W. Hefferman, (The Great Courses)&lt;sup&gt;‡&lt;/sup&gt;&lt;sup&gt;#&lt;/sup&gt;&lt;/li&gt;&#10;&lt;li&gt;Shakespeare: Comedies, Histories and Tragedies, Peter Saccio, (The Great Courses)&lt;sup&gt;‡&lt;/sup&gt;&lt;sup&gt;#&lt;/sup&gt;&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;/div&gt;&#10;&lt;br&gt;&#10;&#10;&#10;&lt;h3 class="relative group"&gt;August&#10; &lt;div id="august" class="anchor"&gt;&lt;/div&gt;&#10; &#10; &lt;span&#10; class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;&#10; &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#august" aria-label="Anchor"&gt;#&lt;/a&gt;&#10; &lt;/span&gt;&#10; &#10;&lt;/h3&gt;&#10;&lt;p&gt;&lt;a href="https://janusworx.com/reading/books-i-read-in-august-2026/" &gt;&lt;em&gt;Thoughts and notes&lt;/em&gt;&lt;/a&gt;&lt;/p&gt;&#10;&lt;div class="book-list"&gt;&#10;&lt;ol start="69"&gt;&#10;&lt;li&gt;Absolution by Murder, Peter Tremayne&lt;/li&gt;&#10;&lt;li&gt;Writing for Developers, Piotr Sarna &amp;amp; Cynthia Dunlop&lt;sup&gt;‡&lt;/sup&gt;&lt;/li&gt;&#10;&lt;li&gt;Disney, &lt;a href="https://www.acquired.fm/episodes/the-walt-disney-company" target="_blank" rel="noreferrer"&gt;Part I&lt;/a&gt; &amp;amp; &lt;a href="https://www.acquired.fm/episodes/disney-the-renaissance-and-the-empire" target="_blank" rel="noreferrer"&gt;Part II&lt;/a&gt;, Acquired Podcast&lt;sup&gt;†&lt;/sup&gt;&lt;sup&gt;#&lt;/sup&gt;&lt;/li&gt;&#10;&lt;li&gt;How to Read and Understand Shakespeare, Marc C. Conner (The Great Courses)&lt;sup&gt;‡&lt;/sup&gt;&lt;sup&gt;#&lt;/sup&gt;&lt;/li&gt;&#10;&lt;li&gt;Building Great Sentences, Brooks Landon (The Great Courses)&lt;sup&gt;‡&lt;/sup&gt;&lt;sup&gt;#&lt;/sup&gt;&lt;/li&gt;&#10;&lt;li&gt;Twelfth Night, or What You Will, William Shakespeare&lt;/li&gt;&#10;&lt;li&gt;Classical Mythology, Elizabeth Vandiver (The Great Courses)&lt;sup&gt;‡&lt;/sup&gt;&lt;sup&gt;#&lt;/sup&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://podcasts.apple.com/gb/podcast/sherlock-co/id1710121792" target="_blank" rel="noreferrer"&gt;The Boscombe Valley Mystery&lt;/a&gt;, Sherlock &amp;amp; Co. Podcast, Season 47&lt;/li&gt;&#10;&lt;li&gt;The Silver Pigs, Lindsey Davis&lt;/li&gt;&#10;&lt;li&gt;Shadows in Bronze, Lindsey Davis&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://www.dancarlin.com/product/hardcore-history-74-mania-for-subjugation-iv/" target="_blank" rel="noreferrer"&gt;Mania for Subjugation IV&lt;/a&gt;, Hardcore History, Episode 74&lt;sup&gt;†&lt;/sup&gt;&lt;sup&gt;#&lt;/sup&gt;&lt;/li&gt;&#10;&lt;li&gt;Dante’s Divine Comedy, William R. Cook &amp;amp; Ronald B. Herzman (The Great Courses)&lt;sup&gt;‡&lt;/sup&gt;&lt;sup&gt;#&lt;/sup&gt;&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;/div&gt;&#10;&lt;br&gt;&#10;&#10;&#10;&lt;h3 class="relative group"&gt;September&#10; &lt;div id="september" class="anchor"&gt;&lt;/div&gt;&#10; &#10; &lt;span&#10; class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;&#10; &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#september" aria-label="Anchor"&gt;#&lt;/a&gt;&#10; &lt;/span&gt;&#10; &#10;&lt;/h3&gt;&#10;&lt;div class="book-list"&gt;&#10;&lt;ol start="81"&gt;&#10;&lt;li&gt;Classic Novels: Meeting the Challenge of Great Literature, Arnold Weinstein (The Great Courses)&lt;sup&gt;‡&lt;/sup&gt;&lt;sup&gt;#&lt;/sup&gt;&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;/div&gt;&#10;&lt;br&gt;&#10;&#10;&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;&#10;&#10;</description></item><item><title>Note to Self, Make Time for Notes</title><link>https://janusworx.com/reading/note-to-self-make-time-for-notes/</link><pubDate>Sat, 15 Aug 2026 19:23:51 +0530</pubDate><author>feedback@janusworx.com (Mario Jason Braganza)</author><guid>https://janusworx.com/reading/note-to-self-make-time-for-notes/</guid><description>&lt;br&gt;&#10;&#10;&lt;div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="info"&gt;&#10; &lt;div class="flex items-center gap-2 font-semibold text-inherit"&gt;&#10; &lt;div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"&gt;&lt;span class="relative block icon"&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"&gt;&lt;path fill="currentColor" d="M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 128c17.67 0 32 14.33 32 32c0 17.67-14.33 32-32 32S224 177.7 224 160C224 142.3 238.3 128 256 128zM296 384h-80C202.8 384 192 373.3 192 360s10.75-24 24-24h16v-64H224c-13.25 0-24-10.75-24-24S210.8 224 224 224h32c13.25 0 24 10.75 24 24v88h16c13.25 0 24 10.75 24 24S309.3 384 296 384z"/&gt;&lt;/svg&gt;&#10;&lt;/span&gt;&lt;/div&gt;&#10; &lt;div class="grow"&gt;&#10; Intended Audience&#10; &lt;/div&gt;&#10; &lt;/div&gt;&lt;div class="admonition-content mt-3 text-base leading-relaxed text-inherit"&gt;&lt;p&gt;Me!&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&#10;&lt;figure class="mjb-img-center"&gt;&#10; &lt;img class="my-0 rounded-md" src="https://janusworx.com/images/2026/note-to-self-make-time-for-notes.jpg" alt="Photo of my dirty scribbles, attempting to make notes from a book titled, Building Great Sentences" /&gt;&#10; &#10; &lt;figcaption&gt;My scribbles from “Building Great Sentences”&lt;/figcaption&gt;&#10; &lt;/figure&gt;&#10;&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;&#10;&#10;&lt;p&gt;Dear future Jason,&lt;br&gt;&#10;Please dedicate time, so that everything we learn can properly put into their appropriate places.&lt;/p&gt;&#10;&lt;p&gt;It comes to bite us in the arse otherwise, when we either can’t find what we want or get exhausted trying to tackle a mountain of illegible scribbles, or just plain abandon stuff. Makes us sad.&lt;/p&gt;&#10;&lt;p&gt;Specially considering that we’re going to tackle several large things now, please give yourself the time and energy and attention it takes to write down what you did. If not evening, then in the morning.&lt;/p&gt;&#10;&lt;p&gt;Considering that our reading now hews ever more towards the oldies, towards things slow and wise, becoming less escapist and more thoughtful, we ought to treat it with the reverence it deserves.&lt;/p&gt;&#10;&lt;p&gt;P.S. It’ll help your back as well!&lt;/p&gt;&#10;&lt;p&gt;P.P.S Stop comparing yourself to your younger friends and colleagues who burn bright. Be deliberate. Be intentional.&lt;/p&gt;&#10;&lt;p&gt;&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;&#10;&#10;Feedback on this post?&lt;br&gt;&#10;Mail me at &lt;a href="mailto:feebdback@janusworx.com?subject=%22Feedback on post: Note to Self, Make Time for Notes&#10;%22" &gt;feedback at this domain&lt;/a&gt;.&lt;br&gt;&#10;P.S. Subscribe to my &lt;a href="https://janusworx.com/subscribe/" target="_blank" rel="noreferrer"&gt;mailing list!&lt;/a&gt;&lt;/p&gt;&#10;</description></item><item><title>Books I Read in July, 2026</title><link>https://janusworx.com/reading/books-i-read-in-july-2026/</link><pubDate>Fri, 31 Jul 2026 23:45:00 +0530</pubDate><author>feedback@janusworx.com (Mario Jason Braganza)</author><guid>https://janusworx.com/reading/books-i-read-in-july-2026/</guid><description>&#10;&lt;figure class="mjb-img-center"&gt;&#10; &lt;img class="my-0 rounded-md" src="https://janusworx.com/images/2026/what-i-read-in-july-2026-shakespeare-cht-tgc.jpg" alt="cover image of a Great Courses course on Audible, called, Shakespeare: Comedies, Histories and Tragedies by Peter Saccio" /&gt;&#10; &#10; &lt;figcaption&gt;via &lt;a href="https://www.audible.in/pd/William-Shakespeare-Comedies-Histories-and-Tragedies-Audiobook/B06XS3Y2LH" target="_blank" rel="noreferrer"&gt;Audible&lt;/a&gt;&lt;/figcaption&gt;&#10; &lt;/figure&gt;&#10;&lt;p&gt;Same situation as last month. Occupied with personal issues. So lots of reading got done.&lt;br&gt;&#10;The themes for the forseeable future though, are&lt;/p&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;to keep going back into the past to find gems that I can escape into,&lt;/li&gt;&#10;&lt;li&gt;and to find literary gems with exquisite prose and literary techniques that I enjoy, no matter new or old.&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;&#10;&#10;&#10;&lt;h3 class="relative group"&gt;Death of an Expert Witness, P. D. James&#10; &lt;div id="death-of-an-expert-witness-p-d-james" class="anchor"&gt;&lt;/div&gt;&#10; &#10; &lt;span&#10; class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;&#10; &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#death-of-an-expert-witness-p-d-james" aria-label="Anchor"&gt;#&lt;/a&gt;&#10; &lt;/span&gt;&#10; &#10;&lt;/h3&gt;&#10;&lt;p&gt;I somehow stumbled into what I’d call cozy Le Carré.&lt;br&gt;&#10;It’s ostensibly a murder mystery, but it’s as bleak as any Le Carré as I’ve ever read.&lt;br&gt;&#10;Slow, deliberate, pacing and lovely prose. Multiple points of view. Each one pretty detailed. Somehow it’s more a character study than detective fiction. And it’s lovely. The ending was so inhumane to my eyes; to have a life extinguished just like that was monstrous and nihilistic and random all at once. I don’t think I’ll be reading any more of P. D. James. One Le Carré in my life, is enough.&lt;/p&gt;&#10;&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;&#10;&#10;&#10;&lt;h3 class="relative group"&gt;Writing Down the Bones, Natalie Goldberg&#10; &lt;div id="writing-down-the-bones-natalie-goldberg" class="anchor"&gt;&lt;/div&gt;&#10; &#10; &lt;span&#10; class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;&#10; &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#writing-down-the-bones-natalie-goldberg" aria-label="Anchor"&gt;#&lt;/a&gt;&#10; &lt;/span&gt;&#10; &#10;&lt;/h3&gt;&#10;&lt;p&gt;This, along with the next few books are my learn to write better section.&lt;br&gt;&#10;Writing down the bones speaks in the same vein as Anne Lamott’s, Bird by Bird.&lt;br&gt;&#10;Start small. Write consistently. The work and the journey, are all that you can controly. Learn to love your craft.&lt;br&gt;&#10;It’s aimed at folks like me, not the pros. Basic writing advice. Delivered in a gentle and encouraging voice.&lt;br&gt;&#10;I loved it.&lt;/p&gt;&#10;&lt;blockquote&gt;&lt;p&gt;One of the main aims in writing practice is to learn to trust your own mind and body; to grow patient and nonaggressive.&lt;br&gt;&#10;Art lives in the Big World. One poem or story doesn’t matter one way or the other.&lt;br&gt;&#10;It’s the process of writing and life that matters. Too many writers have written great books and gone insane or alcoholic or killed themselves. This process teaches about sanity. We are trying to become sane along with our poems and stories&lt;/p&gt;&#10;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;p&gt;Our senses by themselves are dumb. They take in experience, but they need the richness of sifting for a while through our consciousness and through our whole bodies.&lt;br&gt;&#10;I call this “composting.”&lt;br&gt;&#10;Our bodies are garbage heaps: we collect experience, and from the decomposition of the thrown-out eggshells, spinach leaves, coffee grinds, and old steak bones of our minds come nitrogen, heat, and very fertile soil. Out of this fertile soil bloom our poems and stories.&lt;br&gt;&#10;But this does not come all at once. It takes time.&lt;br&gt;&#10;Continue to turn over and over the organic details of your life until some of them fall through the garbage of discursive thoughts to the solid ground of black soil.&lt;/p&gt;&#10;&lt;/blockquote&gt;&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;&#10;&#10;&#10;&lt;h3 class="relative group"&gt;&lt;a href="https://www.youtube.com/watch?v=EAe6hdB4uDM" target="_blank" rel="noreferrer"&gt;How to Read a Book&lt;/a&gt;: The Art of Reading &amp;amp; Dialogues about Books, Mortimer Adler &amp;amp; Charles Van Doren&#10; &lt;div id="how-to-read-a-book-the-art-of-reading--dialogues-about-books-mortimer-adler--charles-van-doren" class="anchor"&gt;&lt;/div&gt;&#10; &#10; &lt;span&#10; class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;&#10; &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#how-to-read-a-book-the-art-of-reading--dialogues-about-books-mortimer-adler--charles-van-doren" aria-label="Anchor"&gt;#&lt;/a&gt;&#10; &lt;/span&gt;&#10; &#10;&lt;/h3&gt;&#10;&lt;p&gt;This was a life changing book for me. It taught me to look at reading differently.&lt;br&gt;&#10;As an art. &lt;em&gt;&lt;strong&gt;And&lt;/strong&gt;&lt;/em&gt; an craft. Before this, I was just an organic reader, and read whatever came my way.&lt;br&gt;&#10;How to Read a Book gave me a greater appreciation for books and for reading, and gave me the tools to tackle “difficult” books.&lt;br&gt;&#10;What I have linked to above though, is a three hour video of the two authors, sitting and having fireside chats. It compresses the ideas in the book into a &lt;a href="https://www.youtube.com/watch?v=EAe6hdB4uDM" target="_blank" rel="noreferrer"&gt;three hour video.&lt;/a&gt;&lt;br&gt;&#10;If a vintage video of two white men, sitting at a desk, smoking cigars and talking about books appeals to you, then this is just the ticket. Even if it does not, and you love reading, I’d urge you to still give it a chance. The ideas are good.&lt;/p&gt;&#10;&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;&#10;&#10;&#10;&lt;h3 class="relative group"&gt;&lt;a href="https://shop.thegreatcourses.com/analysis-and-critique-how-to-engage-and-write-about-anything" target="_blank" rel="noreferrer"&gt;Analysis and Critique&lt;/a&gt;, Dorsey Armstrong, (The Great Courses)&#10; &lt;div id="analysis-and-critique-dorsey-armstrong-the-great-courses" class="anchor"&gt;&lt;/div&gt;&#10; &#10; &lt;span&#10; class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;&#10; &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#analysis-and-critique-dorsey-armstrong-the-great-courses" aria-label="Anchor"&gt;#&lt;/a&gt;&#10; &lt;/span&gt;&#10; &#10;&lt;/h3&gt;&#10;&lt;p&gt;This course is what I’d describe as a good allrounder.&lt;br&gt;&#10;It deconstructs prose and teaches the basics of reading and writing.&lt;br&gt;&#10;How to read effectively, how to find your own voice, how to &lt;em&gt;develop&lt;/em&gt; your taste and your voice, how to write, knowing your audience … Dorsey Armstrong tackles it all and does it efficently and effectively.&lt;/p&gt;&#10;&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;&#10;&#10;&#10;&lt;h3 class="relative group"&gt;&lt;a href="https://shop.thegreatcourses.com/becoming-a-great-essayist" target="_blank" rel="noreferrer"&gt;Becoming a Great Essayist&lt;/a&gt;, Jennifer Cognard-Black, (The Great Courses)&#10; &lt;div id="becoming-a-great-essayist-jennifer-cognard-black-the-great-courses" class="anchor"&gt;&lt;/div&gt;&#10; &#10; &lt;span&#10; class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;&#10; &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#becoming-a-great-essayist-jennifer-cognard-black-the-great-courses" aria-label="Anchor"&gt;#&lt;/a&gt;&#10; &lt;/span&gt;&#10; &#10;&lt;/h3&gt;&#10;&lt;p&gt;A course on writing essays, in the form of lessons that are very thoughtful and … “essayic”.&lt;br&gt;&#10;This one goes deep into writing short non fiction of all shapes and sizes. Memoir, Epistolary, Polemics, funny essays, specialised essays, you name it.&lt;br&gt;&#10;It taught me how to visualise things and write them down. It taught me that I cannot ever hope to write everything about everything; that one is constrained by their innate humanness and by nature at large.&lt;br&gt;&#10;Lots of mental models on writing and observing, all in a tidy, neat, package.&#10;Practicing these lessons, I hope, &lt;em&gt;I hope&lt;/em&gt; … that I’ll be able to write better posts here.&lt;/p&gt;&#10;&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;&#10;&#10;&#10;&lt;h3 class="relative group"&gt;&lt;a href="https://podcasts.apple.com/gb/podcast/sherlock-co/id1710121792" target="_blank" rel="noreferrer"&gt;Sherlock &amp;amp; Co. Podcast&lt;/a&gt;&#10; &lt;div id="sherlock--co-podcast" class="anchor"&gt;&lt;/div&gt;&#10; &#10; &lt;span&#10; class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;&#10; &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#sherlock--co-podcast" aria-label="Anchor"&gt;#&lt;/a&gt;&#10; &lt;/span&gt;&#10; &#10;&lt;/h3&gt;&#10;&lt;p&gt;These are my greatest allies in escapism right now! Where would I be without the merry company of Ametxazurra, Watson &amp;amp; Holmes?&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;The Greek Interpreter, Season 45&lt;/strong&gt;&lt;br&gt;&#10;We meet Mycroft! Murder and mayhem ensue! ’Nuff said!&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;The Engineer’s Thumb, Season 46&lt;/strong&gt;&lt;br&gt;&#10;This is their spin on King’s IT, without the supernatural aspect. It’s dark, a woman gets her finger amputated&lt;sup id="fnref:1"&gt;&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref"&gt;1&lt;/a&gt;&lt;/sup&gt;, and it has multiple points of view.&lt;/p&gt;&#10;&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;&#10;&#10;&#10;&lt;h3 class="relative group"&gt;&lt;a href="https://www.gutenberg.org/ebooks/22544" target="_blank" rel="noreferrer"&gt;A World is Born&lt;/a&gt;, Leigh Brackett&#10; &lt;div id="a-world-is-born-leigh-brackett" class="anchor"&gt;&lt;/div&gt;&#10; &#10; &lt;span&#10; class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;&#10; &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#a-world-is-born-leigh-brackett" aria-label="Anchor"&gt;#&lt;/a&gt;&#10; &lt;/span&gt;&#10; &#10;&lt;/h3&gt;&#10;&lt;p&gt;A short novella, set on the slave gulags of Mercury! You can &lt;a href="https://www.gutenberg.org/ebooks/22544" target="_blank" rel="noreferrer"&gt;read it on Gutenberg.&lt;/a&gt;&lt;br&gt;&#10;It’s thrilling and formulaic, yes, but it is thrilling and formulaic with great execution. Like Robert Rodriguez and Sin City.&lt;br&gt;&#10;I wanted Leigh Brackett to have the heroine have more agency, but she was writing to the beats of the time. If you like old Clarke and Asimov stuff, you’ll love this.&lt;/p&gt;&#10;&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;&#10;&#10;&#10;&lt;h3 class="relative group"&gt;Pirates of Venus, Edgar Rice Burroughs&#10; &lt;div id="pirates-of-venus-edgar-rice-burroughs" class="anchor"&gt;&lt;/div&gt;&#10; &#10; &lt;span&#10; class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;&#10; &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#pirates-of-venus-edgar-rice-burroughs" aria-label="Anchor"&gt;#&lt;/a&gt;&#10; &lt;/span&gt;&#10; &#10;&lt;/h3&gt;&#10;&lt;p&gt;I want to read the Mars novels again, but there are too many of them, so I decided to read his Venus novels. There are only three of these. Burroughs, most of you would know from Tarzan. So take an 80s action movie with himbos and transplant them to other worlds, use wildly inappropriate stereotypes&lt;sup id="fnref:2"&gt;&lt;a href="#fn:2" class="footnote-ref" role="doc-noteref"&gt;2&lt;/a&gt;&lt;/sup&gt; and florid yet relentless, driven, prose.&lt;/p&gt;&#10;&lt;p&gt;Carson Napier, shoots for Mars in his spacship, but miscalculates and then is driven towards the sun and crash lands on Venus.&lt;br&gt;&#10;Venus has life! There are humans there as well! And all sorts of strange flora and fauna.&lt;/p&gt;&#10;&lt;p&gt;For all its flaws, it’s great fun! Old sci-fi was quite something! :)&lt;sup id="fnref:3"&gt;&lt;a href="#fn:3" class="footnote-ref" role="doc-noteref"&gt;3&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;&#10;&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;&#10;&#10;&#10;&lt;h3 class="relative group"&gt;D’Aulaires’ Book of Greek Myths, Ingri &amp;amp; Edgar Parin d’Aulaire&#10; &lt;div id="daulaires-book-of-greek-myths-ingri--edgar-parin-daulaire" class="anchor"&gt;&lt;/div&gt;&#10; &#10; &lt;span&#10; class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;&#10; &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#daulaires-book-of-greek-myths-ingri--edgar-parin-daulaire" aria-label="Anchor"&gt;#&lt;/a&gt;&#10; &lt;/span&gt;&#10; &#10;&lt;/h3&gt;&#10;&lt;p&gt;Yes, I’ve been swept up in Greek classic myth fever as well! But it owes less to Nolan’s Odyssey and more to the &lt;a href="https://www.youtube.com/@Lady.of.the.Library/videos" target="_blank" rel="noreferrer"&gt;Lady of the Library’s (Cinzia DuBois) videos&lt;/a&gt; on the classics.&lt;sup id="fnref:4"&gt;&lt;a href="#fn:4" class="footnote-ref" role="doc-noteref"&gt;4&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;&#10;&lt;p&gt;Anyway, I just wanted my head screwed on straight, with respect to the various gods and goddesses, and the titans and the nymphs, before I started with the Illiad.&lt;/p&gt;&#10;&lt;p&gt;This book tells you all! It purports to be a children’s book, but when has that ever stopped me?&lt;sup id="fnref:5"&gt;&lt;a href="#fn:5" class="footnote-ref" role="doc-noteref"&gt;5&lt;/a&gt;&lt;/sup&gt; 😂 It’s a slim book with gorgeous art.&lt;br&gt;&#10;I will always remember the day I read it, as a wonderful memory.&lt;/p&gt;&#10;&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;&#10;&#10;&#10;&lt;h3 class="relative group"&gt;&lt;a href="https://www.audible.in/pd/Joyces-Ulysses-Audiobook/B06XS51L63" target="_blank" rel="noreferrer"&gt;Joyce’s Ulysses&lt;/a&gt;, James A. W. Hefferman, (The Great Courses)&#10; &lt;div id="joyces-ulysses-james-a-w-hefferman-the-great-courses" class="anchor"&gt;&lt;/div&gt;&#10; &#10; &lt;span&#10; class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;&#10; &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#joyces-ulysses-james-a-w-hefferman-the-great-courses" aria-label="Anchor"&gt;#&lt;/a&gt;&#10; &lt;/span&gt;&#10; &#10;&lt;/h3&gt;&#10;&lt;p&gt;This is my preparation for tackling &lt;a href="https://en.wikipedia.org/wiki/Ulysses_%28novel%29" target="_blank" rel="noreferrer"&gt;the modern version of the Odyssey&lt;/a&gt;.&lt;br&gt;&#10;I want to enjoy the first time I read Joyce. I know it will be a head scratcher&lt;sup id="fnref:6"&gt;&lt;a href="#fn:6" class="footnote-ref" role="doc-noteref"&gt;6&lt;/a&gt;&lt;/sup&gt;, but I felt it would be less of a head scratcher if I learnt about the mores and customs and the what’s what of early twentieth century Dublin. I started it on &lt;a href="https://en.wikipedia.org/wiki/Bloomsday" target="_blank" rel="noreferrer"&gt;Bloomsday&lt;/a&gt;, and finished it this month. I want to someday learn to use allegory as well as Joyce did with this book.&lt;/p&gt;&#10;&lt;p&gt;Hefferman was excellent at taking the fear of tackling Joyce, right out of my mind. He was so engaging, I was sad, everytime I had to lay the book down.&lt;/p&gt;&#10;&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;&#10;&#10;&#10;&lt;h3 class="relative group"&gt;&lt;a href="https://www.audible.in/pd/William-Shakespeare-Comedies-Histories-and-Tragedies-Audiobook/B06XS3Y2LH" target="_blank" rel="noreferrer"&gt;Shakespeare: Comedies, Histories and Tragedies&lt;/a&gt;, Peter Saccio, (The Great Courses)&#10; &lt;div id="shakespeare-comedies-histories-and-tragedies-peter-saccio-the-great-courses" class="anchor"&gt;&lt;/div&gt;&#10; &#10; &lt;span&#10; class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;&#10; &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#shakespeare-comedies-histories-and-tragedies-peter-saccio-the-great-courses" aria-label="Anchor"&gt;#&lt;/a&gt;&#10; &lt;/span&gt;&#10; &#10;&lt;/h3&gt;&#10;&lt;p&gt;And finally, why not shoot for the stars, when it comes to beautiful language, and tackle Shakespeare? So, Peter Saccio was my guide through slightly less than half of his plays. He tackles all the hits. Julius Caesar, Macbeth, Hamlet, Romeo and Juliet, Othello, they’re all in here.&lt;sup id="fnref:7"&gt;&lt;a href="#fn:7" class="footnote-ref" role="doc-noteref"&gt;7&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;&#10;&lt;p&gt;Context, history, the meaning of difficult words, actually acting out portions of the plays … Peter Saccio is a genius. The hours just flew by, when I was listening to his voice. He really made Shakespeare come alive for me.&lt;/p&gt;&#10;&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;&#10;&#10;&lt;p&gt;P.S. Speaking of something that matches everything I’m looking for, Sara Bareilles’ new video, &lt;a href="https://www.youtube.com/watch?v=YLAaFRQLk28" target="_blank" rel="noreferrer"&gt;Still Crying&lt;/a&gt; is it.&lt;br&gt;&#10;It escapes into an ole timey video, with a slow doo wop melody, with beautiful lines &lt;em&gt;(Teach me how to see again. Touch me with technicolor rain)&lt;/em&gt; and rendered with exquisite craft. Her voice is an instrument!&lt;br&gt;&#10;&lt;a href="https://www.youtube.com/watch?v=YLAaFRQLk28" target="_blank" rel="noreferrer"&gt;It’s a lovely, lovely song.&lt;/a&gt;&lt;/p&gt;&#10;&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;&#10;&#10;&lt;p&gt;Feedback on this post?&lt;br&gt;&#10;Mail me at &lt;a href="mailto:feebdback@janusworx.com?subject=%22Feedback on post: Books I Read in July, 2026&#10;%22" &gt;feedback at this domain&lt;/a&gt;.&lt;br&gt;&#10;P.S. Subscribe to my &lt;a href="https://janusworx.com/subscribe/" target="_blank" rel="noreferrer"&gt;mailing list!&lt;/a&gt;&lt;/p&gt;&#10;&lt;div class="footnotes" role="doc-endnotes"&gt;&#10;&lt;hr&gt;&#10;&lt;ol&gt;&#10;&lt;li id="fn:1"&gt;&#10;&lt;p&gt;as opposed to a little boy and his poor arm, in the original&amp;#160;&lt;a href="#fnref:1" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li id="fn:2"&gt;&#10;&lt;p&gt;which even the 80s movies had&amp;#160;&lt;a href="#fnref:2" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li id="fn:3"&gt;&#10;&lt;p&gt;Burroughs, of course is no Verne. There is more fi, than there is sci in his stories :) Burroughs in Venus is also not as good as Burroughs in Mars!&amp;#160;&lt;a href="#fnref:3" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li id="fn:4"&gt;&#10;&lt;p&gt;Yes, there might have been a few more well timed videos to go with the movie, but the lady is amazing and has been speaking about the classics for quite a while now.&amp;#160;&lt;a href="#fnref:4" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li id="fn:5"&gt;&#10;&lt;p&gt;and honestly, it isn’t just for kids. Put simply, I think it works better for the parent, than the child.&amp;#160;&lt;a href="#fnref:5" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li id="fn:6"&gt;&#10;&lt;p&gt;Reading Harrow the Ninth has been good prep for a story, that makes no sense&amp;#160;&lt;a href="#fnref:6" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li id="fn:7"&gt;&#10;&lt;p&gt;I missed Coriolanus, the only Shakespeare play I have ever watched&amp;#160;&lt;a href="#fnref:7" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;/div&gt;&#10;</description></item><item><title>Smart Playlists in Quod Libet</title><link>https://janusworx.com/work/smart-playlists-in-quod-libet/</link><pubDate>Fri, 31 Jul 2026 17:20:13 +0530</pubDate><author>feedback@janusworx.com (Mario Jason Braganza)</author><guid>https://janusworx.com/work/smart-playlists-in-quod-libet/</guid><description>&lt;br&gt;&#10;&#10;&lt;div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="info"&gt;&#10; &lt;div class="flex items-center gap-2 font-semibold text-inherit"&gt;&#10; &lt;div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"&gt;&lt;span class="relative block icon"&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"&gt;&lt;path fill="currentColor" d="M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 128c17.67 0 32 14.33 32 32c0 17.67-14.33 32-32 32S224 177.7 224 160C224 142.3 238.3 128 256 128zM296 384h-80C202.8 384 192 373.3 192 360s10.75-24 24-24h16v-64H224c-13.25 0-24-10.75-24-24S210.8 224 224 224h32c13.25 0 24 10.75 24 24v88h16c13.25 0 24 10.75 24 24S309.3 384 296 384z"/&gt;&lt;/svg&gt;&#10;&lt;/span&gt;&lt;/div&gt;&#10; &lt;div class="grow"&gt;&#10; Intended Audience&#10; &lt;/div&gt;&#10; &lt;/div&gt;&lt;div class="admonition-content mt-3 text-base leading-relaxed text-inherit"&gt;&lt;p&gt;Me!&lt;br&gt;&#10;Because, I read the documentation, figure things out and then promptly forget about just what it is, I figured out.&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&#10;&lt;figure class="mjb-img-center"&gt;&#10; &lt;img class="my-0 rounded-md" src="https://janusworx.com/images/2026/smart-playlists-quodlibet.jpg" alt="Sepia picture of an old record player" /&gt;&#10; &#10; &lt;figcaption&gt;Photo by &lt;a href="https://unsplash.com/@phosleep?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText" target="_blank" rel="noreferrer"&gt;Giovanni Randisi&lt;/a&gt; on &lt;a href="https://unsplash.com/photos/black-and-gray-turntable-ocVCSAUIBLI?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText" target="_blank" rel="noreferrer"&gt;Unsplash&lt;/a&gt;&lt;/figcaption&gt;&#10; &lt;/figure&gt;&#10;&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;&#10;&#10;&lt;p&gt;I lost all my big data disk recently, along with all my music and photos (and all my code and documents and books.)&lt;br&gt;&#10;The system called it &lt;em&gt;&lt;strong&gt;Ironwolf.&lt;/strong&gt;&lt;/em&gt;&lt;br&gt;&#10;So I bought a replacement, popped it in and restored the data.&lt;br&gt;&#10;I did not want to call this one Ironwolf, because I feel the name is jinxed. The old drive had always been flaky.&lt;/p&gt;&#10;&lt;p&gt;I wanted something stable, so that even if I did change it later, I could keep the same name to refer to the new one as well. So I have now very imaginatively christened it, &lt;em&gt;&lt;strong&gt;Bigdisk.&lt;/strong&gt;&lt;/em&gt;&lt;br&gt;&#10;That leaves me with the problem of changing hundreds of references from &lt;em&gt;Ironwolf&lt;/em&gt; to &lt;em&gt;Bigdisk&lt;/em&gt; in hundreds of places. Hopefully I have to do it just this once now.&lt;/p&gt;&#10;&lt;p&gt;And that brings us back to music and my beloved Quod Libet music player.&lt;br&gt;&#10;I got my song library back without much trouble, by pointing Quod Libet to the new disk.&lt;br&gt;&#10;But I lost all the playlists which I had painstakingly created.&lt;br&gt;&#10;Granted there were only about twenty something of them, but they’d be such a pain to recreate. And I started bemoaning the lack of iTunes-like smart playlists all over again. If only Quod Libet supported them!&lt;/p&gt;&#10;&lt;p&gt;On a lark, I decided to check the documentation.&lt;br&gt;&#10;Reading it scratched some old memory in my head.&lt;br&gt;&#10;Like I’ve seen this page before. I’ve done this before.&lt;br&gt;&#10;And lo and behold!&lt;br&gt;&#10;Quod Libet &lt;em&gt;&lt;strong&gt;does&lt;/strong&gt;&lt;/em&gt; support smart playlists.&lt;br&gt;&#10;And I had &lt;em&gt;already created three of them,&lt;/em&gt; all those years ago!&lt;br&gt;&#10;I must have forgotten about them and then created manual playlists like a mad man.&lt;br&gt;&#10;Fifteen minutes of work, and I had all my playlists back. The &lt;a href="https://quodlibet.readthedocs.io/en/latest/guide/searching.html#searching" target="_blank" rel="noreferrer"&gt;search page&lt;/a&gt; really helped!&lt;br&gt;&#10;This should keep me from losing my playlists again 🤞&lt;/p&gt;&#10;&lt;p&gt;And now, so that I will not forget again; quoting verbatim from &lt;a href="https://quodlibet.readthedocs.io/en/latest/guide/browse/playlists.html#dynamic-playlists" target="_blank" rel="noreferrer"&gt;Quod Libet’s documentation page&lt;/a&gt; as of 2026-07-31:&lt;/p&gt;&#10;&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;Dynamic Playlists&lt;/strong&gt;&lt;/p&gt;&#10;&lt;p&gt;You may wonder whether Quod Libet doesn’t have so-called “dynamic” or “smart” playlists as you may know them from other music players, that is, playlists that automatically update themselves for example to always contain all songs from a certain artist that you have in your library.&lt;/p&gt;&#10;&lt;p&gt;In fact, QL does have this functionality, but it is implemented via the search functionality and hence located in the search browser, not in the playlists browser.&lt;/p&gt;&#10;&lt;p&gt;Creating a dynamic playlist:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Go to the search browser, (either using View or Music -&amp;gt; Browse Library).&lt;/li&gt;&#10;&lt;li&gt;Enter what you want to search for (see &lt;a href="https://quodlibet.readthedocs.io/en/latest/guide/searching.html#searching" target="_blank" rel="noreferrer"&gt;the section about searching&lt;/a&gt; for QL’s powerful search options), for example artist = radiohead. Optionally, click on search to test your search and modify it until you’re happy.&lt;/li&gt;&#10;&lt;li&gt;Click the arrow next to the search box on the right, to open the drop-down menu. You will see a history of some recent searches (if you have searched before), followed by Edit saved values… .” Clicking on this, you will be presented with a dialogue box. The Value field has been pre-filled with your current search. If you wish, enter a name in the Name field (if you leave it blank, QL will name it for you). Click Add.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;You have now created a dynamic playlist, via a saved search. To play, just go to the search browser, click on the arrow to the right of the field and select your saved search from the list.&lt;/p&gt;&#10;&lt;p&gt;If you want to create several of such saved searches at once, you may find it more convenient to edit a text file instead of clicking through the GUI. To do so, you can edit the configuration text file &lt;code&gt;~/.quodlibet/lists/queries.saved&lt;/code&gt;.&lt;/p&gt;&#10;&lt;/blockquote&gt;&lt;p&gt;&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;&#10;&#10;Feedback on this post? &lt;br&gt;&#10;Mail me at &lt;a href="mailto:feebdback@janusworx.com?subject=%22Feedback on post: Smart Playlists in Quod Libet&#10;%22" &gt;feedback at this domain&lt;/a&gt;. &lt;br&gt;&#10;P.S. Subscribe to my &lt;a href="https://janusworx.com/subscribe/" target="_blank" rel="noreferrer"&gt;mailing list!&lt;/a&gt;&lt;/p&gt;&#10;</description></item><item><title>Moved From Papermod to Blowfish</title><link>https://janusworx.com/work/moved-from-papermod-to-blowfish/</link><pubDate>Fri, 24 Jul 2026 08:30:00 +0530</pubDate><author>feedback@janusworx.com (Mario Jason Braganza)</author><guid>https://janusworx.com/work/moved-from-papermod-to-blowfish/</guid><description>&lt;br&gt;&#10;&#10;&lt;div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="info"&gt;&#10; &lt;div class="flex items-center gap-2 font-semibold text-inherit"&gt;&#10; &lt;div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"&gt;&lt;span class="relative block icon"&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"&gt;&lt;path fill="currentColor" d="M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 128c17.67 0 32 14.33 32 32c0 17.67-14.33 32-32 32S224 177.7 224 160C224 142.3 238.3 128 256 128zM296 384h-80C202.8 384 192 373.3 192 360s10.75-24 24-24h16v-64H224c-13.25 0-24-10.75-24-24S210.8 224 224 224h32c13.25 0 24 10.75 24 24v88h16c13.25 0 24 10.75 24 24S309.3 384 296 384z"/&gt;&lt;/svg&gt;&#10;&lt;/span&gt;&lt;/div&gt;&#10; &lt;div class="grow"&gt;&#10; Intended Audience&#10; &lt;/div&gt;&#10; &lt;/div&gt;&lt;div class="admonition-content mt-3 text-base leading-relaxed text-inherit"&gt;&lt;p&gt;Me.&lt;br&gt;&#10;This is a sorta-kinda living document, a record of my idiosyncratic decisions to first move to, and then bend the Blowfish theme to my needs.&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;em&gt;&lt;strong&gt;Update (2026-07-24) :&lt;/strong&gt;&lt;/em&gt; &lt;a href="https://janusworx.com/work/moved-from-papermod-to-blowfish/#rss" &gt;RSS updates&lt;/a&gt;, &lt;a href="https://janusworx.com/work/moved-from-papermod-to-blowfish/#miscellanea" &gt;Miscellanea&lt;/a&gt;, some editing.&lt;/p&gt;&#10;&#10;&lt;figure class="mjb-img-center"&gt;&#10; &lt;img class="my-0 rounded-md" src="https://janusworx.com/images/2026/moved-from-papermod-to-blowfish_logo.png" alt="Blowfish Hugo theme logo, a pufferfish in blue and white" /&gt;&#10; &#10; &lt;figcaption&gt;Blowfish theme logo&lt;/figcaption&gt;&#10; &lt;/figure&gt;&#10;&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;&#10;&#10;&lt;p&gt;I changed my blog theme from &lt;a href="https://adityatelange.github.io/hugo-PaperMod/" target="_blank" rel="noreferrer"&gt;Papermod&lt;/a&gt; to &lt;a href="https://blowfish.page" target="_blank" rel="noreferrer"&gt;Blowfish&lt;/a&gt;.&lt;/p&gt;&#10;&#10;&lt;h2 class="relative group"&gt;Why move to &lt;a href="https://blowfish.page" target="_blank" rel="noreferrer"&gt;Blowfish&lt;/a&gt;?&#10; &lt;div id="why-move-to-blowfish" class="anchor"&gt;&lt;/div&gt;&#10; &#10; &lt;span&#10; class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;&#10; &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#why-move-to-blowfish" aria-label="Anchor"&gt;#&lt;/a&gt;&#10; &lt;/span&gt;&#10; &#10;&lt;/h2&gt;&#10;&lt;p&gt;&lt;a href="https://adityatelange.github.io/hugo-PaperMod/" target="_blank" rel="noreferrer"&gt;Papermod&lt;/a&gt;, to my mind, is perfection. And I outgrew it. That’s all there is to the why.&lt;br&gt;&#10;Papermod caters to the needs of a blog, and I think my blog is slowly turning into a multi section website.&lt;br&gt;&#10;I want menus, and possibly submenus and Papermod does not do them.&lt;br&gt;&#10;The finished outcome, while not as pretty and uniform as the old Papermod site, makes writing and managing it all, much simpler.&lt;/p&gt;&#10;&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;&#10;&#10;&#10;&lt;h2 class="relative group"&gt;Blowfish specific things for future Jason to note.&#10; &lt;div id="blowfish-specific-things-for-future-jason-to-note" class="anchor"&gt;&lt;/div&gt;&#10; &#10; &lt;span&#10; class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;&#10; &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#blowfish-specific-things-for-future-jason-to-note" aria-label="Anchor"&gt;#&lt;/a&gt;&#10; &lt;/span&gt;&#10; &#10;&lt;/h2&gt;&#10;&#10;&lt;h3 class="relative group"&gt;Big Picture things&#10; &lt;div id="big-picture-things" class="anchor"&gt;&lt;/div&gt;&#10; &#10; &lt;span&#10; class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;&#10; &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#big-picture-things" aria-label="Anchor"&gt;#&lt;/a&gt;&#10; &lt;/span&gt;&#10; &#10;&lt;/h3&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;The theme does a lot. Most of which I don’t think I need.&lt;sup id="fnref:1"&gt;&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref"&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;&#10;&lt;li&gt;The aim is to match what my site looked with Papermod, as closely as possible.&lt;/li&gt;&#10;&lt;li&gt;Everything CSS is in &lt;code&gt;assets/css/custom.css&lt;/code&gt;, rather than multiple CSS files as it was with Papermod.&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://janusworx.com/work/you-can-now-search-this-blog/" &gt;Pagefind&lt;/a&gt; powers search on the site. The inbuilt search is disabled in &lt;code&gt;main.toml&lt;/code&gt;.&lt;/li&gt;&#10;&lt;li&gt;Footnotes use &lt;a href="https://janusworx.com/work/note-to-self-footnotes-using-littlefoot.js/" &gt;Littlefoot&lt;/a&gt;; so they appear as popups, and the need to scroll up and down the page is reduced.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&#10;&lt;h3 class="relative group"&gt;Configuration&#10; &lt;div id="configuration" class="anchor"&gt;&lt;/div&gt;&#10; &#10; &lt;span&#10; class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;&#10; &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#configuration" aria-label="Anchor"&gt;#&lt;/a&gt;&#10; &lt;/span&gt;&#10; &#10;&lt;/h3&gt;&#10;&lt;p&gt;Blowfish separates everything out in its config. Lots of &lt;code&gt;toml&lt;/code&gt; files in there.&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Base config is in &lt;code&gt;hugo.toml&lt;/code&gt;, theme parameters are in &lt;code&gt;params.toml&lt;/code&gt;, menus in &lt;code&gt;menus.XX.toml&lt;/code&gt; and language + translation related stuff is in &lt;code&gt;languages.XX.toml&lt;/code&gt; &lt;sup id="fnref:2"&gt;&lt;a href="#fn:2" class="footnote-ref" role="doc-noteref"&gt;2&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;code&gt;main.toml&lt;/code&gt; sets the theme, the &lt;code&gt;baseURL&lt;/code&gt; and I’ve added a section to limit RSS entries to only the last 50 items.&lt;/li&gt;&#10;&lt;li&gt;The author parameters along with the social link set, as well as the logo, are in &lt;code&gt;languages.XX.toml&lt;/code&gt;. I have duplicated them. One for &lt;code&gt;EN&lt;/code&gt; and one for &lt;code&gt;FR&lt;/code&gt;. The logo that it requires, is in the &lt;code&gt;assets/logo&lt;/code&gt; directory.&lt;/li&gt;&#10;&lt;li&gt;Menus and submenus in &lt;code&gt;menus.XX.toml&lt;/code&gt;. Duplicated. The English menus have English names and the French, French ones.&lt;/li&gt;&#10;&lt;li&gt;Parameters; the header is set to basic. Every other option creates a sticky header of some sort. Lots of other changes. Most are self explanatory. Turned off “Hero” options everywhere, to stick to a plain, basic layout as much as possible.&lt;/li&gt;&#10;&lt;li&gt;My split of the various configuration files for environments (base, development &amp;amp; production) have stayed the same with no changes.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&#10;&lt;h3 class="relative group"&gt;Content Structure&#10; &lt;div id="content-structure" class="anchor"&gt;&lt;/div&gt;&#10; &#10; &lt;span&#10; class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;&#10; &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#content-structure" aria-label="Anchor"&gt;#&lt;/a&gt;&#10; &lt;/span&gt;&#10; &#10;&lt;/h3&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Directories and subdirectories for each section.&lt;/li&gt;&#10;&lt;li&gt;Make sure each section has a corresponding &lt;code&gt;index.XX.md&lt;/code&gt; for static pages or &lt;code&gt;_index.XX.md&lt;/code&gt; for list pages. This, I think (but am not sure) has fixed my old, nagging issue of page navigation overflowing. I would keep going next, in the Talks section for example, and when I reached the end, it would show me another entry from some other section. Now the front/back buttons stay restricted to the section they are in.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&#10;&lt;h3 class="relative group"&gt;Archetypes&#10; &lt;div id="archetypes" class="anchor"&gt;&lt;/div&gt;&#10; &#10; &lt;span&#10; class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;&#10; &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#archetypes" aria-label="Anchor"&gt;#&lt;/a&gt;&#10; &lt;/span&gt;&#10; &#10;&lt;/h3&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;All the archetypes have been slightly tweaked. They now also include a template line for an image. It uses the theme’s &lt;code&gt;figure&lt;/code&gt; shortcode for images.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&#10;&lt;h3 class="relative group"&gt;i18n (Internationalisation)&#10; &lt;div id="i18n-internationalisation" class="anchor"&gt;&lt;/div&gt;&#10; &#10; &lt;span&#10; class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;&#10; &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#i18n-internationalisation" aria-label="Anchor"&gt;#&lt;/a&gt;&#10; &lt;/span&gt;&#10; &#10;&lt;/h3&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;The internationalisation options are easier here. Just defining a term somewhere and then referring to it here just works.&lt;br&gt;&#10;For e.g., I use &lt;code&gt;search_placeholder&lt;/code&gt; as a term in the &lt;code&gt;search&lt;/code&gt; layout and then in &lt;code&gt;i18n/en.yaml&lt;/code&gt; I have, &lt;code&gt;search_placeholder: &amp;quot;Search for something …&amp;quot;&lt;/code&gt; while &lt;code&gt;i18n/fr.yaml&lt;/code&gt; gives the same term a different spin, &lt;code&gt;search_placeholder: &amp;quot;Rechercher des articles …&amp;quot;&lt;/code&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&#10;&lt;h3 class="relative group"&gt;Layout Overrides&#10; &lt;div id="layout-overrides" class="anchor"&gt;&lt;/div&gt;&#10; &#10; &lt;span&#10; class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;&#10; &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#layout-overrides" aria-label="Anchor"&gt;#&lt;/a&gt;&#10; &lt;/span&gt;&#10; &#10;&lt;/h3&gt;&#10;&#10;&lt;h4 class="relative group"&gt;RSS&#10; &lt;div id="rss" class="anchor"&gt;&lt;/div&gt;&#10; &#10; &lt;span&#10; class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;&#10; &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#rss" aria-label="Anchor"&gt;#&lt;/a&gt;&#10; &lt;/span&gt;&#10; &#10;&lt;/h4&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Have tweaked the RSS layout a teensy bit. My version is in &lt;code&gt;layouts/_default/rss.xml&lt;/code&gt;, which includes the full text of the post, instead of just a summary.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-go-html-template" data-lang="go-html-template"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;&amp;lt;!-- &amp;lt;description&amp;gt;&lt;/span&gt;&lt;span class="cm"&gt;{{/* .Summary | transform.XMLEscape | safeHTML */}}&lt;/span&gt;&lt;span class="c"&gt;&amp;lt;/description&amp;gt; --&amp;gt;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;description&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;&lt;span class="cp"&gt;{{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="na"&gt;.Content&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;transform&lt;/span&gt;&lt;span class="na"&gt;.XMLEscape&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;safeHTML&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="cp"&gt;}}&lt;/span&gt;&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;description&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Have restricted RSS feed generation for posts in the &lt;a href="https://janusworx.com/nm/" &gt;Notes and Miscellanea&lt;/a&gt; section. They won’t appear in the RSS feed unless I want them to. Most of them are just streams of consciousness, to help me get on with my day. Only a few are exceptions, that I want published.&lt;br&gt;&#10;I even disable sitemap generation for those “important to me, but useless for thee” posts with this bit of metadata in each post&lt;sup id="fnref:3"&gt;&lt;a href="#fn:3" class="footnote-ref" role="doc-noteref"&gt;3&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-yaml" data-lang="yaml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;sitemap&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;disable&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;So I have then taken advantage of this fact, to exclude these posts from having entries in the RSS feed, by telling Hugo to only look at posts where such a key does not exist; which basically, is everything else.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-go-html-template" data-lang="go-html-template"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;&amp;lt;!-- &lt;/span&gt;&lt;span class="cm"&gt;{{/* range $pages */}}&lt;/span&gt;&lt;span class="c"&gt; --&amp;gt;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="cp"&gt;{{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;range&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;where&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;$pages&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;&amp;#34;Sitemap.Disable&amp;#34;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;&amp;#34;ne&amp;#34;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;true&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="cp"&gt;}}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#10;&#10;&lt;h4 class="relative group"&gt;Search&#10; &lt;div id="search" class="anchor"&gt;&lt;/div&gt;&#10; &#10; &lt;span&#10; class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;&#10; &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#search" aria-label="Anchor"&gt;#&lt;/a&gt;&#10; &lt;/span&gt;&#10; &#10;&lt;/h4&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;This pulls in the script and the styles for &lt;a href="https://janusworx.com/work/you-can-now-search-this-blog/" &gt;Pagefind&lt;/a&gt;, which I use for searching the blog. Layout is in &lt;code&gt;layouts/_default/search.html&lt;/code&gt;.&lt;/li&gt;&#10;&lt;li&gt;Also note, then when working on search locally, first create an index with pagefind and move it to the static folder because our normal way of working is to render it all in memory.&#10;&lt;ul&gt;&#10;&lt;li&gt;do a &lt;code&gt;hugo build&lt;/code&gt;&lt;/li&gt;&#10;&lt;li&gt;then do &lt;code&gt;pagefind_extended --site public&lt;/code&gt;&lt;/li&gt;&#10;&lt;li&gt;then &lt;code&gt;mv public/pagefind static/pagefind&lt;/code&gt;&lt;/li&gt;&#10;&lt;li&gt;then &lt;code&gt;rm -rf public&lt;/code&gt;&lt;/li&gt;&#10;&lt;li&gt;and then start the hugo server like we normally do&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&#10;&lt;h4 class="relative group"&gt;Littlefoot&#10; &lt;div id="littlefoot" class="anchor"&gt;&lt;/div&gt;&#10; &#10; &lt;span&#10; class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;&#10; &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#littlefoot" aria-label="Anchor"&gt;#&lt;/a&gt;&#10; &lt;/span&gt;&#10; &#10;&lt;/h4&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Footnotes are powered by &lt;a href="https://janusworx.com/work/note-to-self-footnotes-using-littlefoot.js/" &gt;Littlefoot&lt;/a&gt;. Have used &lt;code&gt;layouts/partials/extend-footer.html&lt;/code&gt; to pull in the Littlefoot script and &lt;code&gt;layouts/partials/extend-footer.html&lt;/code&gt; to grab the CSS.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&#10;&lt;h4 class="relative group"&gt;Redirect&#10; &lt;div id="redirect" class="anchor"&gt;&lt;/div&gt;&#10; &#10; &lt;span&#10; class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;&#10; &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#redirect" aria-label="Anchor"&gt;#&lt;/a&gt;&#10; &lt;/span&gt;&#10; &#10;&lt;/h4&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;An old redirect template to redirect from one section to the other is still in place in the &lt;code&gt;layouts/redirect&lt;/code&gt; directory&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&#10;&lt;h4 class="relative group"&gt;Shortcodes&#10; &lt;div id="shortcodes" class="anchor"&gt;&lt;/div&gt;&#10; &#10; &lt;span&#10; class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;&#10; &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#shortcodes" aria-label="Anchor"&gt;#&lt;/a&gt;&#10; &lt;/span&gt;&#10; &#10;&lt;/h4&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Most of the old shortcodes made it over. Retired my image and caption shortcodes in favour of using Blowfish’s version. Also created an &lt;code&gt;hsgallery&lt;/code&gt; shortcode, so that I could continue using my old &lt;a href="https://github.com/mfg92/hugo-shortcode-gallery" target="_blank" rel="noreferrer"&gt;Hugo Shortcode Gallery&lt;/a&gt; to create image galleries. The &lt;code&gt;gallery&lt;/code&gt; shortcode conflicts with Blowfish’s own, which I don’t like and so won’t use.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&#10;&lt;h3 class="relative group"&gt;Static + Tools&#10; &lt;div id="static--tools" class="anchor"&gt;&lt;/div&gt;&#10; &#10; &lt;span&#10; class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;&#10; &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#static--tools" aria-label="Anchor"&gt;#&lt;/a&gt;&#10; &lt;/span&gt;&#10; &#10;&lt;/h3&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Fonts and Littlefoot reside in the &lt;code&gt;static&lt;/code&gt; directory, along with all my images.&lt;/li&gt;&#10;&lt;li&gt;There’s also a &lt;code&gt;tools&lt;/code&gt; directory which contains the Pagefind binary. This does not get published obviously. But the Forgejo action uses this to generate an index for the site and then sends the whole thing off to the VM.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&#10;&lt;h3 class="relative group"&gt;Themes&#10; &lt;div id="themes" class="anchor"&gt;&lt;/div&gt;&#10; &#10; &lt;span&#10; class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;&#10; &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#themes" aria-label="Anchor"&gt;#&lt;/a&gt;&#10; &lt;/span&gt;&#10; &#10;&lt;/h3&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Contains &lt;a href="https://blowfish.page" target="_blank" rel="noreferrer"&gt;Blowfish&lt;/a&gt; and &lt;a href="https://github.com/mfg92/hugo-shortcode-gallery" target="_blank" rel="noreferrer"&gt;Hugo Shortcode Gallery&lt;/a&gt;, added as &lt;code&gt;git&lt;/code&gt; submodules. I dropped Hugo Admonitions, because Blowfish has them already.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&#10;&lt;h3 class="relative group"&gt;CSS&#10; &lt;div id="css" class="anchor"&gt;&lt;/div&gt;&#10; &#10; &lt;span&#10; class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;&#10; &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#css" aria-label="Anchor"&gt;#&lt;/a&gt;&#10; &lt;/span&gt;&#10; &#10;&lt;/h3&gt;&#10;&lt;p&gt;All in &lt;code&gt;assets/css/custom.css&lt;/code&gt;&lt;/p&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;Import fonts: Valkyrie for the site and Source Code Pro for code.&lt;/li&gt;&#10;&lt;li&gt;Tweaked the Janusworx up left on my site, and changed all the nav bar items to use Valkyrie Caps.&lt;/li&gt;&#10;&lt;li&gt;Dark mode links were not contrasty enough. So changed the colour and added an underline on hover.&lt;/li&gt;&#10;&lt;li&gt;Added a class to the figure tag, so I could center the pics I use.&lt;/li&gt;&#10;&lt;li&gt;Added an indent to the numbered list items on the Annual Book List pages, so that the numbers stay &lt;em&gt;under&lt;/em&gt; each month.&lt;/li&gt;&#10;&lt;li&gt;Style littlefoot footnotes, so that the button is slightly smaller and higher, and the notes use Valkyrie, along with a couple of other tiny tweaks.&lt;/li&gt;&#10;&lt;li&gt;Style the Blowfish box, and the results, on the search page&lt;/li&gt;&#10;&lt;li&gt;Main thing to note. Use &lt;code&gt;!important;&lt;/code&gt; liberally. Changes don’t always cascade down correctly.&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&#10;&lt;h3 class="relative group"&gt;Miscellanea&#10; &lt;div id="miscellanea" class="anchor"&gt;&lt;/div&gt;&#10; &#10; &lt;span&#10; class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;&#10; &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#miscellanea" aria-label="Anchor"&gt;#&lt;/a&gt;&#10; &lt;/span&gt;&#10; &#10;&lt;/h3&gt;&#10;&#10;&lt;h4 class="relative group"&gt;Go Templates:&#10; &lt;div id="go-templates" class="anchor"&gt;&lt;/div&gt;&#10; &#10; &lt;span&#10; class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;&#10; &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#go-templates" aria-label="Anchor"&gt;#&lt;/a&gt;&#10; &lt;/span&gt;&#10; &#10;&lt;/h4&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Use &lt;code&gt;```go-html-template&lt;/code&gt; as the language hint to the code fence to display Go template code correctly. (like I needed to in this post for e.g.)&lt;/li&gt;&#10;&lt;li&gt;If it is pure Go Template stuff with little to no html, another alternative is &lt;code&gt;```go-text-template &lt;/code&gt;&lt;/li&gt;&#10;&lt;li&gt;I could not just comment out Go template code with HTML comment markers &lt;code&gt;&amp;lt;!-- --&amp;gt;&lt;/code&gt;. The Hugo live server kept crashing on me with weird EOF errors, until I figured this out. The Go template block needs a comment marker &lt;em&gt;inside&lt;/em&gt; the the &lt;code&gt;{{ … }}&lt;/code&gt; section like so, &lt;code&gt;{{/* … */}}&lt;/code&gt;.&lt;br&gt;&#10;E.g. &lt;code&gt;{{/* range $pages */}}&lt;/code&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;&#10;&#10;Feedback on this post?&lt;br&gt;&#10;Mail me at &lt;a href="mailto:feebdback@janusworx.com?subject=%22Feedback on post: Moved From Papermod to Blowfish&#10;%22" &gt;feedback at this domain&lt;/a&gt;.&lt;br&gt;&#10;P.S. Subscribe to my &lt;a href="https://janusworx.com/subscribe/" target="_blank" rel="noreferrer"&gt;mailing list!&lt;/a&gt;&lt;/p&gt;&#10;&lt;div class="footnotes" role="doc-endnotes"&gt;&#10;&lt;hr&gt;&#10;&lt;ol&gt;&#10;&lt;li id="fn:1"&gt;&#10;&lt;p&gt;famous last words!&amp;#160;&lt;a href="#fnref:1" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li id="fn:2"&gt;&#10;&lt;p&gt;XX is the language code. I have EN for English and FR for French. So &lt;code&gt;menus.fr.toml&lt;/code&gt; for e.g.&amp;#160;&lt;a href="#fnref:2" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li id="fn:3"&gt;&#10;&lt;p&gt;I have modified the notes archetype, so this is always pre filled and set.&amp;#160;&lt;a href="#fnref:3" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;/div&gt;&#10;</description></item><item><title>2026-07-23 Notes</title><link>https://janusworx.com/nm/2026-07-23/</link><pubDate>Thu, 23 Jul 2026 17:53:16 +0530</pubDate><author>feedback@janusworx.com (Mario Jason Braganza)</author><guid>https://janusworx.com/nm/2026-07-23/</guid><description>&lt;p&gt;Just a test to see if this appears in the general feed.&lt;/p&gt;&#10;&lt;p&gt;&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;&#10;&#10;Feedback on this post?&lt;br&gt;&#10;Mail me at &lt;a href="mailto:feedback@janusworx.com?subject=%22Feedback on post: 2026-07-23 Notes&#10;%22" &gt;feedback at this domain&lt;/a&gt;.&lt;/p&gt;&#10;</description></item><item><title>Happy Birthday Abbygail</title><link>https://janusworx.com/personal/happy-birthday-abbygail-4/</link><pubDate>Mon, 06 Jul 2026 00:00:00 +0530</pubDate><author>feedback@janusworx.com (Mario Jason Braganza)</author><guid>https://janusworx.com/personal/happy-birthday-abbygail-4/</guid><description>&#10;&lt;figure class="mjb-img-center"&gt;&#10; &lt;img class="my-0 rounded-md" src="https://janusworx.com/images/2026/happy-birthday-abbygail-4.jpg" alt="Picture of a beautiful woman standing under cherry blossoms in Paris, with the Eiffel tower in the background" /&gt;&#10; &#10; &lt;figcaption&gt;Abby, at her second favourite place in the world.&lt;/figcaption&gt;&#10; &lt;/figure&gt;&#10;&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;&#10;&#10;&lt;p&gt;Love knows no difference between life and death.&lt;br&gt;&#10;The one who gives you a reason to live is also the one who takes your breath away.&lt;/p&gt;&#10;&lt;p&gt;جینے مرنے میں کچھ فرق نہیں فرق نہیں&lt;br&gt;&#10;اُسی کو دیکھ کر جیتے ہیں جس کافر پہ دم نکلے&lt;/p&gt;&#10;&lt;p&gt;(jeene marne mein kuchh farq nahi farq nahi&lt;br&gt;&#10;usi ko dekh kar jeete hain jis kafir pe dam nikle)&lt;/p&gt;&#10;&lt;p&gt;— &lt;a href="https://www.hindustantimes.com/lifestyle/art-culture/mirza-ghalib-224th-birth-anniversary-10-love-couplets-by-legendary-urdu-poet-101640589255326.html" target="_blank" rel="noreferrer"&gt;Ghalib&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;&#10;&#10;Feedback on this post?&lt;br&gt;&#10;Mail me at &lt;a href="mailto:feebdback@janusworx.com?subject=%22Feedback on post: Happy Birthday Abbygail&#10;%22" &gt;feedback at this domain&lt;/a&gt;.&lt;br&gt;&#10;P.S. Subscribe to my &lt;a href="https://janusworx.com/subscribe/" target="_blank" rel="noreferrer"&gt;mailing list!&lt;/a&gt;&lt;/p&gt;&#10;</description></item><item><title>No More Stars</title><link>https://janusworx.com/reading/no-more-stars/</link><pubDate>Fri, 03 Jul 2026 12:35:20 +0530</pubDate><author>feedback@janusworx.com (Mario Jason Braganza)</author><guid>https://janusworx.com/reading/no-more-stars/</guid><description>&#10;&lt;figure class="mjb-img-center"&gt;&#10; &lt;img class="my-0 rounded-md" src="https://janusworx.com/images/2026/no-more-stars.jpg" alt="Dark Sky with just a crescent moon and no stars" /&gt;&#10; &#10; &lt;figcaption&gt;Photo by &lt;a href="https://unsplash.com/@withluke?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText" target="_blank" rel="noreferrer"&gt;Luke Stackpoole&lt;/a&gt; on &lt;a href="https://unsplash.com/photos/closeup-photography-of-crescent-moon-TRXSkmJb40c?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText" target="_blank" rel="noreferrer"&gt;Unsplash&lt;/a&gt;&lt;/figcaption&gt;&#10; &lt;/figure&gt;&#10;&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;&#10;&#10;&lt;p&gt;&lt;a href="https://janusworx.com/reading/2021/" &gt;The&lt;/a&gt; &lt;a href="https://janusworx.com/reading/2022/" &gt;old&lt;/a&gt; &lt;a href="https://janusworx.com/reading/2023/" &gt;annual&lt;/a&gt; &lt;a href="https://janusworx.com/reading/2024/" &gt;book&lt;/a&gt; &lt;a href="https://janusworx.com/reading/2025/" &gt;lists&lt;/a&gt; have used stars to mark the books I liked/loved.&lt;/p&gt;&#10;&lt;p&gt;But this year, I have been mostly only listing things that I love, because I’ve gotten into the habit of putting down the things that don’t hold my attention and moving on to something else. There’s a certain joy to throwing a book across the room with a “Nooooooooo! Not reading this one any more … Life’s too short! So there!”&lt;/p&gt;&#10;&lt;p&gt;Now, a title only goes on the list if I’ve finished the book &lt;em&gt;and&lt;/em&gt; I love/like it.&lt;/p&gt;&#10;&lt;p&gt;&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;&#10;&#10;Feedback on this post?&lt;br&gt;&#10;Mail me at &lt;a href="mailto:feebdback@janusworx.com?subject=%22Feedback on post: No More Stars&#10;%22" &gt;feedback at this domain&lt;/a&gt;.&lt;br&gt;&#10;P.S. Subscribe to my &lt;a href="https://janusworx.com/subscribe/" target="_blank" rel="noreferrer"&gt;mailing list!&lt;/a&gt;&lt;/p&gt;&#10;</description></item><item><title>Books I Read in June, 2026</title><link>https://janusworx.com/reading/books-i-read-in-june-2026/</link><pubDate>Thu, 02 Jul 2026 09:33:57 +0530</pubDate><author>feedback@janusworx.com (Mario Jason Braganza)</author><guid>https://janusworx.com/reading/books-i-read-in-june-2026/</guid><description>&#10;&lt;figure class="mjb-img-center"&gt;&#10; &lt;img class="my-0 rounded-md" src="https://janusworx.com/images/2026/what-i-read-in-june-2026-art-of-reading.jpg" alt="pile of old english classic books with a flower on top" /&gt;&#10; &#10; &lt;figcaption&gt;Photo by &lt;a href="https://unsplash.com/@_imd?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText" target="_blank" rel="noreferrer"&gt;Zoe&lt;/a&gt; on &lt;a href="https://unsplash.com/photos/a-gold-box-with-blue-flowers-qo6OCDyLR1U?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText" target="_blank" rel="noreferrer"&gt;Unsplash&lt;/a&gt;&lt;/figcaption&gt;&#10; &lt;/figure&gt;&#10;&lt;p&gt;Got quite a bit of reading done this month, because there was little else to do with the root canal and other things that kept popping up. Reading kept me sane.&lt;/p&gt;&#10;&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;&#10;&#10;&#10;&lt;h3 class="relative group"&gt;&lt;a href="https://podcasts.apple.com/in/podcast/empire/id1639561921" target="_blank" rel="noreferrer"&gt;Empire Podcast&lt;/a&gt;: Spice Wars, The Battle of the East India Companies, Episodes 358-360&#10; &lt;div id="empire-podcast-spice-wars-the-battle-of-the-east-india-companies-episodes-358-360" class="anchor"&gt;&lt;/div&gt;&#10; &#10; &lt;span&#10; class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;&#10; &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#empire-podcast-spice-wars-the-battle-of-the-east-india-companies-episodes-358-360" aria-label="Anchor"&gt;#&lt;/a&gt;&#10; &lt;/span&gt;&#10; &#10;&lt;/h3&gt;&#10;&lt;p&gt;While India had the &lt;a href="https://en.wikipedia.org/wiki/East_India_Company" target="_blank" rel="noreferrer"&gt;EIC&lt;/a&gt; later, Indonesia and its surroundings were ground earlier under the boot of the &lt;a href="https://en.wikipedia.org/wiki/Dutch_East_India_Company" target="_blank" rel="noreferrer"&gt;VOC&lt;/a&gt;. According to &lt;a href="https://en.wikipedia.org/wiki/Dutch_East_India_Company#:~:text=Statistically," target="_blank" rel="noreferrer"&gt;Wikipedia&lt;/a&gt;:&lt;/p&gt;&#10;&lt;blockquote&gt;&lt;p&gt;Statistically, the VOC eclipsed all of its rivals in the Asian trade. Between 1602 and 1796, the VOC sent nearly a million Europeans to work in the Asia trade on 4,785 ships, and netted for their efforts more than 2.5 million tonnes of Asian trade goods and slaves. By contrast, the rest of Europe combined sent 882,412 people from 1500 to 1795. The fleet of the English, later British East India Company, the VOC&amp;rsquo;s nearest competitor, was a distant second to its total traffic, with 2,690 ships and one-fifth the tonnage of goods carried by the VOC. The VOC enjoyed huge profits from its spice monopoly through most of the 17th century.&lt;/p&gt;&#10;&lt;/blockquote&gt;&lt;p&gt;The series details the history of the two early corporate raiders and plunderers, and the carnage they wrought in South East Asia and the Indian subcontinent.&lt;/p&gt;&#10;&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;&#10;&#10;&#10;&lt;h3 class="relative group"&gt;&lt;a href="https://therestishistory.com/episodes/" target="_blank" rel="noreferrer"&gt;The Rest is History&lt;/a&gt;, The Fall of the Incas, Episodes 644-649&#10; &lt;div id="the-rest-is-history-the-fall-of-the-incas-episodes-644-649" class="anchor"&gt;&lt;/div&gt;&#10; &#10; &lt;span&#10; class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;&#10; &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#the-rest-is-history-the-fall-of-the-incas-episodes-644-649" aria-label="Anchor"&gt;#&lt;/a&gt;&#10; &lt;/span&gt;&#10; &#10;&lt;/h3&gt;&#10;&lt;p&gt;I don’t know why but I always assumed South America was colonised east to west. This series along with the &lt;a href="https://janusworx.com/reading/books-i-read-in-may-2026/#empire-podcast-simon-bolivar-the-liberator-episodes-354-357" &gt;Simon Bolivar series last month&lt;/a&gt; gives me the idea, that it went from the Caribbean to Mexico and then downwards towards the top of South America and down the west coast. I should read more history about the continent.&lt;br&gt;&#10;This series, somehow, felt even more heart breaking than the Aztecs. The greed and the avarice and the deception and the desperate, brutish, violence of it all, should leave you shaking with rage.&lt;/p&gt;&#10;&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;&#10;&#10;&#10;&lt;h3 class="relative group"&gt;The Secret Pilgrim, John le Carré&#10; &lt;div id="the-secret-pilgrim-john-le-carré" class="anchor"&gt;&lt;/div&gt;&#10; &#10; &lt;span&#10; class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;&#10; &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#the-secret-pilgrim-john-le-carr%c3%a9" aria-label="Anchor"&gt;#&lt;/a&gt;&#10; &lt;/span&gt;&#10; &#10;&lt;/h3&gt;&#10;&lt;p&gt;The probably will be my last le Carré for a while. Too much bleakness, while real life is in a tumult is not good. A collection of stories big and small, with Smiley playing the framing device. This is more about Ned and his adventures in the service. I loved it.&lt;/p&gt;&#10;&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;&#10;&#10;&#10;&lt;h3 class="relative group"&gt;Platform Decay, Martha Wells&#10; &lt;div id="platform-decay-martha-wells" class="anchor"&gt;&lt;/div&gt;&#10; &#10; &lt;span&#10; class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;&#10; &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#platform-decay-martha-wells" aria-label="Anchor"&gt;#&lt;/a&gt;&#10; &lt;/span&gt;&#10; &#10;&lt;/h3&gt;&#10;&lt;p&gt;Yay! New Murderbot episode! Bought and read in a day flat. Not as good as the older Murderbots, but even a middling Murderbot book is much better than most other books. Loved it to bits. Plot is the same as every other Murderbot. Murderbot rescues someone. What else is new? Murberbot now has regular “check-ins” with its feelings.&lt;/p&gt;&#10;&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;&#10;&#10;&#10;&lt;h3 class="relative group"&gt;Control, Andy Diggle, Angela Cruickshank, Andrea Mutti &amp;amp; Vladimir Popov&#10; &lt;div id="control-andy-diggle-angela-cruickshank-andrea-mutti--vladimir-popov" class="anchor"&gt;&lt;/div&gt;&#10; &#10; &lt;span&#10; class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;&#10; &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#control-andy-diggle-angela-cruickshank-andrea-mutti--vladimir-popov" aria-label="Anchor"&gt;#&lt;/a&gt;&#10; &lt;/span&gt;&#10; &#10;&lt;/h3&gt;&#10;&lt;p&gt;A modern hardboiled comic … err graphic novel. Cleaned out a lot of my comics. Most of the old ones have not aged well. And most of the new ones are just out there to shock you. Alan Moore really raised the bar. Nothing really comes close. His are the only ones I’ve held on to. V for Vendetta is the only one of two hardback I have. The other is my lovely Sandman series (written by the asshole who shall not be named, and illustrated by Keith, Dringenberg et al.)&lt;br&gt;&#10;Back to Control. This plays like an old potboiler. Detective is framed. Detective has to break the law to get justice and show her innocence. Pretty decent writing. But lovely art.&lt;/p&gt;&#10;&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;&#10;&#10;&#10;&lt;h3 class="relative group"&gt;&lt;a href="https://www.youtube.com/watch?v=vPX6smnb4ro" target="_blank" rel="noreferrer"&gt;Chung Ju-yung &amp;amp; Hyundai&lt;/a&gt;, Farnam Street Podcast&#10; &lt;div id="chung-ju-yung--hyundai-farnam-street-podcast" class="anchor"&gt;&lt;/div&gt;&#10; &#10; &lt;span&#10; class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;&#10; &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#chung-ju-yung--hyundai-farnam-street-podcast" aria-label="Anchor"&gt;#&lt;/a&gt;&#10; &lt;/span&gt;&#10; &#10;&lt;/h3&gt;&#10;&lt;p&gt;This is Shane Parrish trying to pull an Acquired like episode. Really, really, really good.&lt;br&gt;&#10;The (hagiographic) story of Chung Ju-Yung’s life and how he built Hyundai and was a major driving force behind South Korea turning into one of the largest economies in the world.&lt;/p&gt;&#10;&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;&#10;&#10;&#10;&lt;h3 class="relative group"&gt;Steve Jobs in Exile, Geoffrey Cain&#10; &lt;div id="steve-jobs-in-exile-geoffrey-cain" class="anchor"&gt;&lt;/div&gt;&#10; &#10; &lt;span&#10; class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;&#10; &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#steve-jobs-in-exile-geoffrey-cain" aria-label="Anchor"&gt;#&lt;/a&gt;&#10; &lt;/span&gt;&#10; &#10;&lt;/h3&gt;&#10;&lt;p&gt;If Becoming Steve Jobs, tracked Jobs and his personal growth through his Next years, this one fleshes out nearly everything Schlender talked about in his book. If you are interested in biographies or Steve Jobs, this is definitely worth a read. I bought it because this is the only era of Jobs’ life and career that I’m interested in. The turnaround of Apple was something started just as I entered the workforce and was something I lived through. The early Apple, I already know lots about. So I’ve always wanted to know what happened in the “lost decade.” Becoming Steve Jobs and Steve Jobs in Exile are a good duology to know everything about that era.&lt;/p&gt;&#10;&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;&#10;&#10;&#10;&lt;h3 class="relative group"&gt;Apple: The First 50 Years, David Pogue&#10; &lt;div id="apple-the-first-50-years-david-pogue" class="anchor"&gt;&lt;/div&gt;&#10; &#10; &lt;span&#10; class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;&#10; &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#apple-the-first-50-years-david-pogue" aria-label="Anchor"&gt;#&lt;/a&gt;&#10; &lt;/span&gt;&#10; &#10;&lt;/h3&gt;&#10;&lt;p&gt;If you want an grand overview of Apple’s history, look no further. Pogue probably leveraged damn near every connection he must have had to write this. It’s a lovely history of the company. Gets a little sloggy in parts, but a good book nonetheless.&lt;/p&gt;&#10;&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;&#10;&#10;&#10;&lt;h3 class="relative group"&gt;&lt;a href="https://books.pharo.org/" target="_blank" rel="noreferrer"&gt;Learning Object-Oriented Programming, Design and TDD with Pharo&lt;/a&gt;, Stéphane Ducasse &amp;amp; Damien Pollet&#10; &lt;div id="learning-object-oriented-programming-design-and-tdd-with-pharo-stéphane-ducasse--damien-pollet" class="anchor"&gt;&lt;/div&gt;&#10; &#10; &lt;span&#10; class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;&#10; &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#learning-object-oriented-programming-design-and-tdd-with-pharo-st%c3%a9phane-ducasse--damien-pollet" aria-label="Anchor"&gt;#&lt;/a&gt;&#10; &lt;/span&gt;&#10; &#10;&lt;/h3&gt;&#10;&lt;p&gt;I just &lt;em&gt;had&lt;/em&gt; to understand what message passing meant, and what Objects were, in the way the original authors intended it. Pharo is a spiritual descendant of Smalltalk, and like Lisp, works in a self contained environment where darn near everything is an object and can be reconfigured. This book gave me a really good base on which to build my further programming knowledge when it comes to Object Oriented Programming. This book—along with others—is freely available on the Pharo website.&lt;/p&gt;&#10;&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;&#10;&#10;&#10;&lt;h3 class="relative group"&gt;Data Structures the Fun Way, Jeremy Kubica&#10; &lt;div id="data-structures-the-fun-way-jeremy-kubica" class="anchor"&gt;&lt;/div&gt;&#10; &#10; &lt;span&#10; class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;&#10; &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#data-structures-the-fun-way-jeremy-kubica" aria-label="Anchor"&gt;#&lt;/a&gt;&#10; &lt;/span&gt;&#10; &#10;&lt;/h3&gt;&#10;&lt;p&gt;Reading a No Starch book is always fun. And I read this to get a handle of just what the big picture was on Data Structures. This is a really good book that does that. Examples are clear. Ideas are well explained. And nothing gets too dreary. The coffee analogies are just … barista’s kiss!&lt;/p&gt;&#10;&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;&#10;&#10;&#10;&lt;h3 class="relative group"&gt;The Art of Reading, Timothy Spurgin (The Great Courses)&#10; &lt;div id="the-art-of-reading-timothy-spurgin-the-great-courses" class="anchor"&gt;&lt;/div&gt;&#10; &#10; &lt;span&#10; class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;&#10; &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#the-art-of-reading-timothy-spurgin-the-great-courses" aria-label="Anchor"&gt;#&lt;/a&gt;&#10; &lt;/span&gt;&#10; &#10;&lt;/h3&gt;&#10;&lt;p&gt;This is the companion to Adler’s, How to Read a Book. Adler is about the craft, while Spurgin is about the art. They both complement each other. Adler comes from how to use your mind to tackle the rectangular piece of dead tree in front of you, in a methodical manner. And once you have that, Spurgin then takes you on a journey of just how large the world of reading is. How to think about narration. And the basics of storytelling. Of plots and plotting. The rise of metafiction. What it means to read closely and carefully. And how even small details all contribute the the work as a whole. It truly has made me want to be, what Spurgin calls, &lt;em&gt;“an artful reader.”&lt;/em&gt;&lt;br&gt;&#10;This series of lectures was something I bought on a whim when I was trying to learn Mathematics via the Great Courses during Covid.&lt;sup id="fnref:1"&gt;&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref"&gt;1&lt;/a&gt;&lt;/sup&gt; And it just sat on the shelf, until I realised, I could just convert the videos to audio and then listen to them as I potter about the kitchen in the mornings. Halfway through the book, I also found that the Great Courses were available as audiobooks on Audible as well. So my wishlist is damn near full for the next two years now. 😂 So hopefully there will always be one of these courses I do every month. These are really lovely.&lt;br&gt;&#10;Going through this course, also &lt;em&gt;finally&lt;/em&gt; helped me clarify to myself, just what it is that I consider a really good book. It has to be beautifully written. And the writing has to match the world and the genre. It also makes me realise books like these are few and far between, so now it also makes me a more patient book buyer :)&lt;br&gt;&#10;Some examples: Richard Powers in The Overstory, Ursula K Leguin and Tamsyn Muir with all their works of fantasy, and Peter Watts too with his hard edged, dark, science fiction. And then there’s always the classics, which I am now slowly discovering and enjoying. Wish me luck!&lt;/p&gt;&#10;&lt;p&gt;&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;&#10;&#10;Feedback on this post?&lt;br&gt;&#10;Mail me at &lt;a href="mailto:feebdback@janusworx.com?subject=%22Feedback on post: Books I Read in June, 2026&#10;%22" &gt;feedback at this domain&lt;/a&gt;.&lt;br&gt;&#10;P.S. Subscribe to my &lt;a href="https://janusworx.com/subscribe/" target="_blank" rel="noreferrer"&gt;mailing list!&lt;/a&gt;&lt;/p&gt;&#10;&lt;div class="footnotes" role="doc-endnotes"&gt;&#10;&lt;hr&gt;&#10;&lt;ol&gt;&#10;&lt;li id="fn:1"&gt;&#10;&lt;p&gt;don’t ask why.&amp;#160;&lt;a href="#fnref:1" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;/div&gt;&#10;</description></item><item><title>You Can Now Search this Blog</title><link>https://janusworx.com/work/you-can-now-search-this-blog/</link><pubDate>Tue, 23 Jun 2026 14:24:24 +0530</pubDate><author>feedback@janusworx.com (Mario Jason Braganza)</author><guid>https://janusworx.com/work/you-can-now-search-this-blog/</guid><description>&lt;br&gt;&#10;&#10;&lt;div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="info"&gt;&#10; &lt;div class="flex items-center gap-2 font-semibold text-inherit"&gt;&#10; &lt;div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"&gt;&lt;span class="relative block icon"&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"&gt;&lt;path fill="currentColor" d="M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 128c17.67 0 32 14.33 32 32c0 17.67-14.33 32-32 32S224 177.7 224 160C224 142.3 238.3 128 256 128zM296 384h-80C202.8 384 192 373.3 192 360s10.75-24 24-24h16v-64H224c-13.25 0-24-10.75-24-24S210.8 224 224 224h32c13.25 0 24 10.75 24 24v88h16c13.25 0 24 10.75 24 24S309.3 384 296 384z"/&gt;&lt;/svg&gt;&#10;&lt;/span&gt;&lt;/div&gt;&#10; &lt;div class="grow"&gt;&#10; Intended Audience&#10; &lt;/div&gt;&#10; &lt;/div&gt;&lt;div class="admonition-content mt-3 text-base leading-relaxed text-inherit"&gt;&lt;p&gt;Me. In case I want to retrace the big idea tomorrow&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;br&gt;&#10;&#10;&#10;&lt;figure&gt;&#10; &lt;img class="my-0 rounded-md" src="https://janusworx.com/images/2026/you-can-now-search-this-blog-pagefind.png" alt="Pagefind PNG logo" /&gt;&#10; &#10; &#10; &lt;/figure&gt;&#10;&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;&#10;&#10;&#10;&lt;h3 class="relative group"&gt;tldr: &lt;a href="https://janusworx.com/search" target="_blank" rel="noreferrer"&gt;https://janusworx.com/search&lt;/a&gt;&#10; &lt;div id="tldr" class="anchor"&gt;&lt;/div&gt;&#10; &#10; &lt;span&#10; class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;&#10; &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#tldr" aria-label="Anchor"&gt;#&lt;/a&gt;&#10; &lt;/span&gt;&#10; &#10;&lt;/h3&gt;&#10;&lt;p&gt;Being the lazyass that I am, I used to depend on search engine indexes to find something on my own blog. (First google, then DuckDuckGo.)&lt;br&gt;&#10;Kushal, having &lt;a href="https://search.kushaldas.in/" target="_blank" rel="noreferrer"&gt;https://search.kushaldas.in/&lt;/a&gt; has always made me jealous though.&lt;br&gt;&#10;And now, the days of finding something relevant on my blog, on the first search are long gone. Search engines today are a pale shadow of what they used to be. The current load of crap actually makes me long for the days of &lt;a href="https://en.wikipedia.org/wiki/AltaVista" target="_blank" rel="noreferrer"&gt;Altavista&lt;/a&gt;!&lt;/p&gt;&#10;&lt;p&gt;So, I decided to get off my butt, and go do something about it, because everytime I want something, my blog is one of the first places I search.&lt;br&gt;&#10;For e.g. when writing this post, I needed to look up how to add line numbers to my code blocks. &lt;a href="https://janusworx.com/work/line-numbers-in-hugo-codeblocks/" &gt;Search helped me find it&lt;/a&gt; :)&lt;/p&gt;&#10;&lt;p&gt;I went to the &lt;a href="https://gohugo.io/tools/search/" target="_blank" rel="noreferrer"&gt;Hugo website&lt;/a&gt; and decided to implement the first search tool&lt;sup id="fnref:1"&gt;&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref"&gt;1&lt;/a&gt;&lt;/sup&gt; they suggested: &lt;em&gt;&lt;strong&gt;&lt;a href="https://pagefind.app" target="_blank" rel="noreferrer"&gt;Pagefind&lt;/a&gt;&lt;/strong&gt;&lt;/em&gt;.&lt;br&gt;&#10;Well, I did that since Pagefind took care of the only thing I’m anal about. It keeps everything local and under my control. If not, I’d have kept looking for something else.&lt;br&gt;&#10;What it (Pagefind) does, is parse the site, Hugo builds for me, and create a search index along with some more goodies (an api for search as well as UI components) in a bundle. The rendered html and the bundle together are now the artifact that my site is made up of.&lt;/p&gt;&#10;&#10;&lt;h2 class="relative group"&gt;The Plan&#10; &lt;div id="the-plan" class="anchor"&gt;&lt;/div&gt;&#10; &#10; &lt;span&#10; class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;&#10; &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#the-plan" aria-label="Anchor"&gt;#&lt;/a&gt;&#10; &lt;/span&gt;&#10; &#10;&lt;/h2&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;Get Pagefind and install it into a tools subdirectory in my blog’s directory, so I always have it handy (and the Forgejo action can get its grubby paws on it when it wants to run the publishing workflow)&lt;/li&gt;&#10;&lt;li&gt;Create an entry in my menu, so I can go clicky to a search page.&lt;/li&gt;&#10;&lt;li&gt;Create said search page.&lt;/li&gt;&#10;&lt;li&gt;Make search work.&lt;/li&gt;&#10;&lt;li&gt;Make the page resemble the rest of the blog as much as possible.&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&#10;&lt;h2 class="relative group"&gt;Installing it and wiring it all up&#10; &lt;div id="installing-it-and-wiring-it-all-up" class="anchor"&gt;&lt;/div&gt;&#10; &#10; &lt;span&#10; class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;&#10; &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#installing-it-and-wiring-it-all-up" aria-label="Anchor"&gt;#&lt;/a&gt;&#10; &lt;/span&gt;&#10; &#10;&lt;/h2&gt;&#10;&#10;&lt;h3 class="relative group"&gt;1. Installation&#10; &lt;div id="1-installation" class="anchor"&gt;&lt;/div&gt;&#10; &#10; &lt;span&#10; class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;&#10; &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#1-installation" aria-label="Anchor"&gt;#&lt;/a&gt;&#10; &lt;/span&gt;&#10; &#10;&lt;/h3&gt;&#10;&lt;p&gt;This is the easy part. Pagefind is a single binary, which I shoved into the &lt;code&gt;tools&lt;/code&gt; subdirectory.&lt;/p&gt;&#10;&#10;&lt;h3 class="relative group"&gt;2. Creating an entry for search in the navigation menu&#10; &lt;div id="2-creating-an-entry-for-search-in-the-navigation-menu" class="anchor"&gt;&lt;/div&gt;&#10; &#10; &lt;span&#10; class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;&#10; &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#2-creating-an-entry-for-search-in-the-navigation-menu" aria-label="Anchor"&gt;#&lt;/a&gt;&#10; &lt;/span&gt;&#10; &#10;&lt;/h3&gt;&#10;&lt;p&gt;I edited my Hugo config (mine is called &lt;code&gt;hugo.yaml&lt;/code&gt;), and added &lt;code&gt;search&lt;/code&gt; as a menu item.&lt;br&gt;&#10;More shifted downwards, as did its weight.&lt;/p&gt;&#10;&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-yaml" data-lang="yaml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;menus&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;main&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c"&gt;# elided config&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="nt"&gt;identifier&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;search&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;search&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;url&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;/search&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;weight&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;60&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="nt"&gt;identifier&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;more&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;more …&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;url&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;/more/&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;weight&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;70&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#10;&#10;&lt;h3 class="relative group"&gt;3. Creating the search page.&#10; &lt;div id="3-creating-the-search-page" class="anchor"&gt;&lt;/div&gt;&#10; &#10; &lt;span&#10; class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;&#10; &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#3-creating-the-search-page" aria-label="Anchor"&gt;#&lt;/a&gt;&#10; &lt;/span&gt;&#10; &#10;&lt;/h3&gt;&#10;&lt;p&gt;This was a two step process.&lt;/p&gt;&#10;&#10;&lt;h4 class="relative group"&gt;a. I needed a placeholder page that I could render some layout (a template) into.&#10; &lt;div id="a-i-needed-a-placeholder-page-that-i-could-render-some-layout-a-template-into" class="anchor"&gt;&lt;/div&gt;&#10; &#10; &lt;span&#10; class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;&#10; &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#a-i-needed-a-placeholder-page-that-i-could-render-some-layout-a-template-into" aria-label="Anchor"&gt;#&lt;/a&gt;&#10; &lt;/span&gt;&#10; &#10;&lt;/h4&gt;&#10;&lt;p&gt;This was &lt;code&gt;search.md&lt;/code&gt; which lives in my &lt;code&gt;content&lt;/code&gt; directory.&#10;This is all it contains …&lt;/p&gt;&#10;&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;&#10;&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1&#10;&lt;/span&gt;&lt;span class="lnt"&gt;2&#10;&lt;/span&gt;&lt;span class="lnt"&gt;3&#10;&lt;/span&gt;&lt;span class="lnt"&gt;4&#10;&lt;/span&gt;&lt;span class="lnt"&gt;5&#10;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#10;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-yaml" data-lang="yaml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nn"&gt;---&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;title&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;Search&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;layout&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;search&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;url&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;/search/&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nn"&gt;---&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&lt;/div&gt;&#10;&lt;p&gt;See the key that says &lt;code&gt;layout&lt;/code&gt; on line 3? This is looking for a layout called &lt;code&gt;search&lt;/code&gt; which is what we now create …&lt;/p&gt;&#10;&#10;&lt;h4 class="relative group"&gt;b. Creating the search layout.&#10; &lt;div id="b-creating-the-search-layout" class="anchor"&gt;&lt;/div&gt;&#10; &#10; &lt;span&#10; class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;&#10; &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#b-creating-the-search-layout" aria-label="Anchor"&gt;#&lt;/a&gt;&#10; &lt;/span&gt;&#10; &#10;&lt;/h4&gt;&#10;&lt;p&gt;Papermod already ships with a layout called &lt;code&gt;search&lt;/code&gt;. Which I did not want, because it is meant for use with another local search engine called &lt;a href="https://lunrjs.com/" target="_blank" rel="noreferrer"&gt;lunr.js&lt;/a&gt;.&lt;br&gt;&#10;Hugo can override whatever file your theme provides, by letting you create your own versions of said file in the &lt;code&gt;layouts&lt;/code&gt; directory. Hugo will then look at &lt;em&gt;that&lt;/em&gt; instead of the theme’s file.&lt;br&gt;&#10;Over the years I’ve gotten dangerous enough by using &lt;a href="https://discourse.gohugo.io/t/how-to-override-a-themes-partials/47227" target="_blank" rel="noreferrer"&gt;Hugo’s lovely channel for discourse&lt;/a&gt;. Between that, and &lt;a href="https://gohugo.io/documentation/" target="_blank" rel="noreferrer"&gt;Hugo’s documentation&lt;/a&gt; as well as &lt;a href="https://pagefind.app/" target="_blank" rel="noreferrer"&gt;Pagefind’s own help page&lt;/a&gt;, I rustled up a layout file called &lt;code&gt;search.html&lt;/code&gt; which lives in my &lt;code&gt;layouts/_default&lt;/code&gt; directory. This is what it contains …&lt;/p&gt;&#10;&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-go-html-template" data-lang="go-html-template"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cp"&gt;{{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;define&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;&amp;#34;main&amp;#34;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="cp"&gt;}}&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;link&lt;/span&gt; &lt;span class="na"&gt;rel&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;stylesheet&amp;#34;&lt;/span&gt; &lt;span class="na"&gt;href&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;/pagefind/pagefind-component-ui.css&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;script&lt;/span&gt; &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;module&amp;#34;&lt;/span&gt; &lt;span class="na"&gt;src&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;/pagefind/pagefind-component-ui.js&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;script&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;div&lt;/span&gt; &lt;span class="na"&gt;class&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;main&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;article&lt;/span&gt; &lt;span class="na"&gt;class&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;post-single&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;header&lt;/span&gt; &lt;span class="na"&gt;class&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;post-header&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;h1&lt;/span&gt; &lt;span class="na"&gt;class&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;post-title&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;&lt;span class="cp"&gt;{{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="na"&gt;.Title&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="cp"&gt;}}&lt;/span&gt;&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;h1&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;header&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;div&lt;/span&gt; &lt;span class="na"&gt;class&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;post-content search-content&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;pagefind-searchbox&lt;/span&gt; &lt;span class="na"&gt;id&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;searchbox&amp;#34;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#9;&#9;&#9; &lt;span class="na"&gt;autofocus&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;true&amp;#34;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#9;&#9;&#9; &lt;span class="na"&gt;shortcut&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;/&amp;#34;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#9;&#9;&#9; &lt;span class="na"&gt;placeholder&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;#39;&lt;/span&gt;&lt;span class="cp"&gt;{{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;i18n&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;&amp;#34;search_placeholder&amp;#34;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="cp"&gt;}}&lt;/span&gt;&lt;span class="s"&gt;&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;pagefind-searchbox&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;div&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;article&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;div&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;script&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;// we’re waiting for the pagefind-searchbox component to be registered &#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nx"&gt;customElements&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;whenDefined&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;pagefind-searchbox&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nx"&gt;then&lt;/span&gt;&lt;span class="p"&gt;(()&lt;/span&gt; &lt;span class="p"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="kr"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;box&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;querySelector&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;pagefind-searchbox&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;// shadowRoot input, or a delegatesFocus component may expose it differently&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="kr"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;tryFocus&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="kr"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;input&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nx"&gt;box&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;shadowRoot&lt;/span&gt;&lt;span class="o"&gt;?&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;querySelector&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;input&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;??&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nx"&gt;box&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;querySelector&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;input&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#9;&lt;span class="c1"&gt;// search for input boxes in two different ways above&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#9;&lt;span class="c1"&gt;// and if it finds one focus it below&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;input&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nx"&gt;input&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;focus&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;// component rendered but input not yet in DOM — wait one more frame&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#9; &lt;span class="c1"&gt;// wait for the shado&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nx"&gt;requestAnimationFrame&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;tryFocus&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;};&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;// try one more time&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nx"&gt;requestAnimationFrame&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;tryFocus&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;});&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;script&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cp"&gt;{{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;end&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="cp"&gt;}}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#10;&lt;p&gt;This creates the box on the search page, ready to take input and show results.&lt;/p&gt;&#10;&lt;p&gt;&lt;em&gt;&lt;strong&gt;Update (2026-06-24):&lt;/strong&gt;&lt;/em&gt; The eagle eyed amongst you, have figured out this code has changed between yesterday and today. I used Pagefind’s documentation to simplify what I had yesterday even more and then got one of the llms to write a script that focuses the input box when the page loads, so that we can just start typing in whatever we need to search.&lt;/p&gt;&#10;&#10;&lt;h3 class="relative group"&gt;4. Make the page resemble the rest of the blog as much as possible.&#10; &lt;div id="4-make-the-page-resemble-the-rest-of-the-blog-as-much-as-possible" class="anchor"&gt;&lt;/div&gt;&#10; &#10; &lt;span&#10; class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;&#10; &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#4-make-the-page-resemble-the-rest-of-the-blog-as-much-as-possible" aria-label="Anchor"&gt;#&lt;/a&gt;&#10; &lt;/span&gt;&#10; &#10;&lt;/h3&gt;&#10;&lt;p&gt;Doing things a bit out of order and finishing up with the page first.&lt;br&gt;&#10;Leaned on Pagefind’s docs as well as Chatgpt, Claude and Gemini for this part to create a CSS file, that looks pretty native to my blog. I’ve called it &lt;code&gt;include-pagefind.css&lt;/code&gt; and it lives in the &lt;code&gt;assets/css/extended&lt;/code&gt; subdirectory.&lt;/p&gt;&#10;&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;&#10;&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt; 1&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 2&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 3&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 4&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 5&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 6&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 7&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 8&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 9&#10;&lt;/span&gt;&lt;span class="lnt"&gt;10&#10;&lt;/span&gt;&lt;span class="lnt"&gt;11&#10;&lt;/span&gt;&lt;span class="lnt"&gt;12&#10;&lt;/span&gt;&lt;span class="lnt"&gt;13&#10;&lt;/span&gt;&lt;span class="lnt"&gt;14&#10;&lt;/span&gt;&lt;span class="lnt"&gt;15&#10;&lt;/span&gt;&lt;span class="lnt"&gt;16&#10;&lt;/span&gt;&lt;span class="lnt"&gt;17&#10;&lt;/span&gt;&lt;span class="lnt"&gt;18&#10;&lt;/span&gt;&lt;span class="lnt"&gt;19&#10;&lt;/span&gt;&lt;span class="lnt"&gt;20&#10;&lt;/span&gt;&lt;span class="lnt"&gt;21&#10;&lt;/span&gt;&lt;span class="lnt"&gt;22&#10;&lt;/span&gt;&lt;span class="lnt"&gt;23&#10;&lt;/span&gt;&lt;span class="lnt"&gt;24&#10;&lt;/span&gt;&lt;span class="lnt"&gt;25&#10;&lt;/span&gt;&lt;span class="lnt"&gt;26&#10;&lt;/span&gt;&lt;span class="lnt"&gt;27&#10;&lt;/span&gt;&lt;span class="lnt"&gt;28&#10;&lt;/span&gt;&lt;span class="lnt"&gt;29&#10;&lt;/span&gt;&lt;span class="lnt"&gt;30&#10;&lt;/span&gt;&lt;span class="lnt"&gt;31&#10;&lt;/span&gt;&lt;span class="lnt"&gt;32&#10;&lt;/span&gt;&lt;span class="lnt"&gt;33&#10;&lt;/span&gt;&lt;span class="lnt"&gt;34&#10;&lt;/span&gt;&lt;span class="lnt"&gt;35&#10;&lt;/span&gt;&lt;span class="lnt"&gt;36&#10;&lt;/span&gt;&lt;span class="lnt"&gt;37&#10;&lt;/span&gt;&lt;span class="lnt"&gt;38&#10;&lt;/span&gt;&lt;span class="lnt"&gt;39&#10;&lt;/span&gt;&lt;span class="lnt"&gt;40&#10;&lt;/span&gt;&lt;span class="lnt"&gt;41&#10;&lt;/span&gt;&lt;span class="lnt"&gt;42&#10;&lt;/span&gt;&lt;span class="lnt"&gt;43&#10;&lt;/span&gt;&lt;span class="lnt"&gt;44&#10;&lt;/span&gt;&lt;span class="lnt"&gt;45&#10;&lt;/span&gt;&lt;span class="lnt"&gt;46&#10;&lt;/span&gt;&lt;span class="lnt"&gt;47&#10;&lt;/span&gt;&lt;span class="lnt"&gt;48&#10;&lt;/span&gt;&lt;span class="lnt"&gt;49&#10;&lt;/span&gt;&lt;span class="lnt"&gt;50&#10;&lt;/span&gt;&lt;span class="lnt"&gt;51&#10;&lt;/span&gt;&lt;span class="lnt"&gt;52&#10;&lt;/span&gt;&lt;span class="lnt"&gt;53&#10;&lt;/span&gt;&lt;span class="lnt"&gt;54&#10;&lt;/span&gt;&lt;span class="lnt"&gt;55&#10;&lt;/span&gt;&lt;span class="lnt"&gt;56&#10;&lt;/span&gt;&lt;span class="lnt"&gt;57&#10;&lt;/span&gt;&lt;span class="lnt"&gt;58&#10;&lt;/span&gt;&lt;span class="lnt"&gt;59&#10;&lt;/span&gt;&lt;span class="lnt"&gt;60&#10;&lt;/span&gt;&lt;span class="lnt"&gt;61&#10;&lt;/span&gt;&lt;span class="lnt"&gt;62&#10;&lt;/span&gt;&lt;span class="lnt"&gt;63&#10;&lt;/span&gt;&lt;span class="lnt"&gt;64&#10;&lt;/span&gt;&lt;span class="lnt"&gt;65&#10;&lt;/span&gt;&lt;span class="lnt"&gt;66&#10;&lt;/span&gt;&lt;span class="lnt"&gt;67&#10;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#10;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-css" data-lang="css"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nd"&gt;root&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#9;&lt;span class="c"&gt;/* you don’t really need to use `pf-font`, &#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;&#9;if you don’t have a custom font.&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;&#9;for some reason, it wouldn’t render the font I specified here, &#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;&#9;so I forced it with `!important` */&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;--pf-font&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;your-font-name-here&lt;/span&gt; &lt;span class="cp"&gt;!important&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;--pf-text&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nf"&gt;var&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="n"&gt;primary&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;--pf-text-secondary&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nf"&gt;var&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="n"&gt;secondary&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;--pf-text-muted&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nf"&gt;var&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="n"&gt;secondary&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;--pf-background&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nf"&gt;var&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="n"&gt;theme&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;--pf-border&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nf"&gt;var&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="n"&gt;border&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;--pf-border-focus&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nf"&gt;var&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="n"&gt;primary&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;--pf-hover&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nf"&gt;var&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="n"&gt;tertiary&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;--pf-mark&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nf"&gt;var&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="n"&gt;primary&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;--pf-border-radius&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;8&lt;/span&gt;&lt;span class="kt"&gt;px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;--pf-input-height&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;48&lt;/span&gt;&lt;span class="kt"&gt;px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;--pf-input-font-size&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="kt"&gt;rem&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;--pf-result-title-font-size&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="kt"&gt;rem&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;--pf-result-excerpt-font-size&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;0.90&lt;/span&gt;&lt;span class="kt"&gt;rem&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;--pf-shadow-sm&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;none&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;--pf-shadow-md&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;none&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;--pf-shadow-lg&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;none&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;search-content&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;margin-top&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="kt"&gt;rem&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;pagefind-input&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;display&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;block&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;margin-bottom&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;1.5&lt;/span&gt;&lt;span class="kt"&gt;rem&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;pagefind-summary&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;display&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;block&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;margin-bottom&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="kt"&gt;rem&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;pagefind-results&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;display&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;block&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;margin-top&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="kt"&gt;rem&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;pagefind-results&lt;/span&gt; &lt;span class="nt"&gt;a&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;text-decoration&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;none&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;pagefind-results&lt;/span&gt; &lt;span class="nt"&gt;article&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;border&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="kt"&gt;px&lt;/span&gt; &lt;span class="kc"&gt;solid&lt;/span&gt; &lt;span class="nf"&gt;var&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="n"&gt;border&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;border-radius&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;8&lt;/span&gt;&lt;span class="kt"&gt;px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;padding&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="kt"&gt;rem&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;background&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nf"&gt;var&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="n"&gt;entry&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;pagefind-results&lt;/span&gt; &lt;span class="nt"&gt;article&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nd"&gt;hover&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;background&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nf"&gt;var&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="n"&gt;tertiary&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&lt;/div&gt;&#10;&#10;&lt;h3 class="relative group"&gt;5. Make Search Work.&#10; &lt;div id="5-make-search-work" class="anchor"&gt;&lt;/div&gt;&#10; &#10; &lt;span&#10; class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;&#10; &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#5-make-search-work" aria-label="Anchor"&gt;#&lt;/a&gt;&#10; &lt;/span&gt;&#10; &#10;&lt;/h3&gt;&#10;&lt;p&gt;This is a 3 step process&lt;/p&gt;&#10;&#10;&lt;h4 class="relative group"&gt;a. Build the blog.&#10; &lt;div id="a-build-the-blog" class="anchor"&gt;&lt;/div&gt;&#10; &#10; &lt;span&#10; class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;&#10; &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#a-build-the-blog" aria-label="Anchor"&gt;#&lt;/a&gt;&#10; &lt;/span&gt;&#10; &#10;&lt;/h4&gt;&#10;&lt;p&gt;Easy peasy. &lt;code&gt;hugo build&lt;/code&gt; and we have our blog rendered in the &lt;code&gt;public&lt;/code&gt; subdirectory.&lt;/p&gt;&#10;&#10;&lt;h4 class="relative group"&gt;b. Get Pagefind to create its index in the build directory.&#10; &lt;div id="b-get-pagefind-to-create-its-index-in-the-build-directory" class="anchor"&gt;&lt;/div&gt;&#10; &#10; &lt;span&#10; class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;&#10; &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#b-get-pagefind-to-create-its-index-in-the-build-directory" aria-label="Anchor"&gt;#&lt;/a&gt;&#10; &lt;/span&gt;&#10; &#10;&lt;/h4&gt;&#10;&lt;p&gt;This is easy as well.&lt;/p&gt;&#10;&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;./tools/pagefind --site public&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#10;&lt;p&gt;and Pagefind creates a &lt;code&gt;pagefind&lt;/code&gt; subdirectory in our &lt;code&gt;public&lt;/code&gt; directory where it creates its search index after reading all the html.&lt;br&gt;&#10;All I need to do now, is just …&lt;/p&gt;&#10;&#10;&lt;h4 class="relative group"&gt;c. Publish!&#10; &lt;div id="c-publish" class="anchor"&gt;&lt;/div&gt;&#10; &#10; &lt;span&#10; class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;&#10; &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#c-publish" aria-label="Anchor"&gt;#&lt;/a&gt;&#10; &lt;/span&gt;&#10; &#10;&lt;/h4&gt;&#10;&lt;p&gt;Ok, I lied a teensy bit. I don’t have to do &lt;em&gt;steps a.&lt;/em&gt; and &lt;em&gt;b.&lt;/em&gt; because they are part of &lt;em&gt;step c.&lt;/em&gt;&lt;br&gt;&#10;The Forgejo action checks out my committed files, pulls in Hugo from a private package repo, builds the site, then runs Pagefind to generate the index&lt;sup id="fnref:2"&gt;&lt;a href="#fn:2" class="footnote-ref" role="doc-noteref"&gt;2&lt;/a&gt;&lt;/sup&gt; and finally uses rysnc to sync it with the VM. Here’s the relevant section of the action.&lt;/p&gt;&#10;&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-yaml" data-lang="yaml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;# lots of stuff elided …&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;jobs&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;build-and-deploy&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;runs-on&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;my-big-box&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;env&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;HUGO_VERSION&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;${{ vars.HUGO_VERSION }}&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;steps&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c"&gt;# lots of snipped stuff …&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="nt"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;Checkout the website repo&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;uses&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;actions/checkout@v4&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;with&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;submodules&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;recursive&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;fetch-depth&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;1&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="nt"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;Build website with Hugo&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;env&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;HUGO_ENVIRONMENT&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;production&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;run&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="sd"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="sd"&gt; hugo \&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="sd"&gt; --gc \&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="sd"&gt; --minify&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="nt"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;Build the Pagefind search index&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;run&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="sd"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="sd"&gt; tools/pagefind \&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="sd"&gt; --site public&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#10;&lt;br&gt;&#10;&#10;&lt;p&gt;I thought the indexing would take a lot of time and was hesitant to use it as part of a regularly run Forgejo action workflow, but several runs show that the index generation only increases the time by at a couple of seconds at most. This is amazing!&lt;/p&gt;&#10;&lt;p&gt;Now I can search my own words, on my own blog, to my hearts content!&lt;/p&gt;&#10;&lt;p&gt;&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;&#10;&#10;Feedback on this post?&lt;br&gt;&#10;Mail me at &lt;a href="mailto:feebdback@janusworx.com?subject=%22Feedback on post: You Can Now Search this Blog&#10;%22" &gt;feedback at this domain&lt;/a&gt;.&#10;&lt;br&gt;&#10;&#10;&lt;br&gt;&#10;&#10;P.S. Subscribe to my &lt;a href="https://janusworx.com/subscribe/" target="_blank" rel="noreferrer"&gt;mailing list!&lt;/a&gt;&lt;/p&gt;&#10;&lt;div class="footnotes" role="doc-endnotes"&gt;&#10;&lt;hr&gt;&#10;&lt;ol&gt;&#10;&lt;li id="fn:1"&gt;&#10;&lt;p&gt;as on 2026-06-23&amp;#160;&lt;a href="#fnref:1" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li id="fn:2"&gt;&#10;&lt;p&gt;this is why i chucked it into the tools subdirectory and committed it.&amp;#160;&lt;a href="#fnref:2" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;/div&gt;&#10;</description></item><item><title>Books I Read in May, 2026</title><link>https://janusworx.com/reading/books-i-read-in-may-2026/</link><pubDate>Tue, 09 Jun 2026 15:17:30 +0530</pubDate><author>feedback@janusworx.com (Mario Jason Braganza)</author><guid>https://janusworx.com/reading/books-i-read-in-may-2026/</guid><description>&lt;br&gt;&#10;&#10;&#10;&lt;figure class="mjb-img-center"&gt;&#10; &lt;img class="my-0 rounded-md" src="https://janusworx.com/images/2026/what-i-read-in-may-2026-simon-bolivar.jpg" alt="" /&gt;&#10; &#10; &lt;figcaption&gt;courtesy, Encyclopædia Britannica&lt;/figcaption&gt;&#10; &lt;/figure&gt;&#10;&lt;p&gt;&lt;br&gt;&#10;&#10;Didn’t read as much as I wanted to. Too much, as they say, of life happened! Been reading in the small snatches of time that I get.&lt;/p&gt;&#10;&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;&#10;&#10;&#10;&lt;h3 class="relative group"&gt;&lt;a href="https://podcasts.apple.com/gb/podcast/sherlock-co/id1710121792" target="_blank" rel="noreferrer"&gt;Sherlock &amp;amp; Co. Podcast&lt;/a&gt;&#10; &lt;div id="sherlock--co-podcast" class="anchor"&gt;&lt;/div&gt;&#10; &#10; &lt;span&#10; class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;&#10; &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#sherlock--co-podcast" aria-label="Anchor"&gt;#&lt;/a&gt;&#10; &lt;/span&gt;&#10; &#10;&lt;/h3&gt;&#10;&lt;p&gt;&lt;strong&gt;The Three Garridebs, Season 43&lt;/strong&gt;&lt;br&gt;&#10;Mariana (Mrs. Hudson) Ametxazurra (the amazing &lt;a href="https://www.martadasilva.com/" target="_blank" rel="noreferrer"&gt;Marta da Silva&lt;/a&gt;), helms this one.&lt;br&gt;&#10;Because John is, uhm, out of the picture somehow.&lt;br&gt;&#10;This one is not filler (even though I love their fluffy episodes very much, as well) and is a bit dark.&lt;br&gt;&#10;Addictive listening as usual.&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;The Empty House, Season 44&lt;/strong&gt;&lt;br&gt;&#10;The House across No. 22B Baker Street is empty!&lt;br&gt;&#10;Is the spider still around?&lt;br&gt;&#10;Once again Mariana untangles the pieces. Also Sherlock creates a pillow fort!&lt;/p&gt;&#10;&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;&#10;&#10;&#10;&lt;h3 class="relative group"&gt;&lt;a href="https://www.acquired.fm/episodes/vanguard" target="_blank" rel="noreferrer"&gt;Vanguard&lt;/a&gt;, Spring 2026, Episode 3, Acquired Podcast&#10; &lt;div id="vanguard-spring-2026-episode-3-acquired-podcast" class="anchor"&gt;&lt;/div&gt;&#10; &#10; &lt;span&#10; class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;&#10; &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#vanguard-spring-2026-episode-3-acquired-podcast" aria-label="Anchor"&gt;#&lt;/a&gt;&#10; &lt;/span&gt;&#10; &#10;&lt;/h3&gt;&#10;&lt;p&gt;St. Jack, needs no introduction to you folks if you invest in the markets (specially if you are a die hard Boglehead).&lt;br&gt;&#10;Jack Bogle took a very blue collar, common sense, attitude to investing.&lt;br&gt;&#10;And then, he brought it to the masses.&lt;br&gt;&#10;And &lt;em&gt;then,&lt;/em&gt; he spent the rest of his life, preaching it.&lt;br&gt;&#10;If you think index funds are the bees knees, you have Jack to thank!&lt;br&gt;&#10;The podcast goes through his life and reveals just &lt;em&gt;why&lt;/em&gt; Jack had to do things, the way he did them.&lt;/p&gt;&#10;&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;&#10;&#10;&#10;&lt;h3 class="relative group"&gt;Smiley’s People, John le Carré&#10; &lt;div id="smileys-people-john-le-carré" class="anchor"&gt;&lt;/div&gt;&#10; &#10; &lt;span&#10; class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;&#10; &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#smileys-people-john-le-carr%c3%a9" aria-label="Anchor"&gt;#&lt;/a&gt;&#10; &lt;/span&gt;&#10; &#10;&lt;/h3&gt;&#10;&lt;p&gt;George spends &lt;em&gt;twenty years&lt;/em&gt; obsessing over a lighter and then when he actually gets it back, does not want it.&lt;br&gt;&#10;Well, that’s one way of spoiling the novel 😂&lt;br&gt;&#10;To me, it sort of put an end to one era of le Carré’s novels.&lt;br&gt;&#10;We end at another border crossing in Berlin and Smiley gets some form of closure.&lt;br&gt;&#10;If you enjoy bleak, nihilistic, yet well crafted novels, le Carré’s your man.&lt;/p&gt;&#10;&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;&#10;&#10;&#10;&lt;h3 class="relative group"&gt;&lt;a href="https://podcasts.apple.com/in/podcast/empire/id1639561921" target="_blank" rel="noreferrer"&gt;Empire Podcast&lt;/a&gt;: Simon Bolivar: the Liberator, Episodes 354-357&#10; &lt;div id="empire-podcast-simon-bolivar-the-liberator-episodes-354-357" class="anchor"&gt;&lt;/div&gt;&#10; &#10; &lt;span&#10; class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;&#10; &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#empire-podcast-simon-bolivar-the-liberator-episodes-354-357" aria-label="Anchor"&gt;#&lt;/a&gt;&#10; &lt;/span&gt;&#10; &#10;&lt;/h3&gt;&#10;&lt;blockquote&gt;&lt;p&gt;“Freedom is often the first casualty of war.”&lt;br&gt;&#10;— Gabriel García Márquez, The General in His Labyrinth&lt;/p&gt;&#10;&lt;/blockquote&gt;&lt;p&gt;A rapid run, through the complex life of the man who led &lt;em&gt;&lt;strong&gt;six&lt;/strong&gt;&lt;/em&gt; countries to freedom! (ergo, El Libertador)&lt;br&gt;&#10;He wanted freedom, but mostly for his class, not for the underclass.&lt;br&gt;&#10;And yet to gain that freedom, he ranged so wide and rode thousands of miles on horseback, leading folks to call him Iron Ass!&lt;br&gt;&#10;He fought Spain and he fought the jungle and he fought tuberculosis.&lt;br&gt;&#10;He jailed and killed his own supporters out of paranoia.&lt;br&gt;&#10;He finally had to be stripped of power and yet remains one of South America’s biggest heroes.&lt;br&gt;&#10;Well worth a listen.&lt;/p&gt;&#10;&lt;p&gt;&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;&#10;&#10;Feedback on this post?&lt;br&gt;&#10;Mail me at &lt;a href="mailto:feebdback@janusworx.com?subject=%22Feedback on post: Books I Read in May, 2026&#10;%22" &gt;feedback at this domain&lt;/a&gt;.&#10;&lt;br&gt;&#10;&#10;&lt;br&gt;&#10;&#10;P.S. Subscribe to my &lt;a href="https://janusworx.com/subscribe/" target="_blank" rel="noreferrer"&gt;mailing list!&lt;/a&gt;&lt;/p&gt;&#10;&lt;hr&gt;&#10;</description></item><item><title>Matthias Endler Built His Own Newsletter Setup</title><link>https://janusworx.com/work/matthias-endler-built-his-own-newsletter-setup/</link><pubDate>Fri, 22 May 2026 16:13:29 +0530</pubDate><author>feedback@janusworx.com (Mario Jason Braganza)</author><guid>https://janusworx.com/work/matthias-endler-built-his-own-newsletter-setup/</guid><description>&lt;div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="info"&gt;&#10; &lt;div class="flex items-center gap-2 font-semibold text-inherit"&gt;&#10; &lt;div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"&gt;&lt;span class="relative block icon"&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"&gt;&lt;path fill="currentColor" d="M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 128c17.67 0 32 14.33 32 32c0 17.67-14.33 32-32 32S224 177.7 224 160C224 142.3 238.3 128 256 128zM296 384h-80C202.8 384 192 373.3 192 360s10.75-24 24-24h16v-64H224c-13.25 0-24-10.75-24-24S210.8 224 224 224h32c13.25 0 24 10.75 24 24v88h16c13.25 0 24 10.75 24 24S309.3 384 296 384z"/&gt;&lt;/svg&gt;&#10;&lt;/span&gt;&lt;/div&gt;&#10; &lt;div class="grow"&gt;&#10; Intended Audience&#10; &lt;/div&gt;&#10; &lt;/div&gt;&lt;div class="admonition-content mt-3 text-base leading-relaxed text-inherit"&gt;&lt;p&gt;Mostly me (confirmation bias. slight gloating 😂)&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;br&gt;&#10;&#10;&#10;&lt;figure&gt;&#10; &lt;img class="my-0 rounded-md" src="https://janusworx.com/images/2026/matthias-endler-newsletter-setup-rust-in-production.jpg" alt="Rust in Production podcast logo" /&gt;&#10; &#10; &#10; &lt;/figure&gt;&#10;&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;&#10;&#10;&lt;p&gt;I’m writing this post today, because I monkeyed with my &lt;a href="https://janusworx.com/work/found-mjml/" &gt;newsletter template&lt;/a&gt;. &lt;em&gt;&lt;strong&gt;Again!&lt;/strong&gt;&lt;/em&gt;&lt;br&gt;&#10;So this post is just to make sure there are no more hiccoughs :)&lt;/p&gt;&#10;&lt;p&gt;Matthias Endler, he of the fantastic &lt;a href="https://corrode.dev/podcast/s06e04-rust4linux/" target="_blank" rel="noreferrer"&gt;Rust in Production podcast&lt;/a&gt; (and the Corrode rust consultancy) just published &lt;a href="https://endler.dev/2026/newsletter-setup/" target="_blank" rel="noreferrer"&gt;a post on his newsletter setup&lt;/a&gt; and how he went about building it.&lt;/p&gt;&#10;&lt;p&gt;His reasons (and his story) are really similar to mine.&lt;sup id="fnref:1"&gt;&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref"&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;br&gt;&#10;Tinyletter =&amp;gt; Mailchimp =&amp;gt;&lt;br&gt;&#10;Wanting to have a semblance of control after being burnt =&amp;gt; Self hosting!&lt;/p&gt;&#10;&lt;p&gt;He settled on &lt;a href="https://www.useplunk.com/" target="_blank" rel="noreferrer"&gt;Plunk&lt;/a&gt;, while I use my &lt;a href="https://sendy.co" target="_blank" rel="noreferrer"&gt;Sendy&lt;/a&gt; + Amazon SES combo. (they look pretty similar to me)&lt;br&gt;&#10;Newsletters live in a git controlled repo. Same.&lt;br&gt;&#10;Write in my favourite editor. Ditto.&lt;br&gt;&#10;One markdown file per letter. Same pinch!&lt;/p&gt;&#10;&lt;p&gt;The only difference, is his workflow is controlled by a fancy cli, while I depend on ye old copy &amp;amp; paste.&lt;/p&gt;&#10;&lt;p&gt;Having someone with a visible presence do this, hopefully serves as an inspiration to others.&lt;br&gt;&#10;I just wish more of my nerd kinfolk do this!&lt;/p&gt;&#10;&lt;p&gt;&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;&#10;&#10;Feedback on this post?&lt;br&gt;&#10;Mail me at &lt;a href="mailto:feebdback@janusworx.com?subject=%22Feedback on post: Matthias Endler Built His Own Newsletter Setup&#10;%22" &gt;feedback at this domain&lt;/a&gt;.&#10;&lt;br&gt;&#10;&#10;&lt;br&gt;&#10;&#10;P.S. Subscribe to my &lt;a href="https://janusworx.com/subscribe/" target="_blank" rel="noreferrer"&gt;mailing list!&lt;/a&gt;&lt;/p&gt;&#10;&lt;div class="footnotes" role="doc-endnotes"&gt;&#10;&lt;hr&gt;&#10;&lt;ol&gt;&#10;&lt;li id="fn:1"&gt;&#10;&lt;p&gt;except for his audience ofcourse! Which is orders of magnitude larger than my dinky little circle of friends&amp;#160;&lt;a href="#fnref:1" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;/div&gt;&#10;</description></item><item><title>Change!</title><link>https://janusworx.com/personal/change-sara-bareilles/</link><pubDate>Fri, 22 May 2026 11:28:30 +0530</pubDate><author>feedback@janusworx.com (Mario Jason Braganza)</author><guid>https://janusworx.com/personal/change-sara-bareilles/</guid><description>&lt;br&gt;&#10;&#10;&#10;&lt;figure class="mjb-img-center"&gt;&#10; &lt;img class="my-0 rounded-md" src="https://janusworx.com/images/2026/change-sara-bareilles-DSCF2217.jpg" alt="Close up of cherry blossoms on a tree in Paris" /&gt;&#10; &#10; &#10; &lt;/figure&gt;&#10;&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;&#10;&#10;&lt;p&gt;&lt;em&gt;Distill a whole year down into a day&lt;/em&gt;&lt;br&gt;&#10;&lt;em&gt;Act like we all start over with a pristine slate&lt;/em&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;em&gt;To get yourself a new life you&amp;rsquo;ve got to give the other one away&lt;/em&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;em&gt;And I&amp;rsquo;m starting to believe, in the power of a name&lt;/em&gt;&lt;br&gt;&#10;&lt;em&gt;Cause it can&amp;rsquo;t be a mistake,&lt;/em&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;em&gt;if I just call it change!&lt;/em&gt;&lt;/p&gt;&#10;&lt;p&gt;— &lt;a href="https://www.youtube.com/watch?v=Gv972gdiu58" target="_blank" rel="noreferrer"&gt;Sara Bareilles, December&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;&#10;&#10;Feedback on this post?&lt;br&gt;&#10;Mail me at &lt;a href="mailto:feebdback@janusworx.com?subject=%22Feedback on post: Change!&#10;%22" &gt;feedback at this domain&lt;/a&gt;.&#10;&lt;br&gt;&#10;&#10;&lt;br&gt;&#10;&#10;P.S. Subscribe to my &lt;a href="https://janusworx.com/subscribe/" target="_blank" rel="noreferrer"&gt;mailing list!&lt;/a&gt;&lt;/p&gt;&#10;</description></item><item><title>Found MJML</title><link>https://janusworx.com/work/found-mjml/</link><pubDate>Thu, 21 May 2026 10:51:49 +0530</pubDate><author>feedback@janusworx.com (Mario Jason Braganza)</author><guid>https://janusworx.com/work/found-mjml/</guid><description>&lt;br&gt;&#10;&#10;&lt;div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="info"&gt;&#10; &lt;div class="flex items-center gap-2 font-semibold text-inherit"&gt;&#10; &lt;div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"&gt;&lt;span class="relative block icon"&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"&gt;&lt;path fill="currentColor" d="M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 128c17.67 0 32 14.33 32 32c0 17.67-14.33 32-32 32S224 177.7 224 160C224 142.3 238.3 128 256 128zM296 384h-80C202.8 384 192 373.3 192 360s10.75-24 24-24h16v-64H224c-13.25 0-24-10.75-24-24S210.8 224 224 224h32c13.25 0 24 10.75 24 24v88h16c13.25 0 24 10.75 24 24S309.3 384 296 384z"/&gt;&lt;/svg&gt;&#10;&lt;/span&gt;&lt;/div&gt;&#10; &lt;div class="grow"&gt;&#10; Intended Audience&#10; &lt;/div&gt;&#10; &lt;/div&gt;&lt;div class="admonition-content mt-3 text-base leading-relaxed text-inherit"&gt;&lt;p&gt;Mostly me.&lt;br&gt;&#10;Also hopefully, other folks struggling with, or looking for a way to create email newsletters.&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&#10;&lt;figure&gt;&#10; &lt;img class="my-0 rounded-md" src="https://janusworx.com/images/2026/mjml-logo.svg" alt="MJML SVG logo" /&gt;&#10; &#10; &#10; &lt;/figure&gt;&#10;&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;&#10;&#10;&lt;p&gt;I recently upgraded &lt;a href="https://sendy.co/" target="_blank" rel="noreferrer"&gt;Sendy&lt;/a&gt;, the software, I’m using to create and send my newsletters.&lt;br&gt;&#10;(I don’t need the new shiny, or the extra features, but also those folks have been pretty good as far as pricing and functionality go, and I want them to stick around for a long time.)&lt;/p&gt;&#10;&lt;p&gt;The new release, in addition to a refreshed interface, now features a block WYSIWYG editor. And my old template (based on the venerable &lt;a href="https://github.com/internations/antwort" target="_blank" rel="noreferrer"&gt;Antwort&lt;/a&gt;) that I used to compose my emails broke. What used to be a predictable way of writing emails, now turned into something filled with papercuts. Everything would look alright, but everything was ever so subtly out of place.&lt;/p&gt;&#10;&lt;p&gt;So I went looking for something that I could live with long term once again.&lt;br&gt;&#10;Since all of this is a personal hobby and I only use all of this to send mail to a handful of my friends, most of the paid options go right out of the window, because. And because I am a control freak, hosted options aren’t a thing for me either.&lt;/p&gt;&#10;&lt;p&gt;Enter &lt;a href="https://mjml.io/" target="_blank" rel="noreferrer"&gt;MJML&lt;/a&gt;.&lt;br&gt;&#10;From their website:&lt;/p&gt;&#10;&lt;blockquote&gt;&lt;p&gt;MJML was created in early 2015 by a team of Mailjet developers while they were working on Passport, Mailjet’s drag-and-drop interface for creating responsive emails. Having been knee deep in email for five years, the Mailjet team saw two things: a) email HTML is antiquated and not developer friendly b) a growing trend of email being viewed on mobile and tablet and the number of screens is only increasing. This means that finding a way to code responsive email easily and quickly is pretty important. The team started by creating a new markup language that would abstract the complexity of responsive HTML and automatically generate it. And that’s how MJML was born.&lt;/p&gt;&#10;&lt;p&gt;After learning so much from our users, we wanted to give back to the community by sharing this open-source framework to make responsive email easier and redefine the coding experience once and for all.&lt;/p&gt;&#10;&lt;/blockquote&gt;&lt;p&gt;It works in the same vein as &lt;a href="https://revealjs.com/" target="_blank" rel="noreferrer"&gt;revealjs&lt;/a&gt;.&lt;sup id="fnref:1"&gt;&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref"&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;br&gt;&#10;You install the tool and use their semantic markup to write a document.&lt;br&gt;&#10;The MJML cli tool, in this case, then renders it to email worthy HTML.&lt;br&gt;&#10;The &lt;a href="https://documentation.mjml.io/#mjml-guide" target="_blank" rel="noreferrer"&gt;markup&lt;/a&gt; is simple and well thought out. Writing it is a breeze.&lt;br&gt;&#10;I used Timo Reymann’s &lt;a href="https://plugins.jetbrains.com/plugin/16418-mjml-support" target="_blank" rel="noreferrer"&gt;MJML plugin&lt;/a&gt; for Jetbrains editors to help me write, which makes things even easier, since it let’s me preview my work live.&lt;/p&gt;&#10;&lt;p&gt;I took one of their pretty templates, &lt;a href="https://mjml.io/try-it-live/templates/recast" target="_blank" rel="noreferrer"&gt;Recast&lt;/a&gt; and then stripped it down to meet my needs and match it as closely as I could to my old customised Antwort template.&lt;/p&gt;&#10;&lt;p&gt;Now all I do, is write, copy the HTML into the sendy editor and send. Life is good!&lt;/p&gt;&#10;&lt;p&gt;&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;&#10;&#10;Feedback on this post?&lt;br&gt;&#10;Mail me at &lt;a href="mailto:feebdback@janusworx.com?subject=%22Feedback on post: Found MJML&#10;%22" &gt;feedback at this domain&lt;/a&gt;.&#10;&lt;br&gt;&#10;&#10;&lt;br&gt;&#10;&#10;P.S. Subscribe to my &lt;a href="https://janusworx.com/subscribe/" target="_blank" rel="noreferrer"&gt;mailing list!&lt;/a&gt;&lt;/p&gt;&#10;&lt;div class="footnotes" role="doc-endnotes"&gt;&#10;&lt;hr&gt;&#10;&lt;ol&gt;&#10;&lt;li id="fn:1"&gt;&#10;&lt;p&gt;Or does revealjs work in the same vein as mjml?&amp;#160;&lt;a href="#fnref:1" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;/div&gt;&#10;</description></item><item><title>Books I Read in April, 2026</title><link>https://janusworx.com/reading/books-i-read-in-april-2026/</link><pubDate>Sat, 16 May 2026 05:30:00 +0530</pubDate><author>feedback@janusworx.com (Mario Jason Braganza)</author><guid>https://janusworx.com/reading/books-i-read-in-april-2026/</guid><description>&lt;br&gt;&#10;&#10;&#10;&lt;figure class="mjb-img-center"&gt;&#10; &lt;img class="my-0 rounded-md" src="https://janusworx.com/images/2026/dolly-parton-songteller.jpg" alt="" /&gt;&#10; &#10; &#10; &lt;/figure&gt;&#10;&lt;br&gt;&#10;&#10;&lt;p&gt;April was as busy as March, with hardly any time, between returning from Kubecon, catching up with everything and then once again getting ready to visit a client in early May. Did get quite a bit reading done though.&lt;br&gt;&#10;As you can see above, I was enchanted by the magic of Dolly Parton all this month!&lt;/p&gt;&#10;&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;&#10;&#10;&#10;&lt;h3 class="relative group"&gt;&lt;a href="https://www.thedeeplife.com/listen/" target="_blank" rel="noreferrer"&gt;Deep Questions&lt;/a&gt;, Cal Newport, Episodes 391-400&#10; &lt;div id="deep-questions-cal-newport-episodes-391-400" class="anchor"&gt;&lt;/div&gt;&#10; &#10; &lt;span&#10; class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;&#10; &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#deep-questions-cal-newport-episodes-391-400" aria-label="Anchor"&gt;#&lt;/a&gt;&#10; &lt;/span&gt;&#10; &#10;&lt;/h3&gt;&#10;&lt;p&gt;I’m going to stop counting these episodes as books now.&lt;br&gt;&#10;Cal’s getting more prolific and repetitive.&lt;br&gt;&#10;Neither of which are bad things at all.&lt;br&gt;&#10;But this means that I now listen to him, like I listen to my old songs or Ziglar tapes.&lt;br&gt;&#10;Just so that I can hear their voices and remember their principles.&lt;br&gt;&#10;400 seems to be a lovely place to stop counting.&lt;br&gt;&#10;His advice and work on the intersection of life and craft, is invaluable to me, and you can be sure, I’ll be listening as long as he is sharing his thoughts.&lt;/p&gt;&#10;&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;&#10;&#10;&#10;&lt;h3 class="relative group"&gt;Lincoln the Unknown, Dale Carnegie&#10; &lt;div id="lincoln-the-unknown-dale-carnegie" class="anchor"&gt;&lt;/div&gt;&#10; &#10; &lt;span&#10; class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;&#10; &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#lincoln-the-unknown-dale-carnegie" aria-label="Anchor"&gt;#&lt;/a&gt;&#10; &lt;/span&gt;&#10; &#10;&lt;/h3&gt;&#10;&lt;p&gt;This is a book I read when I was a child and when I came across it in a flea market, I picked it up out of sheer delight and nostalgia.&lt;br&gt;&#10;It presents Lincoln as a moral guide with plenty of stories of his life, his family and his work. No critical or academic study here. It has quite a few facts and a great deal of hagiographic admiration as well.&lt;br&gt;&#10;I absolutely loved it!&lt;/p&gt;&#10;&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;&#10;&#10;&#10;&lt;h3 class="relative group"&gt;&lt;a href="https://podcasts.apple.com/in/podcast/empire/id1639561921" target="_blank" rel="noreferrer"&gt;Empire Podcast&lt;/a&gt;&#10; &lt;div id="empire-podcast" class="anchor"&gt;&lt;/div&gt;&#10; &#10; &lt;span&#10; class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;&#10; &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#empire-podcast" aria-label="Anchor"&gt;#&lt;/a&gt;&#10; &lt;/span&gt;&#10; &#10;&lt;/h3&gt;&#10;&lt;p&gt;&lt;strong&gt;Indian Uprising 1857, Episodes 322-329&lt;/strong&gt;&lt;br&gt;&#10;The First War of Independence, the Indian Uprising of 1857, the Great Sepoy Mutiny, it goes by so many names.&lt;br&gt;&#10;This series goes into quite a bit of depth on the events upto and during the war for independence and presents many, many points of view.&lt;br&gt;&#10;This was a wonderful listen.&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;The Bronze Age Apocalypse, Episodes 332-337&lt;/strong&gt;&lt;br&gt;&#10;A small series on a old civilisation extant in the Levant and its relationships with other places in the Mediterranean.&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;The Middle East: From the Arab Cold War to the Israeli Invasion of Lebanon, Episodes 346-353&lt;/strong&gt;&lt;br&gt;&#10;If you want to know all the context for what’s happening in Iran now, go listen to this series. Very insightful.&lt;/p&gt;&#10;&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;&#10;&#10;&#10;&lt;h3 class="relative group"&gt;The Beryl Coronet, The Stockbroker’s Clerk, The Six Napoleons, &lt;a href="https://podcasts.apple.com/gb/podcast/sherlock-co/id1710121792" target="_blank" rel="noreferrer"&gt;Sherlock &amp;amp; Co. Podcast&lt;/a&gt;, Season 40, 41 &amp;amp; 42&#10; &lt;div id="the-beryl-coronet-the-stockbrokers-clerk-the-six-napoleons-sherlock--co-podcast-season-40-41--42" class="anchor"&gt;&lt;/div&gt;&#10; &#10; &lt;span&#10; class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;&#10; &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#the-beryl-coronet-the-stockbrokers-clerk-the-six-napoleons-sherlock--co-podcast-season-40-41--42" aria-label="Anchor"&gt;#&lt;/a&gt;&#10; &lt;/span&gt;&#10; &#10;&lt;/h3&gt;&#10;&lt;p&gt;A series of tiny adventures stringing along a much larger arc. Who is the Spider? Is it Moriarty lurking in the shadows? It’s getting thrillier and thrillier!&lt;/p&gt;&#10;&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;&#10;&#10;&#10;&lt;h3 class="relative group"&gt;Literature Ideas, You Really Need to Know, John Sutherland&#10; &lt;div id="literature-ideas-you-really-need-to-know-john-sutherland" class="anchor"&gt;&lt;/div&gt;&#10; &#10; &lt;span&#10; class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;&#10; &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#literature-ideas-you-really-need-to-know-john-sutherland" aria-label="Anchor"&gt;#&lt;/a&gt;&#10; &lt;/span&gt;&#10; &#10;&lt;/h3&gt;&#10;&lt;p&gt;Lots of concepts very simply explained and thought through. Everything I found here, will help me be more introspective about all future (good) books I read. I learned quite a lot. Here’s a bit about classics …&lt;/p&gt;&#10;&lt;blockquote&gt;&lt;p&gt;&lt;em&gt;&lt;strong&gt;‘Classic’ – a debased term?&lt;/strong&gt;&lt;/em&gt; Eliot’s question (what is a classic?) remains tantalizing; and the abuses of the term he joked about are still everywhere. ‘Classic comedy’ is more likely to mean Carry On Up the Khyber than Aristophanes. Football matches, rock-and-roll and tea cakes are all given honorific ‘classic’ status (cigars are also labelled ‘Hamlet’ – but that, like nags called Dante, is something else).&lt;/p&gt;&#10;&lt;p&gt;Overused and abused as the term is, literature still needs it. Properly applied, the idea of ‘classic’ points towards something that we hold to be centrally important – although defining that something is tricky.&lt;/p&gt;&#10;&lt;p&gt;Eliot saw classics as fruit of the society in which they happened. ‘A classic,’ he told his Virgilian audience, ‘can only occur when a civilization is mature; when a language and a literature are mature. And it must be the work of a mature mind.’ He doubtless made this lofty statement in an auditorium where the blackout blinds were pulled down, as part of the protective measures against German bombers aiming to blast the assembled classicists to pieces. Whatever epithet one chose in 1944&lt;sup id="fnref:1"&gt;&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref"&gt;1&lt;/a&gt;&lt;/sup&gt; for the civilization that had produced Virgil (currently under the heel of Mussolini), ‘mature’ would not be it.&lt;/p&gt;&#10;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;p&gt;&lt;em&gt;&lt;strong&gt;The classic and empire:&lt;/strong&gt;&lt;/em&gt; [Frank] Kermode was sharper in his sociology than Eliot. It was not a civilization but an empire – with all the temporal (and, if necessary, brutal) cultural power imperialism implies – that supplied the foundation for the classic. If a language is, as linguists like to joke, a dialect with an army behind it, then classic literature is writing with an imperium behind it. This is easily enough tested with reference to the European Union, which currently has some 27 member countries.&#10;Which of those countries can be said to have classic literatures, as opposed to some impressive works of literature? The answer would be those which – before the twentieth-century winds of change blew – had great empires (Britain, France, Spain, Italy, Portugal, Germany, Holland, Austria, Belgium). Does Luxembourg have its classics? Or Moldova? Where are their Shakespeares, Racines or Cervantes?&lt;/p&gt;&#10;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;p&gt;In a brilliant critical move Kermode argues that it is the very pliability of the classic that is its essence. It ‘accommodates’ – makes itself at home – wherever and whenever it finds itself. It is the classic’s ability to be both antique, yet modern, its infinite – but never anarchic – plurality that defines it. A work like King Lear, Kermode argues, ‘subsists in change, by being patient of interpretation’. Every generation will read, or understand, King Lear differently insofar as every generation is different from its predecessors. No final version, or interpretation, of the play can be achieved. But every generation will find its own satisfactory interpretation. And the classic is tolerant of each and every different explanation of itself.&lt;/p&gt;&#10;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;p&gt;&lt;em&gt;&lt;strong&gt;The condensed idea&lt;/strong&gt;&lt;/em&gt;&lt;br&gt;&#10;The classic is the gold standard of literature – but all that glistens is not classic&lt;/p&gt;&#10;&lt;/blockquote&gt;&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;&#10;&#10;&#10;&lt;h3 class="relative group"&gt;Songteller: My Life in Lyrics, Dolly Parton&#10; &lt;div id="songteller-my-life-in-lyrics-dolly-parton" class="anchor"&gt;&lt;/div&gt;&#10; &#10; &lt;span&#10; class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;&#10; &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#songteller-my-life-in-lyrics-dolly-parton" aria-label="Anchor"&gt;#&lt;/a&gt;&#10; &lt;/span&gt;&#10; &#10;&lt;/h3&gt;&#10;&lt;p&gt;I listened to this on audio first, because I wanted to hear Dolly sing, just as I wanted to hear Sara Bareilles tell of her songs in her book and Judi Dench speak of her perfomances in hers. And then I went and bought it as an ebook as well, because I wanted to see all the pictures as well :)&lt;br&gt;&#10;My childhood was Dolly Parton (and Kenny Rogers and Willie Nelson and other country artists). And I probably listened to her as she hit her stride as an extremely successful solo artist. Because I had no idea of her variety show on television and all her work with Porter Wagoner for close to two decades before her solo work, seventies onwards.&lt;br&gt;&#10;I loved hearing her voice, humming along and laughing along and telling stories of her dad and her husband and all her big family and the struggles she faced and the way she handled fame, showcased in short, rapid vignettes. If you love her music, this is a must listen. Dolly’s amazing!&lt;/p&gt;&#10;&lt;p&gt;Dolly, talking about her song, “The Sacrifice” as well as reminiscing on her journey.&lt;sup id="fnref:2"&gt;&lt;a href="#fn:2" class="footnote-ref" role="doc-noteref"&gt;2&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;&#10;&lt;blockquote&gt;&lt;p&gt;This is a song that I wrote that just came out of my heart and soul, my gut. Sometimes you wonder if you’ve made all the wise choices. Would you do things differently if you could?&lt;/p&gt;&#10;&lt;p&gt;People say, “How come all of this success happened to you?” I say, “Because I sacrificed whatever I had to in order to get it.” You can’t veer off into this and that. You can’t lose your momentum if you’ve got a dream and a focus. I always felt like God was directing me. So I’m not going to let up until He says, “Stop.” I just keep going, like a horse with blinders on.&lt;/p&gt;&#10;&lt;p&gt;I wrote “The Sacrifice” because somebody asked me that question. Well, the answer is, I gave up time with family and friends. I gave up vacations for work. I “carried my pail.” Like the song says, “You don’t drink the water, if you don’t drill the well.” One of my favorite lines I ever wrote is, “I was gonna be rich, no matter how much it cost / And I was going to win, no matter how much I lost.”&lt;/p&gt;&#10;&lt;p&gt;It’s only in the wee hours, when you’re fading off to sleep, that you ask, “Is it worth the sacrifice?” I think I probably wouldn’t have done anything different, because I believe that this is what I was supposed to do. Who am I not to sacrifice to make things better for the people here that I am responsible for?&lt;/p&gt;&#10;&lt;p&gt;Yes, I would do it all again. No doubt about it.&lt;/p&gt;&#10;&lt;/blockquote&gt;&lt;p&gt;&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;&#10;&#10;Feedback on this post?&lt;br&gt;&#10;Mail me at &lt;a href="mailto:feebdback@janusworx.com?subject=%22Feedback on post: Books I Read in April, 2026&#10;%22" &gt;feedback at this domain&lt;/a&gt;.&#10;&lt;br&gt;&#10;&#10;&lt;br&gt;&#10;&#10;P.S. Subscribe to my &lt;a href="https://janusworx.com/subscribe/" target="_blank" rel="noreferrer"&gt;mailing list!&lt;/a&gt;&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;div class="footnotes" role="doc-endnotes"&gt;&#10;&lt;hr&gt;&#10;&lt;ol&gt;&#10;&lt;li id="fn:1"&gt;&#10;&lt;p&gt;Eliot was addressing the Virgil Society on the subject of classics in 1944&amp;#160;&lt;a href="#fnref:1" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li id="fn:2"&gt;&#10;&lt;p&gt;This text closes the audiobook. But I’ve chosen the paraphrased text from the ebook though. Dolly’s actual ramble while lovely to listen to, meanders somewhat before it gets to her very emphatic No doubt about it :)&amp;#160;&lt;a href="#fnref:2" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;/div&gt;&#10;</description></item></channel></rss>