skysight-inc/HackerNews huggingface dataset:
Sure. It's just because when you're passing around functions of type (a -> b) the only fixed-size representation is every possible input/output pair, which is obviously not a good representation. Instead we use a variable-size representation in the form of code (passed around as a code pointer) and captured variables (the format of which depends on the function being passed around). Together these are called a closure. Using variable-sized closures created at runtime requires dynamic allocation, which rust allows for but does not make convenient (intentionally). Sometimes you can get around this but not always. So the kind of stuff you can do with higher-order functions in rust is more restricted and usually has extra rigamorole required for memory management. It's not that rust is doing something wrong, it's just a necessary consequence of having such excellent guarantees about allocation (or lack thereof).

> I'd also like to hear about "what makes functional programming useful" if you have a minute.

This is sort of a book-length topic and I'm on my phone, but a few points worth looking up are (Generalized) Algebraic Data Types, Typeclasses (in particular Functor, Foldable, Applicative, Traversable, Monad (in particular Maybe, Either, and State)), Higher Kinded Types, corecursion, the Y combinator. The gist of it is that you can do a bunch of cool stuff you wouldn't be able to do (or even think about doing) in an imperative language. For some reason we're not entirely sure of, it seems to be way easier to isolate the essence of what we're trying to accomplish when using functional programming than when using imperative programming, and therefore to automate the boring work normally associated with doing things to data, like writing loop definitions.

It's kind of like how natural functional type systems have the same derivation semantics as various logical systems, even though it's not entirely clear why that ought to be the case. We seem to have just stumbled upon an abstraction that meshes nicely with the platonic universe of useful computer programs, as opposed to an abstraction that only exists because of the particulars of how our computers work.
Git-subtree: Merge subtrees together and split repository into subtrees
Alleged poor? When machines are cheaper than humans for any given task (as a result of both AI and robotic improvements) human beings will be destitute except for any ownership of resources they already have and can defend.

That means the vast majority of people will have no means of income or resources, unless they appropriate the use land or resources they don't own in a shadow economy.

But the appropriation of resources is not likely to be perceived positively by those that own the resources, given that ownership is the only thing separating the rich from the destitute.
Countering Foreign Propaganda and Disinformation Act
> He used to find famous people in parties and events and never recognise them or know why they were famous.

That sounds like a feature, not a bug to me.
You are using your own interpretation of his comment to make a moral judgement on his character.

Based on what we know, it's possible that he simply believes any poor person can escape poverty through hard work and tenacity. This belief (though arguably incorrect) is supported by his personal experience. And, the idea of someone 'pitying' or feeling 'guilt' for someone in his former position is detestable because it suggests that they think they're better than him.

I want to make it clear that I don't agree with this perspective, and don't believe it's constructive. However, I don't believe we need to be publicly shaming people when we can be having constructive conversation. Instead, I think we should be trying to understand where people are coming from, and discussing ideas openly. A person's character really has no place in a discussion of ideas.
I know that I'll be checking it out for more details soon. Thanks for bringing it to my attention :)
Ask HN: Is velocity a good metric to measure team performance?
If this is new to you, you should also investigate Perlin noise used to generate terrain. There are many examples online. It uses many of the same concepts although it's not quite as intuitive. I suspect it is more efficient, though, although that strongly depends on how good the PRNG you're using is.
Delete FB. At least mobile. Your brain will thank you.
Show HN: Save some animated memories this holiday season with PopGif
No. Agile does not work. Tasks will get delayed, need reviewing, etc, etc. A task is done when it's done. Deal with it.
Your TV does not have the ability to watch you.

Facebook makes a business of watching you.

If it's legal for FB to use the mic while you're not perfectly aware, they will do it. That said, I don't believe they are doing that, but they are using basically every aggressive means available to capture information about you, which they own, and will do as they please with.
You're definately on to something here. Not sure if "Inspiration" is the right wording. Perhaps this could be configurable.

I personally do not need "Resources" or dairy features in my tasklist system. (Then again, this is typically you get 1001 opinions when asking 1000 people).
Both the DNC and the RNC are non-profit private organizations (IRS 527).

While I'm also interested in an open government, I think it's reasonable for both of those groups to expect to operate with some degree of privacy and autonomy.
Except that at some point the very rich will have enough AI systems in place to provide for each other.

At that point, the economy will continue to grow, despite what will seem like an economic disaster to most of the human race.

This happens all the time to other species today, where humans suck up all the resources leaving incumbent creatures to die off.
> for (int i =0;i<len;i++){ if(lines[i] == "a"){ i+=2; } else{ parseLine(lines[i]); } }

You must be one of those managers who like to dabble in coding! I don't even know what you wanted to do. Is that C++? That part `lines[i] == "a"` is string comparison, right? And `len` is the amount of lines, right? I'll use a list instead.

I'd do it in C# with LINQ but I'm at my folks, so I only have an iPad. Here's the biggest Haskell program I ever wrote in my entire career:

dropTwoIf :: (Eq a) => a -> [a] -> [a]
dropTwoIf _ [] = []
dropTwoIf s (x:xs)
| s == x = dropTwoIf s (drop 1 xs)
| otherwise = x : dropTwoIf s xs

myList = [ "will pass", "will pass", "a", "will skip", "will pass", "a", "will skip", "a" ]
main = mapM_ print (dropTwoIf "a" myList)

Result:

"will pass"
"will pass"
"will pass"

Thanks for forcing me to actually do something bigger than Hello World of fib in this Haskell thing.

EDIT: Sure, it looks bigger than the for loop, but at least it has a name (but I'm not that good at naming) and it can be put in a library and reused. I'm pretty sure I could do MUCH better if I actually knew the standard library.

EDIT 2: Huh, figured out the type.
Go doesn't have subtyping. It has coercions, which are not the same thing, and they do not lead to issues around variance.

Variance is straightforward anyway. A lot of things in Go, like the semantics of "nil" and zero values, are more complex than variance. And, as a designer, if you're worried about the complexity, just make all type parameters invariant, like C++ does. It's a bad excuse to not have generics at all.

Rust works exactly the same way as Go (coercions, no subtyping), except that there is subtyping in Rust via the region system. But Go doesn't have that. No region system, no subtyping.
And I think a hostile nation affecting one's internal politics is an act of war, successful or not.

This didn't just damage Hillary, although the media you so deprecate made it into just that. The hack also serves to de-legitimatize Trump. It is also causing Trump to fight with and denounce all the intelligence agencies critical to US functioning. Beside refusing their intelligence, the demoralization affect alone is huge (who will risk their life for a president who calls them a liar?). It has also thrown the whole electoral process into doubt. etc.

And they hacked the RNC too. You can bet that will be used to to maximum damage at some point.

It is no doubt that most damaging and successful attack on the US in decades.

But even more shocking is that it is condoned because it furthers certain parties political ends. What happens if both political parties start using acts by hostile nations to help them win elections?
Top Pick:

- 99% Invisible (http://99percentinvisible.org/) : Well-produced radio stories about the designed world.

Software development:

- Hanselminutes (http://hanselminutes.com/) : "Fresh Air for Developers". A weekly discussion with web developer and technologist Scott Hanselman (well-known blogger, podcaster, and Microsoft employee).

Comedy:

- Jordan, Jesse Go (http://maximumfun.org/shows/jordan-jesse-go) : A free-form discussion-based podcast hosted by two funny dudes, Jordan Morris (@midnight) and Jesse Thorn (Bullseye, Judge John Hodgeman), that is quickly becoming my favorite podcast.

- Spontaneanation (http://www.earwolf.com/show/spontaneanation-with-paul-f-tomp...) : A free-form improv comedy podcast hosted by the great Paul F. Tompkins.

- The Dead Author's Podcast (http://thedeadauthorspodcast.libsyn.com/) : A live show in which H.G. Wells (Paul F. Tompkins) brings another deceased author (played by another comedian) to the present day for a discussion loosely based on the author's work. (This show is now defunct, but there are 50 good episodes)

Notable mention:

- Reply All (https://gimletmedia.com/reply-all/) : A well-produced, interesting, and often funny show in which the hosts investigate stories about or originating from the internet.
You're probably thinking of the story Reed included in "At the Abyss," about a pipeline explosion from a trojan horse slipped in the Canadian control software. That was supposed to be in 1982. It's become an infamous legend about ICS attack.

Probably didn't happen though. There was definitely a big pipeline explosion at the time, though Reed's fact checking misses the location, and somewhat more importantly, the fact that Russian control systems weren't software-based at the time.

Although it was a fun legend, it probably started as a game of telephone (a/o paranoia).

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

https://en.wikipedia.org/wiki/Paranoia_(role-playing_game)
Show HN: Gift ideas for makers, hackers, and learners
Hey HN,

My favorite gifts as a kid helped me build new things (legos, pocket knife, and a computer, for ex). This time of year, a lot of people want to give gifts that are just as memorable their to nieces, nephews, etc.

So I made a site of gift suggestions--it's very rough, but I would love to hear your feedback (and your ideas for gifts).

Merry Christmas :)

Sam
And/Or DNS resolver leak (not using dnscrypt)
I have Urban Fibre, but are they available everywhere? They're up on Burnaby Mountain, but where else? I was under the impression that they were formed to sell access to a fibre link to downtown from a defunct government project?
Yeah, in a way, this sort of thing is indicative of a turing tarpit.

It's not obvious which, among all the moving parts, is responsible for any of the outcomes, just by looking at the commands themselves in isolation.

If someone did a similar thing in Brainfuck it wouldn't be entirely surprising that such a thing is possible, but the practicality of being able to getting it right every time, extemporaneously, is low.

It's interesting to know that this is possible, in case of emergency, but just because it's possible doesn't make it desirable.

If someone wrote an article about how to do the same in MS DOS batch files, circa 1996, it'd be an interesting proof of robustness, but an undesirable standard operating procedure.
Install the ARM compiler on CircleCI?
A few gotchas here:

* "seq" is usually an external process. You may want to do it in bash's arithmetic for, use a while loop with `$(( ... ))", or write a `seq` function (you still need to spawn a subshell for command expansion though.)

* "(( ... ))" is not in POSIX shell, but "$(( ... ))" is. You should be able to get around with some [ "$(( blah ))" -eq 0 ] tests.
Pythagorean Cup: Practical Joke Chalice Overflows with Ancient Greek Humor
Checkout Rack (https://github.com/rack/rack) and Hanami (https://github.com/hanami/hanami).

I myself learn a lot from these projects. The code is clean, with good tests and documents.
In case you missed the recent news: they did hack the RNC too, but chose not to release any of that information. Presumably either to influence the election by making one side look worse than the other, or to have leverage over them by threatening blackmail... or both. That's one of the facets of this that is really disturbing.

More details here: http://www.nytimes.com/2016/12/09/us/obama-russia-election-h...
This is the scariest of all.

* Anything you say in your home is the property of Google/Amazon *

You have sex with your wife? The sounds you make are their property.

Say something politically incorrect? Amazon/FB might not use it against you, but they might have the data stored and others can.

I really can't believe allow this stuff in their homes.

FB/G etc. are too big to do directly nefarious things like 'use the mic on your smartphone' without your permission, it would blow up on them ... but to do it with your permission? It's crazy.
If you disliked that then you'll hate this. Sadly I can vouch for its general accuracy.

https://4thgenwar.wordpress.com/2016/07/03/trump-meets-man-w...
Greetings.

The worldsheet is time-symmetric, otherwise, if you pulled a single point of the worldsheet, the point would remain, and no elastic resistance would occur. If we presume that elastic resistance occurs, then we assume any pulled point will restore to elastic equilibrium with the aggregate elastic potential of the entire worldsheet, and thus, time symmetry IS the zero aggregate elastic equilibrium of a worldsheet.

We are not talking about zero UNIFORM elastic equilibrium, in which each point is at zero elasticity between all other points in a worldsheet. We are talking about zero aggergate elastic equilibrium between all other points in a worldsheet, thus, we are presuming the elastic resistance between all points on a worldsheet is always in flux, but eventually trends towards zero.

Eventually, this natural jiggling of the elasticity of points forms elastic folding within the worldsheet itself. Most of these folds revert back to zero aggregate elasticity, but sometimes, these structures hold because while they have odd topography, they achieve elastic equilibrium with the rest of the worldsheet because of their odd topography. This is because of the distribution of tension within the topology. Because it is at elastic equilibrium, the topology remains. Eventually, more topologies appear and eventually, some even interlock with each other like worldsheet velcro.

If the elastic equilibrium of these topological structures is pulled beyond its internal tension balance, each of these "tension contracts" will be pulled apart in favor of the dominant tension. Despite these topologies being made of time symmetric worldsheets, the topologies themselves are time asymmetric and cannot be made again by simply reserving the elasticity as the worldsheet still remains at zero aggregate elasticity, and thus, preserves its time symmetry AS A WHOLE. This is how arrows of time can arise from time symmetric universes.

From here, these tension contracts combine with each other, forming either a velcro binding or a tension binding, where one topology correctly scales the flow of tension to its neighbors, increasing its tensile strength, and thus, extending its influence upon the rest of the worldsheet. This, I believe, is the foundation behind Higgs fields.

The key take away is that every particle in the entire universe is nothing more than complicated folds of a two-dimensional conformal field theory coupled to symmetric time. Nothing rests on the worldsheet or exists beyond it. All energy and matter is made up of a complex combination of elastic equilibrium. Gravity, then, is the resolution of elastic equilibrium between two tension contracts. To prove this, we simply have to envision a blackhole as being anchored upon the universe at the very edge of the event horizon because that is where the rest of the worldsheet has achieved elastic equilibrium with the blackhole.

This is why negative energy does not appear in the wild. EVERYTHING is already made up of "negative" energy.
Who is using Phoenix Framework in production?
>Nope, if you choose to turn this feature on, it will only use your microphone (for 15 seconds) when you’re actually writing a status update to try and match music and TV.

It doesn't do ambient recording. Its basically shazaam.
In short, yes. How else would we provide scalable containerized services? Docker?? [0]

[0] Don't be silly, of course we rolled our own.
>I'll trust the CIA over the FSB/GRU any day of the week.

Perhaps, but that's irrelevant to the issue of attribution at this point.
Lots of traffic only proves possibly abusing TOS, nothing about the content of said activity.
I have never, not once, come across a discussion of Watson and Crick that did not also talk about Franklin's role.

Even when I was in high school back in the 80's, her contribution was front and center, along with the other two. Can we please let the myth that somehow her contribution is forgotten and not taught to die?
The Jargon File: A collection of slang terms used by hackers
Pedantry: NO₂ is nitrogen dioxide; nitrous oxide is N₂O.

And yeah, Cool Whip is barely a dairy product, and doesn't require propellant. So no N₂O involved.
> For example, having special syntax for returning errors vs a more generic solution like multiple return values or returning a tuple.

Even if this were true (which it isn't—Go uses multiple return values for returning errors), returning a tuple would in no way make analysis harder. Detecting whether a function returns (T, err) for some T is utterly trivial.
uhh yeah dude. the only comedy podcast worth listening to.

http://uhhyeahdude.com
So, this is correct and I thank you for the correction. Having said that, I don't think that changes my point much if any -- there's one game in the top 30 sellers that uses Unreal Engine, and it didn't use it as a third-party engine -- Epic developed both UE and Gears of War.

By and large, the developers of AAA games don't license an engine from a third party.
As I understand it, reposts are fine as long as a reasonable amount of time passes between submissions. I swear I've seen a few stories that get submitted almost every year, although I can't remember any off the top of my head.

That's "past" button lets you quickly search for previous discussions.
Unlike Reddit, jokes are generally not we received on Hacker News. The community prefers relevant, on-point discussion to keep a high signal to noise ratio. This isn't to say some jokes aren't tolerated, but it's best to shy away from them unless you have something really great to add.
" If Facebook had an always-on phone recording, people's data limits would be swiftly used up. "

Not at all. They could be smart about it.

If the user agreement does not allow them to be listening, they they probably are not.

If it does ... well ... they possibly are. But there's too much bad PR risk if they are so it's unlikely.
At the risk of invoking the No True Scotsman fallacy: anyone who said it was possible wouldn't be an expert.

(I don't think the fallacy applies here, since the property does correlate, and wasn't arbitrarily selected to redraw the boundary.)
Could you expand on this "selling the name" bit?

How does that work?
I found this series convinced me I wish I could use FP

http://fsharpforfunandprofit.com/

Specifically the "Why F#" part and within that this article

http://fsharpforfunandprofit.com/posts/correctness-type-chec...

It actually kind of blew my mind (hypebole maybe). Like wow. Not only do I write less code but by language design way more issues are solved .

Kind of like static typing stops certain kinds of issues. FP solves the next level above that.
The good:

> Congress should not weaken this vital technology [encryption] because doing so works against the national interest.

The bad:

> Metadata may not completely replace the loss of encrypted content, but metadata analysis could play a role in filling in the gap. The technology community leverages this information every day to improve services and target advertisements. There appears to be an opportunity for law enforcement to better leverage this information in criminal investigations.

The ugly:

> Although much of the debate has focused on requiring third party companies to decrypt information for the government, an alternative approach might involve compelling decryption by the individual consumers of these products. On a case-by-case basis, with proper court process, requiring an individual to provide a passcode or thumbprint to unlock a device could assist law enforcement in obtaining critical evidence without undermining the security or privacy of the
broader population.

> With respect to the Fifth Amendment, is there a substantive or legal difference between unlocking a device with a passcode and unlocking the device with a biometric identifier? Is entering a passcode a “testimonial act,” as some courts have held? Is a fingerprint different in any way?

> Are there other circumstances that would enable the government to compel production of a passcode without undermining the Fifth Amendment?
Well yes, we have finite resources to deploy.

But most resources are not spent on risk mitigation. The question of what priority to give risk mitigation naturally (should) go up the more credible existential risks are identified.
"hey siri" feature is only happening because it leverages the low energy coprocessor with it
Russia also hinted that MH17 was downed by Ukrainian aircraft.
An alternative design that does not require generics is to make channel types implement a Channel interface, which has methods close(), len(), etc. This seems less magical, and would enable functions that act on channels as existentials.

Why generic builtins instead of a Channel interface?
I agree, but I see why Obama did what he did. He thought this would be counteracted by Hillary's win and that any further action could be taken by the next administration.

We know now that nothing will come of it unless Trump does an about-face come January 21st.
I read it as a teenager and keeps coming back to me in many ways. Suggested read for adults.
The CyanogenMod open-source project somewhat lended their name to the Cyanogen company.

The link explains it better.
I think you have no trouble with typing, because you care too much for your code quality, it makes you slow. However, you are doing good thing for other people - who will work on your project and for yourself.
I am in complete agreement that lisp makes it possible to write slower programs. I just challenge that it is an inherently slower language.

I view it as reducing the coefficient of writing a program. This means more will be made. So more slower ones will get made.

However, nothing prevents you from writing a fast program in that language. Other than the slower successes.
This is really a little misleading.

The 'mind' is an abstraction, it does not exist in physical space, ergo, it never did exist in your 'brain' or 'anywhere else'. It does not have a 'location'. And this is without getting into tangential metaphysical issues ...
Thomas Frank on Listen Liberal: https://www.youtube.com/watch?v=38JNg210L24

I also suggest the following talk by Mark Blyth: https://www.youtube.com/watch?v=Bkm2Vfj42FY which concisely outlines the economics behind the decline of western middle classes, and the link to sentiment against mainstream political parties. If you are interested in how bad things look for europe (from 2013, but the fundamentals have not changed): https://www.youtube.com/watch?v=JQuHSQXxsjM