Selain jadi programmer, keseharian gua habiskan menjadi fotografer. Gua punya studio foto kecil-kecilan untuk mengisi waktu agar terkesan produktif.

Tempat penyimpanan jadi permasalahan untuk bisnis yang berhubungan dengan foto. Ukuran 1 foto bisa mencapai 5-6 MB bisa membuat storage perlahan-lahan penuh. Gak jarang 1 sesi foto aja bisa memakan storage dari 500 MB sampe 1 GB lebih.

XnView MP adalah perangkat lunak yang gua pakai buat mengelola berkas-berkas foto. Biarpun closed source tapi gua suka pakai software ini karena cocok dengan experience gua. Generate thumbnail serasa sangat cepat dibandingkan dengan menggunakan file manager bawaan sistem operasi. Selain itu, gua pakai untuk resize foto.

XnView MP emang tool yang lumayan powerful tapi sebagai pengguna Linux tingkat advanced, gak lucu kalo gak pake terminal buat ngerjain sesuatu yang berulang. Dengan bantuan imagemagick, proses resizing menjadi lebih mudah. Berikut baris perintahnya:

for i in *.JPG; do magick $i -resize 50% -quality 76 NewFolder/$i; done

Dari baris perintah tersebut, bisa disimpulkan ukuran fotonya gua kecilin setengahnya dengan kualitas 76%. Angka-angka ini gua pergunakan dari hasil baca-baca blog orang yang sering berkutat di bidang pengelolaan citra. Hasil resize ini bisa menghasilkan ukuran berkas foto menjadi 300-400KB. Cukup untuk menghemat storage tanpa harus membuang foto-foto lama.

Berikut script lengkapnya:

#!/usr/bin/env bash

if [ -z "$1" ]; then
	echo "Error: No directory specified."
	echo "Usage: $0 <directory>"
	exit 1
fi

cd "$1"

if [ ! -d "$1/resized" ]; then
	mkdir -p "$1/resized"
fi

for i in *.JPG *.jpg; do
	echo "Resizing $i..."
	magick "$i" -resize 50% -quality 76 "$1/resized/$i";
done

Hari ini gua belajar kalo direktori .cache yang ada di home bisa di-mounting ke tmpfs. Berikut baris yang gua tambahin ke berkas /etc/fstab.

tmpfs /home/ronsen/.cache tmpfs size=2G,uid=1000,gid=1000,rw,nosuid,noexec,nodev 0 0

Biarpun gua tau cache bisa membuat cepat sebuah program berjalan tapi di sini gua gak butuh berkas-berkas sampah yang entah dari kapan makin lama makin menumpuk.

Sejak Laravel mengenalkan Octane buat ngedorong aplikasi menjadi lebih cepat, gua mutusin buat nyobain pake pustaka ini. Emang benar, dengan bantuan FrankenPHP, aplikasi yang gua bikin makin ngebut. Nggak ada lagi yang bilang PHP sebagai bahasa yang lambat.

Semua berjalan lancar sampai akhirnya beberapa kali Octane nggak bisa restart. Udah coba beberapa kali nyobain matiin service tapi nggak bisa juga. Suata saat pengen dihidupin tapi port katanya sedang dipakai, sedangkan tampilan depan nunjukin error 503. Restart server pun kadang nggak berhasil karena menunggu service-nya mati.

Sebenarnya error ini jarang terjadi kecuali gua abis refactoring yang cukup banyak. Kalo dikit-dikit aja, proses restart aman. Gua masih pengen pake Octane ini tapi karena gak mau terlalu ambil pusing, akhirnya gua mutusin kembali pake php-fpm aja. Apalagi aplikasi yang gua bikin pengunjungnya gak terlalu banyak lagi.

Saat ini optimasi kode sumber menjadi andalan biar aplikasi tetap ngebut.

Ganti wallpaper di Linux lewat command line itu benar-benar bikin pusing. Udah dibantu pake ChatGPT dan AI lainnya, tetap gak segampang itu. Tetap harus dilakukan secara manual.

Jadi ceritanya, gua pengen wallpaper di PC desktop gua ganti dalam kurun waktu tertentu. Untuk urusan waktu, biasanya gua cukup pake cron. Kebetulan script yang gua bikin itu pake Python karena butuh buat mengunduh wallpaper. Setelah terunduh, script itu secara otomatis akan menggunakan wallpaper tersebut.

Gua akhirnya menyerah.

Eh, pas gua coba ganti wallpaper otomatis saat login selalu berhasil.

Gua balik lagi pake Blogger sebagai platform buat nulis blog. Tadinya gua pake Vercel karena nyediain layanan gratisan buat bikin website. Setelah mencoba beberapa lama, akhirnya gua memutuskan untuk ninggalin Vercel.

Menggunakan Vercel itu sebenarnya asyik-asyik aja. Gua pake ini karena emang awalnya gua pengen belajar SvelteKit buat bikin website. Vercel menjadi tempat yang mudah buat deploy aplikasi yang udah lu kembangkan dengan framework ini.

SvelteKit itu semacam meta framework yang artinya mendukung pengembangan server side. Biarpun Vercel menyediakan database buat dijadiin back-end, sayangnya nggak gratis. Buat ngakalin ini, gua bikin API langsung dari home lab. Semuanya pun berjalan lancar sampai PLN jadi kendala utama lu.

Listrik yang sering padam menjadi alasan utama gua memutuskan kembali menggunakan Blogger. Biarpun banyak kekurangannya, apalagi gua yang suka mengetik entri postingan dengan menggunakan Markdown. Untungnya, gua bikin Guritan buat ngatasin masalah ini. Bukan editor yang canggih sih tapi sementara ini udah cukup buat gua.

Kalo dipikir-pikir, Blogger bisa aja sih dijadiin back-end dan Vercel/Github pages/Cloudflare pages/dll sebagai front-end.

Sering kali gua liat beberapa perusahaan yang sukses luar biasa akhirnya tumbang perlahan-lahan. Biasanya mereka berhenti melakukan inovasi dan fokus ke hal-hal yang gak signifikan. Misalnya, fokus ke menjaga image mereka di muka publik. Apalagi memperkerjakan orang-orang yang gak ada hubungannya dengan visi misi perusahaan.

Boing, Nokia, Kodak, Intel, dll adalah sederet perusahaan yang pernah gua baca di beberapa artikel berita yang mengalami kemunduran. Saat berada di puncak kejayaan malah terlena, buang-buang duit yang jumlahnya fantastis buat kegiatan seremonial. Fokusnya bergeser, bukan lagi dalam riset dan pengembangan.

Terakhir, perusahaan yang mulai gak enak terdengar adalah Apple. Beberapa kali gagal memenuhi janjinya untuk memberikan inovasi yang berbeda atau setidaknya mengikuti perkembangan yang sudah dilakukan kompititor lain dalam perangkat mobile.

Untuk menghindari technical debt, gua selalu menyempatkan diri melakukan pembaharuan di setiap project yang gua bikin. Salah satu alasannya, biar nggak terlalu banyak melakukan rewrite apalagi sampe dari nol.

Pertama kali gua pake Laravel itu kalo nggak salah dari versi 4.2. Ada satu project yang lumayan besar yang pake versi ini bertahun-tahun. Pada saat gua pengen menambah fitur dengan menambahkan library, ternyata udah nggak mendukung versi ini. Saat itu, jadinya gua bikin semacam microservice hanya biar bisa menambah satu fitur.

Biarpun project ini jalan mulus selama bertahun-tahun tapi bikin gua pusing sendiri karena nggak bisa nambah fitur dengan mudah. Belum lagi tahu kalo pake versi lama itu ada aja bug atau bolong-bolongnya. If it's working, don't touch it, bisa jadi bumerang akhirnya.

Akhirnya sampe sekarang, gua bikin jadwal rutin buat selalu memperbaharui library dan bahkan ke level framework biar nggak terlalu capek ke depannya.