10 interesting stories served every morning and every evening.

Tim Cook to become Apple Executive ChairmanJohn Ternusto become Apple CEO

www.apple.com

Tim Cook to be­come Apple Executive ChairmanJohn Ternusto be­come Apple CEO

Apple Executive Chairman

John Ternusto be­come Apple CEO

Text of this ar­ti­cle

Text of this ar­ti­cle

Images in this ar­ti­cle

Images in this ar­ti­cle

This Alberta Startup Sells No-Tech Tractors for Half Price

wheelfront.com

Home • Automotive News • This Alberta Startup Sells No-Tech Tractors for Half Price

Automotive News

Stay con­nected via Google News

Follow us for the lat­est travel up­dates and guides.

Four hun­dred in­quiries from American farm­ers poured in af­ter a sin­gle in­ter­view. Not for a John Deere. Not for a Case IH. For a trac­tor built in Alberta with a re­man­u­fac­tured 1990s diesel en­gine and zero elec­tron­ics.

Ursa Ag, a small Canadian man­u­fac­turer, is as­sem­bling trac­tors pow­ered by 12-valve Cummins en­gines — the same me­chan­i­cally in­jected work­horses that pow­ered com­bines and pickup trucks decades ago — and sell­ing them for roughly half the price of com­pa­ra­ble ma­chines from es­tab­lished brands. The 150-horsepower model starts at $129,900 CAD, about $95,000 USD. The range-top­ping 260-hp ver­sion runs $199,900 CAD, around $146,000.

Try find­ing a sim­i­larly pow­ered John Deere for that money.

Owner Doug Wilson is­n’t pre­tend­ing this is cut­ting-edge tech­nol­ogy. That’s the en­tire point. The 150-hp and 180-hp mod­els use re­man­u­fac­tured 5.9-liter Cummins en­gines, while the 260-hp gets an 8.3-liter unit.

All are fed by Bosch P-pumps — purely me­chan­i­cal fuel in­jec­tion, no ECU, no pro­pri­etary soft­ware hand­shake re­quired. The cabs are sourced ex­ter­nally and stripped to es­sen­tials: an air ride seat, me­chan­i­cally con­nected con­trols, and noth­ing re­sem­bling a touch­screen.

This plays di­rectly into a fight that has been sim­mer­ing for years. John Deere’s right-to-re­pair bat­tles be­came a na­tional story when farm­ers dis­cov­ered they could­n’t fix their own equip­ment with­out dealer-au­tho­rized soft­ware. Lawsuits fol­lowed, then leg­is­la­tion.

Deere even­tu­ally made con­ces­sions, but the dam­age was done. A gen­er­a­tion of farm­ers learned ex­actly how much con­trol they’d sur­ren­dered by buy­ing ma­chines loaded with pro­pri­etary code.

Wilson saw the gap and drove a trac­tor through it. The 12-valve Cummins is ar­guably the most widely un­der­stood diesel en­gine in North America. Every in­de­pen­dent shop, every shade-tree me­chanic with a set of wrenches, every farmer who grew up turn­ing bolts has en­coun­tered one.

Parts sit on shelves in thou­sands of stores. Downtime — the thing that ac­tu­ally costs a farmer money dur­ing plant­ing or har­vest — shrinks dra­mat­i­cally when you don’t need a fac­tory tech­ni­cian with a lap­top to di­ag­nose a fuel de­liv­ery prob­lem.

Ursa Ag’s dealer net­work re­mains tiny, and the com­pany sells di­rect. Wilson ad­mit­ted they haven’t scaled up dis­tri­b­u­tion be­cause they can’t keep shelves stocked as it stands. He says 2026 pro­duc­tion will ex­ceed the com­pa­ny’s en­tire cu­mu­la­tive out­put, which is a bold claim from a small op­er­a­tion, and whether they can ac­tu­ally de­liver is the sin­gle biggest ques­tion hang­ing over this story.

The U.S. mar­ket is where things get in­ter­est­ing. Ursa Ag has no American dis­trib­u­tors yet, though Wilson says that’s likely to change. The eas­i­est an­swer is yes, we can ship to the United States,” he told re­porters.

Those 400 American in­quiries af­ter one Farms.com seg­ment sug­gest the ap­petite is real. Farmers who have been buy­ing 30-year-old equip­ment to avoid mod­ern com­plex­ity now have a new al­ter­na­tive — a ma­chine with fresh sheet metal, a war­ranty, and an en­gine phi­los­o­phy rooted firmly in the past.

There’s a rea­son the used trac­tor mar­ket has been so ro­bust. Plenty of op­er­a­tors looked at a $300,000 ma­chine full of sen­sors and soft­ware and de­cided a well-main­tained older unit was the smarter bet. Ursa Ag is man­u­fac­tur­ing that bet from scratch.

Whether a small Alberta com­pany can scale fast enough to meet de­mand from an en­tire con­ti­nent is an­other mat­ter. The big man­u­fac­tur­ers have sup­ply chains, dealer net­works, and fi­nanc­ing arms that took decades to build. Wilson has re­man­u­fac­tured Cummins en­gines and a value propo­si­tion that res­onates with any­one who has ever waited three days for a dealer tech to show up with a di­ag­nos­tic ca­ble.

The farm equip­ment in­dus­try spent 20 years adding com­plex­ity and cost. Ursa Ag is wa­ger­ing that a sig­nif­i­cant num­ber of farm­ers never wanted any of it.

Stay con­nected via Google News

Follow us for the lat­est travel up­dates and guides.

DeepSeek V4 Preview Release | DeepSeek API Docs

api-docs.deepseek.com

🚀 DeepSeek-V4 Preview is of­fi­cially live & open-sourced! Welcome to the era of cost-ef­fec­tive 1M con­text length.

🔹 DeepSeek-V4-Pro: 1.6T to­tal / 49B ac­tive params. Performance ri­val­ing the world’s top closed-source mod­els.

🔹 DeepSeek-V4-Flash: 284B to­tal / 13B ac­tive params. Your fast, ef­fi­cient, and eco­nom­i­cal choice.

Try it now at chat.deepseek.com via Expert Mode / Instant Mode. API is up­dated & avail­able to­day!

📄 Tech Report: https://​hug­ging­face.co/​deepseek-ai/​DeepSeek-V4-Pro/​blob/​main/​DeepSeek_V4.pdf

🤗 Open Weights: https://​hug­ging­face.co/​col­lec­tions/​deepseek-ai/​deepseek-v4

DeepSeek-V4-Pro​

🔹 Enhanced Agentic Capabilities: Open-source SOTA in Agentic Coding bench­marks.

🔹 Rich World Knowledge: Leads all cur­rent open mod­els, trail­ing only Gemini-3.1-Pro.

🔹 World-Class Reasoning: Beats all cur­rent open mod­els in Math/STEM/Coding, ri­val­ing top closed-source mod­els.

DeepSeek-V4-Flash​

🔹 Reasoning ca­pa­bil­i­ties closely ap­proach V4-Pro.

🔹 Performs on par with V4-Pro on sim­ple Agent tasks.

🔹 Smaller pa­ra­me­ter size, faster re­sponse times, and highly cost-ef­fec­tive API pric­ing.

Structural Innovation & Ultra-High Context Efficiency​

🔹 Novel Attention: Token-wise com­pres­sion + DSA (DeepSeek Sparse Attention).

🔹 Peak Efficiency: World-leading long con­text with dras­ti­cally re­duced com­pute & mem­ory costs.

🔹 1M Standard: 1M con­text is now the de­fault across all of­fi­cial DeepSeek ser­vices.

Dedicated Optimizations for Agent Capabilities​

🔹 DeepSeek-V4 is seam­lessly in­te­grated with lead­ing AI agents like Claude Code, OpenClaw & OpenCode.

🔹 Already dri­ving our in-house agen­tic cod­ing at DeepSeek.

The fig­ure be­low show­cases a sam­ple PDF gen­er­ated by DeepSeek-V4-Pro.

API is Available Today!​

🔹 Keep base_url, just up­date model to deepseek-v4-pro or deepseek-v4-flash.

🔹 Supports OpenAI ChatCompletions & Anthropic APIs.

