Improve directory structure in contents folder

This commit is contained in:
2025-11-03 15:00:50 +01:00
parent a551c42f91
commit 36598b95e1
74 changed files with 177 additions and 6204 deletions

View File

@@ -1,300 +1,3 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>404 Page not found :: Privacynerd&#39;s blog</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="" />
<meta name="keywords" content="" />
<meta name="robots" content="noodp" />
<link rel="canonical" href="https://blog.privacynerd.de/en/404.html" />
<link rel="stylesheet" href="https://blog.privacynerd.de/css/buttons.min.86f6b4c106b6c6eb690ae5203d36b442c1f66f718ff4e8164fa86cf6c61ad641.css">
<link rel="stylesheet" href="https://blog.privacynerd.de/css/code.min.4f0ccc8439f99bf7f7970298556b94011aabc1fcae743b6842fc3361a2da9ea3.css">
<link rel="stylesheet" href="https://blog.privacynerd.de/css/fonts.min.5bb7ed13e1d00d8ff39ea84af26737007eb5051b157b86fc24487c94f3dc8bbe.css">
<link rel="stylesheet" href="https://blog.privacynerd.de/css/footer.min.eb8dfc2c6a7eafa36cd3ba92d63e69e849e2200e0002a228d137f236b09ecd75.css">
<link rel="stylesheet" href="https://blog.privacynerd.de/css/gist.min.a751e8b0abe1ba8bc53ced52a38b19d8950fe78ca29454ea8c2595cf26aad5c0.css">
<link rel="stylesheet" href="https://blog.privacynerd.de/css/header.min.75c7eb0e2872d95ff48109c6647d0223a38db52e2561dd87966eb5fc7c6bdac6.css">
<link rel="stylesheet" href="https://blog.privacynerd.de/css/main.min.15870410d15d02abd22fb5ef00996f65a00d04b3a7435e9f83831c7c2298de88.css">
<link rel="stylesheet" href="https://blog.privacynerd.de/css/menu.min.3c17467ebeb3d38663dce68f71f519901124fa5cbb4519b2fb0667a21e9aca39.css">
<link rel="stylesheet" href="https://blog.privacynerd.de/css/pagination.min.bbb986dbce00a5ce5aca0504b7925fc1c581992a4bf57f163e5d69cc1db7d836.css">
<link rel="stylesheet" href="https://blog.privacynerd.de/css/post.min.e6dddd258e64c83e05cec0cd49c05216742d42fc8ecbfbe6b67083412b609bd3.css">
<link rel="stylesheet" href="https://blog.privacynerd.de/css/syntax.min.a0773cce9310cb6d8ed23e50f005448facf29a53001b57e038828daa466b25c0.css">
<link rel="stylesheet" href="https://blog.privacynerd.de/css/terminal.min.e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855.css">
<link rel="stylesheet" href="https://blog.privacynerd.de/css/terms.min.b81791663c3790e738e571cdbf802312390d30e4b1d8dc9d814a5b5454d0ac11.css">
<link rel="stylesheet" href="https://blog.privacynerd.de/terminal.css">
<link rel="shortcut icon" href="https://blog.privacynerd.de/favicon.png">
<link rel="apple-touch-icon" href="https://blog.privacynerd.de/apple-touch-icon.png">
<meta name="twitter:card" content="summary" />
<meta name="twitter:site" content="" />
<meta name="twitter:creator" content="" />
<meta property="og:locale" content="en" />
<meta property="og:type" content="website" />
<meta property="og:title" content="404 Page not found">
<meta property="og:description" content="" />
<meta property="og:url" content="https://blog.privacynerd.de/en/404.html" />
<meta property="og:site_name" content="Privacynerd&#39;s blog" />
<meta property="og:image" content="https://blog.privacynerd.de/og-image.png">
<meta property="og:image:width" content="1200">
<meta property="og:image:height" content="627">
<style>
#banner {
width: 100%;
height: 2rem;
display: grid;
grid-template-columns: 1fr auto;
background: var(--accent);
}
#banner span {
display: flex;
align-items: center;
justify-content: center;
}
#banner a {
color: var(--background);
display: inline;
}
#banner > button {
padding: 0 5px 0 0;
margin: 0;
}
</style>
<div id="banner"><span><a href="https://git.privacynerd.de/git.privacynerd.de/blog.privacynerd.de">Construction site 🚧 | Work in progress</a></span></div>
</head>
<body>
<div class="container center">
<header class="header">
<div class="header__inner">
<div class="header__logo">
<a href="/en">
<div class="logo">
Privacynerd&#39;s blog
</div>
</a>
</div>
<ul class="menu menu--mobile">
<li class="menu__trigger">Menu&nbsp;</li>
<li>
<ul class="menu__dropdown">
<li><a href="/en/about">About</a></li>
<li><a href="/en/tags">Tags</a></li>
<hr />
<li>
<b>
<a href="/en/404.html">English</a>
</b>
</li>
<li>
<a href="/de/404.html">Deutsch</a>
</li>
</ul>
</li>
</ul>
<ul class="menu menu--desktop menu--language-selector">
<li class="menu__trigger">en&nbsp;</li>
<li>
<ul class="menu__dropdown">
<li>
<b>
<a href="/en/404.html">English</a>
</b>
</li>
<li>
<a href="/de/404.html">Deutsch</a>
</li>
</ul>
</li>
</ul>
</div>
<nav class="navigation-menu">
<ul class="navigation-menu__inner menu--desktop">
<li><a href="/en/about" >About</a></li>
<li><a href="/en/tags" >Tags</a></li>
</ul>
</nav>
</header>
<div class="content">
<div class="post">
<h1 class="post-title">404 — Page not found...</h1>
<div class="post-content">
<a href="https://blog.privacynerd.de/">Back to home page&nbsp;</a>
</div>
</div>
</div>
<footer class="footer">
<style>
.antidiscovery i { display: none; }
</style>
<div class="footer__inner">
<div class="copyright copyright--user">
<span class="antidiscovery">© 2025 <i>L</i>B<i>P</i>e<i>o</i>n<i>i</i>j<i>n</i>a<i>c</i>m<i>G</i>i<i>N</i>n<i>U</i> <i>S</i>B<i>k</i>u<i>o</i>r<i>K</i>k<i>y</i>h<i>f</i>a<i>H</i>r<i>r</i>d<i>y</i>t</span>
<span style="margin-right: 10px">:: <a href="https://privacynerd.de/impressum?referrer=https%3a%2f%2fblog.privacynerd.de%2fen%2f404.html">Imprint</a></span>
<span>:: <a href="https://github.com/panr/hugo-theme-terminal" target="_blank">Theme</a> made by <a href="https://github.com/panr" target="_blank">panr</a> (customized)</span>
</div>
</div>
</footer>
<script type="text/javascript" src="/bundle.min.js"></script>
<script src="https://swetrix.privacynerd.de/script.js" defer=""></script>
<script>
document.addEventListener('DOMContentLoaded', function() {
swetrix.init('GyBjobBbBEEC', {apiURL: 'https://swetrix.privacynerd.de/api/log',})
swetrix.trackViews()
swetrix.trackErrors({
sampleRate: 1,
callback: undefined,
})
})
</script>
<noscript>
<img
src="https://swetrix.privacynerd.de/api/log/noscript?pid=GyBjobBbBEEC"
alt=""
referrerpolicy="no-referrer-when-downgrade"
/>
</noscript>
</div>
</body>
</html>
<!doctype html><html lang=en><head><title>404 Page not found :: Privacynerd's blog</title><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><meta name=description content><meta name=keywords content><meta name=robots content="noodp"><link rel=canonical href=https://blog.privacynerd.de/en/404.html><link rel=stylesheet href=https://blog.privacynerd.de/css/buttons.min.86f6b4c106b6c6eb690ae5203d36b442c1f66f718ff4e8164fa86cf6c61ad641.css><link rel=stylesheet href=https://blog.privacynerd.de/css/code.min.4f0ccc8439f99bf7f7970298556b94011aabc1fcae743b6842fc3361a2da9ea3.css><link rel=stylesheet href=https://blog.privacynerd.de/css/fonts.min.5bb7ed13e1d00d8ff39ea84af26737007eb5051b157b86fc24487c94f3dc8bbe.css><link rel=stylesheet href=https://blog.privacynerd.de/css/footer.min.eb8dfc2c6a7eafa36cd3ba92d63e69e849e2200e0002a228d137f236b09ecd75.css><link rel=stylesheet href=https://blog.privacynerd.de/css/gist.min.a751e8b0abe1ba8bc53ced52a38b19d8950fe78ca29454ea8c2595cf26aad5c0.css><link rel=stylesheet href=https://blog.privacynerd.de/css/header.min.75c7eb0e2872d95ff48109c6647d0223a38db52e2561dd87966eb5fc7c6bdac6.css><link rel=stylesheet href=https://blog.privacynerd.de/css/main.min.15870410d15d02abd22fb5ef00996f65a00d04b3a7435e9f83831c7c2298de88.css><link rel=stylesheet href=https://blog.privacynerd.de/css/menu.min.3c17467ebeb3d38663dce68f71f519901124fa5cbb4519b2fb0667a21e9aca39.css><link rel=stylesheet href=https://blog.privacynerd.de/css/pagination.min.bbb986dbce00a5ce5aca0504b7925fc1c581992a4bf57f163e5d69cc1db7d836.css><link rel=stylesheet href=https://blog.privacynerd.de/css/post.min.e6dddd258e64c83e05cec0cd49c05216742d42fc8ecbfbe6b67083412b609bd3.css><link rel=stylesheet href=https://blog.privacynerd.de/css/syntax.min.a0773cce9310cb6d8ed23e50f005448facf29a53001b57e038828daa466b25c0.css><link rel=stylesheet href=https://blog.privacynerd.de/css/terminal.min.e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855.css><link rel=stylesheet href=https://blog.privacynerd.de/css/terms.min.b81791663c3790e738e571cdbf802312390d30e4b1d8dc9d814a5b5454d0ac11.css><link rel=stylesheet href=https://blog.privacynerd.de/terminal.css><link rel="shortcut icon" href=https://blog.privacynerd.de/favicon.png><link rel=apple-touch-icon href=https://blog.privacynerd.de/apple-touch-icon.png><meta name=twitter:card content="summary"><meta name=twitter:site content><meta name=twitter:creator content><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta property="og:title" content="404 Page not found"><meta property="og:description" content><meta property="og:url" content="https://blog.privacynerd.de/en/404.html"><meta property="og:site_name" content="Privacynerd's blog"><meta property="og:image" content="https://blog.privacynerd.de/og-image.png"><meta property="og:image:width" content="1200"><meta property="og:image:height" content="627"><style>#banner{width:100%;height:2rem;display:grid;grid-template-columns:1fr auto;background:var(--accent)}#banner span{display:flex;align-items:center;justify-content:center}#banner a{color:var(--background);display:inline}#banner>button{padding:0 5px 0 0;margin:0}</style><div id=banner><span><a href=https://git.privacynerd.de/git.privacynerd.de/blog.privacynerd.de>Construction site 🚧 | Work in progress</a></span></div></head><body><div class="container center"><header class=header><div class=header__inner><div class=header__logo><a href=/en><div class=logo>Privacynerd's blog</div></a></div><ul class="menu menu--mobile"><li class=menu__trigger>Menu&nbsp;</li><li><ul class=menu__dropdown><li><a href=/en/about>About</a></li><li><a href=/en/tags>Tags</a></li><hr><li><b><a href=/en/404.html>English</a></b></li><li><a href=/de/404.html>Deutsch</a></li></ul></li></ul><ul class="menu menu--desktop menu--language-selector"><li class=menu__trigger>en&nbsp;</li><li><ul class=menu__dropdown><li><b><a href=/en/404.html>English</a></b></li><li><a href=/de/404.html>Deutsch</a></li></ul></li></ul></div><nav class=navigation-menu><ul class="navigation-menu__inner menu--desktop"><li><a href=/en/about>About</a></li><li><a href=/en/tags>Tags</a></li></ul></nav></header><div class=content><div class=post><h1 class=post-title>404 — Page not found...</h1><div class=post-content><a href=https://blog.privacynerd.de/>Back to home page&nbsp;</a></div></div></div><footer class=footer><style>.antidiscovery i{display:none}</style><div class=footer__inner><div class="copyright copyright--user"><span class=antidiscovery>© 2025 <i>L</i>B<i>P</i>e<i>o</i>n<i>i</i>j<i>n</i>a<i>c</i>m<i>G</i>i<i>N</i>n<i>U</i> <i>S</i>B<i>k</i>u<i>o</i>r<i>K</i>k<i>y</i>h<i>f</i>a<i>H</i>r<i>r</i>d<i>y</i>t</span>
<span style=margin-right:10px>:: <a href="https://privacynerd.de/impressum?referrer=https%3a%2f%2fblog.privacynerd.de%2fen%2f404.html">Imprint</a></span>
<span>:: <a href=https://github.com/panr/hugo-theme-terminal target=_blank>Theme</a> made by <a href=https://github.com/panr target=_blank>panr</a> (customized)</span></div></div></footer><script type=text/javascript src=/bundle.min.js></script><script src=https://swetrix.privacynerd.de/script.js defer></script><script>document.addEventListener("DOMContentLoaded",function(){swetrix.init("GyBjobBbBEEC",{apiURL:"https://swetrix.privacynerd.de/api/log"}),swetrix.trackViews(),swetrix.trackErrors({sampleRate:1,callback:void 0})})</script><noscript><img src="https://swetrix.privacynerd.de/api/log/noscript?pid=GyBjobBbBEEC" alt referrerpolicy=no-referrer-when-downgrade></noscript></div></body></html>

View File

