skysight-inc/HackerNews huggingface dataset:
Back before devops, containers, postgres etc were mainstream (so not more than ~6 years ago in my industry), soo many were running oracle dbs. And everyone shared the same instance, and it wasn't exactly trivial to get a new personal up and running (licensing, probably required a DBAs help). So then using hsqldb or something else lightweight were golden for local development or integration tests. So abstracting the DB was the default, and absolutely needed.
Large pots and baking trays fit in my dishwasher pretty fine. If you are using 5 multi-gallon pots every day then maybe dishwasher isn’t ideal.

That said, we don’t rinse our dishes or anything. It goes into the dishwasher and comes out spotless. Uses way less energy and water than we would manually washing too.

Dishwasher with roommates actually can be fine. Either run it no matter what is in it at end of day or when it fills up. And just have a lot more dishes than you normally would.

Dishwashers work great for people with an excessive amount of dishes. If you have an exact amount of utensils and dishes then that’s when they fall apart. But that is true of letting dishes pile up in the sink too. So, moot point to me.

The dishwasher has been amazing for my wife who does cook and bake a lot. The whole reason I got one is because she’d spend 30+ minutes everyday standing at the sink manually cleaning every single thing. Huge waste of time and water.
I found myself writing this kind of code recently: https://pastebin.com/fpQzRypp

Sometimes code is being plugged between two highly unstable things. It just needs to work and can't trust that any of the data it receives is valid or good.

I should really be using types here.
Move your logic to pure functions. Use classes for plumbing. Now you can unit test the logic, and integration test the plumbing. You can easily test with a real database using docker for example. Note that you'll still use DI in this case, but you'll have far fewer classes and therefore fewer dependencies as well.
(Ed. “Further, FPS Boost has to be manually” is a typo - but it’s too late to edit my post. (FPS Boost has to be manually enabled only for some titles.))
China offer Taiwanese semiconductor engineers double the salaries
Wage theft needs to be treated as theft. Jail.

It's easy to detect "time-shaving", what with everyone having a trackable cell phone today. If time at work exceeds time on the clock for multiple employees, that shows wage theft.

The Wage and Hour Division of the US Department of Labor should be able to demand triple damages for wage theft. 2/3 goes to the employee, and 1/3 goes to enforcement efforts.

This never happens in union shops, by the way.
That was one of the eyebrow-raising things the author touched on, “automated testing theatre”. Really? Unit testing is pointless...is that now a thing? Is there another industry that is constantly changing its mind or debating every aspect of itself quite like the software development industry?
Is it just me, or NFTs is just useless bragging rights about ownership of digital goods which can't be owned? You can make unlimited indistinguishable copies of an image. Do people really care who pretends to own it?

I mean I guess if you look at show of brands like Luis Vuiton (sp?) There are plenty of people willing to pay for said bragging rights.

As someone who's always mocked those brands and the people who buy them, it seems so strange to me though.
According to that page, Safari for Mac OS is at least one step behind every major browser except IE. I think it's fair to ask whether the images are broken or the Safari release process is broken.
Exactly.

DRY and YAGNI are two basic concepts I've always tried to work with. Do I need this piece of code more than once? Should be extracted/created in a separate place. Would I need this in other projects? Library.

YAGNI is most likely directly conflicting with most of what's mentioned, if the developer simply asks themselves: do I really need this? Will this project benefit from having separate layers of abstraction for things that are most likely never going to change?

I always think twice before writing a single line of code, with the main point of focus being if future me (or anyone who reads that piece of code) will be able to understand and change things, if needed.
The immune system still works as advertised.
Many people have terrible social skills, and introspection.

There’s also the issue that many people choose mates because they want to have sex with them, or because they were young, or gave them attention, or were just around (or some combination of all these things).

People are awful at choosing long term mates and the discussion around this and the selection criteria is really bad.

If your partner has core value differences or just isn’t at some threshold of general intelligence the relationship will be filled with this kind of anxiety inducing misery.

This goes both ways too - I’ve known brilliant women who dated oafish/dumber, but very good-looking/fit men that were filled with similar insecurities. People should select more on core value alignment and intelligence than they do.

The brainwashing isn’t some secret truth of spousal relationships, except perhaps that people are bad at long term mate selection and select for the wrong things.
For North America, tree preservation may be just as important as tree planting. But fire and conservation regulations can be at odds.

Per my CFP insurance carrier, I can no longer plant trees on my property. And the CDF and local fire marshal is encouraging most owners to cut down all vegetation. I routinely see bobcats, coyotes, deer, hawks, falcons, rabbits, squirrels, roadrunners, quail, many species of snakes, many species of butterflies, etc (also saw a mountain lion in the area last year). Last week, a Ca biologist pleaded with me to do nothing to a 5 acre stand of old oak trees (was going to do some tree trimmming), while the fire authorities routinely threaten me with fines.
I once followed that thread of starting to observe nature around me so far that I ended up switching careers and became an ecologist, lol.

It’s definitely good for the mind!
I want something I can put my favorite arm sbc inside.
Hi! We do support US and non-US residents and US + non-US citizens!
For example, the open-close principle. The author blames this advice on tooling of the 90s and proposes instead “Change the code to make it do something else”.

This has nothing to do with tooling, but the fact that pulling the rug under an established code base could have very unintended effects, compared to simply adding and extending functionality without touching what is already there.

By doing as the author suggests you’ll end up with either 500 broken tests or 5000 compiler errors in the best case, or in the worst case an effectively instantly legacied code base where you can’t trust anything to do what it says.

I once had to change an entire codebase’s usage of ints to uuids, which took roughly 2 whole days of fixing types and tests, even though logically it was almost equivalent. Imagine changing anything and everything to “make it do something else”.
Fun fact: DWM enforces >1 frame of input lag on every Windows application running in a window. It is impossible to do better than 1 frame. But DWM itself does better: when you drag windows around they apparently stick to the mouse cursor exactly, which would be zero frames of latency. How do they do it? By cheating: they delay the mouse cursor by one frame, only while you are dragging a window. So the latency is still there but less obvious because it doesn't cause a difference between the cursor and window motion.
> [W]ork at higher profile companies/organizations -- AmaGooFaceSoft, startups or small companies with anomalously high profile (locally, nationally, whatever), or in positions where by your nature you're exposed to lots of people.

This advice is generally already followed. It's far more competitive when applying for roles with high visibility or companies with high brand recognition.
The natural segue for this sort of contrarian “I don’t need your patterns” stuff is logically “I don’t need unit tests either”, soooo pretty sure the answer there is “you don’t need tests”
I dislike sandboxes that

- have complicated permissions that users misunderstand or can be tricked into misconfiguring through inattention, misleading user interface or fatigue

- aren't actually sandboxes because the isolation they claim isn't actually achieved (I usually call these "security holes")

- are used to artificially force markets (e.g., Microsoft's UWP)

Other than that, they're great.

Signed, cranky, pre-morning-coffee programmer speaking ex cathedra from the 1970s
I like to imagine a final analysis of all code ever written by humans, after some ai hypermind from the future has digested it, turning out to be 99.999% dependency injection boilerplate
So it's like working in the middle office of a normal high street bank, but managed by psychopaths rather than depressives?
"This article isn’t about those principles, that will be my next post."

The article does not present an alternative to SOLID, that's the next article.
For every person that dies (an agonizing death akin to medieval torture), a few more are in intensive care fighting for their lives. For every one of those, others end up in the hospital, spread the disease to others, suffer from “long covid”, or merely suffer greatly. Every person that gets covid adds to the likelihood the disease will become uncontrollable in the long term and endemic.

Keep wearing your masks and social distancing people. It’s hard, it’s a sacrifice, but together we can conquer this disease and return to life “as normal”.
No traces of capitalism there, yet abuse was deeply engraved. Conclusion: abuse has nothing to do with the type/philosophy of the market.
It's definitely not easy, but it's what companies do all the time, and courts are pretty used to getting access to internal documents that model cost structures, as well as bringing in expert witnesses from the industry.

But basically, any company (like Amazon) does cost modeling of every step involved in a process long before they decide whether to hire employees to do it, or contract it out. In fact, that's precisely how they can determine how much they're willing to pay to contract something out.

So it's not really that hard for a court to demand that a company produce its modeling estimates, and then compare with the actual service provided, and show that the company either a) knew that corners would need to be cut illegally, or b) made negligent assumptions.

Remember, I'm not talking about mom and pop shops who are all sharing a single huge contractor like UPS or FedEx. I'm talking about huge companies like Amazon or Uber who use a large number of subcontractors. They have entire teams of people who model this stuff. They know exactly what they're doing.
SOLID isn’t very good, but most of the alternatives are worse. I mean if the author thinks the SOLID principles are vague, but then go on saying “it should fit in my head” seems not like a good replacement. That is also very vague and arbitrary. Perhaps the author should combine them and it gets somewhat less vague.
He says the principles are wrong and says instead to just write simple code, but doesn’t offer suggestions for how to keep it simple. As if simple code is easy to write. There’s nothing more simple than a giant list of global variables. SOLID is an attempt to keep the code as simple as possible as it grows in size and complexity. It’s not perfect but anything is lousy if you misuse or overdo it
I think that is a feature, not a bug. I think it makes sense in different contexts for "responsibility" to be abstracted differently. The two extremes are lots of files and functions versus fewer files and functions, and the optimal balance to strike is probably based on whether it is important for people to focus on the modules, or the arrangement of those modules. For high-performance C++ libraries with a good design/architect, it could make sense to split up to a lot of files/functions, so that each function can be iterated upon and improved. For a less-performance sensitive Java library where understanding and usage is most important, you would want less files/functions such that the development focus is more on the high level ideas, the arrangement of the parts (or refactoring).

With any paradigm, there is often ambiguity with certain elements, because those elements should be dynamic. What SOLID aims to do is say that these main points are not something you should dedicate brain cycles towards, as they are best spent elsewhere in the design.
> It is impossible to do better than 1 frame.

Exclusive fullscreen applications shouldn't need any compositing, surely they must be exempt from that.
Sturdy: Software Collaboration. Reimagined
I'm happy user of Chrome extension called savePageWe
1. Buying a house
2. Deciding not to have kids
3. Deciding not to plan to live past 50-55
This is good news. Now maybe Fauci should rethink his idea that people need to wear their masks for another year even after getting vaccinated. One of his reasons was because of worry about the variants.
One thing to add here: certain banks do have restrictions around what country one is a resident in regarding whether or not they are able to open an account for you. For example, you can check out the list of supported countries for Mercury here! https://mercury.com/faq
About this: I have a relation who works for a relatively large upstream auto part supplier. I asked him somewhat jokingly about this fight club scene, and he immediately and unabashedly told me he'd been involved in a number of such conversations. In retrospect, I can't understand why I was at all surprised: how else would the conversations go in a corporation (whose sole or primary incentive is by default monetary)?

(To be clear, I'm not saying that I find this morally correct — I'm not sure how I feel about that aspect, honestly, except icky at the surface level. I more means that it seems retrospectively to me that, well, of course that's how it would go, given the incentive structure)
You pick a language that doesn’t require you to bend your architecture around testing.

This is a classic example of software-pattern-being-language-defect.

It is trivial to mock out upstream or downstream dependencies in Python, without any changes to the code under test.
So becuase our industry is so unprofessional that you can literally point to loads of it and say "that has cost humanity billions", this entire argument is stupid and actually there is no problem at all?

Not sure that's the right attitude.
This seems appropriate. My area has had a big outdoor traditional folk music festival for nearly twenty years (it ended pre-COVID though due to rising costs) so I've long had an appreciation for things like that. Irish and Acadian music, blues and jazz, sacred steel, Japanese drumming, Tuvan throat singing...there's a whole wealth of art out there that has historical and cultural importance, but will never be marketable in the mainstream. It's important to record and promote that.

The Demoscene fits right in, as a short lived subculture that grew out of a radical democratization of technology.
https://amycastor.com/2021/03/14/metakovan-the-mystery-beepl...

Particularly the "Number Go Up" section, which shows that the buyer also runs (and owns a majority of) a crypto token called "B20", which curiously enough, Beeple also has a 2% stake in.
And most of them are redundant , was always wondering what most of the managers in our division actually did as we seemed to function better without them during WFH.
> it takes days to fill up the dishwasher to a level where running it isn't wasteful

Dishwashers are much more efficient than you think -- more than handwashing. Just run it every day or two.
His entire screed on single responsibility principle spins around on semantics.
Firstly if the dependency isn't doing any io, you can test your code as a whole along with its dependency. No need to mock.

More interesting is if your code relies on the outside world, then instead of abstracting out the connection with the outside world abstract out your business logic and test it separately.

So instead of a database repository being injected into your domain services, make your services rely on pure domain objects which could come from any where be it tests or the database.

Make a thin outer shell which feeds data into your domain logic from the outside world and test that via integration tests if necessary.

I'll admit I don't have the full picture here, but I have used this technique to good effect. The core idea is don't embed your infrastructure code deep inside your architecture instead move it to the very top.
it does have beautiful plumage afterall
multiple people can be wrong, so it is not a valid argument.
I can write 10 nested loops and overwrite value of a single cpu register with a single value, so many times, that it will exceed any big data cluster capacity. This is what I meant by CPUs are fast.

if you study engine internals, especially MergeJoin, HashJoin, NestedLoopJoin - they all do comoute cartesian while simultaneously applying predicates. Some operations are faster because of sorting and hashing, but they still do cartesian.
Wearing masks have benefits beyond covid. Think about how many lives per year we could save from the flu let alone other airborne respiratory viruses if mask wearing was normalized.
He mentions he’d want to feel temperature through this tech, and all I can think of is, what if it gets hacked.

Nonetheless, great accomplishment for humankind.
It's a Friday team lunch thing, quite civilised really.
I know of at least one company that’s slowly dying because their product is irreparably tied to oracle

Literally impossible to get any new clients to agree to run on oracle
I like this framing.

In graduate school, I worked for 2+ years before my first paper was published. In that time, I passed my PhD qualifying exam, took classes, wrote code, read papers, learned math, and so forth. Yet when I applied for internships, I received no interest from employers. I suspect this was because I had no concrete signal that I knew anything in my field.

While working on my second paper, I started blogging. In the language of this article, I started generating public intellectual capital for myself. I have definitely experienced the effects of this capital on subsequent job hunts. Now I can point people to my blog to demonstrate knowledge, technical skills, and communication skills beyond the scope of my peer-reviewed work. Furthermore, there is no question about who contributed to my blog, and when I learn something new, I can externalize that quickly.
We (scientists) know this number, be Academia, clinical, etc. After all, we have grants and budgets to follow and we are skeptic of anything too expensive or cheap.
This is not well aligned with other research[1] showing the Pfizer and Moderna vaccines perform little better against the B1351 (South Africa) variant than they do against plain old SARS and distantly related bat COVIDs. They're also only semi-effective against the Brazilian P1 variant.

Right now, all of the vaccines are reasonably effective against the variants commonly circulating in the US (including B117), which is what the JAMA article tested. But I worry for how well they'll perform in a few months when the other variants get a foothold.

[1]: https://www.cell.com/cell/pdf/S0092-8674(21)00298-1.pdf
Indeed, you'll find that type annotations and enforcing them with a type checker will eliminate all those `assert`s for `not None`.
It's a good point though. Who decides what "one reason to change" is? a 10-line method could easily have hundreds of reasons to change.
+1 on the hyperboles. You see so many articles with titles like “Never use a singleton unless you want to lose your marriage like me”
What’s the purpose of comments like this?

EDIT: I see someone mentioning Trump below and I can’t reply. Trump was never interested in managing covid-19 or effective border control. This would’ve been the perfect opportunity for him to show why having smart borders was useful. He would’ve received support from within the government. He would’ve managed covid-19 successfully perhaps, and won re-election.

The problem was Trump was a completely ineffective and incompetent leader, who didn’t care at all about the things he claimed to care about. Mandatory quarantines and tests for people traveling to America would’ve been a lot of work and Trump was allergic to that. He was a man who preferred the cheers at his rallies over the difficult work of administrating and governing.
Congratulations on the launch! Greetings to JP!
"single responsibility" is not reducible/replaceable with "code that 'Fits In My Head'".

Our head may very well fit two pieces of code which are disparate and which would be use to separate into distinct functions.

----

"Open-Closed Principle... was sage advice in an age where ... we hadn’t figured out refactoring yet ..."

Well, as far as I'm concerned, we haven't "figured out refactoring" yet. I'm currently working with a group of people 75% of whose' work is just gradually and slowly refactoring an existing codebase.

"Nowadays, the equivalent advice if you need code to do something else is: Change the code to make it do something else! It sounds trite, but we think of code as malleable now like clay"

That may be true when you're writing code for your own use, or the use of a very small group of people (the large "user base" doesn't work with the code, they interact with what the code does). When you're writing a library, or code with which near-strangers need to work, you can't just willy-nilly change things. Moreover, you must strive to make your code good enough so that it doesn't need to be changed all the time; an ever-changing codebase is difficult to rely on (unless somebody takes a snapshot, and is back in the case of never-changing code).

---

... but I do appreciate some of the points made. Defining what "one thing" means is definitely not trivial and obvious, for example.
The problem here as seen from Amazon's point of view isn't that someone broke the rules, it's that they were busted for doing so. Same with Apple and any other corp where a contractor violates the rules; you punish them for being discovered, not for breaking the rules in the first place.
Yes, I know; I was technical editor of the last surviving Amstrad CPC magazine in Britain. I was asking what pseudonym/handle GP wrote demos under - I wondered whether it was one I'd remember.
You can separate your code into “logic” which has no external dependencies (just logic, eg a domain model) and “infrastructure” which does. Infrastructure still requires DI but Logic doesn’t.

Some programs are nothing but Infrastructure (DB backed microservices) but some have complex Logic (complex problem domains). In the latter case the most important parts of the system can be tested without DI.

You still need DI but not pervasively.
As a desktop app developer this is what I need.

I publish a snap variation and so many edge cases break the security system and make the app unusable.

Home perms? What if the user symlinks something into their home directory? Etc
I just struggle with women actually wanting to date. Online dating nowadays just feels like texting but i somehow have to be capable of it all. Like, I'm human. I have failures and didn't live a perfect life. Just kinda irks me when most women seem to be the ones not wanting to commit just cause they've got a wealth of options.
User Interface as an API for Humans
BuildZoom (better way to build custom homes) is hiring engineers (remote)
Some people don't just watch porn for 10 minutes while they masturbate. Some people obsess over finding the right video, open a million tabs, and watch porn for hours while obsessing over the content. Some people have an unhealthy relationship with porn.