Rainer

Rainer

Programming Erlang Book Club

My first contact with Erlang was about 2 years ago when I used RabbitMQ, which is written in Erlang, for my job. This made me curious and I started exploring the world of the BEAM, did some Elixir programming and used Phoenix for side projects.
Finally, the time has come to dig in deeper :slight_smile:

@AstonJ and I will be working our way through Programming Erlang and documenting our progress in this thread - please feel free to join us either by commenting on things you find interesting or by reading it with us! We’d love the company! We’ll try to writ something about each chapture.

Until now I just read the introduction and the “Introducing Concurrency” part, which didn’t contain something particularly new to me, but it was a nice read for the start, and made me keen to work through the next chaptures :smiley:

Most Liked

AstonJ

AstonJ

Whoo hoo! I can’t wait to read this book!

I had actually planned to read it after all of my Elixir/Phoenix books, however I’ve been increasingly curious about the Erlang way and how it differs to the Elixir way. @DevotionGeo’s thread here reignited some of that curiosity and Robert’s posts in the thread then just pushed me to do it!

I also purchased the paper book which is not something I would normally do for a programming book (I prefer reading eBooks on my Kindle and they are of course more environmentally friendly) however I thought having a physical copy of the book might nice, like having a little bit of Joe here :blush:

Speaking of Joe, Like @Rainer I’ve only read the first couple of chapters but I can tell you Joe’s personality shines through very strongly. If you’ve watched any of his talks or interviews, or interacted with him via the forums, twitter or email, it’ll feel like he’s there with you. At least that’s how I feel given what I’ve read so far.

So I’m very excited to read this book and look forward to Rainer’s comments as well as any of yours should any of you join in or comment in the thread yourselves :nerd_face:

Rainer

Rainer

Finished chapter 2 now with the exercise. Good read so far :wink:
@AstonJ how is your solution?

Here’s mine:
Client:

put_file(Server, FileName, FileContent) ->
    Server ! {self(), {put_file, FileName, FileContent}},
    receive
        {Server, Response} -> Response
    end.

Server:

loop(Dir) ->
    receive
        {Client, list_dir} ->
            Client ! {self(), file:list_dir(Dir)};
        {Client, {get_file, File}} ->
            Full = filename:join(Dir, File),
            Client ! {self(), file:read_file(Full)};
        {Client, {put_file, FileName, FileContent}} ->
            Client ! {self(), file:write_file(FileName, FileContent)}
    end,
    loop(Dir).
mafinar

mafinar

Yes.

I could imagine Joe speaking those lines as I was reading the first page :sob:

Such a well introduction, is the rest of the book as enlightening?

Where Next?

Popular Community topics Top

RobertKielty
My overall initial first impressions of this book are very good. I will document my local spacemacs setup to as I work through the book.
New
rustkas
To be a more productive reader when rereading a book, it is very convenient to create small rebar3 projects based on books’ samples and i...
New
mafinar
TL;DR I am reading “Domain Modeling Made Functional” and discussing and keeping a journal of what I learned from it, any co-readers welco...
New
RomanTurner
Agile Web Development with Rails 6 Chapter 11. Task F Currently reading and working through AWDR6 by Sam Ruby, David Bryant Copeland, a...
New
ggarnier
In Aborting Multiple Fetch Requests with One Signal section, the code in abort/abort_ex09.js doesn’t show the downloaded images until Pro...
New
rgerardi
Hello all. Creating this space here for general discussion and chat about Powerful Command-Line Applications In Go In particular, we ca...
New
AstonJ
With Tailwind now the default CSS framework shipped with Phoenix we thought it would be nice to run this book club on the Elixir Forum. ...
New
AstonJ
With AI set to play a big role in our industry Elixir users are lucky to have Nx, so we’re running our Nx related book club on Genetic Al...
New
TomMahon
How did a sleepy valley become the epicenter of the technological world as we know it? In the 40th Anniversary Edition of my book, “Charg...
New
alvinkatojr
https://fs.blog/mental-models/ I’ve been reading Farnham Street for a while, and this topic is the recommended starting point for new re...
New

Other popular topics Top

PragmaticBookshelf
Machine learning can be intimidating, with its reliance on math and algorithms that most programmers don't encounter in their regular wor...
New
AstonJ
Do the test and post your score :nerd_face: :keyboard: If possible, please add info such as the keyboard you’re using, the layout (Qw...
New
PragmaticBookshelf
Tailwind CSS is an exciting new CSS framework that allows you to design your site by composing simple utility classes to create complex e...
New
PragmaticBookshelf
Build efficient applications that exploit the unique benefits of a pure functional language, learning from an engineer who uses Haskell t...
New
PragmaticBookshelf
Author Spotlight Mike Riley @mriley This month, we turn the spotlight on Mike Riley, author of Portable Python Projects. Mike’s book ...
New
husaindevelop
Inside our android webview app, we are trying to paste the copied content from another app eg (notes) using navigator.clipboard.readtext ...
New
PragmaticBookshelf
Develop, deploy, and debug BEAM applications using BEAMOps: a new paradigm that focuses on scalability, fault tolerance, and owning each ...
New
PragmaticBookshelf
Escape callback hell and ship fast, clean code that reads as smoothly as it runs. Squash bugs and stamp out memory leaks with an intuitiv...
New
mindriot
Ok, well here are some thoughts and opinions on some of the ergonomic keyboards I have, I guess like mini review of each that I use enoug...
New
PragmaticBookshelf
Lint your docs like code: turn any style guide into enforceable rules with Vale and publish clear, consistent content every time. ...
New