Browsing Blackberry Bold dengan TelkomselFlash

Semula saya pikir untuk internet-an di Blackberry dengan kartu Halo, di-haruskan dengan berlangganan BIS. Ternyata, tidak begitu. Saya iseng2x menggunakan kartu Halo yang sudah berlangganan Internet TelkomselFlash di Blackberry Bold 9800. Dengan mengubah settings di Options -> Lalu search “tcp” supaya melihat opsi TCP/IP.

Disana di-set :

1
2
3
apn: internet
username:
password:

Save lalu open Browser. Yap! sekarang bisa surfing website dengan telkomselflash di Blackberry.

Baca artikel berikut untuk menjadikan Blackberry sebagai USB modem di Ubuntu

Tips git menampilkan branch pada console / terminal ubuntu

Ketika bekerja dengan beberapa git project, seringkali kita lupa sedang berada di branch mana. Apakah sedang di branch master, experimental, testing atau custom ? Kadang kita juga lupa untuk selalu melakukan “git branch” untuk melihat branch yang aktif.

Solusi untuk masalah ini adalah dengan menampilkan status branch pada console / terminal secara otomatis.
Saya menggunakan Ubuntu 11.10 Oneiric dalam contoh ini. Untuk menampilkan branch pada console :
Continue reading

Mengenal Branch di Github

Ketika kita men-develop applikasi menggunakan git, tentu secara default kita menggunakan master sebagai repository utama. Pada kebanyakan kasus ketika developing, kita menambahkan fitur2x / perubahan yang bersifat untuk “testing”. Namun, perubahan tersebut tidak ingin di-commit ke master. Pada kondisi inilah kita membutuhkan branch.

Branch adalah repository yang berbeda dengan master dan independen. Kia bisa mem-publish repository branch ini untuk di-clone oleh orang lain. Selain itu, ketika perubahan di branch sudah “layak” dimasukkan ke dalam master repo, maka kita melakukan “merge” alias penggabungan 2 repositori.
Continue reading

Solve Permission denied (publickey). fatal: The remote end hung up unexpectedly

After upgrading my Ubuntu into 11.10 ( Oneiric ), then i start to develop my application on Github local folder. When i push several commit, suddenly i got this kind of error :

1
2
Permission denied (publickey).
fatal: The remote end hung up unexpectedly

I feel have correct configuration and there should be no error. Until i realize that my SSH keys for Github was deleted with the past OS. :D

So, i start to generate ssh-key and add into Github.

1
2
3
4
mkdir ~/.ssh
chmod 700 ~/.ssh
ssh-keygen -t rsa
cat ~/.ssh/id_rsa.pub

Copy to SSH Key on Github Account. Then, i start configuring my local github profiles :

1
2
3
4
git config --global user.name "My Name"
git config --global user.email my-email
git config --global github.user yodiaditya
git config --global github.token mytoken

Feel embarassing that i forgot about using brand new Ubuntu Oneiric :)

Bash replacing string inside text files using SED command line Ubuntu

This is mostly happen when we have many configuration or text files inside our Ubuntu / servers. For example , i have 5 nginx virtualhost files. For some reason, i need to change my sites to run NGINX on port 84. So i need to change

1
listen 80;

into

1
listen 84;

in each virtualhost files.

The fast way to do it is by using SED. The pattern is :

1
sed -i 's/<search-string>/<replace-string>/ your-files'

Here are example :

1
sudo sed -i 's/listen   80;/listen   84;/' *

Now all files which contain listen 80; will replaced with listen 84;. Easy right ? :D

Bermain dengan Awk untuk log / file text processing

Salah satu bahasa pemograman di Linux yang sering dipakai oleh para professor, programmer dan peneliti di luar negeri adalah Awk. Ini semacam “little” programming language. Awk biasanya dipakai untuk analasis log yang panjang atau grab text lalu di-modify. Intinya, kalau anda mendapatkan data di file text dan butuh di-analisis namun tidak mau ribet, bisa memakai Awk.

Saya menggunakan Ubuntu Natty 11.04 dimana Awk sudah ter-install otomatis didalamnya. Untuk pengetahuan dasar, strutur penggunaan awk adalah

1
awk ''

. Dimana syntax pemograman bisa dilakukan di dalam kurung-kurawal {}. Contohnya adalah awk ‘{print $3}’. Mari kita coba & silahkan buka terminal / console anda.

1. Awk digunakan untuk print kata ke-n

1
echo 'this is for testing purpose only' | awk '{print $3}'

Ini akan menghasilkan result : “for”. Awk meng-analisis string yang di-echo. Lalu Awk meng-eksekusi fungsi “print $3″ dimana memunculkan kata ke-tiga dari string yang didapatkan.

2. Mem-parsing log files.
Berikut ini contoh file log dari NGINX salah satu domain saya, silahkan disimpan menjadi test.log.
Continue reading

Memahami Context Switch

Pada postingan sebelumnya, saya membahas tentang implementasi thread di dunia website. Sekilas info, traditional processing adalah dimana di dalam menjalankan instruksi harus sesuai dengan urutan/alur-nya. Berbeda dengan itu, thread bisa membagi-bagi sebuah alur yang diberikan (seperti gambar) lalu di-eksekusi & tetap di dalam processing.

Analoginya, ada sebuah tugas untuk memotong2x wortel. Traditional processing akan memotong dari kiri – kanan berurutan menggunakan satu tangan. Berbeda dengan thread, wortel dipotong oleh lebih dari 1 tangan dengan tidak berurutan namun hasilnya sama dengan yang traditional processing. (seperti gambar).

Salah satu kelebihan Thread adalah kemampuan untuk sharing memory / resource lain untuk digunakan bersama-sama . Selain itu thread menggunakan address space yang sama. Sampai disini dulu untuk threadnya, karena nantinya akan berkaitan dengan context switch.

Context switch adalah sebuah proses untuk menyimpan context ( variable, data2x ) dari eksekusi sebuah program / processing ketika di-interrupt, lalu dapat di-restore kembali dari proses yang terakhir ketike hendak di-eksekusi kembali. Ini mirip dengan proses download di browser. Kita bisa men-stop sebuah download file lalu me-resume kembali dimana dilanjutkan download yang sudah ada. Context switching yang membuat sebuah proses bisa di-interrupt lalu di-lanjutkan kembali dengan hasil proses sebelumnya.

Dengan context switching, multiple process bisa di jalankan di single CPU. Jadi sebenarnya ketika kita menjalankan berbagai aplikasi ( multi-tasking ) di atas single CPU (single-core), maka CPU tersebut menjalankan semua proses dengan berpindah-pindah dari satu ke lainnya. Context switching ini dilakukan oleh Operating System (OS). Secara interval context-switching pada sistem umumnya sekitar 10 milliseconds!

Kembali lagi ke thread. Penggunaan thread akan terasa bila dijalankan di multiple core dibandingkan di single core. Namun, penggunaan multiple-threading di single-core tetap lebih cepat dibandingkan single process.

Bila thread bisa dijalankan di multiple-core, maka context switching juga berjalan di multiple-core juga. Sekarang kita sudah memahami konsep Context Switch di level OS. Dengan ini kita bisa lebih mendalami ke hal2x lain seperti asynchronous IO, blocking, non-blocking dan banyak lagi!