@@ -1,337 +1,9 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>About :: Privacynerd&#39;s blog</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="The intention Well, my Name is Benjamin, and Im mostly known as BlueFox. I love tinkering around with electronics, 3D printing stuff and working with wood, but I also do a bit of programming and am an avid self-hoster.
<!doctype html><html lang=en><head><title>About :: Privacynerd's blog</title><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><meta name=description content="The intention Well, my Name is Benjamin, and Im mostly known as BlueFox. I love tinkering around with electronics, 3D printing stuff and working with wood, but I also do a bit of programming and am an avid self-hoster.
This is my personal blog (driven in my free time, all of this is just a hobby) about all the kinds of things I&rsquo;m doing DIY-wise. This includes:
posts about my DIY projects, about new experiences that I gather while tinkering, also an update here and there on existing projects and libraries of mine, and maybe something completely new! Just have a look around, perhaps you&rsquo;ll find something interesting!
" />
<meta name="keywords" content="" />
<meta name="robots" content="noodp" />
<link rel="canonical" href="https://blog.privacynerd.de/en/about/" />
<link rel="stylesheet" href="https://blog.privacynerd.de/css/buttons.min.86f6b4c106b6c6eb690ae5203d36b442c1f66f718ff4e8164fa86cf6c61ad641.css">
<link rel="stylesheet" href="https://blog.privacynerd.de/css/code.min.4f0ccc8439f99bf7f7970298556b94011aabc1fcae743b6842fc3361a2da9ea3.css">
<link rel="stylesheet" href="https://blog.privacynerd.de/css/fonts.min.5bb7ed13e1d00d8ff39ea84af26737007eb5051b157b86fc24487c94f3dc8bbe.css">
<link rel="stylesheet" href="https://blog.privacynerd.de/css/footer.min.eb8dfc2c6a7eafa36cd3ba92d63e69e849e2200e0002a228d137f236b09ecd75.css">
<link rel="stylesheet" href="https://blog.privacynerd.de/css/gist.min.a751e8b0abe1ba8bc53ced52a38b19d8950fe78ca29454ea8c2595cf26aad5c0.css">
<link rel="stylesheet" href="https://blog.privacynerd.de/css/header.min.75c7eb0e2872d95ff48109c6647d0223a38db52e2561dd87966eb5fc7c6bdac6.css">
<link rel="stylesheet" href="https://blog.privacynerd.de/css/main.min.15870410d15d02abd22fb5ef00996f65a00d04b3a7435e9f83831c7c2298de88.css">
<link rel="stylesheet" href="https://blog.privacynerd.de/css/menu.min.3c17467ebeb3d38663dce68f71f519901124fa5cbb4519b2fb0667a21e9aca39.css">
<link rel="stylesheet" href="https://blog.privacynerd.de/css/pagination.min.bbb986dbce00a5ce5aca0504b7925fc1c581992a4bf57f163e5d69cc1db7d836.css">
<link rel="stylesheet" href="https://blog.privacynerd.de/css/post.min.e6dddd258e64c83e05cec0cd49c05216742d42fc8ecbfbe6b67083412b609bd3.css">
<link rel="stylesheet" href="https://blog.privacynerd.de/css/syntax.min.a0773cce9310cb6d8ed23e50f005448facf29a53001b57e038828daa466b25c0.css">
<link rel="stylesheet" href="https://blog.privacynerd.de/css/terminal.min.e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855.css">
<link rel="stylesheet" href="https://blog.privacynerd.de/css/terms.min.b81791663c3790e738e571cdbf802312390d30e4b1d8dc9d814a5b5454d0ac11.css">
<link rel="stylesheet" href="https://blog.privacynerd.de/terminal.css">
<link rel="shortcut icon" href="https://blog.privacynerd.de/favicon.png">
<link rel="apple-touch-icon" href="https://blog.privacynerd.de/apple-touch-icon.png">
<meta name="twitter:card" content="summary" />
<meta name="twitter:site" content="" />
<meta name="twitter:creator" content="" />
<meta property="og:locale" content="en" />
<meta property="og:type" content="article" />
<meta property="og:title" content="About">
<meta property="og:description" content="The intention Well, my Name is Benjamin, and Im mostly known as BlueFox. I love tinkering around with electronics, 3D printing stuff and working with wood, but I also do a bit of programming and am an avid self-hoster.
"><meta name=keywords content><meta name=robots content="noodp"><link rel=canonical href=https://blog.privacynerd.de/en/about/><link rel=stylesheet href=https://blog.privacynerd.de/css/buttons.min.86f6b4c106b6c6eb690ae5203d36b442c1f66f718ff4e8164fa86cf6c61ad641.css><link rel=stylesheet href=https://blog.privacynerd.de/css/code.min.4f0ccc8439f99bf7f7970298556b94011aabc1fcae743b6842fc3361a2da9ea3.css><link rel=stylesheet href=https://blog.privacynerd.de/css/fonts.min.5bb7ed13e1d00d8ff39ea84af26737007eb5051b157b86fc24487c94f3dc8bbe.css><link rel=stylesheet href=https://blog.privacynerd.de/css/footer.min.eb8dfc2c6a7eafa36cd3ba92d63e69e849e2200e0002a228d137f236b09ecd75.css><link rel=stylesheet href=https://blog.privacynerd.de/css/gist.min.a751e8b0abe1ba8bc53ced52a38b19d8950fe78ca29454ea8c2595cf26aad5c0.css><link rel=stylesheet href=https://blog.privacynerd.de/css/header.min.75c7eb0e2872d95ff48109c6647d0223a38db52e2561dd87966eb5fc7c6bdac6.css><link rel=stylesheet href=https://blog.privacynerd.de/css/main.min.15870410d15d02abd22fb5ef00996f65a00d04b3a7435e9f83831c7c2298de88.css><link rel=stylesheet href=https://blog.privacynerd.de/css/menu.min.3c17467ebeb3d38663dce68f71f519901124fa5cbb4519b2fb0667a21e9aca39.css><link rel=stylesheet href=https://blog.privacynerd.de/css/pagination.min.bbb986dbce00a5ce5aca0504b7925fc1c581992a4bf57f163e5d69cc1db7d836.css><link rel=stylesheet href=https://blog.privacynerd.de/css/post.min.e6dddd258e64c83e05cec0cd49c05216742d42fc8ecbfbe6b67083412b609bd3.css><link rel=stylesheet href=https://blog.privacynerd.de/css/syntax.min.a0773cce9310cb6d8ed23e50f005448facf29a53001b57e038828daa466b25c0.css><link rel=stylesheet href=https://blog.privacynerd.de/css/terminal.min.e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855.css><link rel=stylesheet href=https://blog.privacynerd.de/css/terms.min.b81791663c3790e738e571cdbf802312390d30e4b1d8dc9d814a5b5454d0ac11.css><link rel=stylesheet href=https://blog.privacynerd.de/terminal.css><link rel="shortcut icon" href=https://blog.privacynerd.de/favicon.png><link rel=apple-touch-icon href=https://blog.privacynerd.de/apple-touch-icon.png><meta name=twitter:card content="summary"><meta name=twitter:site content><meta name=twitter:creator content><meta property="og:locale" content="en"><meta property="og:type" content="article"><meta property="og:title" content="About"><meta property="og:description" content="The intention Well, my Name is Benjamin, and Im mostly known as BlueFox. I love tinkering around with electronics, 3D printing stuff and working with wood, but I also do a bit of programming and am an avid self-hoster.
This is my personal blog (driven in my free time, all of this is just a hobby) about all the kinds of things I&rsquo;m doing DIY-wise. This includes:
posts about my DIY projects, about new experiences that I gather while tinkering, also an update here and there on existing projects and libraries of mine, and maybe something completely new! Just have a look around, perhaps you&rsquo;ll find something interesting!
" />
<meta property="og:url" content="https://blog.privacynerd.de/en/about/" />
<meta property="og:site_name" content="Privacynerd&#39;s blog" />
<meta property="og:image" content="https://blog.privacynerd.de/og-image.png">
<meta property="og:image:width" content="1200">
<meta property="og:image:height" content="627">
<meta property="article:published_time" content="2025-04-13 13:02:20 &#43;0200 CEST" />
<style>
#banner {
width: 100%;
height: 2rem;
display: grid;
grid-template-columns: 1fr auto;
background: var(--accent);
}
#banner span {
display: flex;
align-items: center;
justify-content: center;
}
#banner a {
color: var(--background);
display: inline;
}
#banner > button {
padding: 0 5px 0 0;
margin: 0;
}
</style>
<div id="banner"><span><a href="https://git.privacynerd.de/git.privacynerd.de/blog.privacynerd.de">Construction site 🚧 | Work in progress</a></span></div>
</head>
<body>
<div class="container center">
<header class="header">
<div class="header__inner">
<div class="header__logo">
<a href="/en">
<div class="logo">
Privacynerd&#39;s blog
</div>
</a>
</div>
<ul class="menu menu--mobile">
<li class="menu__trigger">Menu&nbsp;</li>
<li>
<ul class="menu__dropdown">
<li><a href="/en/about">About</a></li>
<li><a href="/en/tags">Tags</a></li>
<hr />
<li>
<b>
<a href="/en/about/">English</a>
</b>
</li>
<li>
<a href="/de/about/">Deutsch</a>
</li>
</ul>
</li>
</ul>
<ul class="menu menu--desktop menu--language-selector">
<li class="menu__trigger">en&nbsp;</li>
<li>
<ul class="menu__dropdown">
<li>
<b>
<a href="/en/about/">English</a>
</b>
</li>
<li>
<a href="/de/about/">Deutsch</a>
</li>
</ul>
</li>
</ul>
</div>
<nav class="navigation-menu">
<ul class="navigation-menu__inner menu--desktop">
<li><a href="/en/about" >About</a></li>
<li><a href="/en/tags" >Tags</a></li>
</ul>
</nav>
</header>
<div class="content">
<article class="post">
<h1 class="post-title">
<a href="https://blog.privacynerd.de/en/about/">About</a>
</h1>
<div class="post-meta"><time class="post-date">2025-04-13</time><span class="post-reading-time">3 minutes to read (244 words)</span></div>
<div class="post-content"><div>
<h2 id="intention">The intention<a href="#intention" class="hanchor" ariaLabel="Anchor">#</a> </h2>
<p>Well, my Name is Benjamin, and Im mostly known as BlueFox. I love tinkering around with electronics, 3D printing stuff and working with wood, but I also do a bit of programming and am an avid self-hoster.</p>
<p>This is my personal blog (driven in my free time, all of this is just a hobby) about all the kinds of things I&rsquo;m doing DIY-wise. This includes:</p>
<ul>
<li>posts about my DIY projects,</li>
<li>about new experiences that I gather while tinkering,</li>
<li>also an update here and there on existing projects and libraries of mine,</li>
<li>and maybe something completely new!</li>
</ul>
<p>Just have a <a href="/en/">look around</a>, perhaps you&rsquo;ll find something interesting!</p>
<h2 id="the-logo">The Logo<a href="#the-logo" class="hanchor" ariaLabel="Anchor">#</a> </h2>
<p>The logo for this blog was created when I was bored at some point. I just loved the look of it and since then, I use it regularly for projects of mine. To be more precise, I drew it when I was maybe 11 years old, and the first time it was used was in a <code>Django + Python</code> project of mine, called “PiFi” - which is now also the name of a high-speed wifi upgrade kit and a hifi system, both based on Raspberry Pi&rsquo;s (but these are completely unrelated and couldn&rsquo;t have known my naming). Whatever.</p>
<h2 id="the-story-behind-it">The story behind it (and more)<a href="#the-story-behind-it" class="hanchor" ariaLabel="Anchor">#</a> </h2>
<p>The first post in this blog reveals a lot about the history and how the idea for this blog came about. If you are interested, you can read it <a href="https://blog.privacynerd.de/en/posts/how-it-all-began/">here</a>.</p>
</div></div>
</article>
</div>
<footer class="footer">
<style>
.antidiscovery i { display: none; }
</style>
<div class="footer__inner">
<div class="copyright copyright--user">
<span class="antidiscovery">© 2025 <i>L</i>B<i>P</i>e<i>o</i>n<i>i</i>j<i>n</i>a<i>c</i>m<i>G</i>i<i>N</i>n<i>U</i> <i>S</i>B<i>k</i>u<i>o</i>r<i>K</i>k<i>y</i>h<i>f</i>a<i>H</i>r<i>r</i>d<i>y</i>t</span>
<span style="margin-right: 10px">:: <a href="https://privacynerd.de/impressum?referrer=https%3a%2f%2fblog.privacynerd.de%2fen%2fabout%2f">Imprint</a></span>
<span>:: <a href="https://github.com/panr/hugo-theme-terminal" target="_blank">Theme</a> made by <a href="https://github.com/panr" target="_blank">panr</a> (customized)</span>
</div>
</div>
</footer>
<script type="text/javascript" src="/bundle.min.js"></script>
<script src="https://swetrix.privacynerd.de/script.js" defer=""></script>
<script>
document.addEventListener('DOMContentLoaded', function() {
swetrix.init('GyBjobBbBEEC', {apiURL: 'https://swetrix.privacynerd.de/api/log',})
swetrix.trackViews()
swetrix.trackErrors({
sampleRate: 1,
callback: undefined,
})
})
</script>
<noscript>
<img
src="https://swetrix.privacynerd.de/api/log/noscript?pid=GyBjobBbBEEC"
alt=""
referrerpolicy="no-referrer-when-downgrade"
/>
</noscript>
</div>
</body>
</html>
"><meta property="og:url" content="https://blog.privacynerd.de/en/about/"><meta property="og:site_name" content="Privacynerd's blog"><meta property="og:image" content="https://blog.privacynerd.de/og-image.png"><meta property="og:image:width" content="1200"><meta property="og:image:height" content="627"><meta property="article:published_time" content="2025-04-13 13:02:20 +0200 CEST"><style>#banner{width:100%;height:2rem;display:grid;grid-template-columns:1fr auto;background:var(--accent)}#banner span{display:flex;align-items:center;justify-content:center}#banner a{color:var(--background);display:inline}#banner>button{padding:0 5px 0 0;margin:0}</style><div id=banner><span><a href=https://git.privacynerd.de/git.privacynerd.de/blog.privacynerd.de>Construction site 🚧 | Work in progress</a></span></div></head><body><div class="container center"><header class=header><div class=header__inner><div class=header__logo><a href=/en><div class=logo>Privacynerd's blog</div></a></div><ul class="menu menu--mobile"><li class=menu__trigger>Menu&nbsp;</li><li><ul class=menu__dropdown><li><a href=/en/about>About</a></li><li><a href=/en/tags>Tags</a></li><hr><li><b><a href=/en/about/>English</a></b></li><li><a href=/de/about/>Deutsch</a></li></ul></li></ul><ul class="menu menu--desktop menu--language-selector"><li class=menu__trigger>en&nbsp;</li><li><ul class=menu__dropdown><li><b><a href=/en/about/>English</a></b></li><li><a href=/de/about/>Deutsch</a></li></ul></li></ul></div><nav class=navigation-menu><ul class="navigation-menu__inner menu--desktop"><li><a href=/en/about>About</a></li><li><a href=/en/tags>Tags</a></li></ul></nav></header><div class=content><article class=post><h1 class=post-title><a href=https://blog.privacynerd.de/en/about/>About</a></h1><div class=post-meta><time class=post-date>2025-04-13</time><span class=post-reading-time>3 minutes to read (244 words)</span></div><div class=post-content><div><h2 id=intention>The intention<a href=#intention class=hanchor arialabel=Anchor>#</a></h2><p>Well, my Name is Benjamin, and Im mostly known as BlueFox. I love tinkering around with electronics, 3D printing stuff and working with wood, but I also do a bit of programming and am an avid self-hoster.</p><p>This is my personal blog (driven in my free time, all of this is just a hobby) about all the kinds of things I&rsquo;m doing DIY-wise. This includes:</p><ul><li>posts about my DIY projects,</li><li>about new experiences that I gather while tinkering,</li><li>also an update here and there on existing projects and libraries of mine,</li><li>and maybe something completely new!</li></ul><p>Just have a <a href=/en/>look around</a>, perhaps you&rsquo;ll find something interesting!</p><h2 id=the-logo>The Logo<a href=#the-logo class=hanchor arialabel=Anchor>#</a></h2><p>The logo for this blog was created when I was bored at some point. I just loved the look of it and since then, I use it regularly for projects of mine. To be more precise, I drew it when I was maybe 11 years old, and the first time it was used was in a <code>Django + Python</code> project of mine, called “PiFi” - which is now also the name of a high-speed wifi upgrade kit and a hifi system, both based on Raspberry Pi&rsquo;s (but these are completely unrelated and couldn&rsquo;t have known my naming). Whatever.</p><h2 id=the-story-behind-it>The story behind it (and more)<a href=#the-story-behind-it class=hanchor arialabel=Anchor>#</a></h2><p>The first post in this blog reveals a lot about the history and how the idea for this blog came about. If you are interested, you can read it <a href=https://blog.privacynerd.de/en/posts/2025/04/how-it-all-began/>here</a>.</p></div></div></article></div><footer class=footer><style>.antidiscovery i{display:none}</style><div class=footer__inner><div class="copyright copyright--user"><span class=antidiscovery>© 2025 <i>L</i>B<i>P</i>e<i>o</i>n<i>i</i>j<i>n</i>a<i>c</i>m<i>G</i>i<i>N</i>n<i>U</i> <i>S</i>B<i>k</i>u<i>o</i>r<i>K</i>k<i>y</i>h<i>f</i>a<i>H</i>r<i>r</i>d<i>y</i>t</span>
<span style=margin-right:10px>:: <a href="https://privacynerd.de/impressum?referrer=https%3a%2f%2fblog.privacynerd.de%2fen%2fabout%2f">Imprint</a></span>
<span>:: <a href=https://github.com/panr/hugo-theme-terminal target=_blank>Theme</a> made by <a href=https://github.com/panr target=_blank>panr</a> (customized)</span></div></div></footer><script type=text/javascript src=/bundle.min.js></script><script src=https://swetrix.privacynerd.de/script.js defer></script><script>document.addEventListener("DOMContentLoaded",function(){swetrix.init("GyBjobBbBEEC",{apiURL:"https://swetrix.privacynerd.de/api/log"}),swetrix.trackViews(),swetrix.trackErrors({sampleRate:1,callback:void 0})})</script><noscript><img src="https://swetrix.privacynerd.de/api/log/noscript?pid=GyBjobBbBEEC" alt referrerpolicy=no-referrer-when-downgrade></noscript></div></body></html>

View File

@@ -1,302 +1,3 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>Categories :: Privacynerd&#39;s blog</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="" />
<meta name="keywords" content="" />
<meta name="robots" content="noodp" />
<link rel="canonical" href="https://blog.privacynerd.de/en/categories/" />
<link rel="stylesheet" href="https://blog.privacynerd.de/css/buttons.min.86f6b4c106b6c6eb690ae5203d36b442c1f66f718ff4e8164fa86cf6c61ad641.css">
<link rel="stylesheet" href="https://blog.privacynerd.de/css/code.min.4f0ccc8439f99bf7f7970298556b94011aabc1fcae743b6842fc3361a2da9ea3.css">
<link rel="stylesheet" href="https://blog.privacynerd.de/css/fonts.min.5bb7ed13e1d00d8ff39ea84af26737007eb5051b157b86fc24487c94f3dc8bbe.css">
<link rel="stylesheet" href="https://blog.privacynerd.de/css/footer.min.eb8dfc2c6a7eafa36cd3ba92d63e69e849e2200e0002a228d137f236b09ecd75.css">
<link rel="stylesheet" href="https://blog.privacynerd.de/css/gist.min.a751e8b0abe1ba8bc53ced52a38b19d8950fe78ca29454ea8c2595cf26aad5c0.css">
<link rel="stylesheet" href="https://blog.privacynerd.de/css/header.min.75c7eb0e2872d95ff48109c6647d0223a38db52e2561dd87966eb5fc7c6bdac6.css">
<link rel="stylesheet" href="https://blog.privacynerd.de/css/main.min.15870410d15d02abd22fb5ef00996f65a00d04b3a7435e9f83831c7c2298de88.css">
<link rel="stylesheet" href="https://blog.privacynerd.de/css/menu.min.3c17467ebeb3d38663dce68f71f519901124fa5cbb4519b2fb0667a21e9aca39.css">
<link rel="stylesheet" href="https://blog.privacynerd.de/css/pagination.min.bbb986dbce00a5ce5aca0504b7925fc1c581992a4bf57f163e5d69cc1db7d836.css">
<link rel="stylesheet" href="https://blog.privacynerd.de/css/post.min.e6dddd258e64c83e05cec0cd49c05216742d42fc8ecbfbe6b67083412b609bd3.css">
<link rel="stylesheet" href="https://blog.privacynerd.de/css/syntax.min.a0773cce9310cb6d8ed23e50f005448facf29a53001b57e038828daa466b25c0.css">
<link rel="stylesheet" href="https://blog.privacynerd.de/css/terminal.min.e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855.css">
<link rel="stylesheet" href="https://blog.privacynerd.de/css/terms.min.b81791663c3790e738e571cdbf802312390d30e4b1d8dc9d814a5b5454d0ac11.css">
<link rel="stylesheet" href="https://blog.privacynerd.de/terminal.css">
<link rel="shortcut icon" href="https://blog.privacynerd.de/favicon.png">
<link rel="apple-touch-icon" href="https://blog.privacynerd.de/apple-touch-icon.png">
<meta name="twitter:card" content="summary" />
<meta name="twitter:site" content="" />
<meta name="twitter:creator" content="" />
<meta property="og:locale" content="en" />
<meta property="og:type" content="website" />
<meta property="og:title" content="Categories">
<meta property="og:description" content="" />
<meta property="og:url" content="https://blog.privacynerd.de/en/categories/" />
<meta property="og:site_name" content="Privacynerd&#39;s blog" />
<meta property="og:image" content="https://blog.privacynerd.de/og-image.png">
<meta property="og:image:width" content="1200">
<meta property="og:image:height" content="627">
<link href="/en/categories/index.xml" rel="alternate" type="application/rss+xml" title="Privacynerd&#39;s blog" />
<style>
#banner {
width: 100%;
height: 2rem;
display: grid;
grid-template-columns: 1fr auto;
background: var(--accent);
}
#banner span {
display: flex;
align-items: center;
justify-content: center;
}
#banner a {
color: var(--background);
display: inline;
}
#banner > button {
padding: 0 5px 0 0;
margin: 0;
}
</style>
<div id="banner"><span><a href="https://git.privacynerd.de/git.privacynerd.de/blog.privacynerd.de">Construction site 🚧 | Work in progress</a></span></div>
</head>
<body>
<div class="container center">
<header class="header">
<div class="header__inner">
<div class="header__logo">
<a href="/en">
<div class="logo">
Privacynerd&#39;s blog
</div>
</a>
</div>
<ul class="menu menu--mobile">
<li class="menu__trigger">Menu&nbsp;</li>
<li>
<ul class="menu__dropdown">
<li><a href="/en/about">About</a></li>
<li><a href="/en/tags">Tags</a></li>
<hr />
<li>
<b>
<a href="/en/categories/">English</a>
</b>
</li>
<li>
<a href="/de/categories/">Deutsch</a>
</li>
</ul>
</li>
</ul>
<ul class="menu menu--desktop menu--language-selector">
<li class="menu__trigger">en&nbsp;</li>
<li>
<ul class="menu__dropdown">
<li>
<b>
<a href="/en/categories/">English</a>
</b>
</li>
<li>
<a href="/de/categories/">Deutsch</a>
</li>
</ul>
</li>
</ul>
</div>
<nav class="navigation-menu">
<ul class="navigation-menu__inner menu--desktop">
<li><a href="/en/about" >About</a></li>
<li><a href="/en/tags" >Tags</a></li>
</ul>
</nav>
</header>
<div class="content">
<div class="terms">
<h1>Categories</h1>
<ul>
</ul>
</div>
</div>
<footer class="footer">
<style>
.antidiscovery i { display: none; }
</style>
<div class="footer__inner">
<div class="copyright copyright--user">
<span class="antidiscovery">© 2025 <i>L</i>B<i>P</i>e<i>o</i>n<i>i</i>j<i>n</i>a<i>c</i>m<i>G</i>i<i>N</i>n<i>U</i> <i>S</i>B<i>k</i>u<i>o</i>r<i>K</i>k<i>y</i>h<i>f</i>a<i>H</i>r<i>r</i>d<i>y</i>t</span>
<span style="margin-right: 10px">:: <a href="https://privacynerd.de/impressum?referrer=https%3a%2f%2fblog.privacynerd.de%2fen%2fcategories%2f">Imprint</a></span>
<span>:: <a href="https://github.com/panr/hugo-theme-terminal" target="_blank">Theme</a> made by <a href="https://github.com/panr" target="_blank">panr</a> (customized)</span>
</div>
</div>
</footer>
<script type="text/javascript" src="/bundle.min.js"></script>
<script src="https://swetrix.privacynerd.de/script.js" defer=""></script>
<script>
document.addEventListener('DOMContentLoaded', function() {
swetrix.init('GyBjobBbBEEC', {apiURL: 'https://swetrix.privacynerd.de/api/log',})
swetrix.trackViews()
swetrix.trackErrors({
sampleRate: 1,
callback: undefined,
})
})
</script>
<noscript>
<img
src="https://swetrix.privacynerd.de/api/log/noscript?pid=GyBjobBbBEEC"
alt=""
referrerpolicy="no-referrer-when-downgrade"
/>
</noscript>
</div>
</body>
</html>
<!doctype html><html lang=en><head><title>Categories :: Privacynerd's blog</title><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><meta name=description content><meta name=keywords content><meta name=robots content="noodp"><link rel=canonical href=https://blog.privacynerd.de/en/categories/><link rel=stylesheet href=https://blog.privacynerd.de/css/buttons.min.86f6b4c106b6c6eb690ae5203d36b442c1f66f718ff4e8164fa86cf6c61ad641.css><link rel=stylesheet href=https://blog.privacynerd.de/css/code.min.4f0ccc8439f99bf7f7970298556b94011aabc1fcae743b6842fc3361a2da9ea3.css><link rel=stylesheet href=https://blog.privacynerd.de/css/fonts.min.5bb7ed13e1d00d8ff39ea84af26737007eb5051b157b86fc24487c94f3dc8bbe.css><link rel=stylesheet href=https://blog.privacynerd.de/css/footer.min.eb8dfc2c6a7eafa36cd3ba92d63e69e849e2200e0002a228d137f236b09ecd75.css><link rel=stylesheet href=https://blog.privacynerd.de/css/gist.min.a751e8b0abe1ba8bc53ced52a38b19d8950fe78ca29454ea8c2595cf26aad5c0.css><link rel=stylesheet href=https://blog.privacynerd.de/css/header.min.75c7eb0e2872d95ff48109c6647d0223a38db52e2561dd87966eb5fc7c6bdac6.css><link rel=stylesheet href=https://blog.privacynerd.de/css/main.min.15870410d15d02abd22fb5ef00996f65a00d04b3a7435e9f83831c7c2298de88.css><link rel=stylesheet href=https://blog.privacynerd.de/css/menu.min.3c17467ebeb3d38663dce68f71f519901124fa5cbb4519b2fb0667a21e9aca39.css><link rel=stylesheet href=https://blog.privacynerd.de/css/pagination.min.bbb986dbce00a5ce5aca0504b7925fc1c581992a4bf57f163e5d69cc1db7d836.css><link rel=stylesheet href=https://blog.privacynerd.de/css/post.min.e6dddd258e64c83e05cec0cd49c05216742d42fc8ecbfbe6b67083412b609bd3.css><link rel=stylesheet href=https://blog.privacynerd.de/css/syntax.min.a0773cce9310cb6d8ed23e50f005448facf29a53001b57e038828daa466b25c0.css><link rel=stylesheet href=https://blog.privacynerd.de/css/terminal.min.e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855.css><link rel=stylesheet href=https://blog.privacynerd.de/css/terms.min.b81791663c3790e738e571cdbf802312390d30e4b1d8dc9d814a5b5454d0ac11.css><link rel=stylesheet href=https://blog.privacynerd.de/terminal.css><link rel="shortcut icon" href=https://blog.privacynerd.de/favicon.png><link rel=apple-touch-icon href=https://blog.privacynerd.de/apple-touch-icon.png><meta name=twitter:card content="summary"><meta name=twitter:site content><meta name=twitter:creator content><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta property="og:title" content="Categories"><meta property="og:description" content><meta property="og:url" content="https://blog.privacynerd.de/en/categories/"><meta property="og:site_name" content="Privacynerd's blog"><meta property="og:image" content="https://blog.privacynerd.de/og-image.png"><meta property="og:image:width" content="1200"><meta property="og:image:height" content="627"><link href=/en/categories/index.xml rel=alternate type=application/rss+xml title="Privacynerd's blog"><style>#banner{width:100%;height:2rem;display:grid;grid-template-columns:1fr auto;background:var(--accent)}#banner span{display:flex;align-items:center;justify-content:center}#banner a{color:var(--background);display:inline}#banner>button{padding:0 5px 0 0;margin:0}</style><div id=banner><span><a href=https://git.privacynerd.de/git.privacynerd.de/blog.privacynerd.de>Construction site 🚧 | Work in progress</a></span></div></head><body><div class="container center"><header class=header><div class=header__inner><div class=header__logo><a href=/en><div class=logo>Privacynerd's blog</div></a></div><ul class="menu menu--mobile"><li class=menu__trigger>Menu&nbsp;</li><li><ul class=menu__dropdown><li><a href=/en/about>About</a></li><li><a href=/en/tags>Tags</a></li><hr><li><b><a href=/en/categories/>English</a></b></li><li><a href=/de/categories/>Deutsch</a></li></ul></li></ul><ul class="menu menu--desktop menu--language-selector"><li class=menu__trigger>en&nbsp;</li><li><ul class=menu__dropdown><li><b><a href=/en/categories/>English</a></b></li><li><a href=/de/categories/>Deutsch</a></li></ul></li></ul></div><nav class=navigation-menu><ul class="navigation-menu__inner menu--desktop"><li><a href=/en/about>About</a></li><li><a href=/en/tags>Tags</a></li></ul></nav></header><div class=content><div class=terms><h1>Categories</h1><ul></ul></div></div><footer class=footer><style>.antidiscovery i{display:none}</style><div class=footer__inner><div class="copyright copyright--user"><span class=antidiscovery>© 2025 <i>L</i>B<i>P</i>e<i>o</i>n<i>i</i>j<i>n</i>a<i>c</i>m<i>G</i>i<i>N</i>n<i>U</i> <i>S</i>B<i>k</i>u<i>o</i>r<i>K</i>k<i>y</i>h<i>f</i>a<i>H</i>r<i>r</i>d<i>y</i>t</span>
<span style=margin-right:10px>:: <a href="https://privacynerd.de/impressum?referrer=https%3a%2f%2fblog.privacynerd.de%2fen%2fcategories%2f">Imprint</a></span>
<span>:: <a href=https://github.com/panr/hugo-theme-terminal target=_blank>Theme</a> made by <a href=https://github.com/panr target=_blank>panr</a> (customized)</span></div></div></footer><script type=text/javascript src=/bundle.min.js></script><script src=https://swetrix.privacynerd.de/script.js defer></script><script>document.addEventListener("DOMContentLoaded",function(){swetrix.init("GyBjobBbBEEC",{apiURL:"https://swetrix.privacynerd.de/api/log"}),swetrix.trackViews(),swetrix.trackErrors({sampleRate:1,callback:void 0})})</script><noscript><img src="https://swetrix.privacynerd.de/api/log/noscript?pid=GyBjobBbBEEC" alt referrerpolicy=no-referrer-when-downgrade></noscript></div></body></html>

