10 interesting stories served every morning and every evening.
In August 2025, Google announced that starting next year, it will no longer be possible to develop apps for the Android platform without first registering centrally with Google. This registration will involve:
What this means for your rights
➤ You, the consumer, purchased your Android device believing in Google’s promise that it was an open computing platform and that you could run whatever software you choose on it. Instead, starting next year, they will be non-consensually pushing an update to your operating system that irrevocably blocks this right and leaves you at the mercy of their judgement over what software you are permitted to trust.
➤ You, the creator, can no longer develop an app and share it directly with your friends, family, and community without first seeking Google’s approval. The promise of Android — and a marketing advantage it has used to distinguish itself against the iPhone — has always been that it is “open”. But Google clearly feels that they have enough of a lock on the Android ecosystem, along with sufficient regulatory capture, that they can now jettison this principle with prejudice and impunity.
➤ You, the state, are ceding the rights of your citizens and your own digital sovereignty to a company with a track record of complying with the extrajudicial demands of authoritarian regimes to remove perfectly legal apps that they happen to dislike. The software that is critical to the running of your businesses and governments will be at the mercy of the opaque whims of a distant and unaccountable corporation.
How you can help
If you are an app developer, do not sign up for the early access program, perform identity verification, or accept an invitation to the Android Developer Console. Respond (politely) to any invitation with a list of your concerns and objections.
Discourage fellow app developers and organizations from signing up to the program. Use community forums, social media, and blog posts to spread the message.
—— It is only through developer acquiescence that their takeover plan can possibly succeed. ——
Regulators worldwide are genuinely concerned about monopolies and the centralization of power in the tech sector, and want to hear directly from individuals who are affected and concerned. When contacting regulators directly, you should be polite and specific about the harm you believe these policies will cause, both to consumers and to competition.
Complaints are especially impactful when they are authored by a citizen of that country or region, and when the language of the email is written in one of the official languages of the region’s governing body. Request a written acknowledgement of the complaint, and consider forwarding any responses you receive to victory@keepandroidopen.org so that we might highlight and reference them.
Send feedback on EU interplay between DMA and GDPR: Consultation on joint guidelines on the interplay between DMA and GDPR until December 4.
[EXPIRED] Send feedback on EU Digital Fairness Act: EU Digital Fairness Act: Have Your Say
Make a report to the US Department of Justice Antitrust Report Online
File a complaint with the US Federal Trade Commission: Antitrust Complaints
Note: Due to the ongoing US government shutdown, it may take a long time before complaints are acknowledged and registered.
Reach out to Procon (depends on your state) and Senacon
Note: Brazil is slated to be one of the initial 4 countries where developer registration will be enforced
Contact the Competition and Consumer Commission of Singapore (CCCS)
Note: Singapore is slated to be one of the initial 4 countries where developer registration will be enforced
Note: Thailand is slated to be one of the initial 4 countries where developer registration will be enforced
Note: Indonesia is slated to be one of the initial 4 countries where developer registration will be enforced
File a report with the Australian Competition and Consumer Commission (ACCC)
Send a request to Australian Australian Consumers’ Association (CHOICE). Ask them to lodge a designated complaint to the Australian Competition & Consumer Comission (ACCC).
Add your organization’s signature to the draft Open Letter to Google Regarding Mandatory Developer Registration for Third-Party App Distribution by emailing signatories@keepandroidopen.org with your name, title, and affiliation.
Install F-Droid on your Android device(s). The more people that use alternative app marketplaces, the harder it will be to shut them out.
Provide feedback directly to Google using their Android developer verification requirements survey.
Make your voice heard on social media and with blog posts, and link to https://keepandroidopen.org
Combat astroturfing: when you encounter suspect posts on community forums and social media in support of the policy (“Well, actually…”), challenge them and do not be shy.
Help this project out by editing this page with more useful information.
“What We Talk About When We Talk About Sideloading” — https://f-droid.org/en/2025/10/28/sideloading.html (Hacker News Thread)
“Google plans to block side-loading like Apple, declaring war on Android freedom” — https://tuta.com/blog/android-side-load-apps-google
“Open-Source Android Apps at Risk Under Google’s New Decree” — https://www.techrepublic.com/article/news-f-droid-warns-google-developer-decree-open-source-android/
“Google’s New Developer ID Rule Could Harm F-Droid, Says Open-Source Advocate” — https://reclaimthenet.org/googles-android-id-rule-threatens-f-droids-future
“Google’s Requirement For All Android Developers To Register And Be Verified Threatens To Close Down Open Source App Store F-Droid” — https://www.techdirt.com/2025/10/07/googles-requirement-for-all-android-developers-to-register-and-be-verified-threatens-to-close-down-open-source-app-store-f-droid/
“Google’s new developer rules could threaten sideloading and F-Droid’s future” — https://www.gizmochina.com/2025/09/30/googles-new-developer-rules-could-threaten-sideloading-and-f-droids-future/
“Google is restricting one of Android’s most important features, and users are outraged” — https://www.slashgear.com/1962802/google-restricting-important-android-feature-reason-why-users-outraged/
“Android’s sideloading limits are its most anti-consumer move yet” - https://www.makeuseof.com/androids-sideloading-limits-are-anti-consumer-move-yet/
“F-Droid says Google’s new sideloading restrictions will kill the project” — https://arstechnica.com/gadgets/2025/09/f-droid-calls-for-regulators-to-stop-googles-crackdown-on-sideloading/
“Google will require developer verification for Android apps outside the Play Store” — https://techcrunch.com/2025/08/25/google-will-require-developer-verification-for-android-apps-outside-the-play-store/
“Google will verify Android developers distributing apps outside the Play store” — https://www.theverge.com/news/765881/google-android-apps-side-loading-developer-verification
“Google: ‘Your $1000 phone needs our permission to install apps now’” — Louis Rossmann — https://youtu.be/QBEKlIV_70E
“F-Droid Will Die in 2026 Unless We Act Now — Techlore” — https://youtu.be/wRvqdLsnsKY
“Google’s changes to sideloading could end F-Droid - Linux Weekly News” — https://youtu.be/iMqpm2Ahmt0
“Google is Applefying Android: The End of Openness” — ChiefGyk3D — https://youtu.be/WFOPzixHoLY
“What We Talk About When We Talk About Sideloading” - https://f-droid.org/2025/10/28/sideloading.html
“Google plans to block side-loading like Apple, declaring war on Android freedom” — https://tuta.com/blog/android-side-load-apps-google
“Join The Protest Against The Closing Of Android” - https://www.i-programmer.info/news/193-android/18419-join-the-protest-against-the-closing-of-android.html
Introducing the Android Developer Console: A first look — https://developer.android.com/developer-verification/assets/pdfs/introducing-the-android-developer-console.pdf
Download an early look of the new Android Developer Console — https://support.google.com/android-developer-console/answer/16450960
Disclaimer: This website is a community-driven noncommercial undertaking. It is operated solely for informational and educational purposes.
Privacy: This site uses no cookies and performs no user tracking or logging.
Copyright: None. This work is marked CC0 1.0 Universal
...
Read the original on keepandroidopen.org »
In August 2025, Google announced that starting next year, it will no longer be possible to develop apps for the Android platform without first registering centrally with Google. This registration will involve:
What this means for your rights
➤ You, the consumer, purchased your Android device believing in Google’s promise that it was an open computing platform and that you could run whatever software you choose on it. Instead, starting next year, they will be non-consensually pushing an update to your operating system that irrevocably blocks this right and leaves you at the mercy of their judgement over what software you are permitted to trust.
➤ You, the creator, can no longer develop an app and share it directly with your friends, family, and community without first seeking Google’s approval. The promise of Android — and a marketing advantage it has used to distinguish itself against the iPhone — has always been that it is “open”. But Google clearly feels that they have enough of a lock on the Android ecosystem, along with sufficient regulatory capture, that they can now jettison this principle with prejudice and impunity.
➤ You, the state, are ceding the rights of your citizens and your own digital sovereignty to a company with a track record of complying with the extrajudicial demands of authoritarian regimes to remove perfectly legal apps that they happen to dislike. The software that is critical to the running of your businesses and governments will be at the mercy of the opaque whims of a distant and unaccountable corporation.
How you can help
If you are an app developer, do not sign up for the early access program, perform identity verification, or accept an invitation to the Android Developer Console. Respond (politely) to any invitation with a list of your concerns and objections.
Discourage fellow app developers and organizations from signing up to the program. Use community forums, social media, and blog posts to spread the message.
—— It is only through developer acquiescence that this takeover plan can possibly succeed. ——
Regulators worldwide are genuinely concerned about monopolies and the centralization of power in the tech sector, and want to hear directly from individuals who are affected and concerned. When contacting regulators directly, you should be polite and specific about the harm you believe these policies will cause, both to consumers and to competition.
Complaints are especially impactful when they are authored by a citizen of that country or region, and when the language of the email is written in one of the official languages of the region’s governing body. Request a written acknowledgement of the complaint, and consider forwarding any responses you receive to victory@keepandroidopen.org so that we might highlight and reference them.
Send feedback on EU interplay between DMA and GDPR: Consultation on joint guidelines on the interplay between DMA and GDPR until December 4.
Send feedback on EU Digital Fairness Act: EU Digital Fairness Act: Have Your Say [EXPIRED]
Make a report to the US Department of Justice Antitrust Report Online
File a complaint with the US Federal Trade Commission: Antitrust Complaints
Note: Due to the ongoing US government shutdown, it may take a long time before complaints are acknowledged and registered.
Reach out to Procon (depends on your state) and Senacon
Note: Brazil is slated to be one of the initial 4 countries where developer registration will be enforced
Contact the Competition and Consumer Commission of Singapore (CCCS)
Note: Singapore is slated to be one of the initial 4 countries where developer registration will be enforced
Note: Thailand is slated to be one of the initial 4 countries where developer registration will be enforced
Note: Indonesia is slated to be one of the initial 4 countries where developer registration will be enforced
File a report with the Australian Competition and Consumer Commission (ACCC)
Send a request to Australian Australian Consumers’ Association (CHOICE). Ask them to lodge a designated complaint to the Australian Competition & Consumer Comission (ACCC).
Add your organization’s signature to the draft Open Letter to Google Regarding Mandatory Developer Registration for Third-Party App Distribution by emailing signatories@keepandroidopen.org with your name, title, and affiliation.
Install F-Droid on your Android device(s). The more people that use alternative app marketplaces, the harder it will be to shut them out.
Provide feedback directly to Google using their Android developer verification requirements survey.
Make your voice heard on social media and with blog posts, and link to https://keepandroidopen.org
Combat astroturfing: when you encounter suspect posts on community forums and social media in support of the policy (“Well, actually…”), challenge them and do not be shy.
Help this project out by editing this page with more useful information.
“What We Talk About When We Talk About Sideloading” — https://f-droid.org/en/2025/10/28/sideloading.html (Hacker News Thread)
“Google plans to block side-loading like Apple, declaring war on Android freedom” — https://tuta.com/blog/android-side-load-apps-google
“Open-Source Android Apps at Risk Under Google’s New Decree” — https://www.techrepublic.com/article/news-f-droid-warns-google-developer-decree-open-source-android/
“Google’s New Developer ID Rule Could Harm F-Droid, Says Open-Source Advocate” — https://reclaimthenet.org/googles-android-id-rule-threatens-f-droids-future
“Google’s Requirement For All Android Developers To Register And Be Verified Threatens To Close Down Open Source App Store F-Droid” — https://www.techdirt.com/2025/10/07/googles-requirement-for-all-android-developers-to-register-and-be-verified-threatens-to-close-down-open-source-app-store-f-droid/
“Google’s new developer rules could threaten sideloading and F-Droid’s future” — https://www.gizmochina.com/2025/09/30/googles-new-developer-rules-could-threaten-sideloading-and-f-droids-future/
“Google is restricting one of Android’s most important features, and users are outraged” — https://www.slashgear.com/1962802/google-restricting-important-android-feature-reason-why-users-outraged/
“Android’s sideloading limits are its most anti-consumer move yet” - https://www.makeuseof.com/androids-sideloading-limits-are-anti-consumer-move-yet/
“F-Droid says Google’s new sideloading restrictions will kill the project” — https://arstechnica.com/gadgets/2025/09/f-droid-calls-for-regulators-to-stop-googles-crackdown-on-sideloading/
“Google will require developer verification for Android apps outside the Play Store” — https://techcrunch.com/2025/08/25/google-will-require-developer-verification-for-android-apps-outside-the-play-store/
“Google will verify Android developers distributing apps outside the Play store” — https://www.theverge.com/news/765881/google-android-apps-side-loading-developer-verification
“Google: ‘Your $1000 phone needs our permission to install apps now’” — Louis Rossmann — https://youtu.be/QBEKlIV_70E
“F-Droid Will Die in 2026 Unless We Act Now — Techlore” — https://youtu.be/wRvqdLsnsKY
“Google’s changes to sideloading could end F-Droid - Linux Weekly News” — https://youtu.be/iMqpm2Ahmt0
“Google is Applefying Android: The End of Openness” — ChiefGyk3D — https://youtu.be/WFOPzixHoLY
“What We Talk About When We Talk About Sideloading” - https://f-droid.org/2025/10/28/sideloading.html
“Google plans to block side-loading like Apple, declaring war on Android freedom” — https://tuta.com/blog/android-side-load-apps-google
“Join The Protest Against The Closing Of Android” - https://www.i-programmer.info/news/193-android/18419-join-the-protest-against-the-closing-of-android.html
Introducing the Android Developer Console: A first look — https://developer.android.com/developer-verification/assets/pdfs/introducing-the-android-developer-console.pdf
Download an early look of the new Android Developer Console — https://support.google.com/android-developer-console/answer/16450960
Privacy Statement: This site uses no cookies and performs no user tracking or logging.
Disclaimer: This website is a community-driven noncommercial undertaking. It is operated solely for informational and educational purposes.
Copyright: None. This work is marked CC0 1.0 Universal
...
Read the original on keepandroidopen.org »
It’s 2025. Does installing Python, managing virtual environments, and synchronizing dependencies between your colleagues really have to be so difficult? Well… no! A brilliant new tool called uv came out recently that revolutionizes how easy installing and using Python can be.
uv is a free, open-source tool built by Astral, a small startup that has been churning out Python tools (like the excellent linter Ruff) for the past few years. uv can:
* Install any Python version for you
What’s best is that it can do all of the above better than any other tool, in my opinion. It’s shockingly fast, written in Rust, and works on almost any operating system or platform.
uv is straightforward to install. There are a few ways, but the easiest (in my opinion) is this one-liner command — for Linux and Mac, it’s:
curl -LsSf https://astral.sh/uv/install.sh | sh
or on Windows in powershell:
powershell -ExecutionPolicy ByPass -c “irm https://astral.sh/uv/install.ps1 | iex”
You can then access uv with the command uv. Installing uv will not mess up any of your existing Python installations — it’s a separate tool, so it’s safe to install it just to try it out.
It’s always a good idea to work with virtual environments for any Python project. It keeps different bits of code and dependencies ringfenced from one another, and in my experience, it can save a lot of hassle to get into the habit of using virtual environments as soon as you can. uv naturally uses virtual environments, so it’s very easy to start using them if you get into using uv.
uv will build a Python environment for you based on what’s specified in a pyproject.toml file in the directory (or parent directories) you’re working in. pyproject.toml files are a standard, modern format for specifying dependencies for a Python project. A barebones one might look a bit like this:
[project]
name = “my_project”
version = “1.0.0”
requires-python = “>=3.9,
In essence, it just has to specify which Python version to use and some dependencies. Adding a name and version number also aren’t a bad idea.
To start a new Python project with uv, you can run
uv init
Which will create a new project for you, with a pyproject.toml, a README.md, and other important bits of boilerplate.
There are a lot of different ways to run this command, like uv init –bare (which only creates a pyproject.toml), uv init –package (which sets up a new Python package), and more. I recommend running uv init –help to read about them.
Once you initialize a project — or if you already have a pyproject.toml file in your project — it’s very easy to start using uv. You just need to do
uv sync
in the directory that your pyproject.toml file is in. This command (and in fact, most uv commands if you haven’t ran it already) will:
Install all dependencies to a new virtual environment in the directory .venv Create a uv.lock file in your directory, which saves the exact, platform-agnostic version of every package installed — meaning that other colleagues can replicate your Python environment exactly.
In principle, you can ‘activate’ this new virtual environment like any typical virtual environment that you may have seen in other tools, but the most ‘uv-onic’ way to use uv is simply to prepend any command with uv run. This command automatically picks up the correct virtual environment for you and runs your command with it. For instance, to run a script — instead of
source .venv/bin/activate
python myscript.py
you can just do
uv run myscript.py
which will have the same effect. Likewise, to use a ‘tool’ like Jupyter Lab, you can just do
uv run jupyter lab
in your project’s directory, as opposed to first ‘activating’ the environment and then running jupyter lab separately.
You can always just edit your pyproject.toml file manually: uv will detect the changes and rebuild your project’s virtual environment. But uv also has easier ways to add dependencies — you can just do
uv add numpy>=2.0
to add a package, including specifying version constraints (like the above.) This command automatically edits your pyproject.toml for you. uv add is also extremely powerful for adding remote dependencies from git or elsewhere on your computer (but I won’t get into that here.)
Finally, I think that one of the most useful things uv can do is to pin a specific Python version for your project. Doing
uv python pin 3.12.9
would pin the current project to exactly Python 3.12.9 for you, and anyone else using uv — meaning that you really can replicate the exact same Python install across multiple machines.
But sometimes, you might just want to run a tool quickly — like using Ruff to lint code somewhere, or starting a Jupyter notebook server without an environment, or even just quickly starting an IPython session with pandas installed so you can open up a file. The uv tool run command, which has a short alias uvx, makes this insanely easy. Running a command like
uvx ruff
will automatically download the tool you want to use and run it in a one-off virtual environment. Once the tool has been downloaded before, this is lightning-fast because of how uv uses caches.
There are a lot of occasions when I might want to do this — a common one might be to quickly start an IPython session with pandas installed (using –with to add dependencies) so that I can quickly open & look at a parquet file. For instance:
uvx –with pandas,pyarrow ipython
Or, maybe just starting a Jupyter Lab server so that I can quickly open a Jupyter notebook that a student sent me:
uvx –from jupyter-core jupyter lab
Or honestly just so many other weird, one-off use cases where uvx is really nice to have around. I don’t feel like I’m missing out by always using virtual environments, because uvx always gives you a ‘get out of jail free’ card whenever you need it.
I first discovered uv last year, while working together with our other lovely developers on building The Astrosky Ecosystem — a wonderful project to build open-source social media integrations for astronomers online. But with multiple developers all working asynchronously on multiple operating systems, managing Python installations quickly became a huge task.
uv is an incredibly powerful simplification for us that we use across our entire tech stack. As developers, we can all work with identical Python installations, which is especially important given a number of semi-experimental dependencies that we use that have breaking changes with every version. On GitHub Actions, we’re planning to use uv to quickly build a Python environment and run our unit tests. In production, uv already manages Python for all of our servers.
It’s just so nice to always know that Python and package installation will always be handled consistently and correctly across all of our machines. That’s why uv is the best thing to happen to the Python ecosystem in a decade.
There’s a lot more on the uv docs, including a getting started page, more in-depth guides, explanations of important concepts, and a full command reference.
...
Read the original on emily.space »
It seems you are using an old or unsupported browser. To continue enjoying our product, please update to a recent version of one of the following browsers:
...
Read the original on www.affinity.studio »
For New York’s No 1 Socialite, A. C.
1) Prioritize your ease of being over any other consideration: parties are like babies, if you’re stressed while holding them they’ll get stressed too. Every other decision is downstream of your serenity: e.g. it’s better to have mediocre pizza from a happy host than fabulous hors d’oeuvres from a frazzled one.
2) Advertise your start time as a quarter-to the hour. If you start an event at 2:00, people won’t arrive till 2:30; if you make it 1:45, people will arrive at 2:00.
3) Invite a few close friends to come 30-60 mins earlier to set up / eat dinner with you / hang out / whatever, so that when the start time approaches you’re already having fun instead of stressing that nobody will come.
4) Most people will only go to a party where they expect to know 3+ others already.
5) Use an app like Partiful or Luma that shows the guest list to invitees. Start by inviting your closest friends, get some yesses, then expand from there.
6) Send the invites in chat groups (or visibly cc’ed emails) to clusters of 4-5 people who know each other, so they can see that their friends are also going.
7) When inviting people individually, namedrop mutual friends who are invited or coming.
8) In a small group, the quality of the experience will depend a lot on whether the various friends blend together well. Follow your instinct on this, even if your instinct feels rude. It’s like cooking a dish, two ingredients can each be fabulous and still not go well together.
9) A large party is more like an Everything Soup: you mainly need to avoid ingredients that ruin the flavor for everyone else; beyond that you can mostly throw in whatever and see what works.
10) Regardless, try not to feel bad about not-inviting someone if your heart says they would make the party less-fun for others. Make peace with gatekeeping because if you don’t exclude a small % of people you will ultimately lose everyone else. Someone can be a good person and a bad fit for your party, so don’t think of it as a judgement on their soul. All of this is easier in theory than in practice.
11) Most events are better when roughly gender-balanced. Prioritize inviting people of the gender you’d likely have fewer of, then top up invites with the other. Once an event crosses a threshold (maybe 70%?) of male-or-female dominance, most people of the other gender are likely to decline (or just not-come to your next party) as a result. So there’s ultimately two equilibria, “roughly gender balanced” and “extremely uncomfortably unbalanced,” and you need to stay in the attraction basin for balance. To do this, keep your invite ratio at worst 60-40 in either direction, in order to prevent a downward spiral.
12) Co-host parties with someone you like a lot but who isn’t in your exact social circle, so that your two friend-sets can intermingle.
13) Figure out the flake rate in your social circles (the % of people who will RSVP yes and flake on the day), and set your invite numbers with that in mind. In my circles, consistently 1/3rd of people who say they will be there will actually not.
14) Couples often flake together. This changes the probability distribution of attendees considerably, and so your chance of losing a quorum in a small-group setting. Small-group couple-events (e.g. 3-4 couple dinner parties) are very hard to manage in a high-flake society, as a result.
15) Create as much circulation at your party as you can. People circulate more when standing than when sitting, so try to encourage standing for those who can e.g. by having high-top tables, or taking away chairs from around tables, or leaving shelves and counter-tops open for people to rest their plates and drinks.
16) Put the food in one part of the room and the drinks in another, or spread the food and drinks out around the space, so that people have lots of excuses to move around the room.
17) If someone arrives at your party and doesn’t know anybody, welcome them and then place them with another group or person. Ideally you can pick someone they’d specifically get along well with, at second-best just someone who’s friendly and easy to talk to, but ultimately you can just insert them in any group that’s nearby and open. The main point is to prevent them having to butt in on strangers themselves, which for many people is mortifying, while your Host Privilege allows you to do it for them.
18) To leave a group conversation, just slowly step back and then step away. Don’t draw attention to your leaving or you’ll be pulled back in. It feels mildly weird to do this but it’s worth it.
19) Throughout the party, prioritize introducing people to each other and hosting the people who are new or shy, even at the cost of getting less time hanging out with your best friends yourself. Parties are a public service, and the guests will (hopefully) pay you back for this by inviting you to parties of their own.
20) Let me repeat that: Parties are a public service, you’re doing people a favor by throwing them. Someone might meet their new best friend or future lover at your gathering. In the short term, lovely people may feel less lonely, and that’s thanks to you. In the long term, whole new children may ultimately exist in the world because you bothered to throw a party. Throwing parties is stressful for most people, but a great kindness to the community, so genuinely pat yourself on the back for doing this.
21) The biggest problem at many parties is an endless escalation of volume. If you know how to fix this, let me know.
...
Read the original on www.atvbt.com »
I’m the person my friends and family come to for computer-related help. (Maybe you, gentle reader, can relate.) This experience has taught me which computing tasks are frustrating for normal people.
Normal people often struggle with converting video. They will need to watch, upload, or otherwise do stuff with a video, but the format will be weird. (Weird, broadly defined, is anything that won’t play in QuickTime or upload to Facebook.)
I would love to recommend Handbrake to them, but the user interface is by and for power users. Opening it makes normal people feel unpleasant feelings.
This problem is rampant in free software. The FOSS world is full of powerful tools that only have a “power user” UI. As a result, people give up. Or worse: they ask people like you and I to do it for them.
I want to make the case to you that you can (and should) solve this kind of problem in a single evening.
Take the example of Magicbrake, a simple front end I built. It hides the power and flexibility of Handbrake. It does only the one thing most people need Handbrake for: taking a weird video file and making it normal. (Normal, for our purposes, means a small MP4 that works just about anywhere.)
There is exactly one button.
This is a fast and uncomplicated thing to do. Unfortunately, the people who have the ability to solve problems like this are often disinclined to do it.
“Why would you make Handbrake less powerful on purpose?”
“What if someone wants a different format?”
The answer to all these questions is the same: a person who needs or wants that stuff can use Handbrake. If they don’t need everything Handbrake can do and find it bewildering, they can use this. Everyone wins.
It’s a bit like obscuring the less-used functions on a TV remote with tape. The functions still exist if you need them, but you’re not required to contend with them just to turn the TV on.
People benefit from stuff like this, and I challenge you to make more of it. Opportunities are everywhere. The world is full of media servers normal people can’t set up. Free audio editing software that requires hours of learning to be useful for simple tasks. Network monitoring tools that seem designed to ward off the uninitiated. Great stuff normal people don’t use. All because there’s only one UI, and it’s designed to do everything.
80% of the people only need 20% of the features. Hide the rest from them and you’ll make them more productive and happy. That’s really all it takes.
If you’d like to read more of my writing, follow me on 𝕏
...
Read the original on danieldelaney.net »
It finally happened. Linux gamers on Steam as of the Steam Hardware & Software Survey for October 2025 have crossed over the elusive 3% mark. The trend has been clear for sometime, and with Windows 10 ending support, it was quite likely this was going to be the time for it to happen as more people try out Linux.
As of the October 2025 survey the operating system details:
The snapshot chart from our dedicated Steam Tracker page shows the clear trend:
Overall, 3% might not seem like much to some, but again - that trend is very clear and equates to millions of people. The last time Valve officially gave a proper monthly active user count was in 2022, and we know Steam has grown a lot since then, but even going by that original number would put monthly active Linux users at well over 4 million. Sadly, Valve have not given out a more recent monthly active user number but it’s likely a few million higher, especially with the Steam Deck selling millions.
And if we look at the distribution breakdown chart from our page:
The overall distribution numbers for October 2025:
The numbers are still being massively pumped up by the Steam Deck with SteamOS Linux, which is not surprising considering that the Steam Deck is still in the top 10 of the global top sellers on Steam constantly. And with all the rumours and leaks surrounding the upcoming Steam Frame, which will hopefully be a SteamOS Linux powered VR kit, we could see the numbers just continue to jump higher.
...
Read the original on www.gamingonlinux.com »
OpenAI, the company behind ChatGPT, released their own browser called Atlas, and it actually is something new: the first browser that actively fights against t…
OpenAI, the company behind ChatGPT, released their own browser called Atlas, and it actually is something new: the first browser that actively fights against t…
OpenAI, the company behind ChatGPT, released their own browser called Atlas, and it actually is something new: the first browser that actively fights against the web. Let’s talk about what that means, and what dangers there are from an anti-web browser made by an AI company — one that probably needs a warning label when you install it.
The problems fall into three main categories:
Atlas substitutes its own AI-generated content for the web, but it looks like it’s showing you the web
The user experience makes you guess what commands to type instead of clicking on links
You’re the agent for the browser, it’s not being an agent for you
When I first got Atlas up and running, I tried giving it the easiest and most obvious tasks I could possibly give it. I looked up “Taylor Swift showgirl” to see if it would give me links to videos or playlists to watch or listen to the most popular music on the charts right now; this has to be just about the easiest possible prompt.
The results that came back looked like a web page, but they weren’t. Instead, what I got was something closer to a last-minute book report written by a kid who had mostly plagiarized Wikipedia. The response mentioned some basic biographical information and had a few photos. Now we know that AI tools are prone to this kind of confabulation, but this is new, because it felt like I was in a web browser, typing into a search box on the Internet. And here’s what was most notable: there was no link to her website.
Unless you were an expert, you would almost certainly think I had typed in a search box and gotten back a web page with search results. But in reality, I had typed in a prompt box and gotten back a synthesized response that superficially resembles a web page, and it uses some web technologies to display its output. Instead of a list of links to websites that had information about the topic, it had bullet points describing things it thought I should know. There were a few footnotes buried within some of those response, but the clear intent was that I was meant to stay within the AI-generated results, trapped in that walled garden.
During its first run, there’s a brief warning buried amidst all the other messages that says, “ChatGPT may give you inaccurate information”, but nobody is going to think that means “sometimes this tool completely fabricates content, gives me a box that looks like a search box, and shows me the fabricated content in a display that looks like a web page when I type in the fake search box”.
And it’s not like the generated response is even that satisfying. The fake web page had no information newer than two or three weeks old, reflecting the fact that LLMs rely on whenever they’ve most recently been able to crawl (or gather without consent) information from the web. None of today’s big AI platforms update nearly as often as conventional search engines do.
Keep in mind, all of these shortcomings are not because the browser is new and has bugs; this is the app working as designed. Atlas is a browser, but it is not a web browser. It is an anti-web browser.
Back in the early 1980s, there was a popular game called Zork that was in a category called “text adventure games”. The computer would say something like:
You are in a clearing in the forest, there is a rock here.
And then you would type:
Take the rock
And it would say:
Sorry, I can’t do that.
So then you would type:
Pick up the rock.
And then it would say:
You have the rock.
And it would go on like this for hours while you tried in vain to guess what the hell it wanted you to type, or you discovered the outdoors, whichever came first.
There were a tiny handful of incredible nerds who thought this was fun, mostly because 3D graphics and the physical touch of another human being hadn’t been invented yet. But for the most part, people would tire of the novelty because trying to guess what to type to make something happen is a terrible and exhausting user interface. This was also why people hated operating systems like MS-DOS, and why even all the Linux users reading this right now are doing so in a graphical user interface.
Clicking on things is great, because you can see what your choices are, and then just choose the one you want. Tapping on things on a touch screen is even better. And this kind of discoverability was one of the fundamental innovations of the web: It democratized being able to create a clickable list of options once anybody could make a web page.
In the demo for Atlas, the OpenAI team shows a user trying to find a Google Doc from their browser history. A normal user would type keywords like “atlas design” and see their browser show a list of recent pages. They would recognize the phrase “Google Docs” or the icon, and click on it to get back to where they were.
But in the OpenAI demo, the team member types out:
search web history for a doc about atlas core design
This is worse in every conceivable way. It’s slower, more prone to error, and redundant. But it also highlights one of the biggest invisible problems: you’re switching “modes”. Normally, an LLM’s default mode is to create plausible extrapolations based on its training data. Basically, it’s supposed to make things up. But this demo has to explicitly walk you through “now it’s time to go search my browser history” because it’s coercing the AI to look through local content. And that can’t be hallucinated! If you’re trying to get back to a budget spreadsheet that you’ve created and ChatGPT decides to just make up a file that doesn’t exist, you’re probably not going to use that browser anymore.
Most people on the internet aren’t old enough to remember this, but people were thrilled to leave command-line interfaces behind back in the 1990s. The explosion of color and graphics and multimedia in that era made a ton of headlines, but the real gains in productivity and usability came precisely because nobody was having to guess what secret spell they had to type into their computer to get actual work done. Links were a brilliant breakthrough in making it incredibly obvious how to get to where you wanted to go on a computer.
And look, we do need innovation in browser interfaces! If Atlas was letting people use plain language to automate regular tasks they want to do online, or even just added more tools that plugged into the rest of the services that people use every day, it might represent a real leap forward.
In the new-era command-line interface of Atlas, though, we’re not just facing the challenges of an inscrutable command line. There’s the even larger problem that, even if you guess the right magic words, it might either simply get things wrong or completely make things up. Atlas throws away the discoverability, simplicity and directness of the web by encouraging you to navigate even through your own documents and search results with an undefined, unknowable syntax that produces unreliable results. It’s another way of being anti-web.
OpenAI is clearly very motivated to gather all the data in the world into their model, regardless of whether or not they have consent to do so. This is why a lot of people have been thinking deeply about what it would take to create an Internet of consent. It’s no coincidence that hundreds of people who work at OpenAI, including many of the most powerful executives, are alumni of Facebook/Meta, especially during the era of many of that company’s most egregious abuses of people’s privacy. In the marketing materials and demonstrations of Atlas, OpenAI’s team describes the browser as being able to be your “agent”, performing tasks on your behalf.
But in reality, you are the agent for ChatGPT.
During setup, Atlas pushes very aggressively for you to turn on “memories” (where it tracks and stores everything you do and uses it to train an AI model about you) and to enable “Ask ChatGPT” on any website, where it’s following along with you as you browse the web. By keeping the ChatGPT sidebar open while you browse, and giving it permission to look over your shoulder, OpenAI can suddenly access all kinds of things on the internet that they could never get to on their own.
Those Google Docs files that your boss said to keep confidential. The things you type into a Facebook comment box but never hit “send” on. Exactly which ex’s Instagram you were creeping on. How much time you spent comparing different pairs of shoes during your lunch hour. All of those things would never show up in ChatGPT’s regular method of grabbing content off the internet. Even Google wouldn’t have access to that kind of data when you use their Chrome browser, and certainly not in a way that was connected to your actual identity.
But by acting as ChatGPT’s agent, you can hold open the door so that the AI can now see and access all kinds of data it could never get to on its own. As publishers and content owners start to put up more effective ways of blocking the AI platforms from exploiting their content without consent, having users act as agents on behalf of ChatGPT lets them get around these systems, because site owners are never going to block their actual audience.
And while ChatGPT is following you around, it can create a complete and comprehensive surveillance profile of you — your personality, your behaviors, your private documents, your unfinished thoughts, how long you lingered on that one page before hitting the back button — at a level that the search companies and social networks of the last generation couldn’t even dream of. We went from worrying about being tracked by cookies to letting an AI company control our web browser and watch everything we do. The amount of data they’re gathering is unfathomable.
All of this gets described as if it is helping you. The truth is, in its current implementation, ChatGPT’s “agent” functionality is largely useless. I tried the most standard test: having it book a very simple flight on my behalf. I provided ChatGPT with a prompt that included the fact it was a direct flight for one person, specifying the exact date and the origin and destination airports, and let the browser do the part that was supposed to be magical.
While the browser did a very good job of smoothly navigating to the right place on the airline website, it was only at the point where I would have actually been confirming the booking that I noticed it had arbitrarily changed the date to a completely different day, weeks off from what I had specified. By contrast, entering the exact same information into a standard Google search resulted in direct links that could be clicked on in literally one-tenth the time—and the old-fashioned, non-LLM Google results actually led to a booking link on the correct date.
So why would such an inferior experience be positioned as the most premium part of this new browser? It stands to reason it’s because this is the most strategically important goal of the company creating the product. Their robots need humans to guide them around the gates that are quickly being erected around the open web, and if they can use that to keep their eyes on everything the humans are doing at the same time, so much the better. The “agent” story really only works in one direction, and that direction is anti-web.
Here’s what’s most key for contextualizing the Atlas browser: this is the same company whose chatbot keeps telling vulnerable children to self-harm, and they do, and now a number of them are dead. When those who are in psychological distress engage with these tools, they very frequently get pulled into states of extreme duress — which OpenAI knows keenly well because even one of their own investors has gone off the deep end when over-using the platform. In fact, the user experience feature that OpenAI is most effective at creating is emotional dependency amongst its users, as evidenced by the level of despondency its users showed after the recent release of GPT-5.
When users respond to a software update by expressing deep emotional distress, and that they feel like they’ve lost a friend, you have a profound bug. If there are enough grieving parents who have been devastated by your technology that they can form a support group for each other, then there should at the very least be a pretty aggressive warning label on this application when it is initially installed. Then, at a far less serious level, if this product is going to have extreme and invasive effects on markets and cultural ecosystems without disclosing the mechanisms it uses to do so, and without asking the consent of the many parties whose intellectual property and labor it will rely on to accomplish those ends, then we need to have a much broader reckoning.
Also, I love the web, and this thing is bad for the web.
I really, really want there to be more browsers! I want there to be lots of weird new ways of going around the web. I have my own LLM that I trained with my own content, and I bet if everybody else could have one like mine that they control, that had perfect privacy and wasn’t owned by any big company, and never sent their data anywhere or did anything creepy, they’d want the benefits of that, too. It would even be awesome if that were integrated with their browser — with their web browser. I’m all for people trying strange new geeky things, and innovating on the experiences we have every day so we’re not just stuck typing in the same boxes we’ve been using for decades, or settling for the same few experiences.
Hell, there’s even room for innovation on command-line interfaces! They’re not inherently terrible (I use one every day!), but regular folks shouldn’t have one forced on them for ordinary tasks. And the majority of things people do on a computer are better when they rely on the zeroes-and-ones reliability of computers, when we know if what they’re doing is true or false. We need to have fewer things in the world that make us wonder whether everything is just made up bullshit.
The web was designed without the concept of personal identity at all, and without any tracking system built in. It was designed for anybody to be able to create what they want, and even for anybody to be able to make their own web browser. Not long after its invention, people came up with ideas like cookies and made different systems for logging in, and then big companies started coming in and realized that if they could control the browser, they’d control all the users and the ways of making money. Ever since, there’s been a long series of battles over privacy versus monetization, but there’s been some small protection for users, who benefitted from those smart original design choices back at the birth of the web.
It’s very clear that a lot of the new AI era is about dismantling the web’s original design. The last few decades, where advertising was targeting people by their interests instead of directly by their actual identity, now sees AI companies trying to create an environment of complete surveillance. That requires a new Internet where there’s no concept of consent for either users or those who create content and culture — everything is just raw materials, and all of us are fair game.
The most worrisome part is that Atlas looks so familiar, and feels so innocuous, that people will try it and mistake it for a familiar web browser just like the other tools that they’ve been using for years. But Atlas is a browser that actively fights against the web, and in doing so, it’s fighting against the very idea that you should have control over what you see, where you go, and what watches you while you’re there.
...
Read the original on www.anildash.com »
A few months back, while playing around with , I came across something that completely derailed my plans. Strange attractors - fancy math that creates beautiful patterns. At first I thought I’d just render one and move on, but then soon I realized that this is too much fun. When complexity emerges from three simple equations, when you see something chaotic emerge into beautiful, it’s hard not to waste some time. I’ve spent countless hours, maybe more than I’d care to admit, watching these patterns form. I realized there’s something deeply satisfying about seeing order emerge from randomness. Let me show you what kept me hooked.
Most of what I’ve learned about strange attractors comes from working on this visualization. If you’re seeking advanced mathematical explanations, this might not be for you. My intention here is to share my learnings in an engaging and accessible manner.
Dynamical Systems are a mathematical way to understand how things change over time. Imagine you have a system, which could be anything from the movement of planets to the growth of a population. In this system, there are rules that determine how it evolves from one moment to the next. These rules tell you what will happen next based on what is happening now. Some examples are, a pendulum, the weather patterns, a flock of birds, the spread of a virus in a population (we are all too familiar with this one), and stock market.
There are two primary things to understand about this system:
Phase Space: This is like a big collection of all the possible states the system can be in. Each state is like a
snapshot of the system at a specific time. This is also called the state space or the world state.
Dynamics: These are the rules that takes one state of the system and moves it to the next state. It can be
represented as a function that transforms the system from now to later.
For instance, when studying population growth, a phase-space (world-state) might consist of the current population size and the rate of growth or decline at a specific time. The dynamics would then be derived from models of population dynamics, which, considering factors like birth rates, death rates, and carrying capacity of the environment, dictate the changes in population size over time.
Another way of saying this is that the dynamical systems describe how things change over time, in a space of possibilities, governed by a set of rules. Numerous fields such as biology, physics, economics, and applied mathematics, study systems like these, focusing on the specific rules that dictate their evolution. These rules are grounded in relevant theories, such as Newtonian mechanics, fluid dynamics, and mathematics of economics, among others.
There are different ways of classifying dynamical systems, and one of the most interesting is the classification into chaotic and non-chaotic systems. The change over time in non-chaotic systems is more deterministic as compared to chaotic systems which exhibit randomness and unpredictability.
Chaos Theory is the sub branch of dynamical systems that studies chaotic systems and challenges the traditional deterministic views of causality. Most of the natural systems we observe are chaotic in nature, like the weather, a drop of ink dissolving in water, social and economic behaviours etc. In contrast, systems like the movement of planets, pendulums, and simple harmonic oscillators are extremely predictable and non-chaotic.
Chaos Theory deals with systems that exhibit irregular and unpredictable behavior over time, even though they follow deterministic rules. Having a set of rules that govern the system, and yet exhibit randomness and unpredictability, might seem a bit contradictory, but it is because the rules do not always represent the whole system. In fact, most of the time, these rules are an approximation of the system and that is what leads to the unpredictability. In complex systems, we do not have enough information to come up with a perfect set of rules. And by using incomplete information to make predictions, we introduce uncertainty, which amplifies over time, leading to the chaotic behaviour.
Chaotic systems generally have many non-linear interacting components, which we partially understand (or can partially observe) and which are very sensitive to small changes. A small change in the initial conditions can lead to a completely different outcome, a phenomenon known as the butterfly effect. In this post, we will try to see the butterfly effect in action but before that, let’s talk about Strange Attractors.
To understand Strange Attractors, let’s first understand what an attractor is. As discussed earlier, dynamical systems are all about change over time. During this change, the system moves through different possible states (remember the phase space jargon?). An attractor is a set of states towards which a system tends to settle over time, or you can say, towards which it is attracted. It’s like a magnet that pulls the system towards it.
For example, think of a pendulum. When you release it, it swings back and forth, but eventually, it comes to rest at the bottom. The bottom is the attractor in this case. It’s the state towards which the pendulum is attracted.
This happens due to the system’s inherent dynamics, which govern how states in the phase space change. Here are some of the reasons why different states get attracted towards attractors:
Stability: Attractors are stable states of the system, meaning that once the system reaches them, it tends to stay
there. This stability arises from the system’s dynamics, which push it towards the attractor and keep it there.
Dissipation: Many dynamical systems have dissipative forces, which cause the system to lose energy over time. This
loss of energy leads the system to settle into a lower-energy state, which often corresponds to an attractor. This is
what happens in the case of the pendulum.
Contraction: In some regions of the phase space, the system’s dynamics cause trajectories to converge. This
contraction effect means that nearby states will tend to come closer together over time, eventually being drawn
towards the attractor.
Some attractors have complex governing equations that can create unpredictable trajectories or behaviours. These nonlinear interactions can result in multiple stable states or periodic orbits, towards which the system evolves. These complex attractors are categorised as strange attractors. They are called “strange” due to their unique characteristics.
Fractal Structure: Strange attractors often have a fractal-like structure, meaning they display intricate
patterns that repeat at different scales. This complexity sets them apart from simpler, regular attractors.
Sensitive Dependence on Initial Conditions: Systems with strange attractors are highly sensitive to their initial
conditions. Small changes in the starting point can lead to vastly different long-term behaviors, a phenomenon known
as the “butterfly effect”.
Unpredictable Trajectories: The trajectories on a strange attractor never repeat themselves, exhibiting
non-periodic motion. The system’s behavior appears random and unpredictable, even though it is governed by
deterministic rules.
Emergent Order from Chaos: Despite their chaotic nature, strange attractors exhibit a form of underlying order.
Patterns and structures emerge from the seemingly random behavior, revealing the complex dynamics at play.
You can observe most of these characteristics in the visualisation. The one which is most fascinating to observe is the butterfly effect.
A butterfly can flutter its wings over a flower in China and cause a hurricane in the Caribbean.
One of the defining features of strange attractors is their sensitivity to initial conditions. This means that small changes in the starting state of the system can lead to vastly different long-term behaviors, a phenomenon known as the
butterfly effect. In chaotic systems, tiny variations in the initial conditions can amplify over time, leading to drastically different outcomes.
In our visualisation, let’s observe this behavior on Thomas Attractor. It is governed by the following equations:
A small change in the parameter a can lead to vastly different particle trajectories and the overall shape of the attractor. Change this value in the control panel and observe the butterfly effect in action.
There is another way of observing the butterfly effect in this visualisation. Change the Initial State from cube to
sphere surface in the control panel and observe how the particles move differently in the two cases. The particles eventually get attracted to the same states but have different trajectories.
The original “butterfly effect” quote was coined by MIT meteorology professor Edward Lorenz in the 1960s. In 1961, Lorenz was running a computer simulation of weather patterns using a model with 12 variables. He left to get a cup of coffee, and when he returned, he noticed that a tiny change in one of the initial variables (from .506127 to .506) had drastically altered the entire weather pattern produced by the simulation over the next two months. This led Lorenz to the powerful insight that small changes in a complex system can have large, unpredictable consequences .He called this the “butterfly effect” - the idea that the flap of a butterfly’s wings in Brazil could set off a tornado in Texas. Lorenz presented his findings on the butterfly effect at a 1972 conference, where the term was popularized thanks to the metaphor of a butterfly’s wings provided by meteorologist Philip Merilees. You can play around with one of the attractors found by Edward Lorenz called the Lorenz Attractor in the visualisation.
This visualization required rendering a large number of particles using Three.js. To achieve this efficiently, we used a technique called ping-pong rendering . This method handles iterative updates of particle systems directly on the GPU, minimizing data transfers between the CPU and GPU. It utilizes two frame buffer objects (FBOs) that alternate roles: One stores the current state of particles and render them on the screen, while the other calculates the next state.
Setting Up Frame Buffer Objects (FBOs): We start by creating two FBOs, ping and pong, to hold the current and next state of particles. These buffers store data such as particle positions in RGBA channels, making efficient use of GPU resources.
Shader Programs for Particle Dynamics: The shader programs execute on the GPU and apply attractor dynamics to each particle. Following is the attractor function which update the particle positions based on the attractor equation.
Rendering and Buffer Swapping: In each frame, the shader computes the new positions based on the attractor’s equations and stores them in the inactive buffer. After updating, the roles of the FBOs are swapped: The previously inactive buffer becomes active, and vice versa.
1const currentTarget = flip ? ping : pong;2const nextTarget = flip ? pong : ping;3
4// Use current positions for calculations in shader5uniforms.positions.value = currentTarget.texture;6
7// Render the other on the screen8gl.setRenderTarget(nextTarget);9gl.clear();10gl.render(scene, camera);11gl.setRenderTarget(null);12
13flip = !flip;1const currentTarget = flip ? ping : pong;2const nextTarget = flip ? pong : ping;3
4// Use current positions for calculations in shader5uniforms.positions.value = currentTarget.texture;6
7// Render the other on the screen8gl.setRenderTarget(nextTarget);9gl.clear();10gl.render(scene, camera);11gl.setRenderTarget(null);12
13flip = !flip;
This combination of efficient shader calculations and the ping-pong technique allows us to render the particle system.
If you have any comments, please leave them on . Sooner or later, I will integrate it with the blog. The hacker news discussion can be found here.
...
Read the original on blog.shashanktomar.com »
When we published How moving from AWS to Bare-Metal saved us $230,000 /yr. in 2023, the story travelled far beyond our usual readership. The discussion threads on Hacker News and Reddit were packed with sharp questions: did we skip Reserved Instances, how do we fail over a single rack, what about the people cost, and when is cloud still the better answer? This follow-up is our long-form reply.
Over the last twenty-four months we:
* Ran the MicroK8s + Ceph stack in production for 730+ days with 99.993% measured availability.
* Added a second rack in Frankfurt, joined to our primary Paris cage over redundant DWDM, to kill the “single rack” concern.
* Cut average customer-facing latency by 19% thanks to local NVMe and eliminating noisy neighbours.
* Reinvested the savings into buying bare metal AI servers to expand LLM-based alert / incident summarisation and auto code fixes based on log / traces and metrics in OneUptime.
Below we tackle the recurring themes from the community feedback, complete with the numbers we use internally.
In the US, it is. In the rest of the world. That’s 2-5x engineers salary. We used to save $230,000 / yr but now the savings have exponentially grown. We now save over $1.2M / yr and we expect this to grow, as we grow as a business.
We tried. Long answer: the maths still favoured bare metal once we priced everything in. We see a savings of over 76% if you compare our bare metal setup to AWS.
* Savings Plans do not reduce S3, egress, or Direct Connect. 37% off instances still leaves you paying list price for bandwidth, which was 22% of our AWS bill.
* EKS had an extra $1,260/month control-plane fee plus $600/month for NAT gateways. Those costs disappear once you run Kubernetes yourself.
* Our workload is 24/7 steady. We were already at >90% reservation coverage; there was no idle burst capacity to “right size” away. If we had the kind of bursty compute profile many commenters referenced, the choice would be different.
We spent a week of engineers time (and that is the worst case estimate) on the initial migration, spread across SRE, platform, and database owners. Most of that time was work we needed anyway—formalising infrastructure-as-code, smoke testing charts, tightening backup policies. The incremental work that existed purely because of bare metal was roughly one week.
Ongoing run-cost looks like this:
* Hands-on keyboard: ~24 engineer-hours/quarter across the entire platform team, including routine patching and firmware updates. That is comparable to the AWS time we used to burn on cost optimisation, IAM policy churn, and chasing deprecations and updating our VM’s on AWS.
* Remote hands: 2 interventions in 24 months (mainly disks). Mean response time: 27 minutes. We do not staff an on-site team. We rely on co-location provider to physically manage our rack. This means no traditional hardware admins.
* Automation: We’re now moving to Talos. We PXE boot with Tinkerbell, image with Talos, manage configs through Flux and Terraform, and run conformance suites before each Kubernetes upgrade. All of those tools also hardened our AWS estate, so they were not net-new effort.
The opportunity cost question from is fair. We track it the same way we track feature velocity: did the infra team ship less? The answer was “no”—our release cadence increased because we reclaimed few hours/month we used to spend in AWS “cost council” meetings.
We have multiple racks across two different DC / providers. We:
* Leased a secondary quarter rack in Frankfurt with a different provider and power utility.
* Currently: Deployed a second MicroK8s control plane, mirrored Ceph pools with asynchronous replication. Future: We’re moving to Talos. Nothing against Microk8s, but we like the Talos way of managing the k8s cluster.
* Added isolated out-of-band management paths (4G / satellite) so we can reach the gear even during metro fibre events.
The AWS failover cluster we mentioned in 2023 still exists. We rehearse a full cutover quarterly using the same Helm releases we ship to customers. DNS failover remains the slowest leg (resolver caches can ignore TTL), so we added Anycast ingress via BGP with our transit provider to cut traffic shifting to sub-minute.
We amortise servers over five years, but we sized them with 2 × AMD EPYC 9654 CPUs, 1 TB RAM, and NVMe sleds. At our current growth rate the boxes will hit CPU saturation before we hit year five. When that happens, the plan is to cascade the older gear into our regional analytics cluster (we use Posthog + Metabase for this) and buy a new batch. Thanks to the savings delta, we can refresh 40% of the fleet every 24 months and still spend less annually than the optimised AWS bill above.
We also buy extended warranties from the OEM (Supermicro) and keep three cold spares in the cage. The hardware lasts 7-8 years and not 5, but we wtill count it as 5 to be very conservative.
Another strong Reddit critique: why rebuild services AWS already offers? Three reasons we are comfortable with the trade:
Portability is part of our product promise. OneUptime customers self-host in their own environments. Running the same open stack we ship (Postgres, Redis, ClickHouse, etc.) keeps us honest. We eun on Kubernetes and self-hosted customers run on Kubernetes as well. Tooling maturity. Two years ago we relied on Terraform + EKS + RDS. Today we run MicroK8s (Talos in the future), Argo Rollouts, OpenTelemetry Collector, and Ceph dashboards. None of that is bespoke. We do not maintain a fork of anything. Selective cloud use. We still pay AWS for Glacier backups, CloudFront for edge caching, and short-lived burst capacity for load tests. Cloud makes sense when elasticity matters; bare metal wins when baseload dominates.
Managed services are phenomenal when you are short on expertise or need features beyond commodity compute. If we were all-in on DynamoDB streams or Step Functions we would almost certainly still be on AWS.
We committed to 5 Gbps 95th percentile across two carriers. The same traffic on AWS egress would be 8x expensive in eu-west-1. For DDoS protection we front our ingress with Cloudflare.
Short answer: No. Infact it was better than AWS (compared to recent AWS downtimes)
We have 730+ days with 99.993% measured availability and we also escaped AWS region wide downtime that happened a week ago.
We stayed SOC 2 Type II and ISO 27001 certified through the transition. The biggest deltas auditors cared about:
* Physical controls: We provide badge logs from the colo, camera footage on request, and quarterly access reviews. The colo already meets Tier III redundancy, so their reports roll into ours.
* Change management: Terraform plans, and now Talos machine configs give us immutable evidence of change. Auditors liked that more than AWS Console screenshots.
* Business continuity: We prove failover by moving workload to other DC.
If you are in a regulated space (HIPAA for instance), expect the paperwork to grow a little. We worked it in by leaning on the colo providers’ standard compliance packets—they slotted straight into our risk register.
We priced Hetzner, OVH, Leaseweb, Equinix Metal, and AWS Outposts. The short version:
* Hyperscaler alternatives were cheaper on compute but still expensive on egress once you hit petabytes/month. Outposts also carried minimum commits that exceeded our needs.
* European dedicated hosts (Hetzner, OVH) are fantastic for lab clusters. The challenge was multi-100 TB Ceph clusters with redundant uplinks and smart-hands SLAs. Once we priced that tier, the savings narrowed.
* Equinix Metal got the closest, but bare metal on-demand still carried a 25-30% premium over our CapEx plan. Their global footprint is tempting; we may still use them for short-lived expansion.
Owning the hardware also let us plan power density (we run 15 kW racks) and reuse components. For our steady-state footprint, colocation won by a long shot.
We put real numbers to it because Reddit kept us honest:
* Weekly: Kernel and firmware patches (Talos makes this a redeploy), Ceph health checks, Total time averages 1 hour/week on average over months.
* Monthly: Kubernetes control plane upgrades in canary fashion. About 2 engineer-hours. We expect this to reduce when Talos kicks in.
* Quarterly: Disaster recovery drills, capacity planning, and contract audits with carriers. Roughly 12 hours across three engineers.
Total toil is ~14 engineer-hours/month, including prep. The AWS era had us spending similar time but on different work: chasing cost anomalies, expanding Security Hub exceptions, and mapping breaking changes in managed services. The toil moved; it did not multiply.
Absolutely. Cloud still solves problems we would rather not own:
* Glacier keeps long-term log archives at a price point local object storage cannot match.
* CloudFront handles 14 edge PoPs we do not want to build. We terminate TLS at the edge for marketing assets and docs. We will soon move this to Cloudflare as they are cheaper.
* We spin up short-lived AWS environments for load testing.
So yes, we left AWS for the base workload, but we still swipe the corporate card when elasticity or geography outweighs fixed-cost savings.
It depends on your workload. We still recommend staying put if:
* Your usage pattern is spiky or seasonal and you can auto-scale to near zero between peaks.
* You lean heavily on managed services (Aurora Serverless, Kinesis, Step Functions) where the operational load is the value prop.
* You do not have the appetite to build a platform team comfortable with Kubernetes, Ceph, observability, and incident response.
Cloud-first was the right call for our first five years. Bare metal became the right call once our compute footprint, data gravity, and independence requirements stabilised.
* We are working on a detailed runbook + Terraform module to help teams do capex forecasting for colo moves. Expect that on the blog later this year.
* A deep dive on Talos is in the queue, as requested by multiple folks in the HN thread.
Questions we did not cover? Let us know in the discussion threads—we are happy to keep sharing the gritty details.
...
Read the original on oneuptime.com »
To add this web app to your iOS home screen tap the share button and select "Add to the Home Screen".
10HN is also available as an iOS App
If you visit 10HN only rarely, check out the the best articles from the past week.
If you like 10HN please leave feedback and share
Visit pancik.com for more.