jamhed (jamhed) wrote,

Erlang user conference notes, translated.

Jonas Boner, author of Akka

Talks a lot about reliability, resiliency but doesn't say how, instead
of it shows nice pictures with meercats, Conway's game of life and so on.
Let us split the system to number of interacting agents, and let them
interact. All states should be known, unknown states should not exist (hard to argue).
How to know all states is unknown though. Converging promises and diverging commands.

Kenneth Lundin, OTP 20 highlights

A lot of improvements: garbage collector, binary parts, unicode aroms, better maps, ets,
and so on. Failed to split OTP as planned, however work is going on. See the changelog,
release is planned at 21 of June.

Jesper L. Andersen, GraphQL in Erlang


GraphQL allows a client to declare what it wants from sever. What is possible is described
by schema, schema is compiiled and checked server-side. Query interpretation takes microseconds,
most of load is to fetch data from storages. Each schema type is represented by Eralng module
with known API. Types in GraphQL and types theory relation (positive/negative types),
this is not emphasized in GraphQL docs. Author wrote a lenghtly tutorial.

Paweł Antemijczuk и Maarten Faddegon, Anti-Patterns in the Wild

How write a bad code in Erlang. Same old story: don't write huge functions, don't
use huge state, don't nest case clauses. They fear to use Erlando in production
due to maintenance concerns, they tried and failed Wrangler (steep learning curve,
unclear results, don't like Emacs). To sum up: it is impossible to refactor
Erlang code automatically and semi-automaticcally at the moment and nearest future.
Write tests instead.

Mark Allen, Sagas in Erlang: Distributed Transactions Without Locks

For the reason unknown declared a left fold operation a transaction (it is not),
distributed in fact not so distributed, and so on. Why to talk about this
is unclear.

Peer Stritzinger, Fixing Erlang’s Distribution Protocol

They tried to use Erlang on microcomputers for industrial automation
and then discovered that Erlang distribution protocol is broken by design:
1. full-mesh networking model
2. messages are processed sequentally, and one huge can block whole queue
3. primitive security model
Because of that they want to fix the protocol, however how he described
the fix looks more or less like TCP/IP stack itself but over the node links
(which are TCP already). Weird.

Peter Van Roy, Ditching the Data Center: How to Stop Worrying and Love the Edge

This time truly distributed computations over unreliable network. Nodes know
about each other with Gossip family of protocols, all calculations should be
with CRDT. At the moment CRDT have limited use, but where they could be used
then use cases are good. They are doing research, have funding till 2020,
and plans till 2050. Impressive. The idea is to write programs as expressions
over CRDT, sort of map: A -> B, and there is a special language lasp.

Kostis Sagonas, Adventures in Corfu: Testing and Verifying Chain Repair Protocols using Concuerror

Started with some Greece advertisement, however continued: they have a tool to test
concurrency in Erlang by building all possible message sequence combinations, and
trying all of them. If a program fails under this test then there is certainly a
bug, and if program doesn't fail, then there are no bugs (with high probability).
All possible cases could be tried, but it takes time. There are some ways to
speed up process, and plans how to make it parallel. One unexpected use case:
Scott Lystig Fritchie who works on CorfuDB discovered a bug in distribution protocol,
but concuerror discovered a bug in suggested fix to previous bug. This was
achieved by modelling protocol with Erlang entities (processes, messages).
Very interesting.

Justin Schneck, Keynote: The Demarcation of the Edge of Innovation

Talks about dependencies, food recepies, all are doing something,
everything depends on everything, and so on. They took Linux kernel,
and Erlang, and made it run on Raspberri Pi, and then called it a platform.
Was unable to stand this marketing bullshit and left.

Andrea Leopardi, Update from the Elixir Core Team

Elixir is stable and evolving, planned release is 1.5, good
interaction with OTP team, built-in property tester, and so on.

Clara Benac Earle, Building Distributed and Robust Multi-Agent Systems (MAS)

Talks about agents with beliefs, goals and logic. Some people describe those
agents using special language Jason, JVM targeted. Speakers were able to
translate this language to BEAM and are very happy. Robustness and distribution
are inherited from BEAM, sort of.

Loïc Hoguin, A Tale of 2.0 Cowboys

Soon Cowboy 2.0 will be released with HTTP/2 support and better architecture.
Used maps everywhere, better process management, gen_statem. Handlers
could return list of commands. Rewrote whole documentation in php-style
(one function per page), wrote a lot of tests for specs, a lot of work.
Cowboy 1.x is a part of RabbitMQ, and other his projects. Has plans
to write REST framework, nobody are doing REST correctly. Much sponsors
left past two years, has no money because of that.

Claudia Doppioslash, Building Single Page Web Applications with Purescript and Erlang

Rewrote the app from Elm to Purescript (last year talk was about Elm). Elm is not good
enough (simple types, one true architecture). Purescript has rich type system,
and could be compiled to Erlang. They are using BERT between client and server
due to encoding/decoding server-side is much quickier than JSON. How Erlang is related
to this project is completely unclear.

Adam Lindberg, Robotics and Sensors Using Erlang on Embedded Systems with GRiSP

Developed a custom atmel-based board with rich periphery (wifi, usb, gpio, i2c, spi, uart, 1-wire),
and managed to run RTEMS with BEAM on it. This allows to use Erlang to manage and program
the device. Erlang used is outdated (16.x), they have plans to update it alongside with
build process. Selling price is 180 euro, intended use case is industrial automation.
Unclear though why is this better than Orange Pi ($10 with delivery) with Armbian and Erlang.

Joe Armstrong и Sam Aaron, Distributed Jamming and Composition with Sonic Pi and Erlang

A stand-up comedy show. Joe Armstrong discovered MIDI, and is eager to share this knowledge
with broad audience. Suddenly MIDI has messages, and you can exchange them over network.
Sam Aaron demonstrated how his Sonic Pi works. Here we have a program to generate sounds,
how cool it is. Also you can have effects. Logic Pro is written by idiots.
How Erlang is related, again?

Tags: p
  • Post a new comment


    default userpic

    Your reply will be screened

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.