View File

@@ -1,11 +1 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>Categories on Privacynerd&#39;s blog</title>
<link>https://blog.privacynerd.de/en/categories/</link>
<description>Recent content in Categories on Privacynerd&#39;s blog</description>
<generator>Hugo</generator>
<language>en</language>
<atom:link href="https://blog.privacynerd.de/en/categories/index.xml" rel="self" type="application/rss+xml" />
</channel>
</rss>
<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Categories on Privacynerd's blog</title><link>https://blog.privacynerd.de/en/categories/</link><description>Recent content in Categories on Privacynerd's blog</description><generator>Hugo</generator><language>en</language><atom:link href="https://blog.privacynerd.de/en/categories/index.xml" rel="self" type="application/rss+xml"/></channel></rss>

File diff suppressed because one or more lines are too long

View File

@@ -1,33 +1,11 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>Privacynerd&#39;s blog</title>
<link>https://blog.privacynerd.de/en/</link>
<description>Recent content on Privacynerd&#39;s blog</description>
<generator>Hugo</generator>
<language>en</language>
<lastBuildDate>Mon, 14 Apr 2025 08:11:20 +0200</lastBuildDate>
<atom:link href="https://blog.privacynerd.de/en/index.xml" rel="self" type="application/rss+xml" />
<item>
<title>Self-built UV exposure unit (LED)</title>
<link>https://blog.privacynerd.de/en/posts/diy-uv-pcb-exposure-unit/</link>
<pubDate>Mon, 14 Apr 2025 08:11:20 +0200</pubDate>
<guid>https://blog.privacynerd.de/en/posts/diy-uv-pcb-exposure-unit/</guid>
<description>&lt;p&gt;If you&amp;rsquo;ve been around the (electronics) DIY scene for a while, at some point you can&amp;rsquo;t avoid circuit boards (printed circuit boards/PCBs). The main advantages over soldering circuits by hand on perforated or strip-grid boards are that they are easier to replicate (once designed a circuit can theoretically be produced as often as you like) and that space can be used more efficiently (a board is almost always smaller than a soldered perforated grid board with the same circuit). Ultimately, devices with circuit boards also simply look more professional. There are certainly more advantages (and of course also disadvantages!), but I will not list them here for the sake of simplicity.&lt;/p&gt;</description>
</item>
<item>
<title>How everything began - or: the first post!</title>
<link>https://blog.privacynerd.de/en/posts/how-it-all-began/</link>
<pubDate>Sun, 13 Apr 2025 15:10:20 +0200</pubDate>
<guid>https://blog.privacynerd.de/en/posts/how-it-all-began/</guid>
<description>&lt;h2 id=&#34;thinking&#34;&gt;Initial considerations&lt;/h2&gt;&#xA;&lt;p&gt;I&amp;rsquo;ve been thinking about how to write this post for a long time. What needs to be told, what is unimportant? A lot has to be left out for the sake of clarity, and I might not even remember some of it. In any case, I would like to use this article to explain my intention in starting this blog. But to explain that, you have to understand the origins.&lt;/p&gt;</description>
</item>
<item>
<title>About</title>
<link>https://blog.privacynerd.de/en/about/</link>
<pubDate>Sun, 13 Apr 2025 13:02:20 +0200</pubDate>
<guid>https://blog.privacynerd.de/en/about/</guid>
<description>&lt;h2 id=&#34;intention&#34;&gt;The intention&lt;/h2&gt;&#xA;&lt;p&gt;Well, my Name is Benjamin, and Im mostly known as BlueFox. I love tinkering around with electronics, 3D printing stuff and working with wood, but I also do a bit of programming and am an avid self-hoster.&lt;/p&gt;&#xA;&lt;p&gt;This is my personal blog (driven in my free time, all of this is just a hobby) about all the kinds of things I&amp;rsquo;m doing DIY-wise. This includes:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;posts about my DIY projects,&lt;/li&gt;&#xA;&lt;li&gt;about new experiences that I gather while tinkering,&lt;/li&gt;&#xA;&lt;li&gt;also an update here and there on existing projects and libraries of mine,&lt;/li&gt;&#xA;&lt;li&gt;and maybe something completely new!&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Just have a &lt;a href=&#34;https://blog.privacynerd.de/en/&#34;&gt;look around&lt;/a&gt;, perhaps you&amp;rsquo;ll find something interesting!&lt;/p&gt;</description>
</item>
</channel>
</rss>
<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Privacynerd's blog</title><link>https://blog.privacynerd.de/en/</link><description>Recent content on Privacynerd's blog</description><generator>Hugo</generator><language>en</language><lastBuildDate>Mon, 14 Apr 2025 08:11:20 +0200</lastBuildDate><atom:link href="https://blog.privacynerd.de/en/index.xml" rel="self" type="application/rss+xml"/><item><title>Self-built UV exposure unit (LED)</title><link>https://blog.privacynerd.de/en/posts/2025/04/diy-uv-pcb-exposure-unit/</link><pubDate>Mon, 14 Apr 2025 08:11:20 +0200</pubDate><guid>https://blog.privacynerd.de/en/posts/2025/04/diy-uv-pcb-exposure-unit/</guid><description>&lt;p>If you&amp;rsquo;ve been around the (electronics) DIY scene for a while, at some point you can&amp;rsquo;t avoid circuit boards (printed circuit boards/PCBs). The main advantages over soldering circuits by hand on perforated or strip-grid boards are that they are easier to replicate (once designed a circuit can theoretically be produced as often as you like) and that space can be used more efficiently (a board is almost always smaller than a soldered perforated grid board with the same circuit). Ultimately, devices with circuit boards also simply look more professional. There are certainly more advantages (and of course also disadvantages!), but I will not list them here for the sake of simplicity.&lt;/p></description></item><item><title>How everything began - or: the first post!</title><link>https://blog.privacynerd.de/en/posts/2025/04/how-it-all-began/</link><pubDate>Sun, 13 Apr 2025 15:10:20 +0200</pubDate><guid>https://blog.privacynerd.de/en/posts/2025/04/how-it-all-began/</guid><description>&lt;h2 id="thinking">Initial considerations&lt;/h2>
&lt;p>I&amp;rsquo;ve been thinking about how to write this post for a long time. What needs to be told, what is unimportant? A lot has to be left out for the sake of clarity, and I might not even remember some of it. In any case, I would like to use this article to explain my intention in starting this blog. But to explain that, you have to understand the origins.&lt;/p></description></item><item><title>About</title><link>https://blog.privacynerd.de/en/about/</link><pubDate>Sun, 13 Apr 2025 13:02:20 +0200</pubDate><guid>https://blog.privacynerd.de/en/about/</guid><description>&lt;h2 id="intention">The intention&lt;/h2>
&lt;p>Well, my Name is Benjamin, and Im mostly known as BlueFox. I love tinkering around with electronics, 3D printing stuff and working with wood, but I also do a bit of programming and am an avid self-hoster.&lt;/p>
&lt;p>This is my personal blog (driven in my free time, all of this is just a hobby) about all the kinds of things I&amp;rsquo;m doing DIY-wise. This includes:&lt;/p>
&lt;ul>
&lt;li>posts about my DIY projects,&lt;/li>
&lt;li>about new experiences that I gather while tinkering,&lt;/li>
&lt;li>also an update here and there on existing projects and libraries of mine,&lt;/li>
&lt;li>and maybe something completely new!&lt;/li>
&lt;/ul>
&lt;p>Just have a &lt;a href="https://blog.privacynerd.de/en/">look around&lt;/a>, perhaps you&amp;rsquo;ll find something interesting!&lt;/p></description></item></channel></rss>

View File

@@ -1,10 +1 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>https://blog.privacynerd.de/en/</title>
<link rel="canonical" href="https://blog.privacynerd.de/en/">
<meta name="robots" content="noindex">
<meta charset="utf-8">
<meta http-equiv="refresh" content="0; url=https://blog.privacynerd.de/en/">
</head>
</html>
<!doctype html><html lang=en><head><title>https://blog.privacynerd.de/en/</title><link rel=canonical href=https://blog.privacynerd.de/en/><meta name=robots content="noindex"><meta charset=utf-8><meta http-equiv=refresh content="0; url=https://blog.privacynerd.de/en/"></head></html>

View File

Before

Width:  |  Height:  |  Size: 462 KiB

After

Width:  |  Height:  |  Size: 462 KiB

View File

Before

Width:  |  Height:  |  Size: 646 KiB

After

Width:  |  Height:  |  Size: 646 KiB

View File

Before

Width:  |  Height:  |  Size: 360 KiB

After

Width:  |  Height:  |  Size: 360 KiB

View File

Before

Width:  |  Height:  |  Size: 236 KiB

After

Width:  |  Height:  |  Size: 236 KiB

View File

Before

Width:  |  Height:  |  Size: 136 KiB

After

Width:  |  Height:  |  Size: 136 KiB

View File

Before

Width:  |  Height:  |  Size: 324 KiB

After

Width:  |  Height:  |  Size: 324 KiB

File diff suppressed because one or more lines are too long

View File

Before

Width:  |  Height:  |  Size: 714 KiB

After

Width:  |  Height:  |  Size: 714 KiB

View File

Before

Width:  |  Height:  |  Size: 425 KiB

After

Width:  |  Height:  |  Size: 425 KiB

View File

Before

Width:  |  Height:  |  Size: 556 KiB

After

Width:  |  Height:  |  Size: 556 KiB

View File

Before

Width:  |  Height:  |  Size: 6.3 KiB

After

Width:  |  Height:  |  Size: 6.3 KiB

View File

Before

Width:  |  Height:  |  Size: 309 KiB

After

Width:  |  Height:  |  Size: 309 KiB

View File

Before

Width:  |  Height:  |  Size: 386 KiB

After

Width:  |  Height:  |  Size: 386 KiB

View File

Before

Width:  |  Height:  |  Size: 108 KiB

After

Width:  |  Height:  |  Size: 108 KiB

File diff suppressed because one or more lines are too long

View File

Before

Width:  |  Height:  |  Size: 257 KiB

After

Width:  |  Height:  |  Size: 257 KiB

View File

Before

Width:  |  Height:  |  Size: 230 KiB

After

Width:  |  Height:  |  Size: 230 KiB

View File

