A Place to Remember


Thoughts, stories and ideas.

Migration

Jadi begini, rencananya saya menggunakan Ghost sebagai blog adalah untuk belajar NodeJS. Sayangnya saya selalu sibuk dan tidak sempat untuk mempelajari NodeJS sekalipun. Akhirnya saya berpikir, daripada membebani server lebih baik saya ubah saja blog-nya ke sesuatu yang lebih ringan. Static site pun muncul di benak saya. Saya menggunakan Hugo untuk men-generate situs ini.

Udah sih gitu aja, saya gitu sih orangnya. B

Timestamp and Date in Apache Phoenix

For a several days I’ve played with Apache Phoenix. Instead of playing with HBase directly, Phoenix helped me simplify HBase query (well, just a bit). What I want to tell you now is not about Phoenix in general but the difference between Timestamp and Date in Phoenix.

I have 2 column which have different format. I thought that both column should have different data type as well. Those format is like this:

1. yyyy-MM-dd HH:mm:ss
2. yyyy-MM-dd

When I use Date type for the 1st format, it doesn’t show me the right result. It only shows me year, month, and day of the data like this: 2015-01-31. But in Timestamp, it shows me the right result. So, my assumption is I should be using Timestamp when I want to include the time (hour, minute, and second) of the data, and the rest should be use Date type.

Unfortunately, I found that my data in HBase is inconsistent. It has 7 hours difference with the actual data. The culprit is the difference of data type. The documentation says that I should include format type and timezone when I want to insert the date with Phoenix (in timestamp). So, instead of to_date(‘2015-01-31 13:17:14’), I should use to_date(‘2015-01-31 13:17:14’, ‘yyyy-MM-dd HH:mm:ss’, ‘GMT+7’). But that is a bit long and there is too many code to change, also I should remember which column have Timestamp and Date type.

At last, after hundreds thousand data insertion (wrong data of course), I found that I can also use Date type in every column as long as I explicitly write the format when I try to get the data with Phoenix.

That’s all I wanna share, I hope it’s useful.


dvorak programmer's time

Jadi begini, beberapa hari belakangan ini saya sedang menikmati belajar menggunakan layout dvorak programmer. Keycode untuk layout tersebut ada dvp. Jujur saja, sangat sulit untuk menggunakan layout tersebut terlebih lagi jika kita sudah terbiasa menggunakan qwerty. Terkadang jadi jemari saya kembali ke tempat dimana huruf tersebut berada di qwerty. Ini yang saya lakukan agar saya tidak terganggu dengan tampilan keyword qwerty yang ada di laptop saya: dvorak workaround


Editing Stream like Merlin The Mighty with Sed

We already talk about Vim a couple of time. Let’s move to sed. Sed is a stream editor (we already know that) that I used today. This is the case, I have some file (php file) which is badly written by someone (maybe for pissing me off) by changing some characters on it. Let’s say they change .php into *.rrrr wherever possible. It’s not a big deal if the file is only have a few lines, but imagine if it has 2000 lines and I should edit every .rrrr into *.php. Let’s assume that I’m using a server, and even worse there many files that should be edited.

Enough with the long talk, this is how I roll:

sed -i 's/\.rrrr/\.php/g' file.php

I also found an interesting sed & find combo, it looks like this:

find folder_path -type f -exec sed -i 's/\.rrrr/\.php/g' {} \;

Neat, isn’t it? :)


Menghapus baris di Vim - 2

Case

Terkadang kita ingin menghapus baris-baris tertentu yang hanya mengandung kata-kata yang spesifik. Contohnya jika ingin menghapus log tetapi menyisakan baris yang mengandung kata warning atau error atau lainnya.

Solution

Ada 2 ex command yang dapat kita gunakan yang berhubungan dengan masalah tersebut.

1. :g/{pola yang ingin dicari}/{perintah yang ingin dijalankan setelah pola ditemukan}
2. :v/{pola yang tidak ingin dicari}/{perintah yang ingin dijalankan setelah pola ditemukan}

Example

1. Untuk menghapus setiap baris yang mengandung pola "warning" kita bisa menggunakan:
   :g/warning/d

2. Untuk menghapus setiap baris yang tidak mengandung pola "warning" kita bisa menggunakan:
   - :v/warning/d
   - :g!/warning/d

Jika ingin mencoba perintah-perintah tersebut saya sarankan untuk menggunakan 1 file yang memiliki banyak kata dan kalimat, contohnya saya menggunakan 1 story yang saya ambil dari booktrust.

PS: Pola yang dicari bisa juga menggunakan regex