-
Fedora 44 is Replacing Decades-Old Kernel Console with Safer, Modern Alternative
by: Sourav Rudra Thu, 04 Dec 2025 14:17:07 GMT Fedora is known for pushing boundaries when it comes to adopting new tech, almost always staying near the bleeding edge of what's currently available. The project doesn't really wait around for things to become "accepted" before jumping in. That approach now continues as the Fedora Engineering Steering Committee (FESCo) just gave the green light to replace a very old system component with something more modern. What's Happening?Fedora 44 is ditching fbcon, the kernel framebuffer console, in favor of kmscon, a more modern userspace console based on Kernel Mode Setting (KMS). If you have ever pressed Ctrl+Alt+F2 on your Linux computer and seen a full-screen text interface, that's what we are talking about. It is also the same text-only screen that shows up when you boot up your system. Currently, the old console runs inside the kernel itself. The new approach moves it to userspace, where regular programs live instead of deep in the sensitive core. Why the Change?Jocelyn Falempe, who came up with this proposal, laid out some very good reasons for this. The first one is obvious, fbcon is showing its age. It lost scrolling support years ago when developers had to yank the feature due to a security bug. It still relies on fbdev emulation, even though modern GPU drivers moved to the newer DRM interface. This creates an unnecessary component that shouldn't be there. Then there is the security issue. fbcon runs in kernel space, so when it crashes, your whole system goes down with a kernel panic. This makes recovering a system painful. What to Expect?kmscon brings back what fbcon left out. Scrolling works again. Keyboard handling is considerably better with xkbcommon support. Multiple layouts, proper shortcuts, and more are included. There is also the ability to change fonts, use more Unicode characters, and the keyboard layout is mirrored with what a user has on their graphical environment. Don't worry about things breaking. If kmscon gives out, your system falls back to the old Getty/fbcon setup automatically. You can switch back yourself too if needed. The end game is to eventually do away with both fbcon and fbdev emulation completely. If Fedora pulls this off without issues, other distros could probably follow along soon. You can go through the conversation surrounding this change on Fedora Discussion. Via: Phoronix
-
Getting Creative With “The Measure”
by: Andy Clarke Thu, 04 Dec 2025 14:04:52 +0000 I spend an unhealthy amount of time on the typography in my designs, and if you’ve read any traditional typography books, you might remember “the measure.” If not, it’s simply the length of a line of text. But measure means more than that, and once you understand what it represents, it can change how you think about layout entirely. But why’s it called the measure? Photo: Wilhei, via Wikipedia (CC BY 3.0) Before desktop publishing, typesetters worked with physical metal type. They set lines of text within a composing stick, and the width of the stick was called the measure. It was literally the space you could fit type into, and everything else on the page — from column widths to margins and gutters — was designed around it. A good measure makes reading text comfortable, while a bad one makes it more difficult. An uncomfortable measure makes reading more difficult. See this example in my lab. And when the measure is correct, the rest of the layout falls into place. So, rather than allowing layout to dictate the measure, doesn’t it make more sense for the measure to inform layout decisions? Turning the measure into a custom property In my CSS, I start by defining a custom property: :root { --measure: 60ch; } ch units are ideal for this because they relate to the width of the zero (0) character in a chosen font. Somewhere between 60–70 characters per line is a comfortable reading length, so 65 characters feels natural. 60ch is a solid starting point, but it isn’t universal. Different typefaces produce different real-world line lengths, even when the character count stays the same. Typefaces with a large x-height appear visually larger, so 60ch can feel longer than it really is. Condensed faces make 60ch feel too short. Wider faces can make it feel too long. Even small tracking changes stretch or compress the perceived measure. The point is simple: treat 60ch as a baseline, then adjust by eye. Once the measure becomes a variable, you can use it across your layout to keep everything connected. Keeping text readable I suspect most developers have used the max-width property. Although it took time to retrain my muscle memory, I now use CSS logical properties, replacing max-width with max-inline-size: article { max-inline-size: var(--measure); margin-inline: auto; } Well considered measure makes reading more comfortable. See this example in my lab. That prevents long-line syndrome, which afflicts too many websites when viewed on large screens. Designing multi-column text Multi-column layout is one of the most underrated CSS layout tools. Instead of specifying the number of columns, defining the column width lets the browser decide how many columns fit along the inline axis. The measure can also define the widths of those columns: article { column-width: var(--measure); } The measure can define multi columns widths. See this example in my lab. When the columns’ parent container becomes wide enough, a browser flows text into as many readable columns as will fit. When there’s not enough space for multiple columns, the layout falls back to a single column, all without breakpoints and media queries. Letting the measure influence a grid The measure also helps me design grids which feel connected to my content. For example, when I’m implementing a layout with a column containing long-form content, plus another flexible column, I can lock the text content to the measure: .layout { display: grid; grid-template-columns: minmax(0, var(--measure)) 1fr; } The measure also creates grids which feel connected to content. See this example in my lab. That first column ensures that reading text remains comfortable, while the second adjusts to whatever horizontal space remains. Measure-driven container queries For years, developers learned to think of screen sizes in terms of specific breakpoints (320px, 48em, 64em, and so on) and media queries. It’s a hard habit to break and one which, to be honest, I haven’t always managed myself. Those numbers don’t come from content; devices define them. They really should be called “guesspoints” because we mostly never know which numbers work for most people. Instead of dictating that a layout switches at, say, 48em and 64em, I can let my content decide when a layout should change by using the measure. Measure makes a better breakpoint. A measure-driven breakpoint, combined with container queries, responds to text content. So, when a column becomes narrower than a readable line length, a layout can collapse. But when it becomes wide enough to support more structure, the layout can expand. A CSS container query checks the width of the component’s container instead of a screen or the viewport. For instance, when a component is narrower than 65 characters, I can apply specific styles: /* When the container is no wider than the --measure */ @container (max-width: var(--measure)) { /* Styles */ } My design might include multiple columns, perhaps a wider column for the main content and a narrower one for supporting information: [data-layout="yogi"] { display: grid; grid-template-columns: 3fr 1fr; } If the container can’t support a text column equal to the measure, this query replaces the two columns with a single column layout: @container (max-width: var(--measure)) { [data-layout="yogi"] { grid-template-columns: 1fr; } } This feels more natural because the composition is connected to the content rather than the device’s width, creating a comfortable reading environment. Making a measure system Depending on the variety of content I need to present, on certain projects, I define several variations of the measure: :root { --measure: 60ch; --measure-s: 55ch; --measure-l: 80ch; } This gives me a variety of line lengths for use in different situations: Small for captions and other shorter text blocks Regular for body copy Large for introductions, headings, and hero sections When type, spacing, and layout all share the same underlying rhythm, the result can feel more coherent and more intentional. Considering the measure can change how you design When you design with the measure in mind, layout stops being guesswork and becomes a conversation between content and composition. Reading becomes more comfortable, and the page feels more deliberate. It’s a small shift, but once you start anchoring your design decisions to the measure, it changes how you approach layout entirely. Further reading Article on Jun 3, 2025 Getting Creative With HTML Dialog dialog Andy Clarke Article on Aug 25, 2025 Getting Creative With Images in Long-Form Content images UI/IX Design Andy Clarke Article on Aug 11, 2025 Getting Creative With Quotes inspiration typography Andy Clarke Article on Oct 29, 2025 Getting Creative With Small Screens rwd UI/IX Design Andy Clarke Article on Jul 18, 2025 Getting Creative With Versal Letters initial-letter inspiration typography Andy Clarke Article on Oct 6, 2025 Getting Creative With shape-outside css shapes images UI/IX Design Andy Clarke Getting Creative With “The Measure” originally published on CSS-Tricks, which is part of the DigitalOcean family. You should get the newsletter.
-
There is No Future for Online Safety Without Privacy and Security
by: Sourav Rudra Thu, 04 Dec 2025 09:29:19 GMT Session is an open source encrypted messaging app that requires no phone number or email address to sign up. Instead of routing messages through centralized servers, Session uses a decentralized network of over 2,000 nodes running the onion routing protocol, similar to Tor, ensuring that no single server knows both the message origin and destination. The Session Technology Foundation took over stewardship of Session back in October 2024, succeeding the Australia-based Oxen Privacy Tech Foundation (OPTF). The transition wasn't purely administrative; it was triggered by Australian authorities' probes into Session's operations and the threat of anti-encryption laws that could compel backdoors. Alexander Linton, who worked as a journalist before joining the Session project, now serves as President of the Session Technology Foundation. In an email interview, we discussed his transition from journalism to privacy advocacy, Session's approach to trust and safety without centralized moderation, and the threats that surround encrypted communication. How Did You Get from Being a Journalist into Leading the Session Technology Foundation?When I was working in a newsroom, it became very clear to me, both from my own experience and from observing my peers, that there was a real gap when it came to secure communication. Journalists handle sensitive information every day, and yet the tools available to us were never built with our safety or our sources’ safety in mind. You could feel that vulnerability. So when I heard there was a team in my hometown building a secure messaging tool, I knew I had to be involved. I joined the project seven years ago with the simple belief that people deserve the ability to communicate without surveillance or unnecessary exposure. Over the years, I applied myself in every way I could, learning from the team, contributing wherever I added value, and helping shape Session into what it has become. Leading the Session Technology Foundation today feels like a natural continuation of that same mission: making truly private, secure communication accessible to the people who need it most. It started as a personal frustration and turned into a global responsibility, and I’m grateful for that journey every day. What's Been the Biggest Surprise in Session's Growth Since You Became President?Day to day, when you’re building secure tools, it can sometimes feel like you’re working on an island. There’s a lot of noise, skepticism, and concern about people who push for real privacy. You hear so much about the pressure against secure communications and against the teams who build them, and it can feel isolating at times. Stepping into a more public role changed that perspective for me completely. The amount of support, encouragement, and alignment coming from every corner of life has been overwhelming in the best way. It’s been a reminder that people do care about privacy, safety, and ownership of their communication, and they’re grateful for tools that protect those things. The most incredible part has been hearing the individual stories of how Session has helped people in times they needed a messenger they could trust to have a conversation in safety. Those stories make everything worth it. They remind us who we’re building for and why this work is important. How Has Switzerland Been as a Home for the Foundation and Have There Been Any Regulatory Issues?Switzerland has been a great home for the Session Technology Foundation. It’s a place that understands the value of digital rights and open source innovation, and it provides a stable environment for stewarding a global project like Session. Being here has allowed us to focus on long-term development rather than short-term noise. However, even Switzerland has its concerns, specifically with respect to the proposed changes to VUPF. Like many jurisdictions, they are reviewing proposals connected to digital privacy and encryption. This is not unique to one country; it’s happening everywhere as governments try to understand how to regulate emerging technologies. We are watching it closely. Switzerland plans surveillance worse than US | TutaRevision of Swiss surveillance law VÜPF would directly target VPN & encrypted chat and email providers based in Switzerland.TutaHannaWhat's the Relationship Between Session Technology Foundation and OPTF Now That You are Independent?The two organizations are now entirely independent. The Session Technology Foundation is the steward of Session; it manages the open source repositories, handles app publishing, and provides development support to contributors across the ecosystem. OPTF’s role today is mostly historical. It played a meaningful part in Session’s early years, and it continues to be a supporter of digital privacy more broadly. How Does the Foundation Aim to Close the User Base Gap to the Likes of Signal and Telegram?Signal and Telegram grew to their current popularity because they were able to fill a need that people have. Similarly, Session is filling a need that people have now and will continue to have in the future, the ability to communicate securely and privately without attaching their identity to a phone number. Communication and privacy are universal needs, and as we continue improving the application and the overall platform experience, more people naturally choose Session because they want to communicate safely, privately, and without being turned into a data point. For us, the focus isn’t on chasing user numbers for the sake of it. It’s on building something genuinely valuable and reliable. If we stay focused on that mission, the audience will follow. We’re already seeing that growth as awareness of privacy and metadata risks becomes more mainstream. How Would You Convince People That Session Token Isn't Just a Cash Grab?Session Token is the mechanism for creating a sustainable future for Session. It is not short-term thinking — but long-term. If we want private messaging infrastructure to be owned and operated by the community rather than a company, there needs to be a secure and decentralized way to incentivize and support that infrastructure. That’s the role of Session Token. The purpose of Session Token is not to fill the pockets of some people. It’s about creating an ecosystem where the public good of private messaging can be owned by the public. Instead of relying on a private enterprise to run essential communication infrastructure, we are building a model where people who support the network and contribute value are the ones who benefit from it. Session Token - Session TokenThe future of privacy is powered by you.Session TokenSession's Architecture Makes Content Moderation Nearly Impossible. How Do You Think About Trust and Safety?Encryption is foundational to our model for trust and safety. Often, security and privacy are demonized in the conversation around online safety, but in reality they are safeguards. There is no future for online safety without privacy and security; these are first principles. Session is built so that people have control over their own experience. There are user controls around message requests, participation in open communities, and contact discovery, which give people agency over who is talking to them and what can be shared with them. Session is a tool, and as there is no ‘one person’ running the platform, the STF cannot claim to be the arbiter or moderator of your specific conversation. Instead, Session enables community-level moderation; people set norms for the spaces they participate in, and those norms are enforced locally rather than through platform-wide scanning or surveillance. At a technical level, there is no way to conduct full, platform-wide moderation on an encrypted platform without backdooring the encryption. We believe that weakening encryption would ultimately make everyone less safe, not more. Our approach to trust and safety is about empowering people, strengthening privacy, and giving communities tools to protect themselves without compromising security. In These Polarizing Times, Is the Bigger Threat to Privacy Government Overreach or People Just Not Caring Anymore?Part of the attack against encryption is trying to convince people not to care. If the public becomes apathetic, it becomes much easier to undermine privacy without resistance. Apathy is not a solution; ignoring the issue of online privacy only makes the problem worse and leaves everyone more exposed. Government overreach is a real concern. Some proposals around the world target both the technology and the people building secure tools, often through mechanisms that could weaken encryption or introduce scanning systems. It is important to remain vigilant, specifically with respect to backdooring encryption (such as through scanning mechanisms, i.e., chat control). Technology itself can also be an enemy of privacy when it is designed without security in mind. The prevalence of AI, particularly when it is embedded at the operating system level, presents an existential threat to secure communication and online security in general. 💬 Are you a Session user? Thinking of trying it out? Do let me know in the comments below!
-
There is No Future for Online Safety Without Privacy and Security
by: Sourav Rudra Thu, 04 Dec 2025 09:29:19 GMT Session is an open source encrypted messaging app that requires no phone number or email address to sign up. Instead of routing messages through centralized servers, Session uses a decentralized network of over 2,000 nodes running the onion routing protocol, similar to Tor, ensuring that no single server knows both the message origin and destination. The Session Technology Foundation took over stewardship of Session back in October 2024, succeeding the Australia-based Oxen Privacy Tech Foundation (OPTF). The transition wasn't purely administrative; it was triggered by Australian authorities' probes into Session's operations and the threat of anti-encryption laws that could compel backdoors. Alexander Linton, who worked as a journalist before joining the Session project, now serves as President of the Session Technology Foundation. In an email interview, we discussed his transition from journalism to privacy advocacy, Session's approach to trust and safety without centralized moderation, and the threats that surround encrypted communication. How Did You Get from Being a Journalist into Leading the Session Technology Foundation?When I was working in a newsroom, it became very clear to me, both from my own experience and from observing my peers, that there was a real gap when it came to secure communication. Journalists handle sensitive information every day, and yet the tools available to us were never built with our safety or our sources’ safety in mind. You could feel that vulnerability. So when I heard there was a team in my hometown building a secure messaging tool, I knew I had to be involved. I joined the project seven years ago with the simple belief that people deserve the ability to communicate without surveillance or unnecessary exposure. Over the years, I applied myself in every way I could, learning from the team, contributing wherever I added value, and helping shape Session into what it has become. Leading the Session Technology Foundation today feels like a natural continuation of that same mission: making truly private, secure communication accessible to the people who need it most. It started as a personal frustration and turned into a global responsibility, and I’m grateful for that journey every day. What's Been the Biggest Surprise in Session's Growth Since You Became President?Day to day, when you’re building secure tools, it can sometimes feel like you’re working on an island. There’s a lot of noise, skepticism, and concern about people who push for real privacy. You hear so much about the pressure against secure communications and against the teams who build them, and it can feel isolating at times. Stepping into a more public role changed that perspective for me completely. The amount of support, encouragement, and alignment coming from every corner of life has been overwhelming in the best way. It’s been a reminder that people do care about privacy, safety, and ownership of their communication, and they’re grateful for tools that protect those things. The most incredible part has been hearing the individual stories of how Session has helped people in times they needed a messenger they could trust to have a conversation in safety. Those stories make everything worth it. They remind us who we’re building for and why this work is important. How Has Switzerland Been as a Home for the Foundation and Have There Been Any Regulatory Issues?Switzerland has been a great home for the Session Technology Foundation. It’s a place that understands the value of digital rights and open source innovation, and it provides a stable environment for stewarding a global project like Session. Being here has allowed us to focus on long-term development rather than short-term noise. However, even Switzerland has its concerns, specifically with respect to the proposed changes to VUPF. Like many jurisdictions, they are reviewing proposals connected to digital privacy and encryption. This is not unique to one country; it’s happening everywhere as governments try to understand how to regulate emerging technologies. We are watching it closely. Switzerland plans surveillance worse than US | TutaRevision of Swiss surveillance law VÜPF would directly target VPN & encrypted chat and email providers based in Switzerland.TutaHannaWhat's the Relationship Between Session Technology Foundation and OPTF Now That You are Independent?The two organizations are now entirely independent. The Session Technology Foundation is the steward of Session; it manages the open source repositories, handles app publishing, and provides development support to contributors across the ecosystem. OPTF’s role today is mostly historical. It played a meaningful part in Session’s early years, and it continues to be a supporter of digital privacy more broadly. How Does the Foundation Aim to Close the User Base Gap to the Likes of Signal and Telegram?Signal and Telegram grew to their current popularity because they were able to fill a need that people have. Similarly, Session is filling a need that people have now and will continue to have in the future, the ability to communicate securely and privately without attaching their identity to a phone number. Communication and privacy are universal needs, and as we continue improving the application and the overall platform experience, more people naturally choose Session because they want to communicate safely, privately, and without being turned into a data point. For us, the focus isn’t on chasing user numbers for the sake of it. It’s on building something genuinely valuable and reliable. If we stay focused on that mission, the audience will follow. We’re already seeing that growth as awareness of privacy and metadata risks becomes more mainstream. How Would You Convince People That Session Token Isn't Just a Cash Grab?Session Token is the mechanism for creating a sustainable future for Session. It is not short-term thinking — but long-term. If we want private messaging infrastructure to be owned and operated by the community rather than a company, there needs to be a secure and decentralized way to incentivize and support that infrastructure. That’s the role of Session Token. The purpose of Session Token is not to fill the pockets of some people. It’s about creating an ecosystem where the public good of private messaging can be owned by the public. Instead of relying on a private enterprise to run essential communication infrastructure, we are building a model where people who support the network and contribute value are the ones who benefit from it. Session Token - Session TokenThe future of privacy is powered by you.Session TokenSession's Architecture Makes Content Moderation Nearly Impossible. How Do You Think About Trust and Safety?Encryption is foundational to our model for trust and safety. Often, security and privacy are demonized in the conversation around online safety, but in reality they are safeguards. There is no future for online safety without privacy and security; these are first principles. Session is built so that people have control over their own experience. There are user controls around message requests, participation in open communities, and contact discovery, which give people agency over who is talking to them and what can be shared with them. Session is a tool, and as there is no ‘one person’ running the platform, the STF cannot claim to be the arbiter or moderator of your specific conversation. Instead, Session enables community-level moderation; people set norms for the spaces they participate in, and those norms are enforced locally rather than through platform-wide scanning or surveillance. At a technical level, there is no way to conduct full, platform-wide moderation on an encrypted platform without backdooring the encryption. We believe that weakening encryption would ultimately make everyone less safe, not more. Our approach to trust and safety is about empowering people, strengthening privacy, and giving communities tools to protect themselves without compromising security. In These Polarizing Times, Is the Bigger Threat to Privacy Government Overreach or People Just Not Caring Anymore?Part of the attack against encryption is trying to convince people not to care. If the public becomes apathetic, it becomes much easier to undermine privacy without resistance. Apathy is not a solution; ignoring the issue of online privacy only makes the problem worse and leaves everyone more exposed. Government overreach is a real concern. Some proposals around the world target both the technology and the people building secure tools, often through mechanisms that could weaken encryption or introduce scanning systems. It is important to remain vigilant, specifically with respect to backdooring encryption (such as through scanning mechanisms, i.e., chat control). Technology itself can also be an enemy of privacy when it is designed without security in mind. The prevalence of AI, particularly when it is embedded at the operating system level, presents an existential threat to secure communication and online security in general. 💬 Are you a Session user? Thinking of trying it out? Do let me know in the comments below!
-
Good News! Canonical Plans to Rebuild Ubuntu Wiki From Scratch
by: Sourav Rudra Thu, 04 Dec 2025 07:16:32 GMT Ubuntu's community wikis have long been an essential resource for people looking to troubleshoot issues, find guides, and learn more about the popular Linux-powered operating system. For over two decades, these wikis have served countless users and developers globally. Canonical has announced that it is working on building a new Ubuntu wiki from the ground up. This is being done to address the many issues plaguing the existing wikis that have gone unaddressed for years. The current wikis at wiki.ubuntu.com and help.ubuntu.com will be decommissioned in August 2026. The first one has been around since 2004, the same year Ubuntu's first release, Warty Warthog, came out. A small team at Canonical is now working on a replacement. What Can We Expect From the New Wiki?The team brings together technical authors, platform engineers, community engineers, designers, and Ubuntu engineers who are already at work developing and testing the new wiki on a private test instance. Canonical is targeting an Alpha release sometime in 2026. Throughout the development process, the team will be consulting the community and taking their feedback into account. But, you might be wondering, why go through all this trouble? Shane Crowley, a Technical Author at Canonical who announced this, lays out some pretty convincing points. For starters, the existing wikis run on an older version of MoinMoin with Python 2, which no longer receives security patches. This is a major concern for anyone using or contributing to the wikis, and it is not something that can be ignored. Then there's the content quality issue. The wikis are filled with outdated information that often shows up in search results instead of the official Ubuntu documentation. This can be frustrating for users who stumble upon old pages when they need current solutions (I have personally faced this when I was an Ubuntu user). Usability has also taken a hit. Users frequently face issues with registration and login. Page loads are very slow. The styling doesn't meet modern web standards and performs poorly on mobile devices. All of these issues collectively make for a very poor user experience. In future updates, Canonical plans to share more about their thinking behind the undertaking and provide details on how community members can get involved. So, if you are interested in contributing, keep an eye out for those announcements over on the Ubuntu Community Hub. Want to Master Ubuntu? Whether you’re new to Ubuntu or have been using it for years, The Ultimate Ubuntu Handbook offers a wealth of practical tips, time-saving tricks, and insider insights that will help you get even more out of your Ubuntu experience. Get the Book
-
FOSS Weekly #25.49: Kernel 6.18 'LTS', Ubuntu 26.04 LTS, Linus Torvalds on BSOD, Obsidian Distro and More Linux Stuff
by: Abhishek Prakash Thu, 04 Dec 2025 04:17:06 GMT Recently, Linus Torvalds and Linus Sebastian come together for a YouTube video collaboration. There, Torvalds said that the infamous blue screen of death in Windows is not a software issue in most cases. Hard to disagree with him. Linus Torvalds Defends Windows’ Blue Screen of DeathAnd he is not wrong actually.It's FOSSAbhishek PrakashAlso, if you like It's FOSS and rely on Google search, please add us as your preferred source in Google. This way, you get reliable and more accurate information on Linux in this age of AI slop. Here's the highlight of this edition of FOSS Weekly: A new open source font by Google.KDE Plasma dropping X11 in the future.The Linux kernel 6.18 release.Ubuntu 26.04 LTS is dropping some default apps.Firefox based browsers.And other Linux news, tips, and, of course, memes!This week of FOSS Weekly is supported by the awesome folks at Prepper Disk. With privacy and Internet stability more challenging than ever, Prepper Disk is a private offline stash of over 500 GB of vital websites in any emergency. Wikipedia, iFixit report guides, StackExchange, world road maps, HAM radio repeater information, and much more are inside a compact, easy-to-carry device. It’s FOSS Newsletter readers get a FREE EMP Bag with a purchase of the Prepper Disk Premium, using this link. Get This Exclusive Offer 📰 Linux and Open Source NewsLinux kernel 6.18 arrives with "less bugfixing noise."KDE Plasma 6.8 will drop support for the X11 session.ONLYOFFICE Docs 9.2 lands with an AI grammar checker tool.A group of Swiss data protection officers has declared US cloud giants can't meet privacy standards.Google just open-sourced its Sans Flex font and launched a new AI tool for automated documentation creation.🧠 What We’re Thinking AboutAre self-hosting and homelabbing the logical next step for Linux users? It does seem so as Linux users are already leading the revolution of self-hosting. Self-Hosting is Rising and Linux Users are Leading This RevolutionSelf‑hosting isn’t anti‑cloud; it’s pro‑agency. It’s choosing the right locus of control for the things you care about.It's FOSSTheena Kumaragurunathan🎓Get certified, get job ready, at 65% lessBeing the most prominent and official organization behind Linux and many other Enterprise open source projects, Linux Foundation's certifications hold good value in the job market. Their Kubernetes certifications helps you land DevOps jobs. Linux Foundation is running Cyber Monday offer, and you can get upto 65% off on certification exams and training courses. So, if you are looking for a career in Linux sysadmin and DevOps field in 2026, take the advantage of the sale as the exam period is valid for one year. Get it for discount today, prepare for the certification exam and attempt it in a few months. You can take two attempts at the exam. Explore Linux Foundation Cyber Monday Deals🧮 Linux Tips, Tutorials, and LearningsNot every web browser needs to be based on Chromium. Here are some great alternatives. Not Every Browser is Built on Chrome: Explore These Firefox-based OptionsThink all popular browsers out there are Chromium based? Take a look at this Firefox-based options.It's FOSSPulkit ChandakUbuntu 26.04 is a few months away, but it doesn't hurt to take an early look at what's coming, does it? Ubuntu 26.04: Release Date and New FeaturesThe development for Ubuntu 26.04 LTS has started and it’s time to start looking towards the features and changes it is bringing.It's FOSSAbhishek PrakashAnd a quick tip on checking the temperature of your NVMe SSD from the command line. We are in December now and I can safely say that Christmas is here. This may sound like Mariah Carey, but all I want for Christmas is...your support. As one of the rare few publications with a special focus on desktop Linux users, we have been functioning for the past 13 years with the support of readers like you, not corporate backers. If you believe in our work, if we ever helped you, do consider upgrading to an It’s FOSS Plus membership — just $3/month or a single payment of $99 for lifetime access. Show Your Support With It's FOSS Plus 👷 AI, Homelab and Hardware CornerRaspberry Pi 5's 1GB variant has arrived, but who is it for in 2025? Raspberry Pi 5 1GB Variant: Is It Worth $45?Other SBCs offer more RAM at this price point. So, should you still pay $45 for a 1 GB Pi?It's FOSSSourav RudraFitbit couldn't keep Pebble down. It is now on course for a big return! ✨ Project HighlightsMost new distros don't offer anything of substance other than a few themes perhaps. This is why ObsidianOS is different as it offers the innovative concept for system wide rollback with the classic Ext filesystem.. ObsidianOS Review: A New, Innovative Linux Distro Built Around A/B PartitioningThe idea to rollback via two root partitions is interesting. This is certainly not your regular rethemed Arch distro.It's FOSSNeville OndaraThink you know the best Linux system monitor? This showdown may surprise you. Mission Center vs. Resources: The Ultimate Linux System Monitor ShowdownTwo of the best GUI-based system monitors for desktop Linux users. Which one is better of the two? Let’s find out.It's FOSSRoland Taylor📽️ Videos I Am Creating for YouIt is nearly a year since I have been using Zen as my primary browser. It is based on Firefox but feels so different to use. Watch me use Zen in the latest video. Subscribe to It's FOSS YouTube Channel💡 Quick Handy TipIn Firefox, you can use @ in the address bar to access various searching areas. These search areas include things like searching among tabs, your bookmarks, the history, a different search engine, and more. This works in other browsers too, but the availability of search areas will differ. 🎋 Fun in the FOSSverseGovernance in open source is an important thing. Can you beat this crossword to prove your knowledge? Governance in Open-Source Projects: CrosswordA crossword to help you figure out governance in the open-source world.It's FOSSAnkush Das🤣 Meme of the Week: Musings of a wise ape... No offense to Manjaro users or users of other Arch-based distros. 🗓️ Tech Trivia: On December 3, 1968, Control Data Corporation unveiled the CDC 7600, a machine often hailed as the first true supercomputer. Engineered by Seymour Cray, the system pushed boundaries with performance nearing 40 megaflops, an extraordinary achievement for its era. 🧑🤝🧑 From the Community: A tutorial on how to setup LVM with dedicated /mnt/data_backups by one of our regular FOSSers. Complete guide for LVM with dedicated /mnt/data_backupsComplete guide Two Volume Groups (VGs): vg_data: A massive <4.55 TiB storage pool across 5 physical volumes (/dev/sdb1, /dev/sdc1, /dev/sdd1, /dev/nvme0n1p1, and /dev/sdf1). vgmint: A <2.25 TiB volume group for your operating system (/) and swap, spanning 3 physical volumes (/dev/nvme1n1p2, /dev/sde1, and /dev/sda1). Logical Volumes (LVs): > I have a dedicated <1.40 TiB logical volume (lv_backups) specifically for backups, which is where I put Timeshift data (/mnt/data_backups). A larg…It's FOSS Communityjackfrost❤️ With lovePlease share it with your Linux-using friends and encourage them to subscribe (hint: it's here). Share the articles in Linux Subreddits and community forums. Follow us on Google News and stay updated in your News feed. Opt for It's FOSS Plus membership and support us 🙏 Enjoy FOSS 😄
-
Role Model Blog: Elina Johnston, Konecranes
by: Ani Wed, 03 Dec 2025 10:44:18 +0000 It’s never too late to try something new. You might end up loving it, and if not, you can always change it again. Nothing is set in stone. About meI am Elina Johnston. I’m currently working as an IT Solutions Specialist at Konecranes, where I’ve been for over two years. I started at the company as a trainee while I was studying. I hold a bachelor’s degree in Business IT, with a focus on cybersecurity, which I got last spring. My Unexpected Path into TechI must say that the IT field wasn’t something I originally envisioned myself going into. In my early 20s, I studied women’s clothing as a seamstress, so I was originally in the clothing and fashion sector. It’s quite a different field compared to where I am now. But the job market for that kind of work hasn’t been great in Finland, so I ended up working as a dry cleaner—still with clothes, but in a very different way. I quickly discovered that the role wasn’t a good fit for me. After that, I moved in a completely different direction and became a medical secretary in a hospital orthopaedic department. That was quite a big shift. While I was working there, I started my studies in Business IT, and eventually I applied for a trainee position at Konecranes. I worked throughout the rest of my studies, and now I’m in a permanent role doing similar work but with more responsibilities. Elina Johnston, IT Solutions Specialist, Konecranes Growing Through LearningAs a trainee, my manager made sure I got a solid overview of her daily tasks rather than just assigning the simplest work. She gave me pieces of her own workload, walked through them with me, and helped whenever I ran into trouble. Those early months were filled with learning sessions, questions, and a lot of support. Little by little, I began tackling more on my own, and over time, the work started to feel more natural. That steady guidance made all the difference as I grew into the role. Even with all the support, the first six months were tough. I often questioned whether I was in the right place or if I knew enough to be doing this job. But little by little, things started to make more sense. It’s still challenging at times, and I certainly don’t know everything, but I’ve learned that that’s okay. Continuous learning is part of the journey. Working at KonecranesI really enjoy working at Konecranes. My team is fantastic, and the company culture is low-hierarchical. One thing I really appreciate is that Konecranes recognizes that people work in different ways. The flexibility they offer makes a huge difference for me. For example, even though I’m based in Finland, my team is spread across different parts of Europe, so I work mostly from home. Going into the office would mean spending most of the day in phone booths on Teams calls, which isn’t exactly inspiring. Instead, I’m trusted to work remotely, and that freedom is something I value deeply. One of the best parts of my job, though, is my team, especially my manager. She’s truly wonderful, and I’m grateful for everything she’s taught me. Her support, guidance, and overall kindness have made a huge impact on my growth. What I Do TodayIn my current role, I support the configuration of our applications, test different functionalities, and produce related documentation. We don’t code in my team, but we’re responsible for adjusting and configuring the platform so that it provides accurate information and is easier for end users to navigate. Creative Skills That Translate Into ITMy creative background has given me skills that turned out to be incredibly valuable in IT. It has made me adaptable and helped me communicate well, which has helped me tremendously while learning new tools and processes. I’ve discovered that I don’t get stuck and focus on just one thing at a time; I can manage several tasks without losing track of them. I also have a good eye for detail, which makes it easier to spot patterns, understand new concepts, and troubleshoot unfamiliar problems. Often, I can figure out something completely new simply by drawing on past experiences, both from this job and the work I did before. Those creative roots still help me think outside the box when I need it most. Building a Creative MindFor as long as I can remember, I’ve been creating art. I still paint regularly, especially in oils, and it’s a practice that has stayed with me throughout my life. My parents encouraged my creativity early on. I took extra art classes alongside my regular schoolwork when I was a child. Looking back, that early support made a huge difference; it shaped how I see the world and continues to influence the way I approach challenges today. AI as a Helpful AssistantI do use AI, but I try not to rely on it too heavily. For example, I use it for transcribing meetings and taking notes, which is something that used to take a lot of time and split my focus on taking notes at the same time as listening to the meeting. Also, sometimes, when something tiny isn’t working and I can’t spot the issue, it’s incredibly helpful to ask an AI tool to review it. Often, it quickly points out the small detail I missed. I’ve come to see AI as more of an assistant than anything else. At the same time, because of its environmental impact, I avoid using AI for tasks I can easily handle myself, like simple searches or information I know I can find on Google. I think it’s important to challenge myself to solve as much as I can on my own and use AI as a tool rather than a crutch. If You are Afraid of Changing Careers, Read ThisIf there’s one message I want to send to anyone reading this blog post, it’s to stay curious and open to change. You never really know where life will take you, and being willing to adapt makes each transition, even the unexpected ones, a little easier. When I look back at my own path, I wouldn’t change any of it. I’ve moved through different careers, and every experience has given me skills, insights, and confidence that shape how I work today. I’m grateful for all of it and excited to see where things go next. If sharing my story can serve as a role model for someone, I hope it encourages you to explore, experiment, and trust that change is possible. Whether you are struggling where you are or simply craving something different, you can try something new. And if it turns out not to be your path, you can always return to what you were doing — or find something else entirely. The important thing is giving yourself permission to try. The post Role Model Blog: Elina Johnston, Konecranes first appeared on Women in Tech Finland.
-
Raspberry Pi 5 1GB Variant: Is It Worth $45?
by: Sourav Rudra Wed, 03 Dec 2025 10:30:02 GMT Raspberry Pi just launched the 1GB version of the Pi 5 for $45. At the same time, they've increased prices across the Pi 4 and Pi 5 lineups to offset rising memory costs. The hikes are significant. The 8GB Pi 5 now costs $95, up from $80. The 16GB variant jumped from $120 to $145. Even the 4GB Pi 4 sees a $5 increase to $60. According to Raspberry Pi CEO Eben Upton, the LPDDR4 memory shortage driven by AI infrastructure demand is the culprit. He calls it "painful but ultimately temporary" and promises to roll back prices once the market stabilizes. The new 1GB Raspberry Pi 5 certainly appears to represent an entry point into the ecosystem. But $45 for 1GB in 2025 raises questions about value, especially seeing that there are competing brands with a better value proposition. This is nothing new; two years ago, a redditor put out a post asking, "What's the point of a Raspberry Pi above $50?." They argued that rising prices betrayed Raspberry Pi's mission to democratize technology. Fast-forward to today, and that sentiment is still in the minds of hobbyists and tinkerers. So, is the $45 Raspberry Pi 5 1GB worth it? Let's explore what other single-board computers (SBCs) that money can get you in 2025. What Else Can You Get in $45?The single-board computer market has grown competitive. Several manufacturers offer boards with better specs than the Pi 5 1GB at similar or lower prices. These alternatives often pack more RAM, faster processors, or even additional features. However, they will probably lack the polish and ecosystem support that a Raspberry Pi provides. 📋The boards listed below are priced at $45 or less, excluding taxes and shipping. Prices may vary by retailer.ArmSoM Forge1At just $23, ArmSoM's Forge1 is the budget option here. It targets industrial and IoT applications rather than general computing. The board uses the Rockchip RK3506J tri-core Cortex-A7 processor with 512MB of DDR3L RAM and 512MB of NAND flash. It features dual 100 Mbps Ethernet ports, MIPI DSI display support, and RS-485/CAN Bus interfaces. ArmSoM promises 10 years of production support, as this SBC is set to remain in production until at least May 2035. ArmSom Forge1ArmSoM’s Forge1 Looks Like A Versatile Solution for Embedded and Multimedia ApplicationsArmSoM’s latest offering is an industrial-grade SBC.It's FOSSSourav RudraRadxa ROCK 3AThe Radxa Rock 3A starts at around $30 for the 2GB model. It uses the Rockchip RK3568 quad-core Cortex-A55 processor clocked at 2GHz that is paired with an Arm Mali-G52 GPU. The board supports M.2 NVMe storage, PCIe 3.0, and includes a 0.8 TOPS NPU. It has HDMI 2.0 output supporting 4K@60fps, 2x USB 3.0 ports, and a Gigabit Ethernet port. Radxa ROCK 3APINE64 ROCK64The ROCK64 offers 4GB of RAM for $44.95. That's more memory than the Pi 5 1GB at roughly the same price. It is powered by the Rockchip RK3328 quad-core Cortex-A53 processor with Arm Mali-450MP2 graphics. The board includes USB 3.0, Gigabit Ethernet, and 4K digital video output. If you have doubts, then you should know that PINE64 has a strong community and decent software support. PINE64 ROCK64Le Potato AML-S905X-CCThe Le Potato costs $45 for the 2GB model. It positions itself as a direct Raspberry Pi 3 hardware replacement. The board uses the Amlogic S905X quad-core Cortex-A53 at 1.5GHz with Arm Mali-450 graphics. It excels at media playback with hardware decoding for H.265, H.264, and VP9 up to 4K@60fps. The Raspberry Pi 2/3 Model B/B+ compatible form factor and 40-pin GPIO header make it easy to use with existing Pi accessories. Le Potato AML-S905X-CCBut, The Raspberry Pi Ecosystem is UnmatchedThe alternatives may offer better specs on paper. However, Raspberry Pi's ecosystem provides advantages that raw specifications don't accurately reflect. Raspberry Pi OS is polished and officially supported. The distribution receives regular updates and includes pre-configured software for common use cases. The Raspberry Pi Imager tool makes setup trivial, even for beginners. The HAT (Hardware Attached on Top) ecosystem is massive. Hundreds of expansion boards exist for everything from touchscreens to motor controllers. Most work without driver hassles or compatibility issues. Educational resources are everywhere. Official documentation is comprehensive. Third-party tutorials cover a wide range of projects. The Raspberry Pi community is very welcoming, and the official forum has many helpful users and active moderators. This ecosystem matters more than specs for many users. A board with 4GB RAM means little if you can't get your project working because documentation is sparse or the community is inactive.
-
Swiss Data Protection Group Says US Cloud Giants Can't Meet Privacy Standards
by: Sourav Rudra Wed, 03 Dec 2025 07:10:13 GMT The cloud computing space is dominated by a handful of Big Tech players. Amazon Web Services, Microsoft Azure, and Google Cloud together control a large portion of the global cloud market. These hyperscalers have built their empires on data. The more information flows through their systems, the more valuable their platforms become. This business model creates an exploitative relationship where people's privacy is traded for cheap prices. Switzerland's data protection authorities have now drawn a line (in Deutsch). On November 18, privatim passed a resolution calling on Swiss government agencies to reconsider their use of international cloud services for handling sensitive data. Outsourcing of Personal Data is Not OkayBefore you ask, privatim is the Conference of Swiss Data Protection Officers. It brings together data protection authorities from across Switzerland. Do keep in mind that the group's resolutions are not laws, but government agencies typically follow them. The group's position is clear. Outsourcing sensitive or legally confidential personal data to international SaaS solutions (read: the cloud services providers) is unacceptable in most cases. This applies particularly to services from large providers like Microsoft 365. They outline that public bodies have a special responsibility for citizen data. When they outsource data processing to third parties, data protection and information security must remain intact. The resolution argues that current cloud services fail to meet these standards. privatim identified five critical problems with international cloud providers: Most SaaS solutions lack true end-to-end encryption.Global companies offer insufficient transparency for compliance verification.Cloud services create significant loss of control over data.Legal uncertainty exists for data under confidentiality obligations.The US CLOUD Act allows data access regardless of storage location.They concluded their resolution by calling for international SaaS solutions to be used only if government agencies encrypt the data themselves. The cloud provider must have no access to the encryption keys. This requirement effectively rules out most current cloud services for government use. Suggested Read 📖 Self-Hosting is Rising and Linux Users are Leading This RevolutionSelf‑hosting isn’t anti‑cloud; it’s pro‑agency. It’s choosing the right locus of control for the things you care about.It's FOSSTheena Kumaragurunathan
-
Linus Torvalds Defends Windows' Blue Screen of Death
by: Abhishek Prakash Wed, 03 Dec 2025 04:48:52 GMT We all have seen countless memes and jokes about Microsoft Windows' blue of screen death popularly known as BSOD. A popular but fake image poking fun at Windows blue screen of deathMicrosoft did make changes to handle the criticism and jokes. They changed the blue color to black 😆 So, it is still BSOD, blue or black, doesn't matter. The black screen surely mixes with Linux's very own kernel panic screen. Microsoft is taking notes from Linux, it seems. The reason I am talking about Blue Screen of Death is that Linux creator Linus Torvalds recently defended Microsoft for these error screens. Well, sort of. Not entirely a software issue: TorvaldsBy now you might have been aware that Linus Torvalds did a non-serious, fun video with Linus Sebastian of Linus Tech Tips. They built a PC together. In that video, Sebastian discussed Torvalds' fondness for ECC (Error Correction Code). I am using their last name because Linus will be confused with Linus. This is where Torvalds says this: I am convinced that all the jokes about how unstable Windows is and blue screening, I guess it's not a blue screen anymore, a big percentage of those were not actually software bugs. A big percentage of those are hardware being not reliable.Torvalds further mentioned that gamers who overclock get extra unreliability. Essentially, Torvalds believes that having ECC on the machine makes them more reliable, makes you trust your machine. Without ECC, the memory will go bad, sooner or later. He thinks that more than software bugs, often it is hardware behind Microsoft's blue screen of death. I am no hardware expert, and even if I was, I could not disagree with the OG Linus. The part where Torvalds talks about the Windows blue screen of death starts around 9:37. The ECC part comes is just before that. The embed video below starts at 9:37 for your comfort. If you have not already, do watch the full video. It is good to see the casual, fun, human side of one of the greatest computing legends alive, Linus Sebastian. Oops, sorry. Linus Torvalds 😀
-
Scrollytelling on Steroids With Scroll-State Queries
by: Lee Meyer Tue, 02 Dec 2025 16:47:14 +0000 Do you think of scrolling as a more modern way of reading than turning pages in a book? Nope, the concept originated in ancient Egypt, and it’s older than what we now classify as books. It’s based on how our ancestors read ancient physical scrolls, the earliest form of editable text in the history of writing. I am Jewish, so I remember my earliest non-digital scrolling experience was horizontally scrolling the Torah, which can be more immersive than traditionally scrolling a webpage. The physical actions to navigate texts have captured the imagination of many a storyteller, leading authors to gamify the act of turning pages and to create stories that incorporate the physical actions of opening a book and turning pages as part of the narrative. However, innovative experiences using non-standard scrolling haven’t been explored as thoroughly. Photo by Taylor Flowe on Unsplash I can sympathize with those who dismiss scrollytelling as a gimmick: it can be an annoyance if it’s just for the sake of cleverness, but my favorite examples I’ve seen over the years tell stories we couldn’t otherwise. There’s something uniquely immersive about stories driven by a mechanic that has lived in our species’ collective muscle memory since ancient days. Still unconvinced of the value of scrollytelling? Alright, hypothetical annoying skeptic, let’s first warm up with some common use cases for scroll-based styling. Popular scroll-based designs we can simplify with modern CSS It’s awesome that Chrome has solid support for native scroll-driven animations without requiring JavaScript, and we see that both Safari and Firefox are actively working on support for the new scroll-driven standards. These new features facilitate optimized, smooth scroll-driven animations. The support via pure CSS syntax makes scroll-driven animation a more approachable option for designers who may be more comfortable with CSS than with the equivalent JavaScript. Indeed, even though I am a full-stack developer who is supposed to know everything, I found having scroll-driven animation built into the browser and available with a few lines of CSS gets my creativity flowing, inspiring me to experiment more than if I had to go through hoops of a proprietary library and writing JavaScript, which in the past might include messing with intersection observer and fiddly code. If animation timelines weren’t enough, Chrome has now introduced support for CSS carousel, scroll-initial-target, and scroll-state queries—all of which provide opportunities to control scrolling behaviors in CSS and style all the things based on scrolling. In my opinion, scroll-state is more of an evolutionary than revolutionary addition to the growing range of scroll-related CSS features. Animation timelines are so powerful that they can be hacked to achieve many of the same effects we can implement with scroll-state queries. Therefore, think of scroll-state as a highly convenient, simplified subset of what we can do in more verbose hacky ways with animation timelines and/or view timelines. Some examples of effects scroll-state simplifies are: Before scroll-state queries existed, you could hack view progress timelines to create scroll-triggered animations, but we now have snapped scroll-state queries to achieve similar effects. Before snappped queries existed, Bramus demonstrated a hack to simulate a hypothetical :snappped selector using scroll-driven animations. Before scrollable queries existed, Bramus showed how we could do similar things using scroll-timeline. Take a moment to appreciate that Bramus is from the future, and to reflect on how scroll-state can simplify common UI patterns, such as scroll shadows, which Chris Coyier said might be his “favorite CSS trick of all time.” This year, Kevin Hamer showed how scroll-timeline can achieve scroll shadows in CSS with fewer tricks. It’s excellent, but the only thing better than clever CSS tricks is that scroll shadows no longer require a trick at all. Hacking CSS is fun, but there is something to be said for that warm fuzzy feeling that CSS was made just for your use case. This demo from the Chrome blog shows how scroll shadows and other visual affordances are easy to implement with scroll-state. But the popularity of Kevin’s article suggests that normal, sane people will gravitate to practical use cases for the new CSS scroll-based features. In fact, a normal and sane author might end the article here. Unfortunately, as I revealed in a previous article, I have been cursed by a spooky shopkeeper who sells CSS tricks at a haunted carnival, so I now roam the earth attempting the unthinkable with pure CSS. Decision time As you reach this paragraph in the article, you realize that when you scroll, it fast-forwards reality. Therefore, after we end the discussion of scroll shadows, the shadows swallow the world outside your window, except for two glowing words hovering near your house: CSS TRICKS. You wander out through your front door and meet a street vendor standing beneath the neon sign. The letters give her multiple shadows as if she has thrown them down like discarded masks, undecided about which shade of night to wear. On the table before her lies a weathered scroll. It unrolls on its own, whispering misremembered fragments from a forgotten CSS-Tricks article: “A scroll trigger is a point of no return, like a trap sprung once the hapless user scrolls past a certain point.” The neon flickers like a glitch, revealing another of the shopkeeper’s faces: a fire demon doppleganger of yourself who is the villain of the CodePen we’ll descend into if you scroll further. “Will you continue?” the fire demon hisses. “Will you scroll deeper into the madness at the far edges of CSS? Non-linear scrollytelling Evidently, you are game to play with fire, so check out the pure CSS experiment below, which demonstrates a technique I call “nonlinear scrollytelling,” in which the user controls the outcome of a visual story by deciding which direction to scroll next. It’s a scrolling Choose Your Own Adventure. But if your browser is less adventurous than you are, watch the screen recording instead. The experiment will only work on Chromium-based browsers for now, because it relies on scroll-state, animation-timeline, scroll-initial-target and CSS inline conditionals. CodePen Embed Fallback I haven’t seen this technique in the wild, so let me know in the comments if you have seen other examples of the idea. For now, I’ll claim credit for pioneering the mechanics — but I give credit to the talented Dead Revolver for creating the awesome, affordable pixel art bundle I used for most of the graphics. The animated lightsaber icon was ripped from this cool CodePen by Ujjawal Anand, and I used ChatGPT to draw the climbable building. To make the bad guy, I reused the same spritesheet from the player character, but I implemented the Mirror Match trope from Mortal Kombat, using color shifting to create a “new” character who I evilized by casting the following spell in CSS: .evil-twin { transform: rotateY(180deg); filter: invert(24%) sepia(99%) saturate(5431%) hue-rotate(354deg) brightness(93%) contrast(122%); background-image: url(/* same spritesheet as the player character */); } It’s cool that CSS helps recycle existing assets for those like me who are drawing-challenged. I also wanted to make sure that well-supported CSS features like transform and filter didn’t feel left out of the fun in an experiment filled with newer, emergent CSS features. But if you’ve come this far, you’re probably eager to understand the scroll-related CSS logic. Our story begins in the middle of the end You may have noticed our experiment earns extra crazy points as soon as it loads, by starting at the middle of the bottom of the page so that the player can choose whether to scroll left to run away, or scroll right to walk unarmed towards the bad guy if the player wants to compete with the madness level of the game’s creator. This explainer for the emergent scroll-initial-target property shows that controlling scroll position on load was previously possible by hacking CSS animations and the scroll-snap-align property. However, similar to what we discussed above about the value proposition of scroll-state, a feature like scroll-initial-target is exciting because it simplifies something that previously required verbose, fragile hacks, which can now be replaced with more succinct and reliable CSS: .spawn-point { position: absolute; left: 400vw; scroll-initial-target: nearest; } As cool as this is, we should only subvert expectations for how a webpage behaves if we have a sufficient reason. For instance, CSS like the above could have simplified my pure CSS swiper experiment, but Chrome only added scroll-initial-target in February 2025, the month after I wrote that article. Using scroll-initial-target would be justified in the swiper scenario, since the crux of that design was that the user started in the middle with the option to swipe left or right. A similar dilemma is central to the opening of our scrollytelling narrative. The disorienting experience of finding ourselves in an unexpected scroll position with only the option to scroll horizontally heightens the drama, as the user has to adapt to an unusual way of interacting while the bad guy rapidly approaches. I’m feeling generous, so let’s give the user 20 seconds to figure it out, but you can experiment with different timeframes by editing the --chase-time custom property at the top of the source file. We’re going to create a CSS implementation of the slasher movie trope in which a walking aggressor can’t be outrun. We do that by marking the bad guy as position: fixed, then adding an infinite walk-cycle animation and another animation that moves him relentlessly from right to left across the screen. Meanwhile, we give the player character a running animation and position him based on a horizontal animation timeline. He can run, but he can’t hide. body { .idle { animation: idleAnim 1s steps(6) infinite; } /* --scroll-direction is populated using the clever property Bramus demonstrates here https://www.bram.us/2023/10/23/css-scroll-detection */ .sprite { transform: rotateY(calc(1deg * min(0, var(--scroll-direction) * 180))); } @container not style(--scroll-direction: 0) { .sprite { animation: runAnim 0.8s steps(8) infinite; } } .evil-twin-wrapper { position: fixed; bottom: 5px; z-index: 1000; margin-left: var(--enemy-x-offset); /* we'll explain later how we detect the way the game should end */ --follow: if(style(--game-state: ending): paused; else: running); animation: var(--chase-time) forwards linear evil-twin-chase var(--follow); } } He can’t hide, but we’ll next introduce a second scroll-based decision point using scroll-state to detect when our hero has been backed into a corner and see if we can help him. How scroll-state could save your life As our hero runs away to the left, the buildings and sky in the cityscape background show off a few layers of parallax scrolling by assigning each layer an anonymous animation timeline and an animation that moves each layer faster than the layer behind it. .sky, .buildings-back, .buildings-mid, .sky-vertical, .buildings-back-vertical, .buildings-mid-vertical { position: fixed; top: 0; left: 0; width: 800%; height: max(100vh, 300px); background-size: auto max(100vh, 300px); background-repeat: repeat-x; animation-timing-function: linear; animation-timeline: scroll(x); } /*...repetitively assign the corresponding animations to each layer...*/ @keyframes move-sky { from { transform: translateX(0); } to { transform: translateX(-2.5%); } } @keyframes move-back { from { transform: translateX(0); } to { transform: translateX(-6.25%); } } @keyframes move-mid { from { transform: translateX(0); } to { transform: translateX(-12.5%); } } This usage of animation timelines is what they were designed for, which is why the code is straightforward. If we had to, we could push the boundaries and use the same technique to set a Houdini variable in an animation timeline to detect when the player reaches the left corner of the screen — but thanks to scroll-state queries, we have a cleaner option. @container scroll-state((scrollable: left)) { body { overflow-y: hidden; } } @container scroll-state((scrollable: bottom)) { body { width: 0; } } That’s all we need to toggle vertical and horizontal scrolling based on position! This is the basis that allows the player to escape from being slashed by the bad guy. Now we can scroll up and down to climb the ladder only when the player reaches the left corner where the ladder is, and disallow horizontal scrolling while he is climbing. I could have made the game detect reaching the left of the screen using animation timelines, but that would involve custom property toggles, which are more verbose and error-prone. When the player climbs to the top of the ladder to collect the lightsaber, we do need one toggle property so the game will remember we have collected the weapon, but it’s simpler than if we had used animation timelines. @keyframes collect-saber { from { --player-has-saber: false; } to { --player-has-saber: true; } } body { animation: .25s forwards var(--saber-collection-state, paused) collect-saber; } @container scroll-state(not (scrollable: top)) { body { --saber-collection-state: running; } } @container style(--player-has-saber: true) { .sprite { background-image: url(/*combat spritesheet*/); } .lightsaber { visibility: hidden; } } Contrariwise, the animation cycle while the sprite is climbing the ladder is a job for animation-timeline used to assign an anonymous vertical timeline to the player sprite. This is applied conditionally when our scroll-state query detects that the player is between the bottom and the top of the ladder. It’s a nice example of how animation timelines and scroll-state queries are good at different things, and work well together. @container scroll-state((scrollable: top) and ((scrollable: bottom))) { .player-wrapper { .sprite { animation: climbAnim 1s steps(8); animation-timeline: scroll(root y); animation-iteration-count: 10; } } } Finish him with fatal conditionality We apply the techniques I discovered in my CSS collision detection article to detect when the two characters meet for their showdown. At that point, we want to disable scrolling entirely and display the appropriate non-interactive endgame cutscene depending on the choices our user made. Notice that if we detect the good guy won, he only strikes with the sword once, whereas the bad guy will continue to slash infinitely, even after the good guy is dead. What can I say — I was working on this CodePen around Halloween. In the past, I wrote an article questioning the need for inline CSS conditionals — but now that they’ve landed in Chrome, I find them addictive, especially when creating a heavily conditional CSS experiment like nonlinear scrollytelling. I like to imagine that the new if() function stands for Interactive Fiction. Below is how I detect the endgame conditions and choose which animations to play in the final cutscene. I am not sure of the most readable way to space out if() code in CSS, so feel free to start holy wars on that topic in the comments. body { --min-of-player-and-enemy-x: min(var(--player-x-offset), var(--enemy-x-offset) - 10px); --max-of-player-and-enemy-y: max(var(--player-y-offset, 5px)); --game-state: if( style(--min-of-player-and-enemy-x: calc(var(--enemy-x-offset) - 10px)) and style(--max-of-player-and-enemy-y: 5px): ending; else: playing ); overflow: if( style(--game-state: ending): hidden; else: scroll ); } @container style(--player-has-saber: true) and style(--game-state: ending) { .player-wrapper { .sprite { animation: attack 0.7s steps(4) forwards; } .speech-bubble { animation: show-endgame-message 3s linear 1s forwards; &::before { content: 'Refresh the page to play again'; } } .evil-twin-wrapper { .evil-twin { evil-twin-die 0.8s steps(4) .7s forwards; } } } @container style(--player-has-saber: false) and style(--game-state: ending) { .player-wrapper { .sprite { animation: player-die .8s steps(6) .7s forwards; } } .evil-twin-wrapper { .speech-bubble { animation: show-endgame-message 3s linear 1s forwards; display: block; &::before { content: 'Baha! Refresh the page to fight me again'; } .evil-twin { attack 0.8s steps(4) infinite; } } } } Should we non-linearly scrollytell all the things? I am glad you asked, hypothetical troll who wrote that heading. Of course, even putting the technical challenges aside, you know that this won’t always be the right approach for a website. As Andy Clarke recently pointed out here on CSS-Tricks, design is storytelling. The needs of every story are different, but I found my little pixel art guy’s emotional story arc requires non-linear scrollytelling. I think this particular example isn’t a gimmick and is a legitimate form of web design expression. The demo tells a simple story, but my wife pointed out that a personal situation I am dealing with has strong analogies to the pixel guy’s journey. He finds himself in a situation where the only sane option is to allow himself to be backed into a corner, but when all seems lost, he finds a way to rise above the adversity. Then he learns that the moral high ground is its own form of trap, so he must put his own spin on the wisdom of Sun Tzu that “to know your enemy, you must become your enemy.” He apparently lowers himself back to the aggressor’s level — but he only does what is necessary. The bitterwseet moral is that survival sometimes requires taking a leaf out of the enemy’s book — but the user has been guiding the hero through this story, which helps the audience to understand that the good guy’s motivations are not comparable to those of his adversary. While testing the CodePen, I found the story moving and even suspenseful in an 8-bit nostalgia kind of way, even if some of that suspense was my uncertainty about whether I would get it working. From a technical point of view, I think building a full-scale website based on this idea would require a mix of CSS and JavaScript, because storing state in CSS currently requires hacks (like this one, which is cool but also highly experimental). The paused animation approach to remember that the player collected the sword can glitch due to timer drift, so there is a small chance the dude will start the game with the lightsaber already in his hand! If you resize the window during the endgame, you can glitch the game, and then things get really weird. By contrast, something like the scroll snap events — already supported in Chrome — would allow us to store state and even play sounds using a script that fires based on scroll interactions. It seems like we already have enough in CSS to build a site like this one, which uses horizontal multimedia scrollytelling to raise awareness that interpersonal violence exists on a continuum and tends to escalate if the target is unable to recognize the early warning signs. That’s a worthy topic I unfortunately have some experience with, and the usage of horizontal scrollytelling to address it demonstrates that a wide variety of stories can be told engagingly through scrollytelling. Scrollytelling on Steroids With Scroll-State Queries originally published on CSS-Tricks, which is part of the DigitalOcean family. You should get the newsletter.
-
Google's New AI Tool Solves a Problem for Every Lazy Developer
by: Sourav Rudra Tue, 02 Dec 2025 11:17:07 GMT Back on November 13, Google launched Code Wiki in public preview. The platform automatically generates and maintains documentation for code repositories using Gemini. The tool addresses what Google calls software development's biggest, most expensive bottleneck, "reading existing code". In simple terms, Code Wiki keeps documentation constantly updated as the codebase develops. Instead of static content that becomes outdated, it serves as a living wiki that evolves with every code change. Here's what it brings to the table. 👇 Code Wiki: Ciao Manual Documentation?Code Wiki creates interactive documentation that links high-level explanations directly to specific code files, classes, and functions. Every wiki section is hyperlinked to relevant code files and definitions, merging reading and exploring into a relatively simple workflow. The platform scans the full codebase and creates fresh documentation after each change. It can automatically generate architecture diagrams, class diagrams, and sequence diagrams that change with the code. A Gemini-powered chat agent is also built in that uses content from the up-to-date wiki as context to answer specific questions about the code repository. An Early PreviewCode Wiki does a surprisingly good job! I tested Code Wiki by searching for the Kubernetes repository. It displayed a detailed page with video, diagrams, and text explanations of the project structure. After that, I asked the integrated Gemini chat a basic question about what the repository contains. It listed everything cleanly and organized the information in a way that made sense (using bullet points and so on). If you want to check it out yourself, then the Code Wiki website is already live as a public preview. It should work well for searches of public repositories. Code Wiki (public preview)Google is also developing a Gemini CLI extension for private repositories, where developers and teams will be able to run Code Wiki locally on their internal codebases. It is not live yet, but you can join the waitlist to get access when it launches.
-
Not Every Browser is Built on Chrome: Explore These Firefox-based Options
by: Pulkit Chandak Tue, 02 Dec 2025 10:54:21 GMT Chrome is undoubtedly the most popular browser on the market. Backed by Google and coming in default for most Android devices, which have the largest smartphone market share, Chrome checks a lot of boxes and makes it immensely easy to sync your browsing data across devices. There are, however, some caveats. Even though it is based on open source Chromium project, Chrome has been under fire again and again over the years because of privacy concerns. The biggest alternative available to us is Firefox. But then not everyone is a fan of Firefox as well. It could be the user interface, it could be the disklike for the Mozilla Foundation (don't be surprised, some people do), it could be some other reason. Yet, if you want a browser that is not Chromium based and it is not the stock Firefox, how about trying some Firefox-based browsers? Let me list the best available options for you. 1. LibreWolfLibreWolf takes up the ambitious goal of removing all sorts of security issues from the usual Firefox. It does so first off by removing all telemetry, including all experimental data surveys. It provides privacy-oriented search engines by default, like DuckDuckGo, Searx and Qwant. LibreWolf also includes uBlock Origin by default as well, to block ads and tracking. Other than that, it also disables Firefox Sync as some people don't want cloud based sync as well. Altogether, you get a more Free Software Foundation styled open source version of Firefox. Meaning it is more towards the core principles of open source. LibreWolf Browser2. WaterfoxA similar option to LibreWolf, Waterfox offers extra privacy features. It comes with tracking protection by default, with things like Oblivious DNS, which makes it harder for the ISP to track online activity. It allows you to open private tabs within the window of the regular tabs, making it easier to access the non-recording privacy measures. Correct me if I am wrong but I don't think Firefox has this option, at least by default. Telemetry, obviously, is disabled except for the bare minimum necessary for browser updates. It also provides clean link sharing, stripping it of the tracking parameters, along with privacy-friendly defaults for search engine. Other than the privacy features, Waterfox offers ease-of-usage features such as smooth import from existing Firefox accounts, vertical tabs, container tabs for tab grouping and so on. Waterfox is beautifully designed, highly customizable, and delivers on its privacy promises, for which reasons it has been quite well reviewed. Waterfox Browser3. Zen BrowserZen Browser has gained quite some popularity in the last couple of years, and for good reason. It features an iconic vertical tab sidebar, with workspace support and compact mode for lesser visual hassle. Talking about cosmetic changes, it gives you heavy customizability for the browser themes, with gradients, textures and colors. It even offers community themes via the Themes Store. For easier access to different tabs, it offers a split view, in which you can split the browser window to include multiple tabs side-by-side for multitasking. You'll love it if you have an ultrawide monitor. Other than that, it also has privacy features with minimal telemetry, and offers a "calm" internet experience. I've used Zen personally for a stretch of time, and I had no complaints with it except for a slightly longer start-up time, which might not necessarily be the case for you (because my teammates at It's FOSS disagree). Zen Browser4. Tor BrowserTor Browser has its root in the privacy business, with the onion routing protocol. It was started off in the Naval Research Lab, which was designed primarily for isolated secure transmission of data. In simple words, onion routing protocol works like layers of an onion, where data is sent through network nodes called "onion routers", each of which peels away a single layer, revealing the next destination of the data, essentially making it harder to track where the data is coming from or going to, next. Each intermediary knows only the location of the next router, and no more. Coming to the actual browser, it is pretty much a Firefox clone with multiple security levels, fingerprinting protection, and censorship circumvention using ".onion" sites. The security is so good that it has been historically used for whistleblowing purposes and anonymously published journalism such as WikiLeaks. Due to the intricate protocol, however, it also tends to be quite slow. A number of convenience features, especially ones that require geolocation tend to work unwell on Tor. Basically, use Tor browser when you need extra privacy, but it may not be suitable for your regular day-to-day web browsing activity. Tor Browser5. Mullvad BrowserMullvad is essentially being described as Tor without the Tor protocol. It has proper private browsing by default, and has an interesting and strong anti-fingerprinting policy. Mullvad makes all the users seem the exact same in terms of any identification parameters such as window sizes, fonts and so on to prevent special identification of any one user. Mullvad also has built in ad and telemetry blocking. Mullvad insists on using a VPN service to pair with the browser, even offering one themselves (which is not free, but is affordable at $5-6 a month). It is configured with DNS-over-HTTPS (DoH) by default, which reduces the chances of DNS-leaking and improves privacy. Some UI changes make it a little inconvenient, such as locked window-sizes, but otherwise, it seems identical to Firefox and works just as well. Mullvad Browser6. Floorp BrowserFloorp browser has a major selling point at customization. The top bar can be moved, the title bar can be hidden, vertical-style and tree-style tabs are available, and it offers a wide array of UI themes. Floorp offers many more interesting, unique features. Some of those are containerized workspaces, where in different workspaces, different login information and settings can be configured. It also offers split tabs and custom mouse gestures. You can also use web apps on an internal Floorp Hub. It offers built-in note-making integration, which can be really useful for productivity work. Because of the unique set of features, Floorp can be really great for productive work, and the customization options further helps the cause. If you're looking for a Vivaldi like option but in Firefox land, Floorp is a good option. Floorp Browser7. Pale MoonPale Moon browser is one of the earliest forks of Firefox. They replaced the Gecko engine with a fork called Goanna. It has the interface of the traditional Firefox, which works well but surely looks dated. Of course, you can customize almost every aspect of the browser. It claims no data collection and telemetry, making it grea choice for privacy as well. Another unique point here is that Pale Moon supports some obsolete web technologies and legacy Firefox plugins. If you have to use legacy plugins or you are nostalgic about Firefox before the Quantum shift. Pale Moon BrowserConclusionAll in all, there are several Firefox-based browsers, and each of them offers something special, something different. Zen and Floorp have been creating quite a bit of buzz recently due to their interesting features, often being considered better than Firefox for both productivity as well as privacy. Let us know in the comments which Firefox-based browser is your favorite. Cheers!
-
ONLYOFFICE Docs 9.2 Release Brings AI Grammar Checks to the Free Office Suite
by: Sourav Rudra Tue, 02 Dec 2025 09:07:48 GMT ONLYOFFICE continues to offer a compelling alternative to proprietary suites like Microsoft Office, with strong document format compatibility and a privacy-respecting approach. The open source suite has successfully built a reputation for combining professional features with user data protection. Now, the developers have released ONLYOFFICE Docs 9.2, building on the work of the earlier release. Let's dig in! 🤓 🆕 ONLYOFFICE Docs 9.2: What's New?It is now possible to customize keyboard shortcuts to suit your workflow needs. To do that, open the File tab and head into the Advanced Settings, where you will find options to reconfigure the shortcuts. This should come in really handy if you are someone who has spent years on a certain office suite and want to replicate your workflow on ONLYOFFICE. Power users who rely heavily on keyboard navigation also benefit from this. Next up is the new macro recording feature, which helps automate repetitive tasks that slow down your workflow. Head to the View tab and click "Record macro" to start capturing your actions. Left to right: custom keyboard shortcuts, macro recording, and AI spell check. With this, the editor records your sequence of steps, whether you are applying consistent formatting across multiple sections, performing data manipulation, or executing any other routine operation. Once saved, you can replay the macro whenever needed. Grammar and spelling checks get an AI upgrade through the ONLYOFFICE AI plugin. With the plugin set up, you can trigger the feature from the AI tab in the toolbar or via the right-click context menu. The tool scans your text and offers correction suggestions, typically including explanations for the recommendations. You have the option to check your full document or just selected portions. Every suggestion appears for individual review, so you decide which corrections to implement. Left to right: form field role assignment and colored PDF redactions. The Form Editor gets usability improvements in this release. You can now add descriptive text labels to checkboxes and radio buttons, making it clearer what each option represents when someone fills out your form. Additionally, when you are inserting new fields into a form, you can assign specific roles to them during the creation process. This is useful for collaborative environments where different team members need to fill in different parts of the same form. 📥 Download ONLYOFFICE Docs 9.2Self-hosting users of ONLYOFFICE can get the latest packages from the official website. For the rest of us, the desktop editors will be receiving this update very soon. The changelog is also a handy resource if you want to learn more about this release. ONLYOFFICE Docs 9.2Suggested Read 📖 6 Best Open Source Alternatives to Microsoft Office for LinuxLooking for Microsoft Office on Linux? Here are the best free and open-source alternatives to Microsoft Office for Linux.It's FOSSAbhishek Prakash
-
Chris’ Corner: Web Components
by: Chris Coyier Mon, 01 Dec 2025 18:25:26 +0000 I’d never heard of a CEM before. That’s a “Custom Elements Manifest” or a custom-elements.json file in your project. It’s basically generated documentation about all the web components your project has. Dave calls them the killer feature of web components. I love the idea of essentially getting “free” DX just be generating this file. I particularly like the language server idea so that code editors can offer all the fancy autocomplete and linting for your bespoke elements. Sometimes web components seem so practical and straightforward, like Eric Meyer’s recent <aside-note>. It yanks out some text into another element that gets positioned somewhere new, if a few media queries pass. And sometimes web components scare me, like when you read advice to make sure to have an asynchronous promise-resolving disconnectedCallback that is a mirror image of your connectedCallback because you can’t predict how the DOM will be changed. Maybe it’s best to roll up your sleeves and write your own define functions. Let’s just take a quick stroll through some web components I saw people writing about recently. I do find it significant there is a low constant simmer of web component writing/sharing like this. Lea Verou made a <bluesky-likes> component. I gave it a whirl just for fun. Zach Leatherman took the Web Awesome copy button and incorporated it into the Eleventy docs in his own way, with all the thinking toward performance and progressive enhancement as you’d expect. Pontus Horn got all declarative with ThreeJS thanks to web components.