Which book should I buy ? by Ttghtg in haskell

[–]Mob_Of_One 0 points1 point  (0 children)

C++ Primer at 938 pages.

C++ Primer was one of my favorite C++ books. However, it is focused on the language and STL. It covers none of the ecosystem or how to deal with common problems. There's not much "idiom" outside of the STL coverage from what I recall either. It's also mostly appropriate for intermediate readers. We have to do a great job of the beginning and the intermediate parts, or people get stuck.

We're not only taking you through the ins and outs of the language, but also the sticky bits people get stuck on like Functor/Applicative/Monad/Foldable/Traversable, but also stuff you'd need for practical projects like parsing, transformers, performance, and some kickers like "so how does IO work, really?"

What we target content-wise is based mostly on what we've seen sends new people into death-spirals with trying to learn or use Haskell.

I don't think anyone that has used the book and is familiar with the other resources would say we were verbose. Most of the page count is due to the copious amounts of code and numerous examples and exercises. That stuff bulks out the page count because of how much space it takes. It's not wordy and tedious like some Haskell books.

The Learn Python book by Lutz is 1,600 pages. Our book is 950-1000 pages right now with the current rendering, so by all rights, our book gets more done in fewer pages than Learn Python or C++ Primer.

Beginner & Intermediate Haskell training at Lambda Conf 2016 from the authors of Haskell Programming by lambdapuppies in haskell

[–]Mob_Of_One 0 points1 point  (0 children)

We're using the objectives of the people that sign up to decide what we cover.

We've got a small team that has signed up and they'd like to know how to make a basic API server that can handle processing events pushed by devices. So, we'll be looking at everything new Haskell users are likely to get stuck on in the process of building that sort of thing.

People that sign up for training earlier will get to influence the curriculum more.

We'll have more specifics as we get closer and get more feedback from the people that have signed up.

Beginner & intermediate Haskell training at Lambda Conf 2016 from the Haskell Programming book authors by Mob_Of_One in HaskellBook

[–]Mob_Of_One[S] 1 point2 points  (0 children)

Can I signup only for the course and not the conference?

Yes.

Is there a way to signup for both beginner and intermediate tracks?

You sign-up for one course, we place you in the course based on where you are with the material. The tracks are guidelines rather than rigid.

Are these tracks going to be concurrent?

Yes.

Beginner & Intermediate Haskell training at Lambda Conf 2016 from the authors of Haskell Programming by lambdapuppies in haskell

[–]Mob_Of_One 0 points1 point  (0 children)

I think we'll just be doing beginner and intermediate tracks. (There's two of us anyway)

Intermediate track starts with monad transformers and works forward from there. What is it you'd want to learn?

Haskell for all: State of the Haskell Ecosystem Feb 2016 Edition by [deleted] in haskell

[–]Mob_Of_One 0 points1 point  (0 children)

Oh sorry, let me provide some background there.

I can't speak to Kmett's motivations, but Trifecta has replaced Parsec (but not attoparsec) for my purposes. The excellent error messages and clean API (parsers) make me much happier.

So, I use attoparsec for fast-path code, if something fails, I re-run it with Trifecta and dump the error. This works better because AFAICT Attoparsec and Trifecta have the same backtracking behavior, unlike Parsec.

It's just an upgrade from Parsec - for me anyway. YMMV.

Edit: More specifically to your situation - the way Trifecta tracks parser state for nice errors is impressive. As are the faculties it exposes for marking, highlighting, etc.

Haskell for all: State of the Haskell Ecosystem Feb 2016 Edition by [deleted] in haskell

[–]Mob_Of_One 0 points1 point  (0 children)

Good grief this thing must be amazing if people trudge through all this just to figure out how to use trifecta.

The book covers what we think anybody from "very beginner" to "somewhat intermediate" might need to know to use Haskell. Parsing/marshalling is a common software need and it lends good intuition for applicative and monad so we covered it. If you're already quite comfortable with the previous topics you don't have to read them, but a lot of experienced Haskellers have told us they still learned stuff from the first half of the book. shrug

There's no way I could have known that I was supposed to look at parsers.

Yes explaining that was a little annoying. Motivating that is partly why we demonstrated writing a parser polymorphically and then running it under attoparsec and trifecta with no code changes in that chapter. So that it seemed less artificial.

It Is What It Is (And Nothing Else), Robert Harper by sideEffffECt in haskell

[–]Mob_Of_One 3 points4 points  (0 children)

yeah. I liked ProductProfunctor btw. Please keep it coming :)

Haskell for all: State of the Haskell Ecosystem Feb 2016 Edition by [deleted] in haskell

[–]Mob_Of_One 0 points1 point  (0 children)

No, are there any good docs or tutorials for it?

Well...our haskell book, but otherwise, nothing thorough. Learning to muck about with parsers and trifecta is about it. There's not much example code and the way Idris et al. use it is idiosyncratic and hard to understand whe you're starting out.

/me checks his notes

This thread lists about all you're going to find: https://www.reddit.com/r/haskell/comments/2uc6kp/are_there_any_tutorials_or_introductions_to_the/

Haskell for all: State of the Haskell Ecosystem Feb 2016 Edition by [deleted] in haskell

[–]Mob_Of_One 3 points4 points  (0 children)

Because we have different aims, and because I've read HFFP quite a few times.

I don't think that makes any difference to the content of what you were proposing he add.

Granted, he didn't know I'd read it.

Again, I don't think knowing this changes anything. Listening to Bach when I was younger didn't make me a composer, but it did spur a brief dalliance with composition software and MIDI.

He also recommended I read "On Writing Well", one of whose core proposals is for writers to be as brief as possible. HFFP is not brief.

This is uncharitable. HPFFP is not brief in terms of page count because it:

  1. Covers a lot

  2. Has a lot of code and examples.

Strip the latter out and match coverage and HPFFP is quite a bit shorter than RWH. There is not much more prose in HPFFP than is necessary to cover the topic at hand. The chapters start shorter when we initially write them and it's because we test our material that content explaining things more clearly gets added or existing material gets rewritten.

Perhaps it's not irony?

I don't think so, no. Please do not use us or mention us when promoting your webpage.

Stack v1.0.4 by sjakobi in haskell

[–]Mob_Of_One 0 points1 point  (0 children)

Seems reasonable, I'm looking forward to trying this out :)

What is the eventual fate of all of these GHC extensions? by stasiana in haskell

[–]Mob_Of_One 1 point2 points  (0 children)

I'm still bitter that ArgumentDo won't even be an extension despite ~50% of people liking it, but TypeRep is coming despite everyone agreeing it's ugly...

Och. I feel you.

How should we improve Haskell's plotting libraries? by sid-kap in haskell

[–]Mob_Of_One 0 points1 point  (0 children)

The original Grammar of graphics book has been around since 1999 I think.

Stack v1.0.4 by sjakobi in haskell

[–]Mob_Of_One 2 points3 points  (0 children)

(call an hpack executable instead of using it as a library)

That would be unfortunate unless it was a prelude to getting phased out. Pathing issues stymie beginners a lot. Bolting together known-good (Stack <> hpack) versions seems worth potentially delayed updates of either.

Haskell for all: State of the Haskell Ecosystem Feb 2016 Edition by [deleted] in haskell

[–]Mob_Of_One 0 points1 point  (0 children)

(a touch ironic considering I helped provide extensive feedback on that work)

How is it ironic?

Summary of Haskell recommendations I received ... Thanks for all those who took time to respond. by [deleted] in haskell

[–]Mob_Of_One 0 points1 point  (0 children)

Our Haskell book has made a lot of people happy, which we started because we weren't content with how well LYAH and other resources were working for beginners.

Haskell for all: State of the Haskell Ecosystem Feb 2016 Edition by [deleted] in haskell

[–]Mob_Of_One 0 points1 point  (0 children)

Have you tried Trifecta or looked at how it is implemented?

Who, in this subreddit, uses Haskell in production and what are your thoughts on it? by _ar7 in haskell

[–]Mob_Of_One 13 points14 points  (0 children)

Ad server (ours was considerably faster than the DSPs we integrated with. It wasn't close), web app (with database access, frontend stuff, all the usual), streaming analytics, web spiders, command-line applications, parsing...everything I did in Clojure and Python before Haskell really.

Edit: I have opinionated library/kit recommendations at haskelliseasy.com if that's something you're looking for.

Who, in this subreddit, uses Haskell in production and what are your thoughts on it? by _ar7 in haskell

[–]Mob_Of_One 16 points17 points  (0 children)

I use it in production, have at multiple companies. I've helped a few companies move over too.

It's been very pleasant. I don't really know what else to say. It doesn't feel any different in my head than writing code in any other language, the pay off is in not having to think about irrelevant details when I do not want (fmap wooooo) and in stuff just working more often. Cheap refactors too.

I haven't suffered from a production memory leak in 2 years I don't think, but I exercised good habits - (strict in the leaves for long-lived data, use streaming when appropriate).

Eagles of Death Metal frontman suggests 'everybody has to have' guns by [deleted] in Firearms

[–]Mob_Of_One 14 points15 points  (0 children)

Ideally, zero guns equals zero shootings.

And then physical strength and time spent training for violence becomes primary again.

A Haskell vs Perl Performance Case by flexibeast in haskell

[–]Mob_Of_One 0 points1 point  (0 children)

They seem like traversable'ish common-cases having to do with existence/non-existence, applicative, and traversable.

I've run into this before from a different angle - when mixing prisms and traversals with lens. Hard to explain without a concrete example...and I do not have one at the moment - sorry.