10 interesting stories served every morning and every evening.




1 2,663 shares, 1 trendiness

Keep Android Open

In August 2025, Google an­nounced that start­ing next year, it will no longer be pos­si­ble to de­velop apps for the Android plat­form with­out first reg­is­ter­ing cen­trally with Google. This reg­is­tra­tion will in­volve:

What this means for your rights

➤ You, the con­sumer, pur­chased your Android de­vice be­liev­ing in Google’s promise that it was an open com­put­ing plat­form and that you could run what­ever soft­ware you choose on it. Instead, start­ing next year, they will be non-con­sen­su­ally push­ing an up­date to your op­er­at­ing sys­tem that ir­rev­o­ca­bly blocks this right and leaves you at the mercy of their judge­ment over what soft­ware you are per­mit­ted to trust.

➤ You, the cre­ator, can no longer de­velop an app and share it di­rectly with your friends, fam­ily, and com­mu­nity with­out first seek­ing Google’s ap­proval. The promise of Android — and a mar­ket­ing ad­van­tage it has used to dis­tin­guish it­self against the iPhone — has al­ways been that it is open”. But Google clearly feels that they have enough of a lock on the Android ecosys­tem, along with suf­fi­cient reg­u­la­tory cap­ture, that they can now jet­ti­son this prin­ci­ple with prej­u­dice and im­punity.

➤ You, the state, are ced­ing the rights of your cit­i­zens and your own dig­i­tal sov­er­eignty to a com­pany with a track record of com­ply­ing with the ex­tra­ju­di­cial de­mands of au­thor­i­tar­ian regimes to re­move per­fectly le­gal apps that they hap­pen to dis­like. The soft­ware that is crit­i­cal to the run­ning of your busi­nesses and gov­ern­ments will be at the mercy of the opaque whims of a dis­tant and un­ac­count­able cor­po­ra­tion.

How you can help

If you are an app de­vel­oper, do not sign up for the early ac­cess pro­gram, per­form iden­tity ver­i­fi­ca­tion, or ac­cept an in­vi­ta­tion to the Android Developer Console. Respond (politely) to any in­vi­ta­tion with a list of your con­cerns and ob­jec­tions.

Discourage fel­low app de­vel­op­ers and or­ga­ni­za­tions from sign­ing up to the pro­gram. Use com­mu­nity fo­rums, so­cial me­dia, and blog posts to spread the mes­sage.

—— It is only through de­vel­oper ac­qui­es­cence that their takeover plan can pos­si­bly suc­ceed. ——

Regulators world­wide are gen­uinely con­cerned about mo­nop­o­lies and the cen­tral­iza­tion of power in the tech sec­tor, and want to hear di­rectly from in­di­vid­u­als who are af­fected and con­cerned. When con­tact­ing reg­u­la­tors di­rectly, you should be po­lite and spe­cific about the harm you be­lieve these poli­cies will cause, both to con­sumers and to com­pe­ti­tion.

Complaints are es­pe­cially im­pact­ful when they are au­thored by a cit­i­zen of that coun­try or re­gion, and when the lan­guage of the email is writ­ten in one of the of­fi­cial lan­guages of the re­gion’s gov­ern­ing body. Request a writ­ten ac­knowl­edge­ment of the com­plaint, and con­sider for­ward­ing any re­sponses you re­ceive to vic­tory@keepan­droidopen.org so that we might high­light and ref­er­ence them.

Send feed­back on EU in­ter­play be­tween DMA and GDPR: Consultation on joint guide­lines on the in­ter­play be­tween DMA and GDPR un­til December 4.

[EXPIRED] Send feed­back on EU Digital Fairness Act: EU Digital Fairness Act: Have Your Say

Make a re­port to the US Department of Justice Antitrust Report Online

File a com­plaint with the US Federal Trade Commission: Antitrust Complaints

Note: Due to the on­go­ing US gov­ern­ment shut­down, it may take a long time be­fore com­plaints are ac­knowl­edged and reg­is­tered.

Reach out to Procon (depends on your state) and Senacon

Note: Brazil is slated to be one of the ini­tial 4 coun­tries where de­vel­oper reg­is­tra­tion will be en­forced

Contact the Competition and Consumer Commission of Singapore (CCCS)

Note: Singapore is slated to be one of the ini­tial 4 coun­tries where de­vel­oper reg­is­tra­tion will be en­forced

Note: Thailand is slated to be one of the ini­tial 4 coun­tries where de­vel­oper reg­is­tra­tion will be en­forced

Note: Indonesia is slated to be one of the ini­tial 4 coun­tries where de­vel­oper reg­is­tra­tion will be en­forced

File a re­port with the Australian Competition and Consumer Commission (ACCC)

Send a re­quest to Australian Australian Consumers’ Association (CHOICE). Ask them to lodge a des­ig­nated com­plaint to the Australian Competition & Consumer Comission (ACCC).

Add your or­ga­ni­za­tion’s sig­na­ture to the draft Open Letter to Google Regarding Mandatory Developer Registration for Third-Party App Distribution by email­ing sig­na­to­ries@keepan­droidopen.org with your name, ti­tle, and af­fil­i­a­tion.

Install F-Droid on your Android de­vice(s). The more peo­ple that use al­ter­na­tive app mar­ket­places, the harder it will be to shut them out.

Provide feed­back di­rectly to Google us­ing their Android de­vel­oper ver­i­fi­ca­tion re­quire­ments sur­vey.

Make your voice heard on so­cial me­dia and with blog posts, and link to https://​keepan­droidopen.org

Combat as­tro­turf­ing: when you en­counter sus­pect posts on com­mu­nity fo­rums and so­cial me­dia in sup­port of the pol­icy (“Well, ac­tu­ally…”), chal­lenge them and do not be shy.

Help this pro­ject out by edit­ing this page with more use­ful in­for­ma­tion.

What We Talk About When We Talk About Sideloading” — https://​f-droid.org/​en/​2025/​10/​28/​side­load­ing.html (Hacker News Thread)

Google plans to block side-load­ing like Apple, de­clar­ing war on Android free­dom” — https://​tuta.com/​blog/​an­droid-side-load-apps-google

Open-Source Android Apps at Risk Under Google’s New Decree” — https://​www.techre­pub­lic.com/​ar­ti­cle/​news-f-droid-warns-google-de­vel­oper-de­cree-open-source-an­droid/

Google’s New Developer ID Rule Could Harm F-Droid, Says Open-Source Advocate” — https://​re­claimthenet.org/​googles-an­droid-id-rule-threat­ens-f-droids-fu­ture

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-re­quire­ment-for-all-an­droid-de­vel­op­ers-to-reg­is­ter-and-be-ver­i­fied-threat­ens-to-close-down-open-source-app-store-f-droid/

Google’s new de­vel­oper rules could threaten side­load­ing and F-Droid’s fu­ture” — https://​www.giz­mochina.com/​2025/​09/​30/​googles-new-de­vel­oper-rules-could-threaten-side­load­ing-and-f-droids-fu­ture/

Google is re­strict­ing one of Android’s most im­por­tant fea­tures, and users are out­raged” — https://​www.slashgear.com/​1962802/​google-re­strict­ing-im­por­tant-an­droid-fea­ture-rea­son-why-users-out­raged/

Android’s side­load­ing lim­its are its most anti-con­sumer move yet” - https://​www.makeuseof.com/​an­droids-side­load­ing-lim­its-are-anti-con­sumer-move-yet/

F-Droid says Google’s new side­load­ing re­stric­tions will kill the pro­ject” — https://​ar­stech­nica.com/​gad­gets/​2025/​09/​f-droid-calls-for-reg­u­la­tors-to-stop-googles-crack­down-on-side­load­ing/

Google will re­quire de­vel­oper ver­i­fi­ca­tion for Android apps out­side the Play Store” — https://​techcrunch.com/​2025/​08/​25/​google-will-re­quire-de­vel­oper-ver­i­fi­ca­tion-for-an­droid-apps-out­side-the-play-store/

Google will ver­ify Android de­vel­op­ers dis­trib­ut­ing apps out­side the Play store” — https://​www.thev­erge.com/​news/​765881/​google-an­droid-apps-side-load­ing-de­vel­oper-ver­i­fi­ca­tion

Google: Your $1000 phone needs our per­mis­sion to in­stall apps now’” — Louis Rossmann — https://​youtu.be/​QBEK­lIV_70E

F-Droid Will Die in 2026 Unless We Act Now — Techlore” — https://​youtu.be/​wRvqdL­snsKY

Google’s changes to side­load­ing could end F-Droid - Linux Weekly News” — https://​youtu.be/​iMqp­m2Ahmt0

Google is Applefying Android: The End of Openness” — ChiefGyk3D — https://​youtu.be/​WFOPz­ix­HoLY

What We Talk About When We Talk About Sideloading” - https://​f-droid.org/​2025/​10/​28/​side­load­ing.html

Google plans to block side-load­ing like Apple, de­clar­ing war on Android free­dom” — https://​tuta.com/​blog/​an­droid-side-load-apps-google

Join The Protest Against The Closing Of Android” - https://​www.i-pro­gram­mer.info/​news/​193-an­droid/​18419-join-the-protest-against-the-clos­ing-of-an­droid.html

Introducing the Android Developer Console: A first look — https://​de­vel­oper.an­droid.com/​de­vel­oper-ver­i­fi­ca­tion/​as­sets/​pdfs/​in­tro­duc­ing-the-an­droid-de­vel­oper-con­sole.pdf

Download an early look of the new Android Developer Console — https://​sup­port.google.com/​an­droid-de­vel­oper-con­sole/​an­swer/​16450960

Disclaimer: This web­site is a com­mu­nity-dri­ven non­com­mer­cial un­der­tak­ing. It is op­er­ated solely for in­for­ma­tional and ed­u­ca­tional pur­poses.

Privacy: This site uses no cook­ies and per­forms no user track­ing or log­ging.

Copyright: None. This work is marked CC0 1.0 Universal

...

Read the original on keepandroidopen.org »

2 2,362 shares, 95 trendiness

Keep Android Open

In August 2025, Google an­nounced that start­ing next year, it will no longer be pos­si­ble to de­velop apps for the Android plat­form with­out first reg­is­ter­ing cen­trally with Google. This reg­is­tra­tion will in­volve:

