<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Sythos</title>
    <description>The latest articles on DEV Community by Sythos (@sythos).</description>
    <link>https://dev.to/sythos</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3367575%2Fef6e8cf4-7a9a-4572-838f-51db76c50907.png</url>
      <title>DEV Community: Sythos</title>
      <link>https://dev.to/sythos</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/sythos"/>
    <language>en</language>
    <item>
      <title>IRC Never Died</title>
      <dc:creator>Sythos</dc:creator>
      <pubDate>Fri, 25 Sep 2026 10:18:49 +0000</pubDate>
      <link>https://dev.to/sythos/irc-never-died-idn</link>
      <guid>https://dev.to/sythos/irc-never-died-idn</guid>
      <description>&lt;p&gt;Every few years, somebody announces that IRC is dead.&lt;/p&gt;

&lt;p&gt;Usually, the announcement comes from inside a JavaScript application that needs 800 MB of RAM to display three messages and a suspiciously animated emoji.&lt;/p&gt;

&lt;p&gt;But IRC is not dead. It was merely waiting for the rest of the internet to remember how useful text can be.&lt;/p&gt;

&lt;h2&gt;
  
  
  A very short history of not disappearing
&lt;/h2&gt;

&lt;p&gt;IRC — Internet Relay Chat — was born in 1988. It gave the internet channels, nicknames, operators, &lt;code&gt;/join&lt;/code&gt;, &lt;code&gt;/topic&lt;/code&gt;, &lt;code&gt;/me&lt;/code&gt;, and the ability to enter a conversation without first building a personal brand.&lt;/p&gt;

&lt;p&gt;Before feeds, followers, reactions, engagement metrics and notifications that sound like tiny emergency sirens, people joined a channel and talked.&lt;/p&gt;

&lt;p&gt;That basic idea still works remarkably well.&lt;/p&gt;

&lt;p&gt;A technical conversation on IRC can move at an almost suspicious speed:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Someone asks a question.&lt;/li&gt;
&lt;li&gt;Someone else answers.&lt;/li&gt;
&lt;li&gt;The first person asks a follow-up.&lt;/li&gt;
&lt;li&gt;A third person pastes a log or a command.&lt;/li&gt;
&lt;li&gt;Someone discovers the missing semicolon.&lt;/li&gt;
&lt;li&gt;Everybody goes back to work.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;No algorithm has to decide whether the question deserves visibility. No feed has to “boost” the answer. No one has to turn a debugging session into a personal-content strategy.&lt;/p&gt;

&lt;p&gt;Text is not the poor version of a conversation. In technical communities, it is often the most efficient version.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why IRC can be better than social media for technical work
&lt;/h2&gt;

&lt;p&gt;I am not saying that IRC is better for every human activity. I am saying that, for technical discussion, it often has a much better signal-to-noise ratio than mainstream social platforms.&lt;/p&gt;

&lt;p&gt;The conversation is immediate. The context is visible. The channel topic tells you what the room is supposed to be about. People can disagree, repair the answer, and move on without producing a 47-post thread explaining the disagreement.&lt;/p&gt;

&lt;p&gt;There is also less ceremony.&lt;/p&gt;

&lt;p&gt;You do not need to collect followers before asking a question. You do not need to format your message for an algorithm. You do not need to wait for a platform to decide whether your post is “engaging”.&lt;/p&gt;

&lt;p&gt;And trolls? They still exist. IRC is not a magical troll-repellent crystal.&lt;/p&gt;

&lt;p&gt;The difference is that IRC networks and channels usually expose more direct moderation tools. Depending on the network, you have channel operators, voice and half-operator roles, channel modes, bans, quiets, kicks, network operators, services and account controls.&lt;/p&gt;

&lt;p&gt;The exact hierarchy varies, but the general idea is simple: moderation is close to the conversation.&lt;/p&gt;

&lt;p&gt;That often means fewer drive-by disturbances and faster intervention than the classic social-media workflow of “report, wait, receive an automated message, wonder what just happened”.&lt;/p&gt;

&lt;h2&gt;
  
  
  Azzurra: the Italian starting point
&lt;/h2&gt;

&lt;p&gt;If you are in Italy — or simply want to visit an Italian IRC community — Azzurra is the obvious place to look first.&lt;/p&gt;

&lt;p&gt;Azzurra has been online since 1997 and remains one of the longest-running Italian IRC networks. It is Italian in history and atmosphere, but it is not a private club. Everybody is welcome.&lt;/p&gt;

&lt;p&gt;The only thing worth bringing is a little patience.&lt;/p&gt;

&lt;p&gt;Not every channel is primarily English-speaking, and not every conversation will magically switch language because one visitor arrived from another continent. Say hello, read the topic, watch the rhythm of the channel and ask politely. That is not a terrible protocol for real life either.&lt;/p&gt;

&lt;p&gt;I would start by looking for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;#italia&lt;/code&gt;, for general Italian conversation;&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;#linux&lt;/code&gt;, for technical discussions around Linux and free software.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Check the current topic and channel availability when you connect. IRC channels evolve, sleep, wake up again and sometimes change personality without asking anybody for permission.&lt;/p&gt;

&lt;p&gt;You can connect through the &lt;a href="https://webchat.azzurra.chat/" rel="noopener noreferrer"&gt;official Azzurra webchat&lt;/a&gt; or with any IRC client. Azzurra also presents &lt;a href="https://grappa.chat/it/" rel="noopener noreferrer"&gt;Grappa&lt;/a&gt; as an independent third-party way to reach the network from a browser — useful, active, and not a replacement for the official webchat.&lt;/p&gt;

&lt;h2&gt;
  
  
  Libera.Chat and the international side
&lt;/h2&gt;

&lt;p&gt;For a more international free-software crowd, &lt;a href="https://libera.chat/" rel="noopener noreferrer"&gt;Libera.Chat&lt;/a&gt; is the obvious reference point.&lt;/p&gt;

&lt;p&gt;It hosts communities around open-source projects, programming languages, distributions, tools and documentation. You will find channels for Linux, Python, Rust, JavaScript, networking, compilers, editors and plenty of things that have never needed a venture-capital-backed emoji picker.&lt;/p&gt;

&lt;p&gt;If neither Azzurra nor Libera.Chat feels close to your topic, search Google.&lt;/p&gt;

&lt;p&gt;Seriously:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;IRC network &amp;lt;your language&amp;gt;
IRC network &amp;lt;your country&amp;gt;
IRC &amp;lt;your project name&amp;gt;
IRC &amp;lt;your favourite programming language&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;There are more networks and channels than any single directory can explain. Some are enormous, some are tiny, some are quiet until the exact right person appears.&lt;/p&gt;

&lt;p&gt;That is part of the charm.&lt;/p&gt;

&lt;h2&gt;
  
  
  Enter the Grappa biome
&lt;/h2&gt;

&lt;p&gt;The modern reboot that brought me back to this whole subject is &lt;a href="https://github.com/vjt/grappa-irc" rel="noopener noreferrer"&gt;grappa-irc&lt;/a&gt;, described in the origin story &lt;a href="https://sindro.me/posts/2026-04-20-grappa-irc-reinventing-irc-for-2026/" rel="noopener noreferrer"&gt;“grappa-irc: reinventing IRC for 2026”&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The idea is not to replace IRC with a shiny new protocol. It is to keep IRC and add the conveniences people now expect from modern software.&lt;/p&gt;

&lt;p&gt;Grappa acts as an always-on bouncer. It stays connected to the upstream IRC network, keeps the conversation available, and exposes a modern REST and real-time interface to clients.&lt;/p&gt;

&lt;p&gt;The web client does not need to parse raw IRC. It receives structured data, history and events through the server.&lt;/p&gt;

&lt;p&gt;That is a surprisingly sensible boundary.&lt;/p&gt;

&lt;p&gt;You keep the protocol, the channels and the network culture, but you get persistence, mobile access, notifications, history and a client that does not disappear every time your phone decides to save battery.&lt;/p&gt;

&lt;p&gt;There is also an interesting AI thread in the project’s public story. The development pipeline openly describes AI-assisted sessions with a human holding the rulings, and the earlier project write-up talks about an IRC bot experiment.&lt;/p&gt;

&lt;p&gt;The important part is the transparency.&lt;/p&gt;

&lt;p&gt;AI here is most interesting as supervised tooling, testing and documentation support, plus clearly identified experiments. It should not become an invisible vacuum cleaner for everybody’s messages.&lt;/p&gt;

&lt;p&gt;If you bring an LLM-powered bot to a network, read that network’s rules first. Libera.Chat’s current policy requires permission, transparency and human supervision for LLM-enabled bots. Do not drop an uninvited robot into &lt;code&gt;#linux&lt;/code&gt; and call it community outreach.&lt;/p&gt;

&lt;h2&gt;
  
  
  Choose your glass
&lt;/h2&gt;

&lt;p&gt;The Grappa ecosystem is becoming a small biome of clients and bridges.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://github.com/vjt/grappa-irc/tree/main/cicchetto" rel="noopener noreferrer"&gt;Cicchetto&lt;/a&gt;&lt;/strong&gt; is the integrated web PWA. It is installable from the browser, works well on phones and keeps the IRC-shaped experience without forcing the browser to speak raw IRC.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Shottino&lt;/strong&gt; is the CLI counterpart, available inside the &lt;a href="https://github.com/vjt/grappa-irc/tree/main/frontends/shottino" rel="noopener noreferrer"&gt;grappa-irc repository&lt;/a&gt;. With its IRC-server mode, old-school clients such as irssi, WeeChat or HexChat can connect to Grappa as if it were a normal IRC server.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://github.com/LucentW/resentin" rel="noopener noreferrer"&gt;Resentin&lt;/a&gt;&lt;/strong&gt; is a native Android client built separately with Kotlin and Compose.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://github.com/Essency/bicchierino" rel="noopener noreferrer"&gt;Bicchierino&lt;/a&gt;&lt;/strong&gt; is an independent bridge project that exposes a stateless IRC-style facade to Grappa, useful when you want older clients to remain part of the conversation.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://github.com/Sythos/Cordiale" rel="noopener noreferrer"&gt;Cordiale&lt;/a&gt;&lt;/strong&gt; is the newest arrival: a native desktop client written in Rust with Slint. It speaks Grappa’s REST and Phoenix Channels protocol instead of IRC directly, and the project includes links to the &lt;a href="https://github.com/Sythos/Cordiale/releases" rel="noopener noreferrer"&gt;releases&lt;/a&gt;, the &lt;a href="https://github.com/vjt/grappa-irc/blob/main/docs/CLIENT_PROTOCOL.md" rel="noopener noreferrer"&gt;client protocol&lt;/a&gt; and the &lt;a href="https://github.com/vjt/grappa-irc/tree/main/cicchetto" rel="noopener noreferrer"&gt;Cicchetto reference&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Different clients, same general idea: keep IRC’s simplicity, then choose the interface that fits your device and your tolerance for browser tabs.&lt;/p&gt;

&lt;h2&gt;
  
  
  There is a channel for almost everything
&lt;/h2&gt;

&lt;p&gt;IRC is not only for Linux people arguing about init systems.&lt;/p&gt;

&lt;p&gt;You can find channels for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;#linux&lt;/code&gt;;&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;#ai&lt;/code&gt;;&lt;/li&gt;
&lt;li&gt;individual programming languages;&lt;/li&gt;
&lt;li&gt;distributions and desktop environments;&lt;/li&gt;
&lt;li&gt;self-hosting and system administration;&lt;/li&gt;
&lt;li&gt;electronics and hardware;&lt;/li&gt;
&lt;li&gt;art;&lt;/li&gt;
&lt;li&gt;literature;&lt;/li&gt;
&lt;li&gt;cinema;&lt;/li&gt;
&lt;li&gt;music;&lt;/li&gt;
&lt;li&gt;games;&lt;/li&gt;
&lt;li&gt;local communities;&lt;/li&gt;
&lt;li&gt;and wonderfully specific interests that would never survive a social-media recommendation engine.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Some channels are busy. Some are slow. Some are almost empty until somebody asks exactly the right question.&lt;/p&gt;

&lt;p&gt;That is fine. IRC does not promise a constant stream of content. It offers a place where a conversation can begin.&lt;/p&gt;

&lt;h2&gt;
  
  
  So, is IRC back?
&lt;/h2&gt;

&lt;p&gt;Maybe it never left.&lt;/p&gt;

&lt;p&gt;It was still there while we were busy installing increasingly complicated chat applications to reproduce a room, a nickname and a scrolling list of messages.&lt;/p&gt;

&lt;p&gt;Pick a network. Pick a client. Join a channel. Read the topic. Say hello.&lt;/p&gt;

&lt;p&gt;Try Azzurra if you want an Italian starting point. Try Libera.Chat for international free-software communities. Search for other networks near your language or interests.&lt;/p&gt;

