August 13th, 2008 by Bryan O'Sullivan
After a few weeks of silence, here is an update on our recent progress and current work.
We have spent the past few weeks editing chapters in response to the comments of our beta readers. Thanks to everyone who has provided feedback. We have now revised about three quarters of the book’s chapters, with the remainder to come over the next week or so.
As for writing, we have just finished the chapter about Haskell’s foreign function interface. If time permits, we’ll post that tonight, and perhaps update the existing chapters to reflect the changes we have been making.
Once the current editing pass is done, we still have two late chapters left to write. The entire manuscript should be drafted by the end of this month.
On the production side, several of our early chapters are proceeding through O’Reilly’s copy editing department. It will still be several weeks before we can give a reasonable estimate of the book’s availability.
July 16th, 2008 by Bryan O'Sullivan
(Update 2008-07-17: Everything is back up.)
The server that’s hosting the beta content is misbehaving mysteriously, and is currently down. When it comes back up, I’ll rescue a fresh backup of the comments from it and move the whole lot to a more stable host.
July 16th, 2008 by Bryan O'Sullivan
John and I will be in Portland, Oregon next week for OSCON. I’ll be giving a Haskell overview talk on Thursday at 17:20, but I’ll be around for a few days before and after.
Our co-author, Don, actually lives in Portland. If you are based in Portland or visiting OSCON, and you’d be interested in meeting up for a chat with us about the book or other things functional, leave a comment or drop one of us a line.
July 8th, 2008 by John Goerzen
I’m happy to announce that several booksellers now have Real World Haskell available for pre-order.
Here are some handy links:
Barnes and Noble
And finally… that handsome cover (visible at Amazon) features a rhinoceros beetle
July 3rd, 2008 by John Goerzen
We are in the final stages of getting this book ready for the production process at O’Reilly. We’re going through all the remaining feedback right now, and also getting the last few chapters ready to post.
This is the last call for comments on all chapters posted to the beta site
. Once we complete this final pass, it will be too late to incorporate any changes suggested by new comments into the book.
The last three chapters will be coming along soon, and we’ll make sure to let you know about them.
Thank you again for all your insightful feedback (and even debates in the comment system). I’ve got to say that some of my favorite moments as an author of this book have been when I pull up a page, see a paragraph, and see something like “25 comments” under it — and those comments expand into a debate about what exactly I should have done right there. Or perhaps a discussion about how OCaml does it — you never know. You all rock.
June 22nd, 2008 by Bryan O'Sullivan
Summer reading season is upon us in the Northern Hemisphere, and we at Real World Haskell Global Headquarters are sensitive to the needs of our readers for some challenging entertainment. To keep your mind limber while your body relaxes at the beach, we present drafts of ten more chapters.
As always, we rely on your diligent reading to spot mistakes, oversights, and offer clarifications. We’ve received almost 5,600 comments on the drafts we have published so far, and they have been simply wonderful in their variety and thoughtfulness. We’re looking forward to what you have to say about this latest batch of chapters. Thanks!
And now for a note about the publication schedule. If you look at our table of contents, we have just three chapters left to finish off. I’m about to spend a few weeks in the Spanish Pyrenees without a laptop or internet connection. Since I’m on the hook for one of those chapters, the rough date by which we should have all of the draft chapters written should thus be the beginning of August.
After that, we’ll spend some time going over your comments, and we’ll update the published drafts with new content as the book starts to go through the production sausage factory. If you are hoping a copy of “Real World Haskell” in your Christmas stocking, I’m pretty sure (at least for now) that we’ll be able to oblige you.
June 20th, 2008 by Bryan O'Sullivan
Actually, Keith published the footage a while ago, but I forgot to post a link here. So here it is.
The talk went extremely well; thanks again to Alex Payne for hosting it and to Keith Fahlgren for setting it up. I spoke for 45 minutes, took questions for 15 with the camera still rolling, and then answered questions for another 75 minutes after the camera was shut off. The amount of interest from the audience blew me away. Whew!
(Incidentally, there’s a bug in the description I gave of the seq function. My description of its purpose was correct, but I gave an example that doesn’t actually cause it to do anything. Oops!)
June 10th, 2008 by Bryan O'Sullivan
Thanks to Kathleen Fisher and Peter Thiemann, the recorded sessions from last year’s Commercial Users of Functional Programming are now up in conveniently viewable form on Google Video.
This year’s CUFP
will be held on September 26, 2008 in Victoria, Canada (registration is not yet open). I hope to see you there!
May 12th, 2008 by Bryan O'Sullivan
We received a number of great submissions within hours of posting our request for suggestions for a library to develop bindings for in the FFI chapter. Thanks to everyone who contributed.
After looking over the alternatives, we’ve decided to use PCRE as the example. Even though there already exist useful bindings to PCRE, it’s still a good choice for teaching about the FFI, for a number of solid reasons.
- It’s small: its header file is only 300 lines long, and contains plenty of comments. We can thus cover its API almost completely, giving a thorough picture of how to build useful bindings.
- There’s no doubt that it’s both useful and portable.
- Its C API requires that users allocate and free objects manually. We can thus demonstrate how to eliminate the need to manually track objects in the Haskell bindings, through the use of finalisers.
- We can start off simply, with bindings to Haskell’s String type, and then show how to improve performance by using ByteStrings.
- It provides a callback facility, so we demonstrate inversion of control: not only how to call C from Haskell, but how to call Haskell code from C.
For teaching purposes, that’s a pretty compelling set of features. Thanks once more to those who submitted their ideas!
May 12th, 2008 by Bryan O'Sullivan
Update 2008-05-12: We’ve decided to go with PCRE. Thanks for all of your suggestions!
We’re about to start on one of our last chapters, on using Haskell’s foreign function interface (FFI). We’re currently kicking around candidate C libraries that we can use as examples to write bindings for.
So far, we’ve thought about PCRE and sqlite: each is small, widely used, and portable to Linux, OS X, and Windows. On the slightly negative side, there already exist Haskell bindings for each (in fact, PCRE has three different libraries with bindings to it).
If you’d like to suggest some other library that meets the criteria of a small API, an open source license, portability to the three major platforms, and general niftiness, please leave us a comment with your idea. Thanks!