Hacker Newsnew | past | comments | ask | show | jobs | submit | WhyNotHugo's commentslogin

Hosting in GitHub is a terrible approach for these kind of projects, I don't get why this is the norm when the outcome is so often the same.

It's because slews of these emulators are vibecoded and the maintainers don't have much experience, if any. All of the serious efforts host their own code.

Every word in that statement is key for it to be true.

For example, if they screen-scrape locally and extract/collect metadata, then the statement is true technically true. I'm sure you can think of many other subtle variations of the truth where the statement is not false but still misleading.


> Not sure why you'd vibe-code a new VPN protocol, double ratchet or otherwise, when you can just take WireGuard and make a new transport for it.

Why TFA explains it, it's also in the title: "stealth". WireGuard is trivial to detect and block, and has no aspirations at being stealth.


He literally acknowledged that:

> WireGuard by itself is not a stealth VPN, but the things that make a VPN "stealthy" are all things you'd layer on top of a WireGuard design, not thread through the middle of it. A datagram-based protocol can run under any obscured transport.


Please read the full comment before replying.

You use a decider model which reads your prompt and picks the right reasoning level.

But which effort level should I use for the decider model?

(I think there's at least some evidence that it is difficult for decider models to predict the complexity of a task ahead of time with any level of reliability.)


Himitsu's ssh-agent does the same, and if you use some agent that uses a secret-service backend, you'd get the same result.

It's mostly the default ssh-agent that has a different security model.


> I'm surprised their work was ever MIT-licensed instead of GPL.

The intent was for their work to be usable on non-GPL distributions and OSs (including the BSDs).

The new licence is pretty restrictive — proprietary platforms will just regurgitate it with LLMs, but other open ecosystems will have to re-invent things from scratch.


sudo.rs is a really weird direction for an evolution — it re-implements a complex piece of security dropping some arbitrary choices but keeping it pretty complex. It has the exact same security model. I honestly can't understand the appeal.

If you want something similar but simpler, go for doas.

If you need all the features in sudo, keep using sudo.

If you want to try new security models, try s6-sudo, or any other of various tools out there.

sudo-rs keeping the same name is actually a worse breakage — because it doesn't have the same API as sudo (as described by op), but has the same name and pretends to be a drop-in replacement while also not being a drop-in.


I like this comment. Try something that's smaller (yet still minimal and complete) or stick with the devil we know, sudo. Not ideological; practical.

> I honestly can't understand the appeal.

Virtue signaling.


I fail to see how the term virtue signaling applies to what you highlighted, care to elaborate?

Rust rewrites of existing rock stable applications is only done for performative reasons as there are no merits.

Sudo may not be as “rock stable” as you suppose. The sudo-rs project has discovered a number of exploitble bugs in sudo that had existed for years.

And remember that sudo was itself a replacement for earlier tools like su. It has no special claim to be the one and only tool for the job.


And pimp up my CV kind of stuff.

The virtues being signaled are trust, reliability, and generosity. The mechanism is rust-washing. Like greenwashing, rust-washing has the appearance of and takes credit for the virtues without actually delivering on them.

People who work at Facebook and complain about this strike me as incredible naive. They work for the devil in exchange for huge sums of money, but are then shocked that the devil partakes in devious acts.

Neither leaving in protest nor staying would really change much. As long as someone is willing to do the dirty work, it'll continue to get done.


A lot of banks are dropping support for making transfers from their regular webapp. AFAIK, in some countries a total of zero banks support this.


In Russia, all banks I tried, are usable via web app (because smartphone apps live only 1-2 months before they are detected and removed from app stores). The disadvantage of a web app is that it is not always-on, doesn't allow tracking users are well as a real app, and cannot display advertisement notifications.


EU regulations require banks to require confirmation in an app with device and app integrity verification. They don't specify what that means but they have to do it. SMS 2FA is temporarily allowed for the transition period.

Apps are not required to use the Play Integrity API or a similar attestation API. The details of what they're required to do are unspecified and open ended. Many are interpreting it as meaning they use the Play Integrity API and we have to convince each one to permit GrapheneOS via the Android attestation API. It's not good and we would greatly prefer if this wasn't happening even if we were managing to convince most apps to permit GrapheneOS.


I'm don't see "allow GrapheneOS" as a great difference: the bank is still only permitting transactions on devices controlled by a third party and not by the owner. I don't want to change the third party that controls the device. I want to use my own device.


I dislike the idea of these separate tools being blended like this. ty is currently perfectly usable on non-uv projects. uv has *a lot* of opinionated quirks, its custom lockfile lockfile, and other nuances which many of us dislike — ty being a separate tool works fine with plain pip plus any other dependency manager (e.g.: pip-tools).

Of note though, ty doesn't NEED to be integrated into uv, nor vice-versa; keeping them as standalone tools seems most natural.


This shouldn't be surprising. Astral has wanted to create lock-in with uv for years and obviously they'll want to bring everyone into their "ecosystem" as much as possible. Stand by for more divergences from main python or use of their "market" capture for leverage over it.


Lock in on uv isn't a terrible thing if you consider the abysmal state of Python tooling


It's not something I really relate to, having working on a fairly large project with significant dependencies that is used as both a library and an application. I see uv often used just to try to paper over bad dependency and compatibility management, which ends up being self-reinforcing. I guess if it's being used strictly for final deployment, sure, but that doesn't (shouldn't) remove the need to pay attention. It's hard for me to see it as anything but an attempt to eventually make the state of Python tooling be "everything breaks, unless you use uv by Astral™"


So what you're saying is, "Python tooling isn't bad because I understand all the quirks"


Maybe? I still don't really fully understand what issues people had with it unless they'd only ever used the system python installation for everything.


I found Python tooling completely ok before uv. I quite liked it when it was rye, the features are good, and they’re better now in uv no question. But ultimately I was getting everything I needed using asdf to install python versions and then python -m venv to create virtual environments. Then I’d activate and just use pip.

The uv workflow is better but if the day comes when it becomes a problem due to astral lock-in or whatever may happen it’s ok (as long as those old tools exist..)


Main python should move faster on standardizing fixes to its abysmal package distribution scheme, then. Nobody is trying to replace cargo.


uv just turned 3, so "years" feels like a stretch. And I think lock-in is not and has never been a goal of the project. uv generally bends over backwards to conform to Python packaging standards because the people who work on uv also tend to work on those standards. The places where it doesn't (like uv.lock) are because the standards can't express exactly the things uv wants.

(Note: I work on both uv and Python packaging standards.)


To what end? Do they make money off of it somehow?


Especially now that OpenAI acquired Astral


A implies B does not mean B implies A too. You can use ty separately, this isn't stopping that, but it is useful for uv check to use ty together.


Projects that use ty for its type checking but something else than uv for managing dependencies are probably in a very tiny minority of users.


but there's probably lots of projects that use uv, but not ty.


I'd imagine that, for a substantial percentage of these, part of it is to avoid negotiating and bargaining over an additional tool in your CI arsenal, especially in bigger corporate environments where these sort of conversations are dragged through layers of non-technical middle management.


Ty isn't a compelling option. If you want support for dynamic libraries, mypy is king. If you want speed and strict conformance, Pyrefly and Zuban are better.

Ty's original pitch was that it would have strong inference and be useful for gradually typing existing, untyped codebases, but AI made that moot. Adding types to existing code is now trivial.


I think part of ty's pitch is also that it's very simple to set up. I think only Pyright compares in this regard. I tried Pyrefly once and recall it being a bit more involved to start using.


They're all CLI tools and they all support LSP. The only setup advantage here is Pylance's, by virtue of shipping with VS Code. Other tools take two clicks to enable, plus or minus typing the tool's name into a search bar.


>If you want speed and strict conformance, Pyrefly and Zuban are better

Not sure if that's true.


Pyrefly and Zuban are faster. Pyrefly and Zuban use less memory. Pyrefly and Zuban score higher on the type system conformance test.

Use whatever tools you want, but don't kid yourself. There's a reason Google adopted Pyrefly.


Where is your evidence?


And the article says it won’t be automatically installed, so it’s only there for people that want it.


> keeping them as standalone tools seems most natural

It's natural to us, purists, but I doubt people care. Everyone wants a single tool that allows them to `uv check` and `uv run` in every project without having to install anything.


You have to install uv. Which isn't even present in many distributions.


If that's a hassle, imagine how much more of a hassle it is to install uv and ty and ruff.


Once you’ve installed uv, adding ruff and ty is trivial. Installing uv is the only hoop you need to jump.


Is it that big an inconvenience? Even if it were included, most software that’s included with a distro is stale the day it’s released.


Software isn't raw milk


It depends. A lot of popular software is relatively new and is subject to frequent upgrades: the rust ecosystem, uv, and mise to name a few. Even the distro’s own Python, Ruby, and Java runtimes are rarely used for software development.


Do you have any stats on that?

Are they rarely used because most software runs on even older versions?


No, it’s because containers.


[flagged]


Old timer here: uv is not the first opinionated tool to manage Python packaging. It is build learning from other tools right and wrongs. I now use uv for everything because its quirks are less disruptive than quirks from previous tools that I also tried and disliked for being a bit too much for a very small gain.

What you call "dumpster fire", I call "steps towards uv", maybe even better tools in the future.


