chrysn
1
17
chrysn

@chaos.social

πŸ³οΈβ€πŸŒˆ Technology enthusiast with a focus on Free Software and embedded systems. Science fiction promised us general purpose electronics, let's build them! (And get their security properties right.)

chrysn 5 points 3 years ago

The very same type of mistakes happens in file systems even without URIs being involved. Directory traversal checks look simple but sooner or later need hard-to-understand symlink following rules. Enforcing processor policy has terrible portability there (it even only became practical on Linux with landlock), but nonetheless I think it's preferable.
Not mixing URI parsers is a good advice for when processor policies are unavailable – but let's try to make them available more often.

path: 0 3232591 3234865 3235035, hotness: undefined, score: 5, children: 0
chrysn 4 points a year ago

The square bracket is the standard, eg. as the IP-literal from RFC3986 <https://datatracker.ietf.org/...>.

Any case where the three colons occur happens because someone just takes the IP address, prints a colon after it and the port, rather than just using existing libraries that do this right.

path: 0 19345493 19345494 19345753 19346356 19346570, hotness: undefined, score: 4, children: 3
chrysn 3 points 3 years ago

Coroutines are one means of implementing async; the way they are implemented in Rust is more like building a state machine out of the async function. It can still be mapped to coroutines, and there are probably crates that use async and macros to make coroutines usable on stable, but the effort to have a stable language feature is still ongoing, with https://lang-team.rust-lang.org/... giving the overview.

path: 0 880913 886106, hotness: undefined, score: 3, children: 0
chrysn 3 points 3 years ago

I know painfully little of ActivityPub, but from a protocol design PoV, Lemmy altering its behavior when it sees Mastodon doesn't sound desirable. I'd rather put metadata in the toots that allow better decisions, or even have two entities (linked by metadata) for channel-top-posts and channel-everything, if the latter is needed at all.

path: 0 176557 184638 185006 226774 229757, hotness: undefined, score: 3, children: 1
chrysn 2 points 3 years ago

@jvisick That process is completely intransparent to anyone approaching this without preexisting knowledge of that Lemmy instance. Do you know who runs that account? They should really make a note in its metadata.

path: 0 2867699 2869640 2874989 2876256 2880785, hotness: undefined, score: 2, children: 0
chrysn 2 points a year ago

It is gaining momentum also outside the web where there is no dependency on Google, eg. in Gnome's default background images <https://gitlab.gnome.org/...>

path: 0 19995073, hotness: undefined, score: 2, children: 0
chrysn 2 points 3 years ago

@0xsaksham @snaggen Last polls I saw, the #RustLang hashtag (it's case sensitive, but capitalization helps for accessibilisy) was a tad more popular than #Rust due to the latter's ambiguities.

path: 0 2867699 2869640 2874989 2876256 2876814 2876849 2876866 2878353 2878392 2878729 2878906 2880836, hotness: undefined, score: 2, children: 0
chrysn 1 point 3 years ago

Last time I checked, GTK could do laziness well where it matters (lists /trees), but admittedly that was some time ago.

path: 0 1813072 1815741, hotness: undefined, score: 1, children: 1
chrysn 1 point 3 years ago

@snaggen I think the better lesson than "don't mix URI parses" here is "don't LBYL, rely on EAFP". Many "Look before you leap" (LBYL) schemes are subject to variations of time-of-check/time-of-use errors. It's preferable to not sanitize input, but tell the processor what the policy on processing is; when it comes to a violation, it's easier to ask forgiving (i.e. report the error) than permission (EAFP).

path: 0 3232591, hotness: undefined, score: 1, children: 2
chrysn 1 point a year ago path: 0 16894856 16894857, hotness: undefined, score: 1, children: 0
chrysn 1 point 3 years ago

@Sibbo It's been a wild ride ridden with back-and-forths about where where Self: 'a goes and whether it's needed, but that's largely past (now that it's stable), and my use case (the coap-message crate) works fine with it.

path: 0 87689, hotness: undefined, score: 1, children: 0
chrysn 1 point a year ago

Yes; I think this primarily impacts platforms that are not using full Debian but use the dpkg/apt system only, especially on architectures that are not Debian release architectures.

path: 0 20265989 20268602 20273935, hotness: undefined, score: 1, children: 0
chrysn 1 point 3 years ago

@Kaiser If you run into trouble with something-sys, you should check whether that crate requires libsomething headers to be installed. (cargo will take care of dependencies, but only within Rust, it can't install arbitrary C libraries). On Ubuntu, you'll need to run sudo apt install libproj-dev (maybe also libtiff-dev) to get these headers.

path: 0 170183, hotness: undefined, score: 1, children: 0
chrysn 1 point 3 years ago
path: 0 170178, hotness: undefined, score: 1, children: 0
chrysn 1 point 3 years ago

Even subscribing to the communities is a somewhat theoretical thing – I can see https://lemmyrs.org/c/meta as @meta and follow that, but none of its posts are shown. (Or do only new posts show up once someone on my server is following it?)

path: 0 176557 184638, hotness: undefined, score: 1, children: 4
chrysn 1 point 3 years ago

Ah -- things do indeed start popping up once I follow it, and in mastodon terminology, the community is boosting every single comment. I'll try that for some time to see if it's practical, but it's probably overkill.

path: 0 176557 184638 185006, hotness: undefined, score: 1, children: 3
chrysn 1 point 3 years ago

@Vorpal Having a free implementation of 802.15.4 is very good news. The initialization blob is still a downside compared to Nordic chips, but it's good progress and shows that they're interested in doing it right. I'm hoping it'll be blob-free eventually for all their radios.

path: 0 763430, hotness: undefined, score: 1, children: 0
chrysn 1 point 3 years ago

My impression is that they are using WASM primarily from the browser, which really is a no-std shaped environment. Using WASI there would be as much of a band-aid as is emscripten.

path: 0 891093 916168, hotness: undefined, score: 1, children: 0

thanks for using Leebra!

go to feed...