Ronsen's Blog

Download Manga

Sunday, August 2, 2009

Download manga comics using bash in one line:




$ for i in `seq -f"%02g" 1 16`; do wget -c http://someurl.com/$i.jpg; done;

Jangan hanya diam!

Thursday, June 4, 2009

Kasus pencemaran nama baik memang agak aneh kalau dicermati. Bisa-bisa orang tidak boleh memberitahukan sesuatu yang benar karena bisa saja membuat nama baik seseorang itu tercemar. Kasus Ibu Prita ternyata akhirnya menarik perhatian semua orang. Disini kekuatan suara rakyat sangatlah menakutkan. Jangan coba-coba ganggu orang kecil (dan tentunya tidak bersalah) biarpun kau punya banyak uang dan punya kuasa!

Kasus pencemaran nama baik ini juga sedang berlangsung di sekolahku. Seorang guru akhirnya dituntut di pengadilan oleh seorang kepala sekolah karena telah mencemarkan nama baiknya. Seorang kepala sekolah dan juga seorang bruder dituduh suka main perempuan, suka korupsi, dan tidak bermoral. Mengikuti perkembangan kejadian memang bisa dibilang "wajar" kalau akhirnya pengadilanlah yang cocok menyelesaikan masalah ini. Yang menjadi masalah sikap kami sebagai alumni yang terkejut mendengar berita ini.

Saat masalah ini dilempar di mailing list untuk memancing reaksi alumni, hampir semua menginginkan masalah ini diselesaikan secara kekeluargaan. Tapi banyak yang tidak tahu masalah ini sudah tahunan, dendam kesumatlah istilah paling pas, bahkan kalau dihitung sudah lebih dari satu dekade! Bagaimana menyembuhkan luka yang sudah karatan begini?

Kisah Samaria yang baik hati seharusnya menjadi pelajaran buat kami para alumni. Berdoa kepada Tuhan agar semua baik-baik saja sama jahatnya membiarkan para penjahat bebas melakukan penindasan terhadap orang-orang tidak bersalah. Tidak diharapkan semua orang bisa menjadi super hero yang melakukan hal-hal yang hebat biar bisa menolong orang. Sekedar memberi dorongan moral ternyata mampu membangkit semangat mereka yang sedang tertindas.

Bebaskan Ibu Prita Mulyasari!

Wednesday, June 3, 2009

Mengeluh karena pelayanan yang buruk adalah hak semua orang.

Ibu dari dua balita itu dipenjara sejak Rabu 13 Mei lalu, terpisah dari si bungsu berusia setahun tiga bulan yang masih memerlukan ASI dan si sulung yang baru tiga tahun. Dia menjadi tersangka pencemaran nama baik. Hanya karena e-mail berisi keluhan tentang pelayanan rumah sakit.


Baca lengkap di sini.

Repository Java (Maven)

Thursday, April 2, 2009

Ada dua website yang sering aku kunjungi untuk "mencuri-curi" library java sewaktu membangun aplikasi. Kedua website tersebut sebenarnya digunakan sebagai repositori maven. Tapi tidak ada salahnya library tersebut diunduh kalau sedang kepepet. :-)

Tempatnya ada di sini:

Jangan lupa juga untuk mengunduh source dan javadoc dan tempelkan di library berkas jar tersebut dengan bantuan IDE. Gunanya untuk membantu kita untuk lebih mudah mengerti fungsi dari class yang sedang kita gunakan.

Kalkulator atau sejenisnya

Friday, February 20, 2009

Lagi iseng membuat program sederhana menghitung Reverse Polish notation.

 package com.blogspot.i-temp;  
   
 import java.util.Stack;  
 import java.util.StringTokenizer;  
   
 public class Calculator {  
   
   public static final String EXPRESSION = "2 3 4 * +";  
   
   private Stack<Integer> stack = new Stack<Integer>();  
   
   public Calculator() {  
   }  
   
   private boolean isOperator(char ch) {  
     boolean operator = false;  
     switch (ch) {  
     case '+':  
     case '-':  
     case '*':  
     case '/':  
       operator = true;  
       break;  
     }  
     return operator;  
   }  
   
   private int compute(int op1, int op2, char operator) {  
     int result = 0;  
     switch (operator) {  
     case '+':  
       result = op1 + op2;  
       break;  
     case '-':  
       result = op1 - op2;  
       break;  
     case '*':  
       result = op1 * op2;  
       break;  
     case '/':  
       result = op1 / op2;  
       break;  
     }  
     return result;  
   }  
   
   public int parse(String expression) {  
     StringTokenizer tokens = new StringTokenizer(expression);  
     String token;  
     char operator;  
     int op1, op2;  
   
     while (tokens.hasMoreTokens()) {  
       token = tokens.nextToken();  
       operator = token.charAt(0);  
   
       if (isOperator(operator)) {  
         op2 = stack.pop();  
         op1 = stack.pop();  
         stack.push(compute(op1, op2, operator));  
       } else {  
         stack.push(new Integer(token));  
       }  
     }  
   
     return stack.pop();  
   }  
   
   public static void main(String[] args) {  
     Calculator calculator = new Calculator();  
     int result = calculator.parse(EXPRESSION);  
     System.out.println("Result: " + result);  
   }  
   
 }  

Ternyata yang sulit itu mengubah ekspresi matematika biasa ke RPN.

Belajar Domain-driven Design

Monday, February 16, 2009

Sudah lama saya ingin belajar tentang DDD karena ingin meninggalkan cara yang selama ini saya tiru dari contoh-contoh yang ada baik itu dari website, referensi, bahkan e-book yang mengajarkan Anemic Domain Model. Singkatnya, ADM itu ternyata anti-pattern. Belajar DDD ini memaksa saya harus membaca ulang tentang design patterns supaya DDD tidak hanya sekedar buzzword.

Pustaka:

Rekursif

Friday, February 13, 2009

Sudah juga lama tidak mendengar istilah rekursif. Karena ingin menyegarkan otak saya ingin mengambilkan contoh menghitung bilangan faktorial. Berikut pseudocode yang ada di website Wikipedia:
function factorial is:
input: integer n such that n >= 0
output: [n × (n-1) × (n-2) × … × 1]

1. if n is 0, return 1
2. otherwise, return [ n × factorial(n-1) ]

end factorial

Kalau diterjamahkan dalam bahasa pemrograman Java:
class FactorialNumber {

  private static int[] NUMBERS = new int[] { 1, 2, 3, 4, 5 };

  public FactorialNumber() { }

  public static int factorial(int number) {
    if (number == 0) return 1;
    return number * factorial(number - 1);
  }

  public static void main(String[] args) {
    for (int number : NUMBERS) {
      System.out.println("Factorial(" + number + "): " + 
      FactorialNumber.factorial(number));
    }
  }
}

Entah kenapa penggunaan rekursif sering ditanyakan sewaktu wawancara kerja.

Membangun Web dengan Java

Tuesday, February 10, 2009

Banyak para pemula yang selalu kebingungan saat ingin membangun sebuah website dengan Java. Saat saya memulai Java sangat sedikit pilihan web server. Awalnya saya hanya mengenal Apache Web Server sebelumnya. Karena sering mengunjungi website tersebut makanya saya pun mengenal Apache Tomcat.

Dengan menggunakan Apache Tomcat sudah cukup membuat website yang canggih. Bahkan bisa menangani permintaan (request) dari pengguna dalam jumlah yang besar. Sebenarnya bukan sekedar tergantung server tetapi lebih bagaimana mengoptimasi kode-kode sumber tidak melakukan proses yang berlebihan.

Memang membangun web di Java agak berbeda dengan bahasa pemrograman yang lain. Apalagi dengan latar belakang sebelumnya menggunakan PHP. Ada beberapa aturan yang perlu (wajib) ditaati kalau tidak maka web yang dibangun tidak akan muncul. Solusi termudahnya adalah mulai menggunakan editor yang powerful seperti Eclipse dan Netbeans. Program tersebut membantu kita meletakkan struktur kode-kode Java dengan sangat baik.

Contoh-contoh source code akan saya simpan di https://github.com/ronsen.

Kenapa Java

Setelah menginstall Java sekarang kita mau kemana? Kalo sekedar ingin melihat demonya langsung saja buka %JAVA_HOME%/demo/jfc. Di situ tersedia beberapa aplikasi yang dapat langsung dijalankan. Biasanya setiap Java mengeluarkan Java Development Kit yang baru saya langsung mencoba-coba demo ini. Dan saat ini kita sudah bisa menikmati Nimbus Look and Feel dengan mengunduh Java SE Update N.

Tidak ada alasan khusus saya menggunakan Java. Hanya pilihan random dari beberapa bahasa pemrograman yang sudah ada. Semua orang pasti mulai dari awal sebelum terjun ke dunia nyata pemrograman. Kebetulan saya menggunakan Pascal di bangku kuliah kemudian beralih ke C/C++. Setelah itu mencoba-coba Delphi dan membuat aplikasi berbasis window kemudian tertarik dengan pemrograman berbasis web. Pilihan saat itu yang saya tahu hanya dua yaitu ASP dan PHP.

Lingkungan memang sangat berpengaruh dalam tahap perkembangan skill seseorang. Kebetulan rata-rata mahasiswa di kampus saya lebih menyukai membangun aplikasi window. Saya ingin mencari bahasa pemrograman lain selain yang sudah saya ketahui. Singkat cerita saya lebih memilih menggunakan Java dengan AWT-nya. Karena sudah mencicipi menggunakan editor serba drag and drop anda pasti tahu kalau AWT sudah cukup membuat anda membenci Java.

Setelah mempelajari lebih dalam, untungnya kita juga bisa membangun aplikasi berbasis web dengan menggunakan Java. Yah, dari sini karir saya dimulai...

Linuxer yang Bahagia

Saturday, February 7, 2009

Pertama kali aku menggunakan komputer, Windows adalah satu-satunya sistem operasi yang kukenal. Saat itu aku menggunakan Windows 3.1. Linux pertama kali aku dengar saat duduk di bangku kuliah. Pengguna Linux di kampusku pun masih bisa dihitung dengan jari. Mungkin karena penggunaannya yang sulit untuk mahasiswa bahkan untuk mahasiswa teknik informatika. Bagaimana tidak? Berkenalan dengan Linux langsung disuguhi console. Err.. kok balik lagi zaman dinosaurus? :D

Legal

Masalah legalitas mungkin yang menjadi kendala pengguna Windows secara umum. Masih banyak pengguna Windows yang aku lihat menggunakan lisensi GPL (Glodok Public License) a.k.a bajakan. Dan ini sudah menjadi rahasia umum kalau menggunakan Windows yang terpikir pertama kali pasti bajakan. Maraknya razia Windows bajakan sebenarnya cukup membuat kalian malu karena Microsoft sendiri menganggap kalian pencuri!

Ketergantungan

Gara-gara ketergantungan inilah yang membuat aku beralih dari Windows ke Linux atau secara umum perangkat lunak Microsoft. Beberapa kali proyek yang dulu aku tangani sangat tergantung ke produk Microsoft. Misalkan saja sebuah Content Management System (CMS) ternyata membutuhkan plugin Microsoft Office supaya bekerja dengan baik. Sialnya yang diperlukan bukan sekedar ActiveX tapi harus meng-install Microsoft Office! Damn, kami harus beli lisensinya hanya gara-gara satu CMS. BTW, CMS ini juga tidak gratis (pssstt.. biar bisa dijual). Hanya CMS? Tidak, masih banyak. Kalau aku tulis blog ini pasti sangat panjang.

Virtualisasi

Disinilah hebatnya Linux. Aku bisa membuat sistem operasi virtual dengan jumlah tidak terbatas. Sebagai contoh aku butuh sebuah demo untuk diperlihatkan kepada client. Aku cukup membuat sebuah image sistem operasi yang sudah diatur untuk dapat jalan di komputer lain tanpa kuatir tidak jalan karena faktor-faktor yang tidak terprediksi. Apakah Windows bisa demikian? Tidak, biarpun menggunakan yang asli, Windows akan memintamu mengaktivasi karena digunakan di mesin yang berbeda. Jalan satu-satunya harus menelepon customer service Microsoft! Repot, bukan? Being legal is not enough!

Masih banyak alasan lain kenapa aku menggunakan Linux seperti halnya virus yang sampai sekarang menjadi masalah di Windows. Terus bagaimana dengan Games? Ah, itu masalahmu bukan masalahku. :-)