Jangan gunakan NodeJS sebelum nonton video ini!
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.
0:12Hai, hai, hai. Halo, selamat malam.
0:19- Halo. - Selamat malam.
0:21Akhirnya kita ketemu lagi di hari selasa ini.
0:25Gimana kabarnya semua?
0:29- Kabar baik. - Sudah kabar baik ya.
0:32Sudah sehat-sehat semua ya.
0:34Teman-teman yang nonton juga mudah-mudahan sehat.
0:37Seperti biasa, ketemu lagi dengan kita bertiga.
0:41Ada Eka, ada Irvan, dan ada saya Riza.
0:43Di acara yang selalu ditunggu-tunggu setiap selasa malam, yaitu angel.
0:48- Ngobrolin weh. - Ngobrolin weh.
0:51- Propnya beda gitu. - Iya.
0:55Biar enggak dibilang EI kan, harus berbeda.
0:59Lain kali kita harus latihan, latihan.
1:03Biar enggak, biar enggak bosan ya.
1:07Oke, di sini sudah terlihat ada beberapa orang yang sudah nggak sabar.
1:14Andre, halo, Audi, Hai, dan ada Ari.
1:19Ayo, siapa yang ke Surabaya?
1:22Ini si Devis Surabaya.
1:26Belum ya, belum.
1:28Dispel lagi tuh sama Audi.
1:30Ayo Pak Dika, ikutan.
1:36Ayo, jangan tanya kita ya, tanyanya ke Pak Dika ya.
1:39Kita udah ngajak selalunya.
1:41Atau malah kita yang masuk channelnya dia.
1:43Oh iya, kayaknya gitu sih.
1:46- Kayaknya gitu sih. - Nanti-nanti ya lah.
1:49Tunjukin apa?
1:51Iya, sebenarnya kita pengen ngundang.
1:56Tapi juga di satu sisi yang lain ini bukan kewajiban kan.
Lihat transkrip lengkap
2:00Jadi ini juga bukan acara spesifik khusus GDE gitu juga bukan.
2:05Jadi bebas aja, mau join kita akan senang sekali.
2:10Kalau mungkin ada kerjaan mungkin di hari Selasa nggak cocok waktunya.
2:14Atau nggak ada bandwidth untuk ngikutan, ya apa boleh buat gitu kan.
2:18Kita tunggu saja.
2:21Oke, halo. Ini teman kantor nih dulu, Rantaru.
2:27Tahu kenapa kita sekantor dulu? Lupa saya.
2:32Kapan terakhir kantor, Mas Risa?
2:34Hari sekemarin kali.
2:38Ini teman kantor yang lama sekali, 2005 ya?
2:42Uy, lama banget. Belum jadi programmer saya.
2:49Oh iya, begitulah. Enggak sih, nggak 2005.
2:542005 Mas Risa sudah kantor.
2:57Wow.
3:00Umur berapa, Mas?
3:01Oh dia, 2012. Mas saya 2012.
3:04Enggak, 2012 itu saya sudah pindah dari kantornya dia.
3:12Anyway, hari ini kita akan membahas tentang perkembangan JavaScript di backend,
3:21yaitu node.js salah satunya ya.
3:23Oke, daripada bahas sejarah kantor lebih baik bahas JavaScript server-side.
3:29Ini kita sebenarnya nggak ngomongin spesifik node.js karena sekarang di backend sudah banyak
3:37yang bisa menjalankan JavaScript juga selain node.js ya.
3:40Ada boon, ada deno, ada cloudflare worker, ada AOS lambda, ada function ya.
3:50Versel juga ada function, Netlify juga ada function walaupun dalemannya itu juga kan.
3:56Versel sama Netlify sebetulnya ya pakai AOS juga.
4:01Jadi sekarang JavaScript sudah bukan hanya dikuasai oleh node.js saja di sisi backend.
4:09Dan malam hari ini kita akan lihat beberapa update-update karena udah lama juga kan.
4:14Kita kayak si node.js ini udah versi stabil, orang udah biasa ngerjain,
4:19terus ada hal yang baru apa sih.
4:22Semenjak deno dan boon muncul si node.js ini jadi kayak apa ya, jadi kayak tersentil.
4:29Ini mana nih update-nya, kok nggak ada update, kelihatan tidak berkembang gitu ya.
4:34Padahal memang kalau...
4:37Kalau terus nanti kita bahas juga kenapa node.js dulunya itu kan
4:40position-nya 0.1, 0.2, 0.3, sampai 0.14 tiba-tiba, terus berubah sekarang P14, P15, P16.
4:51P16, P16, P18, terus temen-temen penasaran juga mungkin kenapa kita nggak pernah dengar yang ganjil.
4:58Kenapa selalu P14, P16, P18.
5:01LTS kan?
5:02LTS.
5:04Tapi nggak ada ganjilnya.
5:07Nggak ada ganjilnya?
5:09Coba kita lihat ya.
5:11Ada.
5:13Yang LTS gena, yang non-LTS ganjil ya kan?
5:18Oh iya, ada versi 17 ada kok.
5:21Ada, cuma nggak di... apa? Yang long term support itu yang diekspos ke public,
5:27maksudnya yang di-encourage itu yang gena, yang kita perlu pakai yang P14, P16, P18.
5:35Oke, kita ngomongin ini dulu kali ya.
5:38Tadi versi, kenapa versi 0 berapa tadi, sampai 0.12 dia berhenti lumayan lama ya.
5:45Versi 0.12.
5:47Ini kita udah pernah bahas tapi nggak apa-apa kita bahas lagi sekilas.
5:52Di sini, nah ini.
5:54Kenapa? Ada yang tahu?
5:56Ada nggak ya? Di sini ya.
6:00Nah ini.
6:02Milestone.
6:04Jadi Node.js ini lahir di 2009.
6:09Terus munculnya, dikenalnya pertama kali gara-gara ada talk dari pembuatnya.
6:20Terus abis itu banyak dicaci.
6:24Biasa ya.
6:26Biasa.
6:27Ada yang sampai bilang Node.js itu kanker buat backend gitu ya.
6:33Ya ampun.
6:34Ya udah pernah dulu.
6:36Jahat pun. Jahat banget kan.
6:39Terus berkembang-berkembang sampai 2010-02.
6:442011 muncul NPM.
6:48Jadi ada jeda 2 tahun ya.
6:51Jadi dalam 2 tahun itu mereka nggak punya package manager ya.
6:55Nggak punya package manager.
6:58Terus di 2012 itu versi 0.8 yang dianggap sebagai versi stabil.
7:04Untuk sebagian orang.
7:062002, 2003, 2004, 2005 sampai 2008.
7:102008. Itu dianggap stabil.
7:13Tapi buat sebagian orang yang lain, terutama yang mungkin middle to enterprise gitu.
7:20Menganggap ini belum versi stabil.
7:22Jadi mereka biasanya nggak berani pakai.
7:25Karena 0 depannya ya.
7:27Karena 0 depannya.
7:30Lalu di 2013 ada muncul beberapa killer feature, killer app lah.
7:38Kayak Ghost, yang ini blogging engine ya.
7:42Terus muncul juga minstack.
7:46Ini sih cuma gabungan dari berbagai kombinasi dari ini sih.
7:52Oh minstack dulu kebular ya.
7:54Sempat terkenal banget tuh minstack itu.
7:57Bukan murn ya, tapi murn.
8:00Iya, murn.
8:02Terus abis itu A nya diganti R, react kan jadi murn.
8:06Untung nggak pakai spelt ya.
8:11Kalau pakai spelt, mesen.
8:13Mesen.
8:15Semen.
8:17Semen.
8:19Terus apa, Paypal juga bikin framework sendiri namanya Kraken.
8:24Apa lagi ya?
8:26Kraken, udah lama banget ya itu Kraken ya.
8:282017.
8:30Oh itu biar release the Kraken ya.
8:33Kalau mereka release.
8:35Ini yang pertama kali Paypal berubah tampilan itu loh.
8:39Yang dia bener-bener kayak berubah jadi serverless.
8:43Eh salah, headless.
8:45Kok serverless sih, headless.
8:47Jadi dari Paypal yang lama.
8:49Terus dimodernisasi jadi headless.
8:51Awalnya.
8:56Dan salah satu cerita suksesnya Paypal menggunakan Kraken.
9:00Adalah dia berhasil survive di Black Friday ya.
9:04Jadi diskon besar-besaran itu berhasil trafficnya ditangani oleh Node.js pada saat itu.
9:10Terutama Kraken ini.
9:12Sangat ya, semua orang banyak.
9:14Bayarnya pakai Paypal.
9:16Diberbagi setelah kan.
9:18Sorry, bukan Paypal. Ada satu lagi, bukan yang Walmart.
9:21Sorry, Walmart. Salah, bukan Kraken.
9:23Ada satu lagi, Walmart juga dia bikin framework.
9:26Ini ya, bukan ya.
9:28Bukan, dia bikin framework.
9:32Wah, gak ada di sini ya.
9:34Iya tapi dia bikin framework juga, namanya apa gitu.
9:38Nanti mungkin ada di bawah.
9:40Terus 2014.
9:42Mulai ini nih.
9:45Node.js mulai kisrug.
9:50Karena versinya gak naik-naik dari versi 0.8.
9:55Terus akhirnya.
9:57Selalu begitu sih. Ini kayak versi ECMAScript juga kan.
10:01Gak naik-naik.
10:03Terus akhirnya beberapa kali pindah tangan.
10:07Node.js bikin advisory board.
10:09Terus Joyen, ini perusahaan si Ryan Dahl bekerja.
10:15Dimana Ryan Dahl bekerja pada saat itu.
10:17Mengambil alih si Node.js ini.
10:21Supaya cepat.
10:23Mengambil alih dalam artian ikut serta lah.
10:28Ini kan projek komunitas ya.
10:30Kayak sekarang lah.
10:34Misalkan si pembuat spelt dibayar oleh Versel untuk mengembangkan spelt yang adalah open source.
10:40Kira-kira kayak gitu ya.
10:42Banyak yang gak senang.
10:45Karena takut di setir oleh satu perusahaan.
10:49Akhirnya muncullah IO.
10:53IO.js.
10:55IO.js ini adalah forking dari Node.js.
11:01Langsung dia tembak ke 2015, langsung tembak ke versi satu.
11:06Karena mereka sudah menganggap dari 0.8 sebenarnya udah stabil.
11:10Cuman gak banyak orang yang berani pakai, perusahaan yang berani pakai.
11:13Gara-gara versinya doang.
11:15Yaudah dikasih aja versi satu.
11:17Sedangkan Joyen gak mau.
11:20Mesti bersih kukuh bahwa ini versi 0.8.
11:24Akhirnya baru rame-rame nih di Kroyok.
11:30Koalisi, koalisi.
11:32Keyword of the Norway, koalisi.
11:35Terus nyari apa, nyari rujuk lah IO dan Node.js jadi satu.
11:40Jadi IO.js sudah gak ada, digabungin lagi balik ke Node.js.
11:45Dan akhirnya.
11:47Versinya belum?
11:49Versinya di 2015 Q3.
11:52Muncullah versi 4.0.
11:55Kok 4.0?
11:57Iya, jadi 4.0.
12:00Jadi 4.0 langsung yang mencap ya?
12:02Iya, 4.0 adalah 1.0 baru.
12:04Ya, jadi 0.8 sebenarnya 0.8 ke 1 itu hampir tidak ada perubahan.
12:09Terus senketa 1, senketa naikin ke 1 atau enggak.
12:13Tiba-tiba pas udah demai, sepakat yaudahlah 4 aja.
12:174 aja.
12:19Nantap.
12:21Nggak tanggung-tanggung gitu ya, nggak ke 2 dulu gitu ya.
12:24Ya gitu lah, jadi ada drama-drama sedikit.
12:29Nah setelah itu baru lancar tuh.
12:31Untuk apa, yang tadi kita sempat sebut bahwa ada versi LTS yang genap.
12:38Yang ganjil versi non-LTS.
12:41Current, development lah.
12:43Nah teman-teman di sini pakai Node.js, versi berapa?
12:49Oh Walmart itu HP.js ya?
12:52Benar ya?
12:54API ada tadi di atas.
12:56Ada di atas.
12:58Dia lumayan awal juga.
13:00Itu sebelumnya Express sama Coop?
13:04Ini, setelah Express.
13:06Express itu di awal, di sini 2010.
13:102012 baru HP.
13:12Berarti OG-nya Express ya?
13:15Yang maksudnya 2009 Node.js lahir.
13:192010 framework-nya pertama Express.
13:22Betul.
13:24Nah setelah itu, sekarang berkembang.
13:28The rest is history ya teman-teman.
13:31Udah bisa ngikutin lah sampai sekarang.
13:34Udah versi berapa?
13:36Terakhir saya pakai versi 18 ya.
13:38Sekarang udah versi berapa?
13:4020.
13:42Eh nggak deh, 22 ya.
13:46Eh ya 20, 20.
13:4920, yang LTS itu 20.
13:52Eh nggak lah.
13:54Wait.
13:56Nah sambil buka deh.
13:5818.
14:0018 kan yang terbarukan.
14:02Yang LTS baru kan.
14:04LTS itu 18.
14:06Iya.
14:0820.
14:12Aktif.
14:14Nah itu tahu buat.
14:18Kan kalau misalnya kita nggak liat grafiknya, ini agak bingung sih konsepnya current.
14:23Cuma kalau udah lihat ini, oh iya ngerti-ngerti.
14:26Current versus long time.
14:31Current versus long time.
14:33Yang main selalu unstable.
14:35Ini yang buat di itu ya, buat di version kontrolnya ya.
14:40Yang main selalu unstable.
14:42Kemudian ini versi 16.
14:44Versi 18 ini maintenance mode.
14:47Versi 20 yang lagi aktif.
14:49Versi 21 yang terbaru.
14:51Jadi kalau temen-temen mau install versi terbaru, berarti sekarang versi 21 yang defaultnya ya.
14:56Eh nggak ya, 24.
14:58Enggak.
15:0020, 20.
15:0220 ya.
15:04Yang encourage untuk kita install, biasanya itu yang LTS-nya doang.
15:09Nah current itu kalau misalnya ada sesuatu hal yang kita pengen coba.
15:14Atau mungkin ada patch apalah yang beneran kita nggak bisa menggunakan sampai 22.
15:19Cuma di kasus-kasus khusus kayak gitu yang kita perlu pakai 21 yang current.
15:26Nah ini versi 20.
15:28Nah itu saya kan recommended for most user.
15:31Versus latest feature.
15:33Yes.
15:34Ini buat ke depannya ya.
15:36Pake NVM ya gampang. Gonta ganti.
15:39Gonta ganti senat bundel.
15:41Iya.
15:43Ada banyak lagi ya selain NVM, ada Volta, ada macem-macem sekarang banyak.
15:48Jadi gitu banyak.
15:52Nah, jadi yang kenapa kita bahas ini malam ini salah satu alasannya adalah
16:00semenjak si runtime-runtime ini muncul, salah satunya Deno, kemudian Bund.
16:07Deno yang bikin note juga.
16:10Iya.
16:11Dia pindah kerja sekarang, nggak tahu, terakhir tahu saya dia di Google, sekarang nggak tahu di mana.
16:18Sekarang full-time ngerjain itu kali.
16:20Mungkin.
16:21Iya.
16:22Karena ada monetization-nya juga kan untuk deployment-nya ya.
16:26Jadi habis itu dia merasa ada beberapa hal yang menurut dia Node.js itu salah langkah.
16:32Terutama di sisi security ya.
16:36Kan banyak tuh kejadian NVM ini kan security.
16:40Package.
16:41Iya.
16:42Jadi akhirnya dia memutuskan untuk bikin baru.
16:46Dengan teknologi baru.
16:47Kalau dulu dia bikin pakai si V8-nya itu kan C++ ya.
16:52Kalau ini dia tulis ulang semuanya.
16:54Kalau ini dia tulis ulang "go" atau "rush".
16:57Loh ini nggak nge-forking engine yang udah ada ya?
17:00Nggak pake spider monkey atau V8?
17:03Nggak. Ini bikin dari awal, dia kalau nggak salah sempat ganti...
17:09Ini kenyataan programmer banget ya.
17:11Yes.
17:12Kayaknya dia bikin karya, dia bikin Node.js yang udah berdekade udah puluhan belasan tahun.
17:18Terus dia makin lama mikir, aduh ngesel, kenapa dia bikin ini, coba gini.
17:23Makin dari awal.
17:24Terus makin lama ya dalam belasan tahun itu kan banyak teknologi baru lagi ya.
17:29Jadi pasti dia makin lama makin yang kayak tidur nggak pulas, kepikiran.
17:33Terus akhirnya ya udahlah bikin baru.
17:36Ini orang-orang seperti ini ya, seperti Mas Ryandal, seperti...
17:41Oh pakai V8.
17:42Oh pakai V8-nya masih pakai ya?
17:45Oh iya V8 tuh.
17:47Itu tuh.
17:48Masih pakai V8.
17:49Well in Rust. Tapi pasti pakai V8.
17:53Tapi dibikinnya di Rust.
17:56V8-nya mungkin ini layer di atasnya yang pakai Rust.
18:01Ya.
18:02Jadi ini sempat ganti bahasa programan.
18:05Setau saya awalnya mereka pakai goleng, abis itu ganti Rust.
18:10Di tengah jalan.
18:11Sebelum rilis.
18:12Wow.
18:13Ini juga seru nih ya.
18:16Jadi ini salah satunya Edeno.
18:20Kemudian ada Bunja S juga yang muncul baru-baru ini.
18:23Nanti kita akan bahas lebih lanjut kenapa tadi ada highlight-nya sedikit.
18:27Nah Bunja S ini berbeda.
18:29Dia tidak menggunakan V8, tapi dia menggunakan...
18:31Ada yang menggunakan ibu kan?
18:34Oh punyanya Safari.
18:36Punyanya WebKit.
18:40Yang dipakai, yang kebetulan juga dipakai oleh Safari atau Apple.
18:44Safari.
18:45Yes.
18:47Dan katanya jauh lebih cepat ya.
18:50Gitu.
18:53Tapi gara-gara dua ini, si Bun, terus juga ada Cloudflare, Worker, dan lain-lain.
19:00Banyak sekarang netizen-netizen yang bilang, "Kalau kok Nejes perkembangannya lambat sekali?"
19:07Gitu-gitu aja.
19:08Gitu-gitu aja.
19:09"Kok gak cepet?"
19:10Gitu kalah cepet sama...
19:11Tidak, penyakit sih. Kalau terlalu cepet, kalau misalnya inovatif, dimarah-marahin.
19:16Dianggap ngerusak perbahaya, blablabla.
19:19Tapi kalau dianggap kurang cepet, dimarahin juga.
19:23Kok gitu-gitu aja.
19:25Tapi sebelum kita lanjut kesana, saya pengen tau.
19:27Kalau misalnya teman-teman pakai .js application server,
19:32itu memang sudah se-bundle kan?
19:34Misalnya kayak lagi bangun apa ya?
19:37Next.js yang sudah server-side segala macam, yang sudah disediakan gitu kan?
19:43Atau memang pernah bangun, khusus kayak Express itu?
19:48Express, web server, gitu ya?
19:50Aplikasi apa gitu?
19:51Ya, pernah gak sih? Atau memang kan sudah dibundle...
19:54Apa? Sekarang udah meta framework semua?
19:56Meta framework semua nih.
19:58Ya, kita pengen tau juga nih.
20:00Teman-teman, sekarang kalau kerjain project,
20:03apakah langsung pakai meta framework seperti Next, Nux, Spellkit, dan lain-lain lain?
20:09Atau masih pakai back-end, front-end, API misalkan gitu ya?
20:14Pakai Express.
20:16Terus gini juga, dari satu sisi lain yang pengen saya tau itu,
20:19biasanya deploy ke mana gitu?
20:22Kalau mau pakai yang ada .js server-nya.
20:26Itu deploy ke mana sih kalian yang paling gampang gitu?
20:30Deploy ke localhost, pakai ng-rock.
20:37Karena saya sampai sekarang masih yang paling gampang bagi saya itu
20:42kalau nge-deploy .js application yang non-flamok-flamok kan itu,
20:47paling gampang ke Heroku, paling gampang.
20:51Dan belum menemukan yang penggantinya.
20:54Digital Ocean juga kali ya? Lebih murah ke non.
20:58Digital Ocean kan VM.
21:00Bisa, berarti bisa itu banyak dong.
21:05Bisa deploy banyak ke satu droplet.
21:08Bisa, bisa, cuman PR-nya harus manual.
21:13Jadi kan kita harus siapin VM-nya, install node.js-nya,
21:19install database-nya, bikin nginx-nya, atau proxy server-nya,
21:25konfigurasi, ya kan? Kalau Heroku kan tinggal Heroku create,
21:30Heroku push, Heroku main.
21:37Itu ya salah satu.
21:40Tapi Heroku sudah berbayar. Betul sekali.
21:42Makanya sekarang banyak yang bikin alternatif.
21:46Kalau sekarang ada fly.io, ada render.com yang masih gratis juga,
21:52railsway juga ada, itu juga bisa non.js-nya, banyak sekarang alternatifnya.
21:57Ada yang pernah mencoba nge-deploy manual dengan menggunakan C-Panel nggak?
22:03No, not server manual.
22:06Memang ada ya?
22:08Tapi ngejaranin di remote-nya kayak gimana?
22:11Iya maksudnya, maksudnya dia manual.
22:14Manual itu maksudnya bukan pakai git deploy segala macam.
22:18Jadi benar-benar upload file-nya, terus kemudian setting node.js-nya itu
22:24di setting dari C-Panel.
22:27Tau ya, C-Panel share hosting, C-Panel di setting.
22:32Ya, yang biasa di-apply SQL kan? FTP gitu kan?
22:35Pasti setiap kali node.js application, pastinya ini-nya entry point-nya
22:43cuma satu file kan? Server.js-kan, index.js-kan, ya kan?
22:47Jadi jalanin entry point-nya aja sebenarnya.
22:54Ada yang pernah nih, ada yang pernah nih?
22:57Iya.
22:58Pake C-Panel.
22:59Share hosting bisa 50 ribu, 50 ribu.
23:03Iya, iya, iya.
23:05Nah, kalau ini sama saya juga sering melakukan.
23:10Di deploy GPM sendiri, running-nya pakai PM2 seperti apa?
23:15Running terus kan, terus juga ada engine X.
23:18Apa, panjangan PM2 apa panjangannya?
23:21Process manager?
23:23Yes, process manager. Yang dia selalu online gitu ya.
23:28Ya, jalan di background.
23:29Membuat, yang benar ya, menjalankan comment di background.
23:36Di background.
23:37Jadi menjalankan comment dan selalu jalan di background.
23:39Kalau mati dia hidupin lagi sendiri, ya kan?
23:41Ya, jadi kalau misalkan kita keluar dari, kan biasanya note pasti index.js atau npm start.
23:49Kalau kita kontrol, saya kan mati kan?
23:51Kalau kita mau keluar dari server kan mati kan?
23:53Jadi kita butuh itu jalan di background.
23:55Makanya pakai PM2. Salah satunya ya, PM2 itu banyak tuh fungsinya.
24:00Salah satunya itu.
24:02Gitu.
24:06Kira-kira masih pada pakai note.js ya, kira-kira udah pada ke Goleng, Raz.
24:11Kalau di kantor pakai Go.
24:14EP service-nya pakai Go, ya udah dipanggil dari run-n apapun bisa.
24:21Oke.
24:23Nah, kita mau bahas sedikit tentang update apa aja yang mungkin kita kelewat.
24:32Apa ya, kayak kelewatan gitu, karena kelewatan itu kayak ini ya.
24:37Kelewatan, kebangetan.
24:39Kebangetan.
24:41Nggak ngah kalau itu ternyata sekarang note.js ada fitur itu.
24:45Salah satunya yang saya bisa highlight adalah sekarang note.js sudah punya test runner sendiri.
24:53Kalau dulu kan kita harus install mocha.
24:56Harus install, harus pakai jazz ya, yang baru kalau anak front-end tuh taunya jazz biasanya ya.
25:04Nah, ternyata si note.js ini akhirnya memutuskan untuk membuat si test runner sendiri.
25:14Setelah sekian tahun, setelah ada banyak library, alasannya kenapa?
25:20Tujuan apa tuh? Iya alasannya kenapa?
25:22Iya mempermudah testing.
25:25Presumably.
25:27Kalau dari apa ya, dari nanti kita bahas salah satu podcast yang menginspirasi acara malam ini.
25:36Kita bahas ini.
25:38Itu dia bilang, kenapa mereka memutuskan untuk bikin sendiri, sementara yang lain udah ada opsinya.
25:45Itu karena, murni karena opsi-opsi yang ada sekarang itu belum sesuai sama keinginan mereka.
25:55Kecuali mocha dia bilang, kecuali mocha, mocha itu keren.
25:58Tapi kalau jazz, dia tidak merekomendasikan menjalankan jazz di sisi server.
26:04Ini cuma menarik ya, note.js ini kan dia runtime, runtime environment.
26:15Dan kalau dari segi bahasa kan sebenarnya dia memproses bahasa JavaScript, ECMAScript.
26:25Cuma note.js ini kan bisa nambahin teknologi sendiri lah, kayak syntax sendiri apapun itu.
26:30Yang fitur-fitur mempermudah atau memfasilitasi dia sebagai server-side language.
26:37Kayak yang paling gampangnya proses lah.
26:39Dulu itu pas baru belajar JavaScript, dulu belum ngerti web API.
26:47Itu kan satu layer lagi untuk runtime JavaScript yang khusus berada di browser.
26:53Di sisi lain yang di server-side, note.js juga punya proses, file system.
26:59Dia bisa nambahin fitur-fitur sendiri yang khusus di server-side.
27:04Nah, ini berarti note.js ini bisa ya, mereka punya konsep apa yang kayaknya oke dan perlu dan relevan.
27:12Ya udah, kita tambahin sendiri.
27:14Dan itu perlu diingat bahwa itu di luar spesifikasi ECMAScript.
27:20Betul.
27:22Nah, termasuk di test runner ini ya?
27:24Iya, ini test runner sudah dari DLTS, sudah dari spesifikasi 18.
27:29Oh 18 ya?
27:30Spesifikasi 18, sudah dari 18.
27:33Dan versi 20-nya sudah stabil.
27:35Jadi udah bisa dipakai.
27:37Ya, tadi Eka mau nambahin apa?
27:41Udah, itu maksudnya bahwa itu tuh kayak suka-sukanya note.js saja.
27:46Jadi kalau kita pakai boon atau deno, belum tentu ada kali ya?
27:50Belum tentu ada.
27:52Karena mereka harus catch up juga kan dengan ini yang terbaru kan?
27:55Atau misalnya boon deno bikin sendiri misalnya, ya mungkin yang bikin punya ide lain tentang oh kalau ngejalanin test tuh harusnya gini, kayaknya bisa bikin sendiri berarti kan?
28:08Ya, punya opini sendiri, betul.
28:11Dan bahkan fetch pun yang sesimpel itu, fetch aja baru masuk ke note.js, kapan tuh? Belum lama kan?
28:17Belum lama, versi 16 atau 18 gitu.
28:20Ya, itu karena fetch itu kan berasal dari frontend kan?
28:26Web API.
28:28Ya, sementara dari awal note.js itu menggunakan semacam polyfill kan untuk backend-nya.
28:37Lama-lama karena ini udah stabil akhirnya mereka adaptasi.
28:44Sama kayak ini, yes module.
28:46Kan awalnya kan command.js ya, pakai require.
28:51Itu menarik sih, itu menurut gue itu menarik banget.
28:55Dan mungkin yang sekarang, maksudnya yang baru pakai sekarang, gak sadar ya bahwa yang pertama kali bikin sistem module di JavaScript itu malah bukan di browser.
29:05Bukan.
29:06Atau di server.
29:07Iya, karena browser pada saat berkembangnya, dia lebih memilih untuk loading semuanya satu-satu kan di script SRC kan.
29:17Kita tuh pernah bahas, ini episode apa ya?
29:20Package manager.
29:22Package manager.
29:23Ya, episode package manager.
29:25Silahkan cari aja di...
29:27Di mana gitu.
29:28Somewhere.
29:29Dari sendiri lah.
29:30Ini dari CCS dan ASM ada pernah cerita lucu kebodohan saya.
29:37Apa tuh?
29:38Biasa nulis note application note, tetapi pakenya import.
29:45Oh, terus error?
29:48Waktu dijalankan, error-nya kenapa?
29:50Error-nya aneh.
29:51Error-nya import bintang tanda karet-karet gitu.
29:56Oh langsung merah gitu, import tanda merah.
29:59Oh iya lupa, ternyata harus required.
30:02Dan kalau nulis kayak di, biasanya tuh kecampur-campur ya, karena nulisnya satu di...
30:08Satunya nulis untuk IS module, untuk di application front-end.
30:16Dan satu lagi nulis untuk perbaiki konfigurasi webpack.
30:19Konfig.
30:20Kalau di webpack.
30:21Webpack kan, webpack konfig kan jalannya pakai note.
30:24Gak bisa, gak bisa IS module.
30:27Oh iya bener, iya note dulu kan.
30:29Jadi kecampur-campur, iya terus kecampur-campur terus bingung sendiri, oh iya ya.
30:34Ya sampai sekarang pun kayak Tailwind, kita bayangin Tailwind kan, oh CSS di browser.
30:39Padahal kan si Tailwind-nya sendiri kan, apa prosesnya, betulnya di note.
30:44Makanya konfignya Tailwind kan, CJS.
30:47Tapi sekarang kayaknya udah bisa interchangeable deh.
30:51Import udah jalan di note JS.
30:53Makanya tuh di contohnya kan tadi yang di dokumentasi, udah ada toggle-nya kan.
30:57Iya, udah ada toggle-nya.
30:58Tapi kan package site-nya harus ditambah module gak?
31:01Package module-nya ditambahkan type.2 module.
31:05Di-identify sama kelihatannya ada sistem tertentu yang berdasarkan extension-nya.
31:12Oh gitu, CJS atau JS aja gitu.
31:14Kalau pakai vid, lupa PNPM sama vid kalau gak salah.
31:19Oke, oke.
31:21Wah menarik ya.
31:22Nah, buat temen-temen yang pengen lihat contohnya, saya lagi coba pas lagi ada project kantor gitu ya.
31:31Coba pakai ini, note test.
31:36Ini kantor yang lama atau yang baru?
31:38Kantor yang sekarang.
31:40Kantornya ada berapa?
31:42Current, current company.
31:44LTS, current atau LTS.
31:47LTS ya, LTS. Jadi lagi bikin ini, apa, course tentang AI, Prom Engineering.
31:55Saya coba buat testing-nya pakai test-nya note JS.
32:00Assert udah lama kan, ada sebenarnya kan.
32:04Nggak tau.
32:05Assert itu udah lama.
32:06Nggak, belum pernah pakai.
32:07Render-nya yang gak ada di note JS, itu udah lama assertnya.
32:10Oh, I see.
32:11Tapi berarti fungsi assert itu dia compare-nya kayak, itu agnostik ya?
32:17Kayak apapun yang dikasih ke dia, dia cuma bikin.
32:21Nggak, ini equal, ada strict equal, ini sama dengan tiga.
32:26Ini method-methodnya itu bisa dipakai buat runner apapun berarti?
32:30Oh iya, betul, betul.
32:32Jadi kita bisa pakai mocha sebagai runner-nya, gak perlu pakai chai untuk assertnya.
32:38Kita bisa pakai note JS sebenarnya.
32:40Cuman kebanyakan tutorial kan mengkombinasikan mocha sama chai kan.
32:45Karena memang lebih lengkap juga.
32:48Yaudah, saya coba terus jalanin juga lumayan cepat dan lumayan menarik gitu ya.
32:56Tampilannya gak kayak yang biasa aja gitu ya.
33:02Runner yang biasa aja, gak ada icon-icon.
33:06Betul lah, kalau misalnya yang pas ada centernya.
33:10Ya, ada error disini, perbandingannya harapannya 4-6 tapi kok dapatnya 6 gitu kan.
33:17Udah modern lah, jadi pantas untuk digunakan gitu.
33:23Udah cukup oke untuk digunakan.
33:26Adakah freshness kalian gak, atau cuma ini?
33:29Fresh, belum tahu.
33:30Runner-nya aja?
33:31Kayaknya baru runner deh kayaknya.
33:34Baru runner ya.
33:37Coverage-nya tetap harus pakai istambul.
33:40Istambul.
33:42Ada strict equal, ada apa lagi ya?
33:45Di sini ada gak ya?
33:47Kayaknya itu udah standard deh, assertsnya itu udah standard.
33:49Kayaknya ada standard masing-masing.
33:52Itu gak ada rata-rata ya kalau mau bikin assertsnya.
33:56Iya, gini doang ya.
33:58Benar, benar.
34:00Udah mau ditambahin apa lagi?
34:02Udah, coverage-nya udah 100% ini.
34:06Dan semua case kayaknya udah terpenuhi ya.
34:10Nah, itu yang pertama, testing yang pertama.
34:14Yang kedua, ada satu fitur yang sudah di-request sekian 10 tahun.
34:21Dari 2018 kalau gak salah.
34:23Websocket ya itu?
34:25Iya, websocket.
34:27Pertama kali isunya di-open di Maret 2018.
34:31Si Milas Borins ini.
34:35Dia berharap...
34:37Yang di-mention dong, liat kanan-bawah tuh.
34:39Random aja.
34:43Ini?
34:45Karena yang bikin socket Ayo adalah dia.
34:49Adalah pembuat.
34:51Jadi sebelum dia bikin Versal, dia bikin socket Ayo.
34:55Jadi dia berharap kalau websocket itu didukung built-in.
35:00Gak perlu install socket Ayo.
35:02Itu di 2018.
35:04Akan segera dirilis, tapi sekarang belum kayaknya.
35:08Ini masih open kan?
35:10Ada itunya, akhirnya ada yang bikin WS itu loh.
35:14Eh, iya ya WS.
35:16Paketnya WS.
35:18Namanya WS?
35:20Ya karena menunggu kelamaan, ditunggu 5 tahun.
35:24Ya 5 tahun sih, WS juga udah berapa tahun kan?
35:28Iya.
35:30Ini, apa?
35:32Kalau berhasil akhirnya, berhasil close, websocket berhasil di-add.
35:36Di masukkan ke Node, berarti ya apa?
35:42Isu yang sudah dibuka selama 5 tahun akhirnya bisa ditutup ya.
35:46Tapi sekarang masih open.
35:48Masih open, gara-gara ada WS itu tadi.
35:52Dan itu kali ya, maksudnya,
35:54kalau misalnya digabungin ke Node,
35:57terus ke depannya takutnya kan apalah ada yang berubah gitu.
36:02Terus beda sama WS.
36:05Keliatannya semua developer yang pakai fungsi ini jadi kayak pura-pura nggak lihat aja lah udah.
36:10Mungkin loh.
36:12Iya.
36:13Mungkin juga karena ada laborasi WS ini
36:17yang mungkin menurut mereka cukup representatif untuk Node.js,
36:23jadi nggak perlu dibuat.
36:24Sama testing yang menurut mereka ya kurang,
36:27si jes, pts, atau yang lain-lain,
36:32eva, ada lagi apa gitu, tape, dan lain-lain itu,
36:35kurang representatif.
36:36Jadi akhirnya mereka bikin sendiri.
36:38Mungkin gitu ya, nggak tahu juga sih.
36:39Ini sampai terakhir tuh balasannya ini kan.
36:47Dua minggu lalu.
36:49I don't see a reason to have server implementation.
36:51WS work extremely well.
36:53Karena WS udah berjalan dengan baik,
36:55ya udah berarti nggak.
36:57Jadi nggak jadi nih.
36:59Ini kayak sama aja kayak bilang web server masukin ke Node
37:07kalau express.js udah jalan dengan baik gitu.
37:10Misalnya.
37:11Karena WS itu kan kayak web server.
37:13Ya salah, web socket server.
37:15Iya, benar.
37:17Sama aja kayak beberapa developer yang punya keinginan
37:21untuk memasukkan React ke dalam browser.
37:23Akhirnya yang masuk adalah web component.
37:27Sama aja kan, kurang lebih gitu ya.
37:31Ya semua yang kita suka.
37:33Yang kita masukin.
37:35Jadi nggak perlu ada dependensi lagi kan, mengurangi.
37:37Iya, mengurangi ini.
37:39Coba lihat yang label feature request-nya apa aja tuh?
37:42Nggak pernah ikutin.
37:44Coba, paling atas kan ada label feature request.
37:47Klik aja feature request-nya tuh.
37:49Pasti banyak bang.
37:51Real time audio API.
37:534 jam yang lalu.
37:55Ngadi-ngadi.
37:57Bullet in, heavy duty routing API.
38:01Ini makes sense sih.
38:03Ini makes sense.
38:05Makes sense, tapi itu kayak lompat satu layer gitu loh.
38:09Kalau misalnya ada routing,
38:11framework yang ada sekarang kayak pontang-panting pasti.
38:14Karena masing-masing kan punya implementasi routing sendiri.
38:17Mungkin kedepannya bagus sih.
38:20Sebenarnya ya bagus, tapi
38:23buat nyampe situ
38:25kayak harus diskas yang mateng banget
38:27sama seluruh framework yang
38:29sekarang udah ada dan banyak dipake kali ya.
38:32Nah, makanya Node.js terlihat lambat
38:34gara-gara salah satunya gara-gara ini.
38:36Diskusinya tuh hangat.
38:38Harus mengakomodir banyak pihak.
38:41Udah dari 2009 kan soalnya.
38:43Berbeda dengan Deno dan juga Bun yang baru kan.
38:48Yang baru bikin sekarang.
38:50Mereka mau bikin breaking change ya terserah gitu.
38:51Mau pakai ya silahkan, gak mau ya udah gitu kan.
38:53Kalau ini kan mereka harus memikirkan yang dulu-dulu gitu.
38:57Belum lagi skillnya.
38:59Maksudnya penggunaannya kan dari ada yang
39:01cuma beneran di lokal host doang.
39:03Ada yang dipake on-prem.
39:06Ada yang dipake di serverless.
39:09Ada yang dipake apalah yang harus skill
39:12sampai bisa nanganin sekian ratus.
39:16Ada yang embedded system.
39:17Terima kasih sekaligus ya.
39:20IOT, robotik, banyak di mana-mana.
39:24Jadi mereka harus mengakomodir ini semua gitu.
39:29Makanya terkesan lambat.
39:32Nah, ngomongin tadi yang kayak routing.
39:35Terus tadi Websocket dan lain-lain.
39:38Makanya kan muncul sih ini kan.
39:40WinterCG kan.
39:42Kalau di client JavaScriptnya udah ada W3C kan.
39:48Yang mengatur web standard ya.
39:52Apa aja yang bisa masuk web API ya?
39:56Kalau W3C itu.
39:58Iya.
39:59Nah, ini juga WinterCG ini adalah tujuannya untuk interoperabilitas.
40:04Karena masing-masing perusahaan bisa aja bikin runtime sendiri-sendiri.
40:09Si AOS punya sendiri, si GCP punya sendiri.
40:12Cloudflare punya sendiri, Varsal punya sendiri.
40:14Katakanlah gitu.
40:15Tapi ini khusus untuk JavaScript runtime.
40:18Betul, JavaScript runtime di sisi backend kan?
40:21Iya.
40:22Yang maksudnya kalau tadi kepikiran runtime yang selain JavaScript.
40:28Oh, enggak, enggak.
40:29Khusus JavaScript runtime.
40:30HP mana, terus kemudian Python mana.
40:34Tidakasis.
40:35Oh, itu besar sekali.
40:39Iya, itu udah beda kasus.
40:41Jadi ini adalah konsorsium yang membuat kayak menyempakati.
40:47Menyempakati.
40:49Dan ngomongin soal yang tadi, apa tuh?
40:53Yang ini salah satunya.
40:55Kok enggak ada Node.js Foundation?
40:59Kan dia Linux Foundation sekarang ya.
41:02Tidak ada juga?
41:05Tidak.
41:06Di sini enggak ada foundation.
41:08Ini company.
41:10Ini sponsornya apa nih?
41:12Oh, supported.
41:14Iya, supported.
41:15Kalau foundation kan enggak itu kan.
41:17Update-nya coba ada enggak?
41:20Kalau enggak ada itu paling bawah.
41:22Bawah, bawah, bawah.
41:24Who controls?
41:26Tuh, enggak ada.
41:28Under Node.js.
41:32Oh, ada.
41:34Members from the following organizations.
41:36You can join here.
41:38Oh, tuh kalau mau join.
41:39Nah, kita juga bisa join.
41:41Kalau seiseng itu.
41:43Bun, enggak ada.
41:44Bun belum?
41:45Belum lah, kan baru.
41:48Kalau mau join, silahkan kesini.
41:52Gimana cara join-nya?
41:55Oh, kanan join or leave.
41:59Iya, itu kan sebenarnya bentuknya mailing list.
42:03Cuma kalau kita bukan siapa-siapa ya.
42:05Maksudnya kita cuma partisipan aja ya.
42:08Mungkin kalau kita ngusulin feature, diiin doang.
42:12Tapi maksudnya ini kan open.
42:14Jadi kalau kita mau berkomunikasi, nanya-nanya,
42:16atau cuma baca-baca ya bisa aja join.
42:19Benar, benar, benar.
42:20Mau tahu update-nya ya.
42:23Berkaitan dengan WinterCG dan juga tadi,
42:27salah satunya HTTP Routing.
42:29Ada satu hal yang saya amati di Express.
42:35Teman-teman di sini masih pada pakai Express, kan?
42:37Kalau backend JavaScript.
42:39Atau udah langsung loncat ke metapremok tadi ya?
42:43Beberapa meta premoknya masih pakai Express ya.
42:46Ecosistem kalau sekarang sih udah bisa.
42:49Tapi kalau Node.js, kayaknya standard itu yang paling banyak
42:52starter-nya, tutorial-nya.
42:54Nah, ada yang tau kan udah berapa lama
43:01Express versi 5 beta di devlog?
43:05Emang berapa lama?
43:09Berapa lama ya?
43:11Ini mereka udah masuk versi beta kan?
43:13Oh, nggak ada release.
43:14Kenapa nggak ada release?
43:15Nggak di postage.
43:17Taks.
43:22Apa ini baru ya?
43:23Ini Express.com.
43:25Oh, itu kommentasinya.
43:27Salah, itu website-nya.
43:29Nih, versi 4 kan.
43:31Versi 5, teks.
43:355 beta 1.
43:37Alpa 1 ya, ini tahun berapa terakhir?
43:412014.
43:43Hampir 10 tahun udah.
43:45Hampir 10 tahun belum release juga versi 5-nya.
43:49Sekarang yang terbaru adalah beta 1.
43:53Setahun yang lalu, kurang lebih setahun yang lalu.
43:55Sudah cukup lama gitu.
43:57Apakah si Express ini menjadi dipercated?
44:00Gara-gara 1 karena meta framework tadi,
44:03terus masing-masing pada bikin routing library sendiri,
44:07atau ada beberapa yang lain kan, kayak Fastify.
44:13Iya, Fastify sih yang baru.
44:16Fastify.
44:18Terus apa lagi yang baru ya?
44:19Tuh ada yang nge-post tuh.
44:21Apa dikomen?
44:22Munculin Hono.
44:24Hono, iya, Hono.
44:26Ini yang mau dibahas, Hono.
44:28Nah, yang menarik adalah dia punya penjelasan tentang web standar.
44:33Jadi, vets kan udah web standar ya.
44:37Request pun akan menjadi web standar.
44:41Request dan response.
44:43Jadi, semua runtime dan semua framework
44:47nanti akan mempunyai request dan response yang speknya mirip.
44:52Sehingga bisa saling bertukar middleware.
44:56Termasuk URL, URL source params, header, itu udah standar semua.
45:01Karena ngikutin standar web API ya.
45:04Betul.
45:06Request, response, object.
45:09Iya, jadi dengan menggunakan Hono ini,
45:13dia sudah bisa berjalan di hardware walker,
45:17deno, ban, fastly, dan lain-lain.
45:21Semuanya bisa.
45:23Karena dia menggunakan standar-standar yang mungkin di express
45:29belum standar.
45:31Mungkin yang versi 5 akan standar, tapi jalan-jalan.
45:34Jangan-jangan nanti harus ada express perjuangan dulu.
45:38Nanti tiba-tiba lompat jadi 6.
45:42Express perjuangan dulu.
45:46Tapi express itu masih digunakan di mana-mana.
45:52Cuman kalau yang baru-baru, mungkin project baru bisa mulai dari sini.
45:56Karena mereka fokusnya lebih ke web standar.
46:00Dan biasanya project ini ada service-nya.
46:06Jadi bikin kayak hosting-nya kayaknya.
46:09Biasanya.
46:11Cari duitnya.
46:13Betul, kayak deno deploy.
46:16Boon juga nanti bakal ada.
46:18Karena kan si deno dan boon ini,
46:21nah ini yang membedakan juga dengan node.js kan,
46:24deno sama boon ini adalah perusahaan.
46:26Yang difunding pakai venture capital.
46:29Jadi mereka harus menghasilkan uang.
46:31Dalam jangka berapa tahun.
46:33Harus monetisasi.
46:35Kalau node.js, enggak.
46:37Mereka foundation.
46:39Jadi berdasarkan donasi.
46:41Disponsorin.
46:43Semua open source.
46:47Tapi company-nya yang bergerak di belakangnya itu berbeda.
46:52Jadi motivasinya juga berbeda.
46:54Yang satu, gimana caranya supaya bisa cepat-cepat menghasilkan uang.
46:58Yang satu, ya kalau ada sesuatu yang baru, ya ayo kita rembukin.
47:04Ini bisa jalan enggak?
47:06Compatibility-nya dipikirin dan lain-lain dipikirin semuanya.
47:08Oke.
47:14Nah bentar.
47:16Cuma Holo ini framework buat full stack.
47:20Front-end-nya bebas gitu pakai React.
47:22Back-end. Ini back-end.
47:24Ya sama kayak Express lah.
47:26Front-end-nya berarti ada semacam templating.
47:29Kayak templating language gitu.
47:31Tapi bisa dikasih front-end sendiri.
47:34Suka-suka.
47:36Suka-suka.
47:38Kalau nggak salah templating engine pun.
47:40Mereka kayaknya ada standar.
47:42Jadi templating engine di Express.
47:46Kalau kita mau pakai Fastify.
47:48Sama npm install-nya.
47:50Sama-sama package yang sama.
47:52Jadi kayaknya udah standar juga.
47:55Kalau kita mau pakai, misalkan kayak mau pakai MUST-TEST, mau pakai NUNJAX.
48:01Atau pakai apa.
48:03Kayaknya sama-sama aja.
48:05Oh ini TypeScript friendly.
48:07Ini TypeScript by default.
48:09TypeScript by default.
48:11Dikembangkan juga pakai TypeScript.
48:13Nggak pakai koma lagi.
48:15Nggak enak.
48:17Nggak pakai titik koma ya?
48:19Titik koma, ya team titik koma.
48:26Oke.
48:28Terus dia ada routernya juga ya.
48:30Routernya ini dia implement sendiri sih.
48:34Sebenernya fungsi framework paling utama itu kayaknya.
48:39Selain ngatur templating.
48:41Iya ngasih cara gampang, ngasih API yang gampang.
48:45Buat routing.
48:47Ada ini nggak sih?
48:49Ada yang paling susah bagi saya.
48:52Itu scaling Node.js application ini lho.
48:57Ada nggak sih?
48:58Scaling ya.
49:00Belum pernah harus scaling Node.js app sih.
49:04Paling, paling gampang scalingnya paling gampang.
49:08Horizontal.
49:10Paling gampang scalingnya itu serverless.
49:12Tidak terbatas.
49:14Yang membatasi hanyalah kantong anda.
49:16Tunggu man.
49:22Duit ya.
49:24Duit, yang membatasi duit.
49:26Dan mau bagaimanapun Node.js ini kan single thread ya.
49:32Jadi bukan multi thread.
49:34Jadi kalau core servernya 100 pun tetap aja satu core yang dipakai gitu ya.
49:41Yang bisa di scale itu berarti instansnya dibanyaki gitu ya.
49:48Dan harus ada load balancer juga gitu kan.
49:50Ya load balancer.
49:52Terus juga bisa pakai teknik yang namanya clustering.
49:56Jadi satu core itu jadi satu cluster.
50:00Ya tetap aja di depannya ada load balancer kan.
50:04Yang untuk ngatur traffic kemana kan.
50:06Ya.
50:08Mau around Robin strateginya.
50:12Tapi intinya ada komando nya di depannya.
50:16Entar itu engine X entar itu dari si Kubernetes punya sistem untuk load balancing.
50:24Ya tetap aja ada si proses.
50:28Enggak.
50:30Kalau untuk bikin supaya si CPU core nya kepake.
50:34Itu tekniknya namanya cluster.
50:36Oke.
50:38Auto scaling pakai PM2.
50:42Oh menarik.
50:44Bisa belajarin nanti.
50:46Ada ya?
50:48Agak belum ini.
50:50Ayo Razan.
50:52Coba nanti ya.
50:54Karena dulu sukanya pakai supervisor jadi belum pernah pakai PM2.
50:56Oh iya.
50:58Cluster of node.js process can be used to multiple instance of node.js
51:02that can distribute workloads among their application threads.
51:06Oh.
51:08Cluster namanya API nya.
51:10Cluster iya.
51:12Menarik.
51:14Jadi kita bisa kasih tahu bahwa cluster ini kita set sebagai primary.
51:18Terus kalau kita mau working sejumlah CPU.
51:22Yaudah difrog aja seperti ini.
51:24Dan itu built in di node.js nya ya.
51:28Dia punya fasilitas kayak gitu.
51:30Sekarang built in.
51:32Kalau dulu kayaknya enggak.
51:34Ini versi berapa ya terakhir?
51:3621.
51:38Ini 21 maksudnya dia disupport dari mulai versi berapa ya?
51:42Kayaknya awal-awal udah sih ya.
51:44Kayaknya.
51:46Ini.
51:48Oh bukan.
51:50Salah.
51:52Gak kelihatan nih.
51:54Itu tadi, itu pernah stability 2.
51:56Berarti ini sudah stable kalau di klik.
51:58Oh salah yang kebilangannya.
52:00Iya.
52:02Gak ada dia udah disupport dari versi berapa.
52:04Sejak kapan.
52:06Bisa ganti ya versi nya?
52:08Oh ada resolution paling atas.
52:10Paling atas.
52:12Ini sudah di.
52:14Kanan atas ya.
52:16Coba 18 aja gak?
52:18Extreme ngecheck yang 10 sih.
52:20Oh udah ada.
52:22Sudah ada.
52:24Fesi 4.
52:26Udah ada.
52:28Oh dari awal berarti.
52:30Sudah dipikirkan oleh dia.
52:32Karena emang.
52:34Di server.
52:36Kita gak ada yang tau.
52:38Oke.
52:40Itulah gunanya.
52:42Box ini.
52:44Oke.
52:46Itu ada tanya dari Maulana.
52:50Cluster bisa untuk handle
52:52conference juga kan?
52:54Kalau dari bahasa ini yes.
52:56Karena tadi bisa
52:58be forking
53:00trade nya kan ya.
53:02Ya tapi
53:04hati-hati kalau konkurrensi itu
53:06ada pengaruh ke global variable
53:08atau global state kan.
53:10Kejar-kejaran.
53:12Ya jadi harus aplikasinya
53:14didesign sebagai
53:16se apa ya.
53:18Centralize.
53:20Desentralize.
53:22Jadi worker itu bekerja sendiri
53:24dia menghasilkan apa terus yang si
53:26primary ini
53:28yang machine yang lain gitu.
53:30Jadi maksudnya misalkan ada perhitungan apa
53:32dilempar ke primary.
53:34Primary yang ngitung.
53:36Jadi pokoknya arsitekturnya
53:38harus dipikirkan lah.
53:40Tiba-tiba aplikasi Node.js
53:42yang biasa terus tiba-tiba
53:44kita clustering itu belum tentu
53:46bisa
53:48di cluster dan bisa jalan konkurrensi.
53:50Dengan benar ya.
53:52Gak ada bugs apa namanya
53:54misalnya kejar-kejaran itu.
53:56Rescondition.
53:58Wah Cloudflare
54:06murah-murah ya.
54:08Saya pakai Cloudflare yang gratis buat itu.
54:10Buat apa namanya?
54:12Let's Encrypt sama
54:14sama security
54:18biar gak dididos.
54:20Iya.
54:22Sama cache.
54:24Iya.
54:26Ada DP3.
54:28Sama nya banyak banget.
54:30Iya.
54:32Scaling rentan
54:34diomalin manajemen.
54:36Oh iya.
54:38Nah kan biasanya
54:40kalau scaling naik
54:42berarti kan traffic naik.
54:44Sales-nya naik.
54:46Cuan naik kan biasanya.
54:48Kan kalau manajemen kan
54:52pengennya, kalau bisa
54:54costnya tetap
54:56cost rendah tapi income naik.
54:58Iya.
55:00Masih jadi manajemennya.
55:04Ups.
55:10Iya dong.
55:12Kan Prinsip Ekonomi.
55:14Gemstek. Nah Gemstek ini
55:18katanya mati ya.
55:20Gemstek.
55:22Belum, baru mau naik gitu.
55:24Tiba-tiba hilang ya.
55:26Ah gak ada bunyinya dikit, dikatain mati sih.
55:28Iya.
55:30Biasa.
55:32Gara-gara itu kan, gara-gara Gatsby kan.
55:34Gatsby yang apa yang menggebar-geborkan
55:36Gemstek kan. Terus abis itu Gatsby-nya
55:38juga ya
55:40karena winter-winter
55:42gini juga ya salah satu
55:44yang kena juga kan.
55:46Dibilis sama Netlify abis itu
55:48gak ini kan, gak dikembangkan.
55:52Tapi ada kok akhirnya Gatsby 5 itu
55:54dia sudah bikin Gatsby Cloud.
55:56Oh ya?
55:58Iya.
56:00Gatsby Cloud itu caranya dia cari duit.
56:02Ya cari duit.
56:04Semuanya gitu ya.
56:06Orang bikin framework
56:08udah kebaca tuh. Bentar lagi ada hostingnya nih.
56:10Bentar lagi ada hostingnya.
56:14Atau diakuisisi.
56:16Atau diakuisisi.
56:18Iya, iya, iya.
56:20DemiX tuh dibeli. Apa?
56:22Orangnya di hire siapa?
56:24Shopify.
56:26Iya, Shopify.
56:28Shopify sendiri kan udah ada framework kan mereka kan.
56:30Sebenarnya kan.
56:32Based on React juga kan.
56:34Cuma mungkin mau ngambil
56:38ekotisi para creator-nya
56:40DemiX ya.
56:42GGS atau apa namanya?
56:44Gumpas.
56:50Status generator, bukan?
56:52Lupa namanya. Ada?
56:56Iya, pernah denger. Cuma lupa apa.
56:58Ya gitu deh. Kurang berkenal.
57:00Iya bener. Hydrogen.
57:08Oh iya.
57:10Hydrogen, betul.
57:12Nah dia.
57:18Nanti si hydrogen itu mau
57:20dihitungin pake teknologinya Remix.
57:22Headless in half the time.
57:28Ini based on React juga ya.
57:34Sekarang website keren-keren ya.
57:36Nah bentar ngomongin React.
57:40Jadi inget nih. Apa?
57:42React kan sekarang lagi hype banget.
57:44React Server Component ya.
57:46Ya udah. Sudah jadi.
57:48Udah jadi?
57:50Udah stable.
57:52Oh udah stable.
57:54Udah gak ikutin.
57:56Gue dari hype dan seneng banget.
58:00Sampai bosen sendiri.
58:04Ah sudahlah.
58:06Itu konsepnya gimana sih?
58:10React Server Component?
58:12Server render bukan?
58:14Ya iya. Sebetulnya
58:16itu kayak ngolah dari
58:18yang udah dilakukan sama next ya.
58:20As gets be. Cuma itu kayak jadi
58:22teknologinya React aja.
58:24Sama dia punya cara untuk compare
58:26pas. Jadi kan pas di server
58:28ya udah. Kayak di render kan.
58:30Jadi HTML string. Blah-blah-blah.
58:32Nah by default itu kayak
58:34bisa komunikasi dengan pas udah di
58:36client side. Dia nentuin.
58:38Bagian mana aja sih yang perlu dihydrate.
58:40Perlu gak dihydrate. Nah itu kayak
58:42ada cara deteksinya.
58:44Oh oke.
58:46Jadi dia kayak mau bikin
58:48standarisasi untuk
58:50meta framework.
58:52Standarisasi
58:54behavior apa? SSR.
58:56SSR yang dihydrate.
58:58Kayak di streamline lah.
59:00Nah ini kan berarti
59:02bakal kayak resurgence kayak balik
59:04lagi naikin
59:06atau apa sih kayak memacu
59:08ekosistem si apa?
59:10JavaScript runtime kan.
59:12Not.js lah.
59:14Deno, Boon. Berarti kan kayak bakal disuruh
59:16kerja keras lagi kan. Ntar
59:18memproses si React server
59:20komponen itu.
59:22Ya, ya, ya, ya.
59:24Benar, benar, benar.
59:28Nah stencil.
59:30Apa nih stencil?
59:32Itu web komponen.
59:34Oh komponen ya stencil ya?
59:36Buatannya
59:38si
59:40apa?
59:42Ionic apa ya?
59:44Ionic bukan ya? Ionic kan?
59:46Iya project
59:48by Ionic.
59:50Ionic ini jualannya apa?
59:52Hosting juga?
59:54Kita bahas ini kan.
59:56Kita pernah bahas ininya
59:58tampilan ini tuh kayak
1:00:00pakai apa kemarin? Oh docusaurus.
1:00:02Iya pas kita bahas.
1:00:04Oh ini docusaurus ya?
1:00:06Iya.
1:00:08Doxnya.
1:00:10Iya, iya, iya.
1:00:12Itu menarik juga tuh
1:00:14buatnya di topik berikutnya ya.
1:00:16Ada yang satu lagi
1:00:18yang kalian mungkin. Kita pernah
1:00:20kita pernah bahas web komponen nih. Cuma lupa
1:00:22bahas stencil atau enggak. Gimana,
1:00:24Gimana, Ethan? Benar, benar, benar.
1:00:26Oh belum bahas. Ada satu lagi runtime
1:00:28runtime yang
1:00:30untuk JavaScript yang kalian
1:00:32mungkin gak kepikiran pernah
1:00:34kayak atau pernah cuma
1:00:36denger-denger. Pernah kebayang gak
1:00:38dan jalanin JavaScript runtime
1:00:40tapi di PHP?
1:00:42Nah.
1:00:44Gimana caranya?
1:00:46Mas Hab mana lagi?
1:00:48Serius.
1:00:50Namanya, namanya pakai
1:00:52extension, extensionnya namanya
1:00:54PHP V8.
1:00:56Cari dia PHP V8.
1:00:58PHP V8?
1:01:00Iya, PHP V8.
1:01:02Jadi
1:01:04jalanin JavaScript
1:01:06di dalam PHP.
1:01:08Mana? PHP V8.
1:01:10Ini versi 8.
1:01:12Bukan, bukan, ada kok bawahnya dikit.
1:01:14PHP -V8.
1:01:16Ini?
1:01:18Yes, PHJS.
1:01:20That's it, that's it, that's it.
1:01:22Jadi jalanin
1:01:24PHP, eh jalanin
1:01:26JavaScript dengan menggunakan
1:01:28JavaScript Engine. Nanti
1:01:30hasil, hasil
1:01:32tetap request-response, nanti
1:01:34balikannya balik ke PHP.
1:01:36Anggap aja dia
1:01:38Apache plus Tomcat. Nah.
1:01:40Apache plus
1:01:42Tomcat. Iya.
1:01:44Anggap aja bahasanya seperti itu.
1:01:46Jadi Tomcat kan jalanin Java ya.
1:01:48Iya.
1:01:50Jadi PHP-nya jalanin
1:01:52JavaScript, terus nanti
1:01:54kembali ke
1:01:56response-nya dibalikin
1:01:58ke PHP. Dia evaluate
1:02:00gitu. Tolong evaluate ini
1:02:02hasilnya dibalikin. Oke. Kayak serverless
1:02:04ya. Function yang
1:02:06dijalani gitu ya.
1:02:08Tapi makes sense sih. Maksudnya
1:02:10si
1:02:12apa namanya? Si PHP ini kan
1:02:14jalan sebagai
1:02:16tadinya kan sebagai script dari
1:02:18C atau
1:02:20Apache kan.
1:02:22Sedangkan V8
1:02:24C++ kan gitu.
1:02:26Ya bisa aja sebenarnya.
1:02:28Ini C-C ini apa?
1:02:30.cc ini bahasa apa nih?
1:02:32C
1:02:34C
1:02:36C
1:02:38C++ atau C++
1:02:40kayaknya C++ ya.
1:02:42Iya.
1:02:44Benar juga. Tapi kenapa sih
1:02:46buat apa? Kenapa?
1:02:48Hah? Buat apa? Buat apa?
1:02:50Kenapa harus banget seperti server.
1:02:52Ya. Case-nya apa? Untuk
1:02:54case ini, untuk case apa?
1:02:56Case seperti apa?
1:02:58Contohnya dulu pernah bikin
1:03:00bikin
1:03:02saya
1:03:04pernah
1:03:06bantuin dulu ya, Pak.
1:03:08Itu
1:03:10case-nya itu menjalankan
1:03:12React Application tetapi
1:03:14di WordPress.
1:03:16Ayalah.
1:03:20Di WordPress.
1:03:22Jadi tampilannya tetap
1:03:24tampilannya itu React Application.
1:03:26Tampilan depannya
1:03:28di Application, tapi server saya
1:03:30rendering tetapi semuanya di
1:03:32render di server.
1:03:34server saya rendering.
1:03:36Server saya.
1:03:38Iya.
1:03:40Oke.
1:03:42Tapi tidak WordPress.
1:03:44Ya boleh.
1:03:46Oke. Spesifik sekali ya.
1:03:48Needs banget ya.
1:03:50Tidak perlu pakai
1:03:52Node.js kan. Jadi
1:03:54langsung, aplikasinya dibuild
1:03:56pakai React.
1:03:58Kemudian,
1:04:00jalannya di WordPress. Jadi React
1:04:02aplikasi, sorry.
1:04:04Front-end-nya itu jadi temanya
1:04:06WordPress. Kemudian
1:04:08jalannya untuk
1:04:10mengeksekusinya pakai VX.js.
1:04:12Kemudian
1:04:14tampilannya, ya udah langsung
1:04:16jadi
1:04:18server saya rendering biasa.
1:04:20Tapi di selanjutnya
1:04:22sudah jadi
1:04:24single-pick application.
1:04:26Ribet sekali.
1:04:28Ya rata-rata.
1:04:30Orang tuh, kalau pakai
1:04:32WordPress kayak gitu kan React-nya front-end
1:04:34yang client-side rendered.
1:04:36Itu pergunaan yang
1:04:38orang pada umumnya. Atau kalau
1:04:40ngotot banget harus pakai React
1:04:42dan server rendered, ya udah
1:04:44dipisah
1:04:46back-end-front-end.
1:04:48Ya udah bikin
1:04:50Reactful Stack App yang mengkonsum
1:04:52dari API WordPress. Itu
1:04:54manusia pada umumnya kayak gitu ya.
1:04:56Iya.
1:04:58Manusia pada umumnya.
1:05:00Oke.
1:05:02Topik terakhir sebelum kita
1:05:04Udahan. Gimana?
1:05:06Seru juga. Maksudnya jadi tahu bahwa
1:05:08bisa kayak gitu kalau mau.
1:05:10Iya. Ternyata bisa
1:05:12kayak muter-muter bolak-balik gitu ya.
1:05:16Oke. Topik terakhir.
1:05:18Ivan ada yang mau ditambahin?
1:05:20Enggak. Enggak.
1:05:22Oke.
1:05:24Lanjut. Lanjut.
1:05:26Oke. Topik terakhir nih.
1:05:28Sebelum kita Udahan, ada apa?
1:05:30Ada tambahan kalau temen-temen
1:05:32mau nonton langsung.
1:05:34Mau dengerin langsung.
1:05:36Podcast yang menginspirasi
1:05:38episode ini.
1:05:40Ada di Jazz Party
1:05:42episode 294.
1:05:44Ya. Temen-temen bisa dengerin
1:05:46langsung. Banyak sekali
1:05:48pernyataan-pernyataan
1:05:50kontroversi ya.
1:05:52Ini lucu-lucu sih. Karena apa?
1:05:54Formatnya juga ngobrol.
1:05:56Biasanya tamunya itu
1:05:58Matthew sama James
1:06:00adalah menternya Node.js.
1:06:02Mereka bisa menjelaskan kenapa Node.js itu
1:06:04berjalan seolah-olah lambat
1:06:06dibandingkan BUN.js dan lain-lain. Dan ada
1:06:08beberapa hal yang
1:06:10menurut mereka
1:06:12kurang tepat untuk saat ini.
1:06:14Contohnya BUN.js. Disini
1:06:16BUN.js itu mereka
1:06:18menghighlight bahwa
1:06:20drop-in replacement.
1:06:22Drop-in replacement. Drop-in ini maksudnya adalah
1:06:24kita...
1:06:26langsung diganti, aman semua.
1:06:28Sesederhana dari Node spasi
1:06:30server.js menjadi
1:06:32BUN spasi server.js.
1:06:34Untuk saat ini
1:06:36si BUN.js ini belum sampai
1:06:38ke arah sana. Compatibilitinya
1:06:40belum 100%.
1:06:42Jadi walaupun api-apinya
1:06:44didukung. Itu kan argumenya
1:06:46alasannya adalah
1:06:48implement hundreds of Node.js
1:06:50web api, fs, path,
1:06:52buffer, segala macem.
1:06:54Tapi maksudnya penggunaannya
1:06:56kan macem-macem banget. Penggunaannya
1:06:58macem-macem. Terus jenis environmentnya
1:07:00jenis servernya
1:07:02juga macem-macem.
1:07:04Di podcast itu kan si
1:07:06maintainer Node.jsnya menjelaskan
1:07:08kasus-kasus sana yang
1:07:10belum tentu bisa atau
1:07:12masih harus diperiksa, masih harus
1:07:14diwaspadai. Apakah
1:07:16segampang itu dijamin aman
1:07:18kalau Node.js beneran langsung diganti
1:07:20begitu aja sama BUN?
1:07:22Iya, betul. Jadi
1:07:24walaupun mereka sudah
1:07:26mencoba tapi belum ke arah sana.
1:07:28Memang tujuannya nanti ke arah sana. Mungkin akan
1:07:30tercapai dalam beberapa waktu ke depan
1:07:32tapi belum sekarang. Jadi kalau misalkan
1:07:34teman-teman mengikutin hype, "Wah kita
1:07:36ke BUN gini-gini" terus langsung bisa
1:07:38drop in replacement, gak perlu migrasi
1:07:40blablabla. Belum tentu.
1:07:42Mungkin Node.jsnya iya.
1:07:44Apalagi kalau aplikasi
1:07:46Hello World ya udah pasti bisa.
1:07:48Tapi kalau yang udah ada
1:07:50ketergantungan, dependensi sana-sini
1:07:52belum tentu bisa jalan. Misalkan
1:07:54teman-teman pakai ORM misalkan.
1:07:56ORMnya apa? Belum tentu bisa
1:07:58didukung oleh BUN.js juga.
1:08:00Begitu jalan ya taunya error.
1:08:02Jadi itu
1:08:04ya ini harus
1:08:06dikonsiderasi sebagai
1:08:08sesuatu yang mungkin
1:08:10belum sampai saat ini. Menurut
1:08:12si Matteo ini
1:08:14yang ada di podcast, dia bilang
1:08:16justru Deno
1:08:18lebih kompatibel dibandingkan
1:08:20BUN. Karena memang secara umur juga
1:08:22Deno kan lebih dulu ya.
1:08:24Jadi kompatibilitasnya udah lebih
1:08:26besar lah.
1:08:28Terus satu lagi, kenapa
1:08:30BUN ini bisa cepat?
1:08:32Karena ada
1:08:34trade-off-nya security
1:08:36ya sepertinya salah satu ini.
1:08:38Ya ada trade-off-nya. Mungkin
1:08:40satu karena dia pakai engine
1:08:42yang berbeda. Kedua karena ada trade-off
1:08:44security. Jadi harus
1:08:46hati-hati juga.
1:08:48Dan kita gak tahu security yang
1:08:50dimaksud apa gitu ya.
1:08:52Karena kayaknya hanya orang yang
1:08:54tahu dalemannya di Node.js bisa tahu
1:08:56security yang di BUN.js ini
1:08:58belum selengkap yang ada di Node.js.
1:09:00Sedangkan Node.js
1:09:02sendiri sering disebut kurang secure.
1:09:04Apalagi BUN.
1:09:06Kita gak tahu ya.
1:09:08Jadi
1:09:10kembali lagi harus dipikirkan.
1:09:12Kalau ada sesuatu yang lebih cepat pasti ada
1:09:14trade-off-nya. Jadi teman-teman harus
1:09:16berpikir ulang.
1:09:18Dan monitornya bisa jalan di
1:09:20Unix. Maksudnya Linux.
1:09:22Di Windows belum.
1:09:24Ya Windows belum bisa.
1:09:26Windows native belum bisa. Tapi kalau
1:09:28USL ya udah pasti bisa lah. Dia pakai
1:09:30Docker itu kan.
1:09:32Jadi
1:09:34kalau Node.js bisa jalan hampir di
1:09:36semua mesin. Bahkan sampai
1:09:38IoT, embedded
1:09:40system dan lain-lain. Kalo BUN
1:09:42ini baru sebatas
1:09:44di mungkin development
1:09:46mesin kali ya.
1:09:48Yang biasa developer pakai.
1:09:50Hanya sekedar untuk install dan
1:09:52transfer aja sih. Eh, runner aja sih.
1:09:54Saya lakukan.
1:09:56Iya.
1:09:58Oh salah satu use case yang
1:10:00itu apa? Yang disebut
1:10:02di podcast itu. BUN itu
1:10:04kayak BUN dan DENO mungkin yang baru-baru
1:10:06itu bagus buat memproses
1:10:08kayak Rust gitu yang udah gak
1:10:10pakai JavaScript malah.
1:10:12Bisa kan ya kayaknya.
1:10:14Masa?
1:10:16Dia bisa jalani Rust gitu?
1:10:18Iya.
1:10:20Si BUN kalo gak salah.
1:10:22Bentar.
1:10:24Seri aja.
1:10:26Kalo DENO dibangun
1:10:28dengan menggunakan Rust.
1:10:30Kalo BUN ini dibangun menggunakan
1:10:32bahasa baru yang namanya Zik.
1:10:34Gitu lagi tuh bahasanya.
1:10:36Iya satu level lah
1:10:38sama si dan si ++ sama Rust juga.
1:10:40Zik.
1:10:42Zik Lang.
1:10:44Zik Lang.
1:10:46Kemarin saya...
1:10:48tuh Firebase belum bisa.
1:10:50Hah Firebase
1:10:52belum bisa.
1:10:54Triggernya
1:10:56cuman karena marketingnya BUN.
1:10:58BUN marketingnya gede-gedean
1:11:00ya karena itu tadi.
1:11:02Dia didanai oleh investor.
1:11:04Harus untung.
1:11:06Iya harus untung dia bisa bakar
1:11:08duit gitu.
1:11:10Emang kalo runtime
1:11:12gitu dia jualan hosting ya?
1:11:14Berarti? Biasanya.
1:11:16Jadi mungkin
1:11:18kayak Next.js lah. Next.js bisa
1:11:20jalan dimanapun. Tapi yang paling optimis
1:11:22di Versal kan. Kayaknya gampang banget
1:11:24tinggal Versal deploy udah gitu kan.
1:11:26Segampang itu.
1:11:28Yang dijual itu.
1:11:30Terus sedikit-sedikit tambahin kayak
1:11:32image. Image optimization
1:11:34udah otomatis. Ada
1:11:36ada komponennya
1:11:38supaya
1:11:40kalo dijalani di Versal
1:11:42bisa lebih optimis untuk
1:11:44serving gambar gitu kan.
1:11:46Dan supaya makan runtime kan
1:11:48supaya kita mengkonsum
1:11:50produknya mereka.
1:11:52Nah itu juga ada hottake-nya disana
1:11:54nanti. Kalo temen-temen ngeriin
1:11:56podcast jazz party, disitu ada hottake
1:11:58seperti itu ya.
1:12:00Itu menarik. Karena jualan hosting
1:12:02gimana caranya kan bayarnya per jam
1:12:04kan? Gimana caranya supaya bisa
1:12:06apa
1:12:08mesinnya jalan lebih lama supaya
1:12:10billing-nya naik.
1:12:12Nah generate image.
1:12:14Generate image sih server
1:12:16runtime-nya mereka.
1:12:18Bentar lagi mereka bisa convert video.
1:12:20Ya gitu lah. Jadi
1:12:26ya namanya orang cari duit ya.
1:12:28Gapapa asal kita tau
1:12:30bisnis mobil mereka apa.
1:12:32Terus kebutuhan
1:12:34kita gimana? Budgetnya berapa?
1:12:36Nah akan kita bisa menpertimbangkan
1:12:38itu urtit atau engga?
1:12:40Iya. Bahkan
1:12:42Next.js sendiri kalo mau
1:12:44di deploy ke tempat lain
1:12:46itu agak sulit.
1:12:48Ada beberapa hal yang harus difix.
1:12:50Makanya ada yang bikin Open Next kan.
1:12:52Kita udah sempet bahas juga kan.
1:12:54Jadi dari
1:12:56Next.js build output bisa di convert ke
1:12:58package yang bisa di deploy ke mana saja.
1:13:00Bukan
1:13:02hanya ke Quercel.
1:13:04Itu.
1:13:06Tapi bagusnya, gimana pun, maksudnya
1:13:08tetep ini positifnya open source
1:13:10ekosistem ya. Betul.
1:13:12Apa dari pihak Quercel
1:13:14develop Next.js open source
1:13:16tetep mereka
1:13:18punya motivasi khusus
1:13:20buat cari duit ya. Namanya mereka
1:13:22bisnis. Tapi di sisi lain
1:13:24kita juga bebas
1:13:26ngulik kodenya ya bisa
1:13:28di fork sesuai kebutuhan kita.
1:13:30Betul. Nah biasanya
1:13:32Next image yang jadi masalah. Ya iya.
1:13:34Itu kan property nya mereka.
1:13:36Ini nya mereka.
1:13:38Dalemannya mereka. Jadi ya
1:13:40itu yang mereka
1:13:42apa, mereka
1:13:44iniin. Ya tetap menang
1:13:46cloud computing ya. Karena
1:13:48si Quercel kan pakai itu.
1:13:50Ya, Quercel mau Netlify semua
1:13:52kan langsung lambda nya
1:13:54AWS. Iya, pakai AWS
1:13:56atau pakai GCP atau yang lain.
1:13:58Kita gak tahu. Tapi
1:14:00ditambahin. Capsule dimana ya?
1:14:02AWS.
1:14:04AWS ya.
1:14:06GCP gak ada yang bikin ya.
1:14:08Maksudnya apa?
1:14:10Produk turunan.
1:14:12Produk turunan yang BX nya
1:14:14lebih friendly.
1:14:16Apa ya? Gak tahu.
1:14:18Belum ketemu.
1:14:20Firebase.
1:14:22Supabase.
1:14:24Next.js
1:14:26selain ke serverless juga
1:14:28semudah npm run build, npm run start
1:14:30iya. Mudah dia. Gampang.
1:14:32Sengaja dipermudah.
1:14:34Terus abis itu kita
1:14:36bisa deploy dengan menggunakan
1:14:38apa? Environment yang berbeda.
1:14:40Setiap kali ada pull
1:14:42request terus dia bikinin
1:14:44instansi sendiri ya kan?
1:14:46CI/CD dan lain-lain.
1:14:48Ya dipermudah sama mereka. Karena
1:14:50mereka jualannya itu.
1:14:52Kalau susah gak ada yang
1:14:54pakai. Kalau susah ya
1:14:56pakai AWS saja silahkan.
1:14:58Pakai GCP saja silahkan. Gitu kan.
1:15:00Apa?
1:15:02Nyalain VM sendiri. Lebih murah kan.
1:15:04Gitu.
1:15:06Kalau yang gak mau report ya
1:15:08kita pakai itu.
1:15:10Oke.
1:15:12Ada lagi yang mau dibahas?
1:15:14Belum dulu.
1:15:16Belum.
1:15:18Ivan lagi mikir.
1:15:20Iya, lagi mikir.
1:15:22Apa namanya
1:15:24kayak
1:15:26tetap kembali ke
1:15:28coba tanya diri kalian.
1:15:30Bisa gak sih kalau bikin
1:15:32application dari Node
1:15:34tanpa pakai yang
1:15:36service-service itu bisa deploy sendiri gak sih?
1:15:38Gitu.
1:15:40Karena di localhost jalan. Bisa gak
1:15:42jalanin di server gitu kan?
1:15:44Ya biasanya yang
1:15:46apa developer jaman now
1:15:48sih pakainya docker ya.
1:15:50Lebih gampang kan.
1:15:52Gak apa-apa juga.
1:15:54Gak apa-apa juga docker. Tapi kan
1:15:56meskipun naikin docker kan di
1:16:00naikin ke hostingannya.
1:16:02Tidak semudah heroku ya.
1:16:04Iya.
1:16:06Hosting harus install
1:16:08docker
1:16:10one time lagi
1:16:12kan? Betul.
1:16:14Harus somewhere
1:16:16di remote server sana
1:16:18harus bisa ngejalanin docker.
1:16:20Iya. Saya pernah
1:16:22coba manual.
1:16:24Jadi gak pakai service apa-apa, pakai VM.
1:16:26Jadi stepnya
1:16:28adalah kita jalanin
1:16:30apa? Kita pastikan docker
1:16:32di local udah bisa jalan.
1:16:34Kemudian kita ke server.
1:16:36Kita install docker, install git.
1:16:38Terus abis itu
1:16:40git pull.
1:16:42Kemudian udah docker
1:16:44build. Abis itu
1:16:46udah bisa jalan. Compose up.
1:16:48Ya. Compose up.
1:16:50Gak sebanyak kalau kita
1:16:52bener-bener manual ya.
1:16:56Proses kesulitannya
1:16:58prosesnya di awal. Pada saat
1:17:00kita develop di local.
1:17:02Kalau di localnya udah jalan lancar, harusnya di
1:17:04servernya juga jalan lancar.
1:17:06Kan justru selling pointnya docker, ya udah.
1:17:08Ya.
1:17:10Ya udah mesinnya aja dibawa gitu kan.
1:17:12Tapi sebelum itu berarti
1:17:18nah ini topik kapan-kapan lagi lah.
1:17:20Udah ngobrolin
1:17:22server environment ya.
1:17:24Deployment.
1:17:26Yang mana sebelum docker, apa yang
1:17:28dilakukan oleh developer?
1:17:30Kita bisa sekali lagi
1:17:32bisa invite
1:17:34anak-anak GDI cloud.
1:17:36Oh iya.
1:17:38Deployment. Siap-siap.
1:17:40Deployment aplikasi web ya.
1:17:42Ya.
1:17:44Bagaimana cara deployment aplikasi web?
1:17:46Wah, mantap.
1:17:48Oh, ada yang pernah coba
1:17:52s-processing di Node.js seperti
1:17:54Gaussian Blur di Python.
1:17:56Kalau nggak salah namanya SHARP, bukan?
1:17:58SHARP. Ada. Library BS,
1:18:00SHARP, iya.
1:18:02Itu kayaknya, enggak, SHARP
1:18:04aja udah.
1:18:06Jadi TV nanti, nama TV, enggak?
1:18:08Oh, GitHub SHARP.
1:18:10Kalau di PHP, saya tahu
1:18:12nama IMAGIC.
1:18:14Oh iya, ada IMAGIC kan
1:18:16sebenarnya kan.
1:18:18IMAGIC itu kan dari
1:18:20apa ya? Di CLI kan unik sih.
1:18:22Di CLI iya, di server.
1:18:24Iya, itu dari GNU kan.
1:18:26Iya.
1:18:28Ini kan, ini. Ini juga
1:18:30sama. Ini driver-nya
1:18:32doang.
1:18:34Tapi dia install IMAGIC sama
1:18:36graphic magic.
1:18:38Faster than using the quickest
1:18:40IMAGIC. Lebih cepat kata dia.
1:18:42Oh bukan ya? Oke, pakai ini ya.
1:18:44Vips.
1:18:46V-I-P-S. Format.
1:18:48Ada enggak blur?
1:18:50Ada lah, harusnya ada.
1:18:52Apa ini?
1:18:54Nggak ada. Nggak ada filter.
1:18:58Blur.
1:19:02Oh ada.
1:19:04Operation.
1:19:06Tadi nggak ngeliat.
1:19:08Nih.
1:19:10Blur.
1:19:12Ini kah yang dicari?
1:19:14Gaussian Blur.
1:19:18Kayaknya Gatsby
1:19:20Image, Next Image, semua
1:19:22pakai ini deh. Iya.
1:19:24Tapi Sharp
1:19:26mau install
1:19:28di server ada
1:19:30picky dia.
1:19:32Kadang-kadang bisa, kadang-kadang nggak. NPM misal
1:19:34Sharp gitu. Dia kan harus install
1:19:36di yang ininya kan.
1:19:38Package utamanya kan.
1:19:40Mana tadi? Nah ini.
1:19:44Belum tentu bisa jalan
1:19:46di server, di lokal
1:19:48kita. Kadang-kadang installasinya
1:19:50gagal. Kalo dependency-nya nggak.
1:19:52Ini kan native
1:19:56native
1:19:58apa ya, native package kan.
1:20:00Mana paginya?
1:20:02Tuh, C. C language
1:20:08apa, library kayak
1:20:10lib UV
1:20:12kayak V8 gitu.
1:20:14Jadi belum tentu bisa di install
1:20:16di server atau di lokal
1:20:18kita. Kadang-kadang suka error.
1:20:20Kecuali kalo pakai docker
1:20:22tadi ya.
1:20:24Pernah pakai
1:20:28deno compile.
1:20:30Lancar.
1:20:32Oke.
1:20:34Pake docker dan note nggak yakin
1:20:36sekali coba bisa.
1:20:38Iya.
1:20:40Nggak yakin sekali langsung bisa gitu ya.
1:20:42Nggak apa-apa, yang penting bisa selesai.
1:20:44Oke, kalo gitu.
1:20:48Ditunggu selesai depan.
1:20:50Terima kasih banyak
1:20:52buat yang sudah
1:20:54diskusi bareng juga.
1:20:56Sampai jumpa lagi
1:20:58minggu depan dengan topic yang berbeda
1:21:00tentunya.
1:21:02Jangan lupa kalo ada yang mau sampaikan
1:21:04saran, topic
1:21:06atau. Sanain.
1:21:08Ini loh.
1:21:10Kalian tuh begini.
1:21:12Sanain.
1:21:14Silahkan kesanain
1:21:18slash ngobrolin web. Tulis aja
1:21:20"Saya mau undang siapa?" gitu.
1:21:22Mark Zuckerberg kok nggak bisa.
1:21:24Ngajukan diri sendiri
1:21:26juga boleh. Undang saya.
1:21:28Nanti saya pakai
1:21:30AR-nya aja.
1:21:32Iya, tadi ada yang nge-tweet juga
1:21:36katanya kalo di
1:21:38waktu Indonesia Timur
1:21:40udah malem an, mulainya jam 10.
1:21:42Udah baru tidur katanya gitu.
1:21:44Nantilah, terima kasih ya.
1:21:46Udah kasih masukan.
1:21:48Kita doa pikirin ya.
1:21:50Terima kasih. Ini pagi.
1:21:52Pagi daerah mana ini?
1:21:54Semangat pagi.
1:21:58Indonesia bagian.
1:22:02San Francisco.
1:22:04Oke, kalo gitu.
1:22:06Kita ketemu lagi
1:22:08Selasa depan.
1:22:10Di jam yang sama, 8 malam.
1:22:12Kalo tidak ada perubahan, mudah-mudahan.
1:22:14Sampai berjumpa lagi
1:22:16hari Selasa.
1:22:18Bye.
Suka episode ini?
Langganan untuk update episode terbaru setiap Selasa malam!
Episode Terkait
7 Jan 2025
Ngborolin 2025 - Ngobrolin WEB
π Ulasan Tren Web 2024 - Perkembangan AI Generatif: Penyedia dan produk AI menjadi lebih beragam, tidak hanya chatbot ...
4 Nov 2025
Kisah-kisah Menyeramkan dgn @zainfathoni - Ngobrolin WEB
π£οΈπΈοΈ Selasa malam waktunya #ngobrolinWEB! Bertepatan dengan malam selasa kliwon, kita akan membacakan kisah-kisah meny...
4 Feb 2025
Ngobrolin Video Player - Ngobrolin WEB
Yuk mari kita diskusi dan ngobrol ngalor-ngidul tentang dunia web. Agar tetap up-to-date dengan teknologi web terkini. ...