🔹 Both mod­els sup­port 1M con­text & dual modes (Thinking / Non-Thinking): https://​api-docs.deepseek.com/​guides/​think­ing_­mode

⚠️ Note: deepseek-chat & deepseek-rea­soner will be fully re­tired and in­ac­ces­si­ble af­ter Jul 24th, 2026, 15:59 (UTC Time). (Currently rout­ing to deepseek-v4-flash non-think­ing/​think­ing).

🔹 Amid re­cent at­ten­tion, a quick re­minder: please rely only on our of­fi­cial ac­counts for DeepSeek news. Statements from other chan­nels do not re­flect our views.

🔹 Thank you for your con­tin­ued trust. We re­main com­mit­ted to longter­mism, ad­vanc­ing steadily to­ward our ul­ti­mate goal of AGI.

Your First API Call | DeepSeek API Docs

api-docs.deepseek.com

The DeepSeek API uses an API for­mat com­pat­i­ble with OpenAI/Anthropic. By mod­i­fy­ing the con­fig­u­ra­tion, you can use the OpenAI/Anthropic SDK or soft­wares com­pat­i­ble with the OpenAI/Anthropic API to ac­cess the DeepSeek API.

* The model names deepseek-chat and deepseek-rea­soner will be dep­re­cated on 2026/07/24. For com­pat­i­bil­ity, they cor­re­spond to the non-think­ing mode and think­ing mode of deepseek-v4-flash, re­spec­tively.

Invoke The Chat API​

Once you have ob­tained an API key, you can ac­cess the DeepSeek model us­ing the fol­low­ing ex­am­ple scripts in the OpenAI API for­mat. This is a non-stream ex­am­ple, you can set the stream pa­ra­me­ter to true to get stream re­sponse.

For ex­am­ples us­ing the Anthropic API for­mat, please re­fer to Anthropic API.

curl

python

nodejs

curl https://​api.deepseek.com/​chat/​com­ple­tions \ -H Content-Type: ap­pli­ca­tion/​json” \ -H Authorization: Bearer ${DEEPSEEK_API_KEY}” \ -d { model”: deepseek-v4-pro”, messages”: [ {“role”: system”, content”: You are a help­ful as­sis­tant.“}, {“role”: user”, content”: Hello!“} ], thinking”: {“type”: enabled”}, reasoning_effort”: high”, stream”: false }’

openai.com

Safeguarding Your Website — BigScoots

www.theolivepress.es

We’re check­ing if you’re a real per­son and not an au­to­mated bad bot. Usually, the captcha be­low will com­plete it­self. If it does­n’t, sim­ply click the check­box in the captcha to ver­ify. Once ver­i­fied, you’ll be taken to the page you wanted to visit.

If for some rea­son af­ter ver­i­fy­ing the captcha above, you are con­stantly be­ing redi­rected to this ex­act same page to re-ver­ify the captcha again, then please click on the but­ton be­low to get in touch with the sup­port team.

Framework Laptop 13 Pro: Intel Core Ultra 3 & LPCAMM2

frame.work

Finally, great bat­tery life in a Framework Laptop

20 hours

Netflix 4K stream­ing250nit bright­ness, 30% vol­ume, Windows 11

17 hours

Active web us­age

250nit bright­ness, 30% vol­ume, Windows 11

11 hours

Video con­fer­enc­ing250nit bright­ness, 30% vol­ume, Windows 11

7 days

Standby with­out charg­ing

Wi-Fi con­nected on Ubuntu

Intel® Core™ Ultra Series 3 proces­sors

The Framework Laptop 13 Pro runs on Intel® Core™ Ultra Series 3 proces­sors, un­lock­ing 20 hours of bat­tery ϟ life, up to 64GB of LPCAMM2 LPDDR5X mem­ory, and sup­port for up to 8TB of PCIe Gen 5.0 NVMe stor­age. It’s de­signed to stay re­spon­sive un­der sus­tained, heavy work­loads.

Power-efficient mem­ory, made up­grade­able

We’re among the first to pair Intel® Core™ Ultra Series 3 with LPCAMM2. A high-den­sity in­ter­poser en­ables LPDDR5X in a mod­u­lar form, de­liv­er­ing 7467 MT/s and high per­for­mance per watt with­out sol­der­ing it down.

A lap­top that you own

You can cus­tomize it,

Pick your ports with the Framework Expansion Card sys­tem and in­stall them di­rectly into your lap­top with­out re­ly­ing on ex­ter­nal adapters. The mag­net-at­tach Bezel lets you cus­tomize with bold or translu­cent color op­tions.

USB-C

USB-A

Audio Jack

DisplayPort

HDMI

MicroSD

SD

Storage - 250GB

Storage - 1TB

Ethernet

re­pair it,

A truly easy-to-re­pair lap­top that’s built to re­spect your rights. Just scan the QR codes, fol­low the guides, and re­place any part with a sin­gle tool that’s in­cluded in the box.

up­grade it.

When you’re ready for more per­for­mance, you can up­grade in­di­vid­ual com­po­nents in­stead of re­plac­ing your en­tire lap­top. Install a new Mainboard for gen­er­a­tional proces­sor up­grades, add mem­ory to han­dle heav­ier work­loads, or ex­pand your stor­age to in­crease ca­pac­ity or en­able dual boot­ing. The Framework Marketplace makes it easy to find the com­pat­i­ble parts you need.

Runs Linux. Really well.

(you can also use Windows 11 if you want)

We don’t just sup­port Linux; we live in it. Framework Laptop 13 Pro with Intel® Core™ Ultra Series 3 is our first Ubuntu Certified sys­tem. We seed de­vel­op­ment hard­ware and pro­vide fund­ing to a range of other dis­tros like Fedora, Bazzite, NixOS, CachyOS, and more to en­sure re­li­able sup­port.

A sen­sory up­grade

13.5″ 2880x1920 Touchscreen Display

A cus­tom 13.5″ 3:2 touch­screen dis­play with sharp 2880×1920 res­o­lu­tion gives you the ver­ti­cal space you need for cod­ing and pro­duc­tiv­ity. A 30 – 120Hz vari­able re­fresh rate keeps mo­tion smooth while op­ti­miz­ing power, and with up to 700nits of bright­ness and a matte sur­face, it stays clear across a wide range of light­ing con­di­tions.

A hap­tic touch­pad that beats your ex­pec­ta­tions

The large 123.7mm × 76.7mm Haptic Touchpad, pow­ered by four piezo­elec­tric ac­tu­a­tors, de­liv­ers con­sis­tent, high-qual­ity clicks across the sur­face. Feedback and ges­tures are fully tun­able, so you can set it up ex­actly how you want.

The key­board you love, now even bet­ter

With 1.5mm of key travel, the key­board de­liv­ers deeper, more tac­tile feed­back than most mod­ern lap­tops with­out in­creas­ing noise. A CNC alu­minum Input Cover Frame re­duces deck flex for a more solid and con­sis­tent feel. Available in mul­ti­ple ANSI and ISO lay­outs, in black, black with laven­der, and black with gray and or­ange.

Dolby Atmos® au­dio

The side-fir­ing speak­ers are tuned with Dolby Atmos® to de­liver clear, bal­anced au­dio on Windows, ideal for calls or mu­sic while you work.

Thin, light, and fully alu­minum

At just 15.85mm thick and 1.4kg, gain­ing dura­bil­ity does­n’t mean los­ing porta­bil­ity. The Top Cover, Input Cover, and Bottom Cover are now CNC ma­chined from 6063 alu­minum, in­creas­ing rigid­ity and dura­bil­ity.

296.63mm

Width

228.98mm

Depth

15.85mm

Height

1.4kg

Weight

Open source ecosys­tems

We’ve open sourced de­sign files and doc­u­men­ta­tion for many core com­po­nents and firmware on GitHub, giv­ing you the free­dom to mod­ify, ex­tend, or re­pur­pose them.

Respecting your pri­vacy

Privacy switches

Your pri­vacy is pro­tected at a hard­ware level, with phys­i­cal switches that elec­tri­cally cut off the we­b­cam and mi­cro­phones when­ever you need.

No crap­ware

We hate soft­ware bloat as much as you do. Our pre-builts ship with Ubuntu or stock Windows 11 plus the nec­es­sary dri­vers, and our DIY Edition lets you bring whichever op­er­at­ing sys­tem you’d like.

The choice is yours

Framework Laptop 13 Pro is avail­able pre-built with Windows or Ubuntu pre-in­stalled, or as a DIY Edition that lets you in­stall the op­er­at­ing sys­tem of your choice.

Upgrade, cus­tomize, and re­pair

Pick up new parts and mod­ules for your Framework Laptop 13 Pro.

Keep track of what we’re work­ing on with the Framework Newsletter.

ϟ

Testing con­ducted by Framework in April 2026 us­ing Framework Laptop 13 Pro tested with Intel® Core™ Ultra X7 358H Processor, Intel® Arc™ B390 graph­ics, 2.8K touch­screen dis­play, 32GB mem­ory and 1TB stor­age, with dis­play bright­ness set to 250nits, dis­play re­fresh rate set to 60Hz, speaker vol­ume as 30%, Dolby Atmos® dis­abled, and wire­less en­abled. Battery life tested by stream­ing Netflix 4K con­tent in the Netflix app on Windows 11 un­der Best Power Efficiency mode. Battery life varies by use and con­fig­u­ra­tion.

Laws of Software Engineering

lawsofsoftwareengineering.com

A col­lec­tion of prin­ci­ples and pat­terns that shape soft­ware sys­tems, teams, and de­ci­sions.

56 laws

Click any card to learn more

Laws of Software Engineering

lawsofsoftwareengineering.com

Organizations de­sign sys­tems that mir­ror their own com­mu­ni­ca­tion struc­ture.

Premature op­ti­miza­tion is the root of all evil.

With a suf­fi­cient num­ber of API users, all ob­serv­able be­hav­iors of your sys­tem will be de­pended on by some­body.

Leave the code bet­ter than you found it.

YAGNI (You Aren’t Gonna Need It)

Don’t add func­tion­al­ity un­til it is nec­es­sary.

Adding man­power to a late soft­ware pro­ject makes it later.

A com­plex sys­tem that works is in­vari­ably found to have evolved from a sim­ple sys­tem that worked.

All non-triv­ial ab­strac­tions, to some de­gree, are leaky.

Every ap­pli­ca­tion has an in­her­ent amount of ir­re­ducible com­plex­ity that can only be shifted, not elim­i­nated.

A dis­trib­uted sys­tem can guar­an­tee only two of: con­sis­tency, avail­abil­ity, and par­ti­tion tol­er­ance.

Small, suc­cess­ful sys­tems tend to be fol­lowed by ov­erengi­neered, bloated re­place­ments.

A set of eight false as­sump­tions that new dis­trib­uted sys­tem de­sign­ers of­ten make.

Every pro­gram at­tempts to ex­pand un­til it can read mail.

There is a cog­ni­tive limit of about 150 sta­ble re­la­tion­ships one per­son can main­tain.

The square root of the to­tal num­ber of par­tic­i­pants does 50% of the work.

Those who un­der­stand tech­nol­ogy don’t man­age it, and those who man­age it don’t un­der­stand it.

In a hi­er­ar­chy, every em­ployee tends to rise to their level of in­com­pe­tence.

The min­i­mum num­ber of team mem­bers whose loss would put the pro­ject in se­ri­ous trou­ble.

Companies tend to pro­mote in­com­pe­tent em­ploy­ees to man­age­ment to limit the dam­age they can do.

Work ex­pands to fill the time avail­able for its com­ple­tion.

The first 90% of the code ac­counts for the first 90% of de­vel­op­ment time; the re­main­ing 10% ac­counts for the other 90%.

It al­ways takes longer than you ex­pect, even when you take into ac­count Hofstadter’s Law.

When a mea­sure be­comes a tar­get, it ceases to be a good mea­sure.

Anything you need to quan­tify can be mea­sured in some way bet­ter than not mea­sur­ing it.

Anything that can go wrong will go wrong.

Be con­ser­v­a­tive in what you do, be lib­eral in what you ac­cept from oth­ers.