@@ -1,435 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>Self-built UV exposure unit (LED) :: Privacynerd&#39;s blog</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="If you&rsquo;ve been around the (electronics) DIY scene for a while, at some point you can&rsquo;t avoid circuit boards (printed circuit boards/PCBs). The main advantages over soldering circuits by hand on perforated or strip-grid boards are that they are easier to replicate (once designed a circuit can theoretically be produced as often as you like) and that space can be used more efficiently (a board is almost always smaller than a soldered perforated grid board with the same circuit). Ultimately, devices with circuit boards also simply look more professional. There are certainly more advantages (and of course also disadvantages!), but I will not list them here for the sake of simplicity.
" />
<meta name="keywords" content="" />
<meta name="robots" content="noodp" />
<link rel="canonical" href="https://blog.privacynerd.de/en/posts/diy-uv-pcb-exposure-unit/" />
<link rel="stylesheet" href="https://blog.privacynerd.de/css/buttons.min.86f6b4c106b6c6eb690ae5203d36b442c1f66f718ff4e8164fa86cf6c61ad641.css">
<link rel="stylesheet" href="https://blog.privacynerd.de/css/code.min.4f0ccc8439f99bf7f7970298556b94011aabc1fcae743b6842fc3361a2da9ea3.css">
<link rel="stylesheet" href="https://blog.privacynerd.de/css/fonts.min.5bb7ed13e1d00d8ff39ea84af26737007eb5051b157b86fc24487c94f3dc8bbe.css">
<link rel="stylesheet" href="https://blog.privacynerd.de/css/footer.min.eb8dfc2c6a7eafa36cd3ba92d63e69e849e2200e0002a228d137f236b09ecd75.css">
<link rel="stylesheet" href="https://blog.privacynerd.de/css/gist.min.a751e8b0abe1ba8bc53ced52a38b19d8950fe78ca29454ea8c2595cf26aad5c0.css">
<link rel="stylesheet" href="https://blog.privacynerd.de/css/header.min.75c7eb0e2872d95ff48109c6647d0223a38db52e2561dd87966eb5fc7c6bdac6.css">
<link rel="stylesheet" href="https://blog.privacynerd.de/css/main.min.15870410d15d02abd22fb5ef00996f65a00d04b3a7435e9f83831c7c2298de88.css">
<link rel="stylesheet" href="https://blog.privacynerd.de/css/menu.min.3c17467ebeb3d38663dce68f71f519901124fa5cbb4519b2fb0667a21e9aca39.css">
<link rel="stylesheet" href="https://blog.privacynerd.de/css/pagination.min.bbb986dbce00a5ce5aca0504b7925fc1c581992a4bf57f163e5d69cc1db7d836.css">
<link rel="stylesheet" href="https://blog.privacynerd.de/css/post.min.e6dddd258e64c83e05cec0cd49c05216742d42fc8ecbfbe6b67083412b609bd3.css">
<link rel="stylesheet" href="https://blog.privacynerd.de/css/syntax.min.a0773cce9310cb6d8ed23e50f005448facf29a53001b57e038828daa466b25c0.css">
<link rel="stylesheet" href="https://blog.privacynerd.de/css/terminal.min.e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855.css">
<link rel="stylesheet" href="https://blog.privacynerd.de/css/terms.min.b81791663c3790e738e571cdbf802312390d30e4b1d8dc9d814a5b5454d0ac11.css">
<link rel="stylesheet" href="https://blog.privacynerd.de/terminal.css">
<link rel="shortcut icon" href="https://blog.privacynerd.de/favicon.png">
<link rel="apple-touch-icon" href="https://blog.privacynerd.de/apple-touch-icon.png">
<meta name="twitter:card" content="summary" />
<meta name="twitter:site" content="" />
<meta name="twitter:creator" content="" />
<meta property="og:locale" content="en" />
<meta property="og:type" content="article" />
<meta property="og:title" content="Self-built UV exposure unit (LED)">
<meta property="og:description" content="If you&rsquo;ve been around the (electronics) DIY scene for a while, at some point you can&rsquo;t avoid circuit boards (printed circuit boards/PCBs). The main advantages over soldering circuits by hand on perforated or strip-grid boards are that they are easier to replicate (once designed a circuit can theoretically be produced as often as you like) and that space can be used more efficiently (a board is almost always smaller than a soldered perforated grid board with the same circuit). Ultimately, devices with circuit boards also simply look more professional. There are certainly more advantages (and of course also disadvantages!), but I will not list them here for the sake of simplicity.
" />
<meta property="og:url" content="https://blog.privacynerd.de/en/posts/diy-uv-pcb-exposure-unit/" />
<meta property="og:site_name" content="Privacynerd&#39;s blog" />
<meta property="og:image" content="https://blog.privacynerd.de/en/posts/diy-uv-pcb-exposure-unit/cover.jpg">
<meta property="og:image:width" content="1200">
<meta property="og:image:height" content="627">
<meta property="article:published_time" content="2025-04-14 08:11:20 &#43;0200 CEST" />
<style>
#banner {
width: 100%;
height: 2rem;
display: grid;
grid-template-columns: 1fr auto;
background: var(--accent);
}
#banner span {
display: flex;
align-items: center;
justify-content: center;
}
#banner a {
color: var(--background);
display: inline;
}
#banner > button {
padding: 0 5px 0 0;
margin: 0;
}
</style>
<div id="banner"><span><a href="https://git.privacynerd.de/git.privacynerd.de/blog.privacynerd.de">Construction site 🚧 | Work in progress</a></span></div>
</head>
<body>
<div class="container center">
<header class="header">
<div class="header__inner">
<div class="header__logo">
<a href="/en">
<div class="logo">
Privacynerd&#39;s blog
</div>
</a>
</div>
<ul class="menu menu--mobile">
<li class="menu__trigger">Menu&nbsp;</li>
<li>
<ul class="menu__dropdown">
<li><a href="/en/about">About</a></li>
<li><a href="/en/tags">Tags</a></li>
<hr />
<li>
<b>
<a href="/en/posts/diy-uv-pcb-exposure-unit/">English</a>
</b>
</li>
<li>
<a href="/de/posts/diy-uv-pcb-exposure-unit/">Deutsch</a>
</li>
</ul>
</li>
</ul>
<ul class="menu menu--desktop menu--language-selector">
<li class="menu__trigger">en&nbsp;</li>
<li>
<ul class="menu__dropdown">
<li>
<b>
<a href="/en/posts/diy-uv-pcb-exposure-unit/">English</a>
</b>
</li>
<li>
<a href="/de/posts/diy-uv-pcb-exposure-unit/">Deutsch</a>
</li>
</ul>
</li>
</ul>
</div>
<nav class="navigation-menu">
<ul class="navigation-menu__inner menu--desktop">
<li><a href="/en/about" >About</a></li>
<li><a href="/en/tags" >Tags</a></li>
</ul>
</nav>
</header>
<div class="content">
<article class="post">
<h1 class="post-title">
<a href="https://blog.privacynerd.de/en/posts/diy-uv-pcb-exposure-unit/">Self-built UV exposure unit (LED)</a>
</h1>
<div class="post-meta"><time class="post-date">2025-04-14</time><span class="post-reading-time">11 minutes to read (1122 words)</span></div>
<img src="/en/posts/diy-uv-pcb-exposure-unit/cover.jpg"
class="post-cover"
alt="Self-built UV exposure unit (LED)"
title="Cover Image" />
<div class="table-of-contents">
<h2>
Table of Contents
</h2>
<nav id="TableOfContents">
<ul>
<li><a href="#the-housing">The housing</a></li>
<li><a href="#the-leds">The LEDs</a></li>
<li><a href="#the-lacquering">The lacquering</a></li>
<li><a href="#the-control-unit">The control unit</a></li>
<li><a href="#exposure-time">The practical part - Exposure time</a></li>
</ul>
</nav>
</div>
<div class="post-content"><div>
<p>If you&rsquo;ve been around the (electronics) DIY scene for a while, at some point you can&rsquo;t avoid circuit boards (printed circuit boards/PCBs). The main advantages over soldering circuits by hand on perforated or strip-grid boards are that they are easier to replicate (once designed a circuit can theoretically be produced as often as you like) and that space can be used more efficiently (a board is almost always smaller than a soldered perforated grid board with the same circuit). Ultimately, devices with circuit boards also simply look more professional. There are certainly more advantages (and of course also disadvantages!), but I will not list them here for the sake of simplicity.</p>
<p>Nowadays, it is very easy to have (self-)created circuit board designs manufactured, with relevant offers from China you pay no more than €5 for a simple circuit board with 2 sides. However, the price does not include the shipping costs and the time you have to wait for your PCBs. If you are not planning to produce several different designs a year, or only need a special circuit board once, you are well served with such offers. However, if you often need custom-made products, it can quickly become lucrative (even with the Chinese offers) to bring the production in-house. At the end of the day, it&rsquo;s fun and at least gives you the feeling of a little independence to make your own circuit boards!</p>
<p>So after dreaming of making my own circuit boards for some time, I have now gone one step further in the realization. There are various ways to produce printed circuit boards yourself. The cheapest method is probably exposing a blank PCB with a photopositive coating and then developing and finally etching the exposed areas. Building the etching device myself seemed too tricky, so I decided to buy a used <a href="https://gie-tec.de/produkt/aetzgeraete-fuer-platinen/">Ätzgerät 1 from pro-ma</a>, which was very cheap at €50. But what you can certainly build yourself is the <strong>UV exposure unit</strong>. There are different approaches here, I just want to share mine here (see e.g. <a href="https://www.all4hardware4u.de/platinenherstellung/belichtung/belichtungsgeraet-mit-uv-leds/">here</a> or also <a href="http://www.fdm-ware.de/UV-Led/">here</a> for the models where I found inspiration)!</p>
<p>So enough of the introduction, here&rsquo;s the really important stuff!</p>
<h2 id="the-housing">The housing<a href="#the-housing" class="hanchor" ariaLabel="Anchor">#</a> </h2>
<p>For the housing, I built a simple box from MDF boards with an additional small section at the front, where the control electronics will be located later.</p>
<figure><img src="/en/posts/diy-uv-pcb-exposure-unit/housing-raw-finished.jpg"
alt="This picture would show the finished housing with acrylic glass pane and some loose components."><figcaption>
<p>The finished housing with acrylic glass pane</p>
</figcaption>
</figure>
<p>In order for the UV light to reach the coated circuit board, the holder must be transparent. An acrylic glass pane does the job here. Important here: this <strong>must</strong> be UV-permeable, which is not necessarily the case with panes for the garden area! DIY store staff were unable to help in my case (it&rsquo;s a very specific requirement ;), but thanks to the internet you can find out more here. Sometimes it helps to look on the website of the DIY store of your choice for UV-permeable acrylic glass panes.</p>
<p>This pane must have a certain distance to the LEDs so that the light from the LEDs can be distributed evenly. You can of course calculate a perfect distance at - using the beam angle of the LEDs and the distance between the individual LEDs. However, I decided to use the simpler (and sometimes very inaccurate) rule of thumb here - but it worked.</p>
<figure><img src="/en/posts/diy-uv-pcb-exposure-unit/collage-plans.png"
alt="This picture shows sketches for the individual sides of the wooden box"><figcaption>
<p>Sketches of the box</p>
</figcaption>
</figure>
<h2 id="the-leds">The LEDs<a href="#the-leds" class="hanchor" ariaLabel="Anchor">#</a> </h2>
<p>UV LEDs are quite easy to obtain from electronics suppliers. For this DIY project, I decided to use 48 LEDs in 6 rows of 8 LEDs each on two 160x100mm perforated grid boards (yes, a strip grid is also possible and would have been easier :). Since UV LEDs have an operating voltage of about 3.0 to 3.3V and I wanted to use a 12V power supply, you need a resistor of 470 Ohm for each LED, which drops about 9V at 20mA (there are several good tutorials on the Internet for calculating LED series resistors).</p>
<p>As far as the exposure time is concerned, see below in the section <a href="/en/posts/diy-uv-pcb-exposure-unit/#exposure-time">“The practical part - Exposure time”</a>.</p>
<figure><img src="/en/posts/diy-uv-pcb-exposure-unit/led-distribution.png"
alt="Links: Sketch of the distribution of the LEDs, right: view of the LEDs from above"><figcaption>
<p>left: Sketch of the distribution of the LEDs; right: view of the LEDs from above</p>
</figcaption>
</figure>
<h2 id="the-lacquering">The lacquering<a href="#the-lacquering" class="hanchor" ariaLabel="Anchor">#</a> </h2>
<p>Chrome-effect paint was the paint of choice for the exposure area. So, I masked everything except for the exposure area (and of course
the LEDs!) and painted it several times according to the instructions on the spray can and left it to dry overnight.</p>
<figure><img src="/en/posts/diy-uv-pcb-exposure-unit/masked_for_painting.jpg"
alt="Picture of the box masked for painting"><figcaption>
<p>Box is masked, about to be painted!</p>
</figcaption>
</figure>
<figure><img src="/en/posts/diy-uv-pcb-exposure-unit/painted_inside.jpg"
alt="Picture of the inside of the painted box"><figcaption>
<p>It&rsquo;s shiny!</p>
</figcaption>
</figure>
<h2 id="the-control-unit">The control unit<a href="#the-control-unit" class="hanchor" ariaLabel="Anchor">#</a> </h2>
<p>Here I was faced with a choice: install a simple switch or a more complex logic with a timer function? The idea of the built-in timer seemed appealing - finally programming something hardware-related again. So I assembled a breadboard (perhaps the last one ever?!) with a Raspberry Pi Pico, relays, a connection for an LCD display and some control elements, programmed a small interface with my existing libraries and the electronics were ready! To be installed in the housing, it still needed a cover. All the necessary information can be found in the corresponding <a href="https://git.privacynerd.de/BlueFox/uv-belichter-software">git repository</a>!</p>
<figure><img src="/en/posts/diy-uv-pcb-exposure-unit/controller-on-dividing-wall.jpg"
alt="Picture of the control unit"><figcaption>
<p>The control unit</p>
</figcaption>
</figure>
<figure><img src="/en/posts/diy-uv-pcb-exposure-unit/front-panel.jpg"
alt="Image of the front panel with the LCD and control elements in operation"><figcaption>
<p>Front panel with LCD and control elements in operation</p>
</figcaption>
</figure>
<h2 id="exposure-time">The practical part - Exposure time<a href="#exposure-time" class="hanchor" ariaLabel="Anchor">#</a> </h2>
<p>So what does it look like in practice - the crucial question at the end. I would like to say that this is my first experience with manual PCB production. I used a simple blinky circuit (which was also my first completely self-made PCB design) for the tests.</p>
<figure><img src="/en/posts/diy-uv-pcb-exposure-unit/blinky-test-pcb.png"
alt="Side-by-side view of the printed circuit and the view on the computer with all layers"><figcaption>
<p>The test object&hellip;</p>
</figcaption>
</figure>
<p>So, my first experiences with the self-built exposure unit were mixed. The first attempt with 3 minutes exposure time went somewhat wrong. Specifically, no contours were visible even after 10-20 minutes in the developer at room temperature, and nothing happened even after 20-30 minutes etching. The second attempt was more promising, after 30 minutes of exposure the first contours could be seen after about 15 minutes of development, which actually disappeared during etching. After a few more attempts, I finally came up with the idea of working with two overlapping films instead of one, which meant that much less light came through the printed areas. The results were suddenly improving, and after a short time the circuit board was of sufficient quality for the circuit to function!</p>
<figure><img src="/en/posts/diy-uv-pcb-exposure-unit/first-diy-pcbs.jpg"
alt="Collage of the first manufacturing attempts up to the first functional PCB"><figcaption>
<p>&hellip;and the results</p>
</figcaption>
</figure>
<p>So: The exposure time for successful results is between 40 and 45 minutes. Admittedly, that&rsquo;s quite a long time, but it&rsquo;s sufficient for my first attempts and more than acceptable considering the price of a finished exposure unit (which can easily run into the hundreds) (the exposure unit costs around €30-50 in total - and building it was a lot of fun!). For shorter exposure times, I am considering increasing the number of LEDs afterwards. But that&rsquo;s a story for another time.</p>
</div></div>
<div class="pagination">
<div class="pagination__title">
<span class="pagination__title-h">Read other posts</span>
<hr />
</div>
<div class="pagination__buttons">
<a href="https://blog.privacynerd.de/en/posts/how-it-all-began/" class="button inline next">
[<span class="button__text">How everything began - or: the first post!</span>] &gt;
</a>
</div>
</div>
</article>
</div>
<footer class="footer">
<style>
.antidiscovery i { display: none; }
</style>
<div class="footer__inner">
<div class="copyright copyright--user">
<span class="antidiscovery">© 2025 <i>L</i>B<i>P</i>e<i>o</i>n<i>i</i>j<i>n</i>a<i>c</i>m<i>G</i>i<i>N</i>n<i>U</i> <i>S</i>B<i>k</i>u<i>o</i>r<i>K</i>k<i>y</i>h<i>f</i>a<i>H</i>r<i>r</i>d<i>y</i>t</span>
<span style="margin-right: 10px">:: <a href="https://privacynerd.de/impressum?referrer=https%3a%2f%2fblog.privacynerd.de%2fen%2fposts%2fdiy-uv-pcb-exposure-unit%2f">Imprint</a></span>
<span>:: <a href="https://github.com/panr/hugo-theme-terminal" target="_blank">Theme</a> made by <a href="https://github.com/panr" target="_blank">panr</a> (customized)</span>
</div>
</div>
</footer>
<script type="text/javascript" src="/bundle.min.js"></script>
<script src="https://swetrix.privacynerd.de/script.js" defer=""></script>
<script>
document.addEventListener('DOMContentLoaded', function() {
swetrix.init('GyBjobBbBEEC', {apiURL: 'https://swetrix.privacynerd.de/api/log',})
swetrix.trackViews()
swetrix.trackErrors({
sampleRate: 1,
callback: undefined,
})
})
</script>
<noscript>
<img
src="https://swetrix.privacynerd.de/api/log/noscript?pid=GyBjobBbBEEC"
alt=""
referrerpolicy="no-referrer-when-downgrade"
/>
</noscript>
</div>
</body>
</html>

View File

@@ -1,467 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>How everything began - or: the first post! :: Privacynerd&#39;s blog</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="Initial considerations I&rsquo;ve been thinking about how to write this post for a long time. What needs to be told, what is unimportant? A lot has to be left out for the sake of clarity, and I might not even remember some of it. In any case, I would like to use this article to explain my intention in starting this blog. But to explain that, you have to understand the origins.
" />
<meta name="keywords" content="" />
<meta name="robots" content="noodp" />
<link rel="canonical" href="https://blog.privacynerd.de/en/posts/how-it-all-began/" />
<link rel="stylesheet" href="https://blog.privacynerd.de/css/buttons.min.86f6b4c106b6c6eb690ae5203d36b442c1f66f718ff4e8164fa86cf6c61ad641.css">
<link rel="stylesheet" href="https://blog.privacynerd.de/css/code.min.4f0ccc8439f99bf7f7970298556b94011aabc1fcae743b6842fc3361a2da9ea3.css">
<link rel="stylesheet" href="https://blog.privacynerd.de/css/fonts.min.5bb7ed13e1d00d8ff39ea84af26737007eb5051b157b86fc24487c94f3dc8bbe.css">
<link rel="stylesheet" href="https://blog.privacynerd.de/css/footer.min.eb8dfc2c6a7eafa36cd3ba92d63e69e849e2200e0002a228d137f236b09ecd75.css">
<link rel="stylesheet" href="https://blog.privacynerd.de/css/gist.min.a751e8b0abe1ba8bc53ced52a38b19d8950fe78ca29454ea8c2595cf26aad5c0.css">
<link rel="stylesheet" href="https://blog.privacynerd.de/css/header.min.75c7eb0e2872d95ff48109c6647d0223a38db52e2561dd87966eb5fc7c6bdac6.css">
<link rel="stylesheet" href="https://blog.privacynerd.de/css/main.min.15870410d15d02abd22fb5ef00996f65a00d04b3a7435e9f83831c7c2298de88.css">
<link rel="stylesheet" href="https://blog.privacynerd.de/css/menu.min.3c17467ebeb3d38663dce68f71f519901124fa5cbb4519b2fb0667a21e9aca39.css">
<link rel="stylesheet" href="https://blog.privacynerd.de/css/pagination.min.bbb986dbce00a5ce5aca0504b7925fc1c581992a4bf57f163e5d69cc1db7d836.css">
<link rel="stylesheet" href="https://blog.privacynerd.de/css/post.min.e6dddd258e64c83e05cec0cd49c05216742d42fc8ecbfbe6b67083412b609bd3.css">
<link rel="stylesheet" href="https://blog.privacynerd.de/css/syntax.min.a0773cce9310cb6d8ed23e50f005448facf29a53001b57e038828daa466b25c0.css">
<link rel="stylesheet" href="https://blog.privacynerd.de/css/terminal.min.e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855.css">
<link rel="stylesheet" href="https://blog.privacynerd.de/css/terms.min.b81791663c3790e738e571cdbf802312390d30e4b1d8dc9d814a5b5454d0ac11.css">
<link rel="stylesheet" href="https://blog.privacynerd.de/terminal.css">
<link rel="shortcut icon" href="https://blog.privacynerd.de/favicon.png">
<link rel="apple-touch-icon" href="https://blog.privacynerd.de/apple-touch-icon.png">
<meta name="twitter:card" content="summary" />
<meta name="twitter:site" content="" />
<meta name="twitter:creator" content="" />
<meta property="og:locale" content="en" />
<meta property="og:type" content="article" />
<meta property="og:title" content="How everything began - or: the first post!">
<meta property="og:description" content="Initial considerations I&rsquo;ve been thinking about how to write this post for a long time. What needs to be told, what is unimportant? A lot has to be left out for the sake of clarity, and I might not even remember some of it. In any case, I would like to use this article to explain my intention in starting this blog. But to explain that, you have to understand the origins.
" />
<meta property="og:url" content="https://blog.privacynerd.de/en/posts/how-it-all-began/" />
<meta property="og:site_name" content="Privacynerd&#39;s blog" />
<meta property="og:image" content="https://blog.privacynerd.de/en/posts/how-it-all-began/cover.png">
<meta property="og:image:width" content="1200">
<meta property="og:image:height" content="627">
<meta property="article:published_time" content="2025-04-13 15:10:20 &#43;0200 CEST" />
<style>
#banner {
width: 100%;
height: 2rem;
display: grid;
grid-template-columns: 1fr auto;
background: var(--accent);
}
#banner span {
display: flex;
align-items: center;
justify-content: center;
}
#banner a {
color: var(--background);
display: inline;
}
#banner > button {
padding: 0 5px 0 0;
margin: 0;
}
</style>
<div id="banner"><span><a href="https://git.privacynerd.de/git.privacynerd.de/blog.privacynerd.de">Construction site 🚧 | Work in progress</a></span></div>
</head>
<body>
<div class="container center">
<header class="header">
<div class="header__inner">
<div class="header__logo">
<a href="/en">
<div class="logo">
Privacynerd&#39;s blog
</div>
</a>
</div>
<ul class="menu menu--mobile">
<li class="menu__trigger">Menu&nbsp;</li>
<li>
<ul class="menu__dropdown">
<li><a href="/en/about">About</a></li>
<li><a href="/en/tags">Tags</a></li>
<hr />
<li>
<b>
<a href="/en/posts/how-it-all-began/">English</a>
</b>
</li>
<li>
<a href="/de/posts/how-it-all-began/">Deutsch</a>
</li>
</ul>
</li>
</ul>
<ul class="menu menu--desktop menu--language-selector">
<li class="menu__trigger">en&nbsp;</li>
<li>
<ul class="menu__dropdown">
<li>
<b>
<a href="/en/posts/how-it-all-began/">English</a>
</b>
</li>
<li>
<a href="/de/posts/how-it-all-began/">Deutsch</a>
</li>
</ul>
</li>
</ul>
</div>
<nav class="navigation-menu">
<ul class="navigation-menu__inner menu--desktop">
<li><a href="/en/about" >About</a></li>
<li><a href="/en/tags" >Tags</a></li>
</ul>
</nav>
</header>
<div class="content">
<article class="post">
<h1 class="post-title">
<a href="https://blog.privacynerd.de/en/posts/how-it-all-began/">How everything began - or: the first post!</a>
</h1>
<div class="post-meta"><time class="post-date">2025-04-13</time><span class="post-reading-time">11 minutes to read (1097 words)</span></div>
<img src="/en/posts/how-it-all-began/cover.png"
class="post-cover"
alt="How everything began - or: the first post!"
title="Cover Image" />
<div class="table-of-contents">
<h2>
Table of Contents
</h2>
<nav id="TableOfContents">
<ul>
<li><a href="#thinking">Initial considerations</a></li>
<li><a href="#beginnings">How it all began</a></li>
<li><a href="#covid-19">COVID-19</a></li>
<li><a href="#until-now">Until now&hellip;</a></li>
<li><a href="#planned-content">Planned content</a></li>
</ul>
</nav>
</div>
<div class="post-content"><div>
<h2 id="thinking">Initial considerations<a href="#thinking" class="hanchor" ariaLabel="Anchor">#</a> </h2>
<p>I&rsquo;ve been thinking about how to write this post for a long time. What needs to be told, what is unimportant? A lot has to be left out for the sake of clarity, and I might not even remember some of it. In any case, I would like to use this article to explain my intention in starting this blog. But to explain that, you have to understand the origins.</p>
<h2 id="beginnings">How it all began<a href="#beginnings" class="hanchor" ariaLabel="Anchor">#</a> </h2>
<p>It all started when I was a 5th or 6th grade student (I can&rsquo;t remember exactly!) and started writing a batch script on a laptop for school. Yes, that&rsquo;s how it was, I admit - even if I don&rsquo;t know who or what drove me to do it. But I have a rough idea: I think it was a child&rsquo;s intrinsic motivation to find out how this computer in front of him works that made me do it.</p>
<p>Be that as it may, one of my “programs” looked something like this (yes, partially german):</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-batch" data-lang="batch"><span class="line"><span class="cl"><span class="p">@</span><span class="k">echo</span> off
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="k">echo</span> Herzlich Wilkommen , bitte Passwort eingeben
</span></span><span class="line"><span class="cl"><span class="k">color</span> 7b
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="p">:</span><span class="nl">PSWD</span>
</span></span><span class="line"><span class="cl"><span class="k">set/p</span> <span class="nv">x</span><span class="p">=</span>
</span></span><span class="line"><span class="cl"><span class="k">if</span> &#39;&#39;<span class="nv">%x%</span>&#39;&#39;<span class="o">==</span>&#39;&#39;sehrsicher&#39;&#39; <span class="k">goto</span> <span class="nl">openfile</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="k">pause</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="p">:</span><span class="nl">false</span><span class="c1"> </span>
</span></span><span class="line"><span class="cl"><span class="k">echo</span> Falsches Passwort , bitte erneut versuchen.
</span></span><span class="line"><span class="cl"><span class="k">color</span> 7c
</span></span><span class="line"><span class="cl"><span class="k">goto</span> <span class="nl">PWSD</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="p">:</span><span class="nl">openfile</span>
</span></span><span class="line"><span class="cl"><span class="k">echo</span> Passwort richtig , bitte &#39;Enter&#39; druecken!
</span></span><span class="line"><span class="cl"><span class="k">goto</span> <span class="nl">Video</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="k">pause</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="p">:</span><span class="nl">Video</span>
</span></span><span class="line"><span class="cl"><span class="k">echo</span> Wenn sie sich ein Video anschauen moechten , dann geben sie jetzt ,,Ja`` ein , wenn nicht dann einfach ,,Nein&#39;&#39;!
</span></span><span class="line"><span class="cl"><span class="k">color</span> 7b
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="p">:</span><span class="nl">PSWD</span>
</span></span><span class="line"><span class="cl"><span class="k">set/p</span> <span class="nv">x</span><span class="p">=</span>
</span></span><span class="line"><span class="cl"><span class="k">if</span> &#39;&#39;<span class="nv">%x%</span>&#39;&#39;<span class="o">==</span>&#39;&#39;Ja&#39;&#39; <span class="k">goto</span> <span class="nl">OpenVideo</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="p">:</span><span class="nl">false</span>
</span></span><span class="line"><span class="cl"><span class="k">goto</span> <span class="nl">exit</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="p">:</span><span class="nl">OpenVideo</span><span class="c1"> </span>
</span></span><span class="line"><span class="cl"><span class="k">start</span> C:\Users\<span class="p">&lt;</span>CENSORED<span class="p">&gt;</span>\<span class="p">&lt;</span>YES, REALLY<span class="p">&gt;</span>\
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="p">:</span><span class="nl">exit</span>
</span></span><span class="line"><span class="cl"><span class="k">exit</span>
</span></span></code></pre></div><p>Well, then my father gave me the book, a textbook on Python3<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup>, and there was no turning back. I think I read the entire textbook when I was 11 or 12 years old. Anyway, at some point I switched to Linux (initially <a href="https://linuxmint.com/">Linux Mint</a>) - then came COVID-19<sup id="fnref:2"><a href="#fn:2" class="footnote-ref" role="doc-noteref">2</a></sup>.</p>
<h2 id="covid-19">COVID-19<a href="#covid-19" class="hanchor" ariaLabel="Anchor">#</a> </h2>
<p>For students, COVID-19 and the associated homeschooling and isolation meant one thing above all: a lot of time. They used it in different ways. I used it to pursue my new hobby intensively. During this time, I learned new programming languages like Java (partly for Minecraft plugins, <a href="https://git.privacynerd.de/BlueFox/MC-Plugins">here</a> you can find some), and even taught myself some C and assembler.</p>
<p>During this time, I was given my first Raspberry Pi - with far-reaching consequences. Because it led to me turning more and more to the hardware side. While I had previously written web apps with a database in <a href="https://www.djangoproject.com/">Django</a> or <a href="https://flask.palletsprojects.com/en/stable/">Flask</a> and Python, I was now programming simple blinking circuits, then at some point scripts that read sensor data and displayed it on a small OLED display (0.96&quot;) or switched the lamps in my room on and off at the touch of a button (because a light switch is not enough!). During this time, I also discovered for myself a 3D printer that had been sitting around almost unused for a long time.</p>
<figure><img src="/en/posts/how-it-all-began/esafep.jpg"
alt="Picture of the ESafeP - a wooden ”safe“ with its own software"><figcaption>
<p>The ”ESafeP“ - very stable!</p>
</figcaption>
</figure>
<p>Things got even more hardware-oriented with my first ESP32 - new ideas emerged and with them new projects. A self-built safe (super safe made of wood!) with my own <a href="https://git.privacynerd.de/BlueFox/ESafeP">software</a> was just as much a part of it as my own <a href="https://git.privacynerd.de/NetSpeaker/NetSpeaker">MP3 (and much more) player</a>. The 3D printer was also used time and again, as it is common in the DIY space - for example for the housing for my battery-powered <a href="https://git.privacynerd.de/BlueFox/losungepaper">ePaper showing the german ”Tageslosung“ - a verse from the bible for every day</a>.</p>
<figure><img src="/en/posts/how-it-all-began/netspeaker.jpg"
alt="Image of a finished, self-made NetSpeaker in housing - which is (not) just MP3 player."><figcaption>
<p>A NetSpeaker</p>
</figcaption>
</figure>
<figure><img src="/en/posts/how-it-all-began/losung-epaper.jpg"
alt="Image of the finished ePaper, which displays the current daily verse of the bibel (german ”Tageslosung“)"><figcaption>
<p>Losungs-ePaper (showing a biblical verse of the day)</p>
</figcaption>
</figure>
<p>All in all, the corona pandemic had opened up previously unimagined new spaces, at least for me, and also had its positive sides: During this time, I developed an interest in 3D printing, which could also be the subject of this blog.</p>
<h2 id="until-now">Until now&hellip;<a href="#until-now" class="hanchor" ariaLabel="Anchor">#</a> </h2>
<p>Well, not much has changed since then. At some point, self-hosting got a thing for me, and I also got to know wood as an exciting material (as already mentioned above). It&rsquo;s so cool to see what you can host yourself: your own file synchronization service, your <a href="https://git.privacynerd.de/">own Github</a>, media servers, and so on. Initially, everything ran on the aforementioned Raspberry Pi. Later, however, access from outside the home network was required, and since then many services have been running on a rented server.</p>
<figure><img src="/en/posts/how-it-all-began/gitea-a-self-hosted-github.png"
alt="Screenshot of my self-hosted instance of Gitea"><figcaption>
<p>A ”self-hosted Github“</p>
</figcaption>
</figure>
<p>Not so long ago, I had an idea: I was learning to etch circuit boards myself, and the information I was getting was mainly from other makers&rsquo; blogs. Thus, why not write about what you do? On the one hand, it could actually be that someone looking for it might find their way to the blog, but on the other hand, it&rsquo;s simply a useful way of documenting it, and maybe even something good for future job applications.</p>
<figure><img src="/en/posts/how-it-all-began/etching-station.jpg"
alt="Picture of a setup for manually etching circuit boards; in the picture: a self-built UV exposure unit, an etching unit and a container with caustic soda solution"><figcaption>
<p>The etching setup</p>
</figcaption>
</figure>
<p>So, I sat down and looked for ways to create a blog. Of course, it had to be self-hosted, and maybe even a bit self-made. This led me to <a href="https://gohugo.io/">Hugo</a> (Jekyll was also a consideration), a relatively simple (and very fast) static site generator that can generate websites from Markdown (among other things) and is therefore actually perfect for a blog. When choosing a theme, I initially wavered between ”create it myself“ and ”use an existing one“. Due to a lack of time and for reasons of simplicity, I ended up using an existing one, more precisely <a href="https://themes.gohugo.io/themes/hugo-theme-terminal/">Terminal</a>. Adapted to my needs, the blog itself was already finished relatively quickly<sup id="fnref:3"><a href="#fn:3" class="footnote-ref" role="doc-noteref">3</a></sup>. Now it&rsquo;s just waiting to be filled with content.</p>
<h2 id="planned-content">Planned content<a href="#planned-content" class="hanchor" ariaLabel="Anchor">#</a> </h2>
<p>What you plan at the beginning is rarely implemented in exactly the same way in the end - and that will probably also be the case with this blog, and that&rsquo;s a good thing. After all, everything evolves. But I&rsquo;m still going to write down what I plan to write on this blog in the future - because I do have a rough idea.</p>
<ul>
<li>about my DIY projects,</li>
<li>about new experiences that I gather while tinkering,</li>
<li>also an update here and there on existing projects and libraries of mine,</li>
<li>and maybe something completely new!</li>
</ul>
<p>To summarize: everything I do DIY-wise, I would like to share resp. document here (if there is time and inclination) - in the hope that maybe someone will ask themselves the exact same question as me or have a similar idea to mine, and then find their way to this blog.</p>
<div class="footnotes" role="doc-endnotes">
<hr>
<ol>
<li id="fn:1">
<p><a href="https://www.rheinwerk-verlag.de/python-3-das-umfassende-handbuch/">Python3 - das umfassende Handbuch von Johannes Ernesti und Peter Kaiser</a> (no advertising!)&#160;<a href="#fnref:1" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
<li id="fn:2">
<p>Then again, it wasn&rsquo;t that easy, but for the sake of clarity I&rsquo;ve just simplified here.&#160;<a href="#fnref:2" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
<li id="fn:3">
<p>&hellip;but, to be honest, a few afternoons (and evenings and nights) were spent on it.&#160;<a href="#fnref:3" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
</ol>
</div>
</div></div>
<div class="pagination">
<div class="pagination__title">
<span class="pagination__title-h">Read other posts</span>
<hr />
</div>
<div class="pagination__buttons">
<a href="https://blog.privacynerd.de/en/posts/diy-uv-pcb-exposure-unit/" class="button inline prev">
&lt; [<span class="button__text">Self-built UV exposure unit (LED)</span>]
</a>
</div>
</div>
</article>
</div>
<footer class="footer">
<style>
.antidiscovery i { display: none; }
</style>
<div class="footer__inner">
<div class="copyright copyright--user">
<span class="antidiscovery">© 2025 <i>L</i>B<i>P</i>e<i>o</i>n<i>i</i>j<i>n</i>a<i>c</i>m<i>G</i>i<i>N</i>n<i>U</i> <i>S</i>B<i>k</i>u<i>o</i>r<i>K</i>k<i>y</i>h<i>f</i>a<i>H</i>r<i>r</i>d<i>y</i>t</span>
<span style="margin-right: 10px">:: <a href="https://privacynerd.de/impressum?referrer=https%3a%2f%2fblog.privacynerd.de%2fen%2fposts%2fhow-it-all-began%2f">Imprint</a></span>
<span>:: <a href="https://github.com/panr/hugo-theme-terminal" target="_blank">Theme</a> made by <a href="https://github.com/panr" target="_blank">panr</a> (customized)</span>
</div>
</div>
</footer>
<script type="text/javascript" src="/bundle.min.js"></script>
<script src="https://swetrix.privacynerd.de/script.js" defer=""></script>
<script>
document.addEventListener('DOMContentLoaded', function() {
swetrix.init('GyBjobBbBEEC', {apiURL: 'https://swetrix.privacynerd.de/api/log',})
swetrix.trackViews()
swetrix.trackErrors({
sampleRate: 1,
callback: undefined,
})
})
</script>
<noscript>
<img
src="https://swetrix.privacynerd.de/api/log/noscript?pid=GyBjobBbBEEC"
alt=""
referrerpolicy="no-referrer-when-downgrade"
/>
</noscript>
</div>
</body>
</html>

