skysight-inc/HackerNews huggingface dataset:
I'm not sure if this counts as going 'functional' but after having done the FP Scala course I tried out lodash, and now its the default dependency in all my web projects :D
I like this method because, if it's done as described, it detaches an evaluation of you as an employee from judgements of you as a person. Too often those become jumbled together.
> "A stable foundation is important"

It all depends on what kind of apps you are deploying and supporting. While I wasn't even discussing immutable systems in this capacity, some workflows work better for .com style applications. In a typical bank environment where you have thousands of legacy applications floating around, you are more apt to not be able to control the architecture and need to push out security updates.

In place updates here are fine, however, I still wouldn't want to do an in-place dist-upgrade across all of those systems, and then find out which ones of those thousand applications had problems. In this case, it's better to redeploy those applications if they need a new OS and the OS is no longer recieving security updates - and try to shift some of that burden onto those who maintain the application.

If you are just deploying a .com app though, you need a good backup/DR strategy, and it helps to be able to redeploy everything and take steps to not get attached to state on that machine.
Hosting images on dropbox might be an issue. Maybe you should use data url so the signature is "self-hosted".
I'm assuming you mean without standardization?

Pair programming, code review, and actively refactoring code to use existing abstractions or build new abstractions when it appears that the same problem is cropping up in a situation that might warrant copy / paste / modify.

It might be possible that a couple of different abstractions / patterns crop up that solve the same underlying problem. It usually isn't a problem for them to coexist for a while until one proves better. Sometimes they evolve in different directions; sometimes the people most responsible for the respective abstractions agree between them what synthesis should win going forward.

I'm just worried about giving too much ammo to a certain type of code lawyer, who likes to quote chapter and verse and gets a kick out of being technically correct. You find these kinds of people everywhere, on Wikipedia, increasingly on StackOverflow, etc., and I think they can create a bit of a poisonous culture if they have too much law to enforce. There is a place for some low-level standards, don't get me wrong, but it can get out of hand.
Hello again,

I'm glad you were able to finish the signup and play a little with the app. It's also nice to hear you like the look of the site and how the content shows up. As for the sources, you can't indeed turn them off, because they're always there as curated content to choose from. And there's also no restriction on how many times an item can be added from the Catalog, thus resulting the possibility to have duplicate items. But you can always delete the extra cards.

Concerning the fact that when you tap on an item it takes you to the homepage of that site, I'm currently working on a feature that will allow users to go directly to the articles featured on the card. It's a request that many users have asked for, so it will certainly be included in a future version of Hinto. Thanks for your feedback anyways, I really appreciate you taking the time to reply.

I also took a look at serializer.io and it's quite nice and easy to use. However, I didn't find a way to add other sources beside the ones by default and neither to add a custom subreddit for example. The simple look and only displaying the text headlines has its advantages, but I personally prefer a more visual presentation, with more images instead of text. On the other hand, you were right, it's nice to be able to test the app without having to create an account, that's something I should definitely consider for Hinto. BTW, I found serializer's page on Product Hunt and I upvoted it, I hope you'll get some traction with your app!

Cheers!
Thank you for not giving up on Ansible at the start. It's great stuff and it enables people to do some pretty cool things.
Commoditization is not the same as low profit margins.

The auto makers historically spend a ton of marketing money to keep the auto market from being a commoditized market. So far they've been very successful.

Profit margins are pretty healthy in some segments, for that matter.
Credit Card-Sized Cell Phone Designed to Be Used as Little as Possible
This statement seems wrong:

"Functional programming languages fall under the declarative languages category, meaning algorithms are written in form of relations between steps"

The author also notes that productivity is a pro of FP. While I like much of the elegance of languages like Haskell and Lisp, its never been clear if it is actually more productive in writing real code -- and if so is it grossly more productive, or only by small margins.
Though the edges of the language are softened to make it easier to swallow, I think the message is very clear. If your boss "suggests" some changes, he/she means make some changes.
Sorry, did that site have ads? I didn't see any.
I am not sure what will happen to https://petitions.whitehouse.gov/ -- can you imagine that just wiped off?
Or ... you could use the methods listed in the article.
I found your comment to be offensive :)

I know you didn't mean it that way, but describing these guys as selfish seems to me to be so wrong and struck a nerve. They lived their lives purposefully and majestically, if tragically short. It's arbitrary that jumping from those cliffs is illegal, but climbing them or whatever is not. Any way you do it, S&R can be involved.

I think it's selfish and discriminatory of the US Parks to make "aerial delivery" illegal. Maybe if it wasn't illegal, these guys might have had more time to scope out their lines and work down to them. Maybe they'd still be alive.

Dean often lamented that his sport was illegal in the "land of the free" and that he had to go to Europe to practise it.
ANDroid WEAR SMARTWATCH FIRE SALES STARTED
Hm, the article several times says "required not to be indexed", while robots.txt is more like "request not to be crawled".
An important distinction, because a page may well be indexed without being crawled, typically when there is a link to it. Better to use the noindex meta tag (at least if you are only concerned with search indexes, not access control).
I love FP, but it always seems a bit disingenuous to claim that it is "pure". Most programs raison d'être is to do IO (that is to say to have side-effects), so by construction most programs are impure.

Bjarne Stroustrup has a say about C++: you don't pay for what you don't use. I like to think about it that way for FP: you don't pay for side effects you don't use.
I agree with you, but perhaps for a slightly different reason. I worked for Microsoft in 2001 and 2003, and recently rejoined the company. I have had enough time away from Microsoft that I feel safe in saying that I have perspective both from the inside and from the outside.

The biggest drawback that I saw from the DOJ decision was that Microsoft was not allowed to innovate. Windows 98 and Active Desktop can be considered an early precursor to today's web applications like Chrome packaged apps and Firefox apps. How might the application landscape look today if XP were firmly rooted in the concept of web applications rather than native applications? The decision against Microsoft actually slowed them down and allowed them to slowly outlast their competitors.

Instead of fighting a browser war, Netscape might have pivoted and created a Chrome OS like operating system that ran on top of Windows, Linux, and Mac OS. Google might have become known for creating a rich set of web-centric APIs that Netscape OS leveraged.

Instead, Netscape got stuck in an entrenched losing battle over a product. It was myopia that defeated them. The DOJ decision delayed the inevitable and it caused Netscape to waste resources thinking they had a chance in a "fair" fight. The Web 2.0 revolution was poised to take place on the desktop rather than in the browser. As a result, I think we all have suffered a 15 year setback.

I feel in the same way that an EU decision against Google won't correct any injustices, but it might stifle innovation; and not just innovation from Google, but its competitors as well.
How to Successfully Manage Remote Employees?
You say "lifestyle companies" as if that is a bad thing.

I enjoy working for a small company where we are paid well, stable, profitable, have been for years, and everyone still leads a very fulfilling life outside of work.

And even so, our growth rates are well above average... just not the hyper growth expected of a startup.
Static assets (CSS,JS…) – how to generate and deploy
Your open source story matters
Finding fonts used in a stylesheet
Been looking at Titan X the last few days. Here is one article I came across on the topic:

https://timdettmers.wordpress.com/2014/08/14/which-gpu-for-d...

tl;dr:
GTX Titan X = 0.35 GTX 680 = 0.35 AWS GPU instance (g2.2 and g2.8) = 0.33 GTX 960

GTX Titan X = 0.66 GTX 980 = 0.6 GTX 970 = 0.5 GTX Titan = 0.40 GTX 580

also: I was under the impression single precision was fine for most deep learning applications and double precision doesen't even have good support in most libraries but I guess it depends on the use case.
Would you be homeless or just living in a less ideal home?

I am lucky to live in a country where my choice really is just a trade in the level of material comfort, but I understand this is not the same for everyone.
The difference between his two fibonacci implementations is recursiveness, not "fp-ness". You could write fib in a imperative style that is close to the mathematical definition and readable to boot, for example, in ruby:

def fib(n)
case n
when 0, 1
n
else
fib(n-1) + fib(n-2)
end
end

puts fib(10) # => 55
Pretty sure it was part of the initial, day one S3 release.
> Since this is impossible in imperative languages, I can't give you a comparison.

I'll bite. Here's foldr() in JavaScript, written in an imperative style:

function foldr(func, list) {
var r = [];
for(var index = list.length-1; index >= 0; index--) {
r = func(list[index], r);
}
return r;
}

It isn't defined via pattern matching, but it's absolutely a higher-order function. Functional programming is a collection of ways of thinking about problem solving, and it can be applied to any language.
Live example can be seen here, I ran it on my private Minecraft server few months ago: http://map.turshija.com/
So it's lack of abstract return types. Thanks for clarifying.
As someone who worked with OCaml and C++, and now working with Scala, I must concur.

First weeks or months are hard, because you have a lot of new mechanism (and syntax) to learn. Then, when things gets easier, designing reusable components with function composition become almost systematic. In the end, you'll be able to write code that feels like poetry (it's very difficult to put words on that feeling, so I understand if it sounds like a bad piece of propaganda to you).
I would be homeless, first and foremost, because I wouldn't be able to pay my mortgage and the bank would seize my assets.

