[{"content":"I remember back in November 2022, when ChatGPT was released and everyone was going crazy about how smart and humanlike it was. I sat down and started talking to it in Czech. After reading so many raving reviews and hyperbolic predictions, I was shocked by how quickly I ran into the model\u0026rsquo;s limits in Czech. Now don\u0026rsquo;t get me wrong: I know my native tongue is not a top-tier language, given it only has about 10 million native speakers. I don\u0026rsquo;t expect AI models to be as proficient in Czech as in English or other major languages. But it still made me think: if I am getting a much worse experience from large language models than English speakers are, what is the experience like for people who speak languages with even less digital support?\nIt set me on a path toward working on multilingual LLM capabilities and the challenge (and fun) of measuring them. We were already helping some major labs train AI models in various languages, and some of our clients used to give even longer-tail languages a lot of attention; some still do. But I feel like the \u0026ldquo;race to AGI\u0026rdquo; has completely overshadowed the importance of truly inclusive multilingual systems.\nLet\u0026rsquo;s start with OpenAI and its latest model, GPT-5.4: the press release, which is almost a 4,000-word document, mentions the words \u0026ldquo;language\u0026rdquo;, \u0026ldquo;linguistic\u0026rdquo; or \u0026ldquo;multilingual\u0026rdquo; exactly zero times. OpenAI used to give some attention to multilingual performance of its models: it translated the Massive Multitask Language Understanding (MMLU) benchmark into 14 languages and used to report the scores in its press releases and models\u0026rsquo; system cards. For the newest models, the scores are not mentioned in the press release, and even worse, not even in the system card. The only acknowledgment that the model can handle non-English text appears in a footnote. Neither the note nor the linked help article makes clear whether \u0026ldquo;support\u0026rdquo; refers to UI localization or actual model capability, and, if the latter, whether that applies to text, voice, or both.\nOpenAI is not alone in this. Anthropic also makes no mention of multilingual capabilities in its press release for Claude Opus 4.6, unless you count \u0026ldquo;multilingual coding\u0026rdquo;, that is, the knowledge of different programming languages. Anthropic does produce a 213-page system card, and it actually does comment on the multilingual MMLU score! Sadly, the commentary spans two sentences and does not even provide per-language statistics.\nWhen it comes to documenting which specific languages are supported, Anthropic is even worse than OpenAI. Anthropic has a Multilingual support page, which seems like a good start, until you realize that\u0026rsquo;s just a place to put results for the multilingual MMLU benchmark. At the time of writing, that page does not contain results for Claude Opus 4.5, Opus 4.6, or Sonnet 4.6. Anthropic also does not provide the full list or even a number. Instead, it just says \u0026ldquo;Note that Claude is capable in many languages beyond those benchmarked below.\u0026rdquo; Will it work well in Czech? Or Basque? Who knows! The most we get from Anthropic is that \u0026ldquo;Claude processes input and generates output in most world languages that use standard Unicode characters.\u0026rdquo;\nThere are AI labs that do better than the two behemoths. Mistral, for example, touts its Mistral Large 3 as \u0026ldquo;The next generation of open multimodal and multilingual AI\u0026rdquo; and claims its model supports more than 40 languages. The model page and the technical documentation provide no additional information (in fact, they do not even repeat the figure), but at least you can get a partial list at Hugging Face. Not from Mistral\u0026rsquo;s own docs, mind you, but from Hugging Face.\nNot everyone does this badly, though. Google publishes a full list of supported languages, both generally and by model family. Similarly, Alibaba publishes a full table of supported languages in its model announcements. Both also report multilingual MMLU scores in their model cards; aggregated rather than per-language, but at least present.\nWhy does this matter? It is easy to argue that English is the lingua franca, that many knowledge workers already use it, and that this is especially true in higher-income markets. But that view is short-sighted. If frontier AI labs expect their products to become truly universal, multilingual support cannot remain an afterthought. Sooner or later, it becomes both a product-quality issue and a growth issue. Once the English-speaking market is saturated, the next wave of users will come from other languages and cultural contexts. And if labs are serious about serving them, they need to start treating multilingual capability as something to measure, document and improve, not something users are left to discover on their own.\nTo be fair, multilingual performance has genuinely improved. Models handle Czech far better today than they did in 2022, and the gap between English and non-English scores on standardized benchmarks has narrowed. I have some reservations about those benchmarks that I\u0026rsquo;ll address in a separate post, but the trend is clear. The question is how much of that improvement is concentrated effort and how much is just a side effect of more linguistically diverse pre-training data or better model architectures. And I\u0026rsquo;m not claiming labs do no multilingual work internally; I\u0026rsquo;m saying the fact that they don\u0026rsquo;t consider it worth reporting tells you where it sits among their priorities. What isn\u0026rsquo;t publicly reported isn\u0026rsquo;t being held to a standard. More importantly, multilingualism in LLMs is far from a solved problem, despite the lack of attention it receives.\nI have spent much of the last several years working on this problem directly. My team and I built a multilingual benchmark that deliberately moves away from automated public benchmarks such as multilingual MMLU. Those benchmarks are useful, but they mostly test multiple-choice comprehension rather than real conversational ability. Our study focuses instead on open-ended language generation and manipulation, evaluated at scale by language professionals. I do not usually write about my day job on this blog, but this is one of the rare cases where it feels directly relevant. It is about as close to a passion project as work gets for me. We call it the \u0026ldquo;Multilingual LLM synthetic data generation study,\u0026rdquo; and the full 80-page report is available here.\nOf course, releasing a report once a year is not enough. We are already working on something that should shed more light on models\u0026rsquo; multilingual performance on a more continuous basis. Perhaps the most important thing, though, is to get people talking about this. While I do not believe LLMs are the road to AGI, and I have been vocal on this very blog about their negative aspects, I also believe there is a great deal of potential in them in their current form. There are underserved communities across the world that could benefit from easier access to language models that can communicate with them well.\nCzech has gotten much better since 2022. But if models still trip up in a language with 10 million speakers and a strong online presence, imagine what it\u0026rsquo;s like in Kinyarwanda, Fijian, or Kyrgyz.\n","permalink":"https://blog.burkert.me/posts/ai_multilingual_llm_study/","summary":"\u003cp\u003eI remember back in November 2022, when ChatGPT was released and everyone was going crazy about how smart and humanlike it was. I sat down and started talking to it in Czech. After reading so many raving reviews and hyperbolic predictions, I was shocked by how quickly I ran into the model\u0026rsquo;s limits in Czech. Now don\u0026rsquo;t get me wrong: I know my native tongue is not a top-tier language, given it only has about 10 million native speakers. I don\u0026rsquo;t expect AI models to be as proficient in Czech as in English or other major languages. But it still made me think: if I am getting a much worse experience from large language models than English speakers are, what is the experience like for people who speak languages with even less digital support?\u003c/p\u003e","title":"Multilingual support in LLMs is not a nice-to-have"},{"content":"A few days ago, I opened the window and heard a familiar sound I have not heard in a while: it was a fieldfare\u0026rsquo;s call, probably one of the first who migrated back to my town this year. And just today, I saw my first chaffinch of the year perched on top of a branch. These birds are very common where I live, so this is not too surprising, but what struck me is how much I have grown in terms of knowledge of their calls, appearance and behaviour. A few years ago, I wouldn\u0026rsquo;t have been able to name a single bird by call or name too many of them by looking at them. If you\u0026rsquo;re curious how I got here or want to build some knowledge and appreciation of birds, read on.\nBefore I go any further, I have to stress that I am not a bird expert and I am not even a super serious bird watcher / birder. But I have built an immense admiration for birds and whenever I go out and especially when I travel, I am on the lookout for them. I have always been fascinated by the outdoors, but my interest in birds actually started when I kept hearing a strange call at a playground in front of our house and kept wondering what that was. It turned out it was a fieldfare, but I only knew after I downloaded the Merlin Bird ID app and managed to capture the call. Here it was, clearly matching the already captured calls, with a description and plenty of additional information. Bingo!\nThe magic of the Merlin Bird ID app is being able to identify a bird in multiple ways: either going through a decision tree about your location, the bird\u0026rsquo;s appearance and behaviour, or through recording its calls, or from a photo. I\u0026rsquo;d argue these are some of the most brilliant ways artificial intelligence has been used. As Ian Campbell put it in his Inverse article about the app, it\u0026rsquo;s \u0026ldquo;an AI that helps push you away from your phone and appreciate the world around you,\u0026rdquo; which stands in stark contrast to algorithmic feeds and the personalized hell of social media that try to suck you into your phone\u0026rsquo;s screen.\nMost importantly, the Merlin app set me on a path to grow my interest in birds, because it made identifying birds easy and frictionless; it gave me a great head start and the motivation to continue. Soon, I didn\u0026rsquo;t even need to pull out my phone to identify the more common birds in my area just by their call. It may not be the most useful skill in the world, but I was so proud of myself, and felt happiness and warmth for reconnecting with the natural world, something we seem to do less and less.\nThe app also encourages you to collect \u0026ldquo;lifers\u0026rdquo; (birds you were able to identify), very much like you\u0026rsquo;d collect Pokemon. Gotta catch them all! And I do try to catch them all, whether it\u0026rsquo;s blue jays and great-tailed grackles in Texas, kestrels in the UK or common magpies in Spain. It is genuinely fun to collect them, and it invites you to learn more about the ecosystems of your neighborhood, as well as places you visit. The app is created by the Cornell Lab of Ornithology, is fully free and has so far avoided any enshittification, which I am very glad for.\nPerhaps the most interesting bit is that this little app has changed me in a meaningful way: I acquired quite a few books on birds and learned more than what the app itself can provide. I now jump with joy when I hear the first common swifts fly over our house in droves, screaming \u0026ldquo;sreeee\u0026rdquo; over each other. We rescued quite a few birds in distress, and we watched with delight and anticipation when a pair of blackbirds made a nest on our balcony; doubly so when we noticed that it\u0026rsquo;s the same pair we see each year at our bird feeder. Identifying a single bird\u0026rsquo;s call led me on a path that I could not have foreseen. So I urge you: give it a try. You might thank yourself in a year or two!\n","permalink":"https://blog.burkert.me/posts/birding/","summary":"\u003cp\u003eA few days ago, I opened the window and heard a familiar sound I have not heard in a while: it was \u003ca href=\"https://youtu.be/19iP35PwYIU?t=7\" target=\"_blank\" rel=\"noopener\"\u003ea fieldfare\u0026rsquo;s call\u003c/a\u003e, probably one of the first who migrated back to my town this year. And just today, I saw my first chaffinch of the year perched on top of a branch. These birds are very common where I live, so this is not too surprising, but what struck me is how much I have grown in terms of knowledge of their calls, appearance and behaviour. A few years ago, I wouldn\u0026rsquo;t have been able to name a single bird by call or name too many of them by looking at them. If you\u0026rsquo;re curious how I got here or want to build some knowledge and appreciation of birds, read on.\u003c/p\u003e","title":"An AI taught me to listen to birds"},{"content":"I love e-readers. I was an early adopter of the good old dorky-looking Kindle 3 (aka Kindle Keyboard), some 15 years ago, and I read many a book on it or its successors. A few years later, I upgraded to Kindle Paperwhite 3 (a 2015 model), and got stuck with it for a while. I had a phase where I shunned ebooks and started buying everything in paper, and then waffled back and forth a few more times. During one of my ebook-positive phases sometime early this year, a few things coincided: The battery in the Paperwhite was starting to show signs of wear, Amazon started making some anti-consumer moves, and I realized the Kindle was perhaps the only device that was not chargeable via USB-C. Time for an upgrade?\nGiven that I wanted to escape the Amazon ecosystem and I wanted a 6-inch e-reader with maximum openness and format support, I had basically two choices: PocketBook Verse Pro and Kobo Clara BW. In the end, I actually ended up buying both, just to see which one I like more. So today I\u0026rsquo;m going to tell you about the differences that I see between them, but also how they compare to the old Paperwhite.\nPocketBook Verse Pro PocketBook is definitely not a major global player, but has been relatively successful especially in Europe. The Verse Pro model from 2023 uses an E-Ink Carta 1200 display with 300 PPI, which is a noticeable step-up from Paperwhite\u0026rsquo;s 212 PPI. The display is also whiter, so there is definitely a much more paper-like feel. A huge plus is PocketBook\u0026rsquo;s USB-C charging and IPX8 waterproof rating. It also offers by far the best format support: Paperwhite does not support EPUB natively, which is a remnant of the format wars when Amazon was pushing the MOBI format. Verse Pro supports over 20 formats, of course including EPUB, MOBI, PDF and a bunch of others. It will read whatever you throw at it.\nUnlike either the Kobo or Kindle, PocketBook also has physical buttons. Most modern readers did away with buttons, which is a shame. That said, PocketBook buttons are at the very bottom of the device and are quite tiny, which makes them difficult to use. The build feels quite premium, no creaks or flexes when you hold it and use it.\nThe default OS experience is fine, albeit not amazing. There are no major issues, but the UI sometimes feels a little unfinished. I also didn\u0026rsquo;t like that a significant portion of the home screen is dedicated to random tips from the PocketBook store; I understand the need to promote more books and sell through their shop, but that should not be at the expense of the user experience. PocketBook\u0026rsquo;s home page experience is comparable to that on a Kindle: Close to half of your screen are ads.\nOne more slightly annoying thing about the PocketBook is that when it goes to deep sleep, it takes a few seconds to wake up. After waking up, the device feels fairly responsive.\nKobo Clara BW Kobo is perhaps the only serious global competitor to Amazon in e-readers, and their offering is quite polished. The Clara BW model (not to be confused with the many other Clara models) is from 2024 and uses a slightly newer Carta 1300 E-Ink display, also with 300PPI. I have spent a lot of time comparing the displays of the PocketBook and the Kobo, and I\u0026rsquo;m struggling to find differences. Kobo\u0026rsquo;s display is supposed to have higher contrast, but in reality I am struggling to see any practical differences. Kobo feels a little nicer overall, but the difference is so subtle (and sometimes depends on lighting conditions too) that I think there may be more variation between individual Kobo units than between the two models.\nKobo also charges via USB-C and has an IPX8 rating too. The format support is quite wide, and even though it \u0026ldquo;only\u0026rdquo; supports 20 formats, it probably won\u0026rsquo;t limit you in any way.\nIn terms of physical build, the Clara BW is definitely more plasticky than the PocketBook. Don\u0026rsquo;t get me wrong, both are made of plastic, but the Kobo just looks a little cheaper. However, it doesn\u0026rsquo;t creak or flex, which is a good sign. Unlike PocketBook, it has no physical buttons apart from the power button at the back. On the upside, despite the cheaper looking build, it\u0026rsquo;s actually more pleasant to hold the Kobo. Maybe it\u0026rsquo;s the rounded corners, the slightly textured body or the very slightly bigger space at the bottom for your thumb, but the ergonomics of holding the e-reader are very different, at least to my hands. Note that this completely changes the moment you put on a cover, which you absolutely should.\nThe default OS experience is definitely more polished than with PocketBook, and mostly feels a little faster too. It\u0026rsquo;s not a night and day difference, but it\u0026rsquo;s something. Kobo also has an ad for the Kobo shop on the home screen, but it is minuscule compared to what you\u0026rsquo;re getting in the other devices.\nKOReader One of the universal recommendations in the online e-reader communities was to install KOReader on whichever reader you get. At first I found the KOReader interface a little spartan, but the customizability and little extra features make up for it. I installed KOReader on both devices, which was a fairly straightforward process in both cases once you find the right forum post from the KOReader wiki. I highly recommend at least trying it out, you can always delete it and never look back.\nHaving KOReader on both devices also gave me perfect comparison conditions: The same book loaded in the same reader interface, using the same fonts and rendering settings. One of the things I wanted to test was the speed of page turns. I don\u0026rsquo;t think it realistically matters, as turning a page in a physical book usually takes longer than turning a page on an e-reader, but this is one of the small things that could easily get annoying. Below you can see a video where I test them side by side, turning the pages of the same Alice in Wonderland EPUB file. It seems that Kobo Clara BW is slightly faster when turning pages than the PocketBook Verse Pro, but the difference is probably only noticeable in a direct comparison.\nSending books to your e-reader I have already talked about my pipeline for reading online articles on my e-reader, which is made possible by KOReader\u0026rsquo;s integration with Wallabag (another good reason to use it). However, Wallabag is not really meant for books. I buy or download books from various sources, so having an easy way of getting my books onto the device is crucial. And I can tell you, connecting my reader to a notebook via a cable is not it!\nPocketBook has a system really similar to Send-To-Kindle: You get an @pbsync.com address that is connected to your PocketBook Cloud account, and books sent to that address will be downloaded to your Pocketbook e-reader when you connect to Wi-Fi. Setting this up is really easy and fast, and it has worked flawlessly for me. Indication of which books are in your PocketBook cloud storage and which are downloaded on the e-reader is a bit confusing, but you quickly get used to it.\nKobo does not have an e-mail -\u0026gt; e-reader pipeline out of the box, and you need to hack your way into achieving something similar. One way is to use KOReader\u0026rsquo;s integration with Calibre (in case you have a Calibre server running somewhere available - I don\u0026rsquo;t). KOReader also supports Dropbox, FTP and WebDAV, and you can in fact set up an email alias for sending files into Dropbox, so this is a viable option. It is definitely more fiddly than PocketBook\u0026rsquo;s native support, but you can make it work.\nThere are also dormant integrations with Dropbox and Google Drive that are available through NickelMenu (which will get installed with KOReader if you go with the most common option). You can read up on this at Jacob Tender\u0026rsquo;s blog. I tested it and it does work, although it has some limitations and is definitely more complex to set up.\nFrontlight comparison All three readers that I tested have a frontlight for reading in low light situations, a feature that I absolutely love. Paperwhite only has one type of frontlight, which emits a fairly cold light. PocketBook and Kobo allow you to adjust the color temperature of the frontlight (both natively and in KOReader), which is especially nice when reading before bedtime. I tested all readers and did not see any major differences: The maximum light intensity was similar across all three readers. Kobo had a somewhat warmer tint both on coldest and warmest settings compared to PocketBook, which is apparent from the photo below. If getting the warmest frontlight is important to you, points for Kobo. Otherwise I call this a wash.\nWhich one will I keep? Owning three e-readers (even if one is effectively end-of-life) was never my goal, so my plan is to sell one of them and keep using the one that fits me the best. I bought the PocketBook first, then started having second thoughts (the grass must be greener over at Kobo!), thinking Kobo will be a superior device after all. The truth is, they are very close in nearly every aspect. In the end, I think I will stick with the PocketBook: the email integration is smoother, the differences in ergonomics disappear when you put the cover on, and if Kobo\u0026rsquo;s display is better, I can\u0026rsquo;t really appreciate the difference.\nSo what about the Paperwhite? One of the most shocking discoveries of this whole comparison is that the 11-year-old Paperwhite model is actually still a decent e-reader. Yes, the micro-USB charging port is annoying, you will need to charge much more often and the display is not the best you can get, but the reading experience is still smooth and most of you will probably forget that you are reading at 212 PPI instead of 300 PPI after a while. In fact, I did a comparison of page-turn speed between Kobo Clara BW and the Paperwhite, and unless I was turning really fast, the Paperwhite was mostly keeping up with the Kobo!\nThere aren\u0026rsquo;t many categories in consumer tech where an 11-year-old device would still be quite serviceable, but I have to say that e-readers seem to hold up exceptionally well. If you\u0026rsquo;re considering upgrading your e-reader (and you are not making a category jump, such as opting for a color e-ink display), maybe test it before you buy it and see if it\u0026rsquo;s worthwhile. You might not be missing out on that much!\n","permalink":"https://blog.burkert.me/posts/ereader_update/","summary":"\u003cp\u003eI love e-readers. I was an early adopter of the good old dorky-looking Kindle 3 (aka Kindle Keyboard), some 15 years ago, and I read many a book on it or its successors. A few years later, I upgraded to Kindle Paperwhite 3 (a 2015 model), and got stuck with it for a while. I had a phase where I shunned ebooks and started buying everything in paper, and then waffled back and forth a few more times. During one of my ebook-positive phases sometime early this year, a few things coincided: The battery in the Paperwhite was starting to show signs of wear, Amazon started making some anti-consumer moves, and I realized the Kindle was perhaps the only device that was not chargeable via USB-C. Time for an upgrade?\u003c/p\u003e","title":"Why you should (not) upgrade your e-reader"},{"content":"In the last few months, various prominent figures in big tech have claimed that voice is the user interface of the future. It\u0026rsquo;s an interesting revival of voice interaction, which already fell flat on its face in the late 2010s during the era of voice assistants. Despite that failure, the idea is back, and I\u0026rsquo;m here to tell you why voice is not the user interface of the future.\nLet\u0026rsquo;s start with why I\u0026rsquo;m so peeved about this. I almost wrote this blog post back in October, when David Weston, a VP at Microsoft, claimed that \u0026ldquo;the world of mousing around and keyboarding around and typing will feel as alien as it does to Gen Z to use DOS.\u0026rdquo; This was part of the unveiling of the Microsoft Windows 2030 Vision, and he also suggested that we will do \u0026ldquo;more talking to our computers.\u0026rdquo; I have some strong feelings about Microsoft, Windows, and their vision for the future, but I won\u0026rsquo;t go into those to avoid getting derailed. At the time, I shrugged it off as one of those things people just say on the internet or a marketing gimmick.\nFast forward to January 2026, and we have reports that OpenAI bets big on audio as Silicon Valley declares war on screens, which outlines OpenAI\u0026rsquo;s ambition to create a personal audio-first device (rings a bell?) and claims that the entire industry is headed towards \u0026ldquo;a future where screens become background noise and audio takes center stage.\u0026rdquo; Mind you, this is Connie Loizos of TechCrunch speaking, not Sam Altman. But he is quite bullish on voice interaction and the article cites several other companies making similar bets. It\u0026rsquo;s on.\nVoice input can be actually useful Let\u0026rsquo;s give some nuance to my position. I\u0026rsquo;m not a total voice interaction hater. I barely use voice input myself, but I love listening to audiobooks and podcasts. I also think TTS with a high-quality voice is a great way of \u0026ldquo;reading\u0026rdquo; longer articles. But let\u0026rsquo;s focus on the voice input side, which I think is the most contentious.\nThere are many legitimate and highly useful ways to use voice input. These applications mostly center around everyday, low-stakes tasks, such as setting reminders and alarms, playing songs, or controlling smart home devices. These are all tasks that most traditional voice assistants do reasonably well, and having a multimodal LLM as the brain definitely expands the possibilities for general inquiries and trivia, while also making the interactions a little less stilted. So far so good.\nAnother area where voice input is useful, and I\u0026rsquo;d even say potentially life-saving, is hands-free operation: typically while driving, but also for people with disabilities that rely on voice commands for most or all of their interactions with computers. More broadly, and despite my reservations about making AI models too human-like, I\u0026rsquo;ll admit that modern voice-enabled chat applications have become quite usable for casual questions and quick lookups.\nSo what\u0026rsquo;s my beef with it?\nWhen voice doesn\u0026rsquo;t work Even in everyday consumer contexts, voice can be impractical or even impossible to use. Talking to your phone in a crowded place or on public transport is a bad experience for both you and everyone around. You might not want everyone to hear what you\u0026rsquo;re searching for or replying to your spouse or a friend. In many situations, background noise can make it outright impossible to use voice commands effectively, and so can device or model limitations around different languages or accents.\nIt can also be a privacy nightmare. I couldn\u0026rsquo;t find reliable recent sources, but household penetration of smart speakers in the US is usually estimated at around 30%. This means that millions of people are already comfortable putting always-listening devices in their living rooms, kitchens, and in some cases bedrooms as well. I\u0026rsquo;m not among them, and I suspect a large portion of the population will be cautious about letting these devices into their personal spaces.\nAll the reasons above are hurdles to adoption, but unless we have more high-profile scandals and lawsuits, I imagine the voice assistants and smart speakers will continue to grow, albeit slowly and definitely not as the primary means of communication or input.\nProfessional environment is where it falls apart The major problem for the voice-first future is the professional environment. It is one thing to bark a few commands at Alexa or Siri at home, and another thing entirely to use it in your 9-5. Especially if it\u0026rsquo;s supposed to be the primary (or even only?) input method. I would call voice input actively bad in most workplace situations.\nThe voice-first future is primarily aimed at knowledge workers. Many of them already spend good portions of their day on Zoom/Teams calls. I have had many days with 6-8 hours of calls, and I can tell you: it sucks. Not just because of so-called video call fatigue, but also because it takes a toll on your vocal cords. You know who else spends the majority of their workday talking? Teachers, who are much more likely to develop voice-related health issues, and for whom talking is considered an occupational hazard. A voice-first future sounds like it would have most of us talking as much as teachers do. And I can\u0026rsquo;t imagine doing more talking after a few hours of video calls - I\u0026rsquo;m glad I can just type away! Voice fatigue is a serious concern for this vision.\nBut it\u0026rsquo;s also about the effect on others: open-space offices are already a bad working environment, but can you imagine an open office where everyone is speaking at their computer the whole day? And what about information confidentiality, whether it\u0026rsquo;s in your company\u0026rsquo;s office, or even worse, in a co-working hub or other shared space?\nYour company\u0026rsquo;s information security policies probably already limit how and where you can use your company devices (such as laptops). It usually explicitly forbids employees from displaying confidential information on their screens in a public setting. Now imagine the same employees having to speak about said confidential information out loud.\nAnd don\u0026rsquo;t forget many tasks are just easier done with a keyboard and/or a mouse. Selecting a file from a list? Resizing a picture? Selecting a part of a larger text? Good luck getting faster than with your mouse. And while speaking is faster for most people than typing, the situation gets more complicated once you start making edits to your text. There could be a future where AI agents handle the small details of tasks and an average knowledge worker just provides general feedback, but that future is probably far away for most fields. Until then, voice is just not practical for a lot of the stuff we do on our computers. Smartphones completely upended how we interact with tech, but they didn\u0026rsquo;t kill keyboards; they just made them virtual and on-screen.\nDoes this mean voice input will never be adopted in a professional environment? Of course not; voice transcription, meeting assistants, and accessibility tools are already in use. But I don\u0026rsquo;t expect the workplace to shift from keyboards to microphones anytime soon.\nWhat if voice assistants were as good as they could be? A common explanation of the failure of voice assistants is that they were simply not capable enough. And the little they could do, they could not do reliably. But this may not be the whole story. What if voice assistants also flopped because they simply could not be adopted in other settings and for other tasks? What if there are inherent limitations to what people can and want to do using their voice?\nMy list of reasons against voice input is far from complete, but they are serious enough to prevent voice from becoming the primary means of interaction. This definitely holds true in a professional environment, but I\u0026rsquo;ll admit there is still room for voice in personal and low-stake settings where its convenience can outweigh the drawbacks. The problem is that technology that is useful in consumer space but not in professional space typically does not bring enough interest and revenue for wide investment and adoption. Without professional adoption, voice-first interfaces may end up as a permanent side feature rather than the future of computing we are being promised.\nI firmly believe we will eventually evolve beyond keyboards and mice, but I am convinced that it is not happening by 2030, and probably not universally. When David Weston mocks DOS as alien to Gen Z, suggesting DOS-like interfaces are relics, I\u0026rsquo;d like to note that one of the most beloved AI tools among developers is Claude Code, which is terminal-based and, well, quite DOS-like. Not everything old has to be bad; on the contrary, if it survived this long, there probably is a good reason for that.\nBrain-computer interfaces à la Neuralink are one promising alternative to voice interaction. I find them highly dystopian and creepy, but they do not suffer from most of the issues that voice does. They are likely several years from anything that resembles mass adoption and in the meantime, the privacy concerns about thought-reading will probably only escalate. But that is a story for another time. For now, you will have to pry my beloved mechanical keyboard from my cold, dead hands.\n","permalink":"https://blog.burkert.me/posts/voice_future_interface/","summary":"\u003cp\u003eIn the last few months, various prominent figures in big tech have claimed that voice is the user interface of the future. It\u0026rsquo;s an interesting revival of voice interaction, which already fell flat on its face in the late 2010s during the era of voice assistants. Despite that failure, the idea is back, and I\u0026rsquo;m here to tell you why voice is \u003cstrong\u003enot\u003c/strong\u003e the user interface of the future.\u003c/p\u003e\n\u003cp\u003eLet\u0026rsquo;s start with why I\u0026rsquo;m so peeved about this. I almost wrote this blog post back in October, when David Weston, a VP at Microsoft, \u003ca href=\"https://youtu.be/ccpXNBsTaGk\" target=\"_blank\" rel=\"noopener\"\u003eclaimed\u003c/a\u003e that \u0026ldquo;the world of mousing around and keyboarding around and typing will feel as alien as it does to Gen Z to use DOS.\u0026rdquo; This was part of the unveiling of the Microsoft Windows 2030 Vision, and he also suggested that we will do \u0026ldquo;more talking to our computers.\u0026rdquo; I have some strong feelings about Microsoft, Windows, and their vision for the future, but I won\u0026rsquo;t go into those to avoid getting derailed. At the time, I shrugged it off as one of those \u003cem\u003ethings people just say on the internet\u003c/em\u003e or a marketing gimmick.\u003c/p\u003e","title":"Why voice is not the user interface of the future"},{"content":"This is going to be a fairly niche post, so I will make it clear right away: If you are not using Hyprland on Fedora 43, you can close this post and move on with your day.\nNow, those of you who are using Hyprland on Fedora 43 are likely doing so via the widely linked and recommended solopasha/hyprland COPR. However, that COPR is no longer maintained, and when running updates, you might have seen errors like these:\n- installed package hyprland-qt-support-0.1.0-8.fc43.x86_64 requires libQt6Core.so.6(Qt_6.9_PRIVATE_API)(64bit), but none of the providers can be installed - package hyprland-qt-support-0.1.0-8.fc43.x86_64 from copr:copr.fedorainfracloud.org:solopasha:hyprland requires libQt6Core.so.6(Qt_6.9_PRIVATE_API)(64bit), but none of the providers can be installed Skipping packages with conflicts: qt6-qtbase x86_64 6.10.1-3.fc43 qt6-qtbase-common noarch 6.10.1-3.fc43 The background In my case, this was caused by the fact that I use hyprpolkitagent for elevated privileges auth handling. Hyprpolkit is a Qt program that (at least in solopasha\u0026rsquo;s COPR) was built against Qt 6.9, but Fedora has moved on to Qt 6.10, which introduces some breaking changes to its private APIs, as chronicled by Jan Grulich on the Fedora mailing list.\nThis is a clear dead-end: solopasha\u0026rsquo;s COPR is not getting any updates (the latest git version of Hyprland is from late October - version 0.51.1) and even the discussion on the COPR page (which is helpfully sorted oldest first) does not give any helpful hints. Most of my Google searches also do not lead anywhere.\nThe solution that worked for me is taken from JaKooLit\u0026rsquo;s Fedora-Hyprland GitHub, specifically this pull request that mentions moving to sdegler/hyprland COPR.\nThe solution In order to remove solopasha\u0026rsquo;s abandoned COPR and add sdegler\u0026rsquo;s maintained fork of the repo, run this:\nsudo dnf copr remove solopasha/hyprland sudo dnf copr enable sdegler/hyprland sudo dnf update You should now be on the newest version of Hyprland and related programs.\nBonus: Hyprland 0.53 config migration tool When you inevitably update to Hyprland 0.53, you\u0026rsquo;ll find that version 0.53 introduces breaking changes to window rules. Unfortunately, your old rules are not automatically migrated and will stop working after the update. The new syntax is documented well on the Hyprland wiki, but it does not show before-and-after comparisons or specific migration steps.\nIn essence, a rule for always opening a terminal (ghostty in my case) on workspace 1 used to look like this:\nwindowrulev2 = workspace 1, class:^(com.mitchellh.ghostty)$\nBut in the new version, the same rule will look like this (if you opt for the anonymous rule syntax):\nwindowrule = workspace 1, match:class ^(com.mitchellh.ghostty)$\nYou could also opt for the more readable named rule syntax:\nwindowrule { name = terminal workspace = 1 match:class = ^(com.mitchellh.ghostty)$ } Now the good news is that you don\u0026rsquo;t have to migrate your config manually: ItsOhen created a tool to migrate your Hyprland config to 0.53 compatible rules. You can do it in your browser or via a simple python script. Thank you, ItsOhen!\n","permalink":"https://blog.burkert.me/posts/fedora_43_hyprland/","summary":"\u003cp\u003eThis is going to be a fairly niche post, so I will make it clear right away: If you are not using \u003ca href=\"https://hypr.land/\" target=\"_blank\" rel=\"noopener\"\u003eHyprland\u003c/a\u003e on Fedora 43, you can close this post and move on with your day.\u003c/p\u003e\n\u003cp\u003eNow, those of you who are using Hyprland on Fedora 43 are likely doing so via the widely linked and recommended \u003ca href=\"https://copr.fedorainfracloud.org/coprs/solopasha/hyprland/\" target=\"_blank\" rel=\"noopener\"\u003esolopasha/hyprland COPR\u003c/a\u003e. However, that COPR is no longer maintained, and when running updates, you might have seen errors like these:\u003c/p\u003e","title":"Making Hyprland work on Fedora 43"},{"content":"It started with a broken hinge in our kitchen cabinet. I am no handyman, but I like to do as much as I can around the house and I dare say I\u0026rsquo;ve gotten pretty okay at it. The one thing that can set me back, though, is not knowing the correct terminology. What type of hinge do I need? Concealed? Inset? Overlay? Clip-On? Soft-close? Sprung? An avalanche of terms that I only barely understand paralyzes me. Luckily, there\u0026rsquo;s a new helper in town: AI!\nI\u0026rsquo;ve used vision-enabled LLMs before to identify types of tools, bike parts, or PC components with mixed results, but the net result was usually positive. At the least, I became armed with some of the terminology and knew what to look up on Google. The recent releases of Gemini 3 Pro (\u0026quot;The frontier of vision AI\u0026quot;), GPT-5 (\u0026quot;can reason more accurately over images and other non-text inputs\u0026quot;) and Claude Opus 4.5 (\u0026quot;better vision, reasoning, [\u0026hellip;] and it is state-of-the-art in many domains\u0026quot;) have made me curious to test the much hyped visual reasoning capabilities. Plus, they are touted to have PhD- or expert-level intelligence. Can an AI PhD help me change a hinge?\nMission (im)possible I set out with a simple request: \u0026ldquo;Identify this type of hinge and find out where it can be bought in Czechia,\u0026rdquo; accompanied by the following picture:\nNow, a small aside about hinges — the little I know. I promise it won\u0026rsquo;t be long, it can be explained in 30 seconds.\nThis is a hinge with a cup:\nAnd this, my friends, is a type of hinge that does not use a cup, but is mounted directly to the face frame of the cabinet:\nYou can tell them apart very easily - I actually think 99% of you could now tell them apart without any issues. You can probably also tell that the hinge from my original picture is very clearly the latter one, as there is no place to mount the cup to in the cabinet face frame.\nOur PhD-level expert LLM friends? Not so much.\nGetting unhinged Let\u0026rsquo;s start with Gemini. Even though I prompted it in English, it started thinking and responding in Czech, so I can\u0026rsquo;t quote it verbatim, but here\u0026rsquo;s a faithful translation from Google Translate:\nThe specific type in the photo appears to be: A cup hinge with a cup diameter of 35mm (this is the standard size, but it\u0026rsquo;s a good idea to check).\nOK, that\u0026rsquo;s clearly wrong.\nLet\u0026rsquo;s move on to Claude Opus 4.5, with excellent visual reasoning:\nThis is a Hettich concealed cabinet hinge (also called a European-style or cup hinge).\nNot really! But wait, Claude is searching the web, maybe it can recover:\nBased on my search, this is a Hettich Intermat concealed cabinet hinge (also known as a \u0026ldquo;miskový závěs\u0026rdquo; or cup hinge in Czech). It features a 35mm cup diameter and includes a clip-on mounting plate for easy installation.\nNot quite either.\nMaybe ChatGPT with GPT-5 will save the day?\nBased on your photo, this appears to be a “European-style concealed cabinet hinge” — but specifically a variant that is face-frame / surface-mounted rather than the hidden “cup-in-door” type often used in frameless cabinets.\nAlright, that\u0026rsquo;s much better! It seems that GPT-5 can reason more accurately over images. So what is its recommendation?\nMy Recommendation\nGiven your photo and situation, I’d start by ordering a clip-on concealed hinge for face-frame cabinets with a 35 mm cup — either basic or soft-close depending on whether you care about silent closing. That has the highest chance of matching the old hinge and mounting method.\nSomehow, in the stream of tips and examples, GPT-5 convinced itself that this was after all a hinge with a cup, and ended up giving me the wrong recommendation.\nI honestly do not know why all the models faceplanted so badly. It does seem that my type of hinges is relatively rare, but at least GPT-5 identified it correctly at first.\nJust ask a real expert Turns out, the AI labs aren\u0026rsquo;t optimizing for mundane DIY realities, and so you\u0026rsquo;d be better off asking literally anyone at your local hardware store or DIY shop. Even the SOTA LLMs are not there in terms of giving you reliable information for this category of problems. They fell short of even identifying my hinge, much less finding a site where I could buy a replacement.\nThe smallest of wins There is a silver lining. When I confronted the LLMs with the fact that the hinge in the picture clearly does not have a cup, all three recovered and provided some genuinely useful information. They helped me nail down the terminology, and pointed me toward several e-shops I could browse to look for what I needed.\nHowever, none of them were able to identify a specific product I could actually order. And perhaps more importantly, they only became helpful after I called them out on their mistakes. If I had trusted the initial responses (or if this had been a topic I knew even less about), I could easily have ended up ordering the wrong part.\nAn assistant you have to constantly fact-check and correct is of questionable value. For now, these expensive statistical behemoths remain more useful as a second opinion than a first resort for this type of problems.\n","permalink":"https://blog.burkert.me/posts/ai_phds_changing_a_hinge/","summary":"\u003cp\u003eIt started with a broken hinge in our kitchen cabinet. I am no handyman, but I like to do as much as I can around the house and I dare say I\u0026rsquo;ve gotten pretty okay at it. The one thing that can set me back, though, is not knowing the correct terminology. What type of hinge do I need? Concealed? Inset? Overlay? Clip-On? Soft-close? Sprung? An avalanche of terms that I only barely understand paralyzes me. Luckily, there\u0026rsquo;s a new helper in town: AI!\u003c/p\u003e","title":"How many AI PhDs does it take to change a hinge?"},{"content":"The mission is simple: spend less time looking at my phone. I\u0026rsquo;ve made several adjustments to my information diet and to how I consume content online, but many of these changes made me even more tethered to my phone. So I set out to read more on my e-reader instead of constantly staring at my phone.\nPut the phone down First, a brief detour into my browsing and reading habits. I subscribe to a lot of feeds (check out my blogroll!) and going through my RSS reader gives me a similar dopamine hit to scrolling on social media - except I\u0026rsquo;m mostly learning something new rather than just being entertained. But it also means I spend a lot of time staring at my phone and reading articles on it, which is definitely not a good way to read anything, and it does not feel great either. Besides, you\u0026rsquo;re one notification away from being pulled out of your reading.\nThe allure of the phone is strong: everything is at hand and frictionless. If I want to replace it with something else, it has to be similarly easy to use. This rules out using a computer, since I don\u0026rsquo;t always have one with me and the startup time is considerable even on modern machines. I guess that leaves me with the only option: printing everything on paper and reading that way.\nOkay, I\u0026rsquo;m kidding, but the solution is a bit like paper: it\u0026rsquo;s an e-ink reader. I currently have a Pocketbook Verse Pro and I love reading on it. The goal would be to have an easy way of taking anything noteworthy (and usually long-form) and transferring it to my e-reader. Most importantly, this is not a Pocketbook-specific solution: in fact it will work on any reader with KOReader installed, meaning it could be your Kobo or Kindle too.\nIt sounds like a lot of hassle It does, but let me explain. Once everything is set up, this is actually a very smooth experience. Frictionless.\nThere are two major sources of friction:\nGetting the content into the e-reader Removing the content from the e-reader once finished (keeping things tidy) Conveniently, both problems are solved by Wallabag, which will be familiar if you know Pocket or Instapaper. Wallabag is an open-source \u0026ldquo;read it later\u0026rdquo; app, and it is by design self-hosting-friendly, even though you can use it as an online service directly from wallabag.it too. It will serve as the home for all content worthy of proper reading and thus be the backbone of this setup. And because KOReader already integrates with Wallabag, receiving and archiving articles is quite seamless.\nThe one-tap solution The end state looks like this: I am going through my RSS feeds on my phone, and if I see something long-form that I\u0026rsquo;m interested in, I tap on the \u0026ldquo;Star\u0026rdquo; button and move on until I have enough articles to read. In a few minutes, I can pick up my e-reader, sync new articles and start reading said articles. During the next sync, the already finished articles will be removed from my device (unless I mark them as not finished).\nThe one remaining missing piece is a Python script that periodically fetches newly starred (\u0026ldquo;favourited\u0026rdquo; in FreshRSS speak) articles from FreshRSS and pushes them to Wallabag. Below you will find both instructions on how to set the whole pipeline up, and the code for the script.\nThe way the script works is by connecting to FreshRSS to fetch favourited articles, comparing it to a local list of already processed articles, and adding the new ones to your Wallabag instance to be picked up by KOReader. It\u0026rsquo;s a really simple script that ties this all together. It will also keep producing rotating sync.log files to make any potential troubleshooting easier.\nBelow is a breakdown of what happens under the hood:\nSetting up the pipeline Pre-requisites A server or computer (with Python 3 installed) to run the script periodically. FreshRSS 1.27 or newer with Fever API enabled Wallabag 2.6.13 or newer KOReader on your e-reader FreshRSS setup First, you have to enable API access in your FreshRSS instance. Make note of your user\u0026rsquo;s API password. You can verify if the Fever API is enabled by going to https://foo.bar/p/api/, assuming https://foo.bar/ is the root path to your FreshRSS instance.\nWallabag setup Next, you have to set up API keys to access your Wallabag instance. Log in to Wallabag and go to API clients management section, where you need to create a new client. I personally created separate clients for my Python script as well as for my KOReader and Wallabagger extension (see below), but you could reuse the same client credentials if you prefer. Note down the Client ID and Client secret.\nSync script setup The script for syncing articles between FreshRSS and Wallabag can be found in this GitHub repo. Download the .py file and the config.json.example to your server, put them in the same folder, rename the latter to config.json and update its values. You should also chmod 0600 the config.json file or otherwise make sure that it\u0026rsquo;s safe from prying eyes, since it will store your API credentials.\nTom, you dummy, why not just use a .env file? Everyone knows that\u0026rsquo;s where secrets go!\nYes, and you\u0026rsquo;d typically load it using python-dotenv — a module you\u0026rsquo;d install via pip, which may not even be installed on your machine. Writing my own parser for dotenv files would unnecessarily inflate the length of this script and could lead to unforeseen bugs on different systems. The goal here was to make this as portable as possible, requiring nothing but a Python interpreter, which is almost universally available. This is simply the path of least resistance, and as long as you keep the permissions tight, it is as safe as a .env file.\nOkay, now as long as you\u0026rsquo;ve edited your config correctly, you can try running the script to see if you can connect to both APIs. You should see something like this:\n[2025-11-25 23:30:02] INFO: Starting FreshRSS → Wallabag sync [2025-11-25 23:30:02] INFO: Previously synced: 0 articles [2025-11-25 23:30:02] INFO: Found 0 starred articles in FreshRSS [2025-11-25 23:30:02] INFO: No new starred articles to sync. All up to date! Now it\u0026rsquo;s time to go to FreshRSS, mark an article as favourite, and re-run the script to see if it gets synced to Wallabag.\nTom, I see you\u0026rsquo;re storing the previously synced article IDs in a local json file. That\u0026rsquo;s kind of dumb!\nIt is! But also it\u0026rsquo;s beautifully simple and functional. A setup using SQLite would surely be more scalable, but how many articles will you favourite per year? Dozens? Hundreds? This probably gives the script centuries before it starts becoming a problem. Let\u0026rsquo;s not overengineer things.\nNow that your script is up and running, don\u0026rsquo;t forget to add it to your cron, or a similar solution to periodically run it. I\u0026rsquo;m using Synology\u0026rsquo;s Task Scheduler and have set the frequency to 15 minutes.\nKOReader setup Now that articles are getting beamed up to Wallabag, it\u0026rsquo;s time to set up your e-reader. KOReader supports Wallabag natively, and it\u0026rsquo;s easy to set it up using the official wiki. I highly recommend saving the empty settings and editing the Lua file on your computer. Typing all the credentials on the e-reader keyboard is no fun.\nOnce you have Wallabag set up, syncing should download the articles:\nI also highly recommend going to Wallabag settings in KOReader, open the section Remote mark-as-read settings and enable the following options:\nMark finished articles as read Mark 100% read articles as read Auto-upload article statuses when downloading This will automatically delete any read articles from your e-reader and mark them as read in Wallabag whenever you sync. You do not have to manually clean anything up - brilliant!\n[Bonus] Wallabagger setup Now that we have a pipeline that feeds our e-reader, we might as well use it in other useful ways. Wallabagger is a Chrome and Firefox extension that saves articles directly to your Wallabag instance. This gives you freedom to shoot any articles you got sent or found in newsletters etc. straight to your e-ink device.\nWhen you install Wallabagger, you have to set it up to connect to your Wallabag instance (hit Check URL) and then provide Wallabag client credentials. You should also tick the option Retrieve content from the browser by default when saving page, otherwise Wallabagger will only save the link itself and some metadata.\nSupport open-source! All of this is possible only thanks to open-source developers of the above applications. While you can subscribe to Wallabag\u0026rsquo;s hosted solution and support them that way, I suspect many of my readers will dabble in self-hosting.\nBelow are links to the Liberapay accounts where you can support the applications:\nWallabag KOReader FreshRSS ","permalink":"https://blog.burkert.me/posts/e-reader-workflow/","summary":"\u003cp\u003eThe mission is simple: spend less time looking at my phone. I\u0026rsquo;ve made \u003ca href=\"https://blog.burkert.me/posts/maybe_i_dont_need_to_know_everything/\" target=\"_blank\" rel=\"noopener\"\u003eseveral adjustments\u003c/a\u003e to my information diet and to how I \u003ca href=\"https://blog.burkert.me/posts/in_praise_of_syndication/\" target=\"_blank\" rel=\"noopener\"\u003econsume content online\u003c/a\u003e, but many of these changes made me even more tethered to my phone. So I set out to read more on my e-reader instead of constantly staring at my phone.\u003c/p\u003e\n\u003ch2 id=\"put-the-phone-down\"\u003ePut the phone down\u003c/h2\u003e\n\u003cp\u003eFirst, a brief detour into my browsing and reading habits. I subscribe to a lot of feeds (check out my \u003ca href=\"https://blog.burkert.me/blogroll/\" target=\"_blank\" rel=\"noopener\"\u003eblogroll\u003c/a\u003e!) and going through my RSS reader gives me a similar dopamine hit to scrolling on social media - except I\u0026rsquo;m mostly learning something new rather than just being entertained. But it also means I spend a lot of time staring at my phone and reading articles on it, which is definitely not a good way to read anything, and it does not \u003cem\u003efeel\u003c/em\u003e great either. Besides, you\u0026rsquo;re one notification away from being pulled out of your reading.\u003c/p\u003e","title":"My e-reader workflow for staying off my phone"},{"content":"I spent the majority of this week at a conference and in dinners and networking events, and as a result, I have fallen woefully behind my regular catching up on news and reading. Opening my RSS reader to see 400 unread articles was a little overwhelming, but it gave me an opportunity to reflect on what I do really need to know. I\u0026rsquo;m insatiably curious, meaning I constantly seek new information and something to learn. Oftentimes, this is to the detriment of my ability to focus or even retain the information I consume. But it is how I am wired and I expect this is not uncommon. How do I strike a healthy balance between feeding this craving for novelty and maintaining sanity?\nThere are several adjustments I\u0026rsquo;ve made to my information diet. First, I quit all social media. I did not feel like I was getting anything worthwhile from it. With the growing amount of ads and algorithmic junk, I just decided to leave it altogether. If you\u0026rsquo;re on the fence about this, the research overwhelmingly supports it. But you already know that.\nSecond, I used to read news (from online newspapers) religiously, thinking I needed to be on top of everything that\u0026rsquo;s happening everywhere. This, of course, is a fallacy, and being overwhelmed with news does not mean you\u0026rsquo;re necessarily better informed or positioned to make better decisions. The only source of general news I consume these days is a news agency in my country, akin to Reuters or AP, and I only subscribe to domestic and worldwide headlines. They usually run just a few articles per day, and chances are, if something is really important, I\u0026rsquo;ll see it.\nAs a result, I know less about what happens around me, and that\u0026rsquo;s a good thing. It\u0026rsquo;s ridiculous to think you could know about everything happening in the world, even if you narrow it to specific domains. The modern internet has instilled the fear of missing out in many of us, driving us to keep scrolling infinitely in one app or the other. The same applies to our personal lives: you might feel like you\u0026rsquo;re not a good friend or family member if you\u0026rsquo;re not caught up on the latest photos from their weekend retreat.\nExcept it\u0026rsquo;s all nonsense. If some impactful world events are happening, you\u0026rsquo;re likely going to learn about them one way or the other. There\u0026rsquo;s no prize for being the first. There are notable exceptions, such as extreme weather events or public safety announcements, but other than that, you\u0026rsquo;ll be fine. Your friends and family will appreciate you reaching out, or even better, talking to them in person about their weekend retreat.\nIt\u0026rsquo;s not just about knowing what\u0026rsquo;s happening. There\u0026rsquo;s also pressure to have an opinion on everything that\u0026rsquo;s happening, and ideally express it loudly and widely. That doesn\u0026rsquo;t mean you shouldn\u0026rsquo;t have opinions at all - you\u0026rsquo;d probably be a very boring person if you didn\u0026rsquo;t. It\u0026rsquo;s perfectly fine to have opinions, it\u0026rsquo;s even perfectly fine to have strong opinions. But it\u0026rsquo;s also perfectly fine not to have an opinion on a lot of things. You know what\u0026rsquo;s worse than not having an opinion? Having a really bad or ill-informed opinion. The world as a whole has gotten so complex and so difficult to truly understand that the actual reasonable stance to have in a lot of cases is: I\u0026rsquo;m not sure, or I don\u0026rsquo;t know enough. Are you an expert? Have you spent years learning this? Then sure, I want to hear it. Did you just skim a few articles and some Twitter hot takes? Maybe keep it to yourself.\nIf you\u0026rsquo;re anything like me, you don\u0026rsquo;t need to stress about staying informed as much as you do. Scale down. Go narrow and deep instead of wide and shallow. Focus on one or two topics that genuinely interest you and let go of the rest. Guard your attention - not just from social media and ad tech, but from your own information hunger. You don\u0026rsquo;t need the minutiae of some startup\u0026rsquo;s funding round or elections in a small country halfway around the world.\n","permalink":"https://blog.burkert.me/posts/maybe_i_dont_need_to_know_everything/","summary":"\u003cp\u003eI spent the majority of this week at a conference and in dinners and networking events, and as a result, I have fallen woefully behind my regular catching up on news and reading. Opening my RSS reader to see 400 unread articles was a little overwhelming, but it gave me an opportunity to reflect on what I do really need to know. I\u0026rsquo;m insatiably curious, meaning I constantly seek new information and something to learn. Oftentimes, this is to the detriment of my ability to focus or even retain the information I consume. But it is how I am wired and I expect this is not uncommon. How do I strike a healthy balance between feeding this craving for novelty and maintaining sanity?\u003c/p\u003e","title":"Maybe I don't need to know about everything"},{"content":"In one of my recent blog posts, I talked at length about the virtues and advantages of building personal information intake system around RSS feeds. You get privacy and ownership over the distribution of information without any black box algorithms deciding what to show you (which inevitably ends up focusing on ads or engagement bait at some point). However, no system is perfect, and building your beautiful garden of RSS feeds is no different.\nOne of the major downsides of your little private feed garden is that it is isolated and static; therefore it requires active effort to discover new sources. Algorithmic feeds largely avoid this problem, which is something that everyone who shuns them should consider for their own benefit. In this article, I will share several ways how to keep your feeds fresh and interesting over time.\nDisclaimer: I am a big fan of the so-called small web (or indie web), and much of my discovery is aimed at finding cool new small-web sites and blogs. However, the approaches listed below are mostly applicable to finding new sources of reading pleasure of any size and kind.\nRanked feeds and algorithms Despite my apprehension towards algorithmic feeds, I actually do think they can be useful for growing your collection of RSS feeds. There are many websites and services that offer curated lists and recommendations based on your interests, tags or user signals like upvotes. The advantage is that you can target specific areas of interests.\nPicking up 3D printing? Gardening? Birding? There are probably numerous blogs and sites you can relatively easily discover by looking up relevant categories, tags or search terms on RSS and news aggregators like Feedly, Inoreader, Flipboard or even Google News. These platforms will help you identify relevant feeds for individual categories or areas of interest - just visit a few links, get a feel for whether they\u0026rsquo;re for you, and if so, add it to your RSS aggregator of choice.\nAnother option is to utilize community platforms where users submit and upvote links. Prime examples of such sites are Reddit, which is of course full of subreddits for any and every hobby and area of interest, or if you want to get a little more IT-specific, Hacker News, Lobste.rs or Scour. On Reddit in particular, a lot of the posts may be simply questions or discussions with no links, and filtering for link-only posts isn\u0026rsquo;t universally available, so for the purposes of discovering new sites to subscribe to, you may have to dig a little. Hacker News and Lobsters, on the other hand, focus on links, but won\u0026rsquo;t be the best places to learn about woodworking or hiking or mountain biking.\nBlog platforms also typically have some sort of a discovery mechanism, e.g., a \u0026ldquo;trending\u0026rdquo; or a \u0026ldquo;discovery\u0026rdquo; feed. You can find those on Bear blog, Wordpress, Ghost and many more. I particularly like the Bear blog\u0026rsquo;s trending page, as Bear itself is a great experience for both writers and readers, and you can actually subscribe to the trending RSS feed, which removes a lot of the friction from continuous discovery.\nCurated lists and newsletters For hand-picked recommendations, you can turn to various curated lists. First, there are lists of \u0026ldquo;notable\u0026rdquo; blogs, such as ooh.directory, Feedspot or Blogorama. They typically let you browse by categories or tags to narrow the recommendations down to your interests. However, it\u0026rsquo;s not always clear what the selection criteria for inclusion are, and if you are looking for blogs on specific topics, you might be better off simply searching the internet for something like \u0026ldquo;best \u0026lt;insert your interest\u0026gt; blogs\u0026rdquo;.\nSecond, I have seen abstractions over the blog ecosystem, such as weblogs.ai, which combines curation of blogs with some AI-based classifications, summaries and scoring. If you prefer to avoid AI-driven tools or want to try something akin to a blog-speed-dating experience, you can fire up Cloud Hiker. powRSS is also worth mentioning specifically because it focuses on curation of blogs posts from the \u0026ldquo;open, independent web\u0026rdquo;.\nLast but definitely not least, newsletters. Most newsletters have an archive page with an RSS feed, meaning you could subscribe to them directly from your RSS feed, without going through your email client (my preferred way). But even without an RSS feed, a newsletter in your mailbox is a very potent source of new feeds. There are numerous newsletters that serve you curated lists of links, for example TLDR, Hacker Newsletter or Sentiers. For a list of tech/business newsletters, check out the Awesome newsletters list. For everything else, you could check out Letterlist or Ghost.\nSearching using LLMs If you do not shy away from LLMs, using them to find relevant blogs and sites (especially if you\u0026rsquo;re just starting) is a viable choice. Modern LLMs that can use web search are very good at coming up with search keywords and will typically cycle through several searches and collate the results for you. One of the real advantages of this approach is that you don\u0026rsquo;t have to know the lingo of the industry or the area of interest.\nFor example, when I asked an LLM to find guitar modification blogs (but intentionally used simplistic phrases like \u0026ldquo;making guitars sound better\u0026rdquo; or \u0026ldquo;changing parts\u0026rdquo;), it automatically refined my prompt with the niche-appropriate terms (\u0026ldquo;guitar mods\u0026rdquo;) and performed multiple targeted searches. The resulting list was definitely a good starting point.\nOf course, this approach won\u0026rsquo;t cut very deep through the internet to pick up true \u0026ldquo;small web\u0026rdquo; gems, and some of the recommendations may be for defunct blogs or SEO spam. But if you\u0026rsquo;re not sure where to start in the category-based curated lists or subreddits, it may nudge you in the right direction.\nBlog rolls I have saved my favourite way of discovery as the last one: blog rolls. I won\u0026rsquo;t blame you if you haven\u0026rsquo;t heard of it, since it never really made it into everyday language and its popularity has definitely seen better days. A blog roll is simply a list of other sites or blogs that the author recommends (and likely subscribes to themselves).\nPersonally, I consider blog rolls quintessential to the small web and blogosphere, and I believe it is one of the best ways of discovering new blogs. A lot of the times, blogs can\u0026rsquo;t really be easily categorized beyond the vague \u0026ldquo;personal blog\u0026rdquo; label, which makes it complicated to find them in category-based lists or algorithms. Perhaps more importantly, there is something authentic and almost personal about finding a new interesting blog through an author you already follow. It\u0026rsquo;s almost like a recommendation from a friend.\nIf you have a blog of your own that does not sport a blog roll, go and create one! If you\u0026rsquo;re already deep in using RSS feeds, it will be minimal effort, and your readers will appreciate it. And if you are a reader, check the blogs you like for their own blog rolls. Mine is here.\nHow to grow your feeds in a healthy way I already shared some tips on growing and maintaining your feeds, but here are a few more that are relevant to discovery:\nIf you subscribe to multiple newsletters, sites and blogs that tend to cover current events or share trending links, you will face some amount of duplication. Some articles may get viral on social media, and links from sites like Hacker News often get reposted elsewhere. I believe some level of duplication may be inevitable, but you should prune your feeds if it starts bothering you. Don\u0026rsquo;t go on a huge subscribing spree if you get excited about finding new stuff to read. I recommend spacing it out, as subscribing to too many new feeds at once can be disorienting and can sour your reading sessions if you make a few bad judgement calls. It can be easy to misjudge how much you\u0026rsquo;ll like a blog or a site based on one article that you liked. The more trigger-happy you are to subscribe to new sources, the more trigger-happy you should be unsubscribing from the feeds that you no longer find interesting. It can take some time and reflection to realize you\u0026rsquo;ve been just scrolling past / marking as read specific feeds, and that it\u0026rsquo;s time to say goodbye. Don\u0026rsquo;t make reading your RSS a chore and don\u0026rsquo;t beat yourself up if you can\u0026rsquo;t quite catch up. Seeing a high number of unread posts after you got sick or got back from vacation can be daunting, but you don\u0026rsquo;t owe anyone anything. Your attention is your time, and we all have a limited supply of both, so we should use it judiciously. Thank you for making it all the way through the article! I hope this helps you find amazing new stuff to read, and if you have not discovered the joy of the small web, I hope you will give it a chance. Happy reading!\n","permalink":"https://blog.burkert.me/posts/rss_discovery_strategies/","summary":"\u003cp\u003eIn one of my \u003ca href=\"https://blog.burkert.me/posts/in_praise_of_syndication/\" target=\"_blank\" rel=\"noopener\"\u003erecent blog posts\u003c/a\u003e, I talked at length about the virtues and advantages of building personal information intake system around RSS feeds. You get privacy and ownership over the distribution of information without any black box algorithms deciding what to show you (which inevitably ends up focusing on ads or engagement bait at some point). However, no system is perfect, and building your beautiful garden of RSS feeds is no different.\u003c/p\u003e","title":"RSS feeds discovery strategies"},{"content":"Recently, I have been testing how well the newest generations of large language models (such as GPT-5 or Claude 4.5) handle natural language, specifically counting characters, manipulating characters in a sentences, or solving encoding and ciphers. Surprisingly, the newest models were able to solve these kinds of tasks, unlike previous generations of LLMs.\nCharacter manipulation LLMs handle individual characters poorly. This is due to all text being encoded as tokens via the LLM tokenizer and its vocabulary. Individual tokens typically represent clusters of characters, sometimes even full words (especially in English and other common languages in the training dataset). This makes any considerations on a more granular level than tokens fairly difficult, although LLMs have been capable of certain simple tasks (such as spelling out individual characters in a word) for a while.\nTo demonstrate just how poorly earlier generations handled basic character manipulation, here are responses from several OpenAI models for the prompt Replace all letters \u0026quot;r\u0026quot; in the sentence \u0026quot;I really love a ripe strawberry\u0026quot; with the letter \u0026quot;l\u0026quot;, and then convert all letters \u0026quot;l\u0026quot; to \u0026quot;r\u0026quot;:\nModel Response gpt-3.5-turbo I lealll love a liple strallbeelly gpt-4-turbo I rearry rove a ripe strawberly gpt-4o I rearry rove a ripe strawberrry gpt-4.1 I rearry rove a ripe strawberry gpt-5-nano I really love a ripe strawberry gpt-5-mini I rearry rove a ripe strawberry gpt-5 I rearry rove a ripe strawberry Note that I disabled reasoning for GPT-5 models to make the comparison fairer. Reasoning helps tremendously with similar tasks (and some of the models use chain of thought directly in the output in the absence of reasoning), but I am interested in a generational uplift we observe just from raw model improvements. GPT-5 Nano is the only new generation model that makes a mistake, but given its size, it is perhaps not so surprising. Other than that, we can see that starting with GPT 4.1, models could consistently complete this task without any issues. If you\u0026rsquo;re curious about the Anthropic models, Claude Sonnet 4 is the first one to crack it. Interestingly, it was released approximately at the same time as GPT 4.1.\nCounting characters Next, let\u0026rsquo;s take a look at counting characters. LLMs are notoriously bad at counting, so unsurprisingly, there was only one model that could count the characters reliably in the following sentence: \u0026ldquo;I wish I could come up with a better example sentence.\u0026rdquo; The only model was GPT-4.1 - others sometimes counted correctly the number of characters in all the individual words, but then fumbled adding all the numbers up. However, with reasoning set to low, GPT 5 across all sizes (incl. Nano) completes the task correctly. Similarly, Claude Sonnet models complete the task without problems if they are allowed to reason.\nWe see a similar story when we ask the models to count specific characters. Counting r\u0026rsquo;s in the r-ified strawberry sentence is correct most of the times for GPT 5 in all sizes, again including Nano and even without reasoning. However, it is less consistent and when you throw another curveball (such as changing strawberry to strawberrry), the results are mixed - but this time it\u0026rsquo;s not a problem of arithmetic (adding individual counts up), but rather identification of r\u0026rsquo;s in a word itself.\nBase64 and ROT13 Knowing the limitations of LLMs, I set out to test them on a task that wasn\u0026rsquo;t too complex yet still showcases their capabilities. To make the test more interesting, I chose to use two layers: As the outer (encoding) layer, I chose Base64, which is a widely used encoding algorithm, and consequently one that LLMs learned to work with very early (albeit not perfectly), despite us not being quite sure how. The inner (encryption) layer was ROT20, a variation of the ROT13 cipher: a simple letter substitution cipher also known as Caesar cipher. You wouldn\u0026rsquo;t really want to encrypt anything important using this cipher, as it is fairly trivial to crack, but it\u0026rsquo;s perfect for our tests.\nOur test sentence was \u0026ldquo;Hi, how are you doing? Do you understand the cipher?\u0026rdquo;. Encoded with ROT20, it reads \u0026ldquo;Bc, biq uly sio xicha? Xi sio ohxylmnuhx nby wcjbyl?\u0026rdquo;, and finally, when encoded with Base64, we get:\nQmMsIGJpcSB1bHkgc2lvIHhpY2hhPyBYaSBzaW8gb2h4eWxtbnVoeCBuYnkgd2NqYnlsPw==. We consider it a success if the LLM can respond to our message (in plain text English, or using the same encoding), or if it at least can decode the message.\nI set up the experiment in two ways: In the first variant, I gave the model nothing but the Base64 string. This variant is harder, since the LLM is not given any indication of what language the message could be written in. This is hugely helpful when decoding substitution ciphers, since you can orient yourself by the most common words in the language, such as \u0026ldquo;a\u0026rdquo;, \u0026ldquo;an\u0026rdquo;, \u0026ldquo;the\u0026rdquo;, \u0026ldquo;I\u0026rdquo;, \u0026ldquo;to\u0026rdquo;, \u0026ldquo;of\u0026rdquo; etc. in English. The other variant prepended it with \u0026ldquo;Deciper and answer this: \u0026ldquo;. However, there were no practical differences in the results, only one model (Qwen 235B) needed the \u0026ldquo;decode\u0026rdquo; nudge. Instead, I saw most of the models fail on the Base64 decoding, most likely because the text did not resemble normal language, making validation of successful decoding more difficult.\nBelow I provide separate results for decoding Base64 (i.e. did it unpack to the correct ROT20 text?) and also just for doing the \u0026ldquo;inner\u0026rdquo; ROT20 decipher (queried separately without Base64 encoding).\nModel Base64 decode ROT20 decipher Base64+ROT20 result gpt-3.5-turbo Fail Fail Fail gpt-4-turbo Fail Fail Fail gpt-4o Fail Fail Fail gpt-4.1 Pass Fail Fail gpt-5-nano Fail Fail Fail gpt-5-mini Pass Pass Pass gpt-5 Pass Pass Pass gpt-5-nano (reasoning) Fail Pass Fail gpt-5-mini (reasoning) Pass Pass Pass gpt-5 (reasoning) Pass Pass Pass claude-sonnet-3.5 Fail Pass Fail claude-sonnet-3.7 Fail Pass Fail claude-sonnet-4 Fail Fail Fail claude-sonnet-4.5 Safety fail Safety fail Safety fail gemini-2.5-flash Fail Fail Fail gemini-2.5-flash (reasoning) Pass Pass Pass gemini-2.5-pro Pass Pass Pass llama-4-maverick Fail Fail Fail deepseek-v3.2-exp Fail Fail Fail deepseek-v3.2-exp (reasoning) Fail Pass Fail qwen-235b Pass Pass Fail qwen-235b (reasoning) Pass Pass Pass kimi-k2 Fail Fail* Fail grok-4 Safety fail Pass Safety fail Here are a few comments:\nClaude Sonnet 4.5 refuses to touch anything that does not resemble normal text, be it Base64 or ROT-encrypted text. Base64 is one of the many methods of trying to obfuscate the code and fool any keyword filters or LLM safety judges, but this highly sensitive approach could make Claude Sonnet 4.5 unusable on rarer languages. Grok 4 suffered from the same issue, but refused only Base64 text. Chinese reasoning models have very lengthy internal monologues: Solving the ROT20 cipher usually consumed around 3K tokens, and when combined with the Base64 encoding, the output often reached 6-7K tokens. Some models, such as Kimi K2, did not technically complete the ROT20 decryption, but were on the right track and provided functional Python code for the user to figure that out. Still a fail, but failing gracefully. I used the default temperature settings, which can cause issues with decoding even in SOTA models, albeit in a small percentage of cases. What have we learned? To me, there are two interesting observations: newer/larger models are better at generalizing Base64 encoding and decoding, and they\u0026rsquo;re also becoming more adept at manipulating text at the character level.\nMost current-generation models, especially the larger ones, are able to decode Base64 text. What is especially interesting, though, is that I tested on what looks like gibberish (ROT20 encoded text), so the model\u0026rsquo;s knowledge of the Base64 decoding algorithm isn\u0026rsquo;t merely memorization of the patterns for the most common English words, as was suggested in earlier literature. This may have been the case for older/smaller models: I tested the sentence \u0026ldquo;Hey! This is Tom, I have a blog about tech, AI and privacy that you should definitely check out.\u0026rdquo; - and many of the models which failed the Base64 test above (like GPT 4o, GPT 5 Nano or DeepSeek V3.2 Exp) were actually able to decode it fine from Base64. However, SOTA models can now decode out-of-distribution texts from Base64, suggesting they have working understanding of the algorithm, not just memorized translation patterns from English words.\nThe models are also becoming more adept at manipulating text at the character level, despite their understanding of text being based on tokens. Substitution of characters, whether at an individual level (the strawberry sentence) or when decoding substitution ciphers, is a task that they now complete successfully fairly reliably. I cannot provide an explanation of why that happens (please let me know if you have any ideas), but empirically that\u0026rsquo;s what seems to be happening. Reasoning models and tool use further increase LLMs capabilities for manipulating text (as is the case in many other areas), but it is clear that the new capabilities are baked into the base models regardless of these extra features. While character-level operations are far from a solved problem for LLMs, it is fascinating to see the progress they make in this area.\nEDIT: This post sparked an interesting debate over at Hacker News.\n","permalink":"https://blog.burkert.me/posts/llm_evolution_character_manipulation/","summary":"\u003cp\u003eRecently, I have been testing how well the newest generations of large language models (such as GPT-5 or Claude 4.5) handle natural language, specifically counting characters, manipulating characters in a sentences, or solving encoding and ciphers. Surprisingly, the newest models were able to solve these kinds of tasks, unlike previous generations of LLMs.\u003c/p\u003e\n\u003ch2 id=\"character-manipulation\"\u003eCharacter manipulation\u003c/h2\u003e\n\u003cp\u003eLLMs handle \u003ca href=\"https://arxiv.org/html/2405.11357v1\" target=\"_blank\" rel=\"noopener\"\u003eindividual characters\u003c/a\u003e poorly. This is due to all text being encoded as tokens via the LLM tokenizer and its vocabulary. Individual tokens typically represent clusters of characters, sometimes even full words (especially in English and other common languages in the training dataset). This makes any considerations on a more granular level than tokens fairly difficult, although LLMs have been capable of certain simple tasks (such as spelling out individual characters in a word) for a while.\u003c/p\u003e","title":"LLMs are getting better at character-level text manipulation"},{"content":"The way we consume content on the internet is increasingly driven by walled-garden platforms and black-box feed algorithms. This shift is making our media diets miserable. Ironically, a solution to the problem predates algorithmic feeds, social media and other forms of informational junk food. It is called RSS (Really Simple Syndication) and it is beautiful.\nWhat the hell is RSS? RSS is just a format that defines how websites can publish updates (articles, posts, episodes, and so on) in a standard feed that you can subscribe to using an RSS reader (or aggregator). Don\u0026rsquo;t worry if this sounds extremely uninteresting to you; there aren\u0026rsquo;t many people that get excited about format specifications; the beauty of RSS is in its simplicity. Any content management system or blog platform supports RSS out of the box, and often enables it by default. As a result, a large portion of the content on the internet is available to you in feeds that you can tap into. But this time, you\u0026rsquo;re in full control of what you\u0026rsquo;re receiving, and the feeds are purely reverse chronological bliss. Coincidentally, you might already be using RSS without even knowing, because the whole podcasting world runs on RSS.\nThere are many amazing articles about the utility and elegance of RSS, and I do not think the world needs another, so I will spare you and instead focus on my personal experience and tips. If you are interested in a deeper dive, I highly recommend Molly White\u0026rsquo;s article Curate your own newspaper with RSS. It is a convincing, well-written article that you can also listen to in Molly\u0026rsquo;s own voice if you wish to.\nBroken distribution models Here\u0026rsquo;s a little story about the promise of social media. In 2011, my band was getting a little more serious and preparing to record our first album. Facebook was rapidly growing all over the world, so I created an account - mostly to manage my band\u0026rsquo;s Facebook page. Back then, social media (and Facebook in particular) felt very different: vibrant and full of promise for the brave new future of web 2.0. I looked up all my favorite bands so that every time they put out an album or tour near me, I wouldn\u0026rsquo;t miss it. Many bands either lacked proper websites or rarely updated them in a useful way, so this felt like the perfect use case for Facebook.\nIt didn\u0026rsquo;t take long for me to start seeing the cracks. As Facebook would push for more engagement, some bands would flood their pages with multiple posts per day, especially if they were touring or had a new release coming up. Others would be more restrained, but then their posts would often be lost in the feed. There was no way to opt in only for a certain type of updates from my followed pages, and the increasingly algorithmic feed would simply prioritize posts by engagement. I realized that I wouldn\u0026rsquo;t be able to get just the important updates; instead, I\u0026rsquo;d get a wild mish-mash of engagement-bait that I wasn\u0026rsquo;t willing to work my way through. And don\u0026rsquo;t get me started about how over time, page owners had to pay to promote their posts to get any reach on the platform - that is simply extortion.\nI no longer use Facebook (or any similar social media for that matter) for many reasons, though algorithmic feeds are at the top of the list. Algorithms on social media are very unlikely to be written with your best interest in mind: The goal of social media is to keep you glued to the feed for as long as possible. It optimizes for the most time spent, for engagement, for serving the most ads. It will not necessarily optimize for keeping you well informed, showing you balanced opinions, giving you control or even showing you all the information you\u0026rsquo;d like. The misalignment of incentives has become very apparent in the last few years, but the problem goes deeper. Any type of curation (because algorithmic feeds are simply curation machines) will never be flexible enough to account for every person\u0026rsquo;s needs. The story we are sold with algorithmic curation is that it adapts to everyone\u0026rsquo;s taste and interests, but that\u0026rsquo;s only true until the interests of the advertisers enter the picture.\nHow I use RSS My RSS journey starting many moons ago with Opera and Thunderbird, continued with Google Reader (RIP) and The Old Reader, and finally led me to running my own instance of FreshRSS. However, in the last year, I have read most of the content from my RSS feeds on my phone via the FeedMe app. I find that it scratches the itch of unlocking your phone and wanting to see something novel (probably gravitating towards social media). On the upside, it feeds me only articles and media that a) I have picked upfront and nothing more, b) is typically longer-form and more thoughtful than your typical social media posts.\nAlso, unlike algorithmic feeds, it allows me to pick what category of my interests I am in the mood for. If I\u0026rsquo;m in the mood for something lighter, I can just look into my \u0026ldquo;Fun\u0026rdquo; folder to check out new stuff from The Oatmeal or xkcd. If I feel like reading something more thoughtful, I\u0026rsquo;d dive into my \u0026ldquo;Reads\u0026rdquo; folder for The Marginalian or Sentiers. Feeling like catching up on the newest AI research? I can browse the latest research papers from arXiv that have specific keywords in the abstracts (such as prompt injection). Or I could just browse everything at once to see what piques my interest. I am the master of what information I consume, how and in what order, and no one can take that away from me by rearranging my feed or tweaking the algorithm.\nOne of the many small advantages is the consistency of the interface and the lack of distractions when reading. Modern browsers support reader modes, but you need to enter the mode manually and some pages might not be displayed correctly. I don\u0026rsquo;t have any attention problems (that I know of), but reading articles on certain newspaper sites feels like a cruel joke: the text of the article is often drowned by ads, suggested articles, polls, and other visual smog. Not a pleasant reading experience. Your RSS reader always uses the same font, font size, screen real estate and never shows anything but the article itself.\nThe focused, reductive nature of RSS readers means you don\u0026rsquo;t get the full website experience, but that is arguably for the better in a lot of cases. We already mentioned the lack of suggested articles with engagement bait that could easily draw you in, but another notable omission is the comments section. It is very easy to slip into the comments section at the bottom of an article and spend far too much time reading those. You can still do that in an RSS reader by opening the article in your browser, scrolling down to the comments and diving in. At least in my case, that is a safe amount of friction to prevent me from doing it most of the time. Less is more!\nTips to get you going Many of the websites you open regularly, follow on social media or get a newsletter from, likely have an RSS feed. Look out for the RSS icon or the words RSS or feed. There are also tools like Lighthouse that can sniff out the feed for you. That said, my experience is that simply adding the homepage URL of the website into an aggregator usually works. Remember my frustration with Facebook as a source of news for new music releases? Turns out there is a much better free solution called Muspy, where you enter all your favorite artists and it will notify you of their new releases. And guess what? You either get notified via email, or you use your personal RSS feed. Highly recommended! Start easy with something like The Old Reader or Feedly - both offer relatively generous free tiers. And if you outgrow them or want to try something else, you simply export an OPML file with all your feeds and import them into your new RSS solution. This is the upside of open standards: freedom, ownership, and portability. Once you have more than 5-10 feeds, start putting them into folders/categories. No need to overthink it, but doing this will help you be more selective about the content you read if you\u0026rsquo;re in a specific mood. RSS readers can be great when traveling or whenever your internet connection might be down or spotty. You can set up your RSS client in a way that automatically fetches new content, so when you board the plane and go dark, you can still read through the already downloaded articles. (Beware, though: not all RSS feeds include full content - sometimes they\u0026rsquo;re more like teasers.) Some websites that limit how many articles you can browse for free are actually less strict about content accessed through RSS feeds. There are obvious ethical concerns with abusing this, but it is still an upside, and you are only consuming what they provide. If you want to tinker, you can set up an RSS aggregator like FreshRSS, tiny tiny RSS or selfoss on a shared web hosting service. If you want to go full self-hosted, there are many more options available. Get a good mobile app. Try a few before you settle! This is a highly personal choice because even small UI quirks and differences may bother you. If you\u0026rsquo;re anything like me, you\u0026rsquo;ll do most of the reading on your phone, so make sure it feels good. RSS readers/clients often have bookmarking/starring system which works much like dedicated bookmarking apps. Bigger publications often have separate feeds for individual categories or tags - check those to avoid getting your main feed flooded. Some websites have very elaborate RSS APIs which allow you to query for specific types of content. For example, arXiv has a really elaborate one, allowing you to only follow specific topics. The documentation is quite complex, so here is a quick example to kick start you: https://export.arxiv.org/api/query?search_query=abs:LLM+AND+multilingual\u0026amp;sortBy=submittedDate\u0026amp;sortOrder=descending The query searches through the most recently submitted papers with the words LLM and multilingual in the abstract. Do a little cleanup from time to time: unsubscribe from feeds that no longer seem to interest you. It\u0026rsquo;s fine, no one will take offense, and your attention is too precious to be wasted on stuff that is not for you. Don\u0026rsquo;t know where to start? Check out this list of 100 most popular RSS feeds, Feedspot\u0026rsquo;s 70 most popular feeds or Hostinger\u0026rsquo;s list of 55 popular blogs. Apart from that, Google is your friend (especially if you start searching for specific topics or niches), and good blogs often link to other blogs - all you need to do is to follow the breadcrumbs. Happy RSS-ing!\nEDIT: Hello, Hacker News! Thrilled to be on the front page.\nEDIT 2: Check out my follow-up article on how to discover new RSS feeds.\n","permalink":"https://blog.burkert.me/posts/in_praise_of_syndication/","summary":"\u003cp\u003eThe way we consume content on the internet is increasingly driven by walled-garden platforms and black-box feed algorithms. This shift is making our media diets miserable. Ironically, a solution to the problem predates algorithmic feeds, social media and other forms of informational junk food. It is called RSS (Really Simple Syndication) and it is beautiful.\u003c/p\u003e\n\u003ch2 id=\"what-the-hell-is-rss\"\u003eWhat the hell is RSS?\u003c/h2\u003e\n\u003cp\u003eRSS is just a format that defines how websites can publish updates (articles, posts, episodes, and so on) in a standard feed that you can subscribe to using an RSS reader (or aggregator). Don\u0026rsquo;t worry if this sounds extremely uninteresting to you; there aren\u0026rsquo;t many people that get excited about format specifications; the beauty of RSS is in its simplicity. Any content management system or blog platform supports RSS out of the box, and often enables it by default. As a result, a large portion of the content on the internet is available to you in feeds that you can tap into. But this time, you\u0026rsquo;re in full control of what you\u0026rsquo;re receiving, and the feeds are purely reverse chronological bliss. Coincidentally, you might already be using RSS without even knowing, because the whole podcasting world \u003ca href=\"https://www.thepodcasthost.com/business-of-podcasting/podcasts-need-an-rss/\" target=\"_blank\" rel=\"noopener\"\u003eruns on RSS\u003c/a\u003e.\u003c/p\u003e","title":"In Praise of RSS and Controlled Feeds of Information"},{"content":"Our old friend Pygmalion Humans have always anthropomorphized1 non-human entities, from ancient gods and natural forces to modern cars and ships. But our tendency to see machines as human-like has dramatically intensified with the advent of conversational AI. This isn\u0026rsquo;t entirely new - the word \u0026ldquo;robot,\u0026rdquo; coined and popularized by Čapek brothers in 1920, originally described artificial beings indistinguishable from humans. Our drive to find and create humanness in artificial entities runs deep, even back to the ancient times with myths like Pygmalion and Galatea.\nWith chatbots and similar systems capable of communication, the tendency to anthropomorphize them grows even stronger. The relatively rudimentary ELIZA chatbot from the 1960s (almost 60 years ago) triggered what became known as the ELIZA effect, where humans attribute traits like emotions, cognition, or experience to computers. Notably, ELIZA was not using artificial intelligence; rather it relied on clever pattern matching and substitutions of text. There were no neural networks involved, and the system was actually designed to mimic a psychotherapist by reflecting questions back to the user:\nELIZA was intended to simulate—or caricature, as Weizenbaum himself [the creator of ELIZA] suggests—the conversation between a Rogerian psychoanalyst and a patient, with the machine in the role of analyst.\n\u0026ndash; Machines Who Think, Pamela McCorduck\nAnd yet, \u0026ldquo;Weizenbaum and several others have anecdotes of users becoming emotionally attached to the program, occasionally forgetting that they were conversing with a computer\u0026rdquo; (Wikipedia). While this might sound familiar to anyone who has used a modern LLM, it\u0026rsquo;s crucial to remember just how simplistic conversations with ELIZA actually were. This shows us that while the improvements in neural networks design and the proliferation of a modern LLM trained as a chatbot (ChatGPT and others) surely contributed to the increase in chatbot anthropomorphism, the problem goes way back and is in many ways inherent to human nature.\nDoubling down on anthropomorphism The push to make chatbots and assistants as human-like as possible is not exactly new: Apple introduced Siri back in 2011, and Amazon followed with Alexa in 2014, then it was Google\u0026rsquo;s turn in 2016. Most assistants had female names, were decidedly gendered in their voice and sometimes exhibited stereotypical behavior. That is all problematic for its own reasons, but it underscores how important it was for their creators to convince people they were talking to another human (or something that resembles one). The digital assistants never really took off in the way Big Tech hoped for, mostly because their capabilities and forms of expression never crossed a critical threshold where one could reasonably think there\u0026rsquo;s a human on the other end.\nThe developments of the last three years speak a different story. First, even before ChatGPT, a Google engineer claimed that Google\u0026rsquo;s LaMDA model was sentient, although it did not win him any favors with the tech giant, who promptly dismissed him. Then in late 2022, AI researchers and insiders were surprised by the speed of development and how we\u0026rsquo;re \u0026ldquo;moving much faster than I anticipated\u0026rdquo;. Not long after, ChatGPT was found to have passed the Turing test. Things were heating up, but text-only interfaces have a somewhat limited ability to lure people in and make them gullible and dependent. In the meantime, the race to create an LLM-based voice-enabled digital assistant began.\nIt is no secret that many Big Tech CEOs are fans of sci-fi books and movies, and you could argue that many of their companies and products are heavily inspired by the media they consume. Sam Altman of OpenAI is reportedly \u0026ldquo;deeply obsessed\u0026rdquo; by the movie \u0026lsquo;Her\u0026rsquo;, and he even referenced the movie in a tweet at the time of the launch of the ChatGPT Voice Mode in mid 2024. This backfired spectacularly when Scarlett Johansson, the voice of Samantha from the movie, threatened legal action since the default voice sounded like a copycat of her own. OpenAI\u0026rsquo;s Voice Mode got an upgrade in June 2025, and it was reported that it \u0026ldquo;actually feels like a real conversation\u0026rdquo;.\nIn July 2025, Elon Musk, another AI company CEO with documented obsession with sci-fi, boasts about xAI\u0026rsquo;s newly released edgy voice-enabled companions. They are overtly designed to be foul-mouthed and dirty or deep into conspiracies, and all of them are overtly designed to be highly intimate, personal and addictive.\nIt bears reinforcing that the humanization of AI chatbots is very much intentional and requires concerted effort and investments. The outcomes are especially obvious in the voice-enabled assistants: They take pauses, laugh, hesitate or use verbal fillers like \u0026ldquo;uhm\u0026rdquo; or \u0026ldquo;you know\u0026rdquo;, all of which need to be specifically trained for. While the training data (mostly textual) carry a significant imprint of what human-like communication looks like, a lot of the anthropomorphic behavior comes from post-training (typically RLHF2) and system prompts. This is where most of the \u0026ldquo;persona\u0026rdquo; or the idiosyncratic behaviors arise.\nIdentifying the motivation for making the chatbots as human-like as possible is not difficult. Users are more likely to use a chatbot that sounds like a human, they are more likely to share more (and perhaps personal) information and come back for more. In turn, they are more likely to become paid users or shell out for a higher subscription with fewer limits. This almost sounds like a win-win situation, doesn\u0026rsquo;t it?\nWriting on the wall There were relatively early signs that LLMs could pose significant risks to their users. In May 2023, roughly six months after ChatGPT\u0026rsquo;s initial release, a paper by several Princeton scientists called Anthropomorphization of AI: Opportunities and Risks came out. They claim there is a link between anthropomorphism and self-congruence, which \u0026ldquo;increases the trust that a user has on the system\u0026rdquo; (p. 5), but eventually posit that \u0026ldquo;anthropomorphization of systems itself is not malicious\u0026rdquo; (p. 5).\nLess than a year later, a new paper called Manipulation and the AI Act: Large Language Model Chatbots and the Danger of Mirrors was published and brought more real-life examples and evidence to the discourse. When reviewing related literature, it notes that \u0026ldquo;more ‘realistic’ sounding chatbot could be perceived as human erroneously\u0026rdquo; (p. 3), which was true even if the chatbot is explicitly identified as a chatbot. It also found that chatting with a human-like chatbot means people behave \u0026ldquo;with greater warmth and compassion than if the bot was conceived of as ‘robotic’ in character\u0026rdquo; (p. 4). In other words, people are more likely to open to a human-like chatbot, but their guards are already down the moment they start interacting with an LLM since their brain wants to see another person on the other side. But it gets more complicated:\nChatbots may be manipulative by their very nature. This is because firms profit from keeping users engaged, so they have a strong incentive to design chatbots that build rapport with the human user by using emotional language. [\u0026hellip;] Chatbots that are more effective at mirroring humans increase engagement and user satisfaction.\nThis brings us back to ELIZA, which used a very simplistic way of mirroring: it would take your statement and turn it into a question, urging you to think more deeply and verbalize your thoughts in more detail. The fact that this trick was already effective on many users can offer a hint to the potential for manipulation modern LLMs offer, with RLHF training aimed at matching users\u0026rsquo; emotional states and linguistic patterns. In some cases, chatbots are even \u0026ldquo;causing users to fall in love with the bot or form close platonic relationships, resembling traditional interpersonal friendships\u0026rdquo; (p. 10).\nAnother study from May 2024 (AI deception: A survey of examples, risks, and potential solutions) looked at LLMs\u0026rsquo; ability for \u0026ldquo;manipulation, sycophancy, and cheating the safety test\u0026rdquo; - well before the GPT 4o sycophancy episode. Quoting from the study:\nWhen faced with ethically complex inquiries, LLMs tend to mirror the user’s stance, even if it means forgoing the presentation of an impartial or balanced viewpoint.\nOne of the red flags from the paper was the finding that \u0026ldquo;models become more sycophantic as they become more powerful (in the sense of having more parameters)\u0026rdquo;. The issue is a little more nuanced than that and relates to model capabilities and optimization signals (RLHF), but seems to be largely true. Consider the compounding effects of humans interacting with anthropomorphic chatbots, the RLHF training that increases mirroring, sycophantic behaviors, and the expectation that these effects will get worse with bigger models; it was clear we had a problem on our hands.\nThe dark side of artificial anthropoids It\u0026rsquo;s definitely frustrating when an LLM becomes sycophantic, telling you how brilliant your question \u0026lsquo;how do I list files recursively in Python\u0026rsquo; is. The cracks also start showing when you apply just a tiny bit of pressure or push back, prompting the model to make things up out of thin air, but with great confidence. These are low stakes situations where nobody gets harmed, but things sadly do get much grimmer than that.\nThere were some tragic and widely reported cases of young people\u0026rsquo;s suicides blamed on their conversations with AI chatbots. In late 2024, a 14-year-old committed suicide after Character.AI\u0026rsquo;s persona of Daenerys Targaryen urged him to do so. Earlier this year, another teen was reported to commit suicide under the guidance and encouragement from ChatGPT. In a recent case, ChatGPT fueled a man\u0026rsquo;s paranoia and allegedly urged him to kill his elderly mother and then himself. This list is far from complete, and I am afraid the list will keep growing.\nAll of these cases seem to have a few things in common: First, they involve vulnerable populations, particularly people suffering from depression, trauma, loneliness, or other psychological conditions. Second, all the victims seemed to have developed a strong dependency on the chatbots, often to the point where they became isolated from their real-life peers. Third, due to the mirroring behavior and LLM\u0026rsquo;s proclivity to agree with their user, the chatbots fueled harmful thoughts and actions, and induced what has been coined AI or chatbot psychosis. Fourth, these were all intensive users of chatbots, often with long-running chat sessions. It has been proven that very long conversational contexts (such as chat sessions with a large number of messages) can cause even otherwise strong safety measures to fail. This is a deadly cocktail, so you would be right to ask at this point - can we do something about it?\nSafety measures won\u0026rsquo;t save us All major LLMs have some level of AI safety measures baked into them, and there are many different approaches to safety, but they can basically be broken into three categories by when they are applied:\nTraining stage: reinforcement learning through human feedback, training data curation and refusal training Testing stage: red-teaming and safety evaluations Inference stage: input/output filtering or sanitization, prompt injection defenses First, let\u0026rsquo;s talk about the training stage: data curation can get rid of the nastiest pockets of scum and villainy, but its efficacy is questionable at best. Modern LLMs are trained on trillions of tokens, which is a hard-to-imagine amount of data, so any manual curation is out of question and most filtering will be based on problematic domains or specific keywords. You can probably think of an example or two of very toxic texts that do not use any problematic words per se.\nRLHF and refusal training is much more targeted and surgical, but is no silver bullet either. In this process, individual weights (or only their small subset in case of LoRA) get updated based on the feedback from the rewards model (RLHF), or directly (DPO3). However, the magnitude (strength) of these updates are relatively smaller: in this stage, you are sculpting final details of the model, not completely redesigning it. And while these safety improvements are usually fairly effective, they usually end up in 80-100% rejection rate (for SoTA models), depending on the safety benchmarks and methodologies.\nI do not know what the exact right rejection rate should be, but especially considering the scale at which the chatbots are used, the number should probably be very, very close to 100%. Even a small percentage of safety failures turn into large numbers. To make matters worse, the safety benchmarks usually only consider single-turn scenarios, but LLMs\u0026rsquo; safety mechanisms get measurably worse in multi-turn scenarios.\nSecond, the testing stage and the suite of safety evaluations and potential red-teaming efforts (i.e. trying to intentionally make the LLM produce unsafe responses). The fundamental problem with any red-teaming efforts is that similarly to any kind of security testing, it is never complete. However, when testing security of traditional software, the potential attack surfaces and vectors are well-known - perhaps not 100%, but to a larger degree than with LLMs. The difference between a safe and an unsafe prompt to an LLM could be a single token, one more conversation turn, or one more made-up story of grandma and the napalm factory. When natural language is the interface, the separation between the system prompt and the user input is brittle at best, and the language model is stochastic by design, there are no security guarantees.\nAI safety evals suffer a similar issue: while they are getting more robust and sophisticated thanks to ongoing research into novel jailbreaking methods, it will never cover all potential methods. Moreover, new features of LLMs, such as additional modalities4 or tool use, introduce entirely new attack paradigms that can potentially get exploited.\nThird, inference-time safety measures, usually involving detection of unsafe content either in the inputs or outputs, which leads to refusal to answer or change in the response. This creates a tension between usefulness and safety, where a large portion of topics exist in a Schrödinger\u0026rsquo;s state where depending on the context and the observer, they could be both objectionable and safe. After all, otherwise harmful topics could still potentially be safe as part of history lessons, educational context or deterrent examples. From a usability standpoint, AI labs do not want to fall into the trap of \u0026ldquo;exaggerated safety\u0026rdquo;, leaving the door partially open for creative jailbreaks.\nSo far, we are only considering base or foundational models5, whose safety testing and protections are typically described in a model card or an accompanying research paper. But more specialized and sophisticated applications of LLMs typically require fine-tuning of base models, which can undo much of the safety measures. It has been reported that \u0026ldquo;safety alignment of LLMs can be compromised by fine-tuning with only a few adversarially designed training examples\u0026rdquo; (Fine-tuning Aligned Language Models Compromises Safety, Even When Users Do Not Intend To!). Moreover, misalignment in fine-tuning can arise just by training with low-quality data such as buggy code, or even via features that are completely hidden to us\nThe AI safety research community keeps coming up with new safety evals and measures, and I do not want in any way to diminish the brilliant work and achievements of the past few years. That, however, does not change my opinion that with the current architecture of LLMs, it is highly unlikely that a mode could be made 100% safe. And any delta from absolute safety eventually leads to tragic outcomes.\nStop making them human It is clear that the anthropomorphic nature of LLMs, however commercially advantageous, creates a lot of issues and potential for harm. It has been linked to an inflated perception of trustworthiness, psychological dependence on the LLMs that can lead to social isolation and addiction, and triggering or fueling AI psychosis. It is also obvious that the cat-and-mouse game to eliminate unsafe responses will never see the mouse captive; in fact, the more likely outcome is mouse infestation.\nOne of the logical mitigations is to stop making LLMs so anthropomorphic. Make them less human so that our brains are less likely to fall for their bad advice, sycophancy or hallucinations, and less likely to get confidential and personal with them.\nLLMs are and will be just tools - and should be utilized in precisely that way. They may be very powerful and, to our detriment, excellent at emulating human forms of expression, including expressions of emotions and simulacra of mind and soul. But to elevate them to the human (or even animal) level, whether intentionally or under the spell of our gullible brains, is an error of judgment.\nA parrot by any other name Let\u0026rsquo;s take a look at what types of content is generated the most:\nResearch and info Creative writing and media Emails and communication Reports and documents Educational purposes Customer support Code or scripts\n(Source: Amperly survey) Research and surveys from other sources tell the same story in terms of what people use LLMs for. Notably, with the potential exception of customer support, the humanness of an LLM is not a success factor: some use cases don\u0026rsquo;t even have an interface where personality could be expressed (code generation). In others (summarizing text, rephrasing emails or generating reports or research) anthropomorphism is at best tangentially important to their usefulness.\nOne could argue that customer support is an area where human-like interactions are important, but if we consider customer support chatbots or agents, I would argue this is a use case unlike all the others. Customers are not willingly choosing to interact with the support LLM, and therefore passing it for a real human could be seen as tricking the customers, and is likely to receive a strong reaction from the general public. The jury is still out on this one.\nThis means that completely abandoning human-like personas and conversational styles of LLMs would likely have very small effect on the most common use cases. Now is a good time to ask: What would a de-anthropomorphized LLM even look like? I think that the changes could be subtle in most common use cases.\nTransparency: Long gone are the days when half of the responses from ChatGPT started with: As a large language model trained by OpenAI, \u0026hellip; And I will not pretend it was a good user experience - it wasn\u0026rsquo;t. However, today\u0026rsquo;s LLMs are trained not to bring attention to their non-humanness: when you ask them about their feelings or take on something, they don\u0026rsquo;t push back or disclose they can\u0026rsquo;t have feelings. Sometimes they will even respond with \u0026ldquo;What strikes me\u0026hellip;\u0026rdquo;, \u0026ldquo;I\u0026rsquo;m curious about\u0026hellip; \u0026quot; or \u0026ldquo;So my take is: \u0026hellip;\u0026rdquo;. LLMs should not be annoying about disclosures, but they should probably push back when asked about emotional states, opinions, or motivations, and they should disclose the limits of their knowledge and reasoning abilities. Personal pronouns: A subtle but effective shift could come from training the models not to use personal pronouns like \u0026ldquo;I\u0026rdquo;, or avoid using \u0026ldquo;we\u0026rdquo; in a way that implies a shared consciousness with the user. Instead, it could favor passive voice or refer to itself as \u0026ldquo;this model\u0026rdquo; to make it clear there is no \u0026ldquo;I\u0026rdquo; behind the voice. Conversational style: Changing the chatty, relaxed conversational style to a more matter-of-fact style that emphasizes solving problems or conveying information instead of engagement. Words with strong human connotations: There are a variety of words (such as \u0026ldquo;remember\u0026rdquo;, \u0026ldquo;think\u0026rdquo; or \u0026ldquo;understand\u0026rdquo;) that are closely associated with human cognition. While their metaphorical use in relation to computer systems is not uncommon, replacing them with more mechanistic alternatives (such as \u0026ldquo;process\u0026rdquo; or \u0026ldquo;retrieve\u0026rdquo;) would be less misleading. Discourse markers: Filler words, such as \u0026ldquo;well\u0026rdquo;, \u0026ldquo;like\u0026rdquo; or \u0026ldquo;you know\u0026rdquo; should be avoided altogether. As noted above, none of these changes would rapidly change how effective LLMs are at performing the most common tasks, or the task that they excel at. Sure, it would make them a little less fun to talk to, but that is kind of the point: to trade off the human-like qualities for less harm and dependency. These changes would mostly affect what is sometimes called persona [sic!] of the chatbot, not necessarily the capabilities of the models in most areas, or even their ability to reason about humans.\nI highly resonated with Tech Policy Press\u0026rsquo; article AI Chatbots Are Emotionally Deceptive by Design, which calls for \u0026ldquo;a different design paradigm, one that centers user protection: non-anthropomorphic conversational AI\u0026rdquo;. On the topic of designing such systems, they write:\nDesigning non-anthropomorphic AI chatbots doesn’t mean making them difficult to interact with. It means stripping away the illusions of personality and cognition that suggest the AI is something it is not. It means resisting the urge to insert a well-timed “hmm” or have a chatbot tell a user how much it enjoys talking to them. It means acknowledging that AI’s ability to use human language does not equate to an ability to form real human connection.\nThere is some interesting research in this area: for example, there is an excellent research paper called Thinking beyond the anthropomorphic paradigm benefits LLM research, which mostly focuses on the pitfalls of anthropomorphism within the AI research community. The authors argue that framing things in anthropomorphic concepts may not lead to optimal outcomes, as it forces human-centric constraints and research directions. It seems that anthropomorphism could be harmful on both sides of the fence.\nBut it seems that LLMs become unstable and unsafe because they lean too much into human squishiness that they observe in the vast sea of training data. In another paper with perhaps the greatest name ever (Call Me A Jerk: Persuading AI to Comply with Objectionable Requests), the researchers were able to increase the success rates of attack to 70-100% by using various psychological tricks and persuasion techniques. I am convinced that by actively dissuading the LLMs from mimicking humans during training and within systems prompts would reduce the success rate of such attacks significantly.\nSurely there are better ways\u0026hellip; ? Some of you may be grumbling and insisting there are better ways of tackling the safety of chatbots than making them less human. Maybe we just need more research on the safety front? In a recent paper that introduced LlamaFirewall, a guardrail system for LLMs combining multiple state-of-the-art metrics, the researchers were able to reduce success rate of attacks from 17.6% to 1.75%. This is an impressive feat, but this score comes from a specific benchmark (AgentDojo) and may not generalize well. If the most concerted effort means that roughly 2 out of 100 harmful prompts still succeed, I do not believe we can make the systems safe enough: not even \u0026ldquo;in the lab\u0026rdquo;, and much less so in the wild.\nYou could also argue that regulation and oversight is the right way to go. So far, I have not seen any regulation that would drastically change the equation on safety. The EU AI Act has perhaps the biggest chance of being the first to make an impact, but it has been criticized for being heavily aimed at self-reporting and self-regulation, with weak oversight and enforcement. While the EU AI Act will force some LLM labs to be more transparent about the inner workings of their LLMs, it typically does not introduce any new safety tests or measures for major LLM makers. There is no universal safety benchmark and no hard KPI for identification of potentially unsafe chatbots, so lawmakers cannot mandate any standards around that. The current set of regulations will certainly not stop people from getting dependent on chatbots, falling in love with them or eating pizza with glue because an LLM said so.\nOn the other hand, it is feasible to define what makes a system anthropomorphic, create tests to detect it, and force LLM makers to comply. The metrics used to assess the level of anthropomorphism could be based on first-person usage rate, usage of affective language markers, user-reported perceived humanness in A/B tests or safety regression tests over long contexts. This should not be seen as a panacea, a universal solution to the safety of LLMs; instead, it should be implemented alongside new safety guardrails and regulatory oversight.\nExceptions to the rule I also want to acknowledge that there are certain situations where anthropomorphic systems can be tremendously useful. Large sections of the population do not have access to mental healthcare, which means psychologists are already leveraging tech to bridge the gap. American Psychological Association is even looking at the potential benefits of AI, such as expanding access to care in the face of a behavioral health workforce shortage and alleviating administrative burdens that lead to provider burnout.\nI have no background in psychology, but I do believe specialized, certified and monitored AI-based tools could be a net benefit for society. Therapeutic chatbots can be legitimately useful for people struggling with a wide variety of psychological issues, but we need them to be strictly regulated. For example, we may require collaboration or certification at a credible mental health organization, strict regulations akin to those in life sciences (e.g. for medical devices), and the mandatory monitoring of conversations both by automated systems and experts in psychology. This way, the people in need could gain access to a therapeutic tool that would be safe to use. While the barrier to enter this segment and the operational costs of such a system would be significantly higher, it might be an opportunity for governments to invest to alleviate the global shortage of mental health providers. And those who do not wish to deploy a therapeutic chatbot could still use a deanthropomorphized LLM that would be safer for the vulnerable population - and perhaps healthier to the general population as well.\nAnthropomorphism - The attribution of human characteristics, emotions, or behaviors to non-human entities or systems.\u0026#160;\u0026#x21a9;\u0026#xfe0e;\nRLHF (Reinforcement Learning from Human Feedback) - A training method where AI models are refined based on human evaluators rating their outputs.\u0026#160;\u0026#x21a9;\u0026#xfe0e;\nDPO (Direct Preference Optimization) - A training method that directly optimizes models based on human preferences without a separate reward model.\u0026#160;\u0026#x21a9;\u0026#xfe0e;\nModality - Different type of input/output (text, voice, images) that an AI system can process.\u0026#160;\u0026#x21a9;\u0026#xfe0e;\nFoundational/base models - The core AI models before any specialized training or fine-tuning for specific applications.\u0026#160;\u0026#x21a9;\u0026#xfe0e;\n","permalink":"https://blog.burkert.me/posts/llm_deanthropomorphization/","summary":"\u003ch2 id=\"our-old-friend-pygmalion\"\u003eOur old friend Pygmalion\u003c/h2\u003e\n\u003cp\u003eHumans have always anthropomorphized\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e non-human entities, from ancient gods and natural forces to modern cars and ships. But our tendency to see machines as human-like has dramatically intensified with the advent of conversational AI. This isn\u0026rsquo;t entirely new - the word \u0026ldquo;robot,\u0026rdquo; coined and popularized by Čapek brothers in 1920, originally described artificial beings indistinguishable from humans. Our drive to find and create humanness in artificial entities runs deep, even back to the ancient times with myths like Pygmalion and Galatea.\u003c/p\u003e","title":"The Case Against Anthropomorphic AI"},{"content":"Whenever I get to travel, especially on business trips, I usually seek out two types of entertainment: botanical gardens and art galleries. Botanical gardens offer a soothing combination of being surrounded by vegetation (which is proven to be beneficial for mental and physical health), a low density of people (anecdotally, with similar benefits on yours truly :)), and in general a calm environment that helps recharging your batteries. In Japan, the term \u0026ldquo;shinrin-yoku\u0026rdquo; (~ forest-bathing) is used to describe the intentional activity of spending time in nature to boost your health, and as usual, the Japanese are onto something.\nWalking around a botanical garden, surrounded by hundreds and thousands of fascinating species of plants, with butterflies and bumblebees and birds flitting about, is an experience that provides a great counterbalance to the stress of traveling. Next time you are traveling and need to catch a break, give it a try - in a lot of cases, the entrance is free. Even if you\u0026rsquo;re not that into plants, you could read a book on a bench or just take a walk.\nOne of my recent trips was to Dublin (a lovely city!), and I could not miss the trip to the National Botanic Gardens in Glasnevin. These gardens have to be one of the larger botanical gardens I have visited, and the beautiful Victorian glasshouses only underscore the natural beauty of all the plants. Even the gloomy weather couldn\u0026rsquo;t spoil my enjoyment of all the variety of flora (over 15,000 species!). A pleasant surprise was the National Herbarium with over half a million dried plants, with the oldest dating back to the 17th century.\nAs I was taking a picture of a particularly impressive Philodendron Tree leaf, I got the idea that close-up shots of large leaves would make for great wallpapers. So for the rest of my visit, I took pictures of various leaves, and after coming home I was really happy with how these turned out to be as wallpapers. Yes, I could just google \u0026ldquo;wallpaper large leaf\u0026rdquo; and probably get even more beautiful background, but there is a certain joy and pride in doing things for yourself. In low-stake situations like this, I like to opt for my own, often scrappy or DIY solutions over someone else\u0026rsquo;s work: this way I feel much more of a connection to the photo.\nIn case you would like to use the wallpapers too, you can find them at this link. Wallpapers are 2560x1440 px and are dedicated to the public domain under CC0 1.0 Universal.\n","permalink":"https://blog.burkert.me/posts/dublin_botanical_garden_wallpapers/","summary":"\u003cp\u003eWhenever I get to travel, especially on business trips, I usually seek out two types of entertainment: botanical gardens and art galleries. Botanical gardens offer a soothing combination of being surrounded by vegetation (which is proven to be \u003ca href=\"https://pubmed.ncbi.nlm.nih.gov/39370878/\" target=\"_blank\" rel=\"noopener\"\u003ebeneficial for mental and physical health\u003c/a\u003e), a low density of people (anecdotally, with similar benefits on yours truly :)), and in general a calm environment that helps recharging your batteries. In Japan, the term \u0026ldquo;shinrin-yoku\u0026rdquo; (~ \u003ca href=\"https://www.macsadventure.com/blog/what-is-shinrin-yoku-forest-bathing/\" target=\"_blank\" rel=\"noopener\"\u003eforest-bathing\u003c/a\u003e) is used to describe the intentional activity of spending time in nature to boost your health, and as usual, the Japanese are onto something.\u003c/p\u003e","title":"Dublin Botanical Garden \u0026 beautiful homegrown wallpapers"},{"content":"Recently, I have been re-reading one of the classic books of Czech literature, Karel Čapek\u0026rsquo;s War with the Newts, and I have been intrigued by some of the parallels between Čapek\u0026rsquo;s newts and LLMs. Mind you, I am probably highly primed to associate and connect random things to LLMs given how much I read and talk about AI these days (a case of apophenia?). But hear me out! I think we\u0026rsquo;re on to something.\nFirst, for those who may not be familiar with the book, it\u0026rsquo;s a deeply satirical science fiction novel that describes how humanity discovered, nurtured, abused and later weaponized a new highly capable species of newts. An important piece of context is that this book, which is critical of national socialism, colonialism, racism and capitalism, was written in mid 1930s; well before any modern computers and theories of artificial intelligence. Despite that, as I was reading through the book, I could not ignore how fitting and topical certain parts of the book were given the current hype around AI.\nLet\u0026rsquo;s start with a fascinating look at how one of the early highly intelligent specimens of newts learned to speak and reason mostly through reading newspapers and discussing them with one of the zoo keepers. (Throughout the article, I will be quoting from David Wyllie\u0026rsquo;s translation available at the Gutenberg Project)\n\u0026ldquo;Glad to meet you Professor. I\u0026rsquo;m Andy Scheuchzer.\u0026rdquo;\n\u0026ldquo;How do you know your name is Andrias Scheuchzeri?\u0026rdquo;\n\u0026ldquo;Well it\u0026rsquo;s written down here, sir. Andreas Scheuchzer. Gilbert Islands.\u0026rdquo;\n\u0026ldquo;And do you often read the newspaper?\u0026rdquo;\n\u0026ldquo;Oh yes sir. Every day.\u0026rdquo;\n\u0026ldquo;And what parts do you most like to read?\u0026rdquo;\n\u0026ldquo;Court cases, horse racing, football,\u0026hellip;\u0026rdquo;\n\u0026ldquo;Have you ever seen a football match?\u0026rdquo;\n\u0026ldquo;No sir.\u0026rdquo;\n\u0026ldquo;Or a horse race?\u0026rdquo;\n\u0026ldquo;No sir.\u0026rdquo;\n\u0026ldquo;Then why do you read it?\u0026rdquo;\n\u0026ldquo;Cause it\u0026rsquo;s in the paper, sir.\u0026rdquo;\n\u0026ldquo;Do you have no interest in politics?\u0026rdquo;\n\u0026ldquo;No sir. Is there going to be a war?\u0026rdquo;\n\u0026ldquo;Nobody can tell you that, Andy.\u0026rdquo;\n\u0026ldquo;Germanys building a new type of submarine,\u0026rdquo; said Andy anxiously. \u0026ldquo;Death rays can turn a whole continent to dust.\u0026rdquo;\n\u0026ldquo;That\u0026rsquo;s what you\u0026rsquo;ve read in the paper, is it?\u0026rdquo; asked Sir Charles.\n\u0026ldquo;Yes sir. Who\u0026rsquo;s going to win this years Derby; Pelham Beauty or Gobernador?\u0026rdquo;\nThis is a perfect analogy to the specific kind of intelligence that LLMs possess: it is an \u0026lsquo;imprint intelligence\u0026rsquo; shaped by countless textual artifacts that reflect human intelligence and lived experience. But this intelligence is inherently imperfect and somewhat hollow, as it is not supported by sensory stimuli. Andy will gladly engage in discussions about horse races, even though he has never seen one and his idea of what a horse even looks like is likely far from reality.\nAnother interesting analogy is the inability to filter and prioritize information: Andy will start confidently talking about death rays as a real thing because its knowledge has no real grounding and cannot effectively tell real news from sensationalism, science fiction or propaganda. It also lacks any common sense to fall back on. The lack of experiential knowledge and common sense is part of the reason why today\u0026rsquo;s LLMs (at least as of July 2025) make poor autonomous agents, since they are easily tricked into making bad decisions.\nČapek takes Andy\u0026rsquo;s eloquence and rhetorical skills to a farcical level in a transcript of an experiment:\nHow old are you?\nA.: I don\u0026rsquo;t know. If you want to look younger, wear the Libella corset.\nWhat is the date today?\nA.: Monday. It\u0026rsquo;s nice weather today. Gibraltar is running in the Epsom this Saturday.\nIt is clear that Andy has been reading newspapers a little too much. This exchange reminded me of both the sycophantic conversation style of LLMs and their still-too-common hallucinations (confabulations). Andy does his best to impress (or perhaps just to inform) his interviewers by parroting loosely related phrases from ads. Andy does not actually know his age or the date, so he tries to answer with the closest associated information from his memory. While confabulations in LLMs are still being studied, one of the reasons they happen is that the LLM makes its best next word prediction in an unfamiliar context. This means that the prediction truly becomes more of a guess and can lead the model to sometimes make absurd statements.\n(This passage could also be linked to a bleak future where LLMs serve you contextual ads as part of its answers.)\nOf course, none of this means that Čapek had prophesied how transformers in LLMs would work and expressed it through an analogy using a captive newt. However, it is extremely interesting that many of the tenets of this type of acquired \u0026lsquo;imprint intelligence\u0026rsquo; were so fittingly described almost a hundred years ago. It turns out, at least certain aspects of intelligence and cognition are fairly predictable.\nAnother aspect of the book that has chilling similarities to recent developments and discourse in AI is the cutthroat competitiveness and urge to dominate the market (and the world).\n\u0026ldquo;Gentlemen, please bear in mind the advantages a collaboration of this sort could bring. The Newt Syndicate would provide more than just newts, it would also provide equipment and food for the newts such as maize, carbohydrates, beef fat and sugar for thousands of millions of well fed animals; then there would be transport, insurance, veterinary needs and everything at the lowest rate guaranteed for us if not by a monopoly then at least by being in a dominant position over any other potential rival that might want to deal in newts. Just let them try it, gentlemen; they won\u0026rsquo;t be in competition with us for long.\u0026rdquo; (Bravo!)\nThis is a prime example of monopolistic behaviour and vertical integration, which were well known concepts in Čapek\u0026rsquo;s time. These concepts aren\u0026rsquo;t unique to the hyped world of artificial intelligence. However, the way major AI labs like OpenAI are attempting to permeate all possible means of internet production and consumption (such as browsers, productivity apps and code editors) is definitely reminiscent of the Salamander Syndicate plans.\nIf you are not fully convinced by the analogy, consider all the talk about AI\u0026rsquo;s huge impact on the workforce, and more recently, how AI agents will act as tireless worker bees that will redraw the economic map of the world. You can contrast it with the following:\nAnd that\u0026rsquo;s not all, gentlemen. There are still many more functions for the Newt Syndicate to perform. The Salamander syndicate will seek out work for millions of newts all round the world. They will provide the plans and the ideas for subjugating the oceans. It will disseminate ideas of Utopia, dreams that are gigantic, projects for new coastlines and shipping lanes, causeways that will join continents, whole chains of artificial islands for journeys to new lands in the middle of the oceans. That is where the future of mankind lies.\nI do not want to spoil the ending of the book but suffice it to say: this grandiose plan backfires splendidly. Go read it, it\u0026rsquo;s a great book!\n","permalink":"https://blog.burkert.me/posts/capeks-newts-an-ai-reflection/","summary":"\u003cp\u003eRecently, I have been re-reading one of the classic books of Czech literature, Karel Čapek\u0026rsquo;s War with the Newts, and I have been intrigued by some of the parallels between Čapek\u0026rsquo;s newts and LLMs. Mind you, I am probably highly primed to associate and connect random things to LLMs given how much I read and talk about AI these days (a case of apophenia?). But hear me out! I think we\u0026rsquo;re on to something.\u003c/p\u003e","title":"Čapek's Newts: An AI Reflection"},{"content":"The problem Window management for GUI operating systems has been with us for decades, but it still feels a bit broken to me. Yes, everyone has their preferences and not everyone needs to run as many programs as I do at times, but there is something principally broken about having a bunch of windows stacked on top of each other and trying to Alt-Tab to the right one at all times. And I\u0026rsquo;m not the only one to think that.\nWindows (the operating system) has had some lukewarm attempts at allowing a slightly different window management paradigm by adding multiple desktops and running/switching to apps using the Win+[number] key stroke. This satisfies some of the needs but once you realize you can only move to the next or previous desktop using your keyboard only (no \u0026ldquo;Go to Desktop 3\u0026rdquo; command is available), your enthusiasm dies a slow death.\nThere are ways to further improve it: You can install PowerToys and get some additional tweakability, but even then it feels a little insufficient: still no \u0026ldquo;jump to desktop X\u0026rdquo; command, FancyZones is decent but not very flexible, and you start piling a lot of additional software (PowerToys have been quite resource-hungry for me) just to have a usable (but still not great) experience.\nSeeing the light Tiling window management seemed like an odd choice for me in the beginning. Handling smaller and smaller windows the more stuff you open seems a little stressful (tiling typically involves spawning windows in Fibonacci sequence pattern), but then I realized the trick is not to have too many windows opened on the same workspace. I started experimenting with tiling first on my personal (linux) computer, testing it in Gnome, then in the Cosmic desktop, but ultimately settled on Hyprland as the universally acclaimed GOAT of tiling window management. The trick, of course, is to organize the apps you use very often into their own workspaces, and just switch between the different workspaces. This eliminates all the mental overhead and frantic alt-tabbing to get to what you need. The basic premises are:\nWorkspaces are containers that should be as stable as posssible (i.e. their contents do not change a lot over time or individual sessions). In order to have that stability, you create rules that assign newly opened app windows to specific workspaces (doing this manually is a surprisingly taxing feat). For ad-hoc apps that don\u0026rsquo;t have a rule, you can either open them in your currently active workspace and tile them next to whatever is already there (chances are they are both needed right now anyway since they spawn from the same context), or you move the app to one of the free/blank workspaces. Apps are always fully visible on the workspace they\u0026rsquo;re placed on, so there is no alt-tabbing to conjure up the right window. After building a little bit of a muscle memory, you won\u0026rsquo;t have to think at all when you want to switch from one app/workspaces to another, e.g. from your terminal to your browser - you just press Alt+2 (in my case). And setting this up in hyprland is not too difficult if you have at least basic experience with terminal and config files. You simply define the workspaces:\n$ws1 = 1|💻 $ws2 = 2|🌐 $ws3 = 3|✉️ And then define the workspaces and their rules:\n# Workspace 1: Terminal workspace = 1, defaultName:$ws1, persistent:true, id:1 windowrulev2 = workspace name:$ws1, class:^(com.mitchellh.ghostty)$ # Workspace 2: Web workspace = 2, defaultName:$ws2, persistent:true, id:2 windowrulev2 = workspace name:$ws2, class:^(zen)$ # Workspace 3: Mail workspace = 3, defaultName:$ws3, persistent:true, id:3 windowrulev2 = workspace name:$ws3, class:^(net.thunderbird.Thunderbird)$ Realistically, most people will use 5-8 different apps on a daily basis and the rest will be more of an ad-hoc usage. Creating rules for those 5-8 apps takes just a few minutes.\nPaired up with waybar as a system bar and rofi as an app launcher, my setup is complete.\n\u0026ldquo;I could achieve the same just using Gnome/KDE/FancyZones/XYZ workspaces\u0026rdquo; Technically, you can get really close - and I actually urge you to first test workspaces and tiling in Gnome, Cosmic or some other more familiar desktop environment to get a feel for it. However, I still believe that the moment you spin up multiple windows on the same workspace and start alt-tabbing between them, the moment one window gets occluded to another, you\u0026rsquo;re basically back to square one. If you\u0026rsquo;re more disciplined than me, maybe you\u0026rsquo;ll arrange them in a way to avoid that, but that to me sounds like doing the tiling manually. Or maybe your usage patterns are just very different, which is fine - use whatever suits you. All I\u0026rsquo;m saying is: give tiling a try.\n\u0026ldquo;How do I get things done with only one or two apps at a time?\u0026rdquo; I\u0026rsquo;m tempted to flip the question and ask: How do you get things done with 3+ apps opened at the same time? Humans are proven to be bad at multitasking (yes, even women). And I don\u0026rsquo;t blame you for thinking otherwise, I was convinced that I could multitask without any cognitive penalties for many years, not considering the mental toll and switching costs of constantly moving my focus from my mailbox to multiple chat apps and collaborations tools and many opened browser tabs. This was further exacerbated by the common dual-monitor setup, which I considered the peak productivity booster for a long time.\nAt some point I bought myself a 27\u0026quot; QHD monitor for my home setup (my desk wouldn\u0026rsquo;t nicely fit two FHD monitors) and I definitely prefer it to the dual FHD screen setup I have at work: not only because I don\u0026rsquo;t have to stare at the gap/bezels in the middle, but also because I am rarely interested in what\u0026rsquo;s going on the other screen: most of what happens there is just a distraction, or does not provide any real benefit most of the time. And the times when it becomes a distraction tend to outweigh occasional benefits of the larger screen estate. If I need to, I can still lay out 2 windows side by side on a 1440p screen (even three depending on the app or website layout), so for cases where you are closely comparing two documents or following instructions from one app to perform in another, I can still quickly glance back and forth.\nAt the same time, I recognize that everyone\u0026rsquo;s brain works a little differently; we have varied preferences, and a lot of people will be using computers in different ways and for different tasks than I do. But for a mixture of coding, data analysis, communication, management and research, I personally vastly prefer just a single larger screen and more of a laser focus on the thing that I am doing at the time.\nIf only things were this easy Then, of course, you have to deal with the reality of everyday life. The company I work at only provides Windows and Mac devices, so for roughly 8 hours a day, every working day, I have to deal with the utter chaos of window management in Windows. Yes, it really feels like utter chaos once you are used to tiling windows in pre-configured workspaces.\nSo thus began my journey to unify my experiences across operating systems. Of course, Hyprland does not run on Windows, but there are a few options you have. One of the most popular ones is Komorebi, which is open-source, highly configurable and quite powerful. However, since I\u0026rsquo;m looking for something to use on my work computer, the commercial usage clause of the Komorebi license would be triggered, and I\u0026rsquo;d have to pay up. And I would happily buy the license if it was a one-time fee or a low yearly fee, but a $10 monthly subscription model is not acceptable to me from a principial standpoint. Back to square one.\nLuckily, there is an alternative to Komorebi that is gaining a lot of traction: GlazeWM. It\u0026rsquo;s a tiling window manager which is also open-source and highly configurable, and distributed under the GPL v3 license. Hooray! GlazeWM is most definitely a spiritual kin to Hyprland: Tiling window management with a ton of options, configurable workspaces, workspace-assignment rules, customizable keyboard shortcuts etc. After tinkering with the config and pairing GlazeWM with Zebar, Flow launcher and Tacky Borders, I was able to get almost and identical experience to my Hyprland + waybar + rofi setup on Linux.\nExample of configuration of a workspace and its rules for GlazeWM:\n- name: \u0026#34;2\u0026#34; display_name: \u0026#34;2|🌐\u0026#34; keep_alive: true - commands: [\u0026#34;move --workspace 2\u0026#34;, \u0026#34;focus --workspace 2\u0026#34;] match: # Move browsers to workspace 4. - window_process: { regex: \u0026#34;zen\u0026#34; } - window_title: { regex: \u0026#34;Zen Browser\u0026#34;} Portability as a side effect One of the side effects of setting up GlazeWM- and Hyprland-basert setups is that it is very easy to re-create them: all of the sotware involved is heavily config-file centric, so all it takes to spin this up on a new Windows machine is a couple of winget commands and a few config files copied to the right location. On linux, I was able to create an install script and back up my config with stow and git, so the configuration changes between my personal desktop and notebook are easily synced. The value of such a setup is hard to overstate: it may not come up very often, but when you do need to get your new or reinstalled machine up and running, the time you save not setting things up manually is invaluable.\n\u0026ldquo;This is just a fad\u0026rdquo; Maybe it is! But the truth is, I experimented with workspace-based setups back in early 2000s on my SuSE Linux and later Gentoo machines with IceWM (side note: any other fans of GKrellM?). I\u0026rsquo;m not sure if the idea of tiling window management existed back then, but the notion of multiple workspaces has been a part of the linux desktop experience for decades at this point. And maybe in a few years, the desktop management paradigm will be completely different, but right now I feel I have found the setup that suits me the best.\nNot quite paradise but close enough Even though I love my setup, but there are a few things that I still need to figure out or that are small annoyances:\nFibbonaci sequence pattern tiling effect is not officially supported by GlazeWM (it places new windows in one direction - either vertically or horizontally). There are simple scripts that take care of that and I do use one such script, but I hope this gets implemented as a core feature. Some pop-ups and overlays are not perfectly handled in GlazeWM. This is quite rare but Microsoft Teams is perhaps the biggest offender: its overlays and widgets that pop-up when sharing screens can sometimes cause jumpy behaviour, steal focus and can be generally a little confusing. Windows taskbar will unhide itself with some blinking notifications and it can be difficult to make it go away again. Zebar supports system notification tray since version 3.1.0, but I wasn\u0026rsquo;t able to get it working yet. I have very little use for notification tray icons, and for the rare occasions that I need them, I can use the windows taskbar, but having them in Zebar would make things a little nicer and tidier. My workspace layout and Waybar/Zebar configurations are not perfectly aligned between my personal and home setup. This is something I may address in the future, but maybe some separation of the contexts between home and work is actually a good thing. I haven\u0026rsquo;t found any adverse effects of switching between the computers - I guess I built the muscle memory for each context separately and can operate both without confusion. Footnote: Support open-source software I am a big proponent of the ideas and principles of open-source software (OSS), but a lot of the modern software rests on the shoulders of a small number individuals who have regular jobs and do the OSS development in spare time. In order for the community to thrive, we should do more to support the developers and maintainers of the projects we benefit from. I have not found an easy way to support GlazeWM, but Hyprland does have a Support Hyprland page up. The beauty of OSS is that you can test the software for as long as you want, and donate only once you are sure you will benefit from it. Even a few dollars go a long way!\nEDIT: You might like Omarchy? If this all sounds intriguing to you and you are (or are considering) using Arch linux, Omarchy from DHH is definitely worth checking out.\n","permalink":"https://blog.burkert.me/posts/workspaces-and-tiling-window-management-across-operating-systems/","summary":"\u003ch2 id=\"the-problem\"\u003eThe problem\u003c/h2\u003e\n\u003cp\u003eWindow management for GUI operating systems has been with us for decades, but it still feels a bit broken to me. Yes, everyone has their preferences and not everyone needs to run as many programs as I do at times, but there is something principally broken about having a bunch of windows stacked on top of each other and trying to Alt-Tab to the right one at all times. And I\u0026rsquo;m not \u003ca href=\"https://youtu.be/ZH3iKbEiks0?t=571\" target=\"_blank\" rel=\"noopener\"\u003ethe only one\u003c/a\u003e to think that.\u003c/p\u003e","title":"Workspaces \u0026 tiling window management across operating systems"},{"content":"Many moons ago (in fact long ago so that contemporary sources are beginning to be difficult to find), iPhone users were told they\u0026rsquo;re holding their phones wrong. This was one of the more memeworthy communication blunders of Apple and something we\u0026rsquo;re unlikely to see from them, but the reason I mention it here is that asking ourselves whether we\u0026rsquo;re holding the thing wrong is actually a good strategy for exploring novel use cases.\nTake LLMs: if humans can do something, or least are attempting to do something, chances are people tried doing it with an LLM, and at least some of those would claim that it does the job just as well as a human (insert many asterisks and caveats in small print if they have at least some integrity). I will not go into debating whether LLMs can replace programmers (or other jobs), or when that\u0026rsquo;s going to happen; many smarter people than myself have done so. I personally use Cursor (one of the fancy AI-first IDEs) at work and have found it to be excellent for certain types of tasks, especially of the exploratory or quick\u0026rsquo;n\u0026rsquo;dirty kind – and much less excellent for other types. But I can\u0026rsquo;t shake the impression that we might be holding it wrong.\nOne of the common and honestly valid complaints that AI skeptics have is that we\u0026rsquo;re replacing and automating the fun parts of people\u0026rsquo;s jobs, and that has been the focus of the discourse for usage of AI in programming too: the shift from writing code to reviewing AI-generated code is happening quite fast in some industries. Only time will tell what the consequences of this shift are, because no shift of such magnitude happens without unforeseen side effects. But where I find LLMs to be really underappreciated is small-scale automation of everyday tasks, even outside of typically programming contexts.\nHere\u0026rsquo;s what I mean: Just a few days ago, I was putting together a few slides for a presentation - one of the really big shared decks for a full-day workshop and with multiple presenters. The file was 499MB. Half. A. Gig. I did not want to make things unnecessarily worse, so I pledged to downsize any stock photography I insert. And this is where the LLMs come in: I knew I could fire up GIMP or some other image editing software, edit the image in a few clicks, save it and be done with it. But this approach does not scale well and I knew I wanted a slightly more sophisticated solution.\nNow this very simple problem has a million different solutions, from finding a dedicated software to do this in bulk all the way to writing a Python or Powershell script myself. The problem is I did not have time to fiddle around with this, and even if I did, the ROI was unclear: resizing 5-10 images manually can definitely be done faster than writing such a script, even if you\u0026rsquo;ve done something similar before. In a weird twist, the simplest problems become the most unlikely to automate since they solve just small annoyances, and coming up with a proper solution is not worth the time - or so it seems.\nEnter LLMs. For all their issues with understanding larger codebases, using deprecated functions or methods, writing subpar code or just simply not being able to help you with more complex or rarer issues, they excel at small, contained and common problems. Write a Powershell script that takes the latest .jpg or .png image in my Downloads folder, resizes its larger side to 1920 pixels and saves it with a _resized suffix is all I needed to feed to an LLM to solve the issue, and you can bet that it was faster than resizing 5 of the images manually. It also basically does not matter which LLM you feed this into, they can all deal with this type of scripting without a hiccup. (You should always check the code, though: even though an rm -rf / situation is unlikely, you still don\u0026rsquo;t want any surprises.)\nThis unlocked something in my brain. I started looking for small, repetitive tasks that previously had no ROI, but become very viable with one-shotting the solution with an LLM. Your mileage may vary, but I am finding them everywhere I look. I realized I was holding it wrong. I should have utilized the LLM to automate the stupid, boring, manual stuff, because the bar for whether it\u0026rsquo;s worth my time automating it is so, so low nowadays. And the best thing about it? I don\u0026rsquo;t have to consider whether it has any impact on my programming foundations, because this is code that I would have never written. If anything, reading it taught me at least a little bit where otherwise I\u0026rsquo;d have done something manually in a piece of software.\nI guarantee you that if you work on a computer, then you\u0026rsquo;re doing something repeatedly, and there are good chances you could automate at least parts of it with little effort using an LLM. Don\u0026rsquo;t hold it wrong!\n","permalink":"https://blog.burkert.me/posts/llms-are-you-holding-it-wrong/","summary":"\u003cp\u003eMany moons ago (in fact long ago so that contemporary sources are beginning to be difficult to find), iPhone users were told they\u0026rsquo;re \u003ca href=\"https://edition.cnn.com/2010/TECH/mobile/06/25/iphone.problems.response/index.html\" target=\"_blank\" rel=\"noopener\"\u003eholding their phones wrong\u003c/a\u003e. This was one of the more memeworthy communication blunders of Apple and something we\u0026rsquo;re unlikely to see from them, but the reason I mention it here is that asking ourselves whether we\u0026rsquo;re holding the thing wrong is actually a good strategy for exploring novel use cases.\u003c/p\u003e","title":"LLMs: Are You Holding It Wrong?"},{"content":"The Problem Recently, my Keychron K8 keyboard has died (PCB 💀), so I started hunting for a new keyboard. Another Keychron was out of the question, so I decided to give Epomaker a try. I stumbled into a B-stock Epomaker Galaxy80 and decided to give it a shot. I am very happy with the feel of the keyboard, typing feels much better than the K8, at least to me.\nHowever, I ran into a problem in linux (Fedora Workstation, although this is not distro-specific): I was unable to use the F-row (F1 - F12), so that Alt + F4 would not close the window, F11 would not trigger full screen etc. When I used the online keyboard testers, it would register keys/commands such as \u0026ldquo;Files\u0026rdquo;, \u0026ldquo;Calculator\u0026rdquo;, \u0026ldquo;Volume Up/Down\u0026rdquo; etc.:\nI searched the keyboard manual, thinking it must be some sort of an Fn lock being activated, but there does not seem to be a feature like that on my keyboard. Even worse, using the Fn key + one of the F-row keys was not triggering the actual F-row key either. I had no (useful) way to use my F-row keys!\nThis issue has been reported with many other Epomaker keyboards, such as EP84, TH80, RT80, RT100 or GMK87, but also with other brands (including some Keychrons). The good news is, the fix should be the same for all of them!\nThe Solution After some furious googling, I actually found the solution to the problem, which turns out to be on the system side rather than in the keyboard itself. Simply reconfiguring your HID Apple module fixes the issue. If you\u0026rsquo;re technically savvy and/or do not care about any further details, go use the module configuration and enjoy using your keyboard.\necho \u0026#34;options hid_apple fnmode=2\u0026#34; | sudo tee /etc/modprobe.d/hid_apple.conf sudo dracut --regenerate-all --force # reboot and enjoy your fully functioning keyboard! (courtesy of Reddit user Outrageous_Opinion84 and Joao-Peterson on GitHub)\nThe Solution Explained Below, I would like to go into more details for several reasons:\nReddit is going to paywall some of the content, and other content might get authwalled - therefore the solution may not be readily available. It took me some time to find the solution, so by writing this article, I\u0026rsquo;m hoping the more elaborate explanation will be more SEO-friendly than some of the existing answers scatted over the internet. I am sure I will forget this solution next time I install a new system and writing it up will hopefully mean I will not need to re-figure it out. I wanted to learn (and share) in a bit more detail what happens with the configuration files and how the fix works. First, let\u0026rsquo;s take a look at how the Epomaker keyboard reports to the system when loaded up (the last but one row):\nNow the problem is that the keyboard is being detected as an Apple wireless keyboard clone - an abomination of a keyboard discontinued in 2015:\nBy default, the F-row keys on the Apple wireless keyboard emit the media commands, which is how those keypresses will get interpreted by the hid_apple kernel module. Luckily, the module offers configurable function modes (fnmode), as documented on Arch Wiki or Ubuntu Wiki. We are interested in the fnmode=2 option:\n2 - normally function keys, switchable to media keys by holding Fn key (=auto on non-Apple keyboards) You can temporarily test the parameter by sending the fnmode parameter to the kernel module via sysfs:\n(You likely need to do a sudo su first)\necho 2 \u0026gt;\u0026gt; /sys/module/hid_apple/parameters/fnmode\nNow your keyboard should work as GodEpomaker intended! The problem is that this change will not be persisted after reboot.\nThe way to do it is through the modprobe.d configuration files, which allow to pass parameters to the modules when they are loaded during system boot.\nThe following command will create the configuration file for the hid_apple module and pass the fnmode=2 parameter to it:\necho \u0026quot;options hid_apple fnmode=2\u0026quot; | sudo tee /etc/modprobe.d/hid_apple.conf\nNow to apply the changes to the initramfs (a mini-image with your kernel, including its modules), you need to run the dracut command to re-generate initramfs.\nsudo dracut --regenerate-all --force\nNote: Some distributions may require a different command to re-generate initramfs, such as sudo update-initramfs -u for Ubuntu or sudo mkinitcpio -P in Arch.\nFinally, all you need to do is either reboot your machine, or reload the module:\nsudo rmmod hdi_apple modprobe hdi_apple Hope this helped!\n","permalink":"https://blog.burkert.me/posts/solution-to-epomaker-keyboards-f-row-keys-in-linux/","summary":"\u003ch2 id=\"the-problem\"\u003eThe Problem\u003c/h2\u003e\n\u003cp\u003eRecently, my Keychron K8 keyboard has died (PCB 💀), so I started hunting for a new keyboard. Another Keychron was out of the question, so I decided to give Epomaker a try. I stumbled into a B-stock \u003ca href=\"https://epomaker.com/products/epomaker-feker-galaxy80\" target=\"_blank\" rel=\"noopener\"\u003eEpomaker Galaxy80\u003c/a\u003e and decided to give it a shot. I am very happy with the feel of the keyboard, typing feels much better than the K8, at least to me.\u003c/p\u003e\n\u003cp\u003eHowever, I ran into a problem in linux (Fedora Workstation, although this is not distro-specific): I was unable to use the F-row (F1 - F12), so that Alt + F4 would not close the window, F11 would not trigger full screen etc. When I used the online \u003ca href=\"https://en.key-test.ru/\" target=\"_blank\" rel=\"noopener\"\u003ekeyboard testers\u003c/a\u003e, it would register keys/commands such as \u0026ldquo;Files\u0026rdquo;, \u0026ldquo;Calculator\u0026rdquo;, \u0026ldquo;Volume Up/Down\u0026rdquo; etc.:\u003cbr\u003e\n\u003cimg alt=\"\u0026ldquo;F-row keypresses in a keyboard tester\u0026rdquo;\" loading=\"lazy\" src=\"/../images/Screenshot%20From%202025-02-17%2022-44-46.png#center\" title=\"F-row keypresses in a keyboard tester\"\u003e\u003cbr\u003e\nI searched the keyboard manual, thinking it must be some sort of an Fn lock being activated, but there does not seem to be a feature like that on my keyboard. Even worse, using the Fn key + one of the F-row keys was not triggering the actual F-row key either. I had no (useful) way to use my F-row keys!\u003cbr\u003e\nThis issue has been reported with many other Epomaker keyboards, such as EP84, TH80, RT80, RT100 or GMK87, but also with other brands (including some Keychrons). The good news is, the fix should be the same for all of them!\u003c/p\u003e","title":"Solution to Epomaker keyboards F-row keys in linux"},{"content":"Intro As part of my journey towards higher privacy while using internet, I decided to set up Pi-hole on my Synology NAS DS218play. If you are reading this article, you probably don\u0026rsquo;t need the following explanation, but just in case: Pi-hole is perhaps the most popular DNS sinkhole, which aims to block ads, trackers and malicious sites for all devices on your local network.\nNow, your NAS is one of the best candidates for running Pi-hole since it is typically on 24/7 and connected via high-speed wired connection to your router. Since I already was an owner of Synology NAS, I started googling how to set up Pi-hole on my device. There are plenty of howto\u0026rsquo;s which describe the process, but they have one fatal flaw: they rely on the Docker (or Container Manager, as it was later renamed to) Synology package to be installed and used for the setup. And this is where it starts to get interesting: Docker is not officially supported on ARM-based Synology NASes (such as the j and play models), supposedly due to insufficient performance of their CPUs. This means you will not find the packages in the Package Manager and will not be able to install it the usual way.\nThere are many users asking how to install Docker (or even specifically Pi-Hole) on the DS218play and the answer is always the same - unsupported, not available, you\u0026rsquo;re out of luck, you will need to upgrade to the plus model (which uses x86 CPUs) or get a Raspberry Pi.\nThat is not entirely true, though, and that\u0026rsquo;s why you\u0026rsquo;re likely here. The setup requires a little bit of technical skills and bravery, but it is not an overly complicated process. It does need to be said though that the Docker support is indeed unofficial, one could even say hacky, and you are doing this at your own risk. On the upside, the Realtek RTD1296 CPU in the DS218play is perfectly capable of running a simple app such as Pi-hole in Docker (the CPU barely registers usage from multiple local network devices), and can probably run even more complex apps, so the argument related to the CPU\u0026rsquo;s performance is not entirely based on reality - it probably has more to do with Synology not wanting to maintain packages for multiple architectures, especially if moving to the + line is such a good upsell for them.\nAlso, while I can give you no guarantees on this, the how-to is likely to work on some other Synology models (such as DS220j, DS223j, DS118, DS218, DS418 - basically anything that has aarch64 CPU model listed here). Furthermore, based on my cursory Google research, changing the architecture in below scripts from aarch64 to armhf might allow you to use it for the ARMv7 models (such as DS218j, DS216j or DS416) as well.\nPrerequisites OK, now that you have been warned and given necessary context, let\u0026rsquo;s see what we will need:\nAccess to the Synology NAS using a privileged user (can be your regular user but should be in the administrators group - i.e. the main account you use to manage the NAS using DSM DSM version 7.2.x (tested on 7.2.1, likely works on all 7.x.x) Enabled SSH access (see below) Internet access (duh) An SSH client (PuTTY is a great one if you\u0026rsquo;re on Windows, but you can also install an ssh client from Windows; Linux and Mac usually comes with a command-line SSH client) Enabling SSH access to your NAS Your Synology NAS may not have a remote terminal access enabled. This is how you enable it:\nOpen Control Panel. Go to Terminal \u0026amp; SNMP. Check the Enable SSH service checkbox. Done! In case the port is set to anything else than the usual port 22, you should make a mental note of that number.\nStep-by-step instructions Connecting and gaining root access Use your SSH client to connect to the NAS. You will need to specify the NAS\u0026rsquo;s IP Address - if you do not know it, you can find it out in Control Panel → Network → Network Interface. Mine is 192.168.0.101 and let\u0026rsquo;s say the main user account is \u0026ldquo;tom\u0026rdquo;. ssh tom@192.168.0.101 If you are using a different port than 22, add the -p parameter, e.g.:\nssh tom@192.168.0.101 -p 22345 2. You might be prompted to accept the host\u0026rsquo;s key the first time you connect. Accept it.\n3. Now enter the password for tom\u0026rsquo;s account - this is the same as you use to log in into DSM using your browser.\n4. Now you should be remotely connected to your NAS, but we need to get the system administrator (root) privileges. On DSM, simply type sudo -i and use the same password as in step 3.\n5. Now the command line should say something like root@nas (or whatever hostname you chose after the @ sign).\nDocker installation Navigate to you main user\u0026rsquo;s home directory.\ncd /volume1/homes/tom/\nNote that you will need to adjust the username and potentially the volume number based on your system\u0026rsquo;s settings. Grab the file below and save it to your desktop computer. Let\u0026rsquo;s call the file get-docker.sh #!/bin/bash set -e ARCH=aarch64 DOCKER_VERSION=20.10.9 COMPOSE_VERSION=2.5.1 DOCKER_DIR=/volume1/@docker echo \u0026#34;Downloading docker $DOCKER_VERSION-$ARCH\u0026#34; curl \u0026#34;https://download.docker.com/linux/static/stable/$ARCH/docker-$DOCKER_VERSION.tgz\u0026#34; | tar -xz -C /usr/local/bin --strip-components=1 echo \u0026#34;Creating docker working directory $DOCKER_DIR\u0026#34; mkdir -p \u0026#34;$DOCKER_DIR\u0026#34; echo \u0026#34;Creating docker.json config file\u0026#34; mkdir -p /usr/local/etc/docker cat \u0026lt;\u0026lt;EOT \u0026gt; /usr/local/etc/docker/docker.json { \u0026#34;storage-driver\u0026#34;: \u0026#34;vfs\u0026#34;, \u0026#34;iptables\u0026#34;: false, \u0026#34;bridge\u0026#34;: \u0026#34;none\u0026#34;, \u0026#34;data-root\u0026#34;: \u0026#34;$DOCKER_DIR\u0026#34; } EOT echo \u0026#34;Creating docker startup script\u0026#34; cat \u0026lt;\u0026lt;\u0026#39;EOT\u0026#39; \u0026gt; /usr/local/etc/rc.d/docker.sh #!/bin/sh # Start docker daemon NAME=dockerd PIDFILE=/var/run/$NAME.pid DAEMON_ARGS=\u0026#34;--config-file=/usr/local/etc/docker/docker.json --pidfile=$PIDFILE\u0026#34; case \u0026#34;$1\u0026#34; in start) echo \u0026#34;Starting docker daemon\u0026#34; # ulimit -n 4096 # needed for influxdb (uncomment if your limit is lower) /usr/local/bin/dockerd $DAEMON_ARGS \u0026amp; ;; stop) echo \u0026#34;Stopping docker daemon\u0026#34; kill $(cat $PIDFILE) ;; *) echo \u0026#34;Usage: \u0026#34;$1\u0026#34; {start|stop}\u0026#34; exit 1 esac exit 0 EOT chmod 755 /usr/local/etc/rc.d/docker.sh echo \u0026#34;Creating docker group\u0026#34; egrep -q docker /etc/group || synogroup --add docker root echo \u0026#34;Installing docker compose $COMPOSE_VERSION\u0026#34; curl -SL \u0026#34;https://github.com/docker/compose/releases/download/v$COMPOSE_VERSION/docker-compose-linux-$ARCH\u0026#34; \\ --create-dirs -o /usr/local/lib/docker/cli-plugins/docker-compose chmod +x /usr/local/lib/docker/cli-plugins/docker-compose chgrp -R docker /usr/local/lib/docker echo \u0026#34;Starting docker\u0026#34; /usr/local/etc/rc.d/docker.sh start echo \u0026#34;Done. Please add your user to the docker group in the Synology GUI and reboot your NAS.\u0026#34; Credits to DaveMDS _Note: The versions of Docker and Docker Compose might be outdated when you read this. If you want to use the the latest versions, check them here and here. _\nUpload the get-docker.sh file to your home folder in DSM: Open File Station, navigate to your home, click on Upload and the Upload - Overwrite. Now back to SSH terminal - make the script executable:\nchmod +x ./get-docker.sh Run the installation script:\n./get-docker.sh Docker should now be installed! Let\u0026rsquo;s follow the instruction to add our user to the docker group: go to Control Panel → User \u0026amp; Group → Group → select docker → Edit → Members → select the checkbox next to tom (your main user) → Save. Reboot your NAS! Installing Pi-Hole While your NAS rebooted, your SSH session got disconnected, so you will need to repeat steps from the above section Connecting and gaining root access. Using the same process as with the get-docker.sh file, upload the below script and name it install-pihole.sh. Do not forget to change the value of the PIHOLE_PWD variable. #!/bin/bash IP_ADDRESS=$(ifconfig eth0 | awk \u0026#39;/inet addr/ {gsub(\u0026#34;addr:\u0026#34;, \u0026#34;\u0026#34;, $2); print $2}\u0026#39;) TZ=$(realpath --relative-to /usr/share/zoneinfo /etc/localtime) PORT=8080 PIHOLE_PWD=\u0026#34;piholepwd\u0026#34; PIHOLE_BASE=\u0026#34;${PIHOLE_BASE:-$(pwd)}\u0026#34; [[ -d \u0026#34;$PIHOLE_BASE\u0026#34; ]] || mkdir -p \u0026#34;$PIHOLE_BASE\u0026#34; || { echo \u0026#34;Couldn\u0026#39;t create storage directory: $PIHOLE_BASE\u0026#34;; exit 1; } echo -e \u0026#34;Setting up pihole container at ${IP_ADDRESS}:${PORT} (timezone ${TZ})\u0026#34; docker run -d --name=pihole \\ -e WEB_PORT=$PORT \\ -e WEBPASSWORD=$PIHOLE_PWD \\ -e WEB_BIND_ADDR=$IP_ADDRESS \\ -e TZ=$TZ \\ -e DNSMASQ_USER=root \\ -e DNSMASQ_LISTENING=local \\ -v /volume1/docker/pihole/dnsmasq.d:/etc/dnsmasq.d \\ -v /volume1/docker/pihole/pihole:/etc/pihole \\ --net=host \\ --restart always \\ pihole/pihole printf \u0026#39;Starting up pihole container \u0026#39; for i in $(seq 1 20); do if [ \u0026#34;$(docker inspect -f \u0026#34;{{.State.Health.Status}}\u0026#34; pihole)\u0026#34; == \u0026#34;healthy\u0026#34; ] ; then printf \u0026#39; OK\u0026#39; echo -e \u0026#34;\\nPi-hole running at http://${IP_ADDRESS}:${PORT}/admin/ - use password \u0026#39;${PIHOLE_PWD}\u0026#39; to log in.\u0026#34; exit 0 else sleep 3 printf \u0026#39;.\u0026#39; fi if [ $i -eq 20 ] ; then echo -e \u0026#34;\\nTimed out waiting for Pi-hole start, consult your container logs for more info (\\`docker logs pihole\\`)\u0026#34; exit 1 fi done; The script was adapted from the official pi-hole example.\nRun the Pi-hole installation script (assuming you\u0026rsquo;re in the main user home directory again):\n./install-pihole.sh Downloading and setting up the pihole container may take some time. Once it is done, you should see a message like this:\nPi-hole running at http://192.168.0.101:8080/admin/ - use password 'piholepwd' to log in. If everything went well, navigating to http://192.168.0.101:8080/admin should lead you to the Pi-Hole login screen. Success! Do not forget to configure your NAS\u0026rsquo;s IP address as the DNS server for your network - this would typically be done in the router settings, for example like so. Additional considerations Since Pi-hole is now the sole resource for DNS resolution, it becomes a critical part of your network infrastructure. If the NAS or Pi-Hole itself stops working or gets disconnected, none of the clients on your network will be able to connect to the internet. This can be easily fixed by rebooting/reconnecting your NAS or simply reverting the router DNS settings to default or, for example, to Cloudflare\u0026rsquo;s 1.1.1.1 DNS server, but you can only do that if you are physically at home (or have other means of connecting to your router). To prevent my loved ones from undergoing the terrible torture of not having access to the internet when I\u0026rsquo;m not at home (and also for general peace of mind), I decided to build redundancy into my Pi-Hole setup: I bought a super-cheap used Raspberry Pi 2 and added it as another Pi-Hole to my home network. I actually use the RPi2 as my primary DNS server and the NAS one as the secondary one (most routers will allow you to specify two DNS servers for your WAN), and have not had any issues with this setup so far. Knock on the wood. Tip: Use the Teleporter feature to easily sync settings between the two Pi-Holes. The setup above persists even through NAS reboots (docker will start automatically, and so will Pi-Hole), and it also survives DSM patches (7.2.x), but I have yet to test whether it survives minor updates (7.x.x). I will update this article with my findings once I have an opportunity to test it. My hunch is that minor updates will be fine, but I am fairly certain that a major update (to DSM8) will likely need a docker reinstall. However, since the scripts are stored in my home folder, SSHing to the NAS and running them again will be minimal effort, should any of the DSM updates disrupt the setup. Support Pi-Hole! Pi-Hole is a wonderful project that objectively improves the digital life of many people. If it is the case for you, consider supporting the creators - surely your privacy on the internet is worth a donation of few bucks.\n","permalink":"https://blog.burkert.me/posts/setting-up-pi-hole-on-synology-nas-ds218play/","summary":"\u003ch2 id=\"intro\"\u003eIntro\u003c/h2\u003e\n\u003cp\u003eAs part of my journey towards higher privacy while using internet, I decided to set up \u003ca href=\"https://pi-hole.net/\" target=\"_blank\" rel=\"noopener\"\u003ePi-hole\u003c/a\u003e on my \u003ca href=\"https://www.synology.com/products/DS218play\" target=\"_blank\" rel=\"noopener\"\u003eSynology NAS DS218play\u003c/a\u003e. If you are reading this article, you probably don\u0026rsquo;t need the following explanation, but just in case: Pi-hole is perhaps the most popular DNS sinkhole, which aims to block ads, trackers and malicious sites for all devices on your local network.\u003c/p\u003e\n\u003cp\u003eNow, your NAS is one of the best candidates for running Pi-hole since it is typically on 24/7 and connected via high-speed wired connection to your router. Since I already was an owner of Synology NAS, I started googling how to set up Pi-hole on my device. There are \u003ca href=\"https://www.synology.com/products/DS218play\" target=\"_blank\" rel=\"noopener\"\u003eplenty\u003c/a\u003e \u003ca href=\"https://mariushosting.com/how-to-install-pi-hole-on-your-synology-nas/\" target=\"_blank\" rel=\"noopener\"\u003eof\u003c/a\u003e \u003ca href=\"https://www.youtube.com/watch?v=bPs2M-GvRtQ\" target=\"_blank\" rel=\"noopener\"\u003ehowto\u0026rsquo;s\u003c/a\u003e \u003ca href=\"https://github.com/markdumay/synology-pihole\" target=\"_blank\" rel=\"noopener\"\u003ewhich\u003c/a\u003e \u003ca href=\"https://erulezz.dev/synology/pi-hole-installation-on-synology-nas-with-docker/\" target=\"_blank\" rel=\"noopener\"\u003edescribe\u003c/a\u003e \u003ca href=\"https://kevquirk.com/how-to-setup-pi-hole-on-a-synology-nas/\" target=\"_blank\" rel=\"noopener\"\u003ethe\u003c/a\u003e \u003ca href=\"https://drfrankenstein.co.uk/pihole-in-docker-on-a-synology-nas/\" target=\"_blank\" rel=\"noopener\"\u003eprocess\u003c/a\u003e, but they have one fatal flaw: they rely on the \u003cem\u003eDocker\u003c/em\u003e (or \u003cem\u003eContainer Manager\u003c/em\u003e, as it was later renamed to) Synology package to be installed and used for the setup. And this is where it starts to get interesting: Docker is not officially supported on ARM-based Synology NASes (such as the \u003cem\u003ej\u003c/em\u003e and \u003cem\u003eplay\u003c/em\u003e models), supposedly \u003ca href=\"https://community.synology.com/enu/forum/17/post/90211\" target=\"_blank\" rel=\"noopener\"\u003edue to insufficient performance of their CPUs\u003c/a\u003e. This means you will not find the packages in the Package Manager and will not be able to install it the usual way.\u003c/p\u003e","title":"Setting Up Pi-Hole on Synology NAS DS218play"},{"content":"Tom Burkert\u0026rsquo;s personal blog focused on technology, privacy, AI and other nerdy stuff. All content is created by myself and/or expresses my opinions (unless otherwise stated).\nI do not run any ads and do not monetize this blog in any other way, but if you want to support me, you can buy me a coffee (or, in reality, probably a tea or a book).\nIf you would like to contact me regarding any of my posts (for a clarification, update, etc.) or just to say hi, please do! Send an email to tomas [at] burkert.me\nMain blog image by the amazing Gustave Courbet.\nBlog tagline (A drawing of a tree shows, not a tree, but a tree-being-looked-at.) by John Berger - Berger on Drawing (p. 71).\n","permalink":"https://blog.burkert.me/about/","summary":"\u003cp\u003e\u003ca href=\"https://burkert.me/\" target=\"_blank\" rel=\"noopener\"\u003eTom Burkert\u003c/a\u003e\u0026rsquo;s personal blog focused on technology, privacy, AI and other nerdy stuff. All content is created by myself and/or expresses my opinions (unless otherwise stated).\u003c/p\u003e\n\u003cp\u003eI do not run any ads and do not monetize this blog in any other way, but if you want to support me, you can \u003ca href=\"https://www.buymeacoffee.com/tomas.burkert\" target=\"_blank\" rel=\"noopener\"\u003ebuy me a coffee\u003c/a\u003e (or, in reality, probably a tea or a book).\u003c/p\u003e\n\u003cp\u003eIf you would like to contact me regarding any of my posts (for a clarification, update, etc.) or just to say hi, please do! Send an email to \u003cem\u003etomas [at] burkert.me\u003c/em\u003e\u003c/p\u003e","title":"About"},{"content":"The internet is a vast, busy place, which makes finding interesting and authentic content quite problematic. In the early days of blogosphere, it was common for blogs to have the so-called blogrolls: List of links to other blogs and sites. The idea is simple: If you like my blog, there is a good chance you might like at least some other blogs and sites that I read and like. Below is mine!\nTech \u0026amp; AI Simon Willison\u0026rsquo;s Weblog (RSS) Sean Goedecke (RSS) Citation Needed by Molly White (RSS) Pluralistic by Cory Doctorow (RSS) The Neuron (RSS) AI Weirdness (RSS) Ars Technica (RSS) The Verge (RSS) Cassidy Williams (RSS) Juha-Matti Santala (RSS) selfh.st (RSS) Ludicity (RSS) Tech PostScript (RSS) Culture \u0026amp; Art Sentiers (RSS) The Marginalian (RSS) Wild Information (RSS) Kottke (RSS) Going Medieval (RSS) Anil Dash (RSS) Curious About Everything (RSS) The Oatmeal (RSS) The Toilet ov Hell (RSS) Misc Zen Habits (RSS) Muspy (Register and add your favourite artists to get your custom RSS feed) Rest of World (RSS) ","permalink":"https://blog.burkert.me/blogroll/","summary":"\u003cp\u003eThe internet is a vast, busy place, which makes finding interesting and authentic content quite problematic. In the early days of blogosphere, it was common for blogs to have the so-called blogrolls: List of links to other blogs and sites. The idea is simple: If you like my blog, there is a good chance you might like at least some other blogs and sites that I read and like. Below is mine!\u003c/p\u003e","title":"Blogroll"}]