@Suiseiseki@MostlyHarmless It's been a few years since the last (known) instances in Firefox not dependent on Javascript, but CVEs for transport, image renderers & such are present for 2014, 2015 and 2016 that could've been turned into code execution (or demonstrably were).
It's way more common with Javascript and it's the majority of what is being found now. Though whether that's because people stopped looking elsewhere or the codebases truly improved, I couldn't say.
@screwtape@pkw It'd be nice for Common Lisp to have something like Emacs Lisp's make-obsolete that is actually considered by the rest of the system.
Compatibility layer is only good (mostly) if the signature doesn't change, otherwise it's creating an avoidable maintenance nightmare (especially if multiple versions are kept) while also worsening the usability with all sorts of docstring-only info (or worse, a bunch of undocumented behavior).
The pattern I've observed that is most sensible for this is encoding the difference in the classes, such that one can then simply recursively upgrade the instances (now-obsolete and unused methods can possibly be safely removed at this point depending on program flow), handling all that is necessary for compatibility differences there, and otherwise preserve everything unchanged from an external user point of view.
@pkw@screwtape Alternatively, if one is presenting a stable API of some sort (or supporting a versioned protocol), it could make sense to keep the old ones around.
@nyx@ink@lanodan A lot of your first paragraph is mirrored in GNUnet documentation & whitepapers.
The solution to the hardware problem is to also enable emulating/tunneling it atop other legacy hardware.
To the third one, there's a reason they go "let's make a GNU internet" (puns, yes), sure tunneling isn't an ideal solution but it still is an option and it bypasses purposely uncooperative political fuckwads.
@nyx@lanodan The serious reseachers aren't exactly publishing much at the moment, other than meshnets with little retrocompatibility (which kills mass adoption).
Sure I'd like if people just went and used the meshnets anyway but they don't.
GNUnet's implementation has a bunch of problems and a lot of it is waiting on research to complete (no ETA) so progress can continue (I'm probably going to be long dead by the time it completes).
What alternatives do we have? I2P? Sure it works, but it *also* has a bunch of issues.
@lanodan@nyxdat:// had some interesting ideas, particularly with tunnel encryption between individual peers to mitigate observability, but then they went and wasted their time with unnecessary blockhain/coin bullshit.
This is an issue mostly because the wrong layer is being distributed. The Operating System APIs for Linux are specified and standard at the ABI level, so particular cached computations (a binary) targeting that ABI will continue working in environments supporting it (different computer architectures being different environments). The stable/standard compatibility layer for most Linux binaries is typically at the source level inherited by libraries that only provide compatiblity & reliability guarantees at the source level.
(I don't think GNU LibC makes any claims of ABI stability across versions, so a given cached version of it cannot be used as a reliable primary artifact.)
> But it'll also mean just throwing out security entirely, which enterprise software does all the time.
Unless cryptography is involved, that shouldn't be the case and suggests there's something wrong with the running environment rather than the program.
For cryptography there are ways of handling that, mainly presenting a stable API at some layer or another. Programs using SSH don't need to know more than its command line interface (which SSH itself has somewhat standardized I think), programs using I2P (as clients) need nothing more than standard HTTP or TCP support (through reverse-proxy tunnels) & do not care about the I2P version used. And of course, libraries presenting a stable API (whether type/function-call based or protocol-based, with appropriate upgrade support in the background), which I think is the standard way to go now, will simply keep working.
Well, as servers too, it works on both ends. And SAM's protocol handles retrocompatibility too.
Some of the other libraries for I2P do not provide compatiblity guarantees across versions, but I think they're also all deprecated for that same reason.
Improperly defined interfaces between systems & libraries and software, most of the time.
Then there's the odd once in a while (often with decades-long spacing) that one needs to change something to support a new system entirely.
> what matters is its relationship with the surrounding context, and that context is in perpetual change.
That's mostly true for software with unlimited scope. It is perfectly possible to have software that is /complete/ and needs no more maintenance than the second example I gave above.
@icedquinn It seems to be very common for management to encourage workers not to defend themselves, instead of intervening by having rude customers escorted out and/or banned depending on what they did.
That is where I think unions would have an impact.
Is unionization the answer? Or is there something else that can be done on a regulatory/legislative level (besides enshrining unions and getting rid of anti-union bullshit, of course)?
Less jokingly, I've generally been looking the way of distributed SQL databases, it seems to me they could more cleverly adjust their behavior & performance than static shards.
I haven't had need for them though, I do not own anywhere near enough machines to make them relevant as more than a curiosity.
As far as I can tell, so long as one actually bothers to question the query analyzer to ensure no indexes are missing & no needlessly expensive operations are used, joins tend to perform just fine.
Hi, I'm Lispi, Lisp (Technomancer) Wizard (to eventually be).You might know me from @lispi314@mastodon.top I like Free Software, #Emacs and resilient computing a lot.I also like anime girls, animes with cute girls doing cute things and artwork with them too. Cute stories are good too.Some Pins:Software and Assumed Privilege, common problems: https://mastodon.top/@lispi314/111253066257920146Writing Privacy-preserving software & services 101: https://mastodon.top/@lispi314/110849018589421824#Kopimism #FreeSoftware #CommonLisp