skysight-inc/HackerNews huggingface dataset:
Thanks, I had seen the original link before, but not this. As a Julia developer, I like that his 5 lessons are ones that Julia has successfully addressed. In particular:

1. Julia had the benefit of clever design, as well as not needing to support legacy interfaces that are difficult to optimise. Python has had similar problems (which needs to support all the different low-level interfaces), whereas JavaScript, which provides fewer ways to "mess with the internals", now has several high-performance engines.

4. Although Julia does provide the ability for type annotation, it is actually rather rarely necessary, due again to good language design which makes automatic type inference feasible.

5. Julia originally discouraged use of vectorised operations for this reason. But now we've gone the other way, with special "dot" syntax which avoids allocating intermediate arrays. See https://julialang.org/blog/2017/01/moredots for more details.
R uses a pass-by-value semantic for function calls. This means that when a function modifies the contents of one of its arguments, it is a local copy of the value which is changed, not the original value. This has many desirable properties, including aiding reasoning about and debugging code, and ensuring precious data is not corrupted. However, it is very expensive as many more computations need to be done to copy the data, and many computations require excessive memory due to the large number of copies needed to guarantee these semantics.

I don't know what implementation R uses for its data frames, but building efficient collections with functional semantics is now a solved problem, as demonstrated by the functional collections libraries supplied by or available for many languages -- Clojure, Scala, ML, Haskell, and no doubt many others I'm unaware of (along with my own for Common Lisp [0] and Java [1]). It is no longer necessary for the important benefits cited by the author to be considered at odds with an efficient implementation.

I think it's unfortunate that the Julia creators didn't realize this, and have gone back to imperative semantics for their collections. Imperative collections are harder to reason about, especially for inexperienced programmers, and are more bug-prone.

[0] https://github.com/slburson/fset

[1] https://github.com/slburson/fset-java
There's nothing that ties a blockchain to proof of work. Proof of work just just one consensus protocol. For instance, JP Morgan's Quorum is working on Raft based consensus. https://github.com/jpmorganchase/quorum/blob/master/raft/doc...
Ah, yeah apex(1) doesn't have a revenue stream so it would have just been a huge maintenance burden :D
Yeah, the post is a bit misleading. "Open recursion" is the OOP-like feature itself, not (as the post says) the extension you need to implement it.

What you need is the ability to implement recursive functions. That's not 'built in' to the lambda calculus, because there's no real concept of variable bindings, just functions that take arguments. In other words, you can't say "function x() { x(); }". In the untyped lambda calculus, that's no problem, because you can simulate it, e.g. by saying

let x = (_x) => _x(_x);
x(x);

Your implementation of open recursion uses a similar construct in 'mutualRecursion', as well as in the implementation of 'inc' (which calls 'set' passing 'set' itself as an argument).

But in the simply typed lambda calculus, that doesn't work, because 'x' would have an infinite type. For example, how would you write the type of x in TypeScript? Something like this:

let x: (???) => whatever = (_x) => _x(_x);

where '???' is the type of x itself, so...

let x: ((???) => whatever) => whatever = (_x) => _x(_x);

let x: (((???) => whatever) => whatever) => whatever = (_x) => _x(_x);

...that doesn't work.

You could use a record/class type:

class X {
f: (X) => whatever;
constructor(x) { this.x = x; }
}
let x = new X((_x) => _x.f(_x));
x.f(x);

...but the desugaring of records into lambda calculus doesn't allow for that. (The use of X within its own type definition is recursive.)

You could use a generic function type:

let x: <T>(arg: (T) => T) => whatever = (_x) => _x(_x);

but the simply typed lambda calculus has no generics.

But there's a more modest extension that can enable recursion, which is taking a fixed-point combinator (which in the untyped lambda calculus is just a function you can implement, e.g. as the Y combinator), and baking it into the typed lambda calculus as a primitive. Which is one of the things Pierce talks about in the book.
> this is where Glass should have started. The price point, social stigma/issues, and use cases all screamed "business applications!".