Eventually I would be eligible for state benefits and placed on a waiting list for a council owned property, but waiting lists are long. I might be able to get shelter in a women's refuge in the mean time, but I'm not sure that's an ideal place to raise my children just so that I can claim the moral high ground on childcare use.
`reduce` is rather `foldl` than `foldr`.
THE BLACK OBSIDIAN MIRROR OF NOSTRADAMUS and THE ANTI-CHRIST
I'm not sure more meat would help. Sensor data and contact lists don't define "the internet".

Perhaps he should rewrite the article and replace the word "Internet" with "Facebook". Yes PC's are a cut down version of Facebook simply because the Facebook mobile app has probably asked for all sorts of permissions of your phone and you've "granted" those permissions because you had no choice. Is that a better internet for the user, or better for Facebook? We know the answer.
Wouldn't it get blocked for having "ass" in the name? Slightly ironic choise of name IMO.
You can also use the -S flag of gcc to output assembly instead of binary, or if the program has already been compiled you can use objdump on it to read the assembly alongside the source code.
Show HN: Geiger, a tiny, no-deps Flux implementation
AeroFS is Hiring
I forgot to search before posting. :)
Here's a page about calculating Fibonacci numbers efficiently:

http://www.nayuki.io/page/fast-fibonacci-algorithms

The method you linked to is listed there as "Dynamic programming (slow)".
> They don't lose power by outsourcing their software stack

It's not even "the software stack", it's only the bits that relate to entertainment and navigation. The funny thing is, it was only in the late 90's (I think?) that car radios transitioned away from being commodities, by way of the DIN mount: https://en.wikipedia.org/wiki/ISO_7736 - Cars would often ship with comically featureless stereos, because people would replace them anyway. I had a semi-fancy Sony CD-radio that followed me through a couple of beaters and I don't think that was all that unusual.

In many ways, this new movement is just a return to the old state.
User-agent: *

Allow: /

# A robot may not injure a human being or through inaction allow a human being to come to harm.

# A robot must obey the orders given it by human beings, except where such orders would conflict with the First Law

# A robot must protect its own existence, as long as such protection does not conflict with the First or Second Laws.
Haskell is fun to play with, but most definitely isn't on the list of "languages the boss will actually let you use if you ask nicely." The JVM FP languages like Scala and Clojure are probably more worthwhile to learn, from that perspective (maybe F# if you're in .NET-land).

I learned Haskell first (man, what a slog that was) to come to grips with FP, then Scala so that I would actually have the opportunity to use a bit of functional programming on the job.

Update: Downvotes? Apparently I said something controversial here.
love how you had some downvotes here because people don't realize you're the blog post author

Thanks for working on this. My friend has been looking at doing some consulting and wanted to be able to distribute low cost FreeBSD-based routers. Now the framework is here...
>'Let’s pretend you are like me. You can’t talk, but you have a well-functioning mind'

