<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Apps on mm-dev</title>
    <link>https://mm-dev.rocks/tags/apps/</link>
    <description>Recent content in Apps on mm-dev</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-gb</language>
    <lastBuildDate>Wed, 19 Aug 2026 16:18:09 +0100</lastBuildDate><atom:link href="https://mm-dev.rocks/tags/apps/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>return();</title>
      <link>https://mm-dev.rocks/posts/recurse-center-return-statement/return/</link>
      <pubDate>Wed, 19 Aug 2026 16:18:09 +0100</pubDate>
      <guid>https://mm-dev.rocks/posts/recurse-center-return-statement/return/</guid>
      <description>&lt;p&gt;I went into RC with as few expectations as possible. I hoped I&amp;rsquo;d meet some people, learn some
things, make some things. &lt;em&gt;Achievements unlocked&lt;/em&gt; for sure, but more specifically, this is
some of what I came out with:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;a &gt;Algernon app&lt;/a&gt;&lt;/strong&gt; - I built an audio visualiser app in Flutter, learning about real-time audio
processing, Fast Fourier Transforms and fragment shaders.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href = &#34;/posts/caldavtui-calendar-terminal-app/&#34;&gt;caldavtui app&lt;/a&gt;&lt;/strong&gt; - A TUI calendar app for the terminal. This started out as an Impossible Day
project, progressed to &amp;lsquo;oh I can actually do this!&amp;rsquo; and has now become a long-term project for me.
It already works nicely but there&amp;rsquo;s a lot more I want to add and I&amp;rsquo;m fleshing out my knowledge of
the relevant specs (eg iCalendar and CalDAV).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Body doubling / pairing&lt;/strong&gt; - This is a simple process &amp;mdash; pair up with somebody and commit to
working on something for an hour without allowing yourself to get distracted. It&amp;rsquo;s especially useful
for me as somebody who works from home, helping me stay on track and to keep an eye on overall
progress of whatever I&amp;rsquo;m working on.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Comfort with Godot game development&lt;/strong&gt; - I paired with another RCer who showed me what he&amp;rsquo;d
learned so far as a Godot beginner himself. Then I had a day with an LLM, and a day or two on my
own. Combined, these few days have left me feeling comfortable with Godot. There are of course lots
of things I haven&amp;rsquo;t explored and am yet to learn, but as somebody who has built several games before
I now feel ready to tackle any project that comes up in Godot. I have my bearing.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Increased C/Go proficiency&lt;/strong&gt; - After putting in a few dozen hours on each, I&amp;rsquo;ve gone from almost
zero knowledge of &lt;code&gt;C&lt;/code&gt; and &lt;code&gt;Go&lt;/code&gt;, to beginner/intermediate level. Again, still loads to learn, but I
have a level of comfort now and am no longer daunted at the idea of starting a project in these
languages.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Clarity on my career and where I might want it to go&lt;/strong&gt; - Through some career-focused workshops
I&amp;rsquo;ve done some structured thinking about my career in general and about what might suit me in
future.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Comfort with Zoom&lt;/strong&gt; - Face-to-face video calls are an important part of the modern work
environment, especially for remote workers. Before RC I used to get the sweaty-palmed jitters before
a Zoom call, especially with strangers. Now it&amp;rsquo;s much more normal for me.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Contacts/networking&lt;/strong&gt; - I met loads of great people that I share interests with, have stayed in
touch with some of them, and because of the general vibe of RC I feel comfortable contacting others
in future if I ever have reason to.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Updated CV&lt;/strong&gt; - After some useful talks with the careers department I&amp;rsquo;ve reworked my CV to make
it shorter and clearer. I&amp;rsquo;m pretty happy with the &lt;a href = &#34;/mm-dev-cv.pdf&#34;&gt;new version&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I can say with no exaggeration that &lt;strong&gt;I&amp;rsquo;d have been chuffed with any single one of those gains&lt;/strong&gt;. To
have come out of the process with &lt;em&gt;all of them&lt;/em&gt; is way beyond what I might have hoped for. Truly
amazing.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;During an &amp;rsquo;exercising your volitional muscles&amp;rsquo; activity, we were asked to note down the thing we
were most proud of about our time at RC. We discussed these things in small groups. When we returned
to the main group some of us shared what we&amp;rsquo;d discussed, but I was feeling quiet and kept mine to
myself.&lt;/p&gt;
&lt;p&gt;For me, considering I nearly didn&amp;rsquo;t do it, and could have missed out on all those things I gained
from RC, one part of the process stood out as most important:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The thing I&amp;rsquo;m most proud of is that I applied in the first place!&lt;/p&gt;&lt;/blockquote&gt;
</description>
    </item>
    
    <item>
      <title></title>
      <link>https://mm-dev.rocks/posts/caldavtui-calendar-terminal-app/</link>
      <pubDate>Sun, 19 Jul 2026 10:10:42 +0000</pubDate>
      <guid>https://mm-dev.rocks/posts/caldavtui-calendar-terminal-app/</guid>
      <description></description>
    </item>
    
    <item>
      <title></title>
      <link>https://mm-dev.rocks/posts/algernon-audio-visualiser-app/</link>
      <pubDate>Thu, 16 Jul 2026 12:26:13 +0000</pubDate>
      <guid>https://mm-dev.rocks/posts/algernon-audio-visualiser-app/</guid>
      <description></description>
    </item>
    
    <item>
      <title></title>
      <link>https://mm-dev.rocks/posts/audav-audiobook-player-for-webdav-nextcloud/</link>
      <pubDate>Thu, 16 Jul 2026 12:26:13 +0000</pubDate>
      <guid>https://mm-dev.rocks/posts/audav-audiobook-player-for-webdav-nextcloud/</guid>
      <description></description>
    </item>
    
    <item>
      <title>Pipe Dream (Web Game)</title>
      <link>https://mm-dev.rocks/posts/pipe-dream-web-game/</link>
      <pubDate>Wed, 15 Nov 2023 16:04:45 +0000</pubDate>
      <guid>https://mm-dev.rocks/posts/pipe-dream-web-game/</guid>
      <description>&lt;p&gt;Pipe Dream is a game you can play in your browser &lt;a href = &#34;/pipe-dream&#34;&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;You don&amp;rsquo;t need to log in or install anything and of course there are no ads/tracking.&lt;/p&gt;
