<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>NoteToSelf on Janusworx</title><link>https://janusworx.com/tags/notetoself/</link><description>Recent content in NoteToSelf 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, 06 Nov 2025 08:34:36 +0530</lastBuildDate><atom:link href="https://janusworx.com/tags/notetoself/index.xml" rel="self" type="application/rss+xml"/><item><title>Hugo Redirect From Post in One Section to Another</title><link>https://janusworx.com/work/hugo-redirect-from-post-in-one-section-to-another/</link><pubDate>Thu, 06 Nov 2025 08:34:36 +0530</pubDate><author>feedback@janusworx.com (Mario Jason Braganza)</author><guid>https://janusworx.com/work/hugo-redirect-from-post-in-one-section-to-another/</guid><description>
&lt;h2 class="relative group"&gt;Problem
 &lt;div id="problem" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#problem" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;I have a post in one section of my site, say &lt;a href="https://janusworx.com/nm/2025-11-06/" &gt;notes and miscellanea&lt;/a&gt;&lt;br&gt;
That is my canonical post.&lt;br&gt;
But I also need it to show up in the work section of my site, possibly with a another name.&lt;br&gt;
A Hugo &lt;code&gt;alias&lt;/code&gt; in the &lt;code&gt;yaml&lt;/code&gt; front matter does not work, since both sections exist and Hugo gets confused.&lt;/p&gt;

&lt;h2 class="relative group"&gt;Solution
 &lt;div id="solution" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#solution" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;Make sure &lt;code&gt;layouts/redirect/single.html&lt;/code&gt; exists within your Hugo folder structure and it contains just this line …&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-golang" data-lang="golang"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&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;template&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;&amp;#34;alias.html&amp;#34;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;dict&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;&amp;#34;Permalink&amp;#34;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;Params&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;target&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="p"&gt;}}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;ol start="2"&gt;
&lt;li&gt;Create your &lt;a href="https://janusworx.com/nm/2025-11-06/" &gt;original post&lt;/a&gt; as usual&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Then&lt;/em&gt; go create a post in your &lt;em&gt;other&lt;/em&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; section with the following metadata:&lt;/li&gt;
&lt;/ol&gt;
&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="nn"&gt;---&lt;/span&gt;&lt;span class="w"&gt;
&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;&amp;lt;Your title here&amp;gt;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;#date autogenerated by my archetype. if missing, add date&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;date&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="ld"&gt;2025-11-06T08:30:54&lt;/span&gt;&lt;span class="m"&gt;+05&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="m"&gt;30&lt;/span&gt;&lt;span class="w"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;redirect&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;target&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;&amp;lt;url-to-redirect-to&amp;gt;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;summary&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;&amp;lt;Optional text, that will appear in the sectiones listing page&amp;gt;&lt;/span&gt;&lt;span class="w"&gt;
&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;/div&gt;&lt;/div&gt;
&lt;ol start="4"&gt;
&lt;li&gt;The &lt;code&gt;date&lt;/code&gt; field is critical. The post might not appear where you expect it, if it’s absent.&lt;br&gt;
If not date, then you might need to use &lt;code&gt;weight&lt;/code&gt;. One of the two is needed.&lt;/li&gt;
&lt;li&gt;In my case, the metadata looked like this:&lt;/li&gt;
&lt;/ol&gt;
&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="nn"&gt;---&lt;/span&gt;&lt;span class="w"&gt;
&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="s2"&gt;&amp;#34;The Plan for My New Hetzner VM&amp;#34;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;date&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="ld"&gt;2025-11-06T08:30:54&lt;/span&gt;&lt;span class="m"&gt;+05&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="m"&gt;30&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;redirect&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;target&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;/nm/2025-11-06/&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;summary&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;Alone and helpless, like you&amp;#39;ve lost your fight &lt;/span&gt;&lt;span class="w"&gt;
&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;/div&gt;&lt;/div&gt;
&lt;ol start="6"&gt;
&lt;li&gt;Done! You can see an entry for “The Plan for My New Hetzner VM” in my work section as you see in the pic below. &lt;a href="https://janusworx.com/work/the-plan-for-my-new-hetzner-vm/" &gt;Clicking that&lt;/a&gt; will redirect to the actual post in my &lt;a href="https://janusworx.com/nm/2025-11-06/" &gt;Notes and Miscellanea&lt;/a&gt; section!&lt;/li&gt;
&lt;/ol&gt;

&lt;figure&gt;
 &lt;img class="my-0 rounded-md" src="https://janusworx.com/images/2025/hugo-redirect-from-post-in-one-section-to-another.png" alt="Hugo Section with Post entries" /&gt;
 
 
 &lt;/figure&gt;
&lt;ol start="7"&gt;
&lt;li&gt;Tada 🎉&lt;/li&gt;
&lt;/ol&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;

Feedback on this post?&lt;br&gt;
Mail me at &lt;a href="mailto:feedback@janusworx.com?subject=%22Feedback on post: Hugo Redirect From Post in One Section to Another
%22" &gt;feedback at this domain&lt;/a&gt; or [continue the discourse here][2].
&lt;br&gt;

&lt;br&gt;

P.S. Subscribe to my &lt;a href="https://janusworx.com/subscribe/" target="_blank" rel="noreferrer"&gt;mailing list!&lt;/a&gt;&lt;br&gt;
Forward these posts and letters to your friends and get them to subscribe!&lt;/p&gt;
&lt;div class="footnotes" role="doc-endnotes"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:1"&gt;
&lt;p&gt;in my case, &lt;a href="https://janusworx.com/work/" &gt;work&lt;/a&gt;&amp;#160;&lt;a href="#fnref:1" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</description></item><item><title>The Plan for My New Hetzner VM</title><link>https://janusworx.com/work/the-plan-for-my-new-hetzner-vm/</link><pubDate>Thu, 06 Nov 2025 08:30:54 +0530</pubDate><author>feedback@janusworx.com (Mario Jason Braganza)</author><guid>https://janusworx.com/work/the-plan-for-my-new-hetzner-vm/</guid><description>
&lt;h2 class="relative group"&gt;Update: &lt;a href="https://janusworx.com/nm/2025-12-11/" &gt;2025-12-11&lt;/a&gt;
 &lt;div id="update-2025-12-11" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#update-2025-12-11" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;I got it done!&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 class="relative group"&gt;Preamble
 &lt;div id="preamble" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#preamble" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;If this post is weird and stream of consciousness like, that’s by design.&lt;br&gt;
You are seeing a &lt;a href="https://janusworx.com/" &gt;notes and miscellanea&lt;/a&gt; post, in the work category.&lt;br&gt;
I want to be able to think through what I am doing. Mostly to clarify, document and explicitly state &lt;em&gt;&lt;strong&gt;what&lt;/strong&gt;&lt;/em&gt; I want. To avoid shifting goalposts (or rather to shift them intentionally, if need be.)&lt;br&gt;
I’ll be updating and revising this post as I think and learn and experience things&lt;/p&gt;

&lt;h2 class="relative group"&gt;Goals
 &lt;div id="goals" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#goals" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Think about and write what I want to get done with my hetzner&lt;/li&gt;
&lt;li&gt;For now, the how does not matter&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 class="relative group"&gt;What I want
 &lt;div id="what-i-want" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#what-i-want" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;A VM running K3s, that I can deploy my Hugo website to, as well all the apps that I choose to run on Janusworx&lt;/li&gt;
&lt;li&gt;My main need with a cluster is the GitOps aspect. Not the scaling or redundancy.
I want infrastructure as code and automated updates, as much as possible.&lt;/li&gt;
&lt;li&gt;Everything goes through my Forgejo instance at home&lt;/li&gt;
&lt;li&gt;I write a post and it should deploy to the website somehow&lt;/li&gt;
&lt;li&gt;Apps that I put in there, either just my config files of already published images/deployments, or my own custom things, ought to be pushed to or pulled by the cluster and deployed. Upgrades should be a matter of manipulating code&lt;/li&gt;
&lt;li&gt;Secrets should be self hosted, via environment variables or some self hosted solution. Never at a third party service&lt;/li&gt;
&lt;/ul&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;


&lt;h3 class="relative group"&gt;2025-11-06 09:35
 &lt;div id="2025-11-06-0935" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#2025-11-06-0935" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Got tangled with Hugo in the morning.&lt;/li&gt;
&lt;li&gt;I think I got the basics down, the VM comes up. K3s in installed, but in what order do I move my apps over?&lt;/li&gt;
&lt;li&gt;Think I’ll the root domail last. And try beginning with the “simpler” apps first&lt;/li&gt;
&lt;li&gt;Begin with familiarising myself with Helm&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-11-06 10:06:&lt;/em&gt; Tea break&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-11-06 13:06:&lt;/em&gt; Lunch break&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 class="relative group"&gt;2025-11-06 16:00
 &lt;div id="2025-11-06-1600" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#2025-11-06-1600" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Back. Trying to port my dev terraform setup to production. It should &lt;em&gt;just&lt;/em&gt; work. But it does not.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-11-06 16:59:&lt;/em&gt; Solved. I had somehow borked my Terraform state. Nuked it. And then things started working again&lt;/li&gt;
&lt;li&gt;Show stopper now. My GPG key has expired. Need to figure out how to sign my git commits with SSH now&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-11-06 18:26:&lt;/em&gt; I &lt;em&gt;think&lt;/em&gt; I’ve licked it. Both Github and Forgejo don’t seem to be complaining. Let’s see what else I’ve broken over the coming days&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-11-06 20:00:&lt;/em&gt; Done! My production cluster is up! &lt;em&gt;&lt;strong&gt;And&lt;/strong&gt;&lt;/em&gt; I can tear it down and build it up consistently. Now to work with it tomorrow.&lt;/li&gt;
&lt;/ul&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;

Feedback on this post?&lt;br&gt;
Mail me at &lt;a href="mailto:feedback@janusworx.com?subject=%22Feedback on post: The Plan for My New Hetzner VM
%22" &gt;feedback at this domain&lt;/a&gt;.
&lt;br&gt;
&lt;/p&gt;</description></item><item><title>Emacs Package Updation Checklist</title><link>https://janusworx.com/work/emacs-package-updation-checklist/</link><pubDate>Sun, 06 Jul 2025 08:36:44 +0530</pubDate><author>feedback@janusworx.com (Mario Jason Braganza)</author><guid>https://janusworx.com/work/emacs-package-updation-checklist/</guid><description>
&lt;figure&gt;
 &lt;img class="my-0 rounded-md" src="https://janusworx.com/images/2024/emacs-logo.svg" alt="" /&gt;
 
 
 &lt;/figure&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;

&lt;p&gt;I’ve never updated my Emacs packages until recently, because Emacs is where &lt;em&gt;all&lt;/em&gt; my writing happens, and so I’m justifiably paranoid.&lt;br&gt;
But then some packages stopped working, due to various circumstances&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 an update solved it.&lt;/p&gt;
&lt;p&gt;So I’ve decided to update my packages once a quarter, so that I don’t lose days yak shaving when something goes wrong and I handle breakage on my terms and not the machine’s.&lt;/p&gt;
&lt;p&gt;As far as package management goes, I want to keep things simple.&lt;br&gt;
In fact, I still haven’t graduated to &lt;a href="https://www.gnu.org/software/emacs/manual/html_mono/use-package.html" target="_blank" rel="noreferrer"&gt;&lt;code&gt;use-package&lt;/code&gt;&lt;/a&gt; or &lt;a href="https://github.com/radian-software/straight.el" target="_blank" rel="noreferrer"&gt;&lt;code&gt;straight.el&lt;/code&gt;&lt;/a&gt; because my package needs are few and conservative&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 so, while there are &lt;a href="https://github.com/rranelli/auto-package-update.el" target="_blank" rel="noreferrer"&gt;automatic update options&lt;/a&gt; out there, I’ll just stick to updating them manually, every quarter.&lt;/p&gt;
&lt;p&gt;Ergo, this is the checklist I’ll use next time onwards …&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Stop emacs user service, &lt;code&gt;systemctl --user stop emacs&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Backup emacs folder in &lt;code&gt;~/.config&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Start emacs manually (not the service).&lt;/li&gt;
&lt;li&gt;&lt;code&gt;M-x package-refresh-contents&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;M-x package-upgrade-all&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Problems? Quit emacs. Revert backup folder.&lt;/li&gt;
&lt;li&gt;In the end, start emacs user sevice, &lt;code&gt;systemctl --user start emacs&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;There’s an Org mode task, scheduled quarterly, so that I won’t forget.&lt;/p&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;

Feedback on this post?&lt;br&gt;
Mail me at &lt;a href="mailto:feebdback@janusworx.com?subject=%22Feedback on post: Emacs Package Updation Checklist
%22" &gt;feedback at this domain&lt;/a&gt; or [continue the discourse here][3].
&lt;br&gt;

&lt;br&gt;

P.S. Subscribe to my &lt;a href="https://janusworx.com/subscribe/" target="_blank" rel="noreferrer"&gt;mailing list!&lt;/a&gt;&lt;br&gt;
Forward these posts and letters to your friends and get them to subscribe!&lt;br&gt;
P.P.S. Feed my &lt;a href="https://www.amazon.in/hz/wishlist/ls/2QAUKHHAMOOVS?ref_=wl_share" target="_blank" rel="noreferrer"&gt;insatiable reading habit.&lt;/a&gt;&lt;/p&gt;
&lt;div class="footnotes" role="doc-endnotes"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:1"&gt;
&lt;p&gt;While I don’t want updated packages, I do want updated Emacs and that broke stuff 😂&amp;#160;&lt;a href="#fnref:1" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:2"&gt;
&lt;p&gt;The biggest change I forsee, is if Jetbrains ever turn evil and I have to move off their editors and subsequently need to use Emacs as an IDE&amp;#160;&lt;a href="#fnref:2" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</description></item><item><title>Hack Hugo Post Metadata With Python</title><link>https://janusworx.com/work/hack-hugo-post-metadata-with-python/</link><pubDate>Mon, 03 Feb 2025 09:33:37 +0530</pubDate><author>feedback@janusworx.com (Mario Jason Braganza)</author><guid>https://janusworx.com/work/hack-hugo-post-metadata-with-python/</guid><description>&lt;p&gt;&lt;a href="https://janusworx.com/work/some-site-housekeeping-new-sections-and-rss-feeds/" &gt;A while back&lt;/a&gt;, I rejigged the sections on my site to better reflect how I think and write.&lt;br&gt;
Which meant, all the urls, on all my posts changed, since they now used the new category as a slug, instead of ye old &lt;code&gt;/blog&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;For e.g. &lt;a href="https://janusworx.com/blog/using-hugo-variables-to-help-with-mailto-links-in-hugo/" target="_blank" rel="noreferrer"&gt;https://janusworx.com/blog/using-hugo-variables-to-help-with-mailto-links-in-hugo/&lt;/a&gt; …&lt;br&gt;
was now at, &lt;a href="https://janusworx.com/work/using-hugo-variables-to-help-with-mailto-links-in-hugo/" target="_blank" rel="noreferrer"&gt;https://janusworx.com/work/using-hugo-variables-to-help-with-mailto-links-in-hugo/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;After searching a bit, I found that Hugo supported &lt;a href="https://gohugo.io/content-management/urls/#aliases" target="_blank" rel="noreferrer"&gt;aliases&lt;/a&gt;. For me, it would redirect the original &lt;code&gt;/blog&lt;/code&gt; path url to its new location&lt;br&gt;
Ass I had to do, was add an &lt;code&gt;aliases: [&amp;quot;/blog/old-post-slug&amp;quot;]&lt;/code&gt; line to each post’s metadata.&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;
Line 4 in the snippet below shows, what I added to fix the post above.&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;span class="lnt"&gt;3
&lt;/span&gt;&lt;span class="lnt"&gt;4
&lt;/span&gt;&lt;span class="lnt"&gt;5
&lt;/span&gt;&lt;span class="lnt"&gt;6
&lt;/span&gt;&lt;span class="lnt"&gt;7
&lt;/span&gt;&lt;span class="lnt"&gt;8
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&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="nn"&gt;---&lt;/span&gt;&lt;span class="w"&gt;
&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="s2"&gt;&amp;#34;Using Hugo Variables to Help With Mailto Links in Hugo&amp;#34;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;date&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="ld"&gt;2024-05-30T18:17:35&lt;/span&gt;&lt;span class="m"&gt;+05&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="m"&gt;30&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;aliases&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="s2"&gt;&amp;#34;/blog/using-hugo-variables-to-help-with-mailto-links-in-hugo&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;categories&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="s2"&gt;&amp;#34;work&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;tags&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="l"&gt;100WordHabit, Dgplug, Hugo]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;summary&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;Shortcodes! Hugo Variables in Shortcodes!&lt;/span&gt;&lt;span class="w"&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;&lt;/div&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;

&lt;p&gt;I did &lt;em&gt;&lt;strong&gt;not&lt;/strong&gt;&lt;/em&gt; want to do this by hand for 800+ posts.&lt;br&gt;
One stroke of luck for me, was that I let Hugo use its default behaviour of generating url slugs from the file names. So even if the category slugs had changed (from &lt;code&gt;/blog&lt;/code&gt; to &lt;code&gt;/work&lt;/code&gt; or from &lt;code&gt;/blog&lt;/code&gt; to &lt;code&gt;/personal&lt;/code&gt;), the url slugs would stay the same. Which meant, I could whip up a script to run through all my markdown posts and add the alias line.&lt;br&gt;
So I did.&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt; 1
&lt;/span&gt;&lt;span class="lnt"&gt; 2
&lt;/span&gt;&lt;span class="lnt"&gt; 3
&lt;/span&gt;&lt;span class="lnt"&gt; 4
&lt;/span&gt;&lt;span class="lnt"&gt; 5
&lt;/span&gt;&lt;span class="lnt"&gt; 6
&lt;/span&gt;&lt;span class="lnt"&gt; 7
&lt;/span&gt;&lt;span class="lnt"&gt; 8
&lt;/span&gt;&lt;span class="lnt"&gt; 9
&lt;/span&gt;&lt;span class="lnt"&gt;10
&lt;/span&gt;&lt;span class="lnt"&gt;11
&lt;/span&gt;&lt;span class="lnt"&gt;12
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;pathlib&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;Path&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;INPUT_FOLDER&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;Path&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;old-posts-folder&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;OUTPUT_FOLDER&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;Path&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;modified-posts-folder&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;each_file&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;INPUT_FOLDER&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;iterdir&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;with&lt;/span&gt; &lt;span class="nb"&gt;open&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;each_file&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;r&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;file_to_read&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;alias_derived_from_file&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;each_file&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;stem&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;contents_as_list&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;file_to_read&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;readlines&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;contents_as_list&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;insert&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;aliases: [&lt;/span&gt;&lt;span class="se"&gt;\&amp;#34;&lt;/span&gt;&lt;span class="s2"&gt;/blog/&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;alias_derived_from_file&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="se"&gt;\&amp;#34;&lt;/span&gt;&lt;span class="s2"&gt;]&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;with&lt;/span&gt; &lt;span class="nb"&gt;open&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Path&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;OUTPUT_FOLDER&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;each_file&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;w+&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;file_to_write&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;file_to_write&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;writelines&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;contents_as_list&lt;/span&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;
&lt;/div&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;&lt;br&gt;

It takes all the posts from my old folder, inserts the alias line and puts them into a new folder.&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; In essence, take each file, figure out the url slug from the file name, read in the contents as a list, insert my alias at position 3 (fourth actually. zero based indexing) of the list (below the title and date) and then write it all out to a new file.&lt;/p&gt;
&lt;p&gt;I ran it, published the site and then went to check on the old urls with bated breath.&lt;br&gt;
Hurrah, it all worked :)&lt;/p&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;

Feedback on this post?&lt;br&gt;
Mail me at &lt;a href="mailto:feebdback@janusworx.com?subject=%22Feedback on post: Hack Hugo Post Metadata With Python
%22" &gt;feedback at this domain&lt;/a&gt; or [continue the discourse here][3].
&lt;br&gt;

&lt;br&gt;

P.S. Subscribe to my &lt;a href="https://janusworx.com/subscribe/" target="_blank" rel="noreferrer"&gt;mailing list!&lt;/a&gt;&lt;br&gt;
Forward these posts and letters to your friends and get them to subscribe!&lt;br&gt;
P.P.S. Feed my &lt;a href="https://www.amazon.in/hz/wishlist/ls/2QAUKHHAMOOVS?ref_=wl_share" target="_blank" rel="noreferrer"&gt;insatiable reading habit.&lt;/a&gt;&lt;/p&gt;
&lt;div class="footnotes" role="doc-endnotes"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:1"&gt;
&lt;p&gt;it’s a list, so I can add more aliases if I want to&amp;#160;&lt;a href="#fnref:1" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:2"&gt;
&lt;p&gt;no sense in botching up my originals :)&amp;#160;&lt;a href="#fnref:2" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</description></item><item><title>Tmux Start Session Maximized With Three Panes</title><link>https://janusworx.com/work/tmux-start-session-maximized-with-three-panes/</link><pubDate>Sat, 01 Feb 2025 09:27:25 +0530</pubDate><author>feedback@janusworx.com (Mario Jason Braganza)</author><guid>https://janusworx.com/work/tmux-start-session-maximized-with-three-panes/</guid><description>&lt;p&gt;So I got tired of starting up a dedicated tmux session to manage all the work related to my writing sessions. Over the past few months, I’ve boiled it down to three.&lt;br&gt;
And it still irks me that I have to …&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Launch Terminal&lt;/li&gt;
&lt;li&gt;Launch Tmux&lt;/li&gt;
&lt;li&gt;Split it into three windows err … panes.&lt;/li&gt;
&lt;li&gt;Go to the top left pane and launch Hugo server&lt;/li&gt;
&lt;li&gt;Switch to the right pane and then launch Emacs with whatever new post I want to write today.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;So &lt;em&gt;of course&lt;/em&gt;, a &lt;a href="https://en.wikipedia.org/wiki/Rube_Goldberg" target="_blank" rel="noreferrer"&gt;Rube Goldberg-esque&lt;/a&gt;, tiny bash-pipey monster took form.
It now resides, chained to an alias, &lt;code&gt;hssx&lt;/code&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; in my &lt;code&gt;.bash_aliases&lt;/code&gt; file&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;span class="lnt"&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&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;&lt;span class="nb"&gt;alias&lt;/span&gt; &lt;span class="nv"&gt;hssx&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;cd /path/to/my/hugo/folder &amp;amp;&amp;amp; \
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt;xdotool windowsize $(xdotool getactivewindow) 100% 100% &amp;amp;&amp;amp; \
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt;tmux new-session \; split-window -h \; select-pane -l \; split-window -v \; select-pane -U \; send-keys &amp;#34;hugo serve&amp;#34; C-m \; select-pane -R&amp;#39;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;ol&gt;
&lt;li&gt;The first line switches to my hugo folder&lt;/li&gt;
&lt;li&gt;The second calls &lt;code&gt;xdotool&lt;/code&gt; and maximises the terminal window&lt;/li&gt;
&lt;li&gt;And the last line is a series of instructions to the tmux command. I’ve split it below for readability.&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;tmux new-session \; #Tmux start a new session
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;split-window -h \; # Split the window into two vertical panes
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;select-pane -l \; # Switch to the left pane
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;split-window -v \; # Split that into two horizontal panes
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;select-pane -U \; # Select the upper pane
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;send-keys &amp;#34;hugo serve&amp;#34; C-m \; # Type in `hugo serve` followed by Enter
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;select-pane -R # Select the right pane&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&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;

&lt;figcaption style="font-style: italic; text-align: center; font-size: 85%; color: var(--secondary)"&gt;
&lt;p&gt;And boom!&lt;/p&gt;
&lt;/figcaption&gt;
&lt;p&gt;&lt;a href="https://janusworx.com/images/2025/tmux-layout.png" &gt;
&lt;figure&gt;
 &lt;img class="my-0 rounded-md" src="https://janusworx.com/images/2025/tmux-layout.png" alt="bash terminal showing a tmux window split into three panes" /&gt;
 
 
 &lt;/figure&gt;&lt;/a&gt;&lt;/p&gt;
&lt;figcaption style="font-style: italic; text-align: center; font-size: 85%; color: var(--secondary)"&gt;
&lt;p&gt;Click pic for a larger version&lt;/p&gt;
&lt;/figcaption&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;

Feedback on this post?&lt;br&gt;
Mail me at &lt;a href="mailto:feebdback@janusworx.com?subject=%22Feedback on post: Tmux Start Session Maximized With Three Panes
%22" &gt;feedback at this domain&lt;/a&gt; &lt;em&gt;or&lt;/em&gt; [continue the discourse here][3].
&lt;br&gt;

&lt;br&gt;

P.S. Subscribe to my &lt;a href="https://janusworx.com/subscribe/" target="_blank" rel="noreferrer"&gt;mailing list!&lt;/a&gt;&lt;br&gt;
Forward these posts and letters to your friends and get them to subscribe!&lt;br&gt;
P.P.S. Feed my &lt;a href="https://www.amazon.in/hz/wishlist/ls/2QAUKHHAMOOVS?ref_=wl_share" target="_blank" rel="noreferrer"&gt;insatiable reading habit.&lt;/a&gt;&lt;/p&gt;
&lt;div class="footnotes" role="doc-endnotes"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:1"&gt;
&lt;p&gt;&lt;code&gt;hugo start session&lt;/code&gt; and x just because all my aliases have ended with x for years and years&amp;#160;&lt;a href="#fnref:1" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</description></item><item><title>View Only the Day, With Org Agenda</title><link>https://janusworx.com/work/view-only-day-with-org-agenda/</link><pubDate>Mon, 20 Jan 2025 08:50:40 +0530</pubDate><author>feedback@janusworx.com (Mario Jason Braganza)</author><guid>https://janusworx.com/work/view-only-day-with-org-agenda/</guid><description>&lt;p&gt;Org Mode, by default, shows me the whole week, when I pull up my agenda. That’s not how I work though. I normally look at the week on Monday mornings (or Sunday evenings) to plan out the week and then work everyday by just looking at what I ought to get done that particular day.&lt;/p&gt;
&lt;p&gt;Like Dale Carnegie says,&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;Shut off the past! Let the dead past bury its dead. Shut out the yesterdays which have lighted fools the way to dusty death.&lt;/p&gt;
&lt;p&gt;The load of tomorrow, added to that of yesterday, carried today, makes the strongest falter. Shut off the future as tightly as the past.&lt;/p&gt;
&lt;p&gt;The future is today. There is no tomorrow. The day of man&amp;rsquo;s salvation is now.&lt;/p&gt;
&lt;p&gt;Waste of energy, mental distress, nervous worries dog the steps of a man who is anxious about the future. Shut close, then the great fore and aft bulkheads, and prepare to cultivate the habit of life of day-tight compartments.&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;So I want then, my Org Mode to do show me, only the things, I have on my plate today.&lt;/p&gt;
&lt;p&gt;And Org is nothing if not adaptable. &lt;code&gt;org-agenda-span&lt;/code&gt; is the variable that controls what the Agends shows me. According to the docs,&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;This variable can be set to any number of days you want to see by default in the agenda, or to a span name, such a &lt;code&gt;day&lt;/code&gt;, &lt;code&gt;week&lt;/code&gt;, &lt;code&gt;month&lt;/code&gt; or &lt;code&gt;year&lt;/code&gt;.&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;So that’s what I did. This little snippet went into my &lt;code&gt;init&lt;/code&gt; file&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-elisp" data-lang="elisp"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;;; Set Agenda to show a day as the default timespan, instead of a week&lt;/span&gt;
&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="nb"&gt;setq&lt;/span&gt; &lt;span class="nv"&gt;org-agenda-span&lt;/span&gt; &lt;span class="ss"&gt;&amp;#39;day&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;&lt;br&gt;

Et voilà!&lt;/p&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;

Feedback on this post?&lt;br&gt;
Mail me at &lt;a href="mailto:feebdback@janusworx.com?subject=%22Feedback on post: View Only the Day, With Org Agenda
%22" &gt;feedback at this domain&lt;/a&gt; &lt;em&gt;or&lt;/em&gt; [continue the discourse here][3].
&lt;br&gt;

&lt;br&gt;

P.S. Subscribe to my &lt;a href="https://janusworx.com/subscribe/" target="_blank" rel="noreferrer"&gt;mailing list!&lt;/a&gt;&lt;br&gt;
Forward these posts and letters to your friends and get them to subscribe!&lt;br&gt;
P.P.S. Feed my &lt;a href="https://www.amazon.in/hz/wishlist/ls/2QAUKHHAMOOVS?ref_=wl_share" target="_blank" rel="noreferrer"&gt;insatiable reading habit.&lt;/a&gt;&lt;/p&gt;</description></item><item><title>More Espanso &amp; Emacs Shenanigans</title><link>https://janusworx.com/work/more-espanso-emacs-shenanigans/</link><pubDate>Sun, 19 Jan 2025 12:45:09 +0530</pubDate><author>feedback@janusworx.com (Mario Jason Braganza)</author><guid>https://janusworx.com/work/more-espanso-emacs-shenanigans/</guid><description>&lt;p&gt;&lt;br&gt;


&lt;figure&gt;
 &lt;img class="my-0 rounded-md" src="https://janusworx.com/images/2024/espanso.png" alt="Espanso Logo" /&gt;
 
 
 &lt;/figure&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;

&lt;p&gt;Now that I use my local machine to draft all my posts, desktop Emacs makes everything easier … with one exception. It swallows up a lot of my Espanso expansions.&lt;/p&gt;
&lt;p&gt;My current bugbear is that it will not render a &lt;code&gt;=&lt;/code&gt; when expanding.&lt;br&gt;
I know this is entirely something that I brought on myself, and neither Emacs or Espanso in isolation will have issues.&lt;/p&gt;
&lt;p&gt;My workaround after rummaging through Espanso’s documentation was to set the backend to use &lt;code&gt;xdotool&lt;/code&gt;, in my config. (&lt;code&gt;~/.config/espanso/config/default.yml&lt;/code&gt;)&lt;/p&gt;
&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;x11_use_xdotool_backend&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;
&lt;p&gt;One downside now is that it no longer &lt;a href="https://espanso.org/docs/matches/basics/#cursor-hints" target="_blank" rel="noreferrer"&gt;jumps back to a predefined location&lt;/a&gt; in the snippets where I’ve defined such a thing. No matter. I use them rarely and I’ll figure something out later. (Alongside why desktop emacs won’t render markdown expansions sometimes as well)&lt;/p&gt;
&lt;p&gt;For now, most of my expansions work. Hurrah!&lt;/p&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;

Feedback on this post?&lt;br&gt;
Mail me at &lt;a href="mailto:feebdback@janusworx.com?subject=%22Feedback on post: More Espanso &amp;amp; Emacs Shenanigans
%22" &gt;feedback at this domain&lt;/a&gt; &lt;em&gt;or&lt;/em&gt; [continue the discourse here][3].
&lt;br&gt;

&lt;br&gt;

P.S. Subscribe to my &lt;a href="https://janusworx.com/subscribe/" target="_blank" rel="noreferrer"&gt;mailing list!&lt;/a&gt;&lt;br&gt;
Forward these posts and letters to your friends and get them to subscribe!&lt;br&gt;
P.P.S. Feed my &lt;a href="https://www.amazon.in/hz/wishlist/ls/2QAUKHHAMOOVS?ref_=wl_share" target="_blank" rel="noreferrer"&gt;insatiable reading habit.&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Fixing Espanso Expansions</title><link>https://janusworx.com/work/fixing-espanso-expansions/</link><pubDate>Sun, 29 Sep 2024 17:05:19 +0530</pubDate><author>feedback@janusworx.com (Mario Jason Braganza)</author><guid>https://janusworx.com/work/fixing-espanso-expansions/</guid><description>&lt;p&gt;&lt;br&gt;


&lt;figure&gt;
 &lt;img class="my-0 rounded-md" src="https://janusworx.com/images/2024/espanso.png" alt="" /&gt;
 
 
 &lt;/figure&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;
&lt;/p&gt;
&lt;p&gt;I never had the time to deal with my &lt;a href="https://espanso.org/" target="_blank" rel="noreferrer"&gt;Espanso&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; hijinks until today.&lt;br&gt;
While it worked perfectly, when I installed it all those years ago, when I migrated over from the Mac, Espanso itself has changed and evolved over the years.&lt;br&gt;
It took over my old configuration like a champ and &lt;em&gt;mostly&lt;/em&gt; worked, with the exception of a few shortcuts; ones that I &lt;em&gt;frequently&lt;/em&gt; used 😂&lt;/p&gt;
&lt;p&gt;Emacs was one application of mine that never quite worked right with Espanso.&lt;br&gt;
I’d frequently get &lt;code&gt;timed out waiting for reply from selection owner&lt;/code&gt; whenever I tried expansions in there. Typing :joy to get 😂 would work in every other program, but no joy with Emacs, in additon to plenty of other expansions err … not expanding.&lt;/p&gt;
&lt;p&gt;All my browser url expansions would not expand properly either, with mangled expansions most of the time.&lt;/p&gt;
&lt;p&gt;So today I &lt;a href="https://espanso.org/docs/" target="_blank" rel="noreferrer"&gt;dove in to the docs&lt;/a&gt;, and realised two things.&lt;br&gt;
1. My emacs needed a longer time out&lt;br&gt;
2. Espanso now tries to identify the &lt;em&gt;kind&lt;/em&gt; of text, and maybe those were causing my issues?&lt;/p&gt;
&lt;br&gt;


&lt;h3 class="relative group"&gt;Emacs
 &lt;div id="emacs" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#emacs" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;p&gt;I realised I needed a longer clipboard threshold, only for Emacs.&lt;br&gt;
So I created an &lt;a href="https://espanso.org/docs/configuration/app-specific-configurations/" target="_blank" rel="noreferrer"&gt;App specific configuration&lt;/a&gt;, just for Emacs to use and gave it said option. Here’s what the contents of my &lt;code&gt;espanso/config/emacs.yml&lt;/code&gt; look like&lt;/p&gt;
&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;filter_class&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;Emacs&amp;#39;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;clipboard_threshold&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;10000&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;br&gt;


&lt;h3 class="relative group"&gt;Rich Text Expansions
 &lt;div id="rich-text-expansions" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#rich-text-expansions" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;p&gt;That helped with a lot of expansions in Emacs, but not with my joy expansion.&lt;br&gt;
And not with stuff that were links and oh … links! and html! and markdown! Could those be the culprits?&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;br&gt;
The docs mention that Espanso now has &lt;a href="https://espanso.org/docs/matches/basics/#rich-text" target="_blank" rel="noreferrer"&gt;rich text support&lt;/a&gt;&lt;br&gt;
What that means, is that the trigger nows supports two new keywords &lt;code&gt;html&lt;/code&gt; and &lt;code&gt;markdown&lt;/code&gt; in addition ye ole &lt;code&gt;replace&lt;/code&gt;
So I changed most of my affected shortcuts to either of those two keywords; &lt;code&gt;markdown&lt;/code&gt; for most everything and &lt;code&gt;html&lt;/code&gt; for linky stuff. Here’s what my beloved joy looks like now …&lt;/p&gt;
&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;matches&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&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;trigger&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;:joy&amp;#34;&lt;/span&gt;&lt;span class="w"&gt;
&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;markdown&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;😂&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;&lt;br&gt;

And those two things did it! Every shortcut expands everwhere! What joy 😂&lt;/p&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;

Feedback on this post?&lt;br&gt;
Mail me at &lt;a href="mailto:feebdback@janusworx.com?subjectFeedback on post: Fixing Espanso Expansions
%22" &gt;feedback at this domain&lt;/a&gt; &lt;em&gt;or&lt;/em&gt; [continue the discourse here][3].
&lt;br&gt;

&lt;br&gt;

P.S. Subscribe to my &lt;a href="https://janusworx.com/subscribe/" target="_blank" rel="noreferrer"&gt;mailing list!&lt;/a&gt;&lt;br&gt;
Forward these posts and letters to your friends and get them to subscribe!&lt;br&gt;
P.P.S. Feed my &lt;a href="https://www.amazon.in/hz/wishlist/ls/2QAUKHHAMOOVS?ref_l_share" target="_blank" rel="noreferrer"&gt;insatiable reading habit.&lt;/a&gt;&lt;/p&gt;
&lt;div class="footnotes" role="doc-endnotes"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:1"&gt;
&lt;p&gt;Espanso lets you assign short snippets of text to longer streams of text, that you’d frequently use. I use &lt;code&gt;:adhx&lt;/code&gt; for example, and it expands out to type my whole address. Pretty handy!&amp;#160;&lt;a href="#fnref:1" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:2"&gt;
&lt;p&gt;dun! dun! dun! they were!&amp;#160;&lt;a href="#fnref:2" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</description></item><item><title>Smol Note to Self, on Deploying Stuff</title><link>https://janusworx.com/work/smol-note-to-self-on-deploying-stuff/</link><pubDate>Sat, 28 Sep 2024 14:34:47 +0530</pubDate><author>feedback@janusworx.com (Mario Jason Braganza)</author><guid>https://janusworx.com/work/smol-note-to-self-on-deploying-stuff/</guid><description>&lt;ol&gt;
&lt;li&gt;Anything I want folks to see and/or interact with, goes on the public VM&lt;/li&gt;
&lt;li&gt;Anything I want to host for myself, goes on the Pi.&lt;/li&gt;
&lt;/ol&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;

Feedback on this post?&lt;br&gt;
Mail me at &lt;a href="mailto:feebdback@janusworx.com?subject=%22Feedback on post: Smol Note to Self, on Deploying Stuff
%22" &gt;feedback at this domain&lt;/a&gt; &lt;em&gt;or&lt;/em&gt; [continue the discourse here][3].
&lt;br&gt;

&lt;br&gt;

P.S. Subscribe to my &lt;a href="https://janusworx.com/subscribe/" target="_blank" rel="noreferrer"&gt;mailing list!&lt;/a&gt;&lt;br&gt;
Forward these posts and letters to your friends and get them to subscribe!&lt;br&gt;
P.P.S. Feed my &lt;a href="https://www.amazon.in/hz/wishlist/ls/2QAUKHHAMOOVS?ref_=wl_share" target="_blank" rel="noreferrer"&gt;insatiable reading habit.&lt;/a&gt;&lt;/p&gt;</description></item><item><title>anki-push-u, Creating a Tiny Pushover Addon for Anki</title><link>https://janusworx.com/anki-push-u/</link><pubDate>Sat, 21 Sep 2024 11:31:39 +0530</pubDate><author>feedback@janusworx.com (Mario Jason Braganza)</author><guid>https://janusworx.com/anki-push-u/</guid><description>&lt;br&gt;

&lt;p&gt;I want to slowly increase my French vocabulary, so I got this comprehensive frequency word deck from &lt;a href="https://ankiweb.net/shared/info/893324022" target="_blank" rel="noreferrer"&gt;Shared Decks section of the Anki website&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I keep forgetting to look it up during the day, after my morning session and the only way I can get those stubborn words&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; to stick in my mind, is if I keep doing the deck 4–5 times a day.&lt;/p&gt;
&lt;p&gt;I know! With all my newfound devops/python skills, could I figure out a way to remind myself to do it? Turns out I can! :)&lt;/p&gt;
&lt;p&gt;I already use &lt;a href="https://pushover.net" target="_blank" rel="noreferrer"&gt;Pushover&lt;/a&gt;, to get notified of darn near anything.&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;br&gt;
And I read enough of &lt;a href="https://addon-docs.ankiweb.net/a-basic-addon.html" target="_blank" rel="noreferrer"&gt;Anki’s add-on documentation&lt;/a&gt; to know I could whip something up.&lt;br&gt;
So a bit of searching on the net, a bit of jiggery pokery with &lt;a href="https://claude.ai/" target="_blank" rel="noreferrer"&gt;Claude&lt;/a&gt;, and some spelunking through Anki’s source code and &lt;a href="https://forums.ankiweb.net/t/how-to-get-the-number-of-cards-due-to-today/10658" target="_blank" rel="noreferrer"&gt;forums&lt;/a&gt; later, I present to you … &lt;em&gt;&lt;strong&gt;&lt;a href="https://github.com/jasonbraganza/anki-push-u" target="_blank" rel="noreferrer"&gt;anki-push-u&lt;/a&gt;!&lt;/strong&gt;&lt;/em&gt;&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;
&lt;p&gt;As long as your Anki’s running, this little add-on will find cards due, at the interval you tell it to, and then notify you wherever you have Pushover running!&lt;br&gt;
No more forgetting due cards!&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;


&lt;figure&gt;
 &lt;img class="my-0 rounded-md" src="https://janusworx.com/images/2024/anki-pushover-notifications.png" alt="A screenshot of Pushover notifications on two devices" /&gt;
 
 
 &lt;/figure&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;

&lt;p&gt;&lt;a href="https://github.com/jasonbraganza/anki-push-u" target="_blank" rel="noreferrer"&gt;Find the add-on and instructions over at Github.&lt;/a&gt;&lt;/p&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;

Feedback on this post? Mail me at &lt;a href="mailto:&amp;amp;#102;&amp;amp;%23101;&amp;amp;%23101;&amp;amp;%23100;&amp;amp;%2398;&amp;amp;%2397;&amp;amp;%2399;&amp;amp;%23107;&amp;amp;%2364;&amp;amp;%23106;&amp;amp;%2397;&amp;amp;%23110;&amp;amp;%23117;&amp;amp;%23115;&amp;amp;%23119;&amp;amp;%23111;&amp;amp;%23114;&amp;amp;%23120;&amp;amp;%2346;&amp;amp;%2399;&amp;amp;%23111;&amp;amp;%23109;?subject=%22Feedback on post: anki-push-u, Creating a Tiny Pushover Addon for Anki
%22" &gt;feedback at this domain&lt;/a&gt;
&lt;br&gt;

&lt;br&gt;

P.S. Subscribe to my &lt;a href="https://janusworx.com/subscribe/" target="_blank" rel="noreferrer"&gt;mailing list!&lt;/a&gt;&lt;br&gt;
Forward these posts and letters to your friends and get them to subscribe!&lt;br&gt;
P.P.S. Feed my &lt;a href="https://www.amazon.in/hz/wishlist/ls/2QAUKHHAMOOVS?ref_=wl_share" target="_blank" rel="noreferrer"&gt;insatiable reading habit.&lt;/a&gt;&lt;/p&gt;
&lt;div class="footnotes" role="doc-endnotes"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:1"&gt;
&lt;p&gt;I’m looking at you, ailleurs&amp;#160;&lt;a href="#fnref:1" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:2"&gt;
&lt;p&gt;Hugo updates on three machines, calibre updates on two machines, podcast downloads and quite a bit else&amp;#160;&lt;a href="#fnref:2" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:3"&gt;
&lt;p&gt;It pushes you to do your due cards! Tada!&amp;#160;&lt;a href="#fnref:3" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</description></item><item><title>Notes to Self, Compiling Qbittorrent on a Raspberry Pi 5</title><link>https://janusworx.com/work/notes-to-self-on-compiling-qbittorrent-on-a-raspberry-pi-5/</link><pubDate>Mon, 19 Aug 2024 14:13:31 +0530</pubDate><author>feedback@janusworx.com (Mario Jason Braganza)</author><guid>https://janusworx.com/work/notes-to-self-on-compiling-qbittorrent-on-a-raspberry-pi-5/</guid><description>&lt;div style="font-size: 85%; "&gt;
&lt;p&gt;&lt;em&gt;Update, 2024-08-20:&lt;br&gt;
Added a missing step, to install the qBittorrent files to their relevant places&lt;br&gt;
Also, it had to happen. No releases for close to three months and then just as I learn to compile, a new version has to release the very next day 😂&lt;br&gt;
It gave me a chance to test my notes. It hardly took me a few minutes to get the new release in place. So all is good!&lt;/em&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;br&gt;


&lt;figure&gt;
 &lt;img class="my-0 rounded-md" src="https://janusworx.com/images/2024/compilation-of-letters.jpg" alt="" /&gt;
 
 
 &lt;/figure&gt;
&lt;figcaption style="font-style: italic; text-align: center; font-size: 85%; color: var(--secondary)"&gt;
&lt;p&gt;A compilation of letters, courtesy &lt;a href="https://www.cosmos.so/e/252611461" target="_blank" rel="noreferrer"&gt;Cosmos&lt;/a&gt;&lt;/p&gt;
&lt;/figcaption&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;

&lt;p&gt;I wanted to always have the lastest stable version of &lt;a href="https://www.qbittorrent.org/" target="_blank" rel="noreferrer"&gt;qBittorent&lt;/a&gt; on my Pi.&lt;br&gt;
So today, I sat down and followed the project’s &lt;a href="https://github.com/qbittorrent/qBittorrent/wiki/Compilation-Debian,-Ubuntu,-and-derivatives" target="_blank" rel="noreferrer"&gt;excellent instructions&lt;/a&gt; and got it running.&lt;br&gt;
I did however stray off the beaten path a teensy bit&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;
I didn’t want a gui and I wanted to be able to control it with &lt;a href="https://systemd.io/" target="_blank" rel="noreferrer"&gt;systemd&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;So here’s my checklist for next release. I’m currently running &lt;a href="https://en.wikipedia.org/wiki/Debian_version_history#Debian_12_%28Bookworm%29" target="_blank" rel="noreferrer"&gt;Bookworm&lt;/a&gt; on my Pi 5&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;In case you run into problems, compile instructions are here:
&lt;a href="https://github.com/qbittorrent/qBittorrent/wiki/Compilation-Debian,-Ubuntu,-and-derivatives" target="_blank" rel="noreferrer"&gt;https://github.com/qbittorrent/qBittorrent/wiki/Compilation-Debian,-Ubuntu,-and-derivatives&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Do all off this after switching to root. (or &lt;code&gt;sudo&lt;/code&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Install build tools&lt;br&gt;
&lt;code&gt;sudo apt install build-essential cmake git ninja-build pkg-config libboost-dev libssl-dev zlib1g-dev libgl1-mesa-dev&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Install Qt dependencies (&lt;code&gt;qtbase5-private-dev&lt;/code&gt; is not part of the instructions,
but compile will fail if you don&amp;rsquo;t include it)&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;br&gt;
&lt;code&gt;sudo apt install --no-install-recommends qtbase5-dev qtbase5-private-dev qttools5-dev libqt5svg5-dev&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Qt requires Python at runtime, so: &lt;code&gt;sudo apt install python3&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Install the libtorrent library. I compiled from source. Check &lt;a href="https://github.com/qbittorrent/qBittorrent/wiki/Compilation-Debian,-Ubuntu,-and-derivatives" target="_blank" rel="noreferrer"&gt;page&lt;/a&gt; for fresh instructions, if stuff here doesn’t work&lt;/p&gt;
&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;git clone --recurse-submodules https://github.com/arvidn/libtorrent.git
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; libtorrent
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git checkout RC_2_0 &lt;span class="c1"&gt;# or a 2.0.x tag&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;cmake -B build -DCMAKE_BUILD_TYPE&lt;span class="o"&gt;=&lt;/span&gt;RelWithDebInfo -DCMAKE_INSTALL_PREFIX&lt;span class="o"&gt;=&lt;/span&gt;/usr/local
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;cmake --build build -j4 &lt;span class="c1"&gt;# the -j4 is to do on four cores at once. my addition.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo cmake --install build&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;If you ever want to uninstall libtorrent, then don’t delete this
main folder. The build process would have created a
&lt;code&gt;install_manifest.txt&lt;/code&gt; in the build folder. So you can then
uninstall with: &lt;code&gt;sudo xargs rm &amp;lt; install_manifest.txt&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Get qb source: &lt;a href="https://www.qbittorrent.org/download" target="_blank" rel="noreferrer"&gt;https://www.qbittorrent.org/download&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Unzip: &lt;code&gt;tar xzvf qbittorrent-4.6.5.tar.gz&lt;/code&gt; and then
&lt;code&gt;cd qbittorrent-4.6.5/&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Create Build configuration (disabled GUI and enabled systemd. Those aren’t part of the defaults)&lt;br&gt;
&lt;code&gt;cmake -G &amp;quot;Ninja&amp;quot; -B build -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_INSTALL_PREFIX=/usr/local -DGUI=OFF -DSYSTEMD=ON&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Build &lt;code&gt;cmake --build build&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Install all the files to their relevant locations &lt;code&gt;cmake --install build&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Install service to run for a specific user.&lt;/p&gt;
&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;systemctl daemon-reload
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;systemctl &lt;span class="nb"&gt;enable&lt;/span&gt; qbittorrent-nox@&amp;lt;some-user&amp;gt;.service
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;systemctl start qbittorrent-nox@&amp;lt;some-user&amp;gt;.service&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;We’re done.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&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;

Feedback on this post? Mail me at &lt;a href="mailto:&amp;amp;#102;&amp;amp;%23101;&amp;amp;%23101;&amp;amp;%23100;&amp;amp;%2398;&amp;amp;%2397;&amp;amp;%2399;&amp;amp;%23107;&amp;amp;%2364;&amp;amp;%23106;&amp;amp;%2397;&amp;amp;%23110;&amp;amp;%23117;&amp;amp;%23115;&amp;amp;%23119;&amp;amp;%23111;&amp;amp;%23114;&amp;amp;%23120;&amp;amp;%2346;&amp;amp;%2399;&amp;amp;%23111;&amp;amp;%23109;?subject=%22Feedback on post: Notes to Self, Compiling Qbittorrent on a Raspberry Pi 5
%22" &gt;feedback at this domain&lt;/a&gt;
&lt;br&gt;

&lt;br&gt;

P.S. Subscribe to my &lt;a href="https://janusworx.com/subscribe/" target="_blank" rel="noreferrer"&gt;mailing list!&lt;/a&gt;&lt;br&gt;
Forward these posts and letters to your friends and get them to subscribe!&lt;br&gt;
P.P.S. Feed my &lt;a href="https://www.amazon.in/hz/wishlist/ls/2QAUKHHAMOOVS?ref_=wl_share" target="_blank" rel="noreferrer"&gt;insatiable reading habit.&lt;/a&gt;&lt;/p&gt;
&lt;div class="footnotes" role="doc-endnotes"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:1"&gt;
&lt;p&gt;which the project does make provisions for.&amp;#160;&lt;a href="#fnref:1" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:2"&gt;
&lt;p&gt;&lt;code&gt;Target &amp;quot;qbt_base&amp;quot; links to: Qt::CorePrivate but the target was not found.&lt;/code&gt; or words to that effect&amp;#160;&lt;a href="#fnref:2" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</description></item><item><title>Note to Self, My New Heuristic for Blogging</title><link>https://janusworx.com/personal/note-to-self-my-new-heuristic-for-blogging/</link><pubDate>Wed, 19 Jun 2024 14:43:28 +0530</pubDate><author>feedback@janusworx.com (Mario Jason Braganza)</author><guid>https://janusworx.com/personal/note-to-self-my-new-heuristic-for-blogging/</guid><description>&lt;br&gt;


&lt;figure class="mjb-img-center"&gt;
 &lt;img class="my-0 rounded-md" src="https://janusworx.com/images/2024/heuristic-for-blogging.jpg" alt="" /&gt;
 
 
 &lt;/figure&gt;
&lt;figcaption style="font-style: italic; text-align: center; font-size: 85%; color: var(--secondary)"&gt;
&lt;p&gt;Rain lilies, from Abby’s tiny window garden.&lt;br&gt;
They bloom only around this time of the year, on the onset of the monsoon.&lt;br&gt;
Click the pic, for a bigger image&lt;/p&gt;
&lt;/figcaption&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;

&lt;p&gt;I love to write.&lt;br&gt;
Correction, I &lt;em&gt;need&lt;/em&gt; to write.&lt;br&gt;
Writing helps me think, to be deliberate about things, to slow down.&lt;/p&gt;
&lt;p&gt;At the same time, writing is also a slow, plodding process for me. Every post seems to take forever. So many years of doing it and it does not get any easier.&lt;br&gt;
I agonise over what I want to say, the picture or quotes I want to include, the overall arc of my thoughts, the structure, everything has to be just so.&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;
I’ve lowered the bar, to build consistency, with my &lt;a href="https://janusworx.com/blog/100-word-writing-habit/" &gt;#100WordHabit&lt;/a&gt; and now I have a new problem. First, I could not get started, and now I cannot stop once I get started.&lt;br&gt;
I just have to finish my thoughts, my post, and that sometimes takes &lt;em&gt;hours&lt;/em&gt;.&lt;br&gt;
Which brings me back to me not wanting to start, for the fear that nothing else (that are in fact, more important) will get done.&lt;/p&gt;
&lt;p&gt;This in turn, brings me to the brainwave I had a couple of days ago, in the bath.&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;br&gt;
The pressure comes from wanting to &lt;em&gt;publish&lt;/em&gt; what I write, the day I write.&lt;br&gt;
What if, I didn’t?&lt;/p&gt;
&lt;p&gt;Nothing has to change. With the exception of a hard stop.&lt;br&gt;
One hour.&lt;br&gt;
One hour to write and publish.&lt;br&gt;
Or one hour to write and then put my pencil down.&lt;br&gt;
And then I can come back to it the next day.&lt;br&gt;
&lt;a href="https://janusworx.com/blog/org-mode-emacs-diary-sexps/" &gt;Yesterday’s post&lt;/a&gt; was the result of this approach.&lt;br&gt;
I wrote it over two days, in two one hour sessions.&lt;br&gt;
Very like Abby’s rain lillies up up above. They &lt;em&gt;are&lt;/em&gt; prepping through the year, to bloom at this time, every time. Just because I cannot see it, does not mean nothing’s happening&lt;/p&gt;
&lt;p&gt;One downside, that I potentially see, is that I will use this as an excuse to slack.&lt;br&gt;
I hope I don’t.&lt;br&gt;
But then on the other hand, without a pressure control valve like this, I can very easily see myself burning out again.&lt;/p&gt;
&lt;p&gt;So let’s see how this goes.&lt;br&gt;
I’m betting on me being a rain lily.&lt;/p&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;

Feedback on this post? Mail me at &lt;a href="mailto:&amp;amp;#102;&amp;amp;%23101;&amp;amp;%23101;&amp;amp;%23100;&amp;amp;%2398;&amp;amp;%2397;&amp;amp;%2399;&amp;amp;%23107;&amp;amp;%2364;&amp;amp;%23106;&amp;amp;%2397;&amp;amp;%23110;&amp;amp;%23117;&amp;amp;%23115;&amp;amp;%23119;&amp;amp;%23111;&amp;amp;%23114;&amp;amp;%23120;&amp;amp;%2346;&amp;amp;%2399;&amp;amp;%23111;&amp;amp;%23109;?subject=%22Feedback on post: Note to Self, My New Heuristic for Blogging
%22" &gt;feedback at this domain&lt;/a&gt;
&lt;br&gt;

&lt;br&gt;

P.S. Subscribe to my &lt;a href="https://janusworx.com/subscribe/" target="_blank" rel="noreferrer"&gt;mailing list!&lt;/a&gt;&lt;br&gt;
Forward these posts and letters to your friends and get them to subscribe!&lt;br&gt;
P.P.S. Feed my &lt;a href="https://www.amazon.in/hz/wishlist/ls/2QAUKHHAMOOVS?ref_=wl_share" target="_blank" rel="noreferrer"&gt;insatiable reading habit.&lt;/a&gt;&lt;/p&gt;
&lt;div class="footnotes" role="doc-endnotes"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:1"&gt;
&lt;p&gt;The end result might not be any good, but my mind needs to be satisfied, that all is to its liking and that I did the best I could&amp;#160;&lt;a href="#fnref:1" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:2"&gt;
&lt;p&gt;Don’t we all?&amp;#160;&lt;a href="#fnref:2" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</description></item><item><title>Need Day of Month Reminders in Org Mode? Emacs Sexp Diary Entries to the Rescue</title><link>https://janusworx.com/personal/org-mode-emacs-diary-sexps/</link><pubDate>Mon, 17 Jun 2024 15:08:40 +0530</pubDate><author>feedback@janusworx.com (Mario Jason Braganza)</author><guid>https://janusworx.com/personal/org-mode-emacs-diary-sexps/</guid><description>&lt;p&gt;&lt;br&gt;


&lt;figure&gt;
 &lt;img class="my-0 rounded-md" src="https://janusworx.com/images/2024/org-mode-diary-floats.jpg" alt="" /&gt;
 
 
 &lt;/figure&gt;&lt;/p&gt;
&lt;figcaption style="font-style: italic; text-align: center; font-size: 85%; color: var(--secondary)"&gt;
&lt;p&gt;This is how I imagine diary float entries in Emacs.&lt;br&gt;
Photo courtesy, &lt;a href="https://unsplash.com/@noaheleazar?utm_content=creditCopyText&amp;utm_medium=referral&amp;utm_source=unsplash"&gt;noah eleazar&lt;/a&gt; on &lt;a href="https://unsplash.com/photos/books-on-white-wooden-shelf-9p6R1IDCXNg?utm_content=creditCopyText&amp;utm_medium=referral&amp;utm_source=unsplash"&gt;Unsplash&lt;/a&gt;&lt;/p&gt;
&lt;/figcaption&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;

&lt;p&gt;I finally went ahead and read about what &lt;a href="https://www.gnu.org/software/emacs/manual/html_node/emacs/Sexp-Diary-Entries.html" target="_blank" rel="noreferrer"&gt;Emacs Diary S-expressions&lt;/a&gt; were.&lt;/p&gt;
&lt;p&gt;Going back, a bit.&lt;br&gt;
I make heavy use of Org Mode’s &lt;a href="https://orgmode.org/manual/Deadlines-and-Scheduling.html" target="_blank" rel="noreferrer"&gt;deadline and scheduling&lt;/a&gt; features.&lt;br&gt;
I put schedules and deadlines in lots of tasks across my ten or so org files, so that I can look at them every week, to decide what I’ll be doing this week as well as to review at the beginning of every month.&lt;br&gt;
To wit, there are plenty of tasks that repeat on a weekly and monthly cadence, and Org’s &lt;a href="https://orgmode.org/manual/Repeated-tasks.html" target="_blank" rel="noreferrer"&gt;repeaters&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;But&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;, there’s one kind of event I have, that Org doesn’t support quite well.&lt;br&gt;
If I want something on, let’s say the second Friday of every month, there’s no easy way to describe / do that with Org.&lt;br&gt;
Org defers to Emacs’ native &lt;a href="https://www.gnu.org/software/emacs/manual/html_node/emacs/Diary.html" target="_blank" rel="noreferrer"&gt;Diary Mode&lt;/a&gt; to do something like this.. Ok, not defers, but it supports Diary expression entries with a few caveats.&lt;br&gt;
Now those were scary when I first saw them, which is why I kicked the can down the road, and decided to just live with manually making entries for the second Friday of every month.&lt;br&gt;
A year of doing this, and I’ve finally had enough. So I finally went ahead and read about what &lt;a href="https://www.gnu.org/software/emacs/manual/html_node/emacs/Sexp-Diary-Entries.html" target="_blank" rel="noreferrer"&gt;Emacs Diary S-expressions&lt;/a&gt; were.&lt;/p&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;

