<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Tech on Fr-ISO</title>
    <link>https://www.evers-senne.de/categories/tech/</link>
    <description>Recent content in Tech on Fr-ISO</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en</language>
    <managingEditor>blog@evers-senne.de (Friso)</managingEditor>
    <webMaster>blog@evers-senne.de (Friso)</webMaster>
    <lastBuildDate>Sun, 22 Feb 2026 17:26:56 +0200</lastBuildDate>
    
        <atom:link href="https://www.evers-senne.de/categories/tech/index.xml" rel="self" type="application/rss+xml" />
    
    
    <item>
      <title>Notes and Knowledgebase</title>
      <link>https://www.evers-senne.de/post/tech/notes-and-knowledgebase/</link>
      <pubDate>Sun, 22 Feb 2026 17:26:56 +0200</pubDate>
      <author>blog@evers-senne.de (Friso)</author>
      <guid>https://www.evers-senne.de/post/tech/notes-and-knowledgebase/</guid>
      
        <description>&lt;h2 id=&#34;before-2023-and-why-change-that&#34;&gt;Before 2023 and why change that&lt;/h2&gt;
&lt;p&gt;Before 2023 I uses Microsoft OneNote to manage my notes and my &lt;em&gt;knowledge base&lt;/em&gt; and structured it with groups and pages. It was easy to use, but there were features I did not use like handwriting or putting content in boxes anywhere on the canvas of a page. Links between pages were rare at that time. Switching between devices with OneNote-Apps and the web resulted in collisions every now and then and it was kind of impossible to resolve or better to not create.
Then I saw Obsidian on the screen of a friend, and immediately like the idea of Markdown files as open standard and tool agnostic. I did some experiments with Obsidian and a WebDav-plugin to synchronize to my own Nextcloud, but observed that this produces collisions again and I did not want to store my business notes on my private Nextcloud.
Parallel to the technical details I read about Zettelkasten and started to create links between Notes. And OneNote can do that, but changing names of pages or rearrange the structure always renders the links useless. The original Zettelkasten-Linking by manually assigned IDs seems outdated today. So EOL for my OneNote usage.&lt;/p&gt;
&lt;h2 id=&#34;new-setup-from-summer-2023&#34;&gt;New Setup from Summer 2023&lt;/h2&gt;
&lt;p&gt;As a former developer, linux user and Open Source fan, I finally decided for VS Code and some markdown extensions. Synchronization via our company Gitlab was a no-brainer. So I created the new knowledge base and notes by:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Export OneNote pages as Word Documents in DOCX or the like.&lt;/li&gt;
&lt;li&gt;Use Pandoc to convert DOCX files to MD in quick batch (bash) job.&lt;/li&gt;
&lt;li&gt;check in first baseline and start to polish and refactor the notes.&lt;/li&gt;
&lt;li&gt;Link them with &lt;code&gt;[[filename]]&lt;/code&gt; and let the extension repair links when moving or renaming files.
Looks like the base for a Zettelkasten, only adding an Inbox.md for daily fast ingestion to be sorted later.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;A few weeks later I learned about the PARA structure and it seems totally obvious that this scheme would ease the decisions where to put files and where to find them again. So I gave it a try and introduced the outer structure as folder:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Projects&lt;/li&gt;
&lt;li&gt;Areas of responsibility (accountable)&lt;/li&gt;
&lt;li&gt;Resources&lt;/li&gt;
&lt;li&gt;Archive&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In level 2, I created folders for topics like &lt;code&gt;Sofware 1&lt;/code&gt;, &lt;code&gt;Team&lt;/code&gt;, &lt;code&gt;Security&lt;/code&gt; and of course most topics are in all PARAM top-level folders.
Having also many office documents in my OneDrive, I also applied the PARA system there and replicated the complete directory structure from my Zettelkasten/Git world. But mixing Markdown with Git office documents with OneDrivs (sync) seems so scary to me that a hesitated to do that.&lt;/p&gt;
&lt;h2 id=&#34;extensions-and-common-workflows&#34;&gt;Extensions and common workflows&lt;/h2&gt;
&lt;p&gt;There are many Markdown relate VS-Code extensions, after some try-and-error, this selection survived for 2 years:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Enhanced markdown preview&lt;/li&gt;
&lt;li&gt;Markdown Memo&lt;/li&gt;
&lt;li&gt;Markdown Checkboxes&lt;/li&gt;
&lt;li&gt;Todo-Tree,&lt;/li&gt;
&lt;li&gt;Print (to render in browser, share easily in Teams meetings, export as PDFs)&lt;/li&gt;
&lt;li&gt;Git (of course)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;When choosing filenames I always try to use compact but descriptive ones and thus I always had the whish to open files which I remember parts of the name very easily. VS-Code provides &amp;lsquo;Ctrl-P&amp;rsquo; for exactly that, great! That command evolved to my most often used way to open a file (90 % for sure). I do not exploit any Zettelkasten or PARA structure, but it fits to my personal &amp;ldquo;associative memory&amp;rdquo; (brain).
Adding a macro (short text) to expand &lt;code&gt;date&lt;/code&gt;to the ISO formatted date of today allows me to create new entries with heading like &lt;code&gt;## 2026-01-24 Alignment with Peter&lt;/code&gt; very fast.&lt;/p&gt;
&lt;h2 id=&#34;mobile-usage&#34;&gt;Mobile usage&lt;/h2&gt;
&lt;p&gt;There is no VS-Code for my iPad or my Android phone, so it needs a different tool chain there, but git and MD are well established. I use it for personal as well as for business by having dedicated git repos for each (on different git servers, of course).&lt;/p&gt;
&lt;h3 id=&#34;ipad&#34;&gt;iPad&lt;/h3&gt;
&lt;p&gt;Obsidian as editor on the iPad serves very well. These lines are written with that. There is one non-free git app for iOS, but how to work with git in an open source fashion? Then there came &lt;code&gt;ish&lt;/code&gt; along! A Linux shell being able to mount directories on iPad. So easy: Run ish, install git, mount obsidian directory, git clone, done! Even the VPN connection to my company was transparent as expected. One small issue was, that ish has two filesystem options to use: ios and ios-unsafe. With ios, the git commands get stuck, only ios-unsafe works well.&lt;/p&gt;
&lt;h3 id=&#34;android&#34;&gt;Android&lt;/h3&gt;
&lt;p&gt;It took until early 2025 to discover &lt;code&gt;zettelnotes&lt;/code&gt;, an Android app for note taking based in markdown and being able to directly sync with git repos. Extremely useful for short notes of ideas. Works like a charm, no head-aches or scary tooling needed around.&lt;/p&gt;
&lt;h2 id=&#34;todos-revisited&#34;&gt;Todos revisited&lt;/h2&gt;
&lt;p&gt;Until mid of 2025 I used Microsoft TODO to manage my personal tasks, but always had many &lt;code&gt;- []&lt;/code&gt; markdown tasks in my notes. So at that point in time I strived to fuse the task management escaping from the next Microsoft app.
The Todo-Tree extension in VS Code is very powerful and I combined it with a few macros:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Defining TODO status : WIP, PRI, WAI, NOR, LON (Work in Progress, Priority, Waiting for other, Normal, Longterm).&lt;/li&gt;
&lt;li&gt;Configure Todo-Tree to identify &lt;code&gt;- [WIP] blah blah&lt;/code&gt; as a task of status WIP and same for the other status&lt;/li&gt;
&lt;li&gt;Not using &lt;code&gt;- [x]&lt;/code&gt; for closed tasks at all there was no need for a change from &lt;code&gt;- [WIP]&lt;/code&gt; to done, I just remove the lines when a task is done. Git has the history.&lt;/li&gt;
&lt;li&gt;Assigning colors and an order to rank todos like above.&lt;/li&gt;
&lt;li&gt;Defining macros to create a new task just based on the three letter status &lt;code&gt;WIP&lt;/code&gt; -&amp;gt; &lt;code&gt;- [WIP] &lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Status changes are done manually.&lt;/li&gt;
&lt;li&gt;Optional: defining scope filters to reduce the displayed tasks to subsets.
WIth that setup I can write my todos in the files and context they belong to, and Todo-Tree renders a neat list with many options to display.
That serve me well since autumn 2025.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;para-transposed&#34;&gt;PARA transposed&lt;/h2&gt;
&lt;p&gt;The combination of PARA and interlinking like Zettelkasten serves well for me until late in 2025.
Having Git as a backend I never lost a line of notes. If a collision happens, I can resolve it precisely. And yes, even due to the fact that I am the only user of my knowledge base, I create collision by forgetting to commit and push on one of my devices.&lt;/p&gt;
&lt;p&gt;Having the four-folder PARA as top level structure started to bother me first in the beginning of 2025. I decided to evict the archived files into a different git repo &lt;code&gt;zettelarchive&lt;/code&gt;, because &lt;code&gt;Ctrl-P&lt;/code&gt; always suggested filenames from the archive. So PARA reduced to &lt;em&gt;PAR&lt;/em&gt;.
In my OneDrive, I always had the challenge to decide between Project (P) and Area of Responsibility (A). The strict definition of a project to end some day did not hold and I did not move files between these fast enough to reflect changes in priority. In both (P) and (A) I had identical subfolder for my topics to manage, that ambiguity was never solved.
In the beginning of 2026 I decided to transpose the structure:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Top level is now topic/theme/project, e.g. &lt;code&gt;Software1&lt;/code&gt;, &lt;code&gt;Security&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Second level &lt;code&gt;Active&lt;/code&gt; is a fused (P) and (A)&lt;/li&gt;
&lt;li&gt;Second level &lt;code&gt;Passive&lt;/code&gt; is the old (R) Resources&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If I would have to chose an acronym, it could be T/AP: &lt;code&gt;[Topic]/{Active|Passive}&lt;/code&gt;. Good enough for now, safe enough to try. And of course I also applied that scheme to my OneDrive, replicating the exact folder structure.&lt;/p&gt;
&lt;h2 id=&#34;onedrive-sync&#34;&gt;OneDrive sync&lt;/h2&gt;
&lt;p&gt;After an experiment to use &lt;code&gt;rclone bisync ...&lt;/code&gt; to sync my OneDrive side-by-side with my zettelkasten, I overcome my hesitation and start to really mix both worlds.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Based on the identical folder structure, it should match.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;rclone&lt;/code&gt; is limited to sync only a handful of top-level folders, not all Microsoft invented directories I never use.&lt;/li&gt;
&lt;li&gt;Git has extensive entries in &lt;code&gt;.gitignore&lt;/code&gt; to not feel responsible for all the office files.&lt;/li&gt;
&lt;li&gt;Markdown is included in bisync and send to OneDrive so it can be shared with other file by file.&lt;/li&gt;
&lt;li&gt;Markdown in OneDrive should not be modified, or at least should not be modified on both sides. I would like to avoid mergen with rclone.&lt;/li&gt;
&lt;/ul&gt;
</description>
      
    </item>
    
    <item>
      <title>Gps Tracks @ home</title>
      <link>https://www.evers-senne.de/post/tech/gps-tracks/</link>
      <pubDate>Sun, 13 Apr 2025 17:26:56 +0200</pubDate>
      <author>blog@evers-senne.de (Friso)</author>
      <guid>https://www.evers-senne.de/post/tech/gps-tracks/</guid>
      
        <description>&lt;h2 id=&#34;sources&#34;&gt;Sources&lt;/h2&gt;
