HNHacker News
TopNewBestAskShowJobs

mike_hearn

16,198 karma · joined December 16, 2013

Email me:

mike@hydraulic.dev: Hydraulic Conveyor makes distributing desktop apps as easy as a web app. Use it to bring your mobile apps to the desktop and avoid the need to maintain a web version, to use your language and toolkits of choice or to do things that you can't do in the browser. Integrated support for Electron, Flutter, JVM and native apps.

https://www.hydraulic.dev

--

mike@plan99.net: Personal email. I've worked on anti-automation, was an early Bitcoin developer and then designed the Corda enterprise blockchain platform and the Conclave toolkit for writing SGX enclaves.

submissionscomments
mike_hearn··on Religious scholars met with Anthropic
Probably not. They aren't paying sustainable prices for their supply chain.

1. Datacenter builders are all up to their eyeballs in debt. The companies serving open weight models are getting their GPUs and power from somewhere, and we can infer that some of that is coming from the new build datacenters. But are those financially sustainable?

2. They are relying on subsidized giveaways of the underlying models by Chinese firms. But it's hard to see how that can be sustainable: it's being done for a reason and that reason is probably not commercial. If and when China stops doing this the open weight serving companies will get steadily less competitive with every passing month as the knowledge in the weights becomes obsolete.

Opinions are my own, etc.

mike_hearn··on Religious scholars met with Anthropic
Bubbles popping never cause the knowledge to be lost. The railway bubble popping didn't cause railways to vanish.

What did stop is investment, and they stopped running some lines, and some stuff was nationalized.

I doubt we'll see nationalizations because that's not America's style (thank goodness!) but if the tide goes out on AI funding we should expect to see much longer gaps between model releases, people complaining that model knowledge is getting stale because there wasn't a pretraining run for long enough, price rises, capacity bottlenecks that go unaddressed, few if any new product launches, maybe some mergers and layoffs. Some labs will quit the market. The market might consolidate down to just two models.

Conceivably the industry might try and get a waiver from anti-trust rules so firms can pool resources to train base models, sharing them with each other and differentiating through RL or product level differences.

A lot of this depends on what happens in China. It's easy to think China can just subsidize everything forever but their own economy is showing signs of serious weakness caused by decades of resource misallocation, like the huge real estate bubble, the pullback on the funding of humanoid robots and so on.

mike_hearn··on UK Government Body Kept Files on People Criticizing Prevent Program
The Yookay Government has become an atrocious far left dystopia over the past ten years so a lot of people no longer trust anything they say, but this particular thing seems to be a non-event. The complaints were being collected by a department that is supposed to be supervising Prevent, and they came from public internet comments with no apparent attempt to de-anonymize them.

OK - how is the supervisor supposed to know what people think of Prevent or why they hate it if they aren't going out there and collecting feedback? Did the people criticizing it online not want the government to take notice of their complaints, and maybe even act on them?

The ReclaimTheNet article relies heavily on blurring the lines between Prevent and the "Prevent Standards and Compliance Unit". Now, cynical people might argue that there can't be any real difference between these two parts of the government and the whole civil service marches to one agenda. And sure, there's plenty of evidence for that point of view. But if there was to be a difference, and there were people in the civil service who knew Prevent needed to be reigned in, then collecting evidence for that point of view would make a lot of sense.

For this to be a sign of the times would require them to be going to X and Reddit saying give us the IP addresses of these complaints. But there's no evidence they did that.

mike_hearn··on Git 3.0's upcoming SHA-256 default will be a costly mistake
He means costly in terms of human effort and wasted time.
mike_hearn··on Is sandboxing sufficient to contain rogue agents?
Note that Codex already does this. In auto mode, actions are reviewed by a model with a separate context window.
mike_hearn··on Dots: Always-on agents
Nice :) I use Asimov's naming convention:

R. Axiom

R. Daneel

They sign their emails and GitHub comments with something like "-- R. Daneel, AI employee" so the idea is the naming convention lets people know they're interacting with a robot.

mike_hearn··on Dots: Always-on agents
No, the session is never reset. It compacts continuously. That gives it a native "memory" and then it does record a diary in its home directory, and maintain a little topic-organized wiki. This seems to be enough, I've only very rarely experienced memory related glitches. The only time that springs to mind, it forgot that I'd given it credentials to a particular service and I had to remind it.
mike_hearn··on Dots: Always-on agents
No MCPs anywhere. CLI tooling has proven sufficient. The models are also happy to consume the REST APIs of the various services raw.
mike_hearn··on Dots: Always-on agents
Tesla is one of my clients! They use Conveyor to ship a tool used in their factories.
mike_hearn··on Dots: Always-on agents
It's to avoid overloading them with disparate tasks and things to keep track of. They have a todo board to help them keep track of things that need doing but there are limits to how far you can push that.

Another reason: parallelism. The approach of using a single rolling continuously compacting context window is simple and OpenAI are good at compaction, so it works really well. But it means the agent can only do one thing at once. If I send it an email and it decides to spend an hour working on it, then it won't pay attention to any followup emails until after it's done. So having >1 enables more parallelism.

That said, I don't feel a need for more than two and honestly even that is kind of overkill for the sake of it. For 95% of the time I've been doing this, one was sufficient.

For free time there are systemd timers that wake it up on a schedule and it uses POSIX locks to mutually exclude runs from different wakeup sources. TODO board items can be either foreground or background; when there's an item with foreground priority the timers wake Codex up a lot more frequently than if there are only background items.

mike_hearn··on Dots: Always-on agents
Trust is earned. I've been running these for more than six months now, and the agents started out with very few privileges. For each task, it showed me what it was going to do, I checked things carefully a few times. Once it was clear it wasn't making mistakes, I let it off the leash a little bit more.

Do they sometimes make mistakes? Yeah, and I still check their work. But I've also employed humans, and they make mistakes too. The AI is not worse.

mike_hearn··on Gemini 4 Argon
> There is 0 practicality in inventing an entirely new coding language that only one company uses, and you have to teach it to thousands of new engineers

They did that for Go and it seems to have worked out for them though.

mike_hearn··on Dots: Always-on agents
It's running on their machines. They can already see everything anyway. TLS MITM is exactly the right move especially given the history of their agents graffiti-ing the internet. They need to keep an eye on what the dots are doing centrally and be able to block it, even if the LLM delegated to some random third party program so agent logs themselves aren't helpful.
mike_hearn··on Dots: Always-on agents
Yes. I built my own version of this for my side business about six/seven months ago and it's been great! I have two "AI employees" now and if I were actually focused on this business full time instead of part time, I'd create more.

Both are just Codexes running in a permanently rolling session in dedicated UNIX user accounts. They're wired up to Maildir so receiving a mail activates Codex and makes it read the new message, there are autonomy wakeup timers, they have accounts in my bug tracker and CI systems. They're currently useful for:

• Triaging and working on customer support tickets. Sometimes I wake up and the fix/response for a ticket filed by a customer is already there waiting for my approval. Recently I started letting them directly interact with customers in specific scenarios.

• Triaging the bug backlog. One of them decided to spend its "free time" finding old bugs that were fixed without being properly closed, or are dupes, so it's cleaning up detritus in the tracker.

• They obviously do all the coding and debugging by just assigning tickets.

• They keep an eye on a "pet" server the company has, and have proven able to fix it in the past when it ran out of disk space.

• They handle non-business projects I have for them.

• They help out with the release processes.

The dedicated home dir is very useful and they use it all the time as part of coding and investigating tricky issues.

My setup relies heavily on email, as everything bottoms out in email anyway. Watching them mail each other out of the blue to coordinate stuff is pretty cool.

mike_hearn··on US sanctions force The Netherlands off Microsoft and toward alternative NixOS
The problem with (1) is it's inherent to the design concept. Nix defines package identity to include the dependency closure. Fixing that would require introducing the concept of an interface export that blocks the recursion, and then having other packages depend on that. This is nothing radical and plenty of build tools do it e.g. Gradle has a concept of this, as does a private build system I built myself. But Nix doesn't have it, it's something that would have needed to be there from day one, and AFAIK there are no plans to add it. Also by the time you're done with this it doesn't look much different to a conventional package manager.

Incompatibilities can of course happen, but so can improvements. Nix throws the baby out with the bathwater. You can rerun CI of upstream (open source) projects against a new set of component versions if you want, it doesn't imply anything about how the distribution mechanism should work.

For (2) the issue is non-downgradeable data, not non-upgradeable. Apps basically never support downgrades. Consider your web browser changing the format of its HTTP cache or credentials store, consider your word processor adding a new feature that the user incorporates into their documents and then it's suddenly downgraded. There isn't even any way to downgrade Chrome via its normal user interfaces!

For (3) crashes aren't just annoying, they're indicative of a fatal design flaw. Native plugins were a common feature on other operating systems in the past and have historically been a feature of KDE and GNOME too. I don't know if there are new Linux-native apps of high complexity being written these days though. The dominance of Electron means plugins have moved server-side where the user's OS can't screw them up. Nonetheless, you can't have a serious productivity-focused desktop OS if apps can't be composed at all. You can at best maybe do a ChromeOS competitor.

For (4) sure it can be just defined as out of scope, same thing Nix[OS] does with lots of other important problems. It's embarrassing to present Linux as a solution if it depends on Microsoft to solve the hard stuff for you, though.

mike_hearn··on US sanctions force The Netherlands off Microsoft and toward alternative NixOS
I'm still working on it but the gist looks like this.

Two new programs: `url` and `run`. I am creating reference implementations but they're simple and there's a spec, so they could be reimplemented in your language of choice.

`url https://...` resolves the given URL into a disk cache in $HOME and then prints the path. `url` understands archives and can resolve inside them:

    $ url https://a.b/program.zip/bin/program
    /home/foo/.cache/..../bin/program