Technical Debt is every­thing that slows us down when de­vel­op­ing soft­ware.

Given enough eye­balls, all bugs are shal­low.

Debugging is twice as hard as writ­ing the code in the first place.

A pro­ject should have many fast unit tests, fewer in­te­gra­tion tests, and only a small num­ber of UI tests.

Repeatedly run­ning the same tests be­comes less ef­fec­tive over time.

Software that re­flects the real world must evolve, and that evo­lu­tion has pre­dictable lim­its.

90% of every­thing is crap.

The speedup from par­al­leliza­tion is lim­ited by the frac­tion of work that can­not be par­al­lelized.

It is pos­si­ble to achieve sig­nif­i­cant speedup in par­al­lel pro­cess­ing by in­creas­ing the prob­lem size.

The value of a net­work is pro­por­tional to the square of the num­ber of users.

Every piece of knowl­edge must have a sin­gle, un­am­bigu­ous, au­thor­i­ta­tive rep­re­sen­ta­tion.

Designs and sys­tems should be as sim­ple as pos­si­ble.

Five main guide­lines that en­hance soft­ware de­sign, mak­ing code more main­tain­able and scal­able.

An ob­ject should only in­ter­act with its im­me­di­ate friends, not strangers.

Software and in­ter­faces should be­have in a way that least sur­prises users and other de­vel­op­ers.

The less you know about some­thing, the more con­fi­dent you tend to be.

Never at­tribute to mal­ice that which is ad­e­quately ex­plained by stu­pid­ity or care­less­ness.

The sim­plest ex­pla­na­tion is of­ten the most ac­cu­rate one.

Sticking with a choice be­cause you’ve in­vested time or en­ergy in it, even when walk­ing away helps you.

The Map Is Not the Territory

Our rep­re­sen­ta­tions of re­al­ity are not the same as re­al­ity it­self.

A ten­dency to fa­vor in­for­ma­tion that sup­ports our ex­ist­ing be­liefs or ideas.

We tend to over­es­ti­mate the ef­fect of a tech­nol­ogy in the short run and un­der­es­ti­mate the im­pact in the long run.

The longer some­thing has been in use, the more likely it is to con­tinue be­ing used.

Breaking a com­plex prob­lem into its most ba­sic blocks and then build­ing up from there.

Solving a prob­lem by con­sid­er­ing the op­po­site out­come and work­ing back­ward from it.

80% of the prob­lems re­sult from 20% of the causes.

The best way to get the cor­rect an­swer on the Internet is not to ask a ques­tion, it’s to post the wrong an­swer.

crawshaw - 2026-04-22

crawshaw.io

I am build­ing a cloud

2026 – 04-22

Today is fundrais­ing an­nounce­ment day. As is the na­ture of writ­ing for a larger au­di­ence, it is a for­mal, safe an­nounce­ment. As it should be. Writing must nec­es­sar­ily be­come im­per­sonal at scale. But I would like to write some­thing per­sonal about why I am do­ing this. What is the goal of build­ing exe.dev? I am al­ready the co-founder of one startup that is do­ing very well, sell­ing a prod­uct I love as much as when I first helped de­sign and build it.

What could pos­sess me to go through all the pain of start­ing an­other com­pany? Some fel­low founders have looked at me with in­credulity and shock that I would throw my­self back into the fry­ing pan. (Worse yet, ex­pe­ri­ence tells me that most of the pain is still in my fu­ture.) It has been a gen­uinely hard ques­tion to an­swer be­cause I start search­ing for a big” rea­son, a prin­ci­ple or a so­cial need, a rea­son or mo­ti­va­tion be­yond chal­lenge. But I be­lieve the truth is far sim­pler, and to some I am sure al­most equally in­cred­u­lous.

I like com­put­ers.

In some tech cir­cles, that is an un­usual state­ment. (“In this house, we curse com­put­ers!”) I get it, com­put­ers can be re­ally frus­trat­ing. But I like com­put­ers. I al­ways have. It is re­ally fun get­ting com­put­ers to do things. Painful, sure, but the re­sults are worth it. Small mi­cro­con­trollers are fun, desk­tops are fun, phones are fun, and servers are fun, whether racked in your base­ment or in a data cen­ter across the world. I like them all.

So it is no small thing for me when I ad­mit: I do not like the cloud to­day.

I want to. Computers are great, whether it is a BSD in­stalled di­rectly on a PC or a Linux VM. I can en­joy Windows, BeOS, Novell NetWare, I even in­stalled OS/2 Warp back in the day and had a great time with it. Linux is par­tic­u­larly pow­er­ful to­day and a source of end­less po­ten­tial. And for all the pages of prod­ucts, the cloud is just Linux VMs. Better, they are API dri­ven Linux VMs. I should be in heaven.

But every cloud prod­uct I try is wrong. Some are bet­ter than oth­ers, but I am con­stantly con­strained by the choices cloud ven­dors make in ways that make it hard to get com­put­ers to do the things I want them to do.

These is­sues go be­yond UX or bad API de­sign. Some of the fun­da­men­tal build­ing blocks of to­day’s clouds are the wrong shape. VMs are the wrong shape be­cause they are tied to CPU/memory re­sources. I want to buy some CPUs, mem­ory, and disk, and then run VMs on it. A Linux VM is a process run­ning in an­other Linux’s cgroup, I should be able to run as many as I like on the com­puter I have. The only way to do that eas­ily on to­day’s clouds is to take iso­la­tion into my own hands, with gVi­sor or nested vir­tu­al­iza­tion on a sin­gle cloud VM, pay­ing the nest­ing per­for­mance penalty, and then I am left with the job of run­ning and man­ag­ing, at a min­i­mum, a re­verse proxy onto my VMs. All be­cause the cloud ab­strac­tion is the wrong shape.

Clouds have tried to solve this with PaaS” sys­tems. Abstractions that are in­her­ently less pow­er­ful than a com­puter, be­spoke to a par­tic­u­lar provider. Learn a new way to write soft­ware for each com­pute ven­dor, only to find half way into your pro­ject that some­thing that is easy on a nor­mal com­puter is nearly im­pos­si­ble be­cause of some ob­scure limit of the plat­form sys­tem buried so deep you can­not find it un­til you are deeply com­mit­ted to a pro­ject. Time and again I have said this is the one” only to be be­trayed by some half-assed, half-im­ple­mented, or half-thought-through ab­strac­tion. No thank you.

Consider disk. Cloud providers want you to use re­mote block de­vices (or some­thing even more lim­ited and slow, like S3). When re­mote block de­vices were in­tro­duced they made sense, be­cause com­put­ers used hard dri­ves. Remote does not hurt se­quen­tial read/​write per­for­mance, if the buffer­ing im­ple­men­ta­tion is good. Random seeks on a hard drive take 10ms, so 1ms RTT for the Ethernet con­nec­tion to re­mote stor­age is a fine price to pay. It is a good prod­uct for hard dri­ves and makes the cloud ven­dor’s life a lot eas­ier be­cause it re­moves an en­tire di­men­sion from their stan­dard in­stance types.

But then we all switched to SSD. Seek time went from 10 mil­lisec­onds to 20 mi­crosec­onds. Heroic ef­forts have cut the net­work RTT a bit for re­ally good re­mote block sys­tems, but the IOPS over­head of re­mote sys­tems went from 10% with hard dri­ves to more than 10x with SSDs.

It is a lot of work to con­fig­ure an EC2 VM to have 200k IOPS, and you will pay $10k/month for the priv­i­lege. My MacBook has 500k IOPS. Why are we hob­bling our cloud in­fra­struc­ture with slow disk?

Finally net­work­ing. Hyperscalers have great net­works. They charge you the earth for them and make it mis­er­able to do deals with other ven­dors. The stan­dard price for a GB of egress from a cloud provider is 10x what you pay rack­ing a server in a nor­mal data cen­ter. At mod­er­ate vol­ume the mul­ti­plier is even worse. Sure, if you spend $XXm/month with a cloud the prices get much bet­ter, but most of my pro­jects want to spend $XX/month, with­out the lit­tle m. The fun­da­men­tal tech­nol­ogy here is fine, but this is where lim­its are placed on you to make sure what­ever you build can­not be af­ford­able.

Finally, clouds have painful APIs. This is where pro­jects like K8S come in, pa­per­ing over the pain so en­gi­neers suf­fer a bit less from us­ing the cloud. But VMs are hard with Kubernetes be­cause the cloud makes you do it all your­self with lumpy nested vir­tu­al­iza­tion. Disk is hard be­cause back when they were de­sign­ing K8S Google did­n’t re­ally even do us­able re­mote block de­vices, and even if you can find a com­mon pat­tern among clouds to­day to pa­per over, it will be slow. Networking is hard be­cause if it were easy you would pri­vate link in a few sys­tems from a neigh­bor­ing open DC and drop a zero from your cloud spend. It is tempt­ing to dis­miss Kubernetes as a scam, ar­ti­fi­cial make work de­signed to avoid do­ing real prod­uct work, but the truth is worse: it is a prod­uct at­tempt­ing to solve an im­pos­si­ble prob­lem: make clouds portable and us­able. It can­not be done.

You can­not solve the fun­da­men­tal prob­lems with cloud ab­strac­tions by build­ing new ab­strac­tions on top. Making Kubernetes good is in­her­ently im­pos­si­ble, a pro­ject in putting (admittedly high qual­ity) lip­stick on a pig.

We have been mud­dy­ing along with these mis­er­able clouds for 15 years now. We make do, in the way we do with all the un­pleas­ant parts of our soft­ware stack, hold­ing our nose when­ever we have to deal with and try­ing to min­i­mize how of­ten that hap­pens.

This how­ever, is the mo­ment to fix it.

This is the mo­ment be­cause some­thing has changed: we have agents now. (Indeed my co-founder Josh and I started tin­ker­ing be­cause we wanted to use LLMs in pro­gram­ming. It turns out what needs build­ing for LLMs are bet­ter tra­di­tional ab­strac­tions.) Agents, by mak­ing it eas­i­est to write code, means there will be a lot more soft­ware. Economists would call this an in­stance of Jevons para­dox. Each of us will write more pro­grams, for fun and for work. We need pri­vate places to run them, easy shar­ing with friends and col­leagues, min­i­mal over­head.

With more to­tal soft­ware in our lives the cloud, which was an an­noy­ing pain, be­comes a much big­ger pain. We need a lot more com­pute, we need it to be eas­ier to man­age. Agents help to some de­gree. If you trust them with your cre­den­tials they will do a great job dri­ving the AWS API for you (though oc­ca­sion­ally it will delete your pro­duc­tion DB). But agents strug­gle with the fun­da­men­tal lim­its of the ab­strac­tions as much as we do. You need more to­kens than you should and you get a worse re­sult than you should. Every per­cent of con­text win­dow the agent spends think­ing about how to con­tort clas­sic clouds into work­ing is con­text win­dow is not us­ing to solve your prob­lem.

So we are go­ing to fix it. What we have launched on exe.dev to­day ad­dresses the VM re­source iso­la­tion prob­lem: in­stead of pro­vi­sion­ing in­di­vid­ual VMs, you get CPU and mem­ory and run the VMs you want. We took care of a TLS proxy and an au­then­ti­ca­tion proxy, be­cause I do not ac­tu­ally want my fresh VMs dumped di­rectly on the in­ter­net. Your disk is lo­cal NVMe with blocks repli­cated off ma­chine asyn­chro­nously. We have re­gions around the world for your ma­chines, be­cause you want your ma­chines close. Your ma­chines are be­hind an any­cast net­work to give all your global users a low la­tency en­try­point to your prod­uct (and so we can build some new ex­cit­ing things soon).

There is a lot more to build here, from ob­vi­ous things like sta­tic IPs to UX chal­lenges like how to give you ac­cess to our au­to­matic his­tor­i­cal disk snap­shots. Those will get built. And at the same time we are go­ing right back to the be­gin­ning, rack­ing com­put­ers in data cen­ters, think­ing through every layer of the soft­ware stack, ex­plor­ing all the op­tions for how we wire up net­works.

So, I am build­ing a cloud. One I ac­tu­ally want to use. I hope it is use­ful to you.

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.