summaryrefslogtreecommitdiff
path: root/content/2022
diff options
context:
space:
mode:
Diffstat (limited to 'content/2022')
-rw-r--r--content/2022/#music_server.md# (renamed from content/2022/music_server.md)2
l---------content/2022/.#music_server.md1
-rw-r--r--content/2022/ddns.md156
-rw-r--r--content/2022/gnu_stow.md134
-rw-r--r--content/2022/repartitioning.md88
-rw-r--r--content/2022/secret_of_monkey_island.md84
6 files changed, 2 insertions, 463 deletions
diff --git a/content/2022/music_server.md b/content/2022/#music_server.md#
index 81b3456..d3d2519 100644
--- a/content/2022/music_server.md
+++ b/content/2022/#music_server.md#
@@ -13,7 +13,7 @@ tags:
abstract: A short tutorial.
---
One of my goals for 2022 is to not pay for music subscriptions anymore. Nowadays, it's really easy and cheap to actually own my music.
- <!--more-->
+
## Getting music
Internet is full of cheap, used CDs and new music is ready for purchase on sites like Bandcamp. Since I mostly listen to dead people, CDs are my primary source.
diff --git a/content/2022/.#music_server.md b/content/2022/.#music_server.md
new file mode 120000
index 0000000..889bc77
--- /dev/null
+++ b/content/2022/.#music_server.md
@@ -0,0 +1 @@
+mms@voyager.88136:1703067878 \ No newline at end of file
diff --git a/content/2022/ddns.md b/content/2022/ddns.md
deleted file mode 100644
index abb94c2..0000000
--- a/content/2022/ddns.md
+++ /dev/null
@@ -1,156 +0,0 @@
----
-date: 2022-05-13T20:17:00+02:00
-draft: false
-category: "engineering"
-year: 2022
-title: Adding dynamic DNS to the home server
-tags:
-- homeserver
-- DDND
-- DYI
-- DNS
-abstract: A brief analysis of existing DDNS services.
----
-I am one of the unlucky ones without static IP address. I would get one from my ISP, but this would require me to upgrade to a business contract. And to do such upgrade, I would need a company - which I do not own nor have I any plans to own in the near future. Luckily, I can still have a domain. There is a group of services under the umbrella term Dynamic DNS.
-<!--more-->
-
-[DDNS on Arch Wiki](https://wiki.archlinux.org/title/Dynamic_DNS)
-
-Basically, I need to point my domain to their name server and keep them up to date with changes of my IP. The DDNS server acts as a middle-man when using a normal domain. In most cases, I just need to fetch a given URL periodically ad the service will treat this as current IP set.
-
-## Self hosting vs 3rd party
-
-There are ready-made packages I could instal on any VPS, but debugging DNS is not something I would like to do. Therefore, I will go with 3rd party.
-
-
-I looked through the interwebs for providers and found lots of them. Unfortunately, most of them are dead, so the choice is much less difficult.
-
-
-## Requirements
-
-After a short analysis, I came up with few requirements:
-
-```
-Max number of domains........................3
-Max number of subdomains per domain.........20
-Expected uptime..........................>95.5
-Location............................Europe/USA
-MX Records.................................YES
-TTL.....................................<10min
-```
-
-
-## Instant rejects
-
-I instantly rejected some providers, since they will now work for my use case:
-
-```
-| Service | Reason?
-|-----------------------+-----------------------------
-| activedns.co.za | South Africa only
-| bcu.cc | Site does not open
-| ddns.nu | Site does not open
-| dhcp.io | Domain for sale
-| dhs.org | Site does not open
-| dns.widge.net | Site does not open
-| dnsdynamic.org | Some random site under the address
-| dnsmadeeasy.com | It's namecheap now
-| dnspark.com | It's namecheap now
-| dtdns.com | Broken site
-| dyn.ee | Domain for sale
-| dyn.ro | Domain for sale (I think)
-| dynamicdomain.net | Site reads like poor phising attempt
-| dyndsl.com | Domain for sale
-| domain-dns.com | Not accepting new zones
-| dyndnsservices.com | Offers self-host only
-| dynfree.com | Broken site
-| dynup.net | Broken site
-| hldns.com | No longer offers DDNS
-| hn.org | Site does not work
-| homepc.org | Site does not work
-| hub.turnkeylinux.org | Site does not work
-| microtech.co.gg | Site does not work
-| minidns.net | Site does not work
-| myonlineportal.net | Only 10 domains per account
-| myserver.org | Broken site
-| nettica.com | Domain for sale
-| nicolas.cx | No sign-up via web
-| nubem.com | Site does not work
-| ods.org | Domain for sale
-| powerdns.com | Self hosted solution
-| prout.be | Self hosted solution
-| spdns.de | No english site
-| system-ns.com | No longer offers DDNS
-| tzo.com | Site does not work
-| whyi.org | Site does not work
-| worldwidedns.net | Does not support enough zones
-| xname.org | Site does not work
-| yi.org | Site does not work
-| zerigo.com | Site does not work
-```
-
-## The potential ones
-
-After removing most positions from list, I dig a big deeper:
-
-```
-| Service | Price | Uptime | Location
-| | per year | |
-|-----------------------+---------------+-----------+---
-| changeip.com | $6 | 99.9% (1) | USA
-| dhis.org | Donation | ? | ?
-| dns2go.com | lots$ | ? | ?
-| dnsexit.com | FREE for TLD | 100% | Distributed
-| duckdns.org | FREE | ? | ?
-| duiadns.net | $11 | ? | ?
-| dynaccess.de | 22EUR | ? | Germany
-| dynamip.com | $48 | ? | ?
-| dyndns.berlin | FREE | ? | Germany
-| dyndns.com | $55 | ? | ?
-| dyndns.dk | FREE | ? | ?
-| dynip.com | lots$ | ? | ?
-| dyns.cx | Donation | ? | ?
-| dynu.com | FREE | 100% (2) | Distributed
-| easydns.com | FREE | 100% | ?
-| freedns.afraid.org | $60 | ~99.3%(3) | ?
-| noip.com | $24.99 | 100% (2) | ?
-| planetdns.net | $299.95 | ? | ?
-| staticcling.org | FREE | ? | ?
-| thatip.com | $48 | ? | ?
-| thebbs.org | FREE | ? | ?
-| totaluptime.com | $1188(SIC!) | ? | ?
-| zonomi.com | lots$ | ? | ?
- ```
- - [(1) whtop.com](https://www.whtop.com/review/changeip.com)
- - [(2) comparingtech.com](https://www.comparitech.com/net-admin/dynamic-dns-providers/)
- - [(3) dnsperf.com](https://www.dnsperf.com/dns-provider/afraid-org)
-
-Notes:
-- "?" - I couldn't find data, but also I wasn't looking very hard
-- "lots$" - some providers have a complicated pricing and at first glance it was obvious, that it will be expensive.
-
- As we see, some working providers are crazy expensive. They add extra features, but still - crazy expensive.
-
-## Conclusion
-
-DDNS is a strange market. It's mostly dead. But when the service is still available, it seems to be run from someone's basement. There are companies in the space, don't get me wrong - but most of it looks like hacker culture byproduct. And this makes sense, since the primary use case for DDNS is someone without static IP - ergo, an individual and not a company.
-
-The sad aspect of this is lack of any SLAs in most cases.
-
-The happy aspect of this is that you can get a lot for very little.
-
-## Decision
-
-Looking at the data, I have decided to go with dynu.com as it has 100% uptime, and it's free.
-
-## Setting up dynu.com on Synology
-
-First, create a dedicated IP update password on dynu.com. It's optional, but highly recommended.
-
-Then, in Synology Control Panel open External Access, then click on "DDNS" tab. Click "Customize Provider" and set query URL to
-
-```
-https://api.dynu.com/nic/update?myip=__MYIP__&username=__USERNAME__&password=__PASSWORD__&hostname__HOSTNAME__&myipv6=no
-```
-
-Now, add a subdomain. Note, that it would be best to MD5 the password.
diff --git a/content/2022/gnu_stow.md b/content/2022/gnu_stow.md
deleted file mode 100644
index 9c2bc02..0000000
--- a/content/2022/gnu_stow.md
+++ /dev/null
@@ -1,134 +0,0 @@
----
-date: 2022-06-09T19:10:00+02:00
-category: engineering
-draft: fale
-year: 2022
-title: Managing dotfiles with GNU Stow
-tags:
-- GNU
-- stow
-- Linux
-- tutorial
-abstract: A short tutorial.
----
-If you are working with linux/bsd based system, you are most likely accustomed to managing
-your configs with dotfiles. And you most likely have them stored with Git. But there is the
-never ending problem of how to actually use them. I have moved management of this under
-GNU Stow.
-<!--more-->
-Let's take a very typical dotfiles repository.
-
-{{< highlight shell>}}
-./nvim/init.lua
-./tmux/tmux.conf
-{{</highlight>}}
-
-You want to have those files available as
-
-{{< highlight shell>}}
-~/.config/nvim/init.lua
-~/.tmux.conf
-{{</highlight>}}
-
-The most popular approach would be to symlink the files under the expected location. We
-could also copy the files every time something changes, but that would be crazy. Are we
-the stuck with having to do those symlinks manually every time we install a new machine
-or create a virtual one? And what if we have dozens of such configs stored under git?
-
-## Symlink farm
-
-GNU Stow is a symlink farm. This means, that it's a system aimed at automating creating of
-those symlinks.
-
-[GNU Stow website](https://www.gnu.org/software/stow/manual/stow.html)
-
-For Stow, the dotfiles directory is called "Stowed" directory. Now comes the cool part. Each folder
-in the Stowed directory (called "Package directory") stores a separate directory tree. GNU
-Stow will join all those separate trees and create a proper structure under Target Directory,
-which by default is the parent of Stowed directory. Let's look at example.
-
-{{< highlight shell>}}
-~/target/stow/one/config/one.conf
-~/target/stow/two/config/two.conf
-~/target/stow/three/config/three.conf
-{{< / highlight >}}
-
-So, our home director now has a "Target" directory, which has a "Stow" directory. The Stow
-directory stores three configs which we want to sylink as
-
-
-{{< highlight shell>}}
-~/target/config/one.conf
-~/target/config/two.conf
-~/target/config/three.conf
-{{< / highlight >}}
-
-Let's stow the first one
-
-{{< highlight shell>}}
-cd ~/target/stow
-stow one
-{{< / highlight >}}
-
-And see what happened
-
-{{< highlight shell>}}
-cd ~/target
-ls -lA
-{{< / highlight >}}
-
-We get somethine like
-
-{{< highlight shell>}}
-lrwxrwxrwx 1 msapka wheel 15 Jun 9 23:01 config -> stow/one/config
-drwxr-xr-x 5 msapka wheel 4096 Jun 9 22:55 stow
-{{< / highlight >}}
-
-Stow created a config symlink in the target directory. Very cool, but it gets cooler! Let'
-stow the second one
-
-{{< highlight shell>}}
-cd ~/target/stow
-stow two
-{{< / highlight >}}
-
-and what we get
-
-{{< highlight shell>}}
-drwxr-xr-x 2 msapka wheel 4096 Jun 9 23:03 config
-drwxr-xr-x 5 msapka wheel 4096 Jun 9 22:55 stow
-{{< / highlight >}}
-
-Our config is no longer a symlink, but a real folder. Let's see what's inside here.
-
-{{< highlight shell>}}
-cd config
-ls -lA
-{{< / highlight >}}
-
-{{< highlight shell>}}
-lrwxrwxrwx 1 msapka wheel 27 Jun 9 23:03 one.conf -> ../stow/two/config/one.conf
-lrwxrwxrwx 1 msapka wheel 26 Jun 9 23:03 two.conf -> ../stow/one/config/two.conf
-{{< / highlight >}}
-
-We have our two configs, but what has happened? Stow looked at both sub trees for "one" and
-"two"m and joined then in a way, that is possible. The only way for one.conf and two.conf to
-exist in config is if config is a normal directory. Extremely cool!
-
-Let's image that our target is actually homedir, so we have a ~/dotfiles directory. Then
-each package directory can mimic the tree struture of the actual config! Coming back
-to our example, we can have a
-
-{{< highlight shell>}}
-~/dotfiles/tmux/.tmux.conf
-~/dotfiles/nvim/.config/nvim/init.lua
-{{< / highlight >}}
-
-Then, after stowing both packages we have symlinks under our desired
-
-{{< highlight shell>}}
-~/.config/nvim/init.lua
-~/.tmux.conf
-{{< / highlight >}}
-
-GNU Stow is a very simple tool. All we understand what will happen with each sub tree.
diff --git a/content/2022/repartitioning.md b/content/2022/repartitioning.md
deleted file mode 100644
index b77d4c3..0000000
--- a/content/2022/repartitioning.md
+++ /dev/null
@@ -1,88 +0,0 @@
----
-date: 2022-05-07T10:15:00+02:00
-draft: false
-category: engineering
-year: 2022
-title: Repartitioning the home server
-tags:
-- homeserver
-- partitioning
-- DIY
-- WD-Red
-- SHR
-- Synology
-abstract: How I rethought and repartitioned my server.
----
-I have owned Synology 920+ for some two years. Unfortunately, when I first got it, I made some assumptions that are no longer true and therefore this NAS is basically a glorofied Plex machine. A bad one, as the CPU is not powerful for any modern codec transcoding. Time to fix it!
-
-## Durandal
-
-The server (named Durandal) had all drives in Synology Hybrid Raid (SHR) configuration until recenly. When I first bought the device, I got three WD-RED 4 TB drives, which left one bay empty. Soon, the occupied space filled the three drives, and I expanded it with 6 TB - as SHR allows for mixing drive size. In adition, SHR1 allows for one drive failure.
-The configuration looked like:
-
-```
- HDD1 HDD2 HDD3 HDD4
- -------- -------- -------- ------------
- | | | | | | | |
- | WD-RED | | WD-RED | | WD-RED | | WD-RED |
- | 4 TB | | 4 TB | | 4 TB | | 6 TB |
- | | | | | | | |
- -------- -------- -------- ------------
-| |
- ---------------------------------------------------
- Volume 1 (SHR1)
- 9.6 TB
-```
-
-This setup has the drawback of not allowing as much storage as required, and storing movie backups on volume with redundancy is an overkill.
-
-
-## Vulcan
-
-A few days ago, I rethought the current assumption, and the new ones are:
-
-- I want to host application on the NAS
-- I want to host my photographs (no more iCloud subscription)
-- I want to store multimedia, but I don't care if I lose it.
-
-This led to a new architecture based on two volumes:
-
-
-```
- HDD1 HDD2 HDD3 HDD4
- -------- -------- -------- ------------
- | | | | | | | |
- | WD-RED | | WD-RED | | WD-RED | | WD-RED |
- | 4 TB | | 4 TB | | 4 TB | | 6 TB |
- | | | | | | | |
- -------- -------- -------- ------------
-
- CACHE1 CACHE2
- -------- --------
- | Samsung| | Samsung|
- | 256 GB | | 256 GB |
- -------- --------
-| | | |
- ------------------------ ---------------------------
- Volume 1 (SHR1) Volume 2 (RAID0)
- 3.5 TB 8.7 TB
-
-```
-
-Now I have a clear distinction between space for important stuff and for stuff I can recreate with ease. Having 3.5 TB is overkill here, as the drives will sooner fail than I will be able to fill them - currently, I store 520 GB in iCloud... and I pay for 2 TB as there is nothing in between. Having two 2 TB drives there would be much more economical
-
-The total capacity is also significantly higher now. There will be things I'll want to secure that are on Volume 2, but since it won't be anything mission-critical, I can just use a USB Drive for this.
-
-## The future
-
-Since the server is ready, I think I'll strive for:
-
-- adding new offsite backup (or 2) for Volume 1,
-- leaving Plex (temporarily I use Samba shares),
-- adding proper photo storage,
-- adding a music server,
-- adding DNS server,
-- moving this site,
-- moving my XMPP server,
-- adding a VPN server,
-- adding backup power for the NAS, modem, and router.
diff --git a/content/2022/secret_of_monkey_island.md b/content/2022/secret_of_monkey_island.md
deleted file mode 100644
index 1c8696a..0000000
--- a/content/2022/secret_of_monkey_island.md
+++ /dev/null
@@ -1,84 +0,0 @@
----
-date: 2022-05-04T9:15:00+02:00
-draft: false
-category: gaming
-year: 2022
-title: The Secret of Monkey Island Monkey Island
-tags:
-- gaming
-- adventure
-- Monkey-Osland
-- Ron-Gilbert
-- retro-gaming
-- Lucasarts
-abstract: A review of Secret of Monkey Island
----
-In preparation for "Return to Monkey" Island, I have decided to replay the first three classic games.
-
-["Return to Monkey Island" official webpage](https://returntomonkeyisland.com/)
-
-Frankly, I played only the third one as a child, soon after release. "The Secret of Monkey Island" came out right after Poland became an independent country again, and I was still in kindergarten. Three years later, I received my first computer - a (not so)powerful PC386. I was a kid back then, and I knew very little English. Certainly not enough to comprehend this game. My first playthrough was sometime around the year 2002.
-
-{{< img-center "somi-splash.png" "Title screen">}}
-
-## Running the game
-
-Running this 30-year-old game is amazingly easy, thanks to SummVM. Just download the emulator, find a copy of the game, and everything runs perfectly on any system. An updated version was released in 2009, but it was never released on Linux, and macOS/iOS versions are no longer working.
-
-[ScummVM](https://www.scummvm.org/)
-
-You can also play in the browser via Internet Archive.
-
-["The Secret of Monkey Island" on the Internet Archive](https://archive.org/details/mnkyega)
-
-If you want the updated version, you can get it on GOG.
-
-["The Secret of Monkey Island" on GOG](https://www.gog.com/game/the_secret_of_monkey_island_special_edition)
-
-## Playing the game
-
-"The Secret of Monkey Island Monkey Island" is a pirate-themed adventure with lots of humor. The later games focused more on the funny aspect, but we have an interesting story here. Guybrush Threepwood lands on Mêlée Island, where he starts his quest to become a pirate. He will have to pass a test, find true love, and face a ghost pirate LeChuck. Some say that the idea for the game came from Disneyland's "Pirates of the Caribbean" ride. Some say the movie of the same name stole the idea from the game. The similarities are, for sure, not coincidental. And now, since LucasArts is part of Disney, it all made a giant circle.
-
-"The Secret of Monkey Island Monkey Island" was one of the earliest examples of adventure gaming done right. You no longer need to guess and type which action the authors envisioned. Instead, the game can be completely operated using a Mouse, as simple verbs represent all actions. This interface has stood the test of time perfectly. I tried (and failed) playing the original Zork games despite the fantastic writing due to the text interpreter. Using the mouse is as simple as it gets. Pro hint: "." on the keyboard allows skipping dialogue lines in ScummVM.
-
-{{< img-center "somi-lazypirates.gif" "Lazy pirates and the UI">}}
-
-The graphics aged, but it did it like a fine wine. The game was a marvel when it came out. LucasArts hired actual graphic artists to do computer games. This was still the wild west, and no one knew how to do it. Nowadays, a game can take up gigabytes, and no one bats an eye. LucasArts sold "Monkey Island" on floppies, and every bite counted. Everything we see or hear was a sacrifice of something else. Luckily, Ron Gilbert - the author and primary programmer on the team - was a legend. He created the Scumm engine, which allowed non-technical folks to create games (by writing scripts, not code), but he also managed to find a way to enable the designers to use dithering. You can listen more on YouTube
-
-- [A five-hour chat with Ron Gilbert, the creator](https://www.youtube.com/watch?v=ikaqus5_QIg)
-- [A two-hour interview with Mark Ferrari, designer](https://www.youtube.com/watch?v=ri4_3P2Oh14)
-- [A short one-hour-long interview with Dave Grossman, designer](https://www.youtube.com/watch?v=GABrEdG8Ez4)
-- [Another interview with Ron Gilbert, this time only 45 minutes long](https://www.youtube.com/watch?v=qzorEPK6khk)
-
-The graphical design is not only a technical marvel but a testament to design done right. The islands look great, and I really wanted to explore them.
-
-But the most significant thing is the idea that the game should not punish players for experimentation. Lucasarts biggest competitor back in those days, Sierra, always found creative and annoying ways to kill the player character. Did you go a pixel too far? You fell from a cliff. Have you met a monster you still lack the means of defeating? Time to die. Sometimes they even completely blocked their progress. For example, in the first "Space Quest," you are expected to find a pixel-wide item on the very first screen. If you skip it, the game won't tell you, and you can proceed. Then, a few hours later, you need to use that item however you can no longer access that location. And you are lucky if you even know about it. There was no internet back then to check the walkthrough!
-
-LucasArts also was guilty of this. For example, in the "Maniac Mansion," you could put a hamster into a microwave. Cooking a hamster seemed funny, but it also blocked the player from finishing the game. Ron Gilbert wrote a short manifesto where he stated that a game should not punish the player but rather encourage him to play. And so, "The Secret of Monkey Island Monkey Island" has no pitfalls. You are never in a position where your prior action blocks you from finishing the game. This has not aged a single day. And, since "The Secret..." is still one of the funniest games ever made, allowing the player to see the funny parts is what makes so many people play it after all those years.
-
-There are still some puzzles that are far from perfect. I solved Chicken with a Trolly puzzle solely because I remembered it after all those years - it's this bad. Moreover, I had to resort to a walkthrough because the solution was based on wordplay, which was far from natural for someone whose English is a second language. After I learned the solution, it made perfect sense. I have to give it to the authors. Everything in the game makes sense in the context of the game. But there were times I could not make head or tails, and I had to resort to the old "let's use everything on everything" strategy - and it's simply not fun to do so.
-
-On the other hand, "The Secret of Monkey Island" is also the home of one of the most fantastic puzzles I've ever witnessed - insult swordplay. You need to defeat pirates in a sword fight, but the fight is an insult-response loop instead of an action sequence. First, the pirate insults you, and you need to learn the proper response and use it, then you insult the pirate, and so on. After a few rounds, you either win and advance to another pirate or lose, but you learn some new insults and need to look for a pirate who will know how to reply. Ingenius! A cherry on top - this part was written by Orson Scott, the author of "Ender's game".
-
-{{< img-center "somi-swordfight.jpg" "Insult sword fighting">}}
-
-The game consists of four parts. Out of them, the first one is easily the most polished and exciting. Luckily, it also took roughly half the total playtime of my playthrough. The rest is still good (and the worst, I'd say, "Flight of the Amazon Queen" good), but the first few hours shine the most, and I am sure this is what most players remember.
-
-Overall, the game was great and (despite some shortcomings) is still extremely fun to play. I sure hope that "Return to Monkey Island" will keep the adventure/comedy ratio from this installment.
-
-And if you get stuck, remember that the "Univeral Hint System" is the best way to get unstuck without getting a ready answer.
-
-["The Secret of Monkey Island" on UHS](https://www.uhs-hints.com/uhsweb/monkey.php)
-
-## Memories Emporium
-
- What I'll remember from the game?
-
-Mostly, the amazing world. Mêlée Island looks great and is full of rememberable characters - like the Voodoo Lady or lazy pirates training their pet rat for a circus. LucasArts has the gift of creating exceptional places. Their later game, "Grim Fandango," shows Rubacava. This is the one gaming place I simply return to from time to time, just to hang out there - but that's a story for a different time. They create a believable world inhabited but not completely sane people. Love it! I'll have to return here with my son when he is a bit older.
-
-The insult sword fighting. I guess I already remembered it as I say, "Well, you fight like a cow" from time to time.
-
-Guybrush. Since this is primarily an adventure story, he is fleshed out for an early 90s game. I really like the guy. He is quirky but also driven and a bit insane. Like every good heron should be. And he can hold his breath underwater for solid 10 minutes!
-
-Not bad for a 6 hour game.
-