Git Tagged Stash

Devs, like Firefighters, live and die by their tools. Well, not literally. Unlike firefighters, when we made mistakes in using our tools, the spectrum of effect is rather broad. Ranging from mild inconvenience to mistakenly dropping prod db.

Most of the time, we only focus on how our tools help our work. Disregarding the amount of complexity hidden inside the tool itself. Those complexities often arise from needs to cover multiple possible workloads. With only small subset of those features is directly usable for our use case.

While this may be enough for day-to-day work, there are times when we fall into “add another tool” trap. Mostly because we need to improve our experience with existing tools, or because we think that our current tools did not cover our use case. Despite the fact that our current tool can actually handle the task just fine.

This is either due to our lack of understanding of the tool. Or simply due to lack of desire to learn said tool in-depth. While the later factor is somewhat difficult to deal with, the former can be “fixed” by doing some exploratory exercises and a lot of reading. Yes, it boils down to good-old RTFM. What a surprise!

Lanjutkan membaca Git Tagged Stash

Automate OpenApi Path Aliasing for NelmioApiDoc

When using Nelmio with serialization groups, there’s a “small” caveat. As mentioned in the documentation:

If you are using serialization contexts (e.g. Groups) each permutation will be treated as a separate Path. – source

This means that for each serialization group, the number of generated paths will grow really fast, since it provides each permutation with its own path. For example, if you have list and detail groups, you’ll have (2 custom + 1 default)! = 6 possible paths.

While it seems to be a non-issue at first, imagine when you’re building a structure to consume the API and can’t decide whether User1 and User23 can be simplified into a union type before actually inspecting the actual response. Worse still, any changes in backend code that affect either serialization group or parsing logic would remove any guarantee that the variant number still refer to the same structure. Madness!

Lanjutkan membaca Automate OpenApi Path Aliasing for NelmioApiDoc

Pakai Kamera HP untuk Webcam

Minggu kemarin saya selesai merakit PC baru untuk kebutuhan WFH. Sayangnya, karena keterbatasan budget, saya melewatkan webcam dalam daftar pembelian part. Padahal part satu ini cukup kruisial ketika pak bos minta open cam saat meeting.

Ketika browsing Tokopedia untuk webcam yang bagus, agak kaget juga melihat range harga yang cukup bervariasi; dari 200-ribuan sampai 1 jutaan untuk webcam yang ber-resolusi 1080p dengan kualitas gambar yang OK. Hati ini bimbang antara mendahulukan kualitas atau memprioritaskan kemampuan kantong. Hmmmm…

Lanjutkan membaca Pakai Kamera HP untuk Webcam

Jalan Panjang Upgrade T480

Awal 2023, karena laptop lawas X230 dipakai istri dan sering bermasalah di sensor kipasnya, saya memutuskan membeli laptop second. Dengan alasan build quality dan feel keyboard yang superior, saya memilih meminang Thinkpad lagi, hanya berbeda generasi. Pilihan jatuh pada T480 yang berdasar hitung-hitungan masih affordable dan cukup bertenaga.

Lanjutkan membaca Jalan Panjang Upgrade T480

H-11

Minggu ini, aku belajar mencintai meski hanya sekejap.
Karena cinta adalah bahasa asing yang selalu bisa difahami, meski tak sering bisa diucap.
Seperti hujan yang kadang jatuh tapi tak meresap,
tak mampir hanya mengalir.

Minggu depan, aku belajar mencintai selamanya.
Yang satu dan sekali, seumur hidup sampai tua.

Sudah itu saja, tidak ada kata romantis.
Karena katanya
kalau sudah punya tanggungan harus pragmatis

Merokok

Draft lawas ini ditulis 2014, dipublikasikan 5 tahun kemudian.

Bulan kemarin, masih ada kursi di Smoking Room terminal B1 Bandara Soekarno Hatta. Hari ini kursinya hilang entah kemana. Beberapa orang memilih berdiri, saya dan beberapa yang lain lebih memilih jongkok atau lesehan. Meski dengan posisi ini kaki jadi agak manis, sampai2 terasa kesemutan.

Fasilitas Smoking Room di Terminal ini memang agak anu. Pintu masuk tidak bisa (?) ditutup. Ketika perokok berkumpul, asap beracun sering mengepul ke luar. Apalagi di dalam, sudah mirip pawon di rumah saya saat saya masak air di sore hari. Tapi ini tak menghalangi perokok bermulut pahit untuk berkumpul, ngobrol sambil membakar rupiah.

Lanjutkan membaca Merokok

Señor

Software Architect, pangkatku.
Jabatan yang luar biasa
Kalau rubuh karyaku
Akankah aku dipenjara?
Aku software engineer ngawur
Berkarya tanpa komposisi.
Aku membangun rel sepur
untuk sepeda dan lari pagi.
Aku lelah,
Panggil aku tukang ketik saja
tak perlu titel aneh-aneh.
Aku cuma ingin berkarya
tanpa aturan-aturan nyeleneh.

Dasawarsa

Menuju sepuluh, mengingat kenangan
Menengok kemana jalan membawa kita.
Dari satu, pertama.
Dimana kisah kita bermula.
Satu lembar kertas berpuluh kata satu makna.
Hasrat untuk berdua.
Karena dua itu genap, genap itu lengkap,
meski lengkap tak pasti sempurna.
Dua enam Oktober, 
dua insan satu tujuan tercapai juga.
Tiga pintamu kala itu:
dekat senyum, 
buang marah, 
jauh asap tembakau laknat.
Bukan marah bukan salah,
tapi kasih yang membuatku selalu ingat
Sebab kasih itu seyogyanya sejalan seirama.
Setuju setujuan, bersama bahagia.
Empat tak penting,
abaikan saja karena cinta itu psikologi, bukan statistika.
Lima kota memisah, enam tahun terpisah; toh kita biasa saja.
Tak ada wacana pecah, tak ada pertanda bubrah.
Tujuh kali aku mampir ke rumahmu, 
sekedar bertemu dan ngobrol di kursi.
Andai pertama tak tersesat, harusnya jadi delapan.
Jarang memang, karena meteran tak bisa dikorupsi.
Dan tanggalan tak selalu menjadi teman.
Mungkin kau lupa, atau mungkin tak peduli.
Sembilan, hampir sepuluh tahun lalu
kita bertemu untuk pertama kali.
Kemudian canda, cerita, dan teman
membawa kita ke hari Jumat yang cerahnya terasa berbeda,
Hari saat kau katakan iya.