Congratulations!

[Valid RSS] This is a valid RSS feed.

Recommendations

This feed is valid, but interoperability with the widest range of feed readers could be improved by implementing the following recommendations.

Source: http://planet.ubuntu.com/rss20.xml

  1. <?xml version="1.0"?>
  2. <rss version="2.0">
  3.  
  4. <channel>
  5. <title>Planet Ubuntu</title>
  6. <link>http://planet.ubuntu.com/</link>
  7. <language>en</language>
  8. <description>Planet Ubuntu - http://planet.ubuntu.com/</description>
  9.  
  10. <item>
  11. <title>Faizul &quot;Piju&quot; 9M2PJU: Empower Your Cybersecurity Journey with Linux: Why Ubuntu is the Perfect Starting Point</title>
  12. <guid isPermaLink="false">https://hamradio.my/?p=2647</guid>
  13. <link>https://hamradio.my/empower-your-cybersecurity-journey-with-linux-why-ubuntu-is-the-perfect-starting-point/</link>
  14. <description>&lt;p&gt;In the ever-evolving landscape of cybersecurity, staying ahead of potential threats is paramount. With the proliferation of digital technologies and the increasing interconnectedness of our world, the need for robust cybersecurity measures has never been more pressing. And in this digital battleground, one platform stands out as a powerful ally: Linux.&lt;/p&gt;
  15.  
  16.  
  17.  
  18. &lt;p&gt;Linux, with its open-source nature and inherent security features, has long been favored by cybersecurity professionals and enthusiasts alike. Among the myriad of Linux distributions available, Ubuntu shines as an excellent choice for those looking to dive into the world of cybersecurity. But why Ubuntu, and how does it contribute to empowering cybersecurity efforts?&lt;/p&gt;
  19.  
  20.  
  21.  
  22. &lt;h3 class=&quot;wp-block-heading&quot;&gt;Ubuntu: The Gateway to Linux&lt;/h3&gt;
  23.  
  24.  
  25.  
  26. &lt;p&gt;Ubuntu, known for its user-friendly interface and extensive community support, serves as the perfect gateway to the world of Linux. Whether you’re a seasoned cybersecurity expert or a novice eager to learn, Ubuntu’s accessibility makes it an ideal starting point. Its intuitive design and vast repository of software packages make it easy to get started, even for those with limited technical expertise.&lt;/p&gt;
  27.  
  28.  
  29.  
  30. &lt;h3 class=&quot;wp-block-heading&quot;&gt;Building Your Arsenal: Penetration Testing and Beyond&lt;/h3&gt;
  31.  
  32.  
  33.  
  34. &lt;p&gt;While specialized penetration testing Linux distributions exist, such as Kali Linux, there’s immense value in learning how to tailor your own cybersecurity toolkit using Ubuntu. By understanding the underlying principles of Linux and its ecosystem, you gain the flexibility to customize your environment to suit your specific needs.&lt;/p&gt;
  35.  
  36.  
  37.  
  38. &lt;p&gt;With Ubuntu as your foundation, you can explore a plethora of cybersecurity tools and techniques, ranging from network scanning and vulnerability assessment to intrusion detection and digital forensics. Whether you’re delving into ethical hacking, threat hunting, or incident response, Ubuntu provides the framework upon which you can build your expertise.&lt;/p&gt;
  39.  
  40.  
  41.  
  42. &lt;h3 class=&quot;wp-block-heading&quot;&gt;The Power of Linux in Cybersecurity&lt;/h3&gt;
  43.  
  44.  
  45.  
  46. &lt;p&gt;In today’s cybersecurity landscape, proficiency in Linux is no longer merely advantageous—it’s essential. Many of the most powerful and widely-used cybersecurity tools are developed specifically for Linux environments. From industry-standard tools like Wireshark and Nmap to specialized frameworks like Metasploit and Snort, Linux serves as the platform of choice for cybersecurity professionals worldwide.&lt;/p&gt;
  47.  
  48.  
  49.  
  50. &lt;p&gt;Moreover, Linux’s robust security features, including granular access controls, robust privilege separation, and mandatory access controls, make it inherently more secure than many other operating systems. By mastering Linux, you not only gain access to a vast array of cybersecurity tools but also develop a deeper understanding of core security principles.&lt;/p&gt;
  51.  
  52.  
  53.  
  54. &lt;h3 class=&quot;wp-block-heading&quot;&gt;Conclusion: Empowering Your Cybersecurity Journey&lt;/h3&gt;
  55.  
  56.  
  57.  
  58. &lt;p&gt;In the realm of cybersecurity, knowledge is power. And when it comes to mastering the tools and techniques necessary to safeguard digital assets and mitigate cyber threats, Linux reigns supreme. Ubuntu, with its user-friendly interface and extensive support, provides the perfect entry point for aspiring cybersecurity professionals to explore the world of Linux.&lt;/p&gt;
  59.  
  60.  
  61.  
  62. &lt;p&gt;By harnessing the power of Linux, you not only equip yourself with the tools needed to defend against cyber threats but also gain invaluable insights into the inner workings of digital security. So, whether you’re just starting your cybersecurity journey or seeking to expand your skill set, embrace Linux, empower yourself, and fortify your defenses in the ever-escalating battle against cyber adversaries.&lt;/p&gt;
  63. &lt;p&gt;The post &lt;a href=&quot;https://hamradio.my/empower-your-cybersecurity-journey-with-linux-why-ubuntu-is-the-perfect-starting-point/&quot;&gt;Empower Your Cybersecurity Journey with Linux: Why Ubuntu is the Perfect Starting Point&lt;/a&gt; appeared first on &lt;a href=&quot;https://hamradio.my&quot;&gt;9M2PJU - Malaysian Ham Radio Operator&lt;/a&gt; by &lt;a href=&quot;https://hamradio.my/author/9m2pju/&quot;&gt;9M2PJU&lt;/a&gt;.&lt;/p&gt;</description>
  64. <pubDate>Sun, 05 May 2024 06:42:25 +0000</pubDate>
  65. </item>
  66. <item>
  67. <title>Faizul &quot;Piju&quot; 9M2PJU: Embrace Ubuntu: A Financially Savvy Guide to Ditching Microsoft Windows and Prioritizing Security, Privacy, and Savings</title>
  68. <guid isPermaLink="false">https://hamradio.my/?p=2644</guid>
  69. <link>https://hamradio.my/embrace-ubuntu-a-financially-savvy-guide-to-ditching-microsoft-windows-and-prioritizing-security-privacy-and-savings/</link>
  70. <description>&lt;p&gt;In an era where digital empowerment and financial prudence are increasingly intertwined, the decision to transition from Microsoft Windows to Ubuntu Linux and open-source alternatives isn’t just about embracing a new operating system; it’s about making a strategic choice for your wallet, your digital security, and your privacy. In this blog post, we’ll explore how you can seamlessly replace Microsoft Windows and its top applications with Ubuntu Linux and open-source alternatives while reaping significant financial benefits and enhancing your security and privacy.&lt;/p&gt;
  71.  
  72.  
  73.  
  74. &lt;h3 class=&quot;wp-block-heading&quot;&gt;Understanding the Financial Impact&lt;/h3&gt;
  75.  
  76.  
  77.  
  78. &lt;p&gt;The financial implications of operating systems and software choices extend far beyond the upfront costs of licenses and subscriptions. Hidden expenses such as upgrade fees, maintenance costs, and vendor lock-in can quickly add up, draining resources and limiting financial flexibility. By migrating to Ubuntu Linux and open-source applications, individuals and organizations can unlock a myriad of financial advantages while prioritizing security and privacy:&lt;/p&gt;
  79.  
  80.  
  81.  
  82. &lt;ol&gt;
  83. &lt;li&gt;&lt;strong&gt;Cost Savings&lt;/strong&gt;: Ubuntu Linux is free to download, install, and use, offering a compelling alternative to the costly licensing fees associated with Microsoft Windows. Moreover, open-source applications typically come with no upfront costs, enabling significant savings over time.&lt;/li&gt;
  84.  
  85.  
  86.  
  87. &lt;li&gt;&lt;strong&gt;Reduced Hardware Requirements&lt;/strong&gt;: Ubuntu Linux and many open-source applications are optimized for performance and efficiency, meaning they can run smoothly on older or less powerful hardware. This can extend the lifespan of existing devices, postponing the need for costly hardware upgrades.&lt;/li&gt;
  88.  
  89.  
  90.  
  91. &lt;li&gt;&lt;strong&gt;No Vendor Lock-In&lt;/strong&gt;: Proprietary software often comes with vendor lock-in, making it difficult and expensive to switch to alternative solutions. Ubuntu Linux and open-source applications, on the other hand, offer vendor-neutral platforms, giving users greater freedom and flexibility to choose the tools that best suit their needs without fear of being trapped in a closed ecosystem.&lt;/li&gt;
  92.  
  93.  
  94.  
  95. &lt;li&gt;&lt;strong&gt;Lower Maintenance Costs&lt;/strong&gt;: Ubuntu Linux and open-source applications are known for their stability, security, and ease of maintenance. With a vibrant community of developers and users actively contributing to their improvement, these software solutions often require fewer updates, patches, and troubleshooting efforts, reducing IT support costs in the long run.&lt;/li&gt;
  96. &lt;/ol&gt;
  97.  
  98.  
  99.  
  100. &lt;h3 class=&quot;wp-block-heading&quot;&gt;Prioritizing Security and Privacy&lt;/h3&gt;
  101.  
  102.  
  103.  
  104. &lt;p&gt;Beyond financial considerations, Ubuntu Linux and open-source alternatives offer robust security and privacy features that can help individuals and organizations safeguard their digital assets and personal information:&lt;/p&gt;
  105.  
  106.  
  107.  
  108. &lt;ol&gt;
  109. &lt;li&gt;&lt;strong&gt;Built-in Security Features&lt;/strong&gt;: Ubuntu Linux is renowned for its strong security architecture, including built-in firewall, disk encryption, and secure boot capabilities. Additionally, the open-source nature of the platform allows for continuous security audits and rapid response to vulnerabilities, minimizing the risk of cyber attacks and data breaches.&lt;/li&gt;
  110.  
  111.  
  112.  
  113. &lt;li&gt;&lt;strong&gt;Privacy by Design&lt;/strong&gt;: Unlike proprietary software, which often comes bundled with hidden trackers and data collection mechanisms, open-source applications prioritize user privacy and transparency. By using open-source alternatives for email clients, web browsers, and communication tools, individuals can regain control over their digital footprint and protect their personal information from unauthorized access and surveillance.&lt;/li&gt;
  114.  
  115.  
  116.  
  117. &lt;li&gt;&lt;strong&gt;Community Support and Transparency&lt;/strong&gt;: The open-source community values transparency, accountability, and collaboration, creating a fertile ground for security research, knowledge sharing, and best practices. Users can leverage community forums, security mailing lists, and bug bounty programs to stay informed about emerging threats and implement effective countermeasures to mitigate risks.&lt;/li&gt;
  118. &lt;/ol&gt;
  119.  
  120.  
  121.  
  122. &lt;h3 class=&quot;wp-block-heading&quot;&gt;Transitioning to Ubuntu Linux and Open-Source Alternatives&lt;/h3&gt;
  123.  
  124.  
  125.  
  126. &lt;p&gt;Making the switch from Microsoft Windows and proprietary software to Ubuntu Linux and open-source alternatives may seem daunting at first, but with proper planning and guidance, the transition can be smooth and rewarding. Here’s a step-by-step guide to help you get started:&lt;/p&gt;
  127.  
  128.  
  129.  
  130. &lt;ol&gt;
  131. &lt;li&gt;&lt;strong&gt;Evaluate Your Needs&lt;/strong&gt;: Identify the essential applications and workflows that are critical to your productivity and operations. Research open-source alternatives for each proprietary software you currently use, keeping in mind compatibility, feature parity, and user experience.&lt;/li&gt;
  132.  
  133.  
  134.  
  135. &lt;li&gt;&lt;strong&gt;Test Compatibility&lt;/strong&gt;: Before making the full transition, test Ubuntu Linux and open-source applications in a controlled environment to ensure compatibility with your hardware and workflows. Many open-source solutions offer live CDs or virtual machine images for easy testing.&lt;/li&gt;
  136.  
  137.  
  138.  
  139. &lt;li&gt;&lt;strong&gt;Plan the Migration&lt;/strong&gt;: Develop a comprehensive migration plan outlining the steps, timelines, and resources required to transition from Microsoft Windows to Ubuntu Linux and open-source applications. Consider factors such as data migration, user training, and technical support to minimize disruptions during the transition period.&lt;/li&gt;
  140.  
  141.  
  142.  
  143. &lt;li&gt;&lt;strong&gt;Provide Training and Support&lt;/strong&gt;: Invest in user training and technical support to help your team adapt to the new operating system and software environment. Leverage online tutorials, documentation, and community forums to empower users with the knowledge and skills they need to thrive on Ubuntu Linux.&lt;/li&gt;
  144.  
  145.  
  146.  
  147. &lt;li&gt;&lt;strong&gt;Monitor and Optimize&lt;/strong&gt;: Continuously monitor the performance, security, and user satisfaction metrics after the migration to Ubuntu Linux and open-source applications. Solicit feedback from users and stakeholders to identify areas for improvement and optimization, ensuring a seamless transition and maximum ROI.&lt;/li&gt;
  148. &lt;/ol&gt;
  149.  
  150.  
  151.  
  152. &lt;h3 class=&quot;wp-block-heading&quot;&gt;Conclusion: Empowerment Through Financial Prudence, Security, and Privacy&lt;/h3&gt;
  153.  
  154.  
  155.  
  156. &lt;p&gt;The decision to replace Microsoft Windows and its top applications with Ubuntu Linux and open-source alternatives isn’t just about embracing a new operating system; it’s about making a strategic choice for your financial well-being, your digital security, and your privacy. By leveraging the cost savings, flexibility, and performance advantages of Ubuntu Linux and open-source software, individuals and organizations can unlock a world of possibilities while safeguarding their financial future and protecting their digital assets. Let us embark on this journey together and embrace the transformative power of open source for a more prosperous, secure, and private digital future.&lt;/p&gt;
  157. &lt;p&gt;The post &lt;a href=&quot;https://hamradio.my/embrace-ubuntu-a-financially-savvy-guide-to-ditching-microsoft-windows-and-prioritizing-security-privacy-and-savings/&quot;&gt;Embrace Ubuntu: A Financially Savvy Guide to Ditching Microsoft Windows and Prioritizing Security, Privacy, and Savings&lt;/a&gt; appeared first on &lt;a href=&quot;https://hamradio.my&quot;&gt;9M2PJU - Malaysian Ham Radio Operator&lt;/a&gt; by &lt;a href=&quot;https://hamradio.my/author/9m2pju/&quot;&gt;9M2PJU&lt;/a&gt;.&lt;/p&gt;</description>
  158. <pubDate>Sun, 05 May 2024 06:16:11 +0000</pubDate>
  159. </item>
  160. <item>
  161. <title>Stuart Langridge: The Pastry Box Project archaeology</title>
  162. <guid isPermaLink="false">tag:www.kryogenix.org,2024-05-03:/days/2024/05/03/the-pastry-box-project-archaeology/</guid>
  163. <link>https://www.kryogenix.org/days/2024/05/03/the-pastry-box-project-archaeology/</link>
  164. <description>&lt;p&gt;Many years ago (2012!) I was invited to be part of “The Pastry Box Project”, which described itself thus:&lt;/p&gt;
  165. &lt;blockquote&gt;Each year, The Pastry Box Project gathers 30 people who are each influential in their field and asks them to share thoughts regarding what they do. Those thoughts are then published every day throughout the year at a rate of one per day, starting January 1st and ending December 31st.&lt;/blockquote&gt;
  166.  
  167. &lt;p&gt;It was interesting. Sadly, it’s dropped off the web (as has its curator, Alex Duloz, as far as I can tell), but thankfully &lt;a href=&quot;https://archive.org&quot;&gt;the Wayback Machine&lt;/a&gt; comes to the rescue once again.&lt;sup id=&quot;sf-the-pastry-box-project-archaeology-1-back&quot;&gt;&lt;a class=&quot;simple-footnote&quot; href=&quot;http://feeds.feedburner.com/kryogenix#sf-the-pastry-box-project-archaeology-1&quot; title=&quot;Also, the writing is all archived at Github!&quot;&gt;1&lt;/a&gt;&lt;/sup&gt; I was quietly proud of some of the things I wrote there (and I was recently asked for a reference to a thing I said which the questioner couldn’t find, which is what made me realise that the site’s not around any more), so I thought I’d republish the stuff I wrote there, here, for ease of finding. This was all written in 2012, and the world has moved on in a few ways since then, a dozen years ago at time of writing, but… I think I’d still stand by most of this stuff. The posts are &lt;a href=&quot;https://web.archive.org/web/20140709052954/https://the-pastry-box-project.net/baker/stuart-langridge&quot;&gt;still at archive.org&lt;/a&gt; and you can get to and read other people’s posts from there too, some of which are really good and worth your time. But here are mine, so I don’t lose them again.&lt;/p&gt;
  168. &lt;h2&gt;Tuesday, 18 December 2012&lt;/h2&gt;
  169. &lt;p&gt;My daughter’s got a smartphone, because, well, everyone has. It has &lt;span class=&quot;caps&quot;&gt;GPS&lt;/span&gt; on it, because, well, every one does. What this means is that she will never understand the concept of being lost.&lt;/p&gt;
  170. &lt;p&gt;Think about that for a second. &lt;em&gt;She won’t ever even know what it &lt;strong&gt;means&lt;/strong&gt; to be lost.&lt;/em&gt;&lt;/p&gt;
  171. &lt;p&gt;Every argument I have in the pub now goes for about ten minutes before someone says, right, we’ve spent long enough arguing now, someone look up the correct answer on Wikipedia. My daughter won’t ever understand the concept of not having a bit of information available, of being confused about a matter of fact.&lt;/p&gt;
  172. &lt;p&gt;A while back, it was decreed that telephone directories are not subject to copyright, that a list of phone numbers is “information alone without a minimum of original creativity” and therefore held no right of ownership.&lt;/p&gt;
  173. &lt;p&gt;What instant access to information has provided us is a world where all the simple matters of fact are now yours; free for the asking. Putting data on the internet is not a skill; it is drudgery, a mechanical task for robots. Ask yourself: why do you buy technical books? It’s not for the information inside: there is no tech book anywhere which actually reveals something which isn’t on the web already. It’s about the voice; about the way it’s written; about how interesting it is. And that &lt;em&gt;is&lt;/em&gt; a skill. Matters of fact are not interesting — they’re useful, right enough, but not interesting. Making those facts available to everyone frees up authors, creators, makers to do authorial creative things. You don’t have to spend all your time collating stuff any more: now you can be Leonardo da Vinci all the time. Be beautiful. Appreciate the people who do things well, rather than just those who manage to do things at all. Prefer those people who make you laugh, or make you think, or make you throw your laptop out of a window with annoyance: who give you a strong reaction to their writing, or their speaking, or their work. Because information wanting to be free is what creates a world of creators. Next time someone wants to build a wall around their little garden, ask yourself: is what you’re paying for, with your time or your money or your personal information, something creative and wonderful? Or are they just mechanically collating information? I hope to spend 2013 enjoying the work of people who do something more than that.&lt;/p&gt;
  174. &lt;h2&gt;Wednesday, 31 October 2012&lt;/h2&gt;
  175. &lt;p&gt;Not everyone who works with technology loves technology. No, really, it’s true! Most of the people out there building stuff with web tech don’t attend conferences, don’t talk about WebGL in the pub, don’t write a blog with &lt;span class=&quot;caps&quot;&gt;CSS3&lt;/span&gt; “experiments” in it, don’t like what they do. It’s a job: come in at 9, go home at 5, don’t think about &lt;span class=&quot;caps&quot;&gt;HTML&lt;/span&gt; outside those hours. Apparently 90% of the stuff in the universe is “dark matter”: undetectable, doesn’t interact with other matter, can’t be seen even with a really big telescope. Our “dark matter developers”, who aren’t part of the community, who barely even know that the community exists… how are we to help them? You can write all the &lt;em&gt;A List Apart&lt;/em&gt; articles you like but dark matter developers don’t read it. And so everyone’s intranet is horrid and Internet-Explorer-specific and so the &lt;span class=&quot;caps&quot;&gt;IE&lt;/span&gt; team have to maintain backwards compatibility with that and that hurts the web. What can we do to reach this huge group of people? Everyone’s written a book about web technologies, and books help, but books are dying. We want to get the word out about all the amazing things that are now possible to everyone: do we know how? Do we even have to care? The theory is that this stuff will “trickle down”, but that doesn’t work for economics: I’m not sure it works for &lt;code&gt;@-moz-keyframes&lt;/code&gt; either. &lt;/p&gt;
  176. &lt;h2&gt;Monday, 8 October 2012&lt;/h2&gt;
  177. &lt;p&gt;The web moves really fast. How many times have you googled for a tutorial on or an example of something and found that the results, written six months or a year or two years ago, no longer work? The syntax has changed, or there’s a better way now, or it never worked right to begin with. You’ll hear people bemoaning this: trying to stop the web moving so quickly in order that knowledge about it doesn’t go out of date. But that ship’s sailed. This is the world we’ve built: it moves fast, and we have to just hat up and deal with it. So, how? How can we make sure that old and wrong advice doesn’t get found? It’s a difficult question, and I don’t think anyone’s seriously trying to answer it. We should try and think of a way. &lt;/p&gt;
  178. &lt;h2&gt;Tuesday, 18 September 2012&lt;/h2&gt;
  179. &lt;p&gt;Software isn’t always a solution to problems. If you’re a developer, everything generally looks like a nail: a nail which is solved by making a new bit of code. I’ve got half-finished mobile apps done for tracking my running with &lt;span class=&quot;caps&quot;&gt;GPS&lt;/span&gt;, for telling me when to switch between running and walking, and… I’m still fat, because I’m writing software instead of &lt;em&gt;going running&lt;/em&gt;. One of the big ideas behind computers was to automate repetitive and boring tasks, certainly, which means that it should work like this: identify a thing that needs doing, do it for a while, think “hm, a computer could do this more easily”, write a bit of software to do it. However, there’s too much premature optimisation going on, so it actually looks like this: identify a thing that needs doing, think “hm, I’m sure a computer would be able to do this more easily”, write a bit of software to do it. See the difference? If the software never gets finished, then in the first approach the thing &lt;em&gt;still gets done&lt;/em&gt;. Don’t always reach for the keyboard: sometimes it’s better to reach for Post-It notes, or your running shoes. &lt;/p&gt;
  180. &lt;h2&gt;Saturday, 18 August 2012&lt;/h2&gt;
  181. &lt;p&gt;Changing the world is within your grasp.&lt;/p&gt;
  182. &lt;p&gt;This is not necessarily a good thing.&lt;/p&gt;
  183. &lt;p&gt;If you go around and talk to normal people, it becomes clear that, weirdly, they don’t ever imagine how to get ten million dollars. They don’t think about new ways to redesign a saucepan or the buttons in their car. They don’t contemplate why sending a parcel is slow and how it could be a slicker process. They don’t think about &lt;em&gt;ways to change the world&lt;/em&gt;.&lt;/p&gt;
  184. &lt;p&gt;I find it hard to talk to someone who doesn’t think like that.&lt;/p&gt;
  185. &lt;p&gt;To an engineer, the world is a toy box full of sub-optimized and feature-poor toys, as Scott Adams once put it. To a designer, the world is full of bad design. And to both, it is not only possible but at a high level &lt;em&gt;obvious&lt;/em&gt; how to (a) fix it (b) for everyone (c) and make a few million out of doing so.&lt;/p&gt;
  186. &lt;p&gt;At first, this seems a blessing: you can see how the world could be better! And make it happen!&lt;/p&gt;
  187. &lt;p&gt;Then it’s a curse. Those normal people I mentioned? Short of winning the lottery or Great Uncle Brewster dying, there’s no possibility of becoming a multi-millionaire, and so they’re not thinking about it. Doors that have a handle on them but say “Push” are not a source of distress. Wrong kerning in signs is not like sandpaper on &lt;em&gt;their&lt;/em&gt; nerves.&lt;/p&gt;
  188. &lt;p&gt;The curse of being able to change the world is… the frustration that you have so far failed to do so.&lt;/p&gt;
  189. &lt;p&gt;Perhaps there is a Zen thing here. Some people have managed it. Maybe you have. So the world is better, and that’s a good thing all by itself, right? &lt;/p&gt;
  190. &lt;h2&gt;Friday, 27 July 2012&lt;/h2&gt;
  191. &lt;p&gt;The best systems are built by people who can accept that no-one will ever know how hard it was to do, and who therefore don’t seek validation by explaining to everyone how hard it was to do.&lt;/p&gt;
  192. &lt;h2&gt;Tuesday, 12 June 2012&lt;/h2&gt;
  193. &lt;p&gt;The most poisonous idea in the world is when you’re told that something which achieved success through lots of hard work actually got there just because it was excellent.&lt;/p&gt;
  194. &lt;h2&gt;Friday, 18 May 2012&lt;/h2&gt;
  195. &lt;p&gt;Ever notice how the things you slave over and work crushingly hard on get less attention, sometimes, than the amusing things you threw together in a couple of evenings?&lt;/p&gt;
  196. &lt;p&gt;I can’t decide whether this is a good thing or not.&lt;/p&gt;
  197. &lt;h2&gt;Thursday, 5 April 2012&lt;/h2&gt;
  198. &lt;p&gt;It’s &lt;span class=&quot;caps&quot;&gt;OK&lt;/span&gt; to not want to build websites for everybody and every browser. Making something which is super-dynamic in Chrome 18 and also works excellently in w3m is jolly hard work, and a lot of the time you might well be justified in thinking it’s not worth it. If your site stats, or your belief, or your prediction of the market’s direction, or your favourite pundit tell you that the best use of your time is to only support browsers with &lt;code&gt;querySelector&lt;/code&gt;, or only support browsers with JavaScript, or only support WebKit, or only support iOS Safari, then that’s a reasonable decision to make; don’t let anyone else tell you what your relationship with your users and customers and clients is, because you know better than them.&lt;/p&gt;
  199. &lt;p&gt;Just don’t confuse what you’re doing with supporting “the web”. State your assumptions up front. Own your decisions, and be prepared to back them up, for your project. If you’re building something which doesn’t work in &lt;span class=&quot;caps&quot;&gt;IE6&lt;/span&gt;, that requires JavaScript, that requires mobile WebKit, that requires Opera Mobile, then you &lt;em&gt;are&lt;/em&gt; letting some people down. That’s &lt;span class=&quot;caps&quot;&gt;OK&lt;/span&gt;; you’ve decided to do that. But your view’s no more valid than theirs, for a project you didn’t build. Make your decisions, and state what the axioms you worked from were, and then everyone else can judge whether what you care about is what they care about. Just don’t push your view as being what everyone else should do, and we’ll all be fine.&lt;/p&gt;
  200. &lt;h2&gt;Sunday, 18 March 2012&lt;/h2&gt;
  201. &lt;p&gt;Publish and be damned, said the Duke of Wellington; these days, in between starting wars in France and being sick of everyone repeating the jokes about his name from Blackadder, he’d probably say that we should publish &lt;em&gt;or&lt;/em&gt; be damned. If you’re anything like me, you’ve got folders full of little experiments that you never got around to finishing or that didn’t pan out. Put ’em up somewhere. These things are useful.&lt;/p&gt;
  202. &lt;p&gt;Twitter, autobiographies, collections of letters from authors, all these have shown us that the minutiae can be as fascinating as carefully curated and sieved and measured writings, and who knows what you’ll inspire the next person to do from the germ of one of your ideas?&lt;/p&gt;
  203. &lt;h2&gt;Monday, 27 February 2012&lt;/h2&gt;
  204. &lt;p&gt;There’s a lot to think about when you’re building something on the web. Is it accessible? How do I handle translations of the text? Is the design &lt;span class=&quot;caps&quot;&gt;OK&lt;/span&gt; on a 320px-wide screen? On a 2320px-wide screen? Does it work in &lt;span class=&quot;caps&quot;&gt;IE8&lt;/span&gt;? In Android 4.0? In Opera Mini? Have I minimized the number of &lt;span class=&quot;caps&quot;&gt;HTTP&lt;/span&gt; requests my page requires? Is my JavaScript minified? Are my images responsive? Is Google Analytics hooked up properly? AdSense? Am I handling Unicode text properly? Avoiding &lt;span class=&quot;caps&quot;&gt;CSRF&lt;/span&gt;? &lt;span class=&quot;caps&quot;&gt;XSS&lt;/span&gt;? Have I encoded my videos correctly? Crushed my pngs? Made a print stylesheet?&lt;/p&gt;
  205. &lt;p&gt;We’ve come a long way since:&lt;/p&gt;
  206. &lt;pre&gt;&lt;code&gt;&amp;lt;HEADER&amp;gt;
  207. &amp;lt;TITLE&amp;gt;The World Wide Web project&amp;lt;/TITLE&amp;gt;
  208. &amp;lt;NEXTID N=&quot;55&quot;&amp;gt;
  209. &amp;lt;/HEADER&amp;gt;
  210. &amp;lt;BODY&amp;gt;
  211. &amp;lt;H1&amp;gt;World Wide Web&amp;lt;/H1&amp;gt;The WorldWideWeb (W3) is a wide-area&amp;lt;A
  212. NAME=0 HREF=&quot;WhatIs.html&quot;&amp;gt;
  213. hypermedia&amp;lt;/A&amp;gt; information retrieval
  214. initiative aiming to give universal
  215. access to a large universe of documents.&lt;/code&gt;&lt;/pre&gt;
  216.  
  217. &lt;p&gt;Look at &lt;a href=&quot;http://html5boilerplate.com/&quot;&gt;http://html5boilerplate.com/&lt;/a&gt;—a base level page which helps you to cover some (nowhere near all) of the above list of things to care about (and the rest of the things you need to care about too, which are the other 90% of the list). A year in development, 900 sets of changes and evolutions from the initial version, seven separate files. That’s not over-engineering; that’s what you need to know to build things these days.&lt;/p&gt;
  218. &lt;p&gt;The important point is: one of the skills in our game is knowing what you don’t need to do right now but still leaving the door open for you to do it later. If you become the next Facebook then you will have to care about all these things; initially you may not. You don’t have to build them all on day one: that &lt;em&gt;is&lt;/em&gt; over-engineering. But you, designer, developer, translator, evangelist, web person, do have to understand what they all mean. And you do have to be able to layer them on later without having to tear everything up and start again. Feel guilty that you’re not addressing all this stuff in the first release if necessary, but you should feel a lot guiltier if you didn’t think of some of it.&lt;/p&gt;
  219. &lt;h2&gt;Wednesday, 18 January 2012&lt;/h2&gt;
  220. &lt;p&gt;Don’t be creative. Be a creat&lt;em&gt;or&lt;/em&gt;. No one ever looks back and wishes that they’d given the world less stuff.&lt;/p&gt;&lt;ol class=&quot;simple-footnotes&quot;&gt;&lt;li id=&quot;sf-the-pastry-box-project-archaeology-1&quot;&gt;Also, the writing is all &lt;a href=&quot;https://github.com/the-pastry-box-project&quot;&gt;archived at Github!&lt;/a&gt; &lt;a class=&quot;simple-footnote-back&quot; href=&quot;http://feeds.feedburner.com/kryogenix#sf-the-pastry-box-project-archaeology-1-back&quot;&gt;↩&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;</description>
  221. <pubDate>Fri, 03 May 2024 18:08:00 +0000</pubDate>
  222. </item>
  223. <item>
  224. <title>Colin Watson: Playing with rich</title>
  225. <guid isPermaLink="false">tag:www.chiark.greenend.org.uk,2024-05-03:/~cjwatson/blog/playing-with-rich.html</guid>
  226. <link>https://www.chiark.greenend.org.uk/~cjwatson/blog/playing-with-rich.html</link>
  227. <description>&lt;p&gt;One of the things I do as a side project for Freexian is to work on various
  228. bits of business automation: accounting tools, programs to help contributors
  229. report their hours, invoicing, that kind of thing.  While it’s not quite my
  230. usual beat, this makes quite a good side project as the tools involved are
  231. mostly rather sensible and easy to deal with (Python, git,
  232. &lt;a href=&quot;https://ledger-cli.org/&quot;&gt;ledger&lt;/a&gt;, that sort of thing) and it’s the kind of
  233. thing where I can dip into it for a day or so a week and feel like I’m
  234. making useful contributions.  The logic can be quite complex, but there’s
  235. very little friction in the tools themselves.&lt;/p&gt;
  236. &lt;p&gt;A recent case where I did run into some friction in the tools was with some
  237. commands that need to present small amounts of tabular data on the terminal,
  238. using &lt;a href=&quot;https://gist.github.com/egmontkob/eb114294efbcd5adb1944c9f3cb5feda&quot;&gt;&lt;span class=&quot;caps&quot;&gt;OSC&lt;/span&gt;
  239. 8&lt;/a&gt;
  240. hyperlinks if the terminal supports them: think customer-related information
  241. with some links to issues.  One of my colleagues had previously done this
  242. using a &lt;a href=&quot;https://github.com/foutaise/texttable/issues/87&quot;&gt;hack&lt;/a&gt; on top of
  243. &lt;a href=&quot;https://pypi.org/project/texttable/&quot;&gt;texttable&lt;/a&gt;, which was perfectly fine
  244. as far as it went.  However, now I wanted to be able to add multiple links
  245. in a single table cell in some cases, and that was really going to stretch
  246. the limits of that approach: working out the width of the displayed text in
  247. the cell was going to take an annoying amount of bookkeeping.&lt;/p&gt;
  248. &lt;p&gt;I started looking around to see whether any other approaches might be
  249. easier, without too much effort (remember that “a day or so a week” bit
  250. above).  &lt;a href=&quot;https://pypi.org/project/ansiwrap/&quot;&gt;ansiwrap&lt;/a&gt; looked somewhat
  251. promising, but it isn’t currently packaged in Debian, and it would have
  252. still left me with the problem of figuring out how to integrate it into
  253. &lt;code&gt;texttable&lt;/code&gt;, which looked like it would be quite complicated.  Then I
  254. remembered that I’d heard good things about
  255. &lt;a href=&quot;https://pypi.org/project/rich/&quot;&gt;rich&lt;/a&gt;, and thought I’d take a look.&lt;/p&gt;
  256. &lt;p&gt;&lt;code&gt;rich&lt;/code&gt; turned out to be exactly what I wanted.  Instead of something like
  257. this based on the &lt;code&gt;texttable&lt;/code&gt; hack above:&lt;/p&gt;
  258. &lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;shutil&lt;/span&gt;
  259. &lt;span class=&quot;kn&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;pyxian.texttable&lt;/span&gt; &lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;UrlTable&lt;/span&gt;
  260.  
  261. &lt;span class=&quot;n&quot;&gt;termsize&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;shutil&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;get_terminal_size&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;((&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;80&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;25&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;))&lt;/span&gt;
  262. &lt;span class=&quot;n&quot;&gt;table&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;UrlTable&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;max_width&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;termsize&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;columns&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
  263. &lt;span class=&quot;n&quot;&gt;table&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;set_deco&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;UrlTable&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;HEADER&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
  264. &lt;span class=&quot;n&quot;&gt;table&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;set_cols_align&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;([&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;l&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;])&lt;/span&gt;
  265. &lt;span class=&quot;n&quot;&gt;table&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;set_cols_dtype&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;([&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;u&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;])&lt;/span&gt;
  266. &lt;span class=&quot;n&quot;&gt;table&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;add_row&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;([&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;Issue&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;])&lt;/span&gt;
  267. &lt;span class=&quot;n&quot;&gt;table&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;add_row&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;([(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;issue_url&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;sa&quot;&gt;f&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;#&lt;/span&gt;&lt;span class=&quot;si&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;issue_id&lt;/span&gt;&lt;span class=&quot;si&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)]&lt;/span&gt;
  268. &lt;span class=&quot;nb&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;table&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;draw&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;())&lt;/span&gt;
  269. &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
  270.  
  271. &lt;p&gt;… now I can do this instead:&lt;/p&gt;
  272. &lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;rich&lt;/span&gt;
  273. &lt;span class=&quot;kn&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;rich&lt;/span&gt; &lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;box&lt;/span&gt;
  274. &lt;span class=&quot;kn&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;rich.table&lt;/span&gt; &lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;Table&lt;/span&gt;
  275.  
  276. &lt;span class=&quot;n&quot;&gt;table&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;Table&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;box&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;box&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;SIMPLE&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
  277. &lt;span class=&quot;n&quot;&gt;table&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;add_column&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;Issue&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
  278. &lt;span class=&quot;n&quot;&gt;table&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;add_row&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;sa&quot;&gt;f&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;[link=&lt;/span&gt;&lt;span class=&quot;si&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;issue_url&lt;/span&gt;&lt;span class=&quot;si&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;]#&lt;/span&gt;&lt;span class=&quot;si&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;issue_id&lt;/span&gt;&lt;span class=&quot;si&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;[/link]&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
  279. &lt;span class=&quot;n&quot;&gt;rich&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;table&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
  280. &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
  281.  
  282. &lt;p&gt;While this is a little shorter, the real bonus is that I can now just put
  283. multiple &lt;code&gt;[link]&lt;/code&gt; tags in a single string, and it all just works.  No
  284. ceremony.  In fact, once the relevant bits of code passed type-checking
  285. (since the real code is a bit more complex than the samples above), it
  286. worked first time.  It’s a pleasure to work with a library like that.&lt;/p&gt;
  287. &lt;p&gt;It looks like I’ve only barely scratched the surface of &lt;code&gt;rich&lt;/code&gt;, but I expect
  288. I’ll reach for it more often now.&lt;/p&gt;</description>
  289. <pubDate>Fri, 03 May 2024 15:09:53 +0000</pubDate>
  290. </item>
  291. <item>
  292. <title>Nobuto Murata: No, you can't downgrade T14 Gen 3 AMD's UEFI BIOS even when Secure Rollback Prevention is turned off</title>
  293. <guid isPermaLink="true">https://nobuto-m.github.io/post/2024/no-you-can-t-downgrade-t14-gen-3-amd-s-uefi-bios-even-when-secure-rollback-prevention-is-turned-off/</guid>
  294. <link>https://nobuto-m.github.io/post/2024/no-you-can-t-downgrade-t14-gen-3-amd-s-uefi-bios-even-when-secure-rollback-prevention-is-turned-off/</link>
  295. <description>&lt;figure id=&quot;figure-the-secure-rollback-prevention-entry-in-the-uefi-bios-configuration&quot;&gt;
  296.  &lt;div class=&quot;d-flex justify-content-center&quot;&gt;
  297.    &lt;div class=&quot;w-100&quot;&gt;&lt;img alt=&quot;The &quot; data-zoomable=&quot;&quot; height=&quot;570&quot; src=&quot;https://nobuto-m.github.io/post/2024/no-you-can-t-downgrade-t14-gen-3-amd-s-uefi-bios-even-when-secure-rollback-prevention-is-turned-off/featured_hu98a07cb948a4aa5ce68d8a190753e9dc_450211_3cb9670871c00c22c40ea3757e48b4ee.webp&quot; width=&quot;760&quot; /&gt;&lt;/div&gt;
  298.  &lt;/div&gt;&amp;lt;figcaption&amp;gt;
  299.      The “Secure Rollback Prevention” entry in the UEFI BIOS configuration
  300.    &amp;lt;/figcaption&amp;gt;&lt;/figure&gt;
  301.  
  302. &lt;p&gt;The bottom line is that there is a new configuration called “AMD Secure &lt;strong&gt;Processor&lt;/strong&gt; Rollback protection” on recent AMD systems in addition to “Secure Rollback Prevention” (BIOS rollback protection). If it’s enabled by a vendor, you cannot downgrade the UEFI BIOS revisions once you install a one with security vulnerability fixes.&lt;/p&gt;
  303. &lt;p&gt;&lt;a href=&quot;https://fwupd.github.io/libfwupdplugin/hsi.html#org.fwupd.hsi.Amd.RollbackProtection&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot;&gt;https://fwupd.github.io/libfwupdplugin/hsi.html#org.fwupd.hsi.Amd.RollbackProtection&lt;/a&gt;&lt;/p&gt;
  304. &lt;blockquote&gt;
  305. &lt;p&gt;This feature prevents an attacker from loading an older firmware onto the part after a security vulnerability has been fixed.&lt;br /&gt;
  306. […]&lt;br /&gt;
  307. End users are not able to directly modify rollback protection, this is controlled by the manufacturer.&lt;/p&gt;
  308. &lt;/blockquote&gt;
  309. &lt;p&gt;Previously I installed the revision 1.49 (R23ET73W) but it’s gone from &lt;a href=&quot;https://pcsupport.lenovo.com/us/en/products/laptops-and-netbooks/thinkpad-t-series-laptops/thinkpad-t14-gen-3-type-21cf-21cg/21cf/21cfcto1ww/downloads/driver-list/component?name=BIOS%2FUEFI&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot;&gt;Lenovo’s official page&lt;/a&gt; with the notice below. I’ve been annoyed by a symptom which is likely from a firmware so I wanted to try multiple revisions for bisecting, and also I thought I should downgrade it to the latest official revision as 1.40 (R23ET70W) since the withdrawal clearly indicates that there is something wrong with 1.49.&lt;/p&gt;
  310. &lt;blockquote&gt;
  311. &lt;p&gt;This BIOS version R23UJ73W is reported Lenovo cloud not working issue, hence it has been withdrawn from support site.&lt;/p&gt;
  312. &lt;/blockquote&gt;
  313. &lt;p&gt;First, I turned off &lt;code&gt;Secure Rollback Prevention&lt;/code&gt; and tried downgrading it with &lt;code&gt;fwupdmgr&lt;/code&gt; like the following. However, it failed to be applied with &lt;code&gt;Secure Flash Authentication Failed&lt;/code&gt; when rebooted.&lt;/p&gt;
  314. &lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;chroma&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;$ fwupdmgr downgrade
  315. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;0. Cancel
  316. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;1. b0fb0282929536060857f3bd5f80b319233340fd &lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;Battery&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt;
  317. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;2. 6fd62cb954242863ea4a184c560eebd729c76101 &lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;Embedded Controller&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt;
  318. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;3. 0d5d05911800242bb1f35287012cdcbd9b381148 &lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;Prometheus&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt;
  319. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;4. 3743975ad7f64f8d6575a9ae49fb3a8856fe186f &lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;SKHynix HFS256GDE9X081N&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt;
  320. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;5. d77c38c163257a2c2b0c0b921b185f481d9c1e0c &lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;System Firmware&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt;
  321. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;6. 6df01b2df47b1b08190f1acac54486deb0b4c645 &lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;TPM&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt;
  322. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;7. 362301da643102b9f38477387e2193e57abaa590 &lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;UEFI dbx&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt;
  323. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;Choose device &lt;span class=&quot;o&quot;&gt;[&lt;/span&gt;0-7&lt;span class=&quot;o&quot;&gt;]&lt;/span&gt;: &lt;span class=&quot;m&quot;&gt;5&lt;/span&gt;
  324. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;0. Cancel
  325. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;1. 0.1.46
  326. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;2. 0.1.41
  327. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;3. 0.1.38
  328. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;4. 0.1.36
  329. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;5. 0.1.23
  330. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;Choose release &lt;span class=&quot;o&quot;&gt;[&lt;/span&gt;0-5&lt;span class=&quot;o&quot;&gt;]&lt;/span&gt;:
  331. &lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Next, I tried their ISO image &lt;code&gt;r23uj70wd.iso&lt;/code&gt;, but no luck with another error.&lt;/p&gt;
  332. &lt;blockquote&gt;
  333. &lt;p&gt;Error&lt;/p&gt;
  334. &lt;p&gt;The system program file is not correct for this system.&lt;/p&gt;
  335. &lt;/blockquote&gt;
  336. &lt;p&gt;Also, Windows failed to apply it so I became convinced it was impossible. However, I didn’t have a clear idea why at that point and bumped into a handy command in &lt;code&gt;fwupdmgr&lt;/code&gt;.&lt;/p&gt;
  337. &lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;chroma&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;$ fwupdmgr security
  338. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;Host Security ID: HSI:1! &lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;v1.9.16&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt;
  339. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;
  340. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;HSI-1
  341. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;✔ BIOS firmware updates:         Enabled
  342. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;✔ Fused platform:                Locked
  343. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;✔ Supported CPU:                 Valid
  344. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;✔ TPM empty PCRs:                Valid
  345. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;✔ TPM v2.0:                      Found
  346. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;✔ UEFI bootservice variables:    Locked
  347. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;✔ UEFI platform key:             Valid
  348. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;✔ UEFI secure boot:              Enabled
  349. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;
  350. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;HSI-2
  351. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;✔ SPI write protection:          Enabled
  352. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;✔ IOMMU:                         Enabled
  353. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;✔ Platform debugging:            Locked
  354. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;✔ TPM PCR0 reconstruction:       Valid
  355. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;✘ BIOS rollback protection:      Disabled
  356. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;
  357. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;HSI-3
  358. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;✔ SPI replay protection:         Enabled
  359. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;✔ CET Platform:                  Supported
  360. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;✔ Pre-boot DMA protection:       Enabled
  361. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;✔ Suspend-to-idle:               Enabled
  362. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;✔ Suspend-to-ram:                Disabled
  363. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;
  364. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;HSI-4
  365. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;✔ Processor rollback protection: Enabled
  366. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;✔ Encrypted RAM:                 Encrypted
  367. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;✔ SMAP:                          Enabled
  368. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;
  369. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;Runtime Suffix -!
  370. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;✔ fwupd plugins:                 Untainted
  371. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;✔ Linux kernel lockdown:         Enabled
  372. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;✔ Linux kernel:                  Untainted
  373. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;✘ CET OS Support:                Not supported
  374. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;✘ Linux swap:                    Unencrypted
  375. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;
  376. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;This system has HSI runtime issues.
  377. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt; » https://fwupd.github.io/hsi.html#hsi-runtime-suffix
  378. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;
  379. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;Host Security Events
  380. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;  2024-05-01 15:06:29:  ✘ BIOS rollback protection changed: Enabled → Disabled
  381. &lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;As you can see, the &lt;code&gt;BIOS rollback protection&lt;/code&gt; in the HSI-2 section is “Disabled” as intended. But &lt;code&gt;Processor rollback protection&lt;/code&gt; in HSI-4 is “Enabled”. I found a commit suggesting that there was a system with the config disabled and it was able to be enabled when &lt;code&gt;OS Optimized Defaults&lt;/code&gt; is turned on.&lt;/p&gt;
  382. &lt;p&gt;&lt;a href=&quot;https://github.com/fwupd/fwupd/commit/52d6c3cb78ab8ebfd432949995e5d4437569aaa6&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot;&gt;https://github.com/fwupd/fwupd/commit/52d6c3cb78ab8ebfd432949995e5d4437569aaa6&lt;/a&gt;&lt;/p&gt;
  383. &lt;blockquote&gt;
  384. &lt;p&gt;Update documentation to indicate that loading “OS Optimized Defaults”&lt;/p&gt;
  385. &lt;p&gt;may enable security processor rollback protection on Lenovo systems.&lt;/p&gt;
  386. &lt;/blockquote&gt;
  387. &lt;p&gt;I hoped that &lt;code&gt;Processor rollback protection&lt;/code&gt; might be disabled by turning off &lt;code&gt;OS Optimized Defaults&lt;/code&gt; instead.&lt;/p&gt;
  388.  
  389.  
  390.  
  391.  
  392.  
  393.  
  394.  
  395.  
  396.  
  397.  
  398.  
  399.  
  400.  
  401.  
  402.  
  403.  
  404.  
  405.  
  406. &lt;figure id=&quot;figure-tried-os-optimized-defaults-turned-off-but-no-luck&quot;&gt;
  407.  &lt;div class=&quot;d-flex justify-content-center&quot;&gt;
  408.    &lt;div class=&quot;w-100&quot;&gt;&lt;img alt=&quot;Tried OS Optimized Defaults turned off but no luck&quot; data-zoomable=&quot;&quot; height=&quot;428&quot; src=&quot;https://nobuto-m.github.io/post/2024/no-you-can-t-downgrade-t14-gen-3-amd-s-uefi-bios-even-when-secure-rollback-prevention-is-turned-off/os-optimized-defaults_hu503de795b087b91d9dac387047c8e5d4_262087_653d6e7f1be4a9f7ce5da4ac4224f907.webp&quot; width=&quot;760&quot; /&gt;&lt;/div&gt;
  409.  &lt;/div&gt;&amp;lt;figcaption&amp;gt;
  410.      Tried OS Optimized Defaults turned off but no luck
  411.    &amp;lt;/figcaption&amp;gt;&lt;/figure&gt;
  412.  
  413. &lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;chroma&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;$ fwupdmgr security
  414. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;Host Security ID: HSI:1! &lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;v1.9.16&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt;
  415. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;
  416. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;...
  417. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;
  418. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;✘ BIOS rollback protection:      Disabled
  419. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;
  420. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;...
  421. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;
  422. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;HSI-4
  423. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;✔ Processor rollback protection: Enabled
  424. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;
  425. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;...
  426. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;
  427. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;Host Security Events
  428. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;  2024-05-02 03:24:45:  ✘ Kernel lockdown disabled
  429. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;  2024-05-02 03:24:45:  ✘ Secure Boot disabled
  430. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;  2024-05-02 03:24:45:  ✘ Pre-boot DMA protection is disabled
  431. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;  2024-05-02 03:24:45:  ✘ Encrypted RAM changed: Encrypted → Not supported
  432. &lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Some configurations were overridden, but the &lt;code&gt;Processor rollback protection&lt;/code&gt; stayed the same. It’s confirmed that it’s really impossible to downgrade the firmware with vulnerability fixes. I learned the hard way that there was a clear difference between “a vendor doesn’t support downgrading” and “it can’t be downgraded” as per the release notes.&lt;/p&gt;
  433. &lt;p&gt;&lt;a href=&quot;https://download.lenovo.com/pccbbs/mobiles/r23uj73wd.txt&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot;&gt;https://download.lenovo.com/pccbbs/mobiles/r23uj73wd.txt&lt;/a&gt;&lt;/p&gt;
  434. &lt;blockquote&gt;
  435. &lt;p&gt;CHANGES IN THIS RELEASE&lt;/p&gt;
  436. &lt;p&gt;Version 1.49 (UEFI BIOS)
  437. 1.32 (ECP)&lt;/p&gt;
  438. &lt;p&gt;[Important updates]&lt;/p&gt;
  439. &lt;ul&gt;
  440. &lt;li&gt;Notice that BIOS can’t be downgraded to older BIOS version after upgrade to r23uj73w(1.49).&lt;/li&gt;
  441. &lt;/ul&gt;
  442. &lt;p&gt;[New functions or enhancements]&lt;/p&gt;
  443. &lt;ul&gt;
  444. &lt;li&gt;Enhancement to address security vulnerability, CVE-2023-5058,LEN-123535,LEN-128083,LEN-115697,LEN-123534,LEN-118373,LEN-119523,LEN-123536.&lt;/li&gt;
  445. &lt;li&gt;Change to permit fan rotation after fan error happen.&lt;/li&gt;
  446. &lt;/ul&gt;
  447. &lt;/blockquote&gt;
  448. &lt;p&gt;I have to wait for a new and better firmware.&lt;/p&gt;</description>
  449. <pubDate>Fri, 03 May 2024 03:20:51 +0000</pubDate>
  450. </item>
  451. <item>
  452. <title>Podcast Ubuntu Portugal: E297 Framboesa 3.1416</title>
  453. <guid isPermaLink="false">https://media.blubrry.com/ubuntupt/archive.org/download/pup-e297/e297.mp3</guid>
  454. <link>https://podcastubuntuportugal.org/e297/</link>
  455. <description>&lt;p&gt;Depois da catástrofe de Alderaan, a princesa Leia no exílio veio falar connosco e passámos um bom bocado a falar de Raspberry Pi, as tendências genocidas do Império Galáctico, o papel de jornalistas e developers místicos e como fazer parte dos Rebeldes usando Tor. Abordámos brevemente o drama dos debs no Noble Numbat, dramas na comunidade de Nix e o drama de não fazer backups. E ainda houve tempo para partilhar experiências no Centro Linux, dizer mal do  Linkedin e rever a agenda para os próximos meses.&lt;/p&gt;
  456. &lt;p&gt;Já sabem: oiçam, subscrevam e partilhem!&lt;/p&gt;
  457. &lt;ul&gt;
  458. &lt;li&gt;
  459. &lt;p&gt;&lt;a href=&quot;https://www.bertrand.pt/livro/os-tres-d-dos-media-jose-nuno-matos/25461378&quot;&gt;https://www.bertrand.pt/livro/os-tres-d-dos-media-jose-nuno-matos/25461378&lt;/a&gt;&lt;/p&gt;
  460. &lt;/li&gt;
  461. &lt;li&gt;
  462. &lt;p&gt;&lt;a href=&quot;https://www.torproject.org/&quot;&gt;https://www.torproject.org/&lt;/a&gt;&lt;/p&gt;
  463. &lt;/li&gt;
  464. &lt;li&gt;
  465. &lt;p&gt;&lt;a href=&quot;https://raspberrytips.com/install-tor-browser-on-raspberry-pi/&quot;&gt;https://raspberrytips.com/install-tor-browser-on-raspberry-pi/&lt;/a&gt;&lt;/p&gt;
  466. &lt;/li&gt;
  467. &lt;li&gt;
  468. &lt;p&gt;&lt;a href=&quot;https://ciberlandia.pt/@per_sonne/112342621071193602&quot;&gt;https://ciberlandia.pt/@per_sonne/112342621071193602&lt;/a&gt;&lt;/p&gt;
  469. &lt;/li&gt;
  470. &lt;li&gt;
  471. &lt;p&gt;&lt;a href=&quot;https://flathub.org/apps/com.github.huluti.Curtail&quot;&gt;https://flathub.org/apps/com.github.huluti.Curtail&lt;/a&gt;&lt;/p&gt;
  472. &lt;/li&gt;
  473. &lt;li&gt;
  474. &lt;p&gt;&lt;a href=&quot;https://mastodon.social/@eugenialoli/112358645417203659&quot;&gt;https://mastodon.social/@eugenialoli/112358645417203659&lt;/a&gt;&lt;/p&gt;
  475. &lt;/li&gt;
  476. &lt;li&gt;
  477. &lt;p&gt;&lt;a href=&quot;https://aux.computer/&quot;&gt;https://aux.computer/&lt;/a&gt;&lt;/p&gt;
  478. &lt;/li&gt;
  479. &lt;li&gt;
  480. &lt;p&gt;&lt;a href=&quot;https://thegeomob.com/post/may-8th-2024-geomoblx-details&quot;&gt;https://thegeomob.com/post/may-8th-2024-geomoblx-details&lt;/a&gt;&lt;/p&gt;
  481. &lt;/li&gt;
  482. &lt;li&gt;
  483. &lt;p&gt;&lt;a href=&quot;https://drupaliberia.eu/&quot;&gt;https://drupaliberia.eu/&lt;/a&gt;&lt;/p&gt;
  484. &lt;/li&gt;
  485. &lt;li&gt;
  486. &lt;p&gt;&lt;a href=&quot;https://lisbon.globalappsec.org/&quot;&gt;https://lisbon.globalappsec.org/&lt;/a&gt;&lt;/p&gt;
  487. &lt;/li&gt;
  488. &lt;li&gt;
  489. &lt;p&gt;&lt;a href=&quot;https://developer.ogc.org/sprints/&quot;&gt;https://developer.ogc.org/sprints/&lt;/a&gt;&lt;/p&gt;
  490. &lt;/li&gt;
  491. &lt;li&gt;
  492. &lt;p&gt;&lt;a href=&quot;https://2024.europe.foss4g.org/&quot;&gt;https://2024.europe.foss4g.org/&lt;/a&gt;&lt;/p&gt;
  493. &lt;/li&gt;
  494. &lt;li&gt;
  495. &lt;p&gt;&lt;a href=&quot;https://www.wearedevelopers.com/world-congress&quot;&gt;https://www.wearedevelopers.com/world-congress&lt;/a&gt;&lt;/p&gt;
  496. &lt;/li&gt;
  497. &lt;li&gt;
  498. &lt;p&gt;&lt;a href=&quot;https://2024.foss4g.org/&quot;&gt;https://2024.foss4g.org/&lt;/a&gt;&lt;/p&gt;
  499. &lt;/li&gt;
  500. &lt;li&gt;
  501. &lt;p&gt;&lt;a href=&quot;https://loco.ubuntu.com/teams/ubuntu-pt/&quot;&gt;https://loco.ubuntu.com/teams/ubuntu-pt/&lt;/a&gt;&lt;/p&gt;
  502. &lt;/li&gt;
  503. &lt;li&gt;
  504. &lt;p&gt;&lt;a href=&quot;https://shop.nitrokey.com/shop?aff_ref=3&quot;&gt;https://shop.nitrokey.com/shop?aff_ref=3&lt;/a&gt;&lt;/p&gt;
  505. &lt;/li&gt;
  506. &lt;li&gt;
  507. &lt;p&gt;&lt;a href=&quot;https://masto.pt/@pup&quot;&gt;https://masto.pt/@pup&lt;/a&gt;&lt;/p&gt;
  508. &lt;/li&gt;
  509. &lt;li&gt;
  510. &lt;p&gt;&lt;a href=&quot;https://youtube.com/PodcastUbuntuPortugal&quot;&gt;https://youtube.com/PodcastUbuntuPortugal&lt;/a&gt;&lt;/p&gt;
  511. &lt;/li&gt;
  512. &lt;/ul&gt;
  513. &lt;h3 id=&quot;apoios&quot;&gt;Apoios&lt;/h3&gt;
  514. &lt;p&gt;Podem apoiar o podcast usando os links de afiliados do Humble Bundle, porque ao usarem esses links para fazer uma compra, uma parte do valor que pagam reverte a favor do Podcast Ubuntu Portugal.
  515. E podem obter tudo isso com 15 dólares ou diferentes partes dependendo de pagarem 1, ou 8.
  516. Achamos que isto vale bem mais do que 15 dólares, pelo que se puderem paguem mais um pouco mais visto que têm a opção de pagar o quanto quiserem.
  517. Se estiverem interessados em outros bundles não listados nas notas usem o link &lt;a href=&quot;https://www.humblebundle.com/?partner=PUP&quot;&gt;https://www.humblebundle.com/?partner=PUP&lt;/a&gt; e vão estar também a apoiar-nos.&lt;/p&gt;
  518. &lt;h3 id=&quot;atribuição-e-licenças&quot;&gt;Atribuição e licenças&lt;/h3&gt;
  519. &lt;p&gt;Este episódio foi produzido por Diogo Constantino, Miguel e Tiago Carrondo e editado pelo &lt;a href=&quot;https://senhorpodcast.pt/&quot;&gt;Senhor Podcast&lt;/a&gt;.
  520. O website é produzido por Tiago Carrondo e o &lt;a href=&quot;https://gitlab.com/podcastubuntuportugal/website&quot;&gt;código aberto&lt;/a&gt; está licenciado nos termos da &lt;a href=&quot;https://gitlab.com/podcastubuntuportugal/website/main/LICENSE&quot;&gt;Licença MIT&lt;/a&gt;.
  521. A música do genérico é: “Won’t see it comin’ (Feat Aequality &amp;amp; N’sorte d’autruche)”, por Alpha Hydrae e está licenciada nos termos da &lt;a href=&quot;https://creativecommons.org/publicdomain/zero/1.0/&quot;&gt;CC0 1.0 Universal License&lt;/a&gt;.
  522. Este episódio e a imagem utilizada estão licenciados nos termos da licença: &lt;a href=&quot;https://creativecommons.org/licenses/by-nc-nd/4.0/&quot;&gt;Attribution-NonCommercial-NoDerivatives 4.0 International (CC BY-NC-ND 4.0)&lt;/a&gt;, &lt;a href=&quot;https://creativecommons.org/licenses/by-nc-nd/4.0/legalcode&quot;&gt;cujo texto integral pode ser lido aqui&lt;/a&gt;. Estamos abertos a licenciar para permitir outros tipos de utilização, &lt;a href=&quot;https://podcastubuntuportugal.org/contactos&quot;&gt;contactem-nos&lt;/a&gt; para validação e autorização.&lt;/p&gt;</description>
  523. <pubDate>Thu, 02 May 2024 00:00:00 +0000</pubDate>
  524.        <enclosure url="https://media.blubrry.com/ubuntupt/archive.org/download/pup-e297/e297.mp3" length="28368142" type="audio/mpeg"/>
  525. </item>
  526. <item>
  527. <title>Colin Watson: Free software activity in April 2024</title>
  528. <guid isPermaLink="false">tag:www.chiark.greenend.org.uk,2024-05-01:/~cjwatson/blog/activity-2024-04.html</guid>
  529. <link>https://www.chiark.greenend.org.uk/~cjwatson/blog/activity-2024-04.html</link>
  530. <description>&lt;p&gt;My Debian contributions this month were all
  531. &lt;a href=&quot;https://www.freexian.com/about/debian-contributions/&quot;&gt;sponsored&lt;/a&gt; by Freexian.&lt;/p&gt;
  532. &lt;ul&gt;
  533. &lt;li&gt;I’m trying to get back into bugs.debian.org administration, so I spent
  534.   some time catching up on my &lt;code&gt;owner@bugs.debian.org&lt;/code&gt; mailbox and answering
  535.   a number of support requests there.&lt;/li&gt;
  536. &lt;li&gt;I fixed a regression I’d introduced last year where groff’s &lt;span class=&quot;caps&quot;&gt;PDF&lt;/span&gt; output
  537.   had invalid date headers, both
  538.   &lt;a href=&quot;https://git.savannah.gnu.org/cgit/groff.git/commit/?id=0815e503dba8d5c05921d68c6c718fe8f8440ee8&quot;&gt;upstream&lt;/a&gt;
  539.   and &lt;a href=&quot;https://bugs.debian.org/1069902&quot;&gt;in Debian&lt;/a&gt;.&lt;/li&gt;
  540. &lt;li&gt;I released &lt;a href=&quot;https://lists.nongnu.org/archive/html/man-db-announce/2024-04/msg00000.html&quot;&gt;man-db
  541.   2.12.1&lt;/a&gt;.&lt;/li&gt;
  542. &lt;li&gt;openssh:&lt;ul&gt;
  543. &lt;li&gt;I did a little more testing of Luca Boccassi’s
  544.  &lt;a href=&quot;https://bugzilla.mindrot.org/show_bug.cgi?id=2641#c23&quot;&gt;modifications&lt;/a&gt;
  545.  to upstream’s inline systemd notification patch.&lt;/li&gt;
  546. &lt;li&gt;I did an extensive
  547.  &lt;a href=&quot;https://lists.debian.org/debian-devel/2024/04/msg00044.html&quot;&gt;review&lt;/a&gt;
  548.  of some of the choices in Debian’s OpenSSH packaging, in light of last
  549.  month’s &lt;a href=&quot;https://tukaani.org/xz-backdoor/&quot;&gt;xz-utils backdoor&lt;/a&gt;.&lt;/li&gt;
  550. &lt;li&gt;I fixed a build failure on ppc64el, &lt;a href=&quot;https://bugzilla.mindrot.org/show_bug.cgi?id=3673#c2&quot;&gt;forwarded
  551.  upstream&lt;/a&gt;.&lt;/li&gt;
  552. &lt;li&gt;I &lt;a href=&quot;https://bugs.debian.org/1068311&quot;&gt;proposed&lt;/a&gt; reducing shared library
  553.  linkage in tcp-wrappers; its maintainer accepted this by disabling &lt;span class=&quot;caps&quot;&gt;NIS&lt;/span&gt; support.&lt;/li&gt;
  554. &lt;li&gt;I applied a &lt;a href=&quot;https://bugs.debian.org/1069706&quot;&gt;suggestion&lt;/a&gt; to improve
  555.  ordering of systemd services in relation to &lt;code&gt;nss-user-lookup.target&lt;/code&gt;.&lt;/li&gt;
  556. &lt;/ul&gt;
  557. &lt;/li&gt;
  558. &lt;li&gt;I updated putty to 0.81.&lt;/li&gt;
  559. &lt;li&gt;Python team:&lt;ul&gt;
  560. &lt;li&gt;I fixed build/autopkgtest failures in
  561.  &lt;a href=&quot;https://bugs.debian.org/1069360&quot;&gt;cytoolz&lt;/a&gt; (&lt;a href=&quot;https://github.com/pytoolz/cytoolz/pull/205&quot;&gt;upstream
  562.  &lt;span class=&quot;caps&quot;&gt;PR&lt;/span&gt;&lt;/a&gt;), nbconvert (due to
  563.  &lt;a href=&quot;https://bugs.debian.org/1042699&quot;&gt;sphinx&lt;/a&gt; and
  564.  &lt;a href=&quot;https://bugs.debian.org/1068349&quot;&gt;lxml-html-clean&lt;/a&gt; changes),
  565.  &lt;a href=&quot;https://bugs.debian.org/1069816&quot;&gt;python-argcomplete&lt;/a&gt;,
  566.  &lt;a href=&quot;https://bugs.debian.org/1069817&quot;&gt;python-exceptiongroup&lt;/a&gt;,
  567.  &lt;a href=&quot;https://bugs.debian.org/1069756&quot;&gt;readability&lt;/a&gt;,
  568.  &lt;a href=&quot;https://bugs.debian.org/1069818&quot;&gt;toolz&lt;/a&gt; (&lt;a href=&quot;https://github.com/pytoolz/toolz/pull/578&quot;&gt;upstream
  569.  &lt;span class=&quot;caps&quot;&gt;PR&lt;/span&gt;&lt;/a&gt;), and
  570.  &lt;a href=&quot;https://bugs.debian.org/1069608&quot;&gt;topplot&lt;/a&gt;.&lt;/li&gt;
  571. &lt;li&gt;I made a &lt;a href=&quot;https://salsa.debian.org/science-team/pyferret/-/merge_requests/3&quot;&gt;merge
  572.  request&lt;/a&gt;
  573.  to fix a &lt;a href=&quot;https://bugs.debian.org/1058888&quot;&gt;build failure&lt;/a&gt; in pyferret.&lt;/li&gt;
  574. &lt;li&gt;I fixed a
  575.  &lt;a href=&quot;https://salsa.debian.org/python-team/packages/python-ecdsa/-/commit/3a95d8623d28d73c8c7877e6c3ddd5ee43e33ca4&quot;&gt;mistake&lt;/a&gt;
  576.  in a Debian patch to python-ecdsa, noticed while updating jsonpickle.&lt;/li&gt;
  577. &lt;li&gt;I updated cachelib, dnsdiag, feedparser, jsonpickle, pywavelets
  578.  (fixing a &lt;a href=&quot;https://bugs.debian.org/1068805&quot;&gt;distutils dependency&lt;/a&gt;),
  579.  python-aiohttp-session, python-avro, python-rstr, vine (including an
  580.  &lt;a href=&quot;https://github.com/celery/vine/pull/109&quot;&gt;upstream packaging tweak&lt;/a&gt;,
  581.  and wtforms to new upstream versions.&lt;/li&gt;
  582. &lt;/ul&gt;
  583. &lt;/li&gt;
  584. &lt;li&gt;I did some inconclusive investigation of &lt;a href=&quot;https://bugs.debian.org/1057562&quot;&gt;flaky tests in
  585.   gcr4&lt;/a&gt;.  More work is needed there.&lt;/li&gt;
  586. &lt;li&gt;I proposed a patch for a build failure in gyoto, both
  587.   &lt;a href=&quot;https://github.com/gyoto/Gyoto/pull/17&quot;&gt;upstream&lt;/a&gt; and &lt;a href=&quot;https://bugs.debian.org/1066788&quot;&gt;in
  588.   Debian&lt;/a&gt;.&lt;/li&gt;
  589. &lt;/ul&gt;
  590. &lt;p&gt;You can support my work directly via
  591. &lt;a href=&quot;https://liberapay.com/cjwatson&quot;&gt;Liberapay&lt;/a&gt;.&lt;/p&gt;</description>
  592. <pubDate>Wed, 01 May 2024 11:34:15 +0000</pubDate>
  593. </item>
  594. <item>
  595. <title>Salih Emin: Ucaresystem 24.05.0 released with Flatpak support</title>
  596. <guid isPermaLink="false">http://utappiablog.wordpress.com/?p=49673</guid>
  597. <link>https://utappiablog.wordpress.com/2024/05/01/ucaresystem-24-05-0-released-with-flatpak-support/</link>
  598. <description>The previous release of uCareSystem, version 24.04.0, introduced enhanced maintenance and cleanup capabilities for Ubuntu and its derivatives. The fresh new release 24.05, is introduced with support for flatpak maintenance. This new version includes: Where can I download uCareSystem ? As always, I want to express my gratitude for your support over the past 15 […]</description>
  599. <pubDate>Wed, 01 May 2024 10:30:13 +0000</pubDate>
  600. </item>
  601. <item>
  602. <title>Ubuntu Blog: Canonical releases Landscape 24.04 LTS</title>
  603. <guid isPermaLink="true">https://ubuntu.com//blog/canonical-releases-landscape-24-04-lts</guid>
  604. <link>https://ubuntu.com//blog/canonical-releases-landscape-24-04-lts</link>
  605. <description>&lt;h3 class=&quot;wp-block-heading&quot;&gt;With 12 years of support, Landscape 24.04 LTS adds snap and repository management controls to a modernised systems management web portal and API.&lt;/h3&gt;
  606. &lt;figure class=&quot;wp-block-image size-full&quot;&gt;
  607. &lt;div class=&quot;lazyload&quot; data-noscript=&quot;&quot;&gt;
  608. &amp;lt;noscript&amp;gt;
  609. &amp;lt;img alt=&quot;&quot; height=&quot;868&quot; src=&quot;https://res.cloudinary.com/canonical/image/fetch/f_auto,q_auto,fl_sanitize,c_fill,w_1799,h_868/https://ubuntu.com/wp-content/uploads/6d1a/Screenshot-from-2024-03-26-08-24-25.png&quot; width=&quot;1799&quot; /&amp;gt;
  610. &amp;lt;/noscript&amp;gt;
  611. &lt;/div&gt;
  612. Screenshot of the new Landscape Dashboard&lt;/figure&gt;
  613. &lt;p&gt;&lt;strong&gt;London, 30 April 2024.&lt;/strong&gt;&lt;/p&gt;
  614. &lt;p&gt;Today Canonical announced the availability of &lt;a href=&quot;https://ubuntu.com/landscape&quot;&gt;Landscape’s&lt;/a&gt; first LTS release. Landscape 24.04 LTS features a new versioned API, a new web portal with accessibility and performance in mind, and intuitive controls for software distribution. Landscape 24.04 LTS comprises Landscape Server and Landscape Client. With a modernised backend and web portal in place, engineering teams can work efficiently, focusing on patches and new features.&lt;/p&gt;
  615. &lt;h2 class=&quot;wp-block-heading&quot;&gt;Predictable release cadence and 12 years of support for LTS versions&lt;/h2&gt;
  616. &lt;p&gt;Building on Canonical’s commitment to reliability, Landscape releases going forward will align with Ubuntu LTS and interim releases for predictable security coverage, feature patches, and bug fixes.&lt;/p&gt;
  617. &lt;p&gt;Landscape Server 24.04 can be installed on Ubuntu 22.04 LTS and Ubuntu 24.04 LTS releases with Ubuntu Pro. &lt;a href=&quot;https://ubuntu.com/landscape/docs/self-hosted-landscape&quot;&gt;Landscape Server 24.04 is compatible&lt;/a&gt; with the previous four Ubuntu LTS releases (Ubuntu 16.04 LTS onwards), and will manage future Ubuntu releases including Ubuntu 26.04 LTS.&lt;/p&gt;
  618. &lt;p&gt;Like Ubuntu 24.04 LTS, this Landscape release gets a 12 year commitment for security maintenance and support. Landscape 24.04 LTS will get five years of bug fixes and incremental feature patches until August 2029. Ubuntu Pro subscribers can continue using Landscape 24.04 LTS after these 5 years for a total of 12 years, with the &lt;a href=&quot;https://ubuntu.com/blog/canonical-expands-long-term-support-to-12-years-starting-with-ubuntu-14-04-lts&quot;&gt;Legacy Support add-on&lt;/a&gt;.&lt;/p&gt;
  619. &lt;h2 class=&quot;wp-block-heading&quot;&gt;A new web portal built with Canonical’s Vanilla Framework&lt;/h2&gt;
  620. &lt;p&gt;&lt;a href=&quot;https://vanillaframework.io&quot;&gt;Vanilla Framework&lt;/a&gt; provides consistent and uniform design patterns across Canonical’s products. Landscape joins MAAS, LXD UI, and others with a responsive React JS driven user interface. This web portal is built using a new versioned API serving JSON data. This API enhancement ensures seamless integration for developers, offering a forward-looking assurance that applications developed with a particular API version will remain robust and reliable, regardless of future updates to Landscape and its accompanying API endpoints.&lt;/p&gt;
  621. &lt;p&gt;The Monitoring feature from the legacy Landscape web portal has not yet been migrated to Landscape 24.04 LTS, yet. Monitoring will arrive as an incremental patch for Landscape 24.04 LTS with a modern charting library, a monitoring API, and companion documentation.&lt;/p&gt;
  622. &lt;p&gt;Lastly, the web portal provides a significant improvement in Lighthouse scores for Accessibility. The dashboard’s accessibility scores as measured by Lighthouse improved from 70% to 95%. Landscape 24.04 LTS has a web portal which is accessible to users with deficiencies in colour vision, complete colour blindness, and other visual impairments.&lt;/p&gt;
  623. &lt;h2 class=&quot;wp-block-heading&quot;&gt;Save terabytes in storage and bandwidth with point-in-time repository snapshots&lt;/h2&gt;
  624. &lt;figure class=&quot;wp-block-image size-large is-resized&quot;&gt;
  625. &lt;div class=&quot;lazyload&quot; data-noscript=&quot;&quot;&gt;
  626. &amp;lt;noscript&amp;gt;
  627. &amp;lt;img alt=&quot;&quot; src=&quot;https://res.cloudinary.com/canonical/image/fetch/f_auto,q_auto,fl_sanitize,c_fill,w_720/https://assets.ubuntu.com/v1/3f95a534-repo.gif&quot; width=&quot;720&quot; /&amp;gt;
  628. &amp;lt;/noscript&amp;gt;
  629. &lt;/div&gt;
  630. An overview of the repository management experience in the new Landscape web portal.&lt;/figure&gt;
  631. &lt;p&gt;Landscape’s new web portal includes an intuitive point-and-click repository mirroring experience, and the repository snapshot service is available as a source when mirroring repositories. In late 2023, Canonical became the first Linux provider to integrate a repository snapshot service with Microsoft Azure’s update mechanisms. Landscape 24.04 LTS brings this simplified and safe deployment practice capability on-premises, and to mixed and hybrid cloud environments.&lt;/p&gt;
  632. &lt;p&gt;Benefits of Landscape’s repository snapshot service include predictable updates, consistency across deployments, and simplified repository mirroring, providing improved resilience and security for Ubuntu workloads.&lt;/p&gt;
  633. &lt;p&gt;Beyond the conveniences afforded to system administrators, the repository snapshots implementation also saves over 100 terabytes of disk space and network throughput, for organisations making complete repository mirrors every week. Canonical’s on-demand repository snapshot capability extends back to February 2023 for non-ESM (Expanded Security Maintenance) repositories. This innovation frees storage and network resources, because scheduled mirroring and archival of these mirrors becomes unnecessary.&lt;/p&gt;
  634. &lt;h2 class=&quot;wp-block-heading&quot;&gt;Snap management for Ubuntu and Ubuntu Core&lt;/h2&gt;
  635. &lt;p&gt;Beyond managing Ubuntu interim and LTS releases, Landscape 24.04 LTS also manages Ubuntu Core, Canonical’s snap based, immutable and strictly-confined operating system. A strictly confined Landscape Client snap package provides snap package management, remote script execution, monitoring and inventory capabilities to Ubuntu, for anyone interested in consuming the latest Landscape Client as a snap package.&lt;/p&gt;
  636. &lt;p&gt;Snap management capabilities also exist in the Landscape Client Debian package, available in the Main repository for Ubuntu 24.04 LTS, and in &lt;a href=&quot;https://launchpad.net/~landscape/+archive/ubuntu/self-hosted-24.04&quot;&gt;ppa:landscape/self-hosted-24.04&lt;/a&gt; for previous versions of Ubuntu.&lt;/p&gt;
  637. &lt;p&gt;Distribution of updated snap revisions is controlled through the Snap Store, which organisations can self-host as a snap store proxy, or as a brand store if there is a need to distribute proprietary non-public snaps within the organisation. Snap management in Landscape 24.04 LTS can add, remove, update, and pause updates from Snap Store, snap store proxy, and brand stores.&lt;/p&gt;
  638. &lt;p&gt;Landscape has historically provided fine grained management of Debian packages installed through the apt package manager. With Landscape 24.04 LTS, similar management capabilities arrive for snap packages, with consideration for revisions and channels, which are specific to the snap ecosystem. By default, snap packages self-update through transactional over-the-air updates, and have the ability to rollback automatically if the upgrade fails. Organisations and individuals interested in uniformity across machines can pin revisions of a snap to machines, and ensure consistency between machines that must be uniformly configured.&lt;/p&gt;
  639. &lt;h2 class=&quot;wp-block-heading&quot;&gt;Next steps&lt;/h2&gt;
  640. &lt;ul&gt;
  641. &lt;li&gt;&lt;a href=&quot;https://pages.ubuntu.com/rs/066-EOV-335/images/Landscape%20DS%20v3%205.4.2024.pdf?version=0&quot;&gt;Read the Landscape datasheet&lt;/a&gt;&lt;/li&gt;
  642. &lt;li&gt;&lt;a href=&quot;https://ubuntu.com/landscape/install&quot;&gt;Install Landscape 24.04 LTS on Ubuntu Server, using Ubuntu 20.04 LTS or later&lt;/a&gt;&lt;/li&gt;
  643. &lt;li&gt;&lt;a href=&quot;https://www.youtube.com/watch?feature=shared&amp;amp;v=Yq4Grp__qqM&quot;&gt;Learn to enrol Ubuntu 24.04 LTS instances with Landscape, using Pro Client&lt;/a&gt;&lt;/li&gt;
  644. &lt;/ul&gt;
  645. &lt;h2 class=&quot;wp-block-heading&quot;&gt;About Canonical&lt;/h2&gt;
  646. &lt;p&gt;Canonical, the publisher of Ubuntu, provides open source security, support and services. Our portfolio covers critical systems, from the smallest devices to the largest clouds, from the kernel to containers, from databases to AI. With customers that include top tech brands, emerging startups, governments and home users, Canonical delivers trusted open source for everyone.&lt;/p&gt;
  647. &lt;p&gt;Learn more at &lt;a href=&quot;https://canonical.com/&quot;&gt;canonical.com&lt;/a&gt;.&lt;/p&gt;</description>
  648. <pubDate>Wed, 01 May 2024 02:31:58 +0000</pubDate>
  649. </item>
  650. <item>
  651. <title>Santiago Zarate: RuPerl - Rust with embedded Perl</title>
  652. <guid isPermaLink="false">https://foursixnine.io//blog/perl/rust/software/c/2024/05/01/ruperlrustwithembeddedperl</guid>
  653. <link>https://foursixnine.io//blog/perl/rust/software/c/2024/05/01/ruperlrustwithembeddedperl.html</link>
  654. <description>&lt;p&gt;Thanks to a colleague who introduced me to Nim during last week’s &lt;a href=&quot;https://www.youtube.com/@suselabs6148/videos&quot;&gt;SUSE Labs conference&lt;/a&gt;, I became a man with a dream, and after fiddling with compiler flags
  655. and obviously not reading documentation, I finally made it.&lt;/p&gt;
  656.  
  657. &lt;p&gt;This is something that shouldn’t exist; from the list of ideas that should never have happened.&lt;/p&gt;
  658.  
  659. &lt;blockquote&gt;
  660.  &lt;p&gt;But it does.
  661. It’s a Perl interpreter embedded in Rust.
  662. Get over it.&lt;/p&gt;
  663. &lt;/blockquote&gt;
  664.  
  665. &lt;p&gt;Once cloned, you can run the following commands to see it in action:&lt;/p&gt;
  666.  
  667. &lt;ul&gt;
  668.  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;cargo run --verbose -- hello.pm showtime&lt;/code&gt;&lt;/li&gt;
  669.  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;cargo run --verbose -- hello.pm get_quick_headers&lt;/code&gt;&lt;/li&gt;
  670. &lt;/ul&gt;
  671.  
  672. &lt;h2 id=&quot;how-it-works&quot;&gt;How it works&lt;/h2&gt;
  673.  
  674. &lt;p&gt;There is a lot of autogenerated code, mainly for two things:&lt;/p&gt;
  675.  
  676. &lt;ul&gt;
  677.  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;bindings.rs&lt;/code&gt; and &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;wrapper.h&lt;/code&gt;; I made a lot of assumptions and &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;perlxsi.c&lt;/code&gt; may or may not be necessary in the future (see &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;main::xs_init_rust&lt;/code&gt;), depends on how bad or terrible my &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;C&lt;/code&gt; knowledge is by the time you’re reading this.&lt;/li&gt;
  678.  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;xs_init_rust&lt;/code&gt; function is the one that does the magic, as far as my understanding goes, by hooking up &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;boot_DynaLoader&lt;/code&gt; to &lt;a href=&quot;https://metacpan.org/pod/DynaLoader&quot;&gt;DynaLoader&lt;/a&gt; in Perl via ffi.&lt;/li&gt;
  679. &lt;/ul&gt;
  680.  
  681. &lt;p&gt;With those two bits in place, and thanks to the magic of the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;bindgen&lt;/code&gt; crate, and after some initialization, I decided to use &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Perl_call_argv&lt;/code&gt;, do note that &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Perl_&lt;/code&gt; in this case comes from bindgen, I might change later the convention to &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;ruperl&lt;/code&gt; or something to avoid confusion between that a and &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;perl_parse&lt;/code&gt; or &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;perl_alloc&lt;/code&gt; which (if I understand correctly) are exposed directly by the ffi interface.&lt;/p&gt;
  682.  
  683. &lt;p&gt;What I ended up doing, is passing the same list of arguments (for now, or at least for this PoC), directly to &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Perl_call_argv&lt;/code&gt;, which will in turn, take the third argument and pass it verbatim as the &lt;a href=&quot;https://perldoc.perl.org/perlcall#Using-call_argv&quot;&gt;call_argv&lt;/a&gt;&lt;/p&gt;
  684.  
  685. &lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;        Perl_call_argv(myperl, perl_sub, flags_ptr, perl_parse_args.as_mut_ptr());
  686. &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
  687.  
  688. &lt;p&gt;Right now hello.pm defines two sub routines, one to open a file, write something and print the time to stdout, and a second one that will query my blog, and show the headers. This is only example code, but enough
  689. to demostrate that the DynaLoader works, and that the embedding also works :)&lt;/p&gt;
  690.  
  691. &lt;p&gt;&lt;img alt=&quot;itsalive&quot; src=&quot;https://media.giphy.com/media/v1.Y2lkPTc5MGI3NjExd3pkbzJweGl3aG8waG0xeHJpZDU5bXQ4bnRqdjlmdGNjdXA1eXRteCZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/tze1mGedykiuk/giphy.gif&quot; /&gt;&lt;/p&gt;
  692.  
  693. &lt;p&gt;I got most of this working by following the &lt;a href=&quot;https://perldoc.perl.org/perlembed&quot;&gt;perlembed&lt;/a&gt; guide.&lt;/p&gt;
  694.  
  695. &lt;h2 id=&quot;why&quot;&gt;Why?&lt;/h2&gt;
  696.  
  697. &lt;blockquote&gt;
  698.  &lt;p&gt;Why not?.&lt;/p&gt;
  699. &lt;/blockquote&gt;
  700.  
  701. &lt;p&gt;I want to see if I can embed also python in the same binary, so I can call native perl, from native python and see how I can fiddle all that into &lt;a href=&quot;https://github.com/os-autoinst/os-autoinst&quot;&gt;os-autoinst&lt;/a&gt;&lt;/p&gt;
  702.  
  703. &lt;h2 id=&quot;where-to-find-the-code&quot;&gt;Where to find the code?&lt;/h2&gt;
  704.  
  705. &lt;p&gt;On github: https://github.com/foursixnine/ruperl or under https://crates.io/crates/ruperl&lt;/p&gt;</description>
  706. <pubDate>Wed, 01 May 2024 00:00:00 +0000</pubDate>
  707. </item>
  708. <item>
  709. <title>Dougie Richardson: Ubuntu 24.04 LTS OneDrive</title>
  710. <guid isPermaLink="false">https://dougiewougie.com/?p=2759</guid>
  711. <link>https://dougiewougie.com/2024/04/30/ubuntu-24-04-lts-onedrive/</link>
  712. <description>&lt;p&gt;I’ve not had much time to play around with the latest release but this is cool – OneDrive Nautilus integration.&lt;/p&gt;
  713.  
  714.  
  715.  
  716. &lt;p&gt;Settings &amp;gt; Online Accounts &amp;gt; Microsoft 365, leave everything blank and hit “Sign in…”. Web page opens to authenticate and then you can mount OneDrive in Nautilus.&lt;/p&gt;
  717.  
  718.  
  719.  
  720. &lt;p&gt;&lt;img alt=&quot;&quot; /&gt;&lt;/p&gt;</description>
  721. <pubDate>Tue, 30 Apr 2024 20:22:53 +0000</pubDate>
  722. </item>
  723. <item>
  724. <title>Ubuntu Blog: The biggest use cases for AI in Automotive (that aren’t just self-driving cars)</title>
  725. <guid isPermaLink="true">https://ubuntu.com//blog/the-biggest-use-cases-for-ai-in-automotive-that-arent-just-self-driving-cars</guid>
  726. <link>https://ubuntu.com//blog/the-biggest-use-cases-for-ai-in-automotive-that-arent-just-self-driving-cars</link>
  727. <description>&lt;p&gt;A study of 4 major use cases of AI in cars&lt;/p&gt;
  728. &lt;p&gt;In this fast-paced age of technological evolution, Artificial Intelligence (AI) emerges as the key catalyst driving profound shifts in the automotive sector. From smart vehicle design to customised in-car interactions, AI is reshaping every aspect of transportation, ensuring safer, more effective, and environmentally friendly journeys for both drivers and passengers.&lt;/p&gt;
  729. &lt;p&gt;In this blog, we’ll have a look at the four most promising use cases for AI in the automotive industry.&lt;/p&gt;
  730. &lt;h1 class=&quot;wp-block-heading&quot;&gt;Intelligent vehicle lifecycle management&lt;/h1&gt;
  731. &lt;h2 class=&quot;wp-block-heading&quot;&gt;Innovative vehicle design, material use, and manufacturing processes&lt;/h2&gt;
  732. &lt;p&gt;AI-powered generative design algorithms are &lt;a href=&quot;https://ubuntu.com/blog/ai-and-automotive-navigating-the-roads-of-tomorrow&quot;&gt;transforming how vehicles are conceptualised&lt;/a&gt; and engineered, pushing the boundaries of creativity and efficiency. These algorithms optimise vehicle structures for performance, safety, and sustainability by analysing vast datasets and exploring numerous design iterations. &lt;/p&gt;
  733. &lt;p&gt;Moreover, AI is revolutionising material selection: manufacturers are harnessing its capabilities to identify the most suitable materials for each component, balancing strength, weight, and environmental impact. This results in vehicles that are lighter, more fuel efficient, more technologically advanced, and more sustainable to produce — contributing to a greener industry and future.&lt;/p&gt;
  734. &lt;h2 class=&quot;wp-block-heading&quot;&gt;Predictive maintenance and diagnostics&lt;/h2&gt;
  735. &lt;p&gt;AI is reshaping the landscape of vehicle maintenance through predictive maintenance systems that redefine how issues are identified and addressed.&lt;/p&gt;
  736. &lt;p&gt;Some cars have over 100 embedded sensors, tracking everything from engine fuel-oxygen mixes and tyre pressure, to component temperatures and orientation. AI algorithms can use the data from these sensors to predict mechanical and electrical faults before they happen, opening up the door for proactive, preventative maintenance.&lt;/p&gt;
  737. &lt;figure class=&quot;wp-block-image&quot;&gt;
  738. &lt;div class=&quot;lazyload&quot; data-noscript=&quot;&quot;&gt;
  739. &amp;lt;noscript&amp;gt;
  740. &amp;lt;img alt=&quot;&quot; src=&quot;https://res.cloudinary.com/canonical/image/fetch/f_auto,q_auto,fl_sanitize,c_fill,w_720/https://lh7-us.googleusercontent.com/96XKUUtCB7XsG0Avd-6dYrtiNjeLyR-PmuacC62ap2rLF7-8-qj20DaVXXEI7j1v1Z-VhiQP_WA086yIkWyDxue8uWSQAnMK3Rcn4ti5f0KcCTugP9dXxZvSR_KnADC3T6QRvR0ROOOsPsig5h__Y-Q&quot; width=&quot;720&quot; /&amp;gt;
  741. &amp;lt;/noscript&amp;gt;
  742. &lt;/div&gt;
  743. &lt;/figure&gt;
  744. &lt;p&gt;As a result, vehicle downtime is minimised, maintenance costs are reduced, and overall reliability is significantly enhanced, ensuring a smoother and more &lt;a href=&quot;https://ubuntu.com/engage/consumer-trends-in-the-automotive-industry:-the-impact-of-new-ownership-habits-and-mobility-trends&quot;&gt;seamless ownership experience&lt;/a&gt; for drivers.&lt;/p&gt;
  745. &lt;h2 class=&quot;wp-block-heading&quot;&gt;Supply chain enhancements&lt;/h2&gt;
  746. &lt;p&gt;AI isn’t just making cars lighter and more efficient – it’s also making them easier to build and send to showrooms and car lots. Car manufacturers can use AI algorithms to analyse large amounts of data related to demand forecasting, inventory management, and logistics operations; this data will reveal ways to streamline supply chain processes and improve overall manufacturing efficiency. &lt;/p&gt;
  747. &lt;p&gt;&lt;a href=&quot;https://ubuntu.com/blog/how-digital-twins-enable-data-driven-automotive-supply-chains&quot;&gt;AI-driven supply chain enhancements&lt;/a&gt; enable OEMs (Original Equipment Manufacturers) to anticipate demand fluctuations, optimise inventory levels, and minimise lead times, thereby reducing costs and improving responsiveness to market dynamics. Moreover, AI enables predictive analytics for proactive risk management, allowing manufacturers to identify potential disruptions and mitigate them before they impact production. This helps car companies be more flexible, resilient, and competitive in today’s changing market. &lt;/p&gt;
  748. &lt;p&gt;One example of this in action is the dispatch of parts across a vast network of locations, including repair shops and warehouses. AI algorithms analyse a multitude of factors, including weather data, customer repair habits, seasonal trends, and inventory levels, to predict demand and optimise part shipments. By consolidating information from various sources and through predictive analytics, AI enables automotive companies to proactively manage their supply chains, ensuring timely delivery of parts while minimising costs and maximising efficiency. &lt;/p&gt;
  749. &lt;p&gt;This approach mirrors strategies employed by agricultural companies, which rely on AI to optimise the distribution of repair parts for harvesting machines, enhancing overall supply chain resilience and performance.&lt;/p&gt;
  750. &lt;h1 class=&quot;wp-block-heading&quot;&gt;Enhanced in-car experience and connectivity&lt;/h1&gt;
  751. &lt;p&gt;In the automotive field, it’s not just the vehicle that’s being improved by AI, but the human experience of that vehicle. AI is revolutionising the in-car experience, offering a seamless blend of comfort, convenience, and connectivity for drivers and passengers alike.&lt;/p&gt;
  752. &lt;h2 class=&quot;wp-block-heading&quot;&gt;In-car experience personalisation&lt;/h2&gt;
  753. &lt;p&gt;Gone are the days of one-size-fits-all vehicle settings. With AI, the in-car experience becomes highly personalised, adapting to the individual preferences and needs of each occupant. By analysing data on driver behaviour, environmental conditions, and historical usage patterns, AI algorithms adjust various settings within the vehicle to create a unique driver-specific experience. &lt;/p&gt;
  754. &lt;p&gt;Imagine sitting in a brand-new car, or in your uncle’s car. Within seconds, the steering wheel height, mirrors, seat, and headrest adjust to put you at the perfect driving height with optimal vision of everything around you. The air conditioning turns on at a perfect 19 degrees (which your uncle thinks is a waste of fuel). The car radio imports your favourite stations as preset channels. The in-car GPS suggests preferred routes home for you based on your previous journeys and the current traffic. That’s the power of AI-driven user experience. &lt;/p&gt;
  755. &lt;p&gt;AI ensures that every journey is as comfortable and enjoyable as possible. This level of personalisation not only enhances the overall driving experience but also fosters greater driver satisfaction and loyalty to automotive brands.&lt;/p&gt;
  756. &lt;h2 class=&quot;wp-block-heading&quot;&gt;Natural Language Processing for smarter assistants&lt;/h2&gt;
  757. &lt;p&gt;In today’s world, you’re more connected than ever. There’s just one problem: it’s illegal in most countries to use the thing that connects you (namely, your phone) while driving. This simple fact makes AI-powered natural language assistants a must-have companion. These assistants enable hands-free interaction with vehicle systems, allowing drivers to perform a wide range of tasks using voice commands alone. &lt;/p&gt;
  758. &lt;p&gt;Whether it’s making phone calls, sending text messages, adjusting navigation settings, or controlling entertainment options, AI-powered natural language assistants make driving safer and more convenient. These assistants seamlessly integrate with other services and devices, such as calendars, emails, and smartphones, ensuring a connected and flawless experience for drivers. Imagine this: your AI companion remembers the 3pm text you got from your partner to pick up milk, and automatically adds a stop at the nearest convenience store that is listed as open and sells your usual purchased brand of organic 3.5% full-fat, free-range fresh milk. By harnessing the power of AI, natural language assistants transform the car into a true extension of the driver’s digital life, enhancing productivity and connectivity on the go.&lt;/p&gt;
  759. &lt;h1 class=&quot;wp-block-heading&quot;&gt;Advanced mobility solutions and urban planning&lt;/h1&gt;
  760. &lt;p&gt;AI goes even further than the car and its driver; at a macro scale, its data and feedback can improve roads, cities, and even the environment itself. As urbanisation continues to accelerate and cities confront growing challenges related to congestion, pollution, and limited infrastructure, AI emerges as a key enabler of advanced mobility solutions and urban planning strategies.&lt;/p&gt;
  761. &lt;h2 class=&quot;wp-block-heading&quot;&gt;Multimodal AI Assistant and Cross-App Integration&lt;/h2&gt;
  762. &lt;p&gt;The integration of AI-powered multimodal assistants marks a significant advancement in mobility solutions. These assistants are designed to seamlessly facilitate transitions between different modes of transport, offering users a harmonious and intuitive experience. Capable of processing various inputs such as voice commands, images, and video feeds, these assistants serve as versatile interfaces, connecting users with their vehicles and surrounding environments.&lt;/p&gt;
  763. &lt;figure class=&quot;wp-block-image&quot;&gt;
  764. &lt;div class=&quot;lazyload&quot; data-noscript=&quot;&quot;&gt;
  765. &amp;lt;noscript&amp;gt;
  766. &amp;lt;img alt=&quot;&quot; src=&quot;https://res.cloudinary.com/canonical/image/fetch/f_auto,q_auto,fl_sanitize,c_fill,w_720/https://lh7-us.googleusercontent.com/7k7zvVCtPyx4hehTqJXb7dLWBwmHJq3-Ztqg67PW16K3j8oKG8bP2VahHl_5R7qtzK7QNpRF8u2GUN_BSlAsTycLXjYlUdCbZOmYVozshf9i1qJ7EDOGR1b5MUpdvcgE-IwufxKnWsKaJ9huPLdVOGA&quot; width=&quot;720&quot; /&amp;gt;
  767. &amp;lt;/noscript&amp;gt;
  768. &lt;/div&gt;
  769. &lt;/figure&gt;
  770. &lt;p&gt;By analysing vast amounts of data, including traffic patterns, congestion hotspots, and user preferences, these assistants not only assist drivers but also contribute to the collective improvement of transportation systems. For instance, their recommendations for nearby points of interest (POIs) like attractions and services aren’t just about enhancing individual journeys. They are also about facilitating better traffic distribution, reducing congestion, and ultimately creating a more harmonious and enjoyable travel experience for everyone on the road.&lt;/p&gt;
  771. &lt;h2 class=&quot;wp-block-heading&quot;&gt;Urban transport optimisation&lt;/h2&gt;
  772. &lt;p&gt;In densely populated urban areas, efficient transport systems are essential for maintaining mobility and reducing environmental impact. AI plays a central role in optimising urban transport planning and infrastructure, using data analytics and predictive modelling to improve efficiency and sustainability. &lt;/p&gt;
  773. &lt;figure class=&quot;wp-block-image&quot;&gt;
  774. &lt;div class=&quot;lazyload&quot; data-noscript=&quot;&quot;&gt;
  775. &amp;lt;noscript&amp;gt;
  776. &amp;lt;img alt=&quot;&quot; src=&quot;https://res.cloudinary.com/canonical/image/fetch/f_auto,q_auto,fl_sanitize,c_fill,w_720/https://lh7-us.googleusercontent.com/AzkUuBaO_Otcob30g7676wQfzkzkJyPvxbbxmymY-JjrGBTTESv3mNv5fbaawVW2_ZLS1zEky0yClFgBQcy0VIxMvcZGWKY2Al9ZmD7-jP3jmPBhKhtoYJATboD88Vqg-Eh7p2oPjT8euxgtUWyE8n4&quot; width=&quot;720&quot; /&amp;gt;
  777. &amp;lt;/noscript&amp;gt;
  778. &lt;/div&gt;
  779. &lt;/figure&gt;
  780. &lt;p&gt;By analysing massive datasets, including traffic patterns, public transit schedules, and environmental conditions, AI algorithms identify opportunities for optimisation, such as route adjustments, traffic signal synchronisation, and modal shift incentives. Additionally, AI facilitates dynamic pricing and demand-responsive services, ensuring that transport networks remain responsive to changing needs and preferences. Through urban transport optimisation, AI enables cities to alleviate congestion, reduce emissions, and enhance overall mobility, creating more pleasant and sustainable urban environments.&lt;/p&gt;
  781. &lt;h2 class=&quot;wp-block-heading&quot;&gt;Travel booking and mobility services&lt;/h2&gt;
  782. &lt;p&gt;AI-driven travel booking, ride-hailing platforms and Mobility as a Service (MaaS) solutions offer &lt;a href=&quot;https://ubuntu.com/blog/what-changing-vehicle-ownership-habits-and-mobility-trends-mean-for-the-future-of-the-automotive-industry&quot;&gt;individually curated and integrated transportation options&lt;/a&gt;, adjusting to individual preferences and needs. With the help of AI algorithms, these platforms analyse user data, historical travel patterns, and real-time availability to offer customised travel itineraries, including public transit, ride-sharing, and micromobility options. These plans extend beyond mode selection to include nuanced considerations such as off-peak travel calculations, surge pricing predictions, and custom suggestions for optimal travel experiences. For instance, AI could recommend travel options based on a user’s preference for a car with ample luggage space, in-car entertainment features, or the most direct route with the fewest stops.&lt;/p&gt;
  783. &lt;p&gt;Additionally, AI optimises travel routes and schedules, taking into account factors such as traffic conditions, weather forecasts, and user preferences, to ensure efficient and stress-free journeys.&lt;/p&gt;
  784. &lt;p&gt;By streamlining travel booking and offering tailored mobility solutions, AI enhances the overall urban mobility experience, making it easier and more convenient to navigate cities and reach destinations.&lt;/p&gt;
  785. &lt;h1 class=&quot;wp-block-heading&quot;&gt;Simulation and testing for autonomous driving&lt;/h1&gt;
  786. &lt;p&gt;The pursuit of autonomous driving (AD) stands at the forefront of automotive technology, promising safer, more efficient, and more convenient transportation solutions. Central to this endeavour is the use of AI to assist in &lt;a href=&quot;https://ubuntu.com/blog/accelerate-automotive-3d-models-with-vgpu&quot;&gt;rigorous simulation and testing processes&lt;/a&gt;, ensuring the reliability and safety of autonomous vehicles.&lt;/p&gt;
  787. &lt;h2 class=&quot;wp-block-heading&quot;&gt;Complex AD simulation scenarios&lt;/h2&gt;
  788. &lt;p&gt;The development and validation of Advanced Driver Assistance Systems (ADAS) and autonomous driving technologies require extensive testing under diverse and complex scenarios.&lt;/p&gt;
  789. &lt;p&gt;AI-driven simulation platforms play a crucial role in this process, generating realistic and dynamic environments that mimic real-world driving conditions. These simulations encompass a &lt;a href=&quot;https://ubuntu.com/blog/how-desktop-and-gpu-virtualisation-power-up-automotive-innovation&quot;&gt;wide range of scenarios&lt;/a&gt;, including varying weather conditions, road layouts, traffic patterns, and unforeseen events, allowing developers to evaluate the performance of autonomous systems in virtually any situation. &lt;/p&gt;
  790. &lt;figure class=&quot;wp-block-image&quot;&gt;
  791. &lt;div class=&quot;lazyload&quot; data-noscript=&quot;&quot;&gt;
  792. &amp;lt;noscript&amp;gt;
  793. &amp;lt;img alt=&quot;&quot; src=&quot;https://res.cloudinary.com/canonical/image/fetch/f_auto,q_auto,fl_sanitize,c_fill,w_720/https://lh7-us.googleusercontent.com/DgXvm7Qri6uu_gatw4Tpq7IPE2aWYFji5JUPqBpBeh7zifD1GQXV86SRTE9A1tyKb_ATcVfU15Wrkg_1IL6fOURGJcpaBJYSU6TfojWoiJm1lwgS4rMsIunxfE16RjT5JyUrgEDaPaVO34PNTSBC9sY&quot; width=&quot;720&quot; /&amp;gt;
  794. &amp;lt;/noscript&amp;gt;
  795. &lt;/div&gt;
  796. &lt;/figure&gt;
  797. &lt;p&gt;By relying on AI algorithms, these simulations continuously evolve and adapt, incorporating new data and insights to enhance their realism and effectiveness. As a result, developers can iteratively refine and optimise autonomous driving algorithms, accelerating the journey towards safe and reliable autonomous vehicles.&lt;/p&gt;
  798. &lt;h2 class=&quot;wp-block-heading&quot;&gt;AI and AD Integration&lt;/h2&gt;
  799. &lt;p&gt;At the core of AD systems lies the integration of AI algorithms, enabling vehicles to perceive, interpret, and respond to their surroundings in real-time. AI processes data from various sensors– including cameras, LiDAR (Light Detection and Ranging), and radar– to identify objects, detect obstacles, and predict their movements. &lt;/p&gt;
  800. &lt;p&gt;Through advanced machine learning processes, AI algorithms continuously learn and improve, enhancing the accuracy and reliability of autonomous driving capabilities. Additionally, AI facilitates decision-making in complex and dynamic environments, enabling vehicles to navigate safely and efficiently in any driving conditions, no matter how stormy or congested they are. &lt;/p&gt;
  801. &lt;p&gt;By integrating AI into autonomous driving systems, automotive manufacturers are creating even safer self-driving cars that can share the road with the rest of us.&lt;/p&gt;
  802. &lt;h1 class=&quot;wp-block-heading&quot;&gt;AI for impactful and smarter automotive innovations&lt;/h1&gt;
  803. &lt;p&gt;In conclusion, the integration of AI into the automotive industry has ushered in a new era of innovation, transforming every facet of the driving experience. From revolutionising vehicle design and maintenance to optimising supply chains and enhancing urban mobility, AI is driving (pun intended) unprecedented advancements that promise safer, more efficient, and more sustainable transportation solutions.&lt;/p&gt;
  804. &lt;p&gt;The applications of AI discussed in this blog illustrate the breadth and depth of its impact on the automotive sector. AI-driven design and manufacturing processes are pushing the boundaries of creativity and efficiency, while predictive maintenance systems are ensuring the reliability and longevity of vehicles on the road. In-car experience personalisation and natural language assistants are redefining how drivers interact with their vehicles, while advanced mobility solutions and urban planning strategies are reshaping the way we navigate and interact with cities. Furthermore, AI’s role in optimising supply chains and facilitating autonomous driving technologies underscores its potential to revolutionise the entire automotive ecosystem. By harnessing the power of AI, automotive companies can unlock new opportunities for efficiency, sustainability, and innovation, driving us towards a future where mobility is smarter, safer, and more accessible for all.&lt;/p&gt;
  805. &lt;p&gt;As we look ahead, it is clear that AI will continue to play a leading role in shaping the future of transportation.&lt;/p&gt;
  806. &lt;ul&gt;
  807. &lt;li&gt;&lt;a href=&quot;https://ubuntu.com/engage/embrace-the-v2x-era&quot;&gt;&lt;em&gt;Download our whitepaper on V2X and connected vehicles&lt;/em&gt;&lt;/a&gt;&lt;/li&gt;
  808. &lt;li&gt;&lt;a href=&quot;https://ubuntu.com/automotive&quot;&gt;&lt;em&gt;Check out our webpage&lt;/em&gt;&lt;/a&gt;&lt;/li&gt;
  809. &lt;li&gt;&lt;a href=&quot;https://ubuntu.com/automotive#get-in-touch&quot;&gt;&lt;em&gt;Contact Us&lt;/em&gt;&lt;/a&gt;&lt;/li&gt;
  810. &lt;li&gt;&lt;a href=&quot;https://ubuntu.com/blog/tag/automotive&quot;&gt;&lt;em&gt;More automotive software updates and news&lt;/em&gt;&lt;/a&gt;&lt;/li&gt;
  811. &lt;li&gt;&lt;em&gt;Watch a joint webinar with Elektrobit: Unlocking software-defined vehicles: a deep dive into automotive software&lt;/em&gt;&lt;/li&gt;
  812. &lt;/ul&gt;
  813. &lt;figure class=&quot;wp-block-image&quot;&gt;
  814. &lt;div class=&quot;lazyload&quot; data-noscript=&quot;&quot;&gt;
  815. &amp;lt;noscript&amp;gt;
  816. &amp;lt;img alt=&quot;&quot; src=&quot;https://res.cloudinary.com/canonical/image/fetch/f_auto,q_auto,fl_sanitize,c_fill,w_720/https://lh7-us.googleusercontent.com/T6tm9mbdbJA_vyZ2BG_tYSrLJg5N-4mnhqtlCa0mLJKlwkPMfk4zXwOpIn3KNz1vL7Pu6Pge721TTiLYr070p6hMCIsyLMtObZVtJtDX-ab1wcMJPD13K3-7wdJm6huaWOzhDiXoOmRkIGGoXKUTfcQ&quot; width=&quot;720&quot; /&amp;gt;
  817. &amp;lt;/noscript&amp;gt;
  818. &lt;/div&gt;
  819. &lt;/figure&gt;</description>
  820. <pubDate>Tue, 30 Apr 2024 08:00:00 +0000</pubDate>
  821. </item>
  822. <item>
  823. <title>The Fridge: Ubuntu Weekly Newsletter Issue 837</title>
  824. <guid isPermaLink="false">https://fridge.ubuntu.com/?p=10164</guid>
  825. <link>https://fridge.ubuntu.com/2024/04/29/ubuntu-weekly-newsletter-issue-837/</link>
  826. <description>&lt;p&gt;&lt;img src=&quot;https://fridge.ubuntu.com/wp-content/uploads/2020/02/c9d7/header.png&quot; /&gt;&lt;/p&gt;
  827. &lt;p&gt;Welcome to the Ubuntu Weekly Newsletter, &lt;strong&gt;Issue 837 for the week of April 21 – 27, 2024&lt;/strong&gt;. The full version of this issue is available &lt;a href=&quot;https://discourse.ubuntu.com/t/ubuntu-weekly-newsletter-issue-837/44392&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;
  828. &lt;p&gt;In this issue we cover:&lt;/p&gt;
  829. &lt;ul&gt;
  830. &lt;li&gt;Ubuntu 24.04 LTS (Noble Numbat) released&lt;/li&gt;
  831. &lt;li&gt;Ubuntu Stats&lt;/li&gt;
  832. &lt;li&gt;Hot in Support&lt;/li&gt;
  833. &lt;li&gt;Party like a Noble Numbat&lt;/li&gt;
  834. &lt;li&gt;UbuCon North America 2024 Call for Papers&lt;/li&gt;
  835. &lt;li&gt;LoCo Events&lt;/li&gt;
  836. &lt;li&gt;NVIDIA GPUDirect over Infiniband Migration Paths&lt;/li&gt;
  837. &lt;li&gt;Let’s talk open design&lt;/li&gt;
  838. &lt;li&gt;Subiquity 24.04.1 has been released to the stable channel&lt;/li&gt;
  839. &lt;li&gt;May – October 2024 planning cycle – your opinions count&lt;/li&gt;
  840. &lt;li&gt;Ubuntu Cloud News&lt;/li&gt;
  841. &lt;li&gt;Canonical News&lt;/li&gt;
  842. &lt;li&gt;In the Press&lt;/li&gt;
  843. &lt;li&gt;In the Blogosphere&lt;/li&gt;
  844. &lt;li&gt;Other Articles of Interest&lt;/li&gt;
  845. &lt;li&gt;Featured Audio and Video&lt;/li&gt;
  846. &lt;li&gt;Meeting Reports&lt;/li&gt;
  847. &lt;li&gt;Upcoming Meetings and Events&lt;/li&gt;
  848. &lt;li&gt;Updates and Security for Ubuntu 20.04, 22.04, 23.10, and 24.04&lt;/li&gt;
  849. &lt;li&gt;And much more!&lt;/li&gt;
  850. &lt;/ul&gt;
  851. &lt;p&gt;&lt;strong&gt;The Ubuntu Weekly Newsletter is brought to you by:&lt;/strong&gt;&lt;/p&gt;
  852. &lt;ul&gt;
  853. &lt;li&gt;Krytarik Raido&lt;/li&gt;
  854. &lt;li&gt;Bashing-om&lt;/li&gt;
  855. &lt;li&gt;Chris Guiver&lt;/li&gt;
  856. &lt;li&gt;Wild Man&lt;/li&gt;
  857. &lt;li&gt;And many others&lt;/li&gt;
  858. &lt;/ul&gt;
  859. &lt;p&gt;If you have a story idea for the Weekly Newsletter, join the &lt;a href=&quot;https://lists.ubuntu.com/mailman/listinfo/Ubuntu-news-team&quot;&gt;Ubuntu News Team mailing list&lt;/a&gt; and submit it. Ideas can also be added to the &lt;a href=&quot;https://wiki.ubuntu.com/UbuntuWeeklyNewsletter/Ideas&quot;&gt;wiki&lt;/a&gt;!&lt;/p&gt;
  860. &lt;p&gt;&lt;img class=&quot;alignleft&quot; src=&quot;https://fridge.ubuntu.com/wp-content/uploads/2015/05/ab28/CCL.png&quot; style=&quot;margin: 0 10px 0 0;&quot; /&gt; &lt;a href=&quot;https://fridge.ubuntu.com/2024/04/29/ubuntu-weekly-newsletter-issue-837/&quot;&gt;&lt;/a&gt;.&lt;/p&gt;</description>
  861. <pubDate>Mon, 29 Apr 2024 22:47:30 +0000</pubDate>
  862. </item>
  863. <item>
  864. <title>St&amp;eacute;phane Graber: Incus and Ubuntu 24.04 LTS</title>
  865. <guid isPermaLink="false">https://stgraber.org/?p=1571</guid>
  866. <link>https://stgraber.org/2024/04/29/incus-and-ubuntu-24-04-lts/</link>
  867. <description>&lt;p&gt;&lt;a href=&quot;https://canonical.com/blog/canonical-releases-ubuntu-24-04-noble-numbat&quot;&gt;Ubuntu 24.04 LTS&lt;/a&gt; was released just a few days ago and many Ubuntu users will now slowly plan their upgrades, whether it’s going to be over the next few days, weeks, months or years.&lt;/p&gt;
  868.  
  869.  
  870.  
  871. &lt;figure class=&quot;wp-block-image size-full&quot;&gt;&lt;a href=&quot;https://stgraber.org/wp-content/uploads/2024/04/image-1.png&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-1572&quot; height=&quot;462&quot; src=&quot;https://stgraber.org/wp-content/uploads/2024/04/image-1.png&quot; width=&quot;694&quot; /&gt;&lt;/a&gt;&lt;/figure&gt;
  872.  
  873.  
  874.  
  875. &lt;p&gt;When it comes to running &lt;a href=&quot;https://linuxcontainers.org/incus&quot;&gt;Incus&lt;/a&gt; on Ubuntu 24.04 LTS, there are a few options detailed below.&lt;/p&gt;
  876.  
  877.  
  878.  
  879. &lt;details class=&quot;wp-block-details is-layout-flow wp-block-details-is-layout-flow&quot;&gt;About Incus
  880. &lt;p&gt;Incus is a container and virtual machine manager which aims at providing a cloud-like experience but fully self-hosted and capable of running on just about anything, from a single board computer, to a laptop to a cluster of high end servers.&lt;/p&gt;
  881.  
  882.  
  883.  
  884. &lt;p&gt;Incus was created following Canonical’s decision to make LXD a fully in-house project and it is actively maintained by the same team that once created LXD, almost 10 years ago. It’s part of the &lt;a href=&quot;https://linuxcontainers.org&quot;&gt;Linux Containers&lt;/a&gt; project and so benefits of all the infrastructure and experience in maintaining stable software over decades.&lt;/p&gt;
  885. &lt;/details&gt;
  886.  
  887.  
  888.  
  889. &lt;h1 class=&quot;wp-block-heading&quot;&gt;Native Incus packages&lt;/h1&gt;
  890.  
  891.  
  892.  
  893. &lt;p&gt;&lt;a href=&quot;https://discuss.linuxcontainers.org/c/news/13&quot;&gt;Incus 6.0 LTS&lt;/a&gt; is included directly in the Ubuntu Archive, making it very easy to install:&lt;/p&gt;
  894.  
  895.  
  896.  
  897. &lt;ul&gt;
  898. &lt;li&gt;Simple container experience: &lt;code&gt;apt install incus&lt;/code&gt;&lt;/li&gt;
  899.  
  900.  
  901.  
  902. &lt;li&gt;Container and virtual-machines: &lt;code&gt;apt install incus qemu-system-x86-64&lt;/code&gt;&lt;/li&gt;
  903.  
  904.  
  905.  
  906. &lt;li&gt;To migrate from LXD: &lt;code&gt;apt install incus-tools&lt;/code&gt;&lt;/li&gt;
  907. &lt;/ul&gt;
  908.  
  909.  
  910.  
  911. &lt;figure class=&quot;wp-block-image size-full&quot;&gt;&lt;a href=&quot;https://stgraber.org/wp-content/uploads/2024/04/image-2.png&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-1573&quot; height=&quot;462&quot; src=&quot;https://stgraber.org/wp-content/uploads/2024/04/image-2.png&quot; width=&quot;738&quot; /&gt;&lt;/a&gt;&lt;/figure&gt;
  912.  
  913.  
  914.  
  915. &lt;p&gt;Installing Incus that way is convenient as it doesn’t use external repositories nor does it rely on alternative packaging methods like snaps. That’s also the same set of Incus packages that will be shipped with Debian 13 (Trixie).&lt;/p&gt;
  916.  
  917.  
  918.  
  919. &lt;p&gt;On the support front, this is using Incus 6.0 LTS and so uses a version of Incus that will be supported upstream for the next 5 years. The package itself is in the &lt;a href=&quot;https://help.ubuntu.com/community/Repositories/Ubuntu&quot;&gt;universe repository&lt;/a&gt; and so doesn’t come with security updates provided by Canonical as part of stock Ubuntu.&lt;/p&gt;
  920.  
  921.  
  922.  
  923. &lt;p&gt;However Canonical now provides additional security updates to &lt;a href=&quot;https://ubuntu.com/pricing/pro&quot;&gt;Ubuntu Pro&lt;/a&gt; users which includes both security updates and support for all 23000 packages in universe.&lt;/p&gt;
  924.  
  925.  
  926.  
  927. &lt;h1 class=&quot;wp-block-heading&quot;&gt;Third party Incus packages&lt;/h1&gt;
  928.  
  929.  
  930.  
  931. &lt;p&gt;An alternative is to use the &lt;a href=&quot;https://github.com/zabbly/incus&quot;&gt;packages that I produce myself&lt;/a&gt;.&lt;/p&gt;
  932.  
  933.  
  934.  
  935. &lt;p&gt;Those packages are quite different from the ones shipped directly in Ubuntu or Debian as they also directly include the most critical dependencies so that the whole solution can be tested and validated as a single unit.&lt;/p&gt;
  936.  
  937.  
  938.  
  939. &lt;figure class=&quot;wp-block-image size-full&quot;&gt;&lt;a href=&quot;https://stgraber.org/wp-content/uploads/2024/04/image-3.png&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-1574&quot; height=&quot;462&quot; src=&quot;https://stgraber.org/wp-content/uploads/2024/04/image-3.png&quot; width=&quot;738&quot; /&gt;&lt;/a&gt;&lt;/figure&gt;
  940.  
  941.  
  942.  
  943. &lt;p&gt;That makes it much easier for me to provide timely fixes as well as &lt;a href=&quot;https://zabbly.com/incus/&quot;&gt;commercial support&lt;/a&gt; for users of those packages. It also allows for decoupling the Incus installation/version from the OS version, making major system updates easier.&lt;/p&gt;
  944.  
  945.  
  946.  
  947. &lt;p&gt;Packages are available for Ubuntu 20.04, 22.04 and now 24.04 LTS as well as Debian 11 and Debian 12.&lt;/p&gt;
  948.  
  949.  
  950.  
  951. &lt;h1 class=&quot;wp-block-heading&quot;&gt;Moving from LXD&lt;/h1&gt;
  952.  
  953.  
  954.  
  955. &lt;p&gt;Ubuntu 24.04 LTS ships with LXD 5.21, migrating from LXD 5.21 to Incus 6.0 LTS can be done very easily by running the “lxd-to-incus” command.&lt;/p&gt;
  956.  
  957.  
  958.  
  959. &lt;figure class=&quot;wp-block-image&quot;&gt;&lt;a href=&quot;https://asciinema.org/a/650718&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://asciinema.org/a/650718.svg&quot; /&gt;&lt;/a&gt;&lt;/figure&gt;
  960.  
  961.  
  962.  
  963. &lt;p&gt;It supports very quickly and reliably migrating data from LXD installations as old as LXD 4.0.0 all the way to and including LXD 5.21.&lt;/p&gt;
  964.  
  965.  
  966.  
  967. &lt;h1 class=&quot;wp-block-heading&quot;&gt;Running Ubuntu 24.04 LTS on top of Incus&lt;/h1&gt;
  968.  
  969.  
  970.  
  971. &lt;p&gt;If you’re just looking at using Ubuntu 24.04 LTS but don’t want to upgrade your whole system yet, or you’re running another Linux distribution and just want to experiment with Ubuntu 24.04 LTS, you can easily do that through Incus.&lt;/p&gt;
  972.  
  973.  
  974.  
  975. &lt;p&gt;Incus has the following images ready for use:&lt;/p&gt;
  976.  
  977.  
  978.  
  979. &lt;h2 class=&quot;wp-block-heading&quot;&gt;Ubuntu 24.04 LTS base image&lt;/h2&gt;
  980.  
  981.  
  982.  
  983. &lt;p&gt;Our default Ubuntu 24.04 LTS image. It’s pretty lightweight while still containing most expected tools for day to day operation.&lt;/p&gt;
  984.  
  985.  
  986.  
  987. &lt;figure class=&quot;wp-block-image size-full&quot;&gt;&lt;a href=&quot;https://stgraber.org/wp-content/uploads/2024/04/image-4.png&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-1575&quot; height=&quot;462&quot; src=&quot;https://stgraber.org/wp-content/uploads/2024/04/image-4.png&quot; width=&quot;738&quot; /&gt;&lt;/a&gt;&lt;/figure&gt;
  988.  
  989.  
  990.  
  991. &lt;p&gt;It’s available for both containers (125MiB compressed) and virtual-machines (270MiB compressed).&lt;/p&gt;
  992.  
  993.  
  994.  
  995. &lt;h2 class=&quot;wp-block-heading&quot;&gt;Ubuntu 24.04 LTS cloud image&lt;/h2&gt;
  996.  
  997.  
  998.  
  999. &lt;p&gt;Our &lt;a href=&quot;https://cloud-init.io/&quot;&gt;cloud-init&lt;/a&gt; enabled Ubuntu 24.04 LTS image, it’s basically the same as the default image but with cloud-init enabled for automated provisioning.&lt;/p&gt;
  1000.  
  1001.  
  1002.  
  1003. &lt;figure class=&quot;wp-block-image size-full&quot;&gt;&lt;a href=&quot;https://stgraber.org/wp-content/uploads/2024/04/image-5.png&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-1576&quot; height=&quot;462&quot; src=&quot;https://stgraber.org/wp-content/uploads/2024/04/image-5.png&quot; width=&quot;738&quot; /&gt;&lt;/a&gt;&lt;/figure&gt;
  1004.  
  1005.  
  1006.  
  1007. &lt;p&gt;It’s available for both containers (150MiB compressed) and virtual-machines (305MiB compressed).&lt;/p&gt;
  1008.  
  1009.  
  1010.  
  1011. &lt;h2 class=&quot;wp-block-heading&quot;&gt;Ubuntu 24.04 LTS desktop image&lt;/h2&gt;
  1012.  
  1013.  
  1014.  
  1015. &lt;p&gt;Our desktop (Gnome) Ubuntu 24.04 LTS image, it boots directly into a pre-created user account and makes it extremely easy to try the latest Ubuntu Desktop experience.&lt;/p&gt;
  1016.  
  1017.  
  1018.  
  1019. &lt;figure class=&quot;wp-block-video&quot;&gt;&lt;video controls=&quot;controls&quot; src=&quot;https://stgraber.org/wp-content/uploads/2024/04/Screencast-from-2024-04-29-12-00-41.webm&quot;&gt;&lt;/video&gt;&lt;/figure&gt;
  1020.  
  1021.  
  1022.  
  1023. &lt;p&gt;This image is only available as a virtual-machine (1.1GiB compressed).&lt;/p&gt;
  1024.  
  1025.  
  1026.  
  1027. &lt;h1 class=&quot;wp-block-heading&quot;&gt;Conclusion&lt;/h1&gt;
  1028.  
  1029.  
  1030.  
  1031. &lt;p&gt;Hopefully this provided a pretty good overview of how to get Incus up and running on Ubuntu 24.04 LTS, either by moving from an existing LXD installation over to Incus or installing it fresh.&lt;/p&gt;
  1032.  
  1033.  
  1034.  
  1035. &lt;figure class=&quot;wp-block-image size-large&quot;&gt;&lt;a href=&quot;https://stgraber.org/wp-content/uploads/2024/04/image-6.png&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-1578&quot; height=&quot;445&quot; src=&quot;https://stgraber.org/wp-content/uploads/2024/04/image-6-1024x445.png&quot; width=&quot;1024&quot; /&gt;&lt;/a&gt;&lt;/figure&gt;
  1036.  
  1037.  
  1038.  
  1039. &lt;p&gt;If you’d just like to learn more about Incus without having to install it locally, our &lt;a href=&quot;https://linuxcontainers.org/incus/try-it/&quot;&gt;online demo service&lt;/a&gt; is as great for that as ever!&lt;/p&gt;
  1040.  
  1041.  
  1042.  
  1043. &lt;p&gt;And if you’re not using Ubuntu on your system, don’t worry, Incus can &lt;a href=&quot;https://linuxcontainers.org/incus/docs/main/installing/&quot;&gt;run on just about anything else too&lt;/a&gt;!&lt;/p&gt;</description>
  1044. <pubDate>Mon, 29 Apr 2024 16:14:37 +0000</pubDate>
  1045.        <enclosure url="https://stgraber.org/wp-content/uploads/2024/04/Screencast-from-2024-04-29-12-00-41.webm" length="0" type="video/webm"/>
  1046. </item>
  1047. <item>
  1048. <title>Alan Pope: The Joy of Code</title>
  1049. <guid isPermaLink="true">https://popey.com/blog/2024/04/the-joy-of-code/</guid>
  1050. <link>https://popey.com/blog/2024/04/the-joy-of-code/</link>
  1051. <description>&lt;p&gt;A few weeks ago, in &lt;a href=&quot;https://linuxmatters.sh/25/&quot;&gt;episode 25&lt;/a&gt; of &lt;a href=&quot;https://linuxmatters.sh/&quot;&gt;Linux Matters Podcast&lt;/a&gt; I brought up the subject of ‘Coding Joy’. This blog post is an expanded follow-up to that segment. Go and listen to that episode - or not - it’s all covered here.&lt;/p&gt;
  1052. &lt;p&gt;&lt;a href=&quot;https://linuxmatters.sh/25/&quot;&gt;&lt;img alt=&quot;The Joy of Linux Torture&quot; src=&quot;https://popey.com/blog/blog/images/2024-02-20/linuxmatters-banner-3000x750_30.png&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
  1053. &lt;h2 id=&quot;not-a-developer&quot;&gt;Not a Developer&lt;/h2&gt;
  1054. &lt;p&gt;I’ve said this many times - I’ve never considered myself a ‘Developer’. It’s not so much &lt;em&gt;imposter syndrome&lt;/em&gt;, but plain facts. I didn’t attend university to study software engineering, and have never held a job with ‘Engineer’ or Developer’ in the title.&lt;/p&gt;
  1055. &lt;p&gt;(I do have Engineering Manager and Developer Advocate roles in my past, but in &lt;em&gt;popey’s weird set of rules&lt;/em&gt;, those don’t count.)&lt;/p&gt;
  1056. &lt;p&gt;I &lt;em&gt;have&lt;/em&gt; written code over the years. Starting with BASIC on the Sinclair ZX81 and Sinclair Spectrum, I wrote stuff for fun and no financial gain. I also coded in Z80 &amp;amp; 6502 assembler, taught myself Pascal on my Epson 8086 PC in 1990, then &lt;a href=&quot;https://en.wikipedia.org/wiki/QuickBASIC&quot;&gt;QuickBasic&lt;/a&gt; and years later, &lt;a href=&quot;https://en.wikipedia.org/wiki/Blitz_BASIC&quot;&gt;BlitzBasic&lt;/a&gt;, Lua (via &lt;a href=&quot;https://love2d.org/&quot;&gt;LÖVE&lt;/a&gt;) and more.&lt;/p&gt;
  1057. &lt;p&gt;In the workplace, I wrote some alarmingly complex utilities in Windows batch scripts and later Bash shell scripts on Linux. In a past career, I would write ABAP in SAP - which turned into an internal product mildly amusingly called “&lt;em&gt;Alan’s Tool&lt;/em&gt;”.&lt;/p&gt;
  1058. &lt;p&gt;These were pretty much all coding for fun, though. Nobody specced up a project and assigned me as a developer on it. I just picked up the tools and started making something, whether that was a sprite routine in Z80 assembler, an educational CPU simulator in Pascal, or a spreadsheet uploader for SAP BiW.&lt;/p&gt;
  1059. &lt;p&gt;In 2003, three years before Twitter launched in 2006, I made a service called ‘Clunky.net’. It was a bunch of PHP and Perl smashed together and published online with little regard for longevity or security. Users could sign up and send ’tweet’ style messages from their phone via SMS, which would be presented in a reverse-chronological timeline. It didn’t last, but I had fun making it while it did.&lt;/p&gt;
  1060. &lt;p&gt;They were all fun side-quests.&lt;/p&gt;
  1061. &lt;p&gt;None of this makes me a developer.&lt;/p&gt;
  1062. &lt;h2 id=&quot;volatile-memories&quot;&gt;Volatile Memories&lt;/h2&gt;
  1063. &lt;p&gt;It’s rapidly approaching fifty years since I first wrote any code on my &lt;a href=&quot;https://popey.com/blog/blog/2021/03/fourty-years-on/&quot;&gt;first computer&lt;/a&gt;. Back then, you’d typically write code and then either save it on tape (if you were patient) or disk (if you were loaded). Maybe you’d write it down - either before or after you typed it in - or perhaps you’d turn the computer off and lose it all.&lt;/p&gt;
  1064. &lt;p&gt;When I studied for a BTEC National Diploma in Computer Studies at college, one of our classes was on the IBM PC with two floppy disc drives. The lecturer kept hold of all the floppies because we couldn’t be trusted not to lose, damage or forget them. Sometimes the lecturer was held up at the start of class, so we’d be sat twiddling our thumbs for a bit.&lt;/p&gt;
  1065. &lt;p&gt;In those days, when you booted the PC with no floppy inserted, it would go directly into &lt;a href=&quot;https://en.wikipedia.org/wiki/IBM_BASIC#IBM_Advanced_BASIC&quot;&gt;BASICA&lt;/a&gt;, like the 8-bit microcomputers before it. I would frequently start writing something, anything, to pass the time.&lt;/p&gt;
  1066. &lt;p&gt;With no floppy disks on hand, the code - beautiful as it was - would be lost. The lecturer often reset the room when they entered, hitting a big red ‘Stop’ button, which instantly powered down all the computers, losing whatever ‘work’ you’d done.&lt;/p&gt;
  1067. &lt;p&gt;I was probably a little irritated at the moment, just as I would when the &lt;a href=&quot;https://en.wikipedia.org/wiki/RAM_pack&quot;&gt;RAM pack&lt;/a&gt; wobbled on my ZX81, losing everything. You move on, though, and make something else, or get on with your college work, and soon forget about it.&lt;/p&gt;
  1068. &lt;p&gt;Or you bitterly remember it and write a blog post four decades later. Each to their own.&lt;/p&gt;
  1069. &lt;h2 id=&quot;sharing-is-caring&quot;&gt;Sharing is Caring&lt;/h2&gt;
  1070. &lt;p&gt;&lt;em&gt;This part was the main focus of the conversation when we talked about this on the &lt;a href=&quot;https://linuxmatters.sh/25/&quot;&gt;show&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
  1071. &lt;p&gt;In the modern age, over the last ten to fifteen years or so, I’ve not done so much of the kind of coding I wrote about above. I certainly have done &lt;em&gt;some&lt;/em&gt; stuff for work, mostly around packaging other people’s software as snaps or writing noddy little shell scripts. But I lost a lot of the ‘joy’ of coding recently.&lt;/p&gt;
  1072. &lt;p&gt;Why?&lt;/p&gt;
  1073. &lt;p&gt;I think a big part is the expectation that I’d make the code available to others. The public scrutiny others give your code may have been a factor. The pressure I felt that I should put my code out and continue to maintain it rather than throw it over the wall wouldn’t have helped.&lt;/p&gt;
  1074. &lt;p&gt;I think I was so obsessed with doing the ‘right’ thing that coding ‘correctly’ or following standards and making it all maintainable became a cognitive roadblock.&lt;/p&gt;
  1075. &lt;p&gt;I would start writing something and then begin wondering, ‘How would someone package this up?’ and ‘Am I using modern coding standards, toolkits, and frameworks?’ This held me back from the joy of coding in the first place. I was obsessing too much over other people’s opinions of my code and whether someone else could build and run it.&lt;/p&gt;
  1076. &lt;p&gt;I never &lt;em&gt;used&lt;/em&gt; to care about this stuff for personal projects, and it was a lot more joyful an experience - for me.&lt;/p&gt;
  1077. &lt;p&gt;I used to have an idea, pick up a text editor and start coding. I missed that.&lt;/p&gt;
  1078. &lt;h2 id=&quot;realisation&quot;&gt;Realisation&lt;/h2&gt;
  1079. &lt;p&gt;In January this year, &lt;a href=&quot;https://shkspr.mobi/&quot;&gt;Terence Eden&lt;/a&gt; &lt;a href=&quot;https://shkspr.mobi/blog/2024/01/rebuilding-foursquare-for-activitypub-using-openstreetmap/&quot;&gt;wrote&lt;/a&gt; about his escapades making a FourSquare-like service using ActivityPub and OpenStreetMap. When he first mentioned this on Mastodon, I grabbed a copy of the code he shared and had a brief look at it.&lt;/p&gt;
  1080. &lt;p&gt;The code was surprisingly simple, scrappy, kinda working, and written in PHP. I was immediately thrown back twenty years to my terrible ‘Clunky’ code and how much fun it was to throw together.&lt;/p&gt;
  1081. &lt;p&gt;In February, I bumped into Terence at &lt;a href=&quot;https://stateofopencon.com/&quot;&gt;State of Open Con&lt;/a&gt; in London and took the opportunity to quiz him about his creation. We discussed his choice of technology (PHP), and the simple ’thrown together in a day’ nature of the project.&lt;/p&gt;
  1082. &lt;p&gt;At that point, I had a bit of a light-bulb moment, realising that I could get back to joyful coding. I don’t have to share everything; not every project needs to be an Open-Source Opus.&lt;/p&gt;
  1083. &lt;p&gt;I &lt;em&gt;can&lt;/em&gt; open a text editor, type some code, and enjoy it, and that’s &lt;em&gt;enough&lt;/em&gt;.&lt;/p&gt;
  1084. &lt;h2 id=&quot;joy-rediscovered&quot;&gt;Joy Rediscovered&lt;/h2&gt;
  1085. &lt;p&gt;I had an idea for a web application and wanted to prototype something without too much technological research or overhead. So I created a folder on my home server, ran &lt;code&gt;php -S 0.0.0.0:9000&lt;/code&gt; in a terminal there, made a skeleton &lt;code&gt;index.php&lt;/code&gt; and pointed a browser at the address. Boom! Application created!&lt;/p&gt;
  1086. &lt;p&gt;I created some horribly insecure and probably unmaintainable PHP that will almost certainly never see the light of day.&lt;/p&gt;
  1087. &lt;p&gt;I had fun doing it though. Which is really the whole point.&lt;/p&gt;
  1088. &lt;p&gt;More side-quests, fewer grand plans.&lt;/p&gt;</description>
  1089. <pubDate>Sat, 27 Apr 2024 08:00:00 +0000</pubDate>
  1090. </item>
  1091. <item>
  1092. <title>Salih Emin: Ucaresystem 24.04.0 released</title>
  1093. <guid isPermaLink="false">http://utappiablog.wordpress.com/?p=49657</guid>
  1094. <link>https://utappiablog.wordpress.com/2024/04/26/ucaresystem-24-04-0-released/</link>
  1095. <description>The latest release of uCareSystem, version 24.04.0, introduces enhanced maintenance and cleanup capabilities for Ubuntu and its derivatives. It’s definitely worth exploring the new features As uCareSystem joyfully celebrates its 15th anniversary, its latest release unveils a host of new features that I have incorporated to address the evolving needs since the previous version, 4.4.0 […]</description>
  1096. <pubDate>Fri, 26 Apr 2024 11:01:56 +0000</pubDate>
  1097. </item>
  1098. <item>
  1099. <title>Alan Pope: Do you know Simone?</title>
  1100. <guid isPermaLink="true">https://popey.com/blog/2024/04/do-you-know-simone/</guid>
  1101. <link>https://popey.com/blog/2024/04/do-you-know-simone/</link>
  1102. <description>&lt;p&gt;Over coffee this morning, I stumbled upon &lt;a href=&quot;https://github.com/rajtilakjee/simone&quot;&gt;simone&lt;/a&gt;, a fledgling Open-Source tool for repurposing YouTube videos as blog posts. The Python tool creates a text summary of the video and extracts some contextual frames to illustrate the text.&lt;/p&gt;
  1103. &lt;p&gt;A neat idea! In my experience, software engineers are often tasked with making demonstration videos, but other engineers commonly prefer consuming the written word over watching a video. I took simone for a spin, to see how well it works. Scroll down and tell me what you think!&lt;/p&gt;
  1104. &lt;p&gt;I was sat in front of my work laptop, which is a mac, so roughly speaking, this is what I did:&lt;/p&gt;
  1105. &lt;ul&gt;
  1106. &lt;li&gt;Install host pre-requisites&lt;/li&gt;
  1107. &lt;/ul&gt;
  1108. &lt;div class=&quot;highlight&quot;&gt;&lt;pre tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;&lt;span style=&quot;display: flex;&quot;&gt;&lt;span&gt;$ brew install ffmpeg tesseract virtualenv
  1109. &lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
  1110. &lt;li&gt;Get &lt;a href=&quot;https://github.com/rajtilakjee/simone&quot;&gt;simone&lt;/a&gt;&lt;/li&gt;
  1111. &lt;/ul&gt;
  1112. &lt;div class=&quot;highlight&quot;&gt;&lt;pre tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;&lt;span style=&quot;display: flex;&quot;&gt;&lt;span&gt;git clone https://github.com/rajtilakjee/simone
  1113. &lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
  1114. &lt;li&gt;Get a free API key from &lt;a href=&quot;https://openrouter.ai/&quot;&gt;OpenRouter&lt;/a&gt;&lt;/li&gt;
  1115. &lt;li&gt;Put the API key in &lt;code&gt;.env&lt;/code&gt;&lt;/li&gt;
  1116. &lt;/ul&gt;
  1117. &lt;div class=&quot;highlight&quot;&gt;&lt;pre tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-text&quot; data-lang=&quot;text&quot;&gt;&lt;span style=&quot;display: flex;&quot;&gt;&lt;span&gt;GEMMA_API_KEY=sk-or-v1-0000000000000000000000000000000000000000000000000000000000000000
  1118. &lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
  1119. &lt;li&gt;Install python requisites&lt;/li&gt;
  1120. &lt;/ul&gt;
  1121. &lt;div class=&quot;highlight&quot;&gt;&lt;pre tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;&lt;span style=&quot;display: flex;&quot;&gt;&lt;span&gt;$ cd simone
  1122. &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display: flex;&quot;&gt;&lt;span&gt;$ virtualenv .venv
  1123. &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display: flex;&quot;&gt;&lt;span&gt;$ source .venv/bin/activate
  1124. &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display: flex;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #f92672;&quot;&gt;(&lt;/span&gt;.venv&lt;span style=&quot;color: #f92672;&quot;&gt;)&lt;/span&gt; $ pip install -r requirements.txt
  1125. &lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
  1126. &lt;li&gt;Run it!&lt;/li&gt;
  1127. &lt;/ul&gt;
  1128. &lt;div class=&quot;highlight&quot;&gt;&lt;pre tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;&lt;span style=&quot;display: flex;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #f92672;&quot;&gt;(&lt;/span&gt;.venv&lt;span style=&quot;color: #f92672;&quot;&gt;)&lt;/span&gt; $ python src/main.py
  1129. &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display: flex;&quot;&gt;&lt;span&gt;Enter YouTube URL: https://www.youtube.com/watch?v&lt;span style=&quot;color: #f92672;&quot;&gt;=&lt;/span&gt;VDIAHEoECfM
  1130. &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display: flex;&quot;&gt;&lt;span&gt;/Users/alan/Work/rajtilakjee/simone/.venv/lib/python3.12/site-packages/whisper/transcribe.py:115: UserWarning: FP16 is not supported on CPU; using FP32 instead
  1131. &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display: flex;&quot;&gt;&lt;span&gt; warnings.warn&lt;span style=&quot;color: #f92672;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #e6db74;&quot;&gt;&quot;FP16 is not supported on CPU; using FP32 instead&quot;&lt;/span&gt;&lt;span style=&quot;color: #f92672;&quot;&gt;)&lt;/span&gt;
  1132. &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display: flex;&quot;&gt;&lt;span&gt;Traceback &lt;span style=&quot;color: #f92672;&quot;&gt;(&lt;/span&gt;most recent call last&lt;span style=&quot;color: #f92672;&quot;&gt;)&lt;/span&gt;:
  1133. &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display: flex;&quot;&gt;&lt;span&gt; File &lt;span style=&quot;color: #e6db74;&quot;&gt;&quot;/Users/alan/Work/rajtilakjee/simone/.venv/lib/python3.12/site-packages/pytesseract/pytesseract.py&quot;&lt;/span&gt;, line 255, in run_tesseract
  1134. &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display: flex;&quot;&gt;&lt;span&gt; proc &lt;span style=&quot;color: #f92672;&quot;&gt;=&lt;/span&gt; subprocess.Popen&lt;span style=&quot;color: #f92672;&quot;&gt;(&lt;/span&gt;cmd_args, **subprocess_args&lt;span style=&quot;color: #f92672;&quot;&gt;())&lt;/span&gt;
  1135. &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display: flex;&quot;&gt;&lt;span&gt; ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  1136. &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display: flex;&quot;&gt;&lt;span&gt; File &lt;span style=&quot;color: #e6db74;&quot;&gt;&quot;/opt/homebrew/Cellar/python@3.12/3.12.3/Frameworks/Python.framework/Versions/3.12/lib/python3.12/subprocess.py&quot;&lt;/span&gt;, line 1026, in __init__
  1137. &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display: flex;&quot;&gt;&lt;span&gt; self._execute_child&lt;span style=&quot;color: #f92672;&quot;&gt;(&lt;/span&gt;args, executable, preexec_fn, close_fds,
  1138. &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display: flex;&quot;&gt;&lt;span&gt; File &lt;span style=&quot;color: #e6db74;&quot;&gt;&quot;/opt/homebrew/Cellar/python@3.12/3.12.3/Frameworks/Python.framework/Versions/3.12/lib/python3.12/subprocess.py&quot;&lt;/span&gt;, line 1955, in _execute_child
  1139. &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display: flex;&quot;&gt;&lt;span&gt; raise child_exception_type&lt;span style=&quot;color: #f92672;&quot;&gt;(&lt;/span&gt;errno_num, err_msg, err_filename&lt;span style=&quot;color: #f92672;&quot;&gt;)&lt;/span&gt;
  1140. &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display: flex;&quot;&gt;&lt;span&gt;FileNotFoundError: &lt;span style=&quot;color: #f92672;&quot;&gt;[&lt;/span&gt;Errno 2&lt;span style=&quot;color: #f92672;&quot;&gt;]&lt;/span&gt; No such file or directory: &lt;span style=&quot;color: #e6db74;&quot;&gt;'C:/Program Files/Tesseract-OCR/tesseract.exe'&lt;/span&gt;
  1141. &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display: flex;&quot;&gt;&lt;span&gt;
  1142. &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display: flex;&quot;&gt;&lt;span&gt;During handling of the above exception, another exception occurred:
  1143. &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display: flex;&quot;&gt;&lt;span&gt;
  1144. &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display: flex;&quot;&gt;&lt;span&gt;Traceback &lt;span style=&quot;color: #f92672;&quot;&gt;(&lt;/span&gt;most recent call last&lt;span style=&quot;color: #f92672;&quot;&gt;)&lt;/span&gt;:
  1145. &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display: flex;&quot;&gt;&lt;span&gt; File &lt;span style=&quot;color: #e6db74;&quot;&gt;&quot;/Users/alan/Work/rajtilakjee/simone/src/main.py&quot;&lt;/span&gt;, line 47, in &amp;lt;module&amp;gt;
  1146. &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display: flex;&quot;&gt;&lt;span&gt; blogpost&lt;span style=&quot;color: #f92672;&quot;&gt;(&lt;/span&gt;url&lt;span style=&quot;color: #f92672;&quot;&gt;)&lt;/span&gt;
  1147. &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display: flex;&quot;&gt;&lt;span&gt; File &lt;span style=&quot;color: #e6db74;&quot;&gt;&quot;/Users/alan/Work/rajtilakjee/simone/src/main.py&quot;&lt;/span&gt;, line 39, in blogpost
  1148. &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display: flex;&quot;&gt;&lt;span&gt; score &lt;span style=&quot;color: #f92672;&quot;&gt;=&lt;/span&gt; scores.score_frames&lt;span style=&quot;color: #f92672;&quot;&gt;()&lt;/span&gt;
  1149. &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display: flex;&quot;&gt;&lt;span&gt; ^^^^^^^^^^^^^^^^^^^^^
  1150. &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display: flex;&quot;&gt;&lt;span&gt; File &lt;span style=&quot;color: #e6db74;&quot;&gt;&quot;/Users/alan/Work/rajtilakjee/simone/src/utils/scorer.py&quot;&lt;/span&gt;, line 20, in score_frames
  1151. &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display: flex;&quot;&gt;&lt;span&gt; extracted_text &lt;span style=&quot;color: #f92672;&quot;&gt;=&lt;/span&gt; pytesseract.image_to_string&lt;span style=&quot;color: #f92672;&quot;&gt;(&lt;/span&gt;
  1152. &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display: flex;&quot;&gt;&lt;span&gt; ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  1153. &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display: flex;&quot;&gt;&lt;span&gt; File &lt;span style=&quot;color: #e6db74;&quot;&gt;&quot;/Users/alan/Work/rajtilakjee/simone/.venv/lib/python3.12/site-packages/pytesseract/pytesseract.py&quot;&lt;/span&gt;, line 423, in image_to_string
  1154. &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display: flex;&quot;&gt;&lt;span&gt; &lt;span style=&quot;color: #66d9ef;&quot;&gt;return&lt;/span&gt; &lt;span style=&quot;color: #f92672;&quot;&gt;{&lt;/span&gt;
  1155. &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display: flex;&quot;&gt;&lt;span&gt; ^
  1156. &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display: flex;&quot;&gt;&lt;span&gt; File &lt;span style=&quot;color: #e6db74;&quot;&gt;&quot;/Users/alan/Work/rajtilakjee/simone/.venv/lib/python3.12/site-packages/pytesseract/pytesseract.py&quot;&lt;/span&gt;, line 426, in &amp;lt;lambda&amp;gt;
  1157. &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display: flex;&quot;&gt;&lt;span&gt; Output.STRING: lambda: run_and_get_output&lt;span style=&quot;color: #f92672;&quot;&gt;(&lt;/span&gt;*args&lt;span style=&quot;color: #f92672;&quot;&gt;)&lt;/span&gt;,
  1158. &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display: flex;&quot;&gt;&lt;span&gt; ^^^^^^^^^^^^^^^^^^^^^^^^^
  1159. &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display: flex;&quot;&gt;&lt;span&gt; File &lt;span style=&quot;color: #e6db74;&quot;&gt;&quot;/Users/alan/Work/rajtilakjee/simone/.venv/lib/python3.12/site-packages/pytesseract/pytesseract.py&quot;&lt;/span&gt;, line 288, in run_and_get_output
  1160. &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display: flex;&quot;&gt;&lt;span&gt; run_tesseract&lt;span style=&quot;color: #f92672;&quot;&gt;(&lt;/span&gt;**kwargs&lt;span style=&quot;color: #f92672;&quot;&gt;)&lt;/span&gt;
  1161. &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display: flex;&quot;&gt;&lt;span&gt; File &lt;span style=&quot;color: #e6db74;&quot;&gt;&quot;/Users/alan/Work/rajtilakjee/simone/.venv/lib/python3.12/site-packages/pytesseract/pytesseract.py&quot;&lt;/span&gt;, line 260, in run_tesseract
  1162. &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display: flex;&quot;&gt;&lt;span&gt; raise TesseractNotFoundError&lt;span style=&quot;color: #f92672;&quot;&gt;()&lt;/span&gt;
  1163. &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display: flex;&quot;&gt;&lt;span&gt;pytesseract.pytesseract.TesseractNotFoundError: C:/Program Files/Tesseract-OCR/tesseract.exe is not installed or it&lt;span style=&quot;color: #960050; background-color: #1e0010;&quot;&gt;'&lt;/span&gt;s not in your PATH. See README file &lt;span style=&quot;color: #66d9ef;&quot;&gt;for&lt;/span&gt; more information.
  1164. &lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
  1165. &lt;li&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=3w-2gUSus34&quot;&gt;Oof&lt;/a&gt;!&lt;/li&gt;
  1166. &lt;li&gt;File a &lt;a href=&quot;https://github.com/rajtilakjee/simone/issues/7&quot;&gt;bug&lt;/a&gt; (like a good Open Source citizen)&lt;/li&gt;
  1167. &lt;li&gt;Locally patch the &lt;a href=&quot;https://github.com/rajtilakjee/simone/blob/main/src/utils/scorer.py#L15&quot;&gt;file&lt;/a&gt; and try again&lt;/li&gt;
  1168. &lt;/ul&gt;
  1169. &lt;div class=&quot;highlight&quot;&gt;&lt;pre tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;&lt;span style=&quot;display: flex;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #f92672;&quot;&gt;(&lt;/span&gt;.venv&lt;span style=&quot;color: #f92672;&quot;&gt;)&lt;/span&gt; python src/main.py
  1170. &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display: flex;&quot;&gt;&lt;span&gt;Enter YouTube URL: https://www.youtube.com/watch?v&lt;span style=&quot;color: #f92672;&quot;&gt;=&lt;/span&gt;VDIAHEoECfM
  1171. &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display: flex;&quot;&gt;&lt;span&gt;/Users/alan/Work/rajtilakjee/simone/.venv/lib/python3.12/site-packages/whisper/transcribe.py:115: UserWarning: FP16 is not supported on CPU; using FP32 instead
  1172. &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display: flex;&quot;&gt;&lt;span&gt; warnings.warn&lt;span style=&quot;color: #f92672;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #e6db74;&quot;&gt;&quot;FP16 is not supported on CPU; using FP32 instead&quot;&lt;/span&gt;&lt;span style=&quot;color: #f92672;&quot;&gt;)&lt;/span&gt;
  1173. &lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
  1174. &lt;li&gt;Look for results&lt;/li&gt;
  1175. &lt;/ul&gt;
  1176. &lt;div class=&quot;highlight&quot;&gt;&lt;pre tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;&lt;span style=&quot;display: flex;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #f92672;&quot;&gt;(&lt;/span&gt;.venv&lt;span style=&quot;color: #f92672;&quot;&gt;)&lt;/span&gt; $ ls -l generated_blogpost.txt *.jpg
  1177. &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display: flex;&quot;&gt;&lt;span&gt;-rw-r--r-- &lt;span style=&quot;color: #ae81ff;&quot;&gt;1&lt;/span&gt; alan staff &lt;span style=&quot;color: #ae81ff;&quot;&gt;2163&lt;/span&gt; &lt;span style=&quot;color: #ae81ff;&quot;&gt;26&lt;/span&gt; Apr 09:26 generated_blogpost.txt
  1178. &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display: flex;&quot;&gt;&lt;span&gt;-rw-r--r--@ &lt;span style=&quot;color: #ae81ff;&quot;&gt;1&lt;/span&gt; alan staff &lt;span style=&quot;color: #ae81ff;&quot;&gt;132984&lt;/span&gt; &lt;span style=&quot;color: #ae81ff;&quot;&gt;26&lt;/span&gt; Apr 09:27 top_frame_4_score_106.jpg
  1179. &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display: flex;&quot;&gt;&lt;span&gt;-rw-r--r-- &lt;span style=&quot;color: #ae81ff;&quot;&gt;1&lt;/span&gt; alan staff &lt;span style=&quot;color: #ae81ff;&quot;&gt;184705&lt;/span&gt; &lt;span style=&quot;color: #ae81ff;&quot;&gt;26&lt;/span&gt; Apr 09:27 top_frame_5_score_105.jpg
  1180. &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display: flex;&quot;&gt;&lt;span&gt;-rw-r--r-- &lt;span style=&quot;color: #ae81ff;&quot;&gt;1&lt;/span&gt; alan staff &lt;span style=&quot;color: #ae81ff;&quot;&gt;126148&lt;/span&gt; &lt;span style=&quot;color: #ae81ff;&quot;&gt;26&lt;/span&gt; Apr 09:27 top_frame_9_score_101.jpg
  1181. &lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
  1182. &lt;li&gt;&lt;a href=&quot;https://youtu.be/a1xjcyyuDM0?si=co6zN_17UIb_3HB4&amp;amp;t=60&quot;&gt;Drink your weak lemon drink now&lt;/a&gt;! (to wash away the foul taste of computer lies in your honest hobby gullet)&lt;/li&gt;
  1183. &lt;/ul&gt;
  1184. &lt;p&gt;In my test I pointed simone at a short &lt;a href=&quot;https://www.youtube.com/watch?v=VDIAHEoECfM&quot;&gt;demo video&lt;/a&gt; from my employer, &lt;a href=&quot;https://anchore.com/&quot;&gt;Anchore’s&lt;/a&gt; &lt;a href=&quot;https://www.youtube.com/@Anchore&quot;&gt;YouTube channel&lt;/a&gt;. The results are below, with no editing, I even included the typos. The images at the bottom of this post are frames from the video that simone selected.&lt;/p&gt;
  1185. &lt;hr /&gt;
  1186. &lt;h2 id=&quot;ancors-static-stick-checker-tool-demo-evaluating-and-resolving-security-findings&quot;&gt;Ancors Static Stick Checker Tool Demo: Evaluating and Resolving Security Findings&lt;/h2&gt;
  1187. &lt;p&gt;&lt;strong&gt;Introduction&lt;/strong&gt;&lt;/p&gt;
  1188. &lt;p&gt;Static stick checker tool helps developers identify security vulnerabilities in Docker images by running open-source security checks and generating remediation recommendations. This blog post summarizes a live demo of the tool’s capabilities.&lt;/p&gt;
  1189. &lt;p&gt;&lt;strong&gt;How it works&lt;/strong&gt;&lt;/p&gt;
  1190. &lt;p&gt;The tool works by:&lt;/p&gt;
  1191. &lt;ul&gt;
  1192. &lt;li&gt;Downloading and analyzing the Docker image.&lt;/li&gt;
  1193. &lt;li&gt;Detecting the base operating system distribution and selecting the appropriate stick profile.&lt;/li&gt;
  1194. &lt;li&gt;Running open-source security checks on the image.&lt;/li&gt;
  1195. &lt;li&gt;Generating a report of identified vulnerabilities and remediation actions.&lt;/li&gt;
  1196. &lt;/ul&gt;
  1197. &lt;p&gt;&lt;strong&gt;Demo Walkthrough&lt;/strong&gt;&lt;/p&gt;
  1198. &lt;p&gt;The demo showcases the following steps:&lt;/p&gt;
  1199. &lt;ul&gt;
  1200. &lt;li&gt;&lt;strong&gt;Image preparation:&lt;/strong&gt; Uploading a Docker image to a registry.&lt;/li&gt;
  1201. &lt;li&gt;&lt;strong&gt;Tool execution:&lt;/strong&gt; Running the static stick checker tool against the image.&lt;/li&gt;
  1202. &lt;li&gt;&lt;strong&gt;Results viewing:&lt;/strong&gt; Analyzing the generated stick results and identifying vulnerabilities.&lt;/li&gt;
  1203. &lt;li&gt;&lt;strong&gt;Remediation:&lt;/strong&gt; Implementing suggested remediation actions by modifying the Dockerfile.&lt;/li&gt;
  1204. &lt;li&gt;&lt;strong&gt;Re-checking:&lt;/strong&gt; Running the tool again to verify that the fixes have been effective.&lt;/li&gt;
  1205. &lt;/ul&gt;
  1206. &lt;p&gt;&lt;strong&gt;Key findings&lt;/strong&gt;&lt;/p&gt;
  1207. &lt;ul&gt;
  1208. &lt;li&gt;The static stick checker tool identified vulnerabilities in the Docker image in areas such as:
  1209. &lt;ul&gt;
  1210. &lt;li&gt;Verifying file hash integrity.&lt;/li&gt;
  1211. &lt;li&gt;Configuring cryptography policy.&lt;/li&gt;
  1212. &lt;li&gt;Verifying file permissions.&lt;/li&gt;
  1213. &lt;/ul&gt;
  1214. &lt;/li&gt;
  1215. &lt;li&gt;Remediation scripts were provided to address each vulnerability.&lt;/li&gt;
  1216. &lt;li&gt;By implementing the recommended changes, the security posture of the Docker image was improved.&lt;/li&gt;
  1217. &lt;/ul&gt;
  1218. &lt;p&gt;&lt;strong&gt;Benefits of using the static stick checker tool&lt;/strong&gt;&lt;/p&gt;
  1219. &lt;ul&gt;
  1220. &lt;li&gt;Identify security vulnerabilities early in the development process.&lt;/li&gt;
  1221. &lt;li&gt;Automate the remediation process.&lt;/li&gt;
  1222. &lt;li&gt;Shift security checks leftward in the development pipeline.&lt;/li&gt;
  1223. &lt;li&gt;Reduce the burden on security teams by addressing vulnerabilities before deployment.&lt;/li&gt;
  1224. &lt;/ul&gt;
  1225. &lt;p&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;/p&gt;
  1226. &lt;p&gt;The Ancors static stick checker tool provides a valuable tool for developers to improve the security of their Docker images. By proactively addressing vulnerabilities during the development process, organizations can ensure their applications are secure and reduce the risk of security incidents&lt;/p&gt;
  1227. &lt;hr /&gt;
  1228. &lt;p&gt;Here’s the images it pulled out:&lt;/p&gt;
  1229. &lt;p&gt;&lt;a href=&quot;https://popey.com/blog/blog/images/2024-04-26/top_frame_4_score_106.jpg&quot;&gt;&lt;img alt=&quot;First image taken from the video&quot; src=&quot;https://popey.com/blog/blog/images/2024-04-26/top_frame_4_score_106.jpg&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
  1230. &lt;p&gt;&lt;a href=&quot;https://popey.com/blog/blog/images/2024-04-26/top_frame_5_score_105.jpg&quot;&gt;&lt;img alt=&quot;Second image taken from the video&quot; src=&quot;https://popey.com/blog/blog/images/2024-04-26/top_frame_5_score_105.jpg&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
  1231. &lt;p&gt;&lt;a href=&quot;https://popey.com/blog/blog/images/2024-04-26/top_frame_9_score_101.jpg&quot;&gt;&lt;img alt=&quot;Third image taken from the video&quot; src=&quot;https://popey.com/blog/blog/images/2024-04-26/top_frame_9_score_101.jpg&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
  1232. &lt;p&gt;Not bad! It could be better - getting the company name wrong, for one!&lt;/p&gt;
  1233. &lt;p&gt;I can imagine using this to create a YouTube description, or use it as a skeleton from which a blog post could be created. I certainly wouldn’t just pipe the output of this into blog posts! But so many videos need better descriptions, and this could help!&lt;/p&gt;</description>
  1234. <pubDate>Fri, 26 Apr 2024 09:00:00 +0000</pubDate>
  1235. </item>
  1236. <item>
  1237. <title>The Fridge: Ubuntu 24.04 LTS (Noble Numbat) released.</title>
  1238. <guid isPermaLink="false">https://fridge.ubuntu.com/?p=10156</guid>
  1239. <link>https://fridge.ubuntu.com/2024/04/25/ubuntu-24-04-lts-noble-numbat-released/</link>
  1240. <description>&lt;p&gt;Ubuntu 24.04 LTS, codenamed “Noble Numbat”, is here. This release continues Ubuntu’s proud tradition of integrating the latest and greatest open source technologies into a high-quality, easy-to-use Linux distribution. The team has been hard at work through this cycle, together with the community and our partners, to introduce new features and fix bugs.&lt;/p&gt;
  1241. &lt;p&gt;Our 10th Long Term Supported release sets a new standard in performance engineering, enterprise security and developer experience.&lt;/p&gt;
  1242. &lt;p&gt;Ubuntu Desktop brings the Subiquity installer to an LTS for the first time. In addition to a refreshed user experience and a minimal install by default, the installer now includes experimental support for ZFS and TPM-based full disk encryption and the ability to import auto-install configurations. Post install, users will be greeted with the latest GNOME 46 alongside a new App Center and firmware-updater. Netplan is now the default for networking configuration and supports bidirectionality with NetworkManager.&lt;/p&gt;
  1243. &lt;p&gt;Ubuntu now enables frame pointers by default on 64-bit architectures to enable CPU and off-CPU profiling for workload optimisation, alongside a suite of critical performance tools pre-installed. The Linux 6.8 kernel now enables low-latency features by default. For IoT vendors leveraging 32-bit arm hardware, our armhf build has been updated to resolve the upcoming 2038 issue by implementing 64-bit time_t in all necessary packages.&lt;/p&gt;
  1244. &lt;p&gt;As always, Ubuntu ships with the latest toolchain versions. .NET 8 is now fully supported on Ubuntu 24.04 LTS (and Ubuntu 22.04 LTS) for the full lifecycle of the release and OpenJDK 21 and 17 are both TCK certified to adhere to Java interoperability standards. Ubuntu 24.04 LTS ships Rust 1.75 and a simpler Rust toolchain snap framework to enable future rust versions to be delivered to developers on this release in years to come.&lt;/p&gt;
  1245. &lt;p&gt;The newest Edubuntu, Kubuntu, Lubuntu, Ubuntu Budgie, Ubuntu Cinnamon, Ubuntu Kylin, Ubuntu MATE, Ubuntu Studio, Ubuntu Unity, and Xubuntu are also being released today. More details can be found for these at their individual release notes under the Official Flavours section:&lt;/p&gt;
  1246. &lt;p&gt;&lt;a href=&quot;https://discourse.ubuntu.com/t/noble-numbat-release-notes/&quot;&gt;https://discourse.ubuntu.com/t/noble-numbat-release-notes/&lt;/a&gt;&lt;/p&gt;
  1247. &lt;p&gt;Maintenance updates will be provided for 5 years for Ubuntu Desktop, Ubuntu Server, Ubuntu Cloud and Ubuntu Core. All the remaining flavours will be supported for 3 years. Additional security support is available with ESM (Extended Security Maintenance).&lt;/p&gt;
  1248. &lt;h3&gt;To get Ubuntu 24.04 LTS&lt;/h3&gt;
  1249. &lt;p&gt;In order to download Ubuntu 24.04 LTS, visit:&lt;/p&gt;
  1250. &lt;p&gt;&lt;a href=&quot;https://ubuntu.com/download&quot;&gt;https://ubuntu.com/download&lt;/a&gt;&lt;/p&gt;
  1251. &lt;p&gt;Users of Ubuntu 23.10 will soon be offered an automatic upgrade to 24.04. Users of 22.04 LTS will be offered the automatic upgrade when 24.04.1 LTS is released, which is scheduled for the 15th of August. For further information about upgrading, see:&lt;/p&gt;
  1252. &lt;p&gt;&lt;a href=&quot;https://ubuntu.com/download/desktop/upgrade&quot;&gt;https://ubuntu.com/download/desktop/upgrade&lt;/a&gt;&lt;/p&gt;
  1253. &lt;p&gt;As always, upgrades to the latest version of Ubuntu are entirely free of charge.&lt;/p&gt;
  1254. &lt;p&gt;We recommend that all users read the release notes, which document caveats and workarounds for known issues, and provide more in-depth information on the release itself. They are available at:&lt;/p&gt;
  1255. &lt;p&gt;&lt;a href=&quot;https://discourse.ubuntu.com/t/noble-numbat-release-notes/&quot;&gt;https://discourse.ubuntu.com/t/noble-numbat-release-notes/&lt;/a&gt;&lt;/p&gt;
  1256. &lt;p&gt;Find out what’s new in this release with a graphical overview:&lt;/p&gt;
  1257. &lt;p&gt;&lt;a href=&quot;https://ubuntu.com/desktop&quot;&gt;https://ubuntu.com/desktop&lt;/a&gt;&lt;br /&gt;
  1258. &lt;a href=&quot;https://ubuntu.com/desktop/features&quot;&gt;https://ubuntu.com/desktop/features&lt;/a&gt;&lt;/p&gt;
  1259. &lt;p&gt;If you have a question, or if you think you may have found a bug but aren’t sure, you can try asking in any of the following places:&lt;/p&gt;
  1260. &lt;p&gt;#ubuntu on irc.libera.chat&lt;br /&gt;
  1261. &lt;a href=&quot;https://lists.ubuntu.com/mailman/listinfo/ubuntu-users&quot;&gt;https://lists.ubuntu.com/mailman/listinfo/ubuntu-users&lt;/a&gt;&lt;br /&gt;
  1262. &lt;a href=&quot;https://ubuntuforums.org&quot;&gt;https://ubuntuforums.org&lt;/a&gt;&lt;br /&gt;
  1263. &lt;a href=&quot;https://askubuntu.com&quot;&gt;https://askubuntu.com&lt;/a&gt;&lt;br /&gt;
  1264. &lt;a href=&quot;https://discourse.ubuntu.com&quot;&gt;https://discourse.ubuntu.com&lt;/a&gt;&lt;/p&gt;
  1265. &lt;h3&gt;Help Shape Ubuntu&lt;/h3&gt;
  1266. &lt;p&gt;If you would like to help shape Ubuntu, take a look at the list of ways&lt;br /&gt;
  1267. you can participate at:&lt;/p&gt;
  1268. &lt;p&gt;&lt;a href=&quot;https://discourse.ubuntu.com/contribute&quot;&gt;https://discourse.ubuntu.com/contribute&lt;/a&gt;&lt;/p&gt;
  1269. &lt;h3&gt;About Ubuntu&lt;/h3&gt;
  1270. &lt;p&gt;Ubuntu is a full-featured Linux distribution for desktops, laptops, IoT, cloud, and servers, with a fast and easy installation and regular releases. A tightly-integrated selection of excellent applications is included, and an incredible variety of add-on software is just a few clicks away.&lt;/p&gt;
  1271. &lt;p&gt;Professional services including support are available from Canonical and hundreds of other companies around the world. For more information about support, visit:&lt;/p&gt;
  1272. &lt;p&gt;&lt;a href=&quot;https://ubuntu.com/support&quot;&gt;https://ubuntu.com/support&lt;/a&gt;&lt;/p&gt;
  1273. &lt;h3&gt;More Information&lt;/h3&gt;
  1274. &lt;p&gt;You can learn more about Ubuntu and about this release on our website listed below:&lt;/p&gt;
  1275. &lt;p&gt;&lt;a href=&quot;https://ubuntu.com&quot;&gt;https://ubuntu.com&lt;/a&gt;&lt;/p&gt;
  1276. &lt;p&gt;To sign up for future Ubuntu announcements, please subscribe to Ubuntu’s very low volume announcement list at:&lt;/p&gt;
  1277. &lt;p&gt;&lt;a href=&quot;https://lists.ubuntu.com/mailman/listinfo/ubuntu-announce&quot;&gt;https://lists.ubuntu.com/mailman/listinfo/ubuntu-announce&lt;/a&gt;&lt;/p&gt;
  1278. &lt;p&gt;&lt;em&gt;Originally posted to the &lt;a href=&quot;https://lists.ubuntu.com/archives/ubuntu-announce/2024-April/000301.html&quot;&gt;ubuntu-announce mailing list&lt;/a&gt; on Thu Apr 25 15:20:52 UTC 2024 by Utkarsh Gupta on behalf of the Ubuntu Release Team&lt;/em&gt;&lt;/p&gt;</description>
  1279. <pubDate>Thu, 25 Apr 2024 23:47:06 +0000</pubDate>
  1280. </item>
  1281. <item>
  1282. <title>Kubuntu General News: Kubuntu 24.04 LTS Noble Numbat Released</title>
  1283. <guid isPermaLink="false">https://kubuntu.org/?p=5188</guid>
  1284. <link>https://kubuntu.org/news/kubuntu-24-04-lts-noble-numbat-released/</link>
  1285. <description>&lt;p&gt;The Kubuntu Team is happy to announce that Kubuntu 24.04 has been released, featuring the ‘beautiful’ &lt;a href=&quot;https://kde.org/announcements/plasma/5/5.27.0/&quot;&gt;KDE Plasma 5.27&lt;/a&gt; simple by default, powerful when needed.&lt;/p&gt;
  1286.  
  1287.  
  1288.  
  1289. &lt;p id=&quot;block-7a60819d-73c4-4669-ad66-0d72354bb4eb&quot;&gt;Codenamed “Noble Numbat”, Kubuntu 24.04 continues our tradition of giving you Friendly Computing by integrating the latest and greatest open source technologies into a high-quality, easy-to-use Linux distribution.&lt;/p&gt;
  1290.  
  1291.  
  1292.  
  1293. &lt;p id=&quot;block-fcdac755-cc4d-48d7-b423-e5093ab4df49&quot;&gt;Under the hood, there have been updates to many core packages, including a new 6.8-based kernel, &lt;a data-type=&quot;URL&quot; href=&quot;https://kde.org/announcements/frameworks/5/5.115.0/&quot;&gt;KDE Frameworks 5.115&lt;/a&gt;, &lt;a href=&quot;https://kde.org/announcements/plasma/5/5.27.11/&quot;&gt;KDE Plasma 5.27&lt;/a&gt; and &lt;a href=&quot;https://kde.org/announcements/gear/23.08.0/&quot;&gt;KDE Gear 23.08&lt;/a&gt;.&lt;/p&gt;
  1294.  
  1295.  
  1296.  
  1297. &lt;figure class=&quot;wp-block-image size-full&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-5190&quot; height=&quot;800&quot; src=&quot;https://kubuntu.org/wp-content/uploads/2024/04/7368/NoblePlasma.jpg&quot; width=&quot;1280&quot; /&gt;Kubuntu 24.04 with Plasma 5.27.11&lt;/figure&gt;
  1298.  
  1299.  
  1300.  
  1301. &lt;p id=&quot;block-9e41f240-318b-4dca-b85c-e4c1f6a6cfcc&quot;&gt;Kubuntu has seen many updates for other applications, both in our default install, and installable from the Ubuntu archive.&lt;/p&gt;
  1302.  
  1303.  
  1304.  
  1305. &lt;p id=&quot;block-a60defe4-5c80-44d9-a920-16ca87ac229f&quot;&gt;Haruna, Krita, Kdevelop, Yakuake, and many many more applications are updated.&lt;/p&gt;
  1306.  
  1307.  
  1308.  
  1309. &lt;p id=&quot;block-148f21b1-28b1-4c3d-844e-2a92e9db4fef&quot;&gt;Applications for core day-to-day usage are included and updated, such as Firefox, and LibreOffice.&lt;/p&gt;
  1310.  
  1311.  
  1312.  
  1313. &lt;p id=&quot;block-d78ec940-18ee-4cf1-a5ec-8f332cbb9581&quot;&gt;For a list of other application updates, and known bugs be sure to read our &lt;a href=&quot;https://wiki.ubuntu.com/NobleNumbat/ReleaseNotes/Kubuntu&quot;&gt;release notes&lt;/a&gt;.&lt;/p&gt;
  1314.  
  1315.  
  1316.  
  1317. &lt;p id=&quot;block-834ae2db-c972-4655-8037-916673c7b671&quot;&gt;&lt;a href=&quot;https://kubuntu.org/getkubuntu/&quot;&gt;Download Kubuntu 24.04&lt;/a&gt;, or &lt;a href=&quot;https://help.ubuntu.com/community/NobleUpgrades/Kubuntu&quot;&gt;learn how to upgrade from 23.10 or 22.04 LTS&lt;/a&gt;.&lt;/p&gt;
  1318.  
  1319.  
  1320.  
  1321. &lt;p id=&quot;block-0373fb35-d2f5-4e0a-b1f4-fd3bd9c16b0c&quot;&gt;&lt;strong&gt;Note: For upgrades from 23.10, there may a delay of a few hours to days between the official release announcements and the Ubuntu Release Team enabling upgrades.&lt;/strong&gt;&lt;/p&gt;</description>
  1322. <pubDate>Thu, 25 Apr 2024 16:16:27 +0000</pubDate>
  1323. </item>
  1324. <item>
  1325. <title>Ubuntu Studio: Ubuntu Studio 24.04 LTS Released</title>
  1326. <guid isPermaLink="false">https://ubuntustudio.org/?p=2761</guid>
  1327. <link>https://ubuntustudio.org/2024/04/ubuntu-studio-24-04-lts-released/</link>
  1328. <description>&lt;div class=&quot;wp-block-image&quot;&gt;&lt;figure class=&quot;aligncenter size-full&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-2763&quot; height=&quot;297&quot; src=&quot;https://ubuntustudio.org/wp-content/uploads/2024/04/0a09/finalbanner.png&quot; width=&quot;800&quot; /&gt;&lt;/figure&gt;&lt;/div&gt;
  1329.  
  1330.  
  1331.  
  1332. &lt;p id=&quot;block-08eb94aa-8521-4ed2-adb1-72f6f4094411&quot;&gt;The Ubuntu Studio team is pleased to announce the release of Ubuntu Studio 24.04 LTS, code-named “Noble Numbat”. This marks Ubuntu Studio’s 34th release. This release is a Long-Term Support release and as such, it is supported for 3 years (36 months, until April 2027).&lt;/p&gt;
  1333.  
  1334.  
  1335.  
  1336. &lt;p id=&quot;block-895e2f57-e719-450c-a4c8-9405017a7e75&quot;&gt;Since it’s just out, you may experience some issues, so you might want to wait a bit before upgrading. Please see the &lt;a href=&quot;https://ubuntustudio.org/ubuntu-studio-24-04-LTS-release-notes/&quot;&gt;release notes&lt;/a&gt; for a more complete list of changes and known issues. Listed here are some of the major highlights.&lt;/p&gt;
  1337.  
  1338.  
  1339.  
  1340. &lt;div class=&quot;wp-block-image&quot;&gt;&lt;figure class=&quot;aligncenter size-full is-resized&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-2771&quot; height=&quot;383&quot; src=&quot;https://ubuntustudio.org/wp-content/uploads/2024/04/05d2/VirtualBox_ISOTest_22_04_2024_13_18_58.png&quot; width=&quot;681&quot; /&gt;&lt;/figure&gt;&lt;/div&gt;
  1341.  
  1342.  
  1343.  
  1344. &lt;p id=&quot;block-aef9a406-e305-4f97-a130-f522c2f1ce7e&quot;&gt;You can download Ubuntu Studio 24.04 LTS from our &lt;a href=&quot;https://ubuntustudio.org/download&quot;&gt;download page&lt;/a&gt;.&lt;/p&gt;
  1345.  
  1346.  
  1347.  
  1348. &lt;h2 id=&quot;block-6ca66e3a-8d42-42a8-a0cf-a8ed86e6025f&quot;&gt;Special Notes&lt;/h2&gt;
  1349.  
  1350.  
  1351.  
  1352. &lt;p id=&quot;block-708043b1-523e-4fb9-92ca-720e3316371a&quot;&gt;The Ubuntu Studio 24.04 LTS disk image (ISO) exceeds 4 GB and cannot be downloaded to some file systems such as FAT32 and may not be readable when burned to a standard DVD. For this reason, we recommend downloading to a compatible file system. When creating a boot medium, we recommend &lt;a href=&quot;https://ubuntu.com/tutorials/create-a-usb-stick-on-ubuntu#1-overview&quot;&gt;creating a bootable USB stick&lt;/a&gt; with the ISO image or burning to a Dual-Layer DVD.&lt;/p&gt;
  1353.  
  1354.  
  1355.  
  1356. &lt;p&gt;Minimum installation media requirements: Dual-Layer DVD or 8GB USB drive.&lt;/p&gt;
  1357.  
  1358.  
  1359.  
  1360. &lt;p id=&quot;block-fa4be379-b904-4919-9502-c73469ca31ef&quot;&gt;Images can be obtained from this link: &lt;a href=&quot;https://cdimage.ubuntu.com/ubuntustudio/releases/24.04/beta/&quot; rel=&quot;noreferrer noopener&quot; target=&quot;_blank&quot;&gt;https://cdimage.ubuntu.com/ubuntustudio/releases/24.04/beta/&lt;/a&gt;&lt;/p&gt;
  1361.  
  1362.  
  1363.  
  1364. &lt;p id=&quot;block-bf39c734-e080-4549-9621-044e9241d48c&quot;&gt;Full updated information, including &lt;strong&gt;Upgrade Instructions,&lt;/strong&gt; are available in the &lt;strong&gt;&lt;a href=&quot;https://ubuntustudio.org/ubuntu-studio-24-04-LTS-release-notes/&quot;&gt;Release Notes&lt;/a&gt;&lt;/strong&gt;&lt;a href=&quot;https://wiki.ubuntu.com/GroovyGorilla/Beta/UbuntuStudio&quot;&gt;.&lt;/a&gt;&lt;/p&gt;
  1365.  
  1366.  
  1367.  
  1368. &lt;p&gt;&lt;strong&gt;Please note that upgrading from 22.04 before the release of 24.04.1,&lt;/strong&gt; &lt;strong&gt;due August 2024, is unsupported.&lt;/strong&gt;&lt;/p&gt;
  1369.  
  1370.  
  1371.  
  1372. &lt;p&gt;Upgrades from 23.10 should be enabled within a month after release, so we appreciate your patience.&lt;/p&gt;
  1373.  
  1374.  
  1375.  
  1376. &lt;h2&gt;New This Release&lt;/h2&gt;
  1377.  
  1378.  
  1379.  
  1380. &lt;h3&gt;All-New System Installer&lt;/h3&gt;
  1381.  
  1382.  
  1383.  
  1384. &lt;div class=&quot;wp-block-image&quot;&gt;&lt;figure class=&quot;alignright size-full is-resized&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-2765&quot; height=&quot;199&quot; src=&quot;https://ubuntustudio.org/wp-content/uploads/2024/04/5d73/VirtualBox_ISOTest_22_04_2024_10_00_48.png&quot; width=&quot;317&quot; /&gt;&lt;/figure&gt;&lt;/div&gt;
  1385.  
  1386.  
  1387.  
  1388. &lt;p&gt;In cooperation with the Ubuntu Desktop Team, we have an all-new Desktop installer. This installer uses the underlying code of the Ubuntu Server installer (“Subiquity”) which has been in-use for years, with a frontend coded in “Flutter”. This took a large amount of work for this release, and we were able to help a lot of other official Ubuntu flavors transition to this new installer.&lt;/p&gt;
  1389.  
  1390.  
  1391.  
  1392. &lt;p&gt;Be on the lookout for a special easter egg when the graphical environment for the installer first starts. For those of you who have been long-time users of Ubuntu Studio since our early days (even before Xfce!), you will notice exactly what it is.&lt;/p&gt;
  1393.  
  1394.  
  1395.  
  1396. &lt;h3&gt;PipeWire 1.0.4&lt;/h3&gt;
  1397.  
  1398.  
  1399.  
  1400. &lt;div class=&quot;wp-block-image&quot;&gt;&lt;figure class=&quot;alignright size-full is-resized&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-2766&quot; height=&quot;70&quot; src=&quot;https://ubuntustudio.org/wp-content/uploads/2024/04/be34/Pipewire_logo.svg_.png&quot; width=&quot;324&quot; /&gt;&lt;/figure&gt;&lt;/div&gt;
  1401.  
  1402.  
  1403.  
  1404. &lt;p&gt;Now for the big one: PipeWire is now mature, and this release contains &lt;strong&gt;PipeWire 1.0&lt;/strong&gt;. With PipeWire 1.0 comes the stability and compatibility you would expect from multimedia audio. In fact, at this point, &lt;strong&gt;we recommend PipeWire usage for both Professional, Prosumer, and Everyday audio needs&lt;/strong&gt;. At Ubuntu Summit 2023 in Riga, Latvia, our project leader Erich Eickmeyer used PipeWire to demonstrate live audio mixing with much success and has since done some audio mastering work using it. JACK developers even consider it to be “JACK 3”.&lt;/p&gt;
  1405.  
  1406.  
  1407.  
  1408. &lt;p&gt;PipeWire’s JACK compatibility is configured to use out-of-the-box and is zero-latency internally. System latency is configurable via Ubuntu Studio Audio Configuration.&lt;/p&gt;
  1409.  
  1410.  
  1411.  
  1412. &lt;p&gt;However, if you would rather use straight JACK 2 instead, that’s also possible. Ubuntu Studio Audio Configuration can disable and enable PipeWire’s JACK compatibility on-the-fly. From there, you can simply use JACK via QJackCtl.&lt;/p&gt;
  1413.  
  1414.  
  1415.  
  1416. &lt;p&gt;With this, we consider audio production with Ubuntu Studio so mature that it can now rival operating systems such as macOS and Windows in ease-of-use since it’s ready to go out-of-the-box.&lt;/p&gt;
  1417.  
  1418.  
  1419.  
  1420. &lt;h4&gt;Deprecation of PulseAudio/JACK setup/Studio Controls&lt;/h4&gt;
  1421.  
  1422.  
  1423.  
  1424. &lt;p&gt;Due to the maturity of PipeWire, we now consider the traditional PulseAudio/JACK setup, where JACK would be started/stopped by Studio Controls and bridged to PulseAudio, deprecated. This configuration is still installable via Ubuntu Studio Audio Configuration, but we do not recommend it. Studio Controls may return someday as a PipeWire fine-tuning solution, but for now it is unsupported by the developer. &lt;strong&gt;For that reason, we recommend users not use this configuration. If you do, it is at your own risk and no support will be given.&lt;/strong&gt; In fact, it’s likely to be dropped for 24.10.&lt;/p&gt;
  1425.  
  1426.  
  1427.  
  1428. &lt;h3&gt;Ardour 8.4&lt;/h3&gt;
  1429.  
  1430.  
  1431.  
  1432. &lt;div class=&quot;wp-block-image&quot;&gt;&lt;figure class=&quot;alignright size-full is-resized&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-1977&quot; height=&quot;73&quot; src=&quot;https://ubuntustudio.org/wp-content/uploads/2020/06/2a76/ardour.png&quot; width=&quot;84&quot; /&gt;&lt;/figure&gt;&lt;/div&gt;
  1433.  
  1434.  
  1435.  
  1436. &lt;p&gt;While this does not represent the latest release of Ardour, Ardour 8.4 is a great release. If you would like the latest release, we highly recommend &lt;a href=&quot;https://community.ardour.org/download?platform=linux&amp;amp;architecture=x86_64&amp;amp;type=compiled&amp;amp;paymentSelection=options&quot;&gt;purchasing one-time or subscribing to Ardour&lt;/a&gt; directly from the developers to help support this wonderful application. Also, for that reason, this will be an application we will not directly backport. More on that later.&lt;/p&gt;
  1437.  
  1438.  
  1439.  
  1440. &lt;div class=&quot;wp-block-image&quot;&gt;&lt;figure class=&quot;alignright size-full is-resized&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-2767&quot; height=&quot;261&quot; src=&quot;https://ubuntustudio.org/wp-content/uploads/2024/04/f162/Screenshot_20240422_104529.png&quot; width=&quot;361&quot; /&gt;&lt;/figure&gt;&lt;/div&gt;
  1441.  
  1442.  
  1443.  
  1444. &lt;h3&gt;Ubuntu Studio Audio Configuration&lt;/h3&gt;
  1445.  
  1446.  
  1447.  
  1448. &lt;p&gt;Ubuntu Studio Audio Configuration has undergone a UI overhaul and contains the ability to start and stop a Dummy Audio Device which can also be configured to start or stop upon login. When assigned as the default, this will free-up channels that would normally be assigned to your system audio to be assigned to a null device.&lt;/p&gt;
  1449.  
  1450.  
  1451.  
  1452. &lt;h3&gt;Meta Package for Music Education&lt;/h3&gt;
  1453.  
  1454.  
  1455.  
  1456. &lt;p&gt;In cooperation with &lt;a href=&quot;https://edubuntu.org&quot; rel=&quot;noreferrer noopener&quot; target=&quot;_blank&quot;&gt;Edubuntu&lt;/a&gt;, we have created a metapackage for music education. This package is installable from &lt;strong&gt;Ubuntu Studio Installer&lt;/strong&gt; and includes the following packages:&lt;/p&gt;
  1457.  
  1458.  
  1459.  
  1460. &lt;div class=&quot;wp-block-image&quot;&gt;&lt;figure class=&quot;alignright size-full is-resized&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-2768&quot; height=&quot;85&quot; src=&quot;https://ubuntustudio.org/wp-content/uploads/2024/04/8560/Edbuntu-logo-2022_RGB.png&quot; width=&quot;311&quot; /&gt;&lt;/figure&gt;&lt;/div&gt;
  1461.  
  1462.  
  1463.  
  1464. &lt;ul&gt;&lt;li&gt;&lt;strong&gt;FMIT&lt;/strong&gt;: Free Musical Instrument Tuner, a tool for tuning musical Instruments (also included by default)&lt;/li&gt;&lt;li&gt;&lt;strong&gt;GNOME Metronome&lt;/strong&gt;: Exactly what it sounds like (pun unintended): a metronome.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Minuet: &lt;/strong&gt;Ear training for intervals, chords, scales, and more.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;MuseScore: &lt;/strong&gt;Create, playback, and print sheet music for free (this one is no stranger to the Ubuntu Studio community)&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Piano Booster: &lt;/strong&gt;MIDI player/game that displays musical notes and teaches you how to play piano, optionally using a MIDI keyboard.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Solfege: &lt;/strong&gt;Ear training program for harmonic and melodic intervals, chords, scales, and rhythms.&lt;/li&gt;&lt;/ul&gt;
  1465.  
  1466.  
  1467.  
  1468. &lt;h3&gt;New Artwork&lt;/h3&gt;
  1469.  
  1470.  
  1471.  
  1472. &lt;p&gt;Thanks to the work of Eylul and the submissions to the &lt;a href=&quot;https://ubuntustudio.org/2024/03/wallpaper-competition-winners-24-04-lts/&quot;&gt;Ubuntu Studio Noble Numbat Wallpaper Contest&lt;/a&gt;, we have a number of wallpapers to choose from and a new default wallpaper. &lt;/p&gt;
  1473.  
  1474.  
  1475.  
  1476. &lt;h2&gt;Deprecation of Ubuntu Studio Backports Is In Effect&lt;/h2&gt;
  1477.  
  1478.  
  1479.  
  1480. &lt;p&gt;As stated in the Ubuntu 23.10 Release Announcement, the Ubuntu Studio Backports PPA is now deprecated in favor of the official Ubuntu Backports repository. However, the Backports repository only works for LTS releases and for good reason. There are a few requirements for backporting:&lt;/p&gt;
  1481.  
  1482.  
  1483.  
  1484. &lt;ul&gt;&lt;li&gt;It must be an application which already exists in the Ubuntu repositories&lt;/li&gt;&lt;li&gt;It must be an application which would not otherwise qualify for a simple bugfix, which would then qualify it to be a Stable Release Update. This means it must have new features.&lt;/li&gt;&lt;li&gt;It must not rely on new libraries or new versions of libraries.&lt;/li&gt;&lt;li&gt;It must exist within a later supported release or the development release of Ubuntu.&lt;/li&gt;&lt;/ul&gt;
  1485.  
  1486.  
  1487.  
  1488. &lt;p&gt;If you have a suggestion for an application for which to backport that meets those requirements, feel free to &lt;a href=&quot;https://lists.ubuntu.com/archives/ubuntu-studio-users/&quot;&gt;join and email the Ubuntu Studio Users Mailing List&lt;/a&gt; with your suggestion with the tag “[BPO]” at the beginning of the subject line. &lt;strong&gt;Backports to 22.04 LTS are now closed&lt;/strong&gt; &lt;strong&gt;and backports to 24.04 LTS are now open.&lt;/strong&gt; Additionally, &lt;strong&gt;suggestions must pertain to Ubuntu Studio and preferably must be applications included with Ubuntu Studio. Suggestions can be rejected at the Project Leader’s discretion.&lt;/strong&gt;&lt;/p&gt;
  1489.  
  1490.  
  1491.  
  1492. &lt;p&gt;One package that is exempt to backporting is Ardour. To help support Ardour’s funding, you may obtain later versions directly from them. To do so, please &lt;a data-id=&quot;https://ardour.org&quot; data-type=&quot;URL&quot; href=&quot;https://ardour.org&quot;&gt;one-time purchase or subscribe to Ardour from their website.&lt;/a&gt; If you wish to get later versions of Ardour from us, you will have to wait until the next regular release of Ubuntu Studio, due in October 2024.&lt;/p&gt;
  1493.  
  1494.  
  1495.  
  1496. &lt;h2&gt;We’re back on Matrix&lt;/h2&gt;
  1497.  
  1498.  
  1499.  
  1500. &lt;div class=&quot;wp-block-image&quot;&gt;&lt;figure class=&quot;alignright size-full is-resized&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-2722&quot; height=&quot;127&quot; src=&quot;https://ubuntustudio.org/wp-content/uploads/2012/03/eb3a/matrix-chat.png&quot; width=&quot;126&quot; /&gt;&lt;/figure&gt;&lt;/div&gt;
  1501.  
  1502.  
  1503.  
  1504. &lt;p&gt;You’ll notice that the menu links to our support chat and on our website will now take you to a Matrix chat. This is due to the Ubuntu community carving its own space within the Matrix federation.&lt;/p&gt;
  1505.  
  1506.  
  1507.  
  1508. &lt;p&gt;However, this is not only a support chat. This is also a creativity discussion chat. You can pass ideas to each other and you’re welcome to it if the topic remains within those confines. However, if a moderator or admin warns you that you’re getting off-topic (or the intention for the chat room), please heed the warning.&lt;/p&gt;
  1509.  
  1510.  
  1511.  
  1512. &lt;p&gt;This is a persistent connection, meaning if you close the window (or chat), it won’t lose your place as you may only need to sign back in to resume the chat.&lt;/p&gt;
  1513.  
  1514.  
  1515.  
  1516. &lt;h2 id=&quot;block-c7a21be7-9349-421e-a098-c0d2919f320a&quot;&gt;Frequently Asked Questions&lt;/h2&gt;
  1517.  
  1518.  
  1519.  
  1520. &lt;p id=&quot;block-163f794a-f451-40b0-bbbd-6f26c6cbe8e8&quot;&gt;&lt;strong&gt;Q:&lt;/strong&gt; Does Ubuntu Studio contain snaps?&lt;br /&gt;&lt;strong&gt;A:&lt;/strong&gt; Yes. Mozilla’s distribution agreement with Canonical changed, and Ubuntu was forced to no longer distribute Firefox in a native .deb package. We have found that, after numerous improvements, Firefox now performs just as well as the native .deb package did.&lt;/p&gt;
  1521.  
  1522.  
  1523.  
  1524. &lt;p&gt;Thunderbird also became a snap during this cycle for the maintainers to get security patches delivered faster.&lt;/p&gt;
  1525.  
  1526.  
  1527.  
  1528. &lt;p id=&quot;block-342134d3-a024-4b7b-b768-76c758b20acd&quot;&gt;Additionally, Freeshow is an Electron-based application. Electron-based applications cannot be packaged in the Ubuntu repositories in that they cannot be packaged in a traditional Debian source package. While such apps do have a build system to create a .deb binary package, it circumvents the source package build system in Launchpad, which is required when packaging for Ubuntu. However, Electron apps also have a facility for creating snaps, which can be uploaded and included. Therefore, for Freeshow to be included in Ubuntu Studio, it had to be packaged as a snap.&lt;/p&gt;
  1529.  
  1530.  
  1531.  
  1532. &lt;p id=&quot;block-2266cee7-0ea1-49cf-8340-594da42a09d7&quot;&gt;&lt;strong&gt;Q&lt;/strong&gt;: Will you make an ISO with {my favorite desktop environment}?&lt;br /&gt;&lt;strong&gt;A:&lt;/strong&gt; To do so would require creating an entirely new flavor of Ubuntu, which would require going through the Official Ubuntu Flavor application process. Since we’re completely volunteer-run, we don’t have the time or resources to do this. Instead, we recommend you download the &lt;a href=&quot;https://ubuntu.com/download/flavours&quot;&gt;official flavor for the desktop environment of your choice&lt;/a&gt; and use &lt;a href=&quot;https://ubuntustudio.org/ubuntu-studio-installer&quot;&gt;Ubuntu Studio Installer&lt;/a&gt; to get Ubuntu Studio – which does *not* convert that flavor to Ubuntu Studio but adds its benefits.&lt;/p&gt;
  1533.  
  1534.  
  1535.  
  1536. &lt;p id=&quot;block-48669a69-39bc-4971-b46b-c7da87133d24&quot;&gt;&lt;strong&gt;Q: &lt;/strong&gt;What if I don’t want all these packages installed on my machine?&lt;br /&gt;&lt;strong&gt;A: &lt;/strong&gt;Simply use the &lt;strong&gt;Ubuntu Studio Installer&lt;/strong&gt; to remove the features of Ubuntu Studio you don’t want or need!&lt;/p&gt;
  1537.  
  1538.  
  1539.  
  1540. &lt;h1&gt;Looking Toward the Future&lt;/h1&gt;
  1541.  
  1542.  
  1543.  
  1544. &lt;h2&gt;Plasma 6&lt;/h2&gt;
  1545.  
  1546.  
  1547.  
  1548. &lt;p&gt;Ubuntu Studio, in cooperation with Kubuntu, will be switching to Plasma 6 during the 24.10 development cycle. Likewise, Lubuntu will be switching to LXQt 2.0 and Qt 6, so the three flavors will be cooperating to do the move.&lt;/p&gt;
  1549.  
  1550.  
  1551.  
  1552. &lt;h2&gt;New Look&lt;/h2&gt;
  1553.  
  1554.  
  1555.  
  1556. &lt;p&gt;Ubuntu Studio has been using the same theming, “Materia” (except for the 22.04 LTS release which was a re-colored Breeze theme) since 19.04. However, Materia has gone dead upstream. To stay consistent, we found a fork called “Orchis” which seems to match closely and will be switching to that. More on that soon.&lt;/p&gt;
  1557.  
  1558.  
  1559.  
  1560. &lt;h2&gt;Minimal Installation&lt;/h2&gt;
  1561.  
  1562.  
  1563.  
  1564. &lt;p&gt;The new system installer has the capability to do minimal installations. This was something we did not have time to implement this cycle but intend to do for 24.10. This will let users install a minimal desktop to get going and then install what they need via Ubuntu Studio Installer. This will make a faster installation process but will not make the installation .iso image smaller. However, we have an idea for that as well.&lt;/p&gt;
  1565.  
  1566.  
  1567.  
  1568. &lt;h2&gt;Minimal Installation .iso Image&lt;/h2&gt;
  1569.  
  1570.  
  1571.  
  1572. &lt;p&gt;We are going to research what it will take to create a minimal installer .iso image that will function much like the regular .iso image minus the ability to install everything and allow the user to customize the installation via Ubuntu Studio Installer. This should lead to a much smaller initial download. Unlike creating a version with a different desktop environment, the Ubuntu Technical Board has been on record as saying this would not require going through the new flavor creation process. Our friends at Xubuntu recently did something similar.&lt;/p&gt;
  1573.  
  1574.  
  1575.  
  1576. &lt;h2&gt;Get Involved!&lt;/h2&gt;
  1577.  
  1578.  
  1579.  
  1580. &lt;p&gt;A wonderful way to contribute is to get involved with the project directly! We’re always looking for new volunteers to help with packaging, documentation, tutorials, user support, and MORE! &lt;a href=&quot;https://ubuntustudio.org/contribute/&quot;&gt;Check out all the ways you can contribute!&lt;/a&gt;&lt;/p&gt;
  1581.  
  1582.  
  1583.  
  1584. &lt;p&gt;Our project leader, Erich Eickmeyer, is now working on Ubuntu Studio at least part-time, and is hoping that the users of Ubuntu Studio can give enough to generate a monthly part-time income. Your donations are appreciated! If other distributions can do it, surely we can! See the sidebar for ways to give!&lt;/p&gt;
  1585.  
  1586.  
  1587.  
  1588. &lt;h2&gt;Special Thanks&lt;/h2&gt;
  1589.  
  1590.  
  1591.  
  1592. &lt;p&gt;Huge special thanks for this release go to:&lt;/p&gt;
  1593.  
  1594.  
  1595.  
  1596. &lt;ul&gt;&lt;li&gt;&lt;strong&gt;Eylul Dogruel&lt;/strong&gt;: Artwork, Graphics Design&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Ross Gammon&lt;/strong&gt;: Upstream Debian Developer, Testing, Email Support&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Sebastien Ramacher&lt;/strong&gt;:&lt;strong&gt; &lt;/strong&gt;Upstream Debian Developer&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Dennis Braun&lt;/strong&gt;: Upstream Debian Developer&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Rik Mills&lt;/strong&gt;: Kubuntu Council Member, help with Plasma desktop&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Scarlett Moore: &lt;/strong&gt;Kubuntu Project Lead, help with Plasma desktop&lt;/li&gt;&lt;li&gt;&lt;b&gt;Z&lt;/b&gt;&lt;strong&gt;ixing Liu&lt;/strong&gt;: Simplified Chinese translations in the installer&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Simon Quigley&lt;/strong&gt;: Lubuntu Release Manager, help with Qt items, Core Developer stuff, keeping Erich sane and focused&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Steve Langasek&lt;/strong&gt;: Help with livecd-rootfs changes to make the new installer work properly.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Dan Bungert&lt;/strong&gt;: Subiquity, seed fixes&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Dennis Loose&lt;/strong&gt;: Ubuntu Desktop Provision (installer)&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Lukas Klingsbo&lt;/strong&gt;: Ubuntu Desktop Provision (installer)&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Len Ovens:&lt;/strong&gt; Testing, insight&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Wim Taymans&lt;/strong&gt;: Creator of PipeWire&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Mauro Gaspari&lt;/strong&gt;: Tutorials, Promotion, and Documentation, Testing, keeping Erich sane&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Krytarik Raido&lt;/strong&gt;: IRC Moderator, Mailing List Moderator&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Erich Eickmeyer&lt;/strong&gt;: Project Leader, Packaging, Development, Direction, Treasurer&lt;/li&gt;&lt;/ul&gt;
  1597.  
  1598.  
  1599.  
  1600. &lt;h1&gt;A Note from the Project Leader&lt;/h1&gt;
  1601.  
  1602.  
  1603.  
  1604. &lt;p&gt;&lt;em&gt;When I started out working on Ubuntu Studio six years ago, I had a vision of making it not only the easiest Linux-based operating system for content creation, but the easiest content creation operating system… full-stop.&lt;/em&gt;&lt;/p&gt;
  1605.  
  1606.  
  1607.  
  1608. &lt;p&gt;&lt;em&gt;With the release of &lt;strong&gt;Ubuntu Studio 24.04 LTS, &lt;/strong&gt;I believe we have achieved that goal. No longer do we have to worry about whether an application is JACK or PulseAudio or… whatever. It all just works! Audio applications can be patched to each other!&lt;/em&gt;&lt;/p&gt;
  1609.  
  1610.  
  1611.  
  1612. &lt;p&gt;&lt;em&gt;If an audio device doesn’t depend on complex drivers (i.e. if the device is class-compliant), it will just work. If a user wishes to lower the latency or change the sample rate, we have a utility that does that (Ubuntu Studio Audio Configuration). If a user wants to have finer control use pure JACK via QJackCtl, they can do that too!&lt;/em&gt;&lt;/p&gt;
  1613.  
  1614.  
  1615.  
  1616. &lt;p&gt;&lt;em&gt;I honestly don’t know how I would replicate this on Windows, and replicating on macOS would be much harder without downloading all sorts of applications. With Ubuntu Studio 24.04 LTS, it’s ready to go and you don’t have to worry about it.&lt;/em&gt;&lt;/p&gt;
  1617.  
  1618.  
  1619.  
  1620. &lt;p&gt;&lt;em&gt;Where we are now is a dream come true for me, and something I’ve been hoping to see Ubuntu Studio become. And now, we’re finally here, and I feel like it can only get better.&lt;/em&gt;&lt;/p&gt;
  1621.  
  1622.  
  1623.  
  1624. &lt;p class=&quot;has-text-align-right&quot;&gt;-Erich Eickmeyer&lt;/p&gt;</description>
  1625. <pubDate>Thu, 25 Apr 2024 15:16:29 +0000</pubDate>
  1626. </item>
  1627. <item>
  1628. <title>Ubuntu MATE: Ubuntu MATE 24.04 LTS Release Notes</title>
  1629. <guid isPermaLink="false">https://ubuntu-mate.org/blog/ubuntu-mate-noble-numbat</guid>
  1630. <link>https://ubuntu-mate.org/blog/ubuntu-mate-noble-numbat-release-notes/</link>
  1631. <description>&lt;p&gt;Ubuntu MATE 24.04 is more of what you like, stable MATE Desktop on top of current Ubuntu.
  1632. This release rolls up some fixes and more closely aligns with Ubuntu. Read on to learn more 👓️&lt;/p&gt;
  1633.  
  1634. &lt;p class=&quot;center&quot;&gt;&lt;img alt=&quot;Ubuntu MATE 24.04 LTS&quot; src=&quot;https://ubuntu-mate.org/images/blog/noble/screenshot.png&quot; /&gt;
  1635. &lt;strong&gt;Ubuntu MATE 24.04 LTS&lt;/strong&gt;&lt;/p&gt;
  1636.  
  1637. &lt;h2 id=&quot;thank-you-&quot;&gt;Thank you! 🙇&lt;/h2&gt;
  1638.  
  1639. &lt;p&gt;&lt;strong&gt;I’d like to extend my sincere thanks to everyone who has played an active role in improving Ubuntu MATE for this release 👏
  1640. I’d like to acknowledge the close collaboration with all the Ubuntu flavour teams and the Ubuntu Foundations and Desktop Teams.
  1641. The assistance and support provided by &lt;a href=&quot;https://launchpad.net/~eeickmeyer&quot;&gt;Erich Eickmeyer&lt;/a&gt; (Ubuntu Studio), &lt;a href=&quot;https://launchpad.net/~tsimonq2&quot;&gt;Simon Quigley&lt;/a&gt; (Lubuntu) and &lt;a href=&quot;https://launchpad.net/~fossfreedom&quot;&gt;David Muhammed&lt;/a&gt; (Ubuntu Budgie) have been invaluable.
  1642. Thank you!&lt;/strong&gt; 💚&lt;/p&gt;
  1643.  
  1644. &lt;h2 id=&quot;what-changed-since-the-ubuntu-mate-2310&quot;&gt;What changed since the Ubuntu MATE 23.10?&lt;/h2&gt;
  1645.  
  1646. &lt;p&gt;Here are the highlights of what’s changed since the &lt;a href=&quot;https://ubuntu-mate.org/blog/ubuntu-mate-mantic-minotaur-release-notes/&quot;&gt;release of Ubuntu MATE 23.10&lt;/a&gt;&lt;/p&gt;
  1647.  
  1648. &lt;ul&gt;
  1649.  &lt;li&gt;Ships stable &lt;a href=&quot;https://mate-desktop.org&quot;&gt;MATE Desktop&lt;/a&gt; 1.26.2 with a selection of bug fixes 🐛 and minor improvements 🩹 to associated components.&lt;/li&gt;
  1650.  &lt;li&gt;Integrated the new ✨ &lt;a href=&quot;https://snapcraft.io/ubuntu-desktop-bootstrap&quot;&gt;Ubuntu Desktop Bootstrap&lt;/a&gt; installer 📀&lt;/li&gt;
  1651.  &lt;li&gt;Added &lt;a href=&quot;https://gitlab.gnome.org/World/gnome-firmware&quot;&gt;GNOME Firmware&lt;/a&gt;, that replaces &lt;a href=&quot;https://snapcraft.io/firmware-updater&quot;&gt;Firmware Updater&lt;/a&gt;.&lt;/li&gt;
  1652.  &lt;li&gt;Added &lt;a href=&quot;https://snapcraft.io/snap-store&quot;&gt;App Center&lt;/a&gt;, that replaces Software Boutique.&lt;/li&gt;
  1653.  &lt;li&gt;Retired Ubuntu MATE Welcome; although it is still available for Ubuntu MATE 23.10 and earlier.&lt;/li&gt;
  1654. &lt;/ul&gt;
  1655.  
  1656. &lt;h2 id=&quot;major-applications&quot;&gt;Major Applications&lt;/h2&gt;
  1657.  
  1658. &lt;p&gt;Accompanying &lt;strong&gt;MATE Desktop 1.26.2&lt;/strong&gt; 🧉 and &lt;strong&gt;Linux 6.8&lt;/strong&gt; 🐧 are &lt;strong&gt;Firefox 125&lt;/strong&gt; 🔥🦊,
  1659. &lt;strong&gt;Celluloid 0.26&lt;/strong&gt; 🎥, &lt;strong&gt;Evolution 3.52&lt;/strong&gt; 📧, &lt;strong&gt;LibreOffice 24.2.2&lt;/strong&gt; 📚&lt;/p&gt;
  1660.  
  1661. &lt;p&gt;See the &lt;a href=&quot;https://discourse.ubuntu.com/t/noble-numbat-release-notes/39890&quot;&gt;Ubuntu 24.04 Release Notes&lt;/a&gt;
  1662. for details of all the changes and improvements that Ubuntu MATE benefits from.&lt;/p&gt;
  1663.  
  1664. &lt;div class=&quot;jumbotron&quot;&gt;
  1665.  
  1666.    &lt;h2&gt;Download Ubuntu MATE 24.04&lt;/h2&gt;
  1667.  
  1668.    &lt;p&gt;This new release will be first available for PC/Mac users.&lt;/p&gt;
  1669.  
  1670.  
  1671.    
  1672.        &lt;a class=&quot;btn&quot; href=&quot;https://ubuntu-mate.org/download/&quot;&gt;Download&lt;/a&gt;
  1673.    
  1674.  
  1675. &lt;/div&gt;
  1676.  
  1677. &lt;h2 id=&quot;upgrading-to-ubuntu-mate-2404&quot;&gt;Upgrading to Ubuntu MATE 24.04&lt;/h2&gt;
  1678.  
  1679. &lt;p&gt;The upgrade process to Ubuntu MATE 24.04 LTS from either Ubuntu MATE 22.04 LTS or
  1680. 23.10 is the same as Ubuntu.&lt;/p&gt;
  1681.  
  1682. &lt;ul&gt;
  1683.  &lt;li&gt;&lt;a href=&quot;https://help.ubuntu.com/community/NobleUpgrades&quot;&gt;Ubuntu 24.04 Upgrade Process&lt;/a&gt;&lt;/li&gt;
  1684. &lt;/ul&gt;
  1685.  
  1686. &lt;p&gt;There are no offline upgrade options for Ubuntu MATE. Please ensure you have
  1687. network connectivity to one of the official mirrors or to a locally accessible
  1688. mirror and follow the instructions above.&lt;/p&gt;</description>
  1689. <pubDate>Thu, 25 Apr 2024 14:57:38 +0000</pubDate>
  1690. </item>
  1691. <item>
  1692. <title>David Mohammed: Ubuntu Budgie 24.04 Released</title>
  1693. <guid isPermaLink="false">https://ubuntubudgie.org/?p=3772</guid>
  1694. <link>https://ubuntubudgie.org/2024/04/ubuntu-budgie-24-04-released/</link>
  1695. <description>&lt;p&gt;We are pleased to announce the release of the next version of our distro, 24.04 Long Term Support. The LTS version is supported for 3 years while the regular releases are supported for 9 months. The new release rolls-up various fixes and optimizations that the Ubuntu Budgie team have been released since the 22.04 release in April 2022: We also inherits hundreds of stability…&lt;/p&gt;
  1696. &lt;p&gt;&lt;a href=&quot;https://ubuntubudgie.org/2024/04/ubuntu-budgie-24-04-released/&quot; rel=&quot;nofollow&quot;&gt;Source&lt;/a&gt;&lt;/p&gt;</description>
  1697. <pubDate>Thu, 25 Apr 2024 13:37:47 +0000</pubDate>
  1698. </item>
  1699. <item>
  1700. <title>Lubuntu Blog: Lubuntu 24.04 LTS Released!</title>
  1701. <guid isPermaLink="false">https://lubuntu.me/?p=3981</guid>
  1702. <link>https://lubuntu.me/noble-released/</link>
  1703. <description>Thanks to the hard work from our contributors, Lubuntu 24.04 LTS has been released. With the codename Noble Numbat, Lubuntu 24.04 is the 26th release of Lubuntu, the 12th release of Lubuntu with LXQt as the default desktop environment. Download and Support Lifespan With Lubuntu 24.04 being a long-term support interim release, it will follow […]</description>
  1704. <pubDate>Thu, 25 Apr 2024 13:31:02 +0000</pubDate>
  1705. </item>
  1706. <item>
  1707. <title>Xubuntu: Xubuntu 24.04 released!</title>
  1708. <guid isPermaLink="false">https://xubuntu.org/?p=5547</guid>
  1709. <link>https://xubuntu.org/news/xubuntu-24-04-released/</link>
  1710. <description>&lt;p&gt;The Xubuntu team is happy to announce the immediate release of Xubuntu 24.04.&lt;/p&gt;
  1711.  
  1712.  
  1713.  
  1714. &lt;p&gt;Xubuntu 24.04, codenamed &lt;strong&gt;Noble Numbat&lt;/strong&gt;, is a long-term support (LTS) release and will be supported for 3 years, until 2027.&lt;/p&gt;
  1715.  
  1716.  
  1717.  
  1718. &lt;figure class=&quot;wp-block-image size-full&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-5548&quot; height=&quot;800&quot; src=&quot;https://xubuntu.org/wp-content/uploads/2024/04/6515/xubuntu-24.04.png&quot; width=&quot;1280&quot; /&gt;Xubuntu 24.04, featuring the latest updates from Xfce 4.18 and GNOME 46.&lt;/figure&gt;
  1719.  
  1720.  
  1721.  
  1722. &lt;p&gt;Xubuntu 24.04 features the latest updates from Xfce 4.18, GNOME 46, and MATE 1.26. For new users and those coming from Xubuntu 22.04, you’ll appreciate the performance, stability, and improved hardware support found in Xubuntu 24.04. Xfce 4.18 is stable, fast, and full of user-friendly features. Enjoy frictionless bluetooth headphone connections and out-of-the-box touchpad support. Updates to our icon theme and wallpapers make Xubuntu feel fresh and stylish.&lt;/p&gt;
  1723.  
  1724.  
  1725.  
  1726. &lt;p&gt;The &lt;strong&gt;final release images&lt;/strong&gt; for &lt;strong&gt;Xubuntu Desktop&lt;/strong&gt; and &lt;strong&gt;Xubuntu Minimal&lt;/strong&gt; are available as torrents and direct downloads from &lt;a href=&quot;https://xubuntu.org/download/&quot;&gt;xubuntu.org/download/&lt;/a&gt;.&lt;/p&gt;
  1727.  
  1728.  
  1729.  
  1730. &lt;p&gt;As the main server might be busy in the first few days after the release, we recommend using the torrents if possible.&lt;/p&gt;
  1731.  
  1732.  
  1733.  
  1734. &lt;p&gt;We’d like to thank everybody who contributed to this release of Xubuntu!&lt;/p&gt;
  1735.  
  1736.  
  1737.  
  1738. &lt;h2&gt;Highlights and Known Issues&lt;/h2&gt;
  1739.  
  1740.  
  1741.  
  1742. &lt;h3&gt;Highlights&lt;/h3&gt;
  1743.  
  1744.  
  1745.  
  1746. &lt;ul&gt;&lt;li&gt;&lt;strong&gt;Xfce 4.18&lt;/strong&gt; is included and well-polished since it’s initial release in December 2022&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Xubuntu Minimal&lt;/strong&gt; is included as an officially supported subproject&lt;/li&gt;&lt;li&gt;GNOME Software has been replaced by &lt;strong&gt;Snap Store&lt;/strong&gt; and &lt;strong&gt;GDebi&lt;/strong&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Snap Desktop Integration&lt;/strong&gt; is now included for improved snap package support&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Firmware Updater&lt;/strong&gt; has been added to enable firmware updates in Xubuntu is included to support firmware updates from the Linux Vendor Firmware Service (LVFS)&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Thunderbird&lt;/strong&gt; is now distributed as a Snap package&lt;/li&gt;&lt;li&gt;Ubiquity has been replaced by the Flutter-based &lt;strong&gt;Ubuntu Installer&lt;/strong&gt; to provide fast and user-friendly installation&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Pipewire&lt;/strong&gt; (and wireplumber) are now included in Xubuntu&lt;/li&gt;&lt;li&gt;Improved hardware support for &lt;strong&gt;bluetooth headphones&lt;/strong&gt; and &lt;strong&gt;touchpads&lt;/strong&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Color emoji&lt;/strong&gt; is now included and supported in Firefox, Thunderbird, and newer Gtk-based apps&lt;/li&gt;&lt;li&gt;Significantly improved &lt;strong&gt;screensaver&lt;/strong&gt; integration and stability&lt;/li&gt;&lt;/ul&gt;
  1747.  
  1748.  
  1749.  
  1750. &lt;h3&gt;Known Issues&lt;/h3&gt;
  1751.  
  1752.  
  1753.  
  1754. &lt;ul&gt;&lt;li&gt;The shutdown prompt may not be displayed at the end of the installation. Instead you might just see a Xubuntu logo, a black screen with an underscore in the upper left hand corner, or just a black screen. Press Enter and the system will reboot into the installed environment. (LP: &lt;a href=&quot;https://bugs.launchpad.net/ubuntu-release-notes/+bug/1944519&quot;&gt;#1944519&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;Xorg crashes and the user is logged out after logging in or switching users on some virtual machines, including GNOME Boxes. (LP: #&lt;a href=&quot;https://bugs.launchpad.net/ubuntu/+source/xorg-server/+bug/1861609&quot;&gt;1861609&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;You may experience choppy audio or poor system performance while playing audio, but only in some virtual machines (observed in VMware and VirtualBox)&lt;/li&gt;&lt;li&gt;OEM installation options are not currently supported or available, but will be included for Xubuntu 24.04.1&lt;/li&gt;&lt;/ul&gt;
  1755.  
  1756.  
  1757.  
  1758. &lt;p&gt;For more obscure known issues, information on affecting bugs, bug fixes, and a list of new package versions, please refer to the &lt;a href=&quot;https://wiki.xubuntu.org/releases/24.04/release-notes&quot;&gt;Xubuntu Release Notes&lt;/a&gt;.&lt;/p&gt;
  1759.  
  1760.  
  1761.  
  1762. &lt;p&gt;The main &lt;a href=&quot;https://discourse.ubuntu.com/t/noble-numbat-release-notes/39890&quot;&gt;Ubuntu Release Notes&lt;/a&gt; cover many of the other packages we carry and more generic issues.&lt;/p&gt;
  1763.  
  1764.  
  1765.  
  1766. &lt;h2&gt;Support&lt;/h2&gt;
  1767.  
  1768.  
  1769.  
  1770. &lt;p&gt;&lt;strong&gt;For support &lt;/strong&gt;with the release, navigate to &lt;a href=&quot;https://xubuntu.org/help/&quot;&gt;Help &amp;amp; Support&lt;/a&gt; for a complete list of methods to get help.&lt;/p&gt;</description>
  1771. <pubDate>Thu, 25 Apr 2024 12:00:53 +0000</pubDate>
  1772. </item>
  1773. <item>
  1774. <title>Lukas Märdian: Creating a Netplan enabled system through Debian-Installer</title>
  1775. <guid isPermaLink="false">https://blog.slyon.de/?p=2368</guid>
  1776. <link>https://blog.slyon.de/2024/04/25/creating-a-netplan-enabled-system-through-debian-installer/</link>
  1777. <description>&lt;p&gt;With the work that has been done in the &lt;a href=&quot;https://salsa.debian.org/installer-team/netcfg/-/merge_requests/9&quot;&gt;debian-installer/netcfg merge-proposal !9&lt;/a&gt; it is possible to install a standard Debian system, using the normal Debian-Installer (d-i) &lt;strong&gt;mini.iso&lt;/strong&gt; images, that will come pre-installed with Netplan and all network configuration structured in &lt;code&gt;/etc/netplan/&lt;/code&gt;.&lt;/p&gt;
  1778.  
  1779.  
  1780.  
  1781. &lt;p&gt;In this write-up, I’d like to run you through a list of commands for experiencing the Netplan enabled installation process first-hand. For now, we’ll be using a custom ISO image, while waiting for the above-mentioned merge-proposal to be landed. Furthermore, as the Debian archive is going through major transitions builds of the “unstable” branch of d-i don’t currently work. So I implemented a &lt;a href=&quot;https://people.ubuntu.com/~slyon/d-i/bookworm/0001-finish-install-adopt-to-netplan.io-package-netplan-g.patch&quot;&gt;small backport&lt;/a&gt;, producing updated &lt;a href=&quot;https://people.ubuntu.com/~slyon/d-i/bookworm/netcfg_1.189_amd64.udeb&quot;&gt;netcfg&lt;/a&gt; and &lt;a href=&quot;https://people.ubuntu.com/~slyon/d-i/bookworm/netcfg-static_1.189_amd64.udeb&quot;&gt;netcfg-static&lt;/a&gt; for Bookworm, which can be used as &lt;strong&gt;localudebs/&lt;/strong&gt; during the d-i build.&lt;/p&gt;
  1782.  
  1783.  
  1784.  
  1785. &lt;p&gt;Let’s start with preparing a working directory and installing the software dependencies for our virtualized Debian system:&lt;/p&gt;
  1786.  
  1787.  
  1788.  
  1789. &lt;pre class=&quot;wp-block-code&quot;&gt;&lt;code&gt;$ mkdir d-i_bookworm &amp;amp;&amp;amp; cd d-i_bookworm
  1790. $ apt install ovmf qemu-utils qemu-system-x86&lt;/code&gt;&lt;/pre&gt;
  1791.  
  1792.  
  1793.  
  1794. &lt;p&gt;Now let’s download the custom&lt;code&gt; mini.iso&lt;/code&gt;, &lt;code&gt;linux&lt;/code&gt; kernel image and &lt;code&gt;initrd.gz&lt;/code&gt; containing the Netplan enablement changes, as mentioned above.&lt;/p&gt;
  1795.  
  1796.  
  1797.  
  1798. &lt;pre class=&quot;wp-block-code&quot;&gt;&lt;code&gt;$ wget https://people.ubuntu.com/~slyon/d-i/bookworm/mini.iso
  1799. $ wget https://people.ubuntu.com/~slyon/d-i/bookworm/linux
  1800. $ wget https://people.ubuntu.com/~slyon/d-i/bookworm/initrd.gz&lt;/code&gt;&lt;/pre&gt;
  1801.  
  1802.  
  1803.  
  1804. &lt;p&gt;Next we’ll prepare a VM, by copying the EFI firmware files, preparing some persistent EFIVARs file, to boot from &lt;code&gt;FS0:\EFI\debian\grubx64.efi&lt;/code&gt;, and create a virtual disk for our machine:&lt;/p&gt;
  1805.  
  1806.  
  1807.  
  1808. &lt;pre class=&quot;wp-block-code&quot;&gt;&lt;code&gt;$ cp /usr/share/OVMF/OVMF_CODE_4M.fd .
  1809. $ cp /usr/share/OVMF/OVMF_VARS_4M.fd .
  1810. $ qemu-img create -f qcow2 ./data.qcow2 5G&lt;/code&gt;&lt;/pre&gt;
  1811.  
  1812.  
  1813.  
  1814. &lt;p&gt;Finally, let’s launch the installer using a custom preseed.cfg file, that will automatically install Netplan for us in the target system. A minimal preseed file could look like this:&lt;/p&gt;
  1815.  
  1816.  
  1817.  
  1818. &lt;pre class=&quot;wp-block-preformatted&quot;&gt;# Install minimal Netplan generator binary&lt;br /&gt;d-i preseed/late_command string in-target apt-get -y install netplan-generator&lt;/pre&gt;
  1819.  
  1820.  
  1821.  
  1822. &lt;p&gt;For this demo, we’re installing the full &lt;code&gt;netplan.io&lt;/code&gt; package (incl. Python CLI), as the &lt;code&gt;netplan-generator&lt;/code&gt; package was not yet split out as an independent binary in the Bookworm cycle. You can choose the preseed file from a set of different variants to test the different configurations:&lt;/p&gt;
  1823.  
  1824.  
  1825.  
  1826. &lt;ul&gt;
  1827. &lt;li&gt;Netplan + systemd-resolved configuration
  1828. &lt;ul&gt;
  1829. &lt;li&gt;&lt;a href=&quot;https://people.ubuntu.com/~slyon/d-i/bookworm/netplan-preseed+networkd.cfg&quot;&gt;https://people.ubuntu.com/~slyon/d-i/bookworm/netplan-preseed+networkd.cfg&lt;/a&gt;&lt;/li&gt;
  1830. &lt;/ul&gt;
  1831. &lt;/li&gt;
  1832.  
  1833.  
  1834.  
  1835. &lt;li&gt;Netplan + NetworkManager configuration
  1836. &lt;ul&gt;
  1837. &lt;li&gt;&lt;a href=&quot;https://people.ubuntu.com/~slyon/d-i/bookworm/netplan-preseed+nm.cfg&quot;&gt;https://people.ubuntu.com/~slyon/d-i/bookworm/netplan-preseed+nm.cfg&lt;/a&gt;&lt;/li&gt;
  1838. &lt;/ul&gt;
  1839. &lt;/li&gt;
  1840. &lt;/ul&gt;
  1841.  
  1842.  
  1843.  
  1844. &lt;p&gt;We’re using the custom &lt;code&gt;linux&lt;/code&gt; kernel and &lt;code&gt;initrd.gz&lt;/code&gt; here to be able to pass the preseed URL as a parameter to the kernel’s &lt;code&gt;cmdline&lt;/code&gt; directly. Launching this VM should bring up the normal debian-installer in its &lt;code&gt;netboot/gtk&lt;/code&gt; form:&lt;/p&gt;
  1845.  
  1846.  
  1847.  
  1848. &lt;pre class=&quot;wp-block-code&quot;&gt;&lt;code&gt;$ export U=https://people.ubuntu.com/~slyon/d-i/bookworm/netplan-preseed+networkd.cfg
  1849. $ qemu-system-x86_64 \
  1850. -M q35 -enable-kvm -cpu host -smp 4 -m 2G \
  1851. -drive if=pflash,format=raw,unit=0,file=OVMF_CODE_4M.fd,readonly=on \
  1852. -drive if=pflash,format=raw,unit=1,file=OVMF_VARS_4M.fd,readonly=off \
  1853. -device qemu-xhci -device usb-kbd -device usb-mouse \
  1854. -vga none -device virtio-gpu-pci \
  1855. -net nic,model=virtio -net user \
  1856. -kernel ./linux -initrd ./initrd.gz -append &quot;url=$U&quot; \
  1857. -hda ./data.qcow2 -cdrom ./mini.iso;&lt;/code&gt;&lt;/pre&gt;
  1858.  
  1859.  
  1860.  
  1861. &lt;p&gt;Now you can click through the normal Debian-Installer process, using mostly default settings. Optionally, you could play around with the networking settings, to see how those get translated to &lt;code&gt;/etc/netplan/&lt;/code&gt; in the target system.&lt;/p&gt;
  1862.  
  1863.  
  1864.  
  1865. &lt;figure class=&quot;wp-block-image size-full&quot;&gt;&lt;a href=&quot;https://blog.slyon.de/wp-content/uploads/2024/04/image.png&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-2377&quot; height=&quot;600&quot; src=&quot;https://blog.slyon.de/wp-content/uploads/2024/04/image.png&quot; width=&quot;800&quot; /&gt;&lt;/a&gt;&lt;/figure&gt;
  1866.  
  1867.  
  1868.  
  1869. &lt;p&gt;After you confirmed your partitioning changes, the base system gets installed. I suggest not to select any additional components, like desktop environments, to speed up the process.&lt;/p&gt;
  1870.  
  1871.  
  1872.  
  1873. &lt;figure class=&quot;wp-block-image size-full&quot;&gt;&lt;a href=&quot;https://blog.slyon.de/wp-content/uploads/2024/04/image-1.png&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-2378&quot; height=&quot;600&quot; src=&quot;https://blog.slyon.de/wp-content/uploads/2024/04/image-1.png&quot; width=&quot;800&quot; /&gt;&lt;/a&gt;&lt;/figure&gt;
  1874.  
  1875.  
  1876.  
  1877. &lt;p&gt;During the final step of the installation (&lt;code&gt;finish-install.d/55netcfg-copy-config&lt;/code&gt;) d-i will detect that Netplan was installed in the target system (due to the preseed file provided) and opt to write its network configuration to &lt;code&gt;/etc/netplan/&lt;/code&gt; instead of &lt;code&gt;/etc/network/interfaces&lt;/code&gt; or &lt;code&gt;/etc/NetworkManager/system-connections/&lt;/code&gt;.&lt;/p&gt;
  1878.  
  1879.  
  1880.  
  1881. &lt;figure class=&quot;wp-block-image size-full&quot;&gt;&lt;a href=&quot;https://blog.slyon.de/wp-content/uploads/2024/04/image-2.png&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-2379&quot; height=&quot;600&quot; src=&quot;https://blog.slyon.de/wp-content/uploads/2024/04/image-2.png&quot; width=&quot;800&quot; /&gt;&lt;/a&gt;&lt;/figure&gt;
  1882.  
  1883.  
  1884.  
  1885. &lt;p&gt;Done! After the installation finished, you can reboot into your virgin Debian Bookworm system.&lt;/p&gt;
  1886.  
  1887.  
  1888.  
  1889. &lt;p&gt;To do that, quit the current Qemu process, by pressing &lt;strong&gt;Ctrl+C&lt;/strong&gt; and make sure to copy over the &lt;code&gt;EFIVARS.fd&lt;/code&gt; file that was written by &lt;code&gt;grub&lt;/code&gt; during the installation, so Qemu can find the new system. Then reboot into the new system, not using the &lt;strong&gt;mini.iso&lt;/strong&gt; image any more:&lt;/p&gt;
  1890.  
  1891.  
  1892.  
  1893. &lt;pre class=&quot;wp-block-code&quot;&gt;&lt;code&gt;$ cp ./OVMF_VARS_4M.fd ./EFIVARS.fd
  1894. $ qemu-system-x86_64 \
  1895.        -M q35 -enable-kvm -cpu host -smp 4 -m 2G \
  1896.        -drive if=pflash,format=raw,unit=0,file=OVMF_CODE_4M.fd,readonly=on \
  1897.        -drive if=pflash,format=raw,unit=1,file=EFIVARS.fd,readonly=off \
  1898.        -device qemu-xhci -device usb-kbd -device usb-mouse \
  1899.        -vga none -device virtio-gpu-pci \
  1900.        -net nic,model=virtio -net user \
  1901.        -drive file=./data.qcow2,if=none,format=qcow2,id=disk0 \
  1902.        -device virtio-blk-pci,drive=disk0,bootindex=1
  1903.        -serial mon:stdio&lt;/code&gt;&lt;/pre&gt;
  1904.  
  1905.  
  1906.  
  1907. &lt;p&gt;Finally, you can play around with your &lt;strong&gt;Netplan enabled Debian system&lt;/strong&gt;! As you will find, &lt;code&gt;/etc/network/interfaces&lt;/code&gt; exists but is empty, it could still be used (optionally/additionally). Netplan was configured in &lt;code&gt;/etc/netplan/&lt;/code&gt; according to the settings given during the d-i installation process.&lt;/p&gt;
  1908.  
  1909.  
  1910.  
  1911. &lt;figure class=&quot;wp-block-image size-large&quot;&gt;&lt;a href=&quot;https://blog.slyon.de/wp-content/uploads/2024/04/deb1-1.png&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-2383&quot; height=&quot;882&quot; src=&quot;https://blog.slyon.de/wp-content/uploads/2024/04/deb1-1-1024x882.png&quot; width=&quot;1024&quot; /&gt;&lt;/a&gt;&lt;/figure&gt;
  1912.  
  1913.  
  1914.  
  1915. &lt;p&gt;In our case, we also installed the Netplan CLI, so we can play around with some of its features, like &lt;code&gt;netplan status&lt;/code&gt;:&lt;/p&gt;
  1916.  
  1917.  
  1918.  
  1919. &lt;figure class=&quot;wp-block-image size-large&quot;&gt;&lt;a href=&quot;https://blog.slyon.de/wp-content/uploads/2024/04/deb2.png&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-2384&quot; height=&quot;882&quot; src=&quot;https://blog.slyon.de/wp-content/uploads/2024/04/deb2-1024x882.png&quot; width=&quot;1024&quot; /&gt;&lt;/a&gt;&lt;/figure&gt;
  1920.  
  1921.  
  1922.  
  1923. &lt;p&gt;Thank you for following along the Netplan enabled Debian installation process and happy hacking! If you want to learn more, join the discussion at &lt;a href=&quot;https://salsa.debian.org/installer-team/netcfg/-/merge_requests/9&quot;&gt;Salsa:installer-team/netcfg&lt;/a&gt; and find us at &lt;a href=&quot;https://github.com/canonical/netplan&quot;&gt;GitHub:netplan&lt;/a&gt;.&lt;/p&gt;</description>
  1924. <pubDate>Thu, 25 Apr 2024 10:19:44 +0000</pubDate>
  1925. </item>
  1926. <item>
  1927. <title>Podcast Ubuntu Portugal: E296 Nobre Mirmecóbio Refrigerado</title>
  1928. <guid isPermaLink="false">https://media.blubrry.com/ubuntupt/archive.org/download/pup-e296/e296.mp3</guid>
  1929. <link>https://podcastubuntuportugal.org/e296/</link>
  1930. <description>&lt;p&gt;Desta vez recebemos a visita do André Bação e a conversa seguiu animada em torno de leis de termodinâmica, panelas de esquentadores, alegria de famílias chinesas, computadores azeiteiros e - como não podia deixar de ser - casas espertas. Ainda falámos da última beta de Ubuntu 24.04 e descobrimos que há empacotadores chamados Carlão. Nos próximos dias vai haver muita celebração da Liberdade na comunidade do Software Livre e todos vamos querer lá estar! 25 de Abril Sempre, Software Proprietário Nunca Mais!&lt;/p&gt;
  1931. &lt;p&gt;Já sabem: oiçam, subscrevam e partilhem!&lt;/p&gt;
  1932. &lt;ul&gt;
  1933. &lt;li&gt;
  1934. &lt;p&gt;&lt;a href=&quot;https://pi-apps.io/&quot;&gt;https://pi-apps.io/&lt;/a&gt;&lt;/p&gt;
  1935. &lt;/li&gt;
  1936. &lt;li&gt;
  1937. &lt;p&gt;&lt;a href=&quot;https://schneegans.github.io/gnome-pie&quot;&gt;https://schneegans.github.io/gnome-pie&lt;/a&gt;&lt;/p&gt;
  1938. &lt;/li&gt;
  1939. &lt;li&gt;
  1940. &lt;p&gt;&lt;a href=&quot;https://pt.wikipedia.org/wiki/Termodin%C3%A2mica&quot;&gt;https://pt.wikipedia.org/wiki/Termodin%C3%A2mica&lt;/a&gt;&lt;/p&gt;
  1941. &lt;/li&gt;
  1942. &lt;li&gt;
  1943. &lt;p&gt;&lt;a href=&quot;https://inv.nadeko.net/watch?v=oa__fLArsFk&quot;&gt;https://inv.nadeko.net/watch?v=oa__fLArsFk&lt;/a&gt;&lt;/p&gt;
  1944. &lt;/li&gt;
  1945. &lt;li&gt;
  1946. &lt;p&gt;&lt;a href=&quot;https://www.openhomefoundation.org/&quot;&gt;https://www.openhomefoundation.org/&lt;/a&gt;&lt;/p&gt;
  1947. &lt;/li&gt;
  1948. &lt;li&gt;
  1949. &lt;p&gt;&lt;a href=&quot;https://pt.wikipedia.org/wiki/Arrefecimento_termoel%C3%A9trico&quot;&gt;https://pt.wikipedia.org/wiki/Arrefecimento_termoel%C3%A9trico&lt;/a&gt;&lt;/p&gt;
  1950. &lt;/li&gt;
  1951. &lt;li&gt;
  1952. &lt;p&gt;&lt;a href=&quot;https://slimbook.com/&quot;&gt;https://slimbook.com/&lt;/a&gt;&lt;/p&gt;
  1953. &lt;/li&gt;
  1954. &lt;li&gt;
  1955. &lt;p&gt;&lt;a href=&quot;https://releases.ubuntu.com/noble/&quot;&gt;https://releases.ubuntu.com/noble/&lt;/a&gt;&lt;/p&gt;
  1956. &lt;/li&gt;
  1957. &lt;li&gt;
  1958. &lt;p&gt;&lt;a href=&quot;https://loco.ubuntu.com/teams/ubuntu-pt/&quot;&gt;https://loco.ubuntu.com/teams/ubuntu-pt/&lt;/a&gt;&lt;/p&gt;
  1959. &lt;/li&gt;
  1960. &lt;li&gt;
  1961. &lt;p&gt;&lt;a href=&quot;https://shop.nitrokey.com/shop?aff_ref=3&quot;&gt;https://shop.nitrokey.com/shop?aff_ref=3&lt;/a&gt;&lt;/p&gt;
  1962. &lt;/li&gt;
  1963. &lt;li&gt;
  1964. &lt;p&gt;&lt;a href=&quot;https://masto.pt/@pup&quot;&gt;https://masto.pt/@pup&lt;/a&gt;&lt;/p&gt;
  1965. &lt;/li&gt;
  1966. &lt;li&gt;
  1967. &lt;p&gt;&lt;a href=&quot;https://youtube.com/PodcastUbuntuPortugal&quot;&gt;https://youtube.com/PodcastUbuntuPortugal&lt;/a&gt;&lt;/p&gt;
  1968. &lt;/li&gt;
  1969. &lt;/ul&gt;
  1970. &lt;h3 id=&quot;apoios&quot;&gt;Apoios&lt;/h3&gt;
  1971. &lt;p&gt;Podem apoiar o podcast usando os links de afiliados do Humble Bundle, porque ao usarem esses links para fazer uma compra, uma parte do valor que pagam reverte a favor do Podcast Ubuntu Portugal.
  1972. E podem obter tudo isso com 15 dólares ou diferentes partes dependendo de pagarem 1, ou 8.
  1973. Achamos que isto vale bem mais do que 15 dólares, pelo que se puderem paguem mais um pouco mais visto que têm a opção de pagar o quanto quiserem.
  1974. Se estiverem interessados em outros bundles não listados nas notas usem o link &lt;a href=&quot;https://www.humblebundle.com/?partner=PUP&quot;&gt;https://www.humblebundle.com/?partner=PUP&lt;/a&gt; e vão estar também a apoiar-nos.&lt;/p&gt;
  1975. &lt;h3 id=&quot;atribuição-e-licenças&quot;&gt;Atribuição e licenças&lt;/h3&gt;
  1976. &lt;p&gt;Este episódio foi produzido por Diogo Constantino, Miguel e Tiago Carrondo e editado pelo &lt;a href=&quot;https://senhorpodcast.pt/&quot;&gt;Senhor Podcast&lt;/a&gt;.
  1977. O website é produzido por Tiago Carrondo e o &lt;a href=&quot;https://gitlab.com/podcastubuntuportugal/website&quot;&gt;código aberto&lt;/a&gt; está licenciado nos termos da &lt;a href=&quot;https://gitlab.com/podcastubuntuportugal/website/main/LICENSE&quot;&gt;Licença MIT&lt;/a&gt;.
  1978. A música do genérico é: “Won’t see it comin’ (Feat Aequality &amp;amp; N’sorte d’autruche)”, por Alpha Hydrae e está licenciada nos termos da &lt;a href=&quot;https://creativecommons.org/publicdomain/zero/1.0/&quot;&gt;CC0 1.0 Universal License&lt;/a&gt;.
  1979. Este episódio e a imagem utilizada estão licenciados nos termos da licença: &lt;a href=&quot;https://creativecommons.org/licenses/by-nc-nd/4.0/&quot;&gt;Attribution-NonCommercial-NoDerivatives 4.0 International (CC BY-NC-ND 4.0)&lt;/a&gt;, &lt;a href=&quot;https://creativecommons.org/licenses/by-nc-nd/4.0/legalcode&quot;&gt;cujo texto integral pode ser lido aqui&lt;/a&gt;. Estamos abertos a licenciar para permitir outros tipos de utilização, &lt;a href=&quot;https://podcastubuntuportugal.org/contactos&quot;&gt;contactem-nos&lt;/a&gt; para validação e autorização.&lt;/p&gt;</description>
  1980. <pubDate>Thu, 25 Apr 2024 00:00:00 +0000</pubDate>
  1981.        <enclosure url="https://media.blubrry.com/ubuntupt/archive.org/download/pup-e296/e296.mp3" length="38015648" type="audio/mpeg"/>
  1982. </item>
  1983. <item>
  1984. <title>Ubuntu MATE: Ubuntu MATE 23.10 Release Notes</title>
  1985. <guid isPermaLink="false">https://ubuntu-mate.org/blog/ubuntu-mate-mantic-minotaur</guid>
  1986. <link>https://ubuntu-mate.org/blog/ubuntu-mate-mantic-minotaur-release-notes/</link>
  1987. <description>&lt;p&gt;Ubuntu MATE 23.10 is more of what you like, stable MATE Desktop on top of current Ubuntu.
  1988. This release rolls up a number of bugs fixes and updates that continues to build on recent releases, where the focus has been on improving stability 🪨&lt;/p&gt;
  1989.  
  1990. &lt;p class=&quot;center&quot;&gt;&lt;img alt=&quot;Ubuntu MATE 23.10&quot; src=&quot;https://ubuntu-mate.org/images/blog/mantic/screenshot.png&quot; /&gt;
  1991. &lt;strong&gt;Ubuntu MATE 23.10&lt;/strong&gt;&lt;/p&gt;
  1992.  
  1993. &lt;h2 id=&quot;thank-you-&quot;&gt;Thank you! 🙇&lt;/h2&gt;
  1994.  
  1995. &lt;p&gt;&lt;strong&gt;I’d like to extend my sincere thanks to everyone who has played an active role in improving Ubuntu MATE for this release 👏 From reporting bugs, submitting translations, providing patches, contributing to &lt;a href=&quot;https://www.patreon.com/ubuntu_mate&quot;&gt;our crowd-funding&lt;/a&gt;, developing new features, creating artwork, offering community support, actively
  1996. testing and providing QA feedback to writing documentation or creating this fabulous website. Thank you!&lt;/strong&gt; 💚&lt;/p&gt;
  1997.  
  1998. &lt;h2 id=&quot;what-changed-since-the-ubuntu-mate-2304&quot;&gt;What changed since the Ubuntu MATE 23.04?&lt;/h2&gt;
  1999.  
  2000. &lt;p&gt;Here are the highlights of what’s changed since the &lt;a href=&quot;https://ubuntu-mate.org/blog/ubuntu-mate-lunar-lobster-release-notes/&quot;&gt;release of Ubuntu MATE 23.04&lt;/a&gt;&lt;/p&gt;
  2001.  
  2002. &lt;h3 id=&quot;mate-desktop&quot;&gt;MATE Desktop&lt;/h3&gt;
  2003.  
  2004. &lt;p&gt;&lt;a href=&quot;https://mate-desktop.org&quot;&gt;MATE Desktop&lt;/a&gt; has been updated to 1.26.2 with a selection of bugs fixes 🐛 and minor improvements 🩹 to associated components.&lt;/p&gt;
  2005.  
  2006. &lt;ul&gt;
  2007.  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;caja-rename&lt;/code&gt; 23.10.1-1 has been ported from Python to C.&lt;/li&gt;
  2008.  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;libmatemixer&lt;/code&gt; 1.26.0-2+deb12u1 resolves heap corruption and application crashes when removing USB audio devices.&lt;/li&gt;
  2009.  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;mate-desktop&lt;/code&gt; 1.26.2-1 improves portals support.&lt;/li&gt;
  2010.  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;mate-notification-daemon&lt;/code&gt; 1.26.1-1 fixes several memory leaks.&lt;/li&gt;
  2011.  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;mate-system-monitor&lt;/code&gt; 1.26.0-5 now picks up libexec files from &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/usr/libexec&lt;/code&gt;&lt;/li&gt;
  2012.  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;mate-session-manager&lt;/code&gt; 1.26.1-2 set &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;LIBEXECDIR&lt;/code&gt; to &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/usr/libexec/&lt;/code&gt; for correct interaction with &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;mate-system-monitor&lt;/code&gt; ☝️&lt;/li&gt;
  2013.  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;mate-user-guide&lt;/code&gt; 1.26.2-1 is a new upstream release.&lt;/li&gt;
  2014.  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;mate-utils&lt;/code&gt; 1.26.1-1 fixes several memory leaks.&lt;/li&gt;
  2015. &lt;/ul&gt;
  2016.  
  2017. &lt;h4 id=&quot;yet-more-ai-generated-wallpaper&quot;&gt;Yet more AI Generated wallpaper&lt;/h4&gt;
  2018.  
  2019. &lt;p&gt;My friend &lt;a href=&quot;https://twitter.com/simonjbutcher&quot;&gt;Simon Butcher&lt;/a&gt; 🇬🇧 is Head of Research Platforms at Queen Mary University of London managing the Apocrita HPC cluster service. &lt;strong&gt;Once again, Simon has created a stunning AI-generated 🤖🧠 wallpaper for Ubuntu MATE using bleeding edge diffusion models&lt;/strong&gt; 🖌 &lt;em&gt;The sample below is 1920x1080 but the version included in Ubuntu MATE 23.10 are 3840x2160&lt;/em&gt;.&lt;/p&gt;
  2020.  
  2021. &lt;div class=&quot;gallery&quot;&gt;
  2022.    
  2023.        &lt;div class=&quot;gallery-item&quot;&gt;
  2024.            &lt;img alt=&quot;&quot; src=&quot;https://ubuntu-mate.org/images/blog/mantic/minotaur-king.jpg&quot; /&gt;
  2025.  
  2026.            
  2027.        &lt;/div&gt;
  2028.    
  2029. &lt;/div&gt;
  2030.  
  2031. &lt;p&gt;Here’s what Simon has to say about the process of creating this new wallpaper for Mantic Minotaur:&lt;/p&gt;
  2032.  
  2033. &lt;blockquote&gt;
  2034.  &lt;p&gt;Since Minotaurs are imaginary creatures, interpretations tend to vary widely. I wanted to produce an image of a powerful creature in a graphic novel style, although not gruesome like many depictions. The latest open source Stable Diffusion XL base model was trained at a higher resolution and the difference in quality has been noticeable, particularly at better overall consistency and detail, while reducing anatomical irregularities in images. The image was produced locally using Linux and an NVIDIA A100 80GB GPU, starting from an initial text prompt and refined using img2img, inpainting and upscaling features.&lt;/p&gt;
  2035. &lt;/blockquote&gt;
  2036.  
  2037. &lt;h2 id=&quot;major-applications&quot;&gt;Major Applications&lt;/h2&gt;
  2038.  
  2039. &lt;p&gt;Accompanying &lt;strong&gt;MATE Desktop 1.26.2&lt;/strong&gt; 🧉 and &lt;strong&gt;Linux 6.5&lt;/strong&gt; 🐧 are &lt;strong&gt;Firefox 118&lt;/strong&gt; 🔥🦊,
  2040. &lt;strong&gt;Celluloid 0.25&lt;/strong&gt; 🎥, &lt;strong&gt;Evolution 3.50&lt;/strong&gt; 📧, &lt;strong&gt;LibreOffice 7.6.1&lt;/strong&gt; 📚&lt;/p&gt;
  2041.  
  2042. &lt;p&gt;See the &lt;a href=&quot;https://discourse.ubuntu.com/t/mantic-minotaur-release-notes/35534&quot;&gt;Ubuntu 23.10 Release Notes&lt;/a&gt;
  2043. for details of all the changes and improvements that Ubuntu MATE benefits from.&lt;/p&gt;
  2044.  
  2045. &lt;div class=&quot;jumbotron&quot;&gt;
  2046.  
  2047.    &lt;h2&gt;Download Ubuntu MATE 23.10&lt;/h2&gt;
  2048.  
  2049.    &lt;p&gt;This new release will be first available for PC/Mac users.&lt;/p&gt;
  2050.  
  2051.  
  2052.    
  2053.        &lt;a class=&quot;btn&quot; href=&quot;https://ubuntu-mate.org/download/&quot;&gt;Download&lt;/a&gt;
  2054.    
  2055.  
  2056. &lt;/div&gt;
  2057.  
  2058. &lt;h2 id=&quot;upgrading-from-ubuntu-mate-2304&quot;&gt;Upgrading from Ubuntu MATE 23.04&lt;/h2&gt;
  2059.  
  2060. &lt;p&gt;You can upgrade to Ubuntu MATE 23.10 from Ubuntu MATE 23.04. Ensure that you
  2061. have all updates installed for your current version of Ubuntu MATE before you
  2062. upgrade.&lt;/p&gt;
  2063.  
  2064. &lt;ul&gt;
  2065.  &lt;li&gt;Open the “Software &amp;amp; Updates” from the Control Center.&lt;/li&gt;
  2066.  &lt;li&gt;Select the 3rd Tab called “Updates”.&lt;/li&gt;
  2067.  &lt;li&gt;Set the “Notify me of a new Ubuntu version” drop down menu to “For any new version”.&lt;/li&gt;
  2068.  &lt;li&gt;Press &lt;kbd&gt;Alt&lt;/kbd&gt;+&lt;kbd&gt;F2&lt;/kbd&gt; and type in &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;update-manager -c -d&lt;/code&gt; into the command box.&lt;/li&gt;
  2069.  &lt;li&gt;Update Manager should open up and tell you: New distribution release ‘23.10’ is available.
  2070.    &lt;ul&gt;
  2071.      &lt;li&gt;If not, you can use &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/usr/lib/ubuntu-release-upgrader/check-new-release-gtk&lt;/code&gt;&lt;/li&gt;
  2072.    &lt;/ul&gt;
  2073.  &lt;/li&gt;
  2074.  &lt;li&gt;Click “Upgrade” and follow the on-screen instructions.&lt;/li&gt;
  2075. &lt;/ul&gt;
  2076.  
  2077. &lt;p&gt;There are no offline upgrade options for Ubuntu MATE. Please ensure you have
  2078. network connectivity to one of the official mirrors or to a locally accessible
  2079. mirror and follow the instructions above.&lt;/p&gt;
  2080.  
  2081. &lt;h2 id=&quot;feedback&quot;&gt;Feedback&lt;/h2&gt;
  2082.  
  2083. &lt;p&gt;Is there anything you can help with or want to be involved in? Maybe you just
  2084. want to discuss your experiences or ask the maintainers some questions. Please
  2085. &lt;a href=&quot;https://ubuntu-mate.community/&quot;&gt;come and talk to us&lt;/a&gt;.&lt;/p&gt;</description>
  2086. <pubDate>Wed, 24 Apr 2024 21:55:28 +0000</pubDate>
  2087. </item>
  2088. <item>
  2089. <title>David Mohammed: Ubuntu Budgie 24.04 Release Notes</title>
  2090. <guid isPermaLink="false">https://ubuntubudgie.org/?p=3762</guid>
  2091. <link>https://ubuntubudgie.org/2024/04/ubuntu-budgie-24-04-release-notes/</link>
  2092. <description>&lt;p&gt;Ubuntu Budgie 24.04 LTS (Noble Numbat) is a Long Term Support release with 3 years of support by your distro maintainers, from April 2024 to May 2027. These release notes showcase the key takeaways for 22.04 upgraders to 24.04. In these release notes the areas covered are: Quarter &amp;amp; half tiling is pretty much self-explaining. Dragging a window to the…&lt;/p&gt;
  2093. &lt;p&gt;&lt;a href=&quot;https://ubuntubudgie.org/2024/04/ubuntu-budgie-24-04-release-notes/&quot; rel=&quot;nofollow&quot;&gt;Source&lt;/a&gt;&lt;/p&gt;</description>
  2094. <pubDate>Mon, 15 Apr 2024 21:02:12 +0000</pubDate>
  2095. </item>
  2096. <item>
  2097. <title>Paul Tagliamonte: Domo Arigato, Mr. debugfs</title>
  2098. <guid isPermaLink="true">https://notes.pault.ag/debugfs/</guid>
  2099. <link>https://notes.pault.ag/debugfs/</link>
  2100. <description>&lt;p&gt;Years ago, at what I think I remember was DebConf 15, I hacked for a while
  2101. on debhelper to
  2102. &lt;a href=&quot;https://github.com/Debian/debhelper/commit/5549f841fd7cba07e21df8e4f70b21c31cfb3da6&quot;&gt;write build-ids to debian binary control files&lt;/a&gt;,
  2103. so that the &lt;code&gt;build-id&lt;/code&gt; (more specifically, the ELF note
  2104. &lt;code&gt;.note.gnu.build-id&lt;/code&gt;) wound up in the Debian apt archive metadata.
  2105. I’ve always thought this was super cool, and seeing as how Michael Stapelberg
  2106. &lt;a href=&quot;https://michael.stapelberg.ch/posts/2019-02-15-debian-debugging-devex/&quot;&gt;blogged&lt;/a&gt;
  2107. some great pointers around the ecosystem, including the fancy new &lt;code&gt;debuginfod&lt;/code&gt;
  2108. service, and the
  2109. &lt;a href=&quot;https://manpages.debian.org/testing/debian-goodies/find-dbgsym-packages.1.en.html&quot;&gt;find-dbgsym-packages&lt;/a&gt;
  2110. helper, which uses these same headers, I don’t think I’m the only one.&lt;/p&gt;
  2111. &lt;p&gt;At work I’ve been using a lot of &lt;a href=&quot;https://www.rust-lang.org/&quot;&gt;rust&lt;/a&gt;,
  2112. specifically, async rust using &lt;a href=&quot;https://tokio.rs/&quot;&gt;tokio&lt;/a&gt;. To try and work on
  2113. my style, and to dig deeper into the how and why of the decisions made in these
  2114. frameworks, I’ve decided to hack up a project that I’ve wanted to do ever
  2115. since 2015 – write a debug filesystem. Let’s get to it.&lt;/p&gt;
  2116. &lt;h1 id=&quot;back-to-the-future&quot;&gt;Back to the Future&lt;/h1&gt;
  2117. &lt;aside class=&quot;left&quot;&gt;
  2118. It shouldn't shock anyone to learn I'm a huge fan of Go, right?
  2119. &lt;/aside&gt;
  2120. &lt;p&gt;Time to admit something. I really love &lt;a href=&quot;https://9front.org/&quot;&gt;Plan 9&lt;/a&gt;. It’s
  2121. just so good. So many ideas from Plan 9 are just so prescient, and everything
  2122. just feels &lt;em&gt;right&lt;/em&gt;. Not just right like, feels good – like, &lt;em&gt;correct&lt;/em&gt;. The
  2123. bit that I’ve always liked the most is &lt;code&gt;9p&lt;/code&gt;, the network protocol for serving
  2124. a filesystem over a network. This leads to all sorts of fun programs, like the
  2125. Plan 9 &lt;code&gt;ftp&lt;/code&gt; client being a 9p server – you mount the ftp server and access
  2126. files like any other files. It’s kinda like if fuse were more fully a part
  2127. of how the operating system worked, but fuse is all running client-side. With
  2128. 9p there’s a single client, and different &lt;em&gt;servers&lt;/em&gt; that you can connect to,
  2129. which may be backed by a hard drive, remote resources over something like SFTP, FTP, HTTP or even purely synthetic.&lt;/p&gt;
  2130. &lt;aside class=&quot;right&quot;&gt;
  2131. I even triggered a weird bug in
  2132. &lt;a href=&quot;https://github.com/vim/vim/commit/14759ded57447345ba11c11a99fd84344797862c&quot;&gt;vim&lt;/a&gt;
  2133. when writing a 9p filesystem that wound up impacting
  2134. &lt;a href=&quot;https://github.com/microsoft/WSL/issues/11256&quot;&gt;WSL&lt;/a&gt;
  2135. -- although it seems like maybe not due to 9p (rather, SMB)
  2136. &lt;/aside&gt;
  2137. &lt;p&gt;The interesting (maybe sad?) part here is that 9p wound up outliving Plan 9
  2138. in terms of adoption – &lt;code&gt;9p&lt;/code&gt; is in all sorts of places folks don’t usually expect.
  2139. For instance, the Windows Subsystem for Linux uses the 9p protocol to share
  2140. files between Windows and Linux. ChromeOS uses it to share files with Crostini,
  2141. and qemu uses 9p (&lt;code&gt;virtio-p9&lt;/code&gt;) to share files between guest and host. If you’re
  2142. noticing a pattern here, you’d be right; for some reason 9p is the go-to protocol
  2143. to exchange files between hypervisor and guest. Why? I have no idea, except maybe
  2144. due to being designed well, simple to implement, and it’s a lot easier to validate the data being shared
  2145. and validate security boundaries. Simplicity has its value.&lt;/p&gt;
  2146. &lt;p&gt;As a result, there’s a &lt;em&gt;lot&lt;/em&gt; of lingering 9p support kicking around. Turns out
  2147. Linux can even handle mounting 9p filesystems out of the box. This means that I
  2148. can deploy a filesystem to my LAN or my &lt;code&gt;localhost&lt;/code&gt; by running a process on top
  2149. of a computer that needs nothing special, and mount it over the network on an
  2150. unmodified machine – unlike &lt;code&gt;fuse&lt;/code&gt;, where you’d need client-specific software
  2151. to run in order to mount the directory. For instance, let’s mount a 9p
  2152. filesystem running on my localhost machine, serving requests on &lt;code&gt;127.0.0.1:564&lt;/code&gt;
  2153. (tcp) that goes by the name “&lt;code&gt;mountpointname&lt;/code&gt;” to &lt;code&gt;/mnt&lt;/code&gt;.&lt;/p&gt;
  2154. &lt;aside class=&quot;left&quot;&gt;
  2155. Unfortunately, this requires root to mount and feels very un-plan9,
  2156. but it does work and the protocol is good.
  2157. &lt;/aside&gt;
  2158. &lt;pre&gt;$ mount -t 9p \
  2159. -o trans=tcp,port=564,version=9p2000.u,aname=mountpointname \
  2160. 127.0.0.1 \
  2161. /mnt
  2162. &lt;/pre&gt;
  2163. &lt;p&gt;Linux will mount away, and attach to the filesystem as the root user, and by default,
  2164. attach to that mountpoint again for each local user that attempts to use
  2165. it. Nifty, right? I think so. The server is able
  2166. to keep track of per-user access and authorization
  2167. along with the host OS.&lt;/p&gt;
  2168. &lt;h1 id=&quot;wherein-i-styx-with-it&quot;&gt;WHEREIN I STYX WITH IT&lt;/h1&gt;
  2169. &lt;aside class=&quot;right&quot;&gt;
  2170. &quot;Simple&quot; here is intended as my highest form of praise. Writing complex
  2171. things is easy. Taking your work, and simplifying it down the core
  2172. is the most difficult part of our work.
  2173. &lt;/aside&gt;
  2174. &lt;p&gt;Since I wanted to push myself a bit more with &lt;code&gt;rust&lt;/code&gt; and &lt;code&gt;tokio&lt;/code&gt; specifically,
  2175. I opted to implement the whole stack myself, without third party libraries on
  2176. the critical path where I could avoid it. The 9p protocol (sometimes called
  2177. &lt;code&gt;Styx&lt;/code&gt;, the original name for it) is incredibly simple. It’s a series of client
  2178. to server requests, which receive a server to client response. These are,
  2179. respectively, “&lt;code&gt;T&lt;/code&gt;” messages, which &lt;code&gt;t&lt;/code&gt;ransmit a request to the server, which
  2180. trigger an “&lt;code&gt;R&lt;/code&gt;” message in response (&lt;code&gt;R&lt;/code&gt;eply messages). These messages are
  2181. &lt;a href=&quot;https://en.wikipedia.org/wiki/Type%E2%80%93length%E2%80%93value&quot;&gt;TLV&lt;/a&gt; payload
  2182. with a very straight forward structure – so straight forward, in fact, that I
  2183. was able to implement a working server off nothing more than a handful of &lt;a href=&quot;https://9fans.github.io/plan9port/man/man9/&quot;&gt;man
  2184. pages&lt;/a&gt;.&lt;/p&gt;
  2185. &lt;aside class=&quot;left&quot;&gt;
  2186. There's also a &lt;code&gt;9P2000.L&lt;/code&gt; 9p variant which has more
  2187. Linux specific extensions. There's a good chance I port this
  2188. forward when I get the chance.
  2189. &lt;/aside&gt;
  2190. &lt;p&gt;Later on after the basics worked, I found a more complete
  2191. &lt;a href=&quot;https://ericvh.github.io/9p-rfc/rfc9p2000.html&quot;&gt;spec page&lt;/a&gt;
  2192. that contains more information about the
  2193. &lt;a href=&quot;https://ericvh.github.io/9p-rfc/rfc9p2000.u.html&quot;&gt;unix specific variant&lt;/a&gt;
  2194. that I opted to use (&lt;code&gt;9P2000.u&lt;/code&gt; rather than &lt;code&gt;9P2000&lt;/code&gt;) due to the level
  2195. of &lt;code&gt;Linux&lt;/code&gt; specific support for the &lt;code&gt;9P2000.u&lt;/code&gt; variant over the &lt;code&gt;9P2000&lt;/code&gt;
  2196. protocol.&lt;/p&gt;
  2197. &lt;h1 id=&quot;mr-roboto&quot;&gt;MR ROBOTO&lt;/h1&gt;
  2198. &lt;aside class=&quot;right&quot;&gt;
  2199. It really bothers me rust libraries that deal with I/O need to support
  2200. std::io, but to add support for async runtimes, you need to implement
  2201. support for tokio::io and every other runtime; but them's the breaks I
  2202. guess. I really miss Go's built-in async support and io module.
  2203. &lt;/aside&gt;
  2204. &lt;p&gt;The backend stack over at &lt;a href=&quot;https://zoo.dev&quot;&gt;zoo&lt;/a&gt; is &lt;code&gt;rust&lt;/code&gt; and &lt;code&gt;tokio&lt;/code&gt;
  2205. running i/o for an &lt;code&gt;HTTP&lt;/code&gt; and &lt;code&gt;WebRTC&lt;/code&gt; server. I figured I’d pick something
  2206. fairly similar to write my filesystem with, since &lt;code&gt;9P&lt;/code&gt; can be implemented
  2207. on basically anything with I/O. That means &lt;code&gt;tokio&lt;/code&gt; tcp server bits, which
  2208. construct and use a &lt;code&gt;9p&lt;/code&gt; server, which has an idiomatic Rusty API that
  2209. partially abstracts the raw &lt;code&gt;R&lt;/code&gt; and &lt;code&gt;T&lt;/code&gt; messages, but not so much as to
  2210. cause issues with hiding implementation possibilities. At each abstraction
  2211. level, there’s an escape hatch – allowing someone to implement any of
  2212. the layers if required. I called this framework
  2213. &lt;a href=&quot;https://github.com/paultag/arigato&quot;&gt;arigato&lt;/a&gt; which can be found over on
  2214. &lt;a href=&quot;https://docs.rs/arigato&quot;&gt;docs.rs&lt;/a&gt; and
  2215. &lt;a href=&quot;https://crates.io/crates/arigato&quot;&gt;crates.io&lt;/a&gt;.&lt;/p&gt;
  2216. &lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-rust&quot; data-lang=&quot;rust&quot;&gt;&lt;span style=&quot;color: #e6db74;&quot;&gt;/// Simplified version of the arigato File trait; this isn't actually
  2217. &lt;/span&gt;&lt;span style=&quot;color: #e6db74;&quot;&gt;/// the same trait; there's some small cosmetic differences. The
  2218. &lt;/span&gt;&lt;span style=&quot;color: #e6db74;&quot;&gt;/// actual trait can be found at:
  2219. &lt;/span&gt;&lt;span style=&quot;color: #e6db74;&quot;&gt;///
  2220. &lt;/span&gt;&lt;span style=&quot;color: #e6db74;&quot;&gt;/// https://docs.rs/arigato/latest/arigato/server/trait.File.html
  2221. &lt;/span&gt;&lt;span style=&quot;color: #e6db74;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #66d9ef;&quot;&gt;trait&lt;/span&gt; File {
  2222. &lt;span style=&quot;color: #e6db74;&quot;&gt;/// OpenFile is the type returned by this File via an Open call.
  2223. &lt;/span&gt;&lt;span style=&quot;color: #e6db74;&quot;&gt;&lt;/span&gt; &lt;span style=&quot;color: #66d9ef;&quot;&gt;type&lt;/span&gt; &lt;span style=&quot;color: #a6e22e;&quot;&gt;OpenFile&lt;/span&gt;: &lt;span style=&quot;color: #a6e22e;&quot;&gt;OpenFile&lt;/span&gt;;
  2224. &lt;span style=&quot;color: #e6db74;&quot;&gt;/// Return the 9p Qid for this file. A file is the same if the Qid is
  2225. &lt;/span&gt;&lt;span style=&quot;color: #e6db74;&quot;&gt;&lt;/span&gt; &lt;span style=&quot;color: #e6db74;&quot;&gt;/// the same. A Qid contains information about the mode of the file,
  2226. &lt;/span&gt;&lt;span style=&quot;color: #e6db74;&quot;&gt;&lt;/span&gt; &lt;span style=&quot;color: #e6db74;&quot;&gt;/// version of the file, and a unique 64 bit identifier.
  2227. &lt;/span&gt;&lt;span style=&quot;color: #e6db74;&quot;&gt;&lt;/span&gt; &lt;span style=&quot;color: #66d9ef;&quot;&gt;fn&lt;/span&gt; &lt;span style=&quot;color: #a6e22e;&quot;&gt;qid&lt;/span&gt;(&lt;span style=&quot;color: #f92672;&quot;&gt;&amp;amp;&lt;/span&gt;self) -&amp;gt; &lt;span style=&quot;color: #a6e22e;&quot;&gt;Qid&lt;/span&gt;;
  2228. &lt;span style=&quot;color: #e6db74;&quot;&gt;/// Construct the 9p Stat struct with metadata about a file.
  2229. &lt;/span&gt;&lt;span style=&quot;color: #e6db74;&quot;&gt;&lt;/span&gt; async &lt;span style=&quot;color: #66d9ef;&quot;&gt;fn&lt;/span&gt; &lt;span style=&quot;color: #a6e22e;&quot;&gt;stat&lt;/span&gt;(&lt;span style=&quot;color: #f92672;&quot;&gt;&amp;amp;&lt;/span&gt;self) -&amp;gt; &lt;span style=&quot;color: #a6e22e;&quot;&gt;FileResult&lt;/span&gt;&lt;span style=&quot;color: #f92672;&quot;&gt;&amp;lt;&lt;/span&gt;Stat&lt;span style=&quot;color: #f92672;&quot;&gt;&amp;gt;&lt;/span&gt;;
  2230. &lt;span style=&quot;color: #e6db74;&quot;&gt;/// Attempt to update the file metadata.
  2231. &lt;/span&gt;&lt;span style=&quot;color: #e6db74;&quot;&gt;&lt;/span&gt; async &lt;span style=&quot;color: #66d9ef;&quot;&gt;fn&lt;/span&gt; &lt;span style=&quot;color: #a6e22e;&quot;&gt;wstat&lt;/span&gt;(&lt;span style=&quot;color: #f92672;&quot;&gt;&amp;amp;&lt;/span&gt;&lt;span style=&quot;color: #66d9ef;&quot;&gt;mut&lt;/span&gt; self, s: &lt;span style=&quot;color: #66d9ef;&quot;&gt;&amp;amp;&lt;/span&gt;&lt;span style=&quot;color: #a6e22e;&quot;&gt;Stat&lt;/span&gt;) -&amp;gt; &lt;span style=&quot;color: #a6e22e;&quot;&gt;FileResult&lt;/span&gt;&lt;span style=&quot;color: #f92672;&quot;&gt;&amp;lt;&lt;/span&gt;()&lt;span style=&quot;color: #f92672;&quot;&gt;&amp;gt;&lt;/span&gt;;
  2232. &lt;span style=&quot;color: #e6db74;&quot;&gt;/// Traverse the filesystem tree.
  2233. &lt;/span&gt;&lt;span style=&quot;color: #e6db74;&quot;&gt;&lt;/span&gt; async &lt;span style=&quot;color: #66d9ef;&quot;&gt;fn&lt;/span&gt; &lt;span style=&quot;color: #a6e22e;&quot;&gt;walk&lt;/span&gt;(&lt;span style=&quot;color: #f92672;&quot;&gt;&amp;amp;&lt;/span&gt;self, path: &lt;span style=&quot;color: #66d9ef;&quot;&gt;&amp;amp;&lt;/span&gt;[&lt;span style=&quot;color: #f92672;&quot;&gt;&amp;amp;&lt;/span&gt;&lt;span style=&quot;color: #66d9ef;&quot;&gt;str&lt;/span&gt;]) -&amp;gt; &lt;span style=&quot;color: #a6e22e;&quot;&gt;FileResult&lt;/span&gt;&lt;span style=&quot;color: #f92672;&quot;&gt;&amp;lt;&lt;/span&gt;(Option&lt;span style=&quot;color: #f92672;&quot;&gt;&amp;lt;&lt;/span&gt;Self&lt;span style=&quot;color: #f92672;&quot;&gt;&amp;gt;&lt;/span&gt;, Vec&lt;span style=&quot;color: #f92672;&quot;&gt;&amp;lt;&lt;/span&gt;Self&lt;span style=&quot;color: #f92672;&quot;&gt;&amp;gt;&lt;/span&gt;)&lt;span style=&quot;color: #f92672;&quot;&gt;&amp;gt;&lt;/span&gt;;
  2234. &lt;span style=&quot;color: #e6db74;&quot;&gt;/// Request that a file's reference be removed from the file tree.
  2235. &lt;/span&gt;&lt;span style=&quot;color: #e6db74;&quot;&gt;&lt;/span&gt; async &lt;span style=&quot;color: #66d9ef;&quot;&gt;fn&lt;/span&gt; &lt;span style=&quot;color: #a6e22e;&quot;&gt;unlink&lt;/span&gt;(&lt;span style=&quot;color: #f92672;&quot;&gt;&amp;amp;&lt;/span&gt;&lt;span style=&quot;color: #66d9ef;&quot;&gt;mut&lt;/span&gt; self) -&amp;gt; &lt;span style=&quot;color: #a6e22e;&quot;&gt;FileResult&lt;/span&gt;&lt;span style=&quot;color: #f92672;&quot;&gt;&amp;lt;&lt;/span&gt;()&lt;span style=&quot;color: #f92672;&quot;&gt;&amp;gt;&lt;/span&gt;;
  2236. &lt;span style=&quot;color: #e6db74;&quot;&gt;/// Create a file at a specific location in the file tree.
  2237. &lt;/span&gt;&lt;span style=&quot;color: #e6db74;&quot;&gt;&lt;/span&gt; async &lt;span style=&quot;color: #66d9ef;&quot;&gt;fn&lt;/span&gt; &lt;span style=&quot;color: #a6e22e;&quot;&gt;create&lt;/span&gt;(
  2238. &lt;span style=&quot;color: #f92672;&quot;&gt;&amp;amp;&lt;/span&gt;&lt;span style=&quot;color: #66d9ef;&quot;&gt;mut&lt;/span&gt; self,
  2239. name: &lt;span style=&quot;color: #66d9ef;&quot;&gt;&amp;amp;&lt;/span&gt;&lt;span style=&quot;color: #66d9ef;&quot;&gt;str&lt;/span&gt;,
  2240. perm: &lt;span style=&quot;color: #66d9ef;&quot;&gt;u16&lt;/span&gt;,
  2241. ty: &lt;span style=&quot;color: #a6e22e;&quot;&gt;FileType&lt;/span&gt;,
  2242. mode: &lt;span style=&quot;color: #a6e22e;&quot;&gt;OpenMode&lt;/span&gt;,
  2243. extension: &lt;span style=&quot;color: #66d9ef;&quot;&gt;&amp;amp;&lt;/span&gt;&lt;span style=&quot;color: #66d9ef;&quot;&gt;str&lt;/span&gt;,
  2244. ) -&amp;gt; &lt;span style=&quot;color: #a6e22e;&quot;&gt;FileResult&lt;/span&gt;&lt;span style=&quot;color: #f92672;&quot;&gt;&amp;lt;&lt;/span&gt;Self&lt;span style=&quot;color: #f92672;&quot;&gt;&amp;gt;&lt;/span&gt;;
  2245. &lt;span style=&quot;color: #e6db74;&quot;&gt;/// Open the File, returning a handle to the open file, which handles
  2246. &lt;/span&gt;&lt;span style=&quot;color: #e6db74;&quot;&gt;&lt;/span&gt; &lt;span style=&quot;color: #e6db74;&quot;&gt;/// file i/o. This is split into a second type since it is genuinely
  2247. &lt;/span&gt;&lt;span style=&quot;color: #e6db74;&quot;&gt;&lt;/span&gt; &lt;span style=&quot;color: #e6db74;&quot;&gt;/// unrelated -- and the fact that a file is Open or Closed can be
  2248. &lt;/span&gt;&lt;span style=&quot;color: #e6db74;&quot;&gt;&lt;/span&gt; &lt;span style=&quot;color: #e6db74;&quot;&gt;/// handled by the `arigato` server for us.
  2249. &lt;/span&gt;&lt;span style=&quot;color: #e6db74;&quot;&gt;&lt;/span&gt; async &lt;span style=&quot;color: #66d9ef;&quot;&gt;fn&lt;/span&gt; &lt;span style=&quot;color: #a6e22e;&quot;&gt;open&lt;/span&gt;(&lt;span style=&quot;color: #f92672;&quot;&gt;&amp;amp;&lt;/span&gt;&lt;span style=&quot;color: #66d9ef;&quot;&gt;mut&lt;/span&gt; self, mode: &lt;span style=&quot;color: #a6e22e;&quot;&gt;OpenMode&lt;/span&gt;) -&amp;gt; &lt;span style=&quot;color: #a6e22e;&quot;&gt;FileResult&lt;/span&gt;&lt;span style=&quot;color: #f92672;&quot;&gt;&amp;lt;&lt;/span&gt;Self::OpenFile&lt;span style=&quot;color: #f92672;&quot;&gt;&amp;gt;&lt;/span&gt;;
  2250. }
  2251. &lt;span style=&quot;color: #e6db74;&quot;&gt;/// Simplified version of the arigato OpenFile trait; this isn't actually
  2252. &lt;/span&gt;&lt;span style=&quot;color: #e6db74;&quot;&gt;/// the same trait; there's some small cosmetic differences. The
  2253. &lt;/span&gt;&lt;span style=&quot;color: #e6db74;&quot;&gt;/// actual trait can be found at:
  2254. &lt;/span&gt;&lt;span style=&quot;color: #e6db74;&quot;&gt;///
  2255. &lt;/span&gt;&lt;span style=&quot;color: #e6db74;&quot;&gt;/// https://docs.rs/arigato/latest/arigato/server/trait.OpenFile.html
  2256. &lt;/span&gt;&lt;span style=&quot;color: #e6db74;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #66d9ef;&quot;&gt;trait&lt;/span&gt; OpenFile {
  2257. &lt;span style=&quot;color: #e6db74;&quot;&gt;/// iounit to report for this file. The iounit reported is used for Read
  2258. &lt;/span&gt;&lt;span style=&quot;color: #e6db74;&quot;&gt;&lt;/span&gt; &lt;span style=&quot;color: #e6db74;&quot;&gt;/// or Write operations to signal, if non-zero, the maximum size that is
  2259. &lt;/span&gt;&lt;span style=&quot;color: #e6db74;&quot;&gt;&lt;/span&gt; &lt;span style=&quot;color: #e6db74;&quot;&gt;/// guaranteed to be transferred atomically.
  2260. &lt;/span&gt;&lt;span style=&quot;color: #e6db74;&quot;&gt;&lt;/span&gt; &lt;span style=&quot;color: #66d9ef;&quot;&gt;fn&lt;/span&gt; &lt;span style=&quot;color: #a6e22e;&quot;&gt;iounit&lt;/span&gt;(&lt;span style=&quot;color: #f92672;&quot;&gt;&amp;amp;&lt;/span&gt;self) -&amp;gt; &lt;span style=&quot;color: #66d9ef;&quot;&gt;u32&lt;/span&gt;;
  2261. &lt;span style=&quot;color: #e6db74;&quot;&gt;/// Read some number of bytes up to `buf.len()` from the provided
  2262. &lt;/span&gt;&lt;span style=&quot;color: #e6db74;&quot;&gt;&lt;/span&gt; &lt;span style=&quot;color: #e6db74;&quot;&gt;/// `offset` of the underlying file. The number of bytes read is
  2263. &lt;/span&gt;&lt;span style=&quot;color: #e6db74;&quot;&gt;&lt;/span&gt; &lt;span style=&quot;color: #e6db74;&quot;&gt;/// returned.
  2264. &lt;/span&gt;&lt;span style=&quot;color: #e6db74;&quot;&gt;&lt;/span&gt; async &lt;span style=&quot;color: #66d9ef;&quot;&gt;fn&lt;/span&gt; &lt;span style=&quot;color: #a6e22e;&quot;&gt;read_at&lt;/span&gt;(
  2265. &lt;span style=&quot;color: #f92672;&quot;&gt;&amp;amp;&lt;/span&gt;&lt;span style=&quot;color: #66d9ef;&quot;&gt;mut&lt;/span&gt; self,
  2266. buf: &lt;span style=&quot;color: #66d9ef;&quot;&gt;&amp;amp;&lt;/span&gt;&lt;span style=&quot;color: #a6e22e;&quot;&gt;mut&lt;/span&gt; [&lt;span style=&quot;color: #66d9ef;&quot;&gt;u8&lt;/span&gt;],
  2267. offset: &lt;span style=&quot;color: #66d9ef;&quot;&gt;u64&lt;/span&gt;,
  2268. ) -&amp;gt; &lt;span style=&quot;color: #a6e22e;&quot;&gt;FileResult&lt;/span&gt;&lt;span style=&quot;color: #f92672;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #66d9ef;&quot;&gt;u32&lt;/span&gt;&lt;span style=&quot;color: #f92672;&quot;&gt;&amp;gt;&lt;/span&gt;;
  2269. &lt;span style=&quot;color: #e6db74;&quot;&gt;/// Write some number of bytes up to `buf.len()` from the provided
  2270. &lt;/span&gt;&lt;span style=&quot;color: #e6db74;&quot;&gt;&lt;/span&gt; &lt;span style=&quot;color: #e6db74;&quot;&gt;/// `offset` of the underlying file. The number of bytes written
  2271. &lt;/span&gt;&lt;span style=&quot;color: #e6db74;&quot;&gt;&lt;/span&gt; &lt;span style=&quot;color: #e6db74;&quot;&gt;/// is returned.
  2272. &lt;/span&gt;&lt;span style=&quot;color: #e6db74;&quot;&gt;&lt;/span&gt; &lt;span style=&quot;color: #66d9ef;&quot;&gt;fn&lt;/span&gt; &lt;span style=&quot;color: #a6e22e;&quot;&gt;write_at&lt;/span&gt;(
  2273. &lt;span style=&quot;color: #f92672;&quot;&gt;&amp;amp;&lt;/span&gt;&lt;span style=&quot;color: #66d9ef;&quot;&gt;mut&lt;/span&gt; self,
  2274. buf: &lt;span style=&quot;color: #66d9ef;&quot;&gt;&amp;amp;&lt;/span&gt;&lt;span style=&quot;color: #a6e22e;&quot;&gt;mut&lt;/span&gt; [&lt;span style=&quot;color: #66d9ef;&quot;&gt;u8&lt;/span&gt;],
  2275. offset: &lt;span style=&quot;color: #66d9ef;&quot;&gt;u64&lt;/span&gt;,
  2276. ) -&amp;gt; &lt;span style=&quot;color: #a6e22e;&quot;&gt;FileResult&lt;/span&gt;&lt;span style=&quot;color: #f92672;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #66d9ef;&quot;&gt;u32&lt;/span&gt;&lt;span style=&quot;color: #f92672;&quot;&gt;&amp;gt;&lt;/span&gt;;
  2277. }
  2278. &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h1 id=&quot;thanks-decade-ago-paultag&quot;&gt;Thanks, decade ago paultag!&lt;/h1&gt;
  2279. &lt;aside class=&quot;left&quot;&gt;
  2280. If this isn't my record for longest idea-to-wip-project time, it's close.
  2281. &lt;/aside&gt;
  2282. &lt;p&gt;Let’s do it! Let’s use &lt;code&gt;arigato&lt;/code&gt; to implement a &lt;code&gt;9p&lt;/code&gt; filesystem we’ll call
  2283. &lt;a href=&quot;https://github.com/paultag/debugfs&quot;&gt;debugfs&lt;/a&gt; that will serve all the debug
  2284. files shipped according to the &lt;code&gt;Packages&lt;/code&gt; metadata from the &lt;code&gt;apt&lt;/code&gt; archive. We’ll
  2285. fetch the &lt;code&gt;Packages&lt;/code&gt; file and construct a filesystem based on the reported
  2286. &lt;code&gt;Build-Id&lt;/code&gt; entries. For those who don’t know much about how an &lt;code&gt;apt&lt;/code&gt; repo
  2287. works, here’s the 2-second crash course on what we’re doing. The first is to
  2288. fetch the &lt;code&gt;Packages&lt;/code&gt; file, which is specific to a binary architecture (such as
  2289. &lt;code&gt;amd64&lt;/code&gt;, &lt;code&gt;arm64&lt;/code&gt; or &lt;code&gt;riscv64&lt;/code&gt;). That &lt;code&gt;architecture&lt;/code&gt; is specific to a
  2290. &lt;code&gt;component&lt;/code&gt; (such as &lt;code&gt;main&lt;/code&gt;, &lt;code&gt;contrib&lt;/code&gt; or &lt;code&gt;non-free&lt;/code&gt;). That &lt;code&gt;component&lt;/code&gt; is
  2291. specific to a &lt;code&gt;suite&lt;/code&gt;, such as &lt;code&gt;stable&lt;/code&gt;, &lt;code&gt;unstable&lt;/code&gt; or any of its aliases
  2292. (&lt;code&gt;bullseye&lt;/code&gt;, &lt;code&gt;bookworm&lt;/code&gt;, etc). Let’s take a look at the &lt;code&gt;Packages.xz&lt;/code&gt; file for
  2293. the &lt;code&gt;unstable-debug&lt;/code&gt; &lt;code&gt;suite&lt;/code&gt;, &lt;code&gt;main&lt;/code&gt; &lt;code&gt;component&lt;/code&gt;, for all &lt;code&gt;amd64&lt;/code&gt; binaries.&lt;/p&gt;
  2294. &lt;pre&gt;&lt;code&gt;$ curl \
  2295. https://deb.debian.org/debian-debug/dists/unstable-debug/main/binary-amd64/Packages.xz \
  2296. | unxz
  2297. &lt;/code&gt;&lt;/pre&gt;&lt;p&gt;This will return the Debian-style
  2298. &lt;a href=&quot;https://man7.org/linux/man-pages/man5/deb822.5.html&quot;&gt;rfc2822-like&lt;/a&gt; headers,
  2299. which is an export of the metadata contained inside each &lt;code&gt;.deb&lt;/code&gt; file which
  2300. &lt;code&gt;apt&lt;/code&gt; (or other tools that can use the &lt;code&gt;apt&lt;/code&gt; repo format) use to fetch
  2301. information about debs. Let’s take a look at the debug headers for the
  2302. &lt;code&gt;netlabel-tools&lt;/code&gt; package in &lt;code&gt;unstable&lt;/code&gt; – which is a package named
  2303. &lt;code&gt;netlabel-tools-dbgsym&lt;/code&gt; in &lt;code&gt;unstable-debug&lt;/code&gt;.&lt;/p&gt;
  2304. &lt;pre&gt;&lt;code&gt;Package: netlabel-tools-dbgsym
  2305. Source: netlabel-tools (0.30.0-1)
  2306. Version: 0.30.0-1+b1
  2307. Installed-Size: 79
  2308. Maintainer: Paul Tagliamonte &amp;lt;paultag@debian.org&amp;gt;
  2309. Architecture: amd64
  2310. Depends: netlabel-tools (= 0.30.0-1+b1)
  2311. Description: debug symbols for netlabel-tools
  2312. Auto-Built-Package: debug-symbols
  2313. Build-Ids: e59f81f6573dadd5d95a6e4474d9388ab2777e2a
  2314. Description-md5: a0e587a0cf730c88a4010f78562e6db7
  2315. Section: debug
  2316. Priority: optional
  2317. Filename: pool/main/n/netlabel-tools/netlabel-tools-dbgsym_0.30.0-1+b1_amd64.deb
  2318. Size: 62776
  2319. SHA256: 0e9bdb087617f0350995a84fb9aa84541bc4df45c6cd717f2157aa83711d0c60
  2320. &lt;/code&gt;&lt;/pre&gt;&lt;p&gt;So here, we can parse the package headers in the &lt;code&gt;Packages.xz&lt;/code&gt; file, and store,
  2321. for each &lt;code&gt;Build-Id&lt;/code&gt;, the &lt;code&gt;Filename&lt;/code&gt; where we can fetch the &lt;code&gt;.deb&lt;/code&gt; at. Each
  2322. &lt;code&gt;.deb&lt;/code&gt; contains a number of files – but we’re only really interested in the
  2323. files inside the &lt;code&gt;.deb&lt;/code&gt; located at or under &lt;code&gt;/usr/lib/debug/.build-id/&lt;/code&gt;,
  2324. which you can find in &lt;code&gt;debugfs&lt;/code&gt; under
  2325. &lt;a href=&quot;https://github.com/paultag/debugfs/blob/main/src/deb822.rs&quot;&gt;rfc822.rs&lt;/a&gt;. It’s
  2326. crude, and very single-purpose, but I’m feeling a bit lazy.&lt;/p&gt;
  2327. &lt;h1 id=&quot;who-needs-dpkg&quot;&gt;Who needs dpkg?!&lt;/h1&gt;
  2328. &lt;aside class=&quot;right&quot;&gt;
  2329. Hilariously, the fourth? fifth? non-serious time (second serious time)
  2330. I've had to do this for a new language.
  2331. &lt;/aside&gt;
  2332. &lt;p&gt;For folks who haven’t seen it yet, a &lt;code&gt;.deb&lt;/code&gt; file is a special type of
  2333. &lt;a href=&quot;https://en.wikipedia.org/wiki/Ar_(Unix)&quot;&gt;.ar&lt;/a&gt; file, that contains (usually)
  2334. three files inside – &lt;code&gt;debian-binary&lt;/code&gt;, &lt;code&gt;control.tar.xz&lt;/code&gt; and &lt;code&gt;data.tar.xz&lt;/code&gt;.
  2335. The core of an &lt;code&gt;.ar&lt;/code&gt; file is a fixed size (&lt;code&gt;60 byte&lt;/code&gt;) entry header,
  2336. followed by the specified &lt;code&gt;size&lt;/code&gt; number of bytes.&lt;/p&gt;
  2337. &lt;pre&gt;&lt;code&gt;[8 byte .ar file magic]
  2338. [60 byte entry header]
  2339. [N bytes of data]
  2340. [60 byte entry header]
  2341. [N bytes of data]
  2342. [60 byte entry header]
  2343. [N bytes of data]
  2344. ...
  2345. &lt;/code&gt;&lt;/pre&gt;&lt;aside class=&quot;left&quot;&gt;
  2346. I can't believe it's already been over a decade since my NM process,
  2347. and nearly 16 years since I became an Ubuntu member.
  2348. &lt;/aside&gt;
  2349. &lt;p&gt;First up was to implement a basic &lt;code&gt;ar&lt;/code&gt; parser in
  2350. &lt;a href=&quot;https://github.com/paultag/debugfs/blob/main/src/ar.rs&quot;&gt;ar.rs&lt;/a&gt;. Before we get
  2351. into using it to parse a deb, as a quick diversion, let’s break apart a &lt;code&gt;.deb&lt;/code&gt;
  2352. file by hand – something that is a bit of a rite of passage (or at least it
  2353. used to be? I’m getting old) during the Debian nm (new member) process, to take
  2354. a look at where exactly the &lt;code&gt;.debug&lt;/code&gt; file lives inside the &lt;code&gt;.deb&lt;/code&gt; file.&lt;/p&gt;
  2355. &lt;pre&gt;&lt;code&gt;$ ar x netlabel-tools-dbgsym_0.30.0-1+b1_amd64.deb
  2356. $ ls
  2357. control.tar.xz debian-binary
  2358. data.tar.xz netlabel-tools-dbgsym_0.30.0-1+b1_amd64.deb
  2359. $ tar --list -f data.tar.xz | grep '.debug$'
  2360. ./usr/lib/debug/.build-id/e5/9f81f6573dadd5d95a6e4474d9388ab2777e2a.debug
  2361. &lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Since we know quite a bit about the structure of a &lt;code&gt;.deb&lt;/code&gt; file, and I had to
  2362. implement support from scratch anyway, I opted to implement a (very!) basic
  2363. debfile parser using HTTP Range requests. HTTP Range requests, if supported by
  2364. the server (denoted by a &lt;code&gt;accept-ranges: bytes&lt;/code&gt; HTTP header in response to an
  2365. HTTP &lt;code&gt;HEAD&lt;/code&gt; request to that file) means that we can add a header such as
  2366. &lt;code&gt;range: bytes=8-68&lt;/code&gt; to specifically request that the returned &lt;code&gt;GET&lt;/code&gt; body be the
  2367. byte range provided (in the above case, the bytes starting from byte offset &lt;code&gt;8&lt;/code&gt;
  2368. until byte offset &lt;code&gt;68&lt;/code&gt;). This means we can fetch just the ar file entry from
  2369. the &lt;code&gt;.deb&lt;/code&gt; file until we get to the file inside the &lt;code&gt;.deb&lt;/code&gt; we are interested in
  2370. (in our case, the &lt;code&gt;data.tar.xz&lt;/code&gt; file) – at which point we can request the body
  2371. of that file with a final &lt;code&gt;range&lt;/code&gt; request. I wound up writing a struct to
  2372. handle a &lt;code&gt;read_at&lt;/code&gt;-style API surface in
  2373. &lt;a href=&quot;https://github.com/paultag/debugfs/blob/main/src/hrange.rs&quot;&gt;hrange.rs&lt;/a&gt;, which
  2374. we can pair with &lt;code&gt;ar.rs&lt;/code&gt; above and start to find our data in the &lt;code&gt;.deb&lt;/code&gt; remotely
  2375. without downloading and unpacking the &lt;code&gt;.deb&lt;/code&gt; at all.&lt;/p&gt;
  2376. &lt;aside class=&quot;right&quot;&gt;
  2377. I really like
  2378. &lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/HTTP/Range_requests&quot;&gt;HTTP Range&lt;/a&gt;
  2379. requests a lot.
  2380. &lt;/aside&gt;
  2381. &lt;aside class=&quot;left&quot;&gt;
  2382. I did some stats to figure out what compression dbgsym packages use these
  2383. days; my LAN debug mirror contains 113459 xz compressed tarfiles, and 9
  2384. gzip compressed tarfiles at the time of writing.
  2385. &lt;/aside&gt;
  2386. &lt;p&gt;After we have the body of the &lt;code&gt;data.tar.xz&lt;/code&gt; coming back through the HTTP
  2387. response, we get to pipe it through an &lt;code&gt;xz&lt;/code&gt; decompressor (this kinda sucked in
  2388. Rust, since a &lt;code&gt;tokio&lt;/code&gt; &lt;code&gt;AsyncRead&lt;/code&gt; is not the same as an &lt;code&gt;http&lt;/code&gt; Body response is
  2389. not the same as &lt;code&gt;std::io::Read&lt;/code&gt;, is not the same as an async (or sync)
  2390. &lt;code&gt;Iterator&lt;/code&gt; is not the same as what the &lt;code&gt;xz2&lt;/code&gt; crate expects; leading me to read
  2391. blocks of data to a buffer and stuff them through the decoder by looping over
  2392. the buffer for each &lt;code&gt;lzma2&lt;/code&gt; packet in a loop), and &lt;code&gt;tar&lt;/code&gt;file parser (similarly
  2393. troublesome). From there we get to iterate over all entries in the tarfile,
  2394. stopping when we reach our file of interest. Since we can’t seek, but &lt;code&gt;gdb&lt;/code&gt;
  2395. needs to, we’ll pull it out of the stream into a &lt;code&gt;Cursor&amp;lt;Vec&amp;lt;u8&amp;gt;&amp;gt;&lt;/code&gt; in-memory
  2396. and pass a handle to it back to the user.&lt;/p&gt;
  2397. &lt;p&gt;From here on out its a matter of
  2398. &lt;a href=&quot;https://github.com/paultag/debugfs/blob/main/src/debugfs.rs&quot;&gt;gluing together a File traited struct&lt;/a&gt;
  2399. in &lt;code&gt;debugfs&lt;/code&gt;, and serving the filesystem over TCP using &lt;code&gt;arigato&lt;/code&gt;. Done
  2400. deal!&lt;/p&gt;
  2401. &lt;h1 id=&quot;a-quick-diversion-about-compression&quot;&gt;A quick diversion about compression&lt;/h1&gt;
  2402. &lt;p&gt;I was originally hoping to avoid transferring the whole tar file over the
  2403. network (and therefore also reading the whole debug file into ram, which
  2404. objectively sucks), but quickly hit issues with figuring out a way around
  2405. seeking around an &lt;code&gt;xz&lt;/code&gt; file. What’s interesting is &lt;code&gt;xz&lt;/code&gt; has a great primitive
  2406. to solve this specific problem (specifically, use a block size that allows you
  2407. to seek to the block as close to your desired seek position just before it,
  2408. only discarding at most &lt;code&gt;block size - 1&lt;/code&gt; bytes), but &lt;code&gt;data.tar.xz&lt;/code&gt; files
  2409. generated by &lt;code&gt;dpkg&lt;/code&gt; appear to have a single mega-huge block for the whole file.
  2410. I don’t know why I would have expected any different, in retrospect. That means
  2411. that this now devolves into the base case of “How do I seek around an &lt;code&gt;lzma2&lt;/code&gt;
  2412. compressed data stream”; which is a lot more complex of a question.&lt;/p&gt;
  2413. &lt;aside class=&quot;left&quot;&gt;
  2414. After going through a lot of this, I realized just how complex
  2415. the xz format is -- it's a lot more than just lzma2!
  2416. &lt;/aside&gt;
  2417. &lt;p&gt;Thankfully, notoriously brilliant &lt;a href=&quot;https://github.com/tianon&quot;&gt;tianon&lt;/a&gt; was
  2418. nice enough to introduce me to &lt;a href=&quot;https://github.com/jonjohnsonjr&quot;&gt;Jon Johnson&lt;/a&gt;
  2419. who did something super similar – adapted a technique to seek inside a
  2420. compressed &lt;code&gt;gzip&lt;/code&gt; file, which lets his service
  2421. &lt;a href=&quot;https://oci.dag.dev/?image=debian%3Aunstable&quot;&gt;oci.dag.dev&lt;/a&gt;
  2422. seek through Docker container images super fast based on some prior work
  2423. such as &lt;code&gt;soci-snapshotter&lt;/code&gt;, &lt;code&gt;gztool&lt;/code&gt;, and
  2424. &lt;a href=&quot;https://github.com/madler/zlib/blob/0f51fb4933fc9ce18199cb2554dacea8033e7fd3/examples/zran.c&quot;&gt;zran.c&lt;/a&gt;.
  2425. He also pulled this party trick off for apk based distros
  2426. over at &lt;a href=&quot;https://apk.dag.dev/&quot;&gt;apk.dag.dev&lt;/a&gt;, which seems apropos.
  2427. Jon was nice enough to publish a lot of his work on this specifically in a
  2428. central place under the name “&lt;a href=&quot;https://github.com/jonjohnsonjr/targz&quot;&gt;targz&lt;/a&gt;”
  2429. on his GitHub, which has been a ton of fun to read through.&lt;/p&gt;
  2430. &lt;p&gt;The gist is that, by dumping the decompressor’s state (window of previous
  2431. bytes, in-memory data derived from the last &lt;code&gt;N-1 bytes&lt;/code&gt;) at specific
  2432. “checkpoints” along with the compressed data stream offset in bytes and
  2433. decompressed offset in bytes, one can seek to that checkpoint in the compressed
  2434. stream and pick up where you left off – creating a similar “block” mechanism
  2435. against the wishes of gzip. It means you’d need to do an &lt;code&gt;O(n)&lt;/code&gt; run over the
  2436. file, but every request after that will be sped up according to the number
  2437. of checkpoints you’ve taken.&lt;/p&gt;
  2438. &lt;p&gt;Given the complexity of &lt;code&gt;xz&lt;/code&gt; and &lt;code&gt;lzma2&lt;/code&gt;, I don’t think this is possible
  2439. for me at the moment – especially given most of the files I’ll be requesting
  2440. will not be loaded from again – especially when I can “just” cache the debug
  2441. header by &lt;code&gt;Build-Id&lt;/code&gt;. I want to implement this (because I’m generally curious
  2442. and Jon has a way of getting someone excited about compression schemes, which
  2443. is not a sentence I thought I’d ever say out loud), but for now I’m going to
  2444. move on without this optimization. Such a shame, since it kills a lot of the
  2445. work that went into seeking around the &lt;code&gt;.deb&lt;/code&gt; file in the first place, given
  2446. the &lt;code&gt;debian-binary&lt;/code&gt; and &lt;code&gt;control.tar.gz&lt;/code&gt; members are so small.&lt;/p&gt;
  2447. &lt;h1 id=&quot;the-good&quot;&gt;The Good&lt;/h1&gt;
  2448. &lt;p&gt;First, the good news right? It works! That’s pretty cool. I’m positive
  2449. my younger self would be amused and happy to see this working; as is
  2450. current day paultag. Let’s take &lt;code&gt;debugfs&lt;/code&gt; out for a spin! First, we need
  2451. to mount the filesystem. It even works on an entirely unmodified, stock
  2452. Debian box on my LAN, which is &lt;em&gt;huge&lt;/em&gt;. Let’s take it for a spin:&lt;/p&gt;
  2453. &lt;pre&gt;&lt;code&gt;$ mount \
  2454. -t 9p \
  2455. -o trans=tcp,version=9p2000.u,aname=unstable-debug \
  2456. 192.168.0.2 \
  2457. /usr/lib/debug/.build-id/
  2458. &lt;/code&gt;&lt;/pre&gt;&lt;p&gt;And, let’s prove to ourselves that this actually mounted before we go
  2459. trying to use it:&lt;/p&gt;
  2460. &lt;pre&gt;&lt;code&gt;$ mount | grep build-id
  2461. 192.168.0.2 on /usr/lib/debug/.build-id type 9p (rw,relatime,aname=unstable-debug,access=user,trans=tcp,version=9p2000.u,port=564)
  2462. &lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Slick. We’ve got an open connection to the server, where our host
  2463. will keep a connection alive as root, attached to the filesystem provided
  2464. in &lt;code&gt;aname&lt;/code&gt;. Let’s take a look at it.&lt;/p&gt;
  2465. &lt;pre&gt;&lt;code&gt;$ ls /usr/lib/debug/.build-id/
  2466. 00 0d 1a 27 34 41 4e 5b 68 75 82 8E 9b a8 b5 c2 CE db e7 f3
  2467. 01 0e 1b 28 35 42 4f 5c 69 76 83 8f 9c a9 b6 c3 cf dc E7 f4
  2468. 02 0f 1c 29 36 43 50 5d 6a 77 84 90 9d aa b7 c4 d0 dd e8 f5
  2469. 03 10 1d 2a 37 44 51 5e 6b 78 85 91 9e ab b8 c5 d1 de e9 f6
  2470. 04 11 1e 2b 38 45 52 5f 6c 79 86 92 9f ac b9 c6 d2 df ea f7
  2471. 05 12 1f 2c 39 46 53 60 6d 7a 87 93 a0 ad ba c7 d3 e0 eb f8
  2472. 06 13 20 2d 3a 47 54 61 6e 7b 88 94 a1 ae bb c8 d4 e1 ec f9
  2473. 07 14 21 2e 3b 48 55 62 6f 7c 89 95 a2 af bc c9 d5 e2 ed fa
  2474. 08 15 22 2f 3c 49 56 63 70 7d 8a 96 a3 b0 bd ca d6 e3 ee fb
  2475. 09 16 23 30 3d 4a 57 64 71 7e 8b 97 a4 b1 be cb d7 e4 ef fc
  2476. 0a 17 24 31 3e 4b 58 65 72 7f 8c 98 a5 b2 bf cc d8 E4 f0 fd
  2477. 0b 18 25 32 3f 4c 59 66 73 80 8d 99 a6 b3 c0 cd d9 e5 f1 fe
  2478. 0c 19 26 33 40 4d 5a 67 74 81 8e 9a a7 b4 c1 ce da e6 f2 ff
  2479. &lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Outstanding. Let’s try using &lt;code&gt;gdb&lt;/code&gt; to debug a binary that was provided by
  2480. the &lt;code&gt;Debian&lt;/code&gt; archive, and see if it’ll load the ELF by &lt;code&gt;build-id&lt;/code&gt; from the
  2481. right &lt;code&gt;.deb&lt;/code&gt; in the &lt;code&gt;unstable-debug&lt;/code&gt; suite:&lt;/p&gt;
  2482. &lt;pre&gt;&lt;code&gt;$ gdb -q /usr/sbin/netlabelctl
  2483. Reading symbols from /usr/sbin/netlabelctl...
  2484. Reading symbols from /usr/lib/debug/.build-id/e5/9f81f6573dadd5d95a6e4474d9388ab2777e2a.debug...
  2485. (gdb)
  2486. &lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Yes! Yes it will!&lt;/p&gt;
  2487. &lt;pre&gt;&lt;code&gt;$ file /usr/lib/debug/.build-id/e5/9f81f6573dadd5d95a6e4474d9388ab2777e2a.debug
  2488. /usr/lib/debug/.build-id/e5/9f81f6573dadd5d95a6e4474d9388ab2777e2a.debug: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter *empty*, BuildID[sha1]=e59f81f6573dadd5d95a6e4474d9388ab2777e2a, for GNU/Linux 3.2.0, with debug_info, not stripped
  2489. &lt;/code&gt;&lt;/pre&gt;&lt;h1 id=&quot;the-bad&quot;&gt;The Bad&lt;/h1&gt;
  2490. &lt;p&gt;Linux’s support for &lt;code&gt;9p&lt;/code&gt; is mainline, which is great, but it’s not robust.
  2491. Network issues or server restarts will wedge the mountpoint (Linux can’t
  2492. reconnect when the tcp connection breaks), and things that work fine on local
  2493. filesystems get translated in a way that causes a lot of network chatter – for
  2494. instance, just due to the way the syscalls are translated, doing an &lt;code&gt;ls&lt;/code&gt;, will
  2495. result in a &lt;code&gt;stat&lt;/code&gt; call for each file in the directory, even though linux had
  2496. just got a &lt;code&gt;stat&lt;/code&gt; entry for every file while it was resolving directory names.
  2497. On top of that, Linux will serialize all I/O with the server, so there’s no
  2498. concurrent requests for file information, writes, or reads pending at the same
  2499. time to the server; and &lt;code&gt;read&lt;/code&gt; and &lt;code&gt;write&lt;/code&gt; throughput will degrade as latency
  2500. increases due to increasing round-trip time, even though there are offsets
  2501. included in the &lt;code&gt;read&lt;/code&gt; and &lt;code&gt;write&lt;/code&gt; calls. It works well enough, but is
  2502. frustrating to run up against, since there’s not a lot you can do server-side
  2503. to help with this beyond implementing the &lt;code&gt;9P2000.L&lt;/code&gt; variant (which, maybe is
  2504. worth it).&lt;/p&gt;
  2505. &lt;h1 id=&quot;the-ugly&quot;&gt;The Ugly&lt;/h1&gt;
  2506. &lt;p&gt;Unfortunately, we don’t know the file size(s) until we’ve actually opened the
  2507. underlying &lt;code&gt;tar&lt;/code&gt; file and found the correct member, so for most files, we don’t
  2508. know the real size to report when getting a &lt;code&gt;stat&lt;/code&gt;. We can’t parse the tarfiles
  2509. for every &lt;code&gt;stat&lt;/code&gt; call, since that’d make &lt;code&gt;ls&lt;/code&gt; even slower (bummer). Only
  2510. hiccup is that when I report a filesize of zero, &lt;code&gt;gdb&lt;/code&gt; throws a bit of a
  2511. fit; let’s try with a size of &lt;code&gt;0&lt;/code&gt; to start:&lt;/p&gt;
  2512. &lt;pre&gt;&lt;code&gt;$ ls -lah /usr/lib/debug/.build-id/e5/9f81f6573dadd5d95a6e4474d9388ab2777e2a.debug
  2513. -r--r--r-- 1 root root 0 Dec 31 1969 /usr/lib/debug/.build-id/e5/9f81f6573dadd5d95a6e4474d9388ab2777e2a.debug
  2514. $ gdb -q /usr/sbin/netlabelctl
  2515. Reading symbols from /usr/sbin/netlabelctl...
  2516. Reading symbols from /usr/lib/debug/.build-id/e5/9f81f6573dadd5d95a6e4474d9388ab2777e2a.debug...
  2517. warning: Discarding section .note.gnu.build-id which has a section size (24) larger than the file size [in module /usr/lib/debug/.build-id/e5/9f81f6573dadd5d95a6e4474d9388ab2777e2a.debug]
  2518. [...]
  2519. &lt;/code&gt;&lt;/pre&gt;&lt;p&gt;This obviously won’t work since &lt;code&gt;gdb&lt;/code&gt; will throw away all our hard work because
  2520. of &lt;code&gt;stat&lt;/code&gt;’s output, and neither will loading the real size of the underlying
  2521. file. That only leaves us with hardcoding a file size and hope nothing else
  2522. breaks significantly as a result. Let’s try it again:&lt;/p&gt;
  2523. &lt;pre&gt;&lt;code&gt;$ ls -lah /usr/lib/debug/.build-id/e5/9f81f6573dadd5d95a6e4474d9388ab2777e2a.debug
  2524. -r--r--r-- 1 root root 954M Dec 31 1969 /usr/lib/debug/.build-id/e5/9f81f6573dadd5d95a6e4474d9388ab2777e2a.debug
  2525. $ gdb -q /usr/sbin/netlabelctl
  2526. Reading symbols from /usr/sbin/netlabelctl...
  2527. Reading symbols from /usr/lib/debug/.build-id/e5/9f81f6573dadd5d95a6e4474d9388ab2777e2a.debug...
  2528. (gdb)
  2529. &lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Much better. I mean, terrible but better. Better for now, anyway.&lt;/p&gt;
  2530. &lt;h1 id=&quot;kilroy-was-here&quot;&gt;Kilroy was here&lt;/h1&gt;
  2531. &lt;p&gt;Do I think this is a particularly good idea? I mean; kinda. I’m probably going
  2532. to make some fun &lt;code&gt;9p&lt;/code&gt; &lt;code&gt;arigato&lt;/code&gt;-based filesystems for use around my LAN, but I
  2533. don’t think I’ll be moving to use &lt;code&gt;debugfs&lt;/code&gt; until I can figure out how to
  2534. ensure the connection is more resilient to changing networks, server restarts
  2535. and fixes on i/o performance. I think it was a useful exercise and is a pretty
  2536. great hack, but I don’t think this’ll be shipping anywhere anytime soon.&lt;/p&gt;
  2537. &lt;p&gt;Along with me publishing this post, I’ve pushed up all my repos; so you
  2538. should be able to play along at home! There’s a lot more work to be done
  2539. on &lt;code&gt;arigato&lt;/code&gt;; but it does handshake and successfully export a working
  2540. &lt;code&gt;9P2000.u&lt;/code&gt; filesystem. Check it out on on my github at
  2541. &lt;a href=&quot;https://github.com/paultag/arigato&quot;&gt;arigato&lt;/a&gt;,
  2542. &lt;a href=&quot;https://github.com/paultag/debugfs&quot;&gt;debugfs&lt;/a&gt;
  2543. and also on &lt;a href=&quot;https://crates.io/crates/arigato&quot;&gt;crates.io&lt;/a&gt;
  2544. and &lt;a href=&quot;https://docs.rs/arigato&quot;&gt;docs.rs&lt;/a&gt;.&lt;/p&gt;
  2545. &lt;p&gt;At least I can say I was here and I got it working after all these years.&lt;/p&gt;</description>
  2546. <pubDate>Sat, 13 Apr 2024 13:27:00 +0000</pubDate>
  2547. </item>
  2548. <item>
  2549. <title>Scarlett Gately Moore: Kubuntu: Noble Numbat Beta available! Qt6 snaps coming soon.</title>
  2550. <guid isPermaLink="false">https://www.scarlettgatelymoore.dev/?p=437</guid>
  2551. <link>https://www.scarlettgatelymoore.dev/kubuntu-noble-numbat-beta-available-qt6-snaps-coming-soon/</link>
  2552. <description>&lt;figure class=&quot;wp-block-image aligncenter size-large is-resized&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;not-transparent wp-image-439&quot; data-dominant-color=&quot;838e9d&quot; data-has-transparency=&quot;false&quot; height=&quot;640&quot; src=&quot;https://www.scarlettgatelymoore.dev/wp-content/uploads/VirtualBox_kubuntu-noble_11_04_2024_05_52_10-1024x640.webp&quot; width=&quot;1024&quot; /&gt;&lt;/figure&gt;
  2553.  
  2554.  
  2555.  
  2556. &lt;p&gt;It has been a very busy couple of weeks as we worked against some major transitions and a security fix that required a rebuild of the $world. I am happy to report that against all odds we have a beta release! You can read all about it here: &lt;a href=&quot;https://kubuntu.org/news/kubuntu-24-04-beta-released/&quot;&gt;https://kubuntu.org/news/kubuntu-24-04-beta-released/&lt;/a&gt; Post beta freeze I have already begun pushing our fixes for known issues today. A big one being our new branding! Very exciting times in the Kubuntu world.&lt;/p&gt;
  2557.  
  2558.  
  2559.  
  2560. &lt;p&gt;In the snap world I will be using my free time to start knocking out KDE applications ( not covered by the project ). I have also recruited some help, so you should start seeing these pop up in the edge channel very soon!&lt;/p&gt;
  2561.  
  2562.  
  2563.  
  2564. &lt;p&gt;Now that we are nearing the release of Noble Numbat, my contract is coming to an end with Kubuntu. If you would like to see Plasma 6 in the next release and in a PPA for Noble, please consider donating to extend my contract at &lt;a href=&quot;https://kubuntu.org/donate&quot;&gt;https://kubuntu.org/donate&lt;/a&gt; !&lt;/p&gt;
  2565.  
  2566.  
  2567.  
  2568. &lt;p&gt;On a personal level, I am still looking to help with my grandson and you can find that here: &lt;a href=&quot;https://www.gofundme.com/f/in-loving-memory-of-william-billy-dean-scalf&quot;&gt;https://www.gofundme.com/f/in-loving-memory-of-william-billy-dean-scalf&lt;/a&gt;&lt;/p&gt;
  2569.  
  2570.  
  2571.  
  2572. &lt;p&gt;Thanks for stopping by,&lt;/p&gt;
  2573.  
  2574.  
  2575.  
  2576. &lt;p&gt;Scarlett&lt;/p&gt;</description>
  2577. <pubDate>Fri, 12 Apr 2024 19:29:58 +0000</pubDate>
  2578. </item>
  2579. <item>
  2580. <title>Kubuntu General News: Kubuntu 24.04 Beta Released</title>
  2581. <guid isPermaLink="false">https://kubuntu.org/?p=5178</guid>
  2582. <link>https://kubuntu.org/news/kubuntu-24-04-beta-released/</link>
  2583. <description>&lt;h2&gt;Join the Excitement: &lt;/h2&gt;
  2584.  
  2585.  
  2586.  
  2587. &lt;h2&gt;Test Kubuntu 24.04 Beta and Experience Innovation with KubuQA!&lt;/h2&gt;
  2588.  
  2589.  
  2590.  
  2591. &lt;figure class=&quot;wp-block-image size-full&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-5179&quot; height=&quot;1024&quot; src=&quot;https://kubuntu.org/wp-content/uploads/2024/04/ecd2/Kubuntu_24.04_beta.webp&quot; width=&quot;1792&quot; /&gt;&lt;/figure&gt;
  2592.  
  2593.  
  2594.  
  2595. &lt;p&gt;We’re thrilled to announce the availability of the &lt;a href=&quot;https://cdimage.ubuntu.com/kubuntu/releases/24.04/beta/&quot;&gt;Kubuntu 24.04 Beta!&lt;/a&gt; This release is packed with new features and enhancements, and we’re inviting you, our valued community, to join us in fine-tuning this exciting new version. Whether you’re a seasoned tester or new to software testing, your feedback is crucial to making Kubuntu 24.04 the best it can be.&lt;/p&gt;
  2596.  
  2597.  
  2598.  
  2599. &lt;p&gt;To make your testing journey as easy as pie, we’re introducing a fantastic new tool: &lt;a href=&quot;https://github.com/kubuntu-team/KubuQA&quot;&gt;&lt;strong&gt;KubuQA&lt;/strong&gt;.&lt;/a&gt; Designed with both new and experienced users in mind, KubuQA simplifies the testing process by automating the download, VirtualBox setup, and configuration steps. Now, everyone can participate in testing Kubuntu with ease!&lt;/p&gt;
  2600.  
  2601.  
  2602.  
  2603. &lt;p&gt;This beta release also debuts our fresh new branding, artwork, and wallpapers—created and chosen by our own community through recent &lt;a href=&quot;https://kubuntu.org/news/celebrating-creativity-announcing-the-winners-of-the-kubuntu-contests/&quot;&gt;branding and wallpaper contests.&lt;/a&gt; These additions reflect the spirit and creativity of the Kubuntu family, and we can’t wait for you to see them.&lt;/p&gt;
  2604.  
  2605.  
  2606.  
  2607. &lt;h2&gt;Get Testing&lt;/h2&gt;
  2608.  
  2609.  
  2610.  
  2611. &lt;p&gt;By participating in the beta testing of Kubuntu 24.04, you’re not just helping improve the software; you’re becoming an integral part of a global community that values open collaboration and innovation. Your contributions help us identify and fix issues, ensuring Kubuntu remains a high-quality, stable, and user-friendly Linux distribution.&lt;/p&gt;
  2612.  
  2613.  
  2614.  
  2615. &lt;p&gt;The benefits of joining our testing team extend beyond improving the software. You’ll gain valuable experience, meet like-minded individuals, and perhaps discover a new passion in the world of open-source software.&lt;/p&gt;
  2616.  
  2617.  
  2618.  
  2619. &lt;p&gt;So why wait? &lt;a href=&quot;https://cdimage.ubuntu.com/kubuntu/releases/24.04/beta/&quot;&gt;Download the Kubuntu 24.04&lt;/a&gt; Beta today, try out &lt;a href=&quot;https://github.com/kubuntu-team/KubuQA&quot;&gt;KubuQA&lt;/a&gt;, or follow our &lt;a href=&quot;https://wiki.ubuntu.com/NobleNumbat/Beta/Kubuntu#preview&quot;&gt;wiki to upgrade&lt;/a&gt; and help us make Kubuntu better than ever! Remember, your feedback is the key to our success.&lt;/p&gt;
  2620.  
  2621.  
  2622.  
  2623. &lt;h2&gt;Ready to make an impact? &lt;/h2&gt;
  2624.  
  2625.  
  2626.  
  2627. &lt;p&gt;Join us in this exciting phase of development and see your ideas come to life in Kubuntu. Plus, enjoy the satisfaction of knowing that you’ve contributed to a project used by millions around the world. Become a&lt;a href=&quot;https://github.com/kubuntu-team/KubuQA&quot;&gt; tester&lt;/a&gt; today and be part of something big!&lt;/p&gt;
  2628.  
  2629.  
  2630.  
  2631. &lt;h2&gt;Interested in more than testing? &lt;/h2&gt;
  2632.  
  2633.  
  2634.  
  2635. &lt;p&gt;By the way, have you thought about becoming a member of the Kubuntu Community? It’s a fantastic way to contribute more actively and help shape the future of Kubuntu. Learn more about &lt;a href=&quot;https://kubuntu.org/community/&quot;&gt;joining the community.&lt;/a&gt;&lt;/p&gt;</description>
  2636. <pubDate>Fri, 12 Apr 2024 18:54:20 +0000</pubDate>
  2637. </item>
  2638. <item>
  2639. <title>Ubuntu Studio: Ubuntu Studio 24.04 LTS Beta Released</title>
  2640. <guid isPermaLink="false">https://ubuntustudio.org/?p=2742</guid>
  2641. <link>https://ubuntustudio.org/2024/04/ubuntu-studio-24-04-lts-beta-released/</link>
  2642. <description>&lt;div class=&quot;wp-block-image&quot; id=&quot;block-85f39608-c985-4310-86d5-00b9690ffde7&quot;&gt;&lt;figure class=&quot;aligncenter size-full is-resized&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-2749&quot; height=&quot;223&quot; src=&quot;https://ubuntustudio.org/wp-content/uploads/2024/04/08a9/betabanner.png&quot; width=&quot;600&quot; /&gt;&lt;/figure&gt;&lt;/div&gt;
  2643.  
  2644.  
  2645.  
  2646. &lt;p id=&quot;block-dfae7f3f-d386-4297-b510-560ae7fce8a5&quot;&gt;The Ubuntu Studio team is pleased to announce the beta release of Ubuntu Studio 24.04 LTS, codenamed “Noble Numbat”.&lt;/p&gt;
  2647.  
  2648.  
  2649.  
  2650. &lt;p id=&quot;block-ebf85cba-74ad-4dc6-a731-f595c9f28a72&quot;&gt;While this beta is reasonably free of any showstopper installer bugs, you will find some bugs within. This image is, however, mostly representative of what you will find when Ubuntu Studio 24.04 is released on April 25, 2024.&lt;/p&gt;
  2651.  
  2652.  
  2653.  
  2654. &lt;h2 id=&quot;block-6ca66e3a-8d42-42a8-a0cf-a8ed86e6025f&quot;&gt;Special Notes&lt;/h2&gt;
  2655.  
  2656.  
  2657.  
  2658. &lt;p id=&quot;block-708043b1-523e-4fb9-92ca-720e3316371a&quot;&gt;The Ubuntu Studio 24.04 LTS disk image (ISO) exceeds 4 GB and cannot be downloaded to some file systems such as FAT32 and may not be readable when burned to a DVD. For this reason, we recommend downloading to a compatible file system. When creating a boot medium, we recommend &lt;a href=&quot;https://ubuntu.com/tutorials/create-a-usb-stick-on-ubuntu#1-overview&quot;&gt;creating a bootable USB stick&lt;/a&gt; with the ISO image or burning to a Dual-Layer DVD.&lt;/p&gt;
  2659.  
  2660.  
  2661.  
  2662. &lt;p id=&quot;block-fa4be379-b904-4919-9502-c73469ca31ef&quot;&gt;Images can be obtained from this link: &lt;a href=&quot;https://cdimage.ubuntu.com/ubuntustudio/releases/24.04/beta/&quot; rel=&quot;noreferrer noopener&quot; target=&quot;_blank&quot;&gt;https://cdimage.ubuntu.com/ubuntustudio/releases/24.04/beta/&lt;/a&gt;&lt;/p&gt;
  2663.  
  2664.  
  2665.  
  2666. &lt;p id=&quot;block-bf39c734-e080-4549-9621-044e9241d48c&quot;&gt;Full updated information, including &lt;strong&gt;Upgrade Instructions,&lt;/strong&gt; are available in the &lt;strong&gt;&lt;a href=&quot;https://ubuntustudio.org/ubuntu-studio-24-04-LTS-release-notes/&quot;&gt;Release Notes&lt;/a&gt;&lt;/strong&gt;&lt;a href=&quot;https://wiki.ubuntu.com/GroovyGorilla/Beta/UbuntuStudio&quot;&gt;.&lt;/a&gt;&lt;/p&gt;
  2667.  
  2668.  
  2669.  
  2670. &lt;p&gt;&lt;strong&gt;Please note that upgrading before the release of 24.04.1,&lt;/strong&gt; &lt;strong&gt;due August 2024, is unsupported.&lt;/strong&gt;&lt;/p&gt;
  2671.  
  2672.  
  2673.  
  2674. &lt;h2 id=&quot;block-aaaf14ed-800d-473e-abc2-4f2db719e0d7&quot;&gt;New Features This Release&lt;/h2&gt;
  2675.  
  2676.  
  2677.  
  2678. &lt;ul id=&quot;block-05beff49-852b-4564-9df3-018c2354c56e&quot;&gt;&lt;li&gt;&lt;strong&gt;PipeWire&lt;/strong&gt; continues to improve with every release and is so robust it can be used for professional and prosumer use. Version 1.0.4&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Ubuntu Studio Installer&lt;/strong&gt;‘s included &lt;strong&gt;&lt;a data-type=&quot;page&quot; href=&quot;https://ubuntustudio.org/ubuntu-studio-installer/#audioconfig&quot;&gt;Ubuntu Studio Audio Configuration&lt;/a&gt; &lt;/strong&gt;utility for fine-tuning the PipeWire setup or changing the configuration altogether now includes the ability to create or remove a dummy audio device. Version 1.9&lt;/li&gt;&lt;/ul&gt;
  2679.  
  2680.  
  2681.  
  2682. &lt;h2 id=&quot;block-c3e434c7-367a-4777-b799-a3fd6a35e1b3&quot;&gt;Major Package Upgrades&lt;/h2&gt;
  2683.  
  2684.  
  2685.  
  2686. &lt;ul id=&quot;block-e855e703-e523-4f63-940a-d1071d6b8dbf&quot;&gt;&lt;li&gt;&lt;strong&gt;Ardour&lt;/strong&gt; version 8.4.0&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Qtractor&lt;/strong&gt; version 0.9.39&lt;/li&gt;&lt;li&gt;&lt;strong&gt;OBS Studio &lt;/strong&gt;version 30.0.2&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Audacity &lt;/strong&gt;version 3.4.2&lt;/li&gt;&lt;li&gt;&lt;strong&gt;digiKam&lt;/strong&gt; version 8.2.0&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Kdenlive &lt;/strong&gt;version 23.08.5&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Krita &lt;/strong&gt;version 5.2.2&lt;/li&gt;&lt;/ul&gt;
  2687.  
  2688.  
  2689.  
  2690. &lt;p id=&quot;block-5f0d720e-bce2-4330-9654-b7cd8589e194&quot;&gt;There are many other improvements, too numerous to list here. We encourage you to look around the freely-downloadable ISO image.&lt;/p&gt;
  2691.  
  2692.  
  2693.  
  2694. &lt;h2 id=&quot;block-8f4aa3cc-9bd2-4090-a685-153ad6761131&quot;&gt;Known Issues&lt;/h2&gt;
  2695.  
  2696.  
  2697.  
  2698. &lt;ul id=&quot;block-c6eb8dde-1349-461b-886c-937bdbed611d&quot;&gt;&lt;li&gt;Ubuntu Studio’s classic PulseAudio-JACK configuration cannot be used on Ubuntu Desktop (GNOME) due to a known issue with the ubuntu-desktop metapackage. (LP: #&lt;a href=&quot;https://launchpad.net/bugs/2033440&quot;&gt;2033440&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;We now discourage the use of the aforementioned classic PulseAudio-JACK configuration as PulseAudio is becoming deprecated with time in favor of PipeWire. PipeWire’s JACK configuration can be disabled to use JACK2 via QJackCTL for advanced users.&lt;/li&gt;&lt;li&gt;Due to the Ubuntu repositories being in-flux following the time_t transition and xz-utils security issue resolution, some items in the repository are uninstallable or causing other packaging conflicts. The Ubuntu Release Team is working around the clock to help resolve these issues, so patience is required.&lt;/li&gt;&lt;/ul&gt;
  2699.  
  2700.  
  2701.  
  2702. &lt;p id=&quot;block-cac00ac7-cbaa-4df0-a2b1-579dfba8e8a8&quot;&gt;Official Ubuntu Studio release notes can be found at &lt;a href=&quot;https://ubuntustudio.org/ubuntu-studio-24-04-LTS-release-notes/&quot;&gt;https://ubuntustudio.org/ubuntu-studio-24-04-LTS-release-notes/&lt;/a&gt;&lt;/p&gt;
  2703.  
  2704.  
  2705.  
  2706. &lt;p id=&quot;block-8127ec85-81e1-49ae-8132-7d07e86e6647&quot;&gt;Further known issues, mostly pertaining to the desktop environment, can be found at &lt;a href=&quot;https://wiki.ubuntu.com/NobleNumbat/ReleaseNotes/Kubuntu&quot;&gt;https://wiki.ubuntu.com/NobleNumbat/ReleaseNotes/Kubuntu&lt;/a&gt;&lt;/p&gt;
  2707.  
  2708.  
  2709.  
  2710. &lt;p id=&quot;block-547b9794-57c5-49eb-a8cb-884c89bb51a8&quot;&gt;Additionally, the main Ubuntu release notes contain more generic issues: &lt;a href=&quot;https://discourse.ubuntu.com/t/noble-numbat-release-notes/39890&quot;&gt;https://discourse.ubuntu.com/t/noble-numbat-release-notes/39890&lt;/a&gt;&lt;/p&gt;
  2711.  
  2712.  
  2713.  
  2714. &lt;h2 id=&quot;block-82f8513f-6640-43f9-bde7-5c17da0aa520&quot;&gt;How You Can Help&lt;/h2&gt;
  2715.  
  2716.  
  2717.  
  2718. &lt;p&gt;Please test using the test cases on &lt;a href=&quot;https://iso.qa.ubuntu.com&quot;&gt;https://iso.qa.ubuntu.com&lt;/a&gt;. All you need is a &lt;a href=&quot;https://launchpad.net&quot;&gt;Launchpad&lt;/a&gt; account to get started.&lt;/p&gt;
  2719.  
  2720.  
  2721.  
  2722. &lt;p&gt;Additionally, we need financial contributions. Our project lead, Erich Eickmeyer, is working long hours on this project and trying to generate a part-time income. See &lt;a data-id=&quot;2615&quot; data-type=&quot;post&quot; href=&quot;https://ubuntustudio.org/2023/09/a-message-from-the-project-lead/&quot;&gt;this post&lt;/a&gt; as to the reasons why and &lt;a data-id=&quot;56&quot; data-type=&quot;page&quot; href=&quot;https://ubuntustudio.org/contribute/&quot;&gt;go here&lt;/a&gt; to see how you can contribute financially (options are also in the sidebar).&lt;/p&gt;
  2723.  
  2724.  
  2725.  
  2726. &lt;h2 id=&quot;block-c7a21be7-9349-421e-a098-c0d2919f320a&quot;&gt;Frequently Asked Questions&lt;/h2&gt;
  2727.  
  2728.  
  2729.  
  2730. &lt;p id=&quot;block-163f794a-f451-40b0-bbbd-6f26c6cbe8e8&quot;&gt;&lt;strong&gt;Q:&lt;/strong&gt; Does Ubuntu Studio contain snaps?&lt;br /&gt;&lt;strong&gt;A:&lt;/strong&gt; Yes. Mozilla’s distribution agreement with Canonical changed, and Ubuntu was forced to no longer distribute Firefox in a native .deb package. We have found that, after numerous improvements, Firefox now performs just as well as the native .deb package did.&lt;/p&gt;
  2731.  
  2732.  
  2733.  
  2734. &lt;p&gt;Thunderbird has become a snap this cycle in order for the maintainers to get security patches delivered faster.&lt;/p&gt;
  2735.  
  2736.  
  2737.  
  2738. &lt;p id=&quot;block-342134d3-a024-4b7b-b768-76c758b20acd&quot;&gt;Additionally, Freeshow is an Electron-based application. Electron-based applications cannot be packaged in the Ubuntu repositories in that they cannot be packaged in a traditional Debian source package. While such apps do have a build system to create a .deb binary package, it circumvents the source package build system in Launchpad, which is required when packaging for Ubuntu. However, Electron apps also have a facility for creating snaps, which can be uploaded and included. Therefore, for Freeshow to be included in Ubuntu Studio, it had to be packaged as a snap.&lt;/p&gt;
  2739.  
  2740.  
  2741.  
  2742. &lt;p id=&quot;block-c5b30c83-d27b-4fd0-a958-bc418f83bf2a&quot;&gt;&lt;strong&gt;Q:&lt;/strong&gt; If I install this Beta release, will I have to reinstall when the final release comes out?&lt;br /&gt;&lt;strong&gt;A:&lt;/strong&gt; No. If you keep it updated, your installation will automatically become the final release. However, if Audacity returns to the Ubuntu repositories before final release, then you might end-up with a double-installation of Audacity. Removal instructions of one or the other will be made available in a future post.&lt;/p&gt;
  2743.  
  2744.  
  2745.  
  2746. &lt;p id=&quot;block-2266cee7-0ea1-49cf-8340-594da42a09d7&quot;&gt;&lt;strong&gt;Q&lt;/strong&gt;: Will you make an ISO with {my favorite desktop environment}?&lt;br /&gt;&lt;strong&gt;A:&lt;/strong&gt; To do so would require creating an entirely new flavor of Ubuntu, which would require going through the Official Ubuntu Flavor application process. Since we’re completely volunteer-run, we don’t have the time or resources to do this. Instead, we recommend you download the &lt;a href=&quot;https://ubuntu.com/download/flavours&quot;&gt;official flavor for the desktop environment of your choice&lt;/a&gt; and use &lt;a href=&quot;https://ubuntustudio.org/ubuntu-studio-installer&quot;&gt;Ubuntu Studio Installer&lt;/a&gt; to get Ubuntu Studio – which does *not* convert that flavor to Ubuntu Studio but adds its benefits.&lt;/p&gt;
  2747.  
  2748.  
  2749.  
  2750. &lt;p id=&quot;block-48669a69-39bc-4971-b46b-c7da87133d24&quot;&gt;&lt;strong&gt;Q: &lt;/strong&gt;What if I don’t want all these packages installed on my machine?&lt;br /&gt;&lt;strong&gt;A: &lt;/strong&gt;Simply use the &lt;strong&gt;Ubuntu Studio Installer&lt;/strong&gt; to remove the features of Ubuntu Studio you don’t want or need!&lt;/p&gt;</description>
  2751. <pubDate>Fri, 12 Apr 2024 00:40:36 +0000</pubDate>
  2752. </item>
  2753. <item>
  2754. <title>Lubuntu Blog: Lubuntu Noble Beta Released!</title>
  2755. <guid isPermaLink="false">https://lubuntu.me/?p=3969</guid>
  2756. <link>https://lubuntu.me/noble-beta-released/</link>
  2757. <description>We are happy to announce the Beta release for Lubuntu Noble (what will become 24.04 LTS)! What makes this cycle unique? Lubuntu is a lightweight flavor of Ubuntu, based on LXQt and built for you. As an official flavor, we benefit from Canonical’s infrastructure and assistance, in addition to the support and enthusiasm from the […]</description>
  2758. <pubDate>Thu, 11 Apr 2024 21:04:10 +0000</pubDate>
  2759. </item>
  2760. <item>
  2761. <title>St&amp;eacute;phane Graber: Announcing Incus 6.0 LTS</title>
  2762. <guid isPermaLink="false">https://stgraber.org/?p=1565</guid>
  2763. <link>https://stgraber.org/2024/04/04/announcing-incus-6-0-lts/</link>
  2764. <description>&lt;p&gt;And it’s finally out, our first LTS (Long Term Support) release of Incus!&lt;/p&gt;
  2765.  
  2766.  
  2767.  
  2768. &lt;p&gt;For anyone unfamiliar, &lt;a href=&quot;https://linuxcontainers.org/incus/&quot;&gt;Incus&lt;/a&gt; is a modern system container and virtual machine manager developed and  maintained by the same team that first created LXD. It’s released under the Apache 2.0 license and is  run as a community led Open Source project as part of the &lt;a href=&quot;https://linuxcontainers.org&quot;&gt;Linux Containers&lt;/a&gt; organization.&lt;/p&gt;
  2769.  
  2770.  
  2771.  
  2772. &lt;p&gt;Incus provides a cloud-like environment, creating instances from premade images and offers a wide  variety of features, including the ability to seamlessly cluster up to 50 servers together.&lt;/p&gt;
  2773.  
  2774.  
  2775.  
  2776. &lt;p&gt;It supports multiple different local or remote storage options, traditional or fully distributed networking and offers most common cloud features, including a full &lt;a href=&quot;https://linuxcontainers.org/incus/docs/main/rest-api-spec/&quot;&gt;REST API&lt;/a&gt; and &lt;a href=&quot;https://linuxcontainers.org/incus/docs/main/third_party/&quot;&gt;integrations&lt;/a&gt; with common tooling like Ansible, Terraform/OpenTofu and more!&lt;/p&gt;
  2777.  
  2778.  
  2779.  
  2780. &lt;figure class=&quot;wp-block-image size-large&quot;&gt;&lt;a href=&quot;https://stgraber.org/wp-content/uploads/2024/04/image.png&quot; rel=&quot;noreferrer noopener&quot; target=&quot;_blank&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-1566&quot; height=&quot;726&quot; src=&quot;https://stgraber.org/wp-content/uploads/2024/04/image-1024x726.png&quot; width=&quot;1024&quot; /&gt;&lt;/a&gt;&lt;/figure&gt;
  2781.  
  2782.  
  2783.  
  2784. &lt;p&gt;The LTS release of Incus will be supported until June 2029 with the first two years featuring bug and security fixes as well as minor usability improvements before transitioning to security fixes only for the remaining 3 years.&lt;/p&gt;
  2785.  
  2786.  
  2787.  
  2788. &lt;p&gt;The highlights for existing Incus users are:&lt;/p&gt;
  2789.  
  2790.  
  2791.  
  2792. &lt;ul&gt;
  2793. &lt;li&gt;Swap limits for containers&lt;/li&gt;
  2794.  
  2795.  
  2796.  
  2797. &lt;li&gt;New shell completion mechanism&lt;/li&gt;
  2798.  
  2799.  
  2800.  
  2801. &lt;li&gt;Creation of external bridge interfaces&lt;/li&gt;
  2802.  
  2803.  
  2804.  
  2805. &lt;li&gt;Live-migration of VMs with disks attached&lt;/li&gt;
  2806.  
  2807.  
  2808.  
  2809. &lt;li&gt;System information in &lt;code&gt;incus info --resources&lt;/code&gt;&lt;/li&gt;
  2810.  
  2811.  
  2812.  
  2813. &lt;li&gt;USB information in &lt;code&gt;incus info --resources&lt;/code&gt;&lt;/li&gt;
  2814. &lt;/ul&gt;
  2815.  
  2816.  
  2817.  
  2818. &lt;p&gt;For those coming from LXD 5.0 LTS, a full list of changes is included in the announcement as well as some instructions on how to migrate over.&lt;/p&gt;
  2819.  
  2820.  
  2821.  
  2822. &lt;p&gt;The full announcement and changelog can be &lt;a href=&quot;https://discuss.linuxcontainers.org/t/incus-6-0-lts-has-been-released/19576&quot; rel=&quot;noreferrer noopener&quot; target=&quot;_blank&quot;&gt;found here&lt;/a&gt;.&lt;br /&gt;And for those who prefer videos, here’s the release overview video:&lt;/p&gt;
  2823.  
  2824.  
  2825.  
  2826. &lt;figure class=&quot;wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio&quot;&gt;&lt;div class=&quot;wp-block-embed__wrapper&quot;&gt;
  2827.  
  2828. &lt;/div&gt;&lt;/figure&gt;
  2829.  
  2830.  
  2831.  
  2832. &lt;p&gt;You can take the latest release of Incus up for a spin through our online demo service at: &lt;a href=&quot;https://linuxcontainers.org/incus/try-it/&quot; rel=&quot;noreferrer noopener&quot; target=&quot;_blank&quot;&gt;https://linuxcontainers.org/incus/try-it/&lt;/a&gt;&lt;/p&gt;
  2833.  
  2834.  
  2835.  
  2836. &lt;p&gt;And as always, my company is offering commercial support on Incus, ranging from by-the-hour support contracts to one-off services on things like initial migration from LXD, review of your deployment to squeeze the most out of Incus or even feature sponsorship. You’ll find all details of that here: &lt;a href=&quot;https://zabbly.com/incus&quot;&gt;https://zabbly.com/incus&lt;/a&gt;&lt;/p&gt;
  2837.  
  2838.  
  2839.  
  2840. &lt;p&gt;Donations towards my work on this and other open source projects is also always appreciated, you can  find me on &lt;a href=&quot;https://github.com/sponsors/stgraber&quot;&gt;Github Sponsors&lt;/a&gt;, &lt;a href=&quot;https://patreon.com/stgraber&quot;&gt;Patreon&lt;/a&gt; and &lt;a href=&quot;https://ko-fi.com/stgraber&quot;&gt;Ko-fi&lt;/a&gt;.&lt;/p&gt;
  2841.  
  2842.  
  2843.  
  2844. &lt;p&gt;Enjoy!&lt;/p&gt;</description>
  2845. <pubDate>Thu, 04 Apr 2024 17:01:49 +0000</pubDate>
  2846. </item>
  2847. <item>
  2848. <title>Lukas Märdian: Netplan v1.0 paves the way to stable, declarative network management</title>
  2849. <guid isPermaLink="false">https://blog.slyon.de/?p=2352</guid>
  2850. <link>https://blog.slyon.de/2024/04/04/netplan-v1-0-paves-the-way-to-stable-declarative-network-management/</link>
  2851. <description>&lt;figure class=&quot;wp-block-image is-style-default&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-2361&quot; height=&quot;483&quot; src=&quot;https://blog.slyon.de/wp-content/uploads/2024/03/image.png&quot; width=&quot;902&quot; /&gt;&lt;/figure&gt;
  2852.  
  2853.  
  2854.  
  2855. &lt;p class=&quot;has-text-align-center&quot;&gt;New “netplan status –diff” subcommand, finding differences between configuration and system state&lt;/p&gt;
  2856.  
  2857.  
  2858.  
  2859. &lt;p&gt;As the maintainer and lead developer for Netplan, I’m proud to announce the general availability of Netplan v1.0 after &lt;a href=&quot;https://blog.slyon.de/2023/07/18/a-declarative-approach-to-linux-networking-with-netplan/&quot;&gt;more than 7 years&lt;/a&gt; of development efforts. Over the years, we’ve so far had about 80 individual contributors from around the globe. This includes many contributions from our Netplan core-team at Canonical, but also from other big corporations such as Microsoft or Deutsche Telekom. Those contributions, along with the many we receive from our &lt;a href=&quot;https://github.com/canonical/netplan/pulls?q=is%3Apr+label%3Acommunity&quot;&gt;community of individual contributors&lt;/a&gt;, solidify Netplan as a healthy and trusted open source project. In an effort to make Netplan even more dependable, we started shipping upstream patch releases, such as 0.106.1 and 0.107.1, which make it easier to integrate fixes into our users’ custom workflows.&lt;/p&gt;
  2860.  
  2861.  
  2862.  
  2863. &lt;p&gt;With the release of version 1.0 we primarily focused on stability. However, being a major version upgrade, it allowed us to drop some long-standing legacy code from the &lt;strong&gt;libnetplan1&lt;/strong&gt; library. Removing this technical debt increases the maintainability of Netplan’s codebase going forward. The upcoming Ubuntu 24.04 LTS and Debian 13 releases will ship Netplan v1.0 to millions of users worldwide.&lt;/p&gt;
  2864.  
  2865.  
  2866.  
  2867. &lt;h2 class=&quot;wp-block-heading&quot;&gt;Highlights of version 1.0&lt;/h2&gt;
  2868.  
  2869.  
  2870.  
  2871. &lt;p&gt;In addition to stability and maintainability improvements, it’s worth looking at some of the new features that were included in the latest release:&lt;/p&gt;
  2872.  
  2873.  
  2874.  
  2875. &lt;ul&gt;
  2876. &lt;li&gt;Simultaneous WPA2 &amp;amp; WPA3 support.&lt;/li&gt;
  2877.  
  2878.  
  2879.  
  2880. &lt;li&gt;Introduction of a stable libnetplan1 API.&lt;/li&gt;
  2881.  
  2882.  
  2883.  
  2884. &lt;li&gt;Mellanox VF-LAG support for high performance SR-IOV networking.&lt;/li&gt;
  2885.  
  2886.  
  2887.  
  2888. &lt;li&gt;New &lt;strong&gt;hairpin&lt;/strong&gt; and &lt;strong&gt;port-mac-learning&lt;/strong&gt; settings, useful for VXLAN tunnels with FRRouting.&lt;/li&gt;
  2889.  
  2890.  
  2891.  
  2892. &lt;li&gt;New &lt;strong&gt;netplan status –diff&lt;/strong&gt; subcommand, finding differences between configuration and system state.&lt;/li&gt;
  2893. &lt;/ul&gt;
  2894.  
  2895.  
  2896.  
  2897. &lt;p&gt;Besides those highlights of the v1.0 release, I’d also like to shed some light on new functionality that was integrated within the past two years for those upgrading from the previous Ubuntu 22.04 LTS which used Netplan v0.104:&lt;/p&gt;
  2898.  
  2899.  
  2900.  
  2901. &lt;ul&gt;
  2902. &lt;li&gt;We added support for the management of new network interface types, such as &lt;strong&gt;veth&lt;/strong&gt;, &lt;strong&gt;dummy&lt;/strong&gt;, &lt;strong&gt;VXLAN&lt;/strong&gt;, &lt;strong&gt;VRF&lt;/strong&gt; or &lt;strong&gt;InfiniBand&lt;/strong&gt; (IPoIB). &lt;/li&gt;
  2903.  
  2904.  
  2905.  
  2906. &lt;li&gt;Wireless functionality was improved by &lt;a href=&quot;https://blog.slyon.de/2023/11/12/netplan-brings-consistent-network-configuration-across-desktop-server-cloud-and-iot/&quot;&gt;integrating Netplan with NetworkManager&lt;/a&gt; on desktop systems, adding support for WPA3 and adding the notion of a &lt;strong&gt;regulatory-domain&lt;/strong&gt;, to choose proper frequencies for specific regions. &lt;/li&gt;
  2907.  
  2908.  
  2909.  
  2910. &lt;li&gt;To improve maintainability, we moved to Meson as Netplan’s buildsystem, added upstream CI coverage for multiple Linux distributions and integrations (such as Debian testing, NetworkManager, snapd or cloud-init), checks for ABI compatibility, and automatic memory leak detection. &lt;/li&gt;
  2911.  
  2912.  
  2913.  
  2914. &lt;li&gt;We increased consistency between the supported backend renderers (systemd-networkd and NetworkManager), by &lt;a href=&quot;https://discourse.ubuntu.com/t/netplan-0-106-call-for-testing/33932&quot;&gt;matching physical network interfaces on permanent MAC address&lt;/a&gt;, when the &lt;strong&gt;match.macaddress&lt;/strong&gt; setting is being used, and added new hardware offloading functionality for high performance networking, such as Single-Root IO Virtualisation virtual function link-aggregation (SR-IOV VF-LAG).&lt;/li&gt;
  2915. &lt;/ul&gt;
  2916.  
  2917.  
  2918.  
  2919. &lt;p&gt;The much improved &lt;a href=&quot;https://netplan.readthedocs.io&quot;&gt;Netplan documentation&lt;/a&gt;, that is now hosted on “Read the Docs”, and new command line subcommands, such as &lt;strong&gt;netplan status&lt;/strong&gt;, make Netplan a well vested tool for declarative network management and troubleshooting.&lt;/p&gt;
  2920.  
  2921.  
  2922.  
  2923. &lt;h2 class=&quot;wp-block-heading&quot;&gt;Integrations&lt;/h2&gt;
  2924.  
  2925.  
  2926.  
  2927. &lt;p&gt;Those changes pave the way to integrate Netplan in 3rd party projects, such as system installers or cloud deployment methods. By shipping the new &lt;strong&gt;python3-netplan&lt;/strong&gt; Python bindings to libnetplan, it is now easier than ever to access Netplan functionality and network validation from other projects. We are proud that the &lt;a href=&quot;https://blog.slyon.de/2023/07/10/netplan-and-systemd-networkd-on-debian-bookworm/&quot;&gt;Debian Cloud Team chose Netplan&lt;/a&gt; to be the default network management tool in their official cloud-images for Debian Bookworm and beyond. Ubuntu’s NetworkManager package now uses &lt;a href=&quot;https://blog.slyon.de/2023/11/12/netplan-brings-consistent-network-configuration-across-desktop-server-cloud-and-iot/&quot;&gt;Netplan as it’s default backend on Ubuntu 23.10 Desktop&lt;/a&gt; systems and beyond. Further integrations happened with cloud-init and the Calamares installer.&lt;br /&gt;&lt;/p&gt;
  2928.  
  2929.  
  2930.  
  2931. &lt;p&gt;Please check out the &lt;a href=&quot;https://github.com/canonical/netplan/releases/1.0&quot;&gt;Netplan version 1.0 release&lt;/a&gt; on GitHub! If you want to learn more, follow our activities on &lt;a href=&quot;https://netplan.io/&quot;&gt;Netplan.io&lt;/a&gt;, &lt;a href=&quot;https://github.com/canonical/netplan&quot;&gt;GitHub&lt;/a&gt;, &lt;a href=&quot;https://bugs.launchpad.net/netplan&quot;&gt;Launchpad&lt;/a&gt;, &lt;a href=&quot;https://web.libera.chat/gamja/?channels=%23netplan&quot;&gt;IRC&lt;/a&gt; or our &lt;a href=&quot;https://discourse.ubuntu.com/t/blog-netplan-developer-diaries/35932&quot;&gt;Netplan Developer Diaries&lt;/a&gt; blog on discourse.&lt;/p&gt;</description>
  2932. <pubDate>Thu, 04 Apr 2024 15:39:18 +0000</pubDate>
  2933. </item>
  2934. <item>
  2935. <title>Dougie Richardson: Update Plesk Docker Images</title>
  2936. <guid isPermaLink="false">https://dougiewougie.com/?p=2749</guid>
  2937. <link>https://dougiewougie.com/2024/03/31/update-plesk-docker-images/</link>
  2938. <description>&lt;p&gt;Docker &amp;gt; Settings &amp;gt; Overview &amp;gt; Recreate, making sure that “Rest variable to default” is &lt;strong&gt;&lt;u&gt;not&lt;/u&gt;&lt;/strong&gt; checked.&lt;/p&gt;
  2939.  
  2940.  
  2941.  
  2942. &lt;p&gt;Finally start.&lt;/p&gt;
  2943.  
  2944.  
  2945.  
  2946. &lt;figure class=&quot;wp-block-image size-full&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-2751&quot; height=&quot;324&quot; src=&quot;https://dougiewougie.com/wp-content/uploads/2024/03/Untitled-removebg-preview.png&quot; width=&quot;611&quot; /&gt;&lt;/figure&gt;</description>
  2947. <pubDate>Sun, 31 Mar 2024 13:35:49 +0000</pubDate>
  2948. </item>
  2949. <item>
  2950. <title>Simos Xenitellis: How to install and setup the Incus Web UI</title>
  2951. <guid isPermaLink="false">https://blog.simos.info/?p=46759</guid>
  2952. <link>https://blog.simos.info/how-to-install-and-setup-the-incus-web-ui/</link>
  2953. <description>&lt;p&gt;&lt;a href=&quot;https://linuxcontainers.org/incus/&quot;&gt;Incus&lt;/a&gt; is a manager for &lt;strong&gt;&lt;em&gt;virtual machines (VM)&lt;/em&gt;&lt;/strong&gt; and &lt;strong&gt;&lt;em&gt;system containers&lt;/em&gt;&lt;/strong&gt;. There is also &lt;a href=&quot;https://discuss.linuxcontainers.org/&quot;&gt;an Incus support forum&lt;/a&gt;.&lt;/p&gt;
  2954.  
  2955.  
  2956.  
  2957. &lt;p&gt;Typically you would use the &lt;code&gt;incus&lt;/code&gt; command-line interface (CLI) client to get access to the Incus manager and perform the tasks for the full life-cycle of the virtual machines and system containers. &lt;/p&gt;
  2958.  
  2959.  
  2960.  
  2961. &lt;p&gt;In this post we see how to install and setup the Incus Web UI. Just like the &lt;code&gt;incus&lt;/code&gt; CLI tool that gets access to the REST API of the Incus manager (through a Unix socket or HTTPS), the Incus Web UI does the same over HTTPS. I assume that you have already installed and setup Incus.&lt;/p&gt;
  2962.  
  2963.  
  2964. &lt;h2 class=&quot;simpletoc-title&quot;&gt;Table of Contents&lt;/h2&gt;
  2965. &lt;ul class=&quot;simpletoc-list&quot;&gt;
  2966. &lt;li&gt;&lt;a href=&quot;https://blog.simos.info/category/planet-ubuntu/feed/?mrss=off#prerequisites&quot;&gt;Prerequisites&lt;/a&gt;
  2967.  
  2968. &lt;/li&gt;
  2969. &lt;li&gt;&lt;a href=&quot;https://blog.simos.info/category/planet-ubuntu/feed/?mrss=off#installing-the-incus-web-ui-package&quot;&gt;Installing the Incus Web UI package&lt;/a&gt;
  2970.  
  2971. &lt;/li&gt;
  2972. &lt;li&gt;&lt;a href=&quot;https://blog.simos.info/category/planet-ubuntu/feed/?mrss=off#preparing-incus-to-serve-the-web-ui&quot;&gt;Preparing Incus to serve the Web UI&lt;/a&gt;
  2973.  
  2974. &lt;/li&gt;
  2975. &lt;li&gt;&lt;a href=&quot;https://blog.simos.info/category/planet-ubuntu/feed/?mrss=off#getting-the-browser-to-authenticate-to-the-server&quot;&gt;Getting the browser to authenticate to the server&lt;/a&gt;
  2976.  
  2977. &lt;/li&gt;
  2978. &lt;li&gt;&lt;a href=&quot;https://blog.simos.info/category/planet-ubuntu/feed/?mrss=off#using-the-incus-ui&quot;&gt;Using the Incus UI&lt;/a&gt;
  2979.  
  2980. &lt;/li&gt;
  2981. &lt;li&gt;&lt;a href=&quot;https://blog.simos.info/category/planet-ubuntu/feed/?mrss=off#conclusion&quot;&gt;Conclusion&lt;/a&gt;
  2982.  
  2983. &lt;/li&gt;
  2984. &lt;li&gt;&lt;a href=&quot;https://blog.simos.info/category/planet-ubuntu/feed/?mrss=off#tips-and-tricks&quot;&gt;Tips and Tricks&lt;/a&gt;
  2985.  
  2986.  
  2987. &lt;ul&gt;&lt;li&gt;
  2988. &lt;a href=&quot;https://blog.simos.info/category/planet-ubuntu/feed/?mrss=off#how-to-make-the-incus-port-accessible-to-localhost-only&quot;&gt;How to make the Incus port accessible to localhost only&lt;/a&gt;
  2989.  
  2990. &lt;/li&gt;
  2991. &lt;li&gt;&lt;a href=&quot;https://blog.simos.info/category/planet-ubuntu/feed/?mrss=off#whats-in-incusuicrt-and-incusuipfx&quot;&gt;What’s in incus-ui.crt and incus-ui.pfx?&lt;/a&gt;
  2992.  
  2993. &lt;/li&gt;
  2994. &lt;/ul&gt;
  2995. &lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://blog.simos.info/category/planet-ubuntu/feed/?mrss=off#troubleshooting&quot;&gt;Troubleshooting&lt;/a&gt;
  2996.  
  2997.  
  2998. &lt;ul&gt;&lt;li&gt;
  2999. &lt;a href=&quot;https://blog.simos.info/category/planet-ubuntu/feed/?mrss=off#error-unable-to-connect&quot;&gt;Error: Unable to connect&lt;/a&gt;
  3000.  
  3001. &lt;/li&gt;
  3002. &lt;li&gt;&lt;a href=&quot;https://blog.simos.info/category/planet-ubuntu/feed/?mrss=off#error-client-sent-an-http-request-to-an-https-server&quot;&gt;Error: Client sent an HTTP request to an HTTPS server&lt;/a&gt;
  3003.  
  3004. &lt;/li&gt;
  3005. &lt;li&gt;&lt;a href=&quot;https://blog.simos.info/category/planet-ubuntu/feed/?mrss=off#warning-potential-security-risk-ahead&quot;&gt;Warning: Potential Security Risk Ahead&lt;/a&gt;
  3006. &lt;/li&gt;
  3007. &lt;/ul&gt;
  3008. &lt;/li&gt;&lt;/ul&gt;
  3009.  
  3010. &lt;h2 class=&quot;wp-block-heading&quot; id=&quot;prerequisites&quot;&gt;Prerequisites&lt;/h2&gt;
  3011.  
  3012.  
  3013. &lt;p&gt;You should already have a installation of Incus. If you do not have yet, see the official documentation on &lt;a href=&quot;https://linuxcontainers.org/incus/docs/main/tutorial/first_steps/&quot;&gt;Incus installation&lt;/a&gt; and &lt;a href=&quot;https://linuxcontainers.org/incus/docs/main/howto/server_migrate_lxd/&quot;&gt;Incus migration&lt;/a&gt;, or my prior posts on &lt;a href=&quot;https://blog.simos.info/how-to-install-and-set-up-incus-on-a-cloud-server/&quot;&gt;Incus installation&lt;/a&gt; and &lt;a href=&quot;https://blog.simos.info/migrating-to-incus-from-lxd/&quot;&gt;Incus migration&lt;/a&gt;.&lt;/p&gt;
  3014.  
  3015.  
  3016. &lt;h2 class=&quot;wp-block-heading&quot; id=&quot;installing-the-incus-web-ui-package&quot;&gt;Installing the Incus Web UI package&lt;/h2&gt;
  3017.  
  3018.  
  3019. &lt;p&gt;The Incus Web UI package is &lt;code&gt;incus-ui-canonical&lt;/code&gt;. We install it. By installing the package, we can enable Incus to serve the necessary Web pages (from &lt;code&gt;/opt/incus/ui&lt;/code&gt;) so that we can connect with our browser and manage Incus itself. &lt;/p&gt;
  3020.  
  3021.  
  3022.  
  3023. &lt;pre class=&quot;wp-block-code&quot;&gt;&lt;code&gt;&lt;kbd&gt;sudo apt install -y incus-ui-canonical&lt;/kbd&gt;&lt;/code&gt;&lt;/pre&gt;
  3024.  
  3025.  
  3026. &lt;h2 class=&quot;wp-block-heading&quot; id=&quot;preparing-incus-to-serve-the-web-ui&quot;&gt;Preparing Incus to serve the Web UI&lt;/h2&gt;
  3027.  
  3028.  
  3029. &lt;p&gt;By default Incus is not &lt;em&gt;listening&lt;/em&gt; to a Web port so that we can access directly through the browser. &lt;a href=&quot;https://linuxcontainers.org/incus/docs/main/howto/server_expose/&quot;&gt;We need to enable first Incus to activate access to the Web browser.&lt;/a&gt; By default there is no configuration with &lt;code&gt;incus config show&lt;/code&gt;.&lt;/p&gt;
  3030.  
  3031.  
  3032.  
  3033. &lt;pre class=&quot;wp-block-code&quot;&gt;&lt;code&gt;debian@myincus:~$ &lt;kbd&gt;incus config show &lt;/kbd&gt;
  3034. config: {}
  3035. debian@myincus:~$ &lt;/code&gt;&lt;/pre&gt;
  3036.  
  3037.  
  3038.  
  3039. &lt;p&gt;We activate the Incus Web server, selecting the port number 8443. You are free to select another one, if you need to. We set &lt;code&gt;core.https_address&lt;/code&gt; to &lt;code&gt;:8443&lt;/code&gt;. This information appears in the &lt;code&gt;incus config&lt;/code&gt; output.&lt;/p&gt;
  3040.  
  3041.  
  3042.  
  3043. &lt;pre class=&quot;wp-block-code&quot;&gt;&lt;code&gt;debian@myincus:~$ &lt;kbd&gt;incus config set core.https_address :8443&lt;/kbd&gt;
  3044. debian@myincus:~$ &lt;kbd&gt;incus config show &lt;/kbd&gt;
  3045. config:
  3046.  core.https_address: :8443
  3047. debian@myincus:~$ &lt;/code&gt;&lt;/pre&gt;
  3048.  
  3049.  
  3050.  
  3051. &lt;p&gt;Let’s verify that Incus is now listening to port 8443. Yes, it does. On all interfaces (because of the &lt;code&gt;*&lt;/code&gt;).&lt;/p&gt;
  3052.  
  3053.  
  3054.  
  3055. &lt;pre class=&quot;wp-block-code&quot;&gt;&lt;code&gt;debian@myincus:~$ &lt;kbd&gt;sudo apt install -y lsof&lt;/kbd&gt;
  3056. ...
  3057. debian@myincus:~$ &lt;kbd&gt;sudo lsof -i :8443&lt;/kbd&gt;
  3058. COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
  3059. incusd  8338 root    8u  IPv6  29751      0t0  TCP *:8443 (LISTEN)
  3060. debian@myincus:~$ &lt;/code&gt;&lt;/pre&gt;
  3061.  
  3062.  
  3063.  
  3064. &lt;p&gt;This is HTTPS, where are the certificate and the server key (private key)?&lt;/p&gt;
  3065.  
  3066.  
  3067.  
  3068. &lt;pre class=&quot;wp-block-code&quot;&gt;&lt;code&gt;debian@myincus:~$ &lt;kbd&gt;sudo ls -l /var/lib/incus/server.key /var/lib/incus/server.crt&lt;/kbd&gt;
  3069. -rw-r--r-- 1 root root 753 Mar 28 18:54 /var/lib/incus/server.crt
  3070. -rw------- 1 root root 288 Mar 28 18:54 /var/lib/incus/server.key
  3071. debian@myincus:~$ &lt;kbd&gt;sudo openssl x509 -in /var/lib/incus/server.crt -text -noout&lt;/kbd&gt;
  3072. Certificate:
  3073.    Data:
  3074.        Version: 3 (0x2)
  3075.        Serial Number:
  3076.            22:05:f1:14:f2:82:43:68:44:5e:1c:42:4c:28:5b:5c
  3077.        Signature Algorithm: ecdsa-with-SHA384
  3078.        Issuer: O = Linux Containers, CN = root@myincus
  3079.        Validity
  3080.            Not Before: Mar 28 18:54:17 2024 GMT
  3081.            Not After : Mar 26 18:54:17 2034 GMT
  3082.        Subject: O = Linux Containers, CN = root@myincus
  3083.        Subject Public Key Info:
  3084.            Public Key Algorithm: id-ecPublicKey
  3085.                Public-Key: (384 bit)
  3086.                pub:
  3087.                    04:fb:cd:b6:b2:25:55:68:a5:33:75:48:4c:b0:7a:
  3088.                    2f:e9:c0:16:af:6f:b2:36:f9:19:6e:b0:86:bf:d1:
  3089.                    9f:07:16:b1:26:8b:75:36:f2:fc:02:38:c7:fa:25:
  3090.                    39:01:6c:bb:48:a9:4f:57:0d:af:e1:0f:a3:cf:b1:
  3091.                    7c:a2:d9:46:77:e7:94:c7:00:1a:d0:5f:5f:93:d8:
  3092.                    11:39:8d:16:0e:d0:62:98:81:93:da:ec:b8:70:24:
  3093.                    f2:c4:da:91:0f:f8:8e
  3094.                ASN1 OID: secp384r1
  3095.                NIST CURVE: P-384
  3096.        X509v3 extensions:
  3097.            X509v3 Key Usage: critical
  3098.                Digital Signature, Key Encipherment
  3099.            X509v3 Extended Key Usage:
  3100.                TLS Web Server Authentication
  3101.            X509v3 Basic Constraints: critical
  3102.                CA:FALSE
  3103.            X509v3 Subject Alternative Name:
  3104.                DNS:myincus, IP Address:127.0.0.1, IP Address:0:0:0:0:0:0:0:1
  3105.    Signature Algorithm: ecdsa-with-SHA384
  3106.    Signature Value:
  3107.        30:64:02:30:15:f4:fa:7b:d6:52:79:d4:c9:27:b9:d6:6c:90:
  3108.        f7:0e:13:83:15:ac:af:cd:c5:f2:48:08:99:7f:7b:94:55:06:
  3109.        81:95:80:5f:0a:21:17:82:61:ac:5a:b6:5f:b8:49:b3:02:30:
  3110.        62:a3:92:66:da:ce:7c:01:49:7e:38:16:c6:16:b3:cb:aa:3d:
  3111.        1d:3f:63:12:93:e8:a1:0b:55:f0:80:99:d5:80:8a:a3:a6:2e:
  3112.        3d:68:90:a6:dc:55:29:0b:36:80:36:72
  3113.  
  3114. debian@myincus:~$&lt;/code&gt;&lt;/pre&gt;
  3115.  
  3116.  
  3117.  
  3118. &lt;p&gt;Note that this is a self-signed certificate. Chrome, Firefox and other browsers will complain; you can still accept to continue but it will show a broken padlock at the address bar. If you wish, you can replace these with proper certificates so that the padlock is intact. To do so, once you replace the server key and the server certificate with actual values, restart Incus. If, however, you are running an Incus cluster, you must use &lt;code&gt;lxc cluster update-certificate&lt;/code&gt; instead to update them. Note that a common alternative to dealing with Incus certificates, is to use a reverse-proxy; you get the reverse-proxy to use a proper certificate and leave Incus as is.&lt;/p&gt;
  3119.  
  3120.  
  3121.  
  3122. &lt;p&gt;At this point Incus is configured. We can continue with the next step where we get the client (our browser) to be authenticated to the server. &lt;/p&gt;
  3123.  
  3124.  
  3125. &lt;h2 class=&quot;wp-block-heading&quot; id=&quot;getting-the-browser-to-authenticate-to-the-server&quot;&gt;Getting the browser to authenticate to the server&lt;/h2&gt;
  3126.  
  3127.  
  3128. &lt;p&gt;Visit the URL of your Incus server with your browser. At first you will likely confronted with a message that the server certificate is not accepted (&lt;em&gt;Warning: Potential Security Risk Ahead&lt;/em&gt;). Click to &lt;em&gt;Accept&lt;/em&gt; and continue. Then, you are presented with the following screen that asks you to login. You are authenticated to the Incus server through &lt;em&gt;user certificates&lt;/em&gt;. You are prompted here to do just that. Your browser will create &lt;/p&gt;
  3129.  
  3130.  
  3131.  
  3132. &lt;ol&gt;
  3133. &lt;li&gt;a user certificate to be installed into Incus (&lt;code&gt;incus-ui.crt&lt;/code&gt;)&lt;/li&gt;
  3134.  
  3135.  
  3136.  
  3137. &lt;li&gt;the same user certificate with a private key that will be setup in your browser(s) (&lt;code&gt;incus-ui.pfx&lt;/code&gt;).&lt;/li&gt;
  3138. &lt;/ol&gt;
  3139.  
  3140.  
  3141.  
  3142. &lt;p&gt;Click on &lt;strong&gt;&lt;em&gt;Create a new certificate&lt;/em&gt;&lt;/strong&gt;.&lt;/p&gt;
  3143.  
  3144.  
  3145. &lt;div class=&quot;wp-block-image&quot;&gt;
  3146. &lt;figure class=&quot;aligncenter size-full&quot;&gt;&lt;a href=&quot;https://i0.wp.com/blog.simos.info/wp-content/uploads/2024/03/image-1.png?ssl=1&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-46763&quot; data-attachment-id=&quot;46763&quot; data-comments-opened=&quot;1&quot; data-image-caption=&quot;&quot; data-image-description=&quot;&quot; data-image-meta=&quot;{&amp;quot;aperture&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;credit&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;camera&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;caption&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;created_timestamp&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;copyright&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;focal_length&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;iso&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;shutter_speed&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;title&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;orientation&amp;quot;:&amp;quot;0&amp;quot;}&quot; data-image-title=&quot;image-1&quot; data-large-file=&quot;https://i0.wp.com/blog.simos.info/wp-content/uploads/2024/03/image-1.png?fit=750%2C485&amp;amp;ssl=1&quot; data-medium-file=&quot;https://i0.wp.com/blog.simos.info/wp-content/uploads/2024/03/image-1.png?fit=300%2C194&amp;amp;ssl=1&quot; data-orig-file=&quot;https://i0.wp.com/blog.simos.info/wp-content/uploads/2024/03/image-1.png?fit=822%2C532&amp;amp;ssl=1&quot; data-orig-size=&quot;822,532&quot; data-permalink=&quot;https://blog.simos.info/how-to-install-and-setup-the-incus-web-ui/image-1/&quot; data-recalc-dims=&quot;1&quot; height=&quot;485&quot; src=&quot;https://i0.wp.com/blog.simos.info/wp-content/uploads/2024/03/image-1.png?resize=750%2C485&amp;amp;ssl=1&quot; width=&quot;750&quot; /&gt;&lt;/a&gt;Creating a new certificate.&lt;/figure&gt;&lt;/div&gt;
  3147.  
  3148.  
  3149. &lt;p&gt;Now click on &lt;strong&gt;&lt;em&gt;Generate&lt;/em&gt;&lt;/strong&gt; to get your browser to generate the private key and the certificate. &lt;/p&gt;
  3150.  
  3151.  
  3152.  
  3153. &lt;figure class=&quot;wp-block-image size-large&quot;&gt;&lt;a href=&quot;https://i0.wp.com/blog.simos.info/wp-content/uploads/2024/03/image-2.png?ssl=1&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-46766&quot; data-attachment-id=&quot;46766&quot; data-comments-opened=&quot;1&quot; data-image-caption=&quot;&quot; data-image-description=&quot;&quot; data-image-meta=&quot;{&amp;quot;aperture&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;credit&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;camera&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;caption&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;created_timestamp&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;copyright&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;focal_length&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;iso&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;shutter_speed&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;title&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;orientation&amp;quot;:&amp;quot;0&amp;quot;}&quot; data-image-title=&quot;image-2&quot; data-large-file=&quot;https://i0.wp.com/blog.simos.info/wp-content/uploads/2024/03/image-2.png?fit=750%2C641&amp;amp;ssl=1&quot; data-medium-file=&quot;https://i0.wp.com/blog.simos.info/wp-content/uploads/2024/03/image-2.png?fit=300%2C256&amp;amp;ssl=1&quot; data-orig-file=&quot;https://i0.wp.com/blog.simos.info/wp-content/uploads/2024/03/image-2.png?fit=1115%2C953&amp;amp;ssl=1&quot; data-orig-size=&quot;1115,953&quot; data-permalink=&quot;https://blog.simos.info/how-to-install-and-setup-the-incus-web-ui/image-2/&quot; data-recalc-dims=&quot;1&quot; height=&quot;641&quot; src=&quot;https://i0.wp.com/blog.simos.info/wp-content/uploads/2024/03/image-2.png?resize=750%2C641&amp;amp;ssl=1&quot; width=&quot;750&quot; /&gt;&lt;/a&gt;&lt;/figure&gt;
  3154.  
  3155.  
  3156.  
  3157. &lt;p&gt;&lt;/p&gt;
  3158.  
  3159.  
  3160.  
  3161. &lt;p&gt;You are asked whether you want to protect the certificate with a password. In our case we click on &lt;strong&gt;&lt;em&gt;Skip&lt;/em&gt;&lt;/strong&gt; because we do not want to encrypt the private key with a password. By clicking on &lt;strong&gt;&lt;em&gt;Skip&lt;/em&gt;&lt;/strong&gt;, the private key is still generated but it is not getting encrypted.&lt;/p&gt;
  3162.  
  3163.  
  3164. &lt;div class=&quot;wp-block-image&quot;&gt;
  3165. &lt;figure class=&quot;aligncenter size-full&quot;&gt;&lt;a href=&quot;https://i0.wp.com/blog.simos.info/wp-content/uploads/2024/03/image-3.png?ssl=1&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-46767&quot; data-attachment-id=&quot;46767&quot; data-comments-opened=&quot;1&quot; data-image-caption=&quot;&quot; data-image-description=&quot;&quot; data-image-meta=&quot;{&amp;quot;aperture&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;credit&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;camera&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;caption&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;created_timestamp&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;copyright&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;focal_length&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;iso&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;shutter_speed&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;title&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;orientation&amp;quot;:&amp;quot;0&amp;quot;}&quot; data-image-title=&quot;image-3&quot; data-large-file=&quot;https://i0.wp.com/blog.simos.info/wp-content/uploads/2024/03/image-3.png?fit=626%2C446&amp;amp;ssl=1&quot; data-medium-file=&quot;https://i0.wp.com/blog.simos.info/wp-content/uploads/2024/03/image-3.png?fit=300%2C214&amp;amp;ssl=1&quot; data-orig-file=&quot;https://i0.wp.com/blog.simos.info/wp-content/uploads/2024/03/image-3.png?fit=626%2C446&amp;amp;ssl=1&quot; data-orig-size=&quot;626,446&quot; data-permalink=&quot;https://blog.simos.info/how-to-install-and-setup-the-incus-web-ui/image-3/&quot; data-recalc-dims=&quot;1&quot; height=&quot;446&quot; src=&quot;https://i0.wp.com/blog.simos.info/wp-content/uploads/2024/03/image-3.png?resize=626%2C446&amp;amp;ssl=1&quot; width=&quot;626&quot; /&gt;&lt;/a&gt;&lt;/figure&gt;&lt;/div&gt;
  3166.  
  3167.  
  3168. &lt;p&gt;At this point the browser generated &lt;code&gt;incus-ui.crt&lt;/code&gt;, which is the user certificate to install in Incus. In the following we added the user certificate to Incus.&lt;/p&gt;
  3169.  
  3170.  
  3171.  
  3172. &lt;pre class=&quot;wp-block-code&quot;&gt;&lt;code&gt;debian@myincus:~$ &lt;kbd&gt;incus config trust list&lt;/kbd&gt;
  3173. +------+------+-------------+-------------+-------------+
  3174. | NAME | TYPE | DESCRIPTION | FINGERPRINT | EXPIRY DATE |
  3175. +------+------+-------------+-------------+-------------+
  3176. debian@myincus:~$ &lt;kbd&gt;incus config trust add-certificate incus-ui.crt&lt;/kbd&gt;
  3177. debian@myincus:~$ &lt;kbd&gt;incus config trust list&lt;/kbd&gt;
  3178. +--------------+--------+-------------+--------------+----------------------+
  3179. |     NAME     |  TYPE  | DESCRIPTION | FINGERPRINT  |     EXPIRY DATE      |
  3180. +--------------+--------+-------------+--------------+----------------------+
  3181. | incus-ui.crt | client |             | b89b80eb4c89 | 2026/12/23 21:08 UTC |
  3182. +--------------+--------+-------------+--------------+----------------------+
  3183. debian@myincus:~$ &lt;/code&gt;&lt;/pre&gt;
  3184.  
  3185.  
  3186. &lt;div class=&quot;wp-block-image&quot;&gt;
  3187. &lt;figure class=&quot;aligncenter size-large&quot;&gt;&lt;a href=&quot;https://i0.wp.com/blog.simos.info/wp-content/uploads/2024/03/image-4.png?ssl=1&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-46768&quot; data-attachment-id=&quot;46768&quot; data-comments-opened=&quot;1&quot; data-image-caption=&quot;&quot; data-image-description=&quot;&quot; data-image-meta=&quot;{&amp;quot;aperture&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;credit&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;camera&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;caption&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;created_timestamp&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;copyright&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;focal_length&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;iso&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;shutter_speed&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;title&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;orientation&amp;quot;:&amp;quot;0&amp;quot;}&quot; data-image-title=&quot;image-4&quot; data-large-file=&quot;https://i0.wp.com/blog.simos.info/wp-content/uploads/2024/03/image-4.png?fit=750%2C641&amp;amp;ssl=1&quot; data-medium-file=&quot;https://i0.wp.com/blog.simos.info/wp-content/uploads/2024/03/image-4.png?fit=300%2C256&amp;amp;ssl=1&quot; data-orig-file=&quot;https://i0.wp.com/blog.simos.info/wp-content/uploads/2024/03/image-4.png?fit=1115%2C953&amp;amp;ssl=1&quot; data-orig-size=&quot;1115,953&quot; data-permalink=&quot;https://blog.simos.info/how-to-install-and-setup-the-incus-web-ui/image-4/&quot; data-recalc-dims=&quot;1&quot; height=&quot;641&quot; src=&quot;https://i0.wp.com/blog.simos.info/wp-content/uploads/2024/03/image-4.png?resize=750%2C641&amp;amp;ssl=1&quot; width=&quot;750&quot; /&gt;&lt;/a&gt;The two files have been generated. We are adding &lt;code&gt;incus-ui.crt&lt;/code&gt; to Incus, and &lt;code&gt;incus-ui.pfx&lt;/code&gt; to the Web browser. &lt;/figure&gt;&lt;/div&gt;
  3188.  
  3189.  
  3190. &lt;p&gt;The page above has instructions on how to add the user certificate to Firefox, Chrome, Edge and macOS. For example, for the case of Firefox, type the following to the address bar and press Enter. Alternatively, go to Settings→Privacy &amp;amp; Security→Certificates. There, click on &lt;strong&gt;&lt;em&gt;View Certificates…&lt;/em&gt;&lt;/strong&gt; and select the &lt;strong&gt;&lt;em&gt;Your Certificates&lt;/em&gt;&lt;/strong&gt; tab. Finally, click to Import… the &lt;code&gt;incus-ui.pfx&lt;/code&gt; certificate file.&lt;/p&gt;
  3191.  
  3192.  
  3193.  
  3194. &lt;pre class=&quot;wp-block-code&quot;&gt;&lt;code&gt;about:preferences#privacy&lt;/code&gt;&lt;/pre&gt;
  3195.  
  3196.  
  3197. &lt;div class=&quot;wp-block-image&quot;&gt;
  3198. &lt;figure class=&quot;aligncenter size-full&quot;&gt;&lt;a href=&quot;https://i0.wp.com/blog.simos.info/wp-content/uploads/2024/03/image-5.png?ssl=1&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-46769&quot; data-attachment-id=&quot;46769&quot; data-comments-opened=&quot;1&quot; data-image-caption=&quot;&quot; data-image-description=&quot;&quot; data-image-meta=&quot;{&amp;quot;aperture&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;credit&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;camera&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;caption&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;created_timestamp&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;copyright&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;focal_length&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;iso&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;shutter_speed&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;title&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;orientation&amp;quot;:&amp;quot;0&amp;quot;}&quot; data-image-title=&quot;image-5&quot; data-large-file=&quot;https://i0.wp.com/blog.simos.info/wp-content/uploads/2024/03/image-5.png?fit=750%2C175&amp;amp;ssl=1&quot; data-medium-file=&quot;https://i0.wp.com/blog.simos.info/wp-content/uploads/2024/03/image-5.png?fit=300%2C70&amp;amp;ssl=1&quot; data-orig-file=&quot;https://i0.wp.com/blog.simos.info/wp-content/uploads/2024/03/image-5.png?fit=768%2C179&amp;amp;ssl=1&quot; data-orig-size=&quot;768,179&quot; data-permalink=&quot;https://blog.simos.info/how-to-install-and-setup-the-incus-web-ui/image-5/&quot; data-recalc-dims=&quot;1&quot; height=&quot;175&quot; src=&quot;https://i0.wp.com/blog.simos.info/wp-content/uploads/2024/03/image-5.png?resize=750%2C175&amp;amp;ssl=1&quot; width=&quot;750&quot; /&gt;&lt;/a&gt;This is found in Firefox under &lt;strong&gt;&lt;em&gt;Settings&lt;/em&gt;&lt;/strong&gt;→&lt;strong&gt;&lt;em&gt;Privacy &amp;amp; Security&lt;/em&gt;&lt;/strong&gt;→&lt;strong&gt;&lt;em&gt;Certificates&lt;/em&gt;&lt;/strong&gt;.&lt;/figure&gt;&lt;/div&gt;
  3199.  
  3200.  
  3201. &lt;p&gt;When you add the &lt;code&gt;incus-ui.pfx&lt;/code&gt; user certificate in Firefox, it will appear as in the following screenshot.&lt;/p&gt;
  3202.  
  3203.  
  3204. &lt;div class=&quot;wp-block-image&quot;&gt;
  3205. &lt;figure class=&quot;aligncenter size-full&quot;&gt;&lt;a href=&quot;https://i0.wp.com/blog.simos.info/wp-content/uploads/2024/03/image-6.png?ssl=1&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-46770&quot; data-attachment-id=&quot;46770&quot; data-comments-opened=&quot;1&quot; data-image-caption=&quot;&quot; data-image-description=&quot;&quot; data-image-meta=&quot;{&amp;quot;aperture&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;credit&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;camera&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;caption&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;created_timestamp&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;copyright&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;focal_length&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;iso&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;shutter_speed&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;title&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;orientation&amp;quot;:&amp;quot;0&amp;quot;}&quot; data-image-title=&quot;image-6&quot; data-large-file=&quot;https://i0.wp.com/blog.simos.info/wp-content/uploads/2024/03/image-6.png?fit=705%2C482&amp;amp;ssl=1&quot; data-medium-file=&quot;https://i0.wp.com/blog.simos.info/wp-content/uploads/2024/03/image-6.png?fit=300%2C205&amp;amp;ssl=1&quot; data-orig-file=&quot;https://i0.wp.com/blog.simos.info/wp-content/uploads/2024/03/image-6.png?fit=705%2C482&amp;amp;ssl=1&quot; data-orig-size=&quot;705,482&quot; data-permalink=&quot;https://blog.simos.info/how-to-install-and-setup-the-incus-web-ui/image-6/&quot; data-recalc-dims=&quot;1&quot; height=&quot;482&quot; src=&quot;https://i0.wp.com/blog.simos.info/wp-content/uploads/2024/03/image-6.png?resize=705%2C482&amp;amp;ssl=1&quot; width=&quot;705&quot; /&gt;&lt;/a&gt;The &lt;code&gt;incus-ui.pfx&lt;/code&gt; certificate has been added to this instance of Firefox.&lt;/figure&gt;&lt;/div&gt;
  3206.  
  3207.  
  3208. &lt;p&gt;Subsequently, switch back to the Firefox tab with the Incus UI page and you are shown the following prompt to get your browser to send the user certificate to the Incus manager in order to get authenticated, and be able to manage Incus through the Web. Click on &lt;strong&gt;&lt;em&gt;OK&lt;/em&gt;&lt;/strong&gt;.&lt;/p&gt;
  3209.  
  3210.  
  3211. &lt;div class=&quot;wp-block-image&quot;&gt;
  3212. &lt;figure class=&quot;aligncenter size-large&quot;&gt;&lt;a href=&quot;https://i0.wp.com/blog.simos.info/wp-content/uploads/2024/03/image-7.png?ssl=1&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-46771&quot; data-attachment-id=&quot;46771&quot; data-comments-opened=&quot;1&quot; data-image-caption=&quot;&quot; data-image-description=&quot;&quot; data-image-meta=&quot;{&amp;quot;aperture&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;credit&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;camera&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;caption&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;created_timestamp&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;copyright&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;focal_length&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;iso&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;shutter_speed&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;title&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;orientation&amp;quot;:&amp;quot;0&amp;quot;}&quot; data-image-title=&quot;image-7&quot; data-large-file=&quot;https://i0.wp.com/blog.simos.info/wp-content/uploads/2024/03/image-7.png?fit=750%2C311&amp;amp;ssl=1&quot; data-medium-file=&quot;https://i0.wp.com/blog.simos.info/wp-content/uploads/2024/03/image-7.png?fit=300%2C125&amp;amp;ssl=1&quot; data-orig-file=&quot;https://i0.wp.com/blog.simos.info/wp-content/uploads/2024/03/image-7.png?fit=1057%2C439&amp;amp;ssl=1&quot; data-orig-size=&quot;1057,439&quot; data-permalink=&quot;https://blog.simos.info/how-to-install-and-setup-the-incus-web-ui/image-7/&quot; data-recalc-dims=&quot;1&quot; height=&quot;311&quot; src=&quot;https://i0.wp.com/blog.simos.info/wp-content/uploads/2024/03/image-7.png?resize=750%2C311&amp;amp;ssl=1&quot; width=&quot;750&quot; /&gt;&lt;/a&gt;You are prompted to identify yourself to Incus UI in order to be able to manage the Incus installation.&lt;/figure&gt;&lt;/div&gt;
  3213.  
  3214.  
  3215. &lt;p&gt;Finally, you are able to manage Incus over the Web with Incus UI. The Web page loads up and you can perform all tasks that you can do with the &lt;code&gt;incus&lt;/code&gt; command-line client.&lt;/p&gt;
  3216.  
  3217.  
  3218. &lt;div class=&quot;wp-block-image&quot;&gt;
  3219. &lt;figure class=&quot;aligncenter size-full&quot;&gt;&lt;a href=&quot;https://i0.wp.com/blog.simos.info/wp-content/uploads/2024/03/image-8.png?ssl=1&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-46772&quot; data-attachment-id=&quot;46772&quot; data-comments-opened=&quot;1&quot; data-image-caption=&quot;&quot; data-image-description=&quot;&quot; data-image-meta=&quot;{&amp;quot;aperture&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;credit&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;camera&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;caption&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;created_timestamp&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;copyright&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;focal_length&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;iso&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;shutter_speed&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;title&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;orientation&amp;quot;:&amp;quot;0&amp;quot;}&quot; data-image-title=&quot;image-8&quot; data-large-file=&quot;https://i0.wp.com/blog.simos.info/wp-content/uploads/2024/03/image-8.png?fit=750%2C584&amp;amp;ssl=1&quot; data-medium-file=&quot;https://i0.wp.com/blog.simos.info/wp-content/uploads/2024/03/image-8.png?fit=300%2C233&amp;amp;ssl=1&quot; data-orig-file=&quot;https://i0.wp.com/blog.simos.info/wp-content/uploads/2024/03/image-8.png?fit=865%2C673&amp;amp;ssl=1&quot; data-orig-size=&quot;865,673&quot; data-permalink=&quot;https://blog.simos.info/how-to-install-and-setup-the-incus-web-ui/image-8/&quot; data-recalc-dims=&quot;1&quot; height=&quot;584&quot; src=&quot;https://i0.wp.com/blog.simos.info/wp-content/uploads/2024/03/image-8.png?resize=750%2C584&amp;amp;ssl=1&quot; width=&quot;750&quot; /&gt;&lt;/a&gt;Your browser is now authenticated through your user certificate and you can manage Incus over the Web with Incus UI.&lt;/figure&gt;&lt;/div&gt;
  3220.  
  3221. &lt;h2 class=&quot;wp-block-heading&quot; id=&quot;using-the-incus-ui&quot;&gt;Using the Incus UI&lt;/h2&gt;
  3222.  
  3223.  
  3224. &lt;p&gt;We click on &lt;strong&gt;&lt;em&gt;Create Instance&lt;/em&gt;&lt;/strong&gt; to create a first instance. We select from the list which image to use, then click to &lt;strong&gt;&lt;em&gt;Create and start&lt;/em&gt;&lt;/strong&gt;.&lt;/p&gt;
  3225.  
  3226.  
  3227. &lt;div class=&quot;wp-block-image&quot;&gt;
  3228. &lt;figure class=&quot;aligncenter size-large&quot;&gt;&lt;a href=&quot;https://i0.wp.com/blog.simos.info/wp-content/uploads/2024/03/image-9.png?ssl=1&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-46774&quot; data-attachment-id=&quot;46774&quot; data-comments-opened=&quot;1&quot; data-image-caption=&quot;&quot; data-image-description=&quot;&quot; data-image-meta=&quot;{&amp;quot;aperture&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;credit&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;camera&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;caption&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;created_timestamp&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;copyright&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;focal_length&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;iso&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;shutter_speed&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;title&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;orientation&amp;quot;:&amp;quot;0&amp;quot;}&quot; data-image-title=&quot;image-9&quot; data-large-file=&quot;https://i0.wp.com/blog.simos.info/wp-content/uploads/2024/03/image-9.png?fit=750%2C454&amp;amp;ssl=1&quot; data-medium-file=&quot;https://i0.wp.com/blog.simos.info/wp-content/uploads/2024/03/image-9.png?fit=300%2C182&amp;amp;ssl=1&quot; data-orig-file=&quot;https://i0.wp.com/blog.simos.info/wp-content/uploads/2024/03/image-9.png?fit=1099%2C665&amp;amp;ssl=1&quot; data-orig-size=&quot;1099,665&quot; data-permalink=&quot;https://blog.simos.info/how-to-install-and-setup-the-incus-web-ui/image-9/&quot; data-recalc-dims=&quot;1&quot; height=&quot;454&quot; src=&quot;https://i0.wp.com/blog.simos.info/wp-content/uploads/2024/03/image-9.png?resize=750%2C454&amp;amp;ssl=1&quot; width=&quot;750&quot; /&gt;&lt;/a&gt;Creating an instance and starting it.&lt;/figure&gt;&lt;/div&gt;
  3229.  
  3230.  
  3231. &lt;p&gt;While the instance is created, you are updated with the different steps that take place. In the end, the instance is successfully launched.&lt;/p&gt;
  3232.  
  3233.  
  3234. &lt;div class=&quot;wp-block-image&quot;&gt;
  3235. &lt;figure class=&quot;aligncenter size-large&quot;&gt;&lt;a href=&quot;https://i0.wp.com/blog.simos.info/wp-content/uploads/2024/03/Screenshot-2024-03-28-at-23-52-55-10.10.10.98-Incus-UI.png?ssl=1&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-46776&quot; data-attachment-id=&quot;46776&quot; data-comments-opened=&quot;1&quot; data-image-caption=&quot;&quot; data-image-description=&quot;&quot; data-image-meta=&quot;{&amp;quot;aperture&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;credit&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;camera&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;caption&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;created_timestamp&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;copyright&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;focal_length&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;iso&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;shutter_speed&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;title&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;orientation&amp;quot;:&amp;quot;0&amp;quot;}&quot; data-image-title=&quot;Screenshot-2024-03-28-at-23-52-55-10.10.10.98-Incus-UI&quot; data-large-file=&quot;https://i0.wp.com/blog.simos.info/wp-content/uploads/2024/03/Screenshot-2024-03-28-at-23-52-55-10.10.10.98-Incus-UI.png?fit=750%2C454&amp;amp;ssl=1&quot; data-medium-file=&quot;https://i0.wp.com/blog.simos.info/wp-content/uploads/2024/03/Screenshot-2024-03-28-at-23-52-55-10.10.10.98-Incus-UI.png?fit=300%2C182&amp;amp;ssl=1&quot; data-orig-file=&quot;https://i0.wp.com/blog.simos.info/wp-content/uploads/2024/03/Screenshot-2024-03-28-at-23-52-55-10.10.10.98-Incus-UI.png?fit=1099%2C665&amp;amp;ssl=1&quot; data-orig-size=&quot;1099,665&quot; data-permalink=&quot;https://blog.simos.info/how-to-install-and-setup-the-incus-web-ui/screenshot-2024-03-28-at-23-52-55-10-10-10-98-incus-ui/&quot; data-recalc-dims=&quot;1&quot; height=&quot;454&quot; src=&quot;https://i0.wp.com/blog.simos.info/wp-content/uploads/2024/03/Screenshot-2024-03-28-at-23-52-55-10.10.10.98-Incus-UI.png?resize=750%2C454&amp;amp;ssl=1&quot; width=&quot;750&quot; /&gt;&lt;/a&gt;The instance has been created and is running.&lt;/figure&gt;&lt;/div&gt;
  3236.  
  3237. &lt;h2 class=&quot;wp-block-heading&quot; id=&quot;conclusion&quot;&gt;Conclusion&lt;/h2&gt;
  3238.  
  3239.  
  3240. &lt;p&gt;With Incus UI you are able to go through all the workflow of managing Incus instances through your Web browser. Incus UI has been implemented as a stateless Web application, which means that no information are stored on the browser. For example, the browser does not maintain a database with the created instances; the state is maintained on Incus.&lt;/p&gt;
  3241.  
  3242.  
  3243.  
  3244. &lt;p&gt;There are a few more UI Web applications for Incus, including &lt;code&gt;&lt;a href=&quot;https://github.com/melato/lxops&quot;&gt;lxops&lt;/a&gt;&lt;/code&gt;. At some point in the future I expect to cover them as well.&lt;/p&gt;
  3245.  
  3246.  
  3247. &lt;h2 class=&quot;wp-block-heading&quot; id=&quot;tips-and-tricks&quot;&gt;Tips and Tricks&lt;/h2&gt;
  3248.  
  3249. &lt;h3 class=&quot;wp-block-heading&quot; id=&quot;how-to-make-the-incus-port-accessible-to-localhost-only&quot;&gt;How to make the Incus port accessible to localhost only&lt;/h3&gt;
  3250.  
  3251.  
  3252. &lt;p&gt;The address has the format of &amp;lt;&lt;em&gt;ip address&lt;/em&gt;&amp;gt;:&amp;lt;&lt;em&gt;port&lt;/em&gt;&amp;gt;. You can specify &lt;em&gt;localhost&lt;/em&gt; (127.0.0.1) for the part of the IP address. By doing so, Incus will only bind to &lt;em&gt;localhost&lt;/em&gt; and listen to local connections only.&lt;/p&gt;
  3253.  
  3254.  
  3255.  
  3256. &lt;pre class=&quot;wp-block-code&quot;&gt;&lt;code&gt;debian@myincus:~$ &lt;kbd&gt;incus config show&lt;/kbd&gt;
  3257. config:
  3258.  core.https_address: :8443
  3259. debian@myincus:~$ &lt;kbd&gt;incus config set core.https_address 127.0.0.1:8443&lt;/kbd&gt;
  3260. debian@myincus:~$ &lt;kbd&gt;incus config show&lt;/kbd&gt;
  3261. config:
  3262.  core.https_address: 127.0.0.1:8443
  3263. debian@myincus:~$ &lt;kbd&gt;sudo lsof -i :8443&lt;/kbd&gt;
  3264. COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
  3265. incusd  8338 root    8u  IPv4  30315      0t0  TCP localhost:8443 (LISTEN)
  3266. debian@myincus:~$ &lt;/code&gt;&lt;/pre&gt;
  3267.  
  3268.  
  3269. &lt;h3 class=&quot;wp-block-heading&quot; id=&quot;whats-in-incusuicrt-and-incusuipfx&quot;&gt;What’s in &lt;code&gt;incus-ui.crt&lt;/code&gt; and &lt;code&gt;incus-ui.pfx&lt;/code&gt;?&lt;/h3&gt;
  3270.  
  3271.  
  3272. &lt;p&gt;You can use &lt;code&gt;openssl&lt;/code&gt; to decode both files. This is an RSA 2048-bit certificate using the SHA-1 hash function.&lt;/p&gt;
  3273.  
  3274.  
  3275.  
  3276. &lt;pre class=&quot;wp-block-code&quot;&gt;&lt;code&gt;$ &lt;kbd&gt;openssl x509 -in incus-ui.crt -noout -text&lt;/kbd&gt;
  3277. Certificate:
  3278.    Data:
  3279.        Version: 3 (0x2)
  3280.        Serial Number:
  3281.            01:12:00:11:07:65:00:03:00:10:00:41:00:04:09:11
  3282.        Signature Algorithm: sha1WithRSAEncryption
  3283.        Issuer: C = AU, ST = Some-State, O = Incus UI 10.10.10.98 (Browser Generated)
  3284.        Validity
  3285.            Not Before: Mar 28 21:08:58 2024 GMT
  3286.            Not After : Dec 23 21:08:58 2026 GMT
  3287.        Subject: C = AU, ST = Some-State, O = Incus UI 10.10.10.98 (Browser Generated)
  3288.        Subject Public Key Info:
  3289.            Public Key Algorithm: rsaEncryption
  3290.                Public-Key: (2048 bit)
  3291.                Modulus:
  3292.                    00:ce:f8:1d:67:e1:a3:f5:1a:16:b6:26:63:8f:32:
  3293.                    42:99:0d:af:86:8b:18:49:1a:4b:8e:ab:68:e1:04:
  3294.                    ba:24:dd:e6:27:d5:df:7a:13:cf:16:b3:33:28:89:
  3295.                    e0:ab:c8:dc:c1:2a:0a:de:ed:26:3a:77:74:dd:42:
  3296.                    1c:e2:22:fc:a5:a5:68:c1:c9:3b:4d:12:15:27:ae:
  3297.                    c6:50:ec:dc:f1:0a:ba:00:0c:83:d0:0d:0f:81:90:
  3298.                    4e:30:43:cb:45:bf:e2:e9:17:39:40:3b:95:8b:8b:
  3299.                    18:e9:59:51:fc:9a:7a:80:e4:73:b3:54:bd:ff:1c:
  3300.                    7c:81:75:16:e3:6f:3a:56:9b:0f:a3:73:55:45:03:
  3301.                    d8:fb:f3:34:4c:60:4f:f2:67:9f:66:ea:29:29:78:
  3302.                    6c:66:05:d6:7d:96:cd:0f:2b:4b:9c:71:2c:09:6f:
  3303.                    e2:b4:23:d0:5d:d0:fe:b0:6a:b1:58:5e:d7:b5:47:
  3304.                    9e:aa:47:34:f8:7d:e1:ed:fe:bf:97:3d:99:49:42:
  3305.                    af:e2:e5:b3:c5:1e:58:b1:98:01:db:8f:25:9f:f8:
  3306.                    d9:03:02:06:f9:99:0a:3a:a1:70:9d:fe:64:0d:c2:
  3307.                    d8:cc:f0:1c:53:e4:31:4c:78:12:c2:fd:72:23:6a:
  3308.                    f4:7e:41:f9:d5:df:6b:ad:2c:52:29:d0:7f:eb:65:
  3309.                    64:0f
  3310.                Exponent: 65537 (0x10001)
  3311.    Signature Algorithm: sha1WithRSAEncryption
  3312.    Signature Value:
  3313.        28:b3:5c:48:64:8c:23:82:dd:e2:05:6a:9d:18:dd:43:f4:07:
  3314.        e6:be:1e:80:b7:f9:0c:0f:3d:cd:b8:bd:7b:55:7e:36:6d:74:
  3315.        24:d5:69:b2:24:51:3a:2d:c5:95:68:b5:dc:27:d5:83:d9:bc:
  3316.        cb:d0:fd:55:24:63:7d:c6:65:9b:f1:b3:9d:f7:b4:4e:ba:83:
  3317.        eb:bf:f5:d0:f6:95:2d:7b:90:4e:d3:89:ac:f0:87:e6:fa:9d:
  3318.        f6:ea:c2:42:f2:15:17:74:5c:e4:3c:ed:1a:42:3c:e7:04:aa:
  3319.        65:42:3e:75:5c:24:8e:52:85:0d:4b:b2:e2:ec:fa:57:4a:68:
  3320.        35:4b:8f:3c:13:fc:15:09:80:5a:b1:c8:e0:22:f5:69:25:4b:
  3321.        46:8b:e0:b9:e1:3a:f5:0c:40:d2:c3:75:9c:79:9a:aa:68:9b:
  3322.        21:36:ed:67:cb:6d:fc:bc:f0:0b:5a:2b:1a:4c:73:67:c5:79:
  3323.        b6:27:b9:58:d0:c7:ea:84:21:bf:f4:7c:44:11:d7:88:ab:1d:
  3324.        e4:53:c9:10:cd:e6:b8:5a:7a:92:73:a8:1e:fe:1c:2e:dc:e8:
  3325.        7e:3d:e9:a2:6d:26:5a:09:40:a1:3e:51:40:8b:da:57:37:9a:
  3326.        8d:0e:d8:cf:c1:0a:b1:0b:95:53:05:41:29:39:af:93:9b:aa:
  3327.        10:af:a1:6c
  3328. $ &lt;/code&gt;&lt;/pre&gt;
  3329.  
  3330.  
  3331.  
  3332. &lt;p&gt;For the &lt;code&gt;incus-ui.pfx&lt;/code&gt; file, we first convert to the PEM format, then print the contents. The PFX file contains the certificate (the same that was added earlier to Incus) along with the private key.&lt;/p&gt;
  3333.  
  3334.  
  3335.  
  3336. &lt;pre class=&quot;wp-block-code&quot;&gt;&lt;code&gt;$ &lt;kbd&gt;openssl pkcs12 -in incus-ui.pfx -out incus-ui.pem -noenc&lt;/kbd&gt;
  3337. Enter Import Password:
  3338. $ &lt;kbd&gt;cat incus-ui.pem &lt;/kbd&gt;
  3339. Bag Attributes
  3340.    localKeyID: 3A 23 25 F7 56 4D 71 B8 FB FD 72 90 2D A1 F3 B8 2F 01 5E 92
  3341.    friendlyName: Incus-UI
  3342. subject=C = AU, ST = Some-State, O = Incus UI 10.10.10.98 (Browser Generated)
  3343. issuer=C = AU, ST = Some-State, O = Incus UI 10.10.10.98 (Browser Generated)
  3344. -----BEGIN CERTIFICATE-----
  3345. MIIDMjCCAhqgAwIBAgIQARIAEQdlAAMAEABBAAQJETANBgkqhkiG9w0BAQUFADBV
  3346. MQswCQYDVQQGEwJBVTETMBEGA1UECBMKU29tZS1TdGF0ZTExMC8GA1UEChMoSW5j
  3347. dXMgVUkgMTAuMTAuMTAuOTggKEJyb3dzZXIgR2VuZXJhdGVkKTAeFw0yNDAzMjgy
  3348. MTA4NThaFw0yNjEyMjMyMTA4NThaMFUxCzAJBgNVBAYTAkFVMRMwEQYDVQQIEwpT
  3349. b21lLVN0YXRlMTEwLwYDVQQKEyhJbmN1cyBVSSAxMC4xMC4xMC45OCAoQnJvd3Nl
  3350. ciBHZW5lcmF0ZWQpMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzvgd
  3351. Z+Gj9RoWtiZjjzJCmQ2vhosYSRpLjqto4QS6JN3mJ9XfehPPFrMzKIngq8jcwSoK
  3352. 3u0mOnd03UIc4iL8paVowck7TRIVJ67GUOzc8Qq6AAyD0A0PgZBOMEPLRb/i6Rc5
  3353. QDuVi4sY6VlR/Jp6gORzs1S9/xx8gXUW4286VpsPo3NVRQPY+/M0TGBP8mefZuop
  3354. KXhsZgXWfZbNDytLnHEsCW/itCPQXdD+sGqxWF7XtUeeqkc0+H3h7f6/lz2ZSUKv
  3355. 4uWzxR5YsZgB248ln/jZAwIG+ZkKOqFwnf5kDcLYzPAcU+QxTHgSwv1yI2r0fkH5
  3356. 1d9rrSxSKdB/62VkDwIDAQABMA0GCSqGSIb3DQEBBQUAA4IBAQAos1xIZIwjgt3i
  3357. BWqdGN1D9Afmvh6At/kMDz3NuL17VX42bXQk1WmyJFE6LcWVaLXcJ9WD2bzL0P1V
  3358. JGN9xmWb8bOd97ROuoPrv/XQ9pUte5BO04ms8Ifm+p326sJC8hUXdFzkPO0aQjzn
  3359. BKplQj51XCSOUoUNS7Li7PpXSmg1S488E/wVCYBascjgIvVpJUtGi+C54Tr1DEDS
  3360. w3WceZqqaJshNu1ny238vPALWisaTHNnxXm2J7lY0MfqhCG/9HxEEdeIqx3kU8kQ
  3361. zea4WnqSc6ge/hwu3Oh+PemibSZaCUChPlFAi9pXN5qNDtjPwQqxC5VTBUEpOa+T
  3362. m6oQr6Fs
  3363. -----END CERTIFICATE-----
  3364. Bag Attributes
  3365.    localKeyID: 3A 23 25 F7 56 4D 71 B8 FB FD 72 90 2D A1 F3 B8 2F 01 5E 92
  3366.    friendlyName: Incus-UI
  3367. Key Attributes: &amp;lt;No Attributes&amp;gt;
  3368. -----BEGIN PRIVATE KEY-----
  3369. MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDO+B1n4aP1Gha2
  3370. JmOPMkKZDa+GixhJGkuOq2jhBLok3eYn1d96E88WszMoieCryNzBKgre7SY6d3Td
  3371. QhziIvylpWjByTtNEhUnrsZQ7NzxCroADIPQDQ+BkE4wQ8tFv+LpFzlAO5WLixjp
  3372. WVH8mnqA5HOzVL3/HHyBdRbjbzpWmw+jc1VFA9j78zRMYE/yZ59m6ikpeGxmBdZ9
  3373. ls0PK0uccSwJb+K0I9Bd0P6warFYXte1R56qRzT4feHt/r+XPZlJQq/i5bPFHlix
  3374. mAHbjyWf+NkDAgb5mQo6oXCd/mQNwtjM8BxT5DFMeBLC/XIjavR+QfnV32utLFIp
  3375. 0H/rZWQPAgMBAAECggEBAMm1N/tpBgC291F4YmlJg2xk0R8f6oA8V0zpMyKyF7Qc
  3376. atWB8/Wm3pnx9bbZgRQKg1LiZYvTtgEfMM7+QuYFURMi/NB4DQpUyDdPd0mhPsbQ
  3377. WVH8mnqA5HOzVL3/HHyBdRbjbzpWmw+jc1VFA9j78zRMYE/yZ59m6ikpeGxmBdZ9
  3378. +uKyZ4U4/TORu2tadg9frtUl1HhkY1zGAxOyJUbCOVIbZF2iQt5zMZt4XLFhKgwh
  3379. jtDklc3dFIDigUZzpMgdLExLWi6CGT++cjJGpseM+QOAubSoCmT6eIs8qi9KpQhk
  3380. aZYBerWqBxswkmNGK4Zh+5gFvdW7EmEp128hATgYZGECgYEA7ckh3qL4Jg6FQA8+
  3381. UeEoaT2CvDI89HMJfFN2NvU1ZklqP9aDnPvMjui/h/8HtDeb+5FWFZHF1B9laJp3
  3382. HnGGt+98/aO9skdFQDiszclDNIHdpSqcD2LWkKz84QTWqTTkRAxJpgnW91oURtyh
  3383. WVH8mnqA5HOzVL3/HHyBdRbjbzpWmw+jc1VFA9j78zRMYE/yZ59m6ikpeGxmBdZ9
  3384. JSltWZtYemYzPTpZysocyRs5mD8CgYEA3tKviDreIR+TKT3FQoevyicXuwSn6ocH
  3385. 2RTgJQF+Qyj+1ykQhwRQUD+axZGls5g2JgT+2gFIdUcAR9CN22rxLRbnIj645yGP
  3386. Ka4dVhNAZnz/olWgs4onoO0CnOGXAkVdyiBe9H/D1dkj5bqAfY1eov6khPMOyrDF
  3387. EXGi0e6uInbddI/sHUAAIIqJ4+knqwJIgxlzA9GFuzzt4oRLGMsoaClLYFCsrekJ
  3388. SF/w7DvhoDQo+JIrHuGX4hLgFLWOgp2WMWhbvgZ0P1PWcJukZ/jx7rJmkwKBgGa5
  3389. 7x75NMtEiU3sInMnpw2ltDUOUnO3SRD1pNiqtZE05zg+wFXe0UAN8sa+/QutUtl4
  3390. WVH8mnqA5HOzVL3/HHyBdRbjbzpWmw+jc1VFA9j78zRMYE/yZ59m6ikpeGxmBdZ9
  3391. WB4dlVAsKZ7yMVRFG2dUNb7997TnLd9jXDcArSIS4q/uliXvvZFdc2TsQ/hSDolP
  3392. HzfNZ3XBo+EXeIFpmYW/rA13GQytLl5oDC28WaEhAoGBAL6acBqMflXUoWWVHZR7
  3393. 0vNcJjtRTC13SGRoAKR/tT2kUqloz60bgWeVtggkFWTpPGgm6lmSuYvTnPeoHYDf
  3394. vLibVFGasTk8Y7Aji0V7rF4O
  3395. -----END PRIVATE KEY-----
  3396. $ &lt;/code&gt;&lt;/pre&gt;
  3397.  
  3398.  
  3399. &lt;h2 class=&quot;wp-block-heading&quot; id=&quot;troubleshooting&quot;&gt;Troubleshooting&lt;/h2&gt;
  3400.  
  3401. &lt;h3 class=&quot;wp-block-heading&quot; id=&quot;error-unable-to-connect&quot;&gt;Error: Unable to connect&lt;/h3&gt;
  3402.  
  3403.  
  3404. &lt;p&gt;You tried to access the IP address of the Incus server as (for example) &lt;code&gt;https://192.168.1.10/&lt;/code&gt; while you should have specified the IP address as well.  The URL should look like &lt;code&gt;https://192.168.1.10:8443/&lt;/code&gt;.&lt;/p&gt;
  3405.  
  3406.  
  3407. &lt;h3 class=&quot;wp-block-heading&quot; id=&quot;error-client-sent-an-http-request-to-an-https-server&quot;&gt;Error: Client sent an HTTP request to an HTTPS server&lt;/h3&gt;
  3408.  
  3409.  
  3410. &lt;p&gt;You tried to connect to the Incus server at an address (for example) &lt;code&gt;http://192.168.1.10:8443/&lt;/code&gt; but you omitted the &lt;code&gt;s&lt;/code&gt; in &lt;code&gt;https&lt;/code&gt;. Use &lt;code&gt;https://192.168.1.10:8443/&lt;/code&gt; instead. &lt;/p&gt;
  3411.  
  3412.  
  3413. &lt;h3 class=&quot;wp-block-heading&quot; id=&quot;warning-potential-security-risk-ahead&quot;&gt;Warning: Potential Security Risk Ahead&lt;/h3&gt;
  3414.  
  3415.  
  3416. &lt;p&gt;You are accessing the Incus server through the HTTPS address for the first time and the certificate has not been signed by a certification authority. &lt;/p&gt;
  3417.  
  3418.  
  3419. &lt;div class=&quot;wp-block-image&quot;&gt;
  3420. &lt;figure class=&quot;aligncenter size-full&quot;&gt;&lt;a href=&quot;https://i0.wp.com/blog.simos.info/wp-content/uploads/2024/03/image.png?ssl=1&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-46761&quot; data-attachment-id=&quot;46761&quot; data-comments-opened=&quot;1&quot; data-image-caption=&quot;&quot; data-image-description=&quot;&quot; data-image-meta=&quot;{&amp;quot;aperture&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;credit&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;camera&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;caption&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;created_timestamp&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;copyright&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;focal_length&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;iso&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;shutter_speed&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;title&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;orientation&amp;quot;:&amp;quot;0&amp;quot;}&quot; data-image-title=&quot;image&quot; data-large-file=&quot;https://i0.wp.com/blog.simos.info/wp-content/uploads/2024/03/image.png?fit=750%2C540&amp;amp;ssl=1&quot; data-medium-file=&quot;https://i0.wp.com/blog.simos.info/wp-content/uploads/2024/03/image.png?fit=300%2C216&amp;amp;ssl=1&quot; data-orig-file=&quot;https://i0.wp.com/blog.simos.info/wp-content/uploads/2024/03/image.png?fit=755%2C544&amp;amp;ssl=1&quot; data-orig-size=&quot;755,544&quot; data-permalink=&quot;https://blog.simos.info/how-to-install-and-setup-the-incus-web-ui/image/&quot; data-recalc-dims=&quot;1&quot; height=&quot;540&quot; src=&quot;https://i0.wp.com/blog.simos.info/wp-content/uploads/2024/03/image.png?resize=750%2C540&amp;amp;ssl=1&quot; width=&quot;750&quot; /&gt;&lt;/a&gt;First attempt to access the Incus server over HTTPS with your browser.&lt;/figure&gt;&lt;/div&gt;
  3421.  
  3422.  
  3423. &lt;p&gt;Click on &lt;em&gt;Advanced&lt;/em&gt; and select to &lt;em&gt;Accept the risk and Continue&lt;/em&gt;. If you want to avoid this error message, you need to provide a server certificate that is accepted by your browser. &lt;/p&gt;
  3424. &lt;div class=&quot;saboxplugin-wrap&quot;&gt;&lt;div class=&quot;saboxplugin-tab&quot;&gt;&lt;div class=&quot;saboxplugin-gravatar&quot;&gt;&lt;img alt=&quot;Simos Xenitellis&quot; class=&quot;avatar avatar-100 photo&quot; height=&quot;100&quot; src=&quot;https://secure.gravatar.com/avatar/5c04c6b5f513d926ea9d77782a3843a1?s=100&amp;amp;d=wavatar&amp;amp;r=g&quot; width=&quot;100&quot; /&gt;&lt;/div&gt;&lt;div class=&quot;saboxplugin-authorname&quot;&gt;&lt;a class=&quot;vcard author&quot; href=&quot;https://blog.simos.info/author/simos/&quot; rel=&quot;author&quot;&gt;&lt;span class=&quot;fn&quot;&gt;Simos Xenitellis&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;saboxplugin-desc&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;saboxplugin-web &quot;&gt;&lt;a href=&quot;https://blog.simos.info/&quot; target=&quot;_self&quot;&gt;blog.simos.info/&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;clearfix&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</description>
  3425. <pubDate>Thu, 28 Mar 2024 22:16:39 +0000</pubDate>
  3426. </item>
  3427. <item>
  3428. <title>Scarlett Gately Moore: Kubuntu, KDE Report. In Loving Memory of my Son.</title>
  3429. <guid isPermaLink="false">https://www.scarlettgatelymoore.dev/?p=431</guid>
  3430. <link>https://www.scarlettgatelymoore.dev/kubuntu-kde-report-in-loving-memory-of-my-son/</link>
  3431. <description>&lt;figure class=&quot;wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio&quot;&gt;&lt;div class=&quot;wp-block-embed__wrapper&quot;&gt;
  3432.  
  3433. &lt;/div&gt;&lt;/figure&gt;
  3434.  
  3435.  
  3436.  
  3437. &lt;p&gt;&lt;strong&gt;Personal:&lt;/strong&gt;&lt;/p&gt;
  3438.  
  3439.  
  3440.  
  3441. &lt;p&gt;As many of you know, I lost my beloved son March 9th. This has hit me really hard, but I am staying strong and holding on to all the wonderful memories I have. He grew up to be an amazing man, devoted christian and wonderful father. He was loved by everyone who knew him and will be truly missed by us all. I have had folks ask me how they can help. He left behind his 7 year old son Mason. Mason was Billy’s world and I would like to make sure Mason is taken care of. I have set up a gofundme for Mason and all proceeds will go to the future care of him. &lt;/p&gt;
  3442.  
  3443.  
  3444.  
  3445. &lt;p&gt;&lt;a href=&quot;https://gofund.me/25dbff0c&quot;&gt;https://gofund.me/25dbff0c&lt;/a&gt;&lt;/p&gt;
  3446.  
  3447.  
  3448.  
  3449. &lt;p class=&quot;has-text-align-center&quot;&gt;&lt;strong&gt;Work report&lt;/strong&gt;&lt;/p&gt;
  3450.  
  3451.  
  3452.  
  3453. &lt;p&gt;&lt;strong&gt;Kubuntu:&lt;/strong&gt;&lt;/p&gt;
  3454.  
  3455.  
  3456.  
  3457. &lt;p&gt;Bug bashing! I am triaging allthebugs for Plasma which can be seen here:&lt;/p&gt;
  3458.  
  3459.  
  3460.  
  3461. &lt;p&gt;&lt;a href=&quot;https://bugs.launchpad.net/plasma-5.27/+bug/2053125&quot;&gt;https://bugs.launchpad.net/plasma-5.27/+bug/2053125&lt;/a&gt;&lt;/p&gt;
  3462.  
  3463.  
  3464.  
  3465. &lt;p&gt;I am happy to report many of the remaining bugs have been fixed in the latest bug fix release 5.27.11.&lt;/p&gt;
  3466.  
  3467.  
  3468.  
  3469. &lt;p&gt;I prepared &lt;a href=&quot;https://kde.org/announcements/plasma/5/5.27.11/&quot;&gt;https://kde.org/announcements/plasma/5/5.27.11/&lt;/a&gt; and Rik uploaded to archive, thank you. Unfortunately, this and several other key fixes are stuck in transition do to the time_t64 transition, which you can read about here: &lt;a href=&quot;https://wiki.debian.org/ReleaseGoals/64bit-time&quot;&gt;https://wiki.debian.org/ReleaseGoals/64bit-time&lt;/a&gt; . It is the biggest transition in Debian/Ubuntu history and it couldn’t come at a worst time. We are aware our ISO installer is currently broken, calamares is one of those things stuck in this transition. There is a workaround in the comments of the bug report: &lt;a href=&quot;https://bugs.launchpad.net/ubuntu/+source/calamares/+bug/2054795&quot;&gt;https://bugs.launchpad.net/ubuntu/+source/calamares/+bug/2054795&lt;/a&gt;&lt;/p&gt;
  3470.  
  3471.  
  3472.  
  3473. &lt;p&gt;Fixed an issue with plasma-welcome.&lt;/p&gt;
  3474.  
  3475.  
  3476.  
  3477. &lt;p&gt;Found the fix for emojis and Aaron has kindly moved this forward with the fontconfig maintainer. Thanks!&lt;/p&gt;
  3478.  
  3479.  
  3480.  
  3481. &lt;p&gt;I have received an &lt;a data-id=&quot;https://kfocus.org/spec/spec-ir14.html&quot; data-type=&quot;link&quot; href=&quot;https://kfocus.org/spec/spec-ir14.html&quot;&gt;https://kfocus.org/spec/spec-ir14.html&lt;/a&gt; laptop and it is truly a great machine and is now my daily driver. A big thank you to the Kfocus team! I can’t wait to show it off at &lt;a href=&quot;https://linuxfestnorthwest.org/&quot;&gt;https://linuxfestnorthwest.org/&lt;/a&gt;.&lt;/p&gt;
  3482.  
  3483.  
  3484.  
  3485. &lt;p&gt;&lt;strong&gt;KDE Snaps:&lt;/strong&gt;&lt;/p&gt;
  3486.  
  3487.  
  3488.  
  3489. &lt;p&gt;You will see the activity in this ramp back up as the KDEneon Core project is finally a go! I will participate in the project with part time status and get everyone in the Enokia team up to speed with my snap knowledge, help prepare the qt6/kf6 transition, package plasma, and most importantly I will focus on documentation for future contributors.&lt;/p&gt;
  3490.  
  3491.  
  3492.  
  3493. &lt;p&gt;I have created the ( now split ) qt6 with KDE patchset support and KDE frameworks 6 SDK and runtime snaps. I have made the kde-neon-6 extension and the PR is in: https://github.com/canonical/snapcraft/pull/4698 . Future work on the extension will include multiple versions track support and core24 support.&lt;/p&gt;
  3494.  
  3495.  
  3496.  
  3497. &lt;figure class=&quot;wp-block-image size-large&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;has-transparency wp-image-433&quot; data-dominant-color=&quot;a19f9f&quot; data-has-transparency=&quot;true&quot; height=&quot;712&quot; src=&quot;https://www.scarlettgatelymoore.dev/wp-content/uploads/ark_qt6_snap-1024x712.png&quot; width=&quot;1024&quot; /&gt;&lt;/figure&gt;
  3498.  
  3499.  
  3500.  
  3501. &lt;p&gt;I have successfully created our first qt6/kf6 snap ark. They will show showing up in the store once all the required bits have been merged and published.&lt;/p&gt;
  3502.  
  3503.  
  3504.  
  3505. &lt;p&gt;Thank you for stopping by.&lt;/p&gt;
  3506.  
  3507.  
  3508.  
  3509. &lt;p&gt;~Scarlett&lt;/p&gt;</description>
  3510. <pubDate>Thu, 28 Mar 2024 17:54:44 +0000</pubDate>
  3511. </item>
  3512. <item>
  3513. <title>Simos Xenitellis: How to run an Incus VM inside an Incus VM (nested virtualization)</title>
  3514. <guid isPermaLink="false">https://blog.simos.info/?p=46737</guid>
  3515. <link>https://blog.simos.info/how-to-run-an-incus-vm-inside-an-incus-vm-nested-virtualization/</link>
  3516. <description>&lt;p&gt;&lt;a href=&quot;https://linuxcontainers.org/incus/&quot;&gt;Incus&lt;/a&gt; is a manager for virtual machines (VM) and system containers. There is also &lt;a href=&quot;https://discuss.linuxcontainers.org/&quot;&gt;an Incus support forum&lt;/a&gt;.&lt;/p&gt;
  3517.  
  3518.  
  3519.  
  3520. &lt;p&gt;A &lt;strong&gt;virtual machine&lt;/strong&gt; (VM) is an instance of an operating system that runs on a computer, along with the main operating system. A virtual machine uses hardware virtualization features for the separation from the main operating system. With virtual machines, the full operating system boots up in them. &lt;/p&gt;
  3521.  
  3522.  
  3523.  
  3524. &lt;p&gt;A &lt;strong&gt;system container&lt;/strong&gt; is an instance of an operating system that also runs on a computer, along with the main operating system. A system container, instead, uses security primitives of the Linux kernel for the separation from the main operating system. You can think of system containers as &lt;em&gt;software virtual machines&lt;/em&gt;. System containers reuse the running Linux kernel of the host, therefore you can only have Linux system containers, &lt;a href=&quot;https://images.linuxcontainers.org/&quot;&gt;any Linux distribution&lt;/a&gt;. &lt;/p&gt;
  3525.  
  3526.  
  3527.  
  3528. &lt;p&gt;In this post we see how to create a VM with Incus, install Incus into that VM, and then create a VM through the &lt;em&gt;&lt;strong&gt;inner Incus installation&lt;/strong&gt;&lt;/em&gt;. This is also called &lt;strong&gt;&lt;em&gt;nested virtualization&lt;/em&gt;&lt;/strong&gt;. Incus works fine with nested virtualization. Any pitfalls arise from the settings of the host (BIOS/UEFI settings, host Linux kernel, etc). We’ll see these together, step by step.&lt;/p&gt;
  3529.  
  3530.  
  3531. &lt;h2 class=&quot;simpletoc-title&quot;&gt;Table of Contents&lt;/h2&gt;
  3532. &lt;ul class=&quot;simpletoc-list&quot;&gt;
  3533. &lt;li&gt;&lt;a href=&quot;https://blog.simos.info/category/planet-ubuntu/feed/?mrss=off#configuring-your-hardware-for-virtualization&quot;&gt;Configuring your hardware for virtualization&lt;/a&gt;
  3534.  
  3535. &lt;/li&gt;
  3536. &lt;li&gt;&lt;a href=&quot;https://blog.simos.info/category/planet-ubuntu/feed/?mrss=off#testing-your-host-for-virtualization&quot;&gt;Testing your host for virtualization&lt;/a&gt;
  3537.  
  3538. &lt;/li&gt;
  3539. &lt;li&gt;&lt;a href=&quot;https://blog.simos.info/category/planet-ubuntu/feed/?mrss=off#testing-your-host-for-nested-virtualization&quot;&gt;Testing your host for nested virtualization&lt;/a&gt;
  3540.  
  3541. &lt;/li&gt;
  3542. &lt;li&gt;&lt;a href=&quot;https://blog.simos.info/category/planet-ubuntu/feed/?mrss=off#launching-the-outer-incus-vm&quot;&gt;Launching the outer Incus VM&lt;/a&gt;
  3543.  
  3544. &lt;/li&gt;
  3545. &lt;li&gt;&lt;a href=&quot;https://blog.simos.info/category/planet-ubuntu/feed/?mrss=off#conclusion&quot;&gt;Conclusion&lt;/a&gt;
  3546. &lt;/li&gt;&lt;/ul&gt;
  3547.  
  3548. &lt;h2 class=&quot;wp-block-heading&quot; id=&quot;configuring-your-hardware-for-virtualization&quot;&gt;Configuring your hardware for virtualization&lt;/h2&gt;
  3549.  
  3550.  
  3551. &lt;p&gt;You would need to enter into the BIOS/UEFI settings and enable the option for &lt;strong&gt;VT-x&lt;/strong&gt; (for Intel CPUs) or &lt;strong&gt;AMD-V&lt;/strong&gt; (for AMD CPUs) virtualization. If you are unsure, you can just follow the instructions in the next step which will complain if you have not enabled the appropriate BIOS/UEFI settings.&lt;/p&gt;
  3552.  
  3553.  
  3554.  
  3555. &lt;p&gt;As a sidenote there is another setting, Intel VT-d (for Intel CPUs) or AMD-Vi (for AMD CPUs) that allow to move a supported hardware device (like a GPU, if you have more than one) into the VM. Not essential for what we are testing, but keep that in mind if you get too deep into virtualization.&lt;/p&gt;
  3556.  
  3557.  
  3558.  
  3559. &lt;p&gt;There are also some additional options that are optional, AMD Nested Page tables (NPT) (for AMD) and Rapid Virtualization Indexing (RVI)/Intel Extended Page Tables (EPT) for Intel. These help for performance. &lt;/p&gt;
  3560.  
  3561.  
  3562. &lt;h2 class=&quot;wp-block-heading&quot; id=&quot;testing-your-host-for-virtualization&quot;&gt;Testing your host for virtualization&lt;/h2&gt;
  3563.  
  3564.  
  3565. &lt;p&gt;The Linux kernel that is available in most Linux distributions supports &lt;a href=&quot;https://en.wikipedia.org/wiki/Kernel-based_Virtual_Machine&quot;&gt;the KVM hypervisor&lt;/a&gt; for virtualization.&lt;/p&gt;
  3566.  
  3567.  
  3568.  
  3569. &lt;p&gt;Applications use &lt;a href=&quot;https://libvirt.org/&quot;&gt;the &lt;code&gt;libvirt&lt;/code&gt;toolkit&lt;/a&gt; to access the virtualization features. &lt;/p&gt;
  3570.  
  3571.  
  3572.  
  3573. &lt;p&gt;In order to test if our host supports virtualization, we install &lt;code&gt;cpu-checker&lt;/code&gt; and the &lt;code&gt;libvirt-clients&lt;/code&gt; packages on the host and then run &lt;code&gt;kvm-ok&lt;/code&gt; and &lt;code&gt;virt-host-validate&lt;/code&gt; respectively to verify our system. Compared between the two utilities, the latter is better. However, I am including &lt;code&gt;cpu-checker&lt;/code&gt;as it is covered in lots of documentation.&lt;/p&gt;
  3574.  
  3575.  
  3576.  
  3577. &lt;pre class=&quot;wp-block-code&quot;&gt;&lt;code&gt;$ &lt;kbd&gt;sudo apt install -y cpu-checker libvirt-clients&lt;/kbd&gt;
  3578. ...
  3579. $ &lt;kbd&gt;kvm-ok&lt;/kbd&gt;
  3580. INFO: /dev/kvm exists
  3581. KVM acceleration can be used
  3582. $ &lt;kbd&gt;sudo virt-host-validate&lt;/kbd&gt;
  3583.  QEMU: Checking for hardware virtualization                                 : PASS
  3584.  QEMU: Checking if device /dev/kvm exists                                   : PASS
  3585.  QEMU: Checking if device /dev/kvm is accessible                            : PASS
  3586.  QEMU: Checking if device /dev/vhost-net exists                             : PASS
  3587.  QEMU: Checking if device /dev/net/tun exists                               : PASS
  3588.  QEMU: Checking for cgroup 'cpu' controller support                         : PASS
  3589.  QEMU: Checking for cgroup 'cpuacct' controller support                     : PASS
  3590.  QEMU: Checking for cgroup 'cpuset' controller support                      : PASS
  3591.  QEMU: Checking for cgroup 'memory' controller support                      : PASS
  3592.  QEMU: Checking for cgroup 'devices' controller support                     : PASS
  3593.  QEMU: Checking for cgroup 'blkio' controller support                       : PASS
  3594.  QEMU: Checking for device assignment IOMMU support                         : PASS
  3595.  QEMU: Checking if IOMMU is enabled by kernel                               : PASS
  3596.  QEMU: Checking for secure guest support                                    : WARN (Unknown if this platform has Secure Guest support)
  3597.   LXC: Checking for Linux &amp;gt;= 2.6.26                                         : PASS
  3598.   LXC: Checking for namespace ipc                                           : PASS
  3599.   LXC: Checking for namespace mnt                                           : PASS
  3600.   LXC: Checking for namespace pid                                           : PASS
  3601.   LXC: Checking for namespace uts                                           : PASS
  3602.   LXC: Checking for namespace net                                           : PASS
  3603.   LXC: Checking for namespace user                                          : PASS
  3604.   LXC: Checking for cgroup 'cpu' controller support                         : PASS
  3605.   LXC: Checking for cgroup 'cpuacct' controller support                     : PASS
  3606.   LXC: Checking for cgroup 'cpuset' controller support                      : PASS
  3607.   LXC: Checking for cgroup 'memory' controller support                      : PASS
  3608.   LXC: Checking for cgroup 'devices' controller support                     : PASS
  3609.   LXC: Checking for cgroup 'freezer' controller support                     : FAIL (Enable 'freezer' in kernel Kconfig file or mount/enable cgroup controller in your system)
  3610.   LXC: Checking for cgroup 'blkio' controller support                       : PASS
  3611.   LXC: Checking if device /sys/fs/fuse/connections exists                   : PASS
  3612. $ &lt;/code&gt;&lt;/pre&gt;
  3613.  
  3614.  
  3615.  
  3616. &lt;p&gt;If you get a failure, try to identify whether the issue is with your computer’s firmware or with the Linux kernel of your host. If in doubt, post below the output.&lt;/p&gt;
  3617.  
  3618.  
  3619.  
  3620. &lt;p&gt;Why does the output mention both &lt;strong&gt;QEMU&lt;/strong&gt; and &lt;strong&gt;LXC&lt;/strong&gt;? By default, the command shows all &lt;code&gt;libvirt&lt;/code&gt; virtualization support, unless you specify something specific. If you wanted only the QEMU output, you would run &lt;code&gt;sudo virt-host-validate qemu&lt;/code&gt;. Note that the LXC here is not &lt;a href=&quot;https://linuxcontainers.org/lxc/introduction/&quot;&gt;the Linux Containers LXC&lt;/a&gt;. The LXC above is &lt;a href=&quot;https://libvirt.org/drvlxc.html&quot;&gt;the Libvirt LXC&lt;/a&gt;.&lt;/p&gt;
  3621.  
  3622.  
  3623. &lt;h2 class=&quot;wp-block-heading&quot; id=&quot;testing-your-host-for-nested-virtualization&quot;&gt;Testing your host for nested virtualization&lt;/h2&gt;
  3624.  
  3625.  
  3626. &lt;p&gt;I have not noticed any mention for &lt;em&gt;nested virtualization&lt;/em&gt;  in the output of &lt;code&gt;virt-host-validate&lt;/code&gt;. If you know a tool that shows that information, write it in the comments. In the absence of such a tool, let’s check manually.&lt;/p&gt;
  3627.  
  3628.  
  3629.  
  3630. &lt;p&gt;If you have an AMD CPU, run the following. If you get &lt;code&gt;1&lt;/code&gt;, then nested virtualization through KVM works.&lt;/p&gt;
  3631.  
  3632.  
  3633.  
  3634. &lt;pre class=&quot;wp-block-code&quot;&gt;&lt;code&gt;$ &lt;kbd&gt;cat /sys/module/kvm_amd/parameters/nested &lt;/kbd&gt;
  3635. 1
  3636. $ &lt;/code&gt;&lt;/pre&gt;
  3637.  
  3638.  
  3639.  
  3640. &lt;p&gt;If instead you have an Intel CPU, run the following. If you get &lt;code&gt;Y&lt;/code&gt;(instead of &lt;strong&gt;&lt;em&gt;1&lt;/em&gt;&lt;/strong&gt;), then nested virtualization through KVM works.&lt;/p&gt;
  3641.  
  3642.  
  3643.  
  3644. &lt;pre class=&quot;wp-block-code&quot;&gt;&lt;code&gt;$ &lt;kbd&gt;cat /sys/module/kvm_intel/parameters/nested&lt;/kbd&gt;
  3645. Y
  3646. $ &lt;/code&gt;&lt;/pre&gt;
  3647.  
  3648.  
  3649.  
  3650. &lt;p&gt;If instead you get an error (such as the following), then something is wrong. Report back your CPU model and motherboard, along with the Linux kernel version and Linux distribution.&lt;/p&gt;
  3651.  
  3652.  
  3653.  
  3654. &lt;pre class=&quot;wp-block-code&quot;&gt;&lt;code&gt;cat: /sys/module/kvm_intel/parameters/nested: No such file or directory&lt;/code&gt;&lt;/pre&gt;
  3655.  
  3656.  
  3657. &lt;h2 class=&quot;wp-block-heading&quot; id=&quot;launching-the-outer-incus-vm&quot;&gt;Launching the outer Incus VM&lt;/h2&gt;
  3658.  
  3659.  
  3660. &lt;p&gt;We launch the outer VM. Get a shell into the outer VM, install Incus and those utilities that show whether KVM virtualization works. Then, we launch an Alpine VM in the outer VM. We get an error regarding Secure Boot (the Alpine Linux kernel is not signed), remove the stuck VM and launch again with Secure Boot disabled. Finally, we get a shell into the inner VM.&lt;/p&gt;
  3661.  
  3662.  
  3663.  
  3664. &lt;pre class=&quot;wp-block-code&quot;&gt;&lt;code&gt;$ &lt;kbd&gt;incus launch images:debian/12 outervm --vm&lt;/kbd&gt;
  3665. Launching outervm
  3666. $ &lt;kbd&gt;incus shell outervm&lt;/kbd&gt;
  3667. root@outervm:~#
  3668.  
  3669.      # Install Incus according to the documentation.
  3670.  
  3671. root@outervm:~# &lt;kbd&gt;sudo apt install -y cpu-checker libvirt-clients&lt;/kbd&gt;
  3672. ...
  3673. root@outervm:~# &lt;kbd&gt;virt-host-validate &lt;/kbd&gt;
  3674.  QEMU: Checking for hardware virtualization                                 : PASS
  3675.  QEMU: Checking if device /dev/kvm exists                                   : PASS
  3676.  QEMU: Checking if device /dev/kvm is accessible                            : PASS
  3677.  QEMU: Checking if device /dev/vhost-net exists                             : PASS
  3678.  QEMU: Checking if device /dev/net/tun exists                               : PASS
  3679. ...
  3680. root@outervm:~# &lt;kbd&gt;incus launch images:alpine/edge innervm --vm&lt;/kbd&gt;
  3681. Launching innervm
  3682. Error: Failed instance creation: The image used by this instance is incompatible with secureboot. Please set security.secureboot=false on the instance
  3683. root@outervm:~# &lt;kbd&gt;incus delete innervm&lt;/kbd&gt;
  3684. root@outervm:~# &lt;kbd&gt;incus launch images:alpine/edge innervm --vm --config security.secureboot=false&lt;/kbd&gt;
  3685. Launching innervm
  3686. root@outervm:~# &lt;kbd&gt;incus list -c ns4t&lt;/kbd&gt;
  3687. +---------+---------+-----------------------+-----------------+
  3688. |  NAME   |  STATE  |         IPV4          |      TYPE       |
  3689. +---------+---------+-----------------------+-----------------+
  3690. | innervm | RUNNING | 10.227.169.165 (eth0) | VIRTUAL-MACHINE |
  3691. +---------+---------+-----------------------+-----------------+
  3692. root@outervm:~# &lt;kbd&gt;uname -a&lt;/kbd&gt;
  3693. Linux outervm 6.1.0-18-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.76-1 (2024-02-01) x86_64 GNU/Linux
  3694. root@outervm:~# incus shell innervm
  3695. innervm:~# &lt;kbd&gt;uname -a&lt;/kbd&gt;
  3696. Linux innervm 6.6.22-1-virt #2-Alpine SMP PREEMPT_DYNAMIC Thu, 14 Mar 2024 02:12:52 +0000 x86_64 Linux
  3697. innervm:~# &lt;/code&gt;&lt;/pre&gt;
  3698.  
  3699.  
  3700.  
  3701. &lt;figure class=&quot;wp-block-image size-large&quot;&gt;&lt;a href=&quot;https://i0.wp.com/blog.simos.info/wp-content/uploads/2024/03/Screenshot-from-2024-03-27-15-39-25.png?ssl=1&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-46740&quot; data-attachment-id=&quot;46740&quot; data-comments-opened=&quot;1&quot; data-image-caption=&quot;&quot; data-image-description=&quot;&quot; data-image-meta=&quot;{&amp;quot;aperture&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;credit&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;camera&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;caption&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;created_timestamp&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;copyright&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;focal_length&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;iso&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;shutter_speed&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;title&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;orientation&amp;quot;:&amp;quot;0&amp;quot;}&quot; data-image-title=&quot;Screenshot-from-2024-03-27-15-39-25&quot; data-large-file=&quot;https://i0.wp.com/blog.simos.info/wp-content/uploads/2024/03/Screenshot-from-2024-03-27-15-39-25.png?fit=750%2C449&amp;amp;ssl=1&quot; data-medium-file=&quot;https://i0.wp.com/blog.simos.info/wp-content/uploads/2024/03/Screenshot-from-2024-03-27-15-39-25.png?fit=300%2C180&amp;amp;ssl=1&quot; data-orig-file=&quot;https://i0.wp.com/blog.simos.info/wp-content/uploads/2024/03/Screenshot-from-2024-03-27-15-39-25.png?fit=1270%2C760&amp;amp;ssl=1&quot; data-orig-size=&quot;1270,760&quot; data-permalink=&quot;https://blog.simos.info/how-to-run-an-incus-vm-inside-an-incus-vm-nested-virtualization/screenshot-from-2024-03-27-15-39-25/&quot; data-recalc-dims=&quot;1&quot; height=&quot;449&quot; src=&quot;https://i0.wp.com/blog.simos.info/wp-content/uploads/2024/03/Screenshot-from-2024-03-27-15-39-25.png?resize=750%2C449&amp;amp;ssl=1&quot; width=&quot;750&quot; /&gt;&lt;/a&gt;&lt;/figure&gt;
  3702.  
  3703.  
  3704. &lt;h2 class=&quot;wp-block-heading&quot; id=&quot;conclusion&quot;&gt;Conclusion&lt;/h2&gt;
  3705.  
  3706.  
  3707. &lt;p&gt;We saw how to verify whether our host is able to work with hardware virtualization. This involves checking both the computer firmware settings (BIOS/UEFI) and the host Linux kernel.&lt;/p&gt;
  3708.  
  3709.  
  3710.  
  3711. &lt;p&gt;Then, we created an outer VM with Incus, got a shell into there, installed Incus, and launched an inner (&lt;strong&gt;&lt;em&gt;nested&lt;/em&gt;&lt;/strong&gt;) VM. &lt;/p&gt;
  3712.  
  3713.  
  3714.  
  3715. &lt;p&gt;I wonder whether we can go further and create a VM inside the inner VM. If you go through these and try to create an inner inner VM, post the error message. It does not feel like it should be possible.&lt;/p&gt;
  3716. &lt;div class=&quot;saboxplugin-wrap&quot;&gt;&lt;div class=&quot;saboxplugin-tab&quot;&gt;&lt;div class=&quot;saboxplugin-gravatar&quot;&gt;&lt;img alt=&quot;Simos Xenitellis&quot; class=&quot;avatar avatar-100 photo&quot; height=&quot;100&quot; src=&quot;https://secure.gravatar.com/avatar/5c04c6b5f513d926ea9d77782a3843a1?s=100&amp;amp;d=wavatar&amp;amp;r=g&quot; width=&quot;100&quot; /&gt;&lt;/div&gt;&lt;div class=&quot;saboxplugin-authorname&quot;&gt;&lt;a class=&quot;vcard author&quot; href=&quot;https://blog.simos.info/author/simos/&quot; rel=&quot;author&quot;&gt;&lt;span class=&quot;fn&quot;&gt;Simos Xenitellis&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;saboxplugin-desc&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;saboxplugin-web &quot;&gt;&lt;a href=&quot;https://blog.simos.info/&quot; target=&quot;_self&quot;&gt;blog.simos.info/&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;clearfix&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</description>
  3717. <pubDate>Wed, 27 Mar 2024 13:40:48 +0000</pubDate>
  3718. </item>
  3719. <item>
  3720. <title>Stuart Langridge: The Matrix has you, part 2</title>
  3721. <guid isPermaLink="false">tag:www.kryogenix.org,2024-03-24:/days/2024/03/24/the-matrix-has-you-part-2/</guid>
  3722. <link>https://www.kryogenix.org/days/2024/03/24/the-matrix-has-you-part-2/</link>
  3723. <description>&lt;p&gt;I’ve recently &lt;a href=&quot;https://mastodon.social/@sil/112144967827317228&quot;&gt;switched back from vscode to Sublime Text&lt;/a&gt;, which means that after all the time I spent training my fingers to type “&lt;code&gt;code somefile.txt&lt;/code&gt;” instead of “&lt;code&gt;subl somefile.txt&lt;/code&gt;” I now need to undo all that conditioning and go back to &lt;code&gt;subl&lt;/code&gt; again. So I thought, hey, maybe I should dump a little shell script called &lt;code&gt;code&lt;/code&gt; in my &lt;code&gt;bin&lt;/code&gt; folder which admonished me in some amusing way, thus Pavlov-ing myself into learning to do it right.&lt;/p&gt;
  3724. &lt;p&gt;And then I thought, hey, what’d be cool is if I had that Matrix-esque “raining code” effect in the Terminal and then it was superimposed with a box saying “&lt;span class=&quot;caps&quot;&gt;STOP&lt;/span&gt; &lt;span class=&quot;caps&quot;&gt;TYPING&lt;/span&gt; code &lt;span class=&quot;caps&quot;&gt;AND&lt;/span&gt; &lt;span class=&quot;caps&quot;&gt;USE&lt;/span&gt; subl &lt;span class=&quot;caps&quot;&gt;INSTEAD&lt;/span&gt;”, like the “&lt;span class=&quot;caps&quot;&gt;SYSTEM&lt;/span&gt; &lt;span class=&quot;caps&quot;&gt;ERROR&lt;/span&gt;” message at the end of the first movie.&lt;/p&gt;
  3725. &lt;p&gt;And then I thought: someone’s already done this, right? And they have; it is called &lt;a href=&quot;https://github.com/abishekvashok/cmatrix&quot;&gt;&lt;code&gt;cmatrix&lt;/code&gt;&lt;/a&gt;. But I don’t like cmatrix because it doesn’t do the colours right; the text just sorta stops rather than fading away like the movie does, and it feels unreal and too sharp for me. Now, don’t get me wrong, I understand why this is; terminals support a full proper range of colour these days, but writing a program which gets released to actual people and which can deal with the bewildering array of terminal settings out there is a miserable waste of everyone’s time. But I’m not writing this for anyone else; it only has to work in &lt;em&gt;my&lt;/em&gt; terminal (in true &lt;a href=&quot;https://www.kryogenix.org/days/2007/03/18/works-on-my-machine/&quot;&gt;works on my machine&lt;/a&gt; fashion). And this will give me a chance to noodle about with Python terminal libraries such as &lt;a href=&quot;https://pypi.org/project/blessed/&quot;&gt;blessed&lt;/a&gt; to make something interesting. Hence, &lt;a href=&quot;https://kryogenix.org/random/matrix24.py&quot;&gt;matrix24.py&lt;/a&gt;:&lt;/p&gt;
  3726. &lt;video controls=&quot;controls&quot; src=&quot;https://kryogenix.org/random/matrix-24bit.mp4&quot;&gt;&lt;/video&gt;
  3727.  
  3728. &lt;p&gt;It’s a bodge all round, and it still doesn’t look right, and &lt;a href=&quot;http://jessica.tech/&quot;&gt;Jess&lt;/a&gt; pointed out that making something cool happen when I make a mistake is the opposite of conditioning, but I got to fiddle about with a new library for a bit, so that was fun. Can I do something productive now?&lt;/p&gt;
  3729. &lt;p&gt;(title from &lt;a href=&quot;https://www.kryogenix.org/days/2003/06/18/mtrx/&quot;&gt;a classic post about the Matrix&lt;/a&gt; which still makes me laugh even after all these years, although it is very unfair to Keanu Reeves who is a cool bloke and should be emulated in his approach to life)&lt;/p&gt;</description>
  3730. <pubDate>Sun, 24 Mar 2024 15:40:00 +0000</pubDate>
  3731. </item>
  3732.  
  3733. </channel>
  3734. </rss>
  3735.  

If you would like to create a banner that links to this page (i.e. this validation result), do the following:

  1. Download the "valid RSS" banner.

  2. Upload the image to your own server. (This step is important. Please do not link directly to the image on this server.)

  3. Add this HTML to your page (change the image src attribute if necessary):

If you would like to create a text link instead, here is the URL you can use:

http://www.feedvalidator.org/check.cgi?url=http%3A//planet.ubuntu.com/rss20.xml

Copyright © 2002-9 Sam Ruby, Mark Pilgrim, Joseph Walton, and Phil Ringnalda