skysight-inc/HackerNews huggingface dataset:
I'd like to humbly suggest that we use JSON please, in particular:

JSON + JSONSchema[0] +/- JSON Hyperschema[1] +/- JSON LD[2]

It's a bit to learn but I promise you, it's worth it. The technologies are not redundant (jsonschema spec is for validation, hyperschema spec is for specifying how you interact, and LD is for semantics like language and more). If you take a few hours, read all 3 specs, you're almost guaranteed to imagine a new (albeit somewhat daunting) future, where APIs and clients can be smarter.

There's no reason I can think of that a sufficiently specified JSON schema cannot be automatically converted into a efficient binary format. I have absolutely zero reason to use Protobuf and it's whole ecosystem of tools if that's the case, I'd much rather go with tools built on a standard like JSON.

GraphQL's functionality is a subset of the above set of tools -- IIRC GraphQL can basically be boiled down to an option (or two) on a resource endpoint -- How you query on the server side does indeed change a bit to support the syntax, but this is basically the same as if you'd implemented with horizontal filtering like in POSTgrest[3], or resource embedding feature[4] (which everyone ends up doing at some point with REST-ish APIs). I honestly don't know who or what is trying so hard to drive GraphQL adoption so hard but I think it's mostly hype, and in terms of general technology, by default it forces clients to know the inner workings of the data model and that's bad for any kind of future in which you don't want to have to learn X APIs to interact with X systems.

BTW I absolutely love a good well-supported rant that agrees with all my biases (yes, Google as well as every other company has a bunch of amateurs, as well as a small amount of very skilled engineers), and all the problems noted with protobuf are real problems, and this viewpoint is sorely missed in all the talks and conferences where people are touting GRPC as the next sliced bread with Protobufs as the transport (you can change GRPC's transport layer to be JSON for example[5])

[0]: https://json-schema.org/

[1]: https://datatracker.ietf.org/doc/draft-handrews-json-schema-... (also on json-schema.org)

[2]: https://json-ld.org/

[3]: https://postgrest.org/en/v5.1/api.html#horizontal-filtering-...

[4]: https://postgrest.org/en/v5.1/api.html#resource-embedding

[5]: https://grpc.io/blog/grpc-with-json
You assume a continuing trend based on what exactly? Because it worked that way in the past under different circumstances? The different circumstances are kind of the point.

Where are actually market ready solutions for automation of high skilled jobs today or in the past? Once market ready solutions exit, this will very likely be a completely different situation.

And there is a wide array of even high skilled jobs, where it is feasible, that automation can replace people in the next generation. Maybe not next year or in 10 years, but it is on the horizon for quite alot of professions. Starting such a career now has a different risk scenario then 50 years ago. It is similar to lower skilled jobs like truck driver or warehouse worker. We are not there yet, that they go the way of the street lamp lightener, but assuming a positive trend for warehouse workers, based on past demand seems to be rather distorted. The difference is a warehouse worker doesnt spend years and years and thousands of dollars to enter his field.
I think you could have put more emotional pejoratives in there, and your lack of effort shows that you probably don't have enough faith in the cause.

Each of those steps is pulled from actual efforts and initiatives to forestall genocide, non of which has worked. When a world power decides to liquidate a percentage of its population, all that can be done is reactionary in nature; to get involved prior to is to initiate the violence and thereby vindicate the genocidaires.

I know you aren't going to argue in good faith. I know responding to your charge is futile. But your petty name calling triggered me, I guess.
HTTP2 is just the transport, there would be a ton of machinery to implement in each language in the stack.
Guile includes a bunch of functions that aren't part of the standard, and have been around before Scheme's standard thought to implement libraries.
Minor clarification: the author of Capnproto worked on protobufs at Google but was not their original creator.
I'd put all my fake internet points on it that that was done in QGIS.
Thrift suffers pretty much all the same problems as protobufs and has many similar dysfunctional failure modes, like places that rely on serializing into Thrift structs stores in hdfs and treating that like a de facto database, with Thrift struct definitions as the schema. It is so miserable to work in code bases like that.
I wish the login page, which contains two <form> tags, didn't have identical fieldnames in the two forms, "acct" and "pw" - it confuses 1Password, which always wants to fill in and submit the "Create Account" form when I'm trying go log in, which naturally then gives me an error "That username is taken. Please choose another."
Those are the default color schemes for QGIS.
People bring Steam up as a counterpoint all the time but fail to mention the differences between pirating a game and pirating a movie or music.

Playing a cracked game is less likely to work and more effort than playing a pirated mp3, which is a large part of the reason that Steam cut down so heavily on pirated games.
>if the leanings are genetic, why a change over the course of one or two generations?

A trait not being the direct result of nurture does not imply it's the result of a traditional long generic process, and this is something that we're only just beginning to scratch the surface of with epigenetics, so it's unlikely that such questions will get definitive answers anytime soon. That being said, the observation that a trait may be determined at birth only suggests that the trait is heritable, but not that it's genetic; those are two separate concepts, and heritability allows for much more variation from generation to generation, such as the case of children of immigrants from poor countries generally being taller than their parents when they're raised in western countries (which is likely due to improved nutrition enabling the full expression of their heritable height).

For example, you could ask the same question about whether the increase in learning disabilities and affective disorders within the past few generations in western societies is also "genetic". The default answer there of course, is that these conditions were only formalized as officially recognized diagnoses recently, and that such traits are only known to be heritable anyway (i.e. there are no definitively known "autism/adhd/etc genes" as of yet), so they're likely caused by the combination of the environment enabling the expression/observation of heritable predispositions. We can then similarly propose a null hypothesis to the male/female divide with the observation that western societies have only recently attempted to become more egalitarian by making various fields more equally attractive than they used to be, along with technological advances creating even more of such equally attractive opportunities, leading to heritable traits expressing themselves more noticeably through choices in the overall job market. In other words, being a professional "gamer" wasn't a viable job option 500yrs ago, but neither was being a professional "camgirl" either (to use two distinct, yet similar and stereotypically gendered "modern" occupations), but being a farmer was, in which case equal male/female distributions among farmers would've been the result of an underlying bottleneck in the pipeline, rather than the lack of one.

To suggest that this issue is either purely "genetic" or purely "social", is severely oversimplifying the matter.
Sorry, I misunderstood. I thought the OP’s reference to dynamic typing was what you were referring to, but they were actually the ones confusing static with weak typing.
Did you only take money from them? I mean, were you similar to a simple contractor who was paid money for code? If so, you won't be referred to DOJ. (You still may have some administrative troubles with SEC, but at a time like this, I'd count only being in trouble with the SEC as a "win". Fines, fees, and/or work restrictions are preferable to prison in my own opinion.)

If you got a small piece of the ICO itself as remuneration, then it's time for you to "shut up and lawyer up."

I am not a lawyer myself, but I'd imagine that one thing a lawyer would advise you to do in that situation is to stop talking about your potential involvement in that activity on law enforcement accessible internet forums.
The problem with JSON as a wire/interop format is the lack of any sort of schema. Formats like proto are nice because if you can unmarshall the bytes successfully, you can be reasonably sure you've got a valid message and reason about its contents. A deserialized JSON object can literally be or contain anything.
Ah yes, the moment I have long awaited: linking cryptocurrency back to the Nazis.
First Unassisted Sale
The idea isn't exactly unique, in that AMD did it and called it Global Foundries(GF)[1]. Then in 2015 IBM divested their foundry capabilities and sold them to GF as well. It hasn't been a stellar experiment which is largely laid at the feet of the challenge of managing that business.

[1] https://www.globalfoundries.com/
> Why should you count expenditure as a positive? The only thing that ought to matter is achievement.

Because achievement is hard to measure.

> If you hold achievement constant, but spend more, that is objectively worse.

Which again depends on what you mean by achievement.

Consider e.g., Lakeside's teletype terminal in 1960s. If computer access didn't increase aggregate ACT scores (which, it probably didn't...) was it then "objectively a waste of money"?

Having grown up in post-NCLB school system, I'm extremely skeptical of standardized tests as a measure of educational achievement. We're a couple decades into confusing the map for the territory on this one. It's Lockhart's Lament [1] on steroids and in every subject.

Funding levels are at least positively correlated with paying people well, which -- in every field I've worked in at least -- is typically correlated with higher quality employees.

[1] https://www.maa.org/external_archive/devlin/LockhartsLament....
This is a good podcast breaking down the reporting errors and myths that are repeated after large storms:

https://www.wnycstudios.org/story/summer-series-episode-1-us...
Mandatory plugin for learning lisp.

'Paradigms of Artificial Intelligence Programming' by Peter Norvig[0]. The book teaches both LISP and classic AI.

[0] https://github.com/norvig/paip-lisp
Pretty safe bet, since that's what the article says.

- QGIS, for quick sandboxing and ad hoc visualization
- PostGIS, for the actual parcel/zone computations
- ogr2ogr, for inserting Shapefile data into PostGIS
The word libertarianism originally referred to a socialist school of thought[0].

> Traditionally, libertarianism was a term for a form of left-wing politics; such left-libertarian ideologies seek to abolish capitalism and private ownership of the means of production, or else to restrict their purview or effects, in favor of common or cooperative ownership and management, viewing private property as a barrier to freedom and liberty. In the United States, modern right-libertarian ideologies, such as minarchism and anarcho-capitalism, co-opted the term in the mid-20th century to instead advocate laissez-faire capitalism and strong private property rights, such as in land, infrastructure, and natural resources.

[0] https://en.wikipedia.org/wiki/Libertarianism
You most probably lack experience with GraphQL.

For sure you can create a REST Resource to retrieve all data you need, but what if you need to fetch only some fields, and this differ from a request to another? you will have to perform manual filtering, ... in other words you will reimplement what GraphQL aims to already provide (in a more abstract and clean manner), and this is just a small part of GraphQL.

Also, your observations look wrong. GraphQL is protocol agnostic. You can use an HTTP client to communicate with a GraphQL server. HTTP is even the recommended protocol.
All good points. Personally, for daily listening I am using online digital streaming options almost exclusively now. My vinyl gets pulled out maybe once a year, and I am very aware that overuse can degrade them physically.

As for cd's, I am no expert on this by any means, but I wonder how prevalent disc rot will become as some discs age to 30, 40, 50+ years old in the near future:

https://en.wikipedia.org/wiki/Disc_rot

As far as I know vinyl doesn't have a comparable risk of degradation while sitting at rest in climate controlled storage. But I agree that the downsides are major concerns.
In this case, you cannot free the memory manually either without making your program potentially invalid. It is unreasonable to expect a GC to do runtime control flow analysis, which is also more than you would do in a normal case of manual memory management.

If you have tricky situations where you know that program flow dictates that an expensive but reachable variable is no longer needed, you would insert a "x = nil" or similar in the position where you would otherwise have made a free.

However, this is solely a case of fine-tuned optimization, rather than a case of correctness.
> Please stop parroting that non-sense.

Please stop the Microsoft apologism.

It is not nonsense. Microsoft testified against the man in court. They wanted him to go to prison.

And yes, what they did is lie to the court in order to achieve that goal. The sentencing is based on Microsoft testimony.

Louis Rossmann has some choice words for Microsoft:

https://www.youtube.com/watch?v=FaoJErxYLtM
When I read a story like this, I'm not faulting a Uniqlo for choosing progress. It's logical and extremely profitable. I think the alarm is precisely because of how much sense it makes.

Enough incremental progress has been made for us to arrive at this threshold, after which a company like Uniqlo can lay off 90% of their workforce by investing an amount which is, if I'm not mistaken[0], considerably less than what they profit in one year.

That's not incremental. It's unprecedented.

[0] https://www.fastretailing.com/eng/ir/financial/summary.html
Python C Extension Cheat Sheet
"And just before the nuke hit, he reflected on what a great life he had. Under his watch, Skynet raised the percentage of female programmers to an even 50%."

Of course, some would see that that's actually a DYStopia, I mean, where are the trans?!
just found he has a github with the book ( in multiple formats)

https://github.com/norvig/paip-lisp
This is theoretically solvable, assuming those arrays are by reference.

However, it's just not worth the effort of a significant increase in GC complexity.
Plain old JSON, with types defined.
So every single employee of a corporation is expected to triple check that everything they're told to do is legally bulletproof, having to duplicate the work of the entire legal department? That's ridiculous, especially with how many laws and regulations are unpredictable, unexpected, unintuitive, hard to understand, etc.
Transit: https://github.com/cognitect/transit-format

Transit has the following features:

- self-describing

- allows extension types on top of base types

- strong value types + dynamic serialization

- can transparently pass through data without consumer knowing about schema

- has "repeated key" optimization in the encoder to allow compression in the stream

- allows transparent binary encoding with msgpack

- is stream-based, so processing can begin immediately unlike JSON which has enclosing {}

This set of features basically allow transparent proxying to JSON as well, which is something that proto2/3 cannot do without updating the proxy.
Gotta love when regulations are why we can't have nice things.
For the shop if your options are: buy stolen parts or close your business... you're probably going to buy the stolen parts until you get caught.
What's the motivation behind ordinances like this? I've never spoken to anyone who likes them, so I'm not really sure why cities are so aggressive about it. I assume there must be a large segment of the population who are really bothered by food trucks for some reason, but I genuinely struggle to imagine why
How do you think a law would work, which would only allow floor workers to own/operate robots, but not the workers (the CEO/warehouse foreman) that oversee other workers?
So, if all the grocery stores are in "high income" or even "mid-income" areas... folks are taxed a bit extra to do their shopping?

It also seems a bit counter-intuitive. The point of public transit - a good system, anyway - is to encourage folks to ride it. Having a high fee for certain areas would actively discourage folks from using such a system and might actually reinforce a stereotype that mass transit is for poor folks.
The article I linked deals with this. GCs typically guarantee cleanup in a scope. With managed languages, this is whenever the runtime decides to run the GC (probably when memory is needed and isn't available). With Rust RAII this is when the ref count reaches zero which is, at the very soonest, at the end of the current scope (you can force the collection with a naked scope if you need[1]).

[1]: https://play.rust-lang.org/?gist=66740557884b17683b868483e52...
Walt: JavaScript-like syntax for WebAssembly
An active commute. Walking, running, cycling. At least 20 minutes. Let your mind wander. Do not check or answer work communications during your commute. If you can get away with it, don’t check/answer them once your commute is over either.

If you work from home, first off, set aside a space that is dedicated to work. Secondly, create rituals for leaving work that include activities you never do while working. Maybe that’s reading fiction or meditating or yoga or lighting candles or singing karaoke or whatever. Your ritual should take at least 20 minutes, and not be allowed to be interrupted by work.
I would strongly disagree that any plan to limit CO2 production would be simple.
To be fair that is not unique to surface books depending on which distro you are referring to
On the "possible bugs in minimp3" section, the links are all to the current master, which appears to have changed since this was written (e.g. https://github.com/lieff/minimp3/blob/master/minimp3.h#L232 doesn't point at the function with the bitshift anymore; I expect it should be https://github.com/lieff/minimp3/blob/644e0fb7fed34f803b6634...).

Protip: When viewing something like this in GitHub, press "y" and the URL bar will change to be a proper permalink to the current version of the code. This permalink can then be shared. Alternatively, with the line highlighted, press the … button in the gutter and it will offer a "Copy Permalink" option (which gives you the same permalink you get by pressing "y").
There's little reason to believe so. Minds shaped by reinforcement learning will usually fall back on established behaviours, even in novel and unexpected situations. In stable societies, these behaviours include baseline trust, respect for property, non-violence, reciprocal altruism etc. Only if exposed to different and more hostile circumstances for a longer period should we expect different behaviors to develop.
Courts create common law, which determines how statutory laws are interpreted.

>>A security doesn't require a common enterprise, it simply requires that one thing represents an interest in something else.

Investment into a common enterprise is the second prong of the Howey Test.
I've used protocol buffers on a large project, evolving the messages over time. They are a fine choice.

The tone of this article is a little less than objective which I feel discredits it a bit. But hey it made it to the front page of hacker news so...
Prolog hits a sweet spot where you can start with built-in resolution and then use Prolog as implementation language for specific searches.

Prolog should also be very popular with developers who like pattern matching and destructuring; it's pattern-matching by unification is, er, unmatched.

Prolog is also excellent for DSLs, either usings it's built-in facility for defining new functors (unary or binary operators/keywords), or standard DCG recursive-descent parsers or more complex grammars. Prolog was designed for NLP, used for prototyping Erlang, and a major inspiration for Haskell after all.
I feel like a municipality should have to create these maps when proposing legislation, and maintain them on an [annual?] basis

There are so many areas of our lives where its becoming de facto impossible to comply with all the laws/regulations without devoting an unreasonable amount of time/resources towards compliance
The title is referencing a phrase from the 2016 US presidential elections. https://en.wikipedia.org/wiki/Taco_trucks_on_every_corner
The ellipses replace pretty important context.
Google smart Home Hub Every detail and How it works
Exactly this. Half of the regulations the SEC enforces look more to me like nothing but revenue generation and entrenching existing players. Day trading rules are a flagrant example - only rich people are allowed to buy stocks and sell them the same day, not proles.
Yes, we use the same technique for our larger apps. We treat the Protobuf layer as a distinct layer related to the API; we have two packages, "protofy" and "unprotofy", so in the server implementation, you do something like:

func (srv *Server) GetFoo(
ctx context.Context,
req *proto.GetFooRequest) (*proto.GetFooResponse, error) {
foo, err := srv.db.getFoo(foo.ID)
if err != nil { ... }
pFoo, err := protofy.Foo(foo)
if err != nil { ... }
return &proto.GetFooResponse{
Foo: pFoo,
}, nil
}

Obviously, a bit less pretty in reality. But the principle is the same. Having two packages makes it easier to read — e.g. protofy.Foo() is always about taking a "native" Foo and turning into a *proto.Foo, and unprotofy.Foo() is the reverse.

For TypeScript, I'm using ts-protoc-gen [1]. The weird part, which I don't fully understand, is that the serialization code is emitted as JavaScript code. All the type definitions end up in a .d.ts file, but the client is a .js file. Which means you still get type safety and autocompletion, just like plain TS, but it's still weird to me.

[1] https://github.com/improbable-eng/ts-protoc-gen
Yup. No stream API to unmarshall protobuffers suck majorly. You have to re-invent framing
protos are not necessary for grpc. You can use whatever payload format you want to use.
It's somewhat plausible that some of the potential targets of migration will choose to prevent this with military force, including nuclear weapons.
> If the main argument is economic costs

Economic, human, and ecological costs. I am not hugely in favour of reducing everything to economics (although it's definitely an important part).

I also don't think that it's as simple as "$1 trillion of USA resources to prevent $10 trillion of future losses in SE Asia". Globalisation means that "local" economies aren't really all that local; so problems in e.g. SE Asia will also affect other parts of the world.
So is it multithreaded? If so, how many cores does it scale to till it hits other bottlenecks? Does it load the cores to 100%?
Minor clarification of the clarification: the author of Cap'n'proto was the original creator of Proto2, which was a ground-up (but binary compatible) rewrite of Proto1. The original authors of Proto1 were Jeff Dean & Sanjay Ghemawat. The current version of protobufs is Proto3, which AIUI is maintained by a team at Google (it was released after I left), and is an evolution of the Proto2 codebase with many new features.
Depends on the stocks. Yesterday some went up, some went down.
It's likely the area could also be used for new housing projects after the event. I do agree that it seems ridiculous to move the cultural landmark as it also displaces local restaurants and businesses.