skysight-inc/HackerNews huggingface dataset:
I really wish this wine meme would die. Essentially every test done to ‘prove’ that there’s no difference between cheap and expensive wines has had two massive flaws:

1. The label of ‘wine expert’ is left undefined. True sommeliers have spent thousands of hours studying wine and are not the same thing as a guy that takes a weekend wine-tasting course and gets a certificate. Yet most ‘studies’ fail to mention this.

Just as importantly here, what literally every single source we could find not only leaves out when reporting this story, but in the vast majority of cases falsely states, is the actual qualifications of those being tested by Brochet. It turns out, the people he was using as taste testers were not experts at all, simply undergraduate students studying oenology (wine and wine making). While certainly probably more knowledgeable than your average person on the street, nobody would call an undergraduate mathematics major just learning the ropes a “math expert”, nor would their skills be indicative of what their professors who have vastly more experience and are actual experts are capable of doing.

2. The ‘experiments’ are done in a totally unscientific arbitrary way, with massive amounts of suggestion and psychological influence. If this were any other scientific study, it would be laughed out of the room for its total lack of rigor.

As the Master Sommeliers demonstrate by passing the taste test they are subjected to in the first place, with enough time and study, there are actually people who are exceptionally good at identifying and judging attributes of wines in the right circumstances. But overwhelm there sense with 100 wines or change their expectations about what they are tasting and their perceptions will change significantly, seemingly, making them little better than a random person off the street at telling anything definitive about the wine.

https://www.todayifoundout.com/index.php/2019/07/can-profess...
Show HN: Extract text from any pdf in the browser
At some point a Rust program does have to run on a real platform. Anything interacting with that platform will be `unsafe` because Rust cannot reason about things outside itself. You'd usually wrap these unsafe things in safe functions. Note this isn't about performance at all.

Also in Rust's model there are only unique or shared pointers (and the owned resource that they point to). This can't be used to represent all data structures. You need some unsafe code (ideally wrapped as Safe structures) to create these structures.

And as noted, `unsafe` can be used for performance improvements if benchmarking shows that breaking out of Rust's model does indeed improve performance. But you can't simply assume safe Rust incurs a performance hit or that your unsafe code will optimize better than the safe code.

In short, my point was one of emphasis and framing. When thinking about `unsafe` it shouldn't be thought of as a performance feature per se. That may be one effect of using certain features in certain situations but its an effect that needs to be proved by robust benchmarking.
In some countries like India, it is mandatory to wear masks. And you could be beaten up by the police, punished, penalized, arrested and jailed for not doing so. That goes completely against the WHO guidelines. Can they ban the country's government?

The mixed messages did leave me confused in the initial stages until major TV channels broadcasted what the government wanted. Until then I thought the news was a rumor.
Hi Hackers,

Often I get pdfs which I want to extract text from and paste it somewhere else. Not all PDFs are always well constructed and a lot of them are scanned ones. Unfortunately Mac's Preview or other classic PDF viewers can not extract text from those.

So I have built a minimalist website to extract text from any PDFs, scanned ones as well. It uses OCR to extract text and the user can highlight specific areas on the document to extract from. The extraction is made locally by the browser thanks to the awesome Tesseract.js library.

I would love to have your feedback before adding more features (zoom setting, improve areas selections, png/jpeg support, mobile support, offline support, ...).
My numbers were for Stockholm - not the entire country.

The deaths during that period for covid-19 were around 500 and the excess deaths around 900+
We once asked our cluster department to give us bare metal access to their smallest machine. They gave us a dedicated server with 256GB RAM. The real cluster nodes are bigger than that because they handle multiple jobs at the same time and they have hundreds of them.

This isn't some electron framework where it is unexcusable to use that much RAM. The hardware that is available to scientists is more than capable of handling these workloads.
I am currently in the middle of my own Hackintosh build on a fairly compatible laptop. If you are not prepared to blindly execute commands and run applications listed in a few different guides and then hope for the best, and you wish to grok what you're doing to your computer (so that you could, say, debug inevitable problems), I'm sorry to report that you are looking at many, many more than 3-4 hours of reading. Let me just say here that I have many, many years of experience in helpful fields (software, hardware, firmware, -nix), and I don't hesitate to say the process of building a Hackintosh is difficult and involved. That is, if you don't intend to buy specific compatible desktop hardware and then use specific software tools to do the install. For example I am installing on a laptop using the new bootloader OpenCore (versus the long default Clover) and I do not already have a Mac or Windows system handy, so I'm doing the install from Linux. This makes everything more complicated, but this is probably more similar to the "average" use case for most users than building a desktop Hackintosh using Clover.

