<rss version="2.0">
<channel>
<title>Posts on SpiderFlock</title>
<link>https://www.spiderflock.com/</link>
<description>Recent content updates for SpiderFlock</description>
<generator>Custom</generator>
<language>en-us</language>
<copyright>
Yep, it is copyrighted
</copyright>
<lastBuildDate>Thu, 27 Aug 2026 20:39:01 GMT</lastBuildDate>

        <item>
        <title>Continuing Emacs Adventure - Newsticker And Gtpel</title>
        <link>https://spiderflock.com/posts/continuing-emacs-adventure---newsticker-and-gtpel.html
        </link>
        <pubDate>Mon, 25 May 2026 00:00:00 GMT</pubDate>
        <guid>https://spiderflock.com/posts/continuing-emacs-adventure---newsticker-and-gtpel.html
        </guid>
        <description>
        <![CDATA[<div class="post">
<p>Another Emacs blog post. If this gets me thinking about blogging and
tech I am good with it and I hope you are.</p>
<p>I used Elfeed for a long time. What I didn't realise is Emacs has
been shipping with one for a long time. Enter NewsTicker.</p>
<p>It seems OK. Configuration is fairly easy:</p>
<div class="sourceCode" id="cb1"><pre class="sourceCode lisp"><code class="sourceCode commonlisp"><span id="cb1-1"><a aria-hidden="true" href="#cb1-1" tabindex="-1"></a>(<span class="kw">setq</span> newsticker-url-list-defaults <span class="kw">nil</span>)</span>
<span id="cb1-2"><a aria-hidden="true" href="#cb1-2" tabindex="-1"></a></span>
<span id="cb1-3"><a aria-hidden="true" href="#cb1-3" tabindex="-1"></a><span class="co">;; Define your custom news feeds</span></span>
<span id="cb1-4"><a aria-hidden="true" href="#cb1-4" tabindex="-1"></a>(<span class="kw">setq</span> newsticker-url-list</span>
<span id="cb1-5"><a aria-hidden="true" href="#cb1-5" tabindex="-1"></a>      '((<span class="st">"Spider flock"</span> <span class="st">"https://spiderflock.com/feed.xml"</span>)</span>
<span id="cb1-6"><a aria-hidden="true" href="#cb1-6" tabindex="-1"></a>        (<span class="st">"Null program"</span> <span class="st">"http://prog21.dadgum.com/atom.xml"</span> )</span>
<span id="cb1-7"><a aria-hidden="true" href="#cb1-7" tabindex="-1"></a>        (<span class="st">"Sacha emacs"</span>  <span class="st">"https://sachachua.com/blog/feed/"</span>)</span>
<span id="cb1-8"><a aria-hidden="true" href="#cb1-8" tabindex="-1"></a>        (<span class="st">"positech"</span>     <span class="st">"http://positech.co.uk/cliffsblog/?feed=rss2"</span>)))</span></code></pre></div>
<p>Keyboard shortcuts are quite reasonable. It doesn't feel amazing but
it does seem usable enough to just use it and forget about alternatives.
It not been heavily tests but I like the idea of having a hassle free
rss reader.</p>
<p>A curated set of websites appeals to me. Humans doing human things
and writing about them - warts and all. It would be wonderful to kick
back and read some great blogs again. I am sure they still exist and as
they don't hit the mark when it comes to making money people can just be
themselves. Including their typos, spelling mistakes and rambling
exposition.</p>
<p>Changing subjects but staying with Emacs. I previously mentioned I
had two Emacs packages installed. One is a Tron theme and the other is
gptel. Gptel is a package for using LLM, both locally and cloud hosted
one.</p>
<p>I played with ollama to have one running locally but it made my
machine crawl so moved to the free tier of the cloud one. I pretty much
use it as alternative to googling. It lets me stay inside Emacs rather
than jumping browser and provides answer quite quickly.</p>
<p>I would like to see self hosted models dominate this area but that's
not something that will happen soon, if at all.</p>
<p>Yes I know me talking about wanting to find great human written blogs
and then saying I am making use of LLM's may seem a little odd. I guess
it is what it is.</p>
<p>I decided I wanted to work out how to create a new window in Emacs
and send some text to it. After that I wanted to have it toggle in and
out when I pressed a button. Nothing to exciting and I am not exactly
sure what I am going to do with it other than put it on this post.</p>
<div class="sourceCode" id="cb2"><pre class="sourceCode lisp"><code class="sourceCode commonlisp"><span id="cb2-1"><a aria-hidden="true" href="#cb2-1" tabindex="-1"></a>(<span class="kw">setq</span> log-window <span class="kw">nil</span>)</span>
<span id="cb2-2"><a aria-hidden="true" href="#cb2-2" tabindex="-1"></a></span>
<span id="cb2-3"><a aria-hidden="true" href="#cb2-3" tabindex="-1"></a>(<span class="kw">defun</span><span class="fu"> sf-toggle-window </span>()</span>
<span id="cb2-4"><a aria-hidden="true" href="#cb2-4" tabindex="-1"></a>  (interactive)</span>
<span id="cb2-5"><a aria-hidden="true" href="#cb2-5" tabindex="-1"></a>  (<span class="kw">if</span> (<span class="kw">not</span> log-window)</span>
<span id="cb2-6"><a aria-hidden="true" href="#cb2-6" tabindex="-1"></a>      (<span class="kw">progn</span></span>
<span id="cb2-7"><a aria-hidden="true" href="#cb2-7" tabindex="-1"></a>        (<span class="kw">let</span> ((buf (get-buffer-create <span class="st">"log"</span>))</span>
<span id="cb2-8"><a aria-hidden="true" href="#cb2-8" tabindex="-1"></a>              (win (split-window <span class="kw">nil</span> <span class="kw">nil</span> <span class="dt">'right</span>)))</span>
<span id="cb2-9"><a aria-hidden="true" href="#cb2-9" tabindex="-1"></a>          (set-window-buffer win buf)</span>
<span id="cb2-10"><a aria-hidden="true" href="#cb2-10" tabindex="-1"></a>          (<span class="kw">setq</span> log-window win)</span>
<span id="cb2-11"><a aria-hidden="true" href="#cb2-11" tabindex="-1"></a>          <span class="co">;;  (select-window win)  ; Optional: moves focus to the new window</span></span>
<span id="cb2-12"><a aria-hidden="true" href="#cb2-12" tabindex="-1"></a>          )</span>
<span id="cb2-13"><a aria-hidden="true" href="#cb2-13" tabindex="-1"></a>        )</span>
<span id="cb2-14"><a aria-hidden="true" href="#cb2-14" tabindex="-1"></a>    (<span class="kw">progn</span></span>
<span id="cb2-15"><a aria-hidden="true" href="#cb2-15" tabindex="-1"></a>      (delete-window log-window)</span>
<span id="cb2-16"><a aria-hidden="true" href="#cb2-16" tabindex="-1"></a>      (<span class="kw">setq</span> log-window <span class="kw">nil</span>)</span>
<span id="cb2-17"><a aria-hidden="true" href="#cb2-17" tabindex="-1"></a>      )</span>
<span id="cb2-18"><a aria-hidden="true" href="#cb2-18" tabindex="-1"></a>    )</span>
<span id="cb2-19"><a aria-hidden="true" href="#cb2-19" tabindex="-1"></a>  )</span>
<span id="cb2-20"><a aria-hidden="true" href="#cb2-20" tabindex="-1"></a></span>
<span id="cb2-21"><a aria-hidden="true" href="#cb2-21" tabindex="-1"></a>(sf-toggle-window)</span>
<span id="cb2-22"><a aria-hidden="true" href="#cb2-22" tabindex="-1"></a></span>
<span id="cb2-23"><a aria-hidden="true" href="#cb2-23" tabindex="-1"></a>(keymap-global-set  <span class="st">"&lt;f2&gt;"</span> <span class="dt">'sf-toggle-window</span>)</span>
<span id="cb2-24"><a aria-hidden="true" href="#cb2-24" tabindex="-1"></a></span>
<span id="cb2-25"><a aria-hidden="true" href="#cb2-25" tabindex="-1"></a>(<span class="kw">defun</span><span class="fu"> sf-write-to-log </span>(str)</span>
<span id="cb2-26"><a aria-hidden="true" href="#cb2-26" tabindex="-1"></a>  (interactive)</span>
<span id="cb2-27"><a aria-hidden="true" href="#cb2-27" tabindex="-1"></a>  (<span class="kw">let</span> ((buf (get-buffer-create <span class="st">"log"</span>)))</span>
<span id="cb2-28"><a aria-hidden="true" href="#cb2-28" tabindex="-1"></a>    (<span class="kw">when</span> (<span class="kw">not</span> log-window)</span>
<span id="cb2-29"><a aria-hidden="true" href="#cb2-29" tabindex="-1"></a>      (sf-toggle-window))</span>
<span id="cb2-30"><a aria-hidden="true" href="#cb2-30" tabindex="-1"></a>    (with-current-buffer buf</span>
<span id="cb2-31"><a aria-hidden="true" href="#cb2-31" tabindex="-1"></a>     (save-excursion</span>
<span id="cb2-32"><a aria-hidden="true" href="#cb2-32" tabindex="-1"></a>      (goto-char (point-max))</span>
<span id="cb2-33"><a aria-hidden="true" href="#cb2-33" tabindex="-1"></a>      (insert str))))</span>
<span id="cb2-34"><a aria-hidden="true" href="#cb2-34" tabindex="-1"></a></span>
<span id="cb2-35"><a aria-hidden="true" href="#cb2-35" tabindex="-1"></a>  )</span>
<span id="cb2-36"><a aria-hidden="true" href="#cb2-36" tabindex="-1"></a></span>
<span id="cb2-37"><a aria-hidden="true" href="#cb2-37" tabindex="-1"></a>(sf-write-to-log <span class="st">"hello sailor</span><span class="sc">\n</span><span class="st">"</span>)</span></code></pre></div>
<p>One thing I have not done is make it use <code>special mode</code>. A
mode for read only output. This is meant for output from external tools
or things like the <em>Messages</em> buffer.</p>
<p>It has a set key bindings including pressing <code>q</code> to close
the window, but not the buffer. I think I will save that little area of
Emacs for another adventure.</p>
</div>]]>
        </description>
        </item> 
        <item>
        <title>I think I understand Emacs</title>
        <link>https://spiderflock.com/posts/i-think-i-understand-emacs.html
        </link>
        <pubDate>Mon, 25 May 2026 00:00:00 GMT</pubDate>
        <guid>https://spiderflock.com/posts/i-think-i-understand-emacs.html
        </guid>
        <description>
        <![CDATA[<div class="post">
<p>After on and off using Emacs for more years than I care to admit I
think I finally understand it! Having approached Emacs as just another
editor it's slowly becoming clear there may be a better approach. Until
now my Emacs usage was get vim bindings set up with Evil and attempt to
maximize my productivity in Emacs from the point of view of editing.</p>
<p>My level of abstraction was limited to editing and writing. I used
Emacs to solve problems at that level, limiting my understanding of
Emacs. It was like I was stuck in a local maxima. Instead of
understanding Emacs I was attempting to configure it as quickly as
possible and think about other problems.</p>
<p>For past couple of weeks I have been attempting to use Emacs in a way
that lets me learn about it. I want to maximize the time I spend in
Emacs and treat Emacs as the default application when using a
computer.</p>
<p>How does one approach Emacs in this way. For me it started with
realizing that installing external packages meant I was learning to
configure rather than build and understand. Sure they made things easy
but took away my opportunity to learn. Often, taking the easy path now
is not the best path over a longer period.</p>
<p>I have not totally closed the door to them but I am trying to keep
them below five. At this moment the count stands at two with one of them
being the Tron theme Yes I am still configuring things but I find myself
closer to the core of Emacs and that matters.</p>
<p>I have to admit it helps that Emacs is at version 30 and seems to
have reached a point where a lot of features are shipped with it rather
than needing external packages.</p>
<p>Emacs lisp is now a given. Gradually building a strong foundation
feels like the best way to shape Emacs to fit me.</p>
<p>It's not entirely clear whether I will keep at this or if it is even
a good idea. I may be better off building an environment around the
shell and small tools like vim/lazygit and so on. But it's fun so over
the coming months I am happy to see where it takes me.</p>
<p>Yes I know there are hundreds of YouTube videos and blog posts that
tell you to take this approach. I just never did but once you do...</p>
</div>]]>
        </description>
        </item> 
        <item>
        <title>My First Emacs Minor Mode</title>
        <link>https://spiderflock.com/posts/my-first-emacs-minor-mode.html
        </link>
        <pubDate>Wed, 13 May 2026 00:00:00 GMT</pubDate>
        <guid>https://spiderflock.com/posts/my-first-emacs-minor-mode.html
        </guid>
        <description>
        <![CDATA[<div class="post">
<p>My very unexpected journey into Emacs continues...</p>
<p>As I mentioned previously I have been a user of Emacs for decades but
never taken the time to truly learn it. I would just use a hacked
together init file pulling in packages without much thought.
Occasionally I would follow a blog post and it would improve. Ever few
years I would try something like Doom emacs but find a reason to not
like it.</p>
<p>Complicated development I usually do with an IDE, these days
Clion.</p>
<p>After playing with Omarchy and realising it was providing an awesome
shell orientated approach to using a computer it seemed sensible to
build my computing life around the shell using TUI style apps and things
like neovim.</p>
<p>I didn't bother installing my usual emacs config and just left it
bare bones. Occasionally I would use it to edit a file but nothing more.
One evening I copied over my basic config to make the toolbar disappear
but didn't download any packages. My plan was really to just use it to
write blog posts. Like this one.</p>
<p>Unexpectedly I found myself really enjoying using Emacs. Enough that
I started to read the doc. This lead to me wondering if I could write a
function to increase the size of the margins on a window to create a
"focused" writing mode.</p>
<p>Turns out that was not that hard, from there creating a minor mode
and configuring that was also easy.</p>
<p>I don't think it is perfect but my current goal is to keep downloaded
packages to a minimum so this serves as an alternative to doing
that.</p>
<p>I think I finally get what they mean by you shape emacs into the
editor you want.</p>
<p>Will this continue I am not sure.</p>
<p>There are much better packages available that do this type of thing
so actually publishing for all to use isn't worth it. It does serve as
to how small a minor mode can be. Here's the code.</p>
<div class="sourceCode" id="cb1"><pre class="sourceCode lisp"><code class="sourceCode commonlisp"><span id="cb1-1"><a aria-hidden="true" href="#cb1-1" tabindex="-1"></a>(make-variable-buffer-local</span>
<span id="cb1-2"><a aria-hidden="true" href="#cb1-2" tabindex="-1"></a> (<span class="kw">defvar</span><span class="fu"> focus-mode </span><span class="kw">nil</span>))</span>
<span id="cb1-3"><a aria-hidden="true" href="#cb1-3" tabindex="-1"></a></span>
<span id="cb1-4"><a aria-hidden="true" href="#cb1-4" tabindex="-1"></a>(make-variable-buffer-local</span>
<span id="cb1-5"><a aria-hidden="true" href="#cb1-5" tabindex="-1"></a> (<span class="kw">defvar</span><span class="fu"> prev-left-margin-width </span><span class="kw">nil</span>))</span>
<span id="cb1-6"><a aria-hidden="true" href="#cb1-6" tabindex="-1"></a></span>
<span id="cb1-7"><a aria-hidden="true" href="#cb1-7" tabindex="-1"></a>(make-variable-buffer-local</span>
<span id="cb1-8"><a aria-hidden="true" href="#cb1-8" tabindex="-1"></a> (<span class="kw">defvar</span><span class="fu"> prev-right-margin-width </span><span class="kw">nil</span>))</span>
<span id="cb1-9"><a aria-hidden="true" href="#cb1-9" tabindex="-1"></a></span>
<span id="cb1-10"><a aria-hidden="true" href="#cb1-10" tabindex="-1"></a>(<span class="kw">defun</span><span class="fu"> store-margins </span>()</span>
<span id="cb1-11"><a aria-hidden="true" href="#cb1-11" tabindex="-1"></a>  (<span class="kw">setq</span> prev-left-margin-width left-margin-width)</span>
<span id="cb1-12"><a aria-hidden="true" href="#cb1-12" tabindex="-1"></a>  (<span class="kw">setq</span> prev-right-margin-width right-margin-width)</span>
<span id="cb1-13"><a aria-hidden="true" href="#cb1-13" tabindex="-1"></a>  ) </span>
<span id="cb1-14"><a aria-hidden="true" href="#cb1-14" tabindex="-1"></a></span>
<span id="cb1-15"><a aria-hidden="true" href="#cb1-15" tabindex="-1"></a>(<span class="kw">defun</span><span class="fu"> set-margins-to </span>(left-width right-width)</span>
<span id="cb1-16"><a aria-hidden="true" href="#cb1-16" tabindex="-1"></a>  (<span class="kw">setq</span> left-margin-width left-width)</span>
<span id="cb1-17"><a aria-hidden="true" href="#cb1-17" tabindex="-1"></a>  (<span class="kw">setq</span> right-margin-width right-width)</span>
<span id="cb1-18"><a aria-hidden="true" href="#cb1-18" tabindex="-1"></a>  (set-window-buffer <span class="kw">nil</span> (current-buffer))</span>
<span id="cb1-19"><a aria-hidden="true" href="#cb1-19" tabindex="-1"></a>  )</span>
<span id="cb1-20"><a aria-hidden="true" href="#cb1-20" tabindex="-1"></a></span>
<span id="cb1-21"><a aria-hidden="true" href="#cb1-21" tabindex="-1"></a>(<span class="kw">defun</span><span class="fu"> restore-margins </span>()</span>
<span id="cb1-22"><a aria-hidden="true" href="#cb1-22" tabindex="-1"></a>  (interactive)</span>
<span id="cb1-23"><a aria-hidden="true" href="#cb1-23" tabindex="-1"></a>  (<span class="kw">when</span>  prev-right-margin-width</span>
<span id="cb1-24"><a aria-hidden="true" href="#cb1-24" tabindex="-1"></a>    (<span class="kw">progn</span></span>
<span id="cb1-25"><a aria-hidden="true" href="#cb1-25" tabindex="-1"></a>      (set-margins-to prev-left-margin-width prev-right-margin-width)</span>
<span id="cb1-26"><a aria-hidden="true" href="#cb1-26" tabindex="-1"></a>      (<span class="kw">setq</span> prev-left-margin-width <span class="kw">nil</span>)</span>
<span id="cb1-27"><a aria-hidden="true" href="#cb1-27" tabindex="-1"></a>      (<span class="kw">setq</span> prev-right-margin-width <span class="kw">nil</span>)      </span>
<span id="cb1-28"><a aria-hidden="true" href="#cb1-28" tabindex="-1"></a>      )))</span>
<span id="cb1-29"><a aria-hidden="true" href="#cb1-29" tabindex="-1"></a>  </span>
<span id="cb1-30"><a aria-hidden="true" href="#cb1-30" tabindex="-1"></a></span>
<span id="cb1-31"><a aria-hidden="true" href="#cb1-31" tabindex="-1"></a>(<span class="kw">defun</span><span class="fu"> toggle-focus </span>()</span>
<span id="cb1-32"><a aria-hidden="true" href="#cb1-32" tabindex="-1"></a><span class="co">;  (message "State (%s) (%s) (%s)" focus-mode</span></span>
<span id="cb1-33"><a aria-hidden="true" href="#cb1-33" tabindex="-1"></a><span class="co">;           prev-left-margin-width</span></span>
<span id="cb1-34"><a aria-hidden="true" href="#cb1-34" tabindex="-1"></a><span class="co">;           prev-right-margin-width)</span></span>
<span id="cb1-35"><a aria-hidden="true" href="#cb1-35" tabindex="-1"></a>  (<span class="kw">if</span> (<span class="kw">not</span> focus-mode) </span>
<span id="cb1-36"><a aria-hidden="true" href="#cb1-36" tabindex="-1"></a>      (<span class="kw">let</span> ((margin-width (<span class="op">/</span> (<span class="op">-</span> (window-body-width) (current-fill-column)) <span class="dv">2</span>)))</span>
<span id="cb1-37"><a aria-hidden="true" href="#cb1-37" tabindex="-1"></a>        (<span class="kw">when</span> (<span class="op">&gt;</span> margin-width <span class="dv">1</span>) (<span class="kw">progn</span></span>
<span id="cb1-38"><a aria-hidden="true" href="#cb1-38" tabindex="-1"></a>          (store-margins)</span>
<span id="cb1-39"><a aria-hidden="true" href="#cb1-39" tabindex="-1"></a>          </span>
<span id="cb1-40"><a aria-hidden="true" href="#cb1-40" tabindex="-1"></a>          (<span class="kw">setq</span> left-margin-width margin-width)</span>
<span id="cb1-41"><a aria-hidden="true" href="#cb1-41" tabindex="-1"></a>          (<span class="kw">setq</span> right-margin-width margin-width)</span>
<span id="cb1-42"><a aria-hidden="true" href="#cb1-42" tabindex="-1"></a>          (set-window-buffer <span class="kw">nil</span> (current-buffer))</span>
<span id="cb1-43"><a aria-hidden="true" href="#cb1-43" tabindex="-1"></a>          (<span class="kw">setq</span> focus-mode <span class="kw">t</span>)</span>
<span id="cb1-44"><a aria-hidden="true" href="#cb1-44" tabindex="-1"></a>          )))</span>
<span id="cb1-45"><a aria-hidden="true" href="#cb1-45" tabindex="-1"></a>                                        <span class="co">; else</span></span>
<span id="cb1-46"><a aria-hidden="true" href="#cb1-46" tabindex="-1"></a>    (<span class="kw">progn</span></span>
<span id="cb1-47"><a aria-hidden="true" href="#cb1-47" tabindex="-1"></a>      (restore-margins)</span>
<span id="cb1-48"><a aria-hidden="true" href="#cb1-48" tabindex="-1"></a>      (<span class="kw">setq</span> focus-mode <span class="kw">nil</span>))</span>
<span id="cb1-49"><a aria-hidden="true" href="#cb1-49" tabindex="-1"></a>    ))</span>
<span id="cb1-50"><a aria-hidden="true" href="#cb1-50" tabindex="-1"></a></span>
<span id="cb1-51"><a aria-hidden="true" href="#cb1-51" tabindex="-1"></a><span class="co">;;; ###autoload</span></span>
<span id="cb1-52"><a aria-hidden="true" href="#cb1-52" tabindex="-1"></a>(define-minor-mode sf-focus-mode</span>
<span id="cb1-53"><a aria-hidden="true" href="#cb1-53" tabindex="-1"></a>  <span class="st">"Lets get focussed."</span></span>
<span id="cb1-54"><a aria-hidden="true" href="#cb1-54" tabindex="-1"></a>  :lighter <span class="st">" focus"</span></span>
<span id="cb1-55"><a aria-hidden="true" href="#cb1-55" tabindex="-1"></a>  (toggle-focus)</span>
<span id="cb1-56"><a aria-hidden="true" href="#cb1-56" tabindex="-1"></a>  )</span>
<span id="cb1-57"><a aria-hidden="true" href="#cb1-57" tabindex="-1"></a></span>
<span id="cb1-58"><a aria-hidden="true" href="#cb1-58" tabindex="-1"></a>(<span class="kw">provide</span> `sf-focus-mode)</span></code></pre></div>
</div>]]>
        </description>
        </item> 
        <item>
        <title>Log - 11 May 2026</title>
        <link>https://spiderflock.com/posts/log-2026-may-11.html
        </link>
        <pubDate>Mon, 11 May 2026 00:00:00 GMT</pubDate>
        <guid>https://spiderflock.com/posts/log-2026-may-11.html
        </guid>
        <description>
        <![CDATA[<div class="post">
<p>It's fair to say my time is still very limited. I say that every time
I post. Which is fine as these posts are really for me as they don't
really educate of help others. Unless the tribulations of a random guy
on the internet provides some escape for others.</p>
<p>Lets talk some random tech:</p>
<p>I have moved over to Omarchy... I know the politics but I am trying
to avoid that in my life and Omarchy is, well, nice to use. Perhaps I
should say if seems to fit my brain. I could achieve the same using
different tech but this is easy. Did I mention my limited free time.</p>
<p>From there I messed around with ollama and installed a few local
LLM's. It is nice to play with them but they don't quite feel at the
state I would want to use them that much. I am still exploring though,
as a self hosted reasonable LLM would be ideal.</p>
<p>Omarchy is a shell orientated distribution, that means I am slowly
discovering the joy of TUI applications. LazyGit is and oblivious good
starter. I have always been a bit of a command line person so this is a
joy.</p>
<p>At first I thought having this well thought out system would make me
remove Emacs from my life. Emacs can consume all your time just
exploring it and configuring it. It hasn't turned out that way.</p>
<p>I have completely restarted my config file. Leaving only the bare
minimum in there to make it usable. I have only added one package on top
of the base install. A Tron theme. For the first time in over a decade I
am using Emacs without evil installed. It feel nice, almost
liberating.</p>
<p>It helps that Omarchy has a great default font.</p>
<p>I am going to try to use the base install as much as possible and
just see where it takes me. I have neovim installed if I really miss the
vim bindings and Clion if I need the power of an IDE.</p>
<p>I almost wrote about future plans but experience has told me I rarely
end up where I expect to go.</p>
</div>]]>
        </description>
        </item> 
        <item>
        <title>Small Tech Improvements Plus Life Update</title>
        <link>https://spiderflock.com/posts/small-tech-improvements-plus-life-update.html
        </link>
        <pubDate>Wed, 04 Feb 2026 00:00:00 GMT</pubDate>
        <guid>https://spiderflock.com/posts/small-tech-improvements-plus-life-update.html
        </guid>
        <description>
        <![CDATA[<div class="post">
<p>I am not heralding my return to blogging. This post is a collection
of small bits of tech I thought would be more difficult than they
actually are. A little life update is tagged onto the end. Who can
resist one of those.</p>
<h3 id="git-submodules">Git Submodules:</h3>
<p>I avoided these for such a long time, instead depending on various
pack managers.</p>
<p>Usually my dependencies are quite simple. SDL3 and a couple of other
things which make them ideal for git submodules. There is perhaps 3
commands in git you need to learn and be aware that there is a config
file.</p>
<p>And that's it. Sure you have to figure out integration with your
build system. Assuming you are using C++ that is. If you are using rust
just use cargo if you can.</p>
<p>Overall very painless and now I am wondering why, for so long, I
avoided taking the 10 minutes to learn about them.</p>
<h3 id="different-ssh-keys-for-different-sites">Different ssh keys for
different sites:</h3>
<p>Again there is a simple to use config file which makes this painless.
I don't know why I assumed this would be tricky as it isn't</p>
<h3 id="cmake">CMake:</h3>
<p>I'm not a huge fan of cmake but I have decided to go with the flow on
this one, use my energy elsewhere. LLM's are really good at guiding me
through what I need to do for my simple use cases. There is something
about reading the documentation that makes my brain switch off.</p>
<hr/>
<p>Do I have other blind spots that I should identify?</p>
<p>In terms of life things are trundling along at the moment. I seem to
be finding a little more time for technical hobbies but I am not
entirely sure where that will take me.</p>
<p>For now I have resubscribed to CLion for the year, mostly as a way of
avoiding going down the rabbit hole of getting that perfect Emacs set
up! It's also a nice IDE even if sometimes I hit performance problems
when using it on Linux. My aging hardware is more than likely the fault
here.</p>
<p>I am unsure on what direction to take from here or if the time I seem
to have at the moment will persist. I am drawn between working though
some technical books or starting a longer term project. Both would be
fascinating and fun which it the requirement for this year.</p>
<p>I am lot more settled than any point in my life. While I have some
stress day to day I am quite calm. Calmness is a prerequisite for good
decisions.</p>
</div>]]>
        </description>
        </item> 
        <item>
        <title>Influential book: 5am Club (revisited)</title>
        <link>https://spiderflock.com/posts/influential-book-5am-club.html
        </link>
        <pubDate>Sat, 15 Nov 2025 00:00:00 GMT</pubDate>
        <guid>https://spiderflock.com/posts/influential-book-5am-club.html
        </guid>
        <description>
        <![CDATA[<div class="post">
<p>Recently a discussion with a few friends about what characters from
films have influenced me left me struggling to think of many. On
reflection I tend to get inspired by characters that help/inspire me for
some period of time before I grow past what they speak to. That's not to
say I out grow them, more I have internalised what a should from them
and continue on my way.</p>
<p>This led me to thinking about books/essays both fiction and non
fiction. It's too wide a topic that I struggled to make coherent
progress towards a post. Clarity on this would have taken to long to
attain. Time that is in short abundance. I am sure another log style
post will cover that.</p>
<p>Instead I decided to start a list of things to blog about and put
<em>"Books/films/essays that have inspired me"</em> on it. That way I
can nibble at that topic for new next decade or so.</p>
<p>My first small bite leads me to this quote:</p>
<blockquote>
<p>Think of your past as a servant that shaped the present you but it
may not be the best friend to take with you into the future.</p>
</blockquote>
<p>It's from the 5am Club that I talked about a few times in this blog,
most notably <a href="https://www.spiderflock.com/posts/5am-club">in
this review</a>.</p>
<p>I deliberately have not reread the original post. It was influential
as at the time I was very time constrained and finding it very hard to
feel like I was making progress on things that were important to me
personally, outside of work and family.</p>
<p>I was fortunate to get ill over the Christmas period just after
reading the book which cause me to go to bed very early and sleep in. As
I recovered, in time for Christmas, I found myself waking up earlier
than usual. Being careful not to stay up late my wake up time shifted to
the elusive 5am without too much trouble.</p>
<p>Getting up at 5am and then doing the prescribed exercise/mental self
care/learning in the first hour really boosted my day. Having 6-7am
clear for personal projects before having to think about the day was
awesome. Weekends where even better as I add in 45 minutes playing The
Witcher 3 and getting a lot of other things done before the family start
to wake.</p>
<p>The two youngest kids started to join me in getting up at 5 am at the
weekends. Often cooking cookies and then heading of together to do some
Roblox development. They once gave the reason for getting up early as
they were left alone to do what they want before anyone else gets up. I
was careful not to wreck that for them.</p>
<p>Making sure I was in bed by 9:30 most nights was a reasonable trade.
At first it was hard to do late social events but eventually that seemed
to just work and the occasional 1am bed time didn't seem perturb me.</p>
<p>Eventually though I slipped and it became more a wake up at 6 am. Yes
my productivity slipped but it was a deliberate trade and one I chose
and still feels like the right choice.</p>
<p>After splitting up with my partner I found myself spending more time
with the two children not at university. The climbing gym was their
favourite destination (and mine). We would often find ourselves there
quite late. Consistently arriving home late enough to mean getting up a
5 would have left me sleep deprived.</p>
<p>My morning ritual stopped after about a year of feeling really
productive.</p>
<p>Why would I still consider this influential? I could argue it is
something that I want to return to and I suspect I will as the house
empties. That's not the reason though.</p>
<p>According to the 5am club the first hour should be yours but
structured into 3 twenty minute sections. First some exercise, this can
be a run, weights or perhaps some yoga - your choice. The second section
is for mental health, think mediation or journalling of some sort. The
final 20 minutes should be devoted to learning, perhaps reading or
something more active. Within the first hour you achieved a lot and set
the momentum for the day. For me it was very effective. Even writing
this makes me want to get back into it.</p>
<p>The middle 20 minutes was where I picked up some great mental health
habits. Meditation is awesome. Journalling was a way for me to work
though problems and identify improvements. Later it has become a
motivator, do things so I have something to write or helps me keep track
on things I am learning or tinkering with. Increasingly it is also
acting as a memory bank for some great experiences. After not bothering
with either mediation or journalling for most of my life even though I
aware of their benefits it was the 5am Club book that got me into
them.</p>
<p>For that I am both grateful to the author for getting me to try some
new tools but am also filled with regret that I didn't try them earlier
in my life.</p>
<p>A tertiary effect was it really demonstrated that turn up every day
really drives progress.</p>
</div>]]>
        </description>
        </item> 
        <item>
        <title>Log - 05 October 2025</title>
        <link>https://spiderflock.com/posts/log-2025-oct-05.html
        </link>
        <pubDate>Sat, 04 Oct 2025 00:00:00 GMT</pubDate>
        <guid>https://spiderflock.com/posts/log-2025-oct-05.html
        </guid>
        <description>
        <![CDATA[<div class="post">
<p>It's been a while. That reflects my slow progress on what this blog
focussed on. I am not about to do another "<em>I'm back</em>" post as
these are always left hanging for months with no update.</p>
<p>Instead lets just talks about where I am at. The past few years have
been fairly hard on the personal front. Not terrible just a lot to sort
and attempting to steer the proverbial ship to calm waters. That is make
my life boring so I can select the interesting and fun things that I
actually want to do. That sounds like the start of some motivation
YouTube video. I think I am there, most problems I now face are external
ones as they pop up rather than a back log of problems to sort. Oh god
none of that makes sense. Let's go with "<strong>Hey guys I am
back</strong>"!</p>
<p><strong>Tech update:</strong></p>
<p>I have been reading GoldenEye 007 Boss fights book. It is pretty good
and partially motivating me to want play with gaming technology again. I
am also thinking about kicking off another attempt at making a small
programming language. Will I do these I am not sure just thoughts at the
moment.</p>
<p>In reality I messing around with python and C making small example
programs. I was playing with Rust again but for now I seem to have
settled back into C. I am trying to not think too much about actual
programming languages I use. Just select the right tool and enjoy
getting on with things.</p>
<p>Oh and I have moved over to using <a href="https://omarchy.org/">Omarchy</a> as my main OS. While it's early
days I find it fun to use. And that's not something I get to say about
operating systems very often. I am surprised no one has thought of doing
this before, or perhaps they did and I never heard about it. Obviously
it is aimed at developers. Well worth a try.</p>
<p>PiAmiga is an Amiga emulator comes with nearly every Amiga game ever
made. You have to supply the Amiga Roms but otherwise you are good
(re)leve the late 80's very early 90's gaming era. I haven't installed
it recently but seeing it's now on x64 platforms and I currently have a
spare Beelink device I added it to the todo list.</p>
</div>]]>
        </description>
        </item> 
        <item>
        <title>Clion And Other Updates</title>
        <link>https://spiderflock.com/posts/clion-and-other-updates.html
        </link>
        <pubDate>Sat, 04 Jan 2025 00:00:00 GMT</pubDate>
        <guid>https://spiderflock.com/posts/clion-and-other-updates.html
        </guid>
        <description>
        <![CDATA[<div class="post">
<p>I use the Linux operating system at home, only occasionally using
Windows for gaming or, rarely these days, things that just don't work on
Linux.</p>
<p>Developing in C or C++ is quite nice on Linux. Mostly the tooling
just works. The one exception is Debugging.</p>
<p>Gdb is OK but really I struggle with it, typing gets annoying real
quick. It is incredibly powerful but just in my hands. I want something
that just work. VS Code has a competent debugger but then so does
Clion.</p>
<p>After installing month long trial of Clion and I was debugging my
problem in minutes. Eventually I ended up creating a CMake file to help
out Clion and using it to edit files.</p>
<p>It's a nice IDE a few quirky differences but an IDE I can use. I
still maintain the shell build system and am using lazyGit. Clion has
just replaced Zed as an editor and comes with a debugger that is
competent from a user experience point of view.</p>
<p>Currently I am just coding up some simple SDL3 experiments in C,
nothing earth breaking. Clion trial license allows you to use their
equivalent to CodePilot. I haven't used CodePilot but the Clion help is
actually quite useful. Sometimes guessing wrong but often getting it
close enough. I am writing stuff that has been written many times before
by many people so perhaps not the best comparison.</p>
<p>In a week or two I will have to decide whether or to puchase Clion,
if I do I am thinking I will add on the AI code helper. I estimate gives
me a 10-20% productivity increase when writing code. Nice but I suspect
that will drop a bit as I write more complicated code.</p>
<p>What is does get write though make coding a lot more pleasant. Taking
some of the boiler plate out of coding. This encourages me to code more
which makes it worthwhile.</p>
<p>Clion does seem to remove a lot of friction to coding and now has a
Zig plugin which seems well supported even if I have not experimented
with it. I keep pondering about moving to Zig.</p>
<hr/>
<p>The Christmas and New Year holiday is nearly over for me. Two of my
children are university students so we have another week or two before
the house goes quiet and I can start to focus again.</p>
<p>There are many small plans afoot but as is life many will not come to
fruition. I feel like I am in a good place at the moment and looking
forward to attempting some of the many tasks I am thinking about.</p>
<p>Kaizen is still my theme and I am steadily improving my environment
both physical and virtual.</p>
</div>]]>
        </description>
        </item> 
        <item>
        <title>90 Day Goals, Not Really Working</title>
        <link>https://spiderflock.com/posts/90-day-goals,-not-really-working.html
        </link>
        <pubDate>Sat, 21 Dec 2024 00:00:00 GMT</pubDate>
        <guid>https://spiderflock.com/posts/90-day-goals,-not-really-working.html
        </guid>
        <description>
        <![CDATA[<div class="post">
<p>Earlier in the year I decided to try setting goals over a 90 day
period. The idea being they are a large enough time to achieve a lot but
are shorter than a year so you get the coming up to a deadline
productivity boost more often.</p>
<p>It hasn't really worked out. For me that is, but let me explain as it
might work out for you.</p>
<p>The amount of time I can devote to my goals is fairly variable. I
obviously have a mixture of goals. I am speaking to the more
creative/technical side rather than family, health, financial or other
personal ones.</p>
<p>This variable amount of time has a time period of about one week.
Some weeks I seem to have a lot of time and some my time is a scarce
resource. The problem is obviously here.</p>
<p>For me this leads to I will do it next week when I have more time and
as the deadline is many weeks away I don't worry and a week passes
without progress and then another.</p>
<p>The comment, it appears these goals are not a priority is true. The
lack of priority and urgency combined with not distant deadlines means I
do not form habits. Some time is consumed with other goals and they seem
to be progressing well so it is not like my life is a disaster.</p>
<p>The lack of habit does mean procrastination rather progress on
technical projects. I am thinking of moving back to monthly goals, I
track others on a monthly cadence and that seems to be working.</p>
<p>Whys have goals? Why not just do what I enjoy as it's not top
priority? Goals imply planning and focus on getting what has been added
to the goal done.The deadline effect combined with clarity are something
I like.</p>
<p>I am also asking myself the Why questions, find your why and
everything else falls into place. I'm not very far along but I know I
have not found it if I still scrolling through shorts.</p>
<p>Finally, I am asking the question, why should would anyone want to
read about productivity tips coming from someone who is openly admitting
that I am not feeling productive in my tech hobbies. Am I spending way
too much time thinking and writing about the evolution of my systems
rather than actually using them?</p>
<p>I do like Kaizen style posts I wrote as they try to focus on this is
working but the broader goal setting/process/systems I think I will try
to avoid until I have something that is producing results.</p>
</div>]]>
        </description>
        </item> 
        <item>
        <title>Kaizen Update 2</title>
        <link>https://spiderflock.com/posts/kaizen-update-2.html
        </link>
        <pubDate>Thu, 21 Nov 2024 00:00:00 GMT</pubDate>
        <guid>https://spiderflock.com/posts/kaizen-update-2.html
        </guid>
        <description>
        <![CDATA[<div class="post">
<p>Kaizen Update 2</p>
<p>Winter Arcs seem to be a thing at the moment, the idea is to put you
head down and focus on an important task or personal improvement over
winter and be a better person come spring. Really it is just a marketing
term to make you think it is a new idea and drive clicks as you realize
it just rehashing existing ideas.</p>
<p>I do like the idea, it appeals. My life doesn't allow that it at the
moment but gradual improvement, Kaizen, does seem to be paying off
though and it's fun.</p>
<p>I have read most of a book on the Ruby programming languages. Where
is this taking me? Well, I am not sure perhaps towards automating lots
of things. Ruby-koans is now a work in progres.</p>
<p>I expected Zellij to be a great addition but I was not enjoying
neovim as a shell editor. To combat this I took a look at the Zed
editor. It's nice and very fast. Of course it breaks the use shell for
everything but I am OK with that. The point of Kaizen is to follow the
path of improvement and not be hold on to things that are holding you
back.</p>
<p>Cutting back coffee has worked quite well. Drinking more than a few
cups no longer feels nice. I feel calmer.</p>
<p>If you have read the above it sounds like someone who want to get
things done. Really though it you look at it properly you might realize
I am a bit directionless. I enjoy learning it is my procrastination
technique, perhaps not as bad as YouTube or Netflix but directionless
learning is not an efficient use of time.</p>
<p>Why do it? It is to help reform habits, making sure I make time for
my self. Any direction is better than stationary as it can at least be
nudged in the direction I want to go once I figure out that part.</p>
</div>]]>
        </description>
        </item> 
        </channel>
        </rss>
    