EP 54

Jangan gunakan NodeJS sebelum nonton video ini!

Bagikan:

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.

Transkrip Bantu Koreksi

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!

Langganan Sekarang

Episode Terkait

Ngborolin 2025 - Ngobrolin WEB
EP 111

7 Jan 2025

Ngborolin 2025 - Ngobrolin WEB

πŸ“– Ulasan Tren Web 2024 - Perkembangan AI Generatif: Penyedia dan produk AI menjadi lebih beragam, tidak hanya chatbot ...

Kisah-kisah Menyeramkan dgn @zainfathoni  - Ngobrolin WEB
EP 149

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...

Ngobrolin Video Player - Ngobrolin WEB
EP 115

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. ...

Komentar