&lt;p&gt;The game is about as simple as it gets. There are loads of blobs floating about &amp;mdash; avoid some of them and eat the others.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;To control the player&lt;/strong&gt; move your mouse pointer (or drag your finger) over the &lt;strong&gt;control area&lt;/strong&gt; - a rectangle on the right or bottom of the screen (depending on which way around your display is oriented)&lt;/li&gt;
&lt;li&gt;When you hit one of the &lt;strong&gt;avoid blobs&lt;/strong&gt; you lose &lt;strong&gt;health&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Each level gives you a different amount of &lt;strong&gt;time&lt;/strong&gt; to complete it&lt;/li&gt;
&lt;li&gt;To complete a level, eat all the &lt;strong&gt;edible blobs&lt;/strong&gt; before you run out of &lt;strong&gt;time&lt;/strong&gt;, or &lt;strong&gt;health&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul class=&#39;gallery&#39;&gt;&lt;li&gt;
      &lt;input type=&#39;checkbox&#39; id=&#39;item_uvKJ_1&#39; /&gt;
      &lt;label for=&#39;item_uvKJ_1&#39; aria-label=&#39;Expand image&#39; tabindex=&#39;0&#39;&gt;&lt;span&gt;Intro screen&lt;/span&gt;
        &lt;img src=&#39;https://mm-dev.rocks/images/pipe-dream/pd-intro.png&#39; alt=&#39;Intro screen&#39; /&gt;&lt;/label&gt;
    &lt;/li&gt;&lt;li&gt;
      &lt;input type=&#39;checkbox&#39; id=&#39;item_uvKJ_2&#39; /&gt;
      &lt;label for=&#39;item_uvKJ_2&#39; aria-label=&#39;Expand image&#39; tabindex=&#39;0&#39;&gt;&lt;span&gt;Level BASIC&lt;/span&gt;
        &lt;img src=&#39;https://mm-dev.rocks/images/pipe-dream/pd-basic.png&#39; alt=&#39;Level BASIC&#39; /&gt;&lt;/label&gt;
    &lt;/li&gt;&lt;li&gt;
      &lt;input type=&#39;checkbox&#39; id=&#39;item_uvKJ_3&#39; /&gt;
      &lt;label for=&#39;item_uvKJ_3&#39; aria-label=&#39;Expand image&#39; tabindex=&#39;0&#39;&gt;&lt;span&gt;Level TOOEZ&lt;/span&gt;
        &lt;img src=&#39;https://mm-dev.rocks/images/pipe-dream/pd-tooez.png&#39; alt=&#39;Level TOOEZ&#39; /&gt;&lt;/label&gt;
    &lt;/li&gt;&lt;li&gt;
      &lt;input type=&#39;checkbox&#39; id=&#39;item_uvKJ_4&#39; /&gt;
      &lt;label for=&#39;item_uvKJ_4&#39; aria-label=&#39;Expand image&#39; tabindex=&#39;0&#39;&gt;&lt;span&gt;Level JUNGL&lt;/span&gt;
        &lt;img src=&#39;https://mm-dev.rocks/images/pipe-dream/pd-jungl.png&#39; alt=&#39;Level JUNGL&#39; /&gt;&lt;/label&gt;
    &lt;/li&gt;&lt;li&gt;
      &lt;input type=&#39;checkbox&#39; id=&#39;item_uvKJ_5&#39; /&gt;
      &lt;label for=&#39;item_uvKJ_5&#39; aria-label=&#39;Expand image&#39; tabindex=&#39;0&#39;&gt;&lt;span&gt;Level MAUVE&lt;/span&gt;
        &lt;img src=&#39;https://mm-dev.rocks/images/pipe-dream/pd-mauve.png&#39; alt=&#39;Level MAUVE&#39; /&gt;&lt;/label&gt;
    &lt;/li&gt;&lt;li&gt;
      &lt;input type=&#39;checkbox&#39; id=&#39;item_uvKJ_6&#39; /&gt;
      &lt;label for=&#39;item_uvKJ_6&#39; aria-label=&#39;Expand image&#39; tabindex=&#39;0&#39;&gt;&lt;span&gt;Level RRRED&lt;/span&gt;
        &lt;img src=&#39;https://mm-dev.rocks/images/pipe-dream/pd-rrred.png&#39; alt=&#39;Level RRRED&#39; /&gt;&lt;/label&gt;
    &lt;/li&gt;&lt;li&gt;
      &lt;input type=&#39;checkbox&#39; id=&#39;item_uvKJ_7&#39; /&gt;
      &lt;label for=&#39;item_uvKJ_7&#39; aria-label=&#39;Expand image&#39; tabindex=&#39;0&#39;&gt;&lt;span&gt;Level MUSTD&lt;/span&gt;
        &lt;img src=&#39;https://mm-dev.rocks/images/pipe-dream/pd-mustd.png&#39; alt=&#39;Level MUSTD&#39; /&gt;&lt;/label&gt;
    &lt;/li&gt;&lt;li&gt;
      &lt;input type=&#39;checkbox&#39; id=&#39;item_uvKJ_8&#39; /&gt;
      &lt;label for=&#39;item_uvKJ_8&#39; aria-label=&#39;Expand image&#39; tabindex=&#39;0&#39;&gt;&lt;span&gt;Level MULT1&lt;/span&gt;
        &lt;img src=&#39;https://mm-dev.rocks/images/pipe-dream/pd-mult1.png&#39; alt=&#39;Level MULT1&#39; /&gt;&lt;/label&gt;
    &lt;/li&gt;&lt;li&gt;
      &lt;input type=&#39;checkbox&#39; id=&#39;item_uvKJ_9&#39; /&gt;
      &lt;label for=&#39;item_uvKJ_9&#39; aria-label=&#39;Expand image&#39; tabindex=&#39;0&#39;&gt;&lt;span&gt;Level MULT2&lt;/span&gt;
        &lt;img src=&#39;https://mm-dev.rocks/images/pipe-dream/pd-mult2.png&#39; alt=&#39;Level MULT2&#39; /&gt;&lt;/label&gt;
    &lt;/li&gt;&lt;li&gt;
      &lt;input type=&#39;checkbox&#39; id=&#39;item_uvKJ_10&#39; /&gt;
      &lt;label for=&#39;item_uvKJ_10&#39; aria-label=&#39;Expand image&#39; tabindex=&#39;0&#39;&gt;&lt;span&gt;Level MERNG&lt;/span&gt;
        &lt;img src=&#39;https://mm-dev.rocks/images/pipe-dream/pd-merng.png&#39; alt=&#39;Level MERNG&#39; /&gt;&lt;/label&gt;
    &lt;/li&gt;&lt;li&gt;
      &lt;input type=&#39;checkbox&#39; id=&#39;item_uvKJ_11&#39; /&gt;
      &lt;label for=&#39;item_uvKJ_11&#39; aria-label=&#39;Expand image&#39; tabindex=&#39;0&#39;&gt;&lt;span&gt;Level DENSE&lt;/span&gt;
        &lt;img src=&#39;https://mm-dev.rocks/images/pipe-dream/pd-dense.png&#39; alt=&#39;Level DENSE&#39; /&gt;&lt;/label&gt;
    &lt;/li&gt;&lt;li&gt;
      &lt;input type=&#39;checkbox&#39; id=&#39;item_uvKJ_12&#39; /&gt;
      &lt;label for=&#39;item_uvKJ_12&#39; aria-label=&#39;Expand image&#39; tabindex=&#39;0&#39;&gt;&lt;span&gt;Level REDDD&lt;/span&gt;
        &lt;img src=&#39;https://mm-dev.rocks/images/pipe-dream/pd-reddd.png&#39; alt=&#39;Level REDDD&#39; /&gt;&lt;/label&gt;
    &lt;/li&gt;&lt;li&gt;
      &lt;input type=&#39;checkbox&#39; id=&#39;item_uvKJ_13&#39; /&gt;
      &lt;label for=&#39;item_uvKJ_13&#39; aria-label=&#39;Expand image&#39; tabindex=&#39;0&#39;&gt;&lt;span&gt;Level LMOLV&lt;/span&gt;
        &lt;img src=&#39;https://mm-dev.rocks/images/pipe-dream/pd-lmolv.png&#39; alt=&#39;Level LMOLV&#39; /&gt;&lt;/label&gt;
    &lt;/li&gt;&lt;li&gt;
      &lt;input type=&#39;checkbox&#39; id=&#39;item_uvKJ_14&#39; /&gt;
      &lt;label for=&#39;item_uvKJ_14&#39; aria-label=&#39;Expand image&#39; tabindex=&#39;0&#39;&gt;&lt;span&gt;Level BLRDS&lt;/span&gt;
        &lt;img src=&#39;https://mm-dev.rocks/images/pipe-dream/pd-blrds.png&#39; alt=&#39;Level BLRDS&#39; /&gt;&lt;/label&gt;
    &lt;/li&gt;&lt;li&gt;
      &lt;input type=&#39;checkbox&#39; id=&#39;item_uvKJ_15&#39; /&gt;
      &lt;label for=&#39;item_uvKJ_15&#39; aria-label=&#39;Expand image&#39; tabindex=&#39;0&#39;&gt;&lt;span&gt;Level GARDN&lt;/span&gt;
        &lt;img src=&#39;https://mm-dev.rocks/images/pipe-dream/pd-gardn.png&#39; alt=&#39;Level GARDN&#39; /&gt;&lt;/label&gt;
    &lt;/li&gt;&lt;li&gt;
      &lt;input type=&#39;checkbox&#39; id=&#39;item_uvKJ_16&#39; /&gt;
      &lt;label for=&#39;item_uvKJ_16&#39; aria-label=&#39;Expand image&#39; tabindex=&#39;0&#39;&gt;&lt;span&gt;Level GNSMK&lt;/span&gt;
        &lt;img src=&#39;https://mm-dev.rocks/images/pipe-dream/pd-gnsmk.png&#39; alt=&#39;Level GNSMK&#39; /&gt;&lt;/label&gt;
    &lt;/li&gt;&lt;li&gt;
      &lt;input type=&#39;checkbox&#39; id=&#39;item_uvKJ_17&#39; /&gt;
      &lt;label for=&#39;item_uvKJ_17&#39; aria-label=&#39;Expand image&#39; tabindex=&#39;0&#39;&gt;&lt;span&gt;Level STRRY&lt;/span&gt;
        &lt;img src=&#39;https://mm-dev.rocks/images/pipe-dream/pd-strry.png&#39; alt=&#39;Level STRRY&#39; /&gt;&lt;/label&gt;
    &lt;/li&gt;&lt;li&gt;
      &lt;input type=&#39;checkbox&#39; id=&#39;item_uvKJ_18&#39; /&gt;
      &lt;label for=&#39;item_uvKJ_18&#39; aria-label=&#39;Expand image&#39; tabindex=&#39;0&#39;&gt;&lt;span&gt;Level PEKMN&lt;/span&gt;
        &lt;img src=&#39;https://mm-dev.rocks/images/pipe-dream/pd-pekmn.png&#39; alt=&#39;Level PEKMN&#39; /&gt;&lt;/label&gt;
    &lt;/li&gt;&lt;li&gt;
      &lt;input type=&#39;checkbox&#39; id=&#39;item_uvKJ_19&#39; /&gt;
      &lt;label for=&#39;item_uvKJ_19&#39; aria-label=&#39;Expand image&#39; tabindex=&#39;0&#39;&gt;&lt;span&gt;Level SWARM&lt;/span&gt;
        &lt;img src=&#39;https://mm-dev.rocks/images/pipe-dream/pd-swarm.png&#39; alt=&#39;Level SWARM&#39; /&gt;&lt;/label&gt;
    &lt;/li&gt;&lt;li&gt;
      &lt;input type=&#39;checkbox&#39; id=&#39;item_uvKJ_20&#39; /&gt;
      &lt;label for=&#39;item_uvKJ_20&#39; aria-label=&#39;Expand image&#39; tabindex=&#39;0&#39;&gt;&lt;span&gt;Level WISTA&lt;/span&gt;
        &lt;img src=&#39;https://mm-dev.rocks/images/pipe-dream/pd-wista.png&#39; alt=&#39;Level WISTA&#39; /&gt;&lt;/label&gt;
    &lt;/li&gt;&lt;li&gt;
      &lt;input type=&#39;checkbox&#39; id=&#39;item_uvKJ_21&#39; /&gt;
      &lt;label for=&#39;item_uvKJ_21&#39; aria-label=&#39;Expand image&#39; tabindex=&#39;0&#39;&gt;&lt;span&gt;Level ALIEN&lt;/span&gt;
        &lt;img src=&#39;https://mm-dev.rocks/images/pipe-dream/pd-alien.png&#39; alt=&#39;Level ALIEN&#39; /&gt;&lt;/label&gt;
    &lt;/li&gt;&lt;li&gt;
      &lt;input type=&#39;checkbox&#39; id=&#39;item_uvKJ_22&#39; /&gt;
      &lt;label for=&#39;item_uvKJ_22&#39; aria-label=&#39;Expand image&#39; tabindex=&#39;0&#39;&gt;&lt;span&gt;Level CHPLN&lt;/span&gt;
        &lt;img src=&#39;https://mm-dev.rocks/images/pipe-dream/pd-chpln.png&#39; alt=&#39;Level CHPLN&#39; /&gt;&lt;/label&gt;
    &lt;/li&gt;&lt;li&gt;
      &lt;input type=&#39;checkbox&#39; id=&#39;item_uvKJ_23&#39; /&gt;
      &lt;label for=&#39;item_uvKJ_23&#39; aria-label=&#39;Expand image&#39; tabindex=&#39;0&#39;&gt;&lt;span&gt;Level OPRTN&lt;/span&gt;
        &lt;img src=&#39;https://mm-dev.rocks/images/pipe-dream/pd-oprtn.png&#39; alt=&#39;Level OPRTN&#39; /&gt;&lt;/label&gt;
    &lt;/li&gt;&lt;li&gt;
      &lt;input type=&#39;checkbox&#39; id=&#39;item_uvKJ_24&#39; /&gt;
      &lt;label for=&#39;item_uvKJ_24&#39; aria-label=&#39;Expand image&#39; tabindex=&#39;0&#39;&gt;&lt;span&gt;Level NTPOR&lt;/span&gt;
        &lt;img src=&#39;https://mm-dev.rocks/images/pipe-dream/pd-ntpor.png&#39; alt=&#39;Level NTPOR&#39; /&gt;&lt;/label&gt;
    &lt;/li&gt;
&lt;/ul&gt;

</description>
    </item>
    
    <item>
      <title>dontdillydally (Web App)</title>
      <link>https://mm-dev.rocks/posts/dontdillydally-web-app/</link>
      <pubDate>Tue, 10 Oct 2023 13:17:52 +0100</pubDate>
      <guid>https://mm-dev.rocks/posts/dontdillydally-web-app/</guid>
      <description>&lt;p&gt;&lt;strong&gt;dontdillydally&lt;/strong&gt; helps you track time and money.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Aimed at the self-employed&lt;/li&gt;
&lt;li&gt;Focused on simplicity and ease of use&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;As this is a web app you don&amp;rsquo;t need to install it, just go to &lt;a href = &#34;https://dontdillydally.app&#34; target = &#34;_blank&#34; rel = &#34;nofollow noopener noreferrer&#34;&gt;dontdillydally.app&lt;/a&gt; to start using it immediately in your browser.&lt;/p&gt;
&lt;h2 id=&#34;how-to-use&#34;&gt;How to Use&lt;/h2&gt;
&lt;p&gt;&lt;img class=&#34;inline-icon&#34; src=&#34;https://mm-dev.rocks/images/dontdillydally/icon-linnet.png&#34; /&gt;
 &lt;strong&gt;Tap the bird at any time in the app to see the built-in guide&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;br&gt;
On the left-hand side of the app you will see icons which you can tap to change which section you&amp;rsquo;re on or perform other functions.&lt;/p&gt;