&lt;p&gt;And if somebody tells you IRC is dead, send them a &lt;code&gt;/me raises a glass&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;The banner image was generated with AI for illustration. I am spectacularly bad at the artistic stuff, so I let the machine handle the neon, the robot and the suspiciously well-stocked bar.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>irc</category>
      <category>opensource</category>
      <category>linux</category>
    </item>
    <item>
      <title>[Boost]</title>
      <dc:creator>Sythos</dc:creator>
      <pubDate>Mon, 07 Sep 2026 22:58:10 +0000</pubDate>
      <link>https://dev.to/sythos/-515i</link>
      <guid>https://dev.to/sythos/-515i</guid>
      <description>&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/felipejac/debian-starts-voting-on-aillm-contributions-for-future-development-15on" class="crayons-story__hidden-navigation-link"&gt;Debian Starts Voting on AI/LLM Contributions for Future Development&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/felipejac" class="crayons-avatar  crayons-avatar--l  "&gt;
            &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2811654%2F7af44bb1-c349-47fb-80a5-e1661ce33359.png" alt="felipejac profile" class="crayons-avatar__image" width="96" height="96"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/felipejac" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Felipe L
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Felipe L
                
                
              
              &lt;div id="story-author-preview-content-4435885" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/felipejac" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&gt;
                        &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2811654%2F7af44bb1-c349-47fb-80a5-e1661ce33359.png" class="crayons-avatar__image" alt="" width="96" height="96"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Felipe L&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/felipejac/debian-starts-voting-on-aillm-contributions-for-future-development-15on" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Aug 19&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/felipejac/debian-starts-voting-on-aillm-contributions-for-future-development-15on" id="article-link-4435885"&gt;
          Debian Starts Voting on AI/LLM Contributions for Future Development
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/debian"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;debian&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/ai"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;ai&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/llm"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;llm&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/automation"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;automation&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/felipejac/debian-starts-voting-on-aillm-contributions-for-future-development-15on" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/fire-f60e7a582391810302117f987b22a8ef04a2fe0df7e3258a5f49332df1cec71e.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;1&lt;span class="hidden s:inline"&gt;&amp;nbsp;reaction&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/felipejac/debian-starts-voting-on-aillm-contributions-for-future-development-15on#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              &lt;span class="hidden s:inline"&gt;Add&amp;nbsp;Comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            2 min read
          &lt;/small&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


</description>
    </item>
    <item>
      <title>CERN Is Moving 2,200 Accelerator Systems to Debian 13 — No USB Stick Required</title>
      <dc:creator>Sythos</dc:creator>
      <pubDate>Mon, 07 Sep 2026 22:07:02 +0000</pubDate>
      <link>https://dev.to/sythos/cern-is-moving-2200-accelerator-systems-to-debian-13-no-usb-stick-required-48ab</link>
      <guid>https://dev.to/sythos/cern-is-moving-2200-accelerator-systems-to-debian-13-no-usb-stick-required-48ab</guid>
      <description>&lt;p&gt;This is one of those Linux stories that deserves attention even beyond the usual distro wars.&lt;/p&gt;

&lt;p&gt;By the end of 2026, CERN plans to move more than 2,200 industrial computers and embedded systems to Debian 13 “Trixie”. These machines are connected to roughly 17,000 devices spread across an area of about 43 square kilometres.&lt;/p&gt;

&lt;p&gt;So no, this is not a researcher replacing the operating system on a laptop between two coffee breaks. Linux is moving directly into one of the most complex scientific infrastructures on the planet.&lt;/p&gt;

&lt;h2&gt;
  
  
  The backstory matters
&lt;/h2&gt;

&lt;p&gt;For many years, CERN lived in the Red Hat ecosystem: first with Scientific Linux, developed in part by CERN and Fermilab, and later with CentOS.&lt;/p&gt;

&lt;p&gt;Then CentOS Linux changed direction. Red Hat discontinued the traditional model and moved the project towards CentOS Stream.&lt;/p&gt;

&lt;p&gt;That was a perfectly legitimate business decision, of course. But when an organisation chooses CentOS specifically for its stability, predictability and long life cycles, a few eyebrows may go up.&lt;/p&gt;

&lt;p&gt;Probably in Geneva too.&lt;/p&gt;

&lt;p&gt;The CERN problem was very practical. Continuing down the expected migration path could have required changing not only software, but also a significant amount of specialised hardware.&lt;/p&gt;

&lt;p&gt;A 2023 risk assessment considered a scenario involving:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;roughly CHF 5.4 million in costs;&lt;/li&gt;
&lt;li&gt;redesigning 11 electronic boards;&lt;/li&gt;
&lt;li&gt;rack modifications;&lt;/li&gt;
&lt;li&gt;extensive rewiring;&lt;/li&gt;
&lt;li&gt;many hours of work from technicians and engineers;&lt;/li&gt;
&lt;li&gt;and an estimated success probability of around 20%.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;At some point, someone probably remembered an old and rather useful feature of software:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;You can change it.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Hardware invoices are usually less flexible.&lt;/p&gt;

&lt;h2&gt;
  
  
  Change the software, not the accelerator
&lt;/h2&gt;

&lt;p&gt;Instead of modifying a mountain of perfectly functional hardware to fit a new operating system, CERN chose the opposite direction.&lt;/p&gt;

&lt;p&gt;The goal was to make its software less dependent on one specific Linux distribution and select a platform that fitted the existing infrastructure more naturally.&lt;/p&gt;

&lt;p&gt;The choice fell on Debian 13 “Trixie”.&lt;/p&gt;

&lt;p&gt;Naturally, this does not mean inserting a USB stick into 2,200 machines, clicking “Install Debian”, and going out for coffee.&lt;/p&gt;

&lt;p&gt;The migration includes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;software distribution systems;&lt;/li&gt;
&lt;li&gt;boot procedures;&lt;/li&gt;
&lt;li&gt;drivers for specialised hardware;&lt;/li&gt;
&lt;li&gt;and, most importantly, the gradual removal of distribution-specific dependencies.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;There is another small detail: these systems control particle accelerators.&lt;/p&gt;

&lt;p&gt;That means updates and migrations have to be coordinated with maintenance windows and the operational calendar of the accelerators.&lt;/p&gt;

&lt;p&gt;The classic Friday afternoon deploy followed by “What could possibly go wrong?” is probably considered a crime against humanity here.&lt;/p&gt;

&lt;h2&gt;
  
  
  Debian at CERN does not mean “Red Hat is gone”
&lt;/h2&gt;

&lt;p&gt;There is an important clarification behind some of the headlines: CERN is not abandoning Red Hat or its wider ecosystem completely.&lt;/p&gt;

&lt;p&gt;The move to Debian focuses on industrial and embedded systems used for accelerator control.&lt;/p&gt;

&lt;p&gt;Other parts of the infrastructure, including datacentres and systems used by the experiments, will continue to use platforms such as RHEL and AlmaLinux.&lt;/p&gt;

&lt;p&gt;Still, the decision is significant.&lt;/p&gt;

&lt;p&gt;Debian is a community distribution that has spent three decades prioritising stability, compatibility and predictability instead of reinventing itself commercially every few years.&lt;/p&gt;

&lt;p&gt;Now it is going to run thousands of systems belonging to one of the most advanced scientific infrastructures in the world.&lt;/p&gt;

&lt;p&gt;There is also a nice bit of irony here. After all the changes around CentOS, one of the world’s most important scientific organisations ended up choosing a distribution famous for a very simple philosophy:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;It will be released when it is ready.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;When you are controlling a particle accelerator, that may not be a bad philosophy at all.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sources and further reading
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://micronews.debian.org/2026/1788286274.html" rel="noopener noreferrer"&gt;Debian Micronews — CERN’s industrial and embedded systems moving to Debian 13&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://meetings-archive.debian.net/pub/debian-meetings/2026/MiniDebConf-Winterthur/ch2026-53-controlling-cerns-accelerators-with-debian.av1.webm" rel="noopener noreferrer"&gt;MiniDebConf Winterthur — “Controlling CERN’s Accelerators with Debian”&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://linux.web.cern.ch/debian/" rel="noopener noreferrer"&gt;Linux @ CERN — Debian&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Image note
&lt;/h2&gt;

&lt;p&gt;The banner image was generated with AI for illustrative purposes. I’m hopeless at the artistic stuff, so I let the machine handle the drawing. It is not an official CERN photograph or communication.&lt;/p&gt;

