Skip to main content

Posts

XP | Pair Programming di Mata Dummy

Tak terasa 2018 sudah memasuki hari ke-2, resolusi tahun lalu nampaknya masih belum bisa terpenuhi karena hanya sebatas tertulis di ingatan, yang alangkah lebih baik jika di tulis secara visual.

Tapi kali ini saya tidak akan membahas mengenai resolusi tahun 2018.
Di posting kali ini saya ingin berbagi pengalaman saya menjalankan Pair Programming selama lebih kurang 7 bulan di perusahaan tempat saya bekerja sekarang.
Saya sudah mengetahui Pair Programming ini saat masih di perusahaan lama, namun di perusahaan baru inilah saya langsung mengalaminya sendiri. Jika diterjemahkan secara praktek, Pair Programming adalah dua orang programmer bekerja secara bersamaan dengan 1 workspace saja (1 komputer, 2 programmer, 2 mouse dan 2 keyboard ^_^). Bersamaan di sini bukan berarti 2 programmer tersebut "mengetik kode secara bersamaan", melainkan mereka bekerja sama dalam menyelesaikan suatu story. Secara istilah 2 programmer tersebut dibagi menjadi dua role Driver, programmer yang bertu…
Recent posts

Hisashiburi - Long time no see

Dear all,

Sudah lama sekali saya tidak memposting "artikel" di blog ini :P

Btw, melalui post ini saya ingin menginformasikan bahwa berikutnya blog ini akan beralih fungsi menjadi blog mengenai pengalaman yang saya alami di dunia kerja. Untuk post technical akan saya pindahkan ke https://medium.com/@ekosuhariyadi

Sampai bertemu di post selanjutnya.

Terima kasih :)

Bash | Learning Bash/Shell Scripting The Hard Way

Meskipun saya sudah menggunakan Sistem Operasi berbasis Linux sejak lebih dari 8 tahun lalu.
Cukup jarang saya harus berkutat dengan bash/shell scripting/programming, saya hanya sekedar tahu dan tidak pernah belajar lebih dalam.

Tapi karena tuntutan profesi (*haha profesi jare), mau tidak mau saya harus sedikit belajar, dengan bekal script warisan dari SysAdmin sebelumnya.

Langsung saja studi kasusnya adalah membuat bash script untuk melakukan proses backup database sistem (kami menggunakan PostgreSQL)  ke layanan Google Drive (berikutnya kita sebut gdrive). Kami mempunyai beberapa database server dan beberapa diantaranya dibatasi hanya bisa diakses dan mengakses via jaringan lokal (private network).

Untuk keperluan komunikasi dengan Google Drive via terminal, saya menggunakan tool bernama drive yang merupakan project open source dan bisa diakses via https://github.com/odeke-em/drive.

Gambaran untuk prosesnya adalah seperti ini:
Di node backup masih ada file backup yang lama untuk ke…

PostgreSQL | Query Select Dengan Tuple Sebagai Kondisi di Where Clause

Salam SQL ^_^)!

Kali ini saya mau berbagi pengalaman untuk menggunakan tuple dalam query (kondisi di WHERE clause).

Beberapa minggu yang lalu saya harus melakukan cek data, dimana saya membuat query yang membutuhkan beberapa kombinasi kondisi yang harus dipenuhi. Jika menggunakan operator logical biasa, eg:


WHERE column1=value1 AND column2=value2 AND column3=value3

saya mengalami kesulitan apabila value1..3 tersebut terdiri dari beberapa row yang merupakan hasil subquery dalam clause IN.

Setelah googling ternyata clause WHEREsudah mendukung penggunaan tuple, jadi query yang saya buat menjadi


WHERE (column1, column2, column3) IN (SELECT value1, value2, value3 FROM ...)

Wah, saya baru tahu hahaha ^_^)!

Bash | Solusi "Warning: remote port forwarding failed for listen port 9000"

Halo Sobat, mohon maaf saya cukup lama hiatus di blog ini. *sok pakai kata hiatus :P

Langsung saja saya mau share pengalaman melakukan remote debugging PHP melalui ssh tunnel di port 9000 (standar port xdebug, yap saya menggunakan xdebug untuk debugging aplikasi PHP).

Dengan ssh tunnel kita bisa menforward port 9000 dari server yang ada di cloud ke port 9000 di komputer lokal kita, sehingga kita bisa mendebug aplikasi di server melalui IDE/tool debug di komputer lokal. (Saya penyuka PHPStorm, please no IDE war here haha).

Namun karena internet yang saya pakai tidak stabil sehingga seringkali ssh tunnel ini freeze di bash window, sehingga saya harus menutup paksa window tersebut. Akibatnya di sisi server, port forwarding masih aktif, jadi ketika saya melakukan tunneling lagi maka akan muncul warning remote port forwarding failed for listen port 9000.

Solusinya adalah kita harus meng-kill proses port forwarding tsb via ssh ke server dengan menjalankan perintah

lsof | grep 9000 , maka ak…

Hardware | Banyak Bersyukur dengan SSD

Seperti yang sudah saya sampaikan pada post sebelumnya, kali ini saya mau membahas upgrade laptop saya ke SSD sebagai "main" hard drive.

Saya sudah cukup banyak mendengar mengenai hebatnya kecepatan yang ditawarkan SSD, namun belum mempunyai keinginan untuk upgrade karena ketidaktahuan saya bahwa ada cara untuk memasang SSD ke laptop secara mandiri (*Saya beralih dari PC ke laptop karena adik saya membutuhkan PC saya). Beruntung saya mengikuti feed dari blog Mas Vatih dan menemukan satu artikel menarik mengenai cara memasang SSD di Macbook miliknya.

Berbekal info dari post tersebut dan uang tabungan yang cukup, saya memutuskan untuk mencobanya.
Saya membeli SSD Crucial MX200 250GB dan HDD Caddy SATA 12.7mm dari JakartaNotebook.com *bukan iklan.
Bagi yang belum tahu, HDD Caddy adalah suatu alat yang digunakan untuk memasang hard drive pada slot DVD ROM.
Berikut penampakan HDD Caddy



Perlu diketahui juga bahwa HDD Caddy mempunyai 2 ukuran ketebalan yakni 9.5mm dan 12.7mm, yak…

Kotlin | kotlin.String steroid untuk java.lang.String

Sama seperti String di Java, Kotlin String adalah obyek immutable yang berarti sekali diinisialisasi, valuenya tidak akan bisa diubah. Jika dilakukan assignment value baru, yang sebenarnya terjadi adalah JVM akan membuat obyek String baru dengan value yang diassign.

String kode = "Sebenarnya hubungan kita ini apa sih?"; // misalkan object di memory adalah ABCkode = "Oke, besok aku datang ke Ayah kamu"; // object yang ada di memory saat ini adalah XYZ
Seperti halnya dengan Java, String literal di Kotlin juga dimulai dengan tanda petik ganda (").
Hanya saja class String di Kotlin memeliki beberapa kelebihan dibanding String di Java.
Diantaranya:
Setiap element character dari string bisa diakses dengan array syntax
eg: kode[index], sedangkan di Java kode.charAt(index)

Untuk iterasi tiap element

Java
for (char c : kode.toCharArray()) { System.out.println(c); }
Kotlin
for (c in kode) { println(c) } String template, yakni dalam string literal bisa disisipkan kode …