Order of The Cards — Photo by Sergi Viladesau on Unsplash

Reordering things seems to be something trivial. We do it almost every day, we sort our tasks, we sort our priorities — we move around that card on our Kanban board.

I mean, what could go wrong right?

The Cascading Reordering

Imagine you have an array of letters, and you want to reposition some element to another position.

We want to move ‘C’ to be the first element.

Now, let’s say we need to keep track of each element position. So it would be like:


Shared Parallelism
Shared Parallelism

There are cases when you have multiple components that display the same data from the same source. If every component that requests the data need to fetch it from the source, you would end up with too many fetch request; thus consuming many of the user network resources.

Typically, this can be solved by requesting the data only once on the parent component, then pass down the data to the components that might need it. However, now you have to responsibly manage the state of the data on the parent component and pass it around.

What if we could reuse…


United Nations COVID-19 Response
United Nations COVID-19 Response

This is an accompanying article related to a recent collaboration between Deeptech and Compfest available below,

The world is swooped over by a global pandemic that is now disrupting every aspect of our life. Coronavirus is a catalyst that suddenly changed the face of the world that we once know.

People lost their beloved ones, they lost their job, some had to make hard decisions to close their business — everything is hard during this situation.

We hear news about cases kept increasing, followed by deaths; along with misinformation that spreads around the internet. …


Node dan Libuv

Masa Sebelum Node

Jika kalian mengingat masa-masa sebelum Node mulai populer dan dipakai dimana-mana, maka pasti kalian tidak asing dengan Apache dan Nginx. Keduanya merupakan server HTTP yang populer dengan kelebihannya masing-masing.

Apache bekerja dengan menjalankan proses utama yang nantinya bisa membuat subproses lagi. Setiap subproses ini bisa membuat thread yang akan menangani permintaan yang masuk.

Pembuatan subproses dan thread ini bukanlah sesuatu yang ringan secara sumber daya. Jika setiap subproses dan thread ini memuat sesuatu yang besar seperti call stack, heap allocation, dan sebagainya. Maka penggunaan subproses dan thread sangat terbatas dengan software dan hardware yang mendukungnya.

Karena keterbatasan ini, ada istilah…


React Loves TS

Di Kata.ai kita menggunakan React dan TypeScript untuk semua front end kita. Kita merasakan bahwa penggunaan TypeScript bisa membantu kita membuat kode yang lebih bebas dari bug, karena TypeScript akan menangkap inkonsistensi tipe.

Kenapa TypeScript

TypeScript membantu kita supaya bisa konsisten dalam penggunaan tipe data. TypeScript memastikan bahwa variabel tertentu, memiliki tipe data tertentu, dan jika tipe datanya berubah, maka harus didefinisikan juga.

TypeScript bekerja dengan dua cara, inferensi tipe, dan anotasi tipe. Ketika sebuah tipe diberi anotasi, maka kita memberi tahu TypeScript, bahwa variabel ini harus berisi tipe yang ditentukan. …


Ramadhan is a special month for Moslem. During this special month, adult Moslem, who were healthy; mentally and physically; must fast.

Ramadhan fasting is not just about holding thirst and hunger. Moslem also had to hold their anger, lust, even what words coming out from their mouth.

It is a month when a Moslem is trained to control and own themselves. While it is true, that people say this month is a time for Moslem to sympathize with the poor and feel their struggle. It is more than just that.

Ramadhan fasting happens during the day when the sun is…


The Mystery of The Fan — Photo by Filios Sazeides on Unsplash

There are two things that should not go together in public: name, and a mistake. The combination of these two, when thrown into the public; means a death penalty for the name mentioned.

What would you do, if someone made a mistake? Will you kill the man? Or will you kill the mistake?

The Mystery of The Fan

From a modified true story.

One morning, John found that a fan was left turned on all night in the office. Nobody knows who left the fan turned on, people left that night with peace, not knowing the fan is still on.

But the morning came, to…


Bismillahirrahmanirrahim.

ANTLR (Another Tool for Language Recognition) adalah satu alat yang bisa kita gunakan untuk membuat lexer dan parser secara otomatis cukup dengan menggunakan file grammar.

Tentang Lexer dan Parser

Lexer adalah suatu komponen yang berfungsi untuk mendeteksi bagian terkecil (token) dari suatu bahasa. Proses pendeteksian ini disebut lexing. Biasanya regular expressions digunakan untuk melakukan proses lexing karena bentuk token biasanya sangat sederhana.

Sedangkan parser berfungsi sebagai komponen yang mendeteksi struktur dari beberapa token. Proses pendeteksian ini disebut parsing. Proses parsing lebih rumit daripada lexing, sehingga regular expression kurang cocok untuk digunakan di sini.

Karena proses pembuatan lexer dan parser cukup melelahkan jika dilakukan…


Semoga Allah melindungi kita dari sifat riya’.

Hidup kita akan selalu diuji oleh Allah. Entah dengan kehilangan harta, atau dengan bertambahnya harta. Entah dengan kehilangan kekuasaan, atau dengan bertambahnya kekuasaan.

Ada rasa gelisah dan takut saat menghadapi hal yang asing dan baru bagi kita.

Entah itu menghadapi ujian di kampus. Menghadapi pertama kali bekerja. Menghadapi naik jabatan. Menghadapi rekan baru. Dan seribu satu hal baru dan asing lainnya bagi kita.

Ya Allah, sesungguhnya aku akan menghadapi hal yang Engkau lebih mengetahuinya daripada aku.

Berikanlah aku kekuatan dariMu Yang Maha Perkasa untuk bisa menjalaninya.

Berikanlah aku ilmu dariMu Yang Maha Berilmu untuk bisa menjalaninya.

Mudahkanlah urusanku, dan rahmatilah aku, dan ampunilah dosa-dosaku.

Perbaikilah urusan kami, dan jangan Engkau serahkan kepada kami walau hanya dalam sekejap mata.


I used to think that software development was my passion. People used to say that it is my passion. They see that I enjoyed doing software development, and assumed that I must be following my passion. I think I am good at software development, that I must be following my passion.

But sometimes I wonder, was it really my passion? I started to learn software development as a way for me to solve my math homework.

I still enjoy and feel excited when doing software development. But so am I when writing articles, poems, and songs. …

Aditya Purwa

Software Engineer at Clearview Studios (https://clearview.team) - Software engineer, writer, designer, and artist.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store