skysight-inc/HackerNews huggingface dataset:
> Slash is the ONLY character you're not allowed to have under Unix. There are no good reasons to disallow spaces. Disallowing characters in file names that you're allowed to have solves absolutely no problems, it only causes them.

I think that there are more good reasons to disallow spaces than slashes. For one, it is very useful to have a natural character to separate filenames in a string. Then your bash scripts can be simpler! :)

> trick Unix into putting slashes into file names via NFS, and Unix would totally shit itself when that happened

LOL. I love this stuff. There is a similar trick that you can play today to wreak havoc on osx systems. You commit into a git repository a new file whose name only differs in case with an existing one, and ask a mac user to update the repo. Hilarity ensues.

> If you think nobody would ever want to use a space or a slash in a file name, then you should get out more often and talk to real people in the real world. There are more of them than you seem to believe!

But these users should not see the filename anyway, but the "title" of the document, which can be stored inside the file and can have whatever character they want. At the minimum, the user-facing interface can convert user-typed spaces into another character (e.g., a unicode non-breaking space) when writing the file into the filesystem. Raw spaces in filenames are an abomination that make shell scripting unnecessarily difficult. I would love a mount option that disallow the appearance of such things in my disk.
> An indirect thing you can learn from this example is that how little code quality matters when it comes to product popularity or revenue.

An that is the exact reasons why it is hard to address implementing more tests, and addressing technical debt.
Ask HN: How Does PSD2 Work?
I'm a developer of an open-source budgeting solution on Github, and I'd like to develop a feature that allows me to connect to my UK bank and pull transactions from it.

In my situation, do I need a PSD2 license, can someone explain this more?
Because that's implicit in the contract Google signs with it's employees. People go (went, at least) because of the autonomy they're given. That autonomy isn't a perk; it's a prerequisite for innovation.

Now Google's got reduced innovation and reduced autonomy for it's employees. They didn't scale the latter and subsequently, they're losing the former.

If the employees leave, Google's another IBM. Another corpse.
As do many language package managers, e.g. Dart's pub.
This is an extremely...one-sided...view of things. Consider a more healthy one: capital and labor should be partners, and labor gets to have a say in the direction of the company, too.

It must be said, again and again: corporations exist at the sufferance of the society that grants them their charter and only exist for the benefit of that society. A company that can't do that should have its charter revoked. And its labor force is part of that society.
That's a really bad idea. You need to have a good counterexample, otherwise it's just wasting time at the best case. A lot of people learn from really bad codebases and picking up the same style which is terrible. You should look at GOOD codebases instead!
Does anybody else feel that the syntax is terrible and SQL is not a good fit for this? I, for one, would appreciate if the paths were accessible via a change to the SQL syntax as opposed to a magic operator or - even worse - a new function. Not to mention that the more complex the queries become, the more pain one can expect the query planner to be... personally, I'd prefer to make my own query plans instead, laying down the algorithms according to the best of my knowledge of the dataset.

It's not like optimizing in C, where the compiler looks at the AST and can actually discover something you wouldn't think of. My experience with PostgreSQL's query planner is that it requires so much fine-tuning it's near unusable and super quirky.

That isn't to say that I don't like PostgreSQL and its JSON capabilities - it's just that the more I use it, the more I wish there was something between it and current NoSQL databases...
There is a big difference between that and what is being discussed in this article though. Unions are dealing with pay and conditions - important, but ultimately just aggregating topics that employers and employees were going to negotiate around anyway.

This article is talking about:

* Amazon workers are demanding more action from the company on battling climate change

* Microsoft, employees say they don’t want to build technology for warfare

* Salesforce, a group has lobbied management to end its work with the U.S. Customs and Border Protection agency

* Google, [employees] want a say in and control over the products they build

Those are issues going way beyond what an employee can reasonably expect to influence. Being employed by a tech company is an achievement, but the end of the day tech workers aren't that special. They don't formally get to decide how the world works.

They absolutely can't take to social media to complain about these issues and expect to hold a job with the company they are complaining about. This type of activity isn't acceptable; they can't draw a wage and overrule strategic directions from people with capital at stake. The options are work or walk.
Keep dreaming, morons.

Most people don't have sufficient savings to last 5 years after they retire.
The bit being referred to is how signing and encryption can be inverse operations of each other in some schemes. The canonical example is textbook RSA. Signing is the same operation/math as decryption. Likewise, verifying signatures and encryption are the same operation/math. So, if one used textbook RSA for both things under the same key pair, then an encrypted blob under public key PK could be decrypted if you can get the same person to sign that same blob using secret key SK. In other words, in textbook RSA sign(private, encrypt(public, message)) == message.

There are things that make this less trivial to exploit for non-textbook cases. But, either way, it is generally easier to mostly go with “don’t use the same key for both signing and encryption” so you don’t have to do a bunch of stuff to figure out if a given construction is safe. If Filippo is supporting RSA ssh keys, I’d love a post walking through the way to prove that reusing RSA keys turns out to be safe if done carefully/thoughtfully.
I've seen this same satire about Google multiple times on HN, and have made the same point before myself; I'm curious how many Google employees understand why more and more people are seeing Google's product lines as a joke in that sense. Google makes working software and devices, but does anyone feel like they can count on Google for anything? It seems like few do at this point, and it's mystifying that the higher ups at Google don't seem interested in addressing that perception unless enough people complain, despite the dissatisfaction being totally predictable.

I really wonder whether, if someone with any clout at Google read your comment, they would get the joke or not understand.
I don't trust advertising companies with more intimate data about things inside my home. A phone and computers is bad enough. Fortunately there's a good solution for me (today) and for everyone (hopefully soon).

Home Assistant [1] has been a Github-topping repo for a while. You've seen it here on HN several times [2]. It's a Python 3 open-source home automation platform that runs on a Raspberry Pi or other home server. Local data, local control. It's been being bootstrapped by tinkerers who can handle YAML config files for a while but is getting much fancier these days.

When Google shut down Revolv hubs in 2016, they posted rationale about why your hub should be open and local [3]. This kind of move further justifies the argument.

As big companies clamor over access to your home, let's take a stand by demanding open standards, local data options, and local control.

[1] https://www.home-assistant.io/

[2] https://news.ycombinator.com/item?id=15521743

[3] https://www.home-assistant.io/blog/2016/04/05/your-hub-shoul...

[4] https://www.home-assistant.io/blog/2018/09/17/thinking-big/
This suggests that we are pretty close to not being able to rely on voice biometrics.

Does anyone in the field know more?
Yeah there are a few in that category also Google Cloud Spanner and the stuff by CitusData. All of them work, but are prohibitively expensive to get started. I've harangued them a number of times about how people aren't going to want to use something they can't scale up from $1/month to $10000/month without migrating any data (that's the whole point of an auto-scaling horizontal service imo), but so far no changes from them. Like why would you design potentially infinite auto-scaling, and then lock it up behind a $90/month minimum fee. They could have been making money all along on those $20/month or $40/month or $5/monthers, who vastly outnumber those who _need_ autoscaling, but what the peace of mind that auto-scaling provides.
90% of those block lists passed around are just free speech friendly instances that abide by United States speech laws.

It’s really disturbing to me that a server can follow US laws and get on these shared block lists.

I guess free speech is synonymous with evil totalitarian fascism? It’s no wonder the phrase “clown world” became popular.
I don't see how a civic data trust is mutually exclusive with a surveillance state — it just provides common ownership and open access to the surveillance data. It seems Cavoukian's dispute centered on the lack of a requirement for third-party (non-Alphabet) data providers to anonymize data at the source.
Learn AWS Lambda – Serverless Computing: Hands-On Labs Training
That is plain FUD spread by anti-UWP crowd.

UWP is alive and well, just go check the BUILD 2019 sessions.

Apparently some keep missing the point that all new Windows APIs are based on UWP.

There is much so more to UWP that the store.

The only thing that are doing is bringing the legacy stacks (Win32, Forms, WPF) and the modern one (WinUI, UWP) under the same umbrella.
It comes with key cards and you can program additional key cards in the car.
Are your nuggets rated in kilojoules?
What's Cook's environment focused philanthropy track record like? Genuinely curious
I have a contract for gapps, I have not been burned yet but I’m sure it’s just a matter of time.
But then you have six versions to have security fixes, how do you do that?
Oh no, a weak effort, how terrible.
Weren't some early Facebook employee cheated out of their shares by some legal gymnastics?
What are you trying to do? Show that deliveries can be made or minimize the cost?

If you’re minimizing the cost, shouldn’t this be formulated as an optimization problem?
Want another laugh? Turn your phone 90 degrees.
I think the deployment story for Haskell is better than Racket. It is easy enough make standalone Racket executables but with stack and cabal it is baked in to easily build multiple executables, separate libraries, keep everything tidy.

Racket is much better to get something done and working quickly. Same comment for Common Lisp.

Haskell has great support for strongly types web services (servant) and lots of great libraries. Racket has a very rich ecosystem of libraries, custom languages (like Typed Racket). Both are great.

EDIT: It takes me longer to get to working code in Haskell but once written the code has higher value to me because it is so much faster/easier to refactor, change APIs, reuse in other projects, etc. I just did a major refactoring/code-tidying this morning, and it was very simple to do.
If you’re interested in a case of unnecessary optimization and effort, the infamous left-pad npm library has been refactored to only add to the string O(log(n)) times. It is short but not sweet.

https://github.com/left-pad/left-pad#readme
This was my first thought. While most employees of Google are just normal people who just want to get their work done, there's a vocal minority to whom it's their life. And they are infantatilized by Google. They take the bus to work, get their Free Lunch, get their nap time or yoga time. And they like to cause trouble.

Most of these protests stem from a case where one employee harassed another and the company handled it. The harasser was persuaded to resign, but since there was no criminal or civil determination in a court, they didn't withhold from him promised compensation for work done, per a prior agreement. This makes business sense--the money was already allocated, and withholding it could lead to a messy distracting lawsuit. This vocal minority was angry he got money, and imagined in some way it was as if they themselves were subject to his bad behavior.

And while this case involved "sexual harassment", it in no way affected other employees. The fact that one "harasser" seemingly got away with it with a pile of money has no bearing on how other employees are treated.

Similarly Damore (while I believe his memo was idiotic) -- his speech in no way could cause harm to any employee. He was summarily fired which is an extreme action to take, considering the person who leaked an internal google message board was never punished. He's now gone. People should put a period on it and move on with their work lives, or find another job.
I've done some elisp (and a tiny bit of racket) and some Clojure and honestly I struggle to see why I would ever pick a racket/scheme/elisp over Clojure unless I desperately needed to do a ton of C ffi. Clojure is much more opinionated but I never find myself feeling like it's constraining or a straightjacket

When do people say to themselves "screw this, I need a more flexible tool like Racket"? Is it when you get super deep in the macro magic? (I'm not reallt sure how the Clojure macro system compares to the Scheme one)
Warning Signs That a Bubble Is About to Burst
Cool, thanks for the recommendation.
I watched the full interview and it was pretty cool. Sam is a cogent & concise speaker, and honest too.
That ship has sailed a LONG time ago. We're here. We're spaced. Get used to it.

So you think all files should have a human readable title inside of them, huh? Then you're OK with MICROS~1 8.3 file names, and not ok with any file format that doesn't allow a human readable title inside? Should empty files be prohibited too?

https://en.wikipedia.org/wiki/8.3_filename
I couldn't get past the first heading: "NASA and the Space".
Coming from the JS world, asyncio feels fine to me. I've noticed a lot of Python programmers who have a strong background in C and Python struggle with asyncio. But in their case, I think it's more them disliking the async programming paradigm rather than the specific asyncio API.
‘Oh, My God, Where Is This Going?’ When Computer-Science Majors Take Improv
The Five-Paragraph Fetish
This is basically the knapsack problem right?

https://en.m.wikipedia.org/wiki/Knapsack_problem
Can you provide an example?

To the best of my knowledge, minor version updates in Python 3 have been entirely backwards so far and shouldn't have broken any library code. And as for incompatible changes sick as the transition to 3, then these of course had interface changes in the standard library.
New York State Senate introduces bill to make texting while walking illegal
also, how about banning slurs and references to sex acts in any work communication?
As they show the new Nokia phones on the website, I suppose it's definitely not the part that belongs to Microsoft now.

But which is it? HMD Global? Another Nokia?
(Here is realization of that "plain SVG in SVG in CSS" approach:

https://codepen.io/myf/pen/QRgVdN

It is in fact nothing more than

body {
background-color: dimgray;
background-image: url('data:image/svg+xml,\
<svg xmlns="http://www.w3.org/2000/svg" \
viewBox="-3 -3 6 6" stroke-width=".1">\
<path id="p" fill="none" stroke="black" \
d="M-2-1v1h1v-1h1v-1h-1zh-1v1h1zh-1v-2h2v1h1v-1h-1.51l-1.5 1.5" />\
<use href="%23p" transform="rotate(90)"/>\
<use href="%23p" transform="rotate(180)"/>\
<use href="%23p" transform="rotate(-90)"/>\
</svg>');
background-size: 25vw;
}

(Rotations instead of flipping because reasons. Making this work in IE would require extra URI encoding of bracket characters (at least).)
They do allow you to do parallelism, though. There are just some things they can't parallelize because of the GIL.

Green threads also allow for parallelism, if they're scheduled onto more than one executor.
I think the only certainty here is the need to spend a lot of money on compute - whether from third party cloud services or from fans manufacturing chips you designed.

The description of some company or system capturing all future value sounds more like a singleton than general intelligence. Instead of calling themselves OpenAI maybe they could change their name to something that reflects that direction.
I gave up on native Android, because every year the best practices get rebooted, they don't give a dam about future Java compatibility (Java 8+) and after 10 years, NDK is still WIP.

One example, the whole story with fragments, then now that they finally have a good story with constraint layout, after three years in the making, they are introducing a Kotlin based DSL.

At least the Chrome team gets a solid story with their PWAs, also supported by other vendors.
That statement by itself requires knowledge that bolshevik means something like "majority" in russian.
Nice write-up.

Waiting for Racket-on-Chez effort to come with more optimizations and multi-core access
The WSJ CEO Pay Ranking
No they were the majority in 1917. Earlier they had been the minority, but post Kornilov they were a majority at the time of the storming of the winter palace.
As I understand, the Ruby model -- that is suggested for Python above -- is to include the libraries by default but to keep them as separate pypi packages.

In this case, even If you can't upgrade, you still get the same libraries but perhaps older versions.
My assumption has always been that the Google employees that read HN understand and even agree with this sentiment, but do not have the (political) power to actually influence this process.

I’ve understood this to be a pretty fundamental cultural thing with Google, where people are more likely to get promoted for shipping something new (rather than improving something that already exists). If this is indeed the case, it’s likely not something that a few employees reading HN can solve, but rather needs a big shift in process from the very top of the organization.
It could also be used to hunt for deadbeat fathers, or rapists who didn't murder anyone, or...

Why exactly am I supposed to be opposed to this? Your feelings and inchoate fears?
It will probably come to something like that (for the Unicode issue alone) but it would be a disaster. Python has always had an issue with ongoing changes that break existing code. That was the idea behind Py3, that we would do all the breakage at once and be done with it forever. Ironically that made Py2 a much better target for a time as it was not changing very much.
Minesweeper: https://yurichev.com/blog/minesweeper_SAT_SN

Hexiom: https://github.com/hugomg/hexiom
Not sure how concrete/practical you'd consider this, but here's one:

In last year's Advent of Code programming contest, one of the trickier problems involved taking a collection of points in 3D space, each of which has a "range" defined by Manhattan distance, and finding the location that is "in range" of the maximum number of them.

Now, this isn't a theoretically intractable problem. Each point defines the center of an octahedral volume of space, and by repeatedly slicing each volume using the others' boundaries, you can partition the entire space into something like O(N^3) disjoint pieces. You can then enumerate these pieces to determine which one is contained in the largest number of octahedra. But actually implementing this is tricky; each piece ends up having an irregular polyhedral shape, and calculating the geometry of their boundaries would be non-trivial.

Instead, some of the participants noticed out that you could represent the constraints as a formula:

find (x,y,z) that maximize sum((|x-xi| + |y-yi| + |z-zi|) < ri)

and then just feed it to a SAT/SMT solver such as Z3. This is probably less computationally efficient, but in practice it runs reasonably quickly, and it's vastly easier to code. (The Advent of Code scoring system is based almost entirely on the time taken to come up with a correct solution, so it strongly favors solutions that are quick to implement.)

Here's one such solution: https://www.reddit.com/r/adventofcode/comments/a8s17l/2018_d...
Even Harvard Is Now Teaching Personal Finance
> Not "hacker" focused anymore.

neither is HN to be frank
Children killed in roadside explosion in Afghanistan
Washington state braces for eco-friendly 'human composting'
I'm surprised a rule is the solution for that.
> so much more effective than exercises on particular sections

Effective at what though. Just passing the test?

Do the students actually understand the material? Can they apply it to novel (to them) situations?

When I was studying physics ('74-'77) a significant number of students who all had just as good test results as I did in senior high school dropped out after the first term because they just couldn't manage the material. They had learnt enough to pass the exams (British A-levels) but had not really understood and had not practised enough. I suspect that rise of modular courses might make this situation even worse but that might be prejudice on my part.
The digression linked above:

http://ixoloxi.com/voynich/etruscan.txt

is really fun to read. It's about Voynich Manuscript, written by somebody in 1997.

Observing that as a work of fiction, of course.
I used to like big endian for the same reason (that it seems more similar to our written numeral conventions), but little endian allows you to narrow and widen integers with no operations, and without changing the pointer. That's why it's better in my view.
For a minute i thought you were talking about reddit's undesign. Yeah Indiehacker has almost comically bad UI but you're more likely to find people that are hustling there. HN is more about corporate office politics.
That sounds similar to the incremental lambda calculus described in this paper: https://arxiv.org/abs/1312.0658
There's an implementation for DOM updates in Purescript (https://blog.functorial.com/posts/2018-04-08-Incrementally-I...), but I haven't come across a similar approach in Javascript yet.
Why would we exclude overhead?
In glassblowing, the materials are worth almost nothing. The fuel it takes to melt glass often costs more than the raw materials. The studio takes significant expense to operate and being a glassblower is a skilled position. Now and then people find out that the glass costs x amount a lb, and will say “bro it’s like $5 of glass why is this piece $150”... also ignoring the retail markup. The material costs have a fairly low influence on the price.
I'm sorry, I'm not eating crickets. I'll just go vegan and have a salad if we ever get to that point.
One issue with using use pure CSS for data table layout is if you have to add windowing/virtualized scrolling for very large tables it tends to break down (you need to know the row/column size so you can’t use breakpoints etc).