Hacker News new | past | comments | ask | show | jobs | submit | chuckadams's comments login

Reminds me of "Do not look into laser with remaining eye"

KDE and Gnome desktop files are just used as launchers, they're not the actual thing being exploited. Persistent malware pretty much always separates the vector from the payload: the exploit just gets the door open, then downloads the actual malware from the C&C servers. Many vectors, one malware package.

> Although we lack concrete evidence regarding the initial access vector, the presence of multiple webshells (as shown in Table 1 and described in the Webshells section) and the tactics, techniques, and procedures (TTPs) used by the Gelsemium APT group in recent years, we conclude with medium confidence that the attackers exploited an unknown web application vulnerability to gain server access.


It's a little weird to call a 43-year-old a "child prodigy", yes. The phrase is left-associative.

96 RETURN

Eloquent. Brought tears to my eyes, in fact.

I imagine the employer limps on with the current codebase and/or is spending beaucoup bucks to rewrite the codebase while still using the old one.

Probably, but I'm always hoping to hear a story about a company laying off a highly valuable employee(s) (usually for cost-cutting reasons) and then going bankrupt as a result.

CPAN has been tracking the Bus Factor for a long time now. For example, https://metacpan.org/pod/Moose shows a Bus Factor of 5 in the left column info.

Also, we did document how we arrive at the number: https://www.olafalders.com/2021/06/30/cpan-bus-factor/

> According to Apple, “CVEs are only assigned to software vulnerabilities previously released to production and not to vulnerabilities for beta-only software.” This vulnerability only affects the macOS Sonoma Beta version.

IOW it's a fascinating read into security research and macOS architecture, but only pertains to a beta release of the previous major version.

(edit: I stand corrected, there's multiple vulns as TFA's very title says, and some may still be pertinent)


You make it sound like the whole article is about vulnerabilities in a macOS beta version, but what you quoted applies to just two of them.

… clarifying in case someone else reads it the same way.


Fair enough, good point and good catch. Edited my reply just in case this gets lost in the firehose of 32 comments ;)


> Plus, getting rid of inheritance gets rid of the LSP

No it doesn't. Interfaces need to follow substitutability rules too. Any type you substitute for another does, and that includes things like functions too.


It does, because it is no longer a matter of substitutability. You are not intrinsically taking an X and modifying it to become a Y while also being an X. You are now just providing an X, and another X, and another X, and another X over there. You need to maintain the constraints of the one interface you are satisfying, but you are not also maintaining the constraints of the superclass, and all of its superclasses. You only have the interface to worry about, only the one dimension, not two (or more, depending on how you count in multiple inheritance languages).

You also can do things like take a subset of the interface and have things that implement just that. You can't do that to a class hierarchy; once a method is put in the hierarchy, it must be implemented by all children. (Note that if you're jumping up to say "But I can just implement an interface in Java or whatever if I want to do that", you're agreeing with me, not disagreeing. That's not a legal move in inheritance, though. Languages have been very, very slowly but very surely moving away from pure inheritance for a long time now.)

Having interfaces separated from reusability means you don't have to worry about all these things at once, just the interface.


I think trying to overformalize this by bringing in LSP might make it harder to understand and easier to nitpick. Another way to look at the same thing is that subclassing/implementation inheritance is an extremely stringent but poorly enforced contract (yeah, also a kind of formalism) that's, in your typical OO language, far too easy break without noticing.


Ironically, the fact that LSP is complicated and to a first approximation nobody understands it is a major part of my point.

(Or, if you prefer, LSP itself isn't that complicated conceptually, but if you try to manifest it in reality it turns out to be very complicated in practice. Code makes a lot more guarantees than we think it does. See also https://hyrumslaw.com/ , which a very different view on the same phenomenon.)


I agree. I think the LSP makes it essentially impossible to subclass a concrete superclass, because the subclass must retain all the observable behaviour of the superclass. If it does so then what's the point? On the other hand, implementing an interface is fine. Different implementations of the interface can just uphold the interface invariants without needing any relationship to each other.


It is much harder to violate LSP by writing new code which simply adheres to an interface, than it is to violate by writing new code which is run instead of the old code (and all the old code's side effects)


Matt: "WP Engine doesn't contribute!"

Also Matt: shuts off all ways for WPEngine to contribute


Yeah, makes no sense to me.


I think you got it with the third one. Picture an elk wearing saddle bags. A Pack Elk.


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

Search: