<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>hi, it&#39;s mike</title>
    <link>https://mike.puddingtime.org/tags/synology/</link>
    <description>Recent content on hi, it&#39;s mike</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-us</language>
    <managingEditor>mike@puddingtime.org (mike)</managingEditor>
    <webMaster>mike@puddingtime.org (mike)</webMaster>
    <copyright>© 2026, mike</copyright>
    <lastBuildDate>Sun, 04 Feb 2024 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://mike.puddingtime.org/tags/synology/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>State of the self-host</title>
      <link>https://mike.puddingtime.org/posts/2024-02-04-state-of-the-self-host/</link>
      <pubDate>Sun, 04 Feb 2024 00:00:00 +0000</pubDate><author>mike@puddingtime.org (mike)</author>
      <guid>https://mike.puddingtime.org/posts/2024-02-04-state-of-the-self-host/</guid>
      <description>What has stuck and what has not from recent self-hosting experiments.</description>
      <content:encoded><![CDATA[<p>I&rsquo;ve tried a bunch of self-hosted things recently. In the spirit of &ldquo;yeah, but how is it <em>really</em> working,&rdquo; a quick rundown:</p>
<h2 id="linkding">Linkding</h2>
<p><a href="https://github.com/sissbruecker/linkding">Linkding</a> is a bookmarking tool. It has a UI similar to pinboard.in, can import <kbd>bookmarks.html</kbd> files, and has a decent API. It&rsquo;s working very well. I&rsquo;m particularly fond of the <a href="https://github.com/fivefold/linkding-injector">Linkding injector addon for Firefox</a>, which injects Linkding search results into the sidebar of most popular search engines.</p>
<p>This one seems to be a keeper.</p>
<p>I briefly considered <a href="https://github.com/shaarli/Shaarli">shaarli</a> as an alternative. I didn&rsquo;t like the UI as much, but it has a bigger list of third-party extensions than Linkding.</p>
<h2 id="wallabag">Wallabag</h2>
<p><a href="https://wallabag.org/">Wallabag</a> is a self-hosted Pocket alternative. It also has a useful API, an iOS app, and a Firefox extension. I wasn&rsquo;t too sure about this one going in, but once I got the Docker stuff and some reverse proxy weirdness sorted it worked quite well. It has a few more smarts than Pocket, and it provides Atom feeds of simplified articles you can use to create ebook digests via Calibre or just consume with your everyday RSS reader, given the formatting is cleaned up.</p>
<p>It also lets you share <a href="https://reader.puddingtime.net/share/65bff5347b9932.42547178">a public-facing version of a saved article</a>, and its clipper extension seems to be able to see around a few paywalls if you&rsquo;re <a href="https://reader.puddingtime.net/view/176">saving from a subscription site</a>.</p>
<p>I think this one is a keeper given I can automate the ebook exports: That essentially recreates the Pocket/Kobo integration.</p>
<h2 id="calibre-web">calibre-web</h2>
<p><a href="https://github.com/janeczku/calibre-web">calibre-web</a> is a HTML5 front-end for Calibre libraries that allows you to edit metadata, organize your ebook collection into shelves and, most importantly to me, act as an online sync source for Kobo e-readers, allowing you to browse your collection and download to your Kobo, then keep your reading location in sync.</p>
<p>Some people live in calibre-web full-time, uploading ebooks and managing their metadata. I prefer to pair it with Calibre itself due to an ongoing content conversion project.</p>
<p>It&rsquo;s definitely a keeper. I recovered a ton of books from another device and converted them to Kobo-friendly epubs. Better yet, when downloaded to a Kobo, calibre-web serves up kepubs, which are optimized for Kobos.</p>
<h2 id="calibre">Calibre</h2>
<p><a href="https://calibre-ebook.com/">Calibre</a> is an ebook conversion/management tool, ordinarily used on the desktop. I found <a href="https://mariushosting.com/how-to-install-calibre-on-your-synology-nas/">a Docker recipe</a> that lets me run it on my Synology and access it via a web-based VNC tool. With a little fiddling, I added mountpoints that let me install downloaded extensions and import books from a <kbd>bookdrop</kbd> directory as I pull them down from their assorted vendor sites.</p>
<p>It works alongside calibre-web, allowing me to install books from assorted formats and export them to epub, where they&rsquo;re almost instantly available from the calibre-web web interface or Kobo integration.</p>
<p>Even if sync didn&rsquo;t work, you can access a content server that uses the <a href="https://en.wikipedia.org/wiki/Open_Publication_Distribution_System">OPDS protocol</a> for browsing. So with a reverse proxy and authenticated user, you can get at your library from anywhere and side-load books to your reader.</p>
<p>I&rsquo;m going to keep the Dockerized version.</p>
<h2 id="vikunja">Vikunja</h2>
<p><a href="https://vikunja.io/">Vikunja</a> is a todo app that includes a traditional list view and a card view. It serves up CalDAV, so it could theoretically work with any CalDAV client, but its doesn&rsquo;t work well with iOS Reminders. The responsive Web UI isn&rsquo;t bad if you want to install it to your iPhone desktop.</p>
<p>I installed it and tried it for a day, but I am not sure about it. I&rsquo;m a little uneasy about self-hosting my todos, and was hoping for some kind of native client.</p>
<h2 id="joplin">Joplin</h2>
<p><a href="https://joplinapp.org/">Joplin</a> is an Evernote-esque app with a ton of cross-platform support that I couldn&rsquo;t quite bring myself to trust in a self-hosted context.  It&rsquo;s a good tool and all, but I&rsquo;d prefer to just have my notes in a plaintext, version-controlled setup.</p>
<h2 id="mariushosting">MariusHosting</h2>
<p><a href="https://mariushosting.com/">MariusHosting</a> isn&rsquo;t an app, it&rsquo;s a site run by Marius Lixandru with a ton of recipes for Dockerizing common self-hosted apps on a Synology. It&rsquo;s my first stop when I want to try something out. I was resistant to a lot of his earlier stuff because he had an idiosyncratic way of getting containers set up, but he has since begun to use <a href="https://mariushosting.com/synology-portainer-vs-container-manager/">Portainer</a> for his recipes, which has simplified them a lot. If you find a Docker recipe that uses <kbd>docker run</kbd>, you can convert that to Docker Compose with <a href="https://www.composerize.com/">composerize</a>.</p>
]]></content:encoded>
    </item>
    <item>
      <title>Daily Notes for 2024-01-22</title>
      <link>https://mike.puddingtime.org/posts/2024-01-22-daily-notes/</link>
      <pubDate>Mon, 22 Jan 2024 00:00:00 +0000</pubDate><author>mike@puddingtime.org (mike)</author>
      <guid>https://mike.puddingtime.org/posts/2024-01-22-daily-notes/</guid>
      <description>FreshRSS seems close enough to feedly. Kitty on the Synology. E-readers vs. tablets.</description>
      <content:encoded><![CDATA[<h2 id="freshrss-on-the-synology">FreshRSS on the Synology</h2>
<p>I can make do with just about any RSS service provided it:</p>
<ul>
<li>Has a clean web UI</li>
<li>Allows third-party clients (e.g. Reeder, Unread)</li>
<li>Has some sort of provisioning for filtering.</li>
</ul>
<p>There are plenty that do the first two. That last requirement is a little harder, and it&rsquo;s why I&rsquo;ve largely stuck with Feedly despite a small break, when their management team demonstrated some bad ideas they eventually walked back.</p>
<p>But I&rsquo;ve been on this self-hosting kick, and I learned about <a href="https://freshrss.org/index.html">FreshRSS</a> while I was poking around with PikaPods, so after a quick OPML export of my Feedly list and a little experimentation I&rsquo;ve moved FreshRSS into the Synology:</p>
<ul>
<li>Clean web UI with keyboard shortcuts</li>
<li>Extensions framework</li>
<li>Sharing configuration</li>
<li>Works with <a href="https://reederapp.com/">Reeder</a></li>
</ul>
<p>The filtering works a couple of ways:</p>
<p>You can set up a &ldquo;mark as read&rdquo; filter with a simple syntax that includes operators like <kbd>inurl</kbd>, <kbd>intitle</kbd>, and <kbd>keyword</kbd>. That will handle new articles as they come in. That&rsquo;s the best option if you&rsquo;re using a client.</p>
<p>You can also use those operators in the web UI&rsquo;s search field then save them and apply them to current articles just to clean up the view. That&rsquo;s okay for cleaning up your current view before your filters start working on new stuff, or if you want to be able to create a one-click way to narrow a feed.</p>
<p>And your saved queries can also be referenced with the <kbd>search:QUERYNAME</kbd> operator, so if you model one out and like it you can make it more proactive.</p>
<p>You can guess what I don&rsquo;t care to read about from <em>The Oregonian</em> based on my initial list:</p>






<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">inurl:/advice/
</span></span><span class="line"><span class="cl">inurl:/ducks/
</span></span><span class="line"><span class="cl">inurl:/betting/
</span></span><span class="line"><span class="cl">inurl:/nfl/
</span></span><span class="line"><span class="cl">inurl:/beavers/</span></span></code></pre></div>
<p>Give it time and it will grow. I&rsquo;ve only been using FreshRSS for a couple of days, so I haven&rsquo;t had time to be
exposed to everything, like the many, many, many articles that landed in the <kbd>/casino/</kbd> section between starting this draft over breakfast and coming back to wind things down after dinner, making wish The O would do like other newspapers do and segment its RSS feeds at least into the major sections.</p>
<p>As it is, they don&rsquo;t do that, <em>and</em> have a wildly flat and very granular IA, so you can&rsquo;t just filter out <kbd>inurl:/sports/</kbd> in one go, but at least they have reliable category URLs. At some point I will have to do the work of filtering out deal posts from all the tech sites, who are not at all incentivized to make it easier to avoid their affiliate link farming. Feedly has some sort of &ldquo;AI&rdquo; that creates meta-categories to filter on, so I could just tell it &ldquo;no deal posts&rdquo; and clean up a few edge cases.</p>
<p>I did look at a few others. <a href="https://tt-rss.org/">TinyTinyRSS</a> was a prime candidate, and even has a native Synology package. Performance wasn&rsquo;t great, though. A few others had no filtering.</p>
<h2 id="kitty-and-the-synology">Kitty and the Synology</h2>
<p>Also on the topic of the Synology, if anyone has gotten kitty&rsquo;s advanced features working with one I would love a guide or insight into how. The environment is just a tad too locked down and non-standard, and a recent skim down a GitHub issue suggested that there&rsquo;s not a lot of hope on that front. You can get as far as the Syno understanding that there&rsquo;s such a <kbd>$TERM</kbd> as <kbd>xterm-kitty</kbd>, but the stuff like <kbd>kitten ssh</kbd> has been a lost cause. Or rather, I <del>am</del> was running out of patience with it because there&rsquo;s a lot of magic on the happy path and then it gets pretty manual if you have to go off-road, and this is a Linux-based appliance we are trying to get this thing wedged onto, not some plain old box.</p>
<p>I changed that to <em>was</em> because I found <a href="https://github.com/kovidgoyal/kitty/issues/713">this thread</a> and it helped me figure out the small step I needed to take to get kitty working with my root account on the Syno.</p>
<p>And what a thread. It ends with the maintainer saying:</p>
<blockquote>
<p>In any case, as I have explained before, if you want to perpetually
stagnate the terminal ecosystem by insisting every terminal be xterm
(the biggest boat anchor on the entire ecosystem), please just use
xterm. kitty is not for you.</p>
</blockquote>
<p>I kinda get where he&rsquo;s coming from by the time the whole thing is over: Open source project owners are all over the map in terms of their approach to community interactions and management. Just yesterday I saw one who pleaded with a user who&rsquo;d decided to just go use another app to share some sort of exit feedback. People in <em>this</em> thread were doing the whole &ldquo;if this isn&rsquo;t addressed I will try something else&rdquo; thing that I imagine gets pretty grating if you&rsquo;re just some person making a thing and giving it away and are over whatever things in the ecosystem you are over. Like, there are a lot of projects devoted to strict compliance with What Has Come Before, and I don&rsquo;t think the *nix world has any shortage of adherence to What Has Come Before.</p>
<p>Anyhow, I usually don&rsquo;t do anything particularly complex over on the Syno, but I was having issues with tab completion, backspace, and command history going screwy whenever I was operating as root so it seemed worth fixing to just keep using kitty and not remember to use another terminal app for this particular hobby.</p>
<h2 id="e-readers-vs-dot-tablets">E-readers vs. Tablets</h2>
<p><a href="https://sixcolors.com/post/2024/01/two-e-readers-that-made-me-reconsider-why-i-use-e-readers/">Jason Snell on eink e-readers vs. tablets</a>.</p>
<p>I&rsquo;ve been through the &ldquo;maybe I want to just consolidate down into an iPad mini&rdquo; thing with my assorted e-ink devices, and I always come back to &ldquo;the reading experience is worse on a tablet.&rdquo; I&rsquo;ve been back and forth on which ecosystem, too, and will stick with Kobo, less as a features thing and more as a &ldquo;it&rsquo;s hard to be rid of Amazon but I can at least be less into Amazon&rdquo; thing.</p>
<p>The not-Nook/Kobo/Amazon space is interesting. I don&rsquo;t know if I am up to being that much of a resister to Big Ebook. I have a little Onyx Boox Palma and super wanted to like it, but it&rsquo;s just an e-ink Android tablet about the size of a &ldquo;Max&rdquo;-sized iPhone, and the e-ink/Android app experience with Kobo wasn&rsquo;t very good. There are other reading apps for it, but I don&rsquo;t know how location sync works in that ecosystem. Now that I have calibre-web set up I could get my books into anything, but I&rsquo;m being way too much of a perfectionist on questions like &ldquo;but what if I leave my e-reader behind and just want to use my phone for the train ride downtown&rdquo; or whatever.</p>
<p>On the flipside, there are some very good e-reader apps for Android that can talk to calibre-web in <a href="https://en.wikipedia.org/wiki/Open_Publication_Distribution_System">OPDS mode</a>. You don&rsquo;t get the location sync stuff &ndash; it&rsquo;s just a way to browse and retrieve your books &ndash; but if you can upload an epub to calibre-web it can come back down to a bunch of these apps, some of which do have for-pay location sync backends as an app feature.</p>
<p>Kinda academic right now: I have a nice and relatively new Kobo, I have a slightly more worn out but functional old Kobo, and I have them talking to my calibre-web install plus access to the Kobo store, Overdrive, and my Pocket articles. I don&rsquo;t need to go out and buy another e-reader just to be a little more indy.</p>
]]></content:encoded>
    </item>
    <item>
      <title>Daily Notes for 2023-06-11</title>
      <link>https://mike.puddingtime.org/posts/2023-06-11-daily-notes/</link>
      <pubDate>Sun, 11 Jun 2023 00:00:00 +0000</pubDate><author>mike@puddingtime.org (mike)</author>
      <guid>https://mike.puddingtime.org/posts/2023-06-11-daily-notes/</guid>
      <description>First week at my new job. How I made a searchable web interface for my Denote notes with FuseJS, a Synology, and TailScale.</description>
      <content:encoded><![CDATA[<h2 id="first-week-at-iterable">First week at Iterable</h2>
<p>Well, after a lot of hinting and oblique mentions, it&rsquo;s okay to finally say I started a new job this week, as director of IT at Iterable, thus ending about seven months of rest and a relatively easy job search.</p>
<p>Here&rsquo;s the LinkedIn version:</p>
<blockquote>
<p>I remember being 1200 feet over a Ft. Benning drop zone: My parachute risers had twisted up, my helmet had fallen off, and I was airsick. I thought to myself, &ldquo;well, you brought this on yourself.&rdquo;</p>
<p>Years and years later, I read Pema Chödrön, who said, &ldquo;to be fully alive, fully human, and completely awake is to be continually thrown out of the nest.&rdquo;</p>
<p>I finished my first day at Iterable today. I&rsquo;m very happy to be starting this new role with a warm, welcoming team that includes a few familiar faces.</p>
<p>Reflecting on my time off after Puppet:</p>
<p>It is easier said than done to go still, rest, and find some quiet. I think I lost two months to assorted writing and photography projects and other busy-making stuff until someone close to me finally said, &ldquo;I thought you were supposed to be resting. This doesn&rsquo;t seem like resting.&rdquo;</p>
<p>I did finally manage to go still and rest. When I decided to start looking for work again, I knew I had to sift through 10 amazing years at Puppet and figure out when I was happiest and helping the most people. Having the time to discern meant I was able to set a few things aside I would have sworn I most wanted to do as I realized I was probably just trying to replace something I&rsquo;d lost. I felt more focused with each recruiter screen or interview, and my list of job alerts got shorter as I shifted from &ldquo;what can I do&rdquo; to &ldquo;what do I want to do.&rdquo;</p>
<p>It&rsquo;s easy to euphemize: During my time out I got a lot of really unfortunate advice about covering up gaps, and trying to talk around things, so I&rsquo;ll just say that yes, it sucked to get laid off — to get thrown out of the nest.</p>
<p>It wasn&rsquo;t a world-ending shock, I was treated with respect and generosity, and it was a genuine gift to know that I could spend a few months helping my team transition once I knew I wasn&rsquo;t going to continue. But it was still tough. So I&rsquo;m also grateful to friends I got to spend time with over the past several months. There were a few times I felt at sea and unsure of myself, and all the coffees, lunches, and texts helped so much. I had a lot more friends on this jump than I did over that drop zone, and I&rsquo;m very grateful for all of them.</p>
</blockquote>
<p>There is a ton more to say about the past seven months, and it feels like the right thing to do is to think more deeply about big themes. But there are some little things to say:</p>
<p>First, I caught a lot of great breaks going into my time off, and saw my layoff coming far enough out that I could prepare. I spent a lot of my early career under the shadow of layoffs, with a completely different mindset. I think the person who smiled and told his layer-offer that he hoped they had an okay time with all their other layoffs last August would be completely alien to the person who wouldn&rsquo;t take a weekend off for nine straight months in 2001.</p>
<p>There are lots of ways you can &ldquo;figure out what&rsquo;s next&rdquo; that don&rsquo;t have to involve getting laid off or quitting your job, but &ldquo;figuring out what&rsquo;s next&rdquo; takes work. It&rsquo;s probably <em>easiest</em> if you know and start acting on it while you have a job, but if you&rsquo;re in a place where you have a ton of things to sort out and you&rsquo;re just enervated from keeping the lights on wherever you are, it&rsquo;s still kind of hard. I&rsquo;m glad I had the resources, and hence the time, to take a break and be methodical. There was risk and some anxiety, but it got the best result.</p>
<p>Second, depending on how you want to manage the reckoning, this is my first new job in almost 11 years. I did so much growing during that time. There are some moments I wish I could go back to and get a do-over on, but that&rsquo;s part of the whole &ldquo;growth&rdquo; thing &hellip; not getting things quite right the first time you encounter them.</p>
<p>Third, I&rsquo;m glad I structured the job search the way I did. During the intense &ldquo;cold call&rdquo; period of February through April I had a loose routine of taking three days a week to just go through job listings and two days a week of applying for the listings I had saved the other three days of the week. Breaking it up like that gave me space to think about each listing.</p>
<p>I learned a practice years ago of pausing and asking if an opportunity or request elicits a &ldquo;whole body yes,&rdquo; &mdash; positive reactions from head, heart, and gut. I found that spending some time looking through job posts and quickly capturing the ones where my first response was &ldquo;sure, I could do that,&rdquo; then coming back to them a few days later to look a second time elicited a slightly different response. Sometimes it was &ldquo;wow, why am I delaying the application here?&rdquo; and other times it was &ldquo;I don&rsquo;t know why I thought that was a good idea.&rdquo; The third test was the actual application &mdash; filling out whatever forms and writing a cover letter, and that was when I could tell whether my heart was really in it. If I couldn&rsquo;t write a compelling cover letter &mdash; didn&rsquo;t feel sincere or engaged &mdash; it was a signal from head and heart.</p>
<p>I started out looking at several kinds of jobs &mdash; IT, engineering, operations &mdash; and then a few categories within each. I had some good early signal from the operational roles (chief of staff and similar), extremely positive signal on IT, and really uneven signal on engineering. I was also looking at organizational size/maturity.  Part of me went in thinking &ldquo;man, I wish I could do a &lsquo;Puppet in 2012, but everything I know now.&rsquo;&rdquo;</p>
<table>
  <thead>
      <tr>
          <th>Role</th>
          <th>Org maturity</th>
          <th>Feels</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>Chief of staff</td>
          <td>low</td>
          <td>Exciting, frustrating.</td>
      </tr>
      <tr>
          <td>Chief of staff</td>
          <td>medium</td>
          <td>Sure, I could do that. I&rsquo;d have some growth opportunities, you&rsquo;d get some shit done better.</td>
      </tr>
      <tr>
          <td>Chief of staff</td>
          <td>high</td>
          <td>&ldquo;I would need to be this tall to ride and I&rsquo;m not there yet.&rdquo;</td>
      </tr>
      <tr>
          <td>Eng</td>
          <td>low</td>
          <td>Under certain, odd conditions; but your conception of &ldquo;my lane&rdquo; is too narrow.</td>
      </tr>
      <tr>
          <td>Eng</td>
          <td>medium/high</td>
          <td>North of &ldquo;zone of mediocrity&rdquo; or &ldquo;competence,&rdquo; nearing &ldquo;zone of excellence,&rdquo; but not &ldquo;zone of genius.&rdquo;</td>
      </tr>
      <tr>
          <td>IT</td>
          <td>low</td>
          <td>&ldquo;Well, you certainly have interesting notions; someone will enjoy disabusing you of them&rdquo;</td>
      </tr>
      <tr>
          <td>IT</td>
          <td>medium</td>
          <td>&ldquo;Yup. Put me in there. I have some lessons to apply.&rdquo;</td>
      </tr>
      <tr>
          <td>IT</td>
          <td>high</td>
          <td>&ldquo;Will you issue me a clipboard and legal pad or do I have to count all these beans on my fingers?&rdquo;</td>
      </tr>
  </tbody>
</table>
<p>Going in my enthusiasm and interest was highest around chief of staff roles. Over my time at Puppet I&rsquo;d been in and out of &ldquo;operational leader&rdquo; roles, and had to very disappointing experiences in that area. I wanted another bite at the apple. I got several interviews for that sort of thing, made it pretty far into a few processes, and came away with a few observations:</p>
<ul>
<li>The places where I would do the most good, that seemed the most exciting, and that were the most greenfield, were the worst conversations, and they happened early enough that my energy and patience for yet another baby CTO with a reflexive hatred for process were too low to even attempt to make a sale. <em>Or</em> they didn&rsquo;t actually want a chief of staff &mdash; they wanted an EA/office manager.</li>
<li>The places where I could be helpful and effective &mdash; the medium maturity organizations with enough introspection to know they needed help &mdash; were harder to find, and the few conversations I had there always left me uneasy. Like I was swapping the process resistance and insecurity of baby C-levels for the conditioned wariness of leadership teams that understand a chief of staff is a potential threat to the balance of power and their individual access and influence.</li>
<li>There was a third tier &ndash; medium or high maturity orgs who wanted someone very senior with much more hard-core business operations experience. Just isn&rsquo;t me, and I didn&rsquo;t bother.</li>
</ul>
<p>But I also had to come to grips with why I was looking at those roles to begin with, and it began to dawn on me that the things that made me a likely candidate to do that kind of thing at Puppet over the years involved a different mix of factors from what these places needed. I kept imagining doing these roles from the perspective of the person who&rsquo;d been at Puppet for ten years, had a solid network, had a basis for trust with people throughout the business, and an inventory of patterns we could pick up and dust off that had the ring of familiarity for the old-timers, but could be pivoted or spruced up a little for the skeptical newcomers.</p>
<p>I kept saving those roles when I got job alerts for them, though, kept applying, and kept tracking why I dropped out or decided not to finish the cover letters for everything, and finally formed a thought over my morning tea and listing review one morning:</p>
<p>&ldquo;You loved that place, loved being there, and loved even the people who drove you a little crazy. You wanted to make it better and knew how to get things unstuck. You understood what it needed on some emotional level. It&rsquo;s gone.&rdquo;</p>
<p>I quietly re-branded my LinkedIn page, turned off those job alerts, and narrowed my list to IT and engineering.</p>
<p>Engineering things weren&rsquo;t sparking much joy at any point in the process. One opportunity came along that seemed interesting, but in a very &ldquo;you&rsquo;ve got a very painful-sounding definition &lsquo;interesting&rsquo;&rdquo; sort of way. When you send your wife this gif to explain why you think you&rsquo;d be a good fit for a job:</p>
<figure><img src="/img/sith-speciality.gif"
    alt="Senator Palpatine, Sith Lords are our speciality ...">
</figure>

<p>&hellip; you should ask a second time if that&rsquo;s how you want to spend your days.</p>
<p>It kept coming back to <a href="https://themanagershandbook.com/coaching-and-feedback/zone-of-genius">which zone I&rsquo;m in</a> when I&rsquo;m leading in engineering, and I never really felt like I was in my &ldquo;Zone of Genius.&rdquo; I&rsquo;ve been around those people and know enough to understand the difference between us.</p>
<p>Ultimately the things that kept feeling the most right to me were the IT roles. I had a few processes go pretty far, so I had the chance to do a lot of personal writing and preparation, and I realized that the challenge I was having was less about thinking up a response, but organizing all the thoughts I had on any given part of the conversation. Over the course 30+ years in professional workplaces I held a lot of jobs in a lot of different kinds of businesses. I was never quite sure what skills would transfer in each role I held, but I knew that during my time in IT it felt I could tap the most of my experiences, and that my particular temperament worked the best.</p>
<p>By the time the Iterable opportunity presented itself, I felt primed and very clear.</p>
<p>I guess the last thing I want to say right now is that it was a pretty great couple of weeks of interviewing. I had no problem writing the customary followup note. The opportunity is at that intersection of &ldquo;oh, there&rsquo;s a lot to do&rdquo; and &ldquo;I know what I need to do.&rdquo; I want to be there.</p>
<h2 id="our-world-of-note-taking-compromises">Our world of note-taking compromises</h2>
<p>So part of Week One was having my new boss up from California for a kickoff and planning. We got a WeWork space. I didn&rsquo;t do anything to get a toolchain onto my new work laptop so I didn&rsquo;t have Emacs or any of my personal config stuff on it. It was a good opportunity to think about the compromises that have loomed the largest when it comes to living in the Emacs ecosystem but having the occasional mobile use case:</p>
<ul>
<li>Decent clients to read org-mode files.</li>
<li>Reliable sync.</li>
<li>Capture on the go.</li>
</ul>
<p>After a few days in a WeWork, seeing what would have been useful and how I was working by just putting stuff in native tools then moving them over, I realized I&rsquo;d be happiest working with these assumptions:</p>
<ul>
<li>Stick with Emacs/org-mode/Denote. They feel the best for just doing work on a laptop or desktop, and that&rsquo;s where I do most of my work.</li>
<li>Give up on any of the mobile options for managing org-mode. They&rsquo;re dancing bears. It&rsquo;s great that they can dance, and it feels uncharitable to complain that they don&rsquo;t dance well, but they&rsquo;re hindered by a lack of native sync. The best they can do is capture simple things and relate simple things. Put more weight on them and they&rsquo;ll frustrate me.</li>
<li>Make static notes available in a way that&rsquo;s easily readable by native tools and put extra effort into making sure that when the static notes are pushed out, they&rsquo;re truly pushed out.</li>
</ul>
<p>On that last point, the biggest pain point I&rsquo;ve come across using Denote/Emacs has been getting at stuff for reference when I&rsquo;m not near a real computer. One way tools like Obsidian and Things run rings around Emacs is in their native, bespoke, purpose-built sync capabilities. Capture is no big deal.</p>
<p>Yesterday I spent some time sussing out how org-publish works and:</p>
<ul>
<li>Got my notes set up to publish using <a href="https://simplecss.org">SimpleCSS</a>.</li>
<li>Connected the output directory to my Synology via SyncThing.</li>
<li>Set up the Synology&rsquo;s web server (it&rsquo;s just nginx).</li>
<li>I can connect to the saved notes via Tailscale, which is running on all my devices (and using NextDNS, which is sweet, since I was able to take out a whole layer of browser-based ad-blockers).</li>
<li>Set up an after-save-hook to kick off a publish whenever I save a file in the notes directory.</li>
<li>Set up a pre-save hook to update any Denote org-babel d-blocks, because I make meta note pages with those.</li>
</ul>
<p>I put SyncThing on an aggressive update schedule to make sure the HTML versions of notes will get pushed out after saves.</p>
<p>Today I started figuring out how to add search to my exported notes. <a href="https://fusejs.io">FuseJs</a> seems to be working fine for that. I  made a script that can walk the exported HTML notes and get them into a JSON index, and I added some HTML/JS to an <code>index.org</code> file in my notes directory. Here&rsquo;s a quick demo of a few searches on mobile:</p>
<p><video controls width="40%"><source src="/img/denote-fuse-search.mp4" type="video/mp4">
Your browser does not support the video tag.</video></p>
<p>For now the notes indexing script is just running from the Synology&rsquo;s Task Scheduler.</p>
<p>So, net:</p>
<ul>
<li>When I write or edit a note in Denote, save-hooks publish all my notes as HTML.</li>
<li>SyncThing makes sure the HTML is pushed over to my Synology.</li>
<li>The Synology periodically indexes the HTML for search.</li>
<li>nginx running on the Synology serves the notes.</li>
<li>Everything is happening over Tailscale.</li>
</ul>
<p>There&rsquo;s a very fair question, which is &ldquo;why on Earth do all this when Obsidian, Logseq, or a few other mobile-capable PKMs are sitting right there?&rdquo;</p>
<p>I guess the answer is, &ldquo;I don&rsquo;t like them as much.&rdquo;</p>
<p>I mean, they&rsquo;re fine and all &mdash; I would use Obsidian if there were no Emacs &mdash; but if I line up what they excel at with what Emacs/org-mode/Denote excel at, and ask myself &ldquo;how do I most often use these tools,&rdquo; the mobile access use case is relatively rare and mainly amounts to a question of access and very simple capture. I just want to know that if I save a piece of information on a laptop or desktop, it&rsquo;ll be there for review on a tablet or phone not long after.</p>
<p>For a few hours of work configuring some off-the-shelf tools and a little bit of fine-tuning of the underlying sync engine, all my notes are securely available to me with super-fast search, and I can author them in a decent environment to begin with, not some Electron-based Markdown editor</p>
<p>I&rsquo;m happy to share what I came up with but avoided my customary &ldquo;here&rsquo;s a few snippets.&rdquo; The stuff I have going right now feels alpha. It&rsquo;s working, but it&rsquo;s in that realm of &ldquo;I just got ping.&rdquo; The HTML output needs some polishing, I&rsquo;m not sure the search stuff is configured as well as it could, and it remains to be seen how it all works as I just get on with my day. I did as much as I could over a few sessions on the weekend so I could just get back to work tomorrow without any lingering &ldquo;just one more thing&rdquo; desire to fiddle.</p>
]]></content:encoded>
    </item>
  </channel>
</rss>
