Hacker Newsnew | past | comments | ask | show | jobs | submit | wpietri's commentslogin

For those interested in a keep-everything-hot approach like this, it's worth checking out the 25-year-old library Prevayler. Full ACID guarantees, and radically faster than a database. I happily used it for a project forever ago and was disappointed to see it so thoroughly ignored.

I did a bit of digging after reading this comment and came across its' currently maintained implementation in Clojure by author Klaus Wuestefeld[0] :)

[0] https://github.com/klauswuestefeld/prevayler-clj


Oh, this is interesting. What sort of project did you use it for?

Right? I'll often structure interview questions like this. I give a basic problem, hoping for a basic answer. Then I add complexity, seeing how they respond.

In my experience, it's much easier to train somebody on how to scale a basic system up in response to need than it is to get somebody who favors complexity to cut it back.


> yes you might be right but you also understand what the point of the interview is

To make the interviewer feel smart and powerful? To hire people who will do the thing the boss wants whether or not it makes sense? To find people who will overdesign things to maximize resume impact and the ability of their bosses to talk about what sophisticated systems they're running and for which they therefore need a much bigger budget?


Just to be clear, I'm absolutely not kidding here. E.g., this is the kind of hiring process I favor: https://williampietri.com/writing/2015/slightly-less-awful-h...

To rethink hiring, you have to spend some time understanding why most hiring is terrible both in terms of candidate experience and actual result. In my view so much of both hiring and general business operations is about managerial status and ego. https://en.wikipedia.org/wiki/The_purpose_of_a_system_is_wha...


I'd call it an interviewer failure, not an interviewee failure.

I absolutely want people I hire to be "difficult" when the moment calls for it. If the scenario is one where the right business/user choice is "let them keep using Google Sheets", then the answer I want is "Google Sheets seems fine to me", no matter what people with more power start out wanting. Too many developers have been encouraged to be minions, not professionals.

Ditto for ones who act like everything is a nail for their coding hammer. A developer who can save a company a couple hundred thousand dollars by not turning something simple into a big coding project is a rare and precious commodity. Or should be, at least.

The thing to do isn't to give demerits for "being difficult". The thing to do is to then add something to the scenario where they get into the thing you want them to get to. "For this, we need better access control than Google Sheets allows us." Or, "We need this to be more closely integrated with our accounting system."

Unless, of course, what you're hiring for is the willingness to roll over for unreasonable requests from people with more power. Which, honestly, a lot of places are.


> I absolutely want people I hire to be "difficult" when the moment calls for it.

<3. What do you think makes the difference here in orgs that respect this and those that simply try to hire yesmen?


Humans are primates, and primate dominance dynamics are going to be the default absent some conscious choice otherwise. Our whole executive/worker dichotomy is a descendant of the British class system. (E.g., note that airlines specifically have a "business class".) And MBA-driven business culture is focused on short-term managerial interest, not societal value or long-term business success.

I think all of those tendencies come to the fore at any organization that doesn't have either a strong sense of mission or a sufficiently desperate need for success that they pay attention to material reality rather than social reality. With a possible partial exception for things like co-ops and other places where the culture is fundamentally different enough. E.g., Mondragon, or Zingerman's.

I think Google, back in its don't be evil/organize the world's information era, probably qualified. They started with a very strong mission-driven culture rooted in academics and engineering. It took a fair bit of time for MBA dogmas to make it like most other places. But from everything I hear, what once felt almost like a calling now is just another job.


> MBA-driven business culture is focused on short-term managerial interest, not societal value or long-term business success.

This is a common refrain I also believe in and there's an interesting open question that comes up here about whether or not an engineering department should or shouldn't execute an order that intentionally destroys the product for short term gain.


Agreed. To me that's related to the question of minions vs professionals.

If I go to a doctor and say, "Hey, please prescribe me a lot of morphine," the answer will be some version of "hell no". That's because doctors, even if you pay for the visit, have responsibilities to the patient, the profession, and society at large. Responsibilities that should not be overridden by money or power.

The same is true for actual engineers, like the ones that build bridges. But although we often call ourselves engineers, a lot of us don't act like it. We're often more like the minions in a supervillain's volcano lair: whatever the boss says, we do.

We could be different, though. There's the ACM code of ethics, for example: https://www.acm.org/code-of-ethics

Or the IEEE-CS code of ethics specifically for software: https://www.computer.org/education/code-of-ethics

We could, as a profession, agree to follow those. We could build an organization that supports people who do the right thing in the face of managerial pressure. We could censure those who don't. I'd love to see it happen, but I'm not going to hold my breath.


>The same is true for actual engineers, like the ones that build bridges. But although we often call ourselves engineers, a lot of us don't act like it.

Because software is the wild west. Maybe there's some exceptions in medical tech, but there's no license at risk nor ethics assossiation to be ousted from (nor to vouch for us) if one day we receive something like: "hey, we need you to triangulate and calculate the parameters needed to bomb this children's hospital. Get to it".

Either we do it and go along with our day. Or we don't and get moved or fired.


> when the moment calls for it

In an interview when you’ve been explicitly asked to discuss a topic to have a technical discussion about something is not when the moment calls for it. Doubly so if you’ve been asked twice. If you’re not willing to put aside being technically correct when you’re trying to show off your best self, it’s pretty likely that when things get tough, you’ll behave the same.

> unless of course what you’re being for is the willingness to roll over for unreasonable requests from people with more power

D, do you think that someone saying “can we please talk about a technical topic, here’s an example we’re both likely familiar with” is looking for yes men? I actively want my team and coworkers to challenge me, but I absolutely don’t want to work with that person who appears at every meeting with a list of reasons why we shouldn’t do X.


When I ask an interviewee a technical question, what I want is an answer that is correct technically.

If I want them to give me a different kind of technical answer, then I think it's on me to ask a question that actually requires what I'm looking for. It's not hard! All the Stripe interviewer had to say is, "Ok, great. It sounds like you have a good sense for system capacity. Now let's add another zero to all the load numbers." And then keep increasing orders of magnitude until they learn what they're looking to learn.

I am, just to be clear, not defending people being willfully obtuse or contrary jackasses. But that's not the scenario being described in either the Stripe story or the Google Sheets story I'm responding to. Two apparently reasonable people were asked technical questions and they gave answers that were the right thing for the business.

I think that's good and I like to hire people like that. I get lots of others don't, and I get the POSIWID reasons behind it. But I'm not going to pretend I think it's a healthy way to run an organization. And I also get that the people who like pretense and deference in interviews are not going to like me saying so. ¯\_(ツ)_/¯


> I am, just to be clear, not defending people being willfully obtuse or contrary jackasses

The comment I replied to said:

> "now what if we wanted to build it in-house?" > "Well I would probably go home and work on my resume because that's a fool's errand."

That’s not a different kind of correct, that’s just being a jackass.


I read that as being his emotional reaction, not something he'd say in an interview context. This being an internet forum and all.

What I think he's sincere about is not wanting to work at a place that builds unnecessary stuff. And if people are asking for answers that require building unnecessary stuff, I think it's a reasonable inference that the place is not right for him.

I think interviewing is always a two-way street. If I got the feel that a place was going to have a lot of over-complicated code for me to deal with, or expected a lot of status-driven deference against actual user and business need, I wouldn't just give an interview-ending tart reply. But I would politely finish out the interview and then write them off unless there were other signals that redeemed the bad interview questions.


>do you think that someone saying “can we please talk about a technical topic, here’s an example we’re both likely familiar with” is looking for yes men?

Probably. You say "likely familiar with" but interviews are conducted as if it's a pop quiz. Which I never understood.

If you want to have a decently technical discussion, why not just tell me ahead of time what topic and I come to the interview with research? Why do I have to guess that we're talking about dyanmic programming and be punished if you really cared about graph traversal? (meanwhile the interview is for an embedded programmer. Definitely reflects what you'll really do on the job).

I really hate how few initerviews really felt like they were testing my knowledge related to proper fundamentals and not treated as some pseudo-SAT schlock.


> You say "likely familiar with" but interviews are conducted as if it's a pop quiz. Which I never understood.

Sure - the point of being familiar with it is so that we don't have to spend a chunk of the very limited time we have explaining a problem space, and we can talk about the technical stuff.

> If you want to have a decently technical discussion, why not just tell me ahead of time what topic and I come to the interview with research?

I try really hard to design interviews to not require take home work. I don't have stats to say whether this is right or not, but my goal as a HM is to try and keep the process to recruiter/HM call, 1/2 tech interviews and an interview with someone else on the team who is not a programmer (I hire in games so you're pretty much guaranteed to be working with Artists/Designers).


It seems entirely accurate to me, at least in a POSIWID sense.

The original theory of Bitcoin was, as described in the paper, decentralized digital cash. But in practice it was never optimized for what normal people use cash for. As system like that would be something like M-PESA.

Even at the time, cash was declining in usage. In the 18 years since, it has declined a lot more. And for good reason, because what most people want for most things isn't digital cash, but digital money. E.g., debit cards and Venmo.

So pretty naturally Bitcoin has value only for a few niche use cases that are not well served by more effective systems. Various sorts of crime, mostly. Digital cash, sure, but the kind that's transferred in unmarked envelopes slid quietly across the table. The kind that is delivered in a briefcase.

As a side note, it also failed in its goal of being decentralized. The mining power is very concentrated. Much more so than the banking industry, for example. And most users keep their Bitcoin on deposit in centralized services. So it's again basically banking but worse.


Although it was originally intended to be cash it actually now is used as a "store of wealth" It allows people to build up wealth and be able to preserve it from government intervention and inflation. If you have stocks the ownerhsip and registration is controlled by a government and can be taken at any time from you.

Look at china where if you have a large company and take a stand against the government all your equity will be wiped out and you will be either imprisoned or banished to another country.

Cash in a government bank account is the same way, you can wake up one day and all your assets will be seized, your credit cards will stop working.

Bitcoin works because you can technically have your wealth memorized. You can memorize a string of charcters that allow you to bring money with you no matter where you go. NO government or other human can steal it from you (except through torture) but you can also easily not memorize it and instead distribute the keys throughout the world in opposing countries meaning even if you are attacked by one country you still have some wealth kept in another.

A store of wealth is what bitcion allows. True freedom from governments stealing your money because you have ideas which they do not agree with.

This in my mind is the main usage of bitcoin.

Other coins like stablecoins, or the btc lightning network have high value because they make transactions much cheaper as traditional banking systems are complex, error prone, and costly.


> Although it was originally intended to be cash it actually now is used as a "store of wealth"

It's also terrible at that. Bitcoin is down by something like half off its peak. The odds of me losing money to "government intervention" if I'm not actively criming, are quite low. Certainly well under 50%.

> Bitcoin works because you can technically have your wealth memorized.

If you are having to reach for increasingly absurd fantasy scenarios to justify something that was supposed to have thoroughly quotidian users, maybe you should take that as a sign?

> because you have ideas which they do not agree with

Oh, that's who's using bitcoin the most? Philosophers and the like? I had no idea.


This is not a common man's dream, but one of privilege and wealthy background. The oppressed masses don't need Bitcoin, they have no wealth to "memorize" and jetset around the world.


It's precisely the opposite actually; If you're wealthy you can switch citizenships, hide your assets in tax havens, and afford property and other assets to store your wealth. For the debanked, or those living in unstable or authoritarian countries it gives them a more stable way to store and transact, especially with massive inflation.

Pretty much everyone I know who talks shit about bitcoin is wealthy and privileged.


Look back in history and there have been many cases of poor people being pushed out of their homes, stripped of their valuable goods and forced to relocate, in that case it would apply to those who were not wealthy.


I don't see how a blockchain would help there. Put the house on the blockchain or what?


> Although it was originally intended to be cash it actually now is used as a "store of wealth"

For some definition of "actually", given how much it has dropped recently. When he was still a just a candidate, the current Opposition leader in Canada was very excited about Bitcoin:

> As Poilievre campaigned for the Tory leadership on the way to a landslide victory, he spoke positively about decentralized finance and cryptocurrency. At one point, he argued that crypto would allow Canadians to "opt-out" of inflation, which was soaring at the time. And he famously used Bitcoin to purchase a shawarma at a London, Ont., restaurant in March 2022.

* Nov 2023: https://www.cbc.ca/news/politics/cryptocurrency-political-co...

> In 2022, when Pierre Poilievre was a Conservative leadership candidate, he said he’d make Canada the crypto capital of the world. According to him, the Bank of Canada was “ruining” the Canadian dollar, printing money and ramping up inflation to fund COVID-19 relief. His solution? Give Canadians crypto as an alternative currency.

* Apr 2025: https://macleans.ca/politics/who-stands-to-win-in-poilievres...

Given the noise that was made about inflation at the time and the (alleged) devaluation of the CAD, I'm curious to know what the inflation rate equivalent would be now (Feb 2026) if Bitcoin is used as the monetary base.


POSIWID = the Purpose Of the System Is What It Does.


As a former Wikipedia admin, I think the best way to think of it as a massive text-focused battle MMORPG that happens to produce an encyclopedia as a side effect.


Yep, the encyclopedia is the not-so-wasteful "proof of work" part of the MMORPG. It's a game, but you grind it by working on generally useful stuff.


Haha and with battles in the form of massive flame wars?


Every community is the sum of its members. Each person who joins changes it, at least a bit. And each of those members is changing and growing.

When community members have different needs, forking should be a last resort. It's expensive, and it's wasteful unless two different groups have irreconcilable needs. It should only ever be suggested as a last resort, after other options have been exhausted.

However, it's often used as a first resort to shut down criticism and to protect existing power structures. The person who speaks up is, as here, treated as an outsider and an exploiter.


I rarely see good faith engagements being immediately shut down with "just fork it" (you'd never accept issues / MRs!). Instead it's usually used as a last resort when the "exploiter" doesn't get their way and starts whining about it.

If a change is proposed that's completely counter to a community's stated values, then I guess "fork it" is a more appropriate immediate response, because it's hard to see how such a clash could be resolved without fundamental change.

Edit

> Every community is the sum of its members

A community is much more than the sum of it's members.


> Instead it's usually used as a last resort when the "exploiter" doesn't get their way

I am not saying the phrase can't be used legitimately. Like the article's author, I just think it's often used in a way that isn't. Perhaps we're sampling from different areas of open-source culture, but when I think specifically of HN, I think just-fork-it style responses of the kind that the author is criticizing are common.

> A community is much more than the sum of it's members.

Sure, I agree with that. But you write it as if it's in contradiction with my point, which I'm not seeing.


> But you write it as if it's in contradiction with my point, which I'm not seeing.

My point was that a community is members + values + practices + other stuff. In the case where one member who wants to upend the values and practices of an existing community, "just fork it" is an entirely reasonable response.


You say "often used as a first resort to shut down criticism"

You're replying to a comment that says, "rarely see good faith engagements being immediately shut down with 'just fork it'"

They do seem to be clearly contradicting your point


I imagine with coding agents, maintaining private forks (reapplying patches on upgrade) will be a lot easier. Though, a plugin architecture would be better, where feasible.

If there there's a big enough community swapping patches that upstream isn't accepting for some reason, that's when a public fork becomes reasonable. (This is the Apache web server's origin story.)


Ooh, this is gold: "The slogan pretends to be anti-authority, but in practice it is used to protect informal power."

Spot on. I almost never see "just fork it" brought up in a context that acknowledges what that would actually take. It mostly shows up as a way of shutting down discussion, and often has a flavor of victim-blaming to me.


I agree it’s often used to shut down discussion, but most often I’ve seen it when a contributor is losing an argument (their PR isn’t getting merged, or their feature request is rejected, or their bug is marked wont-fix) and they don’t agree.

“Victim blaming” is an odd phrase here. Could you clarify what you mean?


Sure.

As background, when power is misused, you'll often find somebody immediately showing up to explain why it was the fault of the person harmed. In the US, for example, this happens basically any time a cop kills somebody. In analyzing the situation, the agency of the person with power is minimized or ignored; the agency of the person harmed is maximized.

Open-source project are often run as little fiefdoms. Power is concentrated; checks and balances are minimal or nonexistent. Note that I'm not saying that this is bad or good; that's just how it is.

The "just fork it" style of response that the article is addressing, which I don't ever think I've seen in an issue but often see here on HN as a response to some complaint about a project. It's not part of a careful analysis about the costs and benefits of forking. There's also little or no attempt to understand who a project's audience and community is, or the value of the complaint in that context. It's a drive-by response to shut-down a complaint in a way that treats the complain as illegitimate, suggesting that person is wrong for wanting something different from what's on offer.

Does that help?


I still don’t understand how someone who wants something different from what’s on offer is “a victim”.

I do agree that “just fork it” is a flippant and pretty unhelpful thing to say, but just because a piece of software is open source, that doesn’t necessarily automatically mean that its development should follow the designs of a committee of its users.

You are absolutely correct that often, open source projects are indeed run with the maintainers exercising absolute control. I think this is where the tension comes in, because sometimes, folks expect that to be different, and approach the project with a sense of entitlement that somehow the project should change to fit their needs.

“Just fork it” is a way of saying “if you need it to fit your needs, feel free to take what we’ve done so far and add what you need, but we aren’t going to”.

The author’s core argument seems to be summarised here: “In social terms, it’s the equivalent of saying: “If you don’t like society, go start your own civilisation.”

It’s not at all equivalent though. It’s more like “I invited everyone round for dinner, and I don’t want my house to smell of fish, so I’m not cooking fish. If you want to cook fish, you can borrow my pans, but invite everyone round to your house instead.”


> Power is concentrated; checks and balances are minimal or nonexistent.

Is power concentrated? What power do maintainer of FOSS projects have over people who would like to use that project? How can they compel people to do what they want as it relates to the project?

> It's a drive-by response to shut-down a complaint in a way that treats the complain as illegitimate, suggesting that person is wrong for wanting something different from what's on offer.

It can't possibly be suggesting that the person is wrong for wanting something different. The "drive by", "fork it" comment is saying. If you want something different, then make the different thing exist, no one will be able to stop you from making the thing that you want.

Unless you feel that the different thing is the person who is complaining, is entitled to having other people do what the complainer wants, instead of what the maintainer wants?

On the internet; if you wanted to suggest that someone's complaints or suggestions are illegitimate, you wouldn't say "fork it" you would say, "no, that's stupid, you're stupid, how could you suggest such a dumb, stupid, crazy, insane thing?!" surely followed by a series of extra expletives, or angry rage posts.

Or the just fork it comment is from a maintainer. Who has decided that they do not want the suggested changes. In which case, it's still not saying the changes are illegitimate, it's saying that the maintainer objects to them; so they're offering the only remaining solution for the complainer to get the changes they want.


"Good artists borrow. Great artists steal." -- me


Well, this is explicitly public ridicule. The penalty isn't just feeling shamed. It's reputational harm, immortalized via Google.

One of the theorized reasons for junk AI submissions is reputation boosting. So maybe this will help.

And I think it will help with people who just bought into the AI hype and are proceeding without much thought. Cluelessness can look a lot like shamelessness at first.


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

Search: