From a quick Google, it seems like Mullenweg is a complete jackass
I am several hundred opossums in a trench coat
From a quick Google, it seems like Mullenweg is a complete jackass
Isn’t that what “classic” confinement is supposed to solve?
counterpoint:
I don’t want you to call me female or male. Creeps call me female and bigots call me male.
Why is astroturf “woke”?
I contribute and run some open source projects. Some projects receive sponsorships and contributions, some are backed by companies, a lot are just someone doing it on their own time, very few can actually meaningfully support the people working on them. Personally, I receive no money for mine.
After a certain point, learning to code (in the context of application development) becomes less about the lines of code themselves and more about structure and design. In my experience, LLMs can spit out well formatted and reasonably functional short code snippets, with the caveate that it sometimes misunderstands you or if you’re writing ui code, makes very strange decisions (since it has no special/visual reasoning).
Anyone a year or two of practice can write mostly clean code like an LLM. But most codebases are longer than 100 lines long, and your job is to structure that program and introduce patterns to make it maintainable. LLMs can’t do that, and only you can (and you can’t skip learning to code to just get on to architecture and patterns)
Bofa deez nuts
Mozilla’s next largest source of revenue is subscriptions and advertising (source 2021 financial report), by a wide margin. That “useless shit” is their other revenue, and they’re investing in it because they know they need to diversify revenue to fund Firefox. You’re suggesting they kill it because it’s not their core (unprofitable) business?
Brainworms are abound in transphobes
But this conversation has absolutely nothing to do with the topic at hand
They stop their ads for the same reason you don’t shit talk at a funeral: its disrespectful and makes you look like a prick.
I’m using an ✨analogy✨ to explain to you why, even if they are “serious about the topic in the ads”, they would stop them when someone dies or a tragedy occurs. Its not some conspiracy about “planned division”, it’s because speaking ill of someone under those circumstances makes you look like (and be) a disrespectful dick.
I’m not asking if you remember them as an arsehole and speak of them like that. I’m asking if you do that at their funeral.
I’d be interested to hear whether you regularly attend funerals and speak ill of the deceased. They stop their ads for the same reason you don’t shit talk at a funeral: its disrespectful and makes you look like a prick.
She drew crosshairs on congressional districts and tweeted it with the text “Don’t Retreat, Instead - RELOAD”. That is stated in literally the first paragraph of the article your citing, and I can’t help but feel you’re intentionally misrepresenting it to draw a false equivalency.
An audience member was killed according to ABC News (Australia)
Making a breaking change to the mobile API also breaks old outdated installations of the app. Websites and their APIs are usually synced, apps not so.
If they were really motivated to stop your method, they could just obfuscate the frontend with webpack and break your scraper every time they make an update.
I suspect that any of the methods proposed here would be prone to a C&D, but IMO the safest legally would probably be the RSS method (not a lawyer though). Reddit’s RSS feeds are public, documented, and available without the need for private APIs, authentication, or an API key, so I don’t see how they could claim that a wrapper is unauthorised/illegal. Documenting their private API however seems like a gray area. Google LLC v. Oracle America, Inc. found that APIs are copyrightable, but this use may constitute fair use.
Is there a reason you’re scraping data rather than attaching a network sniffer/reverse engineering the official apps and documenting the results? Or map the RSS feed to an API? The main thrust behind my comment is that I think scraping is pretty fragile, so I’m interested as to why other options are infeasible.
Thank you for adding this! If people want a real life example of the effect shown in this pseudocode, here is a side-by-side comparison of real production code I wrote and it’s decompiled counterpart:
override fun process(event: MapStateEvent) {
when(event) {
is MapStateEvent.LassoButtonClicked -> {
action(
MapStateAction.LassoButtonSelected(false),
MapStateAction.Transition(BrowseMapState::class.java)
)
}
is MapStateEvent.SaveSearchClicked -> {
save(event.name)
}
// Propagated from the previous level
is MapStateEvent.LassoCursorLifted -> {
load(event.line + event.line.first())
}
is MapStateEvent.ClusterClick -> {
when (val action = ClusterHelper.handleClick(event.cluster)) {
is ClusterHelper.Action.OpenBottomDialog ->
action(MapStateAction.OpenBottomDialog(action.items))
is ClusterHelper.Action.AnimateCamera ->
action(MapStateAction.AnimateCamera(action.animation))
}
}
is MapStateEvent.ClusterItemClick -> {
action(
MapStateAction.OpenItem(event.item.proposal)
)
}
else -> {}
}
}
decompiled:
public void c(@l j jVar) {
L.p(jVar, D.f10724I0);
if (jVar instanceof j.c) {
f(new i.h(false), new i.r(c.class, (j) null, 2, (C2498w) null));
} else if (jVar instanceof j.e) {
m(((j.e) jVar).f8620a);
} else if (jVar instanceof j.d) {
List<LatLng> list = ((j.d) jVar).f8619a;
j(I.A4(list, I.w2(list)));
} else if (jVar instanceof j.a) {
d.a a7 = d.f8573a.a(((j.a) jVar).f8616a);
if (a7 instanceof d.a.b) {
f(new i.j(((d.a.b) a7).f8575a));
} else if (a7 instanceof d.a.C0058a) {
f(new i.a(((d.a.C0058a) a7).f8574a));
}
} else if (jVar instanceof j.b) {
f(new i.k(((j.b) jVar).f8617a.f11799a));
}
}
keep in mind, this was buried in hundreds of unlabeled classes and functions. I was only able to find this in a short amount of time because I have the most intimate knowledge of the code possible, having written it myself.
Just buy a cheap Casio if that’s your budget. It’ll keep better time and is less likely to end up in a landfill