Fetching the latest programs, projects, and workspace data.
From distributed systems, to robust servers and language design on the Erlang VM
Showing 5 of 19 projects. Click any project card for scope, mentors, and proposal studio.
Mentors: Student: Tallys Martins
<p>ElixirBench platform is a proof of concept that already showed its value, the key deliverable is to bring it up and running for nightly performance monitoring for significant Elixir projects. Given a project in the Github, it will be possible to activate the benchmark service and to automatically monitor the performance of the new released versions by setting up a bench/config.yml file and the benchmark scripts to be run for that project.</p>
Mentors: Student: Jakub Janarek
<p>Make a BarrelDB client in idiomatic Elixir with its tests and documentation. The project scope depending on the progress done may also involve:</p> <ul> <li>creating a client-enforced schema and document changeset similar to the one in Ecto</li> <li>writing an aggregation framework for the client . creating a GraphQL API for BarrelDB</li> <li>adding a statistics and health service</li> <li>supporting rate limiting and throttling</li> </ul>
Mentors: Student: njichev
<h5>Project Description</h5> <p><a href="https://github.com/whatyouhide/stream_data" target="_blank">StreamData</a> is a library that adds data generation and property-based testing to Elixir. The goal of this project is to read <code>@type</code> declarations from BEAM code and automatically get generators out of them. Once that is done, we should use this information to automatically validate <code>@spec</code> annotations with data generators.</p> <h6>Goal 1 - Getting data generators out of <code>@types</code></h6> <p>First part - Provide a simple way to generate all simple types(int, atom, all, etc.). Maybe a way to compose different generators and getting new ones would be useful for union/all types.</p> <p>Second part - generators for recursive/recursively dependant/parameterized types which will be a greater challenge.</p> <h6>Goal 2 - Automatically validate function <code>@specs</code></h6> <p>If we have a function spec, we can automatically feed the function it's arguments and check that the result always belongs to the return type of the function.</p> <p>To check whether a result belong to the correct type generator, we should probably extend the StreamData struct to include a member function as a field. We would check whether different types belong to a data through it.</p>
Mentors: Student: Anshuman Chhabra
<p>Currently, there is a lack of machine learning tools and frameworks for Elixir. With the number of programmers learning/using machine learning only set to grow, supporting machine learning capabilities is <em>essential</em> for any programming language. Moreover, there are discussions on elixirforum.com regarding this and recent talks given at ElixirConf that reflect the need for Elixir to provide machine learning capabilities. I thus propose to work on <em>Tensorflex</em>, an Elixir framework similar to <em>Keras</em> (for Python). Keras uses <em>Tensorflow</em> as a backend for doing all the ML. Using Native Implemented Functions (NIF) and the Tensorflow C API as a backend, a low-level wrapper will be written in Elixir. This low-level API will then be used to write a Keras-like framework in the form of a high-level API. This will allow Elixir developers to write expedient and efficient machine learning code in Elixir.</p>
Mentors: Student: Gabriel Gatu
<p>Dialyzer is a discrepancy analyzer that ships as part of the Erlang VM. There are two projects that adds Dialyzer support to Elixir applications: dialyxir and dialyzex. The goal of this project is to bring the ideas of both projects with two main new features: better usability (in particular, better error messages and formatting) and the ability to dialyze projects incrementally.</p>