You are welcome. You can find various lists for your content blocker on https://filterlists.com/ (click the (i) button and then subscribe
).
Not the person you asked, but you can find ready made block lists for YouTube Shorts. For example: https://github.com/gijsdev/ublock-hide-yt-shorts
Given these trends, what might a post-piracy world entail?
Assuming you are right with this:
For media: Buy in or consume less. If piracy will really become less prevalent you don’t really have much choice, do you? I don’t think everyone has to live like I do, but my media consumption in the past few years has shrunk more and more (for various reasons) and maybe that’s something other people may gravitate towards as well. Life has a lot to offer beyond screens.
For software it’s trickier. Maybe you find an open source project that suits your needs or maybe there’s a competitor that hasn’t (yet) enshittified their product. Unfortunately, if you really need a specific piece of software I think you might just be SOL 🤷♂️
Just my two cents
I would have written that comment if you hadn’t already done it.
I don’t know exactly why people think that we can “just” do whatever they ask for.
Maybe it has something to do with how invisible software is to the tech-illiterate person but I’m not convinced. I’m sure there are other professions that get similar treatment.
I do have Ctrl under ä (which would be the semicolon key on US layout, I think). Interestingly, on Mac (with Karabiner) it caused regular mistypes when typing fast, even after a year. On my 12 year old Thinkpad (Linux with keyd) however, I’ve never found the overloading to be an issue.
I’ll probably give the layout in the article a shot. It sounds interesting.
I think it heavily depends on the size and (management) culture of your employer. My most recent gig had me sit in way too many meetings that were way too long (1hr daily anyone?), dealing with a lot of tooling issues and touching legacy code as little as possible while still adding new features to our main product on a daily basis. Obviously “we don’t need a clean solution. We’re going to replace that codebase anyways, next year™”.
The job before that had me actually code for about 80% of the time, but writing tests is annoying and slows you down and we don’t have time for that. Odd how there was always time for fixing the regressions later.
That programming as a career means you’re going to spend writing nice, clean code 80% of the time.
It’s rather debugging code or tooling problems 50% of the time, talking to other people (whether necessary or not) about 35% of the time and the rest may be spent on actually spending time doing the thing you actually enjoy.
I may be exaggerating, but only a little.
For the jargon part: See this Github repo. It ain’t exhaustive, but it’s a start.
Other than that, all I have to add is that functional programming does not necessarily imply static typing. There is a whole world of Scheme-variants that are dynamically typed.
The thing is, it works like this in certain countries. At least in Switzerland and Germany it is possible to make an apprenticeship as a programmer. This means there is a structured path for the vocational education that must meet certain regulatory criteria. Normally this takes 3-4 years to finish and includes both, working at a company as well as visiting vocational school. College is often done after finishing one’s apprenticeship to broaden the understanding of more complex or advanced topics like security, architecture, project management, advanced math etc.
I don’t understand why this system is not more common in other places. Programming (not CS) is very much like a craft and to large degrees can be taught as/similar to one.
I don’t think it’s just a you problem :)
I didn’t think so. I guess Reddit has conditioned me to not state my opinion without a disclaimer, lest someone wants to start arguing :D
Btw. I don’t think you’ll find ZSH more intuitive to program. While it is an awesome interactive shell, the scripting part is Bash taken to the extreme.
Thank you for the thorough write-up. I’m surprised the answer is a “(mostly) yes” (Betteridge’s law).
Will listen to it as soon as I have time.
You should technically be able to run the exe with proton (assuming, you’re talking about Windows games). Maybe Steam does some extra work like setting certain environment variables (see https://github.com/ValveSoftware/Proton#runtime-config-options for a list).
Or you could just run non-steam games through Steam
I’ve never worked on a larger C project, so I’m not the best judge, but I would recommend 21st Century C by Ben Klemens. It was very accessible and gave me a pretty good understanding of how the language worked and how to use modern versions of it.
For me personally, I only keep things I find worth rewatching, so about 50% I delete after. Same with e-books. Games I don’t really pirate (or only pirate them to see if I can run them on my computer). Usually I buy them on Steam and that’s good enough, even though sometimes you lose access to them. I tend to not go back to older games.
It was a cool movie with amazing scenes and it made A New Hope make more sense (explained why the death star had a design flaw.) But I found all the characters really forgettable and it just didn’t give me a satisfying emotional payoff.
All the main characters just died and I didn’t really care 🤷♂️
I think I misunderstood your initial post (and definitely didn’t read it as carefully as I should have 😅).
Do I understand your correctly that your goal is a companion object for your arrays that simplifies access? Not a new data structure that you’d user instead of arrays? If so, most of my points are moot.
If your IDs are integers then there is no need for an hybrid at all, precisely because all you have to do is put each item at the same position as their ID.
If you don’t treat IDs as opaque values, this is true.
I’ll definitely run benchmarks so that users would be aware of performance losses, if any. But use cases of hybrid arrays are mostly small datasets so it usually shouldn’t be a concern indeed.
I think my point is actually wrong (it was really late when I was writing my initial response). Performance would be O(n), since that’s the worst case scenario.
Anyways, I hope you could take something useful from my answer.
Happy hacking :D
I think with digital content platforms in general, competition means more headaches for customers.
The store front/streaming service is not what people sign up for, but the access to a certain movie, show or game. If the catalog of all available pieces of content gets scattered across multiple services you now have to use multiple apps, pay multiple subscription fees and search through multiple catalogs.
I’d say from a customer’s perspective, increased competition lead to a worse situation.
I’m pretty sure I’ve been in your situation but haven’t created a dictionary/array hybrid.
Without any more details about your use case and situation, I can imagine a few pitfalls with your solution:
ArrayLike([ {id: "1" }, { id: "2" } ])[1]
returns { id: "2" }
, how do you access { id: "1" }
by ID?That being said, unless you work in an environment where your code should be easily understandable by others, the best way to find out if this is a good idea or not, is to try :)
Me personally, I usually use an associateBy
function, when I need a values-by-ID structure. Of course this is not as convenient to use as your approach, but it’s good enough for me.
// this WILL drop elements if key is not unique
function associateBy(array, key) {
return array.reduce((acc, el) => ({
...acc,
[el[key]]: el
}), {});
}
associateBy([
{id: "foo"},
{id: "bar"}
], "id").foo; // -> {id: "foo"}
Good luck!
Ignorance is bliss after all