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

What are you needing to use `uv pip` for? I don't think I ever call into pip from uv for anything nowadays. I typically just need to do `uv sync` and `uv run`, maybe sometimes `uvx` if I want to run some random 3rd party python script


"shocking little amount of discussion"

are we reading the same website...


Even the dissector stuff feels so.. broken? unmaintained? The lua api is very annoying to use and python support was removed over a decade ago. Have not used the C API so maybe thats just what most people use and its good, but for my usecase I usually just want to quickly sketch out a view for a custom protocol that I can see in the UI.

I would absolutely love for someone to write a good alternative to wireshark.


As a constant Wireshark user who's personally thanked Gerald Combs for this tool, we don't need an alternative to wireshark, just some architectural refactors. Many packet dissection fields are embarrassingly parallel, but because some of them can involve previous/future packets, wireshark does all packet dissection in a single thread. So when I scoop up 10M packets it can take 20 minutes for the GUI to load them all with a single core, while 100 other cores on the same machine sit idle.

Once loaded, you have to be super careful. One update to the filter bar, like "!icmp" and you'll have to wait another 20 minutes for all the dissectors to be re-run (for some reason.)

As a previous commenter stated, if you work with Wireshark a lot, you eventually write your own tool for your performance needs. It feels magical to have a 3-page C program sitting over libpcap giving reports in miliseconds that would take wireshark minutes.


FWIW, Wireshark 4.6.0 ships with `sharkd`, which encapsulates all the EPAN dissectors into a simple to use server that accepts JSON-RPC requests.

It is quite easy to write specialized performance tools on top of `sharkd`, and since it has the entire power of the EPAN (including statistics, charts etc.), using `sharkd` is significantly more effective than reading straight from libpcap.



The `sharkd` has been around for quite some while, but until recently one had to build it from source. But now it is included in Wireshark DMG, so it is easier to use.


You're right, and I didnt mean to sound dismissive of the great work that has been put into wireshark. I agree with you on the refactoring comment, and if that's something that can be solved in the current codebase and something I can help contribute towards with donations I would be perfectly fine with this outcome as well.

As it stands though, using the gui bits of the wireshark family of tools is just painful, and slow (as you stated)


>It feels magical to have a 3-page C program sitting over libpcap giving reports in miliseconds that would take wireshark minutes.

Any demos available of something like this?


Sadly proprietary, but the core of it was to open a file with pcap_open_offline() [0], and then calling pcap_next() from a loop and reading a few bits out of the packet buffer. With NVMe disks, the information I needed was instantaneous for a 10M packet file.

https://manpages.debian.org/stretch/libpcap0.8-dev/pcap_open...


what is the point of spamming hn with low quality llm comments.. do you put your hn karma on your resume or something? like what's the end goal


Kinda odd to be so dismissive of this mindset given this websites title. Whipping up your own chatui really is not that hard and is a pretty fun exercise. Knowing how your tools work and being able to tweak them to your specific usecases kinda rules!


There is a big difference between fun exercise and actually creating something that competes with the apps you can download. Building something on par with Claude Desktop, ChatGPT Desktop, etc. would be a lot of work. And I don't think the payoff would be there for most people.


Most people aren't hackers. Thanks to LLMs and vibe coding, even they can now take a can-do attitude to life that feels empowering. There's no longer any excuse to languish in helpless misery and negativity. You can just build things.


But you can build something new instead of reinventing the wheel for the thousandth time.


I've only been lucky enough to find one opportunity in my entire twenty-seven year career to write something novel and new. Most of the time we're reinventing the wheel. What separates the winners from the losers is whether or not it's your wheel.


I don't know, you don't have to invent cosmopolitan libc to qualify as new, but my bar is higher than another LLM chat app.

Then again, maybe OP's app will have some new twist that will revolutionise everything.


I have other things to do with my day than vibe-coding yet another stupid chat app with fewer features than one I can just download and get running in minutes. It’s not helplessness or misery, it’s just the finite number of hours I have in a day and the fact that other things are more interesting than that. I don’t grow my own wheat or maintain my own OS, either.


Yeah, ok, don't do it then. That doesn't mean because you do not want to bother, the suggestion is invalid for everyone here. There are a lot of people who just love to do their own thing, tinker with whatever they have on hand and then use the stuff they have created themselves.


its ok to let other people have fun programming and code dumb tools. you can decide yourself what you want to or not to work on, doesn't mean you should be so negative towards the idea of people who do want to code these things


its called C#


C# is a lovely language but it's not that similar to TypeScript. The big distinction (for me) is that it's nominally-typed and much more rigid. Unless things have changed a lot since I last touched it (admittedly a while ago):

You can't synthesize ad hoc union types (https://www.typescriptlang.org/docs/handbook/2/everyday-type...)

There's no notion of literal types (https://www.typescriptlang.org/docs/handbook/2/everyday-type...)

There's no type narrowing (which gets you a kind of sum type) (https://www.typescriptlang.org/docs/handbook/2/narrowing.htm...)

Most of the type maniuplation features (keyof, indexed access types, conditional types, template literal types...) are missing (https://www.typescriptlang.org/docs/handbook/2/types-from-ty...)


Close but not quite.


what does this even mean?


A bot I expect


Your previous comment was the absolute opposite of being open, honestly you saying this now makes me not want to go anywhere near this product fwiw.


Sorry it came off that way. Not my intention, and to be more direct, I'm not hiding it and do not wish to. Sorry again about that.

Appwrite is fully open-source, which is a big reason I stand behind it.

My role is to represent the developer community and surface their needs, not build the internals. So when I say I like where Appwrite is going, it's coming from that perspective.

You can check my HN post about Appwrite Sites here: https://news.ycombinator.com/item?id=44027691

And just to circle back: Appwrite is fully open-source. I use it in my own products and experience it as a user: https://github.com/ebenezerdon


whats the actual barrier? installing rust? looking at the instructions this doesnt seem much harder than installing zig or go?


  I can think of couple:
  - Toolchain size: Nim, Zig ~100MB; Rust >1.5GB
  - Compilation Times
  - Micro-dependency Culture


It isn’t, arguably easier than installing Go (no GOPATH). Rust compile times are really slow compared to Zig or Go though.

(Edit: As this seems to trigger some people: I code in Rust. I’m just stating the facts.)


Just FYI: GOPATH isn't a thing anymore.


Dont disagree that compile times are slower compared to alternatives in this space, although I'm not sure I'd quite describe that as some sort of barrier to entry from contributing


Rust compile times are *really* fast compared to running Zig or Go through a static checker and then a compiler, to arrive at similar confidence in the behavior of the code as a single run through rustc.

It sounds like maybe you're used to skipping part of the development process required for stable well-tested software. Maybe that works for UIs? Wouldn't want my runtime authors feeling that way.


Why run a static checker in every single machine you compile a project on if a developer already ran it elsewhere?


You can install pre built binaries if you are not concerned about developing new features.


People who aren't developers generally install pre-built binaries. I know that's how almost every Linux distribution I've used for going on 30 years has worked.

Developers, on the other hand, seem to need some help running static checkers regularly. Most don't seem to have well exercised CI toolchains doing it for them. Or aren't aware that they should be doing so - like yourself.

Rust makes use of the tight integration between language, compiler, and checker to allow the language to be easier and more thoroughly checked than possible with checkers built for other languages. Many steps performed for compilation are reused. Which is what makes it so fast.

If you think "why can't I skip this?" you have missed the point and are exactly the target developer these checks are for.

I've written a lot of software. Never had a complaint about compile times in any language. The reality of developing with Rust is that after the first build, only changed files are rebuilt, which makes it just as fast to compile as any other language.

If compile times are what concerns you about a language, that tells me you're not very far along in your career. You have a lot more problems to discover which are very much more serious. If you ever encounter the problems Rust solves, you'll grow to appreciate it's solutions.


The smallest unit of compilation in Rust is the crate, not individual files unfortunately. That's why you'll see larger projects like Wezterm or uv use workspaces to try to tame compile times.


You're right that the crate, not the file, is the smallest unit of compilation.

My largest rust project is still fairly small at around 8k lines across two dozen files. Still, it builds and links in 30 seconds on my workstation which is several years old and not particularly fancy.

I could see this beginning to become an issue around 100k lines of code, but I'd think most people would be looking to split into multiple crates before that just for readability.


In this case, EA released all the classic c&c games for free so its pretty easy to snag all the assets. I think the OpenRA launcher even has an option to download them for you.

There are 3rd party mods with their own assets too though, its a pretty neat engine.


>> In this case, EA released all the classic c&c games for free

Bless EA. I was wondering how this happened. I have wonderful memories of playing these games in the early 1990s and it has been doubly wonderful playing them now, with my children, in LAN mode.


Yes, it pulls them automatically, which is really nice.


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

Search: