Catch up on stories from the past week (and beyond) at the Slashdot story archive

 



Forgot your password?
typodupeerror

Comment Re:Who cares (Score 1) 24

You can helpfully provide a "debian" folder and the rpmbuild config that worked on one test system, and all the debian/redhat based distributions take your tarball and then adapt the things you got different from how they do things usually.

Provided your application already has enough users compiling it from source code to justify packaging it in the first place.

Comment Game-key cards (Score 1) 55

I think allo is referring to the "game-key cards": Nintendo Switch 2 cartridges that contain the title screen and nothing else, where the whole game is shipped as a day-one update. At least on the original Switch, Nintendo required the first few missions of the single-player campaign to be on the cartridge. Among early physical games for Nintendo Switch 2, only Nintendo's first-party games and CD Projekt's Cyberpunk 2077 weren't game-key cards.

Comment Start with gcc -fsanitize=address,undefined (Score 2) 68

What would your hardened version of C look like?

It'd look like a subset of C where the compiler emits a diagnostic for every undefined behavior that's practical to detect at compile time and inserts code to catch at runtime everything else the standard calls undefined. The first step toward this is what GCC already does for -Wall -Wextra -pedantic -fsanitize=address,undefined. The second step is that a pointer variable doesn't contain a raw address but instead a base address and index, and every dereference of an array member is bounds-checked against the size of the object it came from. This ends up making the language's strict aliasing rule even stricter, and a lot of pointer casts or union puns become undefined and therefore errors. After programmers become accustomed to stricter pointer provenance, a compiler maker can add a concept of ownership, with a borrow checker to detect use-after-free and the like.

Comment Compare unsafe code in JVM and CLR (Score 1) 68

The problem is that without allowing some "unsafe" operations in Rust or any other language it is impossible to do any I/O or interface with foreign languages like C. It would be totally useless.

If the only programs with permission to escape the language's type system are system libraries signed by the operating system publisher, it isn't "totally useless." It'd be like Java applets, J2ME phone applications, Silverlight applets, XNA games, and Windows Phone 7 applications. Executables for these platforms are in an intermediate representation that lets the loader tell if unsafe was used. If the executable contains unsafe code but isn't signed with the permission to escape the sandbox, the loader raises a security exception. Applications were expected to perform I/O through first-party system libraries signed with this permission. Third parties weren't supposed to be doing "systems programming" on these platforms.

Comment Protocols, not platforms (Score 1) 116

Exactly. Gasoline, mains power, and batteries are standardized. So are LTE, 5G NR, and Wi-Fi. Compare what Mike Masnick of Techdirt and other Internet user freedom advocates have called "protocols, not platforms."

Though even if there were no cryptographic lockdown of these "smart" devices' system software to interact only with the vendor's server, one big obstacle to running your own server (with proverbial blackjack and hookers) is that so many Internet providers nowadays block inbound TCP connections. T-Mobile Home Internet, for example, puts subscribers behind carrier-grade network address translation (CGNAT) with the whole neighborhood behind one IPv4 address. Even through IPv6, their gateway appliance offers no port forwarding or DMZ option.

Comment Re:This is just applying coming to parity with hir (Score 1) 113

It's almost like the solution is to strip away all of the automation and do this stuff in person! If it's not worth employers meeting applicants IRL, maybe their jobs aren't worth filling in the first place?

Flying around the country to apply in person costs a lot of money, and I'd be surprised if most recent graduates can afford that plus the minimum student payment on Walmart wages.

Comment Re:Interviews and Probationary Period (Score 1) 113

The only way to hire is to interview candidates and then see how they do in the 90-day probationary period. An in-person interview is the only way you are going to be able to get a feeling for how someone is going to integrate into your team anyway.

"In-person"? How do most companies afford to fly candidates in for an in-person interview?

Comment Re: Nope (Score 2) 151

Not by a long shot. Unsafe is scoped. 20% of Rust packages may use unsafe, but the amount of code in unsafe sections is far far far lower. Unsafe means "I accept the risk of doing unsafe things" but because it's scoped, just because a package uses Unsafe, it's still benefiting from the memory safety of bounds checking and borrow checking 99% of the time.

That's a far far cry from "it's just the same thing as doing it in C"

Comment Re:it's the complexity, stupid (Score 4, Interesting) 30

I don't have anything against JS, it's fine for manipulating webpages client side because it's the only standard option (fine, WASM, but realistically). Where I draw (drew?) the line is "let's run it on the server too!". That was a terrible idea. Then someone decided, hey, don't code that, use an npm that you have never read or validated. That was the terrible idea amongst terrible ideas. Now they've reached the apex of idea terribleness by letting LLMs write code that is never read, using npms that are never validated, on a server without a sandbox. I'm eagerly awaiting to see how they top this, might I suggest running the whole thing on Node using root?

Slashdot Top Deals

What we anticipate seldom occurs; what we least expect generally happens. -- Bengamin Disraeli

Working...