<?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 Kevin Heruer</title><link>/posts/</link><description>Recent content in Posts on Kevin Heruer</description><generator>Hugo -- gohugo.io</generator><language>en</language><lastBuildDate>Fri, 28 Jul 2023 01:00:00 +0100</lastBuildDate><atom:link href="/posts/index.xml" rel="self" type="application/rss+xml"/><item><title>Revolutionizing Graphic Design with Haikei App: A Comprehensive Review</title><link>/posts/2023/07/28/revolutionizing-graphic-design-with-haikei-app-a-comprehensive-review/</link><pubDate>Fri, 28 Jul 2023 01:00:00 +0100</pubDate><guid>/posts/2023/07/28/revolutionizing-graphic-design-with-haikei-app-a-comprehensive-review/</guid><description>As our world becomes increasingly digital, the demand for eye-catching graphics and aesthetically pleasing content continues to grow. Whether you&amp;rsquo;re a professional designer, a hobbyist, or someone with little to no design experience, creating attractive graphics can often be a daunting task. Enter the Haikei App, a powerful, user-friendly tool designed to streamline the graphic design process. Here&amp;rsquo;s a closer look at this versatile design solution and how it is redefining the realm of graphic design.</description><content>&lt;p>As our world becomes increasingly digital, the demand for eye-catching graphics and aesthetically pleasing content continues to grow. Whether you&amp;rsquo;re a professional designer, a hobbyist, or someone with little to no design experience, creating attractive graphics can often be a daunting task. Enter the &lt;a href="https://app.haikei.app/">Haikei App&lt;/a>, a powerful, user-friendly tool designed to streamline the graphic design process. Here&amp;rsquo;s a closer look at this versatile design solution and how it is redefining the realm of graphic design.&lt;/p>
&lt;h3 id="what-is-haikei-app">What is Haikei App?&lt;/h3>
&lt;p>Haikei (Japanese for &amp;lsquo;Dear&amp;rsquo; or &amp;lsquo;Respected&amp;rsquo;) is a web-based design application created with the aim of simplifying the process of generating unique, customizable SVG (Scalable Vector Graphics) designs. As a generator, Haikei helps users produce a wide variety of graphical components for various uses such as website backgrounds, app illustrations, presentation slides, social media posts, and much more.&lt;/p>
&lt;h3 id="a-user-friendly-interface">A User-friendly Interface&lt;/h3>
&lt;p>One of the most impressive features of Haikei is its user-friendly interface. The application is intuitively designed to ensure that users, regardless of their technical expertise, can easily navigate through its functionalities and design beautiful graphics. It offers a clean, minimalistic workspace with clearly labeled options, sliders, and buttons. The live preview panel is another great feature, providing real-time updates of the designs as you make changes.&lt;/p>
&lt;h3 id="infinite-customizability">Infinite Customizability&lt;/h3>
&lt;p>Haikei offers an extensive range of customizability options to ensure that each design is truly unique. You can effortlessly adjust the color, shape, size, noise, and complexity of your design components using simple sliders. The app also features a vast array of generators for different design elements like blobs, waves, meshes, gradients, and particles. This versatility allows users to create virtually any design they envision.&lt;/p>
&lt;h3 id="svg-and-png-export-options">SVG and PNG Export Options&lt;/h3>
&lt;p>Once you&amp;rsquo;ve crafted your perfect design, Haikei allows you to export your creation in SVG or PNG format. The SVG format is particularly useful as it ensures your design remains crisp and scalable to any size without loss of quality, making it perfect for responsive design projects.&lt;/p>
&lt;h3 id="the-magic-of-haikei-app">The Magic of Haikei App&lt;/h3>
&lt;p>What sets Haikei App apart from other design tools is its unique blend of simplicity and sophistication. Its intuitive interface and extensive customization options make it a breeze to create professional-quality graphics, regardless of your design expertise. By automating the intricate process of SVG creation, Haikei allows users to focus more on the creative aspect of design, and less on the technical intricacies.&lt;/p>
&lt;h3 id="in-summary">In Summary&lt;/h3>
&lt;p>In a world where compelling visuals are key to captivating an audience, Haikei App stands as a powerful ally for anyone seeking to create stunning graphics with ease. Its user-friendly interface, extensive customizability, and export options make it a must-have tool for all designers, regardless of their skill level. Dive into the world of Haikei, and experience the joy of effortless graphic design.&lt;/p></content></item><item><title>Using the same dataset mounted on an app and share it via SMB</title><link>/posts/2023/07/28/sharing-data-sets-betweens-apps-and-smb/</link><pubDate>Fri, 28 Jul 2023 01:00:00 +0100</pubDate><guid>/posts/2023/07/28/sharing-data-sets-betweens-apps-and-smb/</guid><description>The Efficacy of Mounting a Dataset and Sharing It via SMB Simultaneously Discovering the intricacies of dataset management can sometimes seem like an overwhelming puzzle. But, after a lot of learning and tinkering, I’ve finally mastered a method to concurrently mount a dataset and share it via SMB.
Why is This Important? You might wonder, why go through all this trouble? Here’s my use case: I frequently upload videos to my Plex dataset, which is integrated with my Plex TrueNAS app.</description><content>&lt;h2 id="the-efficacy-of-mounting-a-dataset-and-sharing-it-via-smb-simultaneously">The Efficacy of Mounting a Dataset and Sharing It via SMB Simultaneously&lt;/h2>
&lt;p>Discovering the intricacies of dataset management can sometimes seem like an overwhelming puzzle. But, after a lot of learning and tinkering, I’ve finally mastered a method to concurrently mount a dataset and share it via SMB.&lt;/p>
&lt;h3 id="why-is-this-important">Why is This Important?&lt;/h3>
&lt;p>You might wonder, why go through all this trouble? Here’s my use case: I frequently upload videos to my Plex dataset, which is integrated with my Plex TrueNAS app. The conventional approach was to nest a dataset and mount the child dataset while concurrently sharing the parent dataset via SMB. This method, however, became nonviable following an update from TrueNAS.&lt;/p>
&lt;p>Fortunately, it opened up two alternatives. The first is to &lt;a href="/scale/scaletutorials/apps/appadvancedsettings/configuring-host-path-safety-checks/#using-shared-host-paths-with-safety-checks-disabled">disable host path validation&lt;/a>, while the second merges the strengths of NFS and SMB shares using TrueCharts.&lt;/p>
&lt;h3 id="why-i-chose-the-second-option">Why I Chose the Second Option&lt;/h3>
&lt;p>Given that I was already utilizing TrueCharts, the second option was more appealing. The process is simple: instead of the traditional host path, I employed the NFS option in the volume mount of the app. Prior to this change, it&amp;rsquo;s essential to establish the NFS share.&lt;/p>
&lt;p>This decision ensured that I could still manually upload videos to my Plex dataset without any disruption or the need for workarounds. By integrating NFS and SMB shares via TrueCharts, I created a more robust and efficient solution.&lt;/p>
&lt;h3 id="further-reading">Further Reading&lt;/h3>
&lt;p>If you&amp;rsquo;re looking to do the same or just intrigued about this process, you can find more detailed information in this guide: &lt;a href="https://truecharts.org/manual/SCALE/guides/dataset">https://truecharts.org/manual/SCALE/guides/dataset&lt;/a>. Diving into the world of dataset management might seem daunting, but with the right approach and resources, it can transform into a manageable task, and even an enjoyable one.&lt;/p>
&lt;p>Understanding how to effectively manage datasets and sharing options can greatly enhance your system&amp;rsquo;s functionality. It provides more flexibility and control over how your data is accessed and manipulated, leading to improved workflows and efficiencies. So, don&amp;rsquo;t be afraid to explore the world of data management—it&amp;rsquo;s an investment that&amp;rsquo;s sure to pay off.&lt;/p></content></item><item><title>Seagate Skyhawk Drives suck! Part 2</title><link>/posts/2022/10/15/seagate-hdd-updates/</link><pubDate>Sat, 15 Oct 2022 01:00:00 +0100</pubDate><guid>/posts/2022/10/15/seagate-hdd-updates/</guid><description>Last post was about the Seagate Skyhawk HDDs and how they seemed to die like flies. I replaced them with some Toshibas (which are noisier btw) but I wanted to be 100% sure if they were actually dying, so I put them in an external HDD caddy and read out the S.M.A.R.T values. Turns out there is nothing wrong with them??? I also used CrystalDiskInfo and CrystalDiskMark and they seem to be fine.</description><content>&lt;p>Last post was about the Seagate Skyhawk HDDs and how they seemed
to die like flies. I replaced them with some Toshibas (which are noisier btw)
but I wanted to be 100% sure if they were actually dying, so I
put them in an external HDD caddy and read out the S.M.A.R.T values.
Turns out there is nothing wrong with them??? I also used CrystalDiskInfo
and CrystalDiskMark and they seem to be fine.&lt;/p>
&lt;p>So the next thing on the list is the RAM, it&amp;rsquo;s possible the RAM is faulty
and makes the system do unexpected things. They are non ECC because
I&amp;rsquo;m running consumer grade hardware but that shouldn&amp;rsquo;t be the issue,
so now I loaded half of the sticks into my desktop and I&amp;rsquo;m running
MemTest86 to see if I can find anything.&lt;/p>
&lt;p>So now I have 3x 4TB drives extra, I can&amp;rsquo;t put them back into the
system because they&amp;rsquo;re 5700RPM instead of the 7200 the others are
running on. An alternative for them would be to use them as backup
drives, I still have an old 2-bay Synology NAS and backing up the critical
stuff shoulnd&amp;rsquo;t be even close to 4TB making it perfect to run them in
mirror.&lt;/p></content></item><item><title>Seagate Skyhawk Drives suck!</title><link>/posts/2022/10/08/seagate-hdd-experiences/</link><pubDate>Sat, 08 Oct 2022 20:00:00 +0100</pubDate><guid>/posts/2022/10/08/seagate-hdd-experiences/</guid><description>The Seagate Skyhawk drives are advertised as &amp;ldquo;surveillance&amp;rdquo; drives, this basically means that its made for lots of write actions.
But let me give you some backstory, I currently run a TrueNAS Scale server with 8TB in total in one pool split among 3 mirrored vdevs. 2 of these vdevs are 2 mirrored 2TB Skyhawks, the other and most recent one is a 4TB mirrored Toshiba vdev.
In a timespan of 2 years this server has run (1.</description><content>&lt;p>The Seagate Skyhawk drives are advertised as &amp;ldquo;surveillance&amp;rdquo; drives,
this basically means that its made for lots of write actions.&lt;/p>
&lt;p>But let me give you some backstory, I currently run a TrueNAS Scale
server with 8TB in total in one pool split among 3 mirrored vdevs.
2 of these vdevs are 2 mirrored 2TB Skyhawks, the other and most
recent one is a 4TB mirrored Toshiba vdev.&lt;/p>
&lt;p>In a timespan of 2 years this server has run (1.5 years on Proxmox),
I had to replace 3 Seagate drives. 1 2TB and both the 4TB ones. I
know these drives arent made for read/write but still, they tend do
die pretty quick with my setup. And the temperatures arent extremely
high either.&lt;/p>
&lt;p>I&amp;rsquo;ll be testing the Toshiba 4TB drives to see if they keep up better
since these are advertised as NAS drives.&lt;/p>
&lt;p>So at the bottom line, I do NOT recommend Seagate Skyhawk drives as
a cheap option for your server, get something else that&amp;rsquo;s a bit more
expensive instead. It&amp;rsquo;ll be cheaper in the end ;)&lt;/p>
&lt;p>P.S. The drives were advertised as 7200 RPM at tweakers.net but in
reality they&amp;rsquo;re 5400 RPM. The drives in queston are the ST4000VX013
models. Turns out I had to do some more research before buying, but
they are the cheapest (at time of writing).&lt;/p></content></item><item><title>Migrating from Proxmox VE to TrueNAS Scale</title><link>/posts/2022/09/13/migrating-from-proxmox-ve-to-truenas-scale/</link><pubDate>Tue, 13 Sep 2022 19:30:00 +0100</pubDate><guid>/posts/2022/09/13/migrating-from-proxmox-ve-to-truenas-scale/</guid><description>I&amp;rsquo;ve been using Proxmox VE for over a year now, ever since I built the new server. However, I started to run into limitations mainly because Proxmox VE is not the right tool for my situation. I always thought I needed the flexibility off full blown VM&amp;rsquo;s and that the storage side of things came after, I have been proven wrong.
I like to keep things separated, this means that I have over 15 VM&amp;rsquo;s running and most of them are just simple services like a load balancer or a dashboard.</description><content>&lt;p>I&amp;rsquo;ve been using Proxmox VE for over a year now, ever since I built the new
server. However, I started to run into limitations mainly because
Proxmox VE is not the right tool for my situation. I always thought I
needed the flexibility off full blown VM&amp;rsquo;s and that the storage side of
things came after, I have been proven wrong.&lt;/p>
&lt;p>I like to keep things separated, this means that I have over 15 VM&amp;rsquo;s
running and most of them are just simple services like a load balancer
or a dashboard. Running full VM&amp;rsquo;s for this is overkill and has a huge
impact on the server&amp;rsquo;s resources, including storage. Because they&amp;rsquo;re
all VM&amp;rsquo;s they need a boot disk and some storage, the default for a
simple Debian server is around 10 to 20GB which is not fully utilised.&lt;/p>
&lt;p>Also, most of the work and usage is storage. Nextcloud and Plex are the
biggest services running on the server, but far from being the most
critical. Home Assistant is &lt;em>the&lt;/em> most important service running right
now which controls everything in the house.&lt;/p>
&lt;p>Knowing this, the idea is to move to TrueNAS Scale. Mainly because
TrueNAS is focused on storage rather than being a Virtual Machine first
approach. Especially now containerization is the norm, even in enterprise
environments.&lt;/p>
&lt;p>I do know that Proxmox VE has the option to run LXC, but with LXC being
the less popular its safer to go for TrueNAS scale which implements
Kubernetes. Plus TrueNAS has the whole storage first approach, which for
me is the better option because reliable storage (and more user friendly interface)
has become more important for me than flexibility in running environments.&lt;/p>
&lt;p>I will still recommend Proxmox VE to people who need full control over
their VM&amp;rsquo;s, it&amp;rsquo;s especially good for running multiple full blown
desktops with remote login (think thin clients etc).&lt;/p></content></item><item><title>Monitoring is important</title><link>/posts/2022/01/21/monioring-is-important/</link><pubDate>Fri, 21 Jan 2022 21:00:00 +0100</pubDate><guid>/posts/2022/01/21/monioring-is-important/</guid><description>I&amp;rsquo;ve been experimenting with monitoring systems because I was not satisfied with Proxmox&amp;rsquo;s limited reporting of system stats. But that was not the only reason I set up a monitoring system.
I stumbled upon SNMP (Simple Network Management Protocol) and found it it&amp;rsquo;s implemented in anything that has a network connection, it&amp;rsquo;s even implemented in printers and routers. This protocol lets you fetch (and set) a limited set of data, but this is enough for monitoring.</description><content>&lt;p>I&amp;rsquo;ve been experimenting with monitoring systems because I was not satisfied with
Proxmox&amp;rsquo;s limited reporting of system stats. But that was not the only reason
I set up a monitoring system.&lt;/p>
&lt;p>I stumbled upon SNMP (Simple Network Management Protocol) and found it it&amp;rsquo;s
implemented in anything that has a network connection, it&amp;rsquo;s even implemented
in printers and routers. This protocol lets you fetch (and set) a limited set of
data, but this is enough for monitoring. At first I set up Observium, it&amp;rsquo;s a valid
system but I quickly ran in the problem that it doesn&amp;rsquo;t play nice with mDNS for
some reason. I also have not set up an enterprice grade network so I do not have
a local DNS server. I do not want to hack into hosts files or use IP addresses
even though all non-user systems have static IP addresses.&lt;/p>
&lt;p>Next was Zabbix, it&amp;rsquo;s open source and very mature software. Setting it up
(correctly) was quite a lot of work, and the learning curve is a bit steep if you
never really used complete monitoring systems before. However, once Zabbix was
set up and using the built-in templates it&amp;rsquo;s quite easy to start monitoring a
server.&lt;/p>
&lt;p>Currently I have 11 servers running in VM on Proxmox, adding a server to Zabbix
is as easy as &lt;code>apt install zabbix-agent&lt;/code> and adding an IP range into the config.
The most work I had to do for a server was getting the source and building it
myself which was unnecessary because I had to restore the backup anyway
(long story short: I upgraded the OS, it got borked).&lt;/p>
&lt;p>Once I started adding my hosts I noticed that I was getting long disk write wait&amp;rsquo;s,
this could mean a lot of things. Including failing drives. I ignored it mostly and
continued adding all the servers, once that was done I saw more servers throwing
this error. I started investigating and found out there were 2 servers running
MySQL/MariaDB database servers for the applications running on the servers, turns
out that database servers love to read and write (duh). They were slamming the cheap
HDD&amp;rsquo;s I&amp;rsquo;m running in the server which they didn&amp;rsquo;t like, I optimized the configs for
the databases and now most is well.&lt;/p>
&lt;p>&lt;a href="/posts/2022/01/21/images/mysql_config_tweak_full.png">
&lt;figure class="left" >
&lt;img src="/posts/2022/01/21/images/mysql_config_tweak.png" />
&lt;/figure>
&lt;/a>&lt;/p>
&lt;p>I did notice an increase in server/VM responsiveness but the warning(s) still remain,
however looking at the graph it does show a great improvement and it currently just
barely triggers the warning each time. I&amp;rsquo;m thinking of increasing the check for now
and see if I can upgrade the HDD&amp;rsquo;s in the future.&lt;/p>
&lt;p>Another thing I noticed was that running a DB from an SSD really makes a difference:&lt;/p>
&lt;p>&lt;a href="/posts/2022/01/21/images/migration_full.png">
&lt;figure class="left" >
&lt;img src="/posts/2022/01/21/images/migration.png" />
&lt;/figure>
&lt;/a>&lt;/p>
&lt;p>It&amp;rsquo;s obvious SSDs are fast, but seeing a direct impact is really cool! I suggest you
start setting up a monitoring system if you have any interest, the things you can
do with the data is amazing. I might even connect Home Assistant to Zabbix so I have
a single dashboard for all the data.&lt;/p></content></item><item><title>The LaTeX typesetting system</title><link>/posts/2022/01/16/latex/</link><pubDate>Sun, 16 Jan 2022 23:00:00 +0100</pubDate><guid>/posts/2022/01/16/latex/</guid><description>Recently I&amp;rsquo;ve been picking up interest in LaTeX again because of the amount of documenting I&amp;rsquo;ve been doing for my hobby projects. As a programmer and more technical person I do not want to bother with design or layout of my documentation (mostly), I just want it to be readable and functional. The other problem is that when you use a traditional word processor you tend to be stuck with the format unless you explicitly export it to a PDF for example.</description><content>&lt;p>Recently I&amp;rsquo;ve been picking up interest in LaTeX again because of the
amount of documenting I&amp;rsquo;ve been doing for my hobby projects.
As a programmer and more technical person I do not want to bother with
design or layout of my documentation (mostly), I just want it to be
readable and functional. The other problem is that when you use a
traditional word processor you tend to be stuck with the format unless
you explicitly export it to a PDF for example.&lt;/p>
&lt;p>LaTeX is very useful because you&amp;rsquo;re essentially removing the WYSIWYG
layer and &amp;ldquo;programming&amp;rdquo; the document directly, you can see it as
typing the metadata manually intead of having it automatically
generated by an editor. The pro&amp;rsquo;s of this is that you can define
everything you need without having to define the document styling
and setting up/figuring out how to create an index and set the correct
margins.
The cons of LaTeX is that it&amp;rsquo;s very DIY, it&amp;rsquo;s like Vi/Vim, but not that
much of a learning curve. Once you get the idea behind it you see
why people use it, and when you want to finally make your document look
nice you can style it however you want.&lt;/p>
&lt;p>And a final note on this is that LaTeX is useful for moments when
multiple people are working or updating it, since it&amp;rsquo;s all just text at
it&amp;rsquo;s core you can easily check it into a repo and merge changes. When
it&amp;rsquo;s ready you can generate a PDF, HTML, or whatever you want and publish
it.&lt;/p>
&lt;p>I might post some more stuff about LaTeX in the future as I learn more
about it and have used it more.&lt;/p></content></item><item><title>Increasing VM disk size: Final edition</title><link>/posts/2021/07/23/increasing-vm-disk-size-final-edition/</link><pubDate>Fri, 23 Jul 2021 21:47:00 +0100</pubDate><guid>/posts/2021/07/23/increasing-vm-disk-size-final-edition/</guid><description>This post merges both A little follow up on this post and Increasing Disk Size on Existing VM and fixes a couple of mistakes.
First off, go to your Proxmox host. Run the resize command: bash qm resize &amp;lt;vmid&amp;gt; &amp;lt;disk&amp;gt; &amp;lt;size&amp;gt; where vmid is the ID in your VM ID, disk is the identifier of the disk inside the VM, it&amp;rsquo;s most likely to be scsi0. size is the size you want to add or remove, something like +100G or +1T is both valid.</description><content>&lt;p>This post merges both &lt;a href="/posts/2021/01/21/increasing-disk-size-on-existing-vm-disk">A little follow up on this post&lt;/a> and &lt;a href="/posts/2021/01/21/increasing-disk-size-on-existing-vm-disk">Increasing Disk Size on Existing VM&lt;/a>
and fixes a couple of mistakes.&lt;/p>
&lt;p>First off, go to your Proxmox host. Run the resize command:
&lt;div class="collapsable-code">
&lt;input id="763845219" type="checkbox" />
&lt;label for="763845219">
&lt;span class="collapsable-code__language">bash&lt;/span>
&lt;span class="collapsable-code__toggle" data-label-expand="△" data-label-collapse="▽">&lt;/span>
&lt;/label>
&lt;pre class="language-bash" >&lt;code>
qm resize &amp;lt;vmid&amp;gt; &amp;lt;disk&amp;gt; &amp;lt;size&amp;gt;
&lt;/code>&lt;/pre>
&lt;/div>
where &lt;code>vmid&lt;/code> is the ID in your VM ID, &lt;code>disk&lt;/code> is the identifier of the disk inside the VM, it&amp;rsquo;s most likely to be &lt;code>scsi0&lt;/code>.
&lt;code>size&lt;/code> is the size you want to add or remove, something like &lt;code>+100G&lt;/code> or &lt;code>+1T&lt;/code> is both valid.&lt;/p>
&lt;p>Now go into your VM, run the following command to check if the system has notices a disk resize:
&lt;div class="collapsable-code">
&lt;input id="617843592" type="checkbox" />
&lt;label for="617843592">
&lt;span class="collapsable-code__language">bash&lt;/span>
&lt;span class="collapsable-code__toggle" data-label-expand="△" data-label-collapse="▽">&lt;/span>
&lt;/label>
&lt;pre class="language-bash" >&lt;code>
dmesg | grep sda
&lt;/code>&lt;/pre>
&lt;/div>
Where &lt;code>sda&lt;/code> is the disk, it could be vda or sdb.&lt;/p>
&lt;p>Run the following command to get your disk and display the partitions, remember to change &lt;code>sda&lt;/code> if required.
&lt;div class="collapsable-code">
&lt;input id="147835296" type="checkbox" />
&lt;label for="147835296">
&lt;span class="collapsable-code__language">bash&lt;/span>
&lt;span class="collapsable-code__toggle" data-label-expand="△" data-label-collapse="▽">&lt;/span>
&lt;/label>
&lt;pre class="language-bash" >&lt;code>
fdisk -l /dev/sda | grep ^/dev
&lt;/code>&lt;/pre>
&lt;/div>
Remember the number of the partition you want to increase, it&amp;rsquo;s most likely the biggest one.&lt;/p>
&lt;p>Run the following command to open parted with the drive:
&lt;div class="collapsable-code">
&lt;input id="394721685" type="checkbox" />
&lt;label for="394721685">
&lt;span class="collapsable-code__language">bash&lt;/span>
&lt;span class="collapsable-code__toggle" data-label-expand="△" data-label-collapse="▽">&lt;/span>
&lt;/label>
&lt;pre class="language-bash" >&lt;code>
parted /dev/sda
&lt;/code>&lt;/pre>
&lt;/div>
&lt;/p>
&lt;p>Run a &lt;code>list&lt;/code> to check if everything is recognized correctly and run the following command:
&lt;div class="collapsable-code">
&lt;input id="438971526" type="checkbox" />
&lt;label for="438971526">
&lt;span class="collapsable-code__language">bash&lt;/span>
&lt;span class="collapsable-code__toggle" data-label-expand="△" data-label-collapse="▽">&lt;/span>
&lt;/label>
&lt;pre class="language-bash" >&lt;code>
resizepart &amp;lt;partition number, integer only&amp;gt; 100%
&lt;/code>&lt;/pre>
&lt;/div>
You could change the 100% to add only a percentage of the free space and add the remaining
space to another partition, but to keep it simple we&amp;rsquo;ll give it all to this partition.&lt;/p>
&lt;p>If it asks to fix the unused space type &lt;code>F&lt;/code> to fix it, if it asks for a partition number and
size; just put in the values like above.&lt;/p>
&lt;p>Ctrl-C out of Parted and run &lt;code>df -h&lt;/code>, you&amp;rsquo;ll notice that you still do not have your extra space!
Run &lt;code>pvresize /dev/&amp;lt;block&amp;gt;&lt;/code> to start resizing, remember to subsitute &lt;code>&amp;lt;block&amp;gt;&lt;/code> with your partition
like &lt;code>sda3&lt;/code>.&lt;/p>
&lt;p>Now run &lt;code>lvextend -l +100%FREE /dev/mapper/ubuntu--vg-ubuntu--lv&lt;/code> and &lt;code>resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv&lt;/code>
to actually resize your LVM partition. Remember to replace &lt;code>/dev/mapper/ubuntu--vg-ubuntu--lv&lt;/code>
with your LVM partition, you can find it by running &lt;code>df -h&lt;/code> and looking for the one mounted on &lt;code>/&lt;/code>.&lt;/p>
&lt;p>That&amp;rsquo;s it! The drive has been expanded and readily available, no need to reboot!&lt;/p>
&lt;p>Sources:&lt;br>
&lt;a href="https://pve.proxmox.com/wiki/Resize_disks">https://pve.proxmox.com/wiki/Resize_disks&lt;/a>&lt;/p></content></item><item><title>Follow up on increasing existing VM disk size</title><link>/posts/2021/03/21/follow-up-on-increasing-existing-vm-disk-size/</link><pubDate>Sun, 21 Mar 2021 13:47:57 +0100</pubDate><guid>/posts/2021/03/21/follow-up-on-increasing-existing-vm-disk-size/</guid><description>A little follow up on this post: Increasing Disk Size on Existing VM Disk
When extending an LVM system you should also run the following commands:
pvresize /dev/sda3 (replace with your partition)
lvextend -l +100%FREE /dev/mapper/ubuntu--vg-ubuntu--lv (replace with your lvm partition)
resize2fs /dev/mapper/dev/ubuntu--vg-ubuntu--lv (again replace with your lvm partition)</description><content>&lt;p>A little follow up on this post: &lt;a href="/posts/2021/01/21/increasing-disk-size-on-existing-vm-disk">Increasing Disk Size on Existing VM Disk&lt;/a>&lt;/p>
&lt;p>When extending an LVM system you should also run the following commands:&lt;/p>
&lt;p>&lt;code>pvresize /dev/sda3&lt;/code> (replace with your partition)&lt;/p>
&lt;p>&lt;code>lvextend -l +100%FREE /dev/mapper/ubuntu--vg-ubuntu--lv&lt;/code> (replace with your lvm partition)&lt;/p>
&lt;p>&lt;code>resize2fs /dev/mapper/dev/ubuntu--vg-ubuntu--lv&lt;/code> (again replace with your lvm partition)&lt;/p></content></item><item><title>Dualbooting Windows With Linux and WiFi</title><link>/posts/2021/02/10/dualbooting-windows-with-linux-and-wifi/</link><pubDate>Wed, 10 Feb 2021 19:13:57 +0100</pubDate><guid>/posts/2021/02/10/dualbooting-windows-with-linux-and-wifi/</guid><description>Today I ran into a problem that seems to have annoyed a lot of people, so I&amp;rsquo;m just posting it here to spread the word (and maybe for future me to reference back to).
The problem is that when you dual boot Windows and Linux, the chance exists that Windows used Fast Boot. Fast Boot causes the system to keep things like WiFi cards to itself so Linux can&amp;rsquo;t access it and just says it can&amp;rsquo;t find it.</description><content>&lt;p>Today I ran into a problem that seems to have annoyed a lot of people, so I&amp;rsquo;m just
posting it here to spread the word (and maybe for future me to reference back to).&lt;/p>
&lt;p>The problem is that when you dual boot Windows and Linux, the chance exists that Windows
used Fast Boot. Fast Boot causes the system to keep things like WiFi cards to itself so
Linux can&amp;rsquo;t access it and just says it can&amp;rsquo;t find it.&lt;/p>
&lt;p>This causes a lot of headaches for people, including me. So finally after I found the fix
I decided to write up this blogpost. And to be honest, I should have known this since I
&lt;a href="https://wiki.archlinux.org/index.php/Dual_boot_with_Windows#Windows_settings">read the wiki when installing Arch.&lt;/a>&lt;/p>
&lt;p>So at the end of the day, DISABLE WINDOWS FAST BOOT.&lt;/p></content></item><item><title>Pihole</title><link>/posts/2021/02/09/pihole/</link><pubDate>Tue, 09 Feb 2021 17:59:40 +0100</pubDate><guid>/posts/2021/02/09/pihole/</guid><description>Pi-hole What is it? It&amp;rsquo;s a DNS level adblocker, this means running this on your network and
setting Pi-hole as your DNS it will filter out ads for your whole network.
It&amp;rsquo;s easy to set up using a Raspberry Pi for example, all you need is a Pi and an SD card. You should use BalenaEtcher to flash the OS, I recommend Raspberry Pi OS on a Pi for stability. But you can use any Linux based OS that utilizes systemd or sysvinit.</description><content>&lt;h1 id="pi-hole">Pi-hole&lt;/h1>
&lt;p>What is it? It&amp;rsquo;s a DNS level adblocker, this means running this on your network and&lt;br>
setting Pi-hole as your DNS it will filter out ads for your whole network.&lt;/p>
&lt;p>It&amp;rsquo;s easy to set up using a Raspberry Pi for example, all you need is a Pi and an SD card.
You should use BalenaEtcher to flash the OS, I recommend Raspberry Pi OS on a Pi for
stability. But you can use any Linux based OS that utilizes systemd or sysvinit.&lt;/p>
&lt;p>There is also a Docker image if you want to go that route. I&amp;rsquo;m currently running Pi-hole in
a VM on my main server. You can follow the &lt;a href="https://docs.pi-hole.net/main/basic-install/">installation instructions&lt;/a>
to install Pi-hole, following the documentation is pretty straight forward. However, I do
recommend turning off any logging in the Pi-hole admin interface. Unless you want to log
your network traffic of course!&lt;/p>
&lt;p>Just note that Pi-hole does not work with YouTube and Facebook, this is because they serve
their ads from their own domain. So any service serving ads from their own domain will get
through because blocking that domain would mean you would&amp;rsquo;nt be able to browse it either.
I also noticed that advertised results on Google search aren&amp;rsquo;t removed either, the URL behind
it is blocked but the fake search result still pops up.&lt;/p>
&lt;p>I recommend to use Pi-hole as a general ad block and to install an extra adblock addon in your
browser.&lt;/p>
&lt;p>P.S. If any services start behaving weird, like IoT devices or even your TV. Try turning off Pi-hole
and see if that fixes it. If that&amp;rsquo;s the case turn on logging if you haven&amp;rsquo;t already and check which
URL is getting blocked that shouldn&amp;rsquo;t and add it to your whitelist.&lt;/p></content></item><item><title>Increasing Disk Size on Existing VM Disk</title><link>/posts/2021/01/21/increasing-disk-size-on-existing-vm-disk/</link><pubDate>Thu, 21 Jan 2021 17:05:03 +0100</pubDate><guid>/posts/2021/01/21/increasing-disk-size-on-existing-vm-disk/</guid><description>When you&amp;rsquo;re using your Proxmox server you might run in the problem of not having enough HDD space defined for some of your VMs, using ZFS (pools) it&amp;rsquo;s really easy to fix this.
Since all my VM disks are simple files you can easily increase their size by running the following command: bash qm resize &amp;lt;vmid&amp;gt; &amp;lt;disk&amp;gt; &amp;lt;size&amp;gt; Let&amp;rsquo;s say you have a VM with a disk named vm-100-disk-0 and you wan to increase the disk size by 100GB, you just run bash qm resize 100 vm-100-disk-0 &amp;#43;100G and you&amp;rsquo;re halfway there!</description><content>&lt;p>When you&amp;rsquo;re using your Proxmox server you might run in the problem of not having enough
HDD space defined for some of your VMs, using ZFS (pools) it&amp;rsquo;s really easy to fix this.&lt;/p>
&lt;p>Since all my VM disks are simple files you can easily increase their size by running
the following command:
&lt;div class="collapsable-code">
&lt;input id="157429683" type="checkbox" />
&lt;label for="157429683">
&lt;span class="collapsable-code__language">bash&lt;/span>
&lt;span class="collapsable-code__toggle" data-label-expand="△" data-label-collapse="▽">&lt;/span>
&lt;/label>
&lt;pre class="language-bash" >&lt;code>
qm resize &amp;lt;vmid&amp;gt; &amp;lt;disk&amp;gt; &amp;lt;size&amp;gt;
&lt;/code>&lt;/pre>
&lt;/div>
&lt;/p>
&lt;p>Let&amp;rsquo;s say you have a VM with a disk named vm-100-disk-0 and you wan to increase the disk
size by 100GB, you just run
&lt;div class="collapsable-code">
&lt;input id="582417639" type="checkbox" />
&lt;label for="582417639">
&lt;span class="collapsable-code__language">bash&lt;/span>
&lt;span class="collapsable-code__toggle" data-label-expand="△" data-label-collapse="▽">&lt;/span>
&lt;/label>
&lt;pre class="language-bash" >&lt;code>
qm resize 100 vm-100-disk-0 &amp;#43;100G
&lt;/code>&lt;/pre>
&lt;/div>
and you&amp;rsquo;re halfway there!&lt;/p>
&lt;p>Now you need to tell the VM to use the newly added space, first you need to check if
the system sees the new space by running
&lt;div class="collapsable-code">
&lt;input id="395684127" type="checkbox" />
&lt;label for="395684127">
&lt;span class="collapsable-code__language">bash&lt;/span>
&lt;span class="collapsable-code__toggle" data-label-expand="△" data-label-collapse="▽">&lt;/span>
&lt;/label>
&lt;pre class="language-bash" >&lt;code>
dmesg | grep sda
&lt;/code>&lt;/pre>
&lt;/div>
&lt;/p>
&lt;p>Now we need the right partition to add the space to, run the following to check which
partitions there are
&lt;div class="collapsable-code">
&lt;input id="594613782" type="checkbox" />
&lt;label for="594613782">
&lt;span class="collapsable-code__language">bash&lt;/span>
&lt;span class="collapsable-code__toggle" data-label-expand="△" data-label-collapse="▽">&lt;/span>
&lt;/label>
&lt;pre class="language-bash" >&lt;code>
fdisk -l /dev/sda | grep ^/dev
&lt;/code>&lt;/pre>
&lt;/div>
Remember the number /dev/sda3 for example would be 3.&lt;br>
(Just make sure you&amp;rsquo;re grepping the right device, vda is also a possibility.)&lt;/p>
&lt;p>Now run pared with the right device
&lt;div class="collapsable-code">
&lt;input id="539741826" type="checkbox" />
&lt;label for="539741826">
&lt;span class="collapsable-code__language">bash&lt;/span>
&lt;span class="collapsable-code__toggle" data-label-expand="△" data-label-collapse="▽">&lt;/span>
&lt;/label>
&lt;pre class="language-bash" >&lt;code>
parted /dev/sda
&lt;/code>&lt;/pre>
&lt;/div>
&lt;/p>
&lt;p>It will ask you to fix the unused space, enter &lt;code>F&lt;/code> for fix, then run
&lt;div class="collapsable-code">
&lt;input id="549763812" type="checkbox" />
&lt;label for="549763812">
&lt;span class="collapsable-code__language">bash&lt;/span>
&lt;span class="collapsable-code__toggle" data-label-expand="△" data-label-collapse="▽">&lt;/span>
&lt;/label>
&lt;pre class="language-bash" >&lt;code>
resizepart 3 100%
&lt;/code>&lt;/pre>
&lt;/div>
This will resize partition (sda)3 to use 100% of the newly added space.&lt;/p>
&lt;p>That&amp;rsquo;s it, no need to reboot!&lt;/p>
&lt;p>You can find a more detailed description at the source: &lt;a href="https://pve.proxmox.com/wiki/Resize_disks">https://pve.proxmox.com/wiki/Resize_disks&lt;/a>&lt;/p></content></item><item><title>Nextcloud</title><link>/posts/2021/01/20/nextcloud/</link><pubDate>Wed, 20 Jan 2021 10:23:09 +0100</pubDate><guid>/posts/2021/01/20/nextcloud/</guid><description>What is Nextcloud Nextcloud is a complete software package to replace most cloud services like Google, iCloud, Dropbox etc. Nextcloud is branched off from the other solution ownCloud because (from what I&amp;rsquo;ve heard) a couple of devs did not like the direction it was going so they started their own product.
Nextcloud is not just a storage solution, it&amp;rsquo;s a complete package, it&amp;rsquo;s not blazingly fast and it&amp;rsquo;s written in PHP.</description><content>&lt;h1 id="what-is-nextcloud">What is Nextcloud&lt;/h1>
&lt;p>Nextcloud is a complete software package to replace most cloud services
like Google, iCloud, Dropbox etc. Nextcloud is branched off from the other
solution ownCloud because (from what I&amp;rsquo;ve heard) a couple of devs did not
like the direction it was going so they started their own product.&lt;/p>
&lt;p>Nextcloud is not just a storage solution, it&amp;rsquo;s a complete package, it&amp;rsquo;s not
blazingly fast and it&amp;rsquo;s written in PHP. But it does offer great integration
with other services and has tons of plugins, there are plugins for monitoring
your Nextcloud instance itself or third party services. It also supports contacts,
calendars, Kanban boards, and even complete chat integrations with video.&lt;/p>
&lt;h1 id="why-nextcloud">Why Nextcloud&lt;/h1>
&lt;p>I mainly use Nextcloud as a Google Drive/Dropbox replacement, but the expandability
is what really got me. I&amp;rsquo;m pretty sure I want more functionality in the future so
using a different service like Seafile is not what I&amp;rsquo;m looking for in the long run,
plus Nextcloud being completely free to host yourself without limitations is great.&lt;/p>
&lt;p>A simple Samba/WebDAV was not going to cut it either, having a nice web interface is
important since having to install some app to use it sucks and sometimes I work on
public systems and having to connect to SMB/WebDAV is just not doable while opening
a webpage is easy.&lt;/p>
&lt;p>It also has apps, like for iOS, I recently moved all my photos from iCloud to my Nextcloud
instance and with the auto upload feature I won&amp;rsquo;t have to worry about missing any photo&amp;rsquo;s
or videos missing from my Nextcloud environment.&lt;/p>
&lt;p>Just owning your own data is great, I&amp;rsquo;m 99% sure Apple won&amp;rsquo;t do any crazy things with my
data, but you never know. Plus I don&amp;rsquo;t need to pay a montly fee to get more storage, a
HDD is really cheap these days and already having a server certainly did help.&lt;/p>
&lt;h1 id="how-to-set-it-up">How to set it up&lt;/h1>
&lt;p>You can set up Nextcloud in multiple ways, I went with the manual one because I want to
squeeze/optimize every little thing to save resources on my hardware.&lt;/p>
&lt;p>I basically followed the documentation for installation on Linux here:
&lt;a href="https://docs.nextcloud.com/server/20/admin_manual/installation/source_installation.html">https://docs.nextcloud.com/server/20/admin_manual/installation/source_installation.html&lt;/a>
I installed every required PHP module (and PHP itself) together with MariaDB, Redis, and SMB.&lt;/p>
&lt;p>It&amp;rsquo;s recommended to install imagick, apcu, memcached, and redis module for PHP so you don&amp;rsquo;t
run into any performance issues down the road. You could also always install these at a later
moment when you DO run into these performance issues ofcourse.&lt;/p>
&lt;p>Instead of following the Apache configuration I followed the Nginx one:
&lt;a href="https://docs.nextcloud.com/server/20/admin_manual/installation/nginx.html">https://docs.nextcloud.com/server/20/admin_manual/installation/nginx.html&lt;/a>
just because I&amp;rsquo;m more familiar with Nginx and I personally think it&amp;rsquo;s less resource hungry and
faster. I changed some default things like &lt;code>client_max_body_size&lt;/code> to 10G and ofcourse the
server_name.&lt;/p>
&lt;p>Instead of using SQLite I use MariaDB, it&amp;rsquo;s much faster and stable for long term use, Nextcloud
also only recommends SQLite for development environments.&lt;/p>
&lt;h1 id="optimization">Optimization&lt;/h1>
&lt;p>Make sure to read &lt;a href="https://docs.nextcloud.com/server/20/admin_manual/installation/server_tuning.html">https://docs.nextcloud.com/server/20/admin_manual/installation/server_tuning.html&lt;/a>
a lot of points here lead to a smooth server, I still need to optimize some things like PHP-FPM
but at least make sure you&amp;rsquo;re using MariaDB/MySQL and Redis caching. These two will speed up
things by a lot.&lt;/p>
&lt;p>Next check out &lt;a href="https://docs.nextcloud.com/server/20/admin_manual/configuration_server/caching_configuration.html">https://docs.nextcloud.com/server/20/admin_manual/configuration_server/caching_configuration.html&lt;/a>
it will explain/suggest the best caching settings for your Nextcloud instance. Remember PHP
runs best when properly cached/optimized. Just running PHP and PHP-FPM with default settings is
just OK, and that&amp;rsquo;s not good enough for most in production.&lt;/p>
&lt;p>At last, if you&amp;rsquo;re seriously thinking about using Nextcloud as your main cloud storage/Dropbox replacement
make sure you check out &lt;a href="https://docs.nextcloud.com/server/20/admin_manual/installation/harden_server.html">https://docs.nextcloud.com/server/20/admin_manual/installation/harden_server.html&lt;/a>
and be sure to run over HTTPS.&lt;/p>
&lt;p>Oh and run in RAID1 or ZFS Mirror, I advise using ZFS even though it uses more RAM it&amp;rsquo;s worth it.
Being able to have a pool you can modify however you want and having an abstract layer around
your hardware is great and (in theory) I won&amp;rsquo;t lose any data if any (1) HDD fails in a mirror.
Just don&amp;rsquo;t run striped RAIDs even when the 80% usable capacity is so tempting.&lt;/p>
&lt;p>PS. redundancy isn&amp;rsquo;t a backup, make sure you have one. :)&lt;/p>
&lt;p>PPS. this runs in a VM with 3GB of RAM and an intel i5 10500.&lt;/p></content></item><item><title>Proxmox Tip</title><link>/posts/2021/01/18/proxmox-tip/</link><pubDate>Mon, 18 Jan 2021 17:51:06 +0100</pubDate><guid>/posts/2021/01/18/proxmox-tip/</guid><description>When you&amp;rsquo;re using Proxmox for free without any subscription you may see bash TASK ERROR: command &amp;#39;apt-get update&amp;#39; failed: exit code 100 The issue here is that by default Proxmox is using subscription only repos, you can remove this &amp;ldquo;error&amp;rdquo; by either getting a subscription (duh), or change the repo to pve-no-subscription. This repo is not as stable as the subscription one they claim, but for a home server it should be enough.</description><content>&lt;p>When you&amp;rsquo;re using Proxmox for free without any subscription you may see
&lt;div class="collapsable-code">
&lt;input id="684572319" type="checkbox" />
&lt;label for="684572319">
&lt;span class="collapsable-code__language">bash&lt;/span>
&lt;span class="collapsable-code__toggle" data-label-expand="△" data-label-collapse="▽">&lt;/span>
&lt;/label>
&lt;pre class="language-bash" >&lt;code>
TASK ERROR: command &amp;#39;apt-get update&amp;#39; failed: exit code 100
&lt;/code>&lt;/pre>
&lt;/div>
The issue here is that by default Proxmox is using subscription only repos,
you can remove this &amp;ldquo;error&amp;rdquo; by either getting a subscription (duh), or change
the repo to &lt;code>pve-no-subscription&lt;/code>. This repo is not as stable as the subscription
one they claim, but for a home server it should be enough. If you really need
the stability you&amp;rsquo;re probably running a critial environment which probably is
worth paying for the subscription.&lt;/p>
&lt;p>To change the repo edit your &lt;code>/etc/apt/sources.list&lt;/code> and set the repo to
&lt;code>pve-no-subscription&lt;/code>.
&lt;div class="collapsable-code">
&lt;input id="589736142" type="checkbox" />
&lt;label for="589736142">
&lt;span class="collapsable-code__language">bash&lt;/span>
&lt;span class="collapsable-code__toggle" data-label-expand="△" data-label-collapse="▽">&lt;/span>
&lt;/label>
&lt;pre class="language-bash" >&lt;code>
deb http://ftp.debian.org/debian buster main contrib
deb http://ftp.debian.org/debian buster-updates main contrib
# PVE pve-no-subscription repository provided by proxmox.com,
# NOT recommended for production use
deb http://download.proxmox.com/debian/pve buster pve-no-subscription
# security updates
deb http://security.debian.org/debian-security buster/updates main contrib
&lt;/code>&lt;/pre>
&lt;/div>
&lt;/p>
&lt;p>Source: &lt;a href="https://pve.proxmox.com/wiki/Package_Repositories#sysadmin_no_subscription_repo">https://pve.proxmox.com/wiki/Package_Repositories#sysadmin_no_subscription_repo&lt;/a>&lt;/p></content></item><item><title>My Proxmox Setup</title><link>/posts/2021/01/11/my-proxmox-setup/</link><pubDate>Mon, 11 Jan 2021 11:39:26 +0100</pubDate><guid>/posts/2021/01/11/my-proxmox-setup/</guid><description>Proxmox VE is an interface for managing virtual machines and containers, it&amp;rsquo;s a lightweight solution that could run from ram/usb stick. Proxmox has more solutions like backup and email etc. but I only use the VE software. It&amp;rsquo;s free and open-source, is production ready, and is being worked on actively.
With Proxmox VE you can setup VMs on machines and also cluster multiple machines together, it&amp;rsquo;s easy to use (if you know how to use it) and fast.</description><content>&lt;p>Proxmox VE is an interface for managing virtual machines and containers,
it&amp;rsquo;s a lightweight solution that &lt;em>could&lt;/em> run from ram/usb stick.
Proxmox has more solutions like backup and email etc. but I only use the VE
software. It&amp;rsquo;s free and open-source, is production ready, and is being worked
on actively.&lt;/p>
&lt;p>With Proxmox VE you can setup VMs on machines and also cluster multiple machines
together, it&amp;rsquo;s easy to use (if you know how to use it) and fast. Currenly I am
running 6 VMs on my server, most of them still need some work done but all of
them are running Ubuntu Server 20.04.&lt;/p>
&lt;p>Proxmox VE also supports hardware passthrough for when a VM needs it, in my case
I use it for Plex to use the GPU for transcoding.&lt;/p>
&lt;p>Storage management is also easy to do in Proxmox, however when building a server
always calculate how much storage you thing you need and then double that. I am
currently running into the issue that I&amp;rsquo;m running out of storage, mainly because
I am running in ZFS mirror (RAID1) and cuts my storage in half. Thankfully storage
is not terribly expensive, unless you need multiple tens of TB.&lt;/p>
&lt;p>There are alternatives to Proxmox VE and it all comes down to your preference, the
reason I&amp;rsquo;m using Proxmox is because it made sense the first time I saw it. It does
not have a flashy UI but it works and everything is where it&amp;rsquo;s supposed to be.
But I might change my mind in the future and start using unRAID, who knows.&lt;/p></content></item><item><title>Cyberpunk Bug</title><link>/posts/2021/01/10/cyberpunk-bug/</link><pubDate>Sun, 10 Jan 2021 13:07:44 +0100</pubDate><guid>/posts/2021/01/10/cyberpunk-bug/</guid><description>We all know Cyberpunk 2077 got a bad name these days, after years of hyping the game up and promising too much they really messed up. Nevertheless I&amp;rsquo;ve been enjoying the game a lot, even with the bugs.
But there is this one particular &amp;ldquo;bug&amp;rdquo; that I found after exploring the map, I did not do anything remotely out of the ordinary and basically broke the game by opening a window.</description><content>&lt;p>We all know Cyberpunk 2077 got a bad name these days, after years of
hyping the game up and promising too much they really messed up.
Nevertheless I&amp;rsquo;ve been enjoying the game a lot, even with the bugs.&lt;/p>
&lt;p>But there is this one particular &amp;ldquo;bug&amp;rdquo; that I found after exploring the map,
I did not do anything remotely out of the ordinary and basically broke the
game by opening a window.&lt;/p>
&lt;p>If you go to the &amp;ldquo;College St&amp;rdquo; waypoint head straight to the other side of the
street the waypoint is facing, walking into that street you&amp;rsquo;ll notice an alley
that has a stack of newspapers in front of it, making it look like you&amp;rsquo;re
supposed to find something there. Once in the alley you can open a window and
basically exit the map.&lt;/p>
&lt;p>&lt;a href="/posts/2021/01/10/images/map-full.png">
&lt;figure class="left" >
&lt;img src="/posts/2021/01/10/images/map.png" />
&lt;/figure>
&lt;/a>&lt;/p></content></item><item><title>Running Spotify From a Terminal</title><link>/posts/2020/12/24/running-spotify-from-a-terminal/</link><pubDate>Thu, 24 Dec 2020 09:36:34 +0100</pubDate><guid>/posts/2020/12/24/running-spotify-from-a-terminal/</guid><description>This post exist of two different projects, the first one is Spotify-tui, and de second is Spotifyd.
Spotify-tui Spotify-tui is a terminal interface using the web API and is witten in the Rust language, however, it does not play the songs itself. It only uses the API to select/play a song, you&amp;rsquo;ll need another piece of the puzzle to actually play the music.
Since Spotify-tui is written in Rust it&amp;rsquo;s very memory efficient and safe, meaning it will never do unexpected things.</description><content>&lt;p>This post exist of two different projects, the first one is &lt;a href="https://github.com/Rigellute/spotify-tui">Spotify-tui&lt;/a>,
and de second is &lt;a href="https://github.com/Spotifyd/spotifyd">Spotifyd&lt;/a>.&lt;/p>
&lt;h2 id="spotify-tui">Spotify-tui&lt;/h2>
&lt;p>Spotify-tui is a terminal interface using the web API and is witten in the Rust language, however, it does not play
the songs itself. It only uses the API to select/play a song, you&amp;rsquo;ll need another piece of the puzzle to actually
play the music.&lt;/p>
&lt;p>Since Spotify-tui is written in Rust it&amp;rsquo;s very memory efficient and &lt;a href="https://doc.rust-lang.org/nomicon/meet-safe-and-unsafe.html">safe&lt;/a>,
meaning it will never do unexpected things. Running Spotify-tui it only uses 16MB of RAM and it has been running for 11+ hours.&lt;/p>
&lt;p>You may argue that 16MB of RAM is a lot, but in the world of applications and even command line applications running on JavaScript it&amp;rsquo;s a
godsend. Spotify itself is around 200MB.&lt;/p>
&lt;h2 id="spotifyd">Spotifyd&lt;/h2>
&lt;p>The other part of the puzzle is Spotifyd, a Spotify daemon written in Rust. It&amp;rsquo;s a tiny Spotify client using only around 8MB of RAM.
However, Spotifyd is not just specifically for Spotify-tui, it&amp;rsquo;s a generic daemon. You could also use your Spotify app and stream it
to the daemon using the device list in the app.&lt;/p>
&lt;p>This means you could create your own smart speaker for cheap! Or you could hook up a raspberry pi zero to your old sound system and
give your old system new streaming functionalities.&lt;/p></content></item><item><title>Why I Started Using Nvim</title><link>/posts/2020/12/23/why-i-started-using-nvim/</link><pubDate>Wed, 23 Dec 2020 17:29:11 +0100</pubDate><guid>/posts/2020/12/23/why-i-started-using-nvim/</guid><description>Since I&amp;rsquo;m on a streak of optimising my workflow in the terminal, I started to use Vi/Vim/Nvim as my default editor. The reason being it&amp;rsquo;s (almost) always installed by default, and it&amp;rsquo;s really powerful once you learn only a couple of shortcuts.
Currently I use Neovim on my development machine because it&amp;rsquo;s fast, extensable and overal very nice to use. The only thing I really have to get used to is the hjkl format of movement, I know you shouldn&amp;rsquo;t use them often in the first place but as a Vi newbie it&amp;rsquo;s a very nice thing to fall back to something familiar like the arrow keys to move around.</description><content>&lt;p>Since I&amp;rsquo;m on a streak of optimising my workflow in the terminal, I started
to use Vi/Vim/Nvim as my default editor. The reason being it&amp;rsquo;s (almost) always installed
by default, and it&amp;rsquo;s really powerful once you learn only a couple of shortcuts.&lt;/p>
&lt;p>Currently I use Neovim on my development machine because it&amp;rsquo;s fast, extensable and overal
very nice to use. The only thing I really have to get used to is the hjkl format of movement,
I know you shouldn&amp;rsquo;t use them often in the first place but as a Vi newbie it&amp;rsquo;s a very nice
thing to fall back to something familiar like the arrow keys to move around. I&amp;rsquo;m still learning
all the stuff real Vi users use like tags and regex searching.&lt;/p>
&lt;p>The plugins I currenty use are COC for code prediction, typescript-vim and vim-jsx-typescript
for TypeScript highlighting, nerdtree for file browsing, vim-devicons for icons in nerdtree,
fzf for fuzzy searching, and of course the dracula/vim plugin for the dracula theme.&lt;/p>
&lt;p>So far the shortcuts I use are ZZ, hjkl, ZQ, A, a, i, I, C-b.
I also might check out the plugin tagbar for easier code browsing in larger files.&lt;/p></content></item><item><title>Tmux Shortcuts</title><link>/posts/2020/12/22/tmux-shortcuts/</link><pubDate>Tue, 22 Dec 2020 09:00:00 +0100</pubDate><guid>/posts/2020/12/22/tmux-shortcuts/</guid><description>As per my previous blog post, I&amp;rsquo;ve discovered Alacritty but it has no tab functionality. That&amp;rsquo;s why I started using Tmux more outside of server management. Locally I now have multiple sessions with multiple windows that (can) have multiple panes. I have two sessons running, my personal dev environment and one for work.
I also have a separate tmux window for Spotify-tui, I might make a blog post about that in the future with Spotifyd.</description><content>&lt;p>As per my previous blog post, I&amp;rsquo;ve discovered Alacritty but it has no tab functionality. That&amp;rsquo;s why
I started using Tmux more outside of server management. Locally I now have multiple sessions with
multiple windows that (can) have multiple panes. I have two sessons running, my personal dev environment
and one for work.&lt;/p>
&lt;p>I also have a separate tmux window for &lt;a href="https://github.com/Rigellute/spotify-tui">Spotify-tui&lt;/a>, I might
make a blog post about that in the future with &lt;a href="https://github.com/Spotifyd/spotifyd">Spotifyd&lt;/a>.&lt;/p>
&lt;p>Since I&amp;rsquo;m now actively using tmux I thought I&amp;rsquo;d post a great link to a cheatsheet: &lt;a href="https://tmuxcheatsheet.com/">https://tmuxcheatsheet.com/&lt;/a>&lt;/p>
&lt;p>I also always have a window open in tmux with the command &lt;code>tmux lsk -N|more&lt;/code> which I
can switch to whenever I need. My most used shortcuts at the moment are &lt;code>C-b + w&lt;/code> for changing windows, &lt;code>C-b + arrow key&lt;/code>
for changing panels, &lt;code>C-b + c&lt;/code> for creating a new window, and &lt;code>C-b + x&lt;/code> for closing a panel.
I also use &lt;code>C-b %&lt;/code> and &lt;code>C-b + &amp;quot;&lt;/code> for splitting a window/creating panels quite often.&lt;/p>
&lt;p>The full tmux lsk -N|more output:
&lt;div class="collapsable-code">
&lt;input id="645138279" type="checkbox" />
&lt;label for="645138279">
&lt;span class="collapsable-code__language">bash&lt;/span>
&lt;span class="collapsable-code__toggle" data-label-expand="△" data-label-collapse="▽">&lt;/span>
&lt;/label>
&lt;pre class="language-bash" >&lt;code>
C-b C-b Send the prefix key
C-b C-o Rotate through the panes
C-b C-z Suspend the current client
C-b Space Select next layout
C-b ! Break pane to a new window
C-b &amp;#34; Split window vertically
C-b # List all paste buffers
C-b $ Rename current session
C-b % Split window horizontally
C-b &amp;amp; Kill current window
C-b &amp;#39; Prompt for window index to select
C-b ( Switch to previous client
C-b ) Switch to next client
C-b , Rename current window
C-b - Delete the most recent paste buffer
C-b . Move the current window
C-b / Describe key binding
C-b 0 Select window 0
C-b 1 Select window 1
C-b 2 Select window 2
C-b 3 Select window 3
C-b 4 Select window 4
C-b 5 Select window 5
C-b 6 Select window 6
C-b 7 Select window 7
C-b 8 Select window 8
C-b 9 Select window 9
C-b : Prompt for a command
C-b ; Move to the previously active pane
C-b = Choose a paste buffer from a list
C-b ? List key bindings
C-b D Choose a client from a list
C-b E Spread panes out evenly
C-b L Switch to the last client
C-b M Clear the marked pane
C-b [ Enter copy mode
C-b ] Paste the most recent paste buffer
C-b c Create a new window
C-b d Detach the current client
C-b f Search for a pane
C-b i Display window information
C-b l Select the previously current window
C-b m Toggle the marked pane
C-b n Select the next window
C-b o Select the next pane
C-b p Select the previous pane
C-b q Display pane numbers
C-b r Redraw the current client
C-b s Choose a session from a list
C-b t Show a clock
C-b w Choose a window from a list
C-b x Kill the active pane
C-b z Zoom the active pane
C-b { Swap the active pane with the pane above
C-b } Swap the active pane with the pane below
C-b ~ Show messages
C-b DC Reset so the visible part of the window follows the cursor
C-b PPage Enter copy mode and scroll up
C-b Up Select the pane above the active pane
C-b Down Select the pane below the active pane
C-b Left Select the pane to the left of the active pane
C-b Right Select the pane to the right of the active pane
C-b M-1 Set the even-horizontal layout
C-b M-2 Set the even-vertical layout
C-b M-3 Set the main-horizontal layout
C-b M-4 Set the main-vertical layout
C-b M-5 Select the tiled layout
C-b M-n Select the next window with an alert
C-b M-o Rotate through the panes in reverse
C-b M-p Select the previous window with an alert
C-b M-Up Resize the pane up by 5
C-b M-Down Resize the pane down by 5
C-b M-Left Resize the pane left by 5
C-b M-Right Resize the pane right by 5
C-b C-Up Resize the pane up
C-b C-Down Resize the pane down
C-b C-Left Resize the pane left
C-b C-Right Resize the pane right
C-b S-Up Move the visible part of the window up
C-b S-Down Move the visible part of the window down
C-b S-Left Move the visible part of the window left
C-b S-Right Move the visible part of the window right
&lt;/code>&lt;/pre>
&lt;/div>
&lt;/p></content></item><item><title>Alacritty</title><link>/posts/2020/12/21/alacritty/</link><pubDate>Mon, 21 Dec 2020 11:52:35 +0100</pubDate><guid>/posts/2020/12/21/alacritty/</guid><description>I&amp;rsquo;ve recently come across a new terminal emulator called Alacritty, it is a new terminal emulator written in Rust. It uses the GPU to accellerate the calculations it needs to make which results in a more responsive terminal, some commands like tree also seem to run faster.
Check out this video from DistroTube: The terminal emulator is still in beta and does not have any GUI to edit the settings, all settings need to be defined in a YAML config file.</description><content>&lt;p>I&amp;rsquo;ve recently come across a new terminal emulator called &lt;a href="https://github.com/alacritty/alacritty">Alacritty&lt;/a>, it is a new terminal emulator written in Rust.
It uses the GPU to accellerate the calculations it needs to make which results in a more responsive terminal,
some commands like tree also seem to run faster.&lt;/p>
&lt;p>Check out this video from DistroTube:
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;">
&lt;iframe src="https://www.youtube.com/embed/PZPMvTvUf1Y" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" allowfullscreen title="YouTube Video">&lt;/iframe>
&lt;/div>
&lt;/p>
&lt;p>The terminal emulator is still in beta and does not have any GUI to edit the settings, all settings need to be
defined in a YAML config file. It also does not (yet) have tab funcionality, you&amp;rsquo;ll need to open a new window
every time you want another terminal. Of course you could use something like &lt;a href="https://github.com/tmux/tmux">tmux&lt;/a> to work around that problem.&lt;/p></content></item><item><title>Zsh Speedup</title><link>/posts/2020/12/17/zsh-speedup/</link><pubDate>Thu, 17 Dec 2020 09:16:54 +0100</pubDate><guid>/posts/2020/12/17/zsh-speedup/</guid><description>I&amp;rsquo;ve been experiencing some slowdowns in my shell lately, I could not explain why. But I am using Oh My Zsh, and after some searching I found a blog post by Matthew J. Clemente that has a complete walkthrough of how to diagnose and fix slow (Oh My Zsh) shells.
You start by measuring actual load times to set a base with a simple function you can put into your .</description><content>&lt;p>I&amp;rsquo;ve been experiencing some slowdowns in my shell lately, I could not explain why.
But I am using &lt;a href="https://github.com/ohmyzsh/ohmyzsh">Oh My Zsh&lt;/a>, and after some
searching I found a blog post by Matthew J. Clemente that has a complete walkthrough
of how to diagnose and fix slow (Oh My Zsh) shells.&lt;/p>
&lt;p>You start by measuring actual load times to set a base with a simple function you can
put into your .zshrc file:
&lt;div class="collapsable-code">
&lt;input id="936752814" type="checkbox" />
&lt;label for="936752814">
&lt;span class="collapsable-code__language">bash&lt;/span>
&lt;span class="collapsable-code__toggle" data-label-expand="△" data-label-collapse="▽">&lt;/span>
&lt;/label>
&lt;pre class="language-bash" >&lt;code>
timezsh() {
shell=${1-$SHELL}
for i in $(seq 1 10); do /usr/bin/time $shell -i -c exit; done
}
&lt;/code>&lt;/pre>
&lt;/div>
&lt;/p>
&lt;p>Now you can run timezsh and see how long it takes for your shell to start up and be ready.
To figure out exactly which plugin is causing the slowdown you can run the following to
see how long it takes for each plugin to be loaded in:
&lt;div class="collapsable-code">
&lt;input id="372695814" type="checkbox" />
&lt;label for="372695814">
&lt;span class="collapsable-code__language">bash&lt;/span>
&lt;span class="collapsable-code__toggle" data-label-expand="△" data-label-collapse="▽">&lt;/span>
&lt;/label>
&lt;pre class="language-bash" >&lt;code>
# Load all of the plugins that were defined in ~/.zshrc
for plugin ($plugins); do
timer=$(($(gdate &amp;#43;%s%N)/1000000))
if [ -f $ZSH_CUSTOM/plugins/$plugin/$plugin.plugin.zsh ]; then
source $ZSH_CUSTOM/plugins/$plugin/$plugin.plugin.zsh
elif [ -f $ZSH/plugins/$plugin/$plugin.plugin.zsh ]; then
source $ZSH/plugins/$plugin/$plugin.plugin.zsh
fi
now=$(($(gdate &amp;#43;%s%N)/1000000))
elapsed=$(($now-$timer))
echo $elapsed&amp;#34;:&amp;#34; $plugin
done
&lt;/code>&lt;/pre>
&lt;/div>
&lt;/p>
&lt;p>In my case it was the kubectl plugin for Oh My Zsh, the fix was to use the given kubectl command
to load in the autocomplete:
&lt;div class="collapsable-code">
&lt;input id="762914385" type="checkbox" />
&lt;label for="762914385">
&lt;span class="collapsable-code__language">bash&lt;/span>
&lt;span class="collapsable-code__toggle" data-label-expand="△" data-label-collapse="▽">&lt;/span>
&lt;/label>
&lt;pre class="language-bash" >&lt;code>
function kubectl() {
if ! type __start_kubectl &amp;gt;/dev/null 2&amp;gt;&amp;amp;1; then
source &amp;lt;(command kubectl completion zsh)
fi
command kubectl &amp;#34;$@&amp;#34;
}
&lt;/code>&lt;/pre>
&lt;/div>
&lt;/p>
&lt;p>Now I can remove the plugin and lazy load the kubectl command every time I start up a new shell
session.&lt;/p>
&lt;p>Sometimes you don&amp;rsquo;t need a plugin for things, take each plugin you install seriously and check if
you really need it. A slow shell is not great and a killer for productivity.&lt;/p>
&lt;p>Source: &lt;a href="https://blog.mattclemente.com/2020/06/26/oh-my-zsh-slow-to-load.html">https://blog.mattclemente.com/2020/06/26/oh-my-zsh-slow-to-load.html&lt;/a>&lt;/p></content></item><item><title>Printer Upgrades</title><link>/posts/2020/12/16/printer-upgrades/</link><pubDate>Wed, 16 Dec 2020 18:00:16 +0100</pubDate><guid>/posts/2020/12/16/printer-upgrades/</guid><description>After owning my Creality Ender 3 Pro for almost a year I got sick of the noise it made, over the months I did some upgrades to my printer by printing new parts and replacing existing parts on my printer like fan ducts, display cover, tool drawer, etc. But this time it was a bigger upgrade, I replaced both the hotend cooling fan (not the directional fan that cools the print) and the control board fan.</description><content>&lt;p>After owning my Creality Ender 3 Pro for almost a year I got sick of the noise it made,
over the months I did some upgrades to my printer by printing new parts and replacing
existing parts on my printer like fan ducts, display cover, tool drawer, etc.
But this time it was a bigger upgrade, I replaced both the hotend cooling fan (not the directional fan that cools the print)
and the control board fan. I also replaced/upgraded the control board to a Bigtreetech SKR Mini E3 v2.0,
the stepper motors now have become magically silent.&lt;/p>
&lt;img src="../images/skr-mini-e3-2-0-filaments-3d-quebec_2048x2048.jpg" class="left" />
&lt;p>The only thing producing noticable noise right now is the cooling fan for the power supply, but
that&amp;rsquo;s an upgrade for another time. At least now I can print over night without the printer keeping
me awake.&lt;/p></content></item><item><title>Home Assistant Blue</title><link>/posts/2020/12/14/home-assistant-blue/</link><pubDate>Mon, 14 Dec 2020 20:16:26 +0100</pubDate><guid>/posts/2020/12/14/home-assistant-blue/</guid><description>As a big fan of Home Assistant I just have to advertise this product, for the less technical people there is Home Assistant Blue. It&amp;rsquo;s an all-in-one device that has all the hardware you need for controlling your home, all you need to do is add your smart devices. No more flashing SD cards or configuring your Raspberry Pi&amp;rsquo;s!
https://www.home-assistant.io/blue
Even if you&amp;rsquo;re not interested in the product itself, they also released a 3D file of the case for you to print for your Pi!</description><content>&lt;p>As a big fan of Home Assistant I just have to advertise this product,
for the less technical people there is Home Assistant Blue. It&amp;rsquo;s an all-in-one
device that has all the hardware you need for controlling your home, all you
need to do is add your smart devices. No more flashing SD cards or configuring
your Raspberry Pi&amp;rsquo;s!&lt;/p>
&lt;p>&lt;a href="https://www.home-assistant.io/blue">https://www.home-assistant.io/blue&lt;/a>&lt;/p>
&lt;p>Even if you&amp;rsquo;re not interested in the product itself, they also released a 3D file
of the case for you to print for your Pi! However at the moment of writing this,
thingiverse is having some issues.&lt;/p></content></item><item><title>Motorcycle Theoretical Exam</title><link>/posts/2020/12/7/motorcycle-theoretical/</link><pubDate>Mon, 07 Dec 2020 19:35:44 +0100</pubDate><guid>/posts/2020/12/7/motorcycle-theoretical/</guid><description>Today is the day I start learning for my motorcycle exam again, one month to go. I highly recommend anyone learning for their theoretical exam in The Netherlands to get the ANWB online exam excerise pack for 10 euros, it contains real exams with updated questions and I noticed that after reading the theoretical book once I was done with it and nothing really stuck.
Using the online exam really helps as far I can tell, so far I&amp;rsquo;m getting more and more passes.</description><content>&lt;p>Today is the day I start learning for my motorcycle exam again, one month to go. I highly recommend anyone
learning for their theoretical exam in The Netherlands to get the ANWB online exam excerise pack for 10 euros,
it contains real exams with updated questions and I noticed that after reading the theoretical book once I was
done with it and nothing really stuck.&lt;/p>
&lt;p>Using the online exam really helps as far I can tell, so far I&amp;rsquo;m getting more and more passes. But the real
test is in a month so we&amp;rsquo;ll see if this actually helps.&lt;/p></content></item><item><title>Micropython</title><link>/posts/2020/12/7/micropython/</link><pubDate>Mon, 07 Dec 2020 19:13:05 +0100</pubDate><guid>/posts/2020/12/7/micropython/</guid><description>Currently dabbling in MicroPython because I want to be able to control my Denon AVR with a &amp;ldquo;wireless&amp;rdquo; volume knob which isn&amp;rsquo;t a remote because I like the tactile response a volume knob gives.
Right now I am able to turn it on/off, turn the volume up/down, and switch input sources with my own controller library I quickly wrote on a friday night. For testing I&amp;rsquo;m using an old car radio button which doesn&amp;rsquo;t behave like a normal rotary encoder it seems, wiring it up like a normal encoder will cause shorts in the system and trigger unwanted commands.</description><content>&lt;p>Currently dabbling in MicroPython because I want to be able to control my Denon AVR with a &amp;ldquo;wireless&amp;rdquo; volume knob
which isn&amp;rsquo;t a remote because I like the tactile response a volume knob gives.&lt;/p>
&lt;p>Right now I am able to turn it on/off, turn the volume up/down, and switch input sources with my own controller library
I quickly wrote on a friday night. For testing I&amp;rsquo;m using an old car radio button which doesn&amp;rsquo;t behave like a normal
rotary encoder it seems, wiring it up like a normal encoder will cause shorts in the system and trigger unwanted
commands. I guess I&amp;rsquo;ll have to wait for the rotary encoders I ordered from Ali.&lt;/p>
&lt;p>It&amp;rsquo;s a pretty quick and dirty project and still a work in progress but if you&amp;rsquo;re interested you can check it here: &lt;a href="https://github.com/laetificat/volume-knob">https://github.com/laetificat/volume-knob&lt;/a>&lt;/p></content></item><item><title>First Post</title><link>/posts/2020/12/7/first-post/</link><pubDate>Mon, 07 Dec 2020 17:35:58 +0100</pubDate><guid>/posts/2020/12/7/first-post/</guid><description>New website new post, let&amp;rsquo;s see how long this will be active.
At least with Hugo (yeah I know I&amp;rsquo;m super bleeding edge now) it will take up a lot less resources on my cheap server.</description><content>&lt;p>New website new post, let&amp;rsquo;s see how long this will be active.&lt;/p>
&lt;p>At least with Hugo (yeah I know I&amp;rsquo;m super bleeding edge now) it will take up a lot less
resources on my cheap server.&lt;/p></content></item></channel></rss>