skysight-inc/HackerNews huggingface dataset:
The quote says functional programming is a type of declarative programming, not the other way around. Prolog is irrelevant.

Backing up to equality as an aside, is there any language that will let you determine whether two functions are equal? If the functions that can be compared aren’t restricted to some silly level and the language is Turing-complete, I can’t imagine any better behaviour than Haskell’s that you already mentioned, which you can bring to JavaScript pretty easily.
could you post a bit about your experience?
I don't know where they came from, but these projects and libraries seem to be influenced by Haskell (maybe?):

https://github.com/folktale

https://github.com/sanctuary-js/sanctuary
> For good or for bad, mathematical functions are mappings from values to values, so you can't talk about computing functions in a language without a rock-solid notion of (possibly compound) value.

Erm, yes you can. You don't need "a rock-solid notion" of anything in order to talk about anything. It's certainly nice to have such well-defined concepts/terms, but requiring them is preposterous.
Absolutely. That’s sort of a fundamental reason why I wrote Cartage. I like some of what Capistrano does, but the general insistence on being able to `bundle install` on the target server is questionable, and the earlier practice for Rails apps of keeping the gems in Git resulted in other problems.

Heroku mostly does this right with its 'slug' system, and I made Cartage specifically to be able to make deployable packages that use dependencies. You have a build machine that’s connected to the network and can reach RubyGems (and, in the future with some plug-in work, other packaging systems—I expect to add Node, Elixir, and Lua soon) and that will vendor the resulting build and give you a tarball that is just installable with all of the dependencies of your package.
People tend to think in terms of an oversimplified narrative around the fall of the Roman empire in ways that really don't fit the data.

Romes decline related to the rate information traveled and the need for several people at the top. The eastern roman empire lasted well after the sacking of Rome. But, Rome had fallen several times before this it just being called Rome. The difference is we equate the city with the empire, but the US for example moved it's capital and nobody thinks in terms of the fall of Philadelphia or even fall of the US in 1814 when DC burned.

The Byzantine Empire aka Eastern Roman Empire even covered "Rome" ~550 growing and falling at various points until 1,400.

IMO, it's not really the empires decline we are talking about so much as the city's decline.
How has this benefited you?
Also, there's apparently evidence that prior trauma puts you at greater risk of PTSD from subsequent trauma. Which helps explain why different people in more or less the same situation can have very different responses, because of their different experiences earlier in life.
I'm being pedantic but microwave just has lower latency. Bandwidth is definitely down compared to fiber.
The article mentions proposed 100 and 40 story tall buildings made of wood. This would be a huge leap since it seems like the current tallest building is the 14 floor Treet in Bergen (and an 18 story building is under construction news.ubc.ca/2015/10/01/new-ubc-student-residence-to-be-among-worlds-tallest-wood-buildings/ )

and I found a paper that says that Cross Laminated Timber isn't part of the main load bearing system in Treet anyway: http://link.springer.com/article/10.1007/s00107-016-1022-5
IBM Set to Launch One of the Largest Blockchain Implementations to Date
Persistent is an ORM that doesnt support SQL stuff entirely. So replacement for SQLAlchemy ORM but not Core

If you want to be at the same level of abstraction as SQLAlchemy Core, you'll want to try esquelito (a SQL DSL).
Okay, will do. Resolution of internal hostnames by their FQDN works fine if I set my VPN client (Tunnelblick) to rewrite /etc/resolv.conf. That said, the search domain is not carried into the VM, so name resolution by hostname does not work. Also, Tunnelblick has a name resolution mode that does split DNS (i.e. preserves DHCP-set DNS servers and only forwards DNS requests for the internal domain to the VPN DNS servers). This mode doesn't work at all. Would it be possible to allow forwarding of DNS requests to the host machine like with Virtualbox (VBoxManage modifyvm "VM name" --natdnshostresolver1 on)? I feel like that would simplify things greatly.
I think that realistically it would only come up as an issue if you were looking a c-suite position. For joe or jane programmer, I doubt they would go through the effort of taking you to court in the unlikely event that they found out about it.
Do you mean that exercising led to you becoming vegetarian or cutting down meat?

