Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Elixir, Erlang, i visoko dostupni serverski sus...
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Saša Jurić
October 25, 2013
Programming
350
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Elixir, Erlang, i visoko dostupni serverski sustavi
WebCampZg 2013
Saša Jurić
October 25, 2013
More Decks by Saša Jurić
See All by Saša Jurić
Such Great Heights, Code BEAM Lite, Amsterdam 2018
sasajuric
0
200
Simplifying systems with Elixir - Belgrade
sasajuric
3
490
Simplifying systems with Elixir
sasajuric
2
600
Metagrokking Elixir
sasajuric
4
330
Solid Ground
sasajuric
15
1.3k
Solid Ground
sasajuric
3
940
Elixir - valentine edition
sasajuric
0
150
What's the fuss about Phoenix?
sasajuric
2
1.2k
Phoenix
sasajuric
1
270
Other Decks in Programming
See All in Programming
Developing with AI Agents — Codex, Claude Code & Cowork Practical Guide
x5gtrn
PRO
0
1.3k
Language Server 使ってる? 〜VSCode と Zed の場合〜 / Are you using a Language Server? ~For VS Code and Zed~
handlename
0
790
さぁV100、メモリをお食べ・・・
nilpe
0
140
AI時代のUIはどこへ行く?その2!
yusukebe
22
7.4k
軽量Java基盤の設計 DIコンテナに頼らない、長期保守と1秒起動の実現 JJUG CCC 2026 Spring
macha64
0
540
Make SRE Operations Easier with Azure SRE Agent
kkamegawa
0
6.8k
RTSPクライアントを自作してみた話
simotin13
0
610
技術記事、AIに書かせるか、自分で書くか? 〜それでも私が自分の手で書く理由〜 / #QiitaConference
jnchito
2
1.4k
Semantic Version 単位で戦略を柔軟に変えて、パッケージアップデートを自動化する
daitasu
1
260
脅威をエンジニアリングの糧にして――現場編 / Turning Threats into Engineering Fuel — Field Edition
nrslib
0
290
Spring Security 実践 ─ GraphQL APIで実務に役立つ 認証・認可 を学ぶ
wagyu
0
250
作って学ぶ、 JSX (TSX) ランタイムの基本
syumai
7
1.6k
Featured
See All Featured
Designing for Timeless Needs
cassininazir
1
260
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
1
2k
Making the Leap to Tech Lead
cromwellryan
135
9.9k
Rails Girls Zürich Keynote
gr2m
96
14k
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
1
2.7k
The Curious Case for Waylosing
cassininazir
1
390
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
160
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1.1k
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
240
The World Runs on Bad Software
bkeepers
PRO
72
12k
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
230
So, you think you're a good person
axbom
PRO
2
2.1k
Transcript
Elixir, Erlang i visoko dostupni serverski sustavi @sasajuric
Tko vrijedi, je dostupan. Tko je dostupan, vrijedi. Tko nije
dostupan, ne vrijedi.
None
EVM Erlang stdlib OTP Erlang programi Erlang/OTP
dostupnost stabilnost skalabilnost distribuiranost responzivnost live upgrade concurrency dostupnost
P P P P P P P P P P
P P P P P P P P P P P scheduler scheduler scheduler scheduler CPU CPU CPU CPU EVM
P P P P exit signal vrijeme P'
P P P P P P P P P P
P P P P P P P P P P P scheduler scheduler scheduler scheduler CPU CPU CPU CPU EVM
EVM P P P P P P P P P
P P P P P P P P P P P P scheduler scheduler scheduler scheduler CPU CPU CPU CPU EVM
scheduler scheduler scheduler scheduler listener request request job 1 job
2 request EVM
EVM Erlang stdlib OTP Erlang programi :-) :-(
EVM Erlang stdlib OTP Erlang programi Elixir Elixir programi
-module(sum_actor). -behaviour(gen_server). -export([ start/0, sum/3, init/1, handle_call/3, handle_cast/2, handle_info/2, terminate/2,
code_change/3 ]). start() -> gen_server:start(?MODULE, [], []). sum(Server, A, B) -> gen_server:call(Server, {sum, A, B}). init(_) -> {ok, undefined}. handle_call({sum, A, B}, _From, State) -> {reply, A+B, State}; handle_call(_Request, _From, State) -> {reply, error, State}. handle_cast(_Msg, State) -> {noreply, State}. handle_info(_Info, State) -> {noreply, State}. terminate(_Reason, _State) -> ok. code_change(_OldVsn, State, _Extra) -> {ok, State}.
defmodule SumActor do use GenServer.Behaviour def start do :gen_server.start(__MODULE__, [],
[]) end def sum(server, a, b) do :gen_server.call(server, {:sum, a, b}) end def handle_call({:sum, a, b}, _from, state) do {:reply, a + b, state} end end
defmodule SumActor do use ExActor defcall sum(a, b) do a
+ b end end
defcall sum(a, b) do a + b end def sum(server,
a, b) do :gen_server.call(server, {:sum, a, b}) end def handle_call({:sum, a, b}, _from, state) do {:reply, a + b, state} end
Repo.all( from w in Weather, where: w.prcp > 0 or
w.prcp == nil, select: w ) get "/hello/world" do conn.resp(200, "Hello world") end fact "addition" do 1 + 1 |> 2 end
obradi_xml(Model, Xml) -> Model1 = azuriraj(Model, Xml), Model2 = obradi_promjene(Model1),
pohrani(Model2).
obradi_xml(Model, Xml) -> Model1 = azuriraj(Model, Xml), Model2 = obradi_promjene(Model1),
pohrani(Model2).
def obradi_xml(model, xml) do model |> azuriraj(xml) |> obradi_promjene |>
pohrani end f(...) |> g(...) g(f(...), ...)
defrecord Person, [:name, :age] record = MyRecord.new(name: "Saša Jurić") record
= record.age(36) x = 5 IO.puts "#{x} * #{x} = #{x * x}" String.codepoints("Saša Jurić") sasa: ~$ mix new test * creating README.md * creating .gitignore * creating mix.exs * creating lib * creating lib/test.ex * creating test * creating test/test_helper.exs * creating test/test_test.exs Enum.each(enumerable, ...) inspect(inspectable)
elixir-lang.org elixir-lang-talk elixir-lang-core Hacking Devin Torres A Cauldron of Black
and White Stones The Erlangelist