Nice write up on the OpenStruct object in ruby!
However, I have to do my due diligence here. For most (all?) cases, using OpenStruct is a terrible anti-pattern. Any OpenStruct object will respond to any method you call on it and if it doesn’t exist, returns nil. This causes uncertainty within the system and makes testing a nightmare.
As I recommend to most people, you’re better off using a PORO (plain old ruby object)!
And anima makes it very easy to avoid OpenStruct/Struct.
I thought so too, until a friend corrected me: That was fixed several years ago and isn’t still the case.
Thanks for sharing your precious experience with OpenStruct :-)
Anyway, the goal of my articles is just to describe a notion as deeply as possible. I prefer to keep a neutral point-of-view because each notion that I describe can be useful in many cases.
Implementing the notion in real use cases is just a matter of sensitivity for each developer.
That’s why I’m glad that you share your opinion and your experience with the OpenStruct class here.
I like reading about all the nooks and crannies about Ruby so your articles are very interesting to me! Thanks for sharing.
Why do you want that neutral position? One of the things I really love in articles is seeing how people evaluate the benefits and risks of tools like OpenStruct. I get to understand when to use or not use something, learn general strategies useful for other tools. Let the documentation be non-judgemental description, I want experienced opinions. :)
Actually my articles are made to demystify a misunderstood or opaque notion. By doing so, developers can take the decision to apply the notion or not by knowing all the aspects of it.
Also, this enhances their general culture about the language.
After, your point of view is also correct. Maybe, in a near future I’ll start to share my experience with the notions that I treat in my articles.
Thanks for the feedback. It’s really appreciated :-)
More inclusive and open
Male and female emoji have been merged into gender-neutral emoji that are relevant to you
I fail to see why this is “more inclusive” or “open”. I mean, I’m all for people who are gender-neutral, I have no problems with this, but considering that the vast majority of the population isn’t gender-neutral, it’s actually less inclusive, by definition. Either provide more possibilities or go ahead and just say that there are fewer options. But don’t bend over backward to appease a small amount of people by normalizing everyone. :(
The way I see it is that Unicode emoji tried to be gender-inclusive by adding a “female” modifier (emoji + zero-width joiner + ♀️).
This reinforces a false binary, and the way it’s implemented in mainstream emoji design reinforces gender stereotypes. Women have long hair, makeup, and pink clothes; men have short hair and blue clothes; that sort of thing.
Gender isn’t something that can be seen, and so I don’t think adding more and more gender options makes sense. In my opinion, it would be much better to offer stylistic choice, such as “long hair” or “makeup”, as options unrelated to gender, since that’s what they are.
I don’t agree that having fewer gender options makes it less inclusive. It isn’t saying that every emoji represents a non-binary or agender person or anything. It simply does not specify a gender, and so they aren’t excluding anyone on basis of gender.
Edit: it’s like how the basic facial expression emoji were never gendered to begin with, and so there is no need to add more gender options to them.
Gender isn’t something that can be seen
Most of the time it can but not on something as tiny and reductive as an emoji without having to use things like clothes color.
Sure, you can guess, and odds are you’d be right a lot of the time, but it still isn’t defined by any kind of outward appearance.
Additionally, I find it odd that they’ve chosen to reduce the set of available choices when it comes to gender, but they’ve greatly expanded the choices when it comes to race. I think they should decide whether they want to provide options for things like race, gender, sexuality or not provide options.
I poked around and found a relevant pair of questions in the FAQ on the race and gender questions. They don’t specifically compare the two decisions, but the rationale for each is there.
Argh, I want to upvote ‘The Commons Clause will destroy open source’ without upvoting Redis Labs’s action.
Upvote for the discussion. “Company Makes Business Decision” is rarely on-topic for Lobsters and often goes off the Rails; I’ve upvoted because I appreciate that we’re not rehashing well-worn licensing arguments here, though this announcement was poorly written.
This is the second time Lobsters has censored my articles by merging them into tangentally related discussions.
Nobody is censoring you. If anything, your visibility has been boosted by being on front page with another high-visibility thread. I didn’t even know about your article until I saw it here. To avoid clutter, the admins sometimes combine posts talking about same event or topic into a group. I can see someone not liking that decision. I’m not for or against it right now.
You weren’t censored, though. A mechanism bringing your writing to my attention is opposite of censorship.
I don’t think you have this exactly right. What happens is someone submits it as an independent post, which is freely ranked on its own merits. Then a moderator merges it with a post which is already growing stale, as a significant fraction of the site has already looked at it and has little reason to return, except to consider replies to their comments - and even then they have to notice more articles have been added. It also removes a dedicated space for discussing that particular article, which in this case is important because the second article is more about Commons than it is about Redis, making the discussions difficult to live in parallel.
The original, independent post was censored by merging it into here. On the previous occasion the new post was merged into a post which was then several days old, where I presume approximately zero people saw it. This is censorship, and a clear cut case of it too. I don’t consider myself entitled to exposure but it’s censorship all the same, and part of the reason I distanced myself from Lobsters except to participate where others have posted my content.
The original, independent post was censored by merging it into here. On the previous occasion the new post was merged into a post which was then several days old, where I presume approximately zero people saw it.
If your story disappeared, that scenario would be censorship since it was manipulated in a way that would nearly guarantee nobody would see it. The new one isn’t censorship because censorship is about people not seeing your stuff. The combined submission is 20+ votes on front page of a site with more readers than most blogs. Your views going up instead of down is opposite of censorship at least in general definition and effect it has.
The new one isn’t censorship because censorship is about people not seeing your stuff
“Taking measures which prevent others from seeing your stuff” is literally censorship. I don’t want to argue semantics with you any longer. All of the information is on the table in the comments here, let people read them and settle on an opinion themselves.
“Taking measures which prevent others from seeing your stuff” is literally censorship”
I saw your stuff through Lobsters’ measures. So, it’s not censorship by your definition.
“let people read them and settle on an opinion themselves”
By all means.
I really appreciate your point of view normally, but in this case I think you’re incorrect: it would be nice to have the community’s take on @SirCmpwn’s article itself (which is well worth reading) rather than have the comments blended in with those on Redis Labs.
Upvoting doesn’t necessarily have to be approval of the content of the post. (though it usually should be)
You should add Paperkast to the list of sister sites.
How is https://github.com/lobsters/lobsters/wiki not a standardized directory?
I also wish I’d discovered it sooner. However, other than nesting it under the “Wiki” link at the bottom page, I don’t see a solution that wouldn’t start cluttering up the site with information most people won’t need.
It’s linked from the about page.
So, I work on two projects at work. One is a agent, part of a distributed system, that runs in several servers and provides access to some hardware connected to said servers. We maintain some of those servers, others are run by users. The other project is a library, used by the first project.
The agent system is release once every sprint, and our sprints take 2 weeks. In the Tuesday of the second week, we ‘close’ the release: nothing merged after this will get in the release, unless it’s a bugfix. Then for the next 3 days, we run manual tests on the whole system (of which the agent is a part). If errors are found, we merge the fixes. We use a sort of trunk based development, so, if we find a bug, we’ll create a release branch and cherry-pick it there. Once we ran all tests, we manually generate a zip package (which involves creating a fresh clone, copying a bunch of files around, and zipping the resulting folder) and a) manually deploy it to the servers we maintain, and b) upload it to an internal confluence page.
It’s very manual and very error-prone. We’re finally automating some parts of it, but it’s not done yet. The system is written in python, so we could be a simple pip package, but for permission reasons (not everyone is allowed to run it), we’re not there yet.
The library is kinda worse. First, it has a binary dependency, that lives in separated repositories, so we have to make sure we keep the versions synced. It’s also a python project, but also not packaged as a pip package. The way it’s release is: We compile the binary dependency, copy it over to the development repo. We than commit and merge the release in the development branch. Then, we copy the changes, MANUALLY, to a “release” repository, commit it in there, and merge it. The users get the updates from the release repository, and we work in the development repository. I tried to sync the repositories history, to simplify this freaking mess, but there are manually applied changes in the release repository that make it impossible (or nearly) to just squash and push the changes from the development repo to the release repo.
I recently wrote a small makefile to automate some of this terrible process, and my plan is to bring all this crap together in a single repo, split the library into two parts, and package both of them as proper pip-installable packages, but we’re a fairly long way from that, yet.
Tell me that ain’t painful.
Oh, also important to note: the agent system has some automated tests, that are supposed to run for every pushed commit and give it a -1 code review if it fails. That’s broken, currently, and because our PO is a , we haven’t had time to fix it yet. When it used to run, it was a good thing, but we don’t have lots of coverage, and the main server (that controls all agent servers), has almost no automated tests, so, there’s that.
The library has some unit tests, but it’s a library to communicate with smartphones, so, there’s only so much test you can do without actually connecting it to a real phone and testing it. We do have a separated repo with integration tests that use real hardware, but it’s completely broken and I haven’t got time to fix it yet. So right now the reality is: I run the unit tests before a release, run a basic connection test, and hope for the best =/ Our release cycle is pretty tiny, one week, and we have release a worrying amount of bugs into production in the last months. I raised that with our manager and got the usual “Yeah, we should worry about that” response that will likely turn into no actual action.
Thanks for elaborating. I think that managers can be motivated by costs sometimes. If you add up the time it takes to do all the manual steps, say, over a month, then the effort required for automation might look more attractive. Maybe you could show that it will pay off within 6 months or a year.
Your comment doesn’t answer the OP’s questions and doesn’t contribute anything to the discussion. Please write something useful instead. I’m disappointed that several people thought this one-word comment should be upvoted.
It would be better if lobste.rs didn’t devolve into obvious one-word jokes. There’s already Reddit.
Please don’t post snarky, unsubstantial comments like this. They’re the candy of forums: delightful for a sweet moment and ruinous in quantity.
I don’t want to sound arrogant but just stating ‘Painful.’ doesn’t seem to be helpful imho… Care to explain why it’s painful en what actions you have taken/you will take to make it less painful?
Perhaps this is a reasonable place to open a discussion about why lobste.rs doesn’t have a politics tag. The way technology is built and used is political; it’s hard to entertain arguments against that. I have deep empathy with the point of view that technology is a craft and an engineering discipline and there is a whole set of discussions and a space to be made for talking about technology in as non political a way as possible, which is what lobste.rs currently does, and I do kind of like it like that.
However the reason I think it’s important to bring political discourse into this space is because you lobste.rs are making politics decisions when you choose your job, choose the work you do and make critical technological and political decisions as part of your work which affect All Your Relationships*; this is an intelligent, considerate and engaged community and I see much more harm than good in choosing to hide from that fact, though I will say again I have a huge respect for and enjoyment of this space as a non-political one.
So I suppose I’d like to pose the question, given that the tagging system allows any user to filter out posts they are not interested in, what does the lobste.rs community have to lose by opening itself to some political discussion? Is there a feeling that it will somehow pose a risk to this community? Is there a fear that a certain type of user will be attracted, that a certain type of behaviour will be allowed/promoted by this which will have a negative impact throughout the whole site?
I don’t want to promote the idea that lobste.rs should be a political space, I want to check in with everyone here that we are all ok that it isn’t and have properly checked in with what our fears and rationalisations are about that choice.
** The ‘All Your Relationships’ idea comes from the talk in this link which suggests the idea that all technologists are touching a huge network of people and that in some way you have a real relationship with many many people, e.g. all the people that worked to manufacture the phone in your pocket.
what does the lobste.rs community have to lose by opening itself to some political discussion?
see
Long answerthis is an intelligent, considerate and engaged community
Tag usage
First, a note on tags: every tag we add is an explicit endorsement that that sort of content is acceptable and encouraged on the site–the omission of a tag is a hint that maybe that content would be better served elsewhere.
If we were to include a politics tag, we’d in effect be saying “Okay, the distribution of topics appropriate for Lobsters now includes politics. This is valid to bring up in all conversations, because at worst it’s merely mislabeled and mistagged.” So, we’re then stuck with more politics in everyday use in the site.
Availability elsewhere
Simply put, politics are better covered elsewhere:
It’s not like our fellow crustaceans can’t find something to slate their thirst for politics elsewhere–not only that, but they have dozens if not hundreds of sites to choose from to match their political requirements.
By contrast, Lobsters itself is a rare gem (if I may say so myself) in that it is relatively pure technical discussion, a refuge from a world of blathering bullshit and ponderous pandering.
Politics is the boardkiller
I’ve explored elsewhere how political submissions can be used to farm karma at the expense of discussion. The key things to note about political articles:
We probably share this board with a few tankies. We probably share this board with a few Nazis. We have folks here that don’t recognize a standard arrangement of genders or possibly even human identities. We have folks that are from the US, from the UK, from the rest of the world. We even have a few Windows users.
And we all get along (mostly) because we aren’t constantly pitted against each other in pointless tribal ideological posturing and signaling. We all get to respect each other as practitioners of technology instead of representatives of some other out-group.
Why would we want to risk sacrificing that?
EDIT:
I’ll point out that 4chan has created at least 2 containment boards for politics (the equivalent of your proposed tag), and not only has that failed it’s only fostered some of the most corrosive drivel on the internet.
Chat link is broken? Are you referring to IRC? For people that don’t inhabit that space is there any mechanism for decisions / important discussions that happen there to get filtered back to the website?
Fixed the chat link; should’ve been to /chat not /, sorry about that.
Discussion filters back into meta threads. We’re generally just shooting the breeze or kicking ideas around, it’s not very serious because it’s so transient and has only a fraction of the community on it. The only important thing I can think of that’s come out of it was this comment (though it’s been a long couple days for me so maybe I’m forgetting something).
Perhaps this is a reasonable place to open a discussion about why lobste.rs doesn’t have a politics tag.
We don’t have a politics tag, in part and sufficiently, because the topic is too broad for a contributor to have a meaningful understanding of the topics and discussion that would fall under it. For folk that can make meaningful, informed, truthful, and constructive contributions in an on-topic matter, there is the law tag.
We’re a community of practitioners. The practice of politics is law. Practitioners of law, whether legislators, lawyers, judges, or any of the various roles in courts and the extant legal system are welcome here. Along with the technical discussions these practitioners engage in.
However the reason I think it’s important to bring political discourse into this space is because you…
This is called entryism: “…an organisation or state encourages its members or supporters to join another, usually larger, organisation in an attempt to expand influence and expand their ideas and program.”
Here you providing a totalizing reason (“All Your Relationships”) as to why a new tag should be added. Tags are deflationary, not inflationary. They identify areas where a subset of our readers and contributors can expect detailed, operational, consistent, and where possible even scientific discourse. And that further they can measure their own understanding of the topic because it has clear and defined boundaries.
Politics is off-topic here because it lacks parsimony. In order to create space for technical topics we do not discriminate on the basis of people, groups, or fields of endeavor. Folk are here to talk about and work on their own and their field’s issues in sufficient technical detail to coordinate with their peers. Ideology, politics, propaganda, framing, and other fictionalisms are an impediment to dealing with the technical and material nature of our work and world.
The chattering class has plenty of places on the Internet to proselytize. This isn’t one of them.
“Perhaps this is a reasonable place to open a discussion about why lobste.rs doesn’t have a politics tag.”
We did. The were a large number of people in support of or against politics or tags. No clear winner. Further, most that support it want to be able to talk about it on any article to push their political views. Of them, some want many views to be discussed as part of the political process and others want all opponents censored and/or ejected. For different reasons, both need political comments available on every thread. There’s some others but that’s the major groups based on what they said or did.
Im in the group that’s for banning most politics or limiting it to politically-focused threads tagged as such. Like I said, the prior discussions got nowhere for my side. So, I discourage even talking about it to avoid polluting more threads. We can just do a yearly meta or something to assess if the community’s preferences have changed. That’s assuming @pushcx would go with the popular vote to begin with. His own convictions might lead him to do something different.
Who knows except to say we’re better off not talking about banning politics or a new tag more than once a year since it’s wasted bandwidth that also often causes headaches for our moderators when fights break out.
I can’t find the ones about tags past the comments we just made. Search engine isn’t that good. The political arguments have mostly been scattered among many threads. No links to take you right to what you want. Sorry. The fact that I don’t have one readily available might be a good reason to do another one as a tag suggestion. Then, you’ll probably see people’s views real quickly. ;)
[Comment removed by author]
This talk is only tangentially about climate change, as one globally significant effect that technology has and a great example of how to think about the result of technological work.
‘politics’ is about how groups of people take action together, (in anything other than the most rudimentary ways). So climate change science is different from, but will inform climate change politics, which will be the process of figuring out as a group of people how to collectively respond to the information we understand from climate change science.
to bring this back to my original point, I’m suggesting that the lobste.rs community can have a positive benefit on politics (therefore directly influencing e.g. climate change) through technology by discussion, and therefore should consider carefully the choice to not do that.
You benefit politics by interacting with branches of government, bribes to politicians paid through lobbyists, court action, and last (in effectiveness for time invested) getting a huge pile of voters to push their officials for a specific thing. You can’t do any of that though a tiny, slow-moving, tech forum. We were neither setup for mass action or government interventions nor mostly capable of it. So, doing the people-oriented parts of reform on Lobsters is mostly waste.
Now, Lobsters can help on the legal or technical side by creating the alternatives along with cost-benefit analyses. Then, get folks to share and describe it in places that get lots of attention. Some can even be a business that becomes a Barnacl.es submission after succeeding financially and on mission as a nonprofit or public-benefit corporation. Lobsters has more talent for producing and reviewing the tech than many places. That’s what we should focus on, submit, and talk about here. As we already do. :)
What all does a $190M CANVAS system buys you? I mean of course there’s the database in a datacenter, redundancy, backups, support, yadda yadda, but what else? Does this extend to the terminals the cops use to punch in tickets? Is it much broader in scope than just parking tickets?
I did make an attempt to read that but it seems to have been written in a style to discourage such things. :)
There’s a linked called “cached” under each submission that takes you to an Archive.is copy. Both the original and cached links are working for me. Try cached if original keeps 404ing.
Mostly web programming and related topics. https://push.cx, feed is https://push.cx/feed
@nickpsecurity asked recently for this, too. I think this would be useful and would take a PR for it.
The search code has grown kind of janky. It would be a good start to split objects for story searching from comment searching; having them mixed with all the conditionals makes them hard to follow. There was also a PR to add tests but that’s stalled.
Sidenote: it really irritates me how the culture tag’s negative hotness modifier causes this weekly thread to drop off the front page almost immediately. It’s only 12 hours old and already halfway down page 2.
We used to just tag it with ask and nothing more, but as it’s a meta tag now it fails validation without another tag as well. I picked culture from the list originally because it felt the “best” fit for this thread, but that also irks me how quickly it vanishes. I’m sure it makes a difference to how many people comment on the thread (although if you’re around here for any length of time you’ll know it appears on a Monday, so can go look for it.)
I wonder if there is a better “second” tag for these threads that wouldn’t have the negative cost attached, without mis-appropriating the tag.
/cc @kzisme
practices or programming seem fine. I’d also prefer this thread not drop away so fast. /cc @kzisme who often posts these.
Huh, I always thought this was a quirk of old Java, that it created a seam for mocking or something. Sort of like how the C/C++ practice of only having a single return statement in a function existed to prevent various bugs around forgetting to free memory. That eventually floated free of the original purpose and was a general-purpose maxim I saw applied to memory-managed languages. This article feels like it still knows a bit about why the practice existed (“Surely there’s a better way to do the required testing”) and is looking for a new justification.
IIRC, older Java mocking libraries could only mock an interface. Nowadays, I think they generate a class at runtime if need be.
I wanted to put way more information on the listing but it turns out it’s effectively just a single line it allows you to post, is this a limitation of LinkedIn or was this a choice for the board to have the actual listings somewhere else?
Huh, that’s a really strange limitation and I don’t understand it. I’ve reviewed the settings pages and I can’t see anything like that. When I click “Start a conversation” or “Post a job” I’m prompted for a title and body, and the body text takes several hundred words of lorem ipsum without complaint. If you reload and still can’t post more than one line, please message your posting to me (here or on LinkedIn) and I’ll add it.
It was me being silly in the end. It said “Add a link” in the body and I thought it actually was just for adding a link and tried to cram the whole thing into the title, yet another lesson about late night work output. Thanks for letting me sort it out without getting banned.
Unlike my other inboxes on LinkedIn, it has not turned into a steady stream of recruiter spam, so I feel pretty relaxed about the whole thing.
I pretty much always have three books going, so currently:
That’s exactly my strategy as well (one light, one dense and one technical), I find it means I’m always in the mood to read something (otherwise I’ll resort to shallow articles and silly tutorials online).
I’ve also found the full Discourses more “diluted” than the Enchiridion and didn’t finish it. I definitely suggest you pick up the latter, if you haven’t already.
I’m also trying this:
Spammer’s back, we’re trying +s so the channel won’t be listed in /list commands the bot is probably using to pick targets. This may stick around indefinitely; the channel list is almost never the discovery method visitors use.
Didn’t work, got hit by last night’s renewed attack. I re-enabled +r for a while longer. They’re attacking with compromised routers/IOT devices and folks are developing countermeasures, but the spammers are dedicated enough that it’s a bit of an arms race. I don’t know much of the details, it’s being handled well by Freenode staff and the only reason we’re seeing it at all is that we and they try to err in favor of being open to newbies instead of hard on spambots.
I’ve been very happy with pass, a command-line tool that stores passwords and notes in a git repository. Being a directory of text files, it’s easy to use standard command-line tools on or tinker with programmatically. There’s a thriving ecosystem of plugins, tools, and clients.
I also use autopass for autofilling in X applications. As time goes in, I fill in more and more autotype fields to check ‘remember me’ boxes and other non-standard fields. It’s really convenient. (One annoyance is that if any password files are not valid YAML, autopass errors to stdout without opening a window, so I hit my hotkey and nothing happens.)
One more vote for pass, i’ve been a happy user for years now. Was missing a proper browser extension for it so I built one: Browserpass. It’s no longer maintained by me due to lack of time, but the community is doing a far better job at maintaining it than I possibly could so that’s all good!
Pass looks pretty neat, but the reason I stick with KeePass(XC) is that Pass leaks metadata in the filenames - so your encryption doesn’t protect you from anyone reading the name of every site you have an account with, which is an often overlooked drawback IMO.
Your filenames don’t have to be meaningful though. It would be relativity trivial to extend pass to use randomly generated names, and then use an encrypted key->value file to easily access the file you want.
On the other hand, if someone already has that access to your device, accessing ~/.mozilla/firefox/... or analogous other directories with far more information is just as trivial, and has probably more informational value.
Then youre working around a pretty central part of pass’s design, which I don’t really like. It should be better by default.
wrt your second point, if you give up when they can read the filesystem, why even encrypt at all? IMO the idea is you should be able to put your password storage on an untrusted medium, and know that your data are safe.
if you give up when they can read the filesystem, why even encrypt at all?
Because in my opinion, there’s a difference between a intruder knowing that I have a “mail” password, and them actually knowing this password.
Huh, you made me read the man page and learn about this - it’s really cool! What’s your usage like for this though? Just use any barcode reader and then copy paste in the password box?
A barcode reader I trusted, but yeah - its a good hack because I usually have my laptop which has full disk encryption.
Yeah, when you said that all I could think of was the barcode scanner that I used to use where it would store the result of each barcode scanned in a history file… Not ideal :)
Seems like the android version’s maintainer is giving up. (Nice, 80k lines of code in just one dep…)
The temptation to nih it is growing stronger but I don’t have enough time :(
What’s the point though? If you don’t want to use it, why bother? Why do you care what “Linux users seem to be so obsessed” with?
The world would be a lot better without this kind of hate/phobic trash. Doesn’t matter if it’s desktops or dick, nobody should care about what another person likes if it’s not hurting anyone else.
The post’s main points are 1. not knowing why people use lightweight linux distros, 2. imagining that the only reason is performance, and then 3. dismissing that argument based on the author’s own laptop. It sounds like the author didn’t read about the distros, talk to the users, or otherwise extend the slightest bit of charity that thousands of people who have organized dozens of projects over the last 20 years to build and use these distros maybe have their own experiences and do things for reasons, even if he can’t guess at them and wouldn’t be motivated by them. It’s frustrating because when I realize I’m ignorant of a group that’s made totally different decisions about a familiar topic, I see an opportunity to get a deeper appreciation by incorporating a new perspective. It’s not just that this article fails an ideological turing test, it’s that it seems oblivious to the possibility of learning from others.
(And: what does the author think the word “laborious” means? Nothing in the article touches on anything like toil, industriousness, or painstaking care.)
On top of it, the author points out his hardware is below average. Several of us had a Core Duo 2 with 4GB of RAM as our best machine. Those 1GB apps certainly add up on that. When it broke, the backup I had available was a Celeron I bartered for. The web apps tax the crap out of that. I don’t even try playing good games on it. The money that could’ve gone to a good PC had to go to savings for car repair or replacement. I’m not sure what percentage of us are using older systems due to financial hardship. There’s quite a few of us out there, though.
There’s also people that try to hold onto old systems long as possible to maximize ROI and reduce waste. I’m in that category, too. It’s why I had my Core Duo 2 for long time. Ran great unless app or OS truly wasted resources. “Lightweight” apps ran even better. We try to repurpose or donate these machines when they don’t meet our needs. Maybe a student would appreciate building up some skills on a lightweight Linux than not having a PC at all. Some school with little money might also find it useful at least some of the time.