Ngobrolin Elixir - Ngobrolin WEB
Yuk mari kita diskusi dan ngobrol ngalor-ngidul tentang dunia web. Agar tetap up-to-date dengan teknologi web terkini. Topik, tautan dan pertanyaan menarik bisa dilayangkan ke https://bit.ly/ngobrolinweb Kunjungi https://ngobrol.in untuk catatan, tautan dan informasi topik lainnya.
Ringkasan Episode
Bantu KoreksiEpisode ini membahas tentang Elixir, bahasa pemrograman fungsional yang berjalan di BEAM (Erlang Virtual Machine), bersama tamu spesial Alan Weimah. Diskusi dimulai dengan latar belakang Alan yang berpindah dari Ruby ke Elixir karena ketertarikannya pada pemrosesan multi-core dan concurrent programming. Topik utama meliputi perbedaan antara concurrency dan parallelism, konsep green thread, keunggulan model pemrosesan Elixir yang menggunakan copy of data untuk menghindari mutex dan locking, serta perbedaan mindset antara OOP dan functional programming. Alan juga menjelaskan tentang OTP (Open Telecom Platform), Phoenix framework, Phoenix LiveView untuk real-time web applications, serta berbagai use case yang cocok untuk Elixir seperti aplikasi web, sistem telekomunikasi, dan aplikasi real-time.
Poin-poin Utama
- •Elixir adalah bahasa pemrograman fungsional dinamis yang berjalan di atas BEAM (Erlang Virtual Machine) dengan keunggulan pada concurrent dan parallel processing menggunakan konsep green thread yang sangat ringan (sekitar 1 kilobyte per proses)
- •Model pemrosesan Elixir menggunakan copy of data antar proses sehingga tidak memerlukan mutex atau locking, berbeda dengan pendekatan shared memory pada bahasa lain yang rentan terhadap race conditions
- •Perbedaan mindset antara OOP dan functional programming: OOP fokus pada methods di dalam object, sementara functional programming fokus pada transformasi data melalui pipeline dengan pipe operator
- •OTP (Open Telecom Platform) adalah koleksi library pattern yang telah teruji selama 30 tahun, mencakup supervisor untuk monitoring proses, GenServer untuk background processes, dan Mnesia untuk database
- •Phoenix framework dengan LiveView memungkinkan pembuatan real-time web applications yang sangat efisien menggunakan WebSocket dan hanya mengirimkan perubahan HTML (diff) ke klien
- •Elixir mampu menskalakan aplikasi secara vertikal (menambah resource pada satu mesin) maupun horizontal (menambah lebih banyak mesin dengan networking built-in)
- •Beberapa perusahaan besar telah berhasil mengurangi penggunaan server secara drastis dengan bermigrasi ke Elixir, contoh yang dibahas adalah Bleacher Report yang mengurangi dari 120+ server menjadi hanya 5 server
0:00Halo halo halo selamat malam Halo selamat malam semua apa kabar evening English English English
0:21let's speak English speak English ya bro tutorial belajar bahasa ya Iya karena malam hari ini kita
0:37cukup spesial ya karena kita kedatangan tamu yang apa berbahasa Inggris jadi kita harus bertanya dan
0:46menjawab juga dalam bahasa Inggris Halo Mas it-it Hai rocet Indonesia boleh nanti kita terjemahin
0:54evening ya kalau mau bahasa Indonesia boleh silakan Selamat malam semuanya dan malam hari
1:01ini kita kedatangan tamu spesial karena topiknya juga cukup spesial sering di channel ini sering
1:08dibawakan tapi biar yang lebih sering dibahas tapi nggak pernah ditanyain cuma nggak pernah
1:14secara mendalam karena saya menjual menjual sesuatu karena kan apa ya bahasa pemrograman
1:25itu sifatnya apa ya personal kan ya ada yang suka kurang suka atas segala macam tapi kita
1:30nggak bisa explain we cannot explain why we like one language over another over another gitu so
1:39Let's invite Mr. Alan Weim.
1:48Weimah?
1:50Weimah.
1:52Weimah. Halo.
1:54Halo, selamat malam.
1:56Halo, Alan. Selamat malam.
1:58Halo, apa kabar?
2:00Oh, aku di atas stage sekarang. Oke.
2:02Ya, ya.
2:04Kamu di spotlight.
2:06Ya.
2:08Jadi mari kita mulai dengan siapa Anda, apa yang Anda lakukan, dan cerita latar belakang Anda.
2:14Wow, saya selalu menakutkan pertanyaan besar dan terbuka.
2:18Jadi, siapa saya? Itu pertanyaan yang sangat eksistensial, bukan?
2:24Itu artinya sangat dalam. Siapa saya?
2:28Ya, tapi Anda bisa menulisnya di CLI Anda. Siapa saya?
2:32Saya perlu bertanya pertanyaan terakhir. Siapa saya?
2:36Ya, saya hanya seorang pengisian software. Saya sudah berada di Hong Kong selama 10 tahun,
2:423,5 tahun di Shanghai sebelumnya, dan saya juga tumbuh di Amerika Serikat.
2:47Ini cerita yang panjang tentang bagaimana saya berada di sini, seperti yang Anda lihat.
Lihat transkrip lengkap
2:52Jadi, setelah saya belajar di sekolah, pada tahun 2010,
2:59saya tidak punya pekerjaan karena ada krisis finansial, jadi saya pikir,
3:03Oke, kenapa tidak pergi ke China selama beberapa tahun, kembali ke rumah.
3:06Saya melakukan bagian A, bagian B masih belum kembali lagi.
3:09Jadi itu adalah cerita pendek.
3:11Saya belajar Sains Komputer dan Mandarin Chinese.
3:16Jadi itulah kenapa saya pergi ke mainland China dulu, di Shanghai.
3:19Kemudian saya mendapatkan kesempatan untuk bekerja di startup dan mengembalikan bisnis dari
3:24satu jenis bisnis ke lainnya.
3:27Dan ya, saya bisa terus bergerak, tapi Anda berbicara tentang 10 tahun sejarah di sini, bukan?
3:31Jadi, saya bisa teruskan jalan jika Anda benar-benar ingin, tapi saya tidak pikir itu menarik.
3:36Saya lebih menarik bagaimana Anda berakhir ke Elixir.
3:41Elixir, wow, itu pertanyaan yang sangat bagus. Jadi, saya tidak tahu tentang Anda semua, tapi
3:45ketika saya pergi ke sekolah, pertama kita belajar C++, bukan C,
3:49lalu kami melakukan Java, dan saya selalu menarik adalah bagaimana melakukan programing multi core paralel.
3:57Oke.
3:59Apakah kalian pernah melakukan hal seperti itu sebelumnya atau tidak?
4:01Dengan C++ ya.
4:03Ya, saya pikir itu tidak menyenangkan.
4:05Saya belum pernah mencoba dengan C++, tapi saya yakin itu tidak menyenangkan.
4:07C Sharp juga bisa melakukannya.
4:09Saya sudah mencoba.
4:11Java juga bisa melakukannya.
4:13Java juga bisa melakukannya.
4:15Jadi,
4:17secara dasar, bahasa yang saya tahu pada awal
4:19dari C++, mungkin yang paling banyak.
4:21Dan saya selalu tertarik
4:23dengan pemrosesan multi core,
4:25multi-core multi-thread CPU processing and I had this project that I wanted to do and I can't remember
4:32what it was it was some freelance project if I'm speaking too fast let me know it's okay yeah I
4:39always speak too fast usually maybe because I get too excited but uh yeah so and so I kept hearing about this language called elixir and I had no idea what it was but I heard interesting things at Saya sangat teruja tapi Jadi saya selalu mendengar tentang bahasa ini yaitu Elixir Saya tidak tahu apa itu tapi saya mendengar hal menarik
4:51Pada saat itu, saya melakukan Ruby.
4:53Saya pikir banyak orang melakukan Ruby, bukan?
4:56Ada yang tidak melakukan Ruby?
4:58Saya pikir semua orang melakukan Ruby.
5:00Anda harus coba.
5:02Itu sangat menyeronokkan.
5:04Salah satu nama besar di Ruby adalah Jose Valim.
5:07Dia bekerja di perusahaan yang disebut Plataformatech.
5:10of libraries for Rails and he was working on elixir and I said okay good thing I did Ruby for a while
5:17I did Rails of course and I know Jose I know the name and I looked into it and I said wow
5:23it was doing what I wanted to do which was multi-core processing uh I know Risa is it Risa right
5:32riset bisa bisa ya riset you play around with the lecture before so you know what I'm talking about
5:40you can it's easy to do multi core processing with elixir you basically yeah it's out of the
5:48box right the way the whole system works is called it's called a process which is similar
5:54to a process on your computer but it's a process within its own virtual machine so they have this
6:00mesin yang disebut BEAM.
6:02Ya, Erlang Virtual Machine ya.
6:05Ya, menjaga prosesnya sendiri, dan itu pada dasarnya
6:08kain putih.
6:09Saya tidak pasti kalian tahu apa itu kain putih atau tidak.
6:13Bisa kamu jelaskan sedikit mungkin?
6:16Ya, tapi saya selalu sangat buruk menjelaskan hal ini.
6:18Saya tahu, saya tahu sekitar apa itu, tapi
6:20ketika menjelaskannya, sangat sulit untuk
6:22menjelaskan. Jadi, pemahaman saya tentang kain putih
6:24adalah,
6:25bukan kain yang sebenarnya, tapi
6:28Tapi, ini berfungsi seperti thread, karena memiliki memori sendiri, dan memiliki thread processing.
6:36Tapi, Anda bisa mulai dan berhenti.
6:39Dan, di mana-mana pun, Google Green Thread, dan Anda akan memahami lebih banyak.
6:46Ya, ya.
6:47Ya, ya.
6:48Biar Wikipedia menjelaskannya.
6:49Jadi, ini adalah hal yang cukup menarik.
6:53masalahnya dengan thread adalah mereka membutuhkan banyak sumber untuk digunakan
6:58mereka sangat mahal
7:01tapi thread hijau lebih efisien dalam hal sumber yang diperlukan
7:07sekarang, ya saya bisa terus-terusan, tapi itu bagaimana saya memulainya
7:14karena saya ingin bisa menjalankan banyak kerja pada saat yang sama
7:17dan itu adalah kerja yang berbalik
7:20Jadi, saya rasa audiens Anda sedikit lebih baru dalam programing, jadi saya ingin menjelaskan sesuatu yang sangat penting.
7:27Ada paralel, dan kemudian ada konkurren.
7:33Mereka berbeda, tapi mereka diperlukan.
7:36Jika Anda memiliki kerja konkurren, maka Anda bisa menggabungkannya.
7:40Jadi, dengan konkurren Anda bisa memikirkan sesuatu yang dirumahkan diri,
7:43dan paralel adalah sesuatu yang Anda lakukan berfungsi dengan proses berfungsi berfungsi dengan proses berfungsi
7:50jadi untuk memiliki program paralel Anda harus memiliki program berfungsi dengan proses berfungsi
7:55dan bagaimana cara mengatasi, ada kondisi berat atau sesuatu seperti itu?
8:02kondisi berat, wow
8:04Itu yang lucu tentang Elixir, karena itu bisa menyelesaikan banyak program paralel yang perlu kamu lakukan.
8:14Jadi, apakah itu Ivan atau Evan? Atau bagaimana kamu mengatakannya?
8:17Itu Ivan.
8:19Ivan, apakah kamu pernah bermain dengan Elixir sebelumnya atau lebih awal?
8:23Tidak, saya pernah mendengar tentangnya, saya belajar beberapa kali, tapi saya tidak pernah mencoba untuk membuatnya menjadi produksi.
8:33Ya, sedikit saja.
8:35Oke, lalu salah satu masalah, karena Anda sudah berbicara tentang, Anda sudah bilang Anda melakukan beberapa hal dengan CC++ dengan kerja berkoneksi.
8:42Jadi dengan itu, apakah Anda menggunakan mutexes?
8:44Ya, saya menggunakan mutexes dan,
8:47Well, in my experience like when handling this risk condition like I don't I really like chunk the data out so it's just it's actually concurrent process just what one one way so it doesn't affect one another.
9:06That's how I do it but to be honest I still don't know how to handle this condition in parallel processing.
9:13I think we are more familiar with Node.js in terms of concurrency.
9:22I can go either way so if you want to explain more if you want me to talk about it more with Node I think Node still has a shared model of concurrency in terms of the memory I not too sure about the memory but I believe it might be shared
9:40But in general, Node.js, unless something's changed, is single thread, single process, right?
9:48So if you want multi, you have to spin up multiple instances.
9:54I think you guys English is better than mine.
9:58Tapi ya, kamu harus mengambil beberapa proses, kan?
10:02Dan kalau kamu pikirkan, itu sebenarnya cara yang berfungsi dengan Elixir,
10:06adalah bahwa kamu memiliki beberapa proses,
10:09tidak seberat beberapa instansi Node.js,
10:13lebih, lebih, lebih, lebih, lebih lebih ringan.
10:15Tapi hal lainnya juga adalah,
10:17itu mengikuti jalan yang sama dengan tidak berbagi data.
10:21Jadi, dalam kerja sebelumnya di mana kamu memiliki mutex,
10:24tidak perlu mutex karena kamu tidak pernah berbagi data.
10:26Ya.
10:28Anda sebenarnya mengirim copy dari satu proses ke yang lain.
10:31Jadi jika Anda memiliki intai, Anda akan mengirim copy intai ke seseorang lain.
10:39Hal yang Anda lakukan adalah mengirim copy ke seseorang lain.
10:42Jadi jika Anda mengedit data atau menghentikan atau apapun,
10:46tidak akan membuat sakit keadaan seseorang lain karena mereka memiliki copy sendiri.
10:49Jadi tidak perlu membuat mutex, tidak perlu membuat lock, tidak perlu membuat apa-apa.
10:55Jadi, itu seperti dalam terma git, Anda menggabungkan data dan melakukan apa saja yang Anda inginkan dengan data.
11:05Tapi Anda menggabungkan kembali pada akhirnya dengan keharusan untuk menggabungkan kembali pada akhirnya setelah Anda selesai dengan apa saja yang seharusnya dilakukan?
11:14bukan dalam kesempatan itu, kamu menggabungkan sebuah copy, jadi jika kamu beri saya int, dan kamu beri 1 ke dan mengirimkan kembali
11:21saya mengirimkan kembali sebuah copy dari itu
11:24jadi data itu sebenarnya tidak bisa diperbaiki
11:28jadi data di bagian memori tidak pernah berubah
11:33dan ketika saya mendapatkan hasilnya adalah sebenarnya alokasi baru di memori yang
11:41jika proses lain mengubahnya, saya tidak peduli karena saya mendapatkan copy darinya,
11:47itu benar-benar membuat sense sekarang, jadi itu menyelesaikan banyak masalah sudah,
11:55tetapi satu masalah yang tidak diselesaikan adalah jika Anda memiliki
11:58a very big chunk of data and you send a copy of that that's that's a problem
12:04but actually there's kind of a there's kind of a solving with that if i remember correctly like
12:08if you have a big i mean the only reason you have a big piece of data is like a big piece of binary
12:12data right maybe if you have like a two gigabytes of dvd you know move video you have that right
12:18you actually don't send a copy of that you send a copy of the reference
12:22but nonetheless like we talked about before the data is actually immutable
12:25how long did you learn elixir?
12:32i'm just curious like what is your main programming language before until you
12:38ruby right?
12:39ruby to elixir is easy because i know that
12:46is phoenix inspired by ruby?
12:50ruby on rails
12:52ruby on rails is is inspired phoenix is inspired by rails ruby on rails yeah yeah so ruby is the
13:00programming language rails is the framework framework yeah and phoenix is the framework
13:05on top of as well yeah so phoenix was heavily inspired by rails
13:14this is uh
13:16you use phoenix it's every day do you use every day yeah approximately
13:22Oh hmm uh this is a good question uh in this context uh you are came from the object oriented
13:31programming right like Ruby Java or C++ how to change the mindset to be functional
13:38oh Peter functional yeah because for me for me myself it's it's uh uh compared to Ruby the
13:48Sintaksi itu sama, kan? Tapi...
13:50mindsetnya dan paradigma itu berbeda.
13:56Sangat berbeda. Jadi bagaimana Anda...
14:00Paling kurang itu fungsional dinamik, kan?
14:02Ya.
14:04Ya, itu bahasa fungsional dinamik.
14:08Tapi sekarang mereka menambahkan jenisnya.
14:10Tapi kembali ke pertanyaan utama, kan?
14:12Bagaimana Anda mengubah mindset Anda dari OOP ke fungsional?
14:14Mhmm Pernah Ya itu memang Gampang Coba berpraktek Bisa berpraktek Bisa berpraktek dan membaca banyak kode Itu benar benar bukan Ya Dan reading lots of code it really the truth right and it takes time to get into it some tips is that
14:27when you become functional you start to break out stuff and you focus on the data it sounds
14:35kind of weird right for this this is my interpretation I think I've seen other people
14:39say the same thing what I noticed is that when I went from object oriented to functional is that
14:45...sehingga saya mulai berpikir lebih banyak tentang data yang saya miliki.
14:50Dan kamu akan merasa berpikir lebih banyak tentang itu.
14:52Dan kemudian kamu akan merasa beroperasi dengan data...
14:54...sebaliknya dengan...
14:56...kalau dengan OOP, kamu akan mencapai data...
14:59...dan kemudian kamu akan menyebutkan metode di dalamnya...
15:01...dan itu akan mengembangkan data di dalamnya.
15:04Yang sebenarnya sangat rumit jika kamu memikirkan itu.
15:08Untuk saya, itu cukup rumit.
15:10Jadi untuk fungsional, Anda harus berpikir lebih banyak tentang struktur data yang Anda miliki,
15:17dan kemudian Anda berpikir tentang memperubah data itu melalui beberapa langkah.
15:20Jika ada beberapa, jika ada beberapa yang bisa mencoba mengambil sampel kode dari pipelining,
15:26itu sangat membantu untuk memahami bagaimana itu berfungsi.
15:28Karena saya menemukan fungsional yang sangat mudah untuk diikuti,
15:35than OOP, because OOP, anything can happen, you know, you have getters and setters,
15:39but actually when you use a getter, you actually have the real reference to that data,
15:43as opposed to OOP, or sorry, functional, where you're always going to get a copy of that data.
15:48So I think basically every single functional language that I can think of runs the same way.
15:53So this is a great example.
15:57So you have a function called setup user, you have parameters that come in,
16:02that's probably something from a form submit,
16:04So, if you just read this from top to bottom, it's basically you have three steps happening.
16:09First, you create the user, then you're going to send an email, and then you're going to start the trial.
16:14It really reads like steps, one, two, three, four.
16:17If you look at this same thing using OOP, it could be simple like this, but it could also be very, very complicated.
16:25Because you could have one method that does all this.
16:28You could have, who knows what, you could have all kinds of stuff.
16:32But to me this one is very very clear just read step one two three and for those who are
16:41brand new to elixir this is the called a pipe operator on line 10 11 12 all the means is take
16:50the previous data and put it into the first parameter.
16:57parameter ya Yes piping is piping Yes piping I think this came from F sharp actually
17:03promise the and JavaScript will have the supposed to have this too actually I'm not sure if it's out
17:11yet or not but they're supposed to have not yet yeah not yet but it's still in proposal
17:18and so basically every single step you're actually transforming the data you're not changing the
17:27data asal, Anda sebenarnya membuat copy, memutasi copy itu, dan kemudian teruskan.
17:31Tapi fungsi itu perlu mengembalikan sesuatu, kan? Jadi mengembalikan sesuatu dengan piping itu.
17:38Ya, jadi setiap fungsi memiliki nilai kembalikan. Sama dengan Ruby, Python, saya pikir tidak.
17:43Bahkan Python, saya pikir mereka mengembalikan tidak jika Anda mengembalikan tidak. Tapi,
17:46pasti Ruby mengembalikan sesuatu setiap waktu. Ya, di PHP Anda bisa
17:51dan hanya kembali ke void atau tidak.
17:54PHP adalah, saya tidak tahu apa lagi.
18:00Itu selalu sesuatu yang baru setiap tahun.
18:02Ya, itu hanya...
18:04Itu menjadi lebih dan lebih seperti Java,
18:06itu yang saya lihat.
18:08Ya, tapi di Indonesia,
18:10itu masih bahasa yang paling populer.
18:12Oh, itu benar.
18:14Tapi itu sangat rumit.
18:16Saya biasanya bingung dengan bahasa
18:18di mana pencipta seperti
18:20kembali dari itu dan hanya jika saya ingat dengan benar, pencipta php hanya ingin tidak ada
18:25kaitannya dengan itu oh itu yang saya ingat mungkin saya ingat hal yang salah telah berubah tapi itu
18:31memberikan saya sedikit kekhawatiran jika pencipta itu berpindah kembali dari itu
18:37well kebelakangan ini mereka berubah banyak sejak php um dan 8 sekarang kali terakhir saya ingat itu 7.
18:44must be 20 by now 8.3
18:47types
18:53before ok
18:59well in PSP now you can declare strict types and now the order of the
19:07atau argumen tidak lagi
19:09tidak lagi
19:11absolut
19:13sehingga anda bisa
19:15selama nama parameter sama
19:17anda bisa menempatkan parameter
19:19dimana saja yang anda inginkan
19:21tidak lagi bergantung
19:23dan ya
19:25mereka memiliki
19:27spread operator sekarang
19:29lebih seperti
19:31mereka hanya mengabsorb dari
19:33dari berbagai jenis
19:35ya ya
19:38there's a benefit for coming late is that you can take all the good ideas that work
19:43I think it sounds like a franken language now all these different things
19:48Di F
20:18So Andre said he's a man in English, but he wants to be an Elixir as a man in English, but like me, we cannot get any Elixir jobs.
20:32What do you think about that? Indonesia or Asia? Southeast Asia maybe.
20:37Yeah, that's a really great question. You kind of have to make them, if that makes sense.
20:45so the current place I'm helping out at they never did elixir they had no interest in it
20:52but they believed in me and they let me choose what I thought was correct and I told them what I
20:58want to choose and I came there saying listen it's not going to be easy to find people who
21:02know this language but the benefits are xyz I think I've almost never I cannot say never for sure but
21:12Probably almost never have a problem with choosing Elixir.
21:17When I start a project, right?
21:19So, you may not be able to find a job doing that specific language,
21:24but what you can do is you can do your own personal projects,
21:28you can keep checking around,
21:31find a startup that is starting out,
21:34get hired, try to ask them to use this one.
21:39There's many different ways to do it.
21:41um that's what i recommend because i know that it's very difficult to find a job using elixir
21:48but i think there is some companies in indonesia doing elixir is that right
21:52um
21:58what you can also do you can set up a meet up group so i start up one risa you you come sometimes
22:06i need to start another one i need to start another one next month and that will allow you to network
22:10dengan orang lain yang sedang melakukan Elixir atau Erlang, jika Anda bisa melakukan salah satu atau yang lain, saya pikir itu
22:16bagus karena meskipun Anda tidak bisa melakukan Elixir sekarang, tetapi Anda melakukan Erlang, setelah Anda
22:22memiliki kesempatan untuk melakukan Elixir, saya pikir akan menjadi secara langsung, akan mudah untuk Anda
22:26menemukan jika Anda sudah memiliki bahasa Beam, bahkan Gleam, karena itu hampir semua di
22:32Hood, itu hampir sama bagi saya, Gleam mungkin sedikit berbeda, tetapi saya belum mencoba itu lagi
22:37Jadi, saya baru saja membicarakan tentang Gleam sekarang. Gleam adalah bahasa program lain di Beam.
22:42Jadi, Beam adalah VM. Jadi, berpikir tentang JVM untuk Java, Beam adalah untuk Erlang dan Elixir.
22:48Dan hal-hal yang cepat yang belum kita bicarakan, dan saya akan mencoba untuk memperkirakan informasi sekarang.
22:53Erlang adalah bahasa pertama di Beam.
22:57Dan kemudian Elixir keluar kemudian. Ada banyak bahasa lain, tapi Elixir adalah bahasa paling populer.
23:03Dan yang terbaru yang menjadi populer adalah GLEAM.
23:08GLEAM adalah versi yang terkompil dari TypeSafe di Beam.
23:14Seperti yang kita bicarakan sebelumnya, Elixir dan Erlang berdua berdynamik,
23:17maksudnya mereka tidak terlalu terkompil, maksudnya Anda bisa kompil apa saja yang Anda inginkan, dan akan tetap berjalan.
23:24Logo yang bagus.
23:26Ya, itu logo yang sangat keren.
23:28Jadi gleam adalah seperti TypeScript?
23:32Atau Elixir?
23:34Sebenarnya, seperti yang kalian lihat,
23:36sinteksnya seperti, kalian lihat ini memiliki import seperti Python.
23:39Atau, ya,
23:41kompilernya ditulis di Rust.
23:43Sangat menarik.
23:44Jadi, selagi ada perubahan,
23:46selagi ada perubahan,
23:48cara yang berfungsi adalah kalian tulis gleam seperti ini going to compile your code into core Erlang and then
23:59core Erlang will then be compiled into Erlang bytecode so the way it works is that you have
24:05your language so you have Erlang Erlang gets compiled to some type of AST which is abstract
24:10interest the abstract syntax 3x3 yep and then that will be compiled into core Erlang
24:16Core Erlang kemudian digumpilkan ke Erlang by Code, kalau saya ingat benar.
24:22Dan jadi, compilernya untuk ini ditulis di Rust. Jadi Rust ke Core Erlang.
24:29Oh, dan Gleam juga digumpilkan ke JavaScript, kalau tidak salah.
24:39Oh, menarik.
24:41It probably can, I think nearly every language can now with pure JavaScript.
24:46Okay, you're not talking about WebAssembly, right?
24:51No, no, no.
24:52To JavaScript, okay.
24:54To JavaScript.
24:57I've heard that, but yeah.
25:00Okay.
25:02Show me.
25:05Interesting.
25:06This one.
25:07Let's see the compiled one.
25:10This one the source code written in Gleam. This one is the JavaScript.
25:18Oh, that's the compiled result.
25:19Interesting.
25:20Ah.
25:21Okay, that's interesting.
25:23Interesting.
25:26But maybe it would lose something if it's not run on Erlang.
25:32Well, you're not going to have the beam, which I think is...
25:35Tidak memiliki beam adalah bagian terburuk karena beam adalah mesin yang sangat kuat.
25:41Tapi saya pikir mereka terbiasa ada di bagian depan karena ada selector query untuk seleksi dom.
25:51Jadi, itu adalah rasa domnya.
25:55Ada proyek, saya pikir mungkin masih dikerjakan, saya tidak yakin, tapi dulu itu disebut...
26:01Oh wow, saya lupa nama sekarang.
26:04Mereka mendapatkan Erlang untuk mengumpulkan dan menjalankan dengan WebAssembly di depan.
26:11Oh, saya sudah dengar itu, tapi saya tidak ingat nama.
26:13Saya lupa nama.
26:14Dia telah mengubah nama setidaknya sekali.
26:16Oh, mereka mengubahnya?
26:19Saya pikir ini disebut Lunar, Lunas, Lean.
26:23Atau?
26:25Tidak, ini bukan yang lain.
26:27Tidak?
26:28or not
26:36firefly firefly oh ya that's the new name I remember correctly
26:51ya saya pikir jadi kompiler baru dan waktu kerja untuk beem language
26:58ini tapi ini archive read only
27:06Well I'll look for it and then we can we'll see if we can find it still I think it's still being worked on
27:16so up ya about the about the the the
27:23lumen lumen lumen
27:27lumen
27:30firefly firefly
27:37used to be called lumen and then become firefly firefly
27:43ya di Suwan Lumik Oh no configurable ohsense September first of 2022
27:54Fem.ount
27:59don't
28:01get stiefire flag.org
28:07hmm
28:09you can run elixir using browser browser also it's wazim I thought member correctly
28:24but and that's something's changed yes you heard us target wazi wasi since we lose beam here that
28:30means we cannot run running as a concurrent anymore right so it just like well I didn say that karena jadi halnya adalah mereka sebenarnya di dalam grup Dan berbicara jadi ketika saya berbicara tentang grup saya berbicara tentang consortium
28:45Grup yang membuat peraturan, apa yang browser Anda bisa dan tidak bisa lakukan.
28:50Dan jadi mereka mengatakan, kita membutuhkan fitur ini, dan kita tidak membutuhkan fitur ini.
28:54Dan mereka berbicara tentang hal-hal yang mereka lakukan.
28:57Jadi, mungkin masih berjalan sama.
29:00Saya belum pernah mencoba, tapi saya percaya mereka menggunakan webworkers atau sesuatu seperti itu untuk melakukan prosesnya.
29:10Tapi mungkin mereka memiliki hal-hal sendiri juga.
29:12Oh, menarik. Oke.
29:16If we can do that, that means it's really good for the optimize large processes like compiling or rendering or compressing images.
29:33Well, I mean, the beam is not really made for very intensive things.
29:40but you can shout out to see rust whatever if you want to do some computation intensive stuff
29:47if you need to it's actually pretty simple with with rust but what it's great for is what we talked
29:56about like having concurrent parallel work it's very very good at that and very good at recovering
30:01from any types of errors and you can implement all kinds of retry operations things like that
30:06and the language which will blow your mind
30:16open telekom
30:20so we can touch the OTP since I mentioned it
30:27as they said OTP stands for open telecom platform if I remember
30:34sebuah kata-kata buzz yang telah ditemukan oleh tim perusahaan mereka atau seseorang yang melakukan marketing atau sesuatu seperti itu.
30:40Tapi pada dasarnya, tidak ada yang menyebutnya platform telekom terbuka. Mereka selalu menyebutnya OTP.
30:44Itu seperti GNU. Anda tahu GNU? GNU?
30:47GNU.
30:48Ya, GNU berarti, saya lupa, itu adalah akronim reksursif dengan tidak ada arti sebenarnya.
30:53Jadi OTP sekarang menjadi sesuatu seperti itu.
30:56Apa yang bisa Anda pikirkan adalah OTP adalah sebuah koleksi library yang telah ditemukan dalam peristiwa berkumpul selama 30 tahun bekerja dengan Erlang.
31:06Dan mereka mengambil semua fitur Erlang dan Beam dan menjadikannya menjadi beberapa pattern yang sangat bagus.
31:13Dan jadi ada hal-hal seperti supervisor, yang berarti akan menonton proses.
31:18Jika proses itu berlapis atau gagal, akan secara umum dibuat untuk Anda.
31:22It's got a gen server, which is basically short for a generic server.
31:26So, if you need to have something that operates concurrently in the background,
31:30we can send it data and it does stuff with it.
31:32Gen server is usually your case.
31:35And there's a lot of other things in there.
31:37So, that's kind of the short thing about what is OTP.
31:42It's got a lot more things into it.
31:44Also, if you look at this page, amnesia is a big one.
31:47So, amnesia, as you hear, it sounds like amnesia,
31:50yang merupakan forgetting things, tapi sebenarnya adalah database untuk menyimpan data, jadi itu jelas adalah
31:56gagal programer. Seperti yang Anda lihat, ini ditulis oleh Robert Verding, yang biasanya
32:03berdekatan di grup temui saya di Throbe setiap bulan, dan dia membicarakan sedikit tentang amnesia.
32:10Saya pikir amnesia juga adalah database dari RevitMQ, tapi sekarang mereka menggantikan itu karena
32:14itu bukan, maksud saya, itu adalah database lama dan tidak berfungsi untuk segalanya.
32:18But yeah it's kinda cool amnesia I believe is distributed and it runs like you know through
32:28to the networking sorry I'm a little bit blank right now and anyways maybe we have more questions
32:34people in the audience yeah wait let me check yeah there's a highlighted one this is actually my
32:47Pertanyaan saya juga belum pernah menggunakan Elixir. Jika saya ingin belajar, di mana harus saya mulai?
32:57Saya pikir itu adalah pembentukan yang sangat bagus.
33:02Jadi, tergantung apakah Anda memiliki cash atau tidak.
33:06Karena ada banyak sumber yang sangat bagus.
33:10Namun, jika Anda pergi ke elixirlang.org, mereka memiliki bagian belajar dan doks.
33:15Saya pikir bagian belajar sendiri akan memberikan Anda
33:18isi guide
33:22Mungkin bukan guide hal yang berubah sedikit Saya pikir itu guide Guide ya Ya guide itu Mungkin itu yang ingin kalian lihat
33:32Mereka cukup mendalam tentang hal-hal yang berbeda
33:34dalam Elixir. Itu akan memberikan overview yang baik.
33:40Jika kalian punya sedikit kash,
33:42saya sangat rekomendasi kalian ambil Elixir dalam action.
33:44Itu akan memberikan kalian
33:46pengetahuan yang sangat baik dan mendalam
33:48tentang OTP.
33:52if you like videos if you go to
33:57Pregmax studio they have elixir OTP course fantastic course in my opinion
34:02okay
34:04Pregmax studio
34:09they have very great elixir OTP courses
34:13this one
34:15so the elixir OTP one yeah this is a good one also Phoenix live view which is also really great
34:19ya kita harus bicara tentang review
34:2460%?
34:36peran dari menjadi negara dengan harga perubahan yang rendah
34:42Oke, it's quite expensive but I highly recommend it.
34:49I'm not telling you guys what to do, but if you have friends, come together.
34:55That's all I'm going to say.
34:56I highly recommend the course. It's really good.
35:02They go pretty in-depth with stuff.
35:04And even on YouTube, there's a lot of different resources.
35:08Yeah.
35:08Tapi, saya ingin mengatakan lagi, jika Anda hanya belajar beberapa proyek yang ada di luar sana yang open source, Anda akan belajar banyak.
35:16Apa, apakah Anda memiliki beberapa referensi atau proyek untuk belajar?
35:22Ya, proyek open source.
35:24Proyek open source atau sesuatu.
35:26Ya.
35:28Untuk belajar, saya ingin, jika Anda melihat Phoenix, mungkin sangat bagus.
35:32Saya ingin melihat Phoenix Liveview, mungkin satu lagi yang bagus.
35:36Kedua-duanya sendiri sudah cukup bagus. Kalau Anda ingin sesuatu yang lebih mudah,
35:41Wow, saya tidak tahu.
35:46Saya pikir, sejujurnya, jika Anda ingin memulai dan Anda memiliki latar belakang Rails,
35:51mencari Phoenix adalah sangat mudah dalam perbandingan.
35:56Mereka dulu lebih serupa, tapi sekarang mereka sudah memiliki perbedaan.
36:01but the nice part about Phoenix is that it's it's all the complications that you would typically have
36:09if you have a brand new Elixir project so Phoenix to Elixir is like say level to PHP is that right
36:19yes yes I'm not too sure I haven't done in for sure over 10 years what I can say for sure
36:30Karena saya telah melakukan banyak aplikasi Rails dan Ruby.
36:33Saat Anda memiliki aplikasi Rails, Anda tidak bisa menambahkan sebuah library Ruby ke aplikasi Rails.
36:39Anda harus memiliki aplikasi plugin dari Rails untuk aplikasi Rails.
36:42Itu adalah pengalaman saya.
36:45Hal-hal yang mungkin telah berubah kebelakangan ini, tapi Anda harus mencari aplikasi Rails.
36:49Untuk aplikasi Phoenix, tidak ada aplikasi yang menarik.
36:53Mereka semua aplikasi Elixir.
36:56Jadi, pada dasarnya, Anda bisa menggunakan sebuah library Elixir yang Anda inginkan di dalam Phoenix.
37:02Tidak ada hal khusus yang Anda perlu lakukan.
37:06Termasuk library yang datang dengan OTP.
37:09Itu berarti Anda bisa menggunakannya di dalam Phoenix.
37:12Ya, Anda bisa menggunakannya di dalam kotak.
37:13Cara yang dilakukan Phoenix adalah mereka meletakkan semua hal web dalam satu folder.
37:19Dan Anda harus meletakkan semua aplikasi Anda yang spesifik ke dalam folder lain.
37:24and it's not like
37:26trying to be like you don't have to follow the pattern
37:29but it helps you follow the pattern because it helps you to
37:31separate and make sure that you can actually
37:33have different types of entry points
37:35into your code right so basically you can actually
37:37create another
37:39app that just has like a CLI
37:41so basically a command line interface
37:42or even a GUI application
37:45is it time for pray right now
37:50no
37:52Oh, saya dengar suara aneh, saya tidak tahu apa itu.
37:55Itu mungkin dari sisi saya.
38:00Oke.
38:02Baiklah, jadi, ya, satu hal yang saya pikirkan, menurut saya, adalah satu hal yang bagus,
38:14tentang elixir adalah komunitas,
38:16itu sangat mengeringkan dan intim,
38:20seperti kita bisa
38:23terjumpa dengan
38:27penulis,
38:29Josefa Lim di meet up Anda.
38:33Itu adalah
38:35kegembiraan komunitas yang bagus untuk saya.
38:39Jadi tidak drama seperti Javascript Community?
38:42JavaScript, PHP, atau apapun.
38:45Oh, baik.
38:47Ya, saya harus bilang, pasti lebih kurang drama di komunitas Elixir dibandingkan dengan komunitas lain.
38:52Karena saya juga ada di komunitas Rust dan di... apa lagi?
38:57Elixir, Rust, Flutter.
39:00Flutter? Oke.
39:01Saya tidak begitu suka Ruby.
39:02Saya tidak suka Ruby, saya hanya tidak menggunakannya banyak lagi.
39:06Flutter, Elixir, dan Rust adalah tiga bahasa yang saya fokus pada.
39:11um but yeah out of those three communities i would say for sure elixir is relatively drama free it's
39:18not totally drama free but it's relatively drama free as opposed to javascript i don't know what's
39:23going on with them uh again the creator he disappeared somewhere i don't know i think
39:27he's working on dino right yeah yeah that's the note yes yes yeah yeah yeah so so he's gone uh
39:39python dia menang karena drama uh apa namanya guido
39:45kita melihatnya jadi kebanyakan penulis mereka seperti
39:48meninggal saya pikir saya maksudku bijornya berpengaruh saya
39:53percaya saya tidak tahu saya tidak pikir dia melakukan banyak sekarang sebagai
39:55konsortium orang jadi kebanyakan penulis sebenarnya
39:58kembali kembali setelah beberapa waktu tapi jose masih di sana dia masih melakukan
40:01hal-hal um tapi dia pasti lebih seperti
40:03jenis style shepherding oke jadi apa jenis aplikasi yang biasanya Anda pilih
40:12elixir, katakanlah, melalui ras karena Anda tahu ras juga ya jika saya melakukan aplikasi web-based
40:19pasti saya memilih elixir um karena phoenix dan phoenix live view seperti yang kita bahas
40:25itu tidak ada perbandingan, hanya berfungsi, itu berfungsi dengan bagus, membutuhkan sangat sedikit sumber untuk berjalan
40:31the the the story the web the how well how easy it is to create a website using elixir and Phoenix is
40:41it's just too easy compared to other languages that I've talked about I mean obviously PHP maybe it's
40:47easier I mean you have Laravel you have rails of course can be quite quick but with the amount of
40:53resources that it uses with the ease of use with the innovations that they're doing I just don't
40:58sebuah alasan untuk tidak menggunakannya terutama karena sumber dan fitur real-time dari phoenix yang
41:03Anda miliki dari kotak hmm bagaimana dengan rus apa jenis aplikasi yang Anda bina dengan rus
41:12ya saya bisa berbicara tentang aplikasi sebenarnya yang saya buat menggunakan elixir dan rus bersama
41:18mungkin itu lebih menarik karena itu menunjukkan kekuatan kedua
41:20I had this client, they're a pretty big MNC, you definitely heard of them, I'm not going to name who they are, but I had to integrate with their ERP system and actually create PHP files using that for their website.
41:37So basically they wanted to integrate all the products into their existing website, so I had to go there, I had to pull all the files.
41:43Jadi satu produk akan memiliki, misalnya Hong Kong, kita memiliki dua atau tiga bahasa.
41:50Anda memiliki bahasa tradisional Cina, Anda memiliki bahasa Cina yang sederhana, dan Anda memiliki bahasa Inggris.
41:55Dan kemudian Anda memiliki negara lain, Indonesia, saya tidak tahu apakah Anda memiliki lebih dari satu bahasa atau tidak.
42:00Saya yakin Anda memiliki bahasa Inggris dan Anda memiliki bahasa Indonesia.
42:06Bahasa Indonesia ya.
42:08Bahasa Indonesia.
42:10Jadi kita mungkin punya lebih dari itu, tapi kalau kamu pikirkan satu negara untuk Indonesia punya dua,
42:15Hong Kong, yang sebenarnya bukan negara, karena aku tidak ingin menimbulkan masalah,
42:19punya setidaknya tiga atau tiga bahasa.
42:21Dan di Amerika Serikat kita punya setidaknya dua, saya pikir.
42:25Kita punya bahasa Inggris dan Bahasa Ita, mungkin kamu ingin mendukung dua, mungkin bahasa French.
42:30Jadi setiap negara mereka punya, biasanya ada beberapa.
42:33Beberapa bahasa.
42:34Tepat sekali.
42:35Jadi untuk MNC ini mereka punya semua negara dan semua bahasa.
42:40Jadi saya harus membuat semua ini dan mereka memiliki ratusan produk.
42:43Jadi itu mungkin, saya tidak tahu apa itu akan menjadi.
42:46Banyak file, kan?
42:48Dan bagi saya, saya seperti, jelas saya ingin melakukan ini bukan secuensial, tapi secuasai.
42:56Dan itu yang saya lakukan Tapi masalahnya itu membutuhkan setidaknya setengah jam dan 4GB RAM menggunakan Elixir Jadi saya punya saya tidak ingat berapa banyak saya punya ribuan file XML ini
43:08Dan saya harus melalui file ini dan menuju ke atas dan ke bawah XML, untuk mendapatkan data yang saya butuhkan.
43:14Jadi saya coba Xpath, itu terlalu lambat.
43:16Kemudian saya coba metode lain, yaitu membaca file ini secara berat.
43:21Dan menyesuaikan data yang saya butuhkan.
43:23yang bisa kita bahas pada pad matching nanti,
43:25tapi pada dasarnya, saya mencari data yang saya butuhkan.
43:27Itu juga terlalu lambat.
43:29Dan jadi apa yang saya lakukan adalah
43:31saya melakukan Xpath dengan Rust.
43:34Jadi saya hanya memberikan itu ke Rust.
43:37Dan seluruh prosesnya,
43:39akhir-akhir, hanya berusaha 10MB
43:41dan 10 detik.
43:44Jadi, dari setengah jam, 4GB data,
43:47ke 10 detik dan 10MB data.
43:50Wow.
43:52nice I know that passing expert with
43:59really really slow
44:04so there's no language that does it all but that's why I focus on those three
44:15languages but you can see specifically rest at elixir put the two together you
44:19sesuatu yang cukup kuat. Oke, jadi apa yang menurut Anda, kenapa Elixir tidak lebih populer
44:33dari sekarang? Tunggu, atau mungkin itu hanya Indonesia, mungkin di Hong Kong atau mungkin di Amerika,
44:41itu berbeda? Itu bergantung pada apa yang Anda lakukan, jadi mari kita
44:47berulang-ulang, Erlang datang dari Ericsson, yang Anda mungkin sudah dengar, Sony Ericsson.
44:52Mereka populer karena mereka membuat pukul telepon, jadi awalnya Erlang datang karena
45:00mereka memiliki kebutuhan yang sangat sulit untuk diikuti. Ya, mereka memiliki kotak yang menguruskan pukul telepon,
45:08menggunakan pukul telepon dari satu tempat ke lain. Jadi Anda memiliki kebutuhan yang sangat besar karena
45:14Karena ketika kamu upgrade kotak-kotak itu, mereka tidak bisa turun selama begitu lama karena kamu akan mendapatkan penyelesaian.
45:20Karena tentu saja orang-orang perlu menyebut 911 atau 110 atau apapun nomor yang kamu punya untuk nomor kecemasan.
45:25Jadi mereka bisa turun, tapi tidak selama sangat lama.
45:28Hal lain yang harus kamu khawatirkan juga adalah, kamu tidak mau panggilan seseorang untuk membuat panggilan seseorang lain.
45:34Mungkin semuanya turun karena ada bug.
45:37Jadi, error harus diisolasi. Jadi sekarang kamu bisa lihat mengapa mereka memiliki proses dan prosesnya bisa diisolasi.
45:42Karena satu proses, satu thread atau apapun yang Anda inginkan menyebutkannya, jadi di sini, di terma beam, satu proses, menurun.
45:49Ini tidak akan menanggung panggilan lainnya.
45:53Hal lain yang ada, yang kita tidak bicarakan juga, yang sangat menarik, jadi bahasa ini keluar di awal 80-an.
46:00Oh, wow.
46:01Upgrade hotcode.
46:02Sebenarnya, ini lebih tua dari Java, lebih tua dari Python, Erlang.
46:06Jadi, ini juga memiliki upgrade hotcode.
46:07upgrades which if you don't know what that is basically that means that as the system is running
46:13it can be upgraded to the next version without downtime it's like no zero downtime yeah it's
46:23called hot code hot code upgrade hot code upgrade hot code reload is there something else but this
46:28is called hot code upgrade yeah and if you think about that's perfect right because actually there's
46:34video called the early movie you should watch it on YouTube it's very exciting uh so they show
46:41actually in in progress they showed that hey there's a bug it's got a car in the movie check
46:47it out after the show the guys he makes a phone call puts the phone down takes another phone call
46:52makes a call and it causes a bug that call itself goes down they find the bug they they they fix the
47:01mereka mengumpulkan kode, mereka memusukkan kode ke panggung telepon,
47:06dan kemudian mereka mengambil panggung lama, dan mereka berkata, oke mari kita coba lagi,
47:11berfungsi dengan baik.
47:14Ini adalah tahun 80-an, bukan?
47:19Tidak banyak bahasa yang saya pikirkan memiliki upgrade kode keras.
47:23Ya.
47:27Dan ini tidak terbuka, kita tidak perlu melakukan apa-apa.
47:31Well, you have to be able to build the upgrade, but it's built into the VM, it's built into the stuff.
47:38Yeah, without installing any third-party libraries or something like that, yeah.
47:44Well for Elixir they don support out I think so there probably some more stuff you have to do but in any case it possible It definitely possible because it built into the VM untuk elixir mereka tidak mendukung semua box jadi mungkin ada lebih banyak yang harus dilakukan tapi dalam mana hal itu bisa pasti bisa karena sudah dibuat oleh VM
47:52hmmm, baiklah
47:55saya penasaran tentang sejumlah hidup elixir dan phoenix adalah aplikasi web
48:06Jadi itu berarti, saya menganggap seperti Anda memiliki beam seperti VM, seperti JVM dengan Tomcat, Apache Tomcat, Anda perlu memiliki web server, bukan?
48:18Jadi apa itu, Anda masih membutuhkan web server seperti Nginx yang akan berproxy ke VM ini, dalam port tertentu, sesuatu seperti itu, dan Anda masih memiliki load balancer di atasnya?
48:31Anda tidak perlu, sebenarnya.
48:33Oh, kamu tidak perlu, bisa, tidak perlu memiliki proxy depan, tapi kamu bisa, ya kamu bisa melakukan itu
48:39itu berarti kamu mengatakan bahwa Beam bisa berjalan di port 80 dan 443?
48:46Ya, oh, dan itu berarti kamu memiliki routing tertentu di dalam aplikasi sendiri
48:55and it works great because if you think about it remember we talked about processes right so
49:01every request that comes in is his own process so the reason another reason that I do use it is
49:07because if you think about the telephone switches we just as I just explained it fits the situation of
49:13of uh telepon switches fit problem back then Fitches fits the same problems we have now you
49:20want to be able to have one request that doesn't break everybody else's experience on your website
49:23So you have to process isolation.
49:26You want to be able to upgrade your code while people are still using it.
49:30You know, you don't want people to have downtime.
49:31Just kind of like Facebook feels like.
49:34And another thing we didn't talk about too is it can handle a lot of load.
49:40Think about it, right?
49:40I think we just had a cricket match.
49:42I think I heard from some Indian guy.
49:44I think India just won.
49:44That's why he told me.
49:46And so, you know, he wants to be able to call everybody, you know, hey, we won, blah, blah, blah.
49:50Well, so calls, I mean, they happen, right?
49:53and some event happens, everybody gets on the call.
49:55So you want to be able to handle a lot of requests
49:57without taking down the server.
49:59So the way that Elixir works is that
50:01it's actually able to handle a lot of traffic,
50:03but it's going to give equal time to every single process.
50:07So if you have a lot of people using your server,
50:10then they may get a slower response time,
50:12but at least they're still going to get a response.
50:14Up until a certain amount, but that's a different thing,
50:16but it can still handle a lot of traffic,
50:18which is what a telephone switch should handle,
50:20and also your website should be able to handle lots of traffic too.
50:23I haven't really got a mental image of how to deploy Phoenix web app, but found that article is, can you please open it?
50:37Yes, sure.
50:39In the Alexa Gazette, I think they show you how to deploy it. It's actually pretty simple.
50:45It's like a mix release command that's actually built into the app.
50:47ya saya dengar tentang mix untuk membangun aplikasi yang mirip dengan npm
50:54Anda dapat melihat di dokumentasi juga
51:00ya ada deployment di sini dengan perangkat lain atau flyio atau apapun flyio adalah yang paling
51:08konvinien one like Heroku something like that it's a cloud server
51:19it's a it's a paas push as a service so you just do get push basically
51:25well actually no they have their own thing it's similar to to push
51:28ya you can just type a fly launch and they automation all the thing including creating
51:40the docker file or something this is similar to Google up engine as well right to those time up
51:47engine I think it runs something like a Google app engine you have your own version of postgres
51:54dan hal-hal seperti itu.
51:56Ya.
51:58Saya juga memiliki beberapa video di situku juga
52:02di channel Youtube saya yang menunjukkan
52:04cara mengupload ke VPS.
52:06Ini tidak terlalu sulit seperti yang Anda pikirkan.
52:08Pertama kali, seperti dengan aplikasi lain,
52:10akan membutuhkan beberapa waktu.
52:12Tapi setelah Anda melakukannya pertama kali,
52:14itu cukup mudah.
52:16Tapi Anda masih memiliki latensi
52:19karena mungkin menggunakan postgrade di belakangnya
52:23dan database itu terlihat terburu di connection database aplikasi itu menjadi lebih lambat dan kamu harus menangkal akhirnya kan dengan aplikasi apa biasanya biasanya database akan menjadi yang paling lambat ya itu yang paling lambat
52:39sebenarnya, ini adalah kesan penggunaan yang menarik
52:43kesan penggunaan yang lama, hal-hal yang berubah sejak itu
52:46tapi itu kesan penggunaan yang bagus
52:48ada, tunggu
52:50ada sebuah perusahaan yang disebut
52:54Bench, oh wow, apa namanya?
52:58I forgot the name now
53:01I'll see if it comes to my mind
53:02They had a hundred and
53:05At least a hundred and twenty servers
53:07They had a mixture of Java with Ruby
53:09And some other stuff
53:10Then they replaced everything
53:13With Elixir
53:14Went from at least a hundred and twenty servers down to five
53:17And they claimed
53:19That they can turn off
53:20Yeah, Richard Report, that's right
53:22It's well reported, they talked about it
53:25A lot, this is a very old article
53:27and even old report right is they said that they had five servers and they could take it down to
53:35just two just because they need redundancy they removed all their caching layer too
53:42so they didn't really have any caching it was just reading straight from the database or wherever kind
53:47of stuff at the head and they had a lot of very specific content right so if you if you like sport
53:54and that's for B or C you'd login you not see B or C you only see sports a stuff is very particular
54:02to how you like your sports content the scene this one right yeah it's over it's over party
54:152017 sorry I told you it's a hundred twenty hundred fifty in this article to just five
54:20dan mereka juga bilang bahwa mereka bisa menyalurkan 3 dari mereka, kalau saya ingat benar
54:25dari Ruby on Rails Monolith ke Elixir Phoenix ya
54:32mereka juga punya Java juga, kalau saya ingat benar
54:35saya pikir itu hanya untuk mengurus push atau sesuatu, untuk beberapa pekerjaan spesifik
54:40saya lihat, oh menarik
54:44hurtling streaming or something light website
54:53sendok
55:01to program
55:03revolution
55:05사건
55:06you can subscribe to multiple channels
55:12So with one website connection you can have multiple different topics coming in okay now I'm so
55:19strange though so I got into web development of some eight and nine ten years ago like I was
55:36learning by myself look look for resources online none of the resources I found like none of the none
55:44of the websites or you know CSS tricks or whatever they hardly mention of Phoenix as an option for
55:54learning web frameworks it was always well the basic of course ACM lcs javascript obviously but
56:02dan ketika itu, saat itu, lalu ya php dan larafel sangat populer di indonesia jadi tentu saja
56:12banyak sumber, tapi selain itu, hanya react hanya memulai dan kemudian setelah itu seperti
56:1912 view tapi saya tidak tahu, oh ya ada ya dan semua spin-off dari framework berdasarkan react, tapi
56:28Tapi, tidak ada orang di luar dari ekosistem Fenix dan Elixir itu yang menulis banyak konten tentang Fenix.
56:39Itu adalah perasaanku. Saya tidak tahu apakah itu sudah berubah setelah beberapa tahun.
56:45Ada streamer besar yang membicarakannya sekarang. Ada yang bernama Theta. Dia membicarakannya banyak saat ini.
56:52Theo?
56:54Tidak, saya lupa.
56:57Oh, tidak.
56:59Dia punya rambut putih di rambut.
57:01Itu saja yang saya inginkan.
57:03Ya, ya.
57:05Ya.
57:07Jadi dia mengucapkan banyak hal.
57:09Seperti yang kamu lihat, dia punya 299K.
57:11Saya pikir dia lebih besar dari itu.
57:13Saya pikir dia ada di miliaran.
57:15Banyak orang ini sebenarnya berbicara banyak tentangnya.
57:17Ini hanya...
57:19Ini butuh waktu, ya?
57:21Salah satu hal yang saya paksa untuk elixir di pekerjaan sebelumnya, dan jawaban dari manajer saya adalah,
57:29kalau kalian lihat di lantai, kita semua melakukan Java dan React, itu berarti ide kalian tidak akan berhasil.
57:35Bukan karena tidak akan berhasil, tapi karena dia ingin mengatakan bahwa ide kalian adalah gila.
57:39Mungkin saya membaca terlalu banyak, tapi itu adalah artinya.
57:44As you can see, we're all smart guys, we're not using Elixir, we're doing good stuff, we're using Java and React, therefore we're doing the right thing.
57:54And your idea is too radical and doesn't make sense.
57:57But there's a lot of benefit to it.
57:59I mean, how can you go from 150 servers down to 5?
58:03I mean, how much money can you save?
58:05There's a lot of articles.
58:06If you look up Elixir and save money, you'll find a lot of articles about people who switched and they saved a lot of money.
58:13dari itu ya saya pikir pinterest juga pinterest ya mereka menggunakannya untuk spam atau sesuatu
58:21seperti itu periksa ini untuk beberapa Google menggunakannya juga sepertinya Anda ingat bahwa Google
58:26yang keluar beberapa minggu lalu mereka memiliki elixir di sana sesuatu ya ya ya dan mereka
58:32menyebutnya ya dan kemudian dan itu leak Adam mereka menyebutkan tentang elixir di sesuatu
58:39saya lupa apa itu sebenarnya oke tapi kita bahkan tidak membicarakan Phoenix Live view yang saya pikir adalah
58:45pembalas dapur besar hmm dan selalu banyaknya raih jadi yang saya suka tentang raih adalah
58:53raih selalu terasa seperti selalu membawa sesuatu yang baru ke atas meja mereka memiliki pipeline aset
58:59mereka memiliki banyak hal lain yang berbeda yang berbeda dengan mvc semua hal ini adalah ide baru
59:03Once I came to Elixir and Phoenix, Phoenix started having new ideas that people were not having before.
59:10One of the best ideas that came out most recently is LiveView.
59:15So LiveView is basically SSR server-side rendering.
59:20So we talked about channels before, right?
59:22So this one's actually built on top of channels.
59:25So what happens is that you have a single template.
59:28website web browser goes there and the whole page as a static template
59:34then you connect over web socket and you're going to fresh rendering of that same site
59:40in the background will be sent over web socket to you
59:46lifewire-livewire-livewire-livewire-livewire because it came from liveview it was it was
1:00:01came you know that came from it but it means inspired by it first game is a life life you
1:00:08dan ada hotwire di Ruby on Rails, dan livewire di Laravel.
1:00:15Ya.
1:00:17Oh, family of wire.
1:00:21Banyak, banyak.
1:00:23Ya, jadi, mereka benar-benar menghabiskan banyak, banyak, banyak waktu untuk membuat ini efisien.
1:00:32So you're just sending down the change after you have the initial load after web socket.
1:00:39So if it's just one character change, you're only getting one, like one, basically one change, one character change across.
1:00:46Super, super, super efficient.
1:00:49And it doesn't have to be first, so usually what happens is that you, what happens is that you do some event, right?
1:00:54You send the event down the wire, down the web socket to the other side.
1:00:58Logic happens, you send back the diff of HTML back to you.
1:01:02But you can also just have it one way direction.
1:01:05So you can have, you're just sitting there and you can have pub sub updates on the server side that gets broadcasted across.
1:01:12So like a chat application, you can definitely build it.
1:01:16Or, you know, AI stuff like you stream the response.
1:01:20Whatever you like.
1:01:22But the point is that you don't have to always do something in order to get something back.
1:01:25I mean and the good part about this part over here it's very clear right so you have your
1:01:33weekend kind of walk through this very quickly you have used Phoenix live view that's got some
1:01:38magic to it I'm not going to talk about that this render function that's your template
1:01:43so you have that what's the templating language like it's a ML or like it's called the Heeks
1:01:54HEX.
1:01:56HEX.
1:01:57Jadi, HEX adalah...
1:01:59Karena, pada dasarnya...
1:02:01Jadi elixir datang dengan EEX Yang disebutkan seperti elixir yang lebih baik Atau lebih baik mungkin Itu bisa jadi apa saja Itu bisa jadi file teks Saya menggunakan EEX untuk membuat PHP which is called like embedded elixir something and it called a better lecture maybe it could be anything it could be a text file that could I was using I was using ex to create those PHP files
1:02:13but he is HTML aware ex so it has to be valid HTML so if you have some invalid HTML say a missing
1:02:23closing tag it's not going to compile yeah you can use string like this or you can create a new
1:02:30file hix yang memiliki ini, seperti partials, ya, dan jadi itu template, kemudian fungsi mount
1:02:43diangkat dua kali, seperti saya katakan, penumpang pangkat awal dan juga pada koneksi koneksi web.
1:02:48state inisial, ini state inisial, ya, benar, jadi Anda menandakan, jadi dalam kesempatan ini Anda menandakan
1:02:54variabel suhu ke 70 dan kemudian Anda menetapkan suhu yang disesuaikan ke soket dengan 70
1:03:01dan dihantar ke klien, dan soket kemudian menggunakan tanda dan
1:03:09template, jadi Anda melihat suhu di sana, ini, ya
1:03:16dan kemudian Anda memandu acara, jadi itu setiap acara terjadi karena Anda dapat memiliki klik, Anda dapat memiliki
1:03:20Anda tahu hover apa-apa jenis event yang Anda bisa hantar dan Anda bisa melihat di sini ini
1:03:26klik phx ya nama eventnya adalah klik phx dan akan menarik temperatur peningkatan
1:03:34dan event fungsi di sini ya jadi jika Anda belum pernah menggunakan elixir sebelum ini bisa menjadi sedikit
1:03:40mengganggu pada dasarnya ini disebut pattern match jadi Anda melihat temperatur ink ini ya itu
1:03:46Itu berarti harus 100% sama dengan nilai.
1:03:49Ya.
1:03:50Oke.
1:03:53Yang ini, ya, antara server dan klien,
1:03:58itu seperti ping pong, web socket, kan?
1:04:01Selalu terbuka, kan? Karena itu seperti web socket.
1:04:05Ya.
1:04:07Ada yang bilang koneksi web socket sangat mahal.
1:04:11Mengapa nilai Infinix murah?
1:04:15Proses elixir di Phoenix, proses elixir di general, maaf, cukup murah.
1:04:22Mereka sekitar 1 kilobit memori.
1:04:24Diferentiasi dari Threat, Threat cukup besar.
1:04:33Jadi kalau ada Threat, akan mengambil banyak lebih dari itu.
1:04:36Mereka bisa tumbuh lebih besar dari 1 kilobit, tapi mereka mulai dari 1 kilobit.
1:04:40ya jadi itu bukan hanya proses tapi itu harus menjadi satu tapi
1:04:47Anda harus memiliki satu aplikasi yang berjalan yaitu beam, VM seperti itu selalu berjalan
1:04:54tapi di beam akan ada proses, proses kecil.
1:04:58mari kita bicara sedikit tentang beam, sehingga lebih masuk akal
1:05:03karena meskipun saya bilang ini tidak akan membuat banyak akal, jadi biarkan saya bilang sedikit lebih
1:05:08jadi cara beam berfungsi adalah,
1:05:12ada sesuatu yang disebut scheduler, atau sebenarnya ada beberapa scheduler
1:05:16jadi, komputer biasa sekarang, apa yang ada, seperti 6-8 core?
1:05:20sesuatu seperti itu?
1:05:22jadi, web server bisa, jika itu mesin pipit
1:05:26bisa hanya 2 atau 4 core
1:05:28ya, apa pun, saya cuma berbicara tentang mesin lokal, tapi oke
1:05:32kita katakan, web server biasa, ada 2 core, 1 yang murah
1:05:36Jadi, itu berarti Anda memiliki dua scheduler yang berjalan.
1:05:38Jadi, itu berarti Anda bisa berjalan dua proses bergantung.
1:05:44Jadi, jika Anda melihat gambarnya, terima kasih Riza, ini adalah website Anda, saya rasa.
1:05:51Ya, ya. Saya mengambil ini dari Sasa Yuris.
1:05:57Anda mengambilnya, Anda mengambilnya, bukan?
1:05:59Saya mengambilnya, ya.
1:06:01So, for every single core you have, you have its own scheduler.
1:06:08And a process goes into like a hibernate state.
1:06:13If it has nothing to do.
1:06:17So, it won't be run.
1:06:18So, you're not wasting anything on it.
1:06:23And so, that's how the scheduler works.
1:06:26It looks for processes that have work to do.
1:06:29mereka menggunakan mereka untuk sekitar 2.000 mereka mengatakan mereka reduksi, pada dasarnya panggilan fungsi
1:06:33sekitar 2.000 panggilan fungsi, dan kemudian mereka memperbaiki dan melakukan proses berikutnya
1:06:37itulah cara memiliki kerja yang sama
1:06:41dan jika satu scheduler memiliki lebih banyak kerja dari satu scheduler
1:06:45dan sebenarnya scheduler lain bisa mengambil kerja dari scheduler lain, jadi
1:06:49kita memiliki balasan kerja yang berlaku jadi scheduler schedule works like a message queue
1:07:01Like
1:07:01a message queue?
1:07:04Like a queue.
1:07:05Yeah, it works like a queue.
1:07:07It does, okay, you do
1:07:092,000 function calls, okay, you're done, pause you,
1:07:12you go to the end of the line, next person.
1:07:14And it does that
1:07:15in order. And if the process
1:07:17has nothing to do, no work to do, it's just waiting
1:07:19untuk melakukan sesuatu, tidak pernah digunakan, jadi tidak ada waktu yang dibuang.
1:07:25Jadi jika Anda memiliki koneksi web yang tidak memiliki apa-apa yang bisa Anda lakukan, itu murah,
1:07:29hanya duduk di sana melakukan apa-apa, itu membawakan Anda tidak punya waktu CPU, hanya memiliki memori.
1:07:36Oke, itulah mengapa murah. Ya, prosesnya sangat murah, Anda bisa membeli
1:07:42lebih dari sejuta proses di mesin Anda, sangat murah.
1:07:471 juta proses sangat murah untuk dilakukan.
1:07:52Oke, jadi web socket itu tidak berjalan melalui engine X, tapi melalui beam, kan?
1:08:03Itu yang membuat perbedaan dari web socket biasa.
1:08:08Saya ingin tahu apa yang Anda maksud dengan web socket biasa.
1:08:11Maksud saya, Anda harus mengikuti protokol, kan?
1:08:13ya mungkin mungkin sesuatu seperti ini seperti nginx bekerja di koneksi pekerjaan seperti itu memiliki
1:08:20koneksi pekerjaan yang ingin nginx seperti jika kita berjalan seperti nginx di server web 2 core
1:08:28itu berarti kita memiliki dua proses tetapi kita dapat memiliki ribuan koneksi pekerjaan
1:08:32nginx tergantung pada konfigurasi Anda tetapi katakanlah 1000 koneksi pekerjaan itu artinya
1:08:39one uh if one web socket comes it just occupied one worker thread of nginx so that really one
1:08:46web socket takes one worker thread yeah until until it stopped but a worker thread is an actual thread
1:08:52or is it not uh it's an actual look at it if I'm not mistaken it's it's it's keep opening that
1:09:05ke-3 skip live until it's top that's why it's expensive so if yeah and this cross uh that's why
1:09:13uh if we have a lot of keep a life connections um the it could end up bottleneck in nginx process
1:09:21that's why it's expensive uh yeah it's nginx not convention Apache also have the same fall on the
1:09:34issues with this uh this uh keep alive or socket or streaming connection okay yeah i mean it's
1:09:44nothing to do about nginx if you just i mean i because i usually have nginx in front of it i
1:09:48haven't had an issue but i don't have thousands of people connecting usually to my services
1:09:52but you like i said you can also run it directly you don't need to have some type of front load
1:09:57balancer you can directly connect and as i said before it's about a kilobyte i mean max so what's
1:10:04Bagaimana besar pangkalan HTML? 5 KB?
1:10:08Dibanding 10? Dibanding 1.000?
1:10:11Maksud saya, Anda bisa memiliki banyak memori, tidak akan memakai Anda banyak.
1:10:14Dan juga Anda bisa menyebarkan ini.
1:10:15Jadi, hal lain yang tidak kita bicarakan juga,
1:10:19adalah, lagi, mari kita bicara tentang
1:10:21bagian networking.
1:10:24Saya hanya memberikan Anda
1:10:25sebuah buah buah informasi di sini,
1:10:27karena ada banyak yang harus dilakukan.
1:10:31Ada networking yang dilakukan
1:10:32networking with Erlang therefore elixir has it too you can connect them so if you can have five
1:10:39machines you can scale horizontally you can have five machines and you can network them
1:10:45and so you can see all the people connected too
1:10:50okay so that way you have so like let's say you have a chat server you got you got five servers
1:10:55you have ten people on each server you can as long as they're networked together you can actually see
1:11:01each other you can you can have the same information being passed back and forth between them
1:11:07okay maybe I'm not explaining this I feel like I'm not explaining this very easily um is this is
1:11:12this the I like I think the VM is actually already connected it has built-in networking
1:11:23system right yeah we talked about this with its system right yeah it's got built-in networking
1:11:28Terima kasih Jadi kamu punya dua proses yang berfungsi secara paralel mereka punya kerja yang berfungsi secara konkurren dan mereka ingin bekerja bersama Mereka bisa mengirim pesan kembali dan kembali
1:11:47Jika kamu menghubungkan mesin, kamu bisa menghubungkan data dari satu mesin ke lainnya.
1:11:53Dan itu adalah metode yang sama.
1:11:57Yang hanya kamu butuhkan adalah ID proses PID.
1:12:00Jadi seperti kamu pergi ke Control-Alt-Delete, kamu menemukan proses, kamu membunuhnya, bukan?
1:12:03Ya.
1:12:04As long as you have the process ID, you can kill it from there using command line using Linux.
1:12:08Same thing.
1:12:09If I have the processor's ID, no matter which machine it's on, I can send in the message.
1:12:13As long as I have the PID, the process ID.
1:12:20That's why...
1:12:23Because if we roll back again, where does it come from?
1:12:26It comes from telephone switches.
1:12:28One switch has to talk to another switch, right?
1:12:30We have to share the data.
1:12:34Saya melihat.
1:12:36Oke.
1:12:38Sekarang, yang kita belum bicarakan juga,
1:12:42sekarang, alasan saya ingin membawakannya, karena saya benar-benar melangkahkan langkah, dan itu pada saya.
1:12:46Sesuatu yang lain yang juga dibina di
1:12:50Phoenix,
1:12:52yang disebut Presence. Reza, saya pikir Anda tahu tentang yang ini, bukan?
1:12:55Ya.
1:12:57Jadi, apa Presence?
1:12:59Ya, Presence di Phoenix.
1:13:01So, remember I thought that you can make a chat with this using either channels or live view or even a mixture of the two.
1:13:08Presence will track who is logged in.
1:13:12So, you can see, you know, Risa's on, you can see Eka's on, Ivan's on.
1:13:17Eka dropped off for a second.
1:13:19There's a presence thing that can actually sync us all up.
1:13:21So, each of us can be on a different server.
1:13:23As long as the machines are networked, it'll actually share the presence information across.
1:13:27That's built out of the box
1:13:32There's nothing you have to do
1:13:33As long as you're using presence
1:13:35So as you can see
1:13:41This is one of the few languages out there
1:13:43That scales both horizontally
1:13:45And vertically
1:13:46Vertically meaning you can add more resource to a single machine
1:13:49Horizontally you can scale
1:13:51By adding more machines
1:13:52As long as you network those machines
1:13:55They can work together
1:13:56it's
1:14:05it's
1:14:12processing information
1:14:15I'm out of
1:14:19I'm kind of
1:14:22I'm trying to
1:14:23so I'm trying to throw you a lot of information
1:14:26Maybe it's too much.
1:14:29But one thing though, one important thing, you know, to persuade whoever in your team at work or client or something, one argument, cost saving.
1:14:40They will all be, okay, I'd like to try a new step. No way. Cost saving. Yes, please.
1:14:47It could work. I mean, you can definitely bring up.
1:14:49The way I saw it, as I said, oh, we can track people, right?
1:14:53Because the business love that they can track people and yeah we can and and what I'm talking about
1:14:58tracking people the more so to see which pages are being used by which people and how much time
1:15:05are they spending on the page and it's strictly not to try to like you know be a creeper but just
1:15:09to try to understand where what are my customers doing on the app so we can actually track people
1:15:14that way that's more so of the tracking I was interested in in doing and using presence we
1:15:20itu dengan sangat mudah. Ya, menarik. Jadi kita bisa membuat sesuatu seperti analitik.
1:15:30Ya, karena secepatnya mereka terhubung.
1:15:36Ya, dan ini hanya menggunakan primitif yang dibuat dalam bahasa, dibuat dalam OTP, karena
1:15:41pada dasarnya Anda memiliki pengurus yang mengira berapa banyak anak yang memiliki, yaitu setiap anak
1:15:46adalah hubungan yang berbeda. Jadi secepatnya orang itu menutup tab, proses itu mati,
1:15:52sehingga anak-anaknya telah menurun dengan menambahkan 1, Anda hanya melakukan hal yang sangat sederhana
1:15:56pada saat ini. Saya berpikir sekarang, kes lama yang saya lakukan dengan Node.js untuk
1:16:07the Concurrency thing here is about the life score well I did have a sports website they need to track
1:16:18a life score which is of the NFL that is really uh yeah they need the score to be as real time
1:16:28Possible, this is a spot site and at the time I solve it with the application but the website
1:16:38for is all PHP but it doesn't get it cannot handle the amount of data is exchanging so I
1:16:45with a
1:16:48note.js at the time and behind it is a message to keep protesting behind it
1:16:59with the same case I think even though I cannot change the entire page
1:17:08to use Phoenix but I can make a web component that talks with the for example Phoenix sorry Alexir at
1:17:17the back end instead of the node.js to handle this data exchange with this uh uh web socket with
1:17:25channel and do the processes to keep updating with the their time score that could be a good case to
1:17:34ya is it well-well Phoenix has pop-up built-in you don't need to bring in any kind of existing
1:17:43pub sub mechanism like reddish things like that yep so and then also the channels are actually
1:17:48on top of pub sub so you can send one message to everybody on the channel so if you're watching
1:17:55one specific game broadcasting yeah yeah it's broadcasting it's actually called broadcast it
1:18:01so very interesting article if you go to phoenixframework.org they have a blog section
1:18:07november 3rd 2015 two million socket connections within phoenix nine years ago 2015
1:18:172015. the road to two main web socket connections that's it the road that's it that's it the road too
1:18:26So that one instance, it's a very very beefy box, and they list the size of the box, because two million people on one server, that's even one kilobyte, it's a lot of connections.
1:18:39So, they had to do some special stuff, but nothing too crazy, they talked about what they do.
1:18:45So here we go, 15 gigabytes of RAM.
1:18:4815 gigs of RAM is not difficult.
1:18:51For entire Twitter.
1:18:53For two million connections, right?
1:18:55Tapi itu tidak banyak, hampir 0% sepanjang waktu.
1:18:59Ya karena seperti yang saya katakan sebelumnya, jika tidak ada apa-apa yang berlaku, itu tidak melakukan apa-apa.
1:19:05Dan mereka sebenarnya menguji dan mengirimkan satu mesej yang hanya membutuhkan beberapa saat, saya pikir.
1:19:15Mereka mengulangnya ke akhir, berapa lama itu membutuhkan, beberapa saat saya pikir.
1:19:20Tapi ada juga artikel dari WhatsApp, karena WhatsApp menggunakan Erlang.
1:19:25WhatsApp sudah menghubungi 1 juta dan 1 kotak atau sesuatu.
1:19:30Itu artikel lama juga.
1:19:33Ya, dan dengan tim kecil dari tim pengisian, kan?
1:19:39Ya, ada sekitar 50 pengisian.
1:19:4150, 50.
1:19:445.0
1:19:45yang ini mereka hanya berbicara tentang mereka harus melakukan beberapa hal
1:19:48jadi mereka sebenarnya harus mengedit kotak untuk membuatnya menerima lebih banyak koneksi
1:19:53jadi bukan masalah elixir yang perlu diterima, Anda bisa melihat ini tentang
1:19:56mengedit Linux dan menambahkan lebih banyak koneksi
1:20:00jadi Anda tidak berhenti dengan servis Anda berhenti dengan sistem Yeah the operating system Default config Default config operating system yeah
1:20:11So this part they're talking about how they found a bottleneck.
1:20:15So they got the 30,000 and it's too many.
1:20:18So they found an issue, it's pretty easy.
1:20:20So if you scroll towards the end, if you can get the final stuff.
1:20:24It's really interesting if you actually read all the stuff.
1:20:26This thing called the observer is actually built into it too.
1:20:29kita belum bahas bahas itu bahkan bahkan saya mencoba untuk membukanya tetapi
1:20:36itu gagal jadi saya tidak bisa menunjukkan Anda melihat kotak ini terlihat seperti sesuatu hal profesional
1:20:42kan mungkin control to lead sesuatu seperti itu tidak ini dibina ke Irlang jadi jika Anda memiliki
1:20:48sistem berjalan Anda dapat membuka terminal ini Anda dapat melihat Anda tahu apakah peningkatan
1:20:53di mana semua apa yang berlaku, proses mana yang menggunakan semua data saya
1:20:57Ya, itu yang ini. Jadi Anda bisa berhubungan dengannya.
1:21:11Ini menarik, sangat menarik.
1:21:16Ada yang menyebutkan...
1:21:18there's an inertia plugin
1:21:25maybe you guys
1:21:28when I was off
1:21:30I don't know but it's pretty neat
1:21:32so you can basically
1:21:33you can basically use
1:21:36any of your favorite
1:21:38UI from N library
1:21:40with Phoenix
1:21:42the root question is this
1:21:45can we use React
1:21:46server side rendering
1:21:48in lifeview.
1:21:50I think there
1:21:54that's a good question. I'm sure somebody's worked on that.
1:21:58I did see there's definitely some libraries with React and Elixir with liveview.
1:22:04So it may be possible. I haven't looked at it.
1:22:08But with liveview I don't really see a reason to actually not use it.
1:22:14client-side-3, ya, pasti, karena sudah ada integrasi inertia, tapi, apa yang saya katakan, Ara?
1:22:21oh, inertia, ya.
1:22:22ya, inertia, ya.
1:22:24jadi inertia adalah render server-side?
1:22:27bukan, itu seperti library plugin untuk menggabungkan client-side untuk client-side UI.
1:22:35Saya tidak tahu jika sekarang mendukung server site juga, tapi secara fondamental, seperti,
1:22:42secara asli, ini untuk client site. Saya pikir begitu. Saya pikir ini adalah server site rendering, bukan?
1:22:49Tapi saya tidak yakin juga. Saya harus melihat, terlalu banyak hal untuk melihat
1:22:56ya oh it has a server site rendering section experimental
1:23:08well yeah server set rendering this one yeah there is a section at the end
1:23:16ya just open the GitHub repo oh sorry sorry sorry
1:23:23sorry
1:23:27nice
1:23:39dan kita bisa memiliki sedikit waktu untuk melihat skor hidup at pops up and we can have a little time little time uh life score yeah application
1:23:52in in the Phoenix live view right yes
1:24:00Wow oke.
1:24:06Ada yang mau dikatakan? Ada pertanyaan lain?
1:24:12Atau ada yang kita lupa
1:24:16untuk dikatakan atau dijelaskan?
1:24:20Wow, ada banyak yang bisa kita bicarakan.
1:24:24Tapi kita sudah membicarakan semua.
1:24:28Maybe part 2.
1:24:30Maybe part 2.
1:24:32I mean, did you want to go over any questions in the...
1:24:38in here or no?
1:24:42Or shall we call the day?
1:24:44Maybe we can...
1:24:46Can you use Rust in Elixir?
1:24:48Yeah.
1:24:50We can use Rust, right?
1:24:53Rust, Zik, and see the question went that way.
1:24:57Oh ya.
1:25:04Maaf, ada pertanyaan?
1:25:07Bisa kita menggunakan Rust atau Zik atau C di Elixir?
1:25:14Ya, jadi pertama mereka mendukung C, mereka berarti orang-orang di Erlang.
1:25:19Mereka membuat sesuatu, jadi pada dasarnya itu disebut NIF, Function Implemented Native.
1:25:24So the very first thing they supported was C
1:25:26And then they also allowed Java
1:25:29And
1:25:30Using J interface but nobody really uses that
1:25:33They say you shouldn't
1:25:35Use that
1:25:35But yeah nowadays you can definitely use
1:25:39Rust as I said I used Rust before
1:25:40I used something called Rustler
1:25:41A lot of people are using
1:25:43What's the other one you called
1:25:46Is it called GIF
1:25:48Or Zig sorry
1:25:49So there's something called Ziggler which is the same thing for
1:25:52ya itu yang sama untuk Zig. Oh ini adalah fungsi Erlang bukan elixir. Ya, Erlang nifs
1:26:06disebut fungsi yang dilengkapi native. Jadi Anda lihat di sini nif adalah fungsi yang dilengkapi di C
1:26:10Oh, oke.
1:26:14Jadi, Zig dan Rust
1:26:16akan berkompilasi
1:26:18ke sesuatu yang seperti C.
1:26:23Jadi, apakah Anda menggunakan Rust atau C
1:26:26atau Zig, Anda semua
1:26:28berkompilasi ke NIF.
1:26:29Kepada NIF.
1:26:35Terima kasih.
1:26:36Thank you.
1:26:39And now I just realized that Erlang using hex docs or documentation framework from Elixir.
1:26:50Yes, so Erlang has finally gone into the 21st century and started using...
1:26:55What did it use previously?
1:27:00I think you can still find it if you go to... you have to be able to find the old ones.
1:27:05yang lama. Itu sangat buruk, pada dasarnya. Maksud saya, itu berguna, tapi itu tidak sebagus yang Elixir.
1:27:12Oh ya ada yang lama tapi saya tidak bisa menemukan yang lama karena mereka mengubahnya ke yang baru Ya mereka mungkin sudah menghilangkan itu sepenuhnya saya tidak yakin bagaimana mereka melakukan doks lama dengan mesin pembuatan
1:27:30dengan mesin pembuatan, ide yang bagus
1:27:34ya ya
1:27:36seperti web page pertama yang dibuat oleh Barsern
1:27:41HTML, CSS, JavaScript dengan link putih dan biru
1:27:49ya alright any other question that I miss Oke let's wrap it up for you
1:28:00YouTube channel
1:28:03I have a couple of them but you can specifically about
1:28:13alixur stafit justru plan gore
1:28:16i'm not sure if i even have
1:28:17i'm not sure if there's even a specific name for it or not
1:28:22yup there is
1:28:25is there a slash something i don't even know
1:28:27youtube
1:28:31this one
1:28:33yup so i plan to add more
1:28:37alixur videos pretty soon
1:28:39because i used to create a lot of content at least 1 to 2 a week
1:28:42tapi sudah lama saya tidak post sesuatu
1:28:45oh bagus
1:28:47jadi ya, tekan subscribe
1:28:52dan jika
1:28:55dia ingin berhubungan dengan Anda
1:29:01oh, Riza, Anda tahu itu sudah karena Anda mengikuti saya hari ini
1:29:09Yes on X or Twitter ya ya ya I don't post a lot but if you go to extra com slash Alan
1:29:18why my yellow enwyma ya you'll find me there oke oke that's it for tonight thank you very much thank
1:29:30for the explanation for all the information the information overload right information
1:29:41yeah hopefully we can yeah we can do part two which a lot more audience and
1:29:58uh ya uh and if uh if people want to know more about elixir and erlang uh maybe you can join
1:30:10the erlang elixir asia meetup right in the meetup.com yeah okay that's it maybe when
1:30:21Kapan yang berikutnya? Oh, pasti ikuti grup dan kamu akan mengetahui karena saya tidak yakin.
1:30:29Semoga bulan ini kita akan mencoba untuk melihat apa yang bisa kita lakukan.
1:30:33Oke, oke. Jadi, ya, jika Anda tertarik dengan Elixir & Erlang, tolong ikuti grup berjumpa dan mungkin jumpa minggu depan.
1:30:50That's it from us. Bye-bye.
Suka episode ini?
Langganan untuk update episode terbaru setiap Selasa malam!
Episode Terkait
17 Apr 2024
Ngobrolin OOP di JS - Ngobrolin WEB
Yuk mari kita diskusi dan ngobrol ngalor-ngidul tentang dunia web. Agar tetap up-to-date dengan teknologi web terkini. ...
26 Jun 2024
Ngobrolin Layout Email - Ngobrolin WEB
Yuk mari kita diskusi dan ngobrol ngalor-ngidul tentang dunia web. Agar tetap up-to-date dengan teknologi web terkini. ...
8 Okt 2024
Ngobrolin Deno - Ngobrolin WEB
Yuk mari kita diskusi dan ngobrol ngalor-ngidul tentang dunia web. Agar tetap up-to-date dengan teknologi web terkini. ...