location_city Sydney schedule May 23rd 04:20 - 04:50 PM place Green Room people 122 Interested

Git is the most widely used version control tool today, but what is actually happening when we perform a `git add` or a `git commit`? To answer this question I'm going to walk through a small implementation of Git in Haskell. Along the way we'll touch on functional data structures, content-addressable stores, and parser combinators. At the end we'll analyse an entire Git repository and talk about the practical applications and limitations of what we've built. My hope is that this knowledge will help you be less frustrated the next time you see a cryptic Git error message!


Outline/Structure of the Talk

I'll be walking through an IHaskell notebook that implements a fully functional Git API. I'll define parsers and serialisers for the different types of Git objects and bring it all together by parsing an entire repository. I expect to have about 5 minutes for audience questions at the end.

Learning Outcome

Audience members will learn about parsing with Attoparsec, persistent data structures, and serialisation, as well as knowledge about how Git operates and how to use it more effectively.

Target Audience

Git Users

Prerequisites for Attendees

Familiarity with Haskell syntax is desirable but not required, as is forbidden knowledge of cryptic Git error messages.

schedule Submitted 2 years ago

Public Feedback

comment Suggest improvements to the Speaker
  • Dave Thomas
    By Dave Thomas  ~  1 year ago
    reply Reply

    I like these aspects of the submission, and they should be retained:

    • ...I regret that I don't feel this really fits Lambda Jam. 

    I think the submission could be improved by:

    • ...The talk is fine, but seems intended for Haskell hobbyist. Most attendees know Git.   Perhaps I miss the point in which case I defer to the PC
    • Vaibhav Sagar
      By Vaibhav Sagar  ~  1 year ago
      reply Reply

      > I regret that I don't feel this really fits Lambda Jam. 

      Can you elaborate on this please? What aspect of this do you not feel fits Lambda Jam? As it stands this feedback is not useful or actionable.

      > The talk is fine, but seems intended for Haskell hobbyist.

      Yes, and?

      • Dave Thomas
        By Dave Thomas  ~  1 year ago
        reply Reply
        Sorry this was really a comment/question for PC. not used to the new system.  . 

        1. There were discussions in the LJ PC to focus this year CFP on talks which would be useful to intermediate developers using applied FP.  In passing there was also a comment that there should be fewer hobby talks. e.g. I did X in my language just because I could.

        2. It wasn't clear to me what the audience would learn about FP which would help them?  I assume most are familiar with Git. 
        Given the abstract, I wasn't clear what a FP developer would learn?  Clearly, I can see the talk being entertaining. 

        It is very difficult to tell from abstracts what is in a talk, especially the takeaways.
        There is lots of support for your talk.  and I've clearly stated that I support the PC decision

        I hope that clarifies my comment.

        Thanks for your prompt reply.

        YOW! Data May 14-15  Register YOW! Lambda Jam May 21-23  Register 
        YOW! Perth Sept 5-6 Workshops 3-4 Register
        YOW! Singapore Sept 8 Workshops 10-11 Register
        YOW! Hong Kong Sept 15 Workshops 13-14 Register
        Business Agility Conference Sept 24-25 CFP Open
        Dave Thomas | Chairman | YOW! Conferences & DepthFirst Workshops
        Email dave@yowconference.com 
        Mobile +16137994504   

        On Fri, Mar 30, 2018 at 10:11 PM, YOW! Lambda Jam 2018 <info@confengine.com> wrote:
        Dear Dave Thomas,

        Your proposal I Haskell a Git has received a new comment from vaibhav-sagar

        > I regret that I don't feel this really fits Lambda Jam. 

        Can you elaborate on this please? What aspect of this do you not feel fits Lambda Jam? As it stands this feedback is not useful or actionable.

        > The talk is fine, but seems intended for Haskell hobbyist.

        Yes, and?

        Visit https://confengine.com/yow-lambda-jam-2018/proposal/5834#comments to respond to the suggestion OR simply reply to this email (Please make sure, you delete the previous comment's content from the email before replying.)

        YOW! Lambda Jam 2018 Team
        You have received this important update from ConfEngine on behalf of YOW! Lambda Jam 2018.
        Download ConfEngine's Mobile App to totally personalise your conference experience.
        If you are 100% sure, that this email was sent to you by mistake, please click here to unsubscribe from all future email updates from ConfEngine.

        • Vaibhav Sagar
          By Vaibhav Sagar  ~  1 year ago
          reply Reply

          Thanks, that definitely clarifies things and I have no idea how to use this system either :).

  • Liked Andrew McMiddlin

    Andrew McMiddlin - Property-based State Machine Testing

    30 Mins

    Automated testing is key to ensuring the ongoing health and well being of any software project, giving developers and users confidence that their software works as intended. Property based testing is a significant step forward compared to traditional unit tests, exercising code with randomly generated inputs to ensure that key properties hold. However, both of these techniques tend to be used at the level of individual functions. Many important properties of an application only appear at a higher level, and depend on the state of the application under test. The Haskell library hedgehog, a relative newcomer to the property based testing world, includes facilities for property-based state machine testing, giving developers a foundation on which to build these more complicated tests.

    In this talk, Andrew will give you an introduction to state machine property testing using hedgehog.He'll start with a quick refresher on property based testing, followed by a brief introduction to state machines and the sorts of applications they can be used to model. From there, he'll take you on a guided tour of hedgehog's state machine testing facilities. Finally, Andrew will present a series of examples to show off what you can do and hopefully give you enough ideas to start applying this tool to your own projects. The application being tested will be a servant web application, and examples will include testing fundamentals such as content creation and deletion, uniqueness constraints, and authentication.

    An intermediate knowledge of Haskell and familiarity with property based testing will be beneficial,but not essential. The slides and demo application will be available after the talk for people to study in detail.

  • Liked Vaibhav Sagar

    Vaibhav Sagar - Your First Functional Deployment!

    Vaibhav Sagar
    Vaibhav Sagar
    DevOps Engineer
    schedule 1 year ago
    Sold Out!
    90 Mins

    Functional programming is wonderful, but what happens after we're done writing code (functionally) and we need to put it in production? The most popular solution is to write a shell script that manually performs the work of installing dependencies, configuring the target, and running our software. This approach is hopelessly imperative and lacks reproducibility, immutability, and simplicity, things we otherwise take for granted. Can we do better?

    The Nix package manager and ecosystem brings the functional programming approach to bear on the the problems of installing, configuring, maintaining, and upgrading software, and allows your development and operations teams to realise the promise of functional programming to move faster, break nothing, and sleep better at night.

    In this workshop I'll walk you through the process of making your first functional deployment and effectively dealing with change. I hope that after this you will be inspired to take a closer look at Nix and see what it can do for you and your team!