Iāve been trying to get @rvirding to write one for a few years now - Iām hoping he might change his mind one day
Have you thought about approaching PragProg? Last time I spoke to @Dave he mentioned they actually translate many of their books to German⦠so who knows maybe Russia is also on their radar
Iād probably read it from the beginning and post an update here once per chapter⦠that way you wonāt miss anything important Itāll help keep you (and the rest of us!) motivated too
@rvirding has a lot of stories to tell and something to share by book I hope. He recently gave an interesting interview (via smartlogic podcast).
Super! It is goo for you. I prefer active reading: āreading + coding + thinkingā circle. Thus, I better perceive new educational material and find my own approaches and solutions.
Yep I am sure he does - I reckon he could provide a really good opinion/insight on Erlang and how it and the BEAM world has been expanding these past few years
Awesome, keep us posted!
PS, I noticed youāve put youāre interested in the #zotonic framework - any particular reason why? (I wonder if we need a dedicated thread to chat about it!)
I think it can be right tool when you would like to develop web app with thick client part (Angular framework). For instance merging Erlang power with Angular. I think it would be useful stack of technologies.
Computer with only a single-core, it can never run a parallel, but it could be possible to run concurrent, because the computer use time-share between the different tasks and give the parallel illusion to run these tasks.
Concurrent program is a program written in a concurrent programming language.
Concurrent Programming Language is a language that has explicit constructs for writing concurrent programs. These constructs are an integral part of the language.
Parallel Computer is a computer that has several processing units(CPUs or Cores) that run at the same time.
PS:Concurrency has to do with software structure; parallelism has to do with hardware.
Module declaration:
Syntax -module(). The first line -module(some_module_name) and should be the same as the filename without the .erl extensions.
Module name, itās written with a small letter.
Module name is an atom.
Public functions:
Syntax -export(). E.g. -export([FunName1/N1, FunName2/N2,]).
The square brackets [...] mean ālist ofā, list of public functions and arity(e.g. /1).
The spawn it is an Erlang most primitive way to create a concurrent process and returns a process identifier(pid).
spawn(ModName, FuncName, [Arg1, Arg2, ..., ArgN])
And with the process identifier, it how to interact with this process.
In Erlang, processes share no memory and can interact only with each other by sending messages. Itās an actor model.
John ! {self(), "Hello World"}
The syntax Pid ! Msg means send the message Msg to the process Pid. The self() argument in the curly brackets identifies the process sending the message.
How to receive messages where are sent?
receive
{From, Message} ->
...
end
Benefits of Concurrency:
Improve performance
running in concurrent and parallel based on the numbers of CPUs the computer had to improve performance. Itās necessarily to write concurrent programs. The sequential code doesnāt fit with a multicore computer to run parallel.
Create scalable
concurrent programs are made from small independent processes, and help to scale easily to increase the number of processes and add more CPUs.
Fault-tolerant
it means processes will run independent, and if any error occur in one process cannot accidentally crash another process, its protect against the failure.
Clarity, be more reliable
use sequential language to write real-world, made things run in parallels more difficult, because it necessarily uses another services and solutions where the language is native support, but Erlang can map the real-world parallelism more clear and easily to understand.
Can anyone explain to me why (page 107) mp3_sync:find_sync(Bin, 1) is called with 1 instead of 0?
Calling it with 0 returns nothing, like no frame was found. But calling it with one, seems to me, that we are gonna skip the first frame on purpose.