<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Braindump</title>
    <link>https://moxnet.eu/braindump/</link>
    <description></description>
    <pubDate>Thu, 22 Oct 2026 20:56:29 +0000</pubDate>
    <item>
      <title>Evolution of my homelab</title>
      <link>https://moxnet.eu/braindump/evolution-of-my-homelab</link>
      <description>&lt;![CDATA[#homelab #selfhosting&#xA;&#xA;One of my big interests is self-hosting. The actual implementation of the homelab changes and evolves over the years, but since I started 15 years ago, I never thought about dropping it. I have diverse reasons for that, but privacy and control over our family data remain the most prominent ones.&#xA;&#xA;!--more--&#xA;&#xA;moxnet is born&#xA;&#xA;In the beginning, there was a Synology NAS where the family photos were stored. We just got kids, and needed some safe storage for baby pics. I, on the other hand, simply wanted something that worked. So buying an off-the-shelf NAS and attaching it to the router was the easiest solution.&#xA;Then we moved into the new apartment where we had roller shutters with electric motors, but still had to go around every evening and morning to close or open them. Of course, after some time, my engineer side started looking for options to automate this task. I figured out that I could install some Z-Wave relays behind the switches and use Domoticz to switch them at sunset and sunrise. Because it was not possible to run this on the NAS, I got a Raspberry Pi 2B, which ran Domoticz for multiple years without problems.&#xA;Next, we formulated the use case as &#34;We want to watch the baby photos and videos on the TV.&#34; So a Raspberry Pi 3 with LibreELEC was added to the mix. About this time, I started referring to my home lab as moxnet. The name is based on my youth nickname Mox. This setup that I ran until 2020 could be called moxnet v0.1.&#xA;&#xA;  My name is Kemal, short form is Kemo. If you apply Šatrovački to that you get Moke. To make it more modern, my friends started calling me Mox 🙂.&#xA;&#xA;Organic growth&#xA;&#xA;Over the years, I grew tired of updating multiple devices. During Covid, I got some time on my hands to consolidate everything, so I bought a NUC and installed Debian on it. Then I degraded the NAS to a simple storage appliance as after 8 years it was getting too slow. Services were moved to the NUC. At the end, I had extended the homelab with Nextcloud, PiHole, Domoticz, and OpenVPN. This really felt like coming back home because I was administrating a Linux server again. That was actually my first job as a System Administrator in the university library in Banja Luka (BiH). Also, Kodi got replaced by Volumio on a RPi 3 where I added a HiFiBerry for better audio output.&#xA;&#xA;My smarthome started to grow organically. I was not only attaching Z-Wave devices as in the beginning but adding WIFI devices with Tasmota, Zigbee lights, and Vacuum Cleaner with Valetudo. I needed something more flexible than Domoticz, which had problems catching up with all the new devices. So I decided to migrate to Homeassistant, for the first time introducing a Docker container in my homelab. Around the same time, I also installed Writefreely, to serve this blog. With this, I reached moxnet v1.0.&#xA;&#xA;One simple &#34;yes&#34; brought it all down&#xA;&#xA;Then this summer came, and I thought it makes sense to update the base server to Debian 13. I did the steps to update everything... but everything broke down 😖. The problem was not Debian, it was the dependency hell I landed in as Nextcloud needed to be updated as well, then this clashed with the installed PHP version. Zigbee stick started loosing connection... so after a couple of days of implementing workarounds, I decided it&#39;s time to start over.&#xA;&#xA;The idea was to do a fresh base install of Debian 13 and rebuild everything using Docker in order to isolate dependencies. Getting stuff up initially wasn&#39;t that intensive, but stabilizing everything took longer than expected.&#xA;Architecture is now cleaner, and I think I am done with it for the next 5 years. Long live moxnet v2.0 🥳.&#xA;&#xA;Internet&#xA;   │&#xA;Pi-hole + WireGuard&#xA;   │&#xA;Debian NUC&#xA;   ├─ Caddy (public access)&#xA;   ├─ Fail2ban (security)&#xA;   └─ Docker&#xA;       ├─ Nextcloud&#xA;       ├─ WriteFreely&#xA;       ├─ Immich&#xA;       ├─ Jellyfin&#xA;       ├─ KitchenOwl&#xA;       ├─ FreshRSS&#xA;       └─ Home Assistant&#xA;   │&#xA;DAS RAID1 (storage)&#xA;   │&#xA;Monit + mdadm (monitoring)&#xA;   │&#xA;Borgmatic&#xA;   ├─ Synology&#xA;   └─ Hetzner&#xA;&#xA;Keep on hacking!]]&gt;</description>
      <content:encoded><![CDATA[<p><a href="/braindump/tag:homelab" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">homelab</span></a> <a href="/braindump/tag:selfhosting" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">selfhosting</span></a></p>

<p>One of my big interests is self-hosting. The actual implementation of the homelab changes and evolves over the years, but since I started 15 years ago, I never thought about dropping it. I have diverse reasons for that, but privacy and control over our family data remain the most prominent ones.</p>



<h2 id="moxnet-is-born">moxnet is born</h2>

<p>In the beginning, there was a Synology NAS where the family photos were stored. We just got kids, and needed some safe storage for baby pics. I, on the other hand, simply wanted something that worked. So buying an off-the-shelf NAS and attaching it to the router was the easiest solution.
Then we moved into the new apartment where we had roller shutters with electric motors, but still had to go around every evening and morning to close or open them. Of course, after some time, my engineer side started looking for options to automate this task. I figured out that I could install some Z-Wave relays behind the switches and use Domoticz to switch them at sunset and sunrise. Because it was not possible to run this on the NAS, I got a Raspberry Pi 2B, which ran Domoticz for multiple years without problems.
Next, we formulated the use case as “We want to watch the baby photos and videos on the TV.” So a Raspberry Pi 3 with LibreELEC was added to the mix. About this time, I started referring to my home lab as <code>moxnet</code>. The name is based on my youth nickname Mox. This setup that I ran until 2020 could be called <code>moxnet v0.1</code>.</p>

<blockquote><p>My name is Kemal, short form is Kemo. If you apply <a href="https://en.wikipedia.org/wiki/%C5%A0atrova%C4%8Dki" rel="nofollow">Šatrovački</a> to that you get Moke. To make it more modern, my friends started calling me Mox 🙂.</p></blockquote>

<h2 id="organic-growth">Organic growth</h2>

<p>Over the years, I grew tired of updating multiple devices. During Covid, I got some time on my hands to consolidate everything, so I bought a NUC and installed Debian on it. Then I degraded the NAS to a simple storage appliance as after 8 years it was getting too slow. Services were moved to the NUC. At the end, I had extended the homelab with Nextcloud, PiHole, Domoticz, and OpenVPN. This really felt like coming back home because I was administrating a Linux server again. That was actually my first job as a System Administrator in the university library in Banja Luka (BiH). Also, Kodi got replaced by Volumio on a RPi 3 where I added a HiFiBerry for better audio output.</p>

<p>My smarthome started to grow organically. I was not only attaching Z-Wave devices as in the beginning but adding WIFI devices with Tasmota, Zigbee lights, and Vacuum Cleaner with Valetudo. I needed something more flexible than Domoticz, which had problems catching up with all the new devices. So I decided to migrate to Homeassistant, for the first time introducing a Docker container in my homelab. Around the same time, I also installed Writefreely, to serve this blog. With this, I reached <code>moxnet v1.0</code>.</p>

<h2 id="one-simple-yes-brought-it-all-down">One simple “yes” brought it all down</h2>

<p>Then this summer came, and I thought it makes sense to update the base server to Debian 13. I did the steps to update everything... but everything broke down 😖. The problem was not Debian, it was the dependency hell I landed in as Nextcloud needed to be updated as well, then this clashed with the installed PHP version. Zigbee stick started loosing connection... so after a couple of days of implementing workarounds, I decided it&#39;s time to start over.</p>

<p>The idea was to do a fresh base install of Debian 13 and rebuild everything using Docker in order to isolate dependencies. Getting stuff up initially wasn&#39;t that intensive, but stabilizing everything took longer than expected.
Architecture is now cleaner, and I think I am done with it for the next 5 years. Long live <code>moxnet v2.0</code> 🥳.</p>

<pre><code>Internet
   │
Pi-hole + WireGuard
   │
Debian NUC
   ├─ Caddy (public access)
   ├─ Fail2ban (security)
   └─ Docker
       ├─ Nextcloud
       ├─ WriteFreely
       ├─ Immich
       ├─ Jellyfin
       ├─ KitchenOwl
       ├─ FreshRSS
       └─ Home Assistant
   │
DAS RAID1 (storage)
   │
Monit + mdadm (monitoring)
   │
Borgmatic
   ├─ Synology
   └─ Hetzner
</code></pre>

<p>Keep on hacking!</p>
]]></content:encoded>
      <guid>https://moxnet.eu/braindump/evolution-of-my-homelab</guid>
      <pubDate>Wed, 07 Oct 2026 11:39:10 +0000</pubDate>
    </item>
    <item>
      <title>Brainiac v3.0 released</title>
      <link>https://moxnet.eu/braindump/brainiac-v3-0-released</link>
      <description>&lt;![CDATA[#brainiac #emacs #productivity #system&#xA;&#xA;Dear All,&#xA;&#xA;It&#39;s time to release a new version of Brainiac.&#xA;&#xA;These are the highlights of the release:&#xA;&#xA;ollama-pal, which is based on the mini version of ollama-buddy, implements everything I deem necessary for &#34;chatting with your documents&#34;. You can find detaills on the implementation here, but the major additions are:&#xA;  Multilingual RAG pipeline (including OCR garbage detection) backed by a reasoning model of your choice. This performs very well even with small reasoning models that can run on CPU only.&#xA;  Deep Research Mode that expands queries and context before reasoning, increasing the relevant context that the model gets. But this takes longer time to process, although I still find it acceptable with the default qwen models.&#xA;  Deep Search through all your notes, documents, and images. This works wonders, when you have a lot of screenshots and other types of documents, that are not pure text. As the information is extracted and then stored as chunks in the chromadb, we can do a sort of semantic search, when the classical keyword search produces no results.&#xA;  Other additions are multi-session support, switch system prompts etc.&#xA;&#xA;I also added br-abbrev-picker for AI prompts, templates, etc., integrated with abbrev-mode. This makes it very easy to pick reusable prompts you defined by yourself.&#xA;&#xA;Most of the improvements have been implemented using AI coding agents. It was fun playing with them, experimenting with this new way of working and basically implementing things, which I would never do due to my low-level coding skills.&#xA;&#xA;Get the release here.&#xA;&#xA;Keep on hacking!]]&gt;</description>
      <content:encoded><![CDATA[<p><a href="/braindump/tag:brainiac" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">brainiac</span></a> <a href="/braindump/tag:emacs" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">emacs</span></a> <a href="/braindump/tag:productivity" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">productivity</span></a> <a href="/braindump/tag:system" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">system</span></a></p>

<p>Dear All,</p>

<p>It&#39;s time to release a new version of Brainiac.</p>

<p>These are the highlights of the release:</p>
<ul><li><p><code>ollama-pal</code>, which is based on the mini version of <code>ollama-buddy</code>, implements everything I deem necessary for “chatting with your documents”. You can find detaills on the implementation <a href="https://codeberg.org/kemal/brainiac/src/branch/main/config/ollama-pal" rel="nofollow">here</a>, but the major additions are:</p>
<ul><li>Multilingual RAG pipeline (including OCR garbage detection) backed by a reasoning model of your choice. This performs very well even with small reasoning models that can run on CPU only.</li>
<li>Deep Research Mode that expands queries and context before reasoning, increasing the relevant context that the model gets. But this takes longer time to process, although I still find it acceptable with the default qwen models.</li>
<li>Deep Search through all your notes, documents, and images. This works wonders, when you have a lot of screenshots and other types of documents, that are not pure text. As the information is extracted and then stored as chunks in the <code>chromadb</code>, we can do a sort of semantic search, when the classical keyword search produces no results.</li>
<li>Other additions are multi-session support, switch system prompts etc.</li></ul></li>

<li><p>I also added <code>br-abbrev-picker</code> for AI prompts, templates, etc., integrated with <code>abbrev-mode</code>. This makes it very easy to pick reusable prompts you defined by yourself.</p></li></ul>

<p>Most of the improvements have been implemented using AI coding agents. It was fun playing with them, experimenting with this new way of working and basically implementing things, which I would never do due to my low-level coding skills.</p>

<p>Get the release <a href="https://codeberg.org/kemal/brainiac/releases/tag/v3.0" rel="nofollow">here</a>.</p>

<p>Keep on hacking!</p>
]]></content:encoded>
      <guid>https://moxnet.eu/braindump/brainiac-v3-0-released</guid>
      <pubDate>Tue, 22 Sep 2026 15:21:07 +0000</pubDate>
    </item>
    <item>
      <title>Stay in touch with the Techie inside you</title>
      <link>https://moxnet.eu/braindump/stay-in-touch-with-the-techie-inside-you</link>
      <description>&lt;![CDATA[#leadership #learning #reflection&#xA;&#xA;During my last vacation I got some unexpected problems in my home lab.&#xA;The setup, powered by Debian 11, ran the services my family needs reliably for the last 5 years. But it suddenly started having problems, because something got messed up during a PHP update. Short look in the logs didn&#39;t surface anything, so while I was on vacation I had to restart the server every 2 days, in order to bring it back to the functional state.&#xA;After I came back home, I invested multiple hours trying to figure out the root cause. It was really trial and error, because I couldn&#39;t pin it down. So after some time I decided to shut the services down, and rebuild everything from scratch using Docker. It took me shorter than expected to bring the services up again, but longer than I thought, to stabilize them 🙂.&#xA;&#xA;So was the invested time worth it? I believe it was, and it brought me more than just a self-hosted setup that respects the privacy rules I want to enforce for family pictures, calendars etc.&#xA;&#xA;!--more--&#xA;&#xA;Build to gain understanding&#xA;&#xA;We all know that tech is moving at the speed of light. We try to stay informed about the latest developments, in order to be able to do our jobs properly. So we follow numerous blogs, social media accounts, podcasts etc.&#xA;But being informed is just one part of the equation. Trying stuff by yourself, building something, helps to gain deeper understanding of the technology.&#xA;It also keeps your problem solving skills sharp, and this is very important in an age where AI provides solutions on a mouse click and our own skills are being used less and less every day.&#xA;&#xA;Understanding as competitive edge&#xA;&#xA;The most influential tech companies today, are led by people who created them as startups. These people managed to grow into their manager (CEO, CTO, ...) roles, while retaining their technical expertise. IMHO this, among other things, gives them the competitive edge over big corporations, where over the past decades the tasks of managers were reduced to tracking budgets, attending meetings, creating presentations, doing performance reviews etc. Not that these things are not important, but all of them can be done also by managers that were not engineers to start with.&#xA;If you want to keep your own (engineering) competitive edge, start building stuff by yourself.&#xA;&#xA;Avoid the context switch&#xA;&#xA;In order to keep on learning technical stuff, you do not have to e.g. build your own smart home using Home Assistant in your free time. You can keep your engineering skills fresh, by doing code reviews, analyze failed tests, etc. during your work time. But take care, these are dangerous waters.&#xA;Most of us engineers tend to be fascinated with technical problems, so we spend most of our carriers learning new tech. It takes us time, to accept that leadership skills also need to be learned, if we want to advance ourselves. It is easy, to fall back into the engineer role, because this is fun and interesting. But your team needs you as a leader, there are already engineers in the team. And of course, switching roles means also context switching, not a lot of people can jump from one task to the next, without the mental cost.&#xA;&#xA;What is your opinion about it? I would like to hear about it.]]&gt;</description>
      <content:encoded><![CDATA[<p><a href="/braindump/tag:leadership" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">leadership</span></a> <a href="/braindump/tag:learning" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">learning</span></a> <a href="/braindump/tag:reflection" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">reflection</span></a></p>

<p>During my last vacation I got some unexpected problems in my home lab.
The setup, powered by Debian 11, ran the services my family needs reliably for the last 5 years. But it suddenly started having problems, because something got messed up during a PHP update. Short look in the logs didn&#39;t surface anything, so while I was on vacation I had to restart the server every 2 days, in order to bring it back to the functional state.
After I came back home, I invested multiple hours trying to figure out the root cause. It was really trial and error, because I couldn&#39;t pin it down. So after some time I decided to shut the services down, and rebuild everything from scratch using Docker. It took me shorter than expected to bring the services up again, but longer than I thought, to stabilize them 🙂.</p>

<p>So was the invested time worth it? I believe it was, and it brought me more than just a self-hosted setup that respects the privacy rules I want to enforce for family pictures, calendars etc.</p>



<h2 id="build-to-gain-understanding">Build to gain understanding</h2>

<p>We all know that tech is moving at the speed of light. We try to stay informed about the latest developments, in order to be able to do our jobs properly. So we follow numerous blogs, social media accounts, podcasts etc.
But being informed is just one part of the equation. Trying stuff by yourself, building something, helps to gain deeper understanding of the technology.
It also keeps your problem solving skills sharp, and this is very important in an age where AI provides solutions on a mouse click and our own skills are being used less and less every day.</p>

<h2 id="understanding-as-competitive-edge">Understanding as competitive edge</h2>

<p>The most influential tech companies today, are led by people who created them as startups. These people managed to grow into their manager (CEO, CTO, ...) roles, while retaining their technical expertise. IMHO this, among other things, gives them the competitive edge over big corporations, where over the past decades the tasks of managers were reduced to tracking budgets, attending meetings, creating presentations, doing performance reviews etc. Not that these things are not important, but all of them can be done also by managers that were not engineers to start with.
If you want to keep your own (engineering) competitive edge, start building stuff by yourself.</p>

<h2 id="avoid-the-context-switch">Avoid the context switch</h2>

<p>In order to keep on learning technical stuff, you do not have to e.g. build your own smart home using Home Assistant in your free time. You can keep your engineering skills fresh, by doing code reviews, analyze failed tests, etc. during your work time. But take care, these are dangerous waters.
Most of us engineers tend to be fascinated with technical problems, so we spend most of our carriers learning new tech. It takes us time, to accept that leadership skills also need to be learned, if we want to advance ourselves. It is easy, to fall back into the engineer role, because this is fun and interesting. But your team needs you as a leader, there are already engineers in the team. And of course, switching roles means also context switching, not a lot of people can jump from one task to the next, without the mental cost.</p>

<p>What is your opinion about it? I would like to hear about it.</p>
]]></content:encoded>
      <guid>https://moxnet.eu/braindump/stay-in-touch-with-the-techie-inside-you</guid>
      <pubDate>Thu, 17 Sep 2026 15:33:37 +0000</pubDate>
    </item>
    <item>
      <title>Navigating Between Heads and Hearts in Leadership</title>
      <link>https://moxnet.eu/braindump/navigating-between-heads-and-hearts-in-leadership</link>
      <description>&lt;![CDATA[#leadership #communication #growth&#xA;&#xA;Recently, I read a post from Edward O&#39;Brien where he was writing about his personality profile, and how it has influenced his career.&#xA;I commented on his post, but want to expand here a little bit more on my own experiences.&#xA;&#xA;!--more--&#xA;&#xA;The  &#34;Colors&#34; theory is not a gang sort of thing, but a great way to get a concrete description of your personality, understand how your behavior effects others and improve your communication and cooperation skills. Of course there are also other assessments, and they all have their strengths and weaknesses, but this is the one that, at least for me, was easy to understand and also to explain to others.&#xA;I got a recommendation to do it about 12 years ago, after a not-so-positive leadership review I received. That feedback, and this assessment, sent me down a long reflection road that at the end led to biggest breakthroughs in my personal development.&#xA;&#xA;Where is your team?&#xA;&#xA;As a young professional, I joined Mercedes-Benz AG in 2009, and was tasked with building up test management and preparing a test strategy for a car system that would have to comply with ISO 26262-orientedandsafety-oriented_analysis) when it becomes a certification precondition. I tackled the task very intensively, as I had already two years of test engineer experience and was eager to reach the next step in my career. After about two years of hard work, I had an internally assessed test strategy that was aligned with ISO 26262, and a working test management on the system level. This success brought me a good performance review from my management, and as it usually goes, I got tasked with something even harder, although I didn&#39;t recognize this at the time. The next task was to extend the test strategy to also include component-level analysis and then align it with all the component responsible and their suppliers. In order to give me the attention I needed, I actually got a slot in the management meeting every second Friday, where I could present my progress. So everything was setup, to deliver great results and get, the ever so needed, visibility for my work.&#xA;&#xA;I did then what I always did. I dug into the topic, worked out a very good technical solution, and invited component-responsible people for regular connects to present them the solution and then push them until completion. I presented, pushed, explained, escalated in those management syncs when there was no progress... and after a year or so of fighting, we reached our first successful SOP.&#xA;Now I was really looking forward to my next performance review. And the review started very well, as I was commended for reaching the goals and given a good raise. But then I asked about my leadership performance ... and got a feedback that was very short and to the point: &#34;You have reached the goals, but at the finishing line, you were the only one there. Where is your team?&#34;&#xA;&#xA;At first, I didn&#39;t understand the feedback because results had been delivered; therefore, I had proven my worth, right? The team performed and delivered, so what&#39;s the problem then? The issue was that the project team would not do me. They had delivered but reported to their line management that they felt uninvolved, pressured, and burned. This hit me hard, as I actually thought that everything I did took them with me. But it seems, it came out the wrong way, and I was stunned by what went wrong.&#xA;&#xA;Paper Mind Model, an addition to the Colors&#xA;&#xA;It was clear that I needed to take people with me, and as I wrote, I was convinced that I was sending out that message all the time in our meetings. But why did the receivers get something completely different? And on which level did I not engage with the people who had different levels of technical expertise?&#xA;&#xA;Finding out through the assessment that I am mostly Red and Blue offered an explanation for why I lost colleagues with Yellow and Green shades. The fact that my German was colored with a strong Eastern European accent seemed to be enough to push others away, as I was perceived as someone very strict and military-like.&#xA;&#xA;But still there was the problem of engaging people on the right technical and abstraction level, in order to help them understand the goals and thus enable their active contribution without feeling overruled or uninvolved.&#xA;I figured out that my pace was too fast. For some time I thought I lost people because they were not technically skilled enough. But that wasn&#39;t the reason. We all need different levels of abstraction to grasp ideas, and have different processing speeds to understand them. Having a higher processing speed doesn&#39;t mean you will deliver better results; it only means you can deliver first results faster, which says little about the quality of those same results. In my experience, processing speed can get higher as we gather technical and life experience, but this change is not so drastic. So I stopped making an assumption that if I am in a room with people who have a lot of technical experience, then very high levels of abstraction are sufficient. And vice versa, that juniors need detailed instruction lists to deliver results. Instead, I developed a mind model for myself that I like to call &#39;Paper Mind Model&#39;.&#xA;&#xA;In this mind model, I imagine a sheet of empty paper and ask myself how many lines of text on that sheet will the person in front of me need to understand what I am talking about and get involved in the idea, task, project etc.&#xA;&#xA;Following are three levels that I have seen in real life:&#xA;&#xA; A headline is enough.&#xA;   This is a type of person where writing just one headline or title on paper is sufficient to get them started. As an example, for me, the headline &#34;We need a Test Strategy that is aligned with ISO 26262&#34; was enough to get me going.&#xA;   The benefit of this type of people is that they can generate concepts, solutions, and ideas almost out of thin air. However, there is a risk that they might miss the target because you can misinterpret a lot from just one headline or title.&#xA;   As a leader, it&#39;s important to invest time in refining their ideas with them. They will need boundaries, but these can be provided later; let them generate freely first.&#xA;&#xA; Explain me your idea.&#xA;   This is the most common type of people. It takes about half a page of text for them to get started and dig into the details.&#xA;   The benefit here is that they help define the task better by either asking questions or being hesitant with the idea, which forces you to think harder and explain your purpose more clearly.&#xA;   These individuals are valuable assets in the team as they often do not generate new ideas independently but can make your team work more efficiently by providing steady flow of improvements.&#xA;&#xA; I need clear instructions.&#xA;   For this type of people, it&#39;s essential to invest time breaking down the idea or task into sub-items and explain what needs to get done in a level of detail that might sometimes be tiring for fast-paced people among us. It could require a full page of text or more, but if done properly, it is good investment.&#xA;   Some people argue that these types need to be more independent and build more experience, because we need more of the other two types mentioned earlier. However, I disagree. Some of them, mostly fresh graduates, will move upwards in abstraction level over time, but some remain at this level for a long period. This is good as they can deliver a foundation for bigger projects and work with you through daily grind when high potentials are already moving on.&#xA;&#xA;Noteworthy is also a category of people who need no text or headlines to produce results. These individuals listen carefully what&#39;s happening around them, what was discussed in meetings, and then start generating improvements and ideas without being explicitly triggered. I do this sort of brain-dumping often and like to call it &#39;fishing&#39;. Sometimes I catch a fish, and sometimes the idea is just not worth it.&#xA;&#xA;Conclusion&#xA;&#xA;So that&#39;s it; the combination of Color Theory and Paper Mind Model helped me a lot in reaching people and leading them to success. As with the colors, you need a good mixture of these types in a successful team. And as a leader, you have to figure out who is who in your team in order to lead them efficiently. But when strong colors get mixed with demanding paper types, this is where leadership gets very interesting.]]&gt;</description>
      <content:encoded><![CDATA[<p><a href="/braindump/tag:leadership" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">leadership</span></a> <a href="/braindump/tag:communication" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">communication</span></a> <a href="/braindump/tag:growth" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">growth</span></a></p>

<p>Recently, I read a post from <a href="https://www.linkedin.com/posts/edward-o-brien-49999b48_less-than-4-of-people-share-my-personality-activity-7468595823434584064-Gfk5?utm_source=share&amp;utm_medium=member_desktop&amp;rcm=ACoAAAD1U7QBIKifset87tq0jB6WoLeO3zPyCd8" rel="nofollow">Edward O&#39;Brien</a> where he was writing about his personality profile, and how it has influenced his career.
I commented on his post, but want to expand here a little bit more on my own experiences.</p>



<p>The  <a href="https://www.surroundedbyidiots.com/en/disc-colors/" rel="nofollow">“Colors” theory</a> is not a <a href="https://en.wikipedia.org/wiki/Gang_colors" rel="nofollow">gang sort of thing</a>, but a great way to get a concrete description of your personality, understand how your behavior effects others and improve your communication and cooperation skills. Of course there are also other assessments, and they all have their strengths and weaknesses, but this is the one that, at least for me, was easy to understand and also to explain to others.
I got a recommendation to do it about 12 years ago, after a not-so-positive leadership review I received. That feedback, and this assessment, sent me down a long reflection road that at the end led to biggest breakthroughs in my personal development.</p>

<h2 id="where-is-your-team">Where is your team?</h2>

<p>As a young professional, I joined Mercedes-Benz AG in 2009, and was tasked with building up test management and preparing a test strategy for a car system that would have to comply with <a href="https://en.wikipedia.org/wiki/ISO_26262#Part_9:_Automotive_Safety_Integrity_Level_(ASIL)-oriented_and_safety-oriented_analysis" rel="nofollow">ISO 26262</a> when it becomes a certification precondition. I tackled the task very intensively, as I had already two years of test engineer experience and was eager to reach the next step in my career. After about two years of hard work, I had an internally assessed test strategy that was aligned with ISO 26262, and a working test management on the system level. This success brought me a good performance review from my management, and as it usually goes, I got tasked with something even harder, although I didn&#39;t recognize this at the time. The next task was to extend the test strategy to also include component-level analysis and then align it with all the component responsible and their suppliers. In order to give me the attention I needed, I actually got a slot in the management meeting every second Friday, where I could present my progress. So everything was setup, to deliver great results and get, the ever so needed, visibility for my work.</p>

<p>I did then what I always did. I dug into the topic, worked out a very good technical solution, and invited component-responsible people for regular connects to present them the solution and then push them until completion. I presented, pushed, explained, escalated in those management syncs when there was no progress... and after a year or so of fighting, we reached our first successful SOP.
Now I was really looking forward to my next performance review. And the review started very well, as I was commended for reaching the goals and given a good raise. But then I asked about my leadership performance ... and got a feedback that was very short and to the point: “You have reached the goals, but at the finishing line, you were the only one there. Where is your team?”</p>

<p>At first, I didn&#39;t understand the feedback because results had been delivered; therefore, I had proven my worth, right? The team performed and delivered, so what&#39;s the problem then? The issue was that the project team would not do me. They had delivered but reported to their line management that they felt uninvolved, pressured, and burned. This hit me hard, as I actually thought that everything I did took them with me. But it seems, it came out the wrong way, and I was stunned by what went wrong.</p>

<h2 id="paper-mind-model-an-addition-to-the-colors">Paper Mind Model, an addition to the Colors</h2>

<p>It was clear that I needed to take people with me, and as I wrote, I was convinced that I was sending out that message all the time in our meetings. But why did the receivers get something completely different? And on which level did I not engage with the people who had different levels of technical expertise?</p>

<p>Finding out through the assessment that I am mostly Red and Blue offered an explanation for why I lost colleagues with Yellow and Green shades. The fact that my German was colored with a strong Eastern European accent seemed to be enough to push others away, as I was perceived as someone very strict and military-like.</p>

<p>But still there was the problem of engaging people on the right technical and abstraction level, in order to help them understand the goals and thus enable their active contribution without feeling overruled or uninvolved.
I figured out that my pace was too fast. For some time I thought I lost people because they were not technically skilled enough. But that wasn&#39;t the reason. We all need different levels of abstraction to grasp ideas, and have different processing speeds to understand them. Having a higher processing speed doesn&#39;t mean you will deliver better results; it only means you can deliver first results faster, which says little about the quality of those same results. In my experience, processing speed can get higher as we gather technical and life experience, but this change is not so drastic. So I stopped making an assumption that if I am in a room with people who have a lot of technical experience, then very high levels of abstraction are sufficient. And vice versa, that juniors need detailed instruction lists to deliver results. Instead, I developed a mind model for myself that I like to call &#39;Paper Mind Model&#39;.</p>

<p>In this mind model, I imagine a sheet of empty paper and ask myself how many lines of text on that sheet will the person in front of me need to understand what I am talking about and get involved in the idea, task, project etc.</p>

<p>Following are three levels that I have seen in real life:</p>
<ul><li><p><strong>A headline is enough</strong>.</p>
<ul><li>This is a type of person where writing just one headline or title on paper is sufficient to get them started. As an example, for me, the headline “We need a Test Strategy that is aligned with ISO 26262” was enough to get me going.</li>
<li>The benefit of this type of people is that they can generate concepts, solutions, and ideas almost out of thin air. However, there is a risk that they might miss the target because you can misinterpret a lot from just one headline or title.</li>
<li>As a leader, it&#39;s important to invest time in refining their ideas with them. They will need boundaries, but these can be provided later; let them generate freely first.</li></ul></li>

<li><p><strong>Explain me your idea</strong>.</p>
<ul><li>This is the most common type of people. It takes about half a page of text for them to get started and dig into the details.</li>
<li>The benefit here is that they help define the task better by either asking questions or being hesitant with the idea, which forces you to think harder and explain your purpose more clearly.</li>
<li>These individuals are valuable assets in the team as they often do not generate new ideas independently but can make your team work more efficiently by providing steady flow of improvements.</li></ul></li>

<li><p><strong>I need clear instructions</strong>.</p>
<ul><li>For this type of people, it&#39;s essential to invest time breaking down the idea or task into sub-items and explain what needs to get done in a level of detail that might sometimes be tiring for fast-paced people among us. It could require a full page of text or more, but if done properly, it is good investment.</li>
<li>Some people argue that these types need to be more independent and build more experience, because we need more of the other two types mentioned earlier. However, I disagree. Some of them, mostly fresh graduates, will move upwards in abstraction level over time, but some remain at this level for a long period. This is good as they can deliver a foundation for bigger projects and work with you through daily grind when high potentials are already moving on.</li></ul></li></ul>

<p>Noteworthy is also a category of people who need no text or headlines to produce results. These individuals listen carefully what&#39;s happening around them, what was discussed in meetings, and then start generating improvements and ideas without being explicitly triggered. I do this sort of brain-dumping often and like to call it &#39;fishing&#39;. Sometimes I catch a fish, and sometimes the idea is just not worth it.</p>

<h2 id="conclusion">Conclusion</h2>

<p>So that&#39;s it; the combination of Color Theory and Paper Mind Model helped me a lot in reaching people and leading them to success. As with the colors, you need a good mixture of these types in a successful team. And as a leader, you have to figure out who is who in your team in order to lead them efficiently. But when strong colors get mixed with demanding paper types, this is where leadership gets very interesting.</p>
]]></content:encoded>
      <guid>https://moxnet.eu/braindump/navigating-between-heads-and-hearts-in-leadership</guid>
      <pubDate>Wed, 24 Jun 2026 14:59:54 +0000</pubDate>
    </item>
    <item>
      <title>Brainiac v2.0 released</title>
      <link>https://moxnet.eu/braindump/brainiac-v2-0-released</link>
      <description>&lt;![CDATA[#emacs #brainiac #productivity #systems&#xA;&#xA;Time has come to release a new version of Brainiac. The whole configuration file has been almost completly restructured, cleaned up and properly commented. So I will declare this to be version 2.0.&#xA;&#xA;!--more--&#xA;&#xA;Following changes have been made:&#xA;&#xA;READ.md has been extended to explain the installation and usage.&#xA;Readability improvements:&#xA;  All colors decisions are now left to Modus themes, we only change typografy, e.g. underline the PROG tasks to encode work in progress.&#xA;  Multiple Org elements were restyled, e.g. ellipsis, tags etc., to improve scanability in large documents.&#xA;  Added the configuration for fixed and variable pitch fonts. You may set the font family to your liking.&#xA;  Packages org-bullets, org-appear and diminish introduced.&#xA;  Priority cookies are removed after the task is closed, to remove visual clutter.&#xA;  When saving, the tags will be aligned automatically.&#xA;Added number of matches to isearch.&#xA;Repeaters are now visible in the agenda.&#xA;When jumping to items from the agenda, automatic narrow is done to improve focus.&#xA;Capture from anywhere is now implemented by a custom script based on org-protocol.&#xA;Many, many small tweaks, fixes and changes.&#xA;&#xA;Get the new release from here.&#xA;&#xA;Enjoy and keep hacking!]]&gt;</description>
      <content:encoded><![CDATA[<p><a href="/braindump/tag:emacs" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">emacs</span></a> <a href="/braindump/tag:brainiac" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">brainiac</span></a> <a href="/braindump/tag:productivity" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">productivity</span></a> <a href="/braindump/tag:systems" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">systems</span></a></p>

<p>Time has come to release a new version of Brainiac. The whole configuration file has been almost completly restructured, cleaned up and properly commented. So I will declare this to be version 2.0.</p>



<p>Following changes have been made:</p>
<ul><li><code>READ.md</code> has been extended to explain the installation and usage.</li>
<li>Readability improvements:
<ul><li>All colors decisions are now left to Modus themes, we only change typografy, e.g. underline the <code>PROG</code> tasks to encode work in progress.</li>
<li>Multiple Org elements were restyled, e.g. ellipsis, tags etc., to improve scanability in large documents.</li>
<li>Added the configuration for fixed and variable pitch fonts. You may set the font family to your liking.</li>
<li>Packages org-bullets, org-appear and diminish introduced.</li>
<li>Priority cookies are removed after the task is closed, to remove visual clutter.</li>
<li>When saving, the tags will be aligned automatically.</li></ul></li>
<li>Added number of matches to <code>isearch</code>.</li>
<li>Repeaters are now visible in the agenda.</li>
<li>When jumping to items from the agenda, automatic narrow is done to improve focus.</li>
<li>Capture from anywhere is now implemented by a custom script based on <code>org-protocol</code>.</li>
<li>Many, many small tweaks, fixes and changes.</li></ul>

<p>Get the new release from <a href="https://codeberg.org/kemal/brainiac/releases/tag/v2.0.1" rel="nofollow">here</a>.</p>

<p>Enjoy and keep hacking!</p>
]]></content:encoded>
      <guid>https://moxnet.eu/braindump/brainiac-v2-0-released</guid>
      <pubDate>Fri, 29 May 2026 14:59:54 +0000</pubDate>
    </item>
    <item>
      <title>Reflection on Reflection</title>
      <link>https://moxnet.eu/braindump/reflection-on-reflection</link>
      <description>&lt;![CDATA[#reflection #growth #leadership&#xA;  &#xA;Reflection is the key ingredient for self-growth, this is a known fact. However, I figured out I need to be careful and consider several factors.&#xA;&#xA;There are different types of reflection. I noticed, until now, these two types:&#xA;&#xA;  The type that stimulates self-growth.&#xA;  The self-destructive type.&#xA;&#xA;My mind jumps often from one type to another. Often I catch myself in the self-destructive type, as I have a very strong achiever mentality and a very loud, perfection focused inner critic. It is sometimes a challenge, to calm down my spiraling mind, but I am getting better at it. This needs constant practice.&#xA;&#xA;However, I also have to take care of not investing too much time in reflection, as this is actually using the present to think about the past, which can diminish the time I invest in planing and steering my future.]]&gt;</description>
      <content:encoded><![CDATA[<p><a href="/braindump/tag:reflection" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">reflection</span></a> <a href="/braindump/tag:growth" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">growth</span></a> <a href="/braindump/tag:leadership" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">leadership</span></a></p>

<p>Reflection is the key ingredient for self-growth, this is a known fact. However, I figured out I need to be careful and consider several factors.</p>

<p>There are different types of reflection. I noticed, until now, these two types:</p>
<ol><li>The type that stimulates self-growth.</li>
<li>The self-destructive type.</li></ol>

<p>My mind jumps often from one type to another. Often I catch myself in the self-destructive type, as I have a very strong achiever mentality and a very loud, perfection focused inner critic. It is sometimes a challenge, to calm down my spiraling mind, but I am getting better at it. This needs constant practice.</p>

<p>However, I also have to take care of not investing too much time in reflection, as this is actually using the present to think about the past, which can diminish the time I invest in planing and steering my future.</p>
]]></content:encoded>
      <guid>https://moxnet.eu/braindump/reflection-on-reflection</guid>
      <pubDate>Tue, 19 May 2026 14:59:54 +0000</pubDate>
    </item>
    <item>
      <title>Serving images comfortably in WriteFreely using NGINX and Nextcloud</title>
      <link>https://moxnet.eu/braindump/serving-images-comfortably-in-writefreely-using-nginx-and-nextcloud</link>
      <description>&lt;![CDATA[#smarthome #selfhosting&#xA;&#xA;WriteFreely, which I self-host for this blog, cannot natively serve images. It is designed so that you combine it with a photo serving platform like e.g. snap.as.&#xA;&#xA;I found the solution for this problem by using NGINX and Nextcloud:&#xA;&#xA;I use a Nextcloud folder to upload the images I want to use.&#xA;Then using NGINX reverse proxy I expose that folder.&#xA;&#xA;  # Serve images                                                                        &#xA;        location /images/ {                                                                   &#xA;                 alias /home/ncdata/Kemal/files/Public/;                                     &#xA;                 autoindex off;                                                               &#xA;                 accesslog off;                                                              &#xA;                 expires 30d;                                                                 &#xA;                 add_header Cache-Control &#34;public&#34;;                                           &#xA;                 } &#xA;After that I can link images in the blog posts using this&#xA;&#xA;Name&#xA;&#xA;Hope this helps someone else also.&#xA;&#xA;Keep on hacking!&#xA;&#xA;]]&gt;</description>
      <content:encoded><![CDATA[<p><a href="/braindump/tag:smarthome" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">smarthome</span></a> <a href="/braindump/tag:selfhosting" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">selfhosting</span></a></p>

<p>WriteFreely, which I self-host for this blog, cannot natively serve images. It is designed so that you combine it with a photo serving platform like e.g. <a href="https://snap.as/" rel="nofollow">snap.as</a>.</p>

<p>I found the solution for this problem by using NGINX and Nextcloud:</p>
<ul><li>I use a Nextcloud folder to upload the images I want to use.</li>
<li>Then using NGINX reverse proxy I expose that folder.</li></ul>

<pre><code>  # Serve images                                                                        
        location /images/ {                                                                   
                 alias /home/nc_data/Kemal/files/Public/;                                     
                 autoindex off;                                                               
                 access_log off;                                                              
                 expires 30d;                                                                 
                 add_header Cache-Control &#34;public&#34;;                                           
                 } 
</code></pre>
<ul><li>After that I can link images in the blog posts using this</li></ul>

<pre><code>![Name](https://write.moxnet.eu/images/Name.jpg)
</code></pre>

<p>Hope this helps someone else also.</p>

<p>Keep on hacking!</p>
]]></content:encoded>
      <guid>https://moxnet.eu/braindump/serving-images-comfortably-in-writefreely-using-nginx-and-nextcloud</guid>
      <pubDate>Wed, 22 Apr 2026 14:59:55 +0000</pubDate>
    </item>
    <item>
      <title>Brainiac v1.2 released</title>
      <link>https://moxnet.eu/braindump/brainiac-v1-2-released</link>
      <description>&lt;![CDATA[#emacs #brainiac #productivity #systems&#xA;&#xA;Hello everyone!&#xA;&#xA;I have been using the Brainiac intensively over the last months and made some changes to the configuration along the way. Get your update here or from Codeberg.&#xA;&#xA;Improvements:&#xA;&#xA;Added journal.org to the list of refile targets.&#xA;Reduced the width of comment, source, etc. boxes in brainiac.css.&#xA;The attached items are now visibly listed in the drawer of the headline.&#xA;Minor changes in the configuration, e.g. increase of idle time etc.&#xA;&#xA;New things:&#xA;&#xA;Added org-crypt to the config, so that sensitive information can be encrypted if storing files on public servers.&#xA;To integrate Brainiac into your system menu, I propose the following: copy brainiac.desktop to ~/.local/share/applications and brainiac.svg to ~/.local/share/icons.&#xA;I added basic AI support by using a customized ollama-buddy-mini and running models locally with ollama. Although I previously stated that Brainiac would not have AI, the chosen combination presents a nice compromise between functionality and privacy.&#xA;I also introduced the abbrev-mode as a template storage for some useful org templates and as a mechanism for storing AI prompts for future usage.&#xA;In order to consolidate important functions and keystrokes, I configured a menu which can be reached by pressing C-c b using transient.]]&gt;</description>
      <content:encoded><![CDATA[<p><a href="/braindump/tag:emacs" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">emacs</span></a> <a href="/braindump/tag:brainiac" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">brainiac</span></a> <a href="/braindump/tag:productivity" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">productivity</span></a> <a href="/braindump/tag:systems" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">systems</span></a></p>

<p>Hello everyone!</p>

<p>I have been using the Brainiac intensively over the last months and made some changes to the configuration along the way. Get your update <a href="https://write.moxnet.eu/images/brainiac_v1.2.zip" rel="nofollow">here</a> or from <a href="https://codeberg.org/kemal/brainiac" rel="nofollow">Codeberg</a>.</p>

<p>Improvements:</p>
<ul><li>Added <code>journal.org</code> to the list of refile targets.</li>
<li>Reduced the width of comment, source, etc. boxes in <code>brainiac.css</code>.</li>
<li>The attached items are now visibly listed in the drawer of the headline.</li>
<li>Minor changes in the configuration, e.g. increase of idle time etc.</li></ul>

<p>New things:</p>
<ul><li>Added <code>org-crypt</code> to the config, so that sensitive information can be encrypted if storing files on public servers.</li>
<li>To integrate Brainiac into your system menu, I propose the following: copy <code>brainiac.desktop</code> to <code>~/.local/share/applications</code> and <code>brainiac.svg</code> to <code>~/.local/share/icons</code>.</li>
<li>I added basic AI support by using a customized <code>ollama-buddy-mini</code> and running models locally with <code>ollama</code>. Although I previously stated that Brainiac would not have AI, the chosen combination presents a nice compromise between functionality and privacy.</li>
<li>I also introduced the <code>abbrev-mode</code> as a template storage for some useful <code>org</code> templates and as a mechanism for storing AI prompts for future usage.</li>
<li>In order to consolidate important functions and keystrokes, I configured a menu which can be reached by pressing <code>C-c b</code> using <code>transient</code>.</li></ul>
]]></content:encoded>
      <guid>https://moxnet.eu/braindump/brainiac-v1-2-released</guid>
      <pubDate>Sun, 22 Feb 2026 15:59:55 +0000</pubDate>
    </item>
    <item>
      <title>Getting proper audio setup on Ubuntu 24.04</title>
      <link>https://moxnet.eu/braindump/getting-proper-audio-setup-on-ubuntu-24-04</link>
      <description>&lt;![CDATA[#linux #sound&#xA;&#xA;This setup was done on an HP EliteBook 840 with Intel Tiger Lake hardware, running Ubuntu 24.04 LTS, but I used tips from Arch Wiki as well. So I presume most of it is transferable to other distributions.&#xA;&#xA;Ubuntu ships with PipeWire and WirePlumber by default, which is a solid audio foundation—but getting microphone with noise suppression and sane device naming requires some manual tuning.&#xA;&#xA;!--more--&#xA;&#xA;Enable Pro Audio Mode for the microphone to work&#xA;&#xA;To be able to use the microphone, the audio card must run in pro-audio profile, which can be done with pactl. Now open alsamixer and set all relevant channels to 100%. Then test the mic.&#xA;&#xA;When the mic starts working we need some noise suppression, in order to use it for calls.&#xA;Install RNNoise for PipeWire from here:&#xA;&#xA;👉 https://github.com/werman/noise-suppression-for-voice&#xA;&#xA;Once installed, we need to set the RNNoise source as your default microphone. For that, and other tweaks, I recommend to take the code below, put it in a script and run it on every reboot.&#xA;&#xA;pactl set-card-profile alsacard.pci-0000001f.3-platform-sklhdadspgeneric pro-audio&#xA;pactl set-default-sink alsaoutput.pci-0000001f.3-platform-sklhdadspgeneric.pro-output-0&#xA;amixer -c 0 set Master 100%&#xA;pactl set-default-source rnnoisesource&#xA;&#xA;WirePlumber Configuration&#xA;&#xA;WirePlumber allows fine-grained control over audio devices using Lua scripts.&#xA;&#xA;Default ALSA device names are long and unreadable. This rule renames the main audio device to something human-friendly.&#xA;&#xA;rule = {&#xA;  matches = {&#xA;    {&#xA;      { &#34;device.name&#34;, &#34;matches&#34;, &#34;alsacard.pci-0000001f.3-platform-sklhdadspgeneric&#34; },&#xA;    },&#xA;  },&#xA;  applyproperties = {&#xA;    [&#34;device.description&#34;] = &#34;Laptop Audio&#34;&#xA;  },&#xA;}&#xA;&#xA;table.insert(alsamonitor.rules, rule)&#xA;&#xA;Pro-audio mode exposes many unused nodes. Disabling them keeps the device list clean and avoids accidental routing.&#xA;&#xA;rule = {&#xA;  matches = {&#xA;    { { &#34;node.name&#34;, &#34;equals&#34;, &#34;alsaoutput.pci-0000001f.3-platform-sklhdadspgeneric.pro-output-3&#34; } },&#xA;    { { &#34;node.name&#34;, &#34;equals&#34;, &#34;alsaoutput.pci-0000001f.3-platform-sklhdadspgeneric.pro-output-4&#34; } },&#xA;    { { &#34;node.name&#34;, &#34;equals&#34;, &#34;alsaoutput.pci-0000001f.3-platform-sklhdadspgeneric.pro-output-5&#34; } },&#xA;    { { &#34;node.name&#34;, &#34;equals&#34;, &#34;alsaoutput.pci-0000001f.3-platform-sklhdadspgeneric.pro-output-31&#34; } },&#xA;    { { &#34;node.name&#34;, &#34;equals&#34;, &#34;alsainput.pci-0000001f.3-platform-sklhdadspgeneric.pro-input-0&#34; } },&#xA;    { { &#34;node.name&#34;, &#34;equals&#34;, &#34;alsainput.pci-0000001f.3-platform-sklhdadspgeneric.pro-input-6&#34; } },&#xA;  },&#xA;  applyproperties = {&#xA;    [&#34;node.disabled&#34;] = true,&#xA;  },&#xA;}&#xA;&#xA;table.insert(alsa_monitor.rules, rule)&#xA;&#xA;Faster audio source/sink switching in GNOME&#xA;&#xA;For this install the GNOME extension:&#xA;&#xA;Quick Settings Audio Panel&#xA;&#xA;This makes switching audio sources and sinks fast and practical during daily work.&#xA;&#xA;Enjoy!]]&gt;</description>
      <content:encoded><![CDATA[<p><a href="/braindump/tag:linux" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">linux</span></a> <a href="/braindump/tag:sound" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">sound</span></a></p>

<p>This setup was done on an <strong>HP EliteBook 840</strong> with <strong>Intel Tiger Lake</strong> hardware, running <strong>Ubuntu 24.04 LTS</strong>, but I used tips from Arch Wiki as well. So I presume most of it is transferable to other distributions.</p>

<p>Ubuntu ships with PipeWire and WirePlumber by default, which is a solid audio foundation—but getting <strong>microphone with noise suppression</strong> and sane device naming requires some manual tuning.</p>



<h2 id="enable-pro-audio-mode-for-the-microphone-to-work">Enable Pro Audio Mode for the microphone to work</h2>

<p>To be able to use the microphone, the audio card must run in <strong>pro-audio</strong> profile, which can be done with <code>pactl</code>. Now open <code>alsamixer</code> and set <strong>all relevant channels to 100%</strong>. Then test the mic.</p>

<p>When the mic starts working we need some noise suppression, in order to use it for calls.
Install <strong>RNNoise for PipeWire</strong> from here:</p>

<p>👉 <a href="https://github.com/werman/noise-suppression-for-voice" rel="nofollow">https://github.com/werman/noise-suppression-for-voice</a></p>

<p>Once installed, we need to set the RNNoise source as your default microphone. For that, and other tweaks, I recommend to take the code below, put it in a script and run it on every reboot.</p>

<pre><code class="language-sh">pactl set-card-profile alsa_card.pci-0000_00_1f.3-platform-skl_hda_dsp_generic pro-audio
pactl set-default-sink alsa_output.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.pro-output-0
amixer -c 0 set Master 100%
pactl set-default-source rnnoise_source
</code></pre>

<h2 id="wireplumber-configuration">WirePlumber Configuration</h2>

<p>WirePlumber allows fine-grained control over audio devices using Lua scripts.</p>

<p>Default ALSA device names are long and unreadable. This rule renames the main audio device to something human-friendly.</p>

<pre><code class="language-lua">rule = {
  matches = {
    {
      { &#34;device.name&#34;, &#34;matches&#34;, &#34;alsa_card.pci-0000_00_1f.3-platform-skl_hda_dsp_generic&#34; },
    },
  },
  apply_properties = {
    [&#34;device.description&#34;] = &#34;Laptop Audio&#34;
  },
}

table.insert(alsa_monitor.rules, rule)
</code></pre>

<p>Pro-audio mode exposes many unused nodes. Disabling them keeps the device list clean and avoids accidental routing.</p>

<pre><code class="language-lua">rule = {
  matches = {
    { { &#34;node.name&#34;, &#34;equals&#34;, &#34;alsa_output.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.pro-output-3&#34; } },
    { { &#34;node.name&#34;, &#34;equals&#34;, &#34;alsa_output.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.pro-output-4&#34; } },
    { { &#34;node.name&#34;, &#34;equals&#34;, &#34;alsa_output.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.pro-output-5&#34; } },
    { { &#34;node.name&#34;, &#34;equals&#34;, &#34;alsa_output.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.pro-output-31&#34; } },
    { { &#34;node.name&#34;, &#34;equals&#34;, &#34;alsa_input.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.pro-input-0&#34; } },
    { { &#34;node.name&#34;, &#34;equals&#34;, &#34;alsa_input.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.pro-input-6&#34; } },
  },
  apply_properties = {
    [&#34;node.disabled&#34;] = true,
  },
}

table.insert(alsa_monitor.rules, rule)
</code></pre>

<h2 id="faster-audio-source-sink-switching-in-gnome">Faster audio source/sink switching in GNOME</h2>

<p>For this install the GNOME extension:</p>

<p><strong>Quick Settings Audio Panel</strong></p>

<p>This makes switching audio sources and sinks fast and practical during daily work.</p>

<p>Enjoy!</p>
]]></content:encoded>
      <guid>https://moxnet.eu/braindump/getting-proper-audio-setup-on-ubuntu-24-04</guid>
      <pubDate>Thu, 19 Feb 2026 15:59:55 +0000</pubDate>
    </item>
    <item>
      <title>Let&#39;s say it together: &#34;I don&#39;t care.&#34;</title>
      <link>https://moxnet.eu/braindump/lets-say-it-together-i-dont-care</link>
      <description>&lt;![CDATA[#technology #leadership&#xA;&#xA;Because &#34;... each tiny &#34;I don&#39;t care&#34; iteration to tech products is a small step closer to Star Trek&#39;s promised land of holodecks, abundance, and hot aliens ...&#34;, and I want that future!&#xA;&#xA;  Note to leaders. &#xA;&#xA;  Have a look at what your team is working on, are you producing real future proof value for the company or just chasing another tech trend trying to show that you are „on the bleeding edge“?&#xA;&#xA;  Producing real value doesn’t just help your company keep the business in long term, it gives your team purpose and enables them to optimize their contribution.]]&gt;</description>
      <content:encoded><![CDATA[<p><a href="/braindump/tag:technology" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">technology</span></a> <a href="/braindump/tag:leadership" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">leadership</span></a></p>

<p>Because “... <a href="https://lifehacker.com/tech/why-tech-launches-stopped-feeling-magical?utm_medium=RSS" rel="nofollow">each tiny “I don&#39;t care” iteration to tech products is a small step closer to Star Trek&#39;s promised land of holodecks, abundance, and hot aliens</a> ...“, and I want that future!</p>

<blockquote><p>Note to leaders.</p>

<p>Have a look at what your team is working on, are you producing real future proof value for the company or just chasing another tech trend trying to show that you are „on the bleeding edge“?</p>

<p>Producing real value doesn’t just help your company keep the business in long term, it gives your team purpose and enables them to optimize their contribution.</p></blockquote>
]]></content:encoded>
      <guid>https://moxnet.eu/braindump/lets-say-it-together-i-dont-care</guid>
      <pubDate>Tue, 13 Jan 2026 15:59:55 +0000</pubDate>
    </item>
  </channel>
</rss>