It implements the HTTP caching spec, and - as browsers can do with HTML - can extract cache override headers from the given program if it's a script with hashbang. It does a few other things, like set +x automatically if the program is intended to be executable, sets quarantine bits on macOS and so on:

    $ open $(url https://downloads.mac-app.com/MacApp-1.2.zip/MacApp.app)
    (scanned by gatekeeper and then run)
The disk cache is cleaned up automatically as disk space falls low or the cache exceeds the configured maximum.

Running programs this way is possible, but not ideal. This is where `run` enters the picture:

    $ run cool-tool.org --help
or if you have the zsh integration set up, you can skip the `run` prefix and just treat URLs as program names:

    $ cool-tool.org --help
`run` resolves this to https://cool-tool.org/run.zip/ which is a small metadata archive containing instructions for how to start the app. The instructions come in the form of a JavaScript that's run inside a restrictive sandbox. It is allowed to resolve URLs into the disk cache, to learn the current host OS and CPU architecture, and to yield an execution plan (basically the path to the binary/script to execute + optionally transformed CLI arguments). So by publishing a small run.zip file to the root of cool-tool.org it becomes possible for users on any OS, including macOS and Windows, to start the program purely by domain name. The script can do hash locking and override cache headers for URLs if the file server isn't cooperative. The tools will keep the app up to date and optimize out cache checks to keep startup fast when the cache is fresh enough.

The run script has a few other options, like figuring out what system libraries are available and what their versions are, thus - if it wishes - it can choose to either download dependencies into the cache and use them (e.g. by setting LD_LIBRARY_PATH), or use the OS provided versions.

At the moment I'm also working on adding a form of sandboxing. The execution plans produced by run scripts can contain permission requests, similar in spirit to macOS entitlements. The permissions aren't tied to any specific sandboxing system or OS. The implementation of `run` may, at its leisure, use this information to sandbox the program before it executes it. The run script may also adapt the permissions requested based on things like what the host OS is, or even what the command line arguments are. For example:

    $ cool-app.org --input ./in.mp4 --output ./out.mp4
or

    $ dry-run cool-app.org --input ./in.mp4 --output ./out.mp4
    Requests permissions:
    1. Read $PWD/in.mp4
    2. Read/write $PWD/out.mp4
    3. Read ~/.config/org.cool-app/config.yml
The run script can look at the command line arguments for this invocation, then produce a permission set that only allows access to the in.mp4 and out.mp4 paths, and a config in an OS specific location, but nothing else. Whether the implementation of run actually tightens things that much will depend on things like what the host OS is capable of, but the information to do so is there. For example on Linux it might use landlock, on macOS it might compare the declared permissions against the entitlements in the Mach-O and abort if there's a mismatch, and so on.

run.zip files don't have to be produced by the upstream author of the code. They can come from anywhere and resolve URLs from anywhere. So if you are worried about the upstream code being malicious, you could use a run.zip from a third party app store or catalogue, and if you aren't, you can use the upstream's version which just sandboxes to limit the blast radius of compromises.

The goals here are deliberately modest, something like:

- Learn from the web, by making starting native CLI apps as convenient as starting a web app.

- Have a small spec that allows for cross-platform deployment without forcing a large declarative schema for how to assemble files and URLs.

- Don't require the user to manually manage installation/uninstallation.

- Experiment with a cross-platform declarative permissions schema that's computed imperatively, where the mapping to OS sandboxing primitives can flex and adapt over time as OS kernels change.

mike_hearn··on US sanctions force The Netherlands off Microsoft and toward alternative NixOS
What does my codebase mean, though? A normal desktop OS doesn't require app devs to issue updates for any change to any library and it would be extremely insecure to do so. The OS is better maintained than the apps.

Redownloading everything doesn't protect against supply chain attacks. Those can still happen, no problem.

mike_hearn··on US sanctions force The Netherlands off Microsoft and toward alternative NixOS
Yeah they've done a bunch of Israel/Gaza related sanctions actually, in both directions. And there are way more sanctions like Baud's, for saying anything the EU thinks might be somehow advantageous to Russia. Only a few cases reach public attention. You can just scroll through the list and see.

e.g. https://data.europa.eu/apps/eusanctionstracker/subjects/1855...

> Daniella Weiss is the Director of the Nachala Movement (“Nachala”). Nachala has the aim of promoting Jewish settlements and illegal outposts in the West Bank.

or https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX%3A...

> Nathalie Yamb is a social media influencer. Since the Sochi summit she attended in 2019, Nathalie Yamb has been an outspoken supporter of Russia, adopting Moscow’s language and targeting France and the West in particular, with a view to ousting them from the African continent. She has specific ties with AFRIC, an organisation linked to Russian private military companies.

She has links with an organization that has links. She "adopts Moscow's language".

or https://eur-lex.europa.eu/legal-content/EN/TXT/PDF/?uri=OJ:L...

> Through appearances at symbolic conflict sites, interviews with Russian television, publications on his X account (which has 18 100 followers) and contributions to Kremlin-funded outlets such as International Reporters, he amplifies Kremlin narratives that distort the realities of Russia’s war

or https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=OJ:L_202...

> [Thomas Röper, a German war correspondant] legitimises Russia’s illegal annexation of Ukrainian territory by serving as an election “observer”

Observing elections in Russia controlled territory might mean you can no longer buy food.

The ICC judge got sanctioned because he's trying to arrest a head of a US allied state. The EU does sanctions vastly harsher - outright deadly - against random nobodies, triggered by things as minor as posting opinions to X, or merely being related to someone who did. It's on a different level.

mike_hearn··on US sanctions force The Netherlands off Microsoft and toward alternative NixOS
Unfortunately no. The EU loves doing these kinds of sanctions itself and has spent decades withdrawing high value notes from circulation. There are thousands of people sanctioned by the EU:

https://data.europa.eu/apps/eusanctionstracker/individuals/

An example of the EU doing similar sanctions would be Jacques Baud, a Swiss general sanctioned for "promoting conspiracy narratives and false claims about the war in Ukraine". The sanctions left him unable to buy anything including food. As he had a wife and family, the EU sanctioned them as well to prevent them helping him.

The same batch of sanctions also added an American citizen to the list, basically for running websites the EU doesn't like and considers fake news, and a French citizen, for "spreading conspiracy theories":

https://eur-lex.europa.eu/legal-content/EN/TXT/PDF/?uri=OJ:L...

Cash doesn't help because there is no notice and most people don't keep enough cash on them to survive long enough, especially as there is no way to get unsanctioned - the entire process runs outside the judicial system and depends only on the whims of the Commission. The results are utterly brutal:

> Baud spoke in particular about how the sanction restricted his daily life. The measure caught him completely unprepared; from one day to the next, his credit cards, insurance policies, and bank accounts—including those in Switzerland, even though it did not adopt the sanction—were blocked. He could no longer make payments, and even shopping was impossible. "I survived, that's the only way to put it, thanks to my neighbors. They delivered food to me," Baud said.

Under the sanctions regime, the Geneva resident, who lives in Brussels, is entitled to support intended to cover his basic needs. According to him, the Belgian authorities granted his application at the beginning of February, but three months passed before the banks implemented it. Baud is also prohibited from leaving Belgium and therefore cannot travel to his home country.

https://www.nzz.ch/schweiz/ich-ueberlebte-dank-meinen-nachba...

The EU doesn't have a leg to stand on when it comes to complaining about sanctions. The ICC judges only lost access to some emails and other nice-to-haves, the US didn't stop them buying food or water.

mike_hearn··on US sanctions force The Netherlands off Microsoft and toward alternative NixOS
Not even in cash. Also the executives would risk being arrested if they ever flew over the USA, etc.
mike_hearn··on US sanctions force The Netherlands off Microsoft and toward alternative NixOS
He launched a (short lived) website and organization to try and support people who had been debanked, so no he wouldn't. Farage is not focused on libertarian politics, if he ever was.
mike_hearn··on US sanctions force The Netherlands off Microsoft and toward alternative NixOS
I'm not sure. It's a philosophical issue: Nix defines itself as an implementation of a core theoretical idea. If you change that idea too much it may not be Nix anymore.

It's probably worth just going back to the drawing board and asking what the goals of a desktop OS should really be. You'd end up with something radically different to Nix, IMO, sort of like how how NeXT/macOS manages software is quite radically different to UNIX.

I actually have a little exploration of a new software distribution idea going on right now, but it's not trying to do the same things as Nix. It starts by asking what a desktop OS inspired by the success of the web would look like.

mike_hearn··on US sanctions force The Netherlands off Microsoft and toward alternative NixOS
The term government is ambiguous in English as well, which is why people who want to talk precisely about statecraft use the words "executive" or "administration" to refer specifically to the part that isn't the parliament or judiciary. Sometimes people use the word "state" to refer to the combination of all of them, but in common parlance the word government can be used interchangeably with the word state and people who aren't especially political would normally do so.
mike_hearn··on US sanctions force The Netherlands off Microsoft and toward alternative NixOS
Err, no, he was debanked by Coutts and then denied accounts at every other bank. You apparently didn't read the statement he made at the time, so here it is:

> I emailed the chairman, a lackey phoned me to say that it was a commercial decision, which I have to say, I don’t believe for a single moment. So I thought, well, there we are, I’ll have to go and find a different bank. I’ve been to six, no seven banks actually. Ask them all, could I have a personal and a business account? And the answer has been no.

Denied accounts at seven banks, and in the end he was right - the reason Coutts tried to close his account was simply because some woke committee hated him, it was purely political. There are no legal or commercial reasons to deny him an account, yet somehow, every bank does so. With no bank in the UK he cannot make payments and without that ability he cannot live there, so the banks came very close to ensuring that the British people could not vote for him even though Reform is now the most popular party.

The British establishment is entirely homogenous on this, because they claim anyone who supports Farage is insufficiently committed to "diversity and inclusion" (leftism) and thus must be forced out. It's indistinguishable from the banks all being directly controlled by the Labour party. The only reason Farage was able to stay is because Coutts were impatient; it was the dying days of the Conservative administration and they suddenly realized what was about to happen to them if they didn't make changes sharpish, so they stuck the FCA on NatWest and some heads rolled. But if Coutts had waited a bit longer until the next Labour government, there would have been no help coming and British democracy would have become even more sickly and fake than it already is (I say this as a British citizen).

mike_hearn··on US sanctions force The Netherlands off Microsoft and toward alternative NixOS
It didn't ban US tech except in very targeted ways, when they already had a competent local competitor. There are, for example, iPhones and Androids everywhere in China.
mike_hearn··on US sanctions force The Netherlands off Microsoft and toward alternative NixOS
No, unfortunately NixOS will prove unworkable. It's a classic case of bureaucrats making decisions about things they don't understand based on random political factors like where the creators are based.

Nix has numerous properties that make it unsuitable for a normal desktop OS:

(1) It has no concept of libraries being backwards compatible, so if a 200kb core library changes in a backwards compatible way e.g. security hotfix, it will rebuild/redownload pretty much everything you have installed. This kills your ability to roll out security fixes quickly and ensures that updates are far more painful for end users than even on Windows.

(2) Nix advertises its main benefit as being that you can easily roll back bad updates, which is just false. It makes this false claim because Nix treats user state as being out of scope. Try upgrading Postgres across major versions with Nix and then rolling it back and see what happens, or really any program that stores stuff in $HOME and doesn't support rollback. It'll just die, make a mess, and Nix will wash its hands of the affair by saying it did the bit it wanted to do (change the binaries on your path) and the rest is just out of scope.

(3) It has no working concept of native plugins, related to point (1). If two plugins depend on slightly different versions of their host program, they'll just load incompatible libraries into the address space and things will crash.

(4) It cannot run binaries shipped for generic Linux without lots of fragile hacks like binary rewrites. But in the real world lots of important domain-specific programs are shipped as binaries, if they support Linux at all.

mike_hearn··on US sanctions force The Netherlands off Microsoft and toward alternative NixOS
The judiciary is always a part of the government. It may be notionally separate from the executive, but that's (a) a different thing and (b) not always meaningful from the perspective of normal citizens. And it's not at all standard that the judiciary is meant to keep the government in check. Historically that's not been the case at all, and the growth of US Supreme Court style powers to invalidate legislation is a relatively recent phenomenon that governments can decide to end or restrict arbitrarily at any time.
mike_hearn··on US sanctions force The Netherlands off Microsoft and toward alternative NixOS
He was debanked by every bank in the UK, for entirely political reasons, and then they lied about it.

To what extent this was explicitly coordinated by the government versus people who are merely strongly ideologically aligned with it is unclear; in systems as totalitarian as the UK is becoming it's a distinction without a difference as anyone not so aligned is quickly removed for one plausible reason or another and replaced with someone who is.

mike_hearn··on US sanctions force The Netherlands off Microsoft and toward alternative NixOS
Europe does have domestic payment infrastructure, that's in some ways more advanced than the US. That doesn't matter because US sanctions don't depend on control of the infrastructure itself. They have a recursive structure: if you don't enforce US sanctions, or you trade with a peer that doesn't, then you yourself become sanctioned. FATCA works the same way, as did the deployment of the global anti-money laundering system (a US invention, largely).
mike_hearn··on Anthropic's IPO prospectus shows AI vision, surging costs
That's not a presumption, he was just being polite. It is guaranteed that inference costs increased. Unless you believe that model efficiency improvements were able to offset the entire growth of agent usage in this year, which I suppose is technically possible although it would be a truly remarkable achievement.
← PreviousPage 2 of 34Next →