{
	"version": "https://jsonfeed.org/version/1.1",
	"title": "Jam Stream",
	"home_page_url": "https://tommi.space/jam",
	"feed_url": "https://tommi.space/jam.json",
	"description": "The feed of all the notes that populate “The Jam„",
	"favicon": "https://tommi.space/favicon.ico",
	"authors": [{
		"name": "Tommi",
		"url": "https://tommi.space/about",
		"avatar": "https://tommi.space/profile.webp"
	}],
	"language": "en",
		"items": [
	{
		"id": "https://tommi.space/ipv6/",
		"url": "https://tommi.space/ipv6/",
		"title": "IPv6",
		"content_html": "<p>I was always curious but very confused by IPv6. As a successful attempt to procrastinate a mountain of other “more important” things, I watched a few videos to understand it better, both in terms of its usage and its functioning, but also the politics of it.</p> <p>Wow, it is a much bigger deal than it seems to be from the outside!</p> <h2 id='Resources' tabindex='-1'><a class='header-anchor' href='#Resources'>Resources</a></h2> <p>Here are the videos I watched to learn more about it:</p> <p><a href='https://youtu.be/aor29pGhlFE'>https://youtu.be/aor29pGhlFE</a></p> <p><a href='https://youtu.be/oItwDXraK1M'>https://youtu.be/oItwDXraK1M</a></p> <div class=embed>  <iframe src=https://media.ccc.de/v/why2025-246-the-state-of-ipv6/oembed title='The state of IPv6' allowfullscreen></iframe> </div>",
		"content_text": "I was always curious but very confused by IPv6. As a successful attempt to procrastinate a mountain of other “more important” things, I watched a few videos to understand it better, both in terms of its usage and its functioning, but also the politics of it. Wow, it is a much bigger deal than it seems to be from the outside! Resources Here are the videos I watched to learn more about it: https://youtu.be/aor29pGhlFE https://youtu.be/oItwDXraK1M",
		
		"date_published": "2026-04-19T13:50:00+02:00",
		
		"tags": ["learning",
		"geek"
		
		],
		"language": "en"
	},
	
	{
		"id": "https://tommi.space/website-work/",
		"url": "https://tommi.space/website-work/",
		"title": "I want to make a website",
		"content_html": "<p>It is quite fun and anecdotal that in different occasions and in the most unexpected ways people reach out to me and ask for my help to make a website, at times offering to hire me to do it.</p> <p>Here is a #wip reference of fundamental information required to make a general evaluation of the amount of work needed and, possibly, an idea of the budget.</p> <ul> <li>What is the purpose of the website? (<em>A small set of information pages</em>, <em>a blog/a newsletter, an interactive database, something more complex…</em>)</li> <li>Do you want to edit the website yourself/yourselves? <ul> <li>How often? (<em>Once a year, once a month, once a week…</em>)</li> <li>How much? (<em>Just one page, blog posts, any page…</em>)</li> <li>How many people would need editing rights?</li> </ul> </li> <li>Do you need an authentication or login system for the public? (<em>Would they need to submit information, subscribe to a newsletter…</em>)</li> <li>If you ask me to do something that requires a technology I can also learn about while building the website, that may lower my hourly rate.</li> <li>Consider that website development does not end after the website is <em>made</em>. There are <em>maintenance</em> and <em>hosting</em> costs. Understanding all the points above can give a quite clear idea of how much they would be. Hosting <em>may</em> be free and generally it can be limited to 3-7€ per month. Maintenance mostly depends on the website editing frequency.</li> </ul>",
		"content_text": "It is quite fun and anecdotal that in different occasions and in the most unexpected ways people reach out to me and ask for my help to make a website, at times offering to hire me to do it. Here is a #wip reference of fundamental information required to make a general evaluation of the amount of work needed and, possibly, an idea of the budget.  What is the purpose of the website? (A small set of information pages, a blog/a newsletter, an interactive database, something more complex…) Do you want to edit the website yourself/yourselves?  How often? (Once a year, once a month, once a week…) How much? (Just one page, blog posts, any page…) How many people would need editing rights?   Do you need an authentication or login system for the public? (Would they need to submit information, subscribe to a newsletter…) If you ask me to do something that requires a technology I can also learn about while building the website, that may lower my hourly rate. Consider that website development does not end after the website is made. There are maintenance and hosting costs. Understanding all the points above can give a quite clear idea of how much they would be. Hosting may be free and generally it can be limited to 3-7€ per month. Maintenance mostly depends on the website editing frequency.",
		"summary": "A reference of information that is useful to know before asking for my help or hiring me to make a website.",
		"date_published": "2026-04-19T10:58:17+02:00",
		
		"tags": ["work",
		"geek",
		"draft",
		"dev/web"
		
		],
		"language": "en"
	},
	
	{
		"id": "https://tommi.space/not-intelligent/",
		"url": "https://tommi.space/not-intelligent/",
		"title": "The right to be stupid",
		"content_html": "<ul> <li>Do intelligent people hold a position of power over less intelligent ones?</li> <li>What is the role of intelligence in class?</li> <li>How does intelligence relate to capitalism?</li> <li>Is praising intelligence ableism?</li> </ul>",
		"content_text": "Do intelligent people hold a position of power over less intelligent ones? What is the role of intelligence in class? How does intelligence relate to capitalism? Is praising intelligence ableism?",
		
		"date_published": "2026-04-18T19:32:00+02:00",
		
		"tags": ["zen",
		"wip",
		"topic"
		
		],
		"language": "en"
	},
	
	{
		"id": "https://tommi.space/crossovers/",
		"url": "https://tommi.space/crossovers/",
		"title": "Crossovers",
		"content_html": "<p>If <a href='My%20life%20is%20a%20movie.md'>every life is a movie</a>, people meeting each other is a crossover!</p> <div class=embed>  <iframe title='Venice to Victory: Tommi’s War on Big Tech - Tommi - E85' src='https://tubefree.org/videos/embed/aAESq1Zco5vAFyuG83Y3Go?start=5m5s&amp;p2p=1' allow=fullscreen sandbox='allow-same-origin allow-scripts allow-popups allow-forms'></iframe> </div>",
		"content_text": "If every life is a movie, people meeting each other is a crossover!",
		
		"date_published": "2026-04-18T19:13:00+02:00",
		
		"tags": ["zen",
		"topic",
		"draft"
		
		],
		"language": "en"
	},
	
	{
		"id": "https://tommi.space/life-movie/",
		"url": "https://tommi.space/life-movie/",
		"title": "My life is a movie",
		"content_html": "<p>Since I started going to therapy (and probably even before then, but not consciously), I have been using a very effective metaphor to describe the recurrent, uncontrollable, and sudden change in perspective in my life.</p> <p>Sometimes, briefly yet not too rarely, I see my life as a movie of which <strong>I am the main character</strong>. Whatever happens, good or bad, <q>it makes up for the plot</q>—cit. Alice Bleasdale. It is part of the story, part of the game. Tragedies occur, joyful moments arrive, and it is how life works. Living life as if it was a movie does not have to imply taking it lightly or not being enraged by what is wrong with the world (or hating billionaires, or destroying fascists), it is about <em>contextualising</em> it. It is about shining the right light on it. Exactly as a movie, it needs the right cinematography. It cannot be too dark, otherwise you understand nothing, like <a href='https://www.youtube.com/watch?v=TUtbK8wX5nQ'>in any <cite>Game of Thrones</cite> battle</a>. It cannot be <a href='https://youtu.be/WbopcNPmt34'><em lang=it>smarmellato</em></a> or it becomes cheesy and fake.</p> <p><a href='https://youtu.be/4cc9jyFMD5Q'>https://youtu.be/4cc9jyFMD5Q</a></p> <p>Nevertheless, most of the time my sensitivity, my empathy, and my overall way of being make me feel everything, anything, much more intensely. Every single thought or event acquires a wholesome, totalising weight, and my positivity is swallowed by the overbearing weight of the current situation. Even though rationally I try to perceive my life as a movie, I cannot feel it at all. I am stuck in the vortex of current events and emotions, and I fail to see the bigger picture.</p> <p>For this reason, I admire and I do my best to be inspired by fictional characters and real friends who I believe are great at living their life as if it was a movie.</p> <p>The best of the best of the best at this is none other than Fleabag ❤️</p> <p><a href='https://youtu.be/b8pDI0dC2UM'>https://youtu.be/b8pDI0dC2UM</a></p>",
		"content_text": "Since I started going to therapy (and probably even before then, but not consciously), I have been using a very effective metaphor to describe the recurrent, uncontrollable, and sudden change in perspective in my life. Sometimes, briefly yet not too rarely, I see my life as a movie of which I am the main character. Whatever happens, good or bad, it makes up for the plot—cit. Alice Bleasdale. It is part of the story, part of the game. Tragedies occur, joyful moments arrive, and it is how life works. Living life as if it was a movie does not have to imply taking it lightly or not being enraged by what is wrong with the world (or hating billionaires, or destroying fascists), it is about contextualising it. It is about shining the right light on it. Exactly as a movie, it needs the right cinematography. It cannot be too dark, otherwise you understand nothing, like in any Game of Thrones battle. It cannot be smarmellato or it becomes cheesy and fake. https://youtu.be/4cc9jyFMD5Q Nevertheless, most of the time my sensitivity, my empathy, and my overall way of being make me feel everything, anything, much more intensely. Every single thought or event acquires a wholesome, totalising weight, and my positivity is swallowed by the overbearing weight of the current situation. Even though rationally I try to perceive my life as a movie, I cannot feel it at all. I am stuck in the vortex of current events and emotions, and I fail to see the bigger picture. For this reason, I admire and I do my best to be inspired by fictional characters and real friends who I believe are great at living their life as if it was a movie. The best of the best of the best at this is none other than Fleabag ❤️ https://youtu.be/b8pDI0dC2UM",
		
		"date_published": "2026-04-17T12:12:00+02:00",
		
		"tags": ["zen"
		
		],
		"language": "en"
	},
	
	{
		"id": "https://tommi.space/podman/",
		"url": "https://tommi.space/podman/",
		"title": "Podman",
		"content_html": "<p>Podman is a drop-in replacement for <a href='https://docker.com'>Docker</a>. I chose it because <a href='https://www.justus.pw/'>Justus</a> suggested me to look into it while I was <a href='https://getdweb.net/justus-interview/' title='Interview with Justus Perlwitz – DWeb'>interviewing him for the DWeb blog</a>, and other friends encouraged me to try it in multiple occasions.</p> <p>By learning more about it, I found its advantages and its architecture to be very interesting, while remaining relatively simple, and (to the extent of my usage so far) completely compatible with Docker commands. I watched different videos (linked at the bottom of this page)</p> <h2 id='Rootless%20Podman%20configuration' tabindex='-1'><a class='header-anchor' href='#Rootless%20Podman%20configuration'>Rootless Podman configuration</a></h2> <p>Following <a href='https://github.com/containers/podman/blob/main/docs/tutorials/rootless_tutorial.md' title='Basic Setup and Use of Podman in a Rootless environment.'>the official rootless tutorial</a>:</p> <pre class='language-sh'><code class='language-sh'><span class='token function'>sudo</span> <span class='token function'>apt</span> <span class='token function'>install</span> passt <span class='token comment'># apparently it is already installed as a dependency of podman’s apt package</span></code></pre> <p>In Linux, unprivileged users (non-sudo) do not have permission to open up ports below 1024. In order to allow ports ≥80 to be opened in rootless mode, a systemd parameter has to be set.</p> <pre class='language-sh'><code class='language-sh'><span class='token builtin class-name'>echo</span> <span class='token string'>'net.ipv4.ip_unprivileged_port_start=80'</span> <span class='token operator'>|</span> <span class='token function'>sudo</span> <span class='token function'>tee</span> /etc/sysctl.d/99-rootless-ports.conf <span class='token function'>sudo</span> <span class='token function'>sysctl</span> <span class='token parameter variable'>--system</span></code></pre> <h3 id='Automatically%20start%20containers%20at%20boot' tabindex='-1'><a class='header-anchor' href='#Automatically%20start%20containers%20at%20boot'>Automatically start containers at boot</a></h3> <p><s>Follow the guide <a href='https://linuxhandbook.com/courses/podman/autostart-podman-containers/'>Autostarting Podman Containers</a>.</s> Deprecated. Using quadlets instead.</p> <h2 id='Quadlets' tabindex='-1'><a class='header-anchor' href='#Quadlets'>Quadlets</a></h2> <p>Quadlets are configuration files that allow Podman containers to run directly via systemd. Even though</p> <h2 id='Monitoring' tabindex='-1'><a class='header-anchor' href='#Monitoring'>Monitoring</a></h2> <p>For containers monitoring, I have decided to go with <a href='https://beszel.dev'>Beszel</a> because it seems to be among the lightest and simplest options, but most importantly because <a href='https://web.archive.org/web/20260412145420/https://github.com/henrygd'>the main developer and owner of the repository has a political statement in his bio</a> 🔥!</p> <p>#TODO))</p> <h3 id='Resources' tabindex='-1'><a class='header-anchor' href='#Resources'>Resources</a></h3> <ul> <li><a href='https://federicoscodelaro.com/blog/2025-05-10-monitoring-beszel-dozzle/'>Monitoring my server with Beszel and Dozzle | Federico Scodelaro</a>j</li> <li><a href='https://github.com/henrygd/beszel/discussions/572#discussioncomment-12227445'>Beszel Quadlet · henrygd/beszel · Discussion #572 · GitHub</a></li> <li><a href='https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/8/html/building_running_and_managing_containers/assembly_monitoring-containers'>Chapter 21. Monitoring containers | Building, running, and managing containers | Red Hat Enterprise Linux | 8 | Red Hat Documentation</a></li> </ul> <h2 id='Resources-1' tabindex='-1'><a class='header-anchor' href='#Resources-1'>Resources</a></h2> <ul> <li><a href='https://github.com/fpatrick/podman-quadlet'>GitHub - fpatrick/podman-quadlet: Personal Podman Quadlet configurations for self-hosted services in a homelab environment · GitHub</a></li> </ul>",
		"content_text": "Podman is a drop-in replacement for Docker. I chose it because Justus suggested me to look into it while I was interviewing him for the DWeb blog, and other friends encouraged me to try it in multiple occasions. By learning more about it, I found its advantages and its architecture to be very interesting, while remaining relatively simple, and (to the extent of my usage so far) completely compatible with Docker commands. I watched different videos (linked at the bottom of this page) Rootless Podman configuration Following the official rootless tutorial: sudo apt install passt # apparently it is already installed as a dependency of podman’s apt package In Linux, unprivileged users (non-sudo) do not have permission to open up ports below 1024. In order to allow ports ≥80 to be opened in rootless mode, a systemd parameter has to be set. echo 'net.ipv4.ip_unprivileged_port_start=80' | sudo tee /etc/sysctl.d/99-rootless-ports.conf sudo sysctl --system Automatically start containers at boot Follow the guide Autostarting Podman Containers. Deprecated. Using quadlets instead. Quadlets Quadlets are configuration files that allow Podman containers to run directly via systemd. Even though Monitoring For containers monitoring, I have decided to go with Beszel because it seems to be among the lightest and simplest options, but most importantly because the main developer and owner of the repository has a political statement in his bio 🔥! #TODO)) Resources  Monitoring my server with Beszel and Dozzle | Federico Scodelaroj Beszel Quadlet · henrygd/beszel · Discussion #572 · GitHub Chapter 21. Monitoring containers | Building, running, and managing containers | Red Hat Enterprise Linux | 8 | Red Hat Documentation  Resources  GitHub - fpatrick/podman-quadlet: Personal Podman Quadlet configurations for self-hosted services in a homelab environment · GitHub",
		
		"date_published": "2026-04-13T16:37:15+02:00",
		
		"tags": ["geek/sysad",
		"wip"
		
		],
		"language": "en"
	},
	
	{
		"id": "https://tommi.space/linux-metrics-and-monitoring/",
		"url": "https://tommi.space/linux-metrics-and-monitoring/",
		"title": "Linux metrics and monitoring",
		"content_html": "<p>Gathering notes on metrics and monitoring for Linux (servers).</p> <h2 id='Current%20data' tabindex='-1'><a class='header-anchor' href='#Current%20data'>Current data</a></h2> <p>Following advice gathered from <a href=''>this post</a> on the YunoHost forum, I found <a href='https://github.com/aristocratos/btop'>btop++</a> to be the best tool for observing the metrics of a system at present time. It is a simple solution to see at a glance how loaded the system is <strong>while it’s running</strong>.</p> <p>I am interested in learning how to use common tools like <a href='https://prometheus.io/'>Prometheus</a> and <a href='https://grafana.com/'>Grafana</a> to monitor the system over an extended timespan, and potentially alerting me via email for warnings or errors.</p> <h2 id='Beszel' tabindex='-1'><a class='header-anchor' href='#Beszel'>Beszel</a></h2> <p>#TODO)) Install <a href='https://beszel.dev'>Beszel</a></p>",
		"content_text": "Gathering notes on metrics and monitoring for Linux (servers). Current data Following advice gathered from this post on the YunoHost forum, I found btop++ to be the best tool for observing the metrics of a system at present time. It is a simple solution to see at a glance how loaded the system is while it’s running. I am interested in learning how to use common tools like Prometheus and Grafana to monitor the system over an extended timespan, and potentially alerting me via email for warnings or errors. Beszel #TODO)) Install Beszel",
		"summary": "Gathering notes on metrics and monitoring for Linux (servers).",
		"date_published": "2026-04-12T16:03:00+02:00",
		
		"tags": ["geek/sysad",
		"learning",
		"wip"
		
		],
		"language": "en"
	},
	
	{
		"id": "https://tommi.space/immich/",
		"url": "https://tommi.space/immich/",
		"title": "Install Immich with Podman Quadlets",
		"content_html": "<p>Sadly, I failed convert the <a href='https://github.com/immich-app/immich/blob/main/docker/'>Docker compose files provided by Immich</a> into Quadlets using <a href='https://github.com/containers/podlet' title='containers/podlet repository on GitHub'>Podlet</a>.</p> <p>Nevertheless, I found <a href='https://github.com/jbtrystram/immich-podman-systemd' title='jbtrystram/immich-podman-systemd repository on GitHub'>this repository</a> that documents in detail the whole process.</p> <h2 id='Convert%20uploads%20to%20JPEG%20XL' tabindex='-1'><a class='header-anchor' href='#Convert%20uploads%20to%20JPEG%20XL'>Convert uploads to JPEG XL</a></h2> <p>#TODO)) Using <a href='https://github.com/miguelangel-nubla/immich-upload-optimizer' title='miguelangel-nubla/immich-upload-optimizer on GitHub'>immich-upload-optimizer</a>?</p>",
		"content_text": "Sadly, I failed convert the Docker compose files provided by Immich into Quadlets using Podlet. Nevertheless, I found this repository that documents in detail the whole process. Convert uploads to JPEG XL #TODO)) Using immich-upload-optimizer?",
		"summary": "Notes on installing and managing Immich.",
		"date_published": "2026-04-11T14:30:00+02:00",
		
		"tags": ["wip",
		"geek/sysad"
		
		],
		"language": "en"
	},
	
	{
		"id": "https://tommi.space/self-hosting-logs/",
		"url": "https://tommi.space/self-hosting-logs/",
		"title": "Self-hosting logs",
		"content_html": "<p>This is a rough reverse-chronological record of the changes in (or “evolution of”) my approach to hosting and system administration, both for myself and communally.</p> <h2 id='YunoHost' tabindex='-1'><a class='header-anchor' href='#YunoHost'>YunoHost</a></h2> <h2 id='Nextcloud%20bare%20installation' tabindex='-1'><a class='header-anchor' href='#Nextcloud%20bare%20installation'>Nextcloud bare installation</a></h2> <p>A huge shout-out to my friend <a href='http://claudiofaoro.com' title='Claudio’s personal website'>Claudio</a>, who helped me understand and perform the most tricky passages.</p> <h2 id='deGooglization' tabindex='-1'><a class='header-anchor' href='#deGooglization'>deGooglization</a></h2> <p><a href='Internet%20Freedom.md'>Internet Freedom</a> + <a href='Quit%20and%20switch.md'>Quit and switch</a> + <a href='Switching%20to%20Linux.md'>Switching to Linux</a></p>",
		"content_text": "This is a rough reverse-chronological record of the changes in (or “evolution of”) my approach to hosting and system administration, both for myself and communally. YunoHost Nextcloud bare installation A huge shout-out to my friend Claudio, who helped me understand and perform the most tricky passages. deGooglization Internet Freedom + Quit and switch + Switching to Linux",
		"summary": "This is a rough reverse-chronological record of the changes in (or “evolution of”) my approach to hosting and system administration, both for myself and communally.",
		"date_published": "2026-04-05T21:28:00+02:00",
		
		"tags": ["dev",
		"draft"
		
		],
		"language": "en"
	},
	
	{
		"id": "https://tommi.space/reticulum-workshop/",
		"url": "https://tommi.space/reticulum-workshop/",
		"title": "Reticulum workshop",
		"content_html": "<p>Notes from <a href='https://squ.at/r/c3kj' title='Low-profile and low-energy autonomous networking with Reticulum'>Reticulum Workshop at the Internet Archive Europe</a>, Amsterdam.</p> <ul> <li>IP addresses are assigned by ICANN (from above). In Reticulum, you can announce yourself to the network, only if you want.</li> <li>You can arbitrarily decide if you agree to be a transport node. Good uptime and connection with manu other nodes.</li> <li>Reticulum nodes in Metro line E between Rotterdam and Den Haag</li> </ul>",
		"content_text": "Notes from Reticulum Workshop at the Internet Archive Europe, Amsterdam.  IP addresses are assigned by ICANN (from above). In Reticulum, you can announce yourself to the network, only if you want. You can arbitrarily decide if you agree to be a transport node. Good uptime and connection with manu other nodes. Reticulum nodes in Metro line E between Rotterdam and Den Haag",
		
		"date_published": "2026-03-28T15:11:15+01:00",
		
		"tags": ["geek",
		"wip"
		
		],
		"language": "en"
	}
	]

}