What this means for your rights

➤ You, the con­sumer, pur­chased your Android de­vice be­liev­ing in Google’s promise that it was an open com­put­ing plat­form and that you could run what­ever soft­ware you choose on it. Instead, start­ing next year, they will be non-con­sen­su­ally push­ing an up­date to your op­er­at­ing sys­tem that ir­rev­o­ca­bly blocks this right and leaves you at the mercy of their judge­ment over what soft­ware you are per­mit­ted to trust.

➤ You, the cre­ator, can no longer de­velop an app and share it di­rectly with your friends, fam­ily, and com­mu­nity with­out first seek­ing Google’s ap­proval. The promise of Android — and a mar­ket­ing ad­van­tage it has used to dis­tin­guish it­self against the iPhone — has al­ways been that it is open”. But Google clearly feels that they have enough of a lock on the Android ecosys­tem, along with suf­fi­cient reg­u­la­tory cap­ture, that they can now jet­ti­son this prin­ci­ple with prej­u­dice and im­punity.

➤ You, the state, are ced­ing the rights of your cit­i­zens and your own dig­i­tal sov­er­eignty to a com­pany with a track record of com­ply­ing with the ex­tra­ju­di­cial de­mands of au­thor­i­tar­ian regimes to re­move per­fectly le­gal apps that they hap­pen to dis­like. The soft­ware that is crit­i­cal to the run­ning of your busi­nesses and gov­ern­ments will be at the mercy of the opaque whims of a dis­tant and un­ac­count­able cor­po­ra­tion.

How you can help

If you are an app de­vel­oper, do not sign up for the early ac­cess pro­gram, per­form iden­tity ver­i­fi­ca­tion, or ac­cept an in­vi­ta­tion to the Android Developer Console. Respond (politely) to any in­vi­ta­tion with a list of your con­cerns and ob­jec­tions.

Discourage fel­low app de­vel­op­ers and or­ga­ni­za­tions from sign­ing up to the pro­gram. Use com­mu­nity fo­rums, so­cial me­dia, and blog posts to spread the mes­sage.

—— It is only through de­vel­oper ac­qui­es­cence that this takeover plan can pos­si­bly suc­ceed. ——

Regulators world­wide are gen­uinely con­cerned about mo­nop­o­lies and the cen­tral­iza­tion of power in the tech sec­tor, and want to hear di­rectly from in­di­vid­u­als who are af­fected and con­cerned. When con­tact­ing reg­u­la­tors di­rectly, you should be po­lite and spe­cific about the harm you be­lieve these poli­cies will cause, both to con­sumers and to com­pe­ti­tion.

Complaints are es­pe­cially im­pact­ful when they are au­thored by a cit­i­zen of that coun­try or re­gion, and when the lan­guage of the email is writ­ten in one of the of­fi­cial lan­guages of the re­gion’s gov­ern­ing body. Request a writ­ten ac­knowl­edge­ment of the com­plaint, and con­sider for­ward­ing any re­sponses you re­ceive to vic­tory@keepan­droidopen.org so that we might high­light and ref­er­ence them.

Send feed­back on EU in­ter­play be­tween DMA and GDPR: Consultation on joint guide­lines on the in­ter­play be­tween DMA and GDPR un­til December 4.

Send feed­back on EU Digital Fairness Act: EU Digital Fairness Act: Have Your Say [EXPIRED]

Make a re­port to the US Department of Justice Antitrust Report Online

File a com­plaint with the US Federal Trade Commission: Antitrust Complaints

Note: Due to the on­go­ing US gov­ern­ment shut­down, it may take a long time be­fore com­plaints are ac­knowl­edged and reg­is­tered.

Reach out to Procon (depends on your state) and Senacon

Note: Brazil is slated to be one of the ini­tial 4 coun­tries where de­vel­oper reg­is­tra­tion will be en­forced

Contact the Competition and Consumer Commission of Singapore (CCCS)

Note: Singapore is slated to be one of the ini­tial 4 coun­tries where de­vel­oper reg­is­tra­tion will be en­forced

Note: Thailand is slated to be one of the ini­tial 4 coun­tries where de­vel­oper reg­is­tra­tion will be en­forced

Note: Indonesia is slated to be one of the ini­tial 4 coun­tries where de­vel­oper reg­is­tra­tion will be en­forced

File a re­port with the Australian Competition and Consumer Commission (ACCC)

Send a re­quest to Australian Australian Consumers’ Association (CHOICE). Ask them to lodge a des­ig­nated com­plaint to the Australian Competition & Consumer Comission (ACCC).

Add your or­ga­ni­za­tion’s sig­na­ture to the draft Open Letter to Google Regarding Mandatory Developer Registration for Third-Party App Distribution by email­ing sig­na­to­ries@keepan­droidopen.org with your name, ti­tle, and af­fil­i­a­tion.

Install F-Droid on your Android de­vice(s). The more peo­ple that use al­ter­na­tive app mar­ket­places, the harder it will be to shut them out.

Provide feed­back di­rectly to Google us­ing their Android de­vel­oper ver­i­fi­ca­tion re­quire­ments sur­vey.

Make your voice heard on so­cial me­dia and with blog posts, and link to https://​keepan­droidopen.org

Combat as­tro­turf­ing: when you en­counter sus­pect posts on com­mu­nity fo­rums and so­cial me­dia in sup­port of the pol­icy (“Well, ac­tu­ally…”), chal­lenge them and do not be shy.

Help this pro­ject out by edit­ing this page with more use­ful in­for­ma­tion.

What We Talk About When We Talk About Sideloading” — https://​f-droid.org/​en/​2025/​10/​28/​side­load­ing.html (Hacker News Thread)

Google plans to block side-load­ing like Apple, de­clar­ing war on Android free­dom” — https://​tuta.com/​blog/​an­droid-side-load-apps-google

Open-Source Android Apps at Risk Under Google’s New Decree” — https://​www.techre­pub­lic.com/​ar­ti­cle/​news-f-droid-warns-google-de­vel­oper-de­cree-open-source-an­droid/

Google’s New Developer ID Rule Could Harm F-Droid, Says Open-Source Advocate” — https://​re­claimthenet.org/​googles-an­droid-id-rule-threat­ens-f-droids-fu­ture

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-re­quire­ment-for-all-an­droid-de­vel­op­ers-to-reg­is­ter-and-be-ver­i­fied-threat­ens-to-close-down-open-source-app-store-f-droid/

Google’s new de­vel­oper rules could threaten side­load­ing and F-Droid’s fu­ture” — https://​www.giz­mochina.com/​2025/​09/​30/​googles-new-de­vel­oper-rules-could-threaten-side­load­ing-and-f-droids-fu­ture/

Google is re­strict­ing one of Android’s most im­por­tant fea­tures, and users are out­raged” — https://​www.slashgear.com/​1962802/​google-re­strict­ing-im­por­tant-an­droid-fea­ture-rea­son-why-users-out­raged/

Android’s side­load­ing lim­its are its most anti-con­sumer move yet” - https://​www.makeuseof.com/​an­droids-side­load­ing-lim­its-are-anti-con­sumer-move-yet/

F-Droid says Google’s new side­load­ing re­stric­tions will kill the pro­ject” — https://​ar­stech­nica.com/​gad­gets/​2025/​09/​f-droid-calls-for-reg­u­la­tors-to-stop-googles-crack­down-on-side­load­ing/

Google will re­quire de­vel­oper ver­i­fi­ca­tion for Android apps out­side the Play Store” — https://​techcrunch.com/​2025/​08/​25/​google-will-re­quire-de­vel­oper-ver­i­fi­ca­tion-for-an­droid-apps-out­side-the-play-store/

Google will ver­ify Android de­vel­op­ers dis­trib­ut­ing apps out­side the Play store” — https://​www.thev­erge.com/​news/​765881/​google-an­droid-apps-side-load­ing-de­vel­oper-ver­i­fi­ca­tion

Google: Your $1000 phone needs our per­mis­sion to in­stall apps now’” — Louis Rossmann — https://​youtu.be/​QBEK­lIV_70E

F-Droid Will Die in 2026 Unless We Act Now — Techlore” — https://​youtu.be/​wRvqdL­snsKY

Google’s changes to side­load­ing could end F-Droid - Linux Weekly News” — https://​youtu.be/​iMqp­m2Ahmt0

Google is Applefying Android: The End of Openness” — ChiefGyk3D — https://​youtu.be/​WFOPz­ix­HoLY

What We Talk About When We Talk About Sideloading” - https://​f-droid.org/​2025/​10/​28/​side­load­ing.html

Google plans to block side-load­ing like Apple, de­clar­ing war on Android free­dom” — https://​tuta.com/​blog/​an­droid-side-load-apps-google

Join The Protest Against The Closing Of Android” - https://​www.i-pro­gram­mer.info/​news/​193-an­droid/​18419-join-the-protest-against-the-clos­ing-of-an­droid.html

Introducing the Android Developer Console: A first look — https://​de­vel­oper.an­droid.com/​de­vel­oper-ver­i­fi­ca­tion/​as­sets/​pdfs/​in­tro­duc­ing-the-an­droid-de­vel­oper-con­sole.pdf

Download an early look of the new Android Developer Console — https://​sup­port.google.com/​an­droid-de­vel­oper-con­sole/​an­swer/​16450960

Privacy Statement: This site uses no cook­ies and per­forms no user track­ing or log­ging.

Disclaimer: This web­site is a com­mu­nity-dri­ven non­com­mer­cial un­der­tak­ing. It is op­er­ated solely for in­for­ma­tional and ed­u­ca­tional pur­poses.

Copyright: None. This work is marked CC0 1.0 Universal

...

Read the original on keepandroidopen.org »

3 2,124 shares, 82 trendiness

uv is the best thing to happen to the Python ecosystem in a decade

It’s 2025. Does in­stalling Python, man­ag­ing vir­tual en­vi­ron­ments, and syn­chro­niz­ing de­pen­den­cies be­tween your col­leagues re­ally have to be so dif­fi­cult? Well… no! A bril­liant new tool called uv came out re­cently that rev­o­lu­tion­izes how easy in­stalling and us­ing Python can be.

uv is a free, open-source tool built by Astral, a small startup that has been churn­ing out Python tools (like the ex­cel­lent lin­ter Ruff) for the past few years. uv can:

* Install any Python ver­sion for you

What’s best is that it can do all of the above bet­ter than any other tool, in my opin­ion. It’s shock­ingly fast, writ­ten in Rust, and works on al­most any op­er­at­ing sys­tem or plat­form.

uv is straight­for­ward to in­stall. There are a few ways, but the eas­i­est (in my opin­ion) is this one-liner com­mand — for Linux and Mac, it’s:

curl -LsSf https://​as­tral.sh/​uv/​in­stall.sh | sh

or on Windows in pow­er­shell:

pow­er­shell -ExecutionPolicy ByPass -c irm https://​as­tral.sh/​uv/​in­stall.ps1 | iex”

You can then ac­cess uv with the com­mand uv. Installing uv will not mess up any of your ex­ist­ing Python in­stal­la­tions — it’s a sep­a­rate tool, so it’s safe to in­stall it just to try it out.

It’s al­ways a good idea to work with vir­tual en­vi­ron­ments for any Python pro­ject. It keeps dif­fer­ent bits of code and de­pen­den­cies ringfenced from one an­other, and in my ex­pe­ri­ence, it can save a lot of has­sle to get into the habit of us­ing vir­tual en­vi­ron­ments as soon as you can. uv nat­u­rally uses vir­tual en­vi­ron­ments, so it’s very easy to start us­ing them if you get into us­ing uv.

uv will build a Python en­vi­ron­ment for you based on what’s spec­i­fied in a pypro­ject.toml file in the di­rec­tory (or par­ent di­rec­to­ries) you’re work­ing in. pypro­ject.toml files are a stan­dard, mod­ern for­mat for spec­i­fy­ing de­pen­den­cies for a Python pro­ject. A bare­bones one might look a bit like this:

[project]

name = my_project”

ver­sion = 1.0.0”

re­quires-python = >=3.9,

In essence, it just has to spec­ify which Python ver­sion to use and some de­pen­den­cies. Adding a name and ver­sion num­ber also aren’t a bad idea.

To start a new Python pro­ject with uv, you can run

uv init

Which will cre­ate a new pro­ject for you, with a pypro­ject.toml, a README.md, and other im­por­tant bits of boil­er­plate.

There are a lot of dif­fer­ent ways to run this com­mand, like uv init –bare (which only cre­ates a pypro­ject.toml), uv init –package (which sets up a new Python pack­age), and more. I rec­om­mend run­ning uv init –help to read about them.

Once you ini­tial­ize a pro­ject — or if you al­ready have a pypro­ject.toml file in your pro­ject — it’s very easy to start us­ing uv. You just need to do

uv sync

in the di­rec­tory that your pypro­ject.toml file is in. This com­mand (and in fact, most uv com­mands if you haven’t ran it al­ready) will:

Install all de­pen­den­cies to a new vir­tual en­vi­ron­ment in the di­rec­tory .venv Create a uv.lock file in your di­rec­tory, which saves the ex­act, plat­form-ag­nos­tic ver­sion of every pack­age in­stalled — mean­ing that other col­leagues can repli­cate your Python en­vi­ron­ment ex­actly.

In prin­ci­ple, you can activate’ this new vir­tual en­vi­ron­ment like any typ­i­cal vir­tual en­vi­ron­ment that you may have seen in other tools, but the most uv-onic’ way to use uv is sim­ply to prepend any com­mand with uv run. This com­mand au­to­mat­i­cally picks up the cor­rect vir­tual en­vi­ron­ment for you and runs your com­mand with it. For in­stance, to run a script — in­stead of

source .venv/bin/activate

python myscript.py

you can just do

uv run myscript.py

which will have the same ef­fect. Likewise, to use a tool’ like Jupyter Lab, you can just do

uv run jupyter lab

in your pro­jec­t’s di­rec­tory, as op­posed to first activating’ the en­vi­ron­ment and then run­ning jupyter lab sep­a­rately.

You can al­ways just edit your pypro­ject.toml file man­u­ally: uv will de­tect the changes and re­build your pro­jec­t’s vir­tual en­vi­ron­ment. But uv also has eas­ier ways to add de­pen­den­cies — you can just do

uv add numpy>=2.0

to add a pack­age, in­clud­ing spec­i­fy­ing ver­sion con­straints (like the above.) This com­mand au­to­mat­i­cally ed­its your pypro­ject.toml for you. uv add is also ex­tremely pow­er­ful for adding re­mote de­pen­den­cies from git or else­where on your com­puter (but I won’t get into that here.)

Finally, I think that one of the most use­ful things uv can do is to pin a spe­cific Python ver­sion for your pro­ject. Doing

uv python pin 3.12.9

would pin the cur­rent pro­ject to ex­actly Python 3.12.9 for you, and any­one else us­ing uv — mean­ing that you re­ally can repli­cate the ex­act same Python in­stall across mul­ti­ple ma­chines.

But some­times, you might just want to run a tool quickly — like us­ing Ruff to lint code some­where, or start­ing a Jupyter note­book server with­out an en­vi­ron­ment, or even just quickly start­ing an IPython ses­sion with pan­das in­stalled so you can open up a file. The uv tool run com­mand, which has a short alias uvx, makes this in­sanely easy. Running a com­mand like

uvx ruff

will au­to­mat­i­cally down­load the tool you want to use and run it in a one-off vir­tual en­vi­ron­ment. Once the tool has been down­loaded be­fore, this is light­ning-fast be­cause of how uv uses caches.

There are a lot of oc­ca­sions when I might want to do this — a com­mon one might be to quickly start an IPython ses­sion with pan­das in­stalled (using –with to add de­pen­den­cies) so that I can quickly open & look at a par­quet file. For in­stance:

uvx –with pan­das,pyarrow ipython

Or, maybe just start­ing a Jupyter Lab server so that I can quickly open a Jupyter note­book that a stu­dent sent me:

uvx –from jupyter-core jupyter lab

Or hon­estly just so many other weird, one-off use cases where uvx is re­ally nice to have around. I don’t feel like I’m miss­ing out by al­ways us­ing vir­tual en­vi­ron­ments, be­cause uvx al­ways gives you a get out of jail free’ card when­ever you need it.

I first dis­cov­ered uv last year, while work­ing to­gether with our other lovely de­vel­op­ers on build­ing The Astrosky Ecosystem — a won­der­ful pro­ject to build open-source so­cial me­dia in­te­gra­tions for as­tronomers on­line. But with mul­ti­ple de­vel­op­ers all work­ing asyn­chro­nously on mul­ti­ple op­er­at­ing sys­tems, man­ag­ing Python in­stal­la­tions quickly be­came a huge task.

uv is an in­cred­i­bly pow­er­ful sim­pli­fi­ca­tion for us that we use across our en­tire tech stack. As de­vel­op­ers, we can all work with iden­ti­cal Python in­stal­la­tions, which is es­pe­cially im­por­tant given a num­ber of semi-ex­per­i­men­tal de­pen­den­cies that we use that have break­ing changes with every ver­sion. On GitHub Actions, we’re plan­ning to use uv to quickly build a Python en­vi­ron­ment and run our unit tests. In pro­duc­tion, uv al­ready man­ages Python for all of our servers.

It’s just so nice to al­ways know that Python and pack­age in­stal­la­tion will al­ways be han­dled con­sis­tently and cor­rectly across all of our ma­chines. That’s why uv is the best thing to hap­pen to the Python ecosys­tem in a decade.

There’s a lot more on the uv docs, in­clud­ing a get­ting started page, more in-depth guides, ex­pla­na­tions of im­por­tant con­cepts, and a full com­mand ref­er­ence.

...

Read the original on emily.space »

4 1,145 shares, 39 trendiness

Unsupported client

It seems you are us­ing an old or un­sup­ported browser. To con­tinue en­joy­ing our prod­uct, please up­date to a re­cent ver­sion of one of the fol­low­ing browsers:

...

Read the original on www.affinity.studio »

5 868 shares, 36 trendiness

21 Facts About Throwing Good Parties

For New York’s No 1 Socialite, A. C.

1) Prioritize your ease of be­ing over any other con­sid­er­a­tion: par­ties are like ba­bies, if you’re stressed while hold­ing them they’ll get stressed too. Every other de­ci­sion is down­stream of your seren­ity: e.g. it’s bet­ter to have mediocre pizza from a happy host than fab­u­lous hors d’oeu­vres from a fraz­zled one.

2) Advertise your start time as a quar­ter-to the hour. If you start an event at 2:00, peo­ple won’t ar­rive till 2:30; if you make it 1:45, peo­ple will ar­rive at 2:00.

3) Invite a few close friends to come 30-60 mins ear­lier to set up / eat din­ner with you / hang out / what­ever, so that when the start time ap­proaches you’re al­ready hav­ing fun in­stead of stress­ing that no­body will come.

4) Most peo­ple will only go to a party where they ex­pect to know 3+ oth­ers al­ready.

5) Use an app like Partiful or Luma that shows the guest list to in­vi­tees. Start by invit­ing your clos­est friends, get some yesses, then ex­pand from there.

6) Send the in­vites in chat groups (or vis­i­bly cc’ed emails) to clus­ters of 4-5 peo­ple who know each other, so they can see that their friends are also go­ing.

7) When invit­ing peo­ple in­di­vid­u­ally, name­drop mu­tual friends who are in­vited or com­ing.

8) In a small group, the qual­ity of the ex­pe­ri­ence will de­pend a lot on whether the var­i­ous friends blend to­gether well. Follow your in­stinct on this, even if your in­stinct feels rude. It’s like cook­ing a dish, two in­gre­di­ents can each be fab­u­lous and still not go well to­gether.

9) A large party is more like an Everything Soup: you mainly need to avoid in­gre­di­ents that ruin the fla­vor for every­one else; be­yond that you can mostly throw in what­ever and see what works.

10) Regardless, try not to feel bad about not-invit­ing some­one if your heart says they would make the party less-fun for oth­ers. Make peace with gate­keep­ing be­cause if you don’t ex­clude a small % of peo­ple you will ul­ti­mately lose every­one else. Someone can be a good per­son and a bad fit for your party, so don’t think of it as a judge­ment on their soul. All of this is eas­ier in the­ory than in prac­tice.

11) Most events are bet­ter when roughly gen­der-bal­anced. Prioritize invit­ing peo­ple of the gen­der you’d likely have fewer of, then top up in­vites with the other. Once an event crosses a thresh­old (maybe 70%?) of male-or-fe­male dom­i­nance, most peo­ple of the other gen­der are likely to de­cline (or just not-come to your next party) as a re­sult. So there’s ul­ti­mately two equi­lib­ria, roughly gen­der bal­anced” and extremely un­com­fort­ably un­bal­anced,” and you need to stay in the at­trac­tion basin for bal­ance. To do this, keep your in­vite ra­tio at worst 60-40 in ei­ther di­rec­tion, in or­der to pre­vent a down­ward spi­ral.

12) Co-host par­ties with some­one you like a lot but who is­n’t in your ex­act so­cial cir­cle, so that your two friend-sets can in­ter­min­gle.

13) Figure out the flake rate in your so­cial cir­cles (the % of peo­ple who will RSVP yes and flake on the day), and set your in­vite num­bers with that in mind.  In my cir­cles, con­sis­tently 1/3rd of peo­ple who say they will be there will ac­tu­ally not.

14) Couples of­ten flake to­gether. This changes the prob­a­bil­ity dis­tri­b­u­tion of at­ten­dees con­sid­er­ably, and so your chance of los­ing a quo­rum in a small-group set­ting. Small-group cou­ple-events (e.g. 3-4 cou­ple din­ner par­ties) are very hard to man­age in a high-flake so­ci­ety, as a re­sult.

15) Create as much cir­cu­la­tion at your party as you can. People cir­cu­late more when stand­ing than when sit­ting, so try to en­cour­age stand­ing for those who can e.g. by hav­ing high-top ta­bles, or tak­ing away chairs from around ta­bles, or leav­ing shelves and counter-tops open for peo­ple to rest their plates and drinks.

16) Put the food in one part of the room and the drinks in an­other, or spread the food and drinks out around the space, so that peo­ple have lots of ex­cuses to move around the room.

17) If some­one ar­rives at your party and does­n’t know any­body, wel­come them and then place them with an­other group or per­son. Ideally you can pick some­one they’d specif­i­cally get along well with, at sec­ond-best just some­one who’s friendly and easy to talk to, but ul­ti­mately you can just in­sert them in any group that’s nearby and open. The main point is to pre­vent them hav­ing to butt in on strangers them­selves, which for many peo­ple is mor­ti­fy­ing, while your Host Privilege al­lows you to do it for them.

18) To leave a group con­ver­sa­tion, just slowly step back and then step away. Don’t draw at­ten­tion to your leav­ing or you’ll be pulled back in. It feels mildly weird to do this but it’s worth it.

19) Throughout the party, pri­or­i­tize in­tro­duc­ing peo­ple to each other and host­ing the peo­ple who are new or shy, even at the cost of get­ting less time hang­ing out with your best friends your­self. Parties are a pub­lic ser­vice, and the guests will (hopefully) pay you back for this by invit­ing you to par­ties of their own.

20) Let me re­peat that: Parties are a pub­lic ser­vice, you’re do­ing peo­ple a fa­vor by throw­ing them. Someone might meet their new best friend or fu­ture lover at your gath­er­ing. In the short term, lovely peo­ple may feel less lonely, and that’s thanks to you. In the long term, whole new chil­dren may ul­ti­mately ex­ist in the world be­cause you both­ered to throw a party. Throwing par­ties is stress­ful for most peo­ple, but a great kind­ness to the com­mu­nity, so gen­uinely pat your­self on the back for do­ing this.

21) The biggest prob­lem at many par­ties is an end­less es­ca­la­tion of vol­ume. If you know how to fix this, let me know.

...

Read the original on www.atvbt.com »

6 815 shares, 32 trendiness

Free software scares normal people—Daniel De Laney

I’m the per­son my friends and fam­ily come to for com­puter-re­lated help. (Maybe you, gen­tle reader, can re­late.) This ex­pe­ri­ence has taught me which com­put­ing tasks are frus­trat­ing for nor­mal peo­ple.

Normal peo­ple of­ten strug­gle with con­vert­ing video. They will need to watch, up­load, or oth­er­wise do stuff with a video, but the for­mat will be weird. (Weird, broadly de­fined, is any­thing that won’t play in QuickTime or up­load to Facebook.)

I would love to rec­om­mend Handbrake to them, but the user in­ter­face is by and for power users. Opening it makes nor­mal peo­ple feel un­pleas­ant feel­ings.

This prob­lem is ram­pant in free soft­ware. The FOSS world is full of pow­er­ful tools that only have a power user” UI. As a re­sult, peo­ple give up. Or worse: they ask peo­ple 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 prob­lem in a sin­gle evening.

Take the ex­am­ple of Magicbrake, a sim­ple front end I built. It hides the power and flex­i­bil­ity of Handbrake. It does only the one thing most peo­ple need Handbrake for: tak­ing a weird video file and mak­ing it nor­mal. (Normal, for our pur­poses, means a small MP4 that works just about any­where.)

There is ex­actly one but­ton.

This is a fast and un­com­pli­cated thing to do. Unfortunately, the peo­ple who have the abil­ity to solve prob­lems like this are of­ten dis­in­clined to do it.

Why would you make Handbrake less pow­er­ful on pur­pose?”

What if some­one wants a dif­fer­ent for­mat?”

The an­swer to all these ques­tions is the same: a per­son who needs or wants that stuff can use Handbrake. If they don’t need every­thing Handbrake can do and find it be­wil­der­ing, they can use this. Everyone wins.

It’s a bit like ob­scur­ing the less-used func­tions on a TV re­mote with tape. The func­tions still ex­ist if you need them, but you’re not re­quired to con­tend with them just to turn the TV on.

People ben­e­fit from stuff like this, and I chal­lenge you to make more of it. Opportunities are every­where. The world is full of me­dia servers nor­mal peo­ple can’t set up. Free au­dio edit­ing soft­ware that re­quires hours of learn­ing to be use­ful for sim­ple tasks. Network mon­i­tor­ing tools that seem de­signed to ward off the unini­ti­ated. Great stuff nor­mal peo­ple don’t use. All be­cause there’s only one UI, and it’s de­signed to do every­thing.

80% of the peo­ple only need 20% of the fea­tures. Hide the rest from them and you’ll make them more pro­duc­tive and happy. That’s re­ally all it takes.

If you’d like to read more of my writ­ing, fol­low me on 𝕏

...

Read the original on danieldelaney.net »

7 788 shares, 33 trendiness

Linux gamers on Steam finally cross over the 3% mark

It fi­nally hap­pened. Linux gamers on Steam as of the Steam Hardware & Software Survey for October 2025 have crossed over the elu­sive 3% mark. The trend has been clear for some­time, and with Windows 10 end­ing sup­port, it was quite likely this was go­ing to be the time for it to hap­pen as more peo­ple try out Linux.

As of the October 2025 sur­vey the op­er­at­ing sys­tem de­tails:

The snap­shot chart from our ded­i­cated 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 mil­lions of peo­ple. The last time Valve of­fi­cially gave a proper monthly ac­tive user count was in 2022, and we know Steam has grown a lot since then, but even go­ing by that orig­i­nal num­ber would put monthly ac­tive Linux users at well over 4 mil­lion. Sadly, Valve have not given out a more re­cent monthly ac­tive user num­ber but it’s likely a few mil­lion higher, es­pe­cially with the Steam Deck sell­ing mil­lions.

And if we look at the dis­tri­b­u­tion break­down chart from our page:

The over­all dis­tri­b­u­tion num­bers for October 2025:

The num­bers are still be­ing mas­sively pumped up by the Steam Deck with SteamOS Linux, which is not sur­pris­ing con­sid­er­ing that the Steam Deck is still in the top 10 of the global top sell­ers on Steam con­stantly. And with all the ru­mours and leaks sur­round­ing the up­com­ing Steam Frame, which will hope­fully be a SteamOS Linux pow­ered VR kit, we could see the num­bers just con­tinue to jump higher.

...

Read the original on www.gamingonlinux.com »

8 753 shares, 31 trendiness

ChatGPT's Atlas: The Browser That's Anti-Web

OpenAI, the com­pany be­hind ChatGPT, re­leased their own browser called Atlas, and it ac­tu­ally is some­thing new: the first browser that ac­tively fights against t…

OpenAI, the com­pany be­hind ChatGPT, re­leased their own browser called Atlas, and it ac­tu­ally is some­thing new: the first browser that ac­tively fights against t…

OpenAI, the com­pany be­hind ChatGPT, re­leased their own browser called Atlas, and it ac­tu­ally is some­thing new: the first browser that ac­tively fights against the web. Let’s talk about what that means, and what dan­gers there are from an anti-web browser made by an AI com­pany — one that prob­a­bly needs a warn­ing la­bel when you in­stall it.

The prob­lems fall into three main cat­e­gories:

Atlas sub­sti­tutes its own AI-generated con­tent for the web, but it looks like it’s show­ing you the web

The user ex­pe­ri­ence makes you guess what com­mands to type in­stead of click­ing on links

You’re the agent for the browser, it’s not be­ing an agent for you

When I first got Atlas up and run­ning, I tried giv­ing it the eas­i­est and most ob­vi­ous tasks I could pos­si­bly give it. I looked up Taylor Swift show­girl” to see if it would give me links to videos or playlists to watch or lis­ten to the most pop­u­lar mu­sic on the charts right now; this has to be just about the eas­i­est pos­si­ble prompt.

The re­sults that came back looked like a web page, but they weren’t. Instead, what I got was some­thing closer to a last-minute book re­port writ­ten by a kid who had mostly pla­gia­rized Wikipedia. The re­sponse men­tioned some ba­sic bi­o­graph­i­cal in­for­ma­tion and had a few pho­tos. Now we know that AI tools are prone to this kind of con­fab­u­la­tion, but this is new, be­cause it felt like I was in a web browser, typ­ing into a search box on the Internet. And here’s what was most no­table: there was no link to her web­site.

Unless you were an ex­pert, you would al­most cer­tainly think I had typed in a search box and got­ten back a web page with search re­sults. But in re­al­ity, I had typed in a prompt box and got­ten back a syn­the­sized re­sponse that su­per­fi­cially re­sem­bles a web page, and it uses some web tech­nolo­gies to dis­play its out­put. Instead of a list of links to web­sites that had in­for­ma­tion about the topic, it had bul­let points de­scrib­ing things it thought I should know. There were a few foot­notes buried within some of those re­sponse, but the clear in­tent was that I was meant to stay within the AI-generated re­sults, trapped in that walled gar­den.

During its first run, there’s a brief warn­ing buried amidst all the other mes­sages that says, ChatGPT may give you in­ac­cu­rate in­for­ma­tion”, but no­body is go­ing to think that means sometimes this tool com­pletely fab­ri­cates con­tent, gives me a box that looks like a search box, and shows me the fab­ri­cated con­tent in a dis­play that looks like a web page when I type in the fake search box”.

And it’s not like the gen­er­ated re­sponse is even that sat­is­fy­ing. The fake web page had no in­for­ma­tion newer than two or three weeks old, re­flect­ing the fact that LLMs rely on when­ever they’ve most re­cently been able to crawl (or gather with­out con­sent) in­for­ma­tion from the web. None of to­day’s big AI plat­forms up­date nearly as of­ten as con­ven­tional search en­gines do.

Keep in mind, all of these short­com­ings are not be­cause the browser is new and has bugs; this is the app work­ing as de­signed. 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 pop­u­lar game called Zork that was in a cat­e­gory called text ad­ven­ture games”. The com­puter would say some­thing like:

You are in a clear­ing in the for­est, 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 dis­cov­ered the out­doors, whichever came first.

There were a tiny hand­ful of in­cred­i­ble nerds who thought this was fun, mostly be­cause 3D graph­ics and the phys­i­cal touch of an­other hu­man be­ing had­n’t been in­vented yet. But for the most part, peo­ple would tire of the nov­elty be­cause try­ing to guess what to type to make some­thing hap­pen is a ter­ri­ble and ex­haust­ing user in­ter­face. This was also why peo­ple hated op­er­at­ing sys­tems like MS-DOS, and why even all the Linux users read­ing this right now are do­ing so in a graph­i­cal user in­ter­face.

Clicking on things is great, be­cause you can see what your choices are, and then just choose the one you want. Tapping on things on a touch screen is even bet­ter. And this kind of dis­cov­er­abil­ity was one of the fun­da­men­tal in­no­va­tions of the web: It de­moc­ra­tized be­ing able to cre­ate a click­able list of op­tions once any­body could make a web page.

In the demo for Atlas, the OpenAI team shows a user try­ing to find a Google Doc from their browser his­tory. A nor­mal user would type key­words like atlas de­sign” and see their browser show a list of re­cent pages. They would rec­og­nize 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 mem­ber types out:

search web his­tory for a doc about at­las core de­sign

This is worse in every con­ceiv­able way. It’s slower, more prone to er­ror, and re­dun­dant. But it also high­lights one of the biggest in­vis­i­ble prob­lems: you’re switch­ing modes”. Normally, an LLMs de­fault mode is to cre­ate plau­si­ble ex­trap­o­la­tions based on its train­ing data. Basically, it’s sup­posed to make things up. But this demo has to ex­plic­itly walk you through now it’s time to go search my browser his­tory” be­cause it’s co­erc­ing the AI to look through lo­cal con­tent. And that can’t be hal­lu­ci­nated! If you’re try­ing to get back to a bud­get spread­sheet that you’ve cre­ated and ChatGPT de­cides to just make up a file that does­n’t ex­ist, you’re prob­a­bly not go­ing to use that browser any­more.

Most peo­ple on the in­ter­net aren’t old enough to re­mem­ber this, but peo­ple were thrilled to leave com­mand-line in­ter­faces be­hind back in the 1990s. The ex­plo­sion of color and graph­ics and mul­ti­me­dia in that era made a ton of head­lines, but the real gains in pro­duc­tiv­ity and us­abil­ity came pre­cisely be­cause no­body was hav­ing to guess what se­cret spell they had to type into their com­puter to get ac­tual work done. Links were a bril­liant break­through in mak­ing it in­cred­i­bly ob­vi­ous how to get to where you wanted to go on a com­puter.

And look, we do need in­no­va­tion in browser in­ter­faces! If Atlas was let­ting peo­ple use plain lan­guage to au­to­mate reg­u­lar tasks they want to do on­line, or even just added more tools that plugged into the rest of the ser­vices that peo­ple use every day, it might rep­re­sent a real leap for­ward.

In the new-era com­mand-line in­ter­face of Atlas, though, we’re not just fac­ing the chal­lenges of an in­scrutable com­mand line. There’s the even larger prob­lem that, even if you guess the right magic words, it might ei­ther sim­ply get things wrong or com­pletely make things up. Atlas throws away the dis­cov­er­abil­ity, sim­plic­ity and di­rect­ness of the web by en­cour­ag­ing you to nav­i­gate even through your own doc­u­ments and search re­sults with an un­de­fined, un­know­able syn­tax that pro­duces un­re­li­able re­sults. It’s an­other way of be­ing anti-web.

OpenAI is clearly very mo­ti­vated to gather all the data in the world into their model, re­gard­less of whether or not they have con­sent to do so. This is why a lot of peo­ple have been think­ing deeply about what it would take to cre­ate an Internet of con­sent. It’s no co­in­ci­dence that hun­dreds of peo­ple who work at OpenAI, in­clud­ing many of the most pow­er­ful ex­ec­u­tives, are alumni of Facebook/Meta, es­pe­cially dur­ing the era of many of that com­pa­ny’s most egre­gious abuses of peo­ple’s pri­vacy. In the mar­ket­ing ma­te­ri­als and demon­stra­tions of Atlas, OpenAI’s team de­scribes the browser as be­ing able to be your agent”, per­form­ing tasks on your be­half.

But in re­al­ity, you are the agent for ChatGPT.

During setup, Atlas pushes very ag­gres­sively for you to turn on memories” (where it tracks and stores every­thing you do and uses it to train an AI model about you) and to en­able Ask ChatGPT” on any web­site, where it’s fol­low­ing along with you as you browse the web. By keep­ing the ChatGPT side­bar open while you browse, and giv­ing it per­mis­sion to look over your shoul­der, OpenAI can sud­denly ac­cess all kinds of things on the in­ter­net that they could never get to on their own.

Those Google Docs files that your boss said to keep con­fi­den­tial. The things you type into a Facebook com­ment box but never hit send” on. Exactly which ex’s Instagram you were creep­ing on. How much time you spent com­par­ing dif­fer­ent pairs of shoes dur­ing your lunch hour. All of those things would never show up in ChatGPT’s reg­u­lar method of grab­bing con­tent off the in­ter­net. Even Google would­n’t have ac­cess to that kind of data when you use their Chrome browser, and cer­tainly not in a way that was con­nected to your ac­tual iden­tity.

But by act­ing as ChatGPT’s agent, you can hold open the door so that the AI can now see and ac­cess all kinds of data it could never get to on its own. As pub­lish­ers and con­tent own­ers start to put up more ef­fec­tive ways of block­ing the AI plat­forms from ex­ploit­ing their con­tent with­out con­sent, hav­ing users act as agents on be­half of ChatGPT lets them get around these sys­tems, be­cause site own­ers are never go­ing to block their ac­tual au­di­ence.

And while ChatGPT is fol­low­ing you around, it can cre­ate a com­plete and com­pre­hen­sive sur­veil­lance pro­file of you — your per­son­al­ity, your be­hav­iors, your pri­vate doc­u­ments, your un­fin­ished thoughts, how long you lin­gered on that one page be­fore hit­ting the back but­ton — at a level that the search com­pa­nies and so­cial net­works of the last gen­er­a­tion could­n’t even dream of. We went from wor­ry­ing about be­ing tracked by cook­ies to let­ting an AI com­pany con­trol our web browser and watch every­thing we do. The amount of data they’re gath­er­ing is un­fath­omable.

All of this gets de­scribed as if it is help­ing you. The truth is, in its cur­rent im­ple­men­ta­tion, ChatGPT’s agent” func­tion­al­ity is largely use­less. I tried the most stan­dard test: hav­ing it book a very sim­ple flight on my be­half. I pro­vided ChatGPT with a prompt that in­cluded the fact it was a di­rect flight for one per­son, spec­i­fy­ing the ex­act date and the ori­gin and des­ti­na­tion air­ports, and let the browser do the part that was sup­posed to be mag­i­cal.

While the browser did a very good job of smoothly nav­i­gat­ing to the right place on the air­line web­site, it was only at the point where I would have ac­tu­ally been con­firm­ing the book­ing that I no­ticed it had ar­bi­trar­ily changed the date to a com­pletely dif­fer­ent day, weeks off from what I had spec­i­fied. By con­trast, en­ter­ing the ex­act same in­for­ma­tion into a stan­dard Google search re­sulted in di­rect links that could be clicked on in lit­er­ally one-tenth the time—and the old-fash­ioned, non-LLM Google re­sults ac­tu­ally led to a book­ing link on the cor­rect date.

So why would such an in­fe­rior ex­pe­ri­ence be po­si­tioned as the most pre­mium part of this new browser? It stands to rea­son it’s be­cause this is the most strate­gi­cally im­por­tant goal of the com­pany cre­at­ing the prod­uct. Their ro­bots need hu­mans to guide them around the gates that are quickly be­ing erected around the open web, and if they can use that to keep their eyes on every­thing the hu­mans are do­ing at the same time, so much the bet­ter. The agent” story re­ally only works in one di­rec­tion, and that di­rec­tion is anti-web.