The only major opinionated tools that were in use prior to uv were Conda, Pipenv and Poetry (- ignoring pip here, as it's mainly a package installer). None of them contributed towards PEP 518 (Conda significantly predated it, and Pipenv actively created a competing format even though the PEP already was accepted).

Most of the lessons that make uv good can be directly traced back to Cargo (which in turn can be traced back to Bundler). The main portions from the Python side that helped it have a good foundations were standards work (PEPs), none of which were driven by the people behind any of the three "major" package managers.


> uv is not the first opinionated tool to manage Python packaging

It is the first one that "just works".


True, before UV the only way to package python was a container.


Yes. we switched from devcontainers to uv and the workflow is now much simpler and faster.


Yup, I ended up learning docker because Python packaging was such a dumpster fire.

I'll never forget the day I discovered that pip didn't do any dependency resolution. You had one job, and yet...


Until uv, I used docker to run python projects locally. Got so fed up with venvs and versions and slowness and lack of wheels and spending so much time mucking around with it when cloning or updating a repo.

Uv hasn't fixed all issues, but made it far less painful.


apt install …

When people all have these special needs they never show their code.


So apt install worked if you had a decent Linux box and the correct versions of C and Fortran libraries were available.

I worked with data, so tended to use conda and still have loads of problems. Pre compiled wheels and uv have made the situation a lot better.


When you do apt install, the maintainer made sure that the correct versions of whatever dependency was indeed available. That's the entire point of a distribution.


Yes. But many of the dependencies I needed were either not packaged or so old that I couldn't use them.

Seriously, data stuff was a massive massive struggle with Python for ages, and uv and compiled wheels have made it much better.


Poetry?


And pipenv, or just literally manually creating a venv. Uv didn't invent that, it's winning on speed mainly, and then capitalising on starting with a base that includes multiple general improvements in the Python ecosystem.


uv also installs the python version your project needs which is a huge pain in the ass if you use some old Linux distro with outdated python.


Like pyenv pioneered for python and nvm for node ? ;)

Years ago


Sure, but it's not a matter of capability but of low friction and sane defaults.

These things matter though a lot of developers don't seem to understand that.

In a uv project I can just git clone, cd, uv sync and I am ready to go. Nothing in the python ecosystem offered that before.


> uv sync

You can also just do "uv run", and it will automatically sync as necessary!

I think that's one of the things that uv does great and often goes unnoticed: It's hard to use wrong for a layman. Forgetting to run the equivalent sync command in most other Python package mangers could have resulted in a myriad of different bugs caused by out of sync packages, leading to hours of wasted debugging.


> In a uv project I can just git clone, cd, uv sync and I am ready to go. Nothing in the python ecosystem offered that before.

`poetry install` does the same thing except for downloading Python.

I transitioned from Poetry to uv. Other than being mildly faster and providing workspaces, uv doesn't really change at all how one interacts with and manages a project. And in fact, uv just adds additional quirks and gotchas and limitations, including storing authorization keys in plain text.

uv also duplicated things in the Python ecosystem but then didn't implement the same feature sets, so you often end up needing to call the existing tool, just like you did in Poetry.


I suspect, that lots of people hyping uv didn't have any proper reproducible project setups beforehand and didn't have to find solutions to that before uv. If they had, they would know about Poetry and how to use it.

I am of the same opinion, that uv didn't actually change all that much, if you have a sane project setup. I don't do anything with it, that I didn't do before with Poetry and before that with Pipenv. What I need is a way of installing dependencies, checked against a lock file, reliably. Poetry does that. If uv disappeared today, I would go back to Poetry and wouldn't miss all that much.

But there are the people who want to write one-off scripts with loosely defined dependencies inlined into the scripts. I don't do that. I would just copy my Makefile and pyproject.toml file from another project and adjust it and then run the script just as well with locked dependencies. Why do anything less. If I want to be really sloppy, I can just pip install.


I tried really hard to do things the right way before uv, but it was just a major PITA. Poetry in particular looked really exciting when I first discovered it, but I eventually just got bogged down with the speed and its inability to resolve dependencies even for recent versions of pretty mainstream packages. It didn't 'just work' once you got beyond toy projects.

I admit I hadn't really realised astral was a private company before though. What is their roadmap for monetising all this work?


Hm, that's strange. I have used Pipenv and Poetry years ago, to reproducibly build data science environments that people used to learn about data science and data analysis. I don't think you can call that "toy projects". I guess you just had bad luck with some specific dependencies. What I do remember though is, that Poetry had far fewer problems than Pipenv had. Pipenv was still a fight, though I won every time one way or another.


Yea, it's interesting. My comment is negative in votes, but I went back to it to see. Everything I said is factual, so I don't know. People are endlessly impressed by uv's whizbang speed, it seems. In reality, it's _yet another tool_ trying to reinvent the Python ecosystem.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: