Memakai Asynchronous Context Tracking Di Node.js
07 November 2021AsyncLocalStorage
adalah class bawaan Node (terletak di modul async_hooks
) yang dapat digunakan untuk memberikan context pada eksekusi operasi
asynchronous dan juga semua operasi asynchronous yang dipanggil oleh operasi tersebut. Untuk menunjukkan kondisi dimana class
ini dapat
membantu, saya menulis sebuah kode program tanpa async context seperti berikut ini:
Kategori: Pemograman Tags: Node
Memakai Shared Module Di Monorepo TypeScript Untuk Firebase Functions
25 October 2021Hari ini saya kembali menemukan sesuatu yang secara konseptual seharusnya mudah diterapkan, tetapi begitu dikerjakan, ternyata tidak sesederhana yang saya bayangkan. Pada sebuah kode program monorepo, saya menerapkan shared module yang didukung oleh Node.js. Kode program bisa berjalan saat dikerjakan oleh node
di komputer lokal, tapi ini tidak akan bekerja saat saya men-deploy kode program tersebut di Firebase Functions. Mengapa demikian?
Kategori: Pemograman Tags: FirebaseFunction TypeScript
Pemisahan Jaringan Dengan OpenWRT
24 September 2021Setiap perangkat yang terhubung di router yang sama dapat berkomunikasi satu dengan yang lainnya. Kebebasan ini akan mempermudah pengguna dalam menghubungkan berbagai perangkat IoT, media server, smart phone, komputer dan sebagainya. Namun, bila dilihat dari sudut pandang keamanan komputer, tidak ada yang bisa menjamin bahwa seluruh perangkat yang terhubung adalah perangkat yang aman. Ada saatnya saya ingin membatasi komunikasi perangkat tertentu yang terhubung di router yang sama. Hal ini dapat dicapai dengan membuat subnet baru, melakukan partisi dengan menggunakan VLAN, dan juga konfigurasi firewall.
Memakai QEMU untuk menjalankan Windows di Ubuntu
19 June 2021Untuk mengoptimalkan kinerja Android emulator, saya mengaktifkan KVM pada sistem operasi Ubuntu yang saya pakai. KVM adalah hypervisor yang terintegrasi pada kernel sistem operasi Linux. Ini adalah teknologi yang sering dipakai oleh penyedia infrastruktur cloud seperti Google Compute Engine, Google Container Engine dan Amazon EC2. Karena fasilitas KVM terbatas pada perangkat virtual CPU, memori dan I/O, biasanya ia dikombinasikan dengan virtual machine yang menyediakan emulasi perangkat grafis, penyimpanan, jaringan, dan sebagainya. Salah satu virtual machine yang sering dipakai bersama dengan KVM adalah QEMU.
Menerapkan Event Sourcing Di BigQuery
03 February 2021Event sourcing adalah sebuah pola dimana aplikasi menyimpan setiap perubahan yang dilakukan terhadap sebuah entitas (biasanya dalam bentuk
event). Sebagai contoh, aplikasi bisa saja memiliki event seperti PelangganBaruDaftar
, DataPelangganBerubah
, dan PelangganDihapus
.
Setiap kali terjadi aksi di aplikasi, event tersebut akan tersimpan di dalam event store. Pola event sourcing seperti ini biasanya
dipadukan bersama event driven design dan CQRS.
Kategori: Pemograman Tags: BigQuery GoogleCloudPlatform
Membuat Unit Test Yang Melibatkan Waktu
14 December 2020Pada suatu hari, saya ingin membuat unit test untuk menguji kode program yang menggunakan setInterval()
. Bagaimana caranya
memastikan bahwa kode program sudah benar melakukan sebuah operasi secara berulang kali, tanpa harus menunggu? Contoh lain yang
berkaitan dengan waktu adalah menguji kode program yang akan mengirim notifikasi kegagalan bila tidak ada respon yang diterima selama
30 menit. Bagaimana cara memastikan bahwa kode program tersebut telah benar tanpa harus menunggu 30 menit?
Kategori: Pemograman Tags: Node
Event Loop Di Node.js
03 December 2020Walaupun Node.js tidak mendukung multi-threading, ia memiliki implementasi event loop untuk mengerjakan kode program secara
asynchronous. Sebenarnya kemampuan mengerjakan kode program secara asynchronous tidak ada kaitannya dengan threading, tetapi
dalam banyak hal, saya tidak perlu tahu lebih detail. Selama kode program bisa dijalankan secara asynchronous (misalnya melalui
Promise
dan timer), saya tidak pernah harus mengetahui implementasi detail event loop di Node.js. Akan tetapi, saat saya mencoba
menerapkan konsep worker (yang umum dipakai di bahasa multi-threading) dengan menggunakan Promise
, saya mulai menemukan banyak masalah.
Sebagai contoh, saya membuat kode program seperti berikut ini:
Kategori: Pemograman Tags: Node
Menggunakan Array Di Google BigQuery
11 July 2020Salah satu cara untuk mendapatkan hasil query lebih cepat di BigQuery adalah dengan melakukan denormalisasi dengan menggunakan tipe data ARRAY
.
Sebagai contoh, saya akan membuat sebuah tabel baru bernama faktur
dengan struktur seperti berikut ini:
Kategori: Pemograman Tags: BigQuery GoogleCloudPlatform