skysight-inc/HackerNews huggingface dataset:
This has nothing to do with laziness, because laziness does not affect the semantics of a program that has bounded recursion. [0]

The problem is that the quoted part of the article is written as if the >>= operator had side-effects (whether lazy or not), and that's just plain false.

Now I agree that ordinarily, a student of Haskell has learned very early on that There Are No Side-Effects in Haskell, and should therefore not be confused. However, introductions to monads typically start out by stating that monads are how you can get side-effects in Haskell, and so they explicitly "deactivate" the No Side-Effects-assumption that students have. That's what causes the confusion.

(In fact, the moment I finally understood monads was precisely when I realized that a useful way of thinking about it is that Haskell code with monads does not have side-effects after all. This is totally obvious in hindsight, but it seems that the best way to get this point across in teaching material has yet to be found.)

[0] Obviously, this is only true in a side-effect-free language, but we're talking about Haskell here...
Office 365 is a good alternative if you use Windows.
They had warned that there were updates happening last week; I think this is the after-effect of that.
It's a perfectly viable option to use both.

It makes sense to choose one as your primary to meet your workflows, but having both means work can continue when one has an outage.

You can even automate pushing/updating commits to whichever you choose to be the secondary.

(Or of course you can setup your own git server for a third backup in case the internet explodes).
Did this guy seriously use the American Dream as a reason not to hate him?
A firm going bankrupt due to a bad code/config? Do you have a link to the article you're referring to? Sounds interesting...
Please note that this is pretty much how you model Haskell programs as well: Keep as much of your logic as possible in pure code and interface/drive that with imperatively written stateful code. Purely functional languages (e.g. Haskell) do not remove your ability to code imperatively, they rather augment it so that you can better reason with it while doing it. Things like first class IO actions (that you can pass around) and explicitly marked state (i.e it's clear what you have in context and what you don't) make for some pretty satisfying solutions you wow yourself with.

It is common to hear in the Haskell community remarks like "Haskell is the best imperative language I've used."
For instance, in Haskell a value is a value. If I have a value of type Integer then it definitely exists; if I want to say that it might not exist then I use the type "Maybe Integer", which expresses that idea precisely.

Same goes for a value of type Employee; if I might or might not have an Employee (for instance, if the lookup function doesn't find someone with that employee number) then I have to use Maybe Employee.

Scala has the same concept with (IIRC) the Option type. But Scala also inherits null references from Java. In Java a reference to an Employee might be an optional value (so null is allowed) or it might be a required value (so null is not allowed). Scala has to play well with Java so anything has to be allowed to be a null reference. Except that Integers in Java (and hence Scala) aren't references, so I can't have a null reference to an Integer.

So now my "Option Employee" might wind up being a null reference to the Option, or it might be an Option that is empty, or it might be an Option that contains a null reference to the Employee, or it might actually have an Employee in it.

Gahh.
There's numerous mobile phone apps that do this for women. https://itunes.apple.com/us/app/pink-pad-period-tracker-free... I thought to make one for men for just the reasons you described but it seemed a little too.. unethical.

Especially since women's vocal range is affected by their cycle. I thought to use DSP to help determine their cycle and facilitate pregnancy or help avoid it. It turns out getting the proper audio baseline for the vocal range of women is tough and they'd be saying weird words into their phone daily.
I doubt they are pushing new configuration at 6am on a Sunday morning.
The problem is that the languages don't limit the side effects; they leave that to the programmer.
> I'm not a mathematician (I got a B in my GCSE Maths for Christ's sake) and now I have to implement code that works out the solar irradiation using tilt, latitude, solar_declination, a dozen look up tables, some hairy trigonometry

Same here, I got a B at GCSE maths. When I was 23 I enrolled for maths A level at the local college, I got an A. 16 years is too young to assess someones potential.
Businesses Must Connect To People For Real Success
$400 million down the drain

