skysight-inc/HackerNews huggingface dataset:
Some of those are not technically ASCII art so probably won't be so readable in some editors/fonts, but diagrams are certainly useful in source code --- as long as they are accurate. Otherwise the effort required to update it may mean it becomes inaccurate quickly. Many of the examples show something that is unlikely to change often if at all, which fits the use-case well.
We had a guy at a previous job who was a toxic douchebag, not radically different than the guy describing himself here (doing F# too, actually, which I found to be a funny coincidence).

The guy was undeniably brilliant, pretty clearly smarter than anyone else on the team (including me), but he had a way of bringing down the entire team to a point where it actually felt like we were less productive a result. After about a year of this, he was fired.

Ironically after he was fired he and I became pretty good friends, and I feel that, at some level, I became the new toxic douchebag with my (probably unearned) feelings of superiority. When I realized this, I actively tried to employ a bit more empathy when looking at code reviews and dealing with people that I felt were stupid, since I was the "stupid" one before.

I often discuss with people the philosophical question of "is it better to have someone who's really smart but also an asshole, or someone very nice who's barely competent?". I tend to lean towards the former, but I can't say for sure.
CODA uses cryptographic arguments to demonstrate that a block is valid (including ancestor blocks). I haven't read much of the Vault paper, but it sounds like they're having users vote (with weights proportional to their stake) on whether blocks are valid.

If someone corrupted enough voters, they could theoretically create a "Vault certificate" for an invalid block (e.g. one which spends the same coins several times), and other nodes would accept it. That wouldn't be possible with CODA, unless someone broke their cryptographic primitives.
What has it become?
Ah, sorry I missed that...
You can downvote me but it's still true. Wars of conquest are started by princes not peasants.
I got to web development pretty late (circa 2015) so my perspective may be skewed but CSS in JS seems much more natural to me than separating markup from style and then linking them up later with global class names.

It reminds me of when I was in college learning C where all of your code is just dumped into one namespace, and then later learning Python (or basically any other modern language) with actual modules and namespaces. After seeing it done that way it just makes no sense that it would ever be done the old way again.
> In that sense, the coin would create an economic incentive to pollute (there are plenty of these already), and there's no way to regulate that kind of decentralized network. (That's the whole point)

And that's also the solution.

The reason people are interested in decentralized trust is that the existing system of centralized trust is a dumpster fire. Politicians want to use the banking system to attack their enemies, but not all politicians are good and not all of their enemies are bad, and there is a vast amount of collateral damage.

You can't get your payments processed if you're a terrorist, but also if you're suspected of terrorism without any real evidence, or suspected of political heresy without any real evidence, or suspected of supporting someone else who is suspected of political heresy without any real evidence or due process etc.

People who are afraid to reveal their identities because they have powerful adversaries are impeded from raising money for their cause, or even just making a living, and it's really not obvious that this results in less radicalization. Things that make people angry and scared generally don't.

But it's all caused by AML/KYC laws. The promise of Bitcoin is that you can't have your accounts locked out and your funds stolen because a lazy or corrupt politician in a foreign country leaned on a bank that leaned on a corporation that decided your business was worth less to them than the effort required to resist, regardless of your guilt or innocence.

So now we have a choice. Either we stop using the banking system as a tool for surveillance and political pressure, which cuts the legs off the demand for cryptocurrency, or we keep trying to do that and then all the innocent and guilty people who it was impacting get together to build a workaround, and the rules are ineffective regardless but now people burn an extra billion tons of coal.
Ancillary point: there was too much coding standards as tribal knowledge in this, and a lot of cases.

Many times developers get held to standards that they didn’t know existed. This still triggers developers to feel bad about their work (or themselves). It’s usually after someone has left that they find out some ‘standard’ only exists for that particular company.

It’s hard to make global standards, but company standards are easily do-able without having to endlessly specify every coding situation. What the standard doesn’t cover should be addressed in code review or before.

Sometimes languages come with standards (C# coding standards are better than JavaScript standards, for example) and those can be a good proxy or starting point.
I had the same tic-tac-toe q, I felt that the instructions were pretty clear: “Accomplish this one thing, as simple as possible, then generalize to actually work.” To me it felt like I was getting specs to write a class and that’s what I did.

I had a pretty great experience and would recommend TripleByte.
So, who thought it was a good idea to record these in the first place and then to store them on an internet facing server? It doesn't surprise me one bit though.
And coal power shouldn't be replaced as long as it helps people have electricity. /s

Your comment misses the point that it is still a monumental and needless waste.
No incentive to support the network if there's no block rewards. The transaction fees are not sufficient and just meant to prevent spam. It's also better to tax the network as a whole (through this set inflation) than to tax for each usage.
Thank you! I really appreciate it.
>this is why the market settled on gold

Gold, which, by the way, has an extraordinarily high energy and environmental cost to extract.
There’s a vast difference between, say, preparing for a school exam and preparing for a job interview. In the former, you know in advance what material will be tested. Job interviews are more like PhD comprehensive exams, or professional licensing exams. I know a lot of working professionals who are good at their jobs, yet admit they wouldn’t be able to pass the license exam today.
I did seven interviews for a top US bank. I didn't pass. They needed to fill dozens of positions. Two years later they opened the gates and hired a notorious complainer ex-coworker. That's the current state of affairs.
Doesn't change the fact that if the Romans thought that an engine would have been useful, they would probably have begun studying a way of making it more efficient.
Direct to consumer pharma advertising is a US phenomenon (and New Zealand apparently). So it seems like you’d be able to study the effects state by state against similar states in other countries to find out.
Right, the 3D view doesn't show on mobile. It's a condensed 2D view on mobile.
As a professional, I got tired of being mean, so I switched to a different review style where I ask questions instead. I would still ask a lot of questions.

Then I started to worry that I was coming across as passive-aggressive, that these suggestions would be taken as veiled demands to fix things.

As a countermeasure, sometimes I'd explicitly say things like, "you can submit this as-is, but here are a bunch of things you might want to think about." This works ok for stylistic changes or things that aren't actual bugs.

That's not always realistic. Another trick that I think maybe we should do more in the industry is what I'd call ping-pong code review: When you get a review, either submit it if it's good enough, or rewrite it and send it back to them for review. Then they can either submit it, or do another rewrite and send it back to you.

This helps the most if there extensive changes needed, and you are a picky person who likes to have things just right. But, if it goes against company culture, you might need to make sure that people understand what you're doing and everyone gets proper credit for helping with the patch.
The elephant in the room is that it's a surrogate for an IQ test, since those are illegal.
If they want something that mimics the common, everyday..

Give the candidate a project with 300,000 loc, tell them to make the most local change possible that fixes the reported bug. Update the tests to reflect the new logic.

Bonus: discuss architectural changes that would have resolved the bug and/or improved performance.
But the flashlights I bought were not generic. They were branded items that if bought in-store would have been in big plastic wrappings. I don't think they were illegitimate, just that they were shipped differently.
you can create a crypto with some pre-set amount of inflation to make up for e.g. lost coins. or create inflating derivative securities. though, having inflation in a single globalized market doesn't make much sense, as there are no competing economies.
Of course, adverse possession presumes that land ought to be made "useful." (Haven't thought yet about how these critiques of real property theory map to IP.)

Much of real property theory arose from the assumption that the government should recognize and encourage the "highest and best use" of real property. Traditionally, the highest and best use of land is the use that can most profit from the land's resources; often mining, grazing, farming, logging.

This is problematic.

- This view justifies colonization, and taking land from original inhabitants who don't use the land to extract resource value.

- This view does not recognize preservation of an ecosystem as a valuable use.

- This view does not account for externalities from use of the land's resources.
I've worked with some folks who were decent engineers who originally didn't get offers from FANG companies because they blew the interview; they later studied their ass off on leetcode and got offers. This did not make them better engineers at all.

Ultimately, its just studying for the test, very much like the ACT/SAT in high school. You can be great at taking tests but ultimately a terrible student or vice versa.
What stops someone unqualified from getting through? What other filters do you apply?
I see one aspect of this trend of asking programming questions that require a lot of memorization: We have had for the past ~10-15 years people in the workforce (and thus acting as interviewers) who went through a public education system where heavy emphasis was placed on passing tests that required a lot of memorization.

I'd be interested to know how many of these interviewers actually think they're able to identify a solid candidate this way? Not to mention, are they even factoring in how many people don't test well but are otherwise superb software engineers?

Ultimately it seems like there is a soft element to interviewing that is being tossed out now, which is: do I think we can work with this guy/gal? Are they someone that can become part of our team on a personal level? Can they get good work done? Fizz Buzz can't tell you that. What can tell you that is experience. It's a hard-to-put-your-finger-on-it X-factor that I think companies think they can ignore.
well a sane answer would be that it returns a void* ptr to the allocated memory that can be casted to the needed ptr type.
dev tools works fine with both react and Vue if you set it up well, meaning to extract css to a file instead of throw it inline. Most setups extract to a file
You spend a lot of work days reversing binary trees?
The context was an attack on American soil and ascertaining the primary target of that attack. Casualties on the American side are definitely the more relevant metric than, say, casualties on the Japanese side.

Besides, the non-American lives lost - that is, the Japanese lives lost - were lost specifically because they were attacking American soil unprovoked and by surprise. While their lives certainly did matter, and I do sympathize with the soldiers and their families who made the ultimate sacrifice for their country, it should be entirely unsurprising that, you know, maybe I'll have a little more sympathy for the defenders. This is not a US-centric mindset, by the way (despite me happening to be American), unless you think extending the same difference in sympathy to Chinese defenders v. Japanese aggressors in the same exact war is somehow "US-centric", or similarly extending the same difference in sympathy to Middle Eastern defenders v. American aggressors.
Go search for "Knights on a Keypad" (a formerly-common Google interview question). Trying to imagine any situation in which the solution would be useful is harder than the problem itself.
What an alpha-male antagonistic dog-eat-dog bloody hell is this! Jesus, if that is the current or future the norm in this profession I'd better jump off to a career (any career) that involves as little relation to computers as possible.

Kudos for saying it aloud though. Honesty is gold (at least in my books).
I keep seeing your account closely correlated with low quality and/or un-informed comments, could you please try to do a little better? Thanks!
A lot of CSS-in-JS libraries provide a theming solution, e.g. [1], so it's not an 'either/or'.

(You can also relatively easily implement your own, because JS :))

[1] https://www.styled-components.com/docs/advanced#theming
Wow! My intuition would be that water hot enough to make coffee would kill all the bad bugs. I guess not.
Consistency of code style does matter, up to a point, to people reading and understanding the code. As you suggest, setting up ground rules and tooling helps

Code authors who don't see the value in consistency of code are potentially a problem - if authors are submitting code reviews with hundreds of actual style issues, that's either a failure of process or the author to write readable code (not sure if that's what happened in your examples, to be clear).
I have been on both sides of the table, maybe on the side receiving abuse more often, but yeah I should stop being so hard on people with code reviews. The thing is if I'm not hard on them someone above is going to come down and question me about it. Maybe just talking to the dev outside of the code review so they can improve without leaving a million comments would help.
They do something like this with a couple thousand lines of code and failing tests.
Very familiar with that disease. I admire people who have immunity.
Let it stay here https://twitter.com/dhh/status/834146806594433025?lang=en

"Hello, my name is David. I would fail to write bubble sort on a whiteboard"
I think generics in C# are really well executed and solve a lot of problems in C#'s problem domain.

I do think you're on the right track that go's designers are pushing back hard on what they see as feature abuse in C++ and Java. C++ abuses templates and has dozens of ways to do anything that also don't interact with each other well. Java abuses inheritance, abstractions, and OOP.

go uses generics under the hood, probably the designers fear that generic's will also get abused if released into the wild. On the other hand I've never heard anyone bitch about well designed generics in other languages. Which is a tell since people will bitch about anything and everything.
> The philosophy at Google is that it's better to filter out 3 good engineers than to let in a bad one.

Google's problem nowadays is that they have such strict standards only for grunt developers, but not for management. In fact, it looks like that it's more like opposite, i.e. it's better letting in/promoting 3 bad managers/directors than 1 good one.
The author is talking about a learning experience he had regarding a deficiency he identified (being a jerk) in his own work (reviewing other coders' code).

Meanwhile, your comment levies personal criticism toward him using pretty inflammatory language ("toxic," "sad," "asshole," "jerk," etc.), because of the way he responds to people who are learning.

Interesting juxtaposition, that.
bank settlements are already using supra-national / supposedly neutral settlers.
I find using automated tools as part of the pipeline, like codefactor, are a decent first step to sort out some of the glaring issues. As they're automated and act as quality gates before an actual human comes to do a review then they're not as bad as they could be. Sure there scope can be limited, depending on what language/framework you're using, but common ones catch quite a lot of obvious issues.
yes and that’s theft.
I think those "easy" examples are too easy to get any meaningful signal from. If they struggle, they have no idea what they're doing, and if they don't, you don't really learn anything about how they work because there's not much to them.

Other people have mentioned Triplebyte using console tic tac toe as a question; that seems like a better sort of "easy" question that still lets the interviewee have a chance to show off their problem solving and factoring skills.
Interesting. The concept is remarkably reminiscent of elements of The Diamond Age. Was that an inspiration?
> It sounds to me that most people advocating generics in Go are having a pragmatic/utilitarian approach, while people against it are opposing it from a purely ideological standpoint not grounded in either theory or pragmatism.

And it sounds to me like you're working rather hard to misunderstand me/my-opinion and paint me an idealogue. :)

Even if I were making a positive assertion like "generics costs more than it gains", that would be a pragmatic viewpoint even if it's incorrect. But I'm not even making that assertion, I'm merely unsure and would like to be persuaded otherwise (and I find people with experience on both sides of the fence to be more credible than those without that experience).

> Why would generics break that?

Because "generics" as a feature suffices to support multi-paradigm programming. It explodes the solution space, creating many solutions for problems that Go's type system is perfectly capable of dealing with (~97% of the problem space in practice according to my experience) while permitting new solutions that Go's type system must currently punt on (~3%). We should be able to roughly agree on this even if we disagree about the degree to which multiple solutions is a problem relative to the advantage of the additional type safety.
I can't say I enjoyed code reviewing but I never felt like I was being mean to my teammates. I was really happy when a teammate found a bug in code review of my code rather than that bug getting checked in. I was also really happy when they shared knowledge and I learned something. Maybe they shared a pattern I was unfamiliar with or maybe they pointed out an existing function I could use I didn't know was in the code.

I assumed the same was true for them. I learned from another team member to try to phrase comments as questions. "Did you mean to do X here? It seems like it might have issue Y" etc...
The question I usually give to interviewees (I don't have latitude in choosing) starts out by reducing a list to one of the items in the list. Subsequent steps of the problem build from that very simple premise, but not by a whole lot.

A certain portion of interviewees spend a lot of time making that first part way more complicated than it is, which rushes the rest of what they need to get through. (I'm talking about spending over 20 minutes hemming and hawing over the problem of reducing a list to one item in the list.)

It's interesting giving the same problem dozens of times to people working in a variety of languages; you get to see the various aspects that people tend to get hung up on. Picking a sentinel value to compare against, how to get a value out of a dictionary and default to some value if it's not there, that sort of stuff.

Devs working in Java, C#, C++, and Go seem to really stumble with these things, I don't know why. A big issue there is that the candidates don't know the shape of the problem before they pick their language.

I try to be extremely clear about what the problem is, what the expected output is, and say these things multiple times in very clear language. There are test cases in code and examples in the problem description. But all of that doesn't always help. I guess my point is that as many issues as I have with tech hiring, it is also possible to way overthink the problem, and fail to listen to and understand the person giving the interview. I really want people to succeed and try to give them as much as I can toward that end.
Yes, I'm aware that they're a special case. What I mean is that this is exactly what is traditionally called "generics" or "parametric polymorphism" in PL literature. Go's Map/Array/Slice called "predefined generic types" in some literature.
Calling the case of the network halting "safety" doesn't help things.

To walk through a plausible example: let's say 3 Chinese services control 35% of the stake of Algorand. Without warning or any public announcement, the Chinese government steps in and forces them to turn off their servers. The Algorand network will now stop functioning as it can't reach 2/3rds. Hours go by and no one is able to transact. At this point, the network needs to decide how to proceed. Does everyone just agree to take a complete loss?

Most likely, a group of other stakers would work on a proposal to deal with it, maybe by removing the offline tokens. How do they get consensus for this proposal? And, if they do it, what do they do if the Chinese stakers come back online?
This is an interesting example to look at! I've searched "Jussie Smollett" on guardian.com, and here are the results: https://i.imgur.com/GDRMj2Q.png. Hmmm.

I've also went news.google.com, and "jussie smollett hoax" gave me about 5,750,000 results. Interesting.

Also, I can't help but notice that NYT article about new developments in Jussie Smollett case is called "Jussie Smollett Timeline: Mystery Deepens as Police Review Case".

Why people do not trust mainstream media the way they used to?

Mystery deepens, indeed.
Some of the space battles in Battlefront 2 approached the fun I had playing X-Wing and TIE Fighter, back in the day.

It's a little too fast paced and frenetic, but dodging between large girders on a huge space station while being chased by an enemy A-Wing is still quite fun. Or looping around the back of a Star Destroyer in an X-Wing.

If they took that engine (which already featured decent enough AI controlled bots), slowed things down a bit, and wrapped a campaign around it all, I'd be sold.
You nailed it. For someone who needs to determine the endianness of a machine on the fly, the question is trivial to solve; for everyone else, it’s trivial in the sense of “unimportant.”
> The philosophy at Google is that it's better to filter out 3 good engineers than to let in a bad one.

Just fire the bad ones. You're going to get bad ones anyway. At larger companies you might never notice whether someone is good or bad.

From the way they structure their interviews, it seems like they'll still get plenty of bad ones - it's just they'll get bad ones that are great at algorithms, with unknown skill at everything else (like the actual work done).
Politicians as well, that's a much more direct lever on society.
And that’s stupid.
Sure, but not across a security boundary.

Being able to override some library function such that running my text editor does $BADTHING isn't very interesting from a security perspective: if I have the capability to do that, I could also just run a program that does $BADTHING directly. Why bother with additional contortions to involve the text editor?
Sure but 99% of the companies they're hiring for probably don't need low level programmers.