Here’s what’s most key for con­tex­tu­al­iz­ing the Atlas browser: this is the same com­pany whose chat­bot keeps telling vul­ner­a­ble chil­dren to self-harm, and they do, and now a num­ber of them are dead. When those who are in psy­cho­log­i­cal dis­tress en­gage with these tools, they very fre­quently get pulled into states of ex­treme duress — which OpenAI knows keenly well be­cause even one of their own in­vestors has gone off the deep end when over-us­ing the plat­form. In fact, the user ex­pe­ri­ence fea­ture that OpenAI is most ef­fec­tive at cre­at­ing is emo­tional de­pen­dency amongst its users, as ev­i­denced by the level of de­spon­dency its users showed af­ter the re­cent re­lease of GPT-5.

When users re­spond to a soft­ware up­date by ex­press­ing deep emo­tional dis­tress, and that they feel like they’ve lost a friend, you have a pro­found bug. If there are enough griev­ing par­ents who have been dev­as­tated by your tech­nol­ogy that they can form a sup­port group for each other, then there should at the very least be a pretty ag­gres­sive warn­ing la­bel on this ap­pli­ca­tion when it is ini­tially in­stalled. Then, at a far less se­ri­ous level, if this prod­uct is go­ing to have ex­treme and in­va­sive ef­fects on mar­kets and cul­tural ecosys­tems with­out dis­clos­ing the mech­a­nisms it uses to do so, and with­out ask­ing the con­sent of the many par­ties whose in­tel­lec­tual prop­erty and la­bor it will rely on to ac­com­plish those ends, then we need to have a much broader reck­on­ing.

Also, I love the web, and this thing is bad for the web.

I re­ally, re­ally want there to be more browsers! I want there to be lots of weird new ways of go­ing around the web. I have my own LLM that I trained with my own con­tent, and I bet if every­body else could have one like mine that they con­trol, that had per­fect pri­vacy and was­n’t owned by any big com­pany, and never sent their data any­where or did any­thing creepy, they’d want the ben­e­fits of that, too. It would even be awe­some if that were in­te­grated with their browser — with their web browser. I’m all for peo­ple try­ing strange new geeky things, and in­no­vat­ing on the ex­pe­ri­ences we have every day so we’re not just stuck typ­ing in the same boxes we’ve been us­ing for decades, or set­tling for the same few ex­pe­ri­ences.

Hell, there’s even room for in­no­va­tion on com­mand-line in­ter­faces! They’re not in­her­ently ter­ri­ble (I use one every day!), but reg­u­lar folks should­n’t have one forced on them for or­di­nary tasks. And the ma­jor­ity of things peo­ple do on a com­puter are bet­ter when they rely on the ze­roes-and-ones re­li­a­bil­ity of com­put­ers, when we know if what they’re do­ing is true or false. We need to have fewer things in the world that make us won­der whether every­thing is just made up bull­shit.

The web was de­signed with­out the con­cept of per­sonal iden­tity at all, and with­out any track­ing sys­tem built in. It was de­signed for any­body to be able to cre­ate what they want, and even for any­body to be able to make their own web browser. Not long af­ter its in­ven­tion, peo­ple came up with ideas like cook­ies and made dif­fer­ent sys­tems for log­ging in, and then big com­pa­nies started com­ing in and re­al­ized that if they could con­trol the browser, they’d con­trol all the users and the ways of mak­ing money. Ever since, there’s been a long se­ries of bat­tles over pri­vacy ver­sus mon­e­ti­za­tion, but there’s been some small pro­tec­tion for users, who ben­e­fit­ted from those smart orig­i­nal de­sign choices back at the birth of the web.

It’s very clear that a lot of the new AI era is about dis­man­tling the we­b’s orig­i­nal de­sign. The last few decades, where ad­ver­tis­ing was tar­get­ing peo­ple by their in­ter­ests in­stead of di­rectly by their ac­tual iden­tity, now sees AI com­pa­nies try­ing to cre­ate an en­vi­ron­ment of com­plete sur­veil­lance. That re­quires a new Internet where there’s no con­cept of con­sent for ei­ther users or those who cre­ate con­tent and cul­ture — everything is just raw ma­te­ri­als, and all of us are fair game.

The most wor­ri­some part is that Atlas looks so fa­mil­iar, and feels so in­nocu­ous, that peo­ple will try it and mis­take it for a fa­mil­iar web browser just like the other tools that they’ve been us­ing for years. But Atlas is a browser that ac­tively fights against the web, and in do­ing so, it’s fight­ing against the very idea that you should have con­trol over what you see, where you go, and what watches you while you’re there.

...

Read the original on www.anildash.com »

9 734 shares, 30 trendiness

Strange Attractors

A few months back, while play­ing around with , I came across some­thing that com­pletely de­railed my plans. Strange at­trac­tors - fancy math that cre­ates beau­ti­ful pat­terns. At first I thought I’d just ren­der one and move on, but then soon I re­al­ized that this is too much fun. When com­plex­ity emerges from three sim­ple equa­tions, when you see some­thing chaotic emerge into beau­ti­ful, it’s hard not to waste some time. I’ve spent count­less hours, maybe more than I’d care to ad­mit, watch­ing these pat­terns form. I re­al­ized there’s some­thing deeply sat­is­fy­ing about see­ing or­der emerge from ran­dom­ness. Let me show you what kept me hooked.

Most of what I’ve learned about strange at­trac­tors comes from work­ing on this vi­su­al­iza­tion. If you’re seek­ing ad­vanced math­e­mat­i­cal ex­pla­na­tions, this might not be for you. My in­ten­tion here is to share my learn­ings in an en­gag­ing and ac­ces­si­ble man­ner.

Dynamical Systems are a math­e­mat­i­cal way to un­der­stand how things change over time. Imagine you have a sys­tem, which could be any­thing from the move­ment of plan­ets to the growth of a pop­u­la­tion. In this sys­tem, there are rules that de­ter­mine how it evolves from one mo­ment to the next. These rules tell you what will hap­pen next based on what is hap­pen­ing now. Some ex­am­ples are, a pen­du­lum, the weather pat­terns, a flock of birds, the spread of a virus in a pop­u­la­tion (we are all too fa­mil­iar with this one), and stock mar­ket.

There are two pri­mary things to un­der­stand about this sys­tem:

Phase Space: This is like a big col­lec­tion of all the pos­si­ble states the sys­tem can be in. Each state is like a

snap­shot of the sys­tem at a spe­cific time. This is also called the state space or the world state.

Dynamics: These are the rules that takes one state of the sys­tem and moves it to the next state. It can be

rep­re­sented as a func­tion that trans­forms the sys­tem from now to later.

For in­stance, when study­ing pop­u­la­tion growth, a phase-space (world-state) might con­sist of the cur­rent pop­u­la­tion size and the rate of growth or de­cline at a spe­cific time. The dy­nam­ics would then be de­rived from mod­els of pop­u­la­tion dy­nam­ics, which, con­sid­er­ing fac­tors like birth rates, death rates, and car­ry­ing ca­pac­ity of the en­vi­ron­ment, dic­tate the changes in pop­u­la­tion size over time.

Another way of say­ing this is that the dy­nam­i­cal sys­tems de­scribe how things change over time, in a space of pos­si­bil­i­ties, gov­erned by a set of rules. Numerous fields such as bi­ol­ogy, physics, eco­nom­ics, and ap­plied math­e­mat­ics, study sys­tems like these, fo­cus­ing on the spe­cific rules that dic­tate their evo­lu­tion. These rules are grounded in rel­e­vant the­o­ries, such as Newtonian me­chan­ics, fluid dy­nam­ics, and math­e­mat­ics of eco­nom­ics, among oth­ers.

There are dif­fer­ent ways of clas­si­fy­ing dy­nam­i­cal sys­tems, and one of the most in­ter­est­ing is the clas­si­fi­ca­tion into chaotic and non-chaotic sys­tems. The change over time in non-chaotic sys­tems is more de­ter­min­is­tic as com­pared to chaotic sys­tems which ex­hibit ran­dom­ness and un­pre­dictabil­ity.

Chaos Theory is the sub branch of dy­nam­i­cal sys­tems that stud­ies chaotic sys­tems and chal­lenges the tra­di­tional de­ter­min­is­tic views of causal­ity. Most of the nat­ural sys­tems we ob­serve are chaotic in na­ture, like the weather, a drop of ink dis­solv­ing in wa­ter, so­cial and eco­nomic be­hav­iours etc. In con­trast, sys­tems like the move­ment of plan­ets, pen­du­lums, and sim­ple har­monic os­cil­la­tors are ex­tremely pre­dictable and non-chaotic.

Chaos Theory deals with sys­tems that ex­hibit ir­reg­u­lar and un­pre­dictable be­hav­ior over time, even though they fol­low de­ter­min­is­tic rules. Having a set of rules that gov­ern the sys­tem, and yet ex­hibit ran­dom­ness and un­pre­dictabil­ity, might seem a bit con­tra­dic­tory, but it is be­cause the rules do not al­ways rep­re­sent the whole sys­tem. In fact, most of the time, these rules are an ap­prox­i­ma­tion of the sys­tem and that is what leads to the un­pre­dictabil­ity. In com­plex sys­tems, we do not have enough in­for­ma­tion to come up with a per­fect set of rules. And by us­ing in­com­plete in­for­ma­tion to make pre­dic­tions, we in­tro­duce un­cer­tainty, which am­pli­fies over time, lead­ing to the chaotic be­hav­iour.

Chaotic sys­tems gen­er­ally have many non-lin­ear in­ter­act­ing com­po­nents, which we par­tially un­der­stand (or can par­tially ob­serve) and which are very sen­si­tive to small changes. A small change in the ini­tial con­di­tions can lead to a com­pletely dif­fer­ent out­come, a phe­nom­e­non known as the but­ter­fly ef­fect. In this post, we will try to see the but­ter­fly ef­fect in ac­tion but be­fore that, let’s talk about Strange Attractors.

To un­der­stand Strange Attractors, let’s first un­der­stand what an at­trac­tor is. As dis­cussed ear­lier, dy­nam­i­cal sys­tems are all about change over time. During this change, the sys­tem moves through dif­fer­ent pos­si­ble states (remember the phase space jar­gon?). An at­trac­tor is a set of states to­wards which a sys­tem tends to set­tle over time, or you can say, to­wards which it is at­tracted. It’s like a mag­net that pulls the sys­tem to­wards it.

For ex­am­ple, think of a pen­du­lum. When you re­lease it, it swings back and forth, but even­tu­ally, it comes to rest at the bot­tom. The bot­tom is the at­trac­tor in this case. It’s the state to­wards which the pen­du­lum is at­tracted.

This hap­pens due to the sys­tem’s in­her­ent dy­nam­ics, which gov­ern how states in the phase space change. Here are some of the rea­sons why dif­fer­ent states get at­tracted to­wards at­trac­tors:

Stability: Attractors are sta­ble states of the sys­tem, mean­ing that once the sys­tem reaches them, it tends to stay

there. This sta­bil­ity arises from the sys­tem’s dy­nam­ics, which push it to­wards the at­trac­tor and keep it there.

Dissipation: Many dy­nam­i­cal sys­tems have dis­si­pa­tive forces, which cause the sys­tem to lose en­ergy over time. This

loss of en­ergy leads the sys­tem to set­tle into a lower-en­ergy state, which of­ten cor­re­sponds to an at­trac­tor. This is

what hap­pens in the case of the pen­du­lum.

Contraction: In some re­gions of the phase space, the sys­tem’s dy­nam­ics cause tra­jec­to­ries to con­verge. This

con­trac­tion ef­fect means that nearby states will tend to come closer to­gether over time, even­tu­ally be­ing drawn

to­wards the at­trac­tor.

Some at­trac­tors have com­plex gov­ern­ing equa­tions that can cre­ate un­pre­dictable tra­jec­to­ries or be­hav­iours. These non­lin­ear in­ter­ac­tions can re­sult in mul­ti­ple sta­ble states or pe­ri­odic or­bits, to­wards which the sys­tem evolves. These com­plex at­trac­tors are cat­e­gorised as strange at­trac­tors. They are called strange” due to their unique char­ac­ter­is­tics.

Fractal Structure: Strange at­trac­tors of­ten have a frac­tal-like struc­ture, mean­ing they dis­play in­tri­cate

pat­terns that re­peat at dif­fer­ent scales. This com­plex­ity sets them apart from sim­pler, reg­u­lar at­trac­tors.

Sensitive Dependence on Initial Conditions: Systems with strange at­trac­tors are highly sen­si­tive to their ini­tial

con­di­tions. Small changes in the start­ing point can lead to vastly dif­fer­ent long-term be­hav­iors, a phe­nom­e­non known

as the butterfly ef­fect”.

Unpredictable Trajectories: The tra­jec­to­ries on a strange at­trac­tor never re­peat them­selves, ex­hibit­ing

non-pe­ri­odic mo­tion. The sys­tem’s be­hav­ior ap­pears ran­dom and un­pre­dictable, even though it is gov­erned by

de­ter­min­is­tic rules.

Emergent Order from Chaos: Despite their chaotic na­ture, strange at­trac­tors ex­hibit a form of un­der­ly­ing or­der.

Patterns and struc­tures emerge from the seem­ingly ran­dom be­hav­ior, re­veal­ing the com­plex dy­nam­ics at play.

You can ob­serve most of these char­ac­ter­is­tics in the vi­su­al­i­sa­tion. The one which is most fas­ci­nat­ing to ob­serve is the but­ter­fly ef­fect.

A but­ter­fly can flut­ter its wings over a flower in China and cause a hur­ri­cane in the Caribbean.

One of the defin­ing fea­tures of strange at­trac­tors is their sen­si­tiv­ity to ini­tial con­di­tions. This means that small changes in the start­ing state of the sys­tem can lead to vastly dif­fer­ent long-term be­hav­iors, a phe­nom­e­non known as the

but­ter­fly ef­fect. In chaotic sys­tems, tiny vari­a­tions in the ini­tial con­di­tions can am­plify over time, lead­ing to dras­ti­cally dif­fer­ent out­comes.

In our vi­su­al­i­sa­tion, let’s ob­serve this be­hav­ior on Thomas Attractor. It is gov­erned by the fol­low­ing equa­tions:

A small change in the pa­ra­me­ter a can lead to vastly dif­fer­ent par­ti­cle tra­jec­to­ries and the over­all shape of the at­trac­tor. Change this value in the con­trol panel and ob­serve the but­ter­fly ef­fect in ac­tion.

There is an­other way of ob­serv­ing the but­ter­fly ef­fect in this vi­su­al­i­sa­tion. Change the Initial State from cube to

sphere sur­face in the con­trol panel and ob­serve how the par­ti­cles move dif­fer­ently in the two cases. The par­ti­cles even­tu­ally get at­tracted to the same states but have dif­fer­ent tra­jec­to­ries.

The orig­i­nal butterfly ef­fect” quote was coined by MIT me­te­o­rol­ogy pro­fes­sor Edward Lorenz in the 1960s. In 1961, Lorenz was run­ning a com­puter sim­u­la­tion of weather pat­terns us­ing a model with 12 vari­ables. He left to get a cup of cof­fee, and when he re­turned, he no­ticed that a tiny change in one of the ini­tial vari­ables (from .506127 to .506) had dras­ti­cally al­tered the en­tire weather pat­tern pro­duced by the sim­u­la­tion over the next two months. This led Lorenz to the pow­er­ful in­sight that small changes in a com­plex sys­tem can have large, un­pre­dictable con­se­quences .He called this the butterfly ef­fect” - the idea that the flap of a but­ter­fly’s wings in Brazil could set off a tor­nado in Texas. Lorenz pre­sented his find­ings on the but­ter­fly ef­fect at a 1972 con­fer­ence, where the term was pop­u­lar­ized thanks to the metaphor of a but­ter­fly’s wings pro­vided by me­te­o­rol­o­gist Philip Merilees. You can play around with one of the at­trac­tors found by Edward Lorenz called the Lorenz Attractor in the vi­su­al­i­sa­tion.

This vi­su­al­iza­tion re­quired ren­der­ing a large num­ber of par­ti­cles us­ing Three.js. To achieve this ef­fi­ciently, we used a tech­nique called ping-pong ren­der­ing . This method han­dles it­er­a­tive up­dates of par­ti­cle sys­tems di­rectly on the GPU, min­i­miz­ing data trans­fers be­tween the CPU and GPU. It uti­lizes two frame buffer ob­jects (FBOs) that al­ter­nate roles: One stores the cur­rent state of par­ti­cles and ren­der them on the screen, while the other cal­cu­lates the next state.

Setting Up Frame Buffer Objects (FBOs): We start by cre­at­ing two FBOs, ping and pong, to hold the cur­rent and next state of par­ti­cles. These buffers store data such as par­ti­cle po­si­tions in RGBA chan­nels, mak­ing ef­fi­cient use of GPU re­sources.

Shader Programs for Particle Dynamics: The shader pro­grams ex­e­cute on the GPU and ap­ply at­trac­tor dy­nam­ics to each par­ti­cle. Following is the at­trac­tor func­tion which up­date the par­ti­cle po­si­tions based on the at­trac­tor equa­tion.

Rendering and Buffer Swapping: In each frame, the shader com­putes the new po­si­tions based on the at­trac­tor’s equa­tions and stores them in the in­ac­tive buffer. After up­dat­ing, the roles of the FBOs are swapped: The pre­vi­ously in­ac­tive buffer be­comes ac­tive, and vice versa.

1const cur­rent­Tar­get = flip ? ping : pong;2const next­Tar­get = flip ? pong : ping;3

4// Use cur­rent po­si­tions for cal­cu­la­tions in shader5u­ni­forms.po­si­tions.value = cur­rent­Tar­get.tex­ture;6

7// Render the other on the screen8gl.se­tRen­der­Tar­get(next­Tar­get);9gl.clear();10gl.ren­der(scene, cam­era);11gl.se­tRen­der­Tar­get(null);12

13flip = !flip;1const cur­rent­Tar­get = flip ? ping : pong;2const next­Tar­get = flip ? pong : ping;3

4// Use cur­rent po­si­tions for cal­cu­la­tions in shader5u­ni­forms.po­si­tions.value = cur­rent­Tar­get.tex­ture;6

7// Render the other on the screen8gl.se­tRen­der­Tar­get(next­Tar­get);9gl.clear();10gl.ren­der(scene, cam­era);11gl.se­tRen­der­Tar­get(null);12

13flip = !flip;

This com­bi­na­tion of ef­fi­cient shader cal­cu­la­tions and the ping-pong tech­nique al­lows us to ren­der the par­ti­cle sys­tem.

If you have any com­ments, please leave them on . Sooner or later, I will in­te­grate it with the blog. The hacker news dis­cus­sion can be found here.

...

Read the original on blog.shashanktomar.com »

10 664 shares, 28 trendiness

Answering Your Toughest Questions About Leaving AWS

When we pub­lished How mov­ing from AWS to Bare-Metal saved us $230,000 /yr. in 2023, the story trav­elled far be­yond our usual read­er­ship. The dis­cus­sion threads on Hacker News and Reddit were packed with sharp ques­tions: did we skip Reserved Instances, how do we fail over a sin­gle rack, what about the peo­ple cost, and when is cloud still the bet­ter an­swer? This fol­low-up is our long-form re­ply.

Over the last twenty-four months we:

* Ran the MicroK8s + Ceph stack in pro­duc­tion for 730+ days with 99.993% mea­sured avail­abil­ity.

* Added a sec­ond rack in Frankfurt, joined to our pri­mary Paris cage over re­dun­dant DWDM, to kill the single rack” con­cern.

* Cut av­er­age cus­tomer-fac­ing la­tency by 19% thanks to lo­cal NVMe and elim­i­nat­ing noisy neigh­bours.

* Reinvested the sav­ings into buy­ing bare metal AI servers to ex­pand LLM-based alert / in­ci­dent sum­mari­sa­tion and auto code fixes based on log / traces and met­rics in OneUptime.

Below we tackle the re­cur­ring themes from the com­mu­nity feed­back, com­plete with the num­bers we use in­ter­nally.

In the US, it is. In the rest of the world. That’s 2-5x en­gi­neers salary. We used to save $230,000 / yr but now the sav­ings have ex­po­nen­tially grown. We now save over $1.2M / yr and we ex­pect this to grow, as we grow as a busi­ness.