</description>
      <category>linux</category>
      <category>debian</category>
      <category>opensource</category>
      <category>devops</category>
    </item>
    <item>
      <title>Gulo Gulo: An Open-Source, Tenant-Isolated Mail-First Groupware Platform</title>
      <dc:creator>Sythos</dc:creator>
      <pubDate>Sun, 06 Sep 2026 08:48:25 +0000</pubDate>
      <link>https://dev.to/sythos/gulo-gulo-an-open-source-tenant-isolated-mail-first-groupware-platform-3b55</link>
      <guid>https://dev.to/sythos/gulo-gulo-an-open-source-tenant-isolated-mail-first-groupware-platform-3b55</guid>
      <description>&lt;p&gt;Gulo Gulo is an open-source, mail-first groupware platform built from a shared TypeScript core. It is designed for people who want mail, calendars and contacts to live in one tenant-aware service instead of being scattered across unrelated integrations.&lt;/p&gt;

&lt;h2&gt;
  
  
  One core, three deployment paths
&lt;/h2&gt;

&lt;p&gt;The project supports three practical deployment targets:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Standalone&lt;/strong&gt; for a Linux host under the operator's control.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;cPanel&lt;/strong&gt; for hosting environments where the panel already owns the account and DNS workflow.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Plesk&lt;/strong&gt; for Debian or Ubuntu-oriented hosting environments.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;All three targets are built from the same TypeScript source. The packaging boundary stays specific to the operating environment, while the groupware contracts remain shared and testable.&lt;/p&gt;

&lt;h2&gt;
  
  
  Mail, calendars and contacts
&lt;/h2&gt;

&lt;p&gt;Gulo Gulo is mail-first, but it is not limited to a mailbox view. The platform brings together:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;webmail and tenant-isolated mail operations;&lt;/li&gt;
&lt;li&gt;calendars through &lt;strong&gt;CalDAV&lt;/strong&gt;;&lt;/li&gt;
&lt;li&gt;address books through &lt;strong&gt;CardDAV&lt;/strong&gt;;&lt;/li&gt;
&lt;li&gt;quotas, retention and audit policy;&lt;/li&gt;
&lt;li&gt;tenant-scoped identity and data boundaries.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The CalDAV and CardDAV contracts cover interoperable iCalendar and vCard data, conditional writes, ETags, sync tokens and tombstones. Discovery endpoints provide the usual &lt;code&gt;.well-known&lt;/code&gt; and service metadata, with a safe manual fallback when a client cannot discover the service automatically.&lt;/p&gt;

&lt;p&gt;The browser surface keeps calendar and contact views deliberately readable, while the authenticated DAV endpoints provide the protocol surface for compatible clients. The project still documents the boundary honestly: real-world verification against every external mail server and every CalDAV/CardDAV client remains a deployment responsibility.&lt;/p&gt;

&lt;h2&gt;
  
  
  Working with existing hosting panels
&lt;/h2&gt;

&lt;p&gt;If a domain already runs on cPanel or Plesk, Gulo Gulo can sit behind the existing panel rather than replacing the whole hosting account. The panel may continue to own hosting and DNS workflow; Gulo Gulo owns groupware policy, identity, mail, calendars, contacts, quotas, retention and audit.&lt;/p&gt;

&lt;p&gt;That integration is deliberately tenant-bound and read-only today. Provider-specific reconciliation is kept separate from the core so that the boundary stays understandable and reversible.&lt;/p&gt;

&lt;p&gt;Every deployment still needs a local SMTP/IMAP service reachable by the application. Gulo Gulo connects to that mail service as a client; it does not pretend that a package install alone creates a complete mail infrastructure.&lt;/p&gt;

&lt;h2&gt;
  
  
  A project that keeps its operational edges visible
&lt;/h2&gt;

&lt;p&gt;The repository includes security, data, interoperability and operations contracts, along with install and upgrade documentation. The current distributable artifacts are operator-facing archives, and the README records where field verification is still required instead of presenting CI as proof of production deployment.&lt;/p&gt;

&lt;p&gt;Gulo Gulo is released under the MIT License.&lt;/p&gt;

&lt;h2&gt;
  
  
  Transparency note
&lt;/h2&gt;

&lt;p&gt;AI-assisted tools are used for test tools and documentation review, including GitHub test-workflow work. Gulo Gulo itself is not an AI product.&lt;/p&gt;

&lt;h2&gt;
  
  
  Explore Gulo Gulo
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://sythos.github.io/GuloGulo/" rel="noopener noreferrer"&gt;Project documentation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/Sythos/GuloGulo" rel="noopener noreferrer"&gt;GitHub repository&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>groupware</category>
      <category>caldav</category>
      <category>webdev</category>
      <category>linux</category>
    </item>
    <item>
      <title>JS Barcode Universal SDK: Read &amp; Write 1D and 2D Barcodes</title>
      <dc:creator>Sythos</dc:creator>
      <pubDate>Wed, 02 Sep 2026 12:10:32 +0000</pubDate>
      <link>https://dev.to/sythos/js-barcode-universal-sdk-read-write-1d-and-2d-barcodes-28dm</link>
      <guid>https://dev.to/sythos/js-barcode-universal-sdk-read-write-1d-and-2d-barcodes-28dm</guid>
      <description>&lt;h2&gt;
  
  
  JS Barcode Universal SDK: Read and Write 1D and 2D Barcodes Anywhere
&lt;/h2&gt;

&lt;p&gt;What started as a small JavaScript barcode experiment has grown into a full JavaScript and TypeScript SDK for creating, detecting, and reading barcodes across browsers and Node.js.&lt;/p&gt;

&lt;p&gt;The goal was simple: keep barcode handling portable, transparent, dependency-free, and useful in real projects without tying it to a specific framework, operating system, or proprietary runtime.&lt;/p&gt;

&lt;h2&gt;
  
  
  Source code on GitHub
&lt;/h2&gt;

&lt;p&gt;The complete source code, tests, examples, and release history are available here:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/Sythos/JS_Barcode_Universal" rel="noopener noreferrer"&gt;JS Barcode Universal on GitHub&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Feel free to inspect the implementation, open an issue, or contribute.&lt;/p&gt;

&lt;h2&gt;
  
  
  From JavaScript to JavaScript plus TypeScript
&lt;/h2&gt;

&lt;p&gt;The SDK started as a JavaScript-only project.&lt;/p&gt;

&lt;p&gt;TypeScript support was added later, with declarations and typed APIs kept in sync with the JavaScript implementation. The result is a library that works naturally in both ecosystems:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;JavaScript and ESM imports&lt;/li&gt;
&lt;li&gt;TypeScript projects with typed APIs&lt;/li&gt;
&lt;li&gt;Browser applications&lt;/li&gt;
&lt;li&gt;Web Workers&lt;/li&gt;
&lt;li&gt;Node.js services&lt;/li&gt;
&lt;li&gt;HTML5 pages served by any standard HTTP server&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The minimum setup is intentionally straightforward: use Node.js for server-side work, or serve an HTML5 page through an HTTP server for browser-based generation and reading.&lt;/p&gt;

&lt;p&gt;No platform-specific barcode runtime is required.&lt;/p&gt;

&lt;h2&gt;
  
  
  One SDK for generation, detection, and reading
&lt;/h2&gt;

&lt;p&gt;The project includes examples and reusable snippets for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Creating barcodes&lt;/li&gt;
&lt;li&gt;Detecting supported formats automatically&lt;/li&gt;
&lt;li&gt;Reading barcode content&lt;/li&gt;
&lt;li&gt;Processing image data from files, canvases, or cameras&lt;/li&gt;
&lt;li&gt;Running repeated camera scans&lt;/li&gt;
&lt;li&gt;Handling both monochrome and color barcode workflows&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The examples are deliberately practical rather than decorative. They show the expected integration pattern without forcing a particular application architecture.&lt;/p&gt;

&lt;p&gt;The SDK supports black-and-white barcodes, traditional 1D formats, matrix codes, and 2D color-capable formats. Generation, detection, and decoding are covered consistently, so color matrix and 2D formats are not treated as second-class citizens.&lt;/p&gt;

&lt;h2&gt;
  
  
  Modern browser rendering
&lt;/h2&gt;

&lt;p&gt;When a modern browser exposes WebGPU, barcode generation can use its integrated GPU rendering pipeline.&lt;/p&gt;

&lt;p&gt;If WebGPU is not available, the renderer falls back to WebGL. This keeps the same API usable across newer and older browser environments while still taking advantage of hardware acceleration where possible.&lt;/p&gt;

&lt;p&gt;The idea is not to make every browser look like a game engine. It is simply to use the graphics capabilities already available in the browser when they are useful.&lt;/p&gt;

&lt;h2&gt;
  
  
  Zero runtime dependencies
&lt;/h2&gt;

&lt;p&gt;The SDK does not require external runtime libraries.&lt;/p&gt;

&lt;p&gt;It is fully open source, released under the MIT License, and distributed without hidden precompiled components. The shipped implementation is inspectable source code rather than a black box wrapped around a proprietary engine.&lt;/p&gt;

&lt;p&gt;That makes it easier to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Audit the implementation&lt;/li&gt;
&lt;li&gt;Bundle it for web applications&lt;/li&gt;
&lt;li&gt;Run it in controlled environments&lt;/li&gt;
&lt;li&gt;Adapt it to internal tooling&lt;/li&gt;
&lt;li&gt;Review the code before deployment&lt;/li&gt;
&lt;li&gt;Keep production installations lightweight&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Development and testing tools may be used during project maintenance, but the published SDK itself remains dependency-free at runtime.&lt;/p&gt;

&lt;h2&gt;
  
  
  Documentation and examples
&lt;/h2&gt;

&lt;p&gt;The complete documentation is available on the project website:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://sythos.github.io/JS_Barcode_Universal/" rel="noopener noreferrer"&gt;JS Barcode Universal documentation&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It includes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Installation and import examples&lt;/li&gt;
&lt;li&gt;Browser and Node.js usage&lt;/li&gt;
&lt;li&gt;Generation workflows&lt;/li&gt;
&lt;li&gt;Automatic detection&lt;/li&gt;
&lt;li&gt;Camera reading&lt;/li&gt;
&lt;li&gt;Supported formats and variants&lt;/li&gt;
&lt;li&gt;TypeScript usage&lt;/li&gt;
&lt;li&gt;Rendering options&lt;/li&gt;
&lt;li&gt;Security and input-handling guidance&lt;/li&gt;
&lt;li&gt;Licensing notes&lt;/li&gt;
&lt;li&gt;Format-specific limitations&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The repository also contains standalone examples for creating, detecting, and reading barcodes so you can start experimenting without first building an entire application around the SDK.&lt;/p&gt;

&lt;h2&gt;
  
  
  Available through npm
&lt;/h2&gt;

&lt;p&gt;The package is publicly available on npm:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.npmjs.com/package/@sythos/js_barcode_universal" rel="noopener noreferrer"&gt; &lt;code&gt;@sythos/js_barcode_universal&lt;/code&gt; on npm &lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Install it with:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install&lt;/span&gt; @sythos/js_barcode_universal
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then import the main API or the format-specific modules you need.&lt;/p&gt;

&lt;h2&gt;
  
  
  Format coverage and legal transparency
&lt;/h2&gt;

&lt;p&gt;The formats included in the SDK were reviewed against public technical and licensing information to confirm that they could be used, reused, distributed royalty-free, or otherwise included without known blocking restrictions for this project.&lt;/p&gt;

&lt;p&gt;That review is documented rather than hidden.&lt;/p&gt;

&lt;p&gt;Some formats are intentionally not included because their patents, trademarks, licensing terms, or platform restrictions make them unsuitable for an MIT-licensed, independent SDK. The documentation identifies those exclusions and explains the reason for keeping them outside the core package.&lt;/p&gt;

&lt;p&gt;Open source is much more useful when the boundaries are clear.&lt;/p&gt;

&lt;h2&gt;
  
  
  A small note about AI
&lt;/h2&gt;

&lt;p&gt;AI was used extensively to help design and maintain the test suites and to keep the documentation under control. It was not used as the shipped runtime implementation of the SDK.&lt;/p&gt;

&lt;p&gt;This project also comes with a slightly unusual historical footnote: for roughly one third of a century, I had not written a single line of source code. So yes, I leaned heavily on AI to keep up with testing, documentation, and the general paperwork surrounding the project.&lt;/p&gt;

&lt;p&gt;I grew up with the old rule:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“If I struggle to write it, you’ll struggle to read it.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Apparently, the industry eventually decided to give us better tools. About time.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try it, inspect it, improve it
&lt;/h2&gt;

&lt;p&gt;JS Barcode Universal is intended to be useful both as a ready-to-use SDK and as a readable foundation for developers who want to understand how barcode generation and reading work in JavaScript and TypeScript.&lt;/p&gt;

&lt;p&gt;If you need a lightweight barcode toolkit that works in browsers and Node.js, supports both 1D and 2D formats, and does not hide the implementation behind precompiled binaries, give it a try.&lt;/p&gt;

&lt;p&gt;The project is open, the license is MIT, and the documentation is waiting for your experiments.&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>typescript</category>
      <category>showdev</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