I thought that one of the few genuine insights made about autism is that so-called autistic people have difficultly reading intentions (their own, or other people's) or even appreciating what minds and intentions are. Which is why they appear selfish, and why they're unqualified to make such statements.

Also sceptical that coercing people to behave in socially acceptable ways is necessary or desirable.

People who are basically happy and left to develop autonomously will tend to converge with social expectations as required. Maybe the spontaneous cures of autism are examples of that: happy children, perhaps shielded from bullying, whose parents supported them enough for this lengthy process to occur.

Whereas trying to train people like dolphins risks making them miserable and thwarting that development.
int fib(int n)
{
return (n <= 1) ? n : fib(n-1) + fib(n-2);
}
Not really given it mostly quotes directly from the "article" and makes basic errors - I'm sure Chief Petty Officers would like to think they are "senior officers" but that doesn't make it so. He leaked this to all the national papers and they are pretty much all running it on the human interest angle, not the nuclear safety angle, which should tell you a lot about this "story".
The Haskell code in question:

fibs = 1:1:zipWith (+) fibs (tail fibs)

It's also a common showcase for Perl6 lazy lists:

my @fibs = 1, 1, * + * ... *;
The good thing about standards is that each one can choose the one he likes. (I can't find the exact quote.)

Functional programming is like Object Oriented programming, each one has his own definition that is very similar to the other definitions but has a few tweaks to make possible to include his preferred language.

Anyway, I can't understand what this means: (from the article)

> Static linking: All variables are allocated at compile time and are statically linked. No need to go into more details.

Doe it mean no "eval" function?
Don't get me wrong. I agree wholeheartedly.

I'm just responding to the accusation as if Javascript is the known culprit. In those cases, chances are the code itself is the problem and not the language. I can code a page that will likely hang the browser but that doesn't mean I don't take the responsibility of the code that I wrote.
I wonder how big the chance is that the machine is turned off in the first hour.

I use Google Compute for some personal project and the typical run time for a VM is about 10 - 20 minutes. If the vm has 90% chance to survive the first hour, it could be worth the trouble to make my process more fault tolerable.
Well this took a dark turn. I never would have known about this RPM thing if I hadn't read these comments.
My response? YMMV

Abstractions help to create clean, readable code. You do create lots of small classes, but they tend to be focused on one thing and are easily verified by unit tests. It helps debugging since it helps you focus on the area that is causing an error, without having to know how the full system is working.

The downside is that is does scatter the code around, and the creation of units tests requires discipline. When you're first learning the system, it can be challenging since the code is not all in one area.
Oddly, I find the employee whose effusive praise of the company included phrases like "business is truly LEGAL I LOVE AXACT" to be a more damning indictment...
Gumtree is also part of eBay Classifieds Group.
> To ease the pain of the breakup, my standard interview routine includes a segment on Why and How I’ll Fire You.

> "... But repeated lapses of judgment or a habitually disruptive attitude can’t be tolerated, and we will have to part company. In plain English, I will fire you."

I'm not saying that setting expectations up front is a bad thing, but I've never had the topic of firing brought up -- ever -- in any of the many interviews I've had over my career.

And therefore, if this were brought up without my asking about their firing policies, the thought that would go through my mind would be along the lines of:

"Wow, this company must have to deal with this quite a bit in order for it to be covered like this during an interview setting. Either this place causes people's attitudes to take a major turn for the worse, or they do a terrible job at filtering out bad attitudes during the interview process."

Or...

"Was there something on my resume or something that I said during the interview that may have triggered this?"

Again, transparency is a good thing. And if I'm already asking about their firing policies during an interview, then maybe this is a good way to approach it.

But hearing it come up -- and like this -- during an interview without solicitation just reeks of a toxic environment.
Wikileaks published a similar (earlier?) version just yesterday. The HN Illuminati didn't have much to say about it. https://news.ycombinator.com/item?id=9561854
While true, that doesn't give you license to decide the definition of their statements.
Let's keep front end out of Ruby
Robots.txt is supposed to be public. Its purpose is to recommend not to visit some links (it's only a recommendation). And he did not visit the link itself, he just read the comments (made for humans to read) in a public file, I don't think there is a problem here.
> "... entrepreneurs start businesses with the express purpose to be sold to a large company. That's the goal from day #1."

This is a rather narrow view and is not necessarily true. Plenty of people start companies to solve (or even explore) problems. Liquidity events (M&A, IPO, etc) are not always the end-game.
World’s first Atomic Cross-Chain Transfer completed today
Two very popular apps in Denmark are "Mobilepay" and "Swipp". You download an app and connect it to your bank account (typically by means of a plastic card).

It is extremely easy to make person-person or person-business payments with the apps. You only need to know the phone number of the recipient. The transfer is immediate and the recipient gets a receipt on through his/her app in seconds.

It has become a very popular way to settle smaller amounts between friends, restaurant bills etc. It is actually easier than cash since you do not need small change.
Launch into an existing community
Obama to set new limits on police use of military equipment
We're not ready to put hard numbers on it. As our docs (https://cloud.google.com/compute/docs/instances/preemptible) say:

The probability that Compute Engine will terminate a preemptible instance for a system event is generally low, but may vary from day to day and from zone to zone depending on current conditions.

Give it a shot in us-central1-a and let us know how it goes!

[Edit to undo my quote text (it wrapped poorly)]
No. At school, my teacher said that functional languages needed to have the 4 following features: procedures as data, tail-recursion, closure, garbage collector. There are many other features that define families of functional languages. homoiconicity vs rich syntax. lazy vs strict evaluation. pure vs mutable. static vs dynamic typing. call/cc, macros, ...
How does their pricing compare to ec2 spot instances?
The "six distinct features of a functional language" are misleading/inaccurate:

1. Laziness: Not required. See Lisp, Scheme, ML, OCaml, etc.

2. Functions as first-class citizens: This is probably the only hard and fast requirement.

3. No Side Effects: Not required. Again, see Scheme, ML, and Rust.

4. Static Linking: Certainly not, but the author seems to mean static binding, which is more important. However, a functional language doesn't actually need any binding aside from function invocation (see Lambda Calculus). `Let` bindings are generally available and very useful.

5. No explicit flow control: Function invocation is flow control. Loops aren't functional, but some functional languages have them.

6. No commands/procedures: If the author means "no top-level function definitions" that is clearly not true. Some functional languages even have macro languages.

This article gives the (incorrect) impression that functional programming is about a set of restrictions you must follow 100% of the time. Functional programming is a style that can be used in any language, as long as you can pass functions around as values. It wasn't pretty, but Java <=1.7 could still support a functional programming style by using `Callable` objects.

The `map` and `reduce` operations are certainly possible in imperative languages. Python has them built-in, they can be written in C++, and so on.