Not sure what the context of the question is, are you offering services to build custom chatbots? The startup I work for, keatext.ai, happens to need one.
We analyse free-form comments and uses NLP to extract commonly-mentioned problems. Currently users need to log into the app and explore their data in order to discover problems, but it would be much more convenient if we could send the problem descriptions to a slack channel as our AI discovers them. It would be even more convenient if the users could then ask our bot for more details about a problem, such as giving example comments illustrating the problem or listing the customers who are affected. We have the data required to answer those questions, but even though our AI extracts information from free-form text, it's not the kind of AI who can answer free-form questions, so we might need help with that.
I'm a programmer working at an AI startup, http://keatext.ai, but I'm not touching the AI part, so I just want to point out that there are other ways to get in. In my case, I had experience with Haskell, their backend is using Scala, those are both functional languages, and that was good enough!
What? Apart from Sibi Prabakaran who I've never heard of (maybe I only know them by their handle?), everybody else in the list is a high profile, highly-respected member of the community. As far as I can tell from being on /r/haskell during the whole day every day. What kind of trouble did they cause?
That part made me chuckle, because it made me realize that a typing zealot is exactly what I've become! I used to be a huge fan of Ruby and I was using it for everything, and now 10 years later I'm a huge fan of Haskell instead, I give talks about how JavaScript is horribly error-prone and how Elm is so much better because not only is it statically-typed, it's also purely-functional, and yadi-yadi-ya.
The transition occurred so smoothly that I didn't notice it. Beware! You might not be a zealot now, but if you continue on this path, you might unintentionally become one too :)
I understand FRP, but I did not understand this post. What's this philosophical fluff about the ever-changing "now"? The fact that a signal is a value which describes how something changes at all points in time does not mean that there is only one value, or that time is reduced to a single point.
I implemented version of this several years ago, except against human players instead of against an AI, and with randomly-generated levels instead of a succession of harder and harder levels.
It was a semester project where we had to hand in a game satisfying a few basic requirements, and since we were done early we were allowed to add as many extra features as we wanted. One of those features is that whenever you clicked on a unit and ordered it to do something, a log message would show you a ruby command which would do the same. You could then open the console and control your units using arbitrary ruby code, and you could also attach AI scripts to your units.
This was before the era of github, so the source may or may not have been lost to history. I'll update this comment if I manage to find it.
While Haxl is great and is a good example of Haskell usage in the industry, it's not a good example of the usage of formal methods, since functional programming is only the first of the two steps mentioned in the article.
The title of this post made me hope they were looking to hire a "proof engineer", but alas, they're only explaining how to become one. It's already hard enough trying to find a Haskell job, finding one in Isabelle or Agda must be near impossible!
How about adding new elements with lower keys instead of decreasing the existing elements? Then, once we count that more than half of the n elements are duplicates, we could spend O(n log n) operations cleaning up the heap by recreating it.
How can I downvote this post? He uses a non-standard definition with a very obvious flaw, and then proceeds to explain how Kolmogorov complexity is "silly" because it has that flaw.
After reading the title but before reading the article, I was trying to imagine a situation in which anybody might want to fake surprise in a work environment. The only thing I came up with was as a teaching mechanism, as in: "your program is crashing when you divide by zero instead of returning NaN? How strange! Let's investigate together".
I was quite surprised to see that by "feigned surprise", the article actually meant something along the lines of "really, you expected an integer operation to return NaN?". The article does explain why people might say that, but I still have a hard time believing it. Why would anybody want to say that? It's not helpful at all.
I guess I must be lucky never to have worked in the bad working environments described by the article.
If Google is really using that algorithm, then I'm afraid I'm polluting their data. When I am looking for something on Google, I ctrl+click on all the relevant-looking links so they open in new tabs. Since I haven't even read any of the results yet, it is inaccurate to assume that the last link I ctrl+clicked was the most relevant.
I came here to recommend http://lesswrong.com/, but then I saw that you want to become more knowledgable, not smarter. In that case, your current strategy sounds right to me!
Related: I also made a vim-based presentation tool, called git-slides [1]. The main difference between Vimdeck and git-slides is that vimdeck generates slides out of a simpler format (Markdown), while git-slides displays one WYSIWYG slide for each commit in your git history.
While I am flattered that somebody would post one of my repos on Hacker News, any particular reason why the link is to my fork and not to the original repo? ssadler deserves some credit :)
Full disclosure: Brigitte Pientka was my supervisor. I did not work on the compiler, but I did make the language's logo.