skysight-inc/HackerNews huggingface dataset:
I don't think this is a great critique, simply because the pain I've encountered using them isn't mentioned here. The incompatibility with class components is what it is, they're different programming paradigms that you have to choose between. If your library leaned heavily into HOCs, that was an unfortunate choice and I'd recommend making a new library because HOCs were always unwieldy and had problems with composition. Nothing to do with functional components or hooks really, just a very heavy pattern that can typically be done better with another approach like render props.

I guess I see a lot of this as evolutionary. It's unfortunate that there has been so much change, and the timing might not be great for some projects, but I would not prefer a world where I was still writing and using HOCs and class components.

In my day job I work on a pretty old (in React years) project, and we haven't had trouble writing new code in a functional + hooks style. Still plenty of class components abound.
How I Hire Data Scientists
Speed Up Your Development Flow with These Dockerfile Best Practices
Back in the day, almost all cell phones had a miniature coax port on them. They were "hidden" in that you probably had to pry off some nondescript part or open the battery cover up or something.

This is how we tested mobile networks. It works great. The only problem is when someone forgets to make a tight connection or attach a signal attenuator. Since the first thing you always test is emergency calls, once in a while your call ends up on the real mobile network and the fire department shows up in your parking lot. This happened about once or twice a month where I worked. They knew what our business was so they were never mad at us, but we had to pay a fine each time.
> the behaviour of the company is kind of sketchy

Can you elaborate?
I've found this because I'm looking for a zoomable notebook to possibly use as part of my zettelkasten. The ideia of thinking by layers which you zoom seems very promising.
A lot of times I just use a simple React class. The author’s lookup map to return a lookup of other hooks, yikes. A class component would probably solve that in a more predictable way.

Don’t feel dirty for doing things simply. If your functional component has entire lookup maps for hooks, it’s probably too complicated as a standalone functional component to drop hooks in.
Code changes are up and coding time is up... I think developers are taking more time to work on tasks. We get pressure to merge when we're in the office. Now we have more time to experiment and invest in quality.
The reaction to react hooks has been (as far as I've seen) a little too positive, so I was looking forward to read a genuine critique.

However, I'm disappointed.

In reverse order:

> 5. They Complicate Control Flow

A set of contrived examples, within which the only genuinely confusing part is not related to React at all. It's Javascript's object non-equality ({ multiplier: 5 } !== { multiplier: 5 })

> 4. The Rules of Hooks Limit Your Design

This is an interesting section but seems to point to a pattern that would lead to serious issues given any library/paradigm. It's criticising the Rules for their inflexibility, but in this instance they're helping you by pointing out the pitfalls of your approach, and encouraging you to rethink it.

An alternative way of looking at it is that it's again (like in 5) bemoaning Javascript's object inequality which is prevening the memoization here.

The other 3 bullets are pretty silly "boo new things" issues that are common to migration to any new API.
I was skeptical towards hooks when it was first introduced. I was hesitant to use it. Then, I used it for a few components in my projects. I realized how much simpler my code looked, and migrated completely to hooks. No regrets.
Nintendo confirms 160k Nintendo Accounts accessed in hacking attempts
ReMarkable 2: The next-generation paper tablet
How did I miss this! Can you imagine someone claiming Windows is going to be in git as few as 10 years ago? This world never ceases to amaze me. What happened to SourceSafe?
Your anecdotes remind me of what I've heard about in-house counsel: lawyers can tell you that you should/shouldn't do something, but in the end, lawyers don't run the business, and sometimes they get ignored.

I think that in software there's something similar. Maybe you'd have more fun in a software company, where what you do is central to the business. Anyway, don't give up hope! There are jobs out there where you'd be having a lot more fun every day.
Hooks are magic with new rules that are different from regular JavaScript. They don't follow the regular flow you'd expect it would. Requires devs to think a lot about hooks to make sure something is messing them up. Also needing eslint to make sure your code is ok, is a boy flakey.

Hooks it's like learning a new language pretty much, which is only useful for react. I'm using them because of lack of better things.
The reason they introduced hooks was exactly that component lifecycle and decorators/higher order components were found not to scale well in larger codebases (as experienced by the people using React at Facebook).

The useEffect pretty much provides a direct replacement for componentDidMount/componentWillUnmount.

I'm still on the fence, but so far it seems to me that using hooks makes my intent clearer than using the various lifecycle methods.
OK, you sound like an expert (not sarcasm) so if I may (and please note I never suggested a squaring relationship),

> High pressure water can be fairly efficiently converted...

And lower pressure less efficiently converted? Therefore the higher the column, the higher the pressure and the better the efficiency of the conversion?
This wasn’t even internet. Dial-up. Hardly anyone used TCP/IP or FTP or telnet ( only universities ). At home we all used software with protocols like XMODEM, YMODEM, and ZMODEM for file transfer.

Everything else was plain ASCII over serial connections with modems between two devices.
Ask HN: How to build better, more useful recommendation algorithms?
I just saw this video (https://www.youtube.com/watch?v=jUCx6-WNDnA) and recommendation algorithms have always interested me. They are a huge factor in the way we perceive information on the Internet and also affect our opinions in general.

There is some sort of positive feedback loop where algorithms recommend us the exact same content we have already liked instead of showing us other new subjects or viewpoints.

What are some alternatives to this polarizing recommendation model and what do you think of them?
I never had scoping issues around `this` in my react code (earlier js libraries, yes), but I still love hooks. I find them more comprehensible and consistent. I love that the API is smaller. I had to fix a number of bugs caused by the life cycle methods when I did a react 15 to 16 upgrade a while back, and it seems unlikely those can crop up with hooks.
Yes, and speaking for others insisting that something works on them even if they say it doesn’t, is a smart idea and not delusional at all.

Almost like religious fanaticism, forcing people to acknowledge gods and demons and boogeymen.
Haha this isn't going to be some cissp bulls*.

So great.
EDIT: please do read crazygringo's thread above, people in there have much more substance that I could in my short/quick write-up above. In particular, palimpsests' view is very close to what I've heard again and again from people with relevant experience.

___

Did I make a fool of myself by failing to comprehend what I read and then arguing exactly the same?

Then, I will just shut up and read again.

___

Somehow, a bit tangential to the topic:

About evidence or argument, appeal to authority, I do think it's a case of "extraordinary claims require extraordinary proof", and the author's claim is extraordinary. Mine is really just consensus from the field of historical psychology. I've never heard an expert arguing otherwise. I could probably google a few links, but randomly sticking "proof" on a non-problem seems... pointless. I shouldn't have to prove that flat geometry yields 180° triangle, it's whoever claims otherwise that bears the burden of substantiating it.

I just won't spend that particular time, since the author's claim is weird, not mine. Triangles add up to 180. Human biology and psychology did not change in recorded history. There's nothing 'new' in our heads besides what we intake from the context.

___

But I hear you and will re-read that piece later, with a colder head. Maybe I was put off by some emotional bias and got 'triggered' by the claim (no PTSD in the past... huh?), which led me to interpret, thus fail to comprehend what I read. That much is 100% possible and I've no ego problem in admitting that.

Apologies to the author if that's been the case.
Differences Between N95 Respirators, Surgical Masks, and Cloth Masks
How to Use C++ for Azure Storage
As with most features, this could be part of an A/B Test which makes confirming it difficult.
I can speak for you; you won't get a debugger with the Rust plugin with IntelliJ. I'm going from memory here, and it's been a few months, but I believe the person working at JetBrains on the Rust plugin said it wasn't going to come out for IntelliJ.

My company is good about buying us tools, so they got me CLion (or, rather, the entire Jetbrains Ultimate Pack or whatever it's called). CLion has made Rust development almost infinitely better than it was just using the Rust plugin on IntelliJ (and this is coming from someone who just uses the Python plugin in IntelliJ even though like 50-75% of his code is Python). I'm a JVM dev masquerading as a Python dev and using Rust for some stuff that Python just isn't up to snuff on (and using the super sweet pyo3 package to make native python modules for it, too). The point is, I get the <3 for IntelliJ; I pay for the super ultimate edition for home use just because I like it _that_ much. But CLion and debugging has made my life so much better than doing it with the Rust plugin in IntelliJ or using VS Code.

Some people are content with log statements, but I'd rather stab myself than debug via logs. It's just not my jam!

Edit: I just thought to note that the CLion + Windows + Debugger game is weaksauce. There may be a way to get it to work in windows, but I don't know a single thing about the Visual Studio build tools or how to get everything to play nice or whatever that might be necessary, so I tried to get it to work through WSL. It worked sometimes, and not others, and I got so frustrated I picked up a Mac for my work refresh rather than another surfacebook, mostly because I was tired of having to jump through hoops to sometimes have a mostly working eventually kinda debugger.
We shouldn't be using R0 to measure the rate of Covid-19 transmission
Transforming ORs into ICUs
There is a good chance it will be something else in a few months.
The bad coffee beans are the bunch of junk
Yes, and things like coverage guided fuzzing have completely revolutionized things. Prior to directed fuzzing, it was okay but largely unimpressive. Now it blazes through code structures that were previously used as motivating examples for symbolic execution. It is a meaningfully different technique today.
We've developed something NGS-based we call SwabSeq. You can find out more here: https://www.notion.so/Octant-SwabSeq-Testing-9eb80e793d7e463...

You can get to $1/sample; but need >1000 samples/run at least to get to that cost level. Could run 10k/day without automation; likely a lot more (100k-1MM) with automation.
But release are less frequent and larger. Sounds risky
Leak of The Last of Us 2 is from an angry employee at Naughty Dog
Isn't this exactly reusing old technology that has existed for decades (well, over a century now) in a slightly different context? I mean, a lot of pre-existing coax is there exactly for the purpose of running a signal between an antenna and a device…
It's how they recently "wired" the London Underground for 4G. https://www.wired.co.uk/article/london-underground-4g
Looks really close to Sublime Merge[1], which is great.

1: https://www.sublimemerge.com/
Your example reminded me of this: https://www.youtube.com/watch?v=0K8s9cNqZO4
Your comment inspired me to do a little reading, since this is an interesting idea (and maybe represents an opportunity in the supply chain... maybe what we need is better/newer technology for long-term storage of grains/flour/etc.).

Apparently, flour can (should?) be frozen for long-term storage, and would keep indefinitely: https://cooking.stackexchange.com/questions/33890/is-it-okay... (unfortunately that link to University of Nebraska is 404 now).

Long-term grain storage concerns: https://www.agriculture.com/machinery/grain-handling-and-equ... ; as a non-expert, this begs the question of why more climate control is not done, to create indefinite/permanent storage (probably just not economical to do so, but given disruptions like COVID-19, maybe this will change?).
> What am I missing?

The reading of his books. No obligation to do so, but if you want to make up your own mind (and it sounds as if you do, good stuff), that's the way to go.
All of this reads akin to someone criticizing an apple for not being an orange. Every point is an intentional design decision. Learning new things is necessary, leaving class syntax behind was a choice, and imposing limits on (controlling) application design is the point of libraries.

The team is pushing a functional declarative pipe method of building UI applications where things are built using a straight-line series of composed functional transformations. Personally, I think supporting this method with the hooks model of handling side effects is an improvement over everything else that exists in "roll your own" UI library land. I find these style libraries more enjoyable to build with, more expressive, and better suited to building things where you need finer grain control than template style libraries like Vue, which provide a stronger degree of predictability and ease of immediate use.

That's the thing -- it's a balance. Hooks add a nicely considered and balanced degree of order to the otherwise intentionally uncontrolled-so-you-can-do-the-controlling programming model of React. React identifies as the advanced lego set with the smaller more numerous blocks that you can build the cooler stuff with, and as such will always have a certain threshold of complexity.
Even with the best architecture, you probably have some shared libraries that are used across teams. These will often need to be updated, and they will affect several other packages (other repos, in the multirepo case). The only way to avoid this is to duplicate all code. Moreover, you can have a great architecture, but your teams are "feature-oriented" instead of service oriented (or some other vertically oriented team structure) in which case they'll need to touch many different repos (I don't imagine feature-oriented repos are a good idea) per ticket.

I'm increasingly convinced that the monorepo approach is the right one, but the tooling needs to get better. Bazel is a hydra of incidental complexity and Nix has the right core idea but suffers from a variety of other problems (poor documentation, gratuitously and unnecessarily unfamiliar, too few escape hatches, etc). These issues aren't fundamental to the domain, and there's no reason these tools couldn't change course nor is there a reason that another tool couldn't come in and eat their lunch.
Communities of microbes found to have working memory
It's hard to reason about without an actual real-life use case, but the lookup thing he's doing looks extremely convoluted to me.
Semper Curious: Cultivating curiosity and intellectual growth
Yes, the C and C++ standards could have allowed the compiler to reorder structs, but that would have lead to even more of those undefined behavior situation that people complain so much about.

People do quite often rely on the first struct element being at the start of the struct. Memcpy:ing directly between structs and network/disk is also common, but naughty. Both struct padding and endianness already break that.
Yes, this is called cross-trading [0] and AFAIK is forbidden by the SEC.

[0] https://www.risk.net/definition/cross-trade
When I worked at a prop trading firm on a greenfield market data system this kind of optimization was very much on our minds. I assume others in this field also take care to pack structs.
Restaurants’ bailout problem: Unemployment pays more
Ode to the Wires that Enable us Connection
Nice - wondering if these are applicable to centOS as well given that centOS is touted as the freeware version of RHEL.
After he doubled the company profits during his tenure.

I guess if you have nothing really valuable to say, resort to name calling though am I right?
Look how well Edward Snowden was doing. Living in Hawaii and making $200k a year at his high point.
I'm guessing npm also has a nice luxury that nobody writes core parts of the operating system in JavaScript.

Versus, one of Python's bigger challenges with environment management is that you need to come up with an environment isolation mechanism that won't also interfere with the operation of the OS itself, or cut you off from being able to use userland tools that rely on it.

Which. . . Python being an essential part of virtually every production system out there being one of the root causes behind a situation that makes people feel skittish about its appropriateness for use in production is a fun thought. It's a particularly delightfully Unixy brand of ouroboros.
Ahhh! Unfortunate watermark positioning that
Agree, "More Stuff to Learn" isn't really a critique of hooks, it's a critique of learning.
Does Google Groups do what you want?
This seems like a cool project. Keybase has kinda lost it's way and has no idea what it is anymore. Where this seems pretty focused on doing one thing and one thing well.
Four direct measurements of the fine-structure constant 13B years ago
Hooks are great for simple use cases like `useState`, `useContext`, some uses of `useRef`, etc. and can make the code easier to read and reason about (while conveniently working very well with TypeScript).

The rules do start to get really tricky though with complex use cases of `useEffect` and multiple levels of nested hooks, and implementation problems are often not easy to spot or debug.

Dan Abramov has written a lot about the philosophy of hooks[0] at his site overreacted[1], I'd love to see a 'retrospective' write-up from him or another React team member about what they think the success and failures of hooks have been so far and if there are any changes planned for the future!

[0]: https://overreacted.io/why-isnt-x-a-hook/, https://overreacted.io/algebraic-effects-for-the-rest-of-us/, https://overreacted.io/a-complete-guide-to-useeffect/

[1]: https://overreacted.io/
> I don't get how this can be used anywhere except when you have 2 deployment targets which seems really limited.

Why do you say that? It looks like it can handle any number of environments to me.
That's exactly what it is. In the Messages app if you enable Assistant Suggestions it'll usually give you quick replies based on the context of the conversation and sometimes offer app suggestions like set a calendar event or make a call. And you can turn it off if you don't want it.
Yeah, that argument is weird. If we are taking about state the difference between those two is that docker is just storing a snapshot of a state (BTW Dockerfile by itself is not reproducible and is comparable to a bash script) while Nix is storing information how to get to a given state.
That makes it far more versatile. It is what Docker promised to be, but ended up being an overglorified zip file. Depending on your needs, that might be all you actually want. If you want to make small adjustments to existing state (let say applying a patch, in docker you pretty much have to rebuild from scratch and with non-deterministic Dockerfile you might change more than that), or maybe compose something new from existing components, Nix gives you far greater control to do that.
On X, yes. Which makes X usability even more of a pain in the ass.
Removing front-end JS would be extra nice for speeding up page loads, too.
This is definitely correct! Everybody is equipped differently to cope with life. The environments we grow up in make a huge difference in this. And they vary tremendously.
"""For much of Western history, however, surgery lay somewhat apart from the practice of medicine. Hippocrates was leery of it, writing, “He who wishes to be a surgeon should go to war”; the crude practices of the battlefield were, as Roy Porter put it in his classic history of medicine, “Blood and Guts” (2002),"the work of hand not head.” This suspicion bred an enduring medical division of labor, in which many healers viewed surgery as inferior. Well into the modern era, surgical procedures were the province of the barber, along with pulling teeth."""

Even now sometimes I wonder is surgery a science? Does it use the scientific method?
Work/Life balance is probably the most difficult. Most of my pre-Covid after-work activities revolved around going out on group activities, restaurants, movies, and travel. All things we currently are unable to do. So I definitely find myself working a lot more and I already worked a remote software development position.

I find that I have to schedule and force myself to do other things such as stream some TV series and play multi-player online games just to distract the mind for a couple hours. I am in the Northeast US so our weather still sucks and we are not yet able to enjoy outside activities. My wife and I did make a couple batches of masks for some local responders and nursing home staff, but that was only a limited distraction vs. weeks of isolation (since 3/1).
I actually do. It's a spinor. It doesn't transform the way a vector does.
It's not really optional. There's just this new thing called namespace packages which is not quite the same. I don't fully understand what it's for yet.
Apologies u/mhb - it went straight over my head
I did, not being able to offer something better than the competition is a weakness, regardless of the opportunities that SPIR-V allows for.
It’s not undetectable at all. When you go to vote, you give your name and address, and get crossed off a list. If someone did that fraudulently, it would be noticed when the person who’s identity you stole comes to vote, it is obvious.

There is a good reason not to require it. Not everyone who is eligible to vote has an id, or a straightforward way to get one.
Morality, Rocks and Hard Places
Recursion Pharmaceuticals releases 450GB of Covid-19 microscopy images
Except for blaming the media for criticism of a flawed study.
Yeah negative sorry
Very good points, especially the bit about a conflict with a library which many of us here have likely experienced.

What would you do instead?
You'd only need an attenuator if you're connecting two WiFi adapters directly through coax. In what is discussed here, waves always travel through the air at some point, which does the attenuation.
If it's one thing I find about working efficiently with Python development and execution env, - it's that you should plan for its configuration from day 1 to accomodate items like multiple python versions and to have a well defined idea of what you need (e.g. is python + pip installation enough or do you want to utilize anaconda).
I'm assuming that they can use some relatively harsh chemicals on the robot that wouldn't necessarily be safe for a person. And obviously not being able to respirate the illness is a significant improvement.