Erlang Code Katas

hello mike

Do all of the following in order and document the process in blog posts

General Development

  • Set up a new Project using rebar
  • Set up a new project using the intellij plugin + rebar project system
  • Create a rebarised makefile (see here for example)
  • Do the same using erlang.mk
  • Build a new Project for release
  • Build a new version of a Project for release updating the project without taking it offline
  • Set up a solution with several projects
  • Create a project using Agner for package management
  • Create a loosely coupled project using Agner for internal package management
  • Deploy different projects in different ways
  • Create CI server for an Erlang project using Jenkins
  • Create a project where the components are constructed using Dependency Injection
  • Create a project that uses an OTP service, then add dialyzer checks to the build process.

Process Orientation

  • Create a new process and send a message to it
  • Create an OTP service and communicate with it
  • Create a spec of the messages into and out of the service
  • Create an OTP state machine and send messages to it

Unit Testing

  • Create a TDD project using Common Test
  • Create a TDD project using EUnit
  • Create a TDD project using Proper
  • Create a project with multiple components and test it using Common Test and Meck

Distributed Systems

  • Create a project that starts several nodes and links them
  • Set up a distributed project to startup in an orderly way
  • Create a service and start it running on another machine/node

Data Persistence

  • Create an ETS data store and store tasks in it
  • Create a DETS store from a working ETS system
  • Create an Mnesia project from a working DETS store
  • Create an Mnesia store that spans several nodes
  • Create an in-memory Mnesia store from a working ETS store
  • Create a MongoDB data store and store tasks in it
  • Create a MongoDB store from an existing Mnesia store
  • open an XML document from disk and store in an ETS store
  • store an Erlang term in an XML document on disk
  • Create a redis cache, and send data from an OTP service to it using message pack

Web Development

  • Create a static site using inets
  • Create a static site using YAWS
  • Create an FTP{ site using Erlang
  • Secure access to a static inets site using HTTPS
  • Secure access to a static YAWS site using HTTPS
  • Create a dynamic site serving a single page using inets
  • Create a dynamic site serving a single page using cowboy
  • Create a dynamic site serving a single page using YAWS
  • Create a RESTful API service JSON using jsx and leptus

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s