Scotty and MapReduce

  • Nov 20, 2013 · 6:30 PM

RESTful Web Services with Haskell - Andrew Farmer

This talk will introduce Scotty, a Haskell-hosted Domain-Specific Language for declaratively specifying RESTful web services. Scotty is modeled on the popular Ruby web framework, Sinatra, but takes advantage of Haskell's type system to help the user write code that is both more correct and more concise. We'll overview the Scotty API, its implementation, and use it to define some simple web services. We'll highlight the advantages provided by the type system and compare Scotty to other major Haskell web frameworks. Anyone interested in following the code examples is encouraged to 'cabal install scotty' prior to the talk.

About the Speaker

Andrew Farmer is a Ph.D. Student at the University of Kansas. He is interested in programming language design in general, and specifically the compilation and optimization of functional languages. Prior to returning to graduate school, Andrew spent five years in industry designing web frameworks in various languages. In addition to creating Scotty, Andrew works on HERMIT, a toolkit for interacting with the Glasgow Haskell Compiler's optimizer. When he's not staring at a screen, you can find him on a bike or climbing things.

Thinking in Map Reduce - Ryan Brush

MapReduce reflects the essence of scalable processing: split a big problem into lots of parts, process them in parallel, and then merge the results. Yet this model is at odds with how we’ve thought about computing for most of history, where we center our applications on long­lived stores of mutable data and incrementally apply change. This talk starts with the basics of MapReduce and design patterns to apply it effectively. We then look at how Cerner is using MapReduce to solve problems in health care, and at emerging opportunities to solve previously unapproachable problem across many industries.

About the Speaker

Ryan is a Distinguished Engineer with Cerner. He has built infrastructure for healthcare systems over the past decade, with a recent emphasis on making sense of huge and complex data sets and applying that to real problems in healthcare.  Ryan has spoken at Strata + Hadoop World, ApacheCon, and StampedeCon. He also dabbles in writing, with contributions to the book 97 Things Every Programmer Should Know and on Cerner's engineering blog as well as his personal blog.

New Attendees

Welcome!  This is an easy meetup to get involved with.  There are no functional programming experience expectations or prerequisites of any kind, though some talks are more advanced than others.  These events are generally well suited to help infuse functional programming ideas into an existing programming skill set.

Location Details

The address is 4210 Shawnee Mission Parkway, Suite 400A.

C2FO offices are on the top floor of the same building in which Fairway, KS City Hall is located.  This building is right behind Stroud's restaurant and LLKC attendees should be able to gain entry from any door.  If anyone has trouble getting in just call Pete's cell at[masked]-1545.

Additional Notes

Pizza will be provided, so come hungry! 

Join or login to comment.

  • Jason B.

    Holy cow, thanks Pete. I know from experience putting that sort of thing together is a big undertaking.

    November 24, 2013

  • A former member
    A former member

    November 23, 2013

  • A former member
    A former member

    Hi Again LLKC - Andrew Farmer's talk "RESTful Web Services with Haskell" is now available as an mp4 video (slides+audio) at Since a fair amount of interactive content is in the mix, timestamps for certain topics are provided below. Enjoy!

    - 01m42s: HERMIT
    - 04m36s: DrRacket approach vs. web app
    - 07m39s: basically COMET server, serving JSON packets
    - 09m00s: does anyone still use Sinatra?
    - 10m39s: absence of features is a feature
    - 11m57s: Hello world!
    - 16m07s: type system to the rescue
    - 16m36s: say Sinatra, for instance...
    - 18m57s: needing to annotate types
    - 20m07s: type classes use unification
    - 21m36s: goal is thin web interface to Haskell
    - 24m31s: type classes (e.g., "Parsable")
    - 26m40s: HTTPD benchmarks w/huge grains of salt
    - 28m45s: power of abstractions vs. 50k lines of C
    - 31m30s: finding epoll bugs in Linux kernel
    - 35m33s: the mythical Andy Gill
    - 38m32s: lots of us
    - 39m23s: blank-canvas

    November 23, 2013

  • A former member
    A former member

    Hi All, Ryan Brush said it was OK to post a links to his presentation so there they are: - slides only: - slides+audio in an mp4-encoded movie:

    We're working on getting similar content published for Andrew Farmer's talk and will update here when that's done.

    Have a good weekend.

    1 · November 22, 2013

  • Jacob Landon S.

    One question I forgot to ask, was clarification on DSL. It seemed like the speaker was talking as if you could create a language in Haskell. My question is do you mean like libraries. Or do you mean defining the grammar in real or compile time?

    November 21, 2013

    • A former member
      A former member

      There are lots of interesting research problems related to deep DSLs... the ability to observe sharing (aliasing on the heap), the ability to reify functions (that is, capture a function in the host language such that you can generate code for it in the target language), staging (which parts of the computation do you run in the host language (code generation time) and which parts are run in the target language?), the ability to observe control flow (reifying monads or conditionals). The story in Haskell is getting pretty good in many of these respects. The Sunroof Javascript DSL represents a combination of most of the state-of-the-art techniques.

      1 · November 21, 2013

    • Jacob Landon S.

      Cool! Thanks for the info.

      November 22, 2013

  • A former member
    A former member

    New gotomeeting credentials with no password required, apologies in advance for tonight's lo-fi approach: Go to[masked]

    November 20, 2013

  • Michael

    Unfortunately, I'm going to have to miss this one. Hopefully the recordings work and I can catch up later.

    November 20, 2013

  • A former member
    A former member

    Hi Folks - Really hope all of you can make it in person but for those who can't the plan is to fire up a GoToMeeting line around 6:20PM Central, share the screen, try and get the camera to behave, and use the record feature to capture the talks: Dial +1 (805)[masked] Access Code:[masked] Password to join conference is the 4-digit year Lorenzo Church Developed the lambda calculus or you can send me an SMS text and I'll text it back to you. GoToMeeting is not a stateful monad so, no guarantees. If the conf call id needs to mutate for any reason I'll post it here as a follow-up. Thanks!

    1 · November 20, 2013

  • Patrick D.

    Can't make it this time... will these be recorded?

    November 18, 2013

    • Jason B.

      Still unsure Patrick, but if so I will send out a link to the recordings. Hope to catch you at the next one!

      November 18, 2013

  • Jacob Landon S.

    Wow. Definitely need to make this one. MapReduce seems easy enough, but I am still having difficulty grasping the full concept.

    November 14, 2013

  • David E.

    Would have enjoyed the presentations, but I have another obligation that evening.

    November 4, 2013

People in this
Meetup are also in:

Create your own Meetup Group

Get started Learn more

I'm surpris ed by the level of growth I've seen since becoming an organizer, it's given me more confidence in my abilities.

Katie, started NYC ICO

Sign up

Meetup members, Log in

By clicking "Sign up" or "Sign up using Facebook", you confirm that you accept our Terms of Service & Privacy Policy