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
360
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
500
Simplifying systems with Elixir
sasajuric
2
630
Metagrokking Elixir
sasajuric
4
350
Solid Ground
sasajuric
15
1.3k
Solid Ground
sasajuric
3
960
Elixir - valentine edition
sasajuric
0
160
What's the fuss about Phoenix?
sasajuric
2
1.2k
Phoenix
sasajuric
1
310
Other Decks in Programming
See All in Programming
複数ドメインを一つのアプリに統合するFlutterの設計と運用_FlutterKaigi2026登壇資料(須永高弘)
takahirosunaga
0
160
Secure Your Coding Agent Like It’s Malware (v1.5) 🇬🇧 @Code.talks 2026
richargh
0
110
Distance field of Julia set
kinakomoti321
0
310
動画プレイヤーはなぜカクつくのか 〜Flutterのレンダリングとネイティブの境界を解剖する〜
naruogram
0
330
Long Living Tokens, Die, Die, Die! (or: The One Ring is Banned in Modern)
sylph01
0
420
AmebaブログはKMPから卒業します
kmars0605
0
340
Goコンパイラを作ってGoをもっと理解する / Build a Go compiler to better understand Go
ikura_hamu
0
130
まずはコードより業務と向き合う:テーブル解体のためにPdMを呼んだ話
sakawe_ee
0
190
Vue.jsで作る空間解析アプリとCapacitorプラグインのData Bridge
hal_spidernight
1
170
AWS CDKを理解するために公式の定義を深掘って解説してみる / Understanding AWS CDK by Digging into Its Official Definition
akihisaikeda
3
290
Next.js: The final boss of Web Performance
guaca
0
390
Kawaiicon: Kubernetes, it's no longer cool, but let's secure it anyway!
barnbarn
0
130
Featured
See All Featured
BBQ
matthewcrist
90
10k
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
610
Typedesign – Prime Four
hannesfritz
42
3.2k
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.5k
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.7k
The #1 spot is gone: here's how to win anyway
tamaranovitovic
4
1.2k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
Code Review Best Practice
trishagee
74
20k
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.6k
Ten Tips & Tricks for a 🌱 transition
stuffmc
1
280
Chasing Engaging Ingredients in Design
codingconduct
0
390
Navigating Team Friction
lara
192
16k
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