http://dougseven.com/2014/04/17/knightmare-a-devops-cautiona...
>Yes, people use languages with solid theoretical foundations less because they perceive them to be extreme. That was my point.

At some point it stops beings the people's problem and its a problem of the language?

Or do we know (by divine intuition?) that those languages are perfect, and we don't need any stinking reality to verify it?
Here's one from a year ago - FPV system with QuadCopter, commercialised because people were asking for 'affordable' versions: http://www.youtube.com/watch?v=aWPrf4pw6V8

It's not Oculus Rift based, but it is FPV flight.

Slightly off toic, NB. You need to also be a bit careful with flying regulations, as radio controlled aircraft are still regulated. In the UK for example, flying an FPV radio controlled aircraft can't be done on your own, you must have a competent observer keeping it in line of sight at all times and watching for risk of collisions, so no flying it behind buildings or hills. You must also not fly within 50 meters of any building or vehicle you don't own, or above any congested or crowded area, or takeoff/land within 50 meters of other people. So where you say "experience flight in their neighbourhood" - they might not be allowed to:

http://www.fpvuk.org/fpv-law/

http://www.caa.co.uk/docs/33/ORS4%20number%20956.pdf
Would it be possible to use three color lasers, and create full-color images?

On a second thought, that would probably require variable brightness, or being fast enough so you can move slower on regions you want to appear more bright...
I doubted that Github would push new (bad) production code mid-day unannounced, and it still happened. To be fair, Github I think pushes new production code several times a day every day?
> Its an example of the "blub paradox": if you haven't used a pure functional language then its hard to see what the problem is.

Well, if a problem is so hard to see, maybe the solution to it is not all that important...

Like I said in another comment, I certainly believe that handling shared mutable state is a problem, but I certainly don't think pure functional programming is the only solution (in fact, I don't think it's a solution at all).
I can't substantiate this, but my sense is that the generation of general-purpose, non-academic programming languages C++ lowered the barrier to writing software in the industrial context (think VB.Net, etc.). This can be seen as a good thing in these business contexts, but for those who are driven to be deeper and more concise in their problem solving, and are interested in solving more challenging problems, are only starting to realize that we've not been expecting enough out of our languages and compilers. Furthermore, the last two decades of software tool development have gained "lowest common denominator" accessibility at the cost of "dumbing down" the ways we generalists think about and solve problems. The first thing that picking up Scala did for me was realize I was expecting way too little from the compilers I use. Why should I be figuring out what the damn type of a value should be (while not throwing out types all together)!?!

Since Meijer is as an employee of Microsoft I'd extrapolate to say he's heavily influenced in his experience of the "average programmer" by the primary clients of his company.
This idea has two components and maybe it already exists. First a social network/virtual gallery for visual artists (designers, photographers, etc) to post their work. Second a browser plugin that 'knows' where ads are placed on popular free sites and overlaps a frame that randomly showcases the artists work (click to see more or click to edit preferences)
I think you're missing the point. Whether or not we're talking about C is a detail, what is more important is that the lessons we learn need to be encapsulated and encoded into procedures that everyone can apply and learn from.

Equivalent mistakes can be made in any language powerful enough to do real work. Off-by-one, behaving inappropriately on parameters outside those expected, lots of things can go wrong in any language. Capturing your knowledge in a form that can be used for testing is the idea, and that seems to be missing entirely from computing.
This show has a lot of the best aspects of Cow and Chicken, The Powerpuff Girls and Dexter's Lab. Some episodes have a very similar vibe to Samurai Jack. I don't know if it surpasses the entire roster, but it's certainly as good as some of the best.
A reference to Knight Capital Group, most likely.
Shameless plug for a research project going on at my school: https://priv.io/ can replace most social networks you can think of in a decentralized, private, encrypted manner.

I'm not personally involved in the project.
Indeed. Consider:

Nothing >>= \a -> f a

Here, there is no "a" and there never will be, and I could even annotate the type of "a" with something which can never be inhabited (such as Void).
I recently found out that my Math professor has an Erdos number of 2, there's got to a way to co-author something there in the far future!
Bold claims and strong language do not make up for a lack of citations. You prefer static typing because you admit it is the only hope you have of understanding your complex code. However you dismiss other peoples' preferences by claiming they are ignorant of the systems they are building. Are you, perhaps, the one true Scotsman?
Interesting thought. How would this insurance plan work? monthly payment to Twitter for API insurance, and if their API goes down just a financial payout? This doesn't really make me whole again as my business is still impacted.
I'm fairly certain I have a finite Erdos number, but it sure is a pain to find it. Someone with more free time than I should make a list of famous contemporary computer scientists by research area and their Erdos number! It would be a lot of help.

EDIT: it seems my computational geometry professor, Bernard Chazelle, has an E-B number of 5. Too bad I do not have any papers authored with him.
in my personal experience bitbucket is much reliable than github, I don't know its uptime though..
It would normally be almost boring, but the timing made it very interesting...

We had a cloud deployment system that was also responsible for configuring Nagios instances. The two processes (Java and Python) that were responsible for the Nagios configuration communicated over XMPP. The Java process could only be restarted once a week because we guaranteed a certain uptime to our customers.

One day I decided to refactor the way it worked, and this entailed a change to the api. I began with the Java code, but when I got to the Python parts, more important work came up so I left my code in a branch and forgot all about it. When the next release came up a coworker started to merge all the new features into the new release branch. He asked if he could merge my stuff, and as I had just finished some new features in another branch I said yes. Two days later the new half-refactored, untested and very scary Java code was live in production without my knowledge.

An hour after the release the first alerts of nagios syncing problems came in. We scratched our heads and soon discovered that we had merged too much. Now we had to choose: roll back or roll forward. To roll back we had to take down the application, restore a backup, synchronize a lot of other connected applications. After checking whether the Java code that was in production now actually worked and spit out sensible messages (it did, surprisingly) I decided to try and create the rest of the Python implementation right away.

So with my headphones on and a big NO sign on the door I started programming and created what would normally take one or two days in just over an hour, including the release to production. The good news was that we had had no customer downtime of the Java process and now had a much cleaner Nagios configuration system, the only bad thing was that the alerting system had been down for about 2 hours.

The situation was pretty fucked up ;)
I find it funny to hear such grandiose claims about a language that can has yet to create a major killer project. That's why I can never bring myself to write Haskell. Show me the Storm, OTP, Datomic, Netflix, Whatsapp, etc. written in Haskell and perhaps I'll have a reason to change my mind. But until then all I see is C#, Scala, Erlang and Clojure shipping awesome products and the Haskell guys sitting in the corner saying "You're not doing it right!!!"
Ah, you mean client memory bloat, not transfer bloat (i.e. pageload time). That part was not very clear at all.

You still need a nontrivial runtime (a la PNaCl) if you're going to provide the sort of sandboxing guarantees for the code people want for code that runs without explicit user opt-in. Or is that a non-goal in your case? In that case, I'd like to understand the problem you're trying to solve, since it sounds different from the one JavaScript in web browsers is solving.

I agree that things like asm.js have a performance hit compared to just running an unsafe binary blob. So does PNaCl (though the hit there is different from the asm.js hit: it has somewhat faster steady-state, but worse startup performance). Again, if you're not talking about something that has the same safety guarantees as JS and PNaCl you're comparing apples to oranges.
I can see two different types of scenario where this would happen. One is where the staff actually are interested in what you want to buy for a reason, the other where they have been told to make conversation.

I go to a kayak shop and I can have a genuinely interesting conversation with the guy over designs and why certain ones would suit certain types of paddler, or river. Someone I have never met before, but we share a common passion.