File diff suppressed because one or more lines are too long

View File

@@ -1,26 +1,2 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>Posts on Privacynerd&#39;s blog</title>
<link>https://blog.privacynerd.de/en/posts/</link>
<description>Recent content in Posts on Privacynerd&#39;s blog</description>
<generator>Hugo</generator>
<language>en</language>
<lastBuildDate>Mon, 14 Apr 2025 08:11:20 +0200</lastBuildDate>
<atom:link href="https://blog.privacynerd.de/en/posts/index.xml" rel="self" type="application/rss+xml" />
<item>
<title>Self-built UV exposure unit (LED)</title>
<link>https://blog.privacynerd.de/en/posts/diy-uv-pcb-exposure-unit/</link>
<pubDate>Mon, 14 Apr 2025 08:11:20 +0200</pubDate>
<guid>https://blog.privacynerd.de/en/posts/diy-uv-pcb-exposure-unit/</guid>
<description>&lt;p&gt;If you&amp;rsquo;ve been around the (electronics) DIY scene for a while, at some point you can&amp;rsquo;t avoid circuit boards (printed circuit boards/PCBs). The main advantages over soldering circuits by hand on perforated or strip-grid boards are that they are easier to replicate (once designed a circuit can theoretically be produced as often as you like) and that space can be used more efficiently (a board is almost always smaller than a soldered perforated grid board with the same circuit). Ultimately, devices with circuit boards also simply look more professional. There are certainly more advantages (and of course also disadvantages!), but I will not list them here for the sake of simplicity.&lt;/p&gt;</description>
</item>
<item>
<title>How everything began - or: the first post!</title>
<link>https://blog.privacynerd.de/en/posts/how-it-all-began/</link>
<pubDate>Sun, 13 Apr 2025 15:10:20 +0200</pubDate>
<guid>https://blog.privacynerd.de/en/posts/how-it-all-began/</guid>
<description>&lt;h2 id=&#34;thinking&#34;&gt;Initial considerations&lt;/h2&gt;&#xA;&lt;p&gt;I&amp;rsquo;ve been thinking about how to write this post for a long time. What needs to be told, what is unimportant? A lot has to be left out for the sake of clarity, and I might not even remember some of it. In any case, I would like to use this article to explain my intention in starting this blog. But to explain that, you have to understand the origins.&lt;/p&gt;</description>
</item>
</channel>
</rss>
<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Posts on Privacynerd's blog</title><link>https://blog.privacynerd.de/en/posts/</link><description>Recent content in Posts on Privacynerd's blog</description><generator>Hugo</generator><language>en</language><lastBuildDate>Mon, 14 Apr 2025 08:11:20 +0200</lastBuildDate><atom:link href="https://blog.privacynerd.de/en/posts/index.xml" rel="self" type="application/rss+xml"/><item><title>Self-built UV exposure unit (LED)</title><link>https://blog.privacynerd.de/en/posts/2025/04/diy-uv-pcb-exposure-unit/</link><pubDate>Mon, 14 Apr 2025 08:11:20 +0200</pubDate><guid>https://blog.privacynerd.de/en/posts/2025/04/diy-uv-pcb-exposure-unit/</guid><description>&lt;p>If you&amp;rsquo;ve been around the (electronics) DIY scene for a while, at some point you can&amp;rsquo;t avoid circuit boards (printed circuit boards/PCBs). The main advantages over soldering circuits by hand on perforated or strip-grid boards are that they are easier to replicate (once designed a circuit can theoretically be produced as often as you like) and that space can be used more efficiently (a board is almost always smaller than a soldered perforated grid board with the same circuit). Ultimately, devices with circuit boards also simply look more professional. There are certainly more advantages (and of course also disadvantages!), but I will not list them here for the sake of simplicity.&lt;/p></description></item><item><title>How everything began - or: the first post!</title><link>https://blog.privacynerd.de/en/posts/2025/04/how-it-all-began/</link><pubDate>Sun, 13 Apr 2025 15:10:20 +0200</pubDate><guid>https://blog.privacynerd.de/en/posts/2025/04/how-it-all-began/</guid><description>&lt;h2 id="thinking">Initial considerations&lt;/h2>
&lt;p>I&amp;rsquo;ve been thinking about how to write this post for a long time. What needs to be told, what is unimportant? A lot has to be left out for the sake of clarity, and I might not even remember some of it. In any case, I would like to use this article to explain my intention in starting this blog. But to explain that, you have to understand the origins.&lt;/p></description></item></channel></rss>

View File

@@ -1,10 +1 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>https://blog.privacynerd.de/en/posts/</title>
<link rel="canonical" href="https://blog.privacynerd.de/en/posts/">
<meta name="robots" content="noindex">
<meta charset="utf-8">
<meta http-equiv="refresh" content="0; url=https://blog.privacynerd.de/en/posts/">
</head>
</html>
<!doctype html><html lang=en><head><title>https://blog.privacynerd.de/en/posts/</title><link rel=canonical href=https://blog.privacynerd.de/en/posts/><meta name=robots content="noindex"><meta charset=utf-8><meta http-equiv=refresh content="0; url=https://blog.privacynerd.de/en/posts/"></head></html>

View File

@@ -1,94 +1 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
xmlns:xhtml="http://www.w3.org/1999/xhtml">
<url>
<loc>https://blog.privacynerd.de/en/posts/</loc>
<lastmod>2025-04-14T08:11:20+02:00</lastmod>
<xhtml:link
rel="alternate"
hreflang="de"
href="https://blog.privacynerd.de/de/posts/"
/>
<xhtml:link
rel="alternate"
hreflang="en"
href="https://blog.privacynerd.de/en/posts/"
/>
</url><url>
<loc>https://blog.privacynerd.de/en/posts/diy-uv-pcb-exposure-unit/</loc>
<lastmod>2025-04-14T08:11:20+02:00</lastmod>
<xhtml:link
rel="alternate"
hreflang="de"
href="https://blog.privacynerd.de/de/posts/diy-uv-pcb-exposure-unit/"
/>
<xhtml:link
rel="alternate"
hreflang="en"
href="https://blog.privacynerd.de/en/posts/diy-uv-pcb-exposure-unit/"
/>
</url><url>
<loc>https://blog.privacynerd.de/en/posts/how-it-all-began/</loc>
<lastmod>2025-04-13T15:10:20+02:00</lastmod>
<xhtml:link
rel="alternate"
hreflang="de"
href="https://blog.privacynerd.de/de/posts/how-it-all-began/"
/>
<xhtml:link
rel="alternate"
hreflang="en"
href="https://blog.privacynerd.de/en/posts/how-it-all-began/"
/>
</url><url>
<loc>https://blog.privacynerd.de/en/about/</loc>
<lastmod>2025-04-13T13:02:20+02:00</lastmod>
<xhtml:link
rel="alternate"
hreflang="de"
href="https://blog.privacynerd.de/de/about/"
/>
<xhtml:link
rel="alternate"
hreflang="en"
href="https://blog.privacynerd.de/en/about/"
/>
</url><url>
<loc>https://blog.privacynerd.de/en/</loc>
<lastmod>2025-04-13T12:54:00+02:00</lastmod>
<xhtml:link
rel="alternate"
hreflang="de"
href="https://blog.privacynerd.de/de/"
/>
<xhtml:link
rel="alternate"
hreflang="en"
href="https://blog.privacynerd.de/en/"
/>
</url><url>
<loc>https://blog.privacynerd.de/en/categories/</loc>
<xhtml:link
rel="alternate"
hreflang="de"
href="https://blog.privacynerd.de/de/categories/"
/>
<xhtml:link
rel="alternate"
hreflang="en"
href="https://blog.privacynerd.de/en/categories/"
/>
</url><url>
<loc>https://blog.privacynerd.de/en/tags/</loc>
<xhtml:link
rel="alternate"
hreflang="de"
href="https://blog.privacynerd.de/de/tags/"
/>
<xhtml:link
rel="alternate"
hreflang="en"
href="https://blog.privacynerd.de/en/tags/"
/>
</url>
</urlset>
<?xml version="1.0" encoding="utf-8" standalone="yes"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml"><url><loc>https://blog.privacynerd.de/en/posts/</loc><lastmod>2025-04-14T08:11:20+02:00</lastmod><xhtml:link rel="alternate" hreflang="de" href="https://blog.privacynerd.de/de/posts/"/><xhtml:link rel="alternate" hreflang="en" href="https://blog.privacynerd.de/en/posts/"/></url><url><loc>https://blog.privacynerd.de/en/posts/2025/04/diy-uv-pcb-exposure-unit/</loc><lastmod>2025-04-14T08:11:20+02:00</lastmod><xhtml:link rel="alternate" hreflang="de" href="https://blog.privacynerd.de/de/posts/2025/04/diy-uv-pcb-exposure-unit/"/><xhtml:link rel="alternate" hreflang="en" href="https://blog.privacynerd.de/en/posts/2025/04/diy-uv-pcb-exposure-unit/"/></url><url><loc>https://blog.privacynerd.de/en/posts/2025/04/how-it-all-began/</loc><lastmod>2025-04-13T15:10:20+02:00</lastmod><xhtml:link rel="alternate" hreflang="de" href="https://blog.privacynerd.de/de/posts/2025/04/how-it-all-began/"/><xhtml:link rel="alternate" hreflang="en" href="https://blog.privacynerd.de/en/posts/2025/04/how-it-all-began/"/></url><url><loc>https://blog.privacynerd.de/en/about/</loc><lastmod>2025-04-13T13:02:20+02:00</lastmod><xhtml:link rel="alternate" hreflang="de" href="https://blog.privacynerd.de/de/about/"/><xhtml:link rel="alternate" hreflang="en" href="https://blog.privacynerd.de/en/about/"/></url><url><loc>https://blog.privacynerd.de/en/</loc><lastmod>2025-04-13T12:54:00+02:00</lastmod><xhtml:link rel="alternate" hreflang="de" href="https://blog.privacynerd.de/de/"/><xhtml:link rel="alternate" hreflang="en" href="https://blog.privacynerd.de/en/"/></url><url><loc>https://blog.privacynerd.de/en/categories/</loc><xhtml:link rel="alternate" hreflang="de" href="https://blog.privacynerd.de/de/categories/"/><xhtml:link rel="alternate" hreflang="en" href="https://blog.privacynerd.de/en/categories/"/></url><url><loc>https://blog.privacynerd.de/en/tags/</loc><xhtml:link rel="alternate" hreflang="de" href="https://blog.privacynerd.de/de/tags/"/><xhtml:link rel="alternate" hreflang="en" href="https://blog.privacynerd.de/en/tags/"/></url></urlset>

