skysight-inc/HackerNews huggingface dataset:
a and b don't actually matter, because what matters is how the function is called. If given some `f :: Monad m => m -> m`, then you can only call f with IO as the monad from an already impure context. For example, you can't call f with IO from inside a function (g :: a -> b).

The purpose of IO in Haskell is to explicitly mark side effects, because they cannot be arbitrarily composed in the way pure functions can. IO represents a one-way boundary in that you can turn some pure computation into an impure one (a -> IO a), but there is no way of "extracting" that computation back from IO (i.e, there exist no (IO a -> a)). That "monads" are used to do this is useful because they provide the (a -> IO a), and happen to have a convenient function for chaining computations (IO a -> (a -> IO b) -> IO b).

How IO is defined is up to the implementation, and not in the scope of the language - different implementations could use a different representation for IO - what matters is that it must be defined in a way that one cannot define an (IO a -> a).

On "a Haskell program is a giant expression that reduces to an object of type IO", this is really nothing to do with Haskell, but a consequence of how we've built our operating systems and how the defacto meaning of "program" these days is equivalent to an "executable file". Traditionally "program" was much more abstract and could refer simply to any piece of code, such as a (pure) haskell function. We can consider any Haskell function to be a "program" in itself. If we had an environment from which we launched processes which provided all the command line switches and environment variables as arguments, we could easily omit the "IO" from our "main", if the rest of our code was pure. (On a side note, this is precisely what early versions of Haskell did, before monadic IO became practical)
Hah, the idea here is kind of cool but watching an unending stream of startup landing pages sounds like a form of torture.

Finally, (solution to problem that doesn't exist) for (people like you/engineers like you) who know (what matters/what counts).
Passwords should usually not be encrypted. Saying a password is encrypted implies that there is a decryption function that can produce the original password in plaintext. This should not be the case. Instead, typically, a key derivation function like bcrypt, scrypt, etc. is applied. The output of these are sometimes referred to as "password hashes" because like hashes they are not reversible.
When Edsger Dijkstra pronounced Program testing can be used to show the presence of bugs, but never to show their absence! had your Pa met your Ma?
What a great idea that I'll never ever use as it will just kill all productivity :)

Imagine working on a project, need to Google something and suddenly it's 1,5 hours later and you're reading up on some random framework you've never used and certainly don't need for your current project because this cool startup that popped up in your new tab gave you another great idea and and and...
Love it. Works for me in Chrome (Version 35.0.1916.153 to be precise)

Only downside: it's basically the browser equivalent of remembering you have to get your keys from the bedroom, going upstairs to get them, forgetting why you went back to your room in the first place, picking up the copy of Wired on your nightstand, heading out, and getting to the office only to realise you forgot your keys.
I really don't think the Facebook login is a barrier. Most people have it, and your audience is probably not privacy-anxious hackers but rather happy-go-lucky social media users. I wouldn't bother too much about it.

Adding other social logins, though, would be a good idea. And Github is now an id provider, so why not integrate that? Surely the startup community would feel less blocked by this :)
At my first start-up job in San Francisco, I questioned the non-compete and no-moonlighting clauses. My manager looked sheepish and said, "well, we can't really enforce them in California anyway."
No, I'm right, because people smarter than me have said it.

Wow. Just... wow. Seriously? No! The expression problem can be solved in Haskell in a straightforward manner using type classes[0].

You know, there's a reason for why Akka's actors, a library built for a fairly static and expressive language (Scala), are dynamically typed. Try finding out why that is.

Because Scala is a crappy, broken language built out of compromises with the JVM? Take a look at Haskell's distributed-process[1] library. It solves the problem that Akka punted on (namely type-safe serialization of function closures).

[0] http://paulkoerbitz.de/posts/Solving-the-Expression-Problem-...

[1] http://hackage.haskell.org/package/distributed-process
Specially since some companies were writing OS in Mesa, PL/I and Algol variants with success.
Quite right for many computing tasks OO is pointless and adds extra overhead and complexity.

Today a lot of IT is still take a set of inputs perform some operation on it and output it.
Any specific examples?

The patterns I know of, e.g Gamma/Beck/etc "Design Patterns" are pragmatic and useful solutions to common architectural problems.

And no, they are not "only for languages without first class support for some features", as some think. Or, actually, some of them are, others are useful regardless of language. Heck, a lot of them came from Smalltalk, a language which is expressivity wise miles ahead compared to "modern" languages like Go or Java).

That some people abuse them is not an inherent problem in them. Other people abuse macros, or gotos, or functions (the 100000 line function monstronsity) etc.
Supporting multiple devices is a hard problem. We worked for a long time to enable it. Not Bitcoin protocol specific, but some words about our asymmetric key based multi-device solution here; https://www.mepin.com/lost-device/
The Engineer on a Mission to Save the World From Buggy Software
Yes, my mistake. I meant hashed.
Thread (YC S12) London, UK is hiring full-stack engineers
Unions could be mis-used that way. Like anything, they could also be misused in any way. The point of a Union is to protect employees from employers period. It is not to limit their own membership by restricting entry into a field nor to be a front for the mob nor to eat babies.

Licensure is also a good idea. Of course no legislature will ever pass it nor any company ever honor it with out the clout of very large tech worker organization.

More practical but less honorable would be an organization that fiercely funds large numbers of tech worker lobbyist since that is the only way the system actually works now. Also, since much of their lobbing would align with tech company interests, it would not be crushed with the same zeal.
don't lump us all in the same boat please. Face it, some programmers out there go practically orgasmic when they get accepted or even interviewed by some companies that they end all critical thinking and sign on the dotted line.

Similar to the smoker who buys a pack of smokes and ignores the warning on the side; that will never happen to ME, yet turns and buys the lottery ticket thinking happy days are right around the corner.
>the best science available today shows a very strong correlation between cholesterol and CAD.

True, but can you show me a study that shows that reduction or increase in cholesterol levels is correlated with improvement or escalation of CAD?

There's a correlation between having a penis and baldness, but it doesn't necessarily follow that castrating yourself will cause your hair to grow back.
Notice how the very definition you give of the Expression Problem has the constraint of "retaining static type safety"?

It doesn't care about dynamic solutions, and they don't capture as much information anyway. Of course you can express anything in a dynamic fashion, in the end assembly is untyped too.

So, if those indeed were "people smarter than you", you didn't understand what they were saying.
I applied, but I've not been sent an invite yet.
Commenting on news site which shows IP address from work after some incident where IP got banned for a while for some comment. Problem is simple google search with IP and the site in question shows all the comments you wrote "anonymously" from work and it may cause problems.

Also TOR is heavily used by shills in same sites (namely Russian ones), so it's not too uncommon to stumble upon IP that is already banned.
Akka has to expose the actor registry, has to handle network connectivity issues and scalability issues, which means messages have to go through actors posing as proxies and routers; and actors may be dynamically created - and also because of the async model, actors can and must change/adapt their interface asynchronously, like when doing back-pressure and waiting for acknowledgement that a message was received on the other end, during which there can be no progress, as in "context.become", fundamental for the actor model - which actually renders static typing useless.

Saying that Haskell's distributed-process solves the problems that Akka is solving is short-sighted and wrong. But then again, the main reason for why Haskell hasn't attracted me has nothing to do with technicalities and everything to do with a vocal minority of Haskell users that I find totally repulsive.
If it's not specified in the contract exactly how much extra I'm getting payed for these clauses I'm not getting payed for them.

So contracts should have to be itemized? "$150/month for attending meetings, $300/month for writing code, $50/month for reading your email"?

You have a set of obligations on one side, and a number of compensations (salary, perks, etc) on the other. The latter is the payment for the former.

Not to mention clauses like non competes should be extremely expensive since their tying your hands for a significant amount of time. I sincerely doubt their paying enough extra for all the classes you see in a regular American contract.

Isn't that for the candidate to decide?

If each one actually had a well determined price tag you would see most of the unnecessary ones disappear really quickly in an attempt by the companies to save money.

Or maybe they'd just lower the regular salary to end up with the same value.
How is this different/better than SSH?
The Science of Mental Time Travel
Samsung releasing SSD 850 Pro.
Uh? Where did I write that? Why are you making up what I wrote?

I guess your assumptions are in line with the OOP programming style... ;-)

You can make a rat's nest of any coding paradigm, however I would argue it is easier to do it with OOP.
Neither do I. Still no invitation yet.
Just use Scala, and you'll get to love object oriented combined with immutability and functional programming.
Latency is a problem for me. Maybe for some users, who already have very slow internet, or who live in areas with more TOR relays, it is not so noticeable, but for me the speed difference is about 10 times. Mostly not because TOR would be unbearably slow (it is not slower than regular internet 8 years ago), but because regular internet is very fast where I live.
Why not? You have certain obligations (writing code, attending meetings, respecting non-compete clauses), and you are paid to fulfill them.
This is with the new government mandated opt-out censorship enabled (except AAISP, who don't offer it) - if that is disabled, most blocked sites would be accessible, except that sites with 'adult content' are still blocked by default on mobile networks (EE, O2, Three), which is an account setting with age verification to enable.
Russia Moves To Ban Online Services That Don’t Store Personal Data In Russia
The existence of the Expression Problem is orthogonal to whether or not types promote modularity or not. In fact it has a type-safe solution. I recommend reading through the original post Wadler wrote to get a better sense of what it is saying: http://homepages.inf.ed.ac.uk/wadler/papers/expression/expre...

(There is also a link at the bottom of the Wikipedia article you linked to.)
So... Hacker News?
Does anyone know how such clauses apply in the EU?
I have to disagree, science is not inconsistent. Science, more precisely natural science, is in the business of building models of our world and if the model is any good it is consistent with our world. Some models are precise to 10 digits, some models only describe the behavior of a school of fish on average. If a theory is found to disagree with reality it will get modified or maybe get abandoned and this is no problem because natural science never claims to provide any truth but only a good model of our world that may have to change in the future.

Religion is similar in the regard that it provides a model of our world but a very poor model under scientific standards like verifiability, predictability and falsifiability. While science constantly challenges its own results and even methods religion is far, far more in the eternal truth corner.

Finally mathematics is a very different thing and comparing it with physics or religion may be misleading. Like religion but unlike natural science mathematics is in the eternal truth business but unlike religion and natural science it is not in the describing the world business. Mathematics is used to describe the world but does not so on its own. And things like Gödel's incompleteness theorems are not a weakness of mathematics but a strength - knowing in principal limits is something that seems completely out of reach for everything but mathematics.
I certainly don't hate women. I also think this Tinder-CEO sounds like a jerk. I just can't stand it if people jump to conclusions and form a mob without even bothering to listen to both sides of the story. And the way people don't even consider the implications of what they are saying. Like if they complain that somebody behaves like an insecure teenager - what does that mean, really? Should they be banned from ever holding a job? Should a squat team be called in to take him out, or perhaps a lynch mob of volunteers recruited on HN? People are only human. And here there was a relationship involved. Maybe people on HN just lack experience?

And I am tired of the sexism sob story. I think the opposite is the case, really. People are falling over themselves to hire and to please women.

Being opposed to feminism is not "hating women" or being against equality. I am opposed to feminism because I think they hurt both men and women and they got their story completely wrong. Feminism has nothing to do with equality whatsoever.

Edit: OK, I'd really like to know: please show me one sentence that seems to show I hate women. Or what makes you think that I hate women?
You still get comments which, while unlikely (because they would have to have the second "enabling" character) will confuse a diffscuss parser.

I still think allowing for a state of "perfectly legal diff that would have to be altered to allow for diffscuss parsing" is a tough sell...
Unions could be mis-used that way. Like anything, they could also be misused in any way. The point of a Union is to protect employees from employers period. It is not to limit their own membership by restricting entry into a field nor to be a front for the mob nor to eat babies.

When you're in a country where you have to get a license to braid hair, design interiors or manicure, you can't dismiss it as some exception that can be ignored.

Licensure is also a good idea.

Sure, if you're already in the industry, it's great. Lots of money to be made by keeping out those who can't afford to jump through the hoops. It's not like poor people really deserve to be programmers anyway.
There are lots and lots of companies, and 50% of the population are women. I am pretty sure there are some companies that aren't sexist.
Great job: making Git work outside it's familiar environment is a headache, but such an important problem to solve. It looks like they are some point on the way to doing it with Wordpress, so all the props to them. Keep on keeping on and don't let the naysayers get you down!
The older I get, and the more I watch and help programmers (including programming myself), the more I believe this is an OO/mutability problem.

We created OO, at least the C++ version, in part as a way to create boxes of code -- a reusable module system. But what happened was that we created a huge stinking pile of mutability and hidden dependencies. If I'm looking at a method in an object that takes one parameter, I literally have no freaking idea what the current state of the object is, what the current state of the parameter is or might be (and let's assume the parameter is itself an object or graph of objects). In fact, it's impossible for me to reason about what the hell I'm looking at. That's why we are forced to use the debugger so much.

Pure FP takes that all away. I have data going in, I do a transform, I have data going out. If my data is clean and my transforms are broken down enough to be understandable? It just works.

We keep trying to bolt on solutions like TDD to a fundamentally flawed model of development. Damn, I hate to say that, because I love OOA/D/P. I'm not giving it up, but my current programming practices consist of using OCAML/F# and pure functions to begin with, then "Scaling up" to objects as systems get more mature. If I've got a big closure, I'm probably looking at an object. So far I've found that scaling up is not necessary. I get more mileage from composing my functions into command-line executables, a la unix, than I do sticking everything together. But that could change.

It's right to be discouraged. There's something deeply wrong here. A big change is coming to software development.
"it's never that black/white."

Exactly - that is exactly what I am trying to say... I just can't stand the mob mentality on here.
ArangoDB 2.2 released
Thanks for the tip, and I feel your pain in being blocked. Does the Open Rights Group have any advice on what to do in this case? I wonder if there's a reasonably low cost/effort legal avenue you could pursue against BT?

My feeling is that bad blocking behaviour can be challenged if we make it expensive enough for them to make mistakes like this, so we (and affected organisations with bigger budgets) should do everything we can to make their lives difficult.

Paul
Ambient background noise and video generator
Why this is awesome: a fabulous background noise/video generator for improving the performance on creative tasks by prompting abstract thinking.
Tips: How to create powerful presentations
Unemployed, about to turn 60, sometimes wondering if I've retired and just don't know it yet. Used to do embedded programming for EFTPOS terminals, medical equipment and air traffic control systems. Currently doing post production on my mum's audiobook.
Serving the Inner City
An entire island nation is preparing to evacuate to Fiji
‘Cypherpunks’: Julian Assange on the future of the Internet
$10 the UK drops any investigation as the US Department of Defense was behind the research:

http://www.zerohedge.com/news/2014-07-01/was-department-defense-behind-facebook%E2%80%99s-controversial-manipulation-study
The Pacific’s Salmon Are Back – Thank Human Ingenuity
He exposed his email address containing his name as a contact email for silkroad business, so he pretty much gave himself in. With that kind of "attention to details", I wouldn't be surprised if he even had misconfigured TOR.
In my country non-compete agreements are only legal if there's a specified, concrete compensation for them. (E.g.: you're not allowed to go to a competitor for 9 months, but if you leave or if you're laid out then you're entitled for 9 months pay or 'gardening leave'). If there is no clause like this in the contract, then it's illegal.
Sony says only natural disaster could keep TVs in red this year
JSON for Humans
I love the idea, but I would never get any work done if I would see an interesting startup each time I opened a tab.
I agree that FP will not be the solution to all problems just like OO wasn't, but what FP does is it forces the developer to think hard in every situation. There are fewer shortcuts that can lead to broken abstractions and hard to find errors.

On the other hand, with OO you are always just a few more lines of code away from shipping. It's popular because it provides easy abstractions over data (rather than operations), but as we all know it causes unnecessary coupling and broken abstractions if you aren't careful. Imperative programming (not just OO) presents a lot of problems for concurrency, which is perhaps the biggest problem in the coming decade.

OO can be done right, but when it is, it's just as "hard" as FP. In fact, a lot of good OO code is functional in nature.

What is tempting about FP is that it will make programming hard enough that bad programs won't ship. Is proponents of FP think that programming should be hard. That it should require a lot of thought up front, for every line of code.

In a good lang and framework, a complete program is a good program. This idea is likely not very welcome in an industry where deadlines are always more important than quality.
I just learned that one of my personal sites is blocked on BT and TalkTalk... there is zero adult or other inappropriate content on it. Time to complain, I guess, but I'm sure they will just go straight to /dev/null :(
Well yes, using cars for urban transport is a bad habit that we should never have got into, and we should now be trying to get out of. But it's logistically and politically impossible to get rid of all cars overnight. There are a number of things we can do to cut down on car usage. Self-driving is something we can do to cut down on the fatality rate per car. Each of these is a partial solution. Partial solutions are complementary, not exclusive.
I watched rally for a few years, but lost interest after Loeb won his third straight WC. There was absolutely no suspense, everyone knew Loeb would win most of the rallies barring the winter courses.

As for Women's football, there's a reason it's not really appreciated and that is the fact that the skill level is significantly lower. Far fewer women play, which results in less competition and less highly talented individuals. Another problem is that the goals are sized for men, while the women keepers statistically speaking are smaller and can cover a smaller area, which means it's far easier to score with cheap shots. It all makes for rather dull spectating, sadly.
this is a massive problem with all kinds of CMS including Drupal which we are using often. Drupal 8 is introducing configuration management, i.e. saving database configuration in yaml files which makes them "gittable". I hope wordpress and other CMS will also adopt this or a similar way.
At least it's a proof that GCC is smart enough to understand and compile this condition :)
In france, non-compete clauses are legal, but if the company decide to enforce it they have to pay you 50% of your salary. I think it's a good balance.
http://www.jetbrains.com/resharper/features/code_refactoring...

http://www.jetbrains.com/idea/features/refactoring.html
Akka will have typed actor support in future versions. There are obvious reasons why a direct port of code that was originally written for an untyped language (Erlang) would be written in an untyped way.
Microsoft joins Qualcomm in bid to establish Internet of Things standards
has anyone ordered from knoxlabs.com? they seem to be selling it as well.
But the diffscuss modes parse the comments into functional structures--threads--to decide where to insert replies, etc., which is in fact functional--just not functional for the diff part.

Here's another way to think about it:

It sounds exciting to think that "all legal diffscuss files are also legal diff files!" In fact, very few diffscuss files will be used as diff files, and those that are can be trivially transformed.

It's not awesome on the other hand if "not all legal diff files are legal diffscuss files," which is where piggybacking on the diff comment syntax gets you, because every diffscuss file starts its life as a pure diff file and there's no way to transform an offensive (but legal) diff file into a legal diffscuss file without data loss.