<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
    <title> - List of blog posts</title>
    <link rel="self" type="application/atom+xml" href="https://devshrine.net/blog/atom.xml"/>
    <link rel="alternate" type="text/html" href="https://devshrine.net/blog/"/>
    <generator uri="https://www.getzola.org/">Zola</generator>
    <updated>2026-06-22T00:00:00+00:00</updated>
    <id>https://devshrine.net/blog/atom.xml</id>
    <entry xml:lang="en">
        <title>AI Journal 2: Vibe-Coding for Fun and Profit</title>
        <published>2026-06-22T00:00:00+00:00</published>
        <updated>2026-06-22T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://devshrine.net/blog/ai-journal-2/"/>
        <id>https://devshrine.net/blog/ai-journal-2/</id>
        
        <content type="html" xml:base="https://devshrine.net/blog/ai-journal-2/">&lt;p&gt;I wrote earlier about how I started used agents for coding a bit later than everyone else who were into AI. I think I&#x27;m not the only of in my generation having a bit of a hard time coming to terms with the new reality of not actually writing much code myself. This journal entry is mostly just a dump of my thoughts on agentic coding and vibe-coding based on my experiences so far in 2026.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;a-bit-of-background&quot;&gt;A Bit of Background&lt;&#x2F;h2&gt;
&lt;p&gt;I started with OpenAI Codex back in February, and a few weeks later I moved on to Claude Code just before Opus 4.7 was released. At home, I adopted &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;pi.dev&quot;&gt;pi&lt;&#x2F;a&gt; to customize my own agentic environment for coding, using it mostly with gpt-5.5 and Deepseek V4 Pro, which came out a bit later, occasioanlly trying out other models on OpenRouter as well.&lt;&#x2F;p&gt;
&lt;p&gt;I even bought a Geforce RTX 5060 Ti 16 GB to try local LLMs (and for some gaming). Qwen 3.6 27b works pretty well locally, though with only 16 GB, it&#x27;s still just a toy (context too small with only 16 GB vram).&lt;&#x2F;p&gt;
&lt;p&gt;At work, I still review all the code I produce, but Claude produces about 95% of it. The last 5% is written by gpt-5.5. I write less than 1%.&lt;&#x2F;p&gt;
&lt;p&gt;At home, I haven&#x27;t programmed much for the last three years for various reasons, mostly because of lack of time (familiy, kids, house) and health-related reasons (back pain after long hours at work).&lt;&#x2F;p&gt;
&lt;h2 id=&quot;vibe-coding&quot;&gt;Vibe Coding&lt;&#x2F;h2&gt;
&lt;p&gt;So I wanted to try to vibe-code for real. Not at work -- the stuff I do is too important (and the customer hasn&#x27;t agreed to it either -- yet), but I still wanted the experience. So I picked a project: A web-based, mobile-first, front-end for pi. I named it &quot;Pi Pocket&quot;. It is now my daily driver. I never use ChatGPT or Claude web apps anymore. Pi Pocket fullfill all my needs. It reached 300 commits the other day. Early on, I did reviews. Now I almost never look at the code.&lt;&#x2F;p&gt;
&lt;p&gt;Development process of Pi Pocket:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;I basically just ask it to extent itself. If I find a bug, I describe it, and it gives me a plan for development. Then I say &quot;go do it&quot;.&lt;&#x2F;li&gt;
&lt;li&gt;I have a skill set up so it knows how to redeploy itself. I works fairly well.&lt;&#x2F;li&gt;
&lt;li&gt;I can extend Pi Pocket &quot;on the go&quot; just by telling it what I want in a chat on my phone, and let it do its thing. I still think this is pretty cool.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Things that work well in general with vibe-coding:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Giving the agent a small, clearly scoped task that is easy to reason about. Like &quot;I want a button that does this&quot; or &quot;this doesn&#x27;t work when I click right here under these circumstances&quot;.&lt;&#x2F;li&gt;
&lt;li&gt;It is good a reviewing and refactoring, but you have to initate those tasks manually.&lt;&#x2F;li&gt;
&lt;li&gt;It works well for planning. I often ask it what state the code needs to be in before a new major feature, and it will list things we should improve first. Then I review and pick those I think are actually important (often only half of them).&lt;&#x2F;li&gt;
&lt;li&gt;Want to convert your whole code base from JavaScript to TypeScript? An agent will do so with no mistakes. I actually did that three weeks into the project.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Things that LLMs don&#x27;t do well:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;The code that it produces is always at least a little over-engineered. Depends on the model, but they all have this issue to some extent. It takes time and effort to make it write less code for the same task. I estimate the code base it about 10-20% larger than If I had written it myself. But the agent did it in six weeks. I doubt I could have done it in six months.&lt;&#x2F;li&gt;
&lt;li&gt;It is fairly good a writing UI code, but styling and layout always looks a bit generic or a bit off -- sometimes both. So I still manually tweak CSS sometimes, since iterating with the agent takes a lot of time with these kinds of tasks.&lt;&#x2F;li&gt;
&lt;li&gt;It writes documentation well, but as with all LLM writing, it&#x27;s verbose and follows the same patterns that all LLM writing does. I would never publish a readme by an LLM. I never understood people who did. LLM readme&#x27;s are an instant turn off for me when I browse projects on GitHub. In fact, I still prefer to rewrite them completely in my own voice.&lt;&#x2F;li&gt;
&lt;li&gt;This one is not specific for agentic coding: the LLMs will always agree with you on subjective matters. If I want to repriotize, it will always tell me that the new priorization makes more sense than the old one. Always be your own judge instead of relying on the reponses of a sycophantic AI model.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;pi-pocket-status&quot;&gt;Pi Pocket Status&lt;&#x2F;h2&gt;
&lt;p&gt;Right now, it has plenty of features, and I&#x27;m reached a point where it does more or less all I need. In fact, I might delete a few features I don&#x27;t need after all. That&#x27;s the downside of vibe-coding. Often you create stuff that you don&#x27;t actually need because the barrier is so low.&lt;&#x2F;p&gt;
&lt;p&gt;Some current Pi Pocket features:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Chat with any model using Pi as the backend&lt;&#x2F;li&gt;
&lt;li&gt;Scheduled Jobs -- yes, schedule a prompt to happen later&lt;&#x2F;li&gt;
&lt;li&gt;Integration to a local OpenAI Voice-compatible API (which I also vibe-coded)&lt;&#x2F;li&gt;
&lt;li&gt;Integration to whisper (for voice input)&lt;&#x2F;li&gt;
&lt;li&gt;File-sharing with the agent&lt;&#x2F;li&gt;
&lt;li&gt;Color themes&lt;&#x2F;li&gt;
&lt;li&gt;Workspaces&lt;&#x2F;li&gt;
&lt;li&gt;Jobs can run detached from the front-end -- losing connection doesn&#x27;t kill the job&lt;&#x2F;li&gt;
&lt;li&gt;Various settings for &quot;current work directory&quot; and such.&lt;&#x2F;li&gt;
&lt;li&gt;Sort, delete, and move sessions in the UI.&lt;&#x2F;li&gt;
&lt;li&gt;Lots of other small features&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;It&#x27;s basically how I want it. A few features I&#x27;m considering, but are still sleeping on:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Sandboxing. Right now, scheduled jobs have a very limited tool set. I might open it up if I can sandbox it right (maybe using bubblewrap).&lt;&#x2F;li&gt;
&lt;li&gt;Shared artifacts between sessions in the same workspace. Still debating if this will be useful or not.&lt;&#x2F;li&gt;
&lt;li&gt;Shared tasks, prompts, skills, etc in the workspace -- same as above.&lt;&#x2F;li&gt;
&lt;li&gt;I&#x27;m considering whether having backend runnings on different machines, connected by the same UI, would be useful or not (probably not)&lt;&#x2F;li&gt;
&lt;li&gt;Shared secrets (environment variables). Maybe does not need to be part of Pi Pocket.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;So yes, I&#x27;m basically designing, testing, and evaluation a nice web app without any coding, and without involving any other humans. This is pretty fun. I recommend everyone try it out.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;for-profit&quot;&gt;For profit?&lt;&#x2F;h2&gt;
&lt;p&gt;I&#x27;ve only covered the fun part so far.&lt;&#x2F;p&gt;
&lt;p&gt;Would I use this for work? Not unless the customer explicitly asked for it. I work mostly on contracts and never own the code that I write for work. I think it&#x27;s very important to experience vibe-coding first hand so you know what works and what doesn&#x27;t, and you can communicate this to other stakeholders. Maybe this would be fun for a fast PoC, but for maintaining critical infrastructure?&lt;&#x2F;p&gt;
&lt;p&gt;I&#x27;m sure I&#x27;ll revisit this topic on some later date.&lt;&#x2F;p&gt;
&lt;p&gt;Thanks for reading.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>AI Journal 1: The Slow Surrender to AI</title>
        <published>2026-05-27T00:00:00+00:00</published>
        <updated>2026-05-27T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://devshrine.net/blog/ai-journal-1/"/>
        <id>https://devshrine.net/blog/ai-journal-1/</id>
        
        <content type="html" xml:base="https://devshrine.net/blog/ai-journal-1/">&lt;p&gt;I have wanted to write about my AI journey for years. But each time I sat down and gave it some thought, I was unsure about how to express my thoughts about it. Every draft I made also became obsolete in a matter of months, sometimes faster, because AI just progressed that fast.&lt;&#x2F;p&gt;
&lt;p&gt;I&#x27;m an experienced software developer that has been coding professionally since the late 2000s, and for fun since the early 90&#x27;s. I was an early adopter of ChatGPT, and have been using it for code related stuff since it came out late 2022. I also vaguely remember a time before that when you could play around with early GPTs in the OpenAI sandbox and make it write simple code for you. Back then, it was a novelty. We never thought it would become good at it in just a couple of years time.&lt;&#x2F;p&gt;
&lt;p&gt;What I want to do with this journal is to document for myself my progress from toying around with early GPT to basically using Claude Code (and similar) for all my coding needs today. I&#x27;m not at all comfortable with the current state of things, and looking back and reflecting on this journey is my attempt at coming to terms with what the future might bring. On one hand, I really enjoy using agentic tools. On the other hand, I&#x27;m worried what that means for the state of software development in the future.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;the-early-days-of-wonderment&quot;&gt;The early days of wonderment&lt;&#x2F;h2&gt;
&lt;p&gt;When ChatGPT came out, it was a really neat and fun toy. Like many, I saw the potential quickly. I was a teacher at the time, teaching software development at a local college. I discovered ChatGPT before my students and was quick to integrate it into my teaching. It was fun seeing students attempt to prompt their way through solutions for simple programming exercises. I deliberately gave the students some problems that ChatGPT could solve easily, and some that I had verified would make it run around in circles. I was confident ChatGPT would never be able to replace a real programmer despite being useful for certain simple tasks.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;using-ai-as-a-shortcut&quot;&gt;Using AI as a shortcut&lt;&#x2F;h2&gt;
&lt;p&gt;The year after, I quit my teaching job and went back into software development. Some today might call it &quot;software engineering&quot;. In the future, I&#x27;m sure it will be called &quot;agentic engineering&quot; or something like that. To be honest, I&#x27;m not sure how to accurately label my work anymore. Job titles come and go.&lt;&#x2F;p&gt;
&lt;p&gt;Anyway, I was a bit rusty, but eager to get back into the game. Certain things had changed in the last decade and I wasn&#x27;t fully up to speed with all the new developments. Long story short, I used ChatGPT to brief me on simple stuff like how to write a proper docker-compse.yaml file, how to write WSDL files (for SOAP services) that could validate with the proper tools -- simple stuff like that. I felt like I was cheating. I never read a book or asked anyone for help. I just used a convenient tool that gave me all the answers. I also quickly ran into problems trying to mangle a certain clusterfuck of xsd-files into something that could generate a proper Java client for a service I had to work with. That stumped me, and ChatGPT as well. It just went back and forth with code that never quite did what I wanted. One of my new colleagues took over and saved me. He made it work by copying something from another project he had recently worked on. That irritated me. I wish I could have found the answer on my own or that ChatGPT hadn&#x27;t been so useless. I quickly got over it though, and in less than eight months, I improved to the extent where I started to take full responsability for many new services and deployments. I could feel how everything got easier as I started to get comfortable yet again in the role as a software developer. In less than 18 months, I became one of the most well-rounded developers on the team. Other team members would often come to me to discuss tasks and problems they encountered in their work, and more often than not, I was able to help one way or another.&lt;&#x2F;p&gt;
&lt;p&gt;I still used ChatGPT quite a lot, but mostly to discuss small pieces of code, architectural decisions, and other simple matters. Like, when I had a certain snippet of code, but I wanted to rewrite it in a more functional style using Java streams? ChatGPT was good for that. It was a partner I could bounce ideas off, a rubber duck, a human-like linter. It was many things, but it never took over any actual work. It just wasn&#x27;t capable enough. Yet.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;using-ai-to-speed-up-coding&quot;&gt;Using AI to speed up coding&lt;&#x2F;h2&gt;
&lt;p&gt;I&#x27;ve had my eyes on a better &quot;auto complete&quot; tool since the early days of GPT, so when the beta for &quot;GitHub Copilot&quot; was announced, I was quick to sign up. Remember when Copilot was just a plugin for your IDE from GitHub? All it did was autocomplete code in your IDE where your cursor was, and it was fairly good at guessing what code you wanted. I quickly learned to optimize my &quot;context&quot;, writing good code comments before letting copilot fill in &quot;the blanks&quot;.&lt;&#x2F;p&gt;
&lt;p&gt;For the first few weeks, I didn&#x27;t tell anyone. Again, I felt like I was cheating. Here I was, writing code faster than anyone else. Especially tests. I hated those, and copilot was especially good at churning out unit tests when some were already written. Code coverage was at an all time high when I was in charge. I think it only took a month before I fessed up and let my team in on my little secret. They all thought it was a pretty neat tool, and soon after, I did a small presentation for the whole company (around 20 people including the CEO) with my experiments and findings using ChatGPT and Copilot to assist me with coding. Everyone liked what they saw, and 20 minutes later, copilot licenses were bought for the whole company. Up until then, I had been paying out of my own pocket for access.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;chatgpt-becomes-better&quot;&gt;ChatGPT becomes better&lt;&#x2F;h2&gt;
&lt;p&gt;For a while, everyone uses copilot, and more people start to rely on ChatGPT for more complex matters when they got stuck on something. Even the CEO uses ChatGPT for his writing (sales materials, etc). It becomes normal to ask &quot;have you tried to solve it with ChatGPT?&quot;&lt;&#x2F;p&gt;
&lt;p&gt;I no longer feel like I&#x27;m cheating or holding back a secret. I&#x27;m one of the believers, and despite everyone having access to the same tools, it doesn&#x27;t change the fact that some people are simply better at using those tools than others. I thought AI would be an equalizer, but an inexperienced developer will still make bad descisions despite having access to the exact same ChatGPT and Copilot I had access to. Team mates would still ask me for help occasionally when ChatGPT didn&#x27;t deliver. I was still performing well despite no longer haven the &quot;AI edge&quot; over everyone else. As it turns out, using AI is not cheating if you are using your skills and experiences to utilize it in the right way. AI doesn&#x27;t turn a newbie into a pro. My performance is still because I&#x27;m actually good at what I do. AI is still just a tool.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;the-honeymoon-phase-is-over&quot;&gt;The honeymoon phase is over&lt;&#x2F;h2&gt;
&lt;p&gt;I don&#x27;t remember when I first heard the term &quot;vibe coding&quot;, but I knew instantly it wasn&#x27;t for me. I used AI to become a better developer, not to offload my work to a computer. Also, I knew from previous experiences that an AI could never perform and write code as well as a human like me. I actually believed that well into 2026. Looking back, I was in denial. I truely believed that vibe coding was a dead end -- and I still kinda think that today -- but that belief had the side effect of making me blind to another recent development: agentic coding. You see, whenever people talked about using AI tools based on LLMs to write code for them (&quot;cursor&quot; being and early example), I instantly associated that with non-programmers producing slob by vibe coding. And I knew that &quot;this was not the way&quot;.&lt;&#x2F;p&gt;
&lt;p&gt;I&#x27;ve been a reader of Hacker News for many years, since 2011 at least. Early 2026, I was complaining to a friend that Hacker News had been taken over by vibe coders. Everyone was into it, and all the sane people had left the site. You almost couldn&#x27;t open a single news story without someone talking about how they did this or that using &quot;claude code&quot;, and everyone else would applaud. I was baffled. Couldn&#x27;t they all see that all they were doing was producing unmaintainble slob? Was I getting old?&lt;&#x2F;p&gt;
&lt;p&gt;I made a conscience decision to downloade claude code that day, to see what is was all about. If I wanted to critize it, I had to get some experience using it first. My first attempt was stopped because I couldn&#x27;t find the guide to install the CLI tool. The desktop app was only for Windows and Mac, and I was using Linux. Only later did I realize my mistake (claude code is both CLI and desktop -- two different products, it seems). In the meantime, I got OpenAI Codex to experiment with. It was an eye-opener. Despite being an inferior experience to claude code (at the time), it worked much better than I had expected. It was quick to open, easy to use, and so smooth. It looked at my files, came with suggestions, did a few edits on it&#x27;s own after I gave it permission. That day, I realized that it wasn&#x27;t just all hype. This was actually pretty useful. It took me another few weeks until I realized that I could never go back. Agents had arrived. And for once, I wasn&#x27;t the one holding back a secret.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>Review: Xteink X4 Ebook Reader</title>
        <published>2026-04-15T00:00:00+00:00</published>
        <updated>2026-04-15T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://devshrine.net/blog/xteink-x4-review/"/>
        <id>https://devshrine.net/blog/xteink-x4-review/</id>
        
        <content type="html" xml:base="https://devshrine.net/blog/xteink-x4-review/">&lt;p&gt;The &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;www.xteink.com&#x2F;products&#x2F;xteink-x4&quot;&gt;Xteink X4&lt;&#x2F;a&gt; has quickly become my preferred reading device for ebooks. It ticks all the right boxes. On paper, it shouldn&#x27;t, so I thought about it for a long time before I ordered it. But now I&#x27;m happy I did.&lt;&#x2F;p&gt;
&lt;p&gt;So what is it? It&#x27;s basically a very small and cheap Chinese ebook reader with an eink display. It only costs around 69 USD plus shipping. Because of it&#x27;s size it&#x27;s mainly for reading fiction. Don&#x27;t expect it to work well with complex text books, PDFs, and anything like that. It actually only supports epubs and text, anyway.&lt;&#x2F;p&gt;
&lt;div class=&quot;gallery&quot; style=&quot;--gallery-columns: 4; --gallery-height: 240px;&quot;&gt;
&lt;p&gt;&lt;a href=&quot;xteink-x4_1.jpeg&quot;&gt;&lt;img src=&quot;xteink-x4_1.jpeg&quot; alt=&quot;The Xteink x4 -- with cover&quot; &#x2F;&gt;&lt;&#x2F;a&gt;
&lt;a href=&quot;xteink-x4_2.jpeg&quot;&gt;&lt;img src=&quot;xteink-x4_2.jpeg&quot; alt=&quot;The Xteink x4 -- holding in hand&quot; &#x2F;&gt;&lt;&#x2F;a&gt;
&lt;a href=&quot;xteink-x4_3.jpeg&quot;&gt;&lt;img src=&quot;xteink-x4_3.jpeg&quot; alt=&quot;The Xteink x4 -- holding in hand, landscape&quot; &#x2F;&gt;&lt;&#x2F;a&gt;
&lt;a href=&quot;xteink-x4_4.jpeg&quot;&gt;&lt;img src=&quot;xteink-x4_4.jpeg&quot; alt=&quot;The Xteink x4 -- holding in hand, cover picture&quot; &#x2F;&gt;&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;

&lt;&#x2F;div&gt;
&lt;h2 id=&quot;the-software&quot;&gt;The Software&lt;&#x2F;h2&gt;
&lt;p&gt;One very important detail though: The standard firmware sucks. No really, it is bad. At least for reading anything not in Chinese (I don&#x27;t read Chinese). You only have two fonts and they don&#x27;t look great. They&#x27;re called small and large. The small one was missing some important latin characters from my native European language, which made it completely unsuable for reading books in my native language. The software worked well enough otherwise, but the UI is cluttered and the newest update had some useless cloud features for syncing notes, I think? I didn&#x27;t investigate further.&lt;&#x2F;p&gt;
&lt;p&gt;Luckily, there is an alternative, open source firmware called &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;crosspoint-reader&#x2F;crosspoint-reader&quot;&gt;CrossPoint Reader&lt;&#x2F;a&gt; and it&#x27;s fantastic! It&#x27;s so polished and clean, the fonts are great (the main one is the same as on Kindles) and you have several font sizes to choose from. Just like with the original firmware, uploading books is easy. You just need another device with a web browser on the same wifi and you can upload books that way. Or you could just copy all your books to the sd-card. They just need to be in the epub format. Easy peasy.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;the-reading-experience&quot;&gt;The Reading Experience&lt;&#x2F;h2&gt;
&lt;p&gt;Because of it&#x27;s size, it&#x27;s really easy to carry around. I basically have it in the same pocket as my smartphone. The screen is really nice for text, which more than makes up for the small size. In direct sunlight it is a fantastic screen for reading. I&#x27;ve gotten into the habit of doing a bit of reading when I&#x27;m just waiting around for something. It has the added benefit of no distractions unlike when reading on a smartphone. The battery life is also phenomenal -- it will last you months on a single charge if you are just reading with no wifi usage. And you don&#x27;t have much use for wifi anyway on such a device.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;and-all-the-rest&quot;&gt;And All the Rest&lt;&#x2F;h2&gt;
&lt;p&gt;As for accessories, I bought the magnetic leather cover, which is really nice. But I also feel it&#x27;s not really needed. I use it mainly for asthetics though I also helps protect the screen a bit I suppose.&lt;&#x2F;p&gt;
&lt;p&gt;Let me list my favorite features of the hardware:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Nice physical buttons! And plenty of them so there is more than one way to hold it and flip pages.&lt;&#x2F;li&gt;
&lt;li&gt;Looong battery life and chargable using usb-c!&lt;&#x2F;li&gt;
&lt;li&gt;Really good eink screen.&lt;&#x2F;li&gt;
&lt;li&gt;Small enough to carry in the same pocket as your smartphone.&lt;&#x2F;li&gt;
&lt;li&gt;Magnetic, so you could attach it to the back of you recent iPhone I suppose. I use a magnetic cover instead.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Some great features of the crosspoint reader firmware worth mentioning are:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Syncing with other devices using Koreader Sync, if you need it.&lt;&#x2F;li&gt;
&lt;li&gt;Many options for tweaking fonts and layout. Nice!&lt;&#x2F;li&gt;
&lt;li&gt;Custom sleep screen cover.&lt;&#x2F;li&gt;
&lt;li&gt;Firmware updates over wifi.&lt;&#x2F;li&gt;
&lt;li&gt;File explorer on device.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Obviously it doesn&#x27;t do everything your Kindle does. Some obvious missing features include:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;No dictionary&lt;&#x2F;li&gt;
&lt;li&gt;No way to hightlight citations&lt;&#x2F;li&gt;
&lt;li&gt;No built-in book store -- though it does support &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Open_Publication_Distribution_System&quot;&gt;OPDS&lt;&#x2F;a&gt; (I haven&#x27;t tested it)&lt;&#x2F;li&gt;
&lt;li&gt;No built-in light. You need external light for reading in the dark -- just like with an ordinary book :)&lt;&#x2F;li&gt;
&lt;li&gt;No search capabilities at all -- though without keyboard or touchscreen, it wouldn&#x27;t find much use anyway.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;conclusion&quot;&gt;Conclusion&lt;&#x2F;h2&gt;
&lt;p&gt;Great price, great experience. If you are like me, this won&#x27;t be your only reading device. But maybe it will be the one you use the most during the summer to squeze in a few more books? At least that what&#x27;s happened for me. Highly recommended!&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>Surfing the IndieWeb in 2026</title>
        <published>2026-04-09T00:00:00+00:00</published>
        <updated>2026-04-09T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://devshrine.net/blog/small-web/"/>
        <id>https://devshrine.net/blog/small-web/</id>
        
        <content type="html" xml:base="https://devshrine.net/blog/small-web/">&lt;p&gt;Surfing the IndieWeb is fun! Like many people my age (old millenial here, to be specific), I miss the Internet of the 90&#x27;s and early 2000&#x27;s. Until a couple of years age I thought it was gone for good. Luckily, I was wrong. The small web is all about non-corporate homepages and websites made by individuals. I won&#x27;t go into details on why this is cool. For now, let me just point you in the right direction so you can see for yourself.&lt;&#x2F;p&gt;
&lt;p&gt;If you want to start with the basics such as &quot;what is it all about?&quot; and &quot;how do I join this?&quot;, you should go read the &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;Indieweb.org&quot;&gt;IndieWeb&lt;&#x2F;a&gt; website first. It has great information and a great wiki with more technical details. I refer to it often.&lt;&#x2F;p&gt;
&lt;p&gt;To actually discover individual homepages, you can use one of the following sources:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;marginalia-search.com&#x2F;explore&quot;&gt;Marginalia Search - Explore&lt;&#x2F;a&gt;: A search engine and a nice way to get a list of random &quot;small web&quot; homepages with thumbnails. Hours of fun! And it&#x27;s a one-man project. Impressive.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;blogroll.org&#x2F;&quot;&gt;Ye Olde Blogroll&lt;&#x2F;a&gt;: Nice list of human curated blogs and sites, filtered by topic.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;indieblog.page&#x2F;&quot;&gt;indieblog.page&lt;&#x2F;a&gt;: Another nice collection, has &quot;open random blog&quot;, search, and the full list.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;text.blogosphere.app&#x2F;&quot;&gt;Blogosphere&lt;&#x2F;a&gt;: This one was recently posted to &quot;Hacker News&quot;. It shows recent posts from a collection of rss feeds, which is kinda cool.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;kagi.com&#x2F;smallweb&#x2F;get&quot;&gt;Kagi Small Web&lt;&#x2F;a&gt;: Kagi has made it&#x27;s own contribution to the small web by creating a search engine specifically for the small web. I prefer Marginalia listed above though, because I like the thumbnail feature.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;There are many more sources you could use, but the above will get you started.&lt;&#x2F;p&gt;
&lt;p&gt;I also want to mention a few communities specifically made to emulate the culture and whimsy of the old &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;GeoCities&quot;&gt;GeoCities&lt;&#x2F;a&gt; website that many people my generation grew up on. It was the place to be before MySpace and the modern Internet.&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;neocities.org&#x2F;&quot;&gt;NeoCities&lt;&#x2F;a&gt;: Modern recreation of the GeoCities concept. You could loose hours &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;neocities.org&#x2F;browse&quot;&gt;browsing&lt;&#x2F;a&gt; some of the top hosted sites there.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;nekoweb.org&#x2F;&quot;&gt;NekoWeb&lt;&#x2F;a&gt;: A lot like NeoCities, but seems more whimsical. I haven&#x27;t looked at it too much yet.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;One thing you loose when you go from modern social networks to oldschool homepages, is the social aspect. You are no longer fed content from other blogs by an algorithm, and connecting with others takes more effort. There are certain ways to fix that as well. NeoCities has social features built-in, so you can subscribe to other people&#x27;s sites and comment on their updates. Another option is to use &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;aboutideasnow.com&#x2F;&quot;&gt;about ideas now&lt;&#x2F;a&gt;, which crawls and aggregate people&#x27;s &quot;&#x2F;now&quot;, &quot;&#x2F;about&quot;, and &quot;&#x2F;now&quot; pages into a feed of sorts, all scraped from blogs around the Internet. I doesn&#x27;t solve the &quot;connect&quot; part since you still need to find someone&#x27;s email address or guestbook to connect with them. I feel like we are still in the early phases of the indieweb, and as it grows, people will invent more ways to connect with and discover content from its inhabitants.&lt;&#x2F;p&gt;
&lt;p&gt;All in all, I&#x27;ve fallen in love with the &quot;small web&quot; and plan on doing my part to contribute in the coming years.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>Taking Stereoscopic Pictures With Your Phone</title>
        <published>2026-04-05T00:00:00+00:00</published>
        <updated>2026-04-05T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://devshrine.net/blog/stereoscopic/"/>
        <id>https://devshrine.net/blog/stereoscopic/</id>
        
        <content type="html" xml:base="https://devshrine.net/blog/stereoscopic/">&lt;p&gt;The cross-eye method is a way to see two pictures as one 3d picture. It requires the two pictures to be side-by-side and taken from two different points corrensponding to your two eyes. Then you cross your eyes and boom, 3d picture in your face. The process is illustrated by the gif below.&lt;&#x2F;p&gt;
&lt;div style=&quot;background: white&quot;&gt;
&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;devshrine.net&#x2F;blog&#x2F;stereoscopic&#x2F;ca3e3b_bb4266c8d8a442039f17d62f8ec909e4~mv2.gif&quot; alt=&quot;The two pictures as seen using the cross-eye method&quot; title=&quot;Cross-eying the picture&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;&#x2F;div&gt;
&lt;small&gt;
&lt;p&gt;Source: &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;www.kula3d.com&#x2F;how-to-use-the-cross-eyed-method&quot;&gt;Kúla 3D&lt;&#x2F;a&gt;
&lt;&#x2F;small&gt;&lt;&#x2F;p&gt;
&lt;p&gt;You can try it out on this nice stereoscopic picture I made in 2025. Use the &quot;cross-eye method&quot;. Tutorials below.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;a href=&quot;https:&#x2F;&#x2F;devshrine.net&#x2F;blog&#x2F;stereoscopic&#x2F;aarhus_dokk1_stereoscopic.jpg&quot;&gt;&lt;img src=&quot;https:&#x2F;&#x2F;devshrine.net&#x2F;blog&#x2F;stereoscopic&#x2F;aarhus_dokk1_stereoscopic.jpg&quot; alt=&quot;Taken near Dokk1 in Aarhus. Stereoscopic.&quot; title=&quot;Aarhus Dokk1 Stereoscopic&quot; &#x2F;&gt;&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;p&gt;If you haven&#x27;t used the cross-eye method before, then there are plenty of tutorials to help you get started. A few suggestions:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;www.kula3d.com&#x2F;how-to-use-the-cross-eyed-method&quot;&gt;Learn the cross-eye method&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;3ddigitalphoto.com&#x2F;crossviewtutorial.asp&quot;&gt;Crossviewing Tutorial&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;pikespeakphoto.com&#x2F;viewing3d.html&quot;&gt;Viewing 3d Images&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;making-your-own-stereoscopic-pictures&quot;&gt;Making your own stereoscopic pictures&lt;&#x2F;h2&gt;
&lt;p&gt;As it turns out, it&#x27;s fairly easy to make your own 3d pictures with nothing but the camera on your phone. Simply do as follows:&lt;&#x2F;p&gt;
&lt;ol&gt;
&lt;li&gt;Find a good, static motive for your picture. The picture will be easier to view in 3d if taken in portrait.&lt;&#x2F;li&gt;
&lt;li&gt;Take the first picture.&lt;&#x2F;li&gt;
&lt;li&gt;Then take a very small step to the right, still pointing the camera forward as before.&lt;&#x2F;li&gt;
&lt;li&gt;Take the second picture.&lt;&#x2F;li&gt;
&lt;li&gt;Done.&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;p&gt;Then all you have to do is place the pictures side by side. You can print them out, or you can add them next to each other using Microsoft Paint or some other piece of software. Make sure that the picture for the right eye is on the left, and vice versa.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;gallery&quot;&gt;Gallery&lt;&#x2F;h2&gt;
&lt;p&gt;Here are a few more of my own pictures for your viewing pleasure.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;a href=&quot;https:&#x2F;&#x2F;devshrine.net&#x2F;blog&#x2F;stereoscopic&#x2F;randers_faelled_forest_stereoscopic.jpg&quot;&gt;&lt;img src=&quot;https:&#x2F;&#x2F;devshrine.net&#x2F;blog&#x2F;stereoscopic&#x2F;randers_faelled_forest_stereoscopic.jpg&quot; alt=&quot;Randers Fælled (stereoscopic)&quot; title=&quot;Randers Fælled&quot; &#x2F;&gt;&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;p&gt;&lt;a href=&quot;https:&#x2F;&#x2F;devshrine.net&#x2F;blog&#x2F;stereoscopic&#x2F;forest_ring_stereoscopic.jpg&quot;&gt;&lt;img src=&quot;https:&#x2F;&#x2F;devshrine.net&#x2F;blog&#x2F;stereoscopic&#x2F;forest_ring_stereoscopic.jpg&quot; alt=&quot;Forest Ring (stereoscopic)&quot; title=&quot;Forest Ring&quot; &#x2F;&gt;&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;p&gt;&lt;a href=&quot;https:&#x2F;&#x2F;devshrine.net&#x2F;blog&#x2F;stereoscopic&#x2F;snow_appartments_stereoscopic.jpg&quot;&gt;&lt;img src=&quot;https:&#x2F;&#x2F;devshrine.net&#x2F;blog&#x2F;stereoscopic&#x2F;snow_appartments_stereoscopic.jpg&quot; alt=&quot;Snow Appartments (stereoscopic)&quot; title=&quot;Snow Appartments&quot; &#x2F;&gt;&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;p&gt;&lt;a href=&quot;https:&#x2F;&#x2F;devshrine.net&#x2F;blog&#x2F;stereoscopic&#x2F;legoland_stereoscopic.jpg&quot;&gt;&lt;img src=&quot;https:&#x2F;&#x2F;devshrine.net&#x2F;blog&#x2F;stereoscopic&#x2F;legoland_stereoscopic.jpg&quot; alt=&quot;Legoland (stereoscopic)&quot; title=&quot;Legoland (Aarhus Miniature)&quot; &#x2F;&gt;&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>Picking a domain name for a personal site</title>
        <published>2026-04-04T00:00:00+00:00</published>
        <updated>2026-04-04T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://devshrine.net/blog/domain-name/"/>
        <id>https://devshrine.net/blog/domain-name/</id>
        
        <content type="html" xml:base="https://devshrine.net/blog/domain-name/">&lt;p&gt;The first domain I know for a fact that I have registered was registered way back in 2001-04-12. I know this because I still have this domain, and close relatives are still use it for email. It&#x27;s our family name. I have since moved on to a more personal domain for my own email, and I&#x27;ve had plenty of other domains over the years.&lt;&#x2F;p&gt;
&lt;p&gt;Often when I register a domain, it&#x27;s for a blog or a personal website. I want it to be short and memorable, yet not something that will easily identify me in real life (though 100% privacy is not necessarily the goal either). Something cool, techy, but not lame. Whenever I feel the urge, which is every 3-4 years, I will think about it for days, and then register it and put up a personal websites with my hobby projects. And then eventually what happens is I start to hate the name after a while, I don&#x27;t like the contents on my website because it is stupid and boring and who wants to read about it anyway. So I remove the whole thing -- but then in another 3-4 years, the cycle repeats.&lt;&#x2F;p&gt;
&lt;p&gt;This time I&#x27;ve decided to stay with it. With age, I&#x27;ve come to realize a few things about my needs. Not just the name of the domain, but the purpose of the name and the purpose of it&#x27;s contents. I have now done it again: I have registered &quot;devshrine.net&quot;.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;devshrine-net&quot;&gt;devshrine.net&lt;&#x2F;h2&gt;
&lt;p&gt;I must confess that I don&#x27;t &lt;em&gt;love&lt;&#x2F;em&gt; this domain name right now. But I never do. A name is never good enough. Most names you have to get used to -- if you are anything like me, anyway. They can grow on you and you can grow to like them. But I still think it is one of the better names I have picked. Some thoughts about it:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;I like that the gtld is &lt;em&gt;.net&lt;&#x2F;em&gt;. It&#x27;s one of the original tld&#x27;s and I feel that it is very classy and generic. There are some many others to choose from today -- each with their own purpose and style. Others I have considered where:
&lt;ul&gt;
&lt;li&gt;.io, mostly for startups?&lt;&#x2F;li&gt;
&lt;li&gt;.sh, kinda cool since it reminds you of the shell&lt;&#x2F;li&gt;
&lt;li&gt;.dev, I&#x27;ve used this before since I am a developer, after all&lt;&#x2F;li&gt;
&lt;li&gt;.xyz, cheap and generic -- but kinda ugly? At least to my eyes&lt;&#x2F;li&gt;
&lt;li&gt;.me, I actually use this for my public email address linked to my real life identity&lt;&#x2F;li&gt;
&lt;li&gt;.eu, very cheap if you live in the EU. But I would prefer something at bit more generic and neutral.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;I also like that &lt;em&gt;.net&lt;&#x2F;em&gt; is cheap. Around 5 USD. Few domains are that cheap.&lt;&#x2F;li&gt;
&lt;li&gt;For some reasons, squatters haven&#x27;t really attacked &lt;em&gt;.net&lt;&#x2F;em&gt; as much as &lt;em&gt;.com&lt;&#x2F;em&gt;. There are still plenty of cheap and short domains available.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;So what&#x27;s in the name: &quot;devshrine&quot;? Basically, I think of it as my place on the internet to &quot;worship&quot; development. Well, that&#x27;s stretching it a bit far. I am in no way religious about it, but I like the word &quot;shrine&quot;. It has a nice ring to it, and I want it to be a place where I can write thoughts and showcase projects in a field that I love, which is &quot;software development&quot;. I won&#x27;t necessarily limit it to that. Anything related, be it electronics or philosophy, will go in as well, I suspect. Time will tell.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;the-future-of-the-blog&quot;&gt;The future of the blog&lt;&#x2F;h2&gt;
&lt;p&gt;As I said, I&#x27;ve had plenty of blogs and domains in the previous 20 years, and I never keep at it for long. I start to hate the name I have choosen, the contents I have made. I feel like my small contribution to the &quot;small web&quot; is insignificant compared to others, so why keep it around?&lt;&#x2F;p&gt;
&lt;p&gt;What has changed this time is that I&#x27;ve started to realize that it doesn&#x27;t really matter what others think. I enjoy the process. I enjoy writing. I don&#x27;t expect to get any regular readers or to go &quot;viral&quot; with any blog post. This is just for me. I&#x27;ve made a promise to myself to keep this site around for my own good. I need someplace to put the stuff I care about and that I find interesting. But I need to let it grow and evolve, and don&#x27;t abandon it just because my expectations are too high. And if I don&#x27;t update it for six months or more? I won&#x27;t stress it. It will still be there when I feel like continuing it again.&lt;&#x2F;p&gt;
&lt;p&gt;Thanks for reading this far. Feel free to share your thoughts with me by &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;devshrine.net&#x2F;contact&quot;&gt;contacting me&lt;&#x2F;a&gt;. No pressure.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>Selfhosting Status 2025</title>
        <published>2025-11-22T00:00:00+00:00</published>
        <updated>2025-11-22T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://devshrine.net/blog/self-hosting-2025/"/>
        <id>https://devshrine.net/blog/self-hosting-2025/</id>
        
        <content type="html" xml:base="https://devshrine.net/blog/self-hosting-2025/">&lt;p&gt;I love selfhosting my own services. For me, it&#x27;s about tinkering with Linux, something I&#x27;ve been enjoying since I first tried Red Hat Linux back in the late 90&#x27;s. The other reasons is the fact that I own my own data and can replace some of the most common SaaS offerings from &quot;big tech&quot; with my own. My two favorite examples are Immich and Syncthing. Immich is basically a better version of &quot;Google Photos&quot; for your own server. And syncthing has completely replaced Dropbox &#x2F; OneDrive for me since 2018 and also runs fully on my own infrastructure.&lt;&#x2F;p&gt;
&lt;p&gt;On top of that, there are many other great services you can selfhost. I often install new services to try them out, and then after a while, I decide whether to keep them or not. If I haven&#x27;t used a services for a few months or more, I usually ditch it again.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;principles&quot;&gt;Principles&lt;&#x2F;h2&gt;
&lt;p&gt;Before presenting my architecture, here are few key principles that I&#x27;ve decided to follow after many years of experimentation.&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Prefer simple solutions whenever possible.&lt;&#x2F;li&gt;
&lt;li&gt;Follow the &quot;3-2-1 Backup Rule&quot;. Keep three copies on at least two different media with at least one off-site.&lt;&#x2F;li&gt;
&lt;li&gt;Low maintainance. If I don&#x27;t check in every few months, it should still just chuck along.&lt;&#x2F;li&gt;
&lt;li&gt;Automatic healthchecks on important stuff like backups so I&#x27;m at least aware when something breaks.&lt;&#x2F;li&gt;
&lt;li&gt;Cheap hardware and cheap cloud services. I don&#x27;t want this to cost a fortune.&lt;&#x2F;li&gt;
&lt;li&gt;Avoid selfhosting really complex stuff.&lt;&#x2F;li&gt;
&lt;li&gt;Don&#x27;t be afraid to mix with external cloud services as long as you don&#x27;t get locked into something or compromise your data and security (examples below).&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;There might be other principles than those, but I just wrote these right now. Maybe I&#x27;ll revise them a bit for next year.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;examples-of-external-services-that-i-use&quot;&gt;Examples of external services that I use&lt;&#x2F;h2&gt;
&lt;p&gt;Really simple stuff like static HTML is better served from a CDN than from my own server. And I&#x27;m not really locked into anything, since I can change the DNS in five minutes and have it point at a different provider or my own web server. For now, I&#x27;m perfectly fine putting my HTML on neocities, GitHub pages, or whatever else makes sense.&lt;&#x2F;p&gt;
&lt;p&gt;Also, for email, I don&#x27;t bother hosting it myself. I really like Fastmail for that. I also have an old Google Workspace Legacy account I can&#x27;t shutdown because old family members rely on it. That&#x27;s a bit more bothersome, but at least I&#x27;m not very relient on Google myself anymore.&lt;&#x2F;p&gt;
&lt;p&gt;And as for sending emails, I simply use Amazon SES (Simple Email Service). Maybe not the best option anymore, but I don&#x27;t bother switching for the 1-3 emails I send to myself every month. It costs next to nothing and can easily be replaced.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;architecture&quot;&gt;Architecture&lt;&#x2F;h2&gt;
&lt;p&gt;The diagram below shows my current architecture. I have two Linux servers at home. They are both small Asus Mini PCs -- one is a NUC, and the other one is too old to be a NUC, but basically the same hardware, with a little less storage and RAM. They perform way better than your average Raspberry Pi, but are also somewhere between 2x-3x the price. Still cheap though, and they will last you for many years (the oldest one is from 2020). In addition to that, I keep a very small VPS (Virtual Private Server) on Hetzner permanently running.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;devshrine.net&#x2F;blog&#x2F;self-hosting-2025&#x2F;SelfHosting2025.svg&quot; alt=&quot;SelfHosting&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p&gt;None of the home servers are exposed directly to the big internet -- only the Hetzner one is. It&#x27;s main function is as a reverse proxy for the services that run on the home servers. That way, I can access those services, like Immich, from the open web without opening up my home network. All three servers are wired together using a virtual private network using ZeroTier. It works incredible well and is free. ZeroTier relies on a central STUN server that you could selfhost, if you wanted to -- but so far I haven&#x27;t bothered. It has been running smoothly for almost five years by now, and I trust the company. Cool thing about ZeroTier is that I can also connect all my mobile devices to the same VPN if I wanted to, though usually I don&#x27;t.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;software-stack&quot;&gt;Software stack&lt;&#x2F;h2&gt;
&lt;p&gt;All my servers run Debian, and I do very little customization to them. I manually log in and update the packages and kernels when I&#x27;m bored at work -- usually at least once a month. Every other year or so I upgrade the distribution as well to the next major release. It&#x27;s very stable.&lt;&#x2F;p&gt;
&lt;p&gt;For the services, they all run from &quot;docker compose&quot; files that I keep in a central git repository. I keep the docker compose files seperate from the &quot;data&quot; that each service stores, and all important data folders in the docker containers are mounted into the host for backup purposes. I consider all volumes that are not mounted into the host ephemeral, meaning if they get lost between reboots, it should not affect the operation of the services or my data.&lt;&#x2F;p&gt;
&lt;p&gt;I control all my servers using simple ssh and the terminal (my shell these days is &quot;zsh&quot;). I have portainer installed on each host but rarely use it. The terminal is king. I also have Cockpit installed as a web-based admin dashboard thingy but rarely use that either. Having &quot;termux&quot; on my Android phone enables me to do everything through &quot;ssh&quot; no matter which device I have at hand.&lt;&#x2F;p&gt;
&lt;p&gt;One of my key principles is to keep everything simple, which is way I don&#x27;t bother with proxmox, k8n, or anything else that feels like overkill for my needs. If I did use any of those, it would have to be mainly for learning purposes. But I have other things I would rather spend my time on learning.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;the-services-that-i-use&quot;&gt;The services that I use&lt;&#x2F;h2&gt;
&lt;p&gt;This changes every year, but a few services have stayed with me for years and are unlikely to be replaced by anything else.&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Immich -- Google Photo replacement that actually improves on the user experience. Even with modest server hardware like an old Asus NUC Mini PC that was the cheapest one in it&#x27;s range when I bought it.&lt;&#x2F;li&gt;
&lt;li&gt;Syncthing. It makes rolling your own Dropbox replacement fairly easy. It&#x27;s not completely maintenence free. Over the years, I&#x27;ve had issues where syncing broke where I had to manually fix stuff. But it has gotten much better in recent years and I wouldn&#x27;t live without it today. For Android, I highly recommend &quot;Syncthing-Fork&quot; (on F-droid).&lt;&#x2F;li&gt;
&lt;li&gt;Redlib -- this is an odd one. It&#x27;s basically a super lightweight proxy for reddit that makes browsing subreddits a very pleasent experience. But it&#x27;s one-way. You can&#x27;t post or interact with reddit, only read and browse. I use it almost every day and have done so since the big reddit exodus a while back.&lt;&#x2F;li&gt;
&lt;li&gt;2FAuth. Just like your app (Google Authenticator or similar), but hosted on a server. I love this. If I throw away my phone, I can still access all my one-time passwords. Just don&#x27;t tell anyone I work with (I don&#x27;t think the IT security folks would approve). I even have it installed twice on different servres in case one of them breaks, and obviously I also have backups. Yeah.&lt;&#x2F;li&gt;
&lt;li&gt;Uptime Kuma so I&#x27;m notified if something breaks and goes down.&lt;&#x2F;li&gt;
&lt;li&gt;HealthChecks. It tracks my backups so I&#x27;m notified if one of them doesn&#x27;t finish in it&#x27;s scheduled time. It&#x27;s nice to now if automatic backups are not performed regularily. I learned that the hard way btw.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Services that I don&#x27;t use very often, but still keep around:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Transmission Web for sailing the high seas. I don&#x27;t use it very often though, but I always keep it around. Obviously this one is only accessable from the VPN.&lt;&#x2F;li&gt;
&lt;li&gt;Paperless NGX. I use it to scan my email and archive every PDF and document I&#x27;m sent. Honestly, 99% of the time when I need to find something, I just look in my shared syncthing folder or search my email. It&#x27;s also a bit clunky as a whole. I might ditch it in 2026. We&#x27;ll see.&lt;&#x2F;li&gt;
&lt;li&gt;Portainer. It&#x27;s neat to do maintanance on your docker services, but 98% of the time I just use the terminal instead.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;New services that I&#x27;m evaluating:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;LinkDing. It seems very useful for saving articles for reading later and archiving pages for offline use. And for syncing bookmarks. I previsouly tried out Shiori, which has great UX and design. But it was too quriky and buggy and doesn&#x27;t seem to be under much active development. So I never really got into the habit of using it. LinkDing improves on those issues with better API, better browser extensions, more active development, and less bugs.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;backup-strategy&quot;&gt;Backup strategy&lt;&#x2F;h2&gt;
&lt;p&gt;I keep it simple. I use restic to backup my home folders and service data folders to a Hetzner storage box (1 TB in size). I have simple bash scripts that are triggered by cron jobs. That&#x27;s it. Occasionally I make manual backups to external SSD drives -- usually once a year.&lt;&#x2F;p&gt;
&lt;p&gt;How does that fullfill the 3-2-1 rule you might ask? Well, take pictures for instance. They live on my phone, are synced to Immich on my servers, and are backed up to Hetzner. So three different backups on three different media. And when my phone is not at home, it&#x27;s also three different sites I suppose.&lt;&#x2F;p&gt;
&lt;p&gt;Other things like my home folders are not strictly following this rule, but also are not as important to me. If anything in my home folder is also not in a git repository somewhere, it&#x27;s usually expendable.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;the-end&quot;&gt;The End&lt;&#x2F;h2&gt;
&lt;p&gt;I didn&#x27;t go into much detail about the actual hardware specs of my servers or how I handle security. Or how I configure the reverse proxy (which is based on Caddy btw). Or how Restic is configured. And maybe I skipped a few services as well. That&#x27;ll have to wait until next time though. Thanks for reading!&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>Aardwolf is a great place to be</title>
        <published>2025-10-10T00:00:00+00:00</published>
        <updated>2025-10-10T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://devshrine.net/blog/muds3/"/>
        <id>https://devshrine.net/blog/muds3/</id>
        
        <content type="html" xml:base="https://devshrine.net/blog/muds3/">&lt;p&gt;This is a short review of the MUD &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;www.aardwolf.com&#x2F;&quot;&gt;Aardwolf&lt;&#x2F;a&gt;, which is still going strong with 200+ players online during peak hours as of 2025. Created back in 1996, it is not the oldest MUD still around, but almost 30 years is still decent all things considered. It&#x27;s similar to other MUDs based on DikuMud (popular codebase started back in 1991 and used by many), but today&#x27;s incarnation seems to be fully custom made and contains and Lua engine for scripting (according to documentation).&lt;&#x2F;p&gt;
&lt;p&gt;The theme is fantasy and the setting is original and set in the world of Andolor. The website is not heavy on lore and focuses mostly on the geography of the game world.&lt;&#x2F;p&gt;
&lt;p&gt;I&#x27;ve so far played the game for around 10 hours, which is admittedly only scratching the surface, yet still enough to give a general impression of the MUD from a new player&#x27;s perspective. So here goes. Any mistakes in the following are my own, and I didn&#x27;t take notes while playing, so there is a chance that I got something wrong or misremembered something. Just so you now.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;new-player-experience&quot;&gt;New player experience&lt;&#x2F;h2&gt;
&lt;p&gt;If you have never played a MUD before, then there will be a learning curve. I highly recommend the official &quot;Aardwolf MushClient&quot; for desktop if you want an easier start, but it does take a bit away from the pure telnet experience where you have to know all the commands and set things up yourself. The desktop client is a more curated experience but a good one.&lt;&#x2F;p&gt;
&lt;p&gt;Creating a new character is easy enough. Pick you race, class, name, and so on and be on your way. You can easily spend an hour at least reading through all the options and consider what is most interesting to you, or you can do what I did and just pick something that looks interesting (&quot;centauer druid&quot; in my case). Except for modifiers in battle and a filter for the skills and spells you can learn, race and class doesn&#x27;t effect much else in the game (as far as I can tell).&lt;&#x2F;p&gt;
&lt;p&gt;When entering the game, you are nudged towards the Academy which is a traditional &quot;MUD School&quot; for beginners. Many MUDs have those. Even though I&#x27;m not new to MUDs I decided to give it a go anyway, expecting to rush through it. Turns out, it&#x27;s actually quiet long and goes over many parts of the game.&lt;&#x2F;p&gt;
&lt;p&gt;So it the Academy great for beginners? Maybe if you like to read. A lot. I didn&#x27;t mind, but unfortunately, not all parts were interesting to me, and the way it is presented is lacking. Most early &quot;classes&quot; ends with a quiz, which is fun, but some of the later ones just ends. All classes have you listening to a NPC lecturer explaining some basics concepts in the game, like how to navigate or buy stuff from vendors. Or combat. Only two classes, I think, had you actually do stuff around in the world (one of the gave you a vendor shopping list and had you go around shopping), the rest were mostly focused on theory. I think it took me a few hours to go through it all, and there are certain requirements before you can &quot;graduate&quot;, so you will have to go out in the world and do some tasks, before you can go back and finish your graduation.&lt;&#x2F;p&gt;
&lt;p&gt;The good thing about the academy is that you don&#x27;t have to do it all at once. Feel free to explore and do some questing as soons as you feel up to it.&lt;&#x2F;p&gt;
&lt;p&gt;All in all the academy does a decent job at teaching you the game and where to find help, but it is tedious and feels like work. Luckily, the rest of the game is much more fun.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;gameplay&quot;&gt;Gameplay&lt;&#x2F;h2&gt;
&lt;p&gt;The gameplay will feel familiar to anyone who have played a modern MMO like Everquest or World of Warcraft. It has turn-based combat (that plays out in real-time), goals (quests that you can do), tasks (area specific quests, usually in the form of puzzles), spells, skills, trainers that teach you new skills and spells, vendors (where you can buy stuff), areas to explore, guilds to join, and many other gameplay mechanics.&lt;&#x2F;p&gt;
&lt;p&gt;The core gameplay loop of finding a level-appropriate area, explore the surroundings, kill stuff, solve the tasks, loot the corpses, etc. is quite fun. And there are many areas to explore.&lt;&#x2F;p&gt;
&lt;p&gt;I&#x27;m only level 22 currently, but I&#x27;m still breezing through the levels. Each level awards you with new skills and spells you can learn. It&#x27;s doesn&#x27;t feel grindy (yet), and I don&#x27;t know if it will. It&#x27;s fun so far.&lt;&#x2F;p&gt;
&lt;p&gt;There is supposely PVP as well, but I didn&#x27;t look into it since it&#x27;s not something I&#x27;m interested in.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;community&quot;&gt;Community&lt;&#x2F;h2&gt;
&lt;p&gt;There are plenty of players at any time during the game, and there seems to be a small but steady influx of new players as well. Everyday someone new will ask and question in the dedicated newbie channel. It makes the game feel more alive than many other MUDs I&#x27;ve tried recently.&lt;&#x2F;p&gt;
&lt;p&gt;A funny episode played out while I was still doing the academy. Some new player kept asking questions that seems to be answered if you did the classes in the academy. That was pointed out repeatly by one of the newbie helpers, but the newbie refused to do the academy because they couldn&#x27;t be bothered to read all that text. I chuckled at that. I thought it was a fair critisicm of the new player experience. Luckily many others were still very helpful and the newbie got their answers.&lt;&#x2F;p&gt;
&lt;p&gt;And if you hang around some of the hub areas of the game (like the one you end up in when you &quot;recall&quot;), you will see plenty of other players arriving and leaving. Occasionally they will hand out stuff or send protective spells in your direction. Neat.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;immersion&quot;&gt;Immersion&lt;&#x2F;h2&gt;
&lt;p&gt;The game feels very immersive in that everything feels alive and stuff is happening all the time. The weather changes, NPCs will emote behaviours now and then, players will zip around and do stuff. Global announcement will be made when players reach certain milestones. Global auctions well be held. And so on.&lt;&#x2F;p&gt;
&lt;p&gt;Though if you leave the city of Aylor, I feel like the world is much more static. Maybe I just didn&#x27;t stick around in the wilderness long enough. Also, while the outside world could technically be considered &quot;open world&quot; in the modern sense (think GTA or Breath of the Wild), all the interesting areas are in their own zones. The &quot;overworld&quot; or &quot;wilderness&quot; is mostly just a hub world for you to go search for all the interesting areas and &quot;enter&quot; them. Like the overworld map i Super Mario World.&lt;&#x2F;p&gt;
&lt;p&gt;Not only that, you don&#x27;t even have to go exploring to find the areas. They are all nearly listed using the &quot;area&quot; command, and you can &quot;runto&quot; any areas using just it&#x27;s name. It&#x27;s fast travel made easy and accessable to everyone. The downside is that it takes away the immersion of finding stuff yourself. If you like to roleplay and pretend like I do, this makes the game feel more like an amusement park and less like an actual living world. But it does make playing the game much easier for new players that would otherwise get lost. Obviously I could also choose to simply play on &quot;hard mode&quot; meaning not using the &quot;runto&quot; command in the first place.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;world-building&quot;&gt;World building&lt;&#x2F;h2&gt;
&lt;p&gt;As for the world itself, from what I&#x27;ve experienced so far, it doesn&#x27;t have a lot of lore or history. Or maybe I just missed it. The geography is explained, the moons, weather patterns, etc. but that&#x27;s it. It doesn&#x27;t seems to have a coherent story that runs through the areas or any strong theme that binds it all together. It&#x27;s more like a bit of everything thrown into the same game.&lt;&#x2F;p&gt;
&lt;p&gt;So if you want to feel like you are a part of Middle-earth, Faerûn, or any other rich fantasy world, this is not for you. This is more like a generic setting with a bit of everything.&lt;&#x2F;p&gt;
&lt;p&gt;The actual areas from what I have seen are well-written and immersive on their own, but the game overall just doesn&#x27;t have any strong sense of any theme.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;conclusion&quot;&gt;Conclusion&lt;&#x2F;h2&gt;
&lt;p&gt;Overall I&#x27;ve enjoyed the game so far and will likely play it some more in the near future. It&#x27;s fun and feels alive. As a text-based MUD it is quite enjoyable. As for a rich fantasy setting and for roleplaying, it&#x27;s less interesting. The gameplay itself is quite standard hack &#x27;n slash and questing, but in a fun way. It&#x27;s definitely a good place to start if you are new to mudding and think you would enjoy an well put together fantasy RPG with other players around.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>What is so great about playing MUDs?</title>
        <published>2025-10-07T00:00:00+00:00</published>
        <updated>2025-10-07T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://devshrine.net/blog/muds2/"/>
        <id>https://devshrine.net/blog/muds2/</id>
        
        <content type="html" xml:base="https://devshrine.net/blog/muds2/">&lt;p&gt;I realised I never explained what a MUD is and what makes it great. This is somewhat subjective so it makes sense that I provide my own perspective.&lt;&#x2F;p&gt;
&lt;p&gt;(The Aardwolf review that I promised will have to wait a bit.)&lt;&#x2F;p&gt;
&lt;p&gt;A MUD is a multi user dungeon, meaning a text-based adventure game that you play with others. It&#x27;s all text, and usually played using a telnet-client. And a telnet-client is a piece of software that enables you to interact with remote computer systems using only text. It&#x27;s 1970&#x27;s tech basically, from before desktop environment and 3D graphics became the norm.&lt;&#x2F;p&gt;
&lt;p&gt;So you connect to this MUD, using telnet, and everything you can do in this MUD is done by writing text commands, and everything that happens is written on the screen with text. There is no graphics, no audio, or anything else. And the text just flows from bottom to top like scrolling slowly through a wikipedia article, except that at any point, while the words appear, line by line, you can choose to interact with whatever is happening right now in the game.&lt;&#x2F;p&gt;
&lt;p&gt;Say a goblins enters the room that you are in. You can choose to &quot;look goblin&quot; to get a more detailed description of the creature from the game. Or you can choose to &quot;kill goblin&quot; if you are the murderous sort. Or if any other player enters the room, you can choose to &quot;say&quot; something like &quot;Hey Anton, how&#x27;s the battle against the goblins going?&quot;&lt;&#x2F;p&gt;
&lt;p&gt;Each MUD have hundreds of commands that enables you to interact with many of the game mechanics of the game. Talking, battling, crafting, exploring, managing you loot, buying from vendors, and so on. And often there is a detailed built-in help you can read to figure out how each command works.&lt;&#x2F;p&gt;
&lt;p&gt;The most common type of MUD is a hack &#x27;n slash type of game derived from the original Dungeons and Dragons. You know, orcs, dwarves, elves, humans battling goblins, dragons, demons, in a medieval type of fantasy setting. You gain experience from killing and doing other tasks, gain levels from the experience, learn new spells or skills from each level and find new weapons to use. That sort of thing.&lt;&#x2F;p&gt;
&lt;p&gt;There are other types of MUDs as well, though they are less common overall, MUSH being the main variant. It stands for Multi-User Shared Hallucination and is more about actual roleplaying, telling stories, and social interaction, and less about killing goblins. And then there are MOOs, the Object-Oriented variant that sounds very flexible in creating environments, but I know little about them. MUCKS (Multi-User Construction Kit) are in the same vein, I think.&lt;&#x2F;p&gt;
&lt;p&gt;And obviously, each MUD is free to change anything they want. Want a sci-fi setting instead of fantasy? Write one! Think battling in spaceships sounds more fun than running around with swords and sorcery? Sure, just change the code to have space ships instead! All that is needed is some imagination, writing skills, and a bit of flair for programming or light scripting (depending on how extensive the changes you want to make need to be).&lt;&#x2F;p&gt;
&lt;p&gt;So, what makes a MUD great?&lt;&#x2F;p&gt;
&lt;p&gt;To me, it&#x27;s the immersion and world-building combined with hands-on gameplay of exploring and interacting with the world. It&#x27;s like reading a book, except I get to choose the direction of the plot at any time!&lt;&#x2F;p&gt;
&lt;p&gt;Sure, you can do all those things in World of Warcraft as well, but a MUD is not limited by the poor graphics at the time of the game&#x27;s release. Adding new stuff is as simple as writing and change the code a bit. In a sense, a MUD is the most pure form of multiplayer gaming. The graphics will never look ugly, since it&#x27;s all in my head.&lt;&#x2F;p&gt;
&lt;p&gt;It is this allure being able to be anything I can think of, in any world I want to be in, with other people. World of Warcraft has much more limited choices in that regard, though I accept that it is also a much easier game to get into.&lt;&#x2F;p&gt;
&lt;p&gt;So that&#x27;s basically it. MUDs are the forerunner of modern MMOs and basically invented the genre that Everquest and WoW popularized. And then nothing more happened. I think there is still a lot of untapped potential in MUDs, especially if we ditch the common tropes of killing monsters and grinding levels, and think about what other type of games could be built in a purely text-based environment. And not only that, how about adopting some of the more modern modes of text-presentation and input, something that would work on mobile and yet still retain the pureness of &quot;text-only&quot;? That&#x27;s what I&#x27;ve been thinking about lately. Maybe it&#x27;s just pipe dream, but I think the journey towards it will be an interesting one nevertheless. And a oldschool MUD with all the tropes might be as good a starting point as any for experimentation with text-based games of the future. That&#x27;s why I&#x27;m creating one from scratch. More on that later!&lt;&#x2F;p&gt;
&lt;p&gt;See you around!&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>Journey Into Modern Text MUDs</title>
        <published>2025-10-05T00:00:00+00:00</published>
        <updated>2025-10-05T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://devshrine.net/blog/muds1/"/>
        <id>https://devshrine.net/blog/muds1/</id>
        
        <content type="html" xml:base="https://devshrine.net/blog/muds1/">&lt;p&gt;I intend this to be a series about text based multi user dungeons (MUDs) for modern times. I want to investigate what is still out there, try out some of them, and see what a MUD is like in 2025. I will try to look at them through a modern gamer&#x27;s lens and see what works and want doesn&#x27;t work. Why? I want to implement a prototype of a modern MUD with my own ideas and tweaks, but I also want to enjoy what is still out there today.&lt;&#x2F;p&gt;
&lt;p&gt;So in short, I&#x27;m a bit obsessed with MUDs currently and this is my first journal entry about my new (old) hobby.&lt;&#x2F;p&gt;
&lt;p&gt;A few disclaimers:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;No AI was used in this writing. All errors (spelling, grammar, etc) are my own. English is also not my first language :)&lt;&#x2F;li&gt;
&lt;li&gt;This is a hobby project. I have no idea how far I will be able to take this or if I&#x27;m capable of doing anything remotely interesting with this.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;a-bit-of-background-about-me&quot;&gt;A bit of background (about me)&lt;&#x2F;h2&gt;
&lt;p&gt;I&#x27;m old enough to have played MUDs in the mid 90&#x27;s on dial-up via a local BBS. Not for long (it was expensive making those calls), but a few hours here and there just to soak in the magic with my younger brother, when parents allowed us to do so.&lt;&#x2F;p&gt;
&lt;p&gt;Later on, early 2000&#x27;s, I tried out different MUDs on the internet and had a blast on a few of them. I never got very far though. Instead of reaching immortal or anything like that, I would play for a few weeks, months even, and then I would lose interest and move on to something else.&lt;&#x2F;p&gt;
&lt;p&gt;I would jump in and out of the MUD scene every couple of years, trying out a few new MUDs, having some fun, and then go on to something else. There are a few reasons why I never stuck on a particular MUD for years:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;My English wasn&#x27;t fantastic when I was younger and I was very conscious about my mediocre commandment of the language. It made me feel a bit shy and made it harder to socialize.&lt;&#x2F;li&gt;
&lt;li&gt;Also, I was never one to play the same game for very long. This is not specific to MUDs. Even with PC games, I would play most games for 20 hours, 50 hours if it was really good, and then move on to the next game. I was always on the look out for something new. People who played the same game for 500+ hours always intrigued me. How did they not get bored?&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;mud-popularity-in-2025&quot;&gt;MUD popularity in 2025&lt;&#x2F;h2&gt;
&lt;p&gt;Recently, after a long stretch of not playing (at least five years), I tried to get back into MUDing again. Turns out, the scene is much smaller than what it used to be, or at least it looks like that from my perspective.&lt;&#x2F;p&gt;
&lt;p&gt;Sure, there a still MUDs around. There is even a semi-active sub-reddit about it. But I remember not that long ago (or was it?) when the most popular MUDs would have 300-500 people online during peak hours, and there would be many MUDs with a population above 100. Today, there is only a handful that might reach 200 people online during peak hours, and less than 20 MUDs averaging more than 50 people.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;where-to-look-for-muds&quot;&gt;Where to look for MUDs&lt;&#x2F;h2&gt;
&lt;p&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;mudstats.com&quot;&gt;MudStats.com&lt;&#x2F;a&gt;: This site has real-time statistics for most current MUDs. It lists more than 753 active MUDs, so the scene is clearly still there. The list also reveals that no less than nine MUDs had more than 200 people logged on at once in the last 30 days, though the kind of MUDs that reaches that kind of population is a rather interesting bunch (more on that in the next section).&lt;&#x2F;p&gt;
&lt;p&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;iberia.jdai.pt&#x2F;mudstats&#x2F;mudlist&quot;&gt;MUD MSSP Stats&lt;&#x2F;a&gt;: Similar to MudStats, it displays real-time statistics on current muds. It reveals total players connected to be 4336 and the time of this writing. I doesn&#x27;t have max players over 30 days listed as MudStats does, but otherwise the stats that it reveals are similar.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;www.topmudsites.com&#x2F;&quot;&gt;topmudsites.com&lt;&#x2F;a&gt; is a historical site, not longer updated as of 2022. It lists MUDs by popularity, meaning people had to activily vote for their favorite MUDs. It&#x27;s basically a snapshot of the most popular MUDs at the time the site went read-only.&lt;&#x2F;p&gt;
&lt;p&gt;There are other &quot;topsites&quot; that I won&#x27;t list here. They don&#x27;t give any new information, and I always found the whole voting thing a bit sketchy. Player count and reviews are better indicators.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;mudhalla.net&#x2F;tintin&#x2F;protocols&#x2F;mssp&#x2F;mudlist.html&quot;&gt;MSSP Mud Crawler&lt;&#x2F;a&gt; is a fun and alternative way to browse MUDs. It lists current login screens from active MUDs with a variety of stats below each, like player count, uptime, codebase, etc. Looking at a MUD login screen can tell you a lot about a MUD.&lt;&#x2F;p&gt;
&lt;p&gt;There are other sites that lists MUDs like &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;grapevine.haus&#x2F;&quot;&gt;Grapevine&lt;&#x2F;a&gt; and &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;www.mudconnect.com&#x2F;&quot;&gt;The MUD Connector&lt;&#x2F;a&gt; (which doesn&#x27;t look at all like how I remember it), but I didn&#x27;t really look at them much this time around.&lt;&#x2F;p&gt;
&lt;p&gt;Obviously you can also browse &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;www.reddit.com&#x2F;r&#x2F;MUD&#x2F;&quot;&gt;reddit.com&#x2F;r&#x2F;MUD&#x2F;&lt;&#x2F;a&gt; for recommendations.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;how-to-pick-a-mud&quot;&gt;How to pick a MUD&lt;&#x2F;h2&gt;
&lt;p&gt;I know I have made it sound like I only care about MUDs with a high population, which is true to a certain extent, but it doesn&#x27;t mean I&#x27;m adverse to playing something which a much lower player count. The quality of the actual game could still be great, long forgotten or simply just a hidden gem. I definitely plan to try out a few of the newer or lesser known MUDs as well.&lt;&#x2F;p&gt;
&lt;p&gt;But for now, I want to see what the most popular MUDs are like. Looking purely at the most active MUDs today, the information you can gather from the above sites paints a clear picture. Let me list the most popular MUDs today by category:&lt;&#x2F;p&gt;
&lt;h3 id=&quot;the-commercial-ones&quot;&gt;The commercial ones&lt;&#x2F;h3&gt;
&lt;p&gt;Two companies still make commercial MUDs today. You have Simutronics that develops:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Gemstone 4 (released way back in 1988 and still running!)&lt;&#x2F;li&gt;
&lt;li&gt;DragonsRealms (released in 1996)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;And then there is Iron Realms Entertainment, best know for&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Achaea (released in 1997)&lt;&#x2F;li&gt;
&lt;li&gt;Aetolia (released in 2001)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Iron Realms have a least three other MUDs running, but they are &quot;legacy&quot; meaning they are no longer in active development and basically abandoned. I&#x27;m going to write about one of them in a future journal entry.&lt;&#x2F;p&gt;
&lt;p&gt;No other company is actively running MUDs for profit to my knowledge.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;the-furry-ones&quot;&gt;The furry ones.&lt;&#x2F;h3&gt;
&lt;p&gt;Going back to MudStats and sorting by &quot;30 Day Max&quot; reveals that out of the 10 most popular MUDs by player count, four of them are &quot;adult&quot; or &quot;furry&quot;. It&#x27;s not exactly my thing, but their popularity has me curious about what kind of mechanics they have. I&#x27;ll most likely have a quick look at one of them at some point in the future, just to see what the &quot;new player experience&quot; is like.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;the-chinese-one&quot;&gt;The Chinese one&lt;&#x2F;h3&gt;
&lt;p&gt;One of the most popular MUDs today is Chinese and is found at &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;pkuxkx.net&quot;&gt;https:&#x2F;&#x2F;pkuxkx.net&lt;&#x2F;a&gt;. I have no idea what it is about and I don&#x27;t speak Chinese, but it has me intrigued. I will try to look up more information about this one later.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;the-free-ones&quot;&gt;The free ones&lt;&#x2F;h3&gt;
&lt;p&gt;And then there is the rest. Filtering out the MUDs I&#x27;ve already mentioned, keeping those with an average of a least 80 players over the last 30 days, you get this, in order of player count (most to least):&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Aardwolf MUD&lt;&#x2F;li&gt;
&lt;li&gt;Bear&#x27;s Den&lt;&#x2F;li&gt;
&lt;li&gt;Threshold RPG&lt;&#x2F;li&gt;
&lt;li&gt;Telehack&lt;&#x2F;li&gt;
&lt;li&gt;New Worlds Ateraan&lt;&#x2F;li&gt;
&lt;li&gt;Realms of Despair&lt;&#x2F;li&gt;
&lt;li&gt;Medievia&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Of those, I only personally now Medievia, Realms of Despair and Ardwolf, because I&#x27;ve played them previously. Telehack is not actually a MUD, but more of an ARPANET-simulation (that happens to contain MUD1 if you want to see where it started!).&lt;&#x2F;p&gt;
&lt;p&gt;I actually have very fond memory of playing Realms of Despair back in the day. It was one of the few MUDs I kept going back to in the 2000s. I played Aardwolf more recently and had fun with that as well. I also remember Medievia being quite fun and immersive. They all fall into the &quot;hack and slash&quot; category at some level, though some of the finer details eludes me right now.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;where-to-go-from-here&quot;&gt;Where to go from here&lt;&#x2F;h2&gt;
&lt;p&gt;So, my plan is to try out some MUDs and write down my thoughts. So reviews basically. I will focus on &quot;new player experience&quot;, gameplay mechanics, immersion, world building, and community.&lt;&#x2F;p&gt;
&lt;p&gt;I&#x27;ve already started a new character on Aardwolf and plan to give my thoughts on that in my next journal entry.&lt;&#x2F;p&gt;
&lt;p&gt;So long!&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>Review: Small and simple washer for clothes...</title>
        <published>2025-08-14T00:00:00+00:00</published>
        <updated>2025-08-14T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://devshrine.net/blog/washer/"/>
        <id>https://devshrine.net/blog/washer/</id>
        
        <content type="html" xml:base="https://devshrine.net/blog/washer/">&lt;p&gt;I want to talk a new friends of this little family; a mini washer. This is the &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;www.adler.com.pl&#x2F;index.php&#x2F;en&#x2F;Main&#x2F;Produkt&#x2F;cr_8054&quot;&gt;&lt;strong&gt;Camry CR 8054&lt;&#x2F;strong&gt;&lt;&#x2F;a&gt; which could easily be mistaken for the &lt;strong&gt;Adler AD 8051&lt;&#x2F;strong&gt; or any other small washer from the company &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;www.adler.com.pl&quot;&gt;Adler&lt;&#x2F;a&gt;. They have a whole range, but to my untrained eye the basically all look the same. Except the &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;www.adler.com.pl&#x2F;index.php&#x2F;en&#x2F;Main&#x2F;Produkt&#x2F;cr_8052&quot;&gt;&lt;strong&gt;Camry CR 8052&lt;&#x2F;strong&gt;&lt;&#x2F;a&gt;. That one looks a little different.&lt;&#x2F;p&gt;
&lt;div style=&quot;display: flex; align-items: center; gap: 20px;&quot;&gt;
  &lt;img src=&quot;washer.jpeg&quot; alt=&quot;The Camry CR8054&quot; style=&quot;width:400px&quot;&#x2F;&gt;
  &lt;div style=&quot;text-align:center;&quot;&gt;
    &lt;h3&gt;The washer doing its thing&lt;&#x2F;h3&gt;
    &lt;video src=&quot;washer.webm&quot; controls style=&quot;width:100%;&quot;&gt;
      Your browser doesn&#x27;t support this video format. And that&#x27;s fine. You don&#x27;t really need it anyway.
      You can download the file from &lt;a href=&quot;washer.webm&quot;&gt;here&lt;&#x2F;a&gt; if you like.
    &lt;&#x2F;video&gt;
  &lt;&#x2F;div&gt;
&lt;&#x2F;div&gt;
&lt;p&gt;The whole range of small washers seem to share the same basic traits, but let me just focus on my own Camry from now on:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;It can wash 3 kg of clothing.&lt;&#x2F;li&gt;
&lt;li&gt;Spinning capacity is 1 kg of clothing.&lt;&#x2F;li&gt;
&lt;li&gt;A maximum of 15 minutes for a washing program (you can always restart it).&lt;&#x2F;li&gt;
&lt;li&gt;And 5 minutes of spinning.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;how-it-works&quot;&gt;How it works&lt;&#x2F;h2&gt;
&lt;p&gt;Washing is quite simple. Do as follows:&lt;&#x2F;p&gt;
&lt;ol&gt;
&lt;li&gt;Put in clothing.&lt;&#x2F;li&gt;
&lt;li&gt;Fill up with water. This is done manually.&lt;&#x2F;li&gt;
&lt;li&gt;Put in detergent.&lt;&#x2F;li&gt;
&lt;li&gt;Start the machine and wait for it to finish.&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;p&gt;To start, you just twist the button to pick the length of the washing program and wait. It&#x27;s a mechanical clock basically. Like a toaster.&lt;&#x2F;p&gt;
&lt;p&gt;Same with spinning.&lt;&#x2F;p&gt;
&lt;p&gt;When it&#x27;s done washing, and when spinning, you take down the drain tube so the water can leave the machine.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;my-review&quot;&gt;My review&lt;&#x2F;h2&gt;
&lt;p&gt;So overall, I really like the machine. It was a godsend when our Siemens washer broke and the technician didn&#x27;t have time to come by until the following week. Here are some pros and cons.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;pros&quot;&gt;Pros&lt;&#x2F;h3&gt;
&lt;ul&gt;
&lt;li&gt;It&#x27;s cheap. It was less than 70 euros.&lt;&#x2F;li&gt;
&lt;li&gt;Simple to operate.&lt;&#x2F;li&gt;
&lt;li&gt;Small and light.&lt;&#x2F;li&gt;
&lt;li&gt;It works (sorta, see below)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h3 id=&quot;cons-problem-section&quot;&gt;Cons (problem section)&lt;&#x2F;h3&gt;
&lt;ul&gt;
&lt;li&gt;There is no rinse cycle. I would have preferred that though that would have required a drastically different kind of design.&lt;&#x2F;li&gt;
&lt;li&gt;Spinning is really weak, and if you use it too much, the machine overheats and has to cool down. This is not documented anywhere. At first, we thought it had broken! You just have to wait 15 minutes and it works again.&lt;&#x2F;li&gt;
&lt;li&gt;I think it uses more water than a regular washer for the same amount of clothing.&lt;&#x2F;li&gt;
&lt;li&gt;Spinning has to be done with only 1 kg at a time.&lt;&#x2F;li&gt;
&lt;li&gt;No alarm when it is finished. Would have been nice.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h3 id=&quot;conclusion&quot;&gt;Conclusion&lt;&#x2F;h3&gt;
&lt;p&gt;Overall it&#x27;s a nice little washer for emergencies if you don&#x27;t have the time to handwash in bulk. Maybe also good for camping and holiday trips. Recommended.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>An Ode to the Old Internet</title>
        <published>2025-08-08T00:00:00+00:00</published>
        <updated>2025-08-08T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://devshrine.net/blog/ode-old-internet/"/>
        <id>https://devshrine.net/blog/ode-old-internet/</id>
        
        <content type="html" xml:base="https://devshrine.net/blog/ode-old-internet/">&lt;p&gt;&lt;em&gt;Disclaimer: I&#x27;ve written all this from memory. It may contain factual errors and other inaccuracies! Also, I&#x27;m mostly talking about WWW here, not the internet in general.&lt;&#x2F;em&gt;&lt;&#x2F;p&gt;
&lt;p&gt;I&#x27;ve been making homepages since I was around 13 years old back in the mid 90&#x27;s. This was only a few years after I tried to make games in QBASIC and later, develop games in DOS using DJGPP (neither which amounted to much). Writing HTML, on the other hand was easy. I quickly got the handle on it and was eager to tell everyone about its wonders!&lt;&#x2F;p&gt;
&lt;p&gt;I put up homepages about all the stuff I cared about: Games I liked (I had a Warcraft 2 shrine at one point, the wallpaper was the &quot;grass&quot; tile), anime (fanart, fansubs), and homepages just for the sake of it (often with little to no actual content, but a lot of quirky 90s webdesign).&lt;&#x2F;p&gt;
&lt;p&gt;At first, I used my ISPs free 5 MB (yes, 5 megabytes) webspace. I didn&#x27;t like the URL, which had a &quot;tilde&quot; in it for some reason, and soon after, I discovered Geocities and moved everthing there. I might have had homepages on other hosts as well just for the heck of it.&lt;&#x2F;p&gt;
&lt;p&gt;When I turned 18, I started experimenting with actual domain names and paid webhosts, and ended up writing my own CMS in PHP. I didn&#x27;t make as many homepages as I used to, never fully got into &quot;blogging&quot; either. I remember when &quot;blogger.com&quot; launched around 2000. It felt restrictive and less creative.&lt;&#x2F;p&gt;
&lt;p&gt;Writing PHP got me into CS and I got a degree—well, two actually. It launched my career in software development which I am thankful for today.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;what-the-old-internet-did-well&quot;&gt;What the old internet did well&lt;&#x2F;h2&gt;
&lt;p&gt;So what was so great about the early to mid 90s internet aka the &quot;World Wide Web&quot;?&lt;&#x2F;p&gt;
&lt;h3 id=&quot;no-advertisements&quot;&gt;No advertisements&lt;&#x2F;h3&gt;
&lt;p&gt;At least in any organised and pervasive fashion. You wouldn&#x27;t really need an adblocker because there wasn&#x27;t much to block until the late 90s, and even then, they were much less obtrusive than today. Some were even fun!&lt;&#x2F;p&gt;
&lt;p&gt;They started as simple banners at the top of the webpages. The later at the bottom as well. People even put banners on their own homepages. First, at part of a &quot;link exchange&quot; network to drive traffic between hobbyist homepages. Later to earn a bit of cash. We were so naive back then. Ads weren&#x27;t seen as anything harmful at all. Google didn&#x27;t really exists as anything but a small search engine, and didn&#x27;t really become mainstream until around 1998-2000.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;no-videos&quot;&gt;No videos&lt;&#x2F;h3&gt;
&lt;p&gt;Yes, the early internet was (almost) without videos. Videos didn&#x27;t become a standard of HTML until much later.&lt;&#x2F;p&gt;
&lt;p&gt;Sometimes you would find pages with live streams showing a street or a monument, or just someones backyard. Actual video with content was rare (unless you looked at adult stuff). And it always required a browser plugin before it could be viewed. And it was always a different plugin and it always sucked.&lt;&#x2F;p&gt;
&lt;p&gt;Even with broadband (which in my case was an ISDN connection with 128 kbps), we are talking about videos with a framerate of 15 fps (at most) and a resolution of a GameBoy. 90% of the time you spent on the video, it would be buffering. For practical purposes, the internet was without video content for 99% of its users.&lt;&#x2F;p&gt;
&lt;p&gt;Today, searching a tutorial, you often realize that your only option is to skip through dozens of YouTube videos because no one bothered to write a simple article explaining the steps. I hate that. I enjoy video content for certain things, but hate have it permeates everything now.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;no-algorithms&quot;&gt;No algorithms!&lt;&#x2F;h3&gt;
&lt;p&gt;Well, I&#x27;m not going to pretend I enjoyed trawling through endless search results in &quot;Alta Vista&quot; because the first 10 pages didn&#x27;t return anything related to my search query. Google really was great at first, using their &quot;page rank&quot; algorithm to make it easier for me to find stuff.&lt;&#x2F;p&gt;
&lt;p&gt;Algorithms back then were not: - Engineered to decide what you are interested in. I still formed my own search queries! - Making a profile of me so advertisers can target specific ad campaigns at me.&lt;&#x2F;p&gt;
&lt;p&gt;Those are the things that made the use of algorithms evil.&lt;&#x2F;p&gt;
&lt;p&gt;Despiting hating Alta Vista, I did really enjoy all of the following: - Trawling through human-moderated categories in Yahoo and dmoz. - Clicking around in web-rings finding new interesting homepages. - Perusing the links section of a personal homepage to discover new content.&lt;&#x2F;p&gt;
&lt;p&gt;You didn&#x27;t always find what you were searching for, but the internet was still young. This before the content mills, the gen-ai content slob, the SEO spam, and all the scam trying to trick you into buying crypto.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;things-i-don-t-miss-about-the-old-internet&quot;&gt;Things I don&#x27;t miss about the old internet&lt;&#x2F;h2&gt;
&lt;p&gt;Just to balance things out a bit, here are a handful of things I don&#x27;t really miss about the old internet. - Having to wait a few minutes for a website to load (having only a 56K modem for many years might have been part of my problem). - Flash. Sure, the games could be fun, but Flash embedded as a part of the web design was not. - Java Applets. Yuck. I&#x27;m saying that as a Java developer (since Java 1.4). - Having to install plugins in your browser to enable specifics parts of some obscure website was never a great time. - Browser incompatibilities. Great thing today is that everyone justs uses Chromium, so there are no incompatibilies anymore. Well actually, that&#x27;s pretty bad also.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;going-forward&quot;&gt;Going forward&lt;&#x2F;h2&gt;
&lt;p&gt;I&#x27;m so happy that the &quot;small web&quot; is blossoming again and people are starting to discovers the joys of creating homepages and interacting through small communities. I&#x27;m still new to all of this, but I&#x27;m going to advocate for this corner of the internet for many years to come in any way I can.&lt;&#x2F;p&gt;
&lt;p&gt;In my ideal world, the small web would have all that made the old internet great, without all the AI slob, SEO spam, content mills, and just generally without search engines that care more about targetting you with ads than filtering out all the crap. This is going to take time. Maybe this part of the internet will always stay small and niche. Maybe that&#x27;s okay, but everyone deserves to know about the alternative.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>My editorial principles</title>
        <published>2025-01-12T00:00:00+00:00</published>
        <updated>2025-01-12T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://devshrine.net/blog/editorial/"/>
        <id>https://devshrine.net/blog/editorial/</id>
        
        <content type="html" xml:base="https://devshrine.net/blog/editorial/">&lt;p&gt;&lt;em&gt;Disclaimer: This is hopelessly outdated. Read the &lt;a href=&quot;&#x2F;colophon&quot;&gt;&#x2F;colophon&lt;&#x2F;a&gt; instead. Not only did I change to a static site builder (zola), I even automated some tasks with AI! All content is still written by me though (a human)!&lt;&#x2F;em&gt;&lt;&#x2F;p&gt;
&lt;p&gt;I have an idea of how I will approach this website going forward:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;I want to hand-write the HTML and CSS (and JavaScript, if appropriate). I never liked site generators and frameworks, anyway.&lt;&#x2F;li&gt;
&lt;li&gt;I will only use JavaScript sparringly and only for certain cases where it has obvious benefits (like in a fun game or useful tool).&lt;&#x2F;li&gt;
&lt;li&gt;The contents will mainly be interesting to me. It is my personal home page, after all.&lt;&#x2F;li&gt;
&lt;li&gt;I will only add content if I have fun doing it. If I stop having fun, I will reconsider my &quot;principles&quot;.&lt;&#x2F;li&gt;
&lt;li&gt;I will try to use modern techniques and best practicies, but only to a degree where it doesn&#x27;t prevent me from pursuring my other goals.&lt;&#x2F;li&gt;
&lt;li&gt;No AI generated content allowed! The writing is all my own (spelling and grammrr mitsakes included).&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
</feed>
