skysight-inc/HackerNews huggingface dataset:
I've been meaning to read Handbook of Neuroevolution Through Erlang. Has anyone done it? If so, what's your opinion about it?
Pigeons flocks have hierarchy.[0]

Also, to state the obvious, nonhuman social structures aren't always applicable to human social structures. Very often, the have very limited applicability to human organizations, for the simple reason that they're biologically based.

Instead you should turn to history and anthropology, not biology for advice. Sadly, there are very few (if any) examples of long lived leaderless / flat human organizations. Inevitably, a small cadre form an elite core (either through influence (Politics! Gasp!) or force / intimidation (politics by other means! Double gasp!) You can see this with various anarchist organizations, intentional communities such as communes, protest movements, even the tragedy of the commons.

[0] http://www.sciencemag.org/news/2010/04/when-pigeons-flock-wh...
Everybody writes their own string package for C. I've written probably a couple dozen of them. They're all inadequate for one reason or another, hence my subsequent attempts.

Probably the most damning problem is none of them are able to interoperate.
There was never a moment where MS’s search engine was seriously competitive with Googles, whether that’s 2003 or 2018. Google was worried, but it wasn’t about the search algorithm. It was who would control the platform that controlled which search to run.

Back then, MS clearly had the desktop (this was well before the widespread adoption of Chrome). Oracle/Java had a shaky but real lead in devices. The answer to desktop domination / MS was Chrome and taking the lead on new web standards that Google could control.

But the answer to device / Oracle domination was Android. If Google didn’t wage that battle, every Android advertisement would have a “powered by Oracle” slogan in the bottom corner.
Well, I did that, too :-)
It would be 2/3rds of a Go slice. You have a fat pointer with the capacity of the array it is pointing to. If you want to implement shorter strings, you would have to store the length independently, or use 0 termination. You still would have the length information as a safeguard of overflowing the array. You still could do everything, what you can do with current C strings, just safer. One could have fat pointers to array elements to, just with an accordingly shorter capacity.

In the end, I think the Go slices are the consequential implementation of safe fat pointers, having both the capacity and length and allowing efficient and still safe reslicing. The overhead of having 24 vs 8 bytes per pointer on a 64 bit machine should be worth it in modern times.
While I appreciate the creativity involved, my colleagues in the soft skills world and I running a professional services firm in Shanghai, generate some terrific leads and partnership connections through the service. The article was good for a laugh.
Can't see how this would affect string concatenation negatively compared to plain char? The problem with java string is that it's pre-allocated to the exact length, normally char-strings are also that. They don't magically make things faster just because they are missing a length-field, quite the contrary actually because now you need to iterate it twice to concatenate two strings without a StringBuffer equivalent, once to figure out the length of the result so you can allocate the correct size and once to do the actual copy.

Don't see why you shouldn't be able to make a fat pointer point into a range inside the original array either? Just point it to an element and make the length-field shorter than the original? This is usally called array_view, span or slice in other languages.
NB: the actual article says “plans to delete”, and is dated July 12th. So, the deadline has now passed, but this article is not about the actual current state of affairs.
Microsoft told me that any operation a quantum computer performs HAS to be reversible: something like XOR doesn't work because there're four possible inputs and only two possible outputs, so the state of the inputs is destroyed. However, something like NOT works fine because the input-output mapping is 1:1.

It seems like cheating to say that "reversing cause and effect is no trouble" when the computer was never allowed to perform irreversible operations to begin with. I think I am missing some important information or maybe I am misunderstanding the words used in the article?
How exactly then would one declare a stack variable that is a string that is initialized to "abc", and then later has "1234" concatenated to it, so it's now "abc1234", without using the heap in any way? If the answer is "you can't do that", then that's fine for Java/C#/D, but not for C.
It seems like most of the insurance and regulatory process assumed independent manufacturers certifying the equipment. In this case, the manufacturer was also essentially also the park operator.
Android is funded as a vehicle for those services.

Last time I checked, the license fees Google receives did not fully cover the development of Android.
These languages aren't capable of expressing the software that's routinely written in C (inc C++). For example, there's no way to enforce the lifetimes of NaN-boxed pointers managed by the multithreaded GC in the custom heap of your browser's JS engine.

There's certain classes of C's UB that can be addressed, but most of it can never be without neutering C to the point of uselessness.
What language would you write this hypothetical GC in?
Similar to an "O2O consultant to executives" which is a term used here in China, aka Online to Offline. Pretty much meaningless drivel by those who have never had real corporate P&L responsibilities.
Relevant: https://medium.com/beyond-intelligence/reinforcement-learnin...
The “dark ages” never happened. It’s a myth invented in the Renaissance to boost their own ego.
> the cells in the heart muscles beat together without a central monitor

A control/monitoring system isn't required to be centralised, or even different from what is controlled/monitored. E.g. with groups of fish every fish just keeps his distance to other fish, resulting in the well known global as-if-centrally-coordinated behaviour of fish groups.

So I think the statement just means that there is some kind of control loop. It doesn't say how it looks.
You can't do that in C either. Without either: 1) "abc" string happens to be the last variable on the stack, good luck with that. Or 2) You pre-allocate the string to fit a bit extra, not exactly a "solution".

Maybe option 1 is feasible but not really practical, i can only see it being used in extremely low level stuff with a non standard compiler and going through tons of hoops like pre-creating loop-variables used later in the function and disabling optimizer.
In an all out war those nations holding it tight, might release it. Samson option or just a madman dictator (his military might go ahead with the order too.) So, USA spends next to nothing and has insurance against this unlikely but catastrophic scenario. Makes perfect sense.

Others in comments also made a good point...what if the virus survives decades in cemeteries and is released when they dig or move the cemetery. Within a week hours it would probably be spread all over the world, given globalization.
In Pascal, every array with a different dimension was a different type.
Zero. Been single for years but my volition. All works down there same as it did a decade ago when I started
I agree on that. If someone where to do that on a subreddit I moderate (or Discord) I'd ban both offenders fairly quickly.

Attacking someone is bad but if the other party then flies of the rails and becomes aggressive, that's not behaviour I want to see.
I was wondering why you were championing this idea and agreeing with the posted link in almost every way. Then I went back to the link and figured it out :)

P.S. thank you for everything you have done with D. I read in another HN thread about Better C, and it convinced me that D is the language I should be investing my time in learning and using.
Amazing. It is Objective c compatible?
Gimme a break, making stricter requirements on C arrays may theoretically make some things easier, but we’re talking 1% improvement. What makes C hard (and great) is requiring an understanding of not just memory, but memory allocation and deallocation schemes. For many beginners this is hard conceptually, but for everyone, keeping track of allocated and unallocated memory is extremely difficult.
That was missing an eraser.
Like I said, it's been close to a decade on it so no worries. Interest in banging has waned slightly but I'm not young anymore either
> when the maximum expected size

I pretty much never use static arrays because if I do I always without fail get a bug report when some user exceeds it.
We had $84B in VC investments in 2017, the most I believe ever and the second most in SF (2015 had more) and Santa Clara county increased as well.

Source for the first part:
https://venturebeat.com/2018/01/08/vcs-invested-the-most-cap...
It sounds like you are under the impression that UB simply means you can't trust signed integers to wrap. Unfortunately, it is worse than that; under surprisingly normal-looking conditions, it is not unheard of that the compiler optimises an interation check away and replaces it with constant true or false, depending on what makes the underlying internal represenation neater.

That's way beyond "can't do X"; it's "the meaning of your program suddenly ceases to exist".
Winston Churchill held out against using Anthrax against the Nazi’s. I think it’s very surprising actually what countries won’t do in an all-out war.

After all, the goal is usually to get the enemy to surrender / capture available resources / not turn the rest of the world against you. Millions can certainly die, but it could be very possible say for a World War III between US and China where no one winds up using nuclear weapons.
How is it that we haven’t seen more disasters caused by missing suitcase nukes or smallpox? My guess is the security services are better at keeping things stable than we think but it also probably means you’re under perpetual surveillance.
This might only apply to white collar jobs in tech. People in the service industries and public servants don't receive the same sort of rising pay bumps that engineers and managers do.
I think that unnecessarily discounts exploratory work. There's nothing wrong with forming a hypothesis after seeing a pattern in data. But remember that it's just a hypothesis -- an unconfirmed guess. After the hypothesis is formulated, then an experiment can be designed to test it, see if its predictions hold up.
The age at which we apparently experience “musical paralysis”
My proposal is purely additive, you won't need to use it at all if you don't want to. But I suspect you'll gravitate towards it over time, most everyone does (experience with D dynamic arrays).
Israel’s Online Fraud Industry Targeted in Rash of Foreign Enforcement Actions
Disagree. C was the first language I/we learnt, and it's still my favorite.

It's a bit like the first language you learn. For someone from the Latin family of languages, Mandarin's verbal & written structure might seem hard, but for native Chinese, it's second nature.
The terrorist inside my husband's brain (2016)
Hit the nail on the head right here. You just can’t take the risks anymore. Everything is too expensive and it isn’t worth it anymore when Facebook dangles such a fat pay check in front of you. Entrepreneurship and free thinking has turned into copycat, quick bucks how to make quick money and complete group think. This is especially true in the sf start up scene
Agreed. There are plenty of reasons to hate on SF and the tech scene there, but a lack of VC funding isn’t one.
Rabies vaccine maker to stop output in China’s latest drug safety scandal
Also tap water in France is classified as "food" and therefore goes through extensive checks and controls. It is always safe to drink tap water in France and is encouraged.

You can gind reports on water quality in all cities and there was an article in 2017 (in 30 millions de consommateurs?) available online where you could check any city.
Yes.

int read(int n; int fd, char (&buf)[n], size_t n);

is a bit bulky. The initial "int n;" is a little used GCC extension. Allowing

int read(int fd, char (&buf)[n], size_t n);

is an option. "n" is used before it is declared, which is strange for C. This is only a problem because of the UNIX idiom that buffer pointer comes before size in most system calls.

char (&buf)[n]

is also a bit bulky, but that, too, is forced by C/C++ tradition.

char &buf[n]

would be an array of refs, and

char buf[n]

would be an array passed by copy.

There have been many, many attempts to "fix" C in a non-backwards compatible way. The result is always a new language. It's the backwards compatibility that's hard.
We're going to have to agree to disagree.

Hindsight may tell us that Microsoft turned out to be a paper tiger, but as the article I cited points out, it was Microsoft that Google feared a the time.
But would a-z also include for example à and ä, or should 0-9 include ½?

(The solution that glibc will implement is to un-interleave lowercase and uppercase characters whenever the collation order is like aàAÀbBcC...).
There are some things about this article that irk me, like this:

Neural networks have garnered all the headlines, but a much more powerful approach is waiting in the wings.

Granted it's probably written for lay-people who don't know much about AI/ML techniques, but this is still pretty sloppy. It hasn't been proven that EA's are "more powerful" than NN's. And so far as that goes, I'm not even sure it makes sense to use a term like "more powerful" at all in this context. And EA approaches aren't some new, up-and-comer that haven't had their chance yet... those techniques have been around for a long time as well.

All of that said, I'm a big fan of EA's, dating back to when I implemented a parallel GA optimization algorithm in a parallel programming class in college. I've been fascinated with them ever since, and I do think that evolutionary approaches have a lot of potential. So I'm happy to see some positive press being directed in that direction, but I still get annoyed with some of the hand-wavy stuff and sloppy language.

Anyway, one thing about (some|many|most?) EA approaches is that they parallelize very well. And depending on what you're doing, you aren't necessarily doing Linear Algebra / matrix math, so you can likely accomplish a lot without spending beaucoup $$ on GPU's. A Beowulf cluster of CPU machines can be pretty effective.
I don't think the options are so bleak. Serious side effects from finasteride are something like 1% of users. I've been taking it longer than I can remember with zero side effects except I haven't lost any hair.

