2014-2015

Post terakhir di blog saya ini kurang lebih dua tahun lalu, tentang ulang tahun Lemon yang ketiga, pun telat beberapa bulan (bulan Maret, yang mana ulang tahun Lemon adalah bulan Desember).

Kayanya ini mewakili apa yang terjadi sepanjang tahun 2014 – 2015, sepi blog post, kurang interaksi sosial media (udah gak pernah/jarang sekali nge-twit), kurang pamer (lagian juga apa yang mau dipamerin), lebih banyak main sama teman-teman di sini, ngumpul-ngumpul. Tapi sejujurnya, tahun 2014 – 2015 kami (saya dan Ajeng) belajar banyak banget dari beberapa kejadian dan hal-hal yang kami lakukan dan hal-hal yang kami pilih untuk tidak melakukannya. Kalau disuruh nyebutin satu-satu agak susah sih, tapi kalau inget-inget yang udah lewat, rasanya banyak banget yang udah kami lakuin dan kami lewatin.

Waktu

Tahun 2015 membuat saya berpikir ulang tentang waktu, betapa saya melewatkan banyak hal karena saya tidak meluangkan waktu (alias make time). Ajeng yang sering ngingetin, “Make time, kalau gak nanti kamu nyesel lho”, dan betul sekali, kata-katanya terbukti ketika kami kehilangan salah satu kawan – yang baru-baru ini kami sadari – kami seringkali memikirkan dia, tetapi tidak pernah benar-benar melakukan sesuatu untuknya. Ujar saya “Kita gak sadar ya selama ini, ternyata si anu adalah salah satu orang yang sering kita pikirin” ke Ajeng.

Tapi gimana lagi, kalau dibilang terlambat ya memang terlambat buat kami menyadari. Mungkin ini yang namanya “Learn the hard way“, kami harus menelan pil pahit yang mana cuma kerasa pahitnya aja karena manisnya udah habis dan kami lupa menikmatinya.

Salah satu resolusi tahun 2016 adalah: BANGUN PAGI. Salah satu persiapan untuk Lemon yang akan masuk SD tahun depan adalah bagun pagi. Biasanya kami bangun pukul ~7:45, pas banget untuk siap-siap 10 menit; Lemon mandi, pakai baju, lalu turun ke bawah, naik bis sekolah.

Kalau dipikir lagi, rasanya gak percaya bahwa sebentar lagi Lemon sudah akan masuk SD, lima tahun itu waktu yang cepet banget. Bukan berarti mengecilkan apa-apa yang sudah kami lewati, tapi justru merasa kurang menikmati apa-apa yang sudah kami lewati.

Di sisi lain, kami juga menyadari bahwa orang tua kami sudah semakin tua. Beberapa minggu lalu, orang tua kami datang berkunjung selama kurang lebih seminggu. Kami yang berangkat dari keluarga sederhana ini kadang pengen banget ngajakin orang tua kami untuk merasakan pengalaman yang berbeda dari keseharian mereka. Misal, pengen ngajakin mereka makan sushi, makan Four Fingers, atau pengen ngajakin main nonton laser show di Marina Bay, atau naik perahu di Singapore River, atau jalan-jalan di MacRitchie Reservoir. Tapi akhirnya kami sadar juga bahwa mereka sudah tua, terutama bapak saya yang akan berusia 84 di tahun ini, sudah gak bisa lagi jalan jauh, gak mau lagi nyobain hal-hal baru, nyobain makanan baru, dan surprisingly secara emosi justru lebih labil.

Awalnya kami agak kaget, tapi lama kelamaan kami mengerti, “Oh iya ya, bapak udah gak bisa begitu lagi”. Di sini saya mikir cukup keras, melihat ke belakang, rasanya gak cukup meluangkan waktu buat mereka. Sedikit nyesel karena selama ini dengan segala keterbatasan, kami rasanya kurang memberikan lebih buat mereka.

 

Apresiasi

Tahun 2015, Ajeng menjalani MRI dan akhirnya kami tahu bahwa salah satu disc di tulang punggungnya keluar jalur. Dia harus istirahat total selama dua minggu. Jadi selama dua minggu itu saya kerja dari rumah, Ajeng bed-rest. Selama itu pula saya tahu bagaimana capeknya ngurus rumah (padahal masih jauh di bawah standard-nya Ajeng).

Memang bener sih saya terbiasa dengan kegiatan kantor tiap hari dan kaget karena harus ngurusin rumah, tapi itu cuma salah satu faktor. Tapi seriusan deh, cobain ngurusin rumah sehari aja: bangun pagi, masak air, cuci piring/sendok/gelas, masak nasi, nganterin anak sekolah, masak untuk makan siang, nyuci baju, nyapu rumah, ngepel, ngelapin kaca, jemurin baju, jemput anak sekolah, makan siang sambil nemenin anak makan siang, nidurin anak, baru juga anak tidur lalu bisa ngelempengin pinggang sebentar, liyer-liyer pengen ikutan tidur eh anaknya keburu bangun, akhirnya bangun lalu siap-siap masak buat makan malam, kelar masak sambil nunggu suami pulang, angkatin jemuran, lalu ngelipetin baju/setrika sampai suami pulang, lalu makan malam, di titik ini seluruh dunia rasanya sudah hancur. Nah, si ibu ini melakukan hal-hal kaya gini tadi sepanjang tahun, praktis gak ada cuti. It ain’t easy.

Mungkin kita gak perlu serta-merta harus ngapain, tapi minimal di-acknowledge lah itu usaha seseorang yang masih setia tiap hari ikut menyokong jalannya rumah tangga. Kegiatan ibu-ibu rumah tangga itu banyak, tapi gak kelihatan, karena di alam bawah sadar kita, itu adalah hal yang udah semestinya, sama kaya matahari terbit di timur, pukul 7 langit mestinya sudah terang. Semua orang gak akan peduli ketika matahari terbit tepat waktu, tapi kalau suatu hari matahari gak terbit di waktu yang semestinya, barulah kita manusia akan teriak.

 

 

Choose Your Battle Wisely

Kami kayanya udah ada di masa di mana gak semua hal cukup berharga untuk diberantemin. Bahkan hal-hal yang tadinya cukup berharga pun, kami harus sortir lagi. Semua itu bermuara pada kenyataan bahwa kami punya banyak hal yang harus dikerjain.

Jadi hal-hal yang berpotensi untuk memicu perasaan negatif, merusak ketahanan dan kestabilan emosi (uhuy!), kami berusaha keras untuk menghindarinya. Hehe, seperti banyak hal lain, “easier said than done“, moga-moga tahun 2016 ini bakal lebih baik dari dua tahun belakangan

 

Tiga tahun Lemon dan beberapa bait menjadi orang tua

Lemon berumur tiga tahun akhir tahun lalu, 29 Desember 2013. Lalu mengapa baru menulis blog ini sekarang? Jawabnya panjang sekali, saking panjangnya, saya perlu beberapa minggu untuk menyadari, saya tidak menulis sesuatu untuk memeringati hari lahir putri kami satu-satunya (sampai saat ini :D), Maika Lemoni Amanda.

Sebenernya pengen nulis ini dari sejak lama, tapi kadang saya pikir tidak begitu penting untuk menuangkannya ke dalam tulisan lalu membiarkan publik membaca kemudian mengadili setiap kata yang saya pilih dan memerkosa setiap alur pikir yang saya tempuh. Tapi, whatever, saya juga punya pandangan sendiri. Intinya, saya tidak suka dengan diri saya yang ‘dulu’, pemikiran, pola pikir, kepribadian, kesimpulan-kesimpulan, dan segala sesuatu yang saya sukai di masa lampau, saya ingin meletakkannya di bagian lampau, sejauh-jauhnya.

Saya dibesarkan dalam tatanan sosial `lelaki adalah raja, lelaki yang benar, bahkan tuhan pun adalah lelaki`. Perempuan harus diam, tinggal menurut, tidak usah ikut-ikutan, harus nrimo ing pandum, ngurusin rumah, sekolah boleh tapi musti nurut apa kata suami. Segala doktrin, madzhab dan manhaj kehidupan sosial a la lelaki. Saya juga tumbuh dengan doktrin hitam putih, kalau tidak benar ya pasti salah dan masuk neraka, tetapi juga mengamati kemerdekaan yang melampaui batas. Hal-hal terkait tatanan sosial dari satu titik ekstrim hingga titik ekstrim di ujung sisi lain sudah pernah saya lihat, setiap kali mengingatnya, menimbulkan perasaan ngilu …

Matrimony

Tatanan sosial macam ini mengizinkan terjadinya fenomena-fenomena radikal yang akhir-akhir ini terjadi, saking mirisnya saya malu menyebutkannya di sini. Setiap kali saya dan istri baca berita menyangkut remaja, anak muda, orang-orang dewasa yang berperilaku tidak wajar, kami selalu berpandangan khawatir, dan saling bertanya “Bagaimana kita bisa mendidik Lemon agar tidak berperilaku seperti orang-orang itu?”

Pertanyaan yang wajar dan lumrah buat orang tua seperti kami, tapi ini tidak pernah sama sekali terpikirkan ketika kami masih lajang. Dari pemikiran semacam itu jadilah kami orang tua yang super protektif, tetapi kami juga tidak ingin anak ini tumbuh dengan doktrin. Kesadaran atas kondisi semacam ini kadang membuat kami berpikir “apakah ini blessing in disguise?”.

Konon ada yang bilang bahwa buah yang baik tumbuh dari bibit yang baik, sebagai orang tua hendaknya selalu memberi contoh yang baik, dan tentunya dari hati yang baik itu akan berbuah dengan tindakan-tindakan yang baik yang menjadi tauladan untuk anak turunan kita. Saya yakin banyak sekali orang tua yang berprinsip demikian, “Kami sudah memberikan contoh yang baik”, “Jadi, tenang, anak-anak kami juga akan jadi orang baik-baik nantinya”

Bukannya kami ragu apakah kami ini orang berperilaku baik atau tidak, tetapi kami sudah cukup melihat perilaku-perilaku buruk dilakukan oleh orang-orang yang merasa diri mereka baik.

Untuk Lemon anak perempuanku, sehat selalu ya Nak.

Anonymity

Anonymity is derived from the Greek word ἀνωνυμίαanonymia, meaning “without a name” or “namelessness”. In colloquial use, anonymity typically refer to the state of an individual’s personal identity, or personally identifiable information, being publicly unknown – Wikipedia

Just had a short but weight discussion with my wife, society is complex. Sometimes, anonymity is necessary. 

Paintings

Last month I got another opportunity to paint one of the walls in our office. After spending two consecutive weekends (yes, Saturday and Sunday) and around 20 hours, a few litres acrylic and more litres water, I finished the painting (well, there is one request from the management that I haven’t had time to do, yet). Thanks to my wife and kid who patiently accompany and support me. (Photo courtesy of my wife)

Office Paintings

The bottom picture above is painting after we moved to current floor with a lot of help from my colleagues (Maslena, Bala, Ika, Ina, Suzanna, Warun, Jason). Here is the post about that painting.

Two weeks ago, my colleague, a Finnish man, asked whether I can make something for his friend wedding, then I showed him my drawings. After several sketches during the weekend, I finally finish the drawing and send it to him.

His response at first sight was like screaming, looking at the fact that this would be a wedding present. … Well nothing wrong with the dripping, except it looks, represent bloods … After he got some opinions from the bride’s friends, he agreed to frame it. I was a bit surprised with the real fine art framing price. I should start a company to do fine art framing … one day

These recent weeks, our office is raising funds for helping kids with cancer through Hair For Hope event as well as creatively holding events such as flea market, international food fair, hug for money (Yeah, one of my colleagues selling 5 minutes hug for $2 dollars minimum), selling massage and other creative way of making money. I was thinking on how to contribute, it’s either designing shirt, selling painting, or cooking for International Food Fair.

We actually planned to cook for International Food Fair, our speciality is ayam penyet, and my wife is really good at cooking it, while I can make sambal, according to my customer, my sambal is one of the best in term of spices composition, hotness, freshness. It’s not just a buzzword, but it’s true (Yeah, it’s a buzzword). Unfortunately, my wife got severe period that prevent her from cooking, she had to stay in bed for two days with those painful cramps.

I had no choice other than selling my painting. There I went to the flea market bringing my painting, three canvas panels with simple drawing (yes, bottle not flower) and I put $150 as its price, finally it’s sold for $75 just before the market closed.

photo

That’s all the story about the painting. I feel good and looking forward to paint more. Yesterday I had a discussion with one of my best friends, a real artist, I learn so much from him, and as I wrote in one of the blog posts, he was one of the reason I started to draw again after being dormant for years. He asked me how it feels when someone likes my painting and even decided to buy it. I said I feel good, real good, fresh, and it’s addictive.

Jadi Penyair

Sudah lama ingin kuuntai sebaris sajak saja buatmu
Biar makin yakin kau, wahai cintaku
Akan betapa luas dalamnya samudra cintaku
Padamu

Tiga empat tahun belakangan lepas sudah segala diksi dan bait bait itu
Digerus geram jahanam jakarta raya
Tempat kita taruh semua timba
Tempat kata rima itu jadi layu
Bikin kita berpuisi jadi malu

Ah aku pikir hidupku sudah tak mendayu-dayu
Makin jantan dan lelakilah aku
Maka kuikuti bisikan untuk selalu lugas dan tegas
Persis seorang lelaki
Persis seorang lelaki

Hingga aku dengar kabar suatu hari
Ada orang berbondong menulis prosa dan puisi

Konon pasar kata bait rima puisi
sedang ramai penyuka dan pembeli
Kata rayuan sudah macam kacang rebus laris di musim hujan

Aku lalu berpikir, inginku jadi penulis itu, biar kujual alinea rayuanku

Aku pun pernah baca Sapardi
Aku pun pernah baca Chairil
Aku pernah khatam bundel Horison
Aku pernah ingin jadi penyair

Tapi kala itu yang kutahu
Penyair bukan makelar kata
Meski kutahu Chairil pun pernah jual paragraf kerna tak ada uang untuk makan

Aku paham

Singapura, Awal Bulan Juli, Asap itu berangsur pergi

Surat Dari India

Awalnya saya pengen berbagi soal salah satu blog post yang cukup menarik, tetapi saya coba cari lagi gak ketemu. Waktu itu saya nemu blog ini sekitar tahun 2006/2007, saya bookmark di del.icio.us tapi udah gak mungkin lagi buat lihat bookmark itu karena akun saya sudah hilang. Isi blog post itu adalah sebuah surat dari Ibu buat anaknya yang merantau di Australia (atau Amerika?) saya lupa. Kurang lebih isi surat itu sebagai berikut:

Dear Jarjit,

Bapak dan ibu di sini sehat semua, moga2 kamu juga sehat2 ya di sana.  Kami mau mengabarkan kalau kami akhirnya pindah rumah, Ibu masih belum hafal alamat baru rumah ini, tapi jangan khawatir, nomor rumah dan kotak surat dari rumah lama kami bawa kok, jadi kamu bisa tetep kirim surat ke alamat yang sama.

Cuaca di sini sedang kurang baik. Dari senin sampai jumat hujan terus, hari sabtu dan minggu juga hujan. Di Australia gimana? Katanya sudah mulai musim salju ya? Kemarin ibu lihat beritanya di tivi.

Ibu juga kirimin baju dinginmu yang dikasih sama kakekmu itu. Tapi jangan kaget ya, waktu ibu mau kirim, kata petugas pos, baju itu terlalu berat karena kancingnya terbuat dari besi, lalu ibu lepasin aja kancingnya lalu ibu masukin ke saku, nanti kamu pasang kancingnya sendiri ya.

Ibu tadinya mau kirim uang sekalian, tapi gak sempat soalnya surat ini udah kekirim duluan.

Jaga kesehatan ya nak, salam sayang dari bapak dan ibu.

Ibunya Jarjit.

Selenium Webdriver and Jenkins

This post has been hold for quite long time because several reasons: there are bunch of articles covering this setup, there are a lot of questions posted in Q&A site on the similar topic. But then I decided to post it with hope it will help other who face similar problem with selenium web driver.

Version

Firefox version versus webdriver version (selenium-standalone-server.jar) is somehow overlapping each other in a way that firefox version increases every now and then and most of the time our firefox automatic update is enabled, while even the newest web driver does not support the newest firefox. So, just take this recipe: Selenium server 2.31 only support firefox up to  version 17.0. I don’t really know what could it be with the older version of both, most likely it will work.

Jenkins Master Setup

Normally I have several jenkins’ executor (slave/node) to run specific task. Especially for web automation test, I use one dedicated node just to run the tied jenkins’ job only. Following is the setup for the slave machine:

OS      : Ubuntu 12.04.1 LTS
X       : Xvfb
Firefox : Firefox 16.0
Java    : 1.7.0_15
          OpenJDK Runtime Environment (IcedTea7 2.3.7) (7u15-2.3.7-0ubuntu1~12.04.1)
          OpenJDK 64-Bit Server VM (build 23.7-b01, mixed mode)

Here is the Jenkins’ slave setup:

jenkins-slave

It’s also important to take note on the slave launch method, after some consideration and learning from experiences, I choose to launch slave agent via SSH. I used to use root account for this, but I found out somehow firefox has an issue whenever executed by root. I don’t think that this is known problem, so I choose to use non-root user for this purpose (jenkins).

launch-slave

Jenkins Slave Setup

On the slave you need to have `jenkins` user with /var/lib/jenkins as its HOME directory.

# adduser --home /var/lib/jenkins --disabled-password jenkins
# chown -R jenkins:jenkins /var/lib/jenkins

SSH key pair also needed and make sure that master’s public key is put inside slave’s authorized_keys. Also you need to install ssh-askpass

# ssh-keygen
# cat /path/to/master_public_key >> /var/lib/jenkins/.ssh/authorized_keys
# sudo apt-get install ssh-askpass

As you may see, DISPLAY is set to :1, this is related with the display used by Xvfb. This is how Xvfb is started:

/usr/bin/Xvfb :1 -screen 0 1024x768x24

There is also a little note that is important if you use ThoughtWorks’s Twist, you will need to define the hostname in the host file.

# /etc/hosts
127.0.0.1       localhost qa-auto-1 qa-auto-1.localfoo.com

From my trials, I found some keys to make the testing setup stable enough for the long run:

  1. Make sure firefox version is not updated unless selenium server is updated, and make sure the version mix-match for compatibility. For my own setup, I stick with Firefox 16.0 and Selenium Server 2.31
  2. Do not execute testing job with root account. There is either known or unknown problem when firefox is executed with root.
  3. In particular if you use Twist, you will need to define your hostname to your host file.
  4. Make sure X is always available, I put a cron job to monitor whether X is running or not, then do the task respectively.