diff options
author | mms <michal@sapka.me> | 2024-06-21 20:29:53 +0200 |
---|---|---|
committer | mms <michal@sapka.me> | 2024-06-21 20:29:53 +0200 |
commit | 83aeb3094b1efbc551399322f433cd7b10ce9ded (patch) | |
tree | 8498c560bca067a321971bb56ffc1c4c427c66c6 | |
parent | 32247378e71b3b89d66f19af8c7c12074cdbc149 (diff) |
feat: move some articles back to blog
-rw-r--r-- | assets/brain-rot/screenshots/somi-lazypirates.gif (renamed from assets/content_images/somi-lazypirates.gif) | bin | 74580 -> 74580 bytes | |||
-rw-r--r-- | assets/brain-rot/screenshots/somi-residence.gif (renamed from assets/content_images/somi-residence.gif) | bin | 91634 -> 91634 bytes | |||
-rw-r--r-- | assets/brain-rot/screenshots/somi-splash.png (renamed from assets/content_images/somi-splash.png) | bin | 726998 -> 726998 bytes | |||
-rw-r--r-- | assets/brain-rot/screenshots/somi-swordfight.jpg (renamed from assets/content_images/somi-swordfight.jpg) | bin | 79069 -> 79069 bytes | |||
-rw-r--r-- | assets/brain-rot/screenshots/somi-swordfight.webp (renamed from assets/content_images/somi-swordfight.webp) | bin | 242596 -> 242596 bytes | |||
l--------- | content-org/.#articles.org | 1 | ||||
-rw-r--r-- | content-org/blog.org | 801 | ||||
-rw-r--r-- | content-org/brain-rot.org | 170 | ||||
-rw-r--r-- | content/blog/2022/ddns.md (renamed from content/articles/ddns.md) | 6 | ||||
-rw-r--r-- | content/blog/2022/gnu-stow.md (renamed from content/articles/gnu-stow.md) | 6 | ||||
-rw-r--r-- | content/blog/2022/music-server.md | 159 | ||||
-rw-r--r-- | content/blog/2023/digital-ownership.md (renamed from content/articles/digital-ownership.md) | 6 | ||||
-rw-r--r-- | content/blog/2023/generative-content.md (renamed from content/articles/generative-content.md) | 6 | ||||
-rw-r--r-- | content/brain-rot/classic-games/monkey-island/secret-of-monkey-island.md (renamed from content/articles/secret-of-monkey-island.md) | 29 |
14 files changed, 1160 insertions, 24 deletions
diff --git a/assets/content_images/somi-lazypirates.gif b/assets/brain-rot/screenshots/somi-lazypirates.gif Binary files differindex 147e933..147e933 100644 --- a/assets/content_images/somi-lazypirates.gif +++ b/assets/brain-rot/screenshots/somi-lazypirates.gif diff --git a/assets/content_images/somi-residence.gif b/assets/brain-rot/screenshots/somi-residence.gif Binary files differindex 0911dea..0911dea 100644 --- a/assets/content_images/somi-residence.gif +++ b/assets/brain-rot/screenshots/somi-residence.gif diff --git a/assets/content_images/somi-splash.png b/assets/brain-rot/screenshots/somi-splash.png Binary files differindex 80cee3a..80cee3a 100644 --- a/assets/content_images/somi-splash.png +++ b/assets/brain-rot/screenshots/somi-splash.png diff --git a/assets/content_images/somi-swordfight.jpg b/assets/brain-rot/screenshots/somi-swordfight.jpg Binary files differindex 2187bfd..2187bfd 100644 --- a/assets/content_images/somi-swordfight.jpg +++ b/assets/brain-rot/screenshots/somi-swordfight.jpg diff --git a/assets/content_images/somi-swordfight.webp b/assets/brain-rot/screenshots/somi-swordfight.webp Binary files differindex 7825034..7825034 100644 --- a/assets/content_images/somi-swordfight.webp +++ b/assets/brain-rot/screenshots/somi-swordfight.webp diff --git a/content-org/.#articles.org b/content-org/.#articles.org new file mode 120000 index 0000000..88ee6e5 --- /dev/null +++ b/content-org/.#articles.org @@ -0,0 +1 @@ +mms@voyager.80339:1718871462
\ No newline at end of file diff --git a/content-org/blog.org b/content-org/blog.org index b76c838..577cda4 100644 --- a/content-org/blog.org +++ b/content-org/blog.org @@ -2257,6 +2257,801 @@ But, most importantly, The Weaver published _TWO_ new articles on computer histo - [[http://wovenmemories.net/2024/01/02/Subroutines.html][Subroutines]] + +** 2023 +:PROPERTIES: +:EXPORT_HUGO_SECTION: blog/2023 +:END: + +*** DONE Ownership in the digital age :@update: +CLOSED: [2023-12-08 Wed 23:00] +:PROPERTIES: +:EXPORT_FILE_NAME: digital-ownership +:EXPORT_HUGO_CUSTOM_FRONT_MATTER+: :abstract Digital economy has taken over and with this we need to reevaluate what it means to actually own something. In this article I try to present my definition of ownership and what results from it. +:EXPORT_HUGO_CUSTOM_FRONT_MATTER+: :aliases '(/articles/digital-ownership) +:END: + +It is often said that you can't own anything unless you have a physical thing in your hand. +So, any digital purchase is not ownership. +A Blu-ray is. + +> ... And in the case of "Oppenheimer", we put a lot of care and attention into the Blu-ray version […] and trying to translate the photography and the sound, putting that into the digital realm with a version you can buy and own at home and put on a shelf so no evil streaming service can come steal it from you. ... \ +> Christopher Nolan + +This made me wonder and the longer I thought, the less I could agree. +The simple fact that you own the carrier does not necessary mean that you own the content. + +**** 1. What it means to own something? + +Here are a few questions I asked myself to get to that conclusion + +- *Can you access it?* +This is simple. +I have paid for it, can I access it assuming all requirements are fulfilled? +If not, this is a scam. +- *Does it require subscription?* +Do I need to pay again to use it? +Case in point: any SASS. +You don't own any Netflix content. +- *Can you run it locally?* +I have paid for it. Can I run (play) it on my local machine? +Or is the provider infrastructure needed? +Example: any cloud software. +You can't run Notion on your machine. +- *Can someone take it from you?* +Can someone block me from accessing it? +Case in point: Amazon removing copy of /1984/ from Kindles[^1984]. +Note, that the situation where law enforcement or judge can take it from you is completely valid. +We have a different relation with governments than with private companies. +- *Are there any locked features?* +Are there features provider can use, but you can not? +You need to /hack/ your android device to gain root privileges. +- *Can you sell it?* +Can I sell my copy? +You can't sell previously bought game on Steam[^steam-acc]. +- *Can you back it up* +Can I create a copy in case of breaking the original? +Disks can break and data stored on them can rot. +You can't back up Blu-ray without defeating DRM mechanisms. +This is the first moment I disagree with Nolan. +- *Can you copy it?* +Can you create an identical copy? +It's a digital entity, so identical copy is the easiest out there. +I don't mention selling here, just to create a copy. +Again, Blu-ray with DRM block copying. +- *Can you borrow it?* +Can I borrow it to a friend? +You can borrow a Blu-ray, but not a Kindle book or PSN game. +- *Can you access it on wide range of devices?* +Can I access it on a device fulfilling technical requirements? +I don't expect to run an TRS-80 game on PlayStation 5, but why can't I play my DVD bought in Europe after traveling to North America? +Ergo, any DRM "secured" digital good is not owned. +- *Can you modify it?* +Can you change the home screen layout of iPhone outside what the designers provided? +- *Can you repair it?* +A bit self-explanatory. +Can you repair your MacBook assuming you have the skills required? +What about the Windows copy you use? + +[^1984]: [[https://archive.nytimes.com/pogue.blogs.nytimes.com/2009/07/17/some-e-books-are-more-equal-than-others/][Some E-Books Are More Equal Than Others]] +[^steam-acc]: I know that people sell entire Steam accounts with games, but this is bypassing the no-sell policy; not a feature. + +Nowadays, it's almost impossible to make a transition regarding a digital good which would tick most of those ticks. +Back before everything went digital it would be difficult to find cases which *wouldn't*. +Not all of them, as it would be difficult to copy a refrigerator (but not impossible) but the sentiment remains. +It used to be that owner was able to exercise much broader freedom of usage. + +**** 2. Impact of ownership on my perceived value + +As I've hopefully explained before, almost all digital goods on the mark don't fall into "possible to own" category. +But if we pay for it, where does it leave us? +I needed a word to define the result of transaction which does not pass ownership. +And there is such word: /rent/. + +Renting was always there. +I would rent videotape for a local rental. +I would rent a book from local library. +I would rent a car from car rental company. +None of these were ever considered a /purchase/, because why would we? +I paid for access, but whatever I rented was still owned by the other party. + +This is not the exact case as with the primary subject here. +I am lured to believe that I own "my digital purchase" because the timeframe is not defined upfront. +Therefore, I think of a Steam, Amazon, PSN, iTunes "purchase" as indefinite renal. +I may lose access at any moment[^sony], I just don't know when. +It may happen due to multitude of reasons: the company may go bankrupt, the license may expire[^sony], my account may become blocked[^sony2], or the company may pull out and close the service[^google]. +[^sony]: [[https://arstechnica.com/gadgets/2023/12/playstation-is-erasing-1318-seasons-of-discovery-shows-from-customer-libraries/][PlayStation is erasing 1,318 seasons of Discovery shows from customer libraries]]. Seriously. +[^sony2]: [[https://www.indiatoday.in/technology/news/story/several-playstation-users-locked-out-of-their-accounts-get-permanent-suspension-message-from-sony-2472107-2023-12-05][Several PlayStation users locked out of their accounts, get permanent suspension message from Sony]] +[^google]: [[https://www.wired.com/story/google-stadia-shutting-down-phil-harrison/][The End of Google Stadia]] + +The wording here is exact: I may /loose access/. Yup, this is what I mean when I think of renting. + +There was, however, one huge benefit of renting when compared to buying: the price. +It was always much cheaper to rent a move than buy one. +It made perfect sense. +I was able to watch a rented movie for a few days, and then return it. +The renter would invest in purchase, I would pay a small amount and the world would still do its thing. + +In the digital age this gain is no longer valid. +When renting becomes the only option, there is no reason to offer it cheaper than ownership. +And therefore renting of digital goods is expensive. + +Too expensive. +If we start to think that the "buy" button actually means "rent", that $60 shiny new game stops making so much sense. + +**** 3. Digital scarcity + +But since it is commonly understood as "purchase", then companies can try to use our collecting impulses. +And they are strong, just look at any random tech channel. +People want to collect, and to put things in their collections. + +Steam library is often a reason to brag about. +I have a thousand games they say! +I played 10, but I have 1000! + +And so there are preorders. +Get you digital purchase early, be the first to own it. +Get *rare* add-ons (as if anything digital can be rare). +Pay extra for super-duper version with limited horse armor (nothing stops them from releasing the bonus content later on). + +The idea come from olden days, where getting stuff soon may have been the only way to actually get it. +If it's vinyl record they are selling, they indeed may run of it. +If it's download, the only way to stop next person from it is greed. + +**** 4. "My" page + +A special mention goes to Facebook with their brilliant "My page" marketing. +"Visit our Facebook page" is what I often see and hear. +And yet there nothing "theirs" on that page except of content, to which right were transferred to Meta the moment someone hit "send". +This is (still) free, but using the "My" word is further eroding the meaning of ownership. +Please, don't. + +**** 5 The pirate in the room + +And now the sad part: the closest way to own digitual stuff warez[^dmca]. +Crackers, in order to bypass the DRM mechanism (now called jail breaking) need to remove limitations enforced on the end user. +You can copy a pirated game, you can borrow it, you can modify it, you can archive it. +It's more /yours/ than the biggest of Steam libraries. + +[^dmca]: My views on DMCA are not part of this article. Someday I'll write one and get banned from Google. + +**** 6. Conclusion + +Where does this leave me? +I can't change anything and the transformation to digital-renting of everything is here to stay. +Everyone wants me to rent to something - be it streaming service, or a car company. + +However, when I stopped thinking that I can actually own anything, my perceived value of digital stuff couldn't be lower. +I may drop a few bucks for a digital-download. +But above that? +Hard sell. + +Meaning of words change over time, and they always had. +The definition of "ownership" was clear but no longer is. +The word can mean any financial transaction or be nothing more than marketing ploy. +You can have zero ownership (Netflix), a bit of it (PSN), a lot of it (GOG[^gog]). +And this gradation correlates my interest of doing business. +I'll **gladly** pay an author for a DRM-free PDF of their book if I can download it. +I'll happily buy a DRM-free game from GOG. + +But below that level of purchasing? Well, I can either skip it completely or think of other ways of obtaining it. + +[^gog]: [GOG 2022 update #2: our commitment to DRM-free gaming](https://www.gog.com/news/bgog_2022_update_2b_our_commitment_to_drmfree_gaming). + + +*** DONE On generative content :@update: +CLOSED: [2023-12-20 Wed 22:47] +:PROPERTIES: +:EXPORT_FILE_NAME: generative-content +:EXPORT_HUGO_CUSTOM_FRONT_MATTER+: :abstract I don't believe that AI will kill us, but I strongly believe it will lessen us. Here I try to describe that by looking at impact on art, culture, tech, and potential benefits. +:EXPORT_HUGO_CUSTOM_FRONT_MATTER+: :aliases '(/articles/generative-content/) +:END: +It seems that generative content from "modern" AI models has been with us forever. +In reality this is still a new fad. +The feeling is here because it seems that every few days we hear new product or controversy. + +However, I still remember that computers were to be unable to replace humans in /creative/ work. +That the /human/ part is irreplaceable, and machines can only reproduce. +I think it still the case. +But, somehow, artists, techies, and all kinds of other folks all over the world are afraid of loosing their means of living. +Rightfully so. +But why? +**** 1. Mass-art market +When I was younger, I was very into cinematography. +We had so many directors with their voices - Jarmush, Lynch, Smith, Tarantino, Cronenberg, Carpenter, Boyle, Ritchie, Anderson, or Fincher. +And that's just the USA! +They had the voice - even when imitating, the movies were distinctly /theirs/. +They got chances, so we all knew them. +It is no longer the case. +The mid-budget movie is almost non-existent, and that's where the creativity strived. +The popular movies, the ones that make all the money, are indistinguishable copies of each other. +What earns the money is the same, big budget CGI fest without any real meaning or personal touch. + +In photography the end product is so removed from the original, that often it is impossible to see similarities. +Everything that is not perfect is corrected and removed. +We don't see people from posters on the street because they don't exist in the same reality we do. +This is what we call /content/, this shapeless blob filling platforms. + +The mass-market "art" (and I use the term here very loosely) was removed from the /human/ a long time ago. +Why take chances, when we know what will work? +And if you know what will work, why even bother with humans? +An AI can create the script, and we can reuse that 3d model of Bogart - because why not? +What we see and what we pay for is no longer /human/. +It's more machine than that - endlessly modified to be as close the blob of mass appeal as possible. +Indistinguishable from each other. + +And this is where generative algorithms strive. +When we exactly know what we want to produce, where there is a mathematical equation of beauty, we're no longer in *human* creativity. + +Since the most popular /content/ is made from the same mold, LLM models can create it as well. +In fact, it can create it better, as those /imperfections/ that a human might have missed, an AI can easily remove. + +All the Dall-E pictures are perfect. They are impossibly complex and complying to the popular norms. + +They are also boring. +It's the imperfections that make /art/, well, /Art/. +No human creation is perfect and this why computer generated /content/ can not be called art. +It's too studied, too ideal, too perfect. + +But the mass market pulp is what allows /artists/ to live. +This is where they make the money. +This is what pays the bills, what puts the food on the table. +Why pay 50EUR and wait 2 weeks for a Fiver order? +You can get just as good result in 10 minute chat with a bot. + +LLMs have reversed humanity. +I fear that we are getting back to the state where /art/ may come only from /suffering/; +where artists live to create that one piece which may immortalize them, but this life is not what modern world promises. +We are to no longer see /hungry/ people in developed countries. +We are to no longer experience /pain/ in pursue of /happiness/. +Why would anyone choose it? + +Therefore, I am afraid that this will decrease the number of people who choose creativity as their living hood. +Without them, we will be destined to status-quo of mediocrity +It will be perfect, but it will be soulless. + +Just as the mass market is now, just without anyone pushing it forward. +And with us, running the hamster wheel of never ending /content/. +**** 2. Tech market +The other, very popular, use case is code generation. + +GitHub Copilot can translate a short query into an evaluable code. +It is sold as a mean to automate the /boring/ and /repetitive/ tasks - creating boilerplate, configurations, loops, or simple algorithms. +But are those really lesser tasks than the big ones? + +I've been a professional Software Engineer for 10 years now. +My journey has not been the typical, one where one finishes either IT college, or a boot camp. +I'm self-thought, and I joined It Crowd from other occupation by sheer luck. +The company needed /Ruby/ developer and boom - there I was. +Not the perfect candidate, but I was capable, eager and hungry. + +I've made a lot of mistakes, I've wasted a lot of time, I've taken down the production on a few occasions. +All of those could have been avoided if I used a code generation. + +But it's impossible of overstate how important those menial tasks were in making me into a real /Software Engineer/. + +With every mistake, I learned. +With every issue, I became swifter to jump into action, +With every boring, repetitive task[^ruby] I gained insights into how stuff works. +[^ruby]: with /Ruby/ and /Ruby on Rails/ there aren't many of those but still, you do the same things from time to time. + +But the biggest growth came from the most hated task of all - writing tests. +It is there where I learned how to write a usable contract; it is there where I learned the value of documentation-as-a-code[^cdac] +Would I learn anything from "hey copilot, write tests for this class"? +I doubt. +[^cdac]: very often the best documentation of a contract is the test for it. + +This was what every intern/junior would do - the dirty work. +With the dirty work comes the realization that the real world is not perfect, not every code is good and not every developer is good at being a developer. +And with Copilot we are loosing it. + +We are losing it two ways: first, juniors will not learn; second junior will not be hired. +We are already seeing that there are much fewer offers for sub-senior positions. +Why would it be different? +A senior aimed with code generation can do the work of many junior and one senior. +It makes /perfect/ economic sense. + +But this is also the suicide of the industry. +Without new blood, the tech crowd will shrink. +Companies want infinite growth, and will not stop at anything to accomplish it. +We've seen all the visa scandals, the inclusivity actions, the offshoring[^contr]., +It's clear that all those had only one goal: to increase the pool of /cheaper/ candidates. +The typical programmer is expensive; someone fighting to leave poverty is not. +But now the competition is no longer /someone/ cheaper, but rather something that's never tired, and can create infinite number of creations, but is still /cheaper/ than a human can ever be. +When was the last time you tried to outrun a train? +When was the last time you tried to fight a machine to give your children a better start? +[^contr]: this is not the place where I want to address those subjects, but their existence is important for this article. +**** 3. Maybe I am wrong +But what if I am wrong? +We've seen similar things before. +Ever since the beginning of industrial revolution, more and more industries were mechanized and automated. +The machines needed someone to take care of them, to design them. +And the rest of the populi moved to other areas. + +Will it be the same? +Well, how much work does an /algorithm/ need to operate? +We are still in development phase, so we see a lot of people working there. +But when we will reach plateau? +There will be a time when it will be good enough. +A moment when companies will buy it and not expect it to be better. +How many people will be needed then? +What will be left to do? + +Will Universal Basic Income be enough? +It assumes infinite growth, and this may be in the hands of very few, gigantic companies. +We already see how big influence Altman and Open AI has. +There will still be rich, the 1%, so money will still be an issue. +Will we simply do yet another October Revolution? +**** 4. Utopia that is false +The best case scenario is that humanity, as a whole, will ascend. +Free from the shackles of menial task, we will all be poets and explorers. + +This is what /Star Trek/[^old] is all about - a world where we no longer need to create and work to survive. +In place of that, we are free to pursue adventure, knowledge. +With nothing to gain, why one would need power? +Money? +We can focus on the humanity as one entity, to make it better. +[^old]: old Trek, at last. + +In /Star Trek/ this was not created by removing jobs but by presence of /replicators/ - a device capable of creating virtually anything. +No longer food is scarce, we can simply create it. + +Replicators are like LLM, but they create things of intrinsic value. +This is what removed the shakles. +And this is the biggest difference: LLM don't create anything that will actually free us. +It will never make our lives better and freer. +It will make it easier for /few/ on the cost of /many/. +**** 4. Summary + +I believe that LLMs will steal of us younger talent, who has yet to make a dent. +They won't have the chance to learn and earn on the basic stuff, so they will not be in position to create the big thing. +The cost of using LLMs is so low (and will only become cheaper), that there will be no place for them. +And I am afraid that the post-LLM market can find worthy place for them. + + +** 2022 +:PROPERTIES: +:EXPORT_HUGO_SECTION: blog/2022 +:END: + +*** DONE Dynamic DNS +CLOSED: [2022-05-13 Fri 22:26] +:PROPERTIES: +:EXPORT_FILE_NAME: ddns +:EXPORT_HUGO_CUSTOM_FRONT_MATTER+: :abstract DDNS is a DNS for folks with non-static IP. Here I try to choose the best for me. +:EXPORT_HUGO_CUSTOM_FRONT_MATTER+: :aliases '(/2022/ddns/ /articles/ddns/) +:END: + +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. + +[[https://wiki.archlinux.org/title/Dynamic_DNS][DDNS on Arch Wiki]] + +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 install 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 + +## 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 + +#+BEGIN_SRC +https://api.dynu.com/nic/update?myip=__MYIP__&username=__USERNAME__&password=__PASSWORD__&hostname__HOSTNAME__&myipv6=no +#+END_SRC + +Now, add a subdomain. Note, that it would be best to MD5 the password. + + + + + + +*** DONE GNU Stow :@update: +CLOSED: [2022-06-09 Fri 22:26] +:PROPERTIES: +:EXPORT_FILE_NAME: gnu-stow +:EXPORT_HUGO_CUSTOM_FRONT_MATTER+: :abstract GNU Stow is a tool for managing symlink farms, used primarily for dotfiles. Here you can find a short guide on how to use it. +:EXPORT_HUGO_CUSTOM_FRONT_MATTER+: :aliases '(/articles/gnu-stow) +:END: +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. + +Let's take a very typical dotfiles repository. + +#+BEGIN_SRC shell +./nvim/init.lua +./tmux/tmux.conf +#+END_SRC + +You want to have those files available as + +#+BEGIN_SRC shell +~/.config/nvim/init.lua +~/.tmux.conf +#+END_SRC + +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. + +[[https://www.gnu.org/software/stow/manual/stow.html][GNU Stow website]] + +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. + +#+BEGIN_SRC shell +~/target/stow/one/config/one.conf +~/target/stow/two/config/two.conf +~/target/stow/three/config/three.conf +#+END_SRC + +So, our home director now has a "Target" directory, which has a "Stow" directory. +The Stow directory stores three configs which we want to symlink as + +#+BEGIN_SRC shell +~/target/config/one.conf +~/target/config/two.conf +~/target/config/three.conf +#+END_SRC + +Let's stow the first one + +#+BEGIN_SRC shell +cd ~/target/stow +stow one +#+END_SRC + +And see what happened + +#+BEGIN_SRC shell +cd ~/target +ls -lA +#+END_SRC + +We get something like + +#+BEGIN_SRC 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 +#+END_SRC + +Stow created a config symlink in the target directory. +Very cool, but it gets cooler! Let' stow the second one + +#+BEGIN_SRC shell +cd ~/target/stow +stow two +#+END_SRC + +and what we get + +#+BEGIN_SRC 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 +#+END_SRC + +Our config is no longer a symlink, but a real folder. +Let's see what's inside here. + +#+BEGIN_SRC shell +cd config +ls -lA +#+END_SRC + +#+BEGIN_SRC 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 +#+END_SRC + +We have our two configs, but what has happened? +Stow looked at both subtrees for "one" and "two" and joined them 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 structure of the actual config! Coming back to our example, we can have a + +#+BEGIN_SRC shell +~/dotfiles/tmux/.tmux.conf +~/dotfiles/nvim/.config/nvim/init.lua +#+END_SRC + +Then, after stowing both packages we have symlinks under our desired + +#+BEGIN_SRC shell +~/.config/nvim/init.lua +~/.tmux.conf +#+END_SRC + +GNU Stow is a very simple tool. All we need to understand what will happen with each subtree. + + +*** DONE Adding simple music server to my network +CLOSED: [2022-05-25 Fri 22:26] +:PROPERTIES: +:EXPORT_FILE_NAME: music-server +:EXPORT_HUGO_CUSTOM_FRONT_MATTER+: :abstract As part of my partitioning with streaming services, I have created a small music server on my home network. This article touches on how to get music, how to store and how to actually listen to it. +:EXPORT_HUGO_CUSTOM_FRONT_MATTER+: :aliases '(/articles/music-server /2022/music-server) +:END: + +/This is an old article, and even though it is still valid, I no longer use Linux/ + +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. + +**** 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. + +The first problem is having something to put a disc in. +I've gotten myself a cheap USB-CD/DVD drive. +It's very loud, but since I use it only for getting the data to my computer, it's not a problem. + +I rip (a word that I have not seen in a long time) on MacBook using XLD app. +I plan to move this step to Linux soon. + +[[https://tmkk.undo.jp/xld/index_e.html][XLD homepage]] + +I rip the music to FLAC, which seems to be standard. +It's lossless and most file-based players have no problems with it. +Of course, not everywhere. +iOS is always problematic, but I don't listen to music on the go very often, so it's a problem for future me. + +A single album in FLAC takes about 200-300 MB. +I still remember MP3 days, where it would go down to 60 MB or less, but back then storage and transfer were actually expensive. +I don't hear any noticeable difference between FLAC and good compressed file, but again - storage and transfer is cheap, Furthermore I have a single high-res album where half an hour takes 750 MBMB and there is zero difference. +Well, now I know, and I won't buy-high res ever again :) + +**** Storing and serving music + +The music will be accessed by multiple devices on local network, so putting it on the Home Server makes perfect sense. +I now have a dedicated share "music" which is shared via Samba and NFS. + +Samba seems better than NFS, but then NFS on Linux is simpler to set up. + +For Samba, I need to add read+write access to Music share for each user from Synology web UI. + +NFS on the other hand doesn't support users, but devices instead. +The first step is to set static IP for my devices (which is always a good idea). +How exactly this should be approached depends on the setup, but I use UniFi Dream Machine and forcing IP for a device is very straight forward. +After I have static IPs, I can add read/write access for those addresses, also via Synology web UI. + +Served music is so small, that this does not add any noticeable overhead for the server. + +**** Accessing the music on Linux + +First, I needed to install NFS support. I use Arch, so: + +#+BEGIN_SRC shell + pacman -S nfs-utils +#+END_SRC + +Then I checked if the share actually exists. My server's address is 10.0.1.200. + +#+BEGIN_SRC shell +showmount -e 10.0.1.200 +------------------ +Export list for 10.0.1.200: +/volume2/music 10.0.1.10 +#+END_SRC + +Voilà! Next step: check if it works + +#+BEGIN_SRC shell + mkdir /mnt/music + mount 10.0.1.200:/volume2/music /mnt/music/ + cd /mnt/music + ls +#+END_SRC + +And listing worked. +Noice. +To automate it for future, and to allow non-root users to actually mount the drive I added a new mount to /etc/fstab: + +#+BEGIN_SRC shell +10.0.1.200:/volume2/music /mnt/music nfs _netdev,noauto,x-systemd.automount,x-systemd.mount-timeout=10,timeo=14,users,x-systemd.idle-timeout=1min 0 0 +#+END_SRC + +After the first user accesses /mnt/music, the drive will be mounted. + +**** Playing the music using CMUS + +We have access to the files, let's play it. +Every modern music player for Linux should work with Flac, but I've chosen CMUS. +It's fast, it's terminal based, and it supports VIM keybindings. + +[[https://cmus.github.io/][CMUS on Github]] + +#+BEGIN_SRC shell +pacman -S cmus +#+END_SRC + +After we open cmus, we need to add music. +It's done similarly to VIM, via an ex command. + +#+BEGIN_SRC shell +:add /mnt/music/ +#+END_SRC + +And a few seconds later, the music is visible in the player. +Using CMUS requires reading the manual + +#+BEGIN_SRC shell +man cmus-tutorial +#+END_SRC + +but the basics I needed to play something from Artist/Album view were: + +| key | descrition | +|-------+---------------------------------------| +| j | go up | +| k | go down | +| tab | change active window (artists/tracks) | +| space | expand artist to album list | +| c | play track / pause track | +| e | add track to queue | +| q | exit | + + +Extra bonus: after first configuring system I had some problems with audio not working from time to time. +Moving from Pulse to Pipewire solved them all. + +[[https://pipewire.org/][Pipewire webpage]] + +**** Listening on Mac via CMUS + +I have no idea how to auto mount a server on MacOS, so after every reboot or network change, I need access the Samba share via Finder. +After it's mounted, I can access it under /Volumes/music. + +On Mac I also use CMUS, so all of the above apply as well. +One difference is adding the files due to different location + +#+BEGIN_SRC shelll +:add /Volumes/music +#+END_SRC + +**** Next up + +This doesn't solve all my needs. In the future I need to find out how to: + +- Access The Music Outside My Home Network +- how to marry this setup with my multiroom system (Sonos + Homepods) + + + + * WIP ** TODO Bringing back web buttons, antipixels, and banners ** TODO Wikipedia is a problem @@ -2267,3 +3062,9 @@ Wikpedia has a list of /controvesion subjecs/ https://en.wikipedia.org/wiki/Wiki ** New things make me sad ** TODO Don McMillan https://www.youtube.com/watch?v=kwz-Md6OoyA + + + + + + diff --git a/content-org/brain-rot.org b/content-org/brain-rot.org index f48ad9c..13fe57f 100644 --- a/content-org/brain-rot.org +++ b/content-org/brain-rot.org @@ -2319,4 +2319,172 @@ Too bad that there's a game attached. [fn:qte] And it still ended in a QTE. Shame. -# LocalWords: a + +** Monkey Island +:PROPERTIES: +:EXPORT_HUGO_SECTION: brain-rot/classic-games/monkey-island +:END: + +*** DONE Secret of Monkey Island, The (1990) +CLOSED: [2022-05-04 Fri 22:26] +:PROPERTIES: +:EXPORT_FILE_NAME: secret-of-monkey-island +:EXPORT_HUGO_CUSTOM_FRONT_MATTER+: :abstract Secret of Monkey Island is a classic point-and-click adventure game. This is my short review. +:EXPORT_HUGO_CUSTOM_FRONT_MATTER+: :aliases '(/2022/secret_of_monkey_island /articles/secret-of-monkey-island) +:EXPORT_HUGO_CUSTOM_FRONT_MATTER+: :rating 4.75 +:EXPORT_HUGO_MENU: :menu "brain-rot-classic-games" +:END: + +In preparation for /Return to Monkey Island/[fn:rtmi], I have decided to replay the first three classic games[fn:2023]. + +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 play through was sometime around the year 2002. + +#+attr_shortcode: :file somi-splash.png +#+attr_shortcode: :alt And island in the dark. A big stylized text with the title of the game occupies most of the screen. +#+attr_shortcode: :class centered +#+begin_image +Title screen +#+end_image + +[fn:rtmi] [[https://returntomonkeyisland.com/]["Return to Monkey Island" official webpage]] +[fn:2023] update from 2023: this is still in progress. +**** Running the game + +Running this 30-year-old game is amazingly easy, thanks to SummVM[fn:scvm]. +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. + + +You can also play in the browser via Internet Archive[fn:ia]. + + +If you want the updated version, you can get it on GOG[fn:gog]. + +[fn:scvm] [[https://www.scummvm.org/][ScummVM website]] +[fn:ia] [[https://archive.org/details/mnkyega]["The Secret of Monkey Island" on the Internet Archive]] +[fn:gog] [[https://www.gog.com/game/the_secret_of_monkey_island_special_edition]["The Secret of Monkey Island" on GOG]] + +**** Playing the game + +/The Secret of 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/ 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. + +#+attr_shortcode: :file somi-lazypirates.gif +#+attr_shortcode: :alt A group of pirates sitting on a barrel occupy left side of the screen. In center a short pirate stands. Bottom is occupied by UI with graphical buttons representing possible actions. +#+attr_shortcode: :class centered +#+begin_image +Lazy pirates and the UI +#+end_image + +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 + +- [[https://www.youtube.com/watch?v=ikaqus5_QIg][A five-hour chat with Ron Gilbert, the creator]] +- [[https://www.youtube.com/watch?v=ri4_3P2Oh14][A two-hour interview with Mark Ferrari, designer]] +- [[https://www.youtube.com/watch?v=GABrEdG8Ez4][A short one-hour-long interview with Dave Grossman, designer]] +- [[https://www.youtube.com/watch?v=qzorEPK6khk][Another interview with Ron Gilbert, this time only 45 minutes long]] + +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" 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 Trolley 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. +Ingenious! A cherry on top - this part was written by Orson Scott, the author of "Ender's game". + +#+attr_shortcode: :file somi-swordfight.jpg +#+attr_shortcode: :alt Two pirates with swords aimed at each other. Bottom of the screen contains funny insults. +#+attr_shortcode: :class centered +#+begin_image +Insult swordfighting +#+end_image + +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 play through. +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 "Universal Hint System"[fn:uhs] is the best way to get unstuck without getting a ready answer. + +[fn:uhs] [[https://www.uhs-hints.com/uhsweb/monkey.php]["The Secret of Monkey Island" on UHS]] + + +**** 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. + + diff --git a/content/articles/ddns.md b/content/blog/2022/ddns.md index 44ed11a..73d9aad 100644 --- a/content/articles/ddns.md +++ b/content/blog/2022/ddns.md @@ -2,11 +2,11 @@ title = "Dynamic DNS" author = ["Michał Sapka"] date = 2022-05-13T22:26:00+02:00 -lastmod = 2023-12-29T23:13:44+01:00 -categories = ["article"] +categories = ["blog"] draft = false -weight = 2006 +weight = 3001 abstract = "DDNS is a DNS for folks with non-static IP. Here I try to choose the best for me." +aliases = ["/2022/ddns/", "/articles/ddns/"] +++ I am one of the unlucky ones without static IP address. diff --git a/content/articles/gnu-stow.md b/content/blog/2022/gnu-stow.md index 4bec832..5d06dee 100644 --- a/content/articles/gnu-stow.md +++ b/content/blog/2022/gnu-stow.md @@ -2,11 +2,11 @@ title = "GNU Stow" author = ["Michał Sapka"] date = 2022-06-09T22:26:00+02:00 -lastmod = 2023-12-29T22:52:33+01:00 -categories = ["article", "update"] +categories = ["blog", "update"] draft = false -weight = 2004 +weight = 3002 abstract = "GNU Stow is a tool for managing symlink farms, used primarily for dotfiles. Here you can find a short guide on how to use it." +aliases = ["/articles/gnu-stow"] +++ If you are working with Linux/BSD based system, you are most likely accustomed to managing your configs with dotfiles. diff --git a/content/blog/2022/music-server.md b/content/blog/2022/music-server.md new file mode 100644 index 0000000..ce79ebb --- /dev/null +++ b/content/blog/2022/music-server.md @@ -0,0 +1,159 @@ ++++ +title = "Adding simple music server to my network" +author = ["Michał Sapka"] +date = 2022-05-25T22:26:00+02:00 +categories = ["blog"] +draft = false +weight = 3003 +abstract = "As part of my partitioning with streaming services, I have created a small music server on my home network. This article touches on how to get music, how to store and how to actually listen to it." +aliases = ["/articles/music-server", "/2022/music-server"] ++++ + +_This is an old article, and even though it is still valid, I no longer use Linux_ + +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. + + +## Getting music {#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. + +The first problem is having something to put a disc in. +I've gotten myself a cheap USB-CD/DVD drive. +It's very loud, but since I use it only for getting the data to my computer, it's not a problem. + +I rip (a word that I have not seen in a long time) on MacBook using XLD app. +I plan to move this step to Linux soon. + +[XLD homepage](https://tmkk.undo.jp/xld/index_e.html) + +I rip the music to FLAC, which seems to be standard. +It's lossless and most file-based players have no problems with it. +Of course, not everywhere. +iOS is always problematic, but I don't listen to music on the go very often, so it's a problem for future me. + +A single album in FLAC takes about 200-300 MB. +I still remember MP3 days, where it would go down to 60 MB or less, but back then storage and transfer were actually expensive. +I don't hear any noticeable difference between FLAC and good compressed file, but again - storage and transfer is cheap, Furthermore I have a single high-res album where half an hour takes 750 MBMB and there is zero difference. +Well, now I know, and I won't buy-high res ever again :) + + +## Storing and serving music {#storing-and-serving-music} + +The music will be accessed by multiple devices on local network, so putting it on the Home Server makes perfect sense. +I now have a dedicated share "music" which is shared via Samba and NFS. + +Samba seems better than NFS, but then NFS on Linux is simpler to set up. + +For Samba, I need to add read+write access to Music share for each user from Synology web UI. + +NFS on the other hand doesn't support users, but devices instead. +The first step is to set static IP for my devices (which is always a good idea). +How exactly this should be approached depends on the setup, but I use UniFi Dream Machine and forcing IP for a device is very straight forward. +After I have static IPs, I can add read/write access for those addresses, also via Synology web UI. + +Served music is so small, that this does not add any noticeable overhead for the server. + + +## Accessing the music on Linux {#accessing-the-music-on-linux} + +First, I needed to install NFS support. I use Arch, so: + +```shell +pacman -S nfs-utils +``` + +Then I checked if the share actually exists. My server's address is 10.0.1.200. + +```shell +showmount -e 10.0.1.200 +------------------ +Export list for 10.0.1.200: +/volume2/music 10.0.1.10 +``` + +Voilà! Next step: check if it works + +```shell +mkdir /mnt/music +mount 10.0.1.200:/volume2/music /mnt/music/ +cd /mnt/music +ls +``` + +And listing worked. +Noice. +To automate it for future, and to allow non-root users to actually mount the drive I added a new mount to /etc/fstab: + +```shell +10.0.1.200:/volume2/music /mnt/music nfs _netdev,noauto,x-systemd.automount,x-systemd.mount-timeout=10,timeo=14,users,x-systemd.idle-timeout=1min 0 0 +``` + +After the first user accesses /mnt/music, the drive will be mounted. + + +## Playing the music using CMUS {#playing-the-music-using-cmus} + +We have access to the files, let's play it. +Every modern music player for Linux should work with Flac, but I've chosen CMUS. +It's fast, it's terminal based, and it supports VIM keybindings. + +[CMUS on Github](https://cmus.github.io/) + +```shell +pacman -S cmus +``` + +After we open cmus, we need to add music. +It's done similarly to VIM, via an ex command. + +```shell +:add /mnt/music/ +``` + +And a few seconds later, the music is visible in the player. +Using CMUS requires reading the manual + +```shell +man cmus-tutorial +``` + +but the basics I needed to play something from Artist/Album view were: + +| key | descrition | +|-------|---------------------------------------| +| j | go up | +| k | go down | +| tab | change active window (artists/tracks) | +| space | expand artist to album list | +| c | play track / pause track | +| e | add track to queue | +| q | exit | + +Extra bonus: after first configuring system I had some problems with audio not working from time to time. +Moving from Pulse to Pipewire solved them all. + +[Pipewire webpage](https://pipewire.org/) + + +## Listening on Mac via CMUS {#listening-on-mac-via-cmus} + +I have no idea how to auto mount a server on MacOS, so after every reboot or network change, I need access the Samba share via Finder. +After it's mounted, I can access it under /Volumes/music. + +On Mac I also use CMUS, so all of the above apply as well. +One difference is adding the files due to different location + +```shelll +:add /Volumes/music +``` + + +## Next up {#next-up} + +This doesn't solve all my needs. In the future I need to find out how to: + +- Access The Music Outside My Home Network +- how to marry this setup with my multiroom system (Sonos + Homepods) diff --git a/content/articles/digital-ownership.md b/content/blog/2023/digital-ownership.md index 7039282..83097a9 100644 --- a/content/articles/digital-ownership.md +++ b/content/blog/2023/digital-ownership.md @@ -2,11 +2,11 @@ title = "Ownership in the digital age" author = ["Michał Sapka"] date = 2023-12-08T23:00:00+01:00 -lastmod = 2023-12-20T23:30:02+01:00 -categories = ["article", "update"] +categories = ["blog", "update"] draft = false -weight = 2002 +weight = 3001 abstract = "Digital economy has taken over and with this we need to reevaluate what it means to actually own something. In this article I try to present my definition of ownership and what results from it." +aliases = ["/articles/digital-ownership"] +++ It is often said that you can't own anything unless you have a physical thing in your hand. diff --git a/content/articles/generative-content.md b/content/blog/2023/generative-content.md index defbde5..471b733 100644 --- a/content/articles/generative-content.md +++ b/content/blog/2023/generative-content.md @@ -2,11 +2,11 @@ title = "On generative content" author = ["Michał Sapka"] date = 2023-12-20T22:47:00+01:00 -lastmod = 2023-12-20T23:11:48+01:00 -categories = ["article", "update"] +categories = ["blog", "update"] draft = false -weight = 2003 +weight = 3002 abstract = "I don't believe that AI will kill us, but I strongly believe it will lessen us. Here I try to describe that by looking at impact on art, culture, tech, and potential benefits." +aliases = ["/articles/generative-content/"] +++ It seems that generative content from "modern" AI models has been with us forever. diff --git a/content/articles/secret-of-monkey-island.md b/content/brain-rot/classic-games/monkey-island/secret-of-monkey-island.md index 7ed3ace..2d74132 100644 --- a/content/articles/secret-of-monkey-island.md +++ b/content/brain-rot/classic-games/monkey-island/secret-of-monkey-island.md @@ -1,12 +1,19 @@ +++ -title = "The Secret of Monkey Island" +title = "Secret of Monkey Island, The (1990)" author = ["Michał Sapka"] date = 2022-05-04T22:26:00+02:00 -lastmod = 2023-12-29T22:43:45+01:00 -categories = ["article", "update"] +categories = ["brainrot"] draft = false -weight = 2003 +weight = 3001 +image_dir = "brain-rot/screenshots" +image_max_width = 765 abstract = "Secret of Monkey Island is a classic point-and-click adventure game. This is my short review." +aliases = ["/2022/secret_of_monkey_island", "/articles/secret-of-monkey-island"] +rating = 4.75 +[menu] + [menu.brain-rot-classic-games] + weight = 3001 + identifier = "secret-of-monkey-island-the-1990" +++ In preparation for _Return to Monkey Island_[^fn:1], I have decided to replay the first three classic games[^fn:2]. @@ -17,9 +24,9 @@ I was a kid back then, and I knew very little English. Certainly not enough to comprehend this game. My first play through was sometime around the year 2002. -{{< img-c "somi-splash.png" >}} +{{< image class="centered" alt="And island in the dark. A big stylized text with the title of the game occupies most of the screen." file="somi-splash.png" >}} Title screen -{{< /img-c >}} +{{< /image >}} ## Running the game {#running-the-game} @@ -50,9 +57,9 @@ 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-c "somi-lazypirates.gif" >}} +{{< image class="centered" alt="A group of pirates sitting on a barrel occupy left side of the screen. In center a short pirate stands. Bottom is occupied by UI with graphical buttons representing possible actions." file="somi-lazypirates.gif" >}} Lazy pirates and the UI -{{< /img-c >}} +{{< /image >}} The graphics aged, but it did it like a fine wine. The game was a marvel when it came out. @@ -105,9 +112,9 @@ First, the pirate insults you, and you need to learn the proper response and use 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. Ingenious! A cherry on top - this part was written by Orson Scott, the author of "Ender's game". -{{< img-c "somi-swordfight.jpg" >}} +{{< image class="centered" alt="Two pirates with swords aimed at each other. Bottom of the screen contains funny insults." file="somi-swordfight.jpg" >}} Insult swordfighting -{{< /img-c >}} +{{< /image >}} The game consists of four parts. Out of them, the first one is easily the most polished and exciting. @@ -148,4 +155,4 @@ Not bad for a 6 hour game. [^fn:3]: [ScummVM website](https://www.scummvm.org/) [^fn:4]: ["The Secret of Monkey Island" on the Internet Archive](https://archive.org/details/mnkyega) [^fn:5]: ["The Secret of Monkey Island" on GOG](https://www.gog.com/game/the_secret_of_monkey_island_special_edition) -[^fn:6]: ["The Secret of Monkey Island" on UHS](https://www.uhs-hints.com/uhsweb/monkey.php)
\ No newline at end of file +[^fn:6]: ["The Secret of Monkey Island" on UHS](https://www.uhs-hints.com/uhsweb/monkey.php) |