skysight-inc/HackerNews huggingface dataset:
The Stripe article in question, for others' reference: https://stripe.com/blog/api-versioning .

Your comments strike very close to home! In one project, to support Tableau analysis for business analytics, I did the opposite of "wrapping a JSON API around a relational database" - I used https://www.torodb.com/ to wrap a derived Postgres database around our Mongo source of truth! (Laugh if you want - it got us to launch!)

GraphQL, for all its power, can't support arbitrary aggregates the way SQL can. And when working with web-scale data, you want a server to be doing those calculations, not the client.

I continue to work on systems with constantly-reprocessing data pipelines feeding the primary records that users interact with; per the above, they can feed derived databases that support SQL queries as well, whether or not we give that full flexibility to the API user. What I should write a blog post about is how we think of optimistic updates; just like in a rich client-side app where you want to optimistically update client-side data with how you might expect it to appear after receiving confirmation of your transaction, you also want to optimistically update derived-database data with how you might expect it to appear after it flows fully through an asynchronous data pipeline that overwrites that derived database. It's optimistic-updating all the way down, with the deepest layer (a more-or-less immutable event stream, incorporating things pulled in from the outside world) operating as the source of truth. The trick with a system like this is to build the right abstractions (and they're very domain-specific) to make it a joy to program in - more Django than PySpark - but it's definitely possible.
Now where did that quote come from again? Ah, yes...

https://www.youtube.com/watch?v=sprrQ1OLW6g
A more practical approach would be to at least be forced to provide the ability to run your own software on the hardware you buy, which is also not a thing for the vast majority of hardware produced. At least not for end users anyway.
Complexity?

1) Parsing SQL is complex, and full of decades of warts in expectation (dialectal differences between databases, among other things). There are few "drop in" SQL parser libraries that are trustworthy and support much more than a bare subset of the language.

2) Query Planning/Optimization is the "secret sauce" of most SQL databases, and is extremely hard in general. To use SQL as a general API outside of an implementation tied to a specific SQL vendor you'd presumably need a "general" query planner/optimizer that becomes a mini-version of an SQL database in itself.

GraphQL's faults aside, it is quite straight-forward to parse (with multiple well known implementations of the parser), and for the most part query planning/optimization in GraphQL follows a simpler, more straight-forward map/reduce-esque "resolver" pattern than the Relational Calculus and general complexity of SQL query planners/optimizers.
I think every time somebody starts with "And here I thought...." it's something humorous.
Where does it mention RISC-V? I'm curious to read it. I hit ctrl-F to search for RISC-V in https://github.com/ZipCPU/zipcpu/blob/master/doc/spec.pdf and only found a brief mention under "2.2.7: Operand B".
Help, help, I'm being repressed!
Your experience mimics my experience almost exactly (although it sounds like you've worked on much larger and more complex C++ projects than I have), however I've been lucky enough to work with some extremely talented C++ programmers that have been able to accomplish astounding things with good, clean, C++ code. The problem, of course, is that 99.9% of us are not extremely talented C++ programmers.
Mostly because I believe that, while it's important to maintain healthy skepticism around privacy and security issues, I also believe that we don't benefit from cynical hyperbole.
I respect him for standing behind his long-time friend. And I am scared of people that react to it as if they were fighting for their lives.
A related article is at https://news.ycombinator.com/item?id=18143815.
Hundreds of years from now? I look at it that way now and I assume all decent people do too.
Without major players joining - browser vendors, it will be like IPv6 transition.
So write down the secret OTP key, do the crypto yourself with a pen and paper, or failing that with any device (laptop, hardware TOTP device) you own, using open source software, or build your own using the standard. It's nothing to do with your phone or carrier.
I haven't done any big projects with it, but I did use it for making a Firefox extension to archive sites. My biggest issue with it was the unpredictable way it would handle syntax errors, and how things were handled wasn't documented anywhere that I could find, you just kind of had to figure it out and remember for later. For example, depending on the function, passing the wrong number of arguments could 1). Cause the script to silently terminate 2).Cause the script to terminate with an error message 3).Execute the invalid function without mentioning the error, then return garbled output 4). Emit an error, skip the invalid function, but continue trying to execute the rest of the script.

It was frustrating enough to turn me off using languages that don't have compile time type checking.
Thanks for clarification, I didn't know about that. That doesn't change anything I wrote but it's good to know this was not coming from current member of the Rust team.
But then with a million of threads either M:N or 1:1 you have other problems, namely the whole shared memory multithreading model breaks and you can forget about all the locks/channels if you want to actually do something useful with that.
This advice seems fairly generic, but I'm curious what has changed in audio programming since then?
"Moistened bint", haha. This quote reminds me just how funny their wordplay and use of language was.
"Why else would he have been there?"

Because Kaplan and Kavanaugh according to the article are personal friends.

I think to willfully ignore this is exactly what I mean by connecting dots that have no business being connected.

Maybe I shouldn't be so eager to invoke Occam's Razor here but I am.
Good thinking. ROT-24596 should get you there!
Descent II felt made to be controlled with the SpaceOrb 360.

https://en.m.wikipedia.org/wiki/SpaceOrb_360

I’m shocked there’ve been no kickstarters to revive the perfect input device for 3D games.

If you’re not familiar with this input device, this calls it the greatest game controller of all time:

https://www.hanselman.com/blog/TheBestControllerForFPSASpace...

Also happens to be a pretty good hacker (maker) story.
If you want to use IPFS without using a public gateway, it is very easy to install and use a local gateway.

If you also use a browser extension like "IPFS Companion", it can automatically redirect all IPFS-looking URLs to your local gateway.

I agree this doesn't help for casual users who have never heard of it, but it's at least better than "everyone has to use a public gateway all the time".
Anonymous downvoting is the violence of HN (and it's probably a lot more antisocial than we admit). Politely pointing out errors is... well, it's something else. Probably at least OK. Sorry I don't have a Monty Python line for this comment.
Can anyone name one for-profit company that wants to build software on Solid?
I've been talking with a lot of friends and family about the Kavanaugh situation. I have only had two conversations where someone's belief about what should happen here differed from their personal preference about whether Kavanaugh become a SCOTUS justice.

In the vast majority of cases, people's beliefs about what happened just so happens to align with what they want the outcome to be.
I wish you edited that with '42'.
Infrant used to sell a NAS product that ran Linux on a Sparc implemented in FPGA. No idea why, but it was a commercial success. They moved to ARM or x86 around the time Netgear acquired the company.
Clients need to update their root keystore, but zones need no change.
Seems like a no-win scenario, whether he’s confirmed or not, everyone loses.
That's the thing, they want to know if you would bring up things even if you didn't think they knew about them. They want people who would do that, due to believing the polygraph works.

So they questioned them about this thing they knew about and he didn't reveal it, so they thought he was lying even though he honestly didn't remember it.

It doesn't work out well for people who know how polygraphs work in general or for people who do not reveal things they know about (intentionally or otherwise).
The sword in the stone really isn't the right story here; you want Arthur receiving Excalibur from the Lady of the Lake.
I can't imagine a universe in which Apple is willing to blatantly lie to their customers in order to please China (especially about such an important topic). That just doesn't seem to be in the realm of possibility. Amazon too I suppose.

It's one thing for a company to issue a press release that has ambiguous statements, weak denials that could be interpreted multiple ways, or denials of very specific scenarios that doesn't actually deny the more general case. But that's not what happened here. Apple issued a very comprehensive and forceful denial, covering just about everything I can think of (even asserting that they're not subject to a gag order). Amazon's denial was shorter but still reasonably comprehensive. I just can't imagine either of those being a lie.
Why is writing SQL so hard for "most devs" I was moved to a Oracle based project (the management system for the uk's core internet) and only had a weeks training on PL/SQL.

I got a high performance award after that project was completed and I don't consider myself a Rockstar developer
The specificity of Bloomberg report (BMC controller at the right location, details of the subcontractors, details about the people involved in sabotaging the supply chain, the details about the chip's color and similarity to a coupling cap, etc.) is also important to consider. They have put in a lot of details however elementary it may seem to HN crowd.

Apple and Amazon has more at stake than Bloomberg but the incentives are stronger for Apple and Amazon than for Bloomberg. For once, why would Bloomberg post a story that is completely false!? The details they've provided suggests that it wasn't just a couple of people contacted them anonymously and they decided to post a huge story about it. There are so many anonymous individuals cited in the Bloomberg article. All stars align to indicate something has actually happened on these servers.
And yet we already impose other rules onto our own universe not deducible by the universe itself, like e.g. logical consistency.

Why not expand them to any possible external universe?
To be fair, would anyone have recognized him there without this article pointing it out?

To make this claim valid, that this is a public show of support a multiple of stars would have to align here:

Joel Kaplan must have thought that he's famous enough that people will recognize him in public, better yet the third row of that testimony AND know that he's not a bystander or supporter of the alleged victims, but of the accused. And that he wanted to antagonize half of FB's staff about it.
The answer is muddier than what the other comments say. It depends on how you design your schema. It can support whatever you need it to support. Aggregations aren't impossible, but they have to be designed into the schema. A very quick example query with aggregates _may_ look like this:

{
searchFriends(first_name: {startsWith: "John"} age: {gte: 30}) {
count
aggregate {
total_age: sum(field: age)
avg_age: average(field: age)
name_count: distinct(field: first_name)
}
nodes {
first_name
last_name
age
gender
location
}
}
}

But there are many different ways to model this.
> Facebook employees are using their free speech to complain about him.

But they aren't, they are also complaining about the CEO standing up for Kaplan's right to espouse his views, or in this case stand by a friend. Just standing by the principle of free speech, which is very clearly what's being asserted by Zuckerberg here, is what's causing problems in the specific portion I quoted.

> Supporting an innocent man wrongly accused and supporting someone who turns out to be a rapist are two different things.

If you know the person who ends up being found out as a rapist, and beforehand you believe them, then no, there's no difference. I will not condemn anyone that stands by their beliefs if they are founded on evidence (even if it's personal knowledge of someone's character over a couple decades) and based on just principles.

Edit: To be clear, I'm not saying anyone's first amendment right was infringed, I'm saying that a company espousing similar rights for its employees with regard to employment is usually a laudable thing, and coming out against that should make one think carefully.
What is "real time", though? Time is relative within the universe itself, what hope is there that it even exists outside of it?

Using crude current metaphors: If I build a game, the concept of time within that game is, essentially, each tick of the game (a frame, for example, or a server-side tick). You can even have portions of the game world tick faster or slower relative to others.

But those ticks mean nothing outside of the game. Yes, in "real time" the ticks are constant... but I can pause the game at any point, it stops progressing. I can step it one tick forward, and for the game one tick has passed, but for me, any amount of time can pass.

In other words, there's no relation between time inside and outside the simulation, because it's a simulation.
It won't require everything to be downloaded - https://www.mono-project.com/news/2018/01/16/mono-static-web...

Will it ever be as small as a systems language like Rust or C? No - never. But the productivity gains that C# & the .NET framework provide are a worthwhile tradeoff for 99% applications.

The .NET team is actively working to optimize the payload to a manageable size.

You haven't specified what evidence you're basing this statement on:

> ".NET just isn't likely to be a good fit for the browser for high-scale applications where performance is critical."

Because Javascript is a good fit? Facebook sends down 500k+ of JS and how many of their billion+ customers complain about it?
They have been in the news recently in relation to the current Supreme Court fiasco. Why are they they a thing? Who likes them?
Vitamin D supplements don't help bone health, major study concludes
I don't think this is the typical "gen blah is lazy/entitled". This is a specific description of how young people today want to "bring their whole selves to work". As far as I know, this claim was never made about prior generations.

Full disclosure, I am on the old side of the millenial generation, though I have never identified as a millenial. To me, I'm Gen Y: born in the early 80s, and I remember life before personal computers were common.
Yes, sigh. Cyberdisinhibitionism: accountability and boundaries are reduced, lack of impact seen for committing such repressive acts leads to it.

Next on front-page HN:

How sheep's bladders may be employed to prevent earthquakes
Sample size of 15 is not industry standard. There are probiotic studies with thousands of participants.
I spent 53 minutes in Amazon Go and saw the future of retail
We give people a series of dropdowns on columns on tabular data, and they can do things like IN and BETWEEN queries for date and numeric data, as well as literal equality for string data.

The catch is that they can do this filtering on columns that are, behind the scenes, retrieved via joins. And the data set being searched may be many millions of rows. And it needs to come back interactively, i.e. no more than a second or two. And the schema is customer-defined.

I implemented a syntax tree that is composed from the various columnar dropdown filters and get passed as a big AND to the API. The API essentially recieves a full syntax tree for a predicate, but each field referenced in the predicate might be only available through a series of joins, or via the main table - it requires some analysis.

The database backing this is MySQL. MySQL has a fairly simple query optimizer, and it is reliably poor at being given complex predicates over queries with lots of joins. So, we split up the query: we try and tear off ANDed predicate parts that relate to the core table, push them into a derived table (i.e. nested query) along with the sorting predicate, if possible. We then join in just the tables required for evaluating the rest of the predicate, in the next level out. And finally, in the outermost query, we do all the joins required for the final page of results, joins that are necessary to retrieve all the columns that haven't been used by filters or sorts.

With this level of analysis of the predicate being executed, we could do things like reject overly complex queries. As it is, our underlying data model is limited somewhat in the expected volume on a time period basis, and we have some defaults over the maximum time window that can be searched, so it's mostly under control.

Occasionally new devs add in extra complex joins with derived tables that are a little bit too complex for interarctive querying, and staying on top of that is a challenge. It's needing a bunch more performance testing before releases, whereas we've been mostly able to get by with retrospective performance monitoring until now. But the team is bigger, not every query modification gets sufficiently expert eyes, and so we need to beef up our processes.
I don't regularly consume content that contains political advertising. Until today Twitter has never engaged in directly politically advertising to me. Thus it was surprising to see this come up in my timeline--and not in a positive way. The tweet itself also assumes I can't think logically for myself and reach my own conclusions on this whole nomination shitshow, and instead urgently advises me to join in with the [large number] of other people who all believe the same thing, as if that number should be a reason for me to change my mind. This particular tweet comes off as startlingly desperate, only made worse by the fact that it's the first "Sponsored (political)" tweet I've had. The whole thing was a highly negative experience and made me think less of Twitter, the Democrats, Mrs. Harris, and this entire political thing happening right now. Maybe that appeal to bandwagon bullshit sways the minds of idiots, but not me. The whole thing is incredibly insulting to everyone's intelligence.
It helps to have performance targets. Like 60fps, sub-100ms ui reactions, no stuttering, throughput matters or not, timing attacks are a concern or not.

It's often the case that optimizing a special case 10 times increases throughput, but makes the user experience worse (because it starts stuttering), makes the code ugly, and allows for timing attacks. So, in many contexts it's actually bad idea.

Half the work in optimization is measuring the correct thing.
C# does this server side too, async isn’t particular fun but threading doesn’t make it any worse when the runtime handles it imo.
It wouldn’t be hard to make the scan uninterpretable either, which is a seperate failure mode.
I love 6502 - so clean and simple. Even after 35 years I still remember the opcodes in hex.
Show HN: mlhub - turn your trained ML model into a REST endpoint for everyone
You don’t need an ORM, just a big JOIN.
The idea is that anyone can upload a trained model into mlhub and it gets exposed as a REST API endpoint that anyone can use to enhance their app/service with ML without needing to understand the code, set up dependencies, maintain some infrastructure etc...

I would love to get some feedback on this. Does anyone find it useful? Any feedback is greatly appreciated!
...That depends on the time and the place.
I was in a "Computer Magnet" grade school and LOGO was my first exposure to programming in our APPLE IIe computer lab :)
I assume it’s like national security letter. Only people in the company that has knowledge would be the ceo, general counsel, and people working directly to mitigate the issue. PR and corporate communication wouldn’t have any knowledge on the incident. I wonder how you collect insurance for these types of incidents if you can’t disclose them.
PHP's concurrency model is really nice: Spawn a process per request, and otherwise don't do concurrency because that's a mistake.

Yes, you can use CGI to get the same model in practically any language, but we see very few languages these days making this tradeoff.

For some reason, people decided they wanted the performance gain of spawning threads per request instead of processes per request. Honestly, it's ridiculous. Reasoning about isolated processes per request is easy compared to many threads. Sure, in php you can't share a pool of db-connections between requests, and if you need to lock a filesystem resource you're stuck because you can't share a mutex between requests so you have to make an ad-hoc one some other way, and the overhead is like 50MB/request meaning the difference between a server handling 1000 requests with php and 60000 requests with go...

But being able to just have processes which were all isolated and request scoped was nice. The OS was your GC so you didn't have to worry about freeing memory, and the OS's scheduler did a damn good job of making sure php processes blocked on IO got context switched between.
Because it is an incredibly stupid test.
Watson does it again!
But dumb money is dumb. Masses of people are seduced by marketing and internet forums.
Perl is notorious for being great for text parsing which seems relevant to a search engines needs. I've heard good things about the newest versions of Perl but have not played with them at all.
The lack of archiving is due to the frequent layoffs at the end of projects at game companies.
Zunum Aero selects hybrid electric airplane engine
I'm talking about that as well. The modern era of jumping ship every 2-3 years on average in software is not how its always been. Jobs used to be very long term
Most cheap cassette recorders didn't have a gain control back then. I found my Atom (precursor to BBC B) worked well when I got a more expensive deck about £50-60 back in 1980.
>The complexity overhead of k8s is non-trivial, and switching from Heroku to something like k8s doesn't involve undoing much work, since setting up Heroku is trivial.

This sounds like exactly what I'm advocating. I wasn't saying that you need to build specifically with Kubernetes in mind, but some people aren't even thinking about what it means to deploy to Heroku. Maybe you do some small amount of reading and research to know "switching from heroku to kubernetes is a viable migration path.' What I strongly dislike is this mentality:

> taking more time away from actually building your side project

None of what I've mentioned is time taken away or lost. Time spent doesn't just pause when you are ready to deploy or productionize. SWEs need to think more holistically about their software's lifecycle.
There is no need to be adversarial as long as workers have the right to leave. These are not slaves. They only stay until they can get a better deal (pay, respect, safety...) elsewhere.
That senior devs with decades of experience fail.

I've literally seen someone who supposedly wrote firmware for the space shuttle fail fizzbuzz.