Edit: lol looks like I should get some sleep
> functional languages get an amount of attention disproportionate to their usage and even this article is example - using js wouldn't get to the top of hn

JavaScript topics do make it to the front of HN. For example, https://github.com/getify/You-Dont-Know-JS was the top article on June 24.

If you mean that simply writing about using JavaScript without any particular angle probably wouldn't make it to the front page, you're right. But that's actually proportionate to the two languages' usage. It's similar to how "I drank some water" is less interesting than "I drank a rare Japanese whiskey" — absent of context, they're equivalent, but because everyone has done the former, the fact that you did it too is boring on its own.
I've been thinking about this through the day and it really may depend on the domain being taught.

A non expert may be able to teach a well defined skill step by step better than someone else who performs those steps without thinking about them anymore.

I've done too many years of math tutoring to know that the non experts in math teaching math are not doing a consistently good job. A non expert in a complex field has no way of teaching off script -- which is where a lot of students will end up entirely by accident.

I see it all the time tutoring math. I'm helping students who wandered from the one way that it was being taught. I help them get back some understanding when they feel lost trying to execute algorithms to solve problems.

The article is very long on assertions and short on everything else. The final argument against this in my experience is that experts blow away non experts on fundamentals. Sports, math, science, writing, cooking, construction, painting etc...
JavaScript doesn't have compound values. This is a fact. When you evaluate the JavaScript expression `{ first: "hello", second: "hello" }`, what you get is a pointer (or reference if you will) to an object with two fields. The object is compound, but the pointer is a primitive, indivisible value.
Apple begins wrapping up Swift 3 and lays out plans for Swift 4
Aaronson is awesome. Intellectual honesty like this is to be admired in any field.
Google has changed this almost a year ago

> Turn on SafeSearch VIP
To force SafeSearch for your network, you’ll need to update your DNS configuration. Set the DNS entry for www.google.com (and any other Google ccTLD country subdomains your users may use) to be a CNAME for forcesafesearch.google.com.

>We will serve SafeSearch Search and Image Search results for requests that we receive on this VIP.

You can enforce safe search over https now https://support.google.com/websearch/answer/186669?hl=en
Traffic capture is definitely something we are looking into. Through to be honest it would most likely be a companion app rather than directly embedded within Paw --matthaus (@hishnash) Backend syncing dev at paw.cloud
> The quote says functional programming is a type of declarative programming, not the other way around.

Well, your quote doesn't even provide a full definition, sooo...

> Backing up to equality as an aside, is there any language that will let you determine whether two functions are equal?

No, that's obviously undecidable. (Rice's theorem.) But read what I said more carefully. Did I ever say “A functional language lets you determine whether two functions are equal?” I didn't! What I said is “A functional language doesn't let you distinguish equal functions.” Not letting you test functions for equality is a perfectly valid (and, in fact, the only valid) approach in a higher-order language.

> which you can bring to JavaScript pretty easily.

Not really. I can't undefined JavaScript's existing equality operator.
We have actually two ideas in this area. First, as you mentioned, assertion testing. We've recently published a workaround (as a joke, but it's actually working :D) https://blog.paw.cloud/posts/secret-path-to-paw-assertions/ but a real alternative is coming next.

Second, we are currently brainstorming around the idea of a good automation app. So somehow the two ideas may merge. We're not sure yet what would make sense for automation, but for assertions testing, for sure it's in the pipeline!

-Micha from Paw
Ah thanks, I wasn't familiar with that part of SQLAlchemy
Uma delícia de canal
Dude, how will science progress without ego? That's like trying to remove greed from business. The remainder might have higher quality than what we have now, but the quantity would be tiny.

It's not like scientists are in it for the money...
I think you have it exactly backwards, if I understand things correctly.

It _seems_ like their "UTC Epoch time" is the same thing as POSIX time, but the Google engineer's terminology is all fubar. The reliance on the Proleptic Gregorian Calendar is further proof as that's a reference to a specific algorithm for calculating calendar dates.

POSIX time says that there are precisely 86400 "seconds" per day, which I think implies the same thing as saying there being precisely 60 "seconds" per minute. The logical consequence is, of course, that in neither case is "second" referring to the SI second.

Once you get over the fact that we're discussing different units of time, then you can see that POSIX time is _perfect_ for recording and manipulating civil calendar time. For the purposes of calendar manipulation, you rarely if ever need to know elapsed time in SI-unit seconds. All you care about is easily calculating past and _future_ calendar information. Your power company and credit card companies don't bill you by SI seconds, they bill you by the hour, day, week, or month.

Conversely, in those situations where you want accurate and precise SI-second measurements, you rarely if ever want to convert or display that data in terms of calendar time. When SpaceX sends a rocket into space, the view screen shows elapsed seconds since launch, not elapsed seconds since lunch. That's a big difference.

Interestingly, in neither case do leap seconds matter! They're irrelevant. Leaps second play no part in either TAI or POSIX time.

There are some cases where you want both pieces of information, but I think it's usually a mistake to conflate them and try to shoehorn them into the same units. That misguided practice is behind all the anxiety about leap seconds in UTC time.

It's also worth noting that as clocks become increasingly precise and accurate that the whole leap second thing will fade away. UTC time is based on the fiction that there's an abstract, universal clock in the world that is measurable in SI seconds. There isn't. At some point the needs of routine industrial measurements will enter the realm where relativity governs, at which point the fiction will be laid bare. Calendar time, of course, doesn't rely on that fiction.

The move to uncouple civil time from solar time is totally misguided, IMO, and only exacerbates the improper way that software engineers conflate the purpose and function of various time measurements.
Thanks to positive experiences with The Ruby Toolbox and The Clojure Toolbox, I usually search for "X toolbox" whenever I start experimenting with a new language.
I use cnn.com. I know they support neither ipv6 nor https, and they don't trigger firewalls.
To be fair, everyone has their own definition of FP. For me, it just feels weird to call JS functional when it only has one "feature" of most functional languages. And at least in my college studies, the discouragement of side effects was stressed as the main feature of them.
> The object is compound, but the pointer is a primitive, indivisible value.

So? Is the problem here that you can’t compare objects equivalent according to this with `==`? You can make a comparison to do this properly. (This is why functional programming as a paradigm works better and functional languages are just those where it’s the obvious standard.)
This is a potential concern with traditional analog POTS. There isn't an explicit signal to end the call on the analog side. Some switches take longer than others to detect when your phone goes on-hook and end the call. If yours takes a long time, then on the plus side, you can hang up one phone, walk to the other side of your house and pick up the other to continue a call, but on the minus side, an attacker could play a dial tone at you and trick you.

This can happen with connections between switches too, potentially; but modern (like 1980s modern) out of band signaling techniques on trunks generally prevents this type of thing.
Ask HN: Why does a request get sent to HN every-time I collapse/expand a comment?
Just noticed whenever I collapse or expand a comment here on HN a request gets sent to a server. Any idea why this is happening ? And something like this just overload the servers with so many requests?
> You can make a comparison to do this properly.

That's not the point! Even if I made a custom equality comparison that says two different objects are “equal”, it would be unsound to treat them as equal, because there exist other constructs in JavaScript that will let me distinguish them. For example, if I mutate one of the objects, the other will remain in its original state. This is exactly why a usable functional language must provide a good notion of compound value!
Google Sheep View.
Servant can do HTTP but it's more of a library for REST APIs.
> a perfectly valid (and, in fact, the only valid) approach

I thought as much and it would really help if you would just say these sorts of things outright so the comments are actually useful instead of deeply nested wording quibbles.

With that out of the way: you can define a subset of JavaScript that satisfies your third condition by saying “don’t compare functions”. That’s why I didn’t consider it a meaningful condition.

Functional programming works best as a paradigm and then we can just call languages where it’s standard “functional languages”. Much simpler.
NYTimes vs. DNCleaks
I found it interesting that the AMA didn't make the front page despite its popularity and that they allowed it to be held on a pro-Trump subreddit, therefore strongly biasing the moderation and questions in Trump's favor.

Not sure why any formal/official AMA should be allowed outside of the standard AMA subreddit.
Another sign unicorns are overvalued: Nobody wants to buy them
Yeah, because such things as human nature we can just go ahead and change...
wai and warp are the haskell packages that pretty much every haskell webserver framework are built on. they are very battle-tested and mature
> I thought as much and it would really help if you would just say these sorts of things outright so the comments are actually useful instead of deeply nested wording quibbles.

I find it absolutely essential to make perfectly clear what exactly I'm refuting.

> With that out of the way: you can define a subset of JavaScript that satisfies your third

Second.

> condition by saying “don’t compare functions”.

That's a different language. Do you know of any implementation of it?

> Functional programming works best as a paradigm and then we can just call languages where it’s standard “functional languages”. Much simpler.

Nope. A functional language is one that makes it easy to write functional programs, by satisfying the conditions I gave above. A programming language is first and foremost its semantics, whatever the culture of its users.
the guy said he actually made $80k, but couldn't disclose the other $40k in the summary... that means that doubling the "just under 6 months" value of $80k, would be over $160k/yr easy.

you're an idiot.
Servant is built on wai and warp and is more of a DSL for writing APIs.

It's a fantastic framework, but it's not an 'http client library' as such.
>That's 3.4QPS.

Who said a "learning action" is equivalent to a query?

>Also, I'm really shocked to hear you've not encountered any bugs.