You've put the cart before the horse. The price point is not fixed. You don't make something and then look around for a convenient market. Google glass was also designed backwards, they maximized screen quality and watched it fail in the market due to high price and shit battery life when what they should have done is designed up from a 12+ hour battery life.
Wow. Thanks for posting. Reading MONDO 2K after a 20 year hiatus is a real kick in the eye.

My gut reaction is that "Artificial Reality" culture has not served us as well as a more pragmatic vision of the future may have. There is no doubt deep learning, crypto-anarachy, CRISPR, 3D printing in the extreme environment of low earth orbit and many other current wonders were forecast in these pages. But the prophetic illusion that war, poverty, disease, and crime would evaporate away with accelerating growth seems tragic.

If a new imprint, say MONDO 3k, were to be started today, a little less airtime devoted to pirate punk rock cable access shows and a bit more on how to solve the problems of displaced workers via automation would be welcome.

Oh, and just on page two, already spotted an Easter Egg. The Reduce Productivity with Fractools, an electric kaleidoscope of nature's geometry ad. Distributed by a "Bourbaki, Inc." Named no doubt after the legendary secret math collective in 1930s France!

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

Craving even more 1990s alternative nostalgia? Remember Re/Search magazine? Publisher of J. G. Ballard and much more. They have a podcast that mostly consists of talking about the good old days ;)

https://www.researchpubs.com/category/podcast/
I actually think FP16 performance is more of a factor for those choosing the Tesla platform.
I've been criticized (by other programmers!) for not going for the latest and newest stuff, so I'm a bit sensitive and glad to have some confirmation that I'm right.

I'm not trying to brag (didn't even realize it could be read that way), I'm trying to validate both myself and other people like me.
> Which has nothing to do with recursion.

Had you read the article you might have realized this term is overloaded.
Egg-Freezing and IVF Are Tech’s Hottest Perk
Xmind for thinking and especially for drawing root cause diagrams/fishbone diagrams. Graphviz for diagrams of ideas. Evernote for notes. A home made Pomodoro timer to practice to Pomodoro technique.
Does anyone else get the impression that Triplebyte is run by elitist humble-bros? It really sets off my smug detector for some reason, but I don't know why.
You should expect latency similar to a web app in Chrome, just that this has a backing pty processing the input and output.
Really? Was it really unclear to you that I was presenting a hypothetical to illustrate a point and not practical advice?
Or if you're in the local area, you can find somebody with a POTS 212 number or cellphone and pay them cash. Porting a number to a voip service is basically as simple as the bill payer writing "authorized to port to NEWSIPTRUNKINGPROVIDERNAME 2017-07-18" plus a signature on a one page scanned piece of paper.
Since the submission has no legit title either, I'll just respond with:

https://en.wikipedia.org/wiki/Filesystem_in_Userspace
SUMMER FUN AT THE CREEK [Jackson Creek]
Do you have any (personal, business) debt and if so how much?

I worked with a person with the plan to raise money later. It turned out he didn't run his current business well and soon wasn't able to pay for rent, had to sell his car, stopped paying the rent for the office we were sitting in. Looking back it explained a couple of questionable decisions (e.g. claims to debtors, very much over-promising, aggressive release plans, side-projects to make extra money). I'm not saying you have to be well off before going into a months/years long project but living paycheck to paycheck isn't a glorious "[he|she] is hungry and eager to make this a success" but plain stupid.
Yeah, JavaScript in 2017 is so much better to read and write than it was in the past. https://medium.com/@sAbakumoff/es6-is-great-until-its-not-f3...
And these MDs just shame the whole industry. Bring the status of all hardworking MDs down a notch. No conscience here at all.

What people will do for the all mighty buck.
The point he is trying to get at is that in an OO language you take it for granted that all methods can call all other methods. However without such trickery as described in the article this is not true in the simple language with only functions.
Okay, lets argue that a blockchain is simply a data structure to create a linked list of hashes... Do you know what's part of that data structure as defined in the original paper: the format of a new block hash (how many zeros it has.) It's the fingerprint of a block that decides how to extend the chain. So if you simply decide to build a linked chain of blocks without any regard to the format of block hashes (proof-of-work) and the total accumulative hashing power, then it makes no sense at all.

Like I said: you can't just abstract this part away as a "data structure" and still have it mean anything. Without proof-of-work your toy example is literally just a made-up document sitting on a single computer.

>blockchains are data structures, not a concept exclusive to currency.

Blockchains as a linked list of hashes don't make sense. You need proof-of-work to decide on the chain. Proof-of-work is expensive so without the currency, proof-of-work doesn't make sense. There are other ways to agree on the order of events but they are not blockchains as understood by the experts in this space (and removing any one of these things undermines the benefits.)

Journalists and enterprise "blockchains" enthusiasts are free to use the term however they like but it doesn't change the fact that blockchains were introduced as an incentivized, trust-free ledger of value -- and by removing any one of its parts the benefits are still lost.

>This is not what the blockchain does. The blockchain helps to ensure that Proof of Work is effective for maintaining consensus after blocks are made - it's the role of PoW to produce the agreement. A blockchain without PoW would allow members to produce new combinations of blocks at will to edit the history.

Blockchains use proof-of-work to create agreement and pay anonymous contributors for doing the work to do so, its as simple as that. A "blockchain" without either of these things is not a blockchain. Incentives are needed to improve social scalability and ensure that there is a reason to continue to secure the ledger.

Proof-of-work is used to give the chain its meaning. I could hash a list of documents right now that said I had millions of dollars but this list couldn't be used by anyone else in an untrusting network of computers without a consensus algorithm... It just so happens that proof-of-work is still the most secure way to do that consensus. So you cannot abstract it away as a "data structure" independent from proof-of-work and the incentives that drive it...

The argument you're trying to make about "blockchains" is something I've only seen enterprise blockchain enthusiasts make about ledgers, and these people usually don't understand the system very well so they end up taking parts of the blockchain away and building something that makes little sense in the end (sometimes its an improvement but usually not.)
No, because 98% of peoples' phone systems out there expect a destination number in a specific format. You can't just have a NANPA area phone number that is arbitrarily long or has extra digits in it.

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

If you are way, way bigger than Twilio you can create a country code. Country codes exist for special purposes like the Iridium satellite phone network. But you cannot just create a country code for arbitrary purposes and expect it to work with the world's PSTN/SS7 infrastructure, any more than you can choose an arbitrary non-RC1918 /8 of IP space and start using it on the public Internet.
Should solar + batteries be considered truly renewable? Both panels and batteries do degrade. Solar panels last, what, 20-30 years? Big batteries probably around the same, if not less. And the production of them is not exactly clean, though probably much cleaner than gas/oil/coal for the same energy output.
Another way to look at it is that they were going to raise the cost anyways, at least now you get updates when they're production ready instead of every two years.
The nodes are federated and you're still calling this a blockchain? What definition of the word "blockchain" are you using? Is this not more commonly called a "distributed database"?
Yeah, this seems to be about ITER, not about the overall state of fusion research. Last I heard EAST was going great guns in maintaining a stable plasma.
The raw materials for both can be reprocessed, so yeah.
I still haven't forgiven Madobe for killing Macromedia Director - a thousand hours of my work lost. It taught me a valuable lesson about the importance of Open Source - protect your investment from the caprice of a single corp.
sirum.org (YC W15) helps redistribute surplus drugs that are often short-dated. Our online platform allows orgs to register, upload their surplus, and we connect them to charitable clinics and pharmacies. Check us out!
The title doesn't do the linked page justice.

1. It is by Fabrice Bellard, of QEMU, FFMPEG, TCC, BPG, ... fame.

2. It runs Win2000 in QEMU in Linux in JS on your browser. Seriously. Not very quickly, but it works. See https://vfsync.org/vm_list.html ; Also X windows if you prefer.

3. The idea seems to be that you can store encrypted data in the cloud, and use it on any machine capable of running javascript, by booting into a Windows or Linux machine emulated in the browser. Obviously, it is only as secure as the machine you run it on -- but if you can trust that machine, you have an encrypted "fat" client everyone on "thin client" hardware. Dropbox lets you take your data, this lets you take your whole machine.
But the author has no problem writing this blog post using WordPress.com, built on a PHP codebase that goes back 14 years and still largely resembles 2009-era PHP. (This is not a knock on WordPress at all - it paid my bills for years).
I had very similar feelings a few years ago. Flash defined what we now know as the web. Without it, it'd be completely different.

http://wedtm.com/2015/02/01/thank-you-flash/
So much fear, uncertainty, doubt. This thread of full of people who clearly know little boldly asserting that it's impossible.

It's unclear? You realize proof-of-stake coins like Nxt [1] have been in production since 2013?

I won't say much else. People who are interested or curious enough will seek out the truth and move beyond this execrable thread.

[1] https://en.wikipedia.org/wiki/Nxt
And of course the stuff necessary for word-wrap-in-`format`:

(format t "~{~<~%~1,40:;~A~> ~}"
'("these" "words" "will" "be" "wrapped" "to" "40" "characters"))

and the other `format` insanity in: http://cybertiggyr.com/fmt/fmt.pdf
> but I think your mutualRecursion() function is a multi-parameter version of the Y combinator

Yes, exactly. I've created a fork [1] where I replace the multiple-parameter Y combinator with a single-parameter kind that operates on what is effectively a vtable.

[1] https://jsfiddle.net/9ump7bt5/1/
A caveat: one can experience wrist pain because one's watch is too worn too tightly, or in the the aftermath of a motorcycle accident, OR as the result of the carpal tunnel syndrome. Sometimes the most "obvious" diagnosis is not the most correct: one may have indeed had a motorcycle accident or warn a watch too tightly one morning, but the pain felt in the afternoon, could be largely due to carpal tunnel symptom finally manifesting itself (possibly brought on by stress or injury.)

Likewise, one can feel lonely or empty due to insufficient social contact, wrong kind of social contact, insufficient exercise, or due to physical or psychological conditions.

Healthy empiricism is vital: like you said, our senses are telling us something for a reason (our ancestors wouldn't get far on the savannah if the predator they saw with their eyes was just as likely to be a fantom as the real thing, or if feelings of loneliness or isolation were just as likely to suggest eating more of a certain berry instead of joining a hunter gatherer pack), but it's important examine evidence impartially and in total (like a physician would do) as well as to make falsifiable hypotheses (one can never say "i have this specific pain due to a twisted wrist from an accident" with full certainty, but one can say that this is not the case if the wrist is not fractured in the first place and thus avoid treatment specific to a twisted wrist.)

I'd advice the OP to quantify the social contact one is getting and to describe its qualities (with evidence for and against) and make an action plan that tests the hypothesis, rules out some common alternatives (e.g., if one has family history of depression or physiological conditions like thyroidism, see a doctor first; if one is also not getting insufficient physical exercise, try that as well.) and a fall back plan if those aren't the case (perhaps taking a vacation to see if one needs a change of scenery, going to a conference and talking to others in the industry to see if a different group of colleagues might help.)

One somewhat bad advice I keep hearing is to enter into something that involves a long term commitment (e.g., get a pet, change jobs, or most commonly and more dangerously go to a dating site) as the first and/or only thing to try. All of these things are good and in many case help (e.g., now that I'm married and have two dogs, I find myself feeling less lonely than I did prior to this, even some of my closest friends have moved away recently), but have the tendency to act as short term distractions from a deeper or more difficult problem. It may end up doing little to help or might make things worse in the long term (neglecting a pet, hurting one's long term career, or getting into a codependent relationship) IF done without any reflection beforehand, that is "just because" it seemed at the time that to be the easiest and most obvious thing to do.
It seems like GP might have gotten it backwards; the usual form of a callback is a lambda that's not a closure. However, a callback function might not be either, e.g.:

function foo(x) { return x + 1; }
function bar(f, y) { return f(y); }

// `foo` is a callback but neither a lambda nor a closure
bar(foo, 2);

edit: adding the missing the "b" in lambda
Can you give some more details of how you currently spend your time? Live in a city? How many hours do you work? How long is your commute? Do you work weekends? Live alone?
Oh yeah, I agree on the fuzzy feeling when reading the folded sheet. It's mostly "potential side effect side effect annnd side effect".

It's hard to design middle ground solution for this. Between no information and too much and too complex information...

Come on worl, we have machine learning, we can find something.
Glad I could enlighten. The therapeutic index is a very subjective measurement that makes some drugs sound safer (or more dangerous) than they really are. Both the numerator and denominator in the ratio are very situation dependent. For example, trazadone is a hypnotic at doses in the tens of milligram but an anti-depressant at doses in the hundreds of milligrams so depending on what you're using it for, its therapeutic index could be different by up to 100x.

Likewise, in a clinical setting (i.e, with a trained anesthesiologist in fentanyl's case), the dose at which 50% of patients die from a given drug is usually much higher because trained professionals can quickly receive feedback by monitoring the patient's symptoms and apply drugs or medical devices to keep them alive well beyond what could kill someone on the street.
Have they done any studies on the benefits of using the simplified language vs the time investment it takes to produce the manuals to spec?

I'd imagine most of the gain comes from companies with a high number of ESL workers - but it sounds like it may be a tool that a bureaucratic, control obsessed, management culture likes but is largely just busy work parading as productivity gains.

It could also make the technical manual writers lazy or use less editing because they lean on the language instead of investing real thought into making their communication effective and easy to understand.

As machine translation of english continues to improve, I'm curious how useful it will be. And the feature of "Reducing ambiguity" (according to Wikipedia) is something that can be solved in many different ways without having to invent a whole new simplified language subset for all communication.

Either way that's an interesting example of how serious they take this stuff.
You might really enjoy the Graph Gear line of pencils and pens as well: http://www.pentel.com/store/graphgear-1000.
A silicon valley startup by the name of SIRUM (http://www.sirum.org/) has done some pretty incredible work in this space. They re-distribute medicine nearing it's expiration from hospitals/pharmacies/etc. with surplus to areas that need it and can use it before it expires.

I'm sure they do more - I only have a slim memory from hearing one of their founder's speak.

They do have a pretty incredible impact and deserve mention in this conversation - they've been attacking this problem from a "what can we do now" perspective for the last 5 or 6 years while others have been spending time debating what to do or if anything really needs to be done. They are good people.
How a single computer failure stopped Melbourne's trains
I think you missed some though:

https://news.ycombinator.com/item?id=14760481

I mean those accounts seem to be not banned yet, although they apparently stopped submitting/commenting.
Math seems about right to me. Photosynthesis is only 3% efficient, vs. about 30% for current-generation solar panels, so that's already 320 acres. Current agricultural crops put about 40-50% of their incoming solar energy towards the edible parts, so that's 640 (you can thank the green revolution for that - wild plants put only about 5% of their incoming energy towards fruit/seed production, but we've selectively bred them for a 10x improvement in productivity). You lose a factor of about 10 going up a trophic level to eat meat, so if half your diet is meat, that'd be 3200 + 320 = 3520 acres to support your diet. Figure on transportation losses and food waste for the additional factor of 2.

All numbers are from a sustainable agriculture course I took in college, with a few spot checks by Googling.

This, BTW, should drive home just how environmentally-damaging carnivorism is and how switching to a vegetarian diet is actually significantly more impactful than almost any household energy conservation you do. However, as a long-time meat eater, I don't care, and just accept that I'm a terrible person.
>Why do you want to replace everything with Javascript?
Because a huge number of devs already know it, so you can have your web devs work on your mobile application.

That said, my company tried Fuse out around a year ago and went with Ionic instead. Partially because adapting Angular to Fuse was a lot of effort, and partially because at that time Fuse was not nearly release-ready.