Then again, when I have visited the States, then it seems to be the opposite. You go to any restaurant, the waiter wants to know your name, tell you his, asks if you are having a nice day. It just comes across as false / and fishing for tips (IMHO its crazy that a rich country like the States has such a backward system for compensating employees baked into its culture).
I agree with you in general about 'mostly functional' being a sweet spot, but I think there's also lots of room for pure functions and immutability in ui programming without bending over backward too much.

For example, rather than creating a big oo hierarchy to model a ui, you can describe it declaratively as immutable data, then transform it with chains of pure and semi-pure functions whose only ultimate side effects are updating whatever bits of state absolutely must be held onto (ideally not much) and rendering the ui. I think that qualifies as 'mostly functional' even though it's not totally pure and doesn't use monads or other advanced constructs.

I haven't yet toyed with react.js, but I believe it takes an approach similar to this.
At some level, DDG does this already.
Building a fully functional connection-oriented transport layer protocol. Looking back it was not even that big of a deal, but my first serious project as a student. Not even close to the complexity of TCP, but it implemented all the basic features, including state of the art ARQ and rudimentary congestion control (TCP Reno). After about 2 months working on it EVERY DAY (an so many sleepless nights), I remember I almost cried when it first passed all the tests.
It's an obviously silly exaggeration: what, did MacLISP, Scheme or Standard ML not exist? It's not as if Erik Meijer has the excuse of never having heard of them...
> Learn Haskell properly and then see for yourself why "hybrids" are a waste of time.

/rant

Getting tired of puritans. You people are selling functional programming on the basis of "ideology", not merits.

Can the following be done in Haskell ?

* A Real Operating System.

* GPU programming.

* Embedded programming.

* If you can do all the above, can you replace Verilog ?

* Financial Programming.

Ocaml is one of the "hybrids". Genetically impure,
since it has "refs". But they have Jane Street.

* Games worth playing.

assertion : If all the haskell programmers are put in
a gulag, they can't come up with a half-decent
game.

Nintendo Gameboy Games were written in assembly with
goto's.

Why don't you guys take a moment and pat yourselves on
the back ? Hypocrisy-2.0 is probably in the hackage.

Let's say you do all the above, GUI apps, distributed computing, <cool-buzz-word> ... without complains and ending up as a half-decent C++ or 1/10th lisp.

Haskell syntax is garbage.

(Common Lisp has a goto, gee what were they thinking ?)

Mathematicians pride themselves in their rich history of syntax.

Haskellers actually type "Arrow".

"I do consider assignment statements and pointer variables to be among computer science's most valuable treasures."

-- Only an Idiot could say that.
It is a stretch, but it is all in good fun: my bacon number is 3 (I played Tara O'Reilly's husband (uncredited) in Shout it Out) and my Erdos number is 3 (I co-wrote a paper for the TeX User's Group journal with Michael Doob). Total Erdos-Bacon number: 6
An open source proxy server used for libraries to use so they can give access to the paid restricted-access databases and other websites available only to certain patrons. Most types of libraries (especially college and public) have resources they pay for and require users to authenticate in order to access. There's currently not a nice easy to use FOSS solution for this.
A simple Bash script with Git submodules satisfies all those criteria, other than the fact that it should be a separate tool! Feel free to steal ideas from my script if you want to build your own tool: https://github.com/aclissold/dotfiles

I thought about how it should look when I do a fresh install:

sudo apt-get install vim zsh git
git clone my repo into .dotfiles
cd .dotfiles
./update.sh

and I'm right back to where I was. :). The script differentiates between Mac OS X and Linux, and running git pull followed by update.sh also syncs any changes I may have made on another machine to the current one.
Wow! Bookmarking that one. What a great cautionary tale both for developers and devops. I may well need to use that as a teaching aide. Though a security principle, I cannot tell you how many times I have to point of the need for defense in depth in the design of software.
Really cool idea. I wonder how hard it would be to initially populate the database using existing sources (Wikipedia/http://www.freebase.com/) and some AI.
There are a lot, and it is possible that new ones can make inroads.

But there are a number of good open source or free vulnerability scanners. Skipfish from lcamtuf is extremely fast. Burp from Portswigger, which seems to do very well in head-to-head comparisons has a free version. It is very actively developed and has a very large feature set.

Here is a comparison chart of scanners: http://www.sectoolmarket.com/price-and-feature-comparison-of...

A lot of thought would have to go into what features does the market feel are missing, and how difficult is it go get the coverage needed.
I guess mines was back when I used to do reverse engineering. It was when I was able to patch VRay rendering system for 3dstudio max. At the time vray had all nasty checks that would rendering artifacts randomly. Once you thing it was patch correctly it would mutate on you and produce watermarks or just a black screen.Not to mention if not patch correctly the person information that leaked it could of been recovered. For me this was a pretty big accomplishment when I was around 15-16, fun times.
Fundamentals and Experiments of Line Scan Camera (2011)
"I would like to know ... why manufacturers phased out 4:3 displays?"

There are no "monitors" made anymore just HDTVs. Sometimes real small ones in laptops.
Possibly linked to this migration: http://blog.bitbucket.org/2014/04/22/were-migrating-reposito...

??
I believe I covered most of your complaint with the "if you have children..." part. I personally spent more time at the office at times so their Mom could be a full time Mom. Then at other times, I didn't.

I don't think economics has any hope of covering anything like joy. Microeconomics can show little sociological vignettes of the ... "Freakonomics" variety.

Utility is a roughly ... shadow variable which is inferred to explain certain things. There's no real agreement on whether or not it's even ordinal. Econ is fascinating, but it's a crippled discipline relative to many other more liberal arts and even sociology proper.

But back to "the sharing economy" - how is this not substituting electronic means to replace (roughly) telephone-based systems like hotels/motels or taxi service?

My personal heresy is that monetary policy has been abused ( towards deflation ) , and that this is what is driving this substitution. In the US, there's been a 2% growth target and we've failed to meet even that.

http://www.interfluidity.com/v2/3212.html

Nobody seems to actually understand inflation.
Check out https://www.kifi.com. Nearly everything you mention is out there or is on the near-term roadmap. We'd love feedback, I help build it.
Sounds to me like you want the knowledge of a Technician, and NOT the knowledge of an Engineer. For a technician's knowledge, pick up a robotics book for hobbyists, and that will get you started.

[Please note that I REALLY want to encourage you to follow an engineering path. The rewards will be amazing. See my list at the bottom on how to do that.]

Also, you need to ask yourself what you'll be using the Arduino and RasPi for. In particular, what types of applications? Power electronics/motor drives? Communications electronics? Audio amplifiers? Active filters? You want to use op-amps? Are you doing analog signal processing? Digital signal processing? Feedback control systems? Are you interfacing to an FPGA or PLD? etc.

The moral of the story is: Electronics is a HUGE area.

If you really want to fully understand electronics, please take the following courses IN ORDER:

1. Differential Calculus

2. Integral Calculus

3. Multivariable Calculus

4. Differential Equations

5. Circuits I (1st and 2nd-order circuits, and higher)

6. Electromagnetics (from Physics II is enough)

7. Analog Electronics (Active filters, etc.)

8. Digital Electronics (VLSI, etc.)

9. Digital Logic (Boolean algebra, computer architecture, etc.)

10. Power Electronics (Rectifiers, inverters, etc.)

Before you know it, you'll be an expert.

Good luck!
Ah, I thought they did (at least the CPU architecture, not down to the actual transistors/atoms). Wouldn't a full blown VM which also needs to run the OS have more over head than Wine though?
You are asking a specific legal question. You must (must!) pose it to a lawyer. Most lawyers offer a free consultation. Go right now and set one up. This is not something you want to be wrong about because you trusted some Internet forum comment.