&lt;div class=&#34;expand-all-toggle&#34;&gt;
    &lt;label for=&#34;expandAllCheckbox_z9U8&#34;&gt;&lt;h3 id=&#34;tap-below-to-expand-each-section-and-learn-more-about-it&#34;&gt;Tap below to expand each section and learn more about it:&lt;/h3&gt;
&lt;span&gt;Expand all&lt;/span&gt;
      &lt;input id=&#34;expandAllCheckbox_z9U8&#34; type=&#34;checkbox&#34; onchange=&#34;setChildExpandedStates_z9U8();&#34;/&gt;
    &lt;/label&gt;
  
  &lt;script&gt;
    function setChildExpandedStates_z9U8() {
      var checkbox_el = document.getElementById(&#39;expandAllCheckbox_z9U8&#39;);
      var all = checkbox_el.parentNode.parentNode.getElementsByTagName(&#39;details&#39;);
      for (i = 0; i &lt; all.length; i++) { 
        all[i].open = checkbox_el.checked;
      }
    }
    window.addEventListener(&#39;load&#39;, () =&gt; {
      document.getElementById(&#39;expandAllCheckbox_z9U8&#39;).parentNode.parentNode.classList.add(&#39;js-visible&#39;);
      setChildExpandedStates_z9U8();
    });
  &lt;/script&gt;
&lt;details&gt;
&lt;summary&gt;&lt;span&gt;&lt;img class=&#34;inline-icon&#34; src=&#34;https://mm-dev.rocks/images/dontdillydally/icon-worksheet.png&#34; /&gt;
 Worksheet&lt;/span&gt;&lt;/summary&gt;

&lt;div&gt;
&lt;p&gt;This is the page you&amp;rsquo;ll use the most, it&amp;rsquo;s where you enter your hours worked and any money coming in or going out.&lt;/p&gt;
&lt;p&gt;A worksheet is made of &lt;strong&gt;entries&lt;/strong&gt;. An &lt;strong&gt;entry&lt;/strong&gt; is one of the following:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;time&lt;/strong&gt; spent on a specific job&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;money&lt;/strong&gt; spent on something (expenses)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;money&lt;/strong&gt; coming in (income)&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;To add an entry, just tap on the date where you want to add it&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;Each &lt;strong&gt;entry&lt;/strong&gt; can have a &lt;strong&gt;client&lt;/strong&gt; and/or a &lt;strong&gt;job&lt;/strong&gt; selected. If you do this you&amp;rsquo;ll then be able to get a &lt;strong&gt;report&lt;/strong&gt; showing you how many hours you worked on that job/client, or how much money you made or spent.&lt;/p&gt;
&lt;p&gt;You can also add &lt;strong&gt;Notes&lt;/strong&gt; to an entry.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;All data fields in an entry are optional, add as much or as little info as you like.&lt;/em&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;By default when you add a new &lt;strong&gt;entry&lt;/strong&gt; it will be a &lt;strong&gt;time&lt;/strong&gt; entry, and show a &lt;strong&gt;clock icon&lt;/strong&gt; next to it.&lt;/li&gt;
&lt;li&gt;If you tap the clock, the icon changes to a &lt;strong&gt;credit card&lt;/strong&gt; and the entry becomes a &lt;strong&gt;money&lt;/strong&gt; entry.&lt;/li&gt;
&lt;li&gt;To enter an expense, set the value of a money entry to something negative eg &lt;code&gt;-100.00&lt;/code&gt; means you spent 100.&lt;/li&gt;
&lt;/ul&gt;
&lt;ul class=&#39;gallery&#39;&gt;&lt;li&gt;
      &lt;input type=&#39;checkbox&#39; id=&#39;item_V1MX_1&#39; /&gt;
      &lt;label for=&#39;item_V1MX_1&#39; aria-label=&#39;Expand image&#39; tabindex=&#39;0&#39;&gt;&lt;span&gt;Worksheet: Time entry&lt;/span&gt;
        &lt;img src=&#39;https://mm-dev.rocks/images/dontdillydally/time-entry-1.png&#39; alt=&#39;Worksheet: Time entry&#39; /&gt;&lt;/label&gt;
    &lt;/li&gt;&lt;li&gt;
      &lt;input type=&#39;checkbox&#39; id=&#39;item_V1MX_2&#39; /&gt;
      &lt;label for=&#39;item_V1MX_2&#39; aria-label=&#39;Expand image&#39; tabindex=&#39;0&#39;&gt;&lt;/label&gt;
    &lt;/li&gt;&lt;li&gt;
      &lt;input type=&#39;checkbox&#39; id=&#39;item_V1MX_3&#39; /&gt;
      &lt;label for=&#39;item_V1MX_3&#39; aria-label=&#39;Expand image&#39; tabindex=&#39;0&#39;&gt;&lt;/label&gt;
    &lt;/li&gt;&lt;li&gt;
      &lt;input type=&#39;checkbox&#39; id=&#39;item_V1MX_4&#39; /&gt;
      &lt;label for=&#39;item_V1MX_4&#39; aria-label=&#39;Expand image&#39; tabindex=&#39;0&#39;&gt;&lt;/label&gt;
    &lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/details&gt;


&lt;details&gt;
&lt;summary&gt;&lt;span&gt;&lt;img class=&#34;inline-icon&#34; src=&#34;https://mm-dev.rocks/images/dontdillydally/icon-reports.png&#34; /&gt;
 Reports&lt;/span&gt;&lt;/summary&gt;

&lt;div&gt;
&lt;p&gt;Here you can get a clear view of everything entered into an entire worksheet, or narrow down on a specific job or client:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Choose a date range from within your worksheet&lt;/li&gt;
&lt;li&gt;Choose a specfic client or job&lt;/li&gt;
&lt;li&gt;Look at only money in/out (hide hours)&lt;/li&gt;
&lt;li&gt;Look at only hours worked (hide money)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Then you&amp;rsquo;ll be able to see:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;How much time you&amp;rsquo;ve spent&lt;/li&gt;
&lt;li&gt;How much you&amp;rsquo;ve earned&lt;/li&gt;
&lt;li&gt;A list of all worksheet entries matching your selection showing eg time, monetary values, notes&lt;/li&gt;
&lt;/ul&gt;
&lt;ul class=&#39;gallery&#39;&gt;&lt;li&gt;
      &lt;input type=&#39;checkbox&#39; id=&#39;item_7ikH_1&#39; /&gt;
      &lt;label for=&#39;item_7ikH_1&#39; aria-label=&#39;Expand image&#39; tabindex=&#39;0&#39;&gt;&lt;span&gt;Reports: &amp;#39;BendyStraw&amp;#39; job selection&lt;/span&gt;
        &lt;img src=&#39;https://mm-dev.rocks/images/dontdillydally/report-bs-1.png&#39; alt=&#39;Reports: &amp;#39;BendyStraw&amp;#39; job selection&#39; /&gt;&lt;/label&gt;
    &lt;/li&gt;&lt;li&gt;
      &lt;input type=&#39;checkbox&#39; id=&#39;item_7ikH_2&#39; /&gt;
      &lt;label for=&#39;item_7ikH_2&#39; aria-label=&#39;Expand image&#39; tabindex=&#39;0&#39;&gt;&lt;span&gt;Reports: &amp;#39;BendyStraw&amp;#39; job results&lt;/span&gt;
        &lt;img src=&#39;https://mm-dev.rocks/images/dontdillydally/report-bs-2.png&#39; alt=&#39;Reports: &amp;#39;BendyStraw&amp;#39; job results&#39; /&gt;&lt;/label&gt;
    &lt;/li&gt;&lt;li&gt;
      &lt;input type=&#39;checkbox&#39; id=&#39;item_7ikH_3&#39; /&gt;
      &lt;label for=&#39;item_7ikH_3&#39; aria-label=&#39;Expand image&#39; tabindex=&#39;0&#39;&gt;&lt;/label&gt;
    &lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/details&gt;


&lt;details&gt;
&lt;summary&gt;&lt;span&gt;&lt;img class=&#34;inline-icon&#34; src=&#34;https://mm-dev.rocks/images/dontdillydally/icon-jobs-clients.png&#34; /&gt;
 Jobs and Clients&lt;/span&gt;&lt;/summary&gt;

&lt;div&gt;
&lt;ul class=&#39;gallery float single-item&#39;&gt;&lt;li&gt;
      &lt;input type=&#39;checkbox&#39; id=&#39;item_lScE_1&#39; /&gt;
      &lt;label for=&#39;item_lScE_1&#39; aria-label=&#39;Expand image&#39; tabindex=&#39;0&#39;&gt;&lt;/label&gt;
    &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Jobs&lt;/strong&gt; and &lt;strong&gt;Clients&lt;/strong&gt; can be created and edited here, including:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A name for the job or client&lt;/li&gt;
&lt;li&gt;Colours (foreground and background) used to represent the job or client in the app&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;
&lt;/details&gt;

&lt;details&gt;
&lt;summary&gt;&lt;span&gt;&lt;img class=&#34;inline-icon&#34; src=&#34;https://mm-dev.rocks/images/dontdillydally/icon-settings.png&#34; /&gt;
 Settings&lt;/span&gt;&lt;/summary&gt;

&lt;div&gt;
&lt;/div&gt;
&lt;/details&gt;
&lt;/div&gt;







&lt;div class=&#34;expand-all-toggle&#34;&gt;
    &lt;label for=&#34;expandAllCheckbox_wbWU&#34;&gt;&lt;h3 id=&#34;the-other-icons-perform-actions-immediately-without-changing-the-page&#34;&gt;The other icons perform actions immediately without changing the page:&lt;/h3&gt;
&lt;span&gt;Expand all&lt;/span&gt;
      &lt;input id=&#34;expandAllCheckbox_wbWU&#34; type=&#34;checkbox&#34; onchange=&#34;setChildExpandedStates_wbWU();&#34;/&gt;
    &lt;/label&gt;
  
  &lt;script&gt;
    function setChildExpandedStates_wbWU() {
      var checkbox_el = document.getElementById(&#39;expandAllCheckbox_wbWU&#39;);
      var all = checkbox_el.parentNode.parentNode.getElementsByTagName(&#39;details&#39;);
      for (i = 0; i &lt; all.length; i++) { 
        all[i].open = checkbox_el.checked;
      }
    }
    window.addEventListener(&#39;load&#39;, () =&gt; {
      document.getElementById(&#39;expandAllCheckbox_wbWU&#39;).parentNode.parentNode.classList.add(&#39;js-visible&#39;);
      setChildExpandedStates_wbWU();
    });
  &lt;/script&gt;

&lt;details&gt;
&lt;summary&gt;&lt;span&gt;&lt;img class=&#34;inline-icon&#34; src=&#34;https://mm-dev.rocks/images/dontdillydally/icon-maximise.png&#34; /&gt;
 Minimise/maximise menu&lt;/span&gt;&lt;/summary&gt;

&lt;div&gt;
&lt;blockquote&gt;
&lt;p&gt;Toggles whether the menu is minimised or maximised.&lt;/p&gt;&lt;/blockquote&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;&lt;/th&gt;
          &lt;th style=&#34;text-align: left&#34;&gt;&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;&lt;strong&gt;Minimised&lt;/strong&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;Show only icons&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;&lt;strong&gt;Maximised&lt;/strong&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;Show icons + text labels&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;/details&gt;

&lt;details&gt;
&lt;summary&gt;&lt;span&gt;&lt;img class=&#34;inline-icon&#34; src=&#34;https://mm-dev.rocks/images/dontdillydally/icon-sync.png&#34; /&gt;
 WebDAV sync&lt;/span&gt;&lt;/summary&gt;

&lt;div&gt;
&lt;p&gt;This is an experimental feature to sync your data to a WebDAV server so you can keep several devices in sync.&lt;/p&gt;
&lt;p&gt;It&amp;rsquo;s a work-in-progress and not really recommended for most users at this point.&lt;/p&gt;
&lt;/div&gt;
&lt;/details&gt;

&lt;details&gt;
&lt;summary&gt;&lt;span&gt;&lt;img class=&#34;inline-icon&#34; src=&#34;https://mm-dev.rocks/images/dontdillydally/icon-download.png&#34; /&gt;
 Download data as file&lt;/span&gt;&lt;/summary&gt;

&lt;div&gt;
Tap this to download all of your data and settings in a file. It will usually end up in your main &lt;code&gt;Downloads&lt;/code&gt; folder.&lt;/div&gt;
&lt;/details&gt;

&lt;details&gt;
&lt;summary&gt;&lt;span&gt;&lt;img class=&#34;inline-icon&#34; src=&#34;https://mm-dev.rocks/images/dontdillydally/icon-upload.png&#34; /&gt;
 Upload data file&lt;/span&gt;&lt;/summary&gt;

&lt;div&gt;
&lt;p&gt;If you have a file you previously downloaded you can bring that data back into the app with this button.&lt;/p&gt;
&lt;p&gt;When importing the data you will be given the option to &lt;code&gt;Merge&lt;/code&gt; or &lt;code&gt;Overwrite&lt;/code&gt; your current data.&lt;/p&gt;
&lt;/div&gt;
&lt;/details&gt;

&lt;details&gt;
&lt;summary&gt;&lt;span&gt;&lt;img class=&#34;inline-icon&#34; src=&#34;https://mm-dev.rocks/images/dontdillydally/icon-email.png&#34; /&gt;
 Email data to a preconfigured address&lt;/span&gt;&lt;/summary&gt;

&lt;div&gt;
You need to set an email address in &lt;code&gt;Settings&lt;/code&gt; for this option to work.
Your device also needs to know what to do with &lt;code&gt;mailto:&lt;/code&gt; links.&lt;/div&gt;
&lt;/details&gt;

&lt;details&gt;
&lt;summary&gt;&lt;span&gt;&lt;img class=&#34;inline-icon&#34; src=&#34;https://mm-dev.rocks/images/dontdillydally/icon-wipe.png&#34; /&gt;
 Wipe your data&lt;/span&gt;&lt;/summary&gt;

&lt;div&gt;
Completely wipe all of your data and start fresh.&lt;/div&gt;
&lt;/details&gt;


&lt;/div&gt;

&lt;h2 id=&#34;data-storage&#34;&gt;Data Storage&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Automatically saved continually while you work &lt;em&gt;The bird&amp;rsquo;s eye spins when changes are being saved, this is intentionally kept subtle but can be disabled in settings&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;Your data is stored inside your browser and stays on your device, it never travels over the internet (unless you decide to send it via email) and is not stored on any servers&lt;/li&gt;
&lt;li&gt;Data uses a simple JSON format, it can be exported/imported as a file to move it between devices&lt;/li&gt;
&lt;/ul&gt;
</description>
    </item>
    
    <item>
      <title></title>
      <link>https://mm-dev.rocks/posts/bendystraw-app-for-newpipe-databases/</link>
      <pubDate>Tue, 10 Oct 2023 13:17:10 +0100</pubDate>
      <guid>https://mm-dev.rocks/posts/bendystraw-app-for-newpipe-databases/</guid>
      <description></description>
    </item>
    
    <item>
      <title>Holistik: Activity Overview (Garmin Watch App)</title>
      <link>https://mm-dev.rocks/posts/holistik-garmin-app/</link>
      <pubDate>Tue, 10 Oct 2023 13:17:08 +0100</pubDate>
      <guid>https://mm-dev.rocks/posts/holistik-garmin-app/</guid>
      <description>&lt;p&gt;Garmin watches (such as the Fenix 5 Plus which I have) gather a lot of info about your exercise activity, but to see it you need to log in to your Connect IQ account in their app or a browser, using a separate device such as a phone or laptop.&lt;/p&gt;
&lt;p&gt;One of the things I like most about this watch is that despite the usual ecosystem tie-ins, you can do most things with it offline, even including GPS navigation as it stores its own offline maps and has a GPS device built-in (unlike lots of other devices that depend on beign BlueTooth-linked to your phone for GPS features). The only sore point for me is the lack of a visual overview of activities, without logging in to Connect IQ.&lt;/p&gt;
&lt;p&gt;This app is my solution. Get a birds-eye view at different zoom levels (days, weeks or months at a time) - great when your device is offline and you want to check your activity levels at a glance!&lt;/p&gt;
&lt;ul class=&#39;gallery&#39;&gt;&lt;li&gt;
      &lt;input type=&#39;checkbox&#39; id=&#39;item_ql2f_1&#39; /&gt;
      &lt;label for=&#39;item_ql2f_1&#39; aria-label=&#39;Expand image&#39; tabindex=&#39;0&#39;&gt;&lt;span&gt;Days&lt;/span&gt;
        &lt;img src=&#39;https://mm-dev.rocks/images/holistik/holistik-grab-2.png&#39; alt=&#39;Days&#39; /&gt;&lt;/label&gt;
    &lt;/li&gt;&lt;li&gt;
      &lt;input type=&#39;checkbox&#39; id=&#39;item_ql2f_2&#39; /&gt;
      &lt;label for=&#39;item_ql2f_2&#39; aria-label=&#39;Expand image&#39; tabindex=&#39;0&#39;&gt;&lt;span&gt;Weeks&lt;/span&gt;
        &lt;img src=&#39;https://mm-dev.rocks/images/holistik/holistik-grab-1.png&#39; alt=&#39;Weeks&#39; /&gt;&lt;/label&gt;
    &lt;/li&gt;&lt;li&gt;
      &lt;input type=&#39;checkbox&#39; id=&#39;item_ql2f_3&#39; /&gt;
      &lt;label for=&#39;item_ql2f_3&#39; aria-label=&#39;Expand image&#39; tabindex=&#39;0&#39;&gt;&lt;span&gt;Months&lt;/span&gt;
        &lt;img src=&#39;https://mm-dev.rocks/images/holistik/holistik-grab-3.png&#39; alt=&#39;Months&#39; /&gt;&lt;/label&gt;
    &lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&#34;how-to-use&#34;&gt;How to Use&lt;/h2&gt;
&lt;h3 id=&#34;day-colours&#34;&gt;Day Colours&lt;/h3&gt;
&lt;p&gt;Days (squares) are coloured according to how many activities you recorded that day, plus time spent or distance covered:&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;Activity level&lt;/th&gt;
          &lt;th style=&#34;text-align: left&#34;&gt;Warm themes&lt;/th&gt;
          &lt;th style=&#34;text-align: left&#34;&gt;Cool themes&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;&lt;strong&gt;Some&lt;/strong&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;span class=&#34;chip&#34; style=&#34;background-color: #FFAA00&#34;&gt;&lt;span&gt;Yellow&lt;/span&gt;&lt;/span&gt;
&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;span class=&#34;chip&#34; style=&#34;background-color: #00FFCC&#34;&gt;&lt;span&gt;Light Green&lt;/span&gt;&lt;/span&gt;
&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;&lt;strong&gt;Moderate&lt;/strong&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;span class=&#34;chip&#34; style=&#34;background-color: #FF0000&#34;&gt;&lt;span&gt;Red          &lt;/span&gt;&lt;/span&gt;
&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;span class=&#34;chip&#34; style=&#34;background-color: #00FF00&#34;&gt;&lt;span&gt;Mid Green  &lt;/span&gt;&lt;/span&gt;
&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;&lt;strong&gt;High&lt;/strong&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;span class=&#34;chip&#34; style=&#34;background-color: #4B0000&#34;&gt;&lt;span&gt;Dark Red     &lt;/span&gt;&lt;/span&gt;
&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;span class=&#34;chip&#34; style=&#34;background-color: #023E02&#34;&gt;&lt;span&gt;Dark Green &lt;/span&gt;&lt;/span&gt;
&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Some other days are coloured to help you see what&amp;rsquo;s what. Where the year or month is written in text, the same colours will also be used.&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;Day type&lt;/th&gt;
          &lt;th style=&#34;text-align: left&#34;&gt;Warm, Dark theme&lt;/th&gt;
          &lt;th style=&#34;text-align: left&#34;&gt;Cool, Dark theme&lt;/th&gt;
          &lt;th style=&#34;text-align: left&#34;&gt;Warm, Light theme&lt;/th&gt;
          &lt;th style=&#34;text-align: left&#34;&gt;Cool, Light theme&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;&lt;strong&gt;No activities recorded&lt;/strong&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;span class=&#34;chip&#34; style=&#34;background-color: #AAAAAA&#34;&gt;&lt;span&gt;Light Grey&lt;/span&gt;&lt;/span&gt;
&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;span class=&#34;chip&#34; style=&#34;background-color: #AAAAAA&#34;&gt;&lt;span&gt;Light Grey&lt;/span&gt;&lt;/span&gt;
&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;span class=&#34;chip&#34; style=&#34;background-color: #AAAAAA&#34;&gt;&lt;span&gt;Light Grey&lt;/span&gt;&lt;/span&gt;
&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;span class=&#34;chip&#34; style=&#34;background-color: #AAAAAA&#34;&gt;&lt;span&gt;Light Grey&lt;/span&gt;&lt;/span&gt;
&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;&lt;strong&gt;Weekends&lt;/strong&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;span class=&#34;chip&#34; style=&#34;background-color: #555555&#34;&gt;&lt;span&gt;Dark Grey&lt;/span&gt;&lt;/span&gt;
&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;span class=&#34;chip&#34; style=&#34;background-color: #555555&#34;&gt;&lt;span&gt;Dark Grey&lt;/span&gt;&lt;/span&gt;
&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;span class=&#34;chip&#34; style=&#34;background-color: #555555&#34;&gt;&lt;span&gt;Dark Grey&lt;/span&gt;&lt;/span&gt;
&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;span class=&#34;chip&#34; style=&#34;background-color: #555555&#34;&gt;&lt;span&gt;Dark Grey&lt;/span&gt;&lt;/span&gt;
&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;&lt;strong&gt;First of the month&lt;/strong&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;span class=&#34;chip&#34; style=&#34;background-color: #000088&#34;&gt;&lt;span&gt;Dark Blue&lt;/span&gt;&lt;/span&gt;
&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;span class=&#34;chip&#34; style=&#34;background-color: #ff5500&#34;&gt;&lt;span&gt;Orange&lt;/span&gt;&lt;/span&gt;
&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;span class=&#34;chip&#34; style=&#34;background-color: #000044&#34;&gt;&lt;span&gt;Navy&lt;/span&gt;&lt;/span&gt;
&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;span class=&#34;chip&#34; style=&#34;background-color: #662200&#34;&gt;&lt;span&gt;Brown&lt;/span&gt;&lt;/span&gt;
&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;&lt;strong&gt;First day of the year&lt;/strong&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;span class=&#34;chip&#34; style=&#34;background-color: #440166&#34;&gt;&lt;span&gt;Purple&lt;/span&gt;&lt;/span&gt;
&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;span class=&#34;chip&#34; style=&#34;background-color: #FFAA00&#34;&gt;&lt;span&gt;Yellow&lt;/span&gt;&lt;/span&gt;
&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;span class=&#34;chip&#34; style=&#34;background-color: #662200&#34;&gt;&lt;span&gt;Brown&lt;/span&gt;&lt;/span&gt;
&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;span class=&#34;chip&#34; style=&#34;background-color: #4B0000&#34;&gt;&lt;span&gt;Dark Red&lt;/span&gt;&lt;/span&gt;
&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;watch-button-functions&#34;&gt;Watch Button Functions&lt;/h3&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;&lt;/th&gt;
          &lt;th&gt;&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;&lt;strong&gt;Start&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;&lt;em&gt;Change view&lt;/em&gt; (Days/Weeks/Months)&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;&lt;strong&gt;Up&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;&lt;em&gt;Previous&lt;/em&gt; day/week/month&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;&lt;strong&gt;Down&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;&lt;em&gt;Next&lt;/em&gt; day/week/month&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;&lt;strong&gt;Menu&lt;/strong&gt; &lt;small class=&#34;special&#34;&gt;
press + hold &lt;strong&gt;Up&lt;/strong&gt;&lt;/small&gt;
&lt;/td&gt;
          &lt;td&gt;Show &lt;em&gt;Settings&lt;/em&gt; screen&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;views&#34;&gt;Views&lt;/h3&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;&lt;/th&gt;
          &lt;th&gt;&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;&lt;strong&gt;Days&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;Details of individual activities for the selected day eg &amp;ldquo;5:30am Train 32mins&amp;rdquo;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;&lt;/td&gt;
          &lt;td&gt;&lt;ul class=&#39;gallery&#39;&gt;&lt;li&gt;
      &lt;input type=&#39;checkbox&#39; id=&#39;item_am2z_1&#39; /&gt;
      &lt;label for=&#39;item_am2z_1&#39; aria-label=&#39;Expand image&#39; tabindex=&#39;0&#39;&gt;&lt;span&gt;View: Days, Theme: Warm&lt;/span&gt;
        &lt;img src=&#39;https://mm-dev.rocks/images/holistik/days-warm-dark.png&#39; alt=&#39;View: Days, Theme: Warm&#39; /&gt;&lt;/label&gt;
    &lt;/li&gt;&lt;li&gt;
      &lt;input type=&#39;checkbox&#39; id=&#39;item_am2z_2&#39; /&gt;
      &lt;label for=&#39;item_am2z_2&#39; aria-label=&#39;Expand image&#39; tabindex=&#39;0&#39;&gt;&lt;span&gt;View: Days, Theme: Cool&lt;/span&gt;
        &lt;img src=&#39;https://mm-dev.rocks/images/holistik/days-cool-dark.png&#39; alt=&#39;View: Days, Theme: Cool&#39; /&gt;&lt;/label&gt;
    &lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;&lt;/th&gt;
          &lt;th&gt;&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;&lt;strong&gt;Weeks&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;Shows combined activity totals for the selected week eg &amp;ldquo;Train 3hrs&amp;rdquo;, &amp;ldquo;Walk 7hrs 21 miles&amp;rdquo;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;&lt;/td&gt;
          &lt;td&gt;&lt;ul class=&#39;gallery&#39;&gt;&lt;li&gt;
      &lt;input type=&#39;checkbox&#39; id=&#39;item_1p7H_1&#39; /&gt;
      &lt;label for=&#39;item_1p7H_1&#39; aria-label=&#39;Expand image&#39; tabindex=&#39;0&#39;&gt;&lt;span&gt;View: Weeks, Theme: Warm&lt;/span&gt;
        &lt;img src=&#39;https://mm-dev.rocks/images/holistik/weeks-warm-dark.png&#39; alt=&#39;View: Weeks, Theme: Warm&#39; /&gt;&lt;/label&gt;
    &lt;/li&gt;&lt;li&gt;
      &lt;input type=&#39;checkbox&#39; id=&#39;item_1p7H_2&#39; /&gt;
      &lt;label for=&#39;item_1p7H_2&#39; aria-label=&#39;Expand image&#39; tabindex=&#39;0&#39;&gt;&lt;span&gt;View: Weeks, Theme: Cool&lt;/span&gt;
        &lt;img src=&#39;https://mm-dev.rocks/images/holistik/weeks-cool-dark.png&#39; alt=&#39;View: Weeks, Theme: Cool&#39; /&gt;&lt;/label&gt;
    &lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;&lt;/th&gt;
          &lt;th&gt;&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;&lt;strong&gt;Months&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;Shows combined totals just like the weeks view &lt;small class=&#34;special&#34;&gt;
Depending on device performance and number of recorded activities, it can take a second or so to jump from month to month. Buttons remain active during this time (eg if you&amp;rsquo;re on December and you press UP 6 times you&amp;rsquo;ll still land on June, it might just take a moment to catch up).&lt;/small&gt;
&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;&lt;/td&gt;
          &lt;td&gt;&lt;ul class=&#39;gallery&#39;&gt;&lt;li&gt;
      &lt;input type=&#39;checkbox&#39; id=&#39;item_08gQ_1&#39; /&gt;
      &lt;label for=&#39;item_08gQ_1&#39; aria-label=&#39;Expand image&#39; tabindex=&#39;0&#39;&gt;&lt;span&gt;View: Months, Theme: Warm&lt;/span&gt;
        &lt;img src=&#39;https://mm-dev.rocks/images/holistik/months-warm-dark.png&#39; alt=&#39;View: Months, Theme: Warm&#39; /&gt;&lt;/label&gt;
    &lt;/li&gt;&lt;li&gt;
      &lt;input type=&#39;checkbox&#39; id=&#39;item_08gQ_2&#39; /&gt;
      &lt;label for=&#39;item_08gQ_2&#39; aria-label=&#39;Expand image&#39; tabindex=&#39;0&#39;&gt;&lt;span&gt;View: Months, Theme: Cool&lt;/span&gt;
        &lt;img src=&#39;https://mm-dev.rocks/images/holistik/months-cool-dark.png&#39; alt=&#39;View: Months, Theme: Cool&#39; /&gt;&lt;/label&gt;
    &lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;






&lt;div class=&#34;expand-all-toggle&#34;&gt;
    &lt;label for=&#34;expandAllCheckbox_iZE0&#34;&gt;&lt;h3 id=&#34;hints-and-tips&#34;&gt;Hints and Tips&lt;/h3&gt;
&lt;span&gt;Expand all&lt;/span&gt;
      &lt;input id=&#34;expandAllCheckbox_iZE0&#34; type=&#34;checkbox&#34; onchange=&#34;setChildExpandedStates_iZE0();&#34;/&gt;
    &lt;/label&gt;
  
  &lt;script&gt;
    function setChildExpandedStates_iZE0() {
      var checkbox_el = document.getElementById(&#39;expandAllCheckbox_iZE0&#39;);
      var all = checkbox_el.parentNode.parentNode.getElementsByTagName(&#39;details&#39;);
      for (i = 0; i &lt; all.length; i++) { 
        all[i].open = checkbox_el.checked;
      }
    }
    window.addEventListener(&#39;load&#39;, () =&gt; {
      document.getElementById(&#39;expandAllCheckbox_iZE0&#39;).parentNode.parentNode.classList.add(&#39;js-visible&#39;);
      setChildExpandedStates_iZE0();
    });
  &lt;/script&gt;


&lt;details&gt;
&lt;summary&gt;&lt;span&gt;&lt;h4 id=&#34;to-maximise-usage-of-space-on-round-screens-days-flow-in-a-snaking-pattern&#34;&gt;To maximise usage of space on round screens, days flow in a &amp;lsquo;snaking&amp;rsquo; pattern&lt;/h4&gt;
&lt;/span&gt;&lt;/summary&gt;

&lt;div&gt;
&lt;ul class=&#39;gallery float single-item&#39;&gt;&lt;li&gt;
      &lt;input type=&#39;checkbox&#39; id=&#39;item_zUT9_1&#39; /&gt;
      &lt;label for=&#39;item_zUT9_1&#39; aria-label=&#39;Expand image&#39; tabindex=&#39;0&#39;&gt;&lt;span&gt;Past &amp;gt; Future Days&lt;/span&gt;
        &lt;img src=&#39;https://mm-dev.rocks/images/holistik/past-future.png&#39; alt=&#39;Past &amp;gt; Future Days&#39; /&gt;&lt;/label&gt;
    &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;hellip;like an airport queue.&lt;/p&gt;
&lt;p&gt;Earlier days are to the left, later to the right.&lt;/p&gt;
&lt;/div&gt;
&lt;/details&gt;


&lt;details&gt;
&lt;summary&gt;&lt;span&gt;&lt;h4 id=&#34;the-day-you-select-in-days-view-affects-how-the-weeksmonths-are-centred-in-the-other-views&#34;&gt;The day you select in &lt;em&gt;Days View&lt;/em&gt; affects how the weeks/months are centred in the other views&lt;/h4&gt;
&lt;/span&gt;&lt;/summary&gt;

&lt;div&gt;
&lt;ul&gt;
&lt;li&gt;In Days View if you select a &lt;em&gt;Wednesday&lt;/em&gt;, then Weeks View will be centred around &lt;em&gt;Wednesdays&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;In Days View if you select the &lt;em&gt;17th&lt;/em&gt;, then Months View will be centred around the &lt;em&gt;17th&lt;/em&gt; of each month&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/details&gt;


&lt;details&gt;
&lt;summary&gt;&lt;span&gt;&lt;h4 id=&#34;holistik-only-uses-activities-which-have-been-recordedstored-on-your-watch&#34;&gt;Holistik only uses activities which have been recorded/stored on your watch&lt;/h4&gt;
&lt;/span&gt;&lt;/summary&gt;

&lt;div&gt;
&amp;mdash; so not heart rate, steps etc.&lt;/div&gt;
&lt;/details&gt;


&lt;details&gt;
&lt;summary&gt;&lt;span&gt;&lt;h4 id=&#34;holistik-runs-entirely-offline&#34;&gt;Holistik runs entirely offline&lt;/h4&gt;
&lt;/span&gt;&lt;/summary&gt;

&lt;div&gt;
&lt;p&gt;&amp;hellip;using activity data which is already stored on your watch.&lt;/p&gt;
&lt;p&gt;It does not store or send your information anywhere.&lt;/p&gt;
&lt;/div&gt;
&lt;/details&gt;


&lt;/div&gt;

&lt;h2 id=&#34;settings&#34;&gt;Settings&lt;/h2&gt;
&lt;p&gt;Press and hold &lt;em&gt;Menu&lt;/em&gt; while the app is running to change settings:&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;&lt;/th&gt;
          &lt;th&gt;&lt;/th&gt;
          &lt;th&gt;&lt;/th&gt;
          &lt;th&gt;&lt;/th&gt;
          &lt;th&gt;&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;&lt;strong&gt;Theme&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;Light, Warm&lt;/td&gt;
          &lt;td&gt;Dark, Warm&lt;/td&gt;
          &lt;td&gt;Light, Cool&lt;/td&gt;
          &lt;td&gt;Dark, Cool&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;&lt;strong&gt;Font&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;Small&lt;/td&gt;
          &lt;td&gt;Medium&lt;/td&gt;
          &lt;td&gt;Large&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;&lt;strong&gt;Date Format&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;dd/mm&lt;/td&gt;
          &lt;td&gt;mm/dd&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;&lt;strong&gt;Difficulty&lt;/strong&gt; [1]&lt;/td&gt;
          &lt;td&gt;Basic&lt;/td&gt;
          &lt;td&gt;Intermediate&lt;/td&gt;
          &lt;td&gt;Advanced&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;&lt;strong&gt;Duration Display&lt;/strong&gt; [2]&lt;/td&gt;
          &lt;td&gt;Basic&lt;/td&gt;
          &lt;td&gt;Intermediate&lt;/td&gt;
          &lt;td&gt;Advanced&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;&lt;strong&gt;Duration Display&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;Hours and Fractions&lt;/td&gt;
          &lt;td&gt;Minutes&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;&lt;strong&gt;Initial View&lt;/strong&gt; [3]&lt;/td&gt;
          &lt;td&gt;Basic&lt;/td&gt;
          &lt;td&gt;Intermediate&lt;/td&gt;
          &lt;td&gt;Advanced&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;&lt;strong&gt;Duration Display&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;Months&lt;/td&gt;
          &lt;td&gt;Weeks&lt;/td&gt;
          &lt;td&gt;Days&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;&lt;strong&gt;Text Display&lt;/strong&gt; [4]&lt;/td&gt;
          &lt;td&gt;Basic&lt;/td&gt;
          &lt;td&gt;Intermediate&lt;/td&gt;
          &lt;td&gt;Advanced&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;&lt;strong&gt;Duration Display&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;Show Dates&lt;/td&gt;
          &lt;td&gt;Show Activity Details&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;small class=&#34;special&#34;&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;&lt;/th&gt;
          &lt;th&gt;&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;[1] &lt;strong&gt;Difficulty&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;Change according to your fitness level and the calculations will adjust so the coloured days make sense for you&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;[2] &lt;strong&gt;Duration Display&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;Activity durations can be shown in minutes (&amp;lsquo;73mins&amp;rsquo;) or to the nearest fraction of an hour (&amp;lsquo;1 1/4hrs&amp;rsquo;)&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;[3] &lt;strong&gt;Initial View&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;View to display when first opening the app&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;[4] &lt;strong&gt;Text Display&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;If &amp;lsquo;Show Dates&amp;rsquo; is disabled dates will still be shown temporarily while you move backwards and forwards, then disappear after a second or two&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;/small&gt;

&lt;h2 id=&#34;app-permissions&#34;&gt;App Permissions&lt;/h2&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;&lt;/th&gt;
          &lt;th&gt;&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;&lt;strong&gt;User Profile&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;Allows the app to read the activity data before displaying it&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;&lt;strong&gt;Persisted Content&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;Allows the app to store/read your settings detailed above&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
</description>
    </item>
    
  </channel>
</rss>