&lt;a href="https://janusworx.com/images/2024/org-mode-emacs-diary-floats.jpg" &gt;
&lt;figure&gt;
 &lt;img class="my-0 rounded-md" src="https://janusworx.com/images/2024/org-mode-emacs-diary-floats-s.jpg" alt="" /&gt;
 
 
 &lt;/figure&gt;&lt;/a&gt;&lt;/p&gt;
&lt;figcaption style="font-style: italic; text-align: center; font-size: 85%; color: var(--secondary)"&gt;
&lt;p&gt;Click the pic to see a larger version of the chicken scratch&lt;/p&gt;
&lt;/figcaption&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;

&lt;p&gt;Only to realise, that they were not as scary as I feared, after close to a year of messing around with my Emacs config files. They look&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; just like Emacs functions with arguments.&lt;/p&gt;
&lt;p&gt;I scribbled one out the way, Org needs them written, by referring to the &lt;a href="https://www.gnu.org/software/emacs/manual/html_node/emacs/Sexp-Diary-Entries.html" target="_blank" rel="noreferrer"&gt;Emacs help&lt;/a&gt;.&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-orgmode" data-lang="orgmode"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&amp;lt;&lt;span class="s"&gt;%%(diary-float t 5 2)&lt;/span&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;I marked the sections out in the scrawly figure above.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;diary-float&lt;/code&gt; seems to be the function that does all the magic and then I have three arguments&lt;/li&gt;
&lt;li&gt;The first one, refers to the month by number. &lt;code&gt;8&lt;/code&gt; will mean August. &lt;code&gt;t&lt;/code&gt; will make things repeat every month.&lt;/li&gt;
&lt;li&gt;The second argument is day of week. &lt;code&gt;0&lt;/code&gt; being Sunday, and &lt;code&gt;6&lt;/code&gt;, Saturday.&lt;/li&gt;
&lt;li&gt;The third one refers to which week of the month. &lt;code&gt;2&lt;/code&gt; in my case, means the second week of the month.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;So …&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-orgmode" data-lang="orgmode"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gh"&gt;*&lt;/span&gt;&lt;span class="gs"&gt; My super important task&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; DEADLINE: &amp;lt;&lt;span class="s"&gt;%%(diary-float t 3 2)&lt;/span&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;shows up in my agenda as a task for the second Wednesday of every month!&lt;/p&gt;

&lt;figure&gt;
 &lt;img class="my-0 rounded-md" src="https://janusworx.com/images/2024/org-mode-diary-floats-agenda.png" alt="" /&gt;
 
 
 &lt;/figure&gt;
&lt;p&gt;There are a couple of caveats to this approach.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;This is not as task, even though I write it as one. It behaves more like a calendar entry. It more or less, just shows up in the agenda and I have to look at it.&lt;/li&gt;
&lt;li&gt;I can’t mark it as done and expect it to repeat, like a normal Org repeater. If I do that, the task is, uh &lt;em&gt;done&lt;/em&gt; and then that’s that.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Neither of these things bother me, because of the idiosyncratic way I drive my day.&lt;br&gt;
I normally review my daily agenda, and create a day plan for myself.&lt;br&gt;
Which means that I &lt;em&gt;copy&lt;/em&gt; the repeater task into my daily agenda as a single task and mark the repeater as done. So with the weird way I work, writing it out as a diary sexp, actually saves me a step ❤️&lt;br&gt;
And my cranky brain can now heave a sigh of relief.&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;
&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;

Feedback on this post? Mail me at &lt;a href="mailto:&amp;amp;#102;&amp;amp;%23101;&amp;amp;%23101;&amp;amp;%23100;&amp;amp;%2398;&amp;amp;%2397;&amp;amp;%2399;&amp;amp;%23107;&amp;amp;%2364;&amp;amp;%23106;&amp;amp;%2397;&amp;amp;%23110;&amp;amp;%23117;&amp;amp;%23115;&amp;amp;%23119;&amp;amp;%23111;&amp;amp;%23114;&amp;amp;%23120;&amp;amp;%2346;&amp;amp;%2399;&amp;amp;%23111;&amp;amp;%23109;?subject=%22Feedback on post: Need Day of Month Reminders in Org Mode? Emacs Sexp Diary Entries to the Rescue
%22" &gt;feedback at this domain&lt;/a&gt;
&lt;br&gt;

&lt;br&gt;

P.S. Subscribe to my &lt;a href="https://janusworx.com/subscribe/" target="_blank" rel="noreferrer"&gt;mailing list!&lt;/a&gt;&lt;br&gt;
Forward these posts and letters to your friends and get them to subscribe!&lt;br&gt;
P.P.S. Feed my &lt;a href="https://www.amazon.in/hz/wishlist/ls/2QAUKHHAMOOVS?ref_=wl_share" target="_blank" rel="noreferrer"&gt;insatiable reading habit.&lt;/a&gt;&lt;/p&gt;
&lt;div class="footnotes" role="doc-endnotes"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:1"&gt;
&lt;p&gt;old folks know by now, there’s always a “but” or “however” coming&amp;#160;&lt;a href="#fnref:1" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:2"&gt;
&lt;p&gt;and probably are&amp;#160;&lt;a href="#fnref:2" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:3"&gt;
&lt;p&gt;&lt;a href="https://youtu.be/_mXyXXYXwlQ" target="_blank" rel="noreferrer"&gt;until next time&lt;/a&gt;&amp;#160;&lt;a href="#fnref:3" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</description></item><item><title>Note to Self, Linking to a Headline in an Org File</title><link>https://janusworx.com/work/note-to-self-linking-to-a-headline-in-an-org-file/</link><pubDate>Thu, 06 Jun 2024 17:31:37 +0530</pubDate><author>feedback@janusworx.com (Mario Jason Braganza)</author><guid>https://janusworx.com/work/note-to-self-linking-to-a-headline-in-an-org-file/</guid><description>&lt;p&gt;I did one of those periodic, empty your mind sessions today.&lt;br&gt;
Everything is now in a brain dump org file.&lt;br&gt;
And now, like a every good productivity system preaches, I want to review the dump periodically.&lt;br&gt;
There is a task for my miscellenea for e.g. Could I convert it to a link and have it open the file at that precise location?&lt;br&gt;
Turns out Org Mode links let me do just that.&lt;br&gt;
All I need to do, is first &lt;em&gt;“&lt;a href="https://orgmode.org/manual/Handling-Links.html#Handling-Links-1" target="_blank" rel="noreferrer"&gt;store a link&lt;/a&gt;”&lt;/em&gt; in Org parlance. I do that by going to my target file that has the dump (the bottom file in the screenshot), go to the section that I need linking to (in my case, Misc Brain Dump), and hit &lt;code&gt;C-c l&lt;/code&gt;&lt;/p&gt;

&lt;figure&gt;
 &lt;img class="my-0 rounded-md" src="https://janusworx.com/images/2024/org-links-1.png" alt="" /&gt;
 
 
 &lt;/figure&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;

&lt;p&gt;After which I go to the file which needs to contain my link, and select my text that I’ll want converted into a link (&lt;em&gt;“&lt;a href="https://orgmode.org/manual/Handling-Links.html#index-C_002dc-C_002dl" target="_blank" rel="noreferrer"&gt;inserting a link&lt;/a&gt;”&lt;/em&gt; in org speak. In my case, the top file in the screenshot below).&lt;br&gt;
I select the Misc Brain Dump part of the “Look at the Misc Brain Dump” task and hit&lt;br&gt;
&lt;code&gt;C-c C-l&lt;/code&gt;&lt;br&gt;
It then switches me to a buffer that shows the links that Org currently has stored, with the minibuffer prompting me to choose one&lt;/p&gt;

&lt;figure&gt;
 &lt;img class="my-0 rounded-md" src="https://janusworx.com/images/2024/org-links-2.png" alt="" /&gt;
 
 
 &lt;/figure&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;

&lt;p&gt;I use the arrow keys to choose the one I want, hit return and it creates the link for me.&lt;/p&gt;

&lt;figure&gt;
 &lt;img class="my-0 rounded-md" src="https://janusworx.com/images/2024/org-links-3.png" alt="" /&gt;
 
 
 &lt;/figure&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;

&lt;p&gt;Here, I’ve switched away from my brain dump. (I’ve closed the file in fact)&lt;/p&gt;

&lt;figure&gt;
 &lt;img class="my-0 rounded-md" src="https://janusworx.com/images/2024/org-links-4.png" alt="" /&gt;
 
 
 &lt;/figure&gt;
&lt;p&gt;I click the link in my tasks file and …&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;

&lt;p&gt;It opens right up, at the exact location I want. Woohoo!&lt;/p&gt;

&lt;figure&gt;
 &lt;img class="my-0 rounded-md" src="https://janusworx.com/images/2024/org-links-5.png" alt="" /&gt;
 
 
 &lt;/figure&gt;
&lt;p&gt;And just like everything else with Org, it’s plain, simple, elegant, text functionality.&lt;br&gt;
I examined the link and it was a borg standard Org link, with the link having the header tacked on the end, like so …&lt;br&gt;
&lt;code&gt;file:brain-dump.org::*Misc Brain Dump&lt;/code&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;/p&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;

Feedback on this post? Mail me at &lt;a href="mailto:&amp;amp;#102;&amp;amp;%23101;&amp;amp;%23101;&amp;amp;%23100;&amp;amp;%2398;&amp;amp;%2397;&amp;amp;%2399;&amp;amp;%23107;&amp;amp;%2364;&amp;amp;%23106;&amp;amp;%2397;&amp;amp;%23110;&amp;amp;%23117;&amp;amp;%23115;&amp;amp;%23119;&amp;amp;%23111;&amp;amp;%23114;&amp;amp;%23120;&amp;amp;%2346;&amp;amp;%2399;&amp;amp;%23111;&amp;amp;%23109;?subject=%22Feedback on post: Note to Self, Linking to a Headline in an Org File
%22" &gt;feedback at this domain&lt;/a&gt;
&lt;br&gt;

&lt;br&gt;

P.S. Subscribe to my &lt;a href="https://janusworx.com/subscribe/" target="_blank" rel="noreferrer"&gt;mailing list!&lt;/a&gt;&lt;br&gt;
Forward these posts and letters to your friends and get them to subscribe!&lt;br&gt;
P.P.S. Feed my &lt;a href="https://www.amazon.in/hz/wishlist/ls/2QAUKHHAMOOVS?ref_=wl_share" target="_blank" rel="noreferrer"&gt;insatiable reading habit.&lt;/a&gt;&lt;/p&gt;
&lt;div class="footnotes" role="doc-endnotes"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:1"&gt;
&lt;p&gt;which should have been evident when I chose the link to insert, but I only saw it and went Aha! much later 😂&amp;#160;&lt;a href="#fnref:1" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</description></item><item><title>Notes to Self on Renewing Wildcard Letsencrypt Certs Manually With Lego</title><link>https://janusworx.com/work/notes-to-self-on-renewing-wildcard-letsencrypt-certs-manually-with-lego/</link><pubDate>Fri, 31 May 2024 11:12:17 +0530</pubDate><author>feedback@janusworx.com (Mario Jason Braganza)</author><guid>https://janusworx.com/work/notes-to-self-on-renewing-wildcard-letsencrypt-certs-manually-with-lego/</guid><description>&lt;p&gt;&lt;br&gt;
&lt;br&gt;

&lt;figure&gt;
 &lt;img class="my-0 rounded-md" src="https://janusworx.com/images/2024/lego-logo.svg" alt="" /&gt;
 
 
 &lt;/figure&gt;&lt;/p&gt;
&lt;figcaption style="font-style: italic; text-align: center; font-size: 85%; color: var(--secondary)"&gt;
&lt;p&gt;image courtesy, the &lt;a href="https://github.com/go-acme/lego" target="_blank" rel="noreferrer"&gt;Lego Github page&lt;/a&gt;&lt;/p&gt;
&lt;/figcaption&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;

&lt;p&gt;I want to someday, automate all my domain certificate renewals.&lt;br&gt;
Namecheap doesn’t support it, ergo my move to &lt;a href="https://porkbun.com/about" target="_blank" rel="noreferrer"&gt;Porkbun&lt;/a&gt;.&lt;br&gt;
And &lt;code&gt;certbot&lt;/code&gt; doesn’t support Porkbun, so I’ve moved to &lt;a href="https://github.com/go-acme/lego" target="_blank" rel="noreferrer"&gt;Lego&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I still need to someday figure out how to do this automatically, but for now, since all is in place, this is the new manual process.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;You’ll need to generate a Porkbun API key along with its associated secret, and store it somewhere safe and secure. (This is a one time thing, the &lt;a href="https://kb.porkbun.com/article/190-getting-started-with-the-porkbun-api" target="_blank" rel="noreferrer"&gt;Generating API keys&lt;/a&gt; section here describes how)&lt;/li&gt;
&lt;li&gt;Another one time step is to &lt;a href="https://go-acme.github.io/lego/installation/" target="_blank" rel="noreferrer"&gt;get Lego installed&lt;/a&gt; and have it &lt;a href="https://go-acme.github.io/lego/dns/porkbun/" target="_blank" rel="noreferrer"&gt;generate your certs&lt;/a&gt;,
and then have your applications, point to where they are.&lt;/li&gt;
&lt;li&gt;Command to renew: &lt;code&gt;PORKBUN_SECRET_API_KEY=&amp;quot;your-api-*secret*&amp;quot; PORKBUN_API_KEY=&amp;quot;your-porkbun-api-key&amp;quot; ./lego --domains your-domain.tld --domains *.domain.tld --email your-email@domain --dns porkbun renew&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;And the renewal’s done!&lt;/li&gt;
&lt;li&gt;Restart yer engines … err your applications&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; et voilà!&lt;/li&gt;
&lt;li&gt;If you have multiple machines, figure out a way to securely transfer the certs there too.&lt;/li&gt;
&lt;/ol&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;

Feedback on this post? Mail me at &lt;a href="mailto:&amp;amp;#102;&amp;amp;%23101;&amp;amp;%23101;&amp;amp;%23100;&amp;amp;%2398;&amp;amp;%2397;&amp;amp;%2399;&amp;amp;%23107;&amp;amp;%2364;&amp;amp;%23106;&amp;amp;%2397;&amp;amp;%23110;&amp;amp;%23117;&amp;amp;%23115;&amp;amp;%23119;&amp;amp;%23111;&amp;amp;%23114;&amp;amp;%23120;&amp;amp;%2346;&amp;amp;%2399;&amp;amp;%23111;&amp;amp;%23109;?subject=%22Feedback on post: Notes to Self on Renewing Wildcard Letsencrypt Certs Manually With Lego
%22" &gt;feedback at this domain&lt;/a&gt;
&lt;br&gt;

&lt;br&gt;

P.S. Subscribe to my &lt;a href="https://janusworx.com/subscribe/" target="_blank" rel="noreferrer"&gt;mailing list!&lt;/a&gt;&lt;br&gt;
Forward these posts and letters to your friends and get them to subscribe!&lt;br&gt;
P.P.S. Feed my &lt;a href="https://www.amazon.in/hz/wishlist/ls/2QAUKHHAMOOVS?ref_=wl_share" target="_blank" rel="noreferrer"&gt;insatiable reading habit.&lt;/a&gt;&lt;/p&gt;
&lt;div class="footnotes" role="doc-endnotes"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:1"&gt;
&lt;p&gt;in my case Nginx&amp;#160;&lt;a href="#fnref:1" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</description></item><item><title>Ignoring Syncthing Conflict Files in the Org Agenda Folder</title><link>https://janusworx.com/work/ignoring-syncthing-conflict-files-in-org-agenda-folder/</link><pubDate>Sun, 26 May 2024 16:03:01 +0530</pubDate><author>feedback@janusworx.com (Mario Jason Braganza)</author><guid>https://janusworx.com/work/ignoring-syncthing-conflict-files-in-org-agenda-folder/</guid><description>&lt;p&gt;Now that I have &lt;a href="https://janusworx.com/blog/org-mode-clocking-in-and-out-of-tasks-on-task-state-changes/" &gt;the power of large language models&lt;/a&gt;, in the palm of my hand …&lt;br&gt;
&lt;br&gt;


&lt;figure&gt;
 &lt;img class="my-0 rounded-md" src="https://janusworx.com/images/2024/he-man-i-have-the-power.gif" alt="" /&gt;
 
 
 &lt;/figure&gt;&lt;/p&gt;
&lt;figcaption style="font-style: italic; text-align: center; font-size: 85%; color: var(--secondary)"&gt;
&lt;p&gt;You just had to be there, to really appreciate this 😂&lt;br&gt;
Image, courtesy user &lt;a href="https://makeagif.com/i/Mz4AjF" target="_blank" rel="noreferrer"&gt;straiven on makeagif&lt;/a&gt;&lt;/p&gt;
&lt;/figcaption&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;

I decided to see, if it could help me solve one of my real pain points with Org Mode.&lt;br&gt;
I had asked for help &lt;a href="https://toots.dgplug.org/@jason/112483224007964606" target="_blank" rel="noreferrer"&gt;over on the fediverse&lt;/a&gt;, after months of trial and error, on just how to fix this.&lt;br&gt;
The issue being, I needed a way to tell my Org Agenda, to ignore files with a certain pattern.&lt;/p&gt;
&lt;p&gt;I have a folder (called &lt;code&gt;syncbox&lt;/code&gt;) full of files, that Org Mode looks at to generate the agenda for me.&lt;br&gt;
Now these files are also synced via &lt;a href="https://syncthing.net/" target="_blank" rel="noreferrer"&gt;Syncthing&lt;/a&gt; over to my phone, where another program called &lt;a href="https://www.beorgapp.com/" target="_blank" rel="noreferrer"&gt;Beorg&lt;/a&gt; looks at them too and shows them as entries in my calendar, so that I don’t miss the really important things I need to do.&lt;/p&gt;
&lt;p&gt;Functionally, all is well with this setup, except for one teensy thing.&lt;br&gt;
Every once in a while, when certain files are in use on both, my desktop and my phone, Syncthing will create conflicting copies of said files in use.&lt;br&gt;
This happens most often, with my &lt;code&gt;tasks.org&lt;/code&gt; file.&lt;br&gt;
Once it conflicts, my &lt;code&gt;syncbox&lt;/code&gt; gets full with files like,&lt;br&gt;
&lt;code&gt;tasks.sync-conflict-20240408-041556-2TQWENY.org&lt;/code&gt; and&lt;br&gt;
&lt;code&gt;tasks.sync-conflict-20240516-101335-2TQWENY.org&lt;/code&gt; and&lt;br&gt;
&lt;code&gt;tasks.sync-conflict-20240520-053451-2TQWENY.org&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;What happens &lt;em&gt;then,&lt;/em&gt; is that Org Agenda happily reads those files too, and I end up with lots of duplicated tasks.&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;/p&gt;
&lt;p&gt;As usual, tackling it by writing lisp, was an idea fraught with terror for me. I tried quite a bit and failed.&lt;br&gt;
My next plan of attack was that Org Agenda had a regex&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;, that it would process. My regex is better than my lisp, but even that was to no avail.&lt;br&gt;
Emacs regex does not support lookaheads / lookbehinds and I did not want to have some complicated pattern, that even I would not recognise, a few months down the line.&lt;br&gt;
In the meanwhile, Ihor told me to stop faffing about and &lt;a href="https://emacs.ch/@yantar92/112484511603174787" target="_blank" rel="noreferrer"&gt;just write&lt;/a&gt; a function&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;
&lt;p&gt;So I asked Claude to go do the work for me and I ended up with …&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-emacs-lisp" data-lang="emacs-lisp"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;defun&lt;/span&gt; &lt;span class="nv"&gt;mjb/set-org-agenda-files-from-syncbox-directory&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s"&gt;&amp;#34;Set &lt;/span&gt;&lt;span class="ss"&gt;`org-agenda-files&amp;#39;&lt;/span&gt;&lt;span class="s"&gt; to all Org files in the &amp;#39;syncbox&amp;#39; directory, excluding files with &amp;#39;.sync-conflict&amp;#39; in the name.&amp;#34;&lt;/span&gt;
&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="nb"&gt;let&lt;/span&gt; &lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="nv"&gt;syncbox-dir&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;expand-file-name&lt;/span&gt; &lt;span class="s"&gt;&amp;#34;syncbox&amp;#34;&lt;/span&gt; &lt;span class="nv"&gt;my-org-directory&lt;/span&gt;&lt;span class="p"&gt;)))&lt;/span&gt;
&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="nb"&gt;when&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;file-directory-p&lt;/span&gt; &lt;span class="nv"&gt;syncbox-dir&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&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="nb"&gt;setq&lt;/span&gt; &lt;span class="nv"&gt;org-agenda-files&lt;/span&gt;
&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="nf"&gt;mapcar&lt;/span&gt;
&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="nb"&gt;lambda&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;file&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;expand-file-name&lt;/span&gt; &lt;span class="nv"&gt;file&lt;/span&gt; &lt;span class="nv"&gt;syncbox-dir&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&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="nv"&gt;seq-filter&lt;/span&gt;
&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="nb"&gt;lambda&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;file&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;not&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;string-match-p&lt;/span&gt; &lt;span class="s"&gt;&amp;#34;\\.sync-conflict&amp;#34;&lt;/span&gt; &lt;span class="nv"&gt;file&lt;/span&gt;&lt;span class="p"&gt;)))&lt;/span&gt;
&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="nf"&gt;directory-files&lt;/span&gt; &lt;span class="nv"&gt;syncbox-dir&lt;/span&gt; &lt;span class="no"&gt;t&lt;/span&gt; &lt;span class="s"&gt;&amp;#34;\.org$&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)))))))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&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="nv"&gt;mjb/set-org-agenda-files-from-syncbox-directory&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;which I dutifully dumped into my &lt;code&gt;init&lt;/code&gt; file.&lt;br&gt;
And that did the trick!&lt;/p&gt;
&lt;p&gt;What did strike me, is that now that I am using this approach, my chicken and egg struggle is finally at an end. I don’t have to struggle to learn lisp to hack emacs which needs me to learn lisp.&lt;br&gt;
I realise it takes only a short time of dedicated effort. But right now, it is time I don’t have, and don’t know when I’ll get.&lt;br&gt;
So the new fangled LLM AIs can help me sort my Emacs pain points and I can learn Lisp at leisure.&lt;br&gt;
And I’ll use, &lt;a href="https://framapiaf.org/@vindarel" target="_blank" rel="noreferrer"&gt;friend on the fediverse&lt;/a&gt;, Vincent Dardel’s &lt;a href="https://www.udemy.com/course/common-lisp-programming/?couponCode=NVDPRODIN35" target="_blank" rel="noreferrer"&gt;excellent course to do just that&lt;/a&gt;.&lt;/p&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;

Feedback on this post? Mail me at &lt;a href="mailto:&amp;amp;#102;&amp;amp;%23101;&amp;amp;%23101;&amp;amp;%23100;&amp;amp;%2398;&amp;amp;%2397;&amp;amp;%2399;&amp;amp;%23107;&amp;amp;%2364;&amp;amp;%23106;&amp;amp;%2397;&amp;amp;%23110;&amp;amp;%23117;&amp;amp;%23115;&amp;amp;%23119;&amp;amp;%23111;&amp;amp;%23114;&amp;amp;%23120;&amp;amp;%2346;&amp;amp;%2399;&amp;amp;%23111;&amp;amp;%23109;" &gt;feedback at this domain&lt;/a&gt;
&lt;br&gt;

&lt;br&gt;

