Blog

  • Tutorial: Quickcheck for EUnit
    2011-10-31 Erlang Central

    Presentations

    Writing EUnit tests is more common than writing QuickCheck specifications, although QuickCheck specifications potentially explore far more scenarios than manually written unit tests. In particular for implementations that have side-effects, writing a good set of EUnit tests is often difficult and labour intensive. In this tutorial  we explain a mechanism to extract QuickCheck specifications from EUnit test suites. We use the QSM algorithm to infer state machines from sets of positive and neg ...


    Read more


  • Tutorial: Automated inference of state machines with Statechum
    2011-10-31 Erlang Central

    Presentations

    Statechum is a general-purpose tool for state machine inference and test generation. It comes with Erlang front-end to make it possible to "learn" state-transition diagrams from Erlang software, using both exported functions and OTP calls. Given a series of traces (such as those obtained from logs), Statechum attempts to infer a state machine compatible with those traces. This amounts to finding out where loops are but is heuristical in nature because there is usually not enough traces to ...


    Read more


  • Lessons learned – how we use Erlang to analyze millions of messages per day
    2011-09-25 Erlang Central

    Presentations

    At Semiocast, a start-up founded in 2009, we use Erlang since day one to fetch and process millions of tweets and social media conversations. In this talk, we will present lessons we have learned in terms of code deployment, architectural design, Erlang technologies used and integration with native code. In particular, we will cover how we use OTP and code change, the various kinds of drivers (NIF, Linked-In, External, C-node), our usage of HiPE and dialyzer, and a few things we wish we k ...


    Read more


  • Erlang Rationale
    2011-08-28 Erlang Central

    Presentations

    While Erlang has much in common with other functional languages it does many things differently from other languages. In this talk one of the three inventors of Erlang will look at the rationale behind Erlang and try to show how many of its important features combine to work together. We will also look at how Erlang was first developed to show the reason for some of the features in the rationale. ...


    Read more


  • Usually Received, Maybe Late, or Sometimes Dropped: simulating failure in message passing protocols
    2011-06-06 Erlang Central

    Presentations

    Systems in perfect, failure-free environments are boring.  What happens to message passing protocols when CPUs are slow/overloaded, networks fail for 10 seconds (or 10 days), and processes crash?  Systems reacting to failure are *much* more interesting to study and much more difficult to debug in the real world. Scott will discuss a tool built with PropEr and QuickCheck (and perhaps McErlang) to find interesting protocol bugs where it's easy (i.e., on your desktop) instead of where it is ha ...


    Read more


  • “Erlang, huh? Isn’t that Swedish for ‘You’re screwed?'” – Myths and Facts About Erlang and Startups
    2011-06-06 Erlang Central

    Presentations

    Since Basho Technologies was founded back in mid-2007, we have been the recipients of a fair amount of (often unsolicited) advice regarding our business.  No single facet of our business has prompted more commentary than the early decision to build our products using predominantly Erlang.  From hiring to funding to adoption, otherwise smart people have predicted that Erlang would prove to be an Achilles heel for Basho.  Not a single person outside the Erlang community -- with one notable exce ...


    Read more


  • How I found five lurking race conditions in mnesia with 200 lines of QuickCheck code
    2011-06-06 Erlang Central

    Presentations Videos

    Race conditions are among the worst kind of problem to debug: they tend to appear only rarely (and unrepeatably), often arise only in long running cases in production, and leave little evidence of what went wrong. Erlang is not immune to race conditions, despite its excellent support for concurrency, and they can give rise to rare intermittent failures in OTP libraries such as mnesia, the OTP database. Mnesia is known to fail "once every month or two" in production, and race conditions are one l ...


    Read more


  • Page 51 of 55« First...102030...4950515253...Last »

Follow Erlang Central: