Conference Review: BayHac 2014

I recently attended BayHac 2014, the Bay Area Haskell Hackathon, and I wanted to cover some of my impressions from the conference. I’m breaking it down by the days and the things that I attended. There’s a ton more on the event page linked above for those that are interested.

Friday

The hackathon started out with a talk on Pipes by Gabriel Gonzalez and then one on Free Monads by Dan Piponi. Both were excellent. And excellent here means that I think they were both the most lucid explanations of their respective topics that I’ve yet seen.

Gabriel’s talk really helped to solidify my understanding of where pipes sit relative to conduit, the other streaming-data library that I’m familiar with. The emphasis in the pipes talk was on the intuition behind the ListT type and the yield and await functions.

Dan Piponi spoke on free monads (for an introduction to what free monads are useful for, see: Why free monads matter), Free, but not as in beer or speech (video). Check out the video for a really great intro. The talk goes through freeness by moving into free magmas, free monoids, and then free monads.

Saturday

Saturday I was able to attend part of the Yesod class (and I’m already a little familiar with Yesod), so the introduction was mostly things I’ve covered on my own. As an aside, the only class I was scheduled for was the Lens class. BayHac was pretty booked and so classes were randomly assigned based on interest and space.

The lens introduction by Shachaf Ben-Kiki was illuminating. I’ve been reading up on these a lot lately so for me the ground had been prepared in just the right way for me to get a lot out of this. Shachaf moved at a brisk pace, whether through practice or sheer type-signature-fu, he hammered out types and definitions for things like lenses and traversals about as fast as I type prose. This class cleared up a lot of my confusion about why the types for lens work the way that they do. My very hand-wavy summary of this was that viewing with a lens is like having a writer monad “logging” the parts of some structure you’re interested in walking over. But rather than being interested in the value that the writer produces it’s the log that you want.

I also enjoyed the experience reports given at lunch. The IMVU report by Andy Friesen was particularly interesting in how he introduced his company to Haskell.

Sunday

I spent a lot of time on Sunday working on Joe Nelson’s haskell-vim-now one-line Haskell Vim installer. Lots of people were excited about the prospect of having an easy-to-install Vim mode. I think that this has made a lot of progress. If you like Vim and want to do Haskell development, go install it now. If you want to just install it here, run this:

<code class=bash>curl -o - https://raw.githubusercontent.com/begriffs/haskell-vim-now/master/install.sh | bash</code>

But please see the README for keybindings and general tips on use. Also, if there is anything that you’d like to see included or revised, you are invited to submit an issue.

I also spent some time talking with the Snowdrift.coop developers. This is a funding platform that seeks to crowdfund ongoing Free/Libre/Open Source projects. They have a nice intro. The Haskell angle here is that this is a Yesod app: source on Github and on Gitorious.

Summary

BayHac was a great experince! I got to meet with a bunch of people that I had only been following online so far — always a fun experience. It also made me realize I’m in the just write 10,000 lines of code phase of my development. Although, experienced people there assured me that because it’s Haskell, it’s more like 2,500 lines.