&lt;p&gt;Using Garmin devices to record my outdoor activities, all tracks are send to Garmin-cloud via the app GarminConnect automatically. This is very convenient and cloud-to-cloud connections forward the tracks to Strava and Komoot.
Long before the Bluetooth-Cloud-Automagic-era I already used a Garmin Edge 710  with USB connectivity only. As a Linux user I read out the  TCX files from the mass storage, stored it locally and sent it to Garmin years later for completeness.&lt;/p&gt;
&lt;h2 id=&#34;archiving-at-home&#34;&gt;Archiving at home&lt;/h2&gt;
&lt;p&gt;But I cannot accept Garmin as a long-term archive for all data of highly personal value. My track archive dates back until 2008 and I do not wont to loose it some day just because a company goes out of business or the like.
So digging in the web I found a script to download activities from Garmin as GPX files. For many years this helped me to just download and sync to my own Nextcloud.
The smart watches also can record health data and the &lt;em&gt;Body Battery&lt;/em&gt; is one of the highlights for me. So the next logical step was to also archive these data at home.
The library &lt;a href=&#34;https://github.com/cyberjunky/python-garminconnect&#34;&gt;python-garminconnect&lt;/a&gt; offers a complete API to Garmin cloud and to store time series data, InfluxDB seems to be a good choice.
So a few lines of glue code later, a new script was born to&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Download health data and send to my local InfluxDB,&lt;/li&gt;
&lt;li&gt;Download activities, save as local GPX files and let Nextcloud client sync to my self-hosted Nextcloud.&lt;/li&gt;
&lt;li&gt;A decent backup strategy (3-2-1) shall help to not loose data.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;visualizing-1&#34;&gt;Visualizing #1&lt;/h2&gt;
&lt;p&gt;Nextcloud&amp;rsquo;s plugin &lt;em&gt;Gpxpod&lt;/em&gt; can scan directories and visualize all GPX/TCX files on a map. Because all geo data was already synced to Nextcloud, this was a no-brainer and worked very well for many years.
But when the plugin architecture changes, it seems that all geo-filtering was done in the frontend (the browser) and in my setup this totally crashed. Selecting a directory with only hundreds of tracks results in too many of track points. Sending these to the browser need time and bandwidth, filtering for the current viewport of the map in the browser needs memory and CPU. So my browser tab gets stuck and then crashed.&lt;/p&gt;
&lt;h2 id=&#34;visualizing-2&#34;&gt;Visualizing #2&lt;/h2&gt;
&lt;p&gt;Recently I stumbled upon &lt;a href=&#34;https://github.com/Freika/dawarich&#34;&gt;Dawarich&lt;/a&gt; (German for &amp;ldquo;I was there&amp;rdquo;). May that solve my geo-visualization problem?
20 Minutes later I had the Postgres, Dawarich and the Sidekick container up and running (Redis was already available) and imported the first tracks. The visualization and filters are really great. But with a million points it ran into the same problem, maybe in the backend but with the result of being unusable.&lt;/p&gt;
&lt;h2 id=&#34;data-filtering-and-simplification&#34;&gt;Data filtering and simplification&lt;/h2&gt;
&lt;p&gt;So it seems I have to work on the data. First approach was, to separate files in directories based on their area. Reason: There are far more files from my home region than from other regions e.g. vacation trips.
But the later are more interesting. So I added a geo-filter to my script from above:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;taking the first track point of each file and compare to predefined geo-bounding boxes,&lt;/li&gt;
&lt;li&gt;put all tracks from &amp;ldquo;home&amp;rdquo; into a directory,&lt;/li&gt;
&lt;li&gt;put all tracks from &amp;ldquo;fomer home&amp;rdquo; into a second directory,&lt;/li&gt;
&lt;li&gt;Put all other tracks in a third directory.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For Nextcloud / Gpxpod this helped to focus on other regions, but rendering was still very slow. My home region was still to large in number of files / track points.&lt;/p&gt;
&lt;p&gt;Next step: Sub-sampling. The original tracks have a sampling rate of 1 to a few seconds, resulting in very precise recordings. But for coarse visualization this is not required. Fiddling with &lt;em&gt;gpsbabel&lt;/em&gt; on the commandline I decided that filtering according to a cross track error of 10 meters (&amp;quot;-x simplify, crosstrack,error=0.01k&amp;quot;) reduces the number of track points to 5 % and only very sharp turns get distorted. The visual quality in Dawarich and Gpxpod is totally sufficient.&lt;/p&gt;
&lt;p&gt;To add this step to my sync script I chose the lazy way: Just calling for gpsbabel as an external command.&lt;/p&gt;
&lt;h2 id=&#34;summary&#34;&gt;Summary&lt;/h2&gt;
&lt;p&gt;Getting all data from Garmin semi-automatically (start the script), filtering tracks geographically by bounding boxes and simplifying to 5 % of data is required to visualize &amp;gt;2000 tracks in Gpxpod and Dawarich. But the result is great: I can see all my activities, even those in my home region interactively on a single map!&lt;/p&gt;
</description>
      
    </item>
    
  </channel>
</rss>