That being said, the good thing is that the situation is improving: The documentation is being constantly updated and consolidated (which can be its own evil as you know, since there is frankly too much documentation out there, most of it outdated), the tools are getting easier to use and performing their functions in less hacky ways, and the community of Hackintosh builders is growing. But just be advised that the vast majority of the community of Hackintosh users really have no idea what they've done to their systems beyond being able to regurgitate the instructions they followed in whatever guide they used. And so most of the posts and replies on the forums and subreddit will not be helpful for solving any of the inevitable issues you'll run into. Probably 95% of thread replies are other users flailing around with their own similar-sounding problems, suggesting essentially random switches to flip in the configuration files (further complicated by completely new issues introduced between version updates, as the sibling comment mentions). This is problematic because in actuality, everyone's using completely different hardware and so none of the ubiquitous suggestions of "You need to enable this setting since it worked for me" are applicable. Successfully building a Hackintosh essentially comes down to loading the proper firmware settings and hardware drivers which just so happen to work for your particular set of devices. So just go into it with eyes wide open to the fact that this is a large community standing firmly on the shoulders of a very few giants, and be mindful that you can physically damage your machine if you take the wrong suggestion from a random forum user for a problem you're having. The most helpful external (non-Hackintosh) documentation I've often referred to during this process are the current UEFI and ACPI specifications, just to give you a heads up on something useful to have handy. Good luck!
Yeah, but then you have to wait 5 minutes to build the deps again. If it cleared the stale ones it'd be fine.
That's the great thing about co-worker friends. I don't have tech friends from my "real" life, but I have a ton of random friends from old jobs I talk to and (in what seems like a different life, before COVID-19) get together with regularly. What started as joking about agile processes is now planning weird trips and brunches.
For German readers: https://www.golem.de/news/klimakrise-autodesk-der-bagger-290...
> So why give up those benefits for an uncertain, unstable gig-worker job with Instacart?

Two reasons:

1. If you make less than the unemployment rate for the week in a gig job, from my understanding you will get topped up by unemployment to the max level you were eligible for. So taking a gig worker job has no bottom side risk (income wise) if true, just the opportunity to make more than you would on unemployment. I can’t guarantee this is true everywhere, but I’ve heard anecdotally of it being true in some states.

2. I know of / know directly a bunch of tech industry workers across who were furloughed / laid off and live in NYC. Salary range for tech jobs here is all over the place depending on position, so to simplify the math, let’s make a WAG and say $104k annually is the average (likely low, but some roles in tech in NYC are way under $100k). So their weekly pay is equivalent to $2k/week.

NY unemployment caps out at a very low ~$500/week, give or take $50, and so even with the $600 kicker (when you finally start getting it, it’s delayed and backfilled to start), it’s an almost 45% cut in salary without notice and on top of that, you might be stuck spending on cobra for insurance depending on employer generosity.

Cobra can easily cost $700/month for an individual (what I’ve paid before anyway), and could be easily over a grand for a family who has great medical coverage as is generally the case with tech jobs. So now that $1100 pay/week (which takes multiple weeks to actually start coming in generally, hope you have savings or a severance) is starting to look more like $800-900/week.

Given rents on the low end are generally greater than 2 weeks of that level pay (if not a lot more), can you start to see how unattractive unemployment gets?

I’m lucky and still am employed, but if I wasn’t, even in the best case where my employer pays cobra for some duration, I wouldn’t be able to pay my rent with 100% of the unemployment benefits (and I live in a cheaper area, for the size place, than is average for NYC metro with reasonable commutes), let alone any other bills.
The author fails to mention what is probably the largest downside to sex: an entire half of the population is completely unable to reproduce. The question "why do we have sex?" could be restated as "why do males exist?"

Unfortunately the answers to that question trouble some people so it's difficult to establish the truth. The simple answer comes down to the fact that a species has to find a balance between maintaining genetic diversity, which is important for resilience and adaptation, and maintaining a strong breeding population. Males are there to allow some really wacky variations to exist that just wouldn't be viable in females. It only takes a tiny handful of males to take part in reproduction, but it takes essentially all females (especially considering they are only 50% of the population to begin with).
https://www.gstatic.com/covid19/mobility/2020-04-17_SE_Mobil...

Google Mobility Report says "Retail and recreation" is down 27% in Stockholms län. Blunt statistics, but you can't pretend an almost 1/3 drop in business is anywhere near normal.

Some areas of the city look almost normal, yes, but other areas of the city are deserted wastelands. I'm sorry you are surrounded by idiots who are ignoring the official recommendations, but statistics show that your experience isn't universal.
This is LocalDate/LocalTime in java.time/joda.time parlance. But it's a different beast; in fact, you're talking about a repeated action. But if I tell you that on "March 23rd, 2020, 9:50:01am" I did something, what does that mean to you? When did it happen? That's a naive datetime.

It's got its place: but the idea that the API and the usage should be similar to a precise representation of time, as if it the two were interchangeable is... dangerous, and it's the source of a lot of problems with dt in the Python world.
If there's no "slippery slope", then why do 3-4 companies control the entire internet today, when a decade or more ago there were 15-20 players? Go even further back and you had a myriad of choices; now Amazon, Facebook and Google have sucked up and shut down just about all competitors.

If you don't care, then you don't care. But saying there's no slippery slope? It's capitalism. It's happened with internet providers, it's happened with search engines, it's happened with social media, online stores, it's been funneling into a handful of companies for over a decade now. People want things for free and companies are willing to sell your data to finance their payroll. Saying it won't happen anymore is just naive.
What are graph convolutional networks?
I've had such a different experience than you. I feel that being friends with co-workers has always been more about mutual aid than competition.
> But damn, if this is at all representative to what studying philosophy is like, isn't it exhausting?

Worthless slop is worthless. To make it worth something you need to be precise. Yes, it can be, not exhausting, but sometimes tedious. But that attention to detail is necessary in any constructive endeavor be it software, hardware, mathematics, engineering, governing, why do you think philosophy should be any different?

The end results can be worth it. I used to argue a lot with someone, it's only when we agreed to be precise about what we were saying that we got anywhere (to be precise 'got anywhere' = 'started to understand each other's positions and assumptions').

Edit: trying to debate with someone who can only respond with emotionally based certainties and often descends into shouting and blank denials is a wearing and disheartening experience. Also not useful if you're arguing about important things like, I dunno, what to do about pandemics.
Käsespätzle is like if a Bavarian chef was asked to make "macaroni and cheese" but didn't really know what the actual ingredients were and just tried to wing it with what they had on hand.
Yeah, I really feel sad when I see those articles and comments telling you not to share anything that you don't want your boss to know with your colleagues, or even better ignore them completely and automatically treat as deadly competition. If you cannot trust anybody and have difficulties with assessing if someone won't turn his back on you, it may be a problem with your social skills, not with other people.

This kind of thinking encourages situations where the employer may have total control over his employees, like with Amazon.
GitHub project that lets you create a social webapp
It doesn't require care. By default you just put stuff on the stack in C++. You have to go out of your way to use things like ref counting.
Ugh, thanks. I was eying larger MBP as my 2017 13" runs almost always with both cores used, and is loud - was hoping a six core would be quiet under same load :/.
The World After Covid-19 (Bill Gates for The Economist)
Doesn’t China still have some shadow banking activity also ? You can’t abolish private banking completely, because ultimately loans are just IOU’s. Anyone can speak or write them. Even accounts receivable are very similar to loans. Private banks are just outsourced service arms of the fed anyway. you can’t really stop people from using future income to plan current investments. leverage comes from spending expected future streams of money.
Somewhere in the periphery of Gothenburg.
Ask HN: What does your personal security/privacy stack look like?
I am thinking about making my private life more secure. This includes thinking about
a) a new email provider (currently Gmail with 2FA)
b) limiting tracking on websites, changing all my weak passwords, deleting all unused accounts (using 1Password, uBlock Origin currently)
c) more secure way to store my financial assets (currently Marcus, Coinbase, BofA, Chase, all with 2FA)
d) consolidating between my Google and Apple accounts (using Chrome on Mac) – both collecting a ton of data and passwords are often saved between the two
e) any other advice?
Some values are incompatible with mutual respect.
That's not how suicidal ideation works, unfortunately.
`unsafe` is in the language for compatibility, not performance. Rust programs run between countless other chunks of software, most of which do not have comparable safety features, same as the communication channels inbetween. But you still want Rust programs to be fully compatible with that "outside world" when needed.
Regarding retainment offers and somebody commenting on the fact that he asked for changes instead of money for retainment:

I recently took note of this beautiful quote by Bryan Cantrill: if you can't make the right thing happen then it's time to leave.
Hopefully ensuring that anyone who tries that just happens to subsequently suffer foot pain will work as a deterrent...
Answering Your App's Questions with Redux Selectors
Jaime Oliver’s dough is pretty much impossible to get wrong: https://www.jamieoliver.com/recipes/bread-recipes/pizza-doug...
Right. It’s been years since they promised a modding API. Mods draw the community. A modding API is not a big ask considering the community has made half a dozen mod interfaces from the source code leak. MSsimply don’t want to spend any amount of resources to help development when they can’t justify how it will make them money. MS has been pushing monetization since they purchased Mojang. If you make a modding API then you can’t charge for items that do nothing besides limit creativity, such as player skins (the most basic example of something that everyone has been using as a creative part of the game even without mods).

The java backend is doomed from the onset. Then why is the bedrock edition not better? It’s a simple game that a small team of competent engineers should have done in less than two years. Unless they actually make a modding API for the bedrock edition, the bedrock edition will be little more than a footnote. The java edition will remain the most relevant set of releases until mods are officially supported in bedrock.
Politics of Adversarial Machine Learning
I always have a hard time getting the dough stretched out really thin. I end up with super floof pizza. What am I doing wrong?
> My personal pet peeve is the lack of powerful device search -- in OSX, I could use Spotlight or better yet Alfred to look inside PDFs

X1 Search [0] is lightning-fast, results-as-you-type, and searches inside every file and in all of your email and attachments. Not just what's open in your mail client but also email archive files. I have email archives back to 2000, and the lookup is still instant.

X1 is actually one of the two things that had me switch back to Windows the two times I've gone all in on a switch to Mac. (Ironically back then the motivation was Apple's hardware was much better.)

[0] https://www.x1.com/products/x1-search/
I'm sure the net effect is less people dying, of the pandemic or not, than without the lockdowns.
I just checked, and yes, the installer offers a "erase all disk and install ZFS" option (although it's flagged as experimental).

I'm not sure whether that means encrypted ZFS or not though.
I think the range of compilation times for C and different styles of C++ is so huge that this question cannot be answered without going into a lot of details about how the C or C++ project is structured.

You can compile hundreds-of-thousands of lines of "user-side" C++ code in a few seconds, or in a few hours. The range is much smaller in most C projects, but can also differ by orders of magnitude.

In short, splitting a C++ project into many small source files (e.g. "one file per class") combined with using a lot of C++ stdlib headers in each small source file is the worst case for a C++ project because of all the complex stdlib template code that needs to be compiled over and over again. This can increase the "under-the-hood" line count by several hundred times (in Google Chrome, the amount of "project C++ code" is only 0.125% of all the code the compiler needs to compile when rebuilding the project because of included headers):

https://randomascii.wordpress.com/2020/03/30/big-project-bui...

AFAIK Rust solves part of this problem with its module system, but the compilation time problems lurk elsewhere.

Here's an interesting webpage which looks at compilation time of C++ stdlib headers and some popular 3rd-party libs:

https://artificial-mind.net/projects/compile-health/
Dataset of Electrochemical Efficiency of a Direct Borohydride Fuel Cell (DBFC)
If I understand, does this mean on windows when I've copied a file location I would no longer have to replace backslash in the file path with double back slash or forward slashes? Or am I off-piste?
Yes and usury is why we have an economic crisis every ten years. The magnitude of the crisis seems to be increasing each time.
Turing Pi Cluster Board Lets You Make a Raspberry Pi Server Rack
I have been using Flask for a while now (to code rest apis). The circular import issue can be a pain. I blame most tutorials and examples out there for this.
As the article mentions, putting code in init.py can lead to issues because the file is read when importing modules in the directory it is declared. Better to keep it empty.
Also tutorials rarely mention how to use the factory pattern effectively which prevents most of the issue. This is how flask extensions are implemented by the way, with init_app function doing the initialization. Often instead, you see app = Flask() declared at the top of the init.py
Not to mention using the app.url_rule decorator on views (which leads to importing the global object) instead of using blueprints to register views and registering blueprints in the app factory
Do things outside work! You can make friends on the job, it makes the days so much better. If you believe the workplace is a big contest for who's best, it probably will be. But, in my experience, if you treat every new job like you would have starting a new school year, you can make real friendships.
Multiscale variations of the crustal stress field throughout North America
Even if you don't feel bad for them, it's still an interesting and maybe surprising story.
I think we are omnivores.
I haven't read those studies but I do hope they controlled for population density...
JSON does not support comments nor string interpolation. Python ConfigParser language does.
It is shocking how often people suggest dubious code changes to "improve performance" with exactly zero benchmarks, or solely artificial benchmarks. Computers and compilers are far more complicated than your naive code analysis implies, you _must_ prove any performance changes with robust, real-world benchmarks, especially if your changes make the code more unsafe or harder to understand.
> Unsafe can't ensure performance improvements, but you can sometimes get performance boosts using it.

Maybe to back this up with a concrete example, let's say I'm parsing something and I have a &[u8] (a string of bytes) which I have already verified contains only ASCII digits. I wanted to get the numerical value of that number. I don't want to write my own number parsing code, but std only has a parsing function for &str (UTF-8 strings), not for &[u8]. I could do

let string = str::from_utf8(bytes);
let value: u64 = string.parse()?;

But then str::from_utf8 would iterate over the bytestring again to verify that it's valid UTF-8. This check is useless because I already know the string only contains ASCII digits. So in this case, I can improve performance with an unsafe block:

//SAFETY: `bytes` was already proven to only contain ASCII digits
let string = unsafe { str::from_utf8_unchecked(bytes) };
let value: u64 = string.parse()?;

The performance gain comes not from unsafe per se, it comes from using a different function that skips the UTF-8 check. Since this function does not guarantee on its own that str's invariants are upheld, it's marked unsafe.