What's so shocking about it?
Agreed (I'm surprised it has so many upvotes).

Maybe it's the polarizing effect. The comment wasn't for or against FB but it somehow resulted in FB vs Google subcomments. I've seen the same happen with languages, IDEs, operating systems. I don't get it...

But I'm guessing the snowball from that is why they end up on top.

That wasn't the intention, but there are three other comments on the OP mentioning the same issue so it caught other people off guard for some reason.

If you wanted to point that out and avoid the snowball, what do you think the best approach is?
In my PhD thesis I claimed a function was convex that was not. The embarrassing part was that in the next section I proved that an almost identical function was non-convex.

Phew, I feel better getting that off my chest. Good thing nobody reads dissertations.
I just finished reading your book. Too many programming books focus on answering "how does this work?" I like your book because it focuses just as much on answering "what can I use this for?". Good work and congratulations on having it published!
"Water shoots into the cylinders at a pressure of 70 atmospheres and is pushed through the membranes, while the remaining brine is returned to the sea."

I've heard this brine can have a pretty negative ecological impact, I wonder how that could be mitigated.
I'm interested in what these attacks are and what you think would be better. Especially with HSTS preloading (supported in Chrome, Firefox, IE, and Edge) I don't see any attacks really.
Kind of an incomplete article as there is no mention of the environmental cost. Desalination is not a magic solution. Everything is a trade off. Desalination means pumping salt back into the ocean which just compounds the problem.
As long as businesses are profit driven there will be exploitation of both people and the environment.

It takes a trememdous effort to navigate the consumables as to minimize harm to yourself (bad food, addictive & compulsive apps) or the environment (so much plastic!). My point is, removing desperation helps but you still have to navigate the business landmines.
"his work" not specifically how the work does it.
This technology could be a boon to country like India where huge population relies on rain and some of the reservoirs are at about 40% despite decent rainfall this year. On the other note will desalination and consumption of sea water by humans balance the rising sea level ?
Yeah, I thought I had the sweet setup with my old 4K monitors. I tried a 27" 4K but 4K just isn't enough, so I returned it for a pair of 24" 4K monitors.

Intuitively, I expected 5K at 27" to be roughly the same as 4K at 24". But, nope. It's dramatically better than 4K at 24". I had them side by side in a 3-monitor setup for a time, but within about 30 seconds I though, ugh, I can't even stand to LOOK at these barbaric 4Ks ever again! and I unloaded them on craigslist.

But don't take my word for it; every Apple store has a 5K 27" iMac on display.

It doesn't actually look crisper to my eye than a "retina" MacBook Pro -- the huge difference, though, is that the 17" 5K panel is awesome at its native resolution. On the MBP you definitely need to use the "scaling" feature, which while much better than the sad old low-res generations of displays, nevertheless does add some fuzziness.

5K at 27" is the best thing readily available today, and I am not sure it needs to get much better than this (if at all) for the resolution of my eyeballs.

Spending $1500 for a computer monitor does kind of suck though, so yeah there's that, still... :-/
Explain why?

The ocean is say 99 parts water and 1 part stuff. We take out 1 part water and .01 parts stuff, keep the water, then put the .01 parts stuff back. Doesn't seem to really change the ocean concentration? I guess maybe if dumped too close to shore it could make a brine slick?
I was worried for a second somebody brought the Physics Analysis Workstation back to life:

https://en.wikipedia.org/wiki/Physics_Analysis_Workstation
AWS Dashboard – 500 Service Unavailable Error
Looking up the keywords in one headline I don't understand every few days alone is incredibly helpful.
Well prefixing that by saying observable universe. We can't really say much about the non observable universe.
Pretty much all the desalinated water that is "consumed" will just flow right back out to sea.
Except that you haven’t solved most of the problems that I pointed out by saying “use a system package manager” (and have introduced several new ones):

a. I maintain ~13 Ruby gems. I can generate new versions and verify their install on any system that I can run Ruby on. Under “use a system package manager”, I now have to maintain at least four unique package management formats (deb, RPM, emerge, Pacman) just for Linux distributions and at least one for the BSDs. Thanks, you’ve just increased my workload at least five-fold, although I no longer have to worry about Windows or macOS users (wait, I’m a macOS user).

b. Sure I can use a non-distribution mirror (like a PPA), but now you have to have at least six of those mirrors (see point 1) and, again, too bad about Windows and macOS users since they obviously aren’t smart enough to use an OS that has an in-built packaging manager.

c. In truth, you haven’t increased my package load five-fold, you’ve increased it much more than that. I’ve followed instructions for making debs and RPMs…and the only thing that works for me is using FPM because the system package managers are so bloody complex and built for a single particular use-case.

d. You still don’t have a solution for Windows or macOS users because neither of those OSes have system package managers, and no neither ports nor homebrew counts. RubyGems, pip, cabal, npm, etc. may increase the cognitive load but they work for people who don’t use Ubuntu Zany Zebra.

You’ve also introduced a new problem:

e. OS package managers (except probably nix) do not solve the multiple-installed-version problem. RubyGems allows (even encourages) multiple versions of a gem to be installed and applications (through their Bundler Gemfile) can lock to a particular version. I have packages with 1.x, 2.x, and 3.x releases where all three versions are still in use despite some backwards incompatibilities (mime-types 2.x dropped support for Ruby 1.8, deprecated some methods, and changed the default data format and loading mechanism; 3.x dropped support for Ruby 1.9 and removed the deprecated methods, and changed the default data format).

This is not possible in an OS package manager without renaming the installed library in some way. This is mostly fine when you‘re installing compiled software…but it’s not even perfect there. I’ve been working with language-specific package managers for a long time, and I’ve been dealing with how distribution package managers break some of the packages that I work with for just as long. I generally prefer the mess we have now to waiting for the perfect system package manager, especially since there are systems which will never get them.

[fixed formatting]