Menangkap Kesalahan Saat Menggunakan EventEmitter
13 May 2020EventEmitter
merupakan salah satu class penting di Node.js untuk pekerjaan asynchronous berbasis event. Salah satu contoh penggunaannya yang paling
populer adalah sebagai Stream
seperti pada fs.ReadStream
, http2.ServerHttp2Stream
, dan sebagainya. Tentu saja saya juga bisa membuat class turunan
dari EventEmitter
untuk keperluan pribadi, misalnya pada contoh kode program berikut ini:
Kategori: Pemograman Tags: Node TypeScript
Mengkompilasi TWRP Dari Kode Program Untuk Perangkat Yang Tidak Resmi Didukung
17 April 2020Pada tulisan sebelumnya, saya men-build AOSP dari kode program. Fokus
utama tulisan tersebut adalah boot.img
dan system.img
. Kali ini, saya akan mencoba bermain dengan recovery image (recovery.img
). Ini adalah sebuah sistem operasi kedua
yang benar-benar terpisah dari sistem operasi utama. Untuk memasuki sistem operasi recovery, pengguna harus menggunakan kombinasi
tombol tertentu pada saat perangkat pertama kali dinyalakan. Sistem operasi recovery bawaan biasanya menyediakan fasilitas yang sangat sederhana seperti menghapus
seluruh data pengguna atau mengatur ulang perangkat agar kembali seperti semula.
Memahami Proses Bootstrap Pada Sistem Operasi Android
05 March 2020Sistem operasi Android, sama seperti turunan Linux lainnya, adalah sistem operasi open-source. Setiap sistem operasi juga dibuat dari kode program. Proses mengubah kode program menjadi hasil akhir (artifact) yang dapat dijalankan disebut sebagai building. Bila hasil build program biasa dapat dijalankan melalui shortcut atau mengetikkan perintah di CLI, lalu bagaimana dengan sistem operasi? Seperti apa caranya menjalankan sistem operasi Android dari kode program? Saya akan mencari jawaban pertanyaan tersebut dalam tulisan ini.
Memakai Python Dalam Docker Di PyCharm
05 February 2020Hari ini saya perlu bekerja kembali dengan tool CLI Python yang sudah lama tidak saya sentuh. Saya bahkan sudah tidak memiliki instalasi Python lagi di sistem operasi yang saya pakai. Apakah ada cara cepat untuk menjalankan script tersebut tanpa harus meng-install Python dan dependency-nya di sistem operasi saya? Walaupun Python memiliki Virtualenv untuk membatasi instalasi dependency ke proyek yang aktif, akan lebih menyenangkan bila saya menjalankannya di container. Tentu saja, saya membutuhkan IDE yang bisa memakai Python di dalam container Docker dan tetap bisa mendeteksi dependency yang ter-install di dalam container tersebut. Salah satu IDE dengan fasilitas tersebut adalah PyCharm.
Meningkatkan Kinerja Disk I/O Di Ubuntu
06 May 2019Saat menggunakan external HDD untuk bekerja, saya menemukan bahwa Ubuntu bekerja jauh lebih lambat dibandingkan saat menggunakan internal HDD. Hal ini terutama sangat terasa bila saya menjalankan beberapa IDE sekaligus seperti Webstorm dan IntelliJ IDEA secara bersamaan. Pada kasus tertentu, sistem operasi menjadi crash karena saking sibuknya external HDD bekerja. Hal ini terjadi walaupun saya sudah menggunakan konektor USB 3.0 yang menawarkan kecepatan maksimal hingga 5 Gbit/s. Mungkin ini disebabkan oleh USB controller yang memang tidak dioptimalkan untuk HDD (bila dibandingkan dengan SATA). Lalu apa yang bisa saya lakukan untuk mendapatkan kinerja I/O yang lebih baik?
Memakai Google BigQuery Untuk Laporan Inventory FIFO
08 February 2019Menghitung data untuk laporan inventory berbasis FIFO sebenarnya tidak kompleks. Saya hanya perlu mengetahui jumlah item yang tersisa, lalu mencari transaksi pembelian dan retur terbaru hingga mencapai nilai jumlah item tersisa. Sama sekali tidak perlu menghitung penjualan dan transaksi lainnya dari awal. Sebagai contoh, karena pada awalnya saya menggunakan Firestore, saya bisa membuat sebuah function seperti berikut ini untuk mendapatkan pembelian dan retur hingga jumlah item tersisa:
Kategori: Pemograman Tags: BigQuery GoogleCloudPlatform FirebaseFunction
Membuat Laporan Berbasis Web Dengan JasperReports Server
01 February 2019Pada suatu hari, saya perlu membuat fasilitas untuk menampilkan dan mencetak laporan. Lebih spesifiknya, saya perlu menampilkan laporan finansial dengan jumlah data yang besar. Pengguna harus bisa men-filter laporan, berpindah halaman dan mencetak seluruh halaman laporan dalam bentuk dokumen PDF. Ini adalah sebuah filter yang umum, bukan? Google Cloud Platform menyediakan sebuah layanan laporan yang bernama Google Data Studio. Sayangnya, saat mencoba produk tersebut, saya menemukan bahwa ia hanya bisa menampilkan tabel sederhana. Saat mencoba mencetak dan meng-export laporan ke dalam PDF, Google Data Studio hanya mau mencetak halaman yang sedang aktif, bukannya seluruh halaman yang ada. Sepertinya produk tersebut lebih tepat dipakai untuk menampilkan rangkuman atau laporan yang dilihat di layar (bukan untuk di-cetak). Padahal, di Indonesia, masih banyak pengguna yang memilih membaca laporan yang sudah dicetak.
Kategori: Pemograman Tags: JasperReports
Mengatasi Publish Yang Lambat Di GooglePub/Sub Node.js
28 January 2019Google Pub/Sub adalah layanan messaging atau apa yang sering dikenal sebagai message queue seperti Apache ActiveMQ, Apache Kafka, dan sebagainya. Salah satu perbedaan utamanya adalah Google Pub/Sub merupakan bagian dari Google Cloud Platform dan memiliki peran penting dalam komunikasi layanan Google Cloud Platform lainnya. Saya sering menggunakannya sebagai trigger untuk Cloud Firestore dan juga komunikasi asynchronous dari satu service ke service lainnya pada aplikasi yang menerapkan arsitektur microservices.
Kategori: Pemograman Tags: GoogleCloudPlatform TypeScript