View File

@@ -1,302 +1,3 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>Tags :: Privacynerd&#39;s blog</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="" />
<meta name="keywords" content="" />
<meta name="robots" content="noodp" />
<link rel="canonical" href="https://blog.privacynerd.de/en/tags/" />
<link rel="stylesheet" href="https://blog.privacynerd.de/css/buttons.min.86f6b4c106b6c6eb690ae5203d36b442c1f66f718ff4e8164fa86cf6c61ad641.css">
<link rel="stylesheet" href="https://blog.privacynerd.de/css/code.min.4f0ccc8439f99bf7f7970298556b94011aabc1fcae743b6842fc3361a2da9ea3.css">
<link rel="stylesheet" href="https://blog.privacynerd.de/css/fonts.min.5bb7ed13e1d00d8ff39ea84af26737007eb5051b157b86fc24487c94f3dc8bbe.css">
<link rel="stylesheet" href="https://blog.privacynerd.de/css/footer.min.eb8dfc2c6a7eafa36cd3ba92d63e69e849e2200e0002a228d137f236b09ecd75.css">
<link rel="stylesheet" href="https://blog.privacynerd.de/css/gist.min.a751e8b0abe1ba8bc53ced52a38b19d8950fe78ca29454ea8c2595cf26aad5c0.css">
<link rel="stylesheet" href="https://blog.privacynerd.de/css/header.min.75c7eb0e2872d95ff48109c6647d0223a38db52e2561dd87966eb5fc7c6bdac6.css">
<link rel="stylesheet" href="https://blog.privacynerd.de/css/main.min.15870410d15d02abd22fb5ef00996f65a00d04b3a7435e9f83831c7c2298de88.css">
<link rel="stylesheet" href="https://blog.privacynerd.de/css/menu.min.3c17467ebeb3d38663dce68f71f519901124fa5cbb4519b2fb0667a21e9aca39.css">
<link rel="stylesheet" href="https://blog.privacynerd.de/css/pagination.min.bbb986dbce00a5ce5aca0504b7925fc1c581992a4bf57f163e5d69cc1db7d836.css">
<link rel="stylesheet" href="https://blog.privacynerd.de/css/post.min.e6dddd258e64c83e05cec0cd49c05216742d42fc8ecbfbe6b67083412b609bd3.css">
<link rel="stylesheet" href="https://blog.privacynerd.de/css/syntax.min.a0773cce9310cb6d8ed23e50f005448facf29a53001b57e038828daa466b25c0.css">
<link rel="stylesheet" href="https://blog.privacynerd.de/css/terminal.min.e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855.css">
<link rel="stylesheet" href="https://blog.privacynerd.de/css/terms.min.b81791663c3790e738e571cdbf802312390d30e4b1d8dc9d814a5b5454d0ac11.css">
<link rel="stylesheet" href="https://blog.privacynerd.de/terminal.css">
<link rel="shortcut icon" href="https://blog.privacynerd.de/favicon.png">
<link rel="apple-touch-icon" href="https://blog.privacynerd.de/apple-touch-icon.png">
<meta name="twitter:card" content="summary" />
<meta name="twitter:site" content="" />
<meta name="twitter:creator" content="" />
<meta property="og:locale" content="en" />
<meta property="og:type" content="website" />
<meta property="og:title" content="Tags">
<meta property="og:description" content="" />
<meta property="og:url" content="https://blog.privacynerd.de/en/tags/" />
<meta property="og:site_name" content="Privacynerd&#39;s blog" />
<meta property="og:image" content="https://blog.privacynerd.de/og-image.png">
<meta property="og:image:width" content="1200">
<meta property="og:image:height" content="627">
<link href="/en/tags/index.xml" rel="alternate" type="application/rss+xml" title="Privacynerd&#39;s blog" />
<style>
#banner {
width: 100%;
height: 2rem;
display: grid;
grid-template-columns: 1fr auto;
background: var(--accent);
}
#banner span {
display: flex;
align-items: center;
justify-content: center;
}
#banner a {
color: var(--background);
display: inline;
}
#banner > button {
padding: 0 5px 0 0;
margin: 0;
}
</style>
<div id="banner"><span><a href="https://git.privacynerd.de/git.privacynerd.de/blog.privacynerd.de">Construction site 🚧 | Work in progress</a></span></div>
</head>
<body>
<div class="container center">
<header class="header">
<div class="header__inner">
<div class="header__logo">
<a href="/en">
<div class="logo">
Privacynerd&#39;s blog
</div>
</a>
</div>
<ul class="menu menu--mobile">
<li class="menu__trigger">Menu&nbsp;</li>
<li>
<ul class="menu__dropdown">
<li><a href="/en/about">About</a></li>
<li><a href="/en/tags">Tags</a></li>
<hr />
<li>
<b>
<a href="/en/tags/">English</a>
</b>
</li>
<li>
<a href="/de/tags/">Deutsch</a>
</li>
</ul>
</li>
</ul>
<ul class="menu menu--desktop menu--language-selector">
<li class="menu__trigger">en&nbsp;</li>
<li>
<ul class="menu__dropdown">
<li>
<b>
<a href="/en/tags/">English</a>
</b>
</li>
<li>
<a href="/de/tags/">Deutsch</a>
</li>
</ul>
</li>
</ul>
</div>
<nav class="navigation-menu">
<ul class="navigation-menu__inner menu--desktop">
<li><a href="/en/about" >About</a></li>
<li><a href="/en/tags" >Tags</a></li>
</ul>
</nav>
</header>
<div class="content">
<div class="terms">
<h1>Tags</h1>
<ul>
</ul>
</div>
</div>
<footer class="footer">
<style>
.antidiscovery i { display: none; }
</style>
<div class="footer__inner">
<div class="copyright copyright--user">
<span class="antidiscovery">© 2025 <i>L</i>B<i>P</i>e<i>o</i>n<i>i</i>j<i>n</i>a<i>c</i>m<i>G</i>i<i>N</i>n<i>U</i> <i>S</i>B<i>k</i>u<i>o</i>r<i>K</i>k<i>y</i>h<i>f</i>a<i>H</i>r<i>r</i>d<i>y</i>t</span>
<span style="margin-right: 10px">:: <a href="https://privacynerd.de/impressum?referrer=https%3a%2f%2fblog.privacynerd.de%2fen%2ftags%2f">Imprint</a></span>
<span>:: <a href="https://github.com/panr/hugo-theme-terminal" target="_blank">Theme</a> made by <a href="https://github.com/panr" target="_blank">panr</a> (customized)</span>
</div>
</div>
</footer>
<script type="text/javascript" src="/bundle.min.js"></script>
<script src="https://swetrix.privacynerd.de/script.js" defer=""></script>
<script>
document.addEventListener('DOMContentLoaded', function() {
swetrix.init('GyBjobBbBEEC', {apiURL: 'https://swetrix.privacynerd.de/api/log',})
swetrix.trackViews()
swetrix.trackErrors({
sampleRate: 1,
callback: undefined,
})
})
</script>
<noscript>
<img
src="https://swetrix.privacynerd.de/api/log/noscript?pid=GyBjobBbBEEC"
alt=""
referrerpolicy="no-referrer-when-downgrade"
/>
</noscript>
</div>
</body>
</html>
<!doctype html><html lang=en><head><title>Tags :: Privacynerd's blog</title><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><meta name=description content><meta name=keywords content><meta name=robots content="noodp"><link rel=canonical href=https://blog.privacynerd.de/en/tags/><link rel=stylesheet href=https://blog.privacynerd.de/css/buttons.min.86f6b4c106b6c6eb690ae5203d36b442c1f66f718ff4e8164fa86cf6c61ad641.css><link rel=stylesheet href=https://blog.privacynerd.de/css/code.min.4f0ccc8439f99bf7f7970298556b94011aabc1fcae743b6842fc3361a2da9ea3.css><link rel=stylesheet href=https://blog.privacynerd.de/css/fonts.min.5bb7ed13e1d00d8ff39ea84af26737007eb5051b157b86fc24487c94f3dc8bbe.css><link rel=stylesheet href=https://blog.privacynerd.de/css/footer.min.eb8dfc2c6a7eafa36cd3ba92d63e69e849e2200e0002a228d137f236b09ecd75.css><link rel=stylesheet href=https://blog.privacynerd.de/css/gist.min.a751e8b0abe1ba8bc53ced52a38b19d8950fe78ca29454ea8c2595cf26aad5c0.css><link rel=stylesheet href=https://blog.privacynerd.de/css/header.min.75c7eb0e2872d95ff48109c6647d0223a38db52e2561dd87966eb5fc7c6bdac6.css><link rel=stylesheet href=https://blog.privacynerd.de/css/main.min.15870410d15d02abd22fb5ef00996f65a00d04b3a7435e9f83831c7c2298de88.css><link rel=stylesheet href=https://blog.privacynerd.de/css/menu.min.3c17467ebeb3d38663dce68f71f519901124fa5cbb4519b2fb0667a21e9aca39.css><link rel=stylesheet href=https://blog.privacynerd.de/css/pagination.min.bbb986dbce00a5ce5aca0504b7925fc1c581992a4bf57f163e5d69cc1db7d836.css><link rel=stylesheet href=https://blog.privacynerd.de/css/post.min.e6dddd258e64c83e05cec0cd49c05216742d42fc8ecbfbe6b67083412b609bd3.css><link rel=stylesheet href=https://blog.privacynerd.de/css/syntax.min.a0773cce9310cb6d8ed23e50f005448facf29a53001b57e038828daa466b25c0.css><link rel=stylesheet href=https://blog.privacynerd.de/css/terminal.min.e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855.css><link rel=stylesheet href=https://blog.privacynerd.de/css/terms.min.b81791663c3790e738e571cdbf802312390d30e4b1d8dc9d814a5b5454d0ac11.css><link rel=stylesheet href=https://blog.privacynerd.de/terminal.css><link rel="shortcut icon" href=https://blog.privacynerd.de/favicon.png><link rel=apple-touch-icon href=https://blog.privacynerd.de/apple-touch-icon.png><meta name=twitter:card content="summary"><meta name=twitter:site content><meta name=twitter:creator content><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta property="og:title" content="Tags"><meta property="og:description" content><meta property="og:url" content="https://blog.privacynerd.de/en/tags/"><meta property="og:site_name" content="Privacynerd's blog"><meta property="og:image" content="https://blog.privacynerd.de/og-image.png"><meta property="og:image:width" content="1200"><meta property="og:image:height" content="627"><link href=/en/tags/index.xml rel=alternate type=application/rss+xml title="Privacynerd's blog"><style>#banner{width:100%;height:2rem;display:grid;grid-template-columns:1fr auto;background:var(--accent)}#banner span{display:flex;align-items:center;justify-content:center}#banner a{color:var(--background);display:inline}#banner>button{padding:0 5px 0 0;margin:0}</style><div id=banner><span><a href=https://git.privacynerd.de/git.privacynerd.de/blog.privacynerd.de>Construction site 🚧 | Work in progress</a></span></div></head><body><div class="container center"><header class=header><div class=header__inner><div class=header__logo><a href=/en><div class=logo>Privacynerd's blog</div></a></div><ul class="menu menu--mobile"><li class=menu__trigger>Menu&nbsp;</li><li><ul class=menu__dropdown><li><a href=/en/about>About</a></li><li><a href=/en/tags>Tags</a></li><hr><li><b><a href=/en/tags/>English</a></b></li><li><a href=/de/tags/>Deutsch</a></li></ul></li></ul><ul class="menu menu--desktop menu--language-selector"><li class=menu__trigger>en&nbsp;</li><li><ul class=menu__dropdown><li><b><a href=/en/tags/>English</a></b></li><li><a href=/de/tags/>Deutsch</a></li></ul></li></ul></div><nav class=navigation-menu><ul class="navigation-menu__inner menu--desktop"><li><a href=/en/about>About</a></li><li><a href=/en/tags>Tags</a></li></ul></nav></header><div class=content><div class=terms><h1>Tags</h1><ul></ul></div></div><footer class=footer><style>.antidiscovery i{display:none}</style><div class=footer__inner><div class="copyright copyright--user"><span class=antidiscovery>© 2025 <i>L</i>B<i>P</i>e<i>o</i>n<i>i</i>j<i>n</i>a<i>c</i>m<i>G</i>i<i>N</i>n<i>U</i> <i>S</i>B<i>k</i>u<i>o</i>r<i>K</i>k<i>y</i>h<i>f</i>a<i>H</i>r<i>r</i>d<i>y</i>t</span>
<span style=margin-right:10px>:: <a href="https://privacynerd.de/impressum?referrer=https%3a%2f%2fblog.privacynerd.de%2fen%2ftags%2f">Imprint</a></span>
<span>:: <a href=https://github.com/panr/hugo-theme-terminal target=_blank>Theme</a> made by <a href=https://github.com/panr target=_blank>panr</a> (customized)</span></div></div></footer><script type=text/javascript src=/bundle.min.js></script><script src=https://swetrix.privacynerd.de/script.js defer></script><script>document.addEventListener("DOMContentLoaded",function(){swetrix.init("GyBjobBbBEEC",{apiURL:"https://swetrix.privacynerd.de/api/log"}),swetrix.trackViews(),swetrix.trackErrors({sampleRate:1,callback:void 0})})</script><noscript><img src="https://swetrix.privacynerd.de/api/log/noscript?pid=GyBjobBbBEEC" alt referrerpolicy=no-referrer-when-downgrade></noscript></div></body></html>

View File

@@ -1,11 +1 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>Tags on Privacynerd&#39;s blog</title>
<link>https://blog.privacynerd.de/en/tags/</link>
<description>Recent content in Tags on Privacynerd&#39;s blog</description>
<generator>Hugo</generator>
<language>en</language>
<atom:link href="https://blog.privacynerd.de/en/tags/index.xml" rel="self" type="application/rss+xml" />
</channel>
</rss>
<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Tags on Privacynerd's blog</title><link>https://blog.privacynerd.de/en/tags/</link><description>Recent content in Tags on Privacynerd's blog</description><generator>Hugo</generator><language>en</language><atom:link href="https://blog.privacynerd.de/en/tags/index.xml" rel="self" type="application/rss+xml"/></channel></rss>