For the best experience on desktop, install the Chrome extension to track your reading on news.ycombinator.com
Hacker Newsnew | past | comments | ask | show | jobs | submit | history | Patryk27's commentsregister

I don’t follow - how are modules based on USB-C proprietary?

My Framework ethernet dongle works perfectly fine with a Mac that I use for work, for instance.


I knew someone would ask this.

It is mechanically disagreeable.

The weight/shape of the module will break the USB-C port in short order because it is solely supported by the connector.

For instance, by bumping the spatula hanging off your Mac.

For that matter, USB-C are crap connectors, I don't care how many graphs and BS data you show me stating they're the most reliable connector ever. I do not believe it.

They're the only types of connectors I've seen damaged repeatedly, and the only one with which I've personally experienced damage, and I've been using laptops since before many of you were born.


So you’re saying the modules have a suboptimal design for non-Framework laptops.

Sure. But this does not make them proprietary, they work fine with non-Framework laptops as well.


> They claim it is better just because of the language

I mean, it clearly is better (in certain contexts), see e.g. https://blog.google/security/rust-in-android-move-fast-fix-t...

> We adopted Rust for its security and are seeing a 1000x reduction in memory safety vulnerability density compared to Android’s C and C++ code. But the biggest surprise was Rust's impact on software delivery. With Rust changes having a 4x lower rollback rate and spending 25% less time in code review, the safer path is now also the faster one.


I can imagine LLM can, or will be able to, write safe C too. At least safer than people can.


Bugs are not only related to memory and a program cannot be considered safe Just because it got rid of pointers, malloc and free.

If you really think that switching language is the main driver to get safe programs, the you are on the list of people replaceable by LLMs.

Othewise you have to understand that architettural chioces, concurrency, (weak) cryptographic function and user stupidity have a significant impact, no matter what language you use. Memory management is just a part of the problem.


> If you really think that switching language is the main driver to get safe programs [...]

I didn't write that.

> [...] the you are on the list of people replaceable by LLMs.

lol, love a high quality discussion

> Memory management is just a part of the problem.

Sure, then using Rust is a step forward, because that's one less thing you have to worry about. Seat belts don't save all people, but a car equipped with seat belts is - on average - safer than a car without seat belts.


Regular expressions are not Turing-complete.


True in the CS Theory space, but most modern regex engines implement a few niceties which make their "regex" turing complete. https://blog.poisson.chat/posts/2024-06-18-turing-regex.html


Javascript/PCRE/etc regexes have additional features (like backreferences) that give them strictly more computational power than a regular DFA/NFA. (Still not Turing complete though without external control flow to support arbitrary iteration/recursion, like is done here)


There are no comment-based directives in Rust, are there?


It provides the feature to use. It’s possible nobody has yet.


Eh, you're right, they have a structured attribute system.


> [...] it catches logic errors like this

but Rust's type system did catch this error - and then author decided it's fine to panic if this error happens

> You won't see Go or Java developers making such strong claims about their preferred languages.

yess no Java developer ever said that OOP will solve world hunger


> but Rust's type system did catch this error - and then author decided it's fine to panic if this error happens

The issue is that it wasn't fine to panic, thus Rust did not catch this error.


Come on now. You can't blame the compiler when the programmer explicitly told the compiler to not worry about it. There is nothing in existence that can protect against something like that.


I'm not blaming the compiler, of course programmers can explicitly write incorrect code in any language. It's not Rust's fault.


Not the parent commenter, but -- days of week in Polish are a nice example, IMO.

`Środa` means `Wednesday`, but depending on the grammatical case it's going to be translated either to `środa` or `środę` (or five more, but somewhat less likely to appear in UI [1]).

- Next <Wednesday> is 2018-01-03. = Najbliższa <środa> przypada na 2018-01-03.

- This event happens on <Wednesday>. = To zdarzenie ma miejsce w <środę>.

If you mix the variants, it's going to sound very off (but it will be understandable, so there's that).

What's more, days of week have different genders, which affects qualifiers:

- <this> Wednesday = <ta> środa (Wednesday is a "she")

- <this> Monday = <ten> poniedziałek (Monday is a "he")

... together with the grammatical cases affecting the qualifiers:

- <This> Wednesday is crazy. = <Ta> środa jest szalona.

- <This> Thursday is crazy. = <Ten> czwartek jest szalony.

- I'm busy <this> Wednesday. = Jestem zajęty w <tę> środę.

- I'm busy <this> Thursday. = Jestem zajęty w <ten> czwartek.

[1] https://en.wiktionary.org/wiki/%C5%9Broda


This is fascinating, thank you. The intricacies of languages is so interesting. I especially love the insane way we danes spell out numbers.

59 == nioghalvtredssindstyve

59 == 9 [ni] + [og] ((3 [treds] - 0,5 [halv]) * [sinds] 20 [tyve])

So 9+2,5*20 == 59

Halvtreds means half third, or halfway to three. There's also halvfjerds and halvfems for 3,5 and 4,5. Exercise: spell out 79.


I once worked with translating an application to polish, and found out we had to have separate placeholders for "name" for persons (nazwisko) and for things (nazwa).

Which is a simple example why you need context.

All UI frameworks should have a "translate" mode, where all labels and static text can be right-clicked and modified...


This was also covered by 3blue1brown, highly recommend: https://www.youtube.com/watch?v=gB9n2gHsHN4.


Code blocks use Iosevka (slightly configured - https://codeberg.org/pwy/website/src/commit/721438bc7d14789c...).

Screenshots use Berkeley Mono (my "daily driver" font).


> Worrying about things like this without profiling can cause a lot of unnecessary complexity when planning abstractions in Rust.

:+1: - it was mostly about "damn, it _feels_ like there should be a better way".

> You might be able to get away with the lock approach and you may even be able to use Rc<RefCell<_>>, which would get a little speed up.

In this particular case that'd be a bit more awkward, because in the actual game the UI is driven by async fn (the rendering itself is sync, of course, but waiting for input is async, and both happen as a part of the same function).

`spawn_local()` could be a good enough solution for that, though.


> it _feels_ like there should be a better way

Yeah, totally. I have those same feelings. It's hard to fight it because `.lock()` and friends do _feel_ heavy!


ACLs are more like a binary function, right?

    f(packet, time, ...) = { reject, allow }
In that case evaluating the function once is enough to know whether the packet should be let through or not, there's no way to sort of "differentiate" this function, no way to step through it.

But this got me thinking about cases where policy _modifies_ the packet, like:

    f(packet, time, ...) = ({ reject, allow }, new-packet)
In this case you'd be looking for a fixed-point, evaluating this function until new-packet = packet (or you exhaust some time and give up). Not sure on the potential utility, though - just a random thought.


Makes sense. Advanced ACL analyzers translate them into first order logic and then use something like Z3 to find the packets that satisfy them but they rarely support the time based ACLs. But those are not used much in practice.


Consider applying for YC's Fall 2026 batch! Applications are open till July 27.

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

Search:

HN For You