Most recent studies show around 90% effectiveness at preventing further loss.

Just because something can't turn back the clock doesn't mean it isn't a cure. Surely penicillin has almost 0% cure rate if you delay taking it for an infection for a few years.
> Adding an array type to C that knows its own length would solve so many headaches

C arrays know their length, it's always `sizeof(arr) / sizeof(*arr)`. It's just that arrays become pointers when passed between functions, and dynamically-sized regions (what is an array in most other languages) are always accessed via a pointer.
char foo[9]; strcpy(foo,"abc"); strcat(foo,"1234");

And yes, that's specifically written to be awful and unsafe, but there are circumstances where you need to be close to the metal and carefully resort to more complicated variations of such things. That's what C is fairly uniquely appropriate for.
char str[16] = "ABC";
Collation order did not interleave lowercase and uppercase until recently, except in a few oddball locales (e.g. cs_CZ.UTF-8).

Interleaving was added to all locales recently, and people started complaining that their scripts broke, so it will probably be reverted.
Off the top of my head (in D syntax):

char[3] s = "abc";
char* p = cast(char*)malloc(s.length + 4);
assert(p != null);
char[] a = p[0 .. s.length + 4];
a[0 .. 3] = s[];
a[3 .. 3+4] = "1234";

It's more verbose than necessary, but I wanted to illustrate the idea. Note how the allocation is turned into a dynamic array.

Note that my proposal is not for a new memory allocation scheme for C, just a way to map data onto arrays.
Is it possible to work with a CUDA with GPU passthrough?
Redistricting Majority Project
I see a lot of points add about emotional support animals and the stories around that (in planes, restaurants, etc.).

I need to read about these more as they are inexistant in France. Maybe this is a thing, I just never seen or heard anyone mentioning it.
Sounds to me like you’d rather get a tattoo than drive a car...
To quote Ben Recht

"When you end up with a bunch of papers showing that genetic algorithms are competitive with your methods, this does not mean that we’ve made an advance in genetic algorithms. It is far more likely that this means that your method is a lousy implementation of random search."

http://www.argmin.net/2018/02/20/reinforce/
>besides, you should start new projects in Rust anyway

Thanks, I almost forgot what website I was on for a second.
It's very comprehensive, taking the reader from the simplest concepts right up to the state-of-the-art (in 2012). Very friendly, confident and (oddly enough for the subject), exciting! There's a collection of detailed examples, with code. However, unusually for Springer, it clearly wasn't proofread. Lots of repetition and grammatical errors in the text (the code seems solid). It deserves a second edition!

That said, I haven't come across a better book. I'd buy it again without hesitation, regardless of expense. Erlang is way ahead of other popular platforms for neural architectures.
If you take that view, then the taking isn’t coming from those that want to read the law, it’s coming from the government that wants to incorporate it into the law. So yes, the government should compensate groups that come up with the rules, but more often than not, they won’t need to because there will be strong interests involved that want to define the rules.
Would you have any source for the largest job growth being around Pleasanton. Would love to read up more on it.
Further optimization potential: the four lines

sum = Avx2.Add(block0, sum);
sum = Avx2.Add(block1, sum);
sum = Avx2.Add(block2, sum);
sum = Avx2.Add(block3, sum);

have all a serializing dependency on sum variable. But (integer) addition is associative and commutative, so you could sum it in a tree-like manner, ending up only with a a single serializing dependency:

sum01 = Avx.Add(block0, block1);
sum23 = Avx.Add(block2, block3); // These two run in parallel
sum = Avx.Add(sum, sum01); // sum01 hopefully ready; parallel with sum23
sum = Avx.Add(sum, sum23); // sum23 hopefully ready

Where only the last line serializes with the previous one. Maybe the HW is smart enough to rename the registers and do the same thing internally, but it'd be interesting to benchmark it.
I'd like to read that book, but the pricing... wow. On Amazon the cheapest new copy is ~ $138.00. And this is one of those cases that shows how goofy pricing for marketplace sellers gets: the cheapest used copy is even worse, at a whopping $230.59. And that's for one in "Good" condition.

Probably all of these resellers are using some brain-dead stupid bot to set their prices for them. Too bad - if somebody was selling a used copy for, say, $75.00, I'd probably order it right now. Instead, it's going to sit in their store forever, because who would pay $230 for a used copy of a book, when they can get a new copy for $138.

SMH.
You have the right idea, but not the right operation. XOR is reversible.

To give a better example: COPY is not reversible. Imagine that you have two qubits [A, B] as an input and you want to output [A, A]. That is not possible with quantum computers.
Anecdotal, but... It’s worked for me and several people I am close with, over several years.
Replying to myself because I'm getting the usual flak from guys that didn't take it.

It's about 90% effective at preventing further loss. If you don't consider that a cure I don't know what you're looking for.

Just because you didn't take it before everything fell out doesn't mean it's any less effective or not a cure. If you take it indefinitely you will not lose hair almost 90% of the time.

That's a better cure rate than antibiotics for some conditions like tuberculosis or antivirals for something like hep C.

The side effect profile is extremely safe too. Less than 5% of men had any side effects at all in the largest trail with 1000+ men. That makes finasteride safer than most antibiotics even.

If I didn't take antibiotics until my leg fell off from infection I wouldn't expect them to grow it back. People confound a hair loss cure with something that regenerates lost hair. Regeneration of any kind has been frustratingly outside the bounds of human ability forever
How does one refresh the data?
Isn’t that what AlphaZero did with Monte Carlo Tree Search?

It basically looked only at outcomes and backtracked in a Monte Carlo tree and assigned weights without preconceived training sets.

And it outperformed the bespoke programs with existing training data.
Your example uses three strlen's. It also is at high risk for buffer overflows. Whenever I review code like this, sure as shootin', there's an error in it in the lengths somewhere. Here's the same code using dynamic arrays:

char foo[9]; foo[] = "abc"; foo[3..3+5] = "1234";

No unchecked buffer overflows, and no calls to strlen. The +5 puts the terminating 0 on.
Fat pointers manifested themselves in Pascal as strings and are still being used in modern Delphi.
Have added details regarding data generation to the README.
I've read the draft[^1] of the article, and I'm not convinced. The hypothesis is simple : less rain in Germania caused more Germanic raids on the Empire Empire, which caused political instability, which caused imperators' assassinations.

When I look of some of these assassinations, I doubt the Germanic provinces had any impact on them. The Roman Senate got rid of Caligula for internal reasons. Claudius was (probably) poisoned to make place for Nero. The historical drought of 69-70 that Tacitus mentioned did not cause any assassination. The year of the 4 emperors was not following any kind of Germanic instability. Later on, many rebellions came from the East. In the later centuries, the eastern emperors had little to to with rain in western Europe.

Reading the article, the correlation doesn't seem very strong. To my untrained eyes, it looks like the years 220-300 are the main factor of correlation. It was a period of drought Gaule and Germania, and political instability in Rome, but I'm not convinced of the causality.

It's always seducing to discover a causal logic in historical events. Theories that can explain history have a high power of seduction, so I am even more cautious.

[^1]: https://brocku.ca/repec/pdf/1703.pdf
Isn't everything reversible if enough information is stored? Instead of COPY [A, B] -> [A, A]; you could have [A, B, 0] -> [A, A, B] which saves the value of B.
From my experience Go's array (slice) is a far better solution. It does not only carry the size (number of elements), it also carries the array buffer capacity. To me it's the epitome of what arrays should be.
I am a skilled sr sw dev, I have 600-700 connection on linkedin and I know 4 people, have been there for years and never got a job out of it. The idea of linkedin is great but in practice it is absolutely pointless website.
You don't seem to understand heap vs. stack. The call to malloc() does a heap allocation, and the question was "without using the heap in any way". If it makes it conceptually easier, how about a solution where the string is simply a global variable? No malloc allowed.
Show HN: Multi level geohash generation