We tried. Long an­swer: the maths still favoured bare metal once we priced every­thing in. We see a sav­ings of over 76% if you com­pare our bare metal setup to AWS.

* Savings Plans do not re­duce S3, egress, or Direct Connect. 37% off in­stances still leaves you pay­ing list price for band­width, which was 22% of our AWS bill.

* EKS had an ex­tra $1,260/month con­trol-plane fee plus $600/month for NAT gate­ways. Those costs dis­ap­pear once you run Kubernetes your­self.

* Our work­load is 24/7 steady. We were al­ready at >90% reser­va­tion cov­er­age; there was no idle burst ca­pac­ity to right size” away. If we had the kind of bursty com­pute pro­file many com­menters ref­er­enced, the choice would be dif­fer­ent.

We spent a week of en­gi­neers time (and that is the worst case es­ti­mate) on the ini­tial mi­gra­tion, spread across SRE, plat­form, and data­base own­ers. Most of that time was work we needed any­way—for­mal­is­ing in­fra­struc­ture-as-code, smoke test­ing charts, tight­en­ing backup poli­cies. The in­cre­men­tal work that ex­isted purely be­cause of bare metal was roughly one week.

Ongoing run-cost looks like this:

* Hands-on key­board: ~24 en­gi­neer-hours/​quar­ter across the en­tire plat­form team, in­clud­ing rou­tine patch­ing and firmware up­dates. That is com­pa­ra­ble to the AWS time we used to burn on cost op­ti­mi­sa­tion, IAM pol­icy churn, and chas­ing dep­re­ca­tions and up­dat­ing our VMs on AWS.

* Remote hands: 2 in­ter­ven­tions in 24 months (mainly disks). Mean re­sponse time: 27 min­utes. We do not staff an on-site team. We rely on co-lo­ca­tion provider to phys­i­cally man­age our rack. This means no tra­di­tional hard­ware ad­mins.

* Automation: We’re now mov­ing to Talos. We PXE boot with Tinkerbell, im­age with Talos, man­age con­figs through Flux and Terraform, and run con­for­mance suites be­fore each Kubernetes up­grade. All of those tools also hard­ened our AWS es­tate, so they were not net-new ef­fort.

The op­por­tu­nity cost ques­tion from is fair. We track it the same way we track fea­ture ve­loc­ity: did the in­fra team ship less? The an­swer was no”—our re­lease ca­dence in­creased be­cause we re­claimed few hours/​month we used to spend in AWS cost coun­cil” meet­ings.

We have mul­ti­ple racks across two dif­fer­ent DC / providers. We:

* Leased a sec­ondary quar­ter rack in Frankfurt with a dif­fer­ent provider and power util­ity.

* Currently: Deployed a sec­ond MicroK8s con­trol plane, mir­rored Ceph pools with asyn­chro­nous repli­ca­tion. Future: We’re mov­ing to Talos. Nothing against Microk8s, but we like the Talos way of man­ag­ing the k8s clus­ter.

* Added iso­lated out-of-band man­age­ment paths (4G / satel­lite) so we can reach the gear even dur­ing metro fi­bre events.

The AWS failover clus­ter we men­tioned in 2023 still ex­ists. We re­hearse a full cu­tover quar­terly us­ing the same Helm re­leases we ship to cus­tomers. DNS failover re­mains the slow­est leg (resolver caches can ig­nore TTL), so we added Anycast ingress via BGP with our tran­sit provider to cut traf­fic shift­ing to sub-minute.

We amor­tise servers over five years, but we sized them with 2 × AMD EPYC 9654 CPUs, 1 TB RAM, and NVMe sleds. At our cur­rent growth rate the boxes will hit CPU sat­u­ra­tion be­fore we hit year five. When that hap­pens, the plan is to cas­cade the older gear into our re­gional an­a­lyt­ics clus­ter (we use Posthog + Metabase for this) and buy a new batch. Thanks to the sav­ings delta, we can re­fresh 40% of the fleet every 24 months and still spend less an­nu­ally than the op­ti­mised AWS bill above.

We also buy ex­tended war­ranties from the OEM (Supermicro) and keep three cold spares in the cage. The hard­ware lasts 7-8 years and not 5, but we wtill count it as 5 to be very con­ser­v­a­tive.

Another strong Reddit cri­tique: why re­build ser­vices AWS al­ready of­fers? Three rea­sons we are com­fort­able with the trade:

Portability is part of our prod­uct promise. OneUptime cus­tomers self-host in their own en­vi­ron­ments. Running the same open stack we ship (Postgres, Redis, ClickHouse, etc.) keeps us hon­est. We eun on Kubernetes and self-hosted cus­tomers run on Kubernetes as well. Tooling ma­tu­rity. Two years ago we re­lied on Terraform + EKS + RDS. Today we run MicroK8s (Talos in the fu­ture), Argo Rollouts, OpenTelemetry Collector, and Ceph dash­boards. None of that is be­spoke. We do not main­tain a fork of any­thing. Selective cloud use. We still pay AWS for Glacier back­ups, CloudFront for edge caching, and short-lived burst ca­pac­ity for load tests. Cloud makes sense when elas­tic­ity mat­ters; bare metal wins when base­load dom­i­nates.

Managed ser­vices are phe­nom­e­nal when you are short on ex­per­tise or need fea­tures be­yond com­mod­ity com­pute. If we were all-in on DynamoDB streams or Step Functions we would al­most cer­tainly still be on AWS.

We com­mit­ted to 5 Gbps 95th per­centile across two car­ri­ers. The same traf­fic on AWS egress would be 8x ex­pen­sive in eu-west-1. For DDoS pro­tec­tion we front our ingress with Cloudflare.

Short an­swer: No. Infact it was bet­ter than AWS (compared to re­cent AWS down­times)

We have 730+ days with 99.993% mea­sured avail­abil­ity and we also es­caped AWS re­gion wide down­time that hap­pened a week ago.

We stayed SOC 2 Type II and ISO 27001 cer­ti­fied through the tran­si­tion. The biggest deltas au­di­tors cared about:

* Physical con­trols: We pro­vide badge logs from the colo, cam­era footage on re­quest, and quar­terly ac­cess re­views. The colo al­ready meets Tier III re­dun­dancy, so their re­ports roll into ours.

* Change man­age­ment: Terraform plans, and now Talos ma­chine con­figs give us im­mutable ev­i­dence of change. Auditors liked that more than AWS Console screen­shots.

* Business con­ti­nu­ity: We prove failover by mov­ing work­load to other DC.

If you are in a reg­u­lated space (HIPAA for in­stance), ex­pect the pa­per­work to grow a lit­tle. We worked it in by lean­ing on the colo providers’ stan­dard com­pli­ance pack­ets—they slot­ted straight into our risk reg­is­ter.

We priced Hetzner, OVH, Leaseweb, Equinix Metal, and AWS Outposts. The short ver­sion:

* Hyperscaler al­ter­na­tives were cheaper on com­pute but still ex­pen­sive on egress once you hit petabytes/​month. Outposts also car­ried min­i­mum com­mits that ex­ceeded our needs.

* European ded­i­cated hosts (Hetzner, OVH) are fan­tas­tic for lab clus­ters. The chal­lenge was multi-100 TB Ceph clus­ters with re­dun­dant up­links and smart-hands SLAs. Once we priced that tier, the sav­ings nar­rowed.

* Equinix Metal got the clos­est, but bare metal on-de­mand still car­ried a 25-30% pre­mium over our CapEx plan. Their global foot­print is tempt­ing; we may still use them for short-lived ex­pan­sion.

Owning the hard­ware also let us plan power den­sity (we run 15 kW racks) and reuse com­po­nents. For our steady-state foot­print, colo­ca­tion won by a long shot.

We put real num­bers to it be­cause Reddit kept us hon­est:

* Weekly: Kernel and firmware patches (Talos makes this a re­de­ploy), Ceph health checks, Total time av­er­ages 1 hour/​week on av­er­age over months.

* Monthly: Kubernetes con­trol plane up­grades in ca­nary fash­ion. About 2 en­gi­neer-hours. We ex­pect this to re­duce when Talos kicks in.

* Quarterly: Disaster re­cov­ery drills, ca­pac­ity plan­ning, and con­tract au­dits with car­ri­ers. Roughly 12 hours across three en­gi­neers.

Total toil is ~14 en­gi­neer-hours/​month, in­clud­ing prep. The AWS era had us spend­ing sim­i­lar time but on dif­fer­ent work: chas­ing cost anom­alies, ex­pand­ing Security Hub ex­cep­tions, and map­ping break­ing changes in man­aged ser­vices. The toil moved; it did not mul­ti­ply.

Absolutely. Cloud still solves prob­lems we would rather not own:

* Glacier keeps long-term log archives at a price point lo­cal ob­ject stor­age can­not match.

* CloudFront han­dles 14 edge PoPs we do not want to build. We ter­mi­nate TLS at the edge for mar­ket­ing as­sets and docs. We will soon move this to Cloudflare as they are cheaper.

* We spin up short-lived AWS en­vi­ron­ments for load test­ing.

So yes, we left AWS for the base work­load, but we still swipe the cor­po­rate card when elas­tic­ity or ge­og­ra­phy out­weighs fixed-cost sav­ings.

It de­pends on your work­load. We still rec­om­mend stay­ing put if:

* Your us­age pat­tern is spiky or sea­sonal and you can auto-scale to near zero be­tween peaks.

* You lean heav­ily on man­aged ser­vices (Aurora Serverless, Kinesis, Step Functions) where the op­er­a­tional load is the value prop.

* You do not have the ap­petite to build a plat­form team com­fort­able with Kubernetes, Ceph, ob­serv­abil­ity, and in­ci­dent re­sponse.

Cloud-first was the right call for our first five years. Bare metal be­came the right call once our com­pute foot­print, data grav­ity, and in­de­pen­dence re­quire­ments sta­bilised.

* We are work­ing on a de­tailed run­book + Terraform mod­ule to help teams do capex fore­cast­ing for colo moves. Expect that on the blog later this year.

* A deep dive on Talos is in the queue, as re­quested by mul­ti­ple folks in the HN thread.

Questions we did not cover? Let us know in the dis­cus­sion threads—we are happy to keep shar­ing the gritty de­tails.

...

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.