Initial Blog Post


Welcome to my blog. I have wanted to start a blog for a long time, and I finally got the push to do it. Creating this blog was added to my bi-annual performance review at work--if I didn't make this blog, I wouldn't receive a good review at work! It was exactly the push I needed.

I've been playing around with Haskell for about a year and a half, and I'm finally starting to feel comfortable with it. Naturally I decided to write this blog using Haskell. I wanted to learn a web framework in Haskell, so the choices were Happstack, Snap, and Yesod.

I played around with Happstack a little, working through the tutorial and building a short toy blog. I even setup acid-state and started playing around with it. However, Happstack never started feeling right. It seemed slightly hacky. I had only been using Haskell for about a year when I tried Happstack, so it's entirely possible that I just couldn't understand it well enough to feel comfortable with it.


Next I tried Yesod. The community around Yesod seems much bigger than Happstack. There's a published book about Yesod, along with a free version on the Yesod website. The Yesod book is quite long, but it really goes in depth about the framework. The only topic I've been interested in that's not in the book is template Haskell. Yesod uses a lot of template Haskell. I plan to use template Haskell to generate pages for all of my blog posts statically (somewhat similar to Hakyll). However, there is little documentation on Yesod's template Haskell functions, so I will have to research them myself.

Overall, I'm very impressed with Yesod. Yesod is very safe. It's the same feeling one gets when using Haskell. I don't have to worry I'm doing something weird. If I am, my application will just fail to compile.

Snap seems to have a very active community, and I'd like to try using it. My next project may be in Snap.

This Blog

This blog will be about functional programming, category theory, and Linux. Most entries will be about Haskell or Linux, but there will occasionally be entries about things like Vim, Scala, Puppet, etc. I plan on starting to play around with theorem-provers like Agda or Idris, so hopefully I will be able to write up some of the things I learn.

If you would like to contact me, feel free to hit me up using one of the links on the about page.

tags: haskell