1,068 karma · joined January 6, 2012
x <- monadicFunctionA
monadicFunctionB
is rewritten as: monadicFunctionA >>= \x -> monadicFunctionB
The important thing here is that x is just the variable name in an lambda expression that you don't see. Case 2: monadicFunctionA
monadicFunctionB
is rewritten as: monadicFunctionA >> monadicFunctionB
Where >> === >>= \_ ... . Given these rules, you can approximate do-notation like so: monadicFunctionA >>=
\x -> monadicFunctionB >>
monadicFunctionC ...Have you used Gnome 3? Familiar and dated are not words I would use to describe it. The Gnome team is clearly focused on user experience and without rendering judgment as to whether or not they've succeeded (disclosure: I think they largely have), it's immediately obvious to new users of Gnome 3 (see Torvalds for the canonical case) that the product is not clinging tightly to familiar design patterns.
Is that not happening already? From the article: "Tesla's current market value is 250 times higher than it would be if it were being valued as a car manufacturer rather than an idea whose time is about to come." Of course, we're also talking about a company that received a $465 million loan from US taxpayers so it's not like we're hanging him out to dry.
I think the jQuery analogy has some didactic value for understanding combinators, but calling it a monad and falsely asserting that the laws hold is not doing "normal programmers" any favors. In the comments, he analogizes demonstrating the map function to C programmers, but this analogy is false because he clearly understands map and what it's used for but the same cannot be said for his understanding of monads.
For "normal programmers" out there who want to (for whatever reason) learn about monads, my recommendation is to ignore these tutorials and learn Haskell or an equivalent. I learned Haskell specifically to develop an understanding of monads, but what I got out of it was much, much more valuable than just an understanding of monads.
Sure, it's different. It takes getting used to and that's unfortunate (if only they'd gotten it right the first time!). Ultimately, I realize that some people will never like it, and that's reasonable but I hardly think it qualifies as a "train wreck."
Further, I wonder how easily the "recovery partition" can be disabled and how much space a user could recover. How much is OS and how much is "recovery partition"?
I agree that we need to know who he is and what he's done, but it was linked at the bottom of the post, so...
While I doubt very much that this advice is bad per se, it does seem to run counter to the spirit of HN. It's true that there's no inherent tension between pushing the envelope and being successful (read: making money), but I imagine that most of those involved in the startup world are there precisely because making money isn't enough for them.
> Therefore we're faced with a series of decisions, at each number of conversions n, m more turned up A than B (m can, of course, be negative).
which I am not able to parse.
I was very surprised by the quality of the code in the replace.js repo given the vitriol that surrounded it. I'm not a big contributor to open source, but I've recently made some modifications (improvements?) to a Haskell library I use and was planning to make a pull request soon. This event gave me pause. As someone who couldn't tell what was so eye-bleedingly bad about the replace.js code, I was nervous that I would endure a similar fate.
The other thing I've been really surprised by is how much I like using it to write. Now that the stock keyboard has swipe input, I spend about 1 or 2 hours a day writing in Google Docs (err... Drive). To be fair, I was never a particularly fast typist, so I didn't notice the impact to my speed, that others surely would. Still, I don't find the tablet interface to be much of a barrier to getting my thoughts recorded, which was a real surprise.
I don't know why I'm bothering to respond to such a ridiculous and unsubstantiable claim, but there's actual evidence in the form of work product that GNOME cares about UX. It can be found here https://live.gnome.org/Design/Contribute
This is being presented as though the only two choices were "retina" or 1024x768, which is obviously not true. I understand Apple's rationale for using the previous generation's resolution, but it means they shipped a device which is inferior to the competition in at least one measurable way. I'm not a spec-driven purchaser. I don't care that the iPad mini has less RAM or fewer cores than the Nexus 7 (disclosure: I own this). But a tablet's display is a critical part of the experience and I find Apple's decision here to be a let down.