P.S. Subscribe to my &lt;a href="https://janusworx.com/subscribe/" target="_blank" rel="noreferrer"&gt;mailing list!&lt;/a&gt;&lt;br&gt;
Forward these posts and letters to your friends and get them to subscribe!&lt;br&gt;
P.P.S. Feed my &lt;a href="https://www.amazon.in/hz/wishlist/ls/2QAUKHHAMOOVS?ref_=wl_share" target="_blank" rel="noreferrer"&gt;insatiable reading habit.&lt;/a&gt;&lt;/p&gt;
&lt;div class="footnotes" role="doc-endnotes"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:1"&gt;
&lt;p&gt;It drove me nuts in the beginning, when I did not know what was happening. I was like, I /just/ finished this task. And it’s popping up again?! Is my computer haunted?&amp;#160;&lt;a href="#fnref:1" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:2"&gt;
&lt;p&gt;defined in &lt;code&gt;org-agenda-file-regexp&lt;/code&gt; with a default value of &lt;code&gt;&amp;quot;\\`[^.].*\\.org\\'&amp;quot;&lt;/code&gt;&amp;#160;&lt;a href="#fnref:2" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:3"&gt;
&lt;p&gt;He did not quite put it that way. He was much kinder, obviously :)&amp;#160;&lt;a href="#fnref:3" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</description></item><item><title>Search for Something! Kill the Line! In Emacs</title><link>https://janusworx.com/personal/search-for-something-kill-the-line-in-emacs/</link><pubDate>Sat, 25 May 2024 10:19:21 +0530</pubDate><author>feedback@janusworx.com (Mario Jason Braganza)</author><guid>https://janusworx.com/personal/search-for-something-kill-the-line-in-emacs/</guid><description>&lt;p&gt;So I bought myself comics. And I was naively trying to count how many I got.&lt;br&gt;
And I went aha! I’ll paste the lines into Emacs and the lines numbers will tell me :)
So I just selected stuff off the web and put it in and …&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Sheena: Queen of the Jungle, Vol. 2
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Dynamite Entertainment
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;CBZ
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;185.4 MB
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;EPUB
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;105.4 MB
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;PDF
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;439.9 MB
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Queen Sonja - Issue. #2
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Dynamite Entertainment
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;CBZ
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;17.7 MB
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;EPUB
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;16.6 MB
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;PDF
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;137.2 MB
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Vampirella: Throne of Skulls Vol 03
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Dynamite Entertainment
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;CBZ
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;229.3 MB
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;EPUB
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;135.9 MB
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;PDF
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;438.6 MB
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Red Sonja and the Ballad of the Red Goddess
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Dynamite Entertainment
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;CBZ
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;132.9 MB
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;EPUB
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;50.2 MB
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;PDF
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;376.8 MB
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Vampirella Strikes Vol 01
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Dynamite Entertainment
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;CBZ
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;106.4 MB
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;EPUB
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;118.7 MB
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;PDF
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;351.7 MB
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;… really long list elided&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;And I go, Ugh! It’s Saturday! I’m too lazy to go selecting and deleting that cruft between my titles. Isn’t there something in Emacs that can help?&lt;br&gt;
Spoiler Alert: Of course there is! Meet &lt;a href="https://www.gnu.org/software/emacs/manual/html_node/emacs/Other-Repeating-Search.html#index-flush_002dlines" target="_blank" rel="noreferrer"&gt;&lt;code&gt;flush-lines&lt;/code&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;M-x flush-lines&lt;/code&gt; asks me for a regex pattern.&lt;br&gt;
I gave it &lt;code&gt;\ MB&lt;/code&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; et voilà! Every line that had a space followed by &lt;code&gt;MB&lt;/code&gt; disappeared!&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Sheena: Queen of the Jungle, Vol. 2
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Dynamite Entertainment
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;CBZ
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;EPUB
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;PDF
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Queen Sonja - Issue. #2
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Dynamite Entertainment
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;CBZ
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;EPUB
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;PDF
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Vampirella: Throne of Skulls Vol 03
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Dynamite Entertainment
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;CBZ
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;EPUB
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;PDF
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Red Sonja and the Ballad of the Red Goddess
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Dynamite Entertainment
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;CBZ
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;EPUB
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;PDF
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Vampirella Strikes Vol 01
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Dynamite Entertainment
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;CBZ
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;EPUB
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;PDF
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;… long list elided&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;And so a few, rapid commands to excise lines with &lt;code&gt;Dynamite Entertainment&lt;/code&gt;, &lt;code&gt;CBZ&lt;/code&gt;, &lt;code&gt;EPUB&lt;/code&gt; and &lt;code&gt;PDF&lt;/code&gt; later …&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Sheena: Queen of the Jungle, Vol. 2
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Queen Sonja - Issue. #2
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Vampirella: Throne of Skulls Vol 03
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Red Sonja and the Ballad of the Red Goddess
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Vampirella Strikes Vol 01
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;… still a long list, but exactly what I wanted :)&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;I love you, Emacs!&lt;/p&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;

Feedback on this post? Mail me at &lt;a href="mailto:&amp;amp;#102;&amp;amp;%23101;&amp;amp;%23101;&amp;amp;%23100;&amp;amp;%2398;&amp;amp;%2397;&amp;amp;%2399;&amp;amp;%23107;&amp;amp;%2364;&amp;amp;%23106;&amp;amp;%2397;&amp;amp;%23110;&amp;amp;%23117;&amp;amp;%23115;&amp;amp;%23119;&amp;amp;%23111;&amp;amp;%23114;&amp;amp;%23120;&amp;amp;%2346;&amp;amp;%2399;&amp;amp;%23111;&amp;amp;%23109;" &gt;feedback at this domain&lt;/a&gt;
&lt;br&gt;

&lt;br&gt;

P.S. Subscribe to my &lt;a href="https://janusworx.com/subscribe/" target="_blank" rel="noreferrer"&gt;mailing list!&lt;/a&gt;&lt;br&gt;
Forward these posts and letters to your friends and get them to subscribe!&lt;br&gt;
P.P.S. Feed my &lt;a href="https://www.amazon.in/hz/wishlist/ls/2QAUKHHAMOOVS?ref_=wl_share" target="_blank" rel="noreferrer"&gt;insatiable reading habit.&lt;/a&gt;&lt;/p&gt;
&lt;div class="footnotes" role="doc-endnotes"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:1"&gt;
&lt;p&gt;the &lt;code&gt;\&lt;/code&gt; followed by a space is just to demonstrate here that I put in a space. I just naively typed a space followed by MB, actually&amp;#160;&lt;a href="#fnref:1" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</description></item><item><title>Why I Write</title><link>https://janusworx.com/personal/why-i-write/</link><pubDate>Fri, 24 May 2024 20:53:48 +0530</pubDate><author>feedback@janusworx.com (Mario Jason Braganza)</author><guid>https://janusworx.com/personal/why-i-write/</guid><description>&lt;p&gt;&lt;a href="https://janusworx.com/images/2024/why-i-write-IMG_3778.jpg" &gt;
&lt;figure&gt;
 &lt;img class="my-0 rounded-md" src="https://janusworx.com/images/2024/why-i-write-IMG_3778s.jpg" alt="page of my illegible scrawl" /&gt;
 
 
 &lt;/figure&gt;&lt;/a&gt;&lt;/p&gt;
&lt;figcaption style="font-style: italic; text-align: center; font-size: 85%; color: var(--secondary)"&gt;
&lt;p&gt;Click to see a larger version, just as illegible&lt;/p&gt;
&lt;/figcaption&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;

&lt;p&gt;As I struggle to write, sometimes I wonder why I even do it.&lt;br&gt;
And when I don’t, I then get this strange uncontrollable urge to write something, anything.&lt;br&gt;
Damned if you do, damned if you don’t.&lt;/p&gt;
&lt;p&gt;And now in addition to that crazy struggle, I’ve caught myself getting upset of late. All because nobody “shares” the posts I put out.&lt;br&gt;
And I worry if anyone even reads my stuff?&lt;br&gt;
And do they like it?&lt;br&gt;
And if they do, why would they not share it?&lt;br&gt;
Not good enough?&lt;br&gt;
Should I be doing more?&lt;br&gt;
Write better?&lt;/p&gt;
&lt;p&gt;All of which came to a head today.&lt;br&gt;
And after a bit of laughing at my silliness, I decided to write down what I tell myself every year.&lt;/p&gt;
&lt;p&gt;Because I do write.&lt;br&gt;
Whether anyone reads it. Or not.&lt;br&gt;
Which is why I wonder why I get trapped in this weird neurotic spider web every year.&lt;br&gt;
I’m done comparing, in the words of Lamott, my insides to their outsides.&lt;/p&gt;
&lt;p&gt;So a few thoughts to myself on why I do it. A non exhaustive list …&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;I love to read.&lt;/li&gt;
&lt;li&gt;I love to write.&lt;/li&gt;
&lt;li&gt;I write primarily for myself. First and foremost.&lt;/li&gt;
&lt;li&gt;I write because I cannot help it.&lt;/li&gt;
&lt;li&gt;I write because I cannot not write.&lt;/li&gt;
&lt;li&gt;I write to document things and thingamajigs and doodads and small things and big things. Because I forget. And writing helps me remember. And then it helps other people learn. And then they teach me new things. And I learn more. And I write more. And the whole virtuous cycle repeats.&lt;/li&gt;
&lt;li&gt;I write because everything in me, has got to come out on the page, so that there is space within me, to then function.&lt;/li&gt;
&lt;li&gt;I write because then everything slows down to the pace of my fingers rather than the crazy light speed dizziness within my brain.&lt;/li&gt;
&lt;li&gt;I write because I can then think.&lt;/li&gt;
&lt;li&gt;I write because it sharpens my focus.&lt;/li&gt;
&lt;li&gt;I write because it makes it easy to forget.&lt;/li&gt;
&lt;li&gt;I write because I read what I write. Even if no one else does. Even if no one else wants to. Even if no one else can. And I love my past selves, who’ve scribbled their thoughts and feelings to protect me, shield me, guide me and give me comfort, solace and love.&lt;/li&gt;
&lt;li&gt;I write because then, my heart then aches a little bit less.&lt;/li&gt;
&lt;li&gt;I write because it’s brought me back from the edge of the void. Twice.&lt;/li&gt;
&lt;li&gt;I write because it helps me be resilient. Persistent. To quote Taleb, &lt;em&gt;&lt;strong&gt;Antifragile.&lt;/strong&gt;&lt;/em&gt; And to quote Angelou, &lt;em&gt;&lt;strong&gt;“You may trod me in the very dirt / But still, like dust, I rise.”&lt;/strong&gt;&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;I write because I have scars. And writing lessens the hurt. To quote Bareilles, &lt;em&gt;&lt;strong&gt;it helps me hold on, till there’s something else to hold on to.&lt;/strong&gt;&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;I write because …&lt;/li&gt;
&lt;li&gt;I write because today I realise, that’s who I am.&lt;br&gt;
I am a writer, because that’s what I do. I write.&lt;/li&gt;
&lt;/ol&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;

Feedback on this post? Mail me at &lt;a href="mailto:&amp;amp;#102;&amp;amp;%23101;&amp;amp;%23101;&amp;amp;%23100;&amp;amp;%2398;&amp;amp;%2397;&amp;amp;%2399;&amp;amp;%23107;&amp;amp;%2364;&amp;amp;%23106;&amp;amp;%2397;&amp;amp;%23110;&amp;amp;%23117;&amp;amp;%23115;&amp;amp;%23119;&amp;amp;%23111;&amp;amp;%23114;&amp;amp;%23120;&amp;amp;%2346;&amp;amp;%2399;&amp;amp;%23111;&amp;amp;%23109;" &gt;feedback at this domain&lt;/a&gt;
&lt;br&gt;

&lt;br&gt;

P.S. Subscribe to my &lt;a href="https://janusworx.com/subscribe/" target="_blank" rel="noreferrer"&gt;mailing list!&lt;/a&gt;&lt;br&gt;
Forward these posts and letters to your friends and get them to subscribe!&lt;br&gt;
P.P.S. Feed my &lt;a href="https://www.amazon.in/hz/wishlist/ls/2QAUKHHAMOOVS?ref_=wl_share" target="_blank" rel="noreferrer"&gt;insatiable reading habit.&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Org Mode Clocking in and Out of Tasks on Task State Changes</title><link>https://janusworx.com/work/org-mode-clocking-in-and-out-of-tasks-on-task-state-changes/</link><pubDate>Thu, 23 May 2024 19:03:13 +0530</pubDate><author>feedback@janusworx.com (Mario Jason Braganza)</author><guid>https://janusworx.com/work/org-mode-clocking-in-and-out-of-tasks-on-task-state-changes/</guid><description>
&lt;figure&gt;
 &lt;img class="my-0 rounded-md" src="https://janusworx.com/images/2024/org-mode-unicorn.svg" alt="" /&gt;
 
 
 &lt;/figure&gt;
&lt;figcaption style="font-style: italic; text-align: center; font-size: 85%; color: var(--secondary)"&gt;
&lt;p&gt;Logo courtesy, the &lt;a href="https://orgmode.org/" target="_blank" rel="noreferrer"&gt;Org Mode Website&lt;/a&gt;&lt;/p&gt;
&lt;/figcaption&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;

&lt;p&gt;Lisp is on the list of things to learn someday.&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;
And in the meanwhile, I need to be able to hack Emacs to do the stuff I want.&lt;br&gt;
But also, there are a ton of other things, that are currently much, much higher on my list of priorities.&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;br&gt;
And while the community is &lt;em&gt;&lt;strong&gt;extremely&lt;/strong&gt;&lt;/em&gt; kind and generous, the expectation is that you need to put in the time and the work.&lt;br&gt;
Which I currently don’t have and can’t do.&lt;/p&gt;
&lt;p&gt;And so, it finally happened.&lt;br&gt;
I signed up for a Claude account and told it to write me some lisp.&lt;/p&gt;
&lt;p&gt;I am heavily Org Mode task driven, these days and I have a manual workflow that I need a teensy bit of help with.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;I start work on a task&lt;/li&gt;
&lt;li&gt;I mark it as WORKING (and clock in manually)&lt;/li&gt;
&lt;li&gt;I want to switch to another task&lt;/li&gt;
&lt;li&gt;I mark my original task as WAITING (and clock out manually)&lt;/li&gt;
&lt;li&gt;I then mark my new task as WORKING (and clock in manually)&lt;/li&gt;
&lt;li&gt;After a while I switch to the original task, and clock in manually (after marking the current task as WAITING and clocking out there manually)&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;What bugs me, is the clocking in and out, because …&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;I tend to forget it, messing up all my clock times and …&lt;/li&gt;
&lt;li&gt;because it is now becoming painful on my middle aged fingers&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;
&lt;/ol&gt;
&lt;p&gt;So, like I said, I prompted Claude to give me code that would clock me in automatically, whenever I changed state to WORKING and clock me out when I switched to WAITING&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;br&gt;
It spat out some code.&lt;br&gt;
I tried to reasonably guess and verify what it did.&lt;br&gt;
It looked ok.&lt;br&gt;
I tried it.&lt;br&gt;
It worked!&lt;br&gt;
And that’s that.&lt;br&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;
&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt; 1
&lt;/span&gt;&lt;span class="lnt"&gt; 2
&lt;/span&gt;&lt;span class="lnt"&gt; 3
&lt;/span&gt;&lt;span class="lnt"&gt; 4
&lt;/span&gt;&lt;span class="lnt"&gt; 5
&lt;/span&gt;&lt;span class="lnt"&gt; 6
&lt;/span&gt;&lt;span class="lnt"&gt; 7
&lt;/span&gt;&lt;span class="lnt"&gt; 8
&lt;/span&gt;&lt;span class="lnt"&gt; 9
&lt;/span&gt;&lt;span class="lnt"&gt;10
&lt;/span&gt;&lt;span class="lnt"&gt;11
&lt;/span&gt;&lt;span class="lnt"&gt;12
&lt;/span&gt;&lt;span class="lnt"&gt;13
&lt;/span&gt;&lt;span class="lnt"&gt;14
&lt;/span&gt;&lt;span class="lnt"&gt;15
&lt;/span&gt;&lt;span class="lnt"&gt;16
&lt;/span&gt;&lt;span class="lnt"&gt;17
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-elisp" data-lang="elisp"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;defun&lt;/span&gt; &lt;span class="nv"&gt;mjb/org-clock-in-when-task-state-changes-to-working&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s"&gt;&amp;#34;Clock in an Org mode task when the status is changed to &amp;#39;WORKING&amp;#39;.&amp;#34;&lt;/span&gt;
&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="nb"&gt;when&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;and&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;eq&lt;/span&gt; &lt;span class="nv"&gt;major-mode&lt;/span&gt; &lt;span class="ss"&gt;&amp;#39;org-mode&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&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="nf"&gt;member&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;downcase&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;or&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;org-get-todo-state&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="s"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="o"&gt;&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;working&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)))&lt;/span&gt;
&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="nv"&gt;org-clock-in&lt;/span&gt;&lt;span class="p"&gt;)))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&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="nb"&gt;defun&lt;/span&gt; &lt;span class="nv"&gt;mjb/org-clock-out-when-task-state-changes-to-waiting&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s"&gt;&amp;#34;Clock out an Org mode task when the status is changed to &amp;#39;WAITING&amp;#39;.&amp;#34;&lt;/span&gt;
&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="nb"&gt;when&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;and&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;eq&lt;/span&gt; &lt;span class="nv"&gt;major-mode&lt;/span&gt; &lt;span class="ss"&gt;&amp;#39;org-mode&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&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="nf"&gt;member&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;downcase&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;or&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;org-get-todo-state&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="s"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="o"&gt;&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;waiting&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)))&lt;/span&gt;
&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="nv"&gt;org-clock-out&lt;/span&gt;&lt;span class="p"&gt;)))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;;; These lines make the functions above, hook to Org’s state change mechanism.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;;; So that everytime a task’s state changes, these functions are called&lt;/span&gt;
&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="nv"&gt;add-hook&lt;/span&gt; &lt;span class="ss"&gt;&amp;#39;org-after-todo-state-change-hook&lt;/span&gt; &lt;span class="nf"&gt;#&amp;#39;&lt;/span&gt;&lt;span class="nv"&gt;mjb/org-clock-in-when-task-state-changes-to-working&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&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="nv"&gt;add-hook&lt;/span&gt; &lt;span class="ss"&gt;&amp;#39;org-after-todo-state-change-hook&lt;/span&gt; &lt;span class="nf"&gt;#&amp;#39;&lt;/span&gt;&lt;span class="nv"&gt;mjb/org-clock-out-when-task-state-changes-to-waiting&lt;/span&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;
&lt;/div&gt;
&lt;/div&gt;&lt;/div&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;

Reminds me of the old adages about humans and bicycles being the fastest and humans and chess programs&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;, being the best players.&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;&lt;br&gt;
All of it is good, if it aids me, and hopefully does not get in my way.&lt;/p&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;

Feedback on this post? Mail me at &lt;a href="mailto:&amp;amp;#102;&amp;amp;%23101;&amp;amp;%23101;&amp;amp;%23100;&amp;amp;%2398;&amp;amp;%2397;&amp;amp;%2399;&amp;amp;%23107;&amp;amp;%2364;&amp;amp;%23106;&amp;amp;%2397;&amp;amp;%23110;&amp;amp;%23117;&amp;amp;%23115;&amp;amp;%23119;&amp;amp;%23111;&amp;amp;%23114;&amp;amp;%23120;&amp;amp;%2346;&amp;amp;%2399;&amp;amp;%23111;&amp;amp;%23109;" &gt;feedback at this domain&lt;/a&gt;
&lt;br&gt;

&lt;br&gt;

P.S. Subscribe to my &lt;a href="https://janusworx.com/subscribe/" target="_blank" rel="noreferrer"&gt;mailing list!&lt;/a&gt;&lt;br&gt;
Forward these posts and letters to your friends and get them to subscribe!&lt;br&gt;
P.P.S. Feed my &lt;a href="https://www.amazon.in/hz/wishlist/ls/2QAUKHHAMOOVS?ref_=wl_share" target="_blank" rel="noreferrer"&gt;insatiable reading habit.&lt;/a&gt;&lt;/p&gt;
&lt;div class="footnotes" role="doc-endnotes"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:1"&gt;
&lt;p&gt;soon&amp;#160;&lt;a href="#fnref:1" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:2"&gt;
&lt;p&gt;getting up to speed with the current devops/cloud landscape, for instance&amp;#160;&lt;a href="#fnref:2" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:3"&gt;
&lt;p&gt;Yes, I could reassign them to easier keys, but just having it done automatically is better&amp;#160;&lt;a href="#fnref:3" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:4"&gt;
&lt;p&gt;the task state switches are second nature and don’t bother me much&amp;#160;&lt;a href="#fnref:4" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:5"&gt;
&lt;p&gt;Centaurs, I think, the combination is called&amp;#160;&lt;a href="#fnref:5" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:6"&gt;
&lt;p&gt;and of course, the pilots and giant mechas in Pacific Rim&amp;#160;&lt;a href="#fnref:6" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</description></item><item><title>Make Bad Things</title><link>https://janusworx.com/personal/make-bad-things/</link><pubDate>Mon, 15 Apr 2024 10:54:10 +0530</pubDate><author>feedback@janusworx.com (Mario Jason Braganza)</author><guid>https://janusworx.com/personal/make-bad-things/</guid><description>&lt;p&gt;&lt;br&gt;


&lt;figure&gt;
 &lt;img class="my-0 rounded-md" src="https://janusworx.com/images/2024/make-bad-things.png" alt="cartoon illustration of a sad, bent yellow pencil stil trying to scribble on paper " /&gt;
 
 
 &lt;/figure&gt;&lt;/p&gt;
&lt;figcaption style="font-style: italic; text-align: center; font-size: 85%; color: var(--secondary)"&gt;
&lt;p&gt;Art by &lt;a href="https://linktr.ee/amandaswork" target="_blank" rel="noreferrer"&gt;Amanda Domagala&lt;/a&gt;, on &lt;a href="https://amandaswork.tumblr.com/post/731449232798760961/sadbuddies-pssssst-stickers-available-now" target="_blank" rel="noreferrer"&gt;Tumblr&lt;/a&gt;&lt;/p&gt;
&lt;/figcaption&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;

&lt;p&gt;Amanda says,&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;em&gt;&lt;strong&gt;“Make bad things, instead of making nothing”&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;Something similar that’s been drummed into my head innumerable times over the years, by many mentors:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;em&gt;&lt;strong&gt;“If you cannot do it well, do it badly.”&lt;/strong&gt;&lt;/em&gt; :)&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;If you love doing something, if you want to do something … do it.&lt;br&gt;
Does not matter how poorly or badly its done.&lt;br&gt;
You’re going to love it nonetheless.&lt;/p&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;

Feedback on this post? Mail me at &lt;a href="mailto:&amp;amp;#102;&amp;amp;%23101;&amp;amp;%23101;&amp;amp;%23100;&amp;amp;%2398;&amp;amp;%2397;&amp;amp;%2399;&amp;amp;%23107;&amp;amp;%2364;&amp;amp;%23106;&amp;amp;%2397;&amp;amp;%23110;&amp;amp;%23117;&amp;amp;%23115;&amp;amp;%23119;&amp;amp;%23111;&amp;amp;%23114;&amp;amp;%23120;&amp;amp;%2346;&amp;amp;%2399;&amp;amp;%23111;&amp;amp;%23109;" &gt;feedback at this domain&lt;/a&gt;
&lt;br&gt;

&lt;br&gt;

P.S. Subscribe to my &lt;a href="https://janusworx.com/subscribe/" target="_blank" rel="noreferrer"&gt;mailing list!&lt;/a&gt;&lt;br&gt;
Forward these posts and letters to your friends and get them to subscribe!&lt;br&gt;
P.P.S. Feed my &lt;a href="https://www.amazon.in/hz/wishlist/ls/2QAUKHHAMOOVS?ref_=wl_share" target="_blank" rel="noreferrer"&gt;insatiable reading habit.&lt;/a&gt;&lt;/p&gt;</description></item><item><title>No Love Is Wasted</title><link>https://janusworx.com/personal/no-love-is-wasted/</link><pubDate>Sat, 13 Apr 2024 11:51:17 +0530</pubDate><author>feedback@janusworx.com (Mario Jason Braganza)</author><guid>https://janusworx.com/personal/no-love-is-wasted/</guid><description>&lt;p&gt;&lt;br&gt;


&lt;figure&gt;
 &lt;img class="my-0 rounded-md" src="https://janusworx.com/images/2024/no-love-is-wasted.jpg" alt="" /&gt;
 
 
 &lt;/figure&gt;&lt;/p&gt;
&lt;figcaption style="font-style: italic; text-align: center; font-size: 85%; color: var(--secondary)"&gt;
&lt;p&gt;via &lt;a href="https://dduane.tumblr.com/post/747600201532014592/the-bird-place-that-was-is-redeeming-itself-a-bit" target="_blank" rel="noreferrer"&gt;Diane Duane&lt;/a&gt;&lt;/p&gt;
&lt;/figcaption&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;

&lt;p&gt;I’m almost 50, and here is the best thing I have learned so far:&lt;br&gt;
every strange thing you’ve ever been into,&lt;br&gt;
every failed hobby or forgotten instrument,&lt;br&gt;
everything you have ever learned will come back to you,&lt;br&gt;
will serve you when you need it.&lt;/p&gt;
&lt;p&gt;No love, however brief, is wasted.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;(I’d add every act of kindness,random or otherwise, to that list.)&lt;/em&gt;&lt;/p&gt;</description></item><item><title>Notes to Self, How to Learn Vocabulary in Another Language</title><link>https://janusworx.com/personal/notes-to-self-how-to-learn-vocabulary-in-another-language/</link><pubDate>Fri, 05 Apr 2024 12:01:16 +0530</pubDate><author>feedback@janusworx.com (Mario Jason Braganza)</author><guid>https://janusworx.com/personal/notes-to-self-how-to-learn-vocabulary-in-another-language/</guid><description>&lt;p&gt;&lt;br&gt;

&lt;a href="https://janusworx.com/images/2024/how-to-learn-vocabulary-in-another-language.jpg" &gt;
&lt;figure&gt;
 &lt;img class="my-0 rounded-md" src="https://janusworx.com/images/2024/how-to-learn-vocabulary-in-another-language-s.jpg" alt="" /&gt;
 
 
 &lt;/figure&gt;&lt;/a&gt;&lt;/p&gt;
&lt;figcaption style="font-style: italic; text-align: center; font-size: 85%; color: var(--secondary)"&gt;
&lt;p&gt;“Liberty &lt;em&gt;&amp;amp;&lt;/em&gt; equality forever, or Death!”&lt;br&gt;
Written on the &lt;a href="https://en.wikipedia.org/wiki/Luxor_Obelisks" target="_blank" rel="noreferrer"&gt;Luxor Obelisk&lt;/a&gt; at the Place de la Concorde in Paris, France&lt;br&gt;
(Click for a larger image)&lt;/p&gt;
&lt;/figcaption&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;

&lt;p&gt;I recently read Scott H. Young’s article on &lt;a href="https://www.scotthyoung.com/blog/2024/04/02/learn-vocabulary-language/" target="_blank" rel="noreferrer"&gt;How to Learn Vocabulary in Another Language&lt;/a&gt; and realised it would be a handy guide for me, as I go about increasing my French &lt;em&gt;&amp;amp;&lt;/em&gt; Urdu vocabulary.&lt;/p&gt;
&lt;p&gt;This is what I took away:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The first 2000 words will cover 80-90% of a language’s vocabulary. 3000 will cover 95%. That should be your goal.&lt;/li&gt;
&lt;li&gt;Use a frequency dictionary, then according to frequency do 1000/2000/3000 words&lt;/li&gt;
&lt;li&gt;10000 will lead to almost being fluent. Hard to do that quickly with French, sitting in India. But, aspirational goals :)&lt;/li&gt;
&lt;li&gt;Do:
&lt;ul&gt;
&lt;li&gt;Flash cards, knowing that this will not teach you the nuance and flavour and texture of French&lt;/li&gt;
&lt;li&gt;Graded reading, Like the article states&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;&lt;p&gt;To successfully guess the meaning of a new word from its context, we need to understand between 95% and 98% of the surrounding words. This is difficult to achieve with native-level materials. Graded readers, which deliberately limit vocabulary, can be beneficial here.&lt;/p&gt;
&lt;/blockquote&gt;&lt;ul&gt;
&lt;li&gt;If you’re doing the slow and steady way, because you lack the time, then growth &lt;em&gt;&lt;strong&gt;will&lt;/strong&gt;&lt;/em&gt; be slow. Assume 400 new word families a year&lt;/li&gt;
&lt;li&gt;Use the four pillars of learning. Paraphrasing &amp;amp; Quoting the article:
&lt;ol&gt;
&lt;li&gt;&lt;em&gt;&lt;strong&gt;Meaning-focused input.&lt;/strong&gt;&lt;/em&gt;&lt;br&gt;
Input provides the raw data for learning new words and enriches the contextual associations of words studied deliberately elsewhere.
This includes conversations, books, films, television and other media that you attend to primarily for their meaning.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;&lt;strong&gt;Meaning-focused output.&lt;/strong&gt;&lt;/em&gt; &lt;em&gt;(Note: I am focussed on reading and writing)&lt;/em&gt;&lt;br&gt;
Speaking and writing are more difficult than simply understanding particular words from input, as using words correctly requires a more precise knowledge of each word and its meaning.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;&lt;strong&gt;Language-focused learning.&lt;/strong&gt;&lt;/em&gt;&lt;br&gt;
This is the deliberate act of memorizing words, studying flashcards, or receiving explanations about word meanings. Webb and Nation argue that this should account for ~25% of the time spent learning a language.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;&lt;strong&gt;Fluency development.&lt;/strong&gt;&lt;/em&gt; &lt;em&gt;(I don’t know how I’ll do this. Re read stuff? Watch TV again.)&lt;/em&gt;&lt;br&gt;
Finally, attention should be paid to activities that speed up the understanding and production of words already known. Familiar materials that enable quick reading or conversations on familiar topics may not be needed to build new vocabulary, but they reinforce what was learned previously.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&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;

Feedback on this post? Mail me at &lt;a href="mailto:&amp;amp;#102;&amp;amp;%23101;&amp;amp;%23101;&amp;amp;%23100;&amp;amp;%2398;&amp;amp;%2397;&amp;amp;%2399;&amp;amp;%23107;&amp;amp;%2364;&amp;amp;%23106;&amp;amp;%2397;&amp;amp;%23110;&amp;amp;%23117;&amp;amp;%23115;&amp;amp;%23119;&amp;amp;%23111;&amp;amp;%23114;&amp;amp;%23120;&amp;amp;%2346;&amp;amp;%2399;&amp;amp;%23111;&amp;amp;%23109;" &gt;feedback at this domain&lt;/a&gt;
&lt;br&gt;

&lt;br&gt;

P.S. Subscribe to my &lt;a href="https://janusworx.com/subscribe/" target="_blank" rel="noreferrer"&gt;mailing list!&lt;/a&gt;&lt;br&gt;
Forward these posts and letters to your friends and get them to subscribe!&lt;br&gt;
P.P.S. Feed my &lt;a href="https://www.amazon.in/hz/wishlist/ls/2QAUKHHAMOOVS?ref_=wl_share" target="_blank" rel="noreferrer"&gt;insatiable reading habit.&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Note to Self, Cal Newport’s Minimal Notes System</title><link>https://janusworx.com/personal/note-to-self-cal-newports-minimal-notes-system/</link><pubDate>Sat, 02 Mar 2024 16:35:56 +0530</pubDate><author>feedback@janusworx.com (Mario Jason Braganza)</author><guid>https://janusworx.com/personal/note-to-self-cal-newports-minimal-notes-system/</guid><description>&lt;p&gt;&lt;br&gt;

&lt;a href="https://janusworx.com/images/2024/cal-newport-minimalist-note-taking-system.jpg" &gt;
&lt;figure&gt;
 &lt;img class="my-0 rounded-md" src="https://janusworx.com/images/2024/cal-newport-minimalist-note-taking-system-s.jpg" alt="" /&gt;
 
 
 &lt;/figure&gt;&lt;/a&gt;&lt;/p&gt;
&lt;figcaption style="font-style: italic; text-align: center; font-size: 85%; color: var(--secondary)"&gt;
&lt;p&gt;My old-style slow notetaking process.&lt;br&gt;
Replaced now with &lt;a href="https://janusworx.com/blog/the-kobo-elipsa-2e-six-months-later/" &gt;Elipsa Annotations&lt;/a&gt;, which then move along with my thoughts into &lt;a href="https://janusworx.com/blog/zettelkasten/" &gt;Org Roam Notes&lt;/a&gt;.&lt;br&gt;
Click to see bigger&lt;/p&gt;
&lt;/figcaption&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;

&lt;p&gt;Cal Newport recently did a deep dive on his podcast, on a &lt;a href="https://www.youtube.com/watch?v=OY6ywiMknvs&amp;amp;t=5s" target="_blank" rel="noreferrer"&gt;minimalist note taking system&lt;/a&gt; for various areas of your life.&lt;br&gt;
Video’s on Youtube, if you want to watch. It’s called &lt;a href="https://www.youtube.com/watch?v=OY6ywiMknvs&amp;amp;t=5s" target="_blank" rel="noreferrer"&gt;A Productivity System To Remember Everything You Learn&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;It matches, what I’ve organically been doing all these years.&lt;br&gt;
And I was really happy to see it structured and rendered so well.&lt;br&gt;
So I wrote and paraphrased and jotted it all down below.&lt;br&gt;
Note: These are my mangling of Cal’s words, not what he actually said. The audio/video above should give you exact specifics.&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;


&lt;h2 class="relative group"&gt;Why?
 &lt;div id="why" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#why" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;

&lt;h3 class="relative group"&gt;Minimal Friction
 &lt;div id="minimal-friction" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#minimal-friction" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;too much friction with other systems&lt;/li&gt;
&lt;li&gt;friction in work that matters is ok, is good, is perfect. &lt;a href="https://janusworx.com/blog/draft-no-4/" &gt;McPhee &amp;amp; Caro!&lt;/a&gt; But for most other things, not needed.
&lt;ul&gt;
&lt;li&gt;Cal goes on to verbally list what McPhee does, but &lt;a href="https://janusworx.com/blog/draft-no-4/" &gt;my notes&lt;/a&gt; are better.&lt;/li&gt;
&lt;li&gt;In a nutshell, friction slows him (McPhee) down in a way that’s beneficial, that lets him do his best work&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Notetaking does not need such friction. When information is coming at you, your time to act + energy to think are limited&lt;/li&gt;
&lt;li&gt;Friction stops you from taking action. That information could then be lost
&lt;ul&gt;
&lt;li&gt;For e.g. a complicated note taking process when reading a book, might stop you from getting into the book or ever keep you from reading the book altogether.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Your system should therefore reduce friction, so that you can capture as much information as possible quickly, efficiently, painlessly&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 class="relative group"&gt;Outsource your brain? No!
 &lt;div id="outsource-your-brain-no" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#outsource-your-brain-no" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;When it comes to things that matter, stuff should live in your brain. So that stuff percolates into your value systems and mental models and you evolve!&lt;/li&gt;
&lt;li&gt;Your brain needs to be part of this curation process. Your brain needs to build hooks. To remember the big things. For accuracy and precision, details can always be looked up.&lt;/li&gt;
&lt;/ul&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;


&lt;h2 class="relative group"&gt;The System
 &lt;div id="the-system" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#the-system" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;

&lt;h3 class="relative group"&gt;For Books (the Corner Marking Method)
 &lt;div id="for-books-the-corner-marking-method" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#for-books-the-corner-marking-method" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;If there’s somethng interesting on the page, mark the corner fo the page (dog ear with pen) and then …
&lt;ul&gt;
&lt;li&gt;Mark up the thing that interest you! Simple marks in the margins. Put a box around text. Checkmarks next to a line. Curly braces next to a paragraph to remember&lt;/li&gt;
&lt;li&gt;Occasionally write a short note, to help you remember the context, or to tell yourself what it reminds you of, or is there any other place where you’d find this useful?&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Barely slows you down. Does not get in your way. Does not prevent you from reading&lt;/li&gt;
&lt;li&gt;Then when you go back to your book, and look at your dog marks and then look at stuff you marked on those pages? You will in a few minutes, reconstitute all the ideas from that book.&lt;/li&gt;
&lt;li&gt;Bonus: One “shortcoming”? You need to remember! Oh that book? That was the one that had the interesting ideas about such and such
&lt;ul&gt;
&lt;li&gt;That is not a problem. This is the one bit of friction that is useful. It allows you to use the gist of what you learned from the book in the schemas of knowledge that I am constructing and modifying and growing in my head. So that’s not really a bug, rather a feature. In English? It helps me build better Mental Models!&lt;/li&gt;
&lt;li&gt;You become a better reader&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 class="relative group"&gt;Projects (Professional and Personal)
 &lt;div id="projects-professional-and-personal" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#projects-professional-and-personal" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Where do notes relevant to a project go?&lt;/li&gt;
&lt;li&gt;Store notes relevant to a project in the location where you will one day work the project.
&lt;ul&gt;
&lt;li&gt;I do this on a personal level too. Everything is where my mind says, I ought to look for them, not where they “ought to be.” Which is why my keys are next to my Minnie mouse plushie and my flash drives live in an old, soup bowl.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;So when it comes time to do the work, everything that you’ve gather is all there for you to use.&lt;/li&gt;
&lt;li&gt;Duplication is ok. (If there’s too much duplication, which happens rarely, I organically figure something out)&lt;/li&gt;
&lt;li&gt;Bonus: Whenever you add something new to the pile, you always encounter your old stuff and it keeps refreshing a mental picture of the project in your mind and helps create new mental grooves&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 class="relative group"&gt;Ideas about Life? Your values, your inspiration, you want to do something with and in your life
 &lt;div id="ideas-about-life-your-values-your-inspiration-you-want-to-do-something-with-and-in-your-life" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#ideas-about-life-your-values-your-inspiration-you-want-to-do-something-with-and-in-your-life" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Keep a fancy, awesome, cool, aspirational notebook!&lt;/li&gt;
&lt;li&gt;A fancy pen you like&lt;/li&gt;
&lt;li&gt;Basically whatever you used when you started your journey? You wrote notes, you made headlines, you had marginalia in your pages, you did everything by hand. Just use the classiest things you like and can afford, to give it heft and meaning.&lt;/li&gt;
&lt;li&gt;Your life has few ideas, important as they are. Easy to keep track of them in a notebook&lt;/li&gt;
&lt;li&gt;You want the form to matter.&lt;/li&gt;
&lt;li&gt;Digital notebooks? They’re cool too, if you like them.&lt;/li&gt;
&lt;li&gt;All you need is semi regular review and process
&lt;ul&gt;
&lt;li&gt;A good lazy way to do it is when the notebook fills up&lt;/li&gt;
&lt;li&gt;Review and copy over the summaries of everything good and lasting and important&lt;/li&gt;
&lt;li&gt;See what sticks&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&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;

Feedback on this post? Mail me at &lt;a href="mailto:&amp;amp;#102;&amp;amp;%23101;&amp;amp;%23101;&amp;amp;%23100;&amp;amp;%2398;&amp;amp;%2397;&amp;amp;%2399;&amp;amp;%23107;&amp;amp;%2364;&amp;amp;%23106;&amp;amp;%2397;&amp;amp;%23110;&amp;amp;%23117;&amp;amp;%23115;&amp;amp;%23119;&amp;amp;%23111;&amp;amp;%23114;&amp;amp;%23120;&amp;amp;%2346;&amp;amp;%2399;&amp;amp;%23111;&amp;amp;%23109;" &gt;feedback at this domain&lt;/a&gt;
&lt;br&gt;

&lt;br&gt;

P.S. Subscribe to my &lt;a href="https://janusworx.com/subscribe/" target="_blank" rel="noreferrer"&gt;mailing list!&lt;/a&gt;&lt;br&gt;
Forward these posts and letters to your friends and get them to subscribe!&lt;br&gt;
P.P.S. Feed my &lt;a href="https://www.amazon.in/hz/wishlist/ls/2QAUKHHAMOOVS?ref_=wl_share" target="_blank" rel="noreferrer"&gt;insatiable reading habit.&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Note to Self Footnotes Using Littlefoot.js</title><link>https://janusworx.com/work/note-to-self-footnotes-using-littlefoot.js/</link><pubDate>Wed, 28 Feb 2024 08:10:36 +0530</pubDate><author>feedback@janusworx.com (Mario Jason Braganza)</author><guid>https://janusworx.com/work/note-to-self-footnotes-using-littlefoot.js/</guid><description>&lt;p&gt;&lt;br&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;


&lt;figure&gt;
 &lt;img class="my-0 rounded-md" src="https://janusworx.com/images/2024/footnotes.png" alt="Two feet side by side, with a marker illustration on them. theres a figure 1 on one foot. a small cartoon lion on the other. and a dashed path drawn across one foot to the other, linking them." /&gt;
 
 
 &lt;/figure&gt;&lt;/p&gt;
&lt;figcaption style="font-style: italic; text-align: center; font-size: 85%; color: var(--secondary)"&gt;
&lt;p&gt;Courtesy &lt;a href="https://flickr.com/photos/dothegreenthing/7401372664/" target="_blank" rel="noreferrer"&gt;dothegreenthing&lt;/a&gt;, &lt;a href="https://creativecommons.org/licenses/by-nc/2.0/" target="_blank" rel="noreferrer"&gt;CC BY-NC 2.0&lt;/a&gt;, on Flickr&lt;/p&gt;
&lt;/figcaption&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;

I have this amazing urge never to leave well enough alone.&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;
The blog uses an amazing theme, called &lt;a href="https://adityatelange.github.io/hugo-PaperMod/" target="_blank" rel="noreferrer"&gt;PaperMod&lt;/a&gt;.&lt;br&gt;
And ofcourse, like I said, because I can’t leave well enough alone, I’ve customised it heavily.&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;br&gt;
The fonts are different, there are various kinds of slight colour changes, I bullied &lt;a href="https://github.com/adityatelange" target="_blank" rel="noreferrer"&gt;Aditya&lt;/a&gt; into showing me how to &lt;a href="https://github.com/adityatelange/hugo-PaperMod/issues/62#issuecomment-1375160640" target="_blank" rel="noreferrer"&gt;build a Menu&lt;/a&gt;, there are lots of custom &lt;a href="https://gohugo.io/content-management/shortcodes/" target="_blank" rel="noreferrer"&gt;Hugo shortcodes&lt;/a&gt; and there were footnotes powered by a nifty little Javascript library called &lt;a href="https://littlefoot.js.org/" target="_blank" rel="noreferrer"&gt;littlefoot.js&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Now everything &lt;em&gt;was&lt;/em&gt; fine and dandy.&lt;br&gt;
There are folks who &lt;em&gt;do&lt;/em&gt; leave well enough alone. Their blogs stay up and running for years on end, held together with nothing more than spit and baling wire.&lt;br&gt;
Those folks aren’t me, sadly. Aditya keeps improving the theme and I really wanted the new shiny. &lt;a href="https://github.com/adityatelange/hugo-PaperMod/releases/tag/v7.0" target="_blank" rel="noreferrer"&gt;So I went and got it.&lt;/a&gt;&lt;br&gt;
And everything broke!&lt;br&gt;
I got weird artifacts. RSS broke. Fonts broke. Footnotes broke.&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;
&lt;p&gt;I’ve managed to put everything back together, over the past week, and I &lt;em&gt;just&lt;/em&gt; got footnotes working again yesterday.&lt;br&gt;
So a few notes to myself, on what to do, when I break it again.&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;br&gt;
Footnotes today, and the rest later …&lt;/p&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;

So here goes,&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The litlefoot.js repo has &lt;a href="https://github.com/goblindegook/littlefoot#usage" target="_blank" rel="noreferrer"&gt;excellent documentation&lt;/a&gt;. That’s where you pulled everything from (for when you wonder, just &lt;em&gt;how&lt;/em&gt; you figured all the CSS out)&lt;/li&gt;
&lt;li&gt;You download a static copy with a &lt;code&gt;npm install --save littlefoot&lt;/code&gt; and then stick it into Hugo’s static folder&lt;/li&gt;
&lt;li&gt;Copy the &lt;code&gt;extend_head.html&lt;/code&gt; from the theme’s &lt;code&gt;layout/partials&lt;/code&gt; into your own. You should already have an &lt;code&gt;extend_footer.html&lt;/code&gt; since you put in PaperMod’s hamburger stuff in there.&lt;/li&gt;
&lt;li&gt;Adapt the &lt;a href="https://github.com/goblindegook/littlefoot#usage-from-a-cdn" target="_blank" rel="noreferrer"&gt;Usage from a CDN&lt;/a&gt; step to directly access it from &lt;code&gt;/littlefoot/dist/…&lt;/code&gt; instead of &lt;a href="https://unpkg.com/" target="_blank" rel="noreferrer"&gt;UNPKG&lt;/a&gt;. Put the CSS link into your &lt;code&gt;extend_head.html&lt;/code&gt; and the JS into &lt;code&gt;extend_footer.html&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;We want the footnotes to be numbers, rather than floating ellipses. So modify the default (blank) script call in &lt;code&gt;extend_footer.html&lt;/code&gt;, to the stuff below. This is verbatim from the docs.&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-html" data-lang="html"&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;application/javascript&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nx"&gt;littlefoot&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;littlefoot&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
&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;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nx"&gt;buttonTemplate&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="sb"&gt;`
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="sb"&gt; &amp;lt;button
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="sb"&gt; aria-label=&amp;#34;Footnote &amp;lt;% number %&amp;gt;&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="sb"&gt; class=&amp;#34;littlefoot__button&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="sb"&gt; id=&amp;#34;&amp;lt;% reference %&amp;gt;&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="sb"&gt; title=&amp;#34;See Footnote &amp;lt;% number %&amp;gt;&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="sb"&gt; /&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="sb"&gt; &amp;lt;% number %&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="sb"&gt; &amp;lt;/button&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="sb"&gt; `&lt;/span&gt;
&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;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;)&lt;/span&gt;
&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;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;We want to style it a teensy bit, so those styles go into &lt;code&gt;extend_head.html&lt;/code&gt;. For some reason, it does not pick the footnote styling correctly when you put stuff into your normal &lt;code&gt;assets/css/extended/&lt;/code&gt; folder.&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&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="o"&gt;&amp;lt;!&lt;/span&gt;&lt;span class="nt"&gt;--Custom&lt;/span&gt; &lt;span class="nt"&gt;littlefoot&lt;/span&gt; &lt;span class="nt"&gt;styles--&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;style&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
&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;littlefoot&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;		&lt;span class="c"&gt;/*the --attributes come from the littlefoot.js docs*/&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;		&lt;span class="c"&gt;/*Change button background to something that works in both modes*/&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;--button-background-color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mh"&gt;#666&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;		&lt;span class="c"&gt;/*Change padding to make the button rounder*/&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;--button-padding&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt; &lt;span class="mf"&gt;0.35&lt;/span&gt;&lt;span class="kt"&gt;rem&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;		&lt;span class="c"&gt;/*The footnote ought to be italicised*/&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;--popover-font-style&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;italic&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;		&lt;span class="c"&gt;/*Make the popover work with my theme’s colour scheme*/&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;--popover-background-color&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;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;--popover-text-color&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;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c"&gt;/*the oldstyle numerals used everywhere else, don’t look good here
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;		Neither do they align properly in the box.
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;		So switch them to normal*/&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;		&lt;span class="k"&gt;font-variant-numeric&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;normal&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;		&lt;span class="c"&gt;/*Italic numerals for the footnotes*/&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;font-style&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;italic&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&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;span class="line"&gt;&lt;span class="cl"&gt;
&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;littlefoot__button&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;		&lt;span class="c"&gt;/*very subjective. 
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;		try to get the numerals centred as much as I can.*/&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;line-height&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;vertical-align&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;middle&lt;/span&gt;&lt;span class="cp"&gt;!important&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&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;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="o"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;style&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&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;

&lt;p&gt;Et voilà! Footnotes galore!&lt;/p&gt;

&lt;figure&gt;
 &lt;img class="my-0 rounded-md" src="https://janusworx.com/images/2024/footnotes-2.png" alt="screenshot of a blogpost, with footnotes" /&gt;
 
 
 &lt;/figure&gt;
&lt;figcaption style="font-style: italic; text-align: center; font-size: 85%; color: var(--secondary)"&gt;
&lt;p&gt;It looks a little weird, a little like a billie goat walked across my post, pooping pellets across the page.&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;&lt;br&gt;
But it is my kind of weird now.&lt;br&gt;
And I love it :)&lt;/p&gt;
&lt;/figcaption&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;

Feedback on this post? Mail me at &lt;a href="mailto:&amp;amp;#102;&amp;amp;%23101;&amp;amp;%23101;&amp;amp;%23100;&amp;amp;%2398;&amp;amp;%2397;&amp;amp;%2399;&amp;amp;%23107;&amp;amp;%2364;&amp;amp;%23106;&amp;amp;%2397;&amp;amp;%23110;&amp;amp;%23117;&amp;amp;%23115;&amp;amp;%23119;&amp;amp;%23111;&amp;amp;%23114;&amp;amp;%23120;&amp;amp;%2346;&amp;amp;%2399;&amp;amp;%23111;&amp;amp;%23109;" &gt;feedback at this domain&lt;/a&gt;
&lt;br&gt;

&lt;br&gt;

P.S. Subscribe to my &lt;a href="https://janusworx.com/subscribe/" target="_blank" rel="noreferrer"&gt;mailing list!&lt;/a&gt;&lt;br&gt;
Forward these posts and letters to your friends and get them to subscribe!&lt;br&gt;
P.P.S. Feed my &lt;a href="https://www.amazon.in/hz/wishlist/ls/2QAUKHHAMOOVS?ref_=wl_share" target="_blank" rel="noreferrer"&gt;insatiable reading habit.&lt;/a&gt;&lt;/p&gt;
&lt;div class="footnotes" role="doc-endnotes"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:1"&gt;
&lt;p&gt;what we in the Mumbaiyya vulgar, would call, “Gaand mein keeda”.&lt;br&gt;
&lt;em&gt;&lt;strong&gt;Please for the love of God, don’t look that up. Very not safe.&lt;/strong&gt;&lt;/em&gt;&amp;#160;&lt;a href="#fnref:1" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:2"&gt;
&lt;p&gt;Heavily, as in heavily for a guy who doesn’t quite know what he’s doing.&amp;#160;&lt;a href="#fnref:2" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:3"&gt;
&lt;p&gt;All my fault obviously, with all the custom stuff. Nothing to do with the theme proper.&amp;#160;&lt;a href="#fnref:3" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:4"&gt;
&lt;p&gt;in the &lt;em&gt;&lt;strong&gt;far, far, far, future&lt;/strong&gt;&lt;/em&gt;; future Jason! Not any time soon, you hear!&amp;#160;&lt;a href="#fnref:4" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:5"&gt;
&lt;p&gt;“Pooping pellets on the posted page”, Now there’s a tongue twister 😂&amp;#160;&lt;a href="#fnref:5" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</description></item><item><title>Note to Self, Bookmark Your Work, Coda</title><link>https://janusworx.com/work/bookmark-your-work-coda/</link><pubDate>Sun, 25 Feb 2024 10:24:45 +0530</pubDate><author>feedback@janusworx.com (Mario Jason Braganza)</author><guid>https://janusworx.com/work/bookmark-your-work-coda/</guid><description>&lt;br&gt;

&lt;p&gt;&lt;a href="https://janusworx.com/images/2024/bookmark-coda-important-day-liniers.jpg" &gt;
&lt;figure&gt;
 &lt;img class="my-0 rounded-md" src="https://janusworx.com/images/2024/bookmark-coda-important-day-liniers.jpg" alt="" /&gt;
 
 
 &lt;/figure&gt;&lt;/a&gt;&lt;/p&gt;
&lt;figcaption style="font-style: italic; text-align: center; font-size: 85%; color: var(--secondary)"&gt;
&lt;p&gt;courtesy &lt;a href="https://comicskingdom.com/Macanudo/about" target="_blank" rel="noreferrer"&gt;Liniers&lt;/a&gt;, &lt;a href="https://comicskingdom.com/Macanudo/2024-02-24" target="_blank" rel="noreferrer"&gt;Comics Kingdom&lt;/a&gt;&lt;br&gt;
click to enlarge&lt;/p&gt;
&lt;/figcaption&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;

&lt;p&gt;&lt;a href="https://janusworx.com/blog/bookmark-your-work/" &gt;With all the hullabaloo yesterday&lt;/a&gt;, on how you’d go about organising your day, and things to let go of, and marking your place, I forgot the overarching &lt;a href="https://janusworx.com/tags/notetoself/" &gt;Note To Self.&lt;/a&gt;&lt;br&gt;
Please remember. &lt;em&gt;Never lose sight of what’s important.&lt;/em&gt;&lt;br&gt;
Never forget &lt;em&gt;why&lt;/em&gt; you’re doing all of this.&lt;/p&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;

Feedback on this post? Mail me at &lt;a href="mailto:&amp;amp;#102;&amp;amp;%23101;&amp;amp;%23101;&amp;amp;%23100;&amp;amp;%2398;&amp;amp;%2397;&amp;amp;%2399;&amp;amp;%23107;&amp;amp;%2364;&amp;amp;%23106;&amp;amp;%2397;&amp;amp;%23110;&amp;amp;%23117;&amp;amp;%23115;&amp;amp;%23119;&amp;amp;%23111;&amp;amp;%23114;&amp;amp;%23120;&amp;amp;%2346;&amp;amp;%2399;&amp;amp;%23111;&amp;amp;%23109;" &gt;feedback at this domain&lt;/a&gt;
&lt;br&gt;

&lt;br&gt;

P.S. Subscribe to my &lt;a href="https://janusworx.com/subscribe/" target="_blank" rel="noreferrer"&gt;mailing list!&lt;/a&gt;&lt;br&gt;
Forward these posts and letters to your friends and get them to subscribe!&lt;br&gt;
P.P.S. Feed my &lt;a href="https://www.amazon.in/hz/wishlist/ls/2QAUKHHAMOOVS?ref_=wl_share" target="_blank" rel="noreferrer"&gt;insatiable reading habit.&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Note to Self, Bookmark Your Work</title><link>https://janusworx.com/work/bookmark-your-work/</link><pubDate>Sat, 24 Feb 2024 08:34:05 +0530</pubDate><author>feedback@janusworx.com (Mario Jason Braganza)</author><guid>https://janusworx.com/work/bookmark-your-work/</guid><description>&lt;div style="font-size: 85%; "&gt;
&lt;p&gt;&lt;em&gt;This started with a note to self on leaving breadcrumbs, and ended with a stream of consciousness journey on how I reached this conclusion. So what I’m trying to say, in a slightly rambling manner, is that this is a slightly incoherent, rambling post.&lt;/em&gt;&lt;/p&gt;
&lt;/div&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;


&lt;figure&gt;
 &lt;img class="my-0 rounded-md" src="https://janusworx.com/images/2024/bookmark.jpg" alt="A bookmark with the text on it, jocularly warning the reader, “The next page might be odd”" /&gt;
 
 
 &lt;/figure&gt;
&lt;figcaption style="font-style: italic; text-align: center; font-size: 85%; color: var(--secondary)"&gt;
&lt;p&gt;Courtesy, &lt;a href="https://flic.kr/p/A5WU35" target="_blank" rel="noreferrer"&gt;Delgrosso&lt;/a&gt;, &lt;a href="https://creativecommons.org/licenses/by-nc-nd/2.0/" target="_blank" rel="noreferrer"&gt;CC BY-NC-ND 2.0&lt;/a&gt;, on Flickr&lt;/p&gt;
&lt;/figcaption&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;

&lt;p&gt;I’m running my days now to slow, daily, consistent tiny amounts of progress.&lt;br&gt;
And I am seeing results. When there are so many demands on my time, prioritising them and then doing them slowly yet consistently is yielding fruit.&lt;br&gt;
While I certainly enjoy the deep dive, full of focus, lost in work sessions a lot more, I have too much life happening to allocate that kind of time and attention to everything.&lt;br&gt;
The first thing I did, when I kinda-sorta revamped the way I went about my days&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;, was to &lt;a href="https://www.artofmanliness.com/character/advice/via-negativa-adding-to-your-life-by-subtracting/" target="_blank" rel="noreferrer"&gt;drop as many hot potatoes&lt;/a&gt; as I could, and then &lt;a href="https://www.linkedin.com/learning/getting-things-done/do-delegate-defer" target="_blank" rel="noreferrer"&gt;d-d-d&lt;/a&gt;-ed all the small yet important things in my life.&lt;br&gt;
And then came to the sobering realisation that the rest of life just &lt;em&gt;had&lt;/em&gt; to be done and dealt with. Even things I don’t like.&lt;/p&gt;
&lt;p&gt;A couple of pieces then had to fall into place, before I gained some semblance of sanity and progress.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;I can’t do it all. Some things, important things even, will fall through the cracks. Somethings that I &lt;em&gt;really&lt;/em&gt; want to do, will get pushed to someday/maybe and some will just never get done. I have to make my peace with it.&lt;/li&gt;
&lt;li&gt;Knowing what I am giving up, the things that I &lt;em&gt;am&lt;/em&gt; doing? They better be worth it.&lt;/li&gt;
&lt;li&gt;Making the time to think this through, and having mental muscle to &lt;em&gt;do&lt;/em&gt; the thinking&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; helped.&lt;/li&gt;
&lt;li&gt;Everything does not have to be good and perfect. Good enough, is good enough.&lt;/li&gt;
&lt;li&gt;Yes, stuff is hard and unpleasant, but then you have a blessed life. There are so many people with hard lives. Suck it up. And go do something about it. Deal with it. Leaving stuff unattended in the recesses of your mind, is a sure way to rust and ruin.&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;. At the same time, while you are hard and focussed on the work, be kind to yourself. Find that balance.&lt;/li&gt;
&lt;li&gt;Alright, mentally set. Now how do I go about the &lt;em&gt;doing?&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;By doing as much or as little as you can, depending on how you prioritise it.&lt;/li&gt;
&lt;li&gt;By doing it &lt;em&gt;consistently&lt;/em&gt;. Set a schedule. Hit it.&lt;/li&gt;
&lt;li&gt;If you think you don’t want to do it, do 10m regardless.&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; And then move on.&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;&lt;/li&gt;
&lt;li&gt;If interrupted, deal with the interruption. Come back. And continue.&lt;/li&gt;
&lt;li&gt;Dealing with interruptions does not mean giving in to it. It means figuring out just what it is, and figuring out what to do about it. Most stuff can be jotted down and scheduled for later. Make sure the significant folk in your life know what you are up to, so that they know when they can expect you to be present and when you are off doing your own thing.&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;&lt;/li&gt;
&lt;li&gt;Doing stuff this way is &lt;em&gt;slow&lt;/em&gt;. And that’s ok. If your life permitted focussed deep work, you’d be doing it. But that’s not how it is. So find islands of focus. And do the best you can.&lt;/li&gt;
&lt;li&gt;Do the best you can, does not mean going all out. Slow, sure, steady. That is your drumbeat. Slow, sure, steady. Unflustered. Calm. Measured.&lt;/li&gt;
&lt;/ol&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;

&lt;p&gt;So what happens once you do this? And what hiccoughs did you run into? And what do you do about it?&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Stuff gets done! It doesn’t look like this ought to work, but it does.&lt;/li&gt;
&lt;li&gt;Leaving stuff undone, putting things down for the day, causes lots of mental turmoil.&lt;/li&gt;
&lt;li&gt;Also whenever you go back to stuff, there’s a lot of going back before your minds grasps where it was at, and only then does it go forth.&lt;/li&gt;
&lt;li&gt;And that brings me to the crux of why I began writing this dastardly note in the first place.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;&lt;strong&gt;Log. Summarise. Review!&lt;/strong&gt;&lt;/em&gt;&lt;br&gt;
1. Log how long you take for your tasks. Don’t judge yourself. Just dispassionately do it.&lt;br&gt;
2. Every time you think you’re done with something for the time being and are putting it down? Spend the time to write down what you did and what future you needs to be doing. Create bookmarks. Give directions. Do this no matter how tired you are. No matter how shitty the note.&lt;br&gt;
3. Review. This is the most important bit. Review at regular intervals and at various depths.&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; And only then make your plans accordingly. Daily time logging &amp;amp; summarising leads to daily review leads to a better sense of what is done, how far you’ve come, what to change, where to swerve, what to do next, and where to go. Review, gosh darn it. Review!&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;It’s been working well the past three months. It’s reduced a lot of friction, and quite a bit of time. It makes it easy to get into the swing of things.&lt;br&gt;
I’ll come back in six months and write about how it went.&lt;/p&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;

Feedback on this post? Mail me at &lt;a href="mailto:&amp;amp;#102;&amp;amp;%23101;&amp;amp;%23101;&amp;amp;%23100;&amp;amp;%2398;&amp;amp;%2397;&amp;amp;%2399;&amp;amp;%23107;&amp;amp;%2364;&amp;amp;%23106;&amp;amp;%2397;&amp;amp;%23110;&amp;amp;%23117;&amp;amp;%23115;&amp;amp;%23119;&amp;amp;%23111;&amp;amp;%23114;&amp;amp;%23120;&amp;amp;%2346;&amp;amp;%2399;&amp;amp;%23111;&amp;amp;%23109;" &gt;feedback at this domain&lt;/a&gt;
&lt;br&gt;

&lt;br&gt;

P.S. Subscribe to my &lt;a href="https://janusworx.com/subscribe/" target="_blank" rel="noreferrer"&gt;mailing list!&lt;/a&gt;&lt;br&gt;
Forward these posts and letters to your friends and get them to subscribe!&lt;br&gt;
P.P.S. Feed my &lt;a href="https://www.amazon.in/hz/wishlist/ls/2QAUKHHAMOOVS?ref_=wl_share" target="_blank" rel="noreferrer"&gt;insatiable reading habit.&lt;/a&gt;&lt;/p&gt;
&lt;div class="footnotes" role="doc-endnotes"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:1"&gt;
&lt;p&gt;it was a slow, gradual process.&amp;#160;&lt;a href="#fnref:1" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:2"&gt;
&lt;p&gt;Thank you, meditation practice!&amp;#160;&lt;a href="#fnref:2" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:3"&gt;
&lt;p&gt;oft used phrase in the &lt;a href="https://en.wikipedia.org/wiki/Brandon_Sanderson#Cosmere" target="_blank" rel="noreferrer"&gt;Cosmere&lt;/a&gt;&amp;#160;&lt;a href="#fnref:3" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:4"&gt;
&lt;p&gt;be as foul minded and potty mouthed and grumpy as you want. But &lt;em&gt;&lt;strong&gt;do&lt;/strong&gt;&lt;/em&gt; it.&amp;#160;&lt;a href="#fnref:4" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:5"&gt;
&lt;p&gt;unless you get into the groove.&amp;#160;&lt;a href="#fnref:5" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:6"&gt;
&lt;p&gt;if you are busy doing work all day, then that’s a sign. You need to get your life back into some semblance of balance. It’s ok doing this shit for a measure of time. This cannot be your whole life&amp;#160;&lt;a href="#fnref:6" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:7"&gt;
&lt;p&gt;I’m good at the nitty gritty and the big picture (daily / quarterly reviews). I struggle with the medium term (weekly)&amp;#160;&lt;a href="#fnref:7" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</description></item><item><title>Publish! Show Your Work! You Don’t Have Leonardo’s Genius or Luck</title><link>https://janusworx.com/personal/publish-you-dont-have-leonardos-genius-or-luck/</link><pubDate>Wed, 21 Feb 2024 20:12:18 +0530</pubDate><author>feedback@janusworx.com (Mario Jason Braganza)</author><guid>https://janusworx.com/personal/publish-you-dont-have-leonardos-genius-or-luck/</guid><description>
&lt;figure&gt;
 &lt;img class="my-0 rounded-md" src="https://janusworx.com/images/2024/publish-leonardo-da-vinci.jpg" alt="Portrait of an old Leonardo Da Vinci" /&gt;
 
 
 &lt;/figure&gt;
&lt;figcaption style="font-style: italic; text-align: center; font-size: 85%; color: var(--secondary)"&gt;
&lt;p&gt;&lt;a href="https://commons.wikimedia.org/wiki/File:Leonardo_da_Vinci_-_presumed_self-portrait_-_WGA12798.jpg" target="_blank" rel="noreferrer"&gt;Leonardo da Vinci&lt;/a&gt;, Public domain, via Wikimedia Commons&lt;/p&gt;
&lt;/figcaption&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;

&lt;p&gt;The only reason we know that both, an &lt;a href="https://en.wikipedia.org/wiki/Marcus_Aurelius" target="_blank" rel="noreferrer"&gt;emperor&lt;/a&gt; as well as a &lt;a href="https://en.wikipedia.org/wiki/Epictetus" target="_blank" rel="noreferrer"&gt;slave&lt;/a&gt;, both practiced the same &lt;a href="https://en.wikipedia.org/wiki/Stoicism" target="_blank" rel="noreferrer"&gt;philosophy&lt;/a&gt; that inspires &lt;a href="https://en.wikipedia.org/wiki/James_Stockdale" target="_blank" rel="noreferrer"&gt;people&lt;/a&gt; even now in this day and age, is because the former’s &lt;a href="https://en.wikipedia.org/wiki/Meditations" target="_blank" rel="noreferrer"&gt;personal notes&lt;/a&gt; and the latter’s &lt;a href="https://en.wikipedia.org/wiki/Enchiridion_of_Epictetus" target="_blank" rel="noreferrer"&gt;words compiled by a student&lt;/a&gt;, have come down to us through the ages.&lt;/p&gt;
&lt;p&gt;The only reason that Leonardo Da Vinci has such a legacy, is that the few pieces of his work that &lt;em&gt;were&lt;/em&gt; created and displayed, have somehow, miraculously lasted the ravages of the past half century. But so much of his work was &lt;a href="https://en.wikipedia.org/wiki/List_of_works_by_Leonardo_da_Vinci#Manuscripts" target="_blank" rel="noreferrer"&gt;unpublished, stowed away in private journals, never to be seen for centuries&lt;/a&gt;. How much more would we have known, or learnt if only? If only.&lt;/p&gt;
&lt;p&gt;Decades of stunning art, never released. No one knew the genius of &lt;a href="https://www.messynessychic.com/2016/02/18/found-at-auction-the-unseen-photographs-of-a-legend-that-never-was/" target="_blank" rel="noreferrer"&gt;Vivian Maier&lt;/a&gt;, when she was alive.&lt;/p&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;


&lt;figure&gt;
 &lt;img class="my-0 rounded-md" src="https://janusworx.com/images/2024/publish-vivian-maier.jpg" alt="a street photograph, by Vivian Maier" /&gt;
 
 
 &lt;/figure&gt;&lt;/p&gt;
&lt;figcaption style="font-style: italic; text-align: center; font-size: 85%; color: var(--secondary)"&gt;
&lt;p&gt;From John Maloof’s, &lt;a href="https://www.vivianmaier.com/" target="_blank" rel="noreferrer"&gt;Vivian Maier, Maloof Collection&lt;/a&gt;&lt;/p&gt;
&lt;/figcaption&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;

&lt;p&gt;Like &lt;a href="https://kadavy.activehosted.com/index.php?action=social&amp;amp;chash=8b0d268963dd0cfb808aac48a549829f.2700&amp;amp;s=acf2cd918271b2bef311fff84b6fea81" target="_blank" rel="noreferrer"&gt;David Kadavy&lt;/a&gt; writes,&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;/p&gt;
&lt;blockquote&gt;&lt;p&gt;Finishing what you start is overrated.&lt;br&gt;
[…]&lt;br&gt;
Contrast this with many other things Leonardo never finished. The observations that lie hidden in his notes would have advanced humanity by centuries in the fields of medicine, flight, geology, and more. These sketches and notes weren’t finished – but, most tragically, they weren’t &lt;em&gt;&lt;strong&gt;published.&lt;/strong&gt;&lt;/em&gt;&lt;br&gt;
&lt;em&gt;&lt;strong&gt;You don’t have to finish to have an impact. You do have to publish.&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;Honoré De Balzac had it right,&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;em&gt;&lt;strong&gt;“For artists, the great problem to solve is how to get oneself noticed”&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;On which Austin Kleon expounds&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;
&lt;blockquote&gt;&lt;p&gt;If you just focus on getting really good, Martin says, people will come to you. I happen to agree: You don’t really find an audience for your work; they find you. But it’s not enough to be good. In order to be found, &lt;em&gt;&lt;strong&gt;you have to be findable.&lt;/strong&gt;&lt;/em&gt; I think there’s an easy way of putting your work out there and making it discoverable while you’re focused on getting really good at what you do.&lt;/p&gt;
&lt;p&gt;Imagine if your next boss didn’t have to read your résumé because he already reads your blog. Imagine being a student and getting your first gig based on a school project you posted online. Imagine losing your job but having a social network of people familiar with your work and ready to help you find a new one. Imagine turning a side project or a hobby into your profession because you had a following that could support you.&lt;/p&gt;
&lt;p&gt;Or imagine something simpler and just as satisfying: spending the majority of your time, energy, and attention practicing a craft, learning a trade, or running a business, while also allowing for the possibility that your work might attract a group of people who share your interests.&lt;/p&gt;
&lt;p&gt;All you have to do is, &lt;em&gt;&lt;strong&gt;Show Your Work.&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&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;


&lt;figure&gt;
 &lt;img class="my-0 rounded-md" src="https://janusworx.com/images/2024/publish-austin-kleon.png" alt="Austin Kleon’s blackout art. The exposed text says,“Crafting something, is a long uncertain process. A maker should show her work”" /&gt;
 
 
 &lt;/figure&gt;&lt;/p&gt;
&lt;figcaption style="font-style: italic; text-align: center; font-size: 85%; color: var(--secondary)"&gt;
&lt;p&gt;From Austin Kleon’s book, &lt;a href="https://austinkleon.com/show-your-work/" target="_blank" rel="noreferrer"&gt;Show Your Work&lt;/a&gt;&lt;/p&gt;
&lt;/figcaption&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;

Feedback on this post? Mail me at &lt;a href="mailto:&amp;amp;#102;&amp;amp;%23101;&amp;amp;%23101;&amp;amp;%23100;&amp;amp;%2398;&amp;amp;%2397;&amp;amp;%2399;&amp;amp;%23107;&amp;amp;%2364;&amp;amp;%23106;&amp;amp;%2397;&amp;amp;%23110;&amp;amp;%23117;&amp;amp;%23115;&amp;amp;%23119;&amp;amp;%23111;&amp;amp;%23114;&amp;amp;%23120;&amp;amp;%2346;&amp;amp;%2399;&amp;amp;%23111;&amp;amp;%23109;" &gt;feedback at this domain&lt;/a&gt;
&lt;br&gt;

&lt;br&gt;

P.S. Subscribe to my &lt;a href="https://janusworx.com/subscribe/" target="_blank" rel="noreferrer"&gt;mailing list!&lt;/a&gt;&lt;br&gt;
Forward these posts and letters to your friends and get them to subscribe!&lt;br&gt;
P.P.S. Feed my &lt;a href="https://www.amazon.in/hz/wishlist/ls/2QAUKHHAMOOVS?ref_=wl_share" target="_blank" rel="noreferrer"&gt;insatiable reading habit.&lt;/a&gt;&lt;/p&gt;
&lt;div class="footnotes" role="doc-endnotes"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:1"&gt;
&lt;p&gt;all emphases mine&amp;#160;&lt;a href="#fnref:1" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:2"&gt;
&lt;p&gt;in his book Show Your Work&amp;#160;&lt;a href="#fnref:2" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</description></item><item><title>Viewing Hugo Server Output Remotely</title><link>https://janusworx.com/personal/viewing-hugo-server-remotely/</link><pubDate>Sun, 11 Feb 2024 15:18:13 +0530</pubDate><author>feedback@janusworx.com (Mario Jason Braganza)</author><guid>https://janusworx.com/personal/viewing-hugo-server-remotely/</guid><description>&lt;p&gt;I’ve been living a little dangerously when posting stuff on the blog.&lt;br&gt;
While it’s true that I compose my posts locally on my desktop, with a locally installed Hugo, I always catch a ton of things that I miss, &lt;em&gt;after&lt;/em&gt; I publish a post. Nearly every single time.&lt;/p&gt;
&lt;p&gt;So the process then becomes …&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Open the post on the server in Emacs (after logging in, via &lt;code&gt;ssh&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Make an edit.&lt;/li&gt;
&lt;li&gt;Build and publish.&lt;/li&gt;
&lt;li&gt;Reload the page and re-read the post.&lt;/li&gt;
&lt;li&gt;Find a typo. Fix it.&lt;/li&gt;
&lt;li&gt;Repeat steps 3 &amp;amp; 4.&lt;/li&gt;
&lt;li&gt;Keep the Emacs pane to keep editing and open &lt;em&gt;another&lt;/em&gt; terminal pane, just to build and deploy.&lt;/li&gt;
&lt;li&gt;Twenty three edits later … Be ok with what I have. (with a build and deploy, and reload and reread every couple of edits)&lt;/li&gt;
&lt;li&gt;Do a final build and deploy&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Having done this, for God knows how long now, I’m used to this workflow and decided to just lean into it.&lt;br&gt;
But while I loved my edit, build, deploy, reload, reread, workflow, I felt like I was tempting &lt;a href="https://en.wikipedia.org/wiki/Moirai#/media/File:The_Three_Fates_by_Paul_Thumann.jpg" target="_blank" rel="noreferrer"&gt;the fates&lt;/a&gt;, everytime I did it. Besides I did not like messing with the live website like that.&lt;/p&gt;
&lt;p&gt;So I wondered, if the way I did it locally, could be kinda sorta done remotely.&lt;br&gt;
When I write posts locally, all I need to do is run &lt;code&gt;hugo server&lt;/code&gt; in a terminal and it spins up a local server, with the all the posts, built and rendered in memory for speedy access.&lt;br&gt;
Could I have that? But remote? Could I run &lt;code&gt;hugo server&lt;/code&gt; on my server and view the results in my browser from anywhere?&lt;br&gt;
About an hour of exploration later, I did have it up and running!&lt;/p&gt;
&lt;p&gt;Here’s what I did, after delving into Hugo’s &lt;a href="https://gohugo.io/commands/hugo_server/" target="_blank" rel="noreferrer"&gt;&lt;code&gt;server&lt;/code&gt;&lt;/a&gt; command options&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Created a subdomain (drpr.janusworx.com) and pointed it to my server. (this is where I’ll see my temporary, work-in-progress, results whenever I run &lt;code&gt;hugo server&lt;/code&gt; on my server)&lt;/li&gt;
&lt;li&gt;Used Nginx as a proxy to point to it. (Also serves as my SSL termination point, freeing Hugo from the burdens of HTTPS/SSL drama)&lt;/li&gt;
&lt;li&gt;Spun up Hugo with &lt;code&gt;hugo serve -D -b https://drpr.janusworx.com --appendPort=false --liveReloadPort=443&lt;/code&gt; where …&lt;br&gt;
a. &lt;code&gt;-D&lt;/code&gt; builds posts marked with drafts&lt;br&gt;
b. &lt;code&gt;-b&lt;/code&gt; tells Hugo the hostname and path to the root of the blog (in my case, &lt;a href="https://drpr.janusworx.com" target="_blank" rel="noreferrer"&gt;https://drpr.janusworx.com&lt;/a&gt;)&lt;br&gt;
c. &lt;code&gt;--appendPort&lt;/code&gt; is set to false, which stops appending the port number to the url (happens by default, http://localhost:1313)&lt;br&gt;
d. &lt;code&gt;--liveReloadPort&lt;/code&gt; is set to my SSL/TLS port, so that I can watch changes live with every edit.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;And everything worked!&lt;br&gt;
Except for the live reloading. That bit just refused to work.
I could make changes and then go manually reload the web page and it would update. &lt;em&gt;&lt;strong&gt;Grr!&lt;/strong&gt;&lt;/em&gt; So near, yet so far!&lt;br&gt;
Some more exploration led to &lt;a href="https://github.com/gohugoio/hugo/issues/2205#issuecomment-498769463" target="_blank" rel="noreferrer"&gt;Pothi Kalimuthu’s extremely helpful comment&lt;/a&gt; on Github …&lt;/p&gt;

&lt;figure&gt;
 &lt;img class="my-0 rounded-md" src="https://janusworx.com/images/2024/hugo-livereload-remote.png" alt="" /&gt;
 
 
 &lt;/figure&gt;
&lt;p&gt;Where I realised that Hugo’s LiveReload script (that reflects changes) needs a location in my Nginx config.&lt;br&gt;
So a bit of copying and pasting and adapting and &lt;em&gt;tada!&lt;/em&gt; 🎉&lt;/p&gt;
&lt;p&gt;This blog post was written entirely on the server, with me watching the changes live as they happened …&lt;/p&gt;

&lt;figure&gt;
 &lt;img class="my-0 rounded-md" src="https://janusworx.com/images/2024/hugo-livereload-remote-2.png" alt="" /&gt;
 
 
 &lt;/figure&gt;
&lt;p&gt;And once this was done, I could just do a single, final, build and deploy to publish.&lt;/p&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;

Feedback on this post? Mail me at &lt;a href="mailto:&amp;amp;#102;&amp;amp;%23101;&amp;amp;%23101;&amp;amp;%23100;&amp;amp;%2398;&amp;amp;%2397;&amp;amp;%2399;&amp;amp;%23107;&amp;amp;%2364;&amp;amp;%23106;&amp;amp;%2397;&amp;amp;%23110;&amp;amp;%23117;&amp;amp;%23115;&amp;amp;%23119;&amp;amp;%23111;&amp;amp;%23114;&amp;amp;%23120;&amp;amp;%2346;&amp;amp;%2399;&amp;amp;%23111;&amp;amp;%23109;" &gt;feedback at this domain&lt;/a&gt;
&lt;br&gt;

&lt;br&gt;

P.S. Subscribe to my &lt;a href="https://janusworx.com/subscribe/" target="_blank" rel="noreferrer"&gt;mailing list!&lt;/a&gt;&lt;br&gt;
Forward these posts and letters to your friends and get them to subscribe!&lt;br&gt;
P.P.S. Feed my &lt;a href="https://www.amazon.in/hz/wishlist/ls/2QAUKHHAMOOVS?ref_=wl_share" target="_blank" rel="noreferrer"&gt;insatiable reading habit.&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Note to Self, Switch to Manjaro “Unstable”</title><link>https://janusworx.com/work/note-to-self-switch-to-manjaro-unstable/</link><pubDate>Tue, 06 Feb 2024 09:01:31 +0530</pubDate><author>feedback@janusworx.com (Mario Jason Braganza)</author><guid>https://janusworx.com/work/note-to-self-switch-to-manjaro-unstable/</guid><description>&lt;p&gt;I kept wondering why Syncthing releases on one of my Pis would lag behind my other one.&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; The big difference between the two is that one runs Raspbian and the other, Manjaro&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;sup id="fnref:3"&gt;&lt;a href="#fn:3" class="footnote-ref" role="doc-noteref"&gt;3&lt;/a&gt;&lt;/sup&gt;. This wouldn’t happen earlier when they ran Arch and Manjaro.&lt;br&gt;
And today, I head-slappingly remembered, that it &lt;em&gt;did&lt;/em&gt; lag and I had to do stuff to get at the latest software stuff.&lt;/p&gt;
&lt;p&gt;What I had to do, was to switch Manjaro’s software branch to &lt;code&gt;unstable&lt;/code&gt; (as opposed to the default &lt;code&gt;stable&lt;/code&gt;. &lt;a href="https://wiki.manjaro.org/index.php?title=Switching_Branches" target="_blank" rel="noreferrer"&gt;Read more here&lt;/a&gt;.)&lt;br&gt;
The only reason I use Manjaro, instead of Arch&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;, is that the Arch kernel does not boot on this Pi and I want the latest Arch stuff, which is what the &lt;code&gt;unstable&lt;/code&gt; Manjaro software branch offers.&lt;/p&gt;
&lt;p&gt;So a …&lt;/p&gt;
&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;sudo pacman-mirrors --api --set-branch unstable&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;switches me to the &lt;code&gt;unstable&lt;/code&gt; branch and …&lt;/p&gt;
&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;sudo pacman-mirrors --fasttrack &lt;span class="m"&gt;5&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; sudo pacman -Syu &lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;will resync all the software with what’s available on that branch.&lt;/p&gt;
&lt;p&gt;Tada, I have &lt;code&gt;syncthing v1.27.2 &amp;quot;Gold Grasshopper&amp;quot;&lt;/code&gt; on all my machines :)&lt;/p&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;

Feedback on this post? Mail me at &lt;a href="mailto:&amp;amp;#102;&amp;amp;%23101;&amp;amp;%23101;&amp;amp;%23100;&amp;amp;%2398;&amp;amp;%2397;&amp;amp;%2399;&amp;amp;%23107;&amp;amp;%2364;&amp;amp;%23106;&amp;amp;%2397;&amp;amp;%23110;&amp;amp;%23117;&amp;amp;%23115;&amp;amp;%23119;&amp;amp;%23111;&amp;amp;%23114;&amp;amp;%23120;&amp;amp;%2346;&amp;amp;%2399;&amp;amp;%23111;&amp;amp;%23109;" &gt;feedback at this domain&lt;/a&gt;
&lt;br&gt;

&lt;br&gt;

P.S. Subscribe to my &lt;a href="https://janusworx.com/subscribe/" target="_blank" rel="noreferrer"&gt;mailing list!&lt;/a&gt;&lt;br&gt;
Forward these posts and letters to your friends and get them to subscribe!&lt;br&gt;
P.P.S. Feed my &lt;a href="https://www.amazon.in/hz/wishlist/ls/2QAUKHHAMOOVS?ref_=wl_share" target="_blank" rel="noreferrer"&gt;insatiable reading habit.&lt;/a&gt;&lt;/p&gt;
&lt;div class="footnotes" role="doc-endnotes"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:1"&gt;
&lt;p&gt;as well as other software in general&amp;#160;&lt;a href="#fnref:1" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:2"&gt;
&lt;p&gt;because, reasons. and a long chain of upgrade and experimentation and moves from Pis 3 to 4 to 5&amp;#160;&lt;a href="#fnref:2" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:3"&gt;
&lt;p&gt;It’s the Manjaro Pi that lags. And yes, I know you can already guess why&amp;#160;&lt;a href="#fnref:3" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:4"&gt;
&lt;p&gt;with apologies to Manjaro&amp;#160;&lt;a href="#fnref:4" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</description></item><item><title>I Found Rainbows in Emacs!</title><link>https://janusworx.com/work/i-found-rainbows-in-emacs/</link><pubDate>Sat, 20 Jan 2024 07:41:00 +0530</pubDate><author>feedback@janusworx.com (Mario Jason Braganza)</author><guid>https://janusworx.com/work/i-found-rainbows-in-emacs/</guid><description>&lt;p&gt;I must admit to stealing … quite a lot … from a bot at that!&lt;br&gt;
&lt;a href="https://zoetrope.fyi/" target="_blank" rel="noreferrer"&gt;Zoetrope’s&lt;/a&gt;, “&lt;a href="https://botsin.space/@randomColorContrasts" target="_blank" rel="noreferrer"&gt;random color contrasts&lt;/a&gt;” gets colours from Adam Morse and John Otander’s &lt;a href="https://randoma11y.com/" target="_blank" rel="noreferrer"&gt;Randoma11ly&lt;/a&gt; and posts them a few times a day.&lt;br&gt;
I’ve been writing down the ones I love and find interesting, in an Org note, in the hopes I’ll use them someday.&lt;br&gt;
(I know I’m just hoarding colours 😂. But hey, I used &lt;em&gt;one&lt;/em&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; out of the thirty-odd colours, I’ve jotted down so far)&lt;/p&gt;
&lt;p&gt;The bot page has a nice preview of what the colours look like (&lt;a href="https://botsin.space/@randomColorContrasts/111738205465092376" target="_blank" rel="noreferrer"&gt;like this&lt;/a&gt;), while my little note just had bland hex RGB values.&lt;br&gt;
So I was wondering if I could somehow see what they looked like. Preview the values themselves in the colours they represent.&lt;br&gt;
I didn’t have to dig too deep. Ofcourse Emacs does this. With &lt;a href="https://jblevins.org/log/rainbow-mode" target="_blank" rel="noreferrer"&gt;Rainbow Mode&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;All I had to do was &lt;a href="https://elpa.gnu.org/packages/rainbow-mode.html" target="_blank" rel="noreferrer"&gt;install it&lt;/a&gt;. Activate it in the buffer. And tada! Look! How Pretty!&lt;/p&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;

&lt;a href="https://janusworx.com/images/2024/emacs-rainbow-mode.png" &gt;
&lt;figure&gt;
 &lt;img class="my-0 rounded-md" src="https://janusworx.com/images/2024/emacs-rainbow-mode.png" alt="a list of colours with their hex values. hex values are show in the colour they represent" /&gt;
 
 
 &lt;/figure&gt;&lt;/a&gt;&lt;/p&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;

Feedback on this post? Mail me at &lt;a href="mailto:&amp;amp;#102;&amp;amp;%23101;&amp;amp;%23101;&amp;amp;%23100;&amp;amp;%2398;&amp;amp;%2397;&amp;amp;%2399;&amp;amp;%23107;&amp;amp;%2364;&amp;amp;%23106;&amp;amp;%2397;&amp;amp;%23110;&amp;amp;%23117;&amp;amp;%23115;&amp;amp;%23119;&amp;amp;%23111;&amp;amp;%23114;&amp;amp;%23120;&amp;amp;%2346;&amp;amp;%2399;&amp;amp;%23111;&amp;amp;%23109;" &gt;feedback@janusworx.com&lt;/a&gt;
&lt;br&gt;

&lt;br&gt;

P.S. Subscribe to my &lt;a href="https://janusworx.com/subscribe/" target="_blank" rel="noreferrer"&gt;mailing list!&lt;/a&gt;&lt;br&gt;
Forward these posts and letters to your friends and get them to subscribe!&lt;br&gt;
P.P.S. Feed my &lt;a href="https://www.amazon.in/hz/wishlist/ls/2QAUKHHAMOOVS?ref_=wl_share" target="_blank" rel="noreferrer"&gt;insatiable reading habit.&lt;/a&gt;&lt;/p&gt;
&lt;div class="footnotes" role="doc-endnotes"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:1"&gt;
&lt;p&gt;background and foreground for one of my Org Mode workflow states 😛&amp;#160;&lt;a href="#fnref:1" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</description></item><item><title>Weirdly Placed Emacs Org Branches Are Only Cosmetic</title><link>https://janusworx.com/work/weirdly-placed-emacs-org-branches-are-only-cosmetic/</link><pubDate>Mon, 27 Nov 2023 08:26:19 +0530</pubDate><author>feedback@janusworx.com (Mario Jason Braganza)</author><guid>https://janusworx.com/work/weirdly-placed-emacs-org-branches-are-only-cosmetic/</guid><description>&lt;p&gt;Every evening, after my &lt;a href="https://www.youtube.com/watch?v=-pdmry5gU7g" target="_blank" rel="noreferrer"&gt;shutdown ritual&lt;/a&gt;, I move my current day’s branch to the bottom of my &lt;a href="https://orgmode.org/" target="_blank" rel="noreferrer"&gt;Org Mode&lt;/a&gt; file, so I begin the next day at &lt;a href="https://janusworx.com/blog/having-my-emacs-tasks-and-notes-ready/" &gt;the same fixed place, at line 36.&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;/p&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;


&lt;figure&gt;
 &lt;img class="my-0 rounded-md" src="https://janusworx.com/images/2023/emacs-orgmove-branch-1.png" alt="" /&gt;
 
 
 &lt;/figure&gt;&lt;/p&gt;
&lt;figcaption style="font-style: italic; text-align: center; font-size: 85%; color: var(--secondary)"&gt;
&lt;p&gt;The day is done; moving it to the bottom of the pile&lt;/p&gt;
&lt;/figcaption&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;

&lt;p&gt;Every time I move though, it goes there and sits, right &lt;em&gt;next&lt;/em&gt; to the last branch, instead of &lt;em&gt;under&lt;/em&gt; it. So I would grumble a bit, and then go hit the &lt;code&gt;return&lt;/code&gt; key as required, to get it all right and proper. And I’m tired, so at least one time out of three, I mess the older day too, and then I grumble even more and fix that too.&lt;/p&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;


&lt;figure&gt;
 &lt;img class="my-0 rounded-md" src="https://janusworx.com/images/2023/emacs-orgmove-branch-2.png" alt="" /&gt;
 
 
 &lt;/figure&gt;&lt;/p&gt;
&lt;figcaption style="font-style: italic; text-align: center; font-size: 85%; color: var(--secondary)"&gt;
&lt;p&gt;Where it sits awkwardly&lt;/p&gt;
&lt;/figcaption&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;

&lt;p&gt;Until today morning, when I realised I had &lt;em&gt;not&lt;/em&gt; done my fix the day dance, yesterday…&lt;br&gt;
And the day was correctly positioned at the bottom!&lt;br&gt;
So, was this was just a purely cosmetic issue?!&lt;br&gt;
I tried it with a couple of test days.&lt;br&gt;
I saved, closed, and opened up my file. Fixed!&lt;br&gt;
Then I tried some more tests days and I expanded all my tasks &lt;code&gt;Shift-Tab&lt;/code&gt; and and closed them. Fixed! 🙂&lt;/p&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;


&lt;figure&gt;
 &lt;img class="my-0 rounded-md" src="https://janusworx.com/images/2023/emacs-orgmove-branch-3.png" alt="" /&gt;
 
 
 &lt;/figure&gt;&lt;/p&gt;
&lt;figcaption style="font-style: italic; text-align: center; font-size: 85%; color: var(--secondary)"&gt;
&lt;p&gt;Yay! The Org Mode elves fixed it!&lt;/p&gt;
&lt;/figcaption&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;

&lt;p&gt;I guess, I have to go find something else to be grumpy about now 😂&lt;/p&gt;

&lt;h3 class="relative group"&gt;&lt;em&gt;Update: 2023-11-27&lt;/em&gt;
 &lt;div id="update-2023-11-27" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#update-2023-11-27" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;p&gt;A friend on the fediverse, encouraged me to try filing a bug report with the Org folk.&lt;br&gt;
To which I retort, this is more a PEBKAC problem, than an Org Mode problem.&lt;br&gt;
Most likely I am doing something dumb or I have something misconfigured, or some of my Org helper packages (Org-contrib, Org-ql, Org-Web-Tools, Org Superstar) are trampling over one another.&lt;/p&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;

Feedback on this post? Mail me at &lt;a href="mailto:&amp;amp;#102;&amp;amp;%23101;&amp;amp;%23101;&amp;amp;%23100;&amp;amp;%2398;&amp;amp;%2397;&amp;amp;%2399;&amp;amp;%23107;&amp;amp;%2364;&amp;amp;%23106;&amp;amp;%2397;&amp;amp;%23110;&amp;amp;%23117;&amp;amp;%23115;&amp;amp;%23119;&amp;amp;%23111;&amp;amp;%23114;&amp;amp;%23120;&amp;amp;%2346;&amp;amp;%2399;&amp;amp;%23111;&amp;amp;%23109;" &gt;feedback@janusworx.com&lt;/a&gt;
&lt;br&gt;

&lt;br&gt;

P.S. Subscribe to my &lt;a href="https://janusworx.com/subscribe/" target="_blank" rel="noreferrer"&gt;mailing list!&lt;/a&gt;&lt;br&gt;
Forward these posts and letters to your friends and get them to subscribe!&lt;br&gt;
P.P.S. Feed my &lt;a href="https://www.amazon.in/hz/wishlist/ls/2QAUKHHAMOOVS?ref_=wl_share" target="_blank" rel="noreferrer"&gt;insatiable reading habit.&lt;/a&gt;&lt;/p&gt;
&lt;div class="footnotes" role="doc-endnotes"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:1"&gt;
&lt;p&gt;As I grow older, habits, routines and static places are growing ever more important, so I can function well.&amp;#160;&lt;a href="#fnref:1" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</description></item><item><title>Having My Emacs Tasks and Notes Ready</title><link>https://janusworx.com/work/having-my-emacs-tasks-and-notes-ready/</link><pubDate>Thu, 16 Nov 2023 18:56:38 +0530</pubDate><author>feedback@janusworx.com (Mario Jason Braganza)</author><guid>https://janusworx.com/work/having-my-emacs-tasks-and-notes-ready/</guid><description>&lt;p&gt;&lt;a href="https://janusworx.com/work/having-my-emacs-tasks-and-notes-ready/#update-2023-11-17" &gt;&lt;em&gt;Updated: 2023-11-17. Read more below&lt;/em&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Nearly everything I write is in Emacs.&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;
It’s been slightly more than two years, since I made the move to using it as my everyday text editor.&lt;br&gt;
I have a spartan Emacs config, with only a few customisations, that I found by watching David Wilson aka System Crafters’ &lt;a href="https://www.youtube.com/live/74zOY-vgkyw" target="_blank" rel="noreferrer"&gt;Emacs From Scratch #1&lt;/a&gt; video and the rest by searching on the web and asking around on the fediverse.&lt;/p&gt;
&lt;p&gt;I’ve touched my config only about three times; basically every time I’ve found a new use for emacs.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;When I started editing text&lt;/li&gt;
&lt;li&gt;When I start using it as my Organiser (&lt;a href="https://orgmode.org/features.html" target="_blank" rel="noreferrer"&gt;Org Mode&lt;/a&gt;) and&lt;/li&gt;
&lt;li&gt;When I began using it as my Zettelkasten (&lt;a href="https://www.orgroam.com/" target="_blank" rel="noreferrer"&gt;Org Roam&lt;/a&gt;)&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Which is to say, I know only the bare bones of how Emacs configuration and Elisp work.&lt;/p&gt;
&lt;p&gt;And yet … and yet …&lt;br&gt;
I have this itch that rankles.&lt;br&gt;
You see, every morning I sit at the computer with my cup of coffee, and pull up my tasks and notes and the agenda for the day.&lt;br&gt;
Now I don’t use the agenda much, but the tasks and notes are a must.&lt;br&gt;
So I open the tasks file and maximize my window and then I split my frame and I open the notes file, and then I go back to my tasks and I have it all ready just the way I like it.&lt;br&gt;
Thing is, I’m grumpy in the morning and doing all that grates on me.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://youtu.be/RMgaDqgv5u4?t=20" target="_blank" rel="noreferrer"&gt;There’s gotta be a better way!&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;So I tried looking around, and came to the conclusion that creating a function, that did all this for me, would be the best thing.&lt;br&gt;
But I know no Elisp.&lt;br&gt;
And right now, I have no time to put into learning it. I did spend close to a day looking at what I could whip up, to no avail.&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;
&lt;p&gt;So the next best idea I came up with, was recording my actions, doing the file opening, window arranging dance, as a macro and then assigning a keyboard shortcut to it.&lt;br&gt;
That turned out to be iffy.&lt;br&gt;
It’d work fine when I created it, but when I restarted my Emacs daemon (or my system) and then call it again, Emacs would freeze.&lt;/p&gt;
&lt;p&gt;My intuition told me that it could be the fact, that a recorded macro&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; could not handle opening files and switching buffers.&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;br&gt;
Then I realised that I could outsource &lt;em&gt;that&lt;/em&gt; part to the command line or my application launcher&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; and leave the rest of it to the macro.&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;

&lt;p&gt;So I did just that. I created a Ulauncher shortcut.&lt;br&gt;
It binds the keyword &lt;code&gt;etn&lt;/code&gt; to the command:&lt;br&gt;
&lt;code&gt;emacsclient -c --no-wait ~/path/to/tasks.org ~/path/to/my/notes.org&lt;/code&gt;&lt;br&gt;
so that Emacs opens both my tasks and notes files as it fires up.&lt;/p&gt;

&lt;figure&gt;
 &lt;img class="my-0 rounded-md" src="https://janusworx.com/images/2023/etn-ulauncher.png" alt="" /&gt;
 
 
 &lt;/figure&gt;
&lt;figcaption style="font-style: italic; text-align: center; font-size: 85%; color: var(--secondary)"&gt;
&lt;p&gt;A Ulauncher window, with name, keyword and the actual command to launch emacs&lt;/p&gt;
&lt;/figcaption&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;

&lt;p&gt;And in Emacs I bound a keyboard macro, to the rest of the recorded macro code that would&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Maximise the frame&lt;/li&gt;
&lt;li&gt;Split the frame into two windows, with my tasks on top and the notes in the bottom&lt;/li&gt;
&lt;li&gt;Have the cursor be ready at the place I needed it to be.&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-elisp" data-lang="elisp"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;defalias&lt;/span&gt; &lt;span class="ss"&gt;&amp;#39;mjbtn&lt;/span&gt;
&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="nv"&gt;kmacro&lt;/span&gt; &lt;span class="s"&gt;&amp;#34;M-x t o g g l e - f r a m e - m a x i m i z e d &amp;lt;return&amp;gt; 
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s"&gt; C-x 2 C-x o C-x b n o t e s . o r g &amp;lt;return&amp;gt; C-x o M-g g 3 6 &amp;lt;return&amp;gt;&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;;; Assign a keyboard shortcut to the macro above: C-c z&lt;/span&gt;
&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="nv"&gt;global-set-key&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;kbd&lt;/span&gt; &lt;span class="s"&gt;&amp;#34;C-c z&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="ss"&gt;&amp;#39;mjbtn&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&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;
&lt;br&gt;
Et voilà! I have everything, just the way I want it.&lt;br&gt;
And while it might not be fancy, it works without a fuss!&lt;br&gt;
&lt;br&gt;


&lt;figure&gt;
 &lt;img class="my-0 rounded-md" src="https://janusworx.com/images/2023/etn-emacs.png" alt="" /&gt;
 
 
 &lt;/figure&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;


&lt;h3 class="relative group"&gt;Update: 2023-11-17
 &lt;div id="update-2023-11-17" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#update-2023-11-17" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;p&gt;One advantage of writing about what you do and putting it out there, is that really kind souls come along and teach you new things!&lt;br&gt;
One of them is &lt;a href="https://mastodon.social/@laotang" target="_blank" rel="noreferrer"&gt;@laotang&lt;/a&gt;, over on the Fediverse.&lt;br&gt;
Remember when I said, the best solution would be to write an Emacs function that would do what I wanted?&lt;br&gt;
Well, laotang loved my tinkering and then went on to &lt;a href="https://mastodon.social/@laotang/111424355930361393" target="_blank" rel="noreferrer"&gt;give me just that&lt;/a&gt;!&lt;br&gt;
I raise my cup of coffee to you, Sir! You made my day! Thank you, so much!&lt;/p&gt;
&lt;p&gt;Here’s the code he suggested.Worked like a charm!&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-elisp" data-lang="elisp"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;defun&lt;/span&gt; &lt;span class="nv"&gt;getting-ready&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s"&gt;&amp;#34;Getting ready for work.&amp;#34;&lt;/span&gt;
&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="nb"&gt;interactive&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&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="nv"&gt;toggle-frame-maximized&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&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="nv"&gt;split-window-below&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&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="nv"&gt;find-file&lt;/span&gt; &lt;span class="s"&gt;&amp;#34;~/path/to/notes/notes.org&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&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="nv"&gt;find-file-other-window&lt;/span&gt; &lt;span class="s"&gt;&amp;#34;~/path/to/tasks/tasks.org&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&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="nv"&gt;global-set-key&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;kbd&lt;/span&gt; &lt;span class="s"&gt;&amp;#34;C-c r&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="ss"&gt;&amp;#39;getting-ready&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;Oh, and if you liked how Org-Roam worked in the past? When it was all just text files?&lt;br&gt;
Well, if you want something like that, check out laotang’s feature-complete&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; replica, &lt;a href="https://github.com/rtrppl/orgrr" target="_blank" rel="noreferrer"&gt;ORGRR&lt;/a&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;

Feedback on this post? Mail me at &lt;a href="mailto:&amp;amp;#102;&amp;amp;%23101;&amp;amp;%23101;&amp;amp;%23100;&amp;amp;%2398;&amp;amp;%2397;&amp;amp;%2399;&amp;amp;%23107;&amp;amp;%2364;&amp;amp;%23106;&amp;amp;%2397;&amp;amp;%23110;&amp;amp;%23117;&amp;amp;%23115;&amp;amp;%23119;&amp;amp;%23111;&amp;amp;%23114;&amp;amp;%23120;&amp;amp;%2346;&amp;amp;%2399;&amp;amp;%23111;&amp;amp;%23109;" &gt;feedback@janusworx.com&lt;/a&gt;
&lt;br&gt;

&lt;br&gt;

P.S. Subscribe to my &lt;a href="https://janusworx.com/subscribe/" target="_blank" rel="noreferrer"&gt;mailing list!&lt;/a&gt;&lt;br&gt;
Forward these posts and letters to your friends and get them to subscribe!&lt;br&gt;
P.P.S. Feed my &lt;a href="https://www.amazon.in/hz/wishlist/ls/2QAUKHHAMOOVS?ref_=wl_share" target="_blank" rel="noreferrer"&gt;insatiable reading habit.&lt;/a&gt;&lt;/p&gt;
&lt;div class="footnotes" role="doc-endnotes"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:1"&gt;
&lt;p&gt;with the exception of code.&amp;#160;&lt;a href="#fnref:1" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:2"&gt;
&lt;p&gt;Not much. there are lots of primitives and I cannot separate the language from Emacs specific stuff yet&amp;#160;&lt;a href="#fnref:2" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:3"&gt;
&lt;p&gt;rather, &lt;em&gt;&lt;strong&gt;my&lt;/strong&gt;&lt;/em&gt; recorded macro&amp;#160;&lt;a href="#fnref:3" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:4"&gt;
&lt;p&gt;Don’t know if this is true or not. This is just me scratching my head. I’m assuming a function that can call buffers and handle switching between them is the ticket.&amp;#160;&lt;a href="#fnref:4" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:5"&gt;
&lt;p&gt;&lt;a href="https://ulauncher.io/" target="_blank" rel="noreferrer"&gt;Ulauncher&lt;/a&gt;&amp;#160;&lt;a href="#fnref:5" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:6"&gt;
&lt;p&gt;almost&amp;#160;&lt;a href="#fnref:6" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</description></item><item><title>My Custom CSS for Miniflux</title><link>https://janusworx.com/work/my-custom-css-for-miniflux/</link><pubDate>Wed, 15 Nov 2023 16:10:13 +0530</pubDate><author>feedback@janusworx.com (Mario Jason Braganza)</author><guid>https://janusworx.com/work/my-custom-css-for-miniflux/</guid><description>&lt;p&gt;Various bits and bobs, I gradually accumulated over the past couple of years, to make my self hosted &lt;a href="https://miniflux.app" target="_blank" rel="noreferrer"&gt;Miniflux&lt;/a&gt; look just the way I want it.&lt;/p&gt;

&lt;h3 class="relative group"&gt;Width and Size
 &lt;div id="width-and-size" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#width-and-size" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;p&gt;Changed the width to 850 pixels wide, because even on my vertical monitor, there was quite a bit of wasted horizontal space. Changed the body to use a slightly smaller size.&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&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="nt"&gt;body&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;max-width&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;850&lt;/span&gt;&lt;span class="kt"&gt;px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="err"&gt;!important&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;font-size&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;90&lt;/span&gt;&lt;span class="kt"&gt;%&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&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;/div&gt;&lt;/div&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;


&lt;h3 class="relative group"&gt;&lt;em&gt;Italic&lt;/em&gt; Blockquotes
 &lt;div id="italic-blockquotes" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#italic-blockquotes" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;p&gt;Changed blockquotes to be italic, so that they’re better set off against normal body text.&lt;br&gt;
Also made them a wee bit tinier than the body.&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&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="nt"&gt;article&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="nt"&gt;blockquote&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;font-size&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;87.5&lt;/span&gt;&lt;span class="kt"&gt;%&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;font-style&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;italic&lt;/span&gt;
&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;/div&gt;&lt;/div&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;


&lt;h3 class="relative group"&gt;Smaller title size
 &lt;div id="smaller-title-size" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#smaller-title-size" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;p&gt;If you follow Tumblr blogs as I do&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;, you know they have &lt;a href="https://help.tumblr.com/hc/en-us/articles/231857168-Ask" target="_blank" rel="noreferrer"&gt;Tumblr Asks&lt;/a&gt;.&lt;br&gt;
The asks themselves become the title of an RSS entry, when the author responds to one.&lt;br&gt;
And long asks lead to long titles.&lt;br&gt;
So here’s a bit of CSS to make the font smaller than the default &lt;code&gt;H1&lt;/code&gt; size.&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&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="nc"&gt;entry-header&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="nt"&gt;h1&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;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;em&lt;/span&gt; &lt;span class="cp"&gt;!important&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&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;/div&gt;&lt;/div&gt;
&lt;p&gt;Even at this size, the titles get a bit unwieldy at times (below), but this much I can live with.&lt;/p&gt;

&lt;figure&gt;
 &lt;img class="my-0 rounded-md" src="https://janusworx.com/images/2023/miniflux-smol-title.png" alt="" /&gt;
 
 
 &lt;/figure&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;


&lt;h3 class="relative group"&gt;Disable Tag Visibility
 &lt;div id="disable-tag-visibility" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#disable-tag-visibility" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;p&gt;Miniflux displays tags, if it detects them on certain posts.&lt;br&gt;
I don’t read them. I don’t need them. It breaks my next-next-clicky-next chain of continuity by pushing the next post link below, making me move my mouse&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;. So I killed them!&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&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="nc"&gt;entry-tags&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&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;none&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&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;/div&gt;&lt;/div&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;


&lt;h3 class="relative group"&gt;In Summary
 &lt;div id="in-summary" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#in-summary" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;p&gt;So, all the flotsam and jetsam above, go into a box that says “Custom CSS” at the very bottom of the Settings page.
Putting it all together we have …&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&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="nt"&gt;body&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c"&gt;/*set width*/&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;max-width&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;850&lt;/span&gt;&lt;span class="kt"&gt;px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="err"&gt;!important&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;font-size&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;90&lt;/span&gt;&lt;span class="kt"&gt;%&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&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;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;article&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="nt"&gt;blockquote&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;font-size&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;87.5&lt;/span&gt;&lt;span class="kt"&gt;%&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;font-style&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;italic&lt;/span&gt;
&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;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&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;entry-header&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="nt"&gt;h1&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;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;em&lt;/span&gt; &lt;span class="cp"&gt;!important&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&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;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&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;entry-tags&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&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;none&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&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;/div&gt;&lt;/div&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;

Feedback on this post? Mail me at &lt;a href="mailto:&amp;amp;#102;&amp;amp;%23101;&amp;amp;%23101;&amp;amp;%23100;&amp;amp;%2398;&amp;amp;%2397;&amp;amp;%2399;&amp;amp;%23107;&amp;amp;%2364;&amp;amp;%23106;&amp;amp;%2397;&amp;amp;%23110;&amp;amp;%23117;&amp;amp;%23115;&amp;amp;%23119;&amp;amp;%23111;&amp;amp;%23114;&amp;amp;%23120;&amp;amp;%2346;&amp;amp;%2399;&amp;amp;%23111;&amp;amp;%23109;" &gt;feedback@janusworx.com&lt;/a&gt;
&lt;br&gt;

&lt;br&gt;

P.S. Subscribe to my &lt;a href="https://janusworx.com/subscribe/" target="_blank" rel="noreferrer"&gt;mailing list!&lt;/a&gt;&lt;br&gt;
Forward these posts and letters to your friends and get them to subscribe!&lt;br&gt;
P.P.S. Feed my &lt;a href="https://www.amazon.in/hz/wishlist/ls/2QAUKHHAMOOVS?ref_=wl_share" target="_blank" rel="noreferrer"&gt;insatiable reading habit.&lt;/a&gt;&lt;/p&gt;
&lt;div class="footnotes" role="doc-endnotes"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:1"&gt;
&lt;p&gt;Hello, &lt;a href="https://tkingfisher.tumblr.com/" target="_blank" rel="noreferrer"&gt;Ursula Vernon&lt;/a&gt;, &lt;a href="https://dduane.tumblr.com/" target="_blank" rel="noreferrer"&gt;Diane Duane&lt;/a&gt;, &lt;a href="https://petermorwood.tumblr.com/" target="_blank" rel="noreferrer"&gt;Peter Morwood&lt;/a&gt; &amp;amp; &lt;a href="https://neil-gaiman.tumblr.com/" target="_blank" rel="noreferrer"&gt;Neil Gaiman&lt;/a&gt;!&amp;#160;&lt;a href="#fnref:1" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:2"&gt;
&lt;p&gt;Oh, the troubles I face, I tell you!&amp;#160;&lt;a href="#fnref:2" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</description></item><item><title>htpasswd Notes to Self</title><link>https://janusworx.com/work/htpasswd-notes-to-self/</link><pubDate>Sat, 24 Jun 2023 15:16:26 +0530</pubDate><author>feedback@janusworx.com (Mario Jason Braganza)</author><guid>https://janusworx.com/work/htpasswd-notes-to-self/</guid><description>&lt;p&gt;To &lt;em&gt;create&lt;/em&gt; the &lt;code&gt;htpasswd&lt;/code&gt; file along with its first user, I just:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;htpasswd -c /path/to/htpasswdfile/htpasswd some-user&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;It’ll ask you for the password for that user, encrypt it and store it in that location.&lt;/p&gt;
&lt;p&gt;Add these lines to get Nginx to use the file for basic auth:&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-nginx" data-lang="nginx"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;auth_basic&lt;/span&gt;	&lt;span class="s"&gt;&amp;#34;Login&lt;/span&gt; &lt;span class="s"&gt;to&lt;/span&gt; &lt;span class="s"&gt;Proceed:&lt;/span&gt; &lt;span class="s"&gt;&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="c1"&gt;#(or whatever message you want)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;auth_basic_user_file&lt;/span&gt; &lt;span class="s"&gt;/path/to/htpasswdfile/htpasswd&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;To &lt;em&gt;append&lt;/em&gt; &lt;em&gt;&lt;strong&gt;another&lt;/strong&gt;&lt;/em&gt; user to the &lt;code&gt;htpasswd&lt;/code&gt; file do:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;htpasswd /path/to/htpasswd/htpasswd second-user&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;That ought to do it.&lt;/p&gt;
&lt;p&gt;P.S. Install &lt;code&gt;apache-utils&lt;/code&gt; on Debian or use Paru/Yay to install &lt;code&gt;nginx_passwd&lt;/code&gt; on Arch.&lt;/p&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;

Feedback on this post? Mail me at &lt;a href="mailto:&amp;amp;#102;&amp;amp;%23101;&amp;amp;%23101;&amp;amp;%23100;&amp;amp;%2398;&amp;amp;%2397;&amp;amp;%2399;&amp;amp;%23107;&amp;amp;%2364;&amp;amp;%23106;&amp;amp;%2397;&amp;amp;%23110;&amp;amp;%23117;&amp;amp;%23115;&amp;amp;%23119;&amp;amp;%23111;&amp;amp;%23114;&amp;amp;%23120;&amp;amp;%2346;&amp;amp;%2399;&amp;amp;%23111;&amp;amp;%23109;" &gt;feedback@janusworx.com&lt;/a&gt;
&lt;br&gt;

&lt;br&gt;

P.P.S. Subscribe to my &lt;a href="https://janusworx.com/subscribe/" target="_blank" rel="noreferrer"&gt;mailing list!&lt;/a&gt;&lt;br&gt;
Forward these posts and letters to your friends and get them to subscribe!&lt;br&gt;
P.P.P.S. Feed my &lt;a href="https://www.amazon.in/hz/wishlist/ls/2QAUKHHAMOOVS?ref_=wl_share" target="_blank" rel="noreferrer"&gt;insatiable reading habit.&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Org Mode Subtree Expansion With the Mouse</title><link>https://janusworx.com/work/org-mode-subtree-expansion-with-the-mouse/</link><pubDate>Wed, 22 Feb 2023 08:04:19 +0530</pubDate><author>feedback@janusworx.com (Mario Jason Braganza)</author><guid>https://janusworx.com/work/org-mode-subtree-expansion-with-the-mouse/</guid><description>&lt;p&gt;When I wrote about, &lt;a href="https://janusworx.com/blog/ticking-off-checkboxes-with-the-mouse-in-org-mode/" &gt;ticking off checkboxes in Org Mode&lt;/a&gt;, I’d linked to &lt;a href="http://git.savannah.gnu.org/cgit/emacs.git/tree/lisp/org/org-mouse.el#n101" target="_blank" rel="noreferrer"&gt;line 101&lt;/a&gt; of &lt;code&gt;org-mouse.el&lt;/code&gt;. While I’d read the main summary, I somehow missed &lt;a href="http://git.savannah.gnu.org/cgit/emacs.git/tree/lisp/org/org-mouse.el#n30" target="_blank" rel="noreferrer"&gt;line 30&lt;/a&gt; …&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;;; * subtree expansion/collapse (org-cycle) with the left mouse button&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;Which I accidentally triggered today …&lt;/p&gt;

&lt;figure&gt;
 &lt;img class="my-0 rounded-md" src="https://janusworx.com/images/2023/org-mouse-cycle-1.png" alt="" /&gt;
 
 
 &lt;/figure&gt;
&lt;p&gt;After an (accidental) click opens up to …

&lt;figure&gt;
 &lt;img class="my-0 rounded-md" src="https://janusworx.com/images/2023/org-mouse-cycle-2.png" alt="" /&gt;
 
 
 &lt;/figure&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;

&lt;p&gt;Org Mode continues to delight! Hurrah!&lt;/p&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;

Feedback on this post? Mail me at &lt;a href="mailto:&amp;amp;#102;&amp;amp;%23101;&amp;amp;%23101;&amp;amp;%23100;&amp;amp;%2398;&amp;amp;%2397;&amp;amp;%2399;&amp;amp;%23107;&amp;amp;%2364;&amp;amp;%23106;&amp;amp;%2397;&amp;amp;%23110;&amp;amp;%23117;&amp;amp;%23115;&amp;amp;%23119;&amp;amp;%23111;&amp;amp;%23114;&amp;amp;%23120;&amp;amp;%2346;&amp;amp;%2399;&amp;amp;%23111;&amp;amp;%23109;" &gt;feedback@janusworx.com&lt;/a&gt;
&lt;br&gt;

&lt;br&gt;

P.S. Subscribe to my &lt;a href="https://janusworx.com/subscribe/" target="_blank" rel="noreferrer"&gt;mailing list!&lt;/a&gt;&lt;br&gt;
Forward these posts and letters to your friends and get them to subscribe!&lt;br&gt;
P.P.S. Feed my &lt;a href="https://www.amazon.in/hz/wishlist/ls/2QAUKHHAMOOVS?ref_=wl_share" target="_blank" rel="noreferrer"&gt;insatiable reading habit.&lt;/a&gt;&lt;/p&gt;</description></item><item><title>I Should Write Down and Summarize What I Did</title><link>https://janusworx.com/personal/i-should-write-down-and-summarize-what-i-did/</link><pubDate>Mon, 23 Jan 2023 10:37:17 +0530</pubDate><author>feedback@janusworx.com (Mario Jason Braganza)</author><guid>https://janusworx.com/personal/i-should-write-down-and-summarize-what-i-did/</guid><description>&lt;p&gt;I did a lot of research the other day about what I’d need to build a contact form for my website.&lt;br&gt;
I bookmarked lots of pages.&lt;/p&gt;
&lt;p&gt;And today, I come and look at this mountain of videos and sites and pages and woneder what exactly it is, that I am supposed to tackle.&lt;br&gt;
Nothing makes sense.&lt;br&gt;
I know I ruled out Sendy as an option. Or did I?&lt;br&gt;
Do I need Javascript? How much? Can I get snippets to copy paste? Do I need to go learn Javascript?&lt;br&gt;
What is spam protection? Do I need spam protection? How do I do it?&lt;br&gt;
I’ll have to go look at it all again now.&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;/p&gt;
&lt;p&gt;&lt;strong&gt;Note To Self:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;As you wind down your day, summarize what it is that you were working on in the eve.. (in however shitty a manner. does not matter.) Which also means, you need to keep some time in hand to do that. Or stop working a bit earlier&lt;/li&gt;
&lt;li&gt;As you being your day, look over your calendar first&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;, agenda next&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;, and as you begin each task review your summary from wheneve you worked on it last&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;/li&gt;
&lt;/ol&gt;
&lt;p&gt;I do this when I work all the time for clients.&lt;br&gt;
Wonder why I never do it for my learning.&lt;br&gt;
Time to treat myself as my most important client, and not assume that I will remember the important bits.&lt;br&gt;
Time to make it easy for myself to pick up the threads again.&lt;/p&gt;
&lt;p&gt;&lt;br&gt;

P.S. Subscribe to my &lt;a href="https://janusworx.com/subscribe/" target="_blank" rel="noreferrer"&gt;mailing list!&lt;/a&gt;&lt;br&gt;
Forward these posts and letters to your friends and get them to subscribe!&lt;br&gt;
P.P.S. Feed my &lt;a href="https://www.amazon.in/hz/wishlist/ls/2QAUKHHAMOOVS?ref_=wl_share" target="_blank" rel="noreferrer"&gt;insatiable reading habit.&lt;/a&gt;&lt;/p&gt;
&lt;div class="footnotes" role="doc-endnotes"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:1"&gt;
&lt;p&gt;Or god forbid, research it all over again.&amp;#160;&lt;a href="#fnref:1" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:2"&gt;
&lt;p&gt;Which I normally do&amp;#160;&lt;a href="#fnref:2" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:3"&gt;
&lt;p&gt;Which I also normally do&amp;#160;&lt;a href="#fnref:3" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:4"&gt;
&lt;p&gt;Which I never do&amp;#160;&lt;a href="#fnref:4" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</description></item><item><title>Learning Kubernetes, Setup Notes</title><link>https://janusworx.com/work/learning-kubernetes-setup-notes/</link><pubDate>Thu, 03 Nov 2022 13:12:50 +0530</pubDate><author>feedback@janusworx.com (Mario Jason Braganza)</author><guid>https://janusworx.com/work/learning-kubernetes-setup-notes/</guid><description>&lt;p&gt;Ok, here’s to learning Kubernetes in earnest, to get that career pivot going.&lt;br&gt;
Notes as I learn, over the coming days.&lt;/p&gt;
&lt;p&gt;This one, is a lot of random thoughts on bringing up a cluster.&lt;/p&gt;
&lt;div class="book-list"&gt;
&lt;ol&gt;
&lt;li&gt;It is both harder than you think, and easier than you think&lt;/li&gt;
&lt;li&gt;I did this, because &lt;em&gt;I wanted to run my own cluster&lt;/em&gt;, just like the big boys do.&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;
&lt;li&gt;It’s much easier to run alternatives like &lt;a href="https://kind.sigs.k8s.io/" target="_blank" rel="noreferrer"&gt;kind&lt;/a&gt;, if that suits your needs better.&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;p&gt;Notes to future Jason:&lt;/p&gt;
&lt;div class="book-list"&gt;
&lt;ol&gt;
&lt;li&gt;I made a gigantic Ubuntu KVM vm, for my playground&lt;/li&gt;
&lt;li&gt;Then four small vms in that big one&lt;/li&gt;
&lt;li&gt;Because of life, I goofed up and used Ubuntu LTS on the big vm and a non-LTS version on the small ones. Next time just use the same os everywhere.&lt;/li&gt;
&lt;li&gt;If learning is your aim, make sure the vms use a beefy, full fat os install. The skinny ones might be helpful online when actually building stuff, but when it comes to learning, you’ll be installing a lot of things manually.&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;
&lt;li&gt;To that end, make sure the virtual machines have lots of disk space available. I had to learn how to resize qcow files, because I nearly ran out of space.&lt;/li&gt;
&lt;li&gt;The control-plane node will need two cpus. the others can get by with one.&lt;/li&gt;
&lt;li&gt;Same with ram. Helps if the control-plane node has 4gb.&lt;/li&gt;
&lt;li&gt;The &lt;a href="https://kubernetes.io/docs/home/" target="_blank" rel="noreferrer"&gt;documentation&lt;/a&gt; is the best resource. It is comprehensive but not well structured. No hand holding here.&lt;/li&gt;
&lt;li&gt;I used &lt;code&gt;containerd&lt;/code&gt; and &lt;code&gt;runc&lt;/code&gt; rather than Docker, manually installing them using the documentation links&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;
&lt;li&gt;Pair with a how to install guide, off the web. Kubernetes releases come fast and furious. Make sure you aren’t following something woefully out of date.&lt;/li&gt;
&lt;li&gt;Once again, the documentation is the go to. Make sure you read them for notes and pitfalls. My cluster keeled and fell over after my first reboot, because I did not configure the &lt;a href="https://kubernetes.io/docs/tasks/administer-cluster/kubeadm/configure-cgroup-driver/" target="_blank" rel="noreferrer"&gt;cgroups driver&lt;/a&gt; right, to work with &lt;code&gt;systemd&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;It takes time. It’s ok. It’s supposed to take that long.&lt;/li&gt;
&lt;li&gt;If your system is old and creaky like mine, don’t bring up all the vms at once. That’s another surefire way of making sure the cluster goes splat. Bring up the control node, wait a while&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;, wait some more just to make sure, and then slowly bring up the worker nodes one by one.&lt;/li&gt;
&lt;li&gt;Then keep the darned thing on all day.&lt;/li&gt;
&lt;li&gt;If stuff works, and you like me, need to get on with life because you are doing all this in the middle of a house move, make sure to take lots of vm snapshots.&lt;/li&gt;
&lt;li&gt;What else? Hmm … oh yea! Stop stressing. You got this. Show up. It’ll come to you.&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&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;

&lt;div class="footnotes" role="doc-endnotes"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:1"&gt;
&lt;p&gt;Like Scott says, You got to &lt;a href="https://www.scotthyoung.com/blog/2020/05/04/do-the-real-thing/" target="_blank" rel="noreferrer"&gt;do the real thing&lt;/a&gt;, if you want to learn well.&amp;#160;&lt;a href="#fnref:1" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:2"&gt;
&lt;p&gt;I had to manually install apt-utils, whiptail, ping, devel tools and &lt;a href="https://janusworx.com/blog/so-god-made-a-dog/" &gt;Dog&lt;/a&gt; knows, what else&amp;#160;&lt;a href="#fnref:2" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:3"&gt;
&lt;p&gt;I honestly don’t why I did this. No objective reason. Just that the recent Docker emails give me the creeps. Reminds me of the old Microsoft emails. So, &lt;a href="https://www.artofmanliness.com/character/advice/via-negativa-adding-to-your-life-by-subtracting/" target="_blank" rel="noreferrer"&gt;Via Negativa!&lt;/a&gt;&amp;#160;&lt;a href="#fnref:3" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:4"&gt;
&lt;p&gt;Waiting time? Enough to brew me a coffee. Measure yours.&amp;#160;&lt;a href="#fnref:4" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</description></item><item><title>Make KVM Use a NIC in Bridge Mode</title><link>https://janusworx.com/work/make-kvm-use-nic-in-bridge-mode/</link><pubDate>Tue, 18 Oct 2022 17:48:35 +0530</pubDate><author>feedback@janusworx.com (Mario Jason Braganza)</author><guid>https://janusworx.com/work/make-kvm-use-nic-in-bridge-mode/</guid><description>&lt;p&gt;I wanted to start learning Kubernetes.&lt;br&gt;
So I thought I’d spin up a Ubuntu VM to use as my sacrificial guinea pig.&lt;/p&gt;
&lt;p&gt;While the normal NAT mode works well enough for most of my networking needs, I wanted the Ubuntu VM to show up and work as a machine on my host’s network.&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;
I have two network cards on my desktop and wanted to allocate one of them to this VM.&lt;br&gt;
I wanted a passthrough, where the guest OS would see the NIC and then have exclusive access to it.&lt;br&gt;
When I tried doing that, &lt;a href="https://www.linux-kvm.org/page/Main_Page" target="_blank" rel="noreferrer"&gt;KVM&lt;/a&gt; complained that it could not do this with PCI devices.&lt;/p&gt;
&lt;p&gt;Hmm, that had me stumped a bit.&lt;br&gt;
And then I learnt about &lt;a href="https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/virtualization_deployment_and_administration_guide/sect-virtual_networking-directly_attaching_to_physical_interface#sect-macvtap-virt_manager" target="_blank" rel="noreferrer"&gt;attaching my VM’s NIC directly to a physical interface.&lt;/a&gt;&lt;br&gt;
What I needed to do was use Macvtap as my network source in the VM’s settings.&lt;br&gt;
It then prompted me for my NIC’s device name, which I gave it, courtesy a little spelunking through &lt;code&gt;ifconfig&lt;/code&gt;’s output.&lt;br&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;


&lt;figure&gt;
 &lt;img class="my-0 rounded-md" src="https://janusworx.com/images/2022/linux-kvm-nic-macvtap.png" alt="" /&gt;
 
 
 &lt;/figure&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;

And then once I began my Ubuntu VM install, it detected my NIC and then let me assign an ip that I use on my local network.&lt;br&gt;
For all intents and purposes the VM now appears as just another machine on my network ala my Pis.&lt;br&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;
&lt;/p&gt;
&lt;div class="footnotes" role="doc-endnotes"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:1"&gt;
&lt;p&gt;To my mind, that’d be one less layer of networking I’d need to deal with.&amp;#160;&lt;a href="#fnref:1" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</description></item><item><title>Make SSH Ignore Key, When Logging On to a Fresh Box</title><link>https://janusworx.com/work/make-ssh-ignore-key/</link><pubDate>Tue, 18 Oct 2022 17:38:28 +0530</pubDate><author>feedback@janusworx.com (Mario Jason Braganza)</author><guid>https://janusworx.com/work/make-ssh-ignore-key/</guid><description>&lt;p&gt;Every now and then, I spin up a fresh vm.&lt;br&gt;
And being a creature of habit, I use the same username on my play / experimental vms as my normal login.&lt;br&gt;
So everytime I try to login to such a vm or pi, I get a &lt;code&gt;Too many authentication failures&lt;/code&gt; error.&lt;/p&gt;
&lt;p&gt;So to just get in and start working, I need to tell ssh to ignore my keys and try using passwords as the authentication mechanism.&lt;br&gt;
Like so&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;ssh -o &lt;span class="nv"&gt;PreferredAuthentications&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;password -o &lt;span class="nv"&gt;PubkeyAuthentication&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;no jason@ip-address-on-my-network&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;And then I can login and begin the process of locking everything down.&lt;br&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;
&lt;/p&gt;</description></item><item><title>Notes to Self, on Self Hosting Fonts on My Hugo Blog</title><link>https://janusworx.com/work/notes-to-self-on-self-hosting-fonts/</link><pubDate>Sun, 09 Oct 2022 14:32:28 +0530</pubDate><author>feedback@janusworx.com (Mario Jason Braganza)</author><guid>https://janusworx.com/work/notes-to-self-on-self-hosting-fonts/</guid><description>&lt;p&gt;Writing this down, so that I will not struggle the next time&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;, I have to do this.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;I use &lt;a href="https://mbtype.com/fonts/valkyrie/" target="_blank" rel="noreferrer"&gt;Valkyrie&lt;/a&gt; for everything on the blog in various weights, except for code and preformatted stuff, which uses &lt;a href="https://github.com/adobe-fonts/source-code-pro" target="_blank" rel="noreferrer"&gt;Source Code Pro Medium&lt;/a&gt;. Both are &lt;a href="https://en.wikipedia.org/wiki/Web_Open_Font_Format" target="_blank" rel="noreferrer"&gt;WOFF2&lt;/a&gt; fonts.&lt;/li&gt;
&lt;li&gt;Anything in Hugo’s &lt;code&gt;assets/css/extended&lt;/code&gt; folder will be picked up by Hugo and &lt;a href="https://discourse.gohugo.io/t/papermod-theme-how-to-add-custom-css/30165/9" target="_blank" rel="noreferrer"&gt;bundled into a single CSS file.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;The fonts are in subdirectories in the &lt;code&gt;static/fonts/font-name&lt;/code&gt; folder. Anything in the &lt;code&gt;static&lt;/code&gt; folder shows up at the root of the site. &lt;code&gt;~/mjb/blog/static/images/test.jpg&lt;/code&gt; will become &lt;code&gt;/images/test.jpg&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;I’ve created an &lt;code&gt;embed-font-name.css&lt;/code&gt; file in the &lt;code&gt;css&lt;/code&gt; folder above, with embed instructions generously provided by Matthew Butterick in his font documentation for Valkyrie. I adapted the same for Source Code Pro as well. Here’s a sample of my &lt;code&gt;embed-source-code-pro.css&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;span class="lnt"&gt;3
&lt;/span&gt;&lt;span class="lnt"&gt;4
&lt;/span&gt;&lt;span class="lnt"&gt;5
&lt;/span&gt;&lt;span class="lnt"&gt;6
&lt;/span&gt;&lt;span class="lnt"&gt;7
&lt;/span&gt;&lt;span class="lnt"&gt;8
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&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="k"&gt;font-face&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;font-family&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;Source Code Pro Medium&amp;#39;&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;font-style&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="nt"&gt;normal&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;font-weight&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="nt"&gt;medium&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;font-stretch&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="nt"&gt;normal&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;font-display&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="nt"&gt;auto&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;src&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="nt"&gt;url&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;/fonts/source-code-pro/SourceCodePro-Medium.woff2&amp;#39;&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="nt"&gt;format&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;woff2&amp;#39;&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;ol start="5"&gt;
&lt;li&gt;Finally, I created a &lt;code&gt;zz-include-css.css&lt;/code&gt; file, which I use to overide the default CSS, so I can use my custom fonts. Since it starts with a &lt;em&gt;zz&lt;/em&gt; it comes after the files above, that start with &lt;em&gt;embed&lt;/em&gt;, in the final munged and minified CSS file.&lt;br&gt;
These are my instructions to have most text rendered with Valkyrie and code as Source Code Pro Medium&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;
&lt;/ol&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt; 1
&lt;/span&gt;&lt;span class="lnt"&gt; 2
&lt;/span&gt;&lt;span class="lnt"&gt; 3
&lt;/span&gt;&lt;span class="lnt"&gt; 4
&lt;/span&gt;&lt;span class="lnt"&gt; 5
&lt;/span&gt;&lt;span class="lnt"&gt; 6
&lt;/span&gt;&lt;span class="lnt"&gt; 7
&lt;/span&gt;&lt;span class="lnt"&gt; 8
&lt;/span&gt;&lt;span class="lnt"&gt; 9
&lt;/span&gt;&lt;span class="lnt"&gt;10
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&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="nn"&gt;top&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;font-family&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;valkyrie&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;font-variant&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;oldstyle-nums&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&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;span class="line"&gt;&lt;span class="cl"&gt;
&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;post-content&lt;/span&gt; &lt;span class="nt"&gt;pre&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="nt"&gt;code&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;font-family&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;Source Code Pro Medium&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;font-style&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;medium&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;font-weight&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;500&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&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;
&lt;/div&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;ol start="6"&gt;
&lt;li&gt;Look! So pretty :)&lt;/li&gt;
&lt;/ol&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;

&lt;div class="footnotes" role="doc-endnotes"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:1"&gt;
&lt;p&gt;hopefully, never!&amp;#160;&lt;a href="#fnref:1" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:2"&gt;
&lt;p&gt;I figured out what to target by inspecting the final web page in Firefox&amp;#160;&lt;a href="#fnref:2" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</description></item><item><title>Ticking Off Checkboxes With the Mouse in Org Mode</title><link>https://janusworx.com/personal/ticking-off-checkboxes-with-the-mouse-in-org-mode/</link><pubDate>Fri, 07 Oct 2022 19:48:29 +0530</pubDate><author>feedback@janusworx.com (Mario Jason Braganza)</author><guid>https://janusworx.com/personal/ticking-off-checkboxes-with-the-mouse-in-org-mode/</guid><description>&lt;p&gt;While I mostly use the keyboard when doing everything Org related, there are a &lt;em&gt;few&lt;/em&gt; times in the day, when I cannot. These are mostly mornings and evenings when I bustle about home, doing this thing and that. Things that are part of my routine. Things that are checkboxes in my &lt;code&gt;routine.org&lt;/code&gt; file.&lt;br&gt;
It helps me get through the day without thinking of whether, I gave the better half her meds or whether I remembered to call my mum or if I drank enough water by the end of the day or whether my stretches for the day are done or if the plan for the next day is made.&lt;/p&gt;
&lt;p&gt;Little things. Everyday things. Important things.&lt;/p&gt;
&lt;p&gt;And at those times, the keyboard gets in the way.&lt;br&gt;
I don’t want to arrow to get to some task and &lt;code&gt;C-c C-c&lt;/code&gt; to tick it off.&lt;br&gt;
Besides my hands are nearly always messy with something or the other and I don’t want to get gunk into my keyboard.&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;
Easier to just mosey the cursor to said task and click to done!&lt;br&gt;
But click to done, would not done! What?! Org Mode would not let me click to complete my checkboxes?&lt;/p&gt;
&lt;p&gt;So, off to the &lt;a href="https://orgmode.org/org.html" target="_blank" rel="noreferrer"&gt;documentation&lt;/a&gt; I went and did a search for &lt;code&gt;mouse&lt;/code&gt;, and stumbled across this line.&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;Piotr Zielinski wrote &lt;code&gt;org-mouse.el,&lt;/code&gt; proposed agenda blocks and contributed various ideas and code snippets.&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;Well, Piotr understands my pain!&lt;br&gt;
Some more spelunking led me to &lt;a href="http://git.savannah.gnu.org/cgit/emacs.git/tree/lisp/org/org-mouse.el#n46" target="_blank" rel="noreferrer"&gt;&lt;code&gt;org-mouse.el&lt;/code&gt;&lt;/a&gt;, which seems to be really well documented. Its commentary begins with …&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;;; Org-mouse provides mouse support for org-mode.
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;;;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;;; http://orgmode.org
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;;;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;;; Org-mouse implements the following features:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;;; * following links with the left mouse button (in Emacs 22)
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;;; * subtree expansion/collapse (org-cycle) with the left mouse button
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;;; * several context menus on the right mouse button:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;;; + general text
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;;; + headlines
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;;; + timestamps
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;;; + priorities
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;;; + links
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;;; + tags
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;;; * promoting/demoting/moving subtrees with mouse-3
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;;; + if the drag starts and ends in the same line then promote/demote
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;;; + otherwise move the subtree&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://git.savannah.gnu.org/cgit/emacs.git/tree/lisp/org/org-mouse.el#n101" target="_blank" rel="noreferrer"&gt;Line 101&lt;/a&gt;, was what put a smile on my face though.&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;;; Version 0.17
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;;; + toggle checkboxes with a single click&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;&lt;br&gt;

&lt;a href="http://git.savannah.gnu.org/cgit/emacs.git/tree/lisp/org/org-mouse.el#n46" target="_blank" rel="noreferrer"&gt;All it took&lt;/a&gt;, to get it working was to put &lt;code&gt;(require 'org-mouse)&lt;/code&gt; into my &lt;code&gt;init.el&lt;/code&gt; et voilà. I can clicky-clicky-to-done to my heart’s content.&lt;/p&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;


&lt;figure&gt;
 &lt;img class="my-0 rounded-md" src="https://janusworx.com/images/2022/org-mouse.png" alt="" /&gt;
 
 
 &lt;/figure&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;
&lt;/p&gt;
&lt;div class="footnotes" role="doc-endnotes"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:1"&gt;
&lt;p&gt;well, more gunk than is necessary.&amp;#160;&lt;a href="#fnref:1" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</description></item><item><title>Blocks in Org Mode</title><link>https://janusworx.com/work/blocks-in-org-mode/</link><pubDate>Tue, 27 Sep 2022 14:07:32 +0530</pubDate><author>feedback@janusworx.com (Mario Jason Braganza)</author><guid>https://janusworx.com/work/blocks-in-org-mode/</guid><description>&lt;p&gt;I remember, when I first learned it, the Org Manual &lt;a href="https://orgmode.org/orgguide.html#Paragraphs" target="_blank" rel="noreferrer"&gt;mentioning&lt;/a&gt; I could have code, quotes, poetry and sundry self structured blocks of text, where the text in that block would flow like I wanted it to. I could have indentation or line breaks as I pleased.&lt;br&gt;
And then I promptly forgot about it.&lt;/p&gt;
&lt;p&gt;The only thing I did remember were code blocks.&lt;br&gt;
And that I needed to do a &lt;code&gt;#+begin_src&lt;/code&gt; and then a &lt;code&gt;#+end_src&lt;/code&gt; and put my code in the middle. And all this while, I would keep typing it in, by hand.&lt;/p&gt;
&lt;p&gt;Until I tired of keeping on doing that shit, because there are more and more notes that are now going into my &lt;a href="https://janusworx.com/tags/zettelkasten/" &gt;zettelkasten&lt;/a&gt; and decided well, &lt;a href="https://janusworx.com/tags/automation/" &gt;the computer can do that for me.&lt;/a&gt;&lt;br&gt;
So, I went back to the Org Mode documentation and discovered &lt;a href="https://orgmode.org/manual/Structure-Templates.html" target="_blank" rel="noreferrer"&gt;Structure Templates.&lt;/a&gt;&lt;br&gt;
And now, I am at peace!&lt;/p&gt;
&lt;p&gt;Turns out, all I needed was &lt;code&gt;(org-insert-structure-template)&lt;/code&gt; aka &lt;code&gt;C-c C-,&lt;/code&gt;&lt;br&gt;
Here’s some code I’ve selected in a document&lt;/p&gt;

&lt;figure&gt;
 &lt;img class="my-0 rounded-md" src="https://janusworx.com/images/2022/org-blocks-1.png" alt="" /&gt;
 
 
 &lt;/figure&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;

&lt;p&gt;Now I hit &lt;code&gt;C-c C-,&lt;/code&gt;, which brings up a whole host of options, with a prompt!&lt;br&gt;
Do I want this block of text to be a quote? Or some verse?&lt;br&gt;
Well, this is just boring code, so I choose source with the &lt;code&gt;s&lt;/code&gt; key&lt;/p&gt;

&lt;figure&gt;
 &lt;img class="my-0 rounded-md" src="https://janusworx.com/images/2022/org-blocks-2.png" alt="" /&gt;
 
 
 &lt;/figure&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;

&lt;p&gt;And tada! The block is surrounded by the begin and end tags, and is now a source block! I could add the programming language after &lt;code&gt;#+begin_src&lt;/code&gt; to get highlighting as well, but that’s a story for another day.&lt;/p&gt;

&lt;figure&gt;
 &lt;img class="my-0 rounded-md" src="https://janusworx.com/images/2022/org-blocks-3.png" alt="" /&gt;
 
 
 &lt;/figure&gt;
&lt;p&gt;I’m practicing this, so that I get &lt;code&gt;C-c C-,&lt;/code&gt; into my muscle memory, because be it verse, quote, code, example or exports, I know I will be making heavy use of Structure Templates.&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;
</description></item><item><title>Exclude Files and Folders From an Rsync Copy</title><link>https://janusworx.com/work/exclude-files-and-folders-from-an-rsync-copy/</link><pubDate>Sun, 18 Sep 2022 19:43:24 +0530</pubDate><author>feedback@janusworx.com (Mario Jason Braganza)</author><guid>https://janusworx.com/work/exclude-files-and-folders-from-an-rsync-copy/</guid><description>&lt;p&gt;I’ve been sticking to plain old &lt;code&gt;rsync -az&lt;/code&gt; to sling files around using &lt;a href="https://download.samba.org/pub/rsync/rsync.1" target="_blank" rel="noreferrer"&gt;Rsync&lt;/a&gt;.&lt;br&gt;
Until I ran into a hiccough today, where I filled up my teensy remote storage on the Pi, because a couple of subdirectories that were part of the run, were hundreds of megabytes large.&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;/p&gt;
&lt;p&gt;So I did the usual, did hunt around the web thing, and learnt about &lt;code&gt;--exclude&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;So now the new Rsync command is …&lt;/p&gt;
&lt;p&gt;&lt;code&gt;rsync -az src dest --exclude={'excluded_dir_1','excluded_dir_2'}&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;And my poor Pi no longer has disk full nightmares.&lt;/p&gt;
&lt;div class="footnotes" role="doc-endnotes"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:1"&gt;
&lt;p&gt;I’d expected the normal run to be a few hundred kilobytes in size.&amp;#160;&lt;a href="#fnref:1" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</description></item><item><title>Line Numbers in Hugo Codeblocks</title><link>https://janusworx.com/work/line-numbers-in-hugo-codeblocks/</link><pubDate>Sat, 17 Sep 2022 15:16:19 +0530</pubDate><author>feedback@janusworx.com (Mario Jason Braganza)</author><guid>https://janusworx.com/work/line-numbers-in-hugo-codeblocks/</guid><description>&lt;p&gt;I want my code blocks on the blog to sometimes have line numbers.&lt;br&gt;
Looking at the Hugo docs &lt;a href="https://gohugo.io/content-management/syntax-highlighting/#highlighting-in-code-fences" target="_blank" rel="noreferrer"&gt;here&lt;/a&gt; and &lt;a href="https://gohugo.io/content-management/syntax-highlighting/#highlight-shortcode" target="_blank" rel="noreferrer"&gt;here&lt;/a&gt; led me to the &lt;code&gt;linenos&lt;/code&gt; argument.&lt;/p&gt;
&lt;p&gt;While we’d start our code blocks like &lt;code&gt;(```python)&lt;/code&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;, all I need more is to add the line number argument like so.&lt;/p&gt;
&lt;p&gt;Vanilla code block …&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&amp;#34;&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s2"&gt;	“It’s silly to try to escape other people’s faults. 
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s2"&gt;	They are inescapable. Just try to escape your own.”
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s2"&gt;	— Marcus Aurelius
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s2"&gt;	&amp;#34;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&amp;#34;&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s2"&gt;	“Just that you do the right thing. 
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s2"&gt;	The rest doesn’t matter.” 
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s2"&gt;	– Marcus Aurelius
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s2"&gt;	&amp;#34;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;Now, using the &lt;code&gt;linenos&lt;/code&gt; option, I can be all fancy to show …&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt; 1
&lt;/span&gt;&lt;span class="lnt"&gt; 2
&lt;/span&gt;&lt;span class="lnt"&gt; 3
&lt;/span&gt;&lt;span class="lnt"&gt; 4
&lt;/span&gt;&lt;span class="lnt"&gt; 5
&lt;/span&gt;&lt;span class="lnt"&gt; 6
&lt;/span&gt;&lt;span class="lnt"&gt; 7
&lt;/span&gt;&lt;span class="lnt"&gt; 8
&lt;/span&gt;&lt;span class="lnt"&gt; 9
&lt;/span&gt;&lt;span class="lnt"&gt;10
&lt;/span&gt;&lt;span class="lnt"&gt;11
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&amp;#34;&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s2"&gt;	“It’s silly to try to escape other people’s faults. 
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s2"&gt;	They are inescapable. Just try to escape your own.”
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s2"&gt;	— Marcus Aurelius
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s2"&gt;	&amp;#34;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&amp;#34;&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s2"&gt;	“Just that you do the right thing. 
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s2"&gt;	The rest doesn’t matter.” 
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s2"&gt;	– Marcus Aurelius
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s2"&gt;	&amp;#34;&amp;#34;&amp;#34;&lt;/span&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;
&lt;/div&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;All I did was, start my code block with a &lt;code&gt;( ```python {linenos=true} )&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;/p&gt;
&lt;p&gt;Hurrah!&lt;/p&gt;
&lt;div class="footnotes" role="doc-endnotes"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:1"&gt;
&lt;p&gt;don’t type the round brackets, they’re just there, so I can see/show what I am doing.&amp;#160;&lt;a href="#fnref:1" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:2"&gt;
&lt;p&gt;once again, ignore the round brackets&amp;#160;&lt;a href="#fnref:2" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</description></item><item><title>Drafts App Needs Escaping if I Am to Use Hugo Shortcodes</title><link>https://janusworx.com/work/drafts-app-needs-escaping-if-i-am-to-use-hugo-shortcodes/</link><pubDate>Wed, 14 Sep 2022 14:35:09 +0530</pubDate><author>feedback@janusworx.com (Mario Jason Braganza)</author><guid>https://janusworx.com/work/drafts-app-needs-escaping-if-i-am-to-use-hugo-shortcodes/</guid><description>&lt;p&gt;When I &lt;em&gt;finally&lt;/em&gt; figured out how to get &lt;a href="https://janusworx.com/blog/line-breaks-on-my-microblog/" target="_blank" rel="noreferrer"&gt;line breaks working on my microblog&lt;/a&gt;, I ran into another sort of hiccough, when I tried doing that from my phone.&lt;br&gt;
I use the &lt;a href="https://getdrafts.com/" target="_blank" rel="noreferrer"&gt;Drafts app&lt;/a&gt; on my phone and tablet to slice and dice all manner of text and to send it to various locations as I please.&lt;/p&gt;
&lt;p&gt;One of those is a workflow, that lets me shoot text to a folder on my server which is then published (via a script) on the microblog.&lt;br&gt;
And everytime I typed my &lt;code&gt;{{&amp;lt; hbr &amp;gt;}}&lt;/code&gt; Hugo shortcode to let me have a line break in that post&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;, it would just publish gibberish&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; instead of giving me said break.&lt;/p&gt;
&lt;p&gt;A bit of twiddling and experimenting led me to the solution.&lt;br&gt;
If I escaped the leading &lt;code&gt;{&lt;/code&gt; character with a &lt;code&gt;\&lt;/code&gt;, so that I typed &lt;code&gt;\{{&amp;lt; hbr &amp;gt;}}&lt;/code&gt;, it then worked just fine!&lt;/p&gt;
&lt;p&gt;P.P.P.S. I need to &lt;a href="https://liatas.com/posts/escaping-hugo-shortcodes/" target="_blank" rel="noreferrer"&gt;escape my Hugo shortcodes&lt;/a&gt; with &lt;code&gt;/* */&lt;/code&gt; if I want to display them in my posts. Like so, &lt;code&gt;{{/* some-shortcode */}}&lt;/code&gt;&lt;/p&gt;
&lt;div class="footnotes" role="doc-endnotes"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:1"&gt;
&lt;p&gt;when it gets published on the blog, that is.&amp;#160;&lt;a href="#fnref:1" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:2"&gt;
&lt;p&gt;rather, ascii representations of said characters, but gibberish is the correct technical term&amp;#160;&lt;a href="#fnref:2" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</description></item><item><title>Line Breaks on My Microblog</title><link>https://janusworx.com/work/line-breaks-on-my-microblog/</link><pubDate>Wed, 31 Aug 2022 21:20:14 +0530</pubDate><author>feedback@janusworx.com (Mario Jason Braganza)</author><guid>https://janusworx.com/work/line-breaks-on-my-microblog/</guid><description>&lt;p&gt;I use a (not quite) &lt;a href="https://moi.janusworx.com" target="_blank" rel="noreferrer"&gt;hidden blog&lt;/a&gt; to collect all sorts of bits and bobs and to (selectively and automatically) publish them to my &lt;a href="https://cb.janusworx.com/jason" target="_blank" rel="noreferrer"&gt;fediverse&lt;/a&gt; or &lt;a href="https://twitter.com/janusworx/" target="_blank" rel="noreferrer"&gt;twitter&lt;/a&gt; accounts.&lt;/p&gt;
&lt;p&gt;The one thing that constantly bugged me, was that it would not accept line breaks to differentiate between paragraphs.&lt;br&gt;
&lt;a href="https://moi.janusworx.com/microposts/20220830192948/" target="_blank" rel="noreferrer"&gt;Like this post, here.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I don’t know if it’s my theme or a Hugo thing.&lt;br&gt;
And try as I might, I couldn’t quite figure it out.&lt;br&gt;
Since I don’t quite have the time to dig into the code, I just decided to add a couple of &lt;code&gt;&amp;lt;br&amp;gt;&lt;/code&gt; tags. And that did the trick! &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;/p&gt;
&lt;p&gt;&lt;a href="https://moi.janusworx.com/microposts/lightness-of-being/" target="_blank" rel="noreferrer"&gt;And now it all looks as it should!&lt;/a&gt;&lt;br&gt;
&lt;br&gt;
&lt;/p&gt;
&lt;div class="footnotes" role="doc-endnotes"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:1"&gt;
&lt;p&gt;I rolled it into a shortcode, which has a &lt;code&gt;&amp;lt;br&amp;gt;&lt;/code&gt; followed by a couple of spaces, but that is absolutely not necessary&amp;#160;&lt;a href="#fnref:1" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</description></item><item><title>Notes to Self on Renewing Wildcard Certbot Certs</title><link>https://janusworx.com/work/notes-to-self-on-renewing-wildcard-certbot-certs/</link><pubDate>Sat, 20 Aug 2022 11:45:54 +0530</pubDate><author>feedback@janusworx.com (Mario Jason Braganza)</author><guid>https://janusworx.com/work/notes-to-self-on-renewing-wildcard-certbot-certs/</guid><description>&lt;p&gt;&lt;em&gt;(Update, 2024-03-15: I now use lego. will update this post later.)&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;After struggling to renew my certs for the third time in a row, hopefully these pointers should keep me on track for the next time.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Namecheap does &lt;em&gt;not&lt;/em&gt; yet support automatic wildcard renewal for the Letsencrypt/Certbot combo. Check next year.&lt;/li&gt;
&lt;li&gt;Have your Namecheap control panel open and ready.&lt;/li&gt;
&lt;li&gt;Switch to &lt;code&gt;root&lt;/code&gt; or run the command below with &lt;code&gt;sudo&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Command to renew: &lt;code&gt;certbot certonly --manual --manual-public-ip-logging-ok --preferred-challenges dns-01 -d *.domain.com -d domain.com&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;certbot&lt;/code&gt; will then, print a couple of lines that you need to add as a &lt;code&gt;TXT&lt;/code&gt; record in the Namecheap DNS control panel.&lt;/li&gt;
&lt;li&gt;When you do that, make sure you set the &lt;code&gt;TTL&lt;/code&gt; of the record, to a minute, so that you can redo stuff quicker, if you mess up.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;certbot&lt;/code&gt; might ask you to do multiple records. Read the instructions carefully.&lt;/li&gt;
&lt;li&gt;When you check to see if the &lt;code&gt;TXT&lt;/code&gt; record is set, search for the whole domain name. For e.g. &lt;code&gt;_acme-challenge.domain.blah&lt;/code&gt; instead of just &lt;code&gt;domain.blah&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;If you’ve done all of the above, hopefully things should go smoothly and the certificate should renew.&lt;/li&gt;
&lt;li&gt;Restart Nginx and you’re done.&lt;/li&gt;
&lt;li&gt;If you have multiple machines, figure out a way to securely transfer the certs there too.
&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;
&lt;/li&gt;
&lt;/ol&gt;</description></item><item><title>Emacsclient Does Not Recognise Compose Key Sequences</title><link>https://janusworx.com/work/emacsclient-does-not-recognise-compose-key-sequences/</link><pubDate>Sun, 31 Jul 2022 08:00:00 +0530</pubDate><author>feedback@janusworx.com (Mario Jason Braganza)</author><guid>https://janusworx.com/work/emacsclient-does-not-recognise-compose-key-sequences/</guid><description>&lt;p&gt;&lt;span style="font-size: 90%; font-style: italic"&gt;Originally published 2021/10/27. Updated to include the &lt;code&gt;.xssessionsrc&lt;/code&gt; point&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;I run pretty often into this issue, so this is a checklist for me.&lt;br&gt;
Issue being, that I cannot use Compose key sequences to type out the characters I need.&lt;/p&gt;
&lt;p&gt;Case in point being, the apostrophe &lt;code&gt;’&lt;/code&gt; and the quote marks &lt;code&gt;“” , ‘’&lt;/code&gt; that I use, all the live long day.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Make sure that emacs is running as a service. It runs in your user, so check status with &lt;code&gt;systemctl --user status emacs.service&lt;/code&gt;
&lt;ul&gt;
&lt;li&gt;Do the normal computer user thing. Restart the service.&lt;code&gt;systemctl --user restart emacs.service.&lt;/code&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;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Make sure the system is UTF-8 everywhere. (en_IN.UTF-8 does not work for me. Make sure it’s en_US.UTF-8)
&lt;ul&gt;
&lt;li&gt;One place that Emacs looks is the &lt;code&gt;.xsessionrc&lt;/code&gt; file in the home folder.
&lt;ul&gt;
&lt;li&gt;These are the contents of mine. My Emacs &lt;em&gt;refuses&lt;/em&gt; to let the compose key sequences work, unless it’s present
&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;&lt;span class="nv"&gt;LC_NUMERIC&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;en_US.UTF-8
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;LC_MONETARY&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;en_US.UTF-8
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;LC_PAPER&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;en_US.UTF-8
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;LC_NAME&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;en_US.UTF-8
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;LC_ADDRESS&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;en_US.UTF-8
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;LC_TELEPHONE&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;en_US.UTF-8
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;LC_MEASUREMENT&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;en_US.UTF-8
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;LC_IDENTIFICATION&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;en_US.UTF-8
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;LC_TIME&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;en_US.UTF-8
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;PAPERSIZE&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;a4
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;LANGUAGE&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;en_US
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;LANG&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;en_US.UTF-8
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&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="o"&gt;[&lt;/span&gt; &lt;span class="nv"&gt;$DISPLAY&lt;/span&gt; !&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;:0&amp;#34;&lt;/span&gt; &lt;span class="o"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;then&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;	&lt;span class="nb"&gt;export&lt;/span&gt; &lt;span class="nv"&gt;XAUTHORITY&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;HOME&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;/.Xauthority
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;fi&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;This should do the trick 99% of the time.&lt;/p&gt;
&lt;div class="footnotes" role="doc-endnotes"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:1"&gt;
&lt;p&gt;Have done it close to 4–5 times now. It works!&amp;#160;&lt;a href="#fnref:1" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</description></item></channel></rss>