Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Elixir, Erlang, i visoko dostupni serverski sus...
Search
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
210
Simplifying systems with Elixir - Belgrade
sasajuric
3
490
Simplifying systems with Elixir
sasajuric
2
630
Metagrokking Elixir
sasajuric
4
340
Solid Ground
sasajuric
15
1.3k
Solid Ground
sasajuric
3
940
Elixir - valentine edition
sasajuric
0
160
What's the fuss about Phoenix?
sasajuric
2
1.2k
Phoenix
sasajuric
1
290
Other Decks in Programming
See All in Programming
速習iPhone Duo対応
yuukiw00w
1
410
市販E-Readerを乗っ取れ 〜Embedded Swiftで電子ペーパーガジェットを制御する〜
trickart
0
190
速く作れる。その次は、速く確かめられる開発へ 〜AIネイティブ開発を支える、Shift Down〜 / Can build fast. Next, moving to development where we can verify fast.
rkaga
4
2.7k
Streamlitで実現する自然言語データアプリ開発
ayumu_yamaguchi
0
280
モデルのリファクタリングが難しいと思ったら、そもそも複雑だったのはビジネス仕様だった ? / is-the-business-domain-the-real-complexity
hatsu38
0
260
スマート反転とウェブアクセシビリティ
camiha
0
210
Claude Codeを組織的に動かして月400PRを実現した話
happy_ryo
0
280
App Intentsのビルドプロセスを支える技術
kntkymt
0
370
LL言語やWebフレームワークのPostgreSQL対応 〜DBの機能がユーザーに届くまで〜
kentaroutakeda
1
150
MVNOの申込からeSIM開通までをiOSアプリでつなぐ- 本人確認・MNP・通信事業者基盤をまたぐ実装
satotakeshi
0
410
[DroidKaigi 2026] Bring your own phones to Gradle Managed Devices
f2lk
0
120
AWS DevOps Agentで インシデント対応をAIに任せたい
honmarkhunt
7
2.9k
Featured
See All Featured
Mind Mapping
helmedeiros
1
360
Facilitating Awesome Meetings
lara
57
7.1k
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.4k
Music & Morning Musume
bryan
48
7.4k
Typedesign – Prime Four
hannesfritz
42
3.2k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
1
910
Speed Design
sergeychernyshev
33
2.1k
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
1
2.9k
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
1
320
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
69
65k
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
450
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