Linus Torvalds, Dari Tugas Kuliah Mengubah Dunia

4

Ini posting blog saya setelah 100+ hari tanpa posting :) . Menikah itu memang mengubah seseorang, dari single dan nyaris 100% waktu untuk diri sendiri, menjadi nyaris 100% waktu dihabiskan berdua, semuanya serasa lebih seru karena tidak sendirian lagi. Tapi itu bukanya tanpa konsekuensi, :) , ya salah satunya saya jadi lebih malas ngeblog ataupun melanjutkan hobi-hobi pribadi seperti dulu.

Ok cukup deh prolognya, saya mau cerita tentang Linus Torvalds deh. Tiba tiba terbetik di pikiran saya untuk menulis tentang satu orang ini, satu orang yang jenius dan mengubah cara kita hidup dalam nyaris 15 belas tahun terakhir, walaupun sebenarnya sejarah itu dimulai beberapa tahun lebih awal. Kata “Kita” di sini lebih saya tekankan kepada “kita” manusia yang terhubungkan di jalur internet, atau mungkin malah orang-orang yang mencari hidup dari boomingnya internet, seperti saya.

Diawali cerita yang menurut saya sangat mirip telenovela atau kisah klasik, seorang mahasiswa master nun jauh di helsinki mencoba menulis kode sederhana untuk membuat kernel OS yang sangat sederhana. Ternyata setelah ditekuni, kernel yang dibuatnya menjadi satu puzzle terakhir dari sebuah proyek besar. Richard Stallman dan kawan-kawan sudah puluhan tahun memulai proyek GNU untuk membuat sistem operasi alternatif yang bersifat terbuka, tetapi GNU project sangat kesulitan membuat kernel OS yang efisien dan berjalan dengan sangat baik. Maka, Linux ini menjadi tambahan terakhir dari proyek GNU menjai satu sistem operasi yang lengkap.

Linux pada awal tahun 90an masih menjadi proyek pribadi Linus, hingga beberapa tahun kemudian lewat usaha kerasnya memperkenalkan linux lewat banyak sekali konferensi, linux mulai banyak digunakan oleh perusahaan di dunia. Awal tahun 2000an menjadi gerakan yang panas sekali, dimana pendukung linux menjadi sangat fanatik memperkenalkan linux ke khalayak. Tetapi sebenarnya linux sudah digunakan banyak sekali orang secara tidak langsung.

Di belahan dunia lain, ada seorang yang sangat murah hati bernama Tim Berners Lee yang mengumumkan kepada khalayak dunia bahwa protokol yang disusunya WWW (world wide web), dilisensikan secara gratis dan dibuka untuk dimanfaatkan semuaaa orang yang tertarik. Protokol ini bisa menghubungkan banyak sekali server, dan memberikan akses informasi dalam bentuk html kepada semua orang. Tetapi sayangnya OS yang digunakan Tim adalah OS yang berbayar dan web servernya pun masih sangat sederhana. Internet yang pada dasarnya perlu pengunjung besar, informasi yang banyak dan tentu saja resource yang sangat besar tidak mungkin dibangun dengan menggunakan software-software yang berbayar, karena biaya yang diperlukan akan menjadi sangat besar.

Kedua peristiwa yang berjalan beriringan ini menjadi satu momentum yang tinggi, di satu sisi industri Internet perlu sever yang berbiaya murah di sisi lain Linux menyediakan apa yang dibutuhkan oleh internet. Momentum ini begiiitu besarnya sehingga tahun 2000 menjadi salah satu tahun bubble paling spektakuler dalam sejarah. Banyak bermunculan perusahaan-perusahaan yang menawarkan service Linux menjadi sangat besar, bahkan beberapa perusahaan berhasil mendaftarkan diri di Bursa Efek, istilahnya Initial Public Offering (IPO). Internet plus Linux mengguncang dunia dan mendorong pertukaran informasi yang sangat cepat dan gratis, dikenal dengan era informasi, bahkan mendorong evolusi sistem operasi.

Pada titik ini, banyak orang-orang mulai memikirkan kembali hakekat software dan lisensinya, karena sekarang software tidak lagi menjadi barang jualan, tetapi lebih menjadi alat untuk mendapatkan nilai yang lebih tinggi, yaitu layanan internet. Maka mulailah didengung-dengunkan Open Source agar orang, perusahaan dan siapapun yang berminat menggunakan software dengan lisensi tertentu untuk membuat layanan dengan nilai yang sangat tinggi di atas software tadi. Google, facebook dan nyaris sebagian besar perusahaan internet sekarang ini menggunakan Linux di server-server mereka. Bayangkan jika OS dengan lisensi open source seperti linux tidak tersedia? layanan seperti google search dan facebook yang beegiitu bagusnya dan memerlukan banyak sekali resource tidak akan mungkin bisa dibuat semurah ini kalau OS dan softwarenya harus berbayar.

Kita balik lagi ke personal dari Linus Torvalds dan kejeniusanya. Linux adalah monolitic software, dimana semua proses dijalankan dari satu single file. Berbeda dengan kepercayaan ahli kernel OS waktu itu, model paling ideal untuk sebuah kernel adalah model node-node kecil yang berjalan secara independen dan bertukar data dengan sistem messaging. Sistem ini dalam prakteknya sangat susah untuk diperbaiki kalau ada masalah, karena masalah bisa saja muncul dari sekenario yang sangat susah untuk direkonstruksi, dimana setiap node punya keadaan yang berbeda-beda dan pesan yang dikirim antar node juga bisa sangat berbeda. Sistem monolitic yang digunakan Linus dalam Linux pada awalnya dikritik habis-habisan oleh dosen pembimbingnya, dan disarankan untuk segera diakhiri saja karena membuang-buang waktu. Tetapi linus bergeming, sistemnya jauh lebih stabil dan tahan terhadap berbagai macam kesalahan yang muncul karena aplikasi maupun hardware tidak berlaku selayaknya.

Hiruk pikuk Linux sedikit mereda beberapa tahun terakhir ini, ditandai dengan evangelist linux yang tidak segencar misalnya 10 tahun lalu, dikarenakan linux sudah menjadi semacam komoditas yang semua orang sudah tahu kehandalanya sehingga tidak lagi diperlukan banyak sekali edukasi. Hiruk pikuk berpindah ke cara bagaimana menggunakan linux sebagai alat untuk menghasilkan produk atau layanan yang lebih menyentuk pengguna secara langsung. Misalnya membuat ecomerce atau layanan internet yang ciamik. Tetapi linus tidak berhenti berkarya, satu produk ditelurkanya setelah sebal dengan software Source Code Management system yang ada, seperti CVS atau SVN. Git lahir dari tanganya yang jenius, dengan sangat yakin linus bilang bahwa dia bisa membuat SCM yang jauh lebih bagus dari semua yang ada di luar sana dalam waktu 2 minggu!, dan ternyata berhasil.

Dalam satu sisi Git merevolusi bagaimana seorang programmer menggunakan kodenya untuk berinteraksi dengan orang lain, hal ini dimungkinkan dengan adanya layanan github.com yang membuat coding menjadi kegiatan sosial layaknya seseorang membagi status wallnya kepada orang lain. Satu pengguna bisa mengikuti pengguna yang lain, berteman dan mengambil proyeknya untuk dibuat branch. Sekarang coding tidak lagi menjadi kegiatan personal, tetapi sudah bisa menjadi kegiatan sosial. Seseorang tidak lagi merasa terpencil dan tidak ada keterikatan dengan kode yang dibikinya, dengan github, kode bisa menjadi pengikat antara seorang programmer dan kode yang ditulisnya.

Nah segitu dulu cerita saya tentang Linus Torvalds, semoga memberi inspirasi kepada kita, bahwa sesuatu hal kecil yang kita mulai dengan sungguh-sungguh bisa mempunyai dampak yang begitu serius kepada sekeliling kita. Jangan ragu-ragu memulai, jangan merasa sia-sia, lakukan, bagi dan kamu akan sadar bahwa apapun yang kita bagi, selama itu adalah pengetahuan, pada satu titik akan menjadi inspirasi bagi orang lain. :)

Buku “Scrum dan XP Secara Praktis”

6

Saya baru saja selesai menterjemahkan buku “Scrum and XP from the trenches” karangan Henrik Kniberg ke bahasa indonesia, judulnya saya ganti menjadi “Scrum dan XP Secara Praktis”.

Sesuai dengan judulnya, buku ini membahas bagaimana Henrik dan timnya mengimplementasikan Scrum dan XP di dalam perusahaan mereka. Hal ini membuat buku ini menarik sekali untuk dibaca dan mudah sekali untuk dicerna, karena isinya lebih banyak bercerita tentang kisah mereka mengimplementasikan Scrum dan XP. Jauh sekali dari buku-buku lain yang lebih banyak membahas teori.

Buku ini dulu saya baca karena ada saran dari kenalan saya yang bilang “Sebelum umur 30 tahun harus segera switch ke jalur managerial” (sambil lirik dhiku ;) ) ). Jadi ini persiapan saya semoga bisa lancar ikut jalurnya dhiku switch ke managerial. :D

Bukunya bisa diunduh dari :

http://code.google.com/p/project-template/downloads/detail?name=Scrum%20dan%20XP%20Secara%20Praktis%20-%20Ifnu%20Bima.pdf

Saran, kritik dan yang penting adalah koreksi isi dari buku atau malah mungkin koreksi dari kesalahan penterjemahan buku sangat saya tunggu.

Selamat membaca dan semoga bermanfaat.

Indo Java Podcast #15 : Pentaho

4

Episode kali ini adalah lanjutan dari episode sebelumnya. Tamu kita masih sama, Feris Thia dari PHI Integration dan founder dari milis pentaho indonesia (pentaho-id@googlegroups.com). Kita membahas dari awal apa itu pentaho hingga secara detail membahas satu per satu komponen / modul yang ada dalam pentaho. Tak lupa juga kita bahas tentang milis pentaho indonesia yang ramai sekali.

Setelah itu kita lebih jauh membahas tentang langkah-langkah development aplikasi BI mulai dari membuat star schema, kemudian setup ETL untuk mengambil data dari aplikasi transaksi dikirim datanya ke BI. Setelah itu dibuat cube dari fact table, dan pada akhirnya bisa dibuat MDX query untuk mempresentasikan cube yang sudah dibuat.

Pembahasan paling seru terjadi ketika kita membahas secara teknis bagaimana ETL (Pentaho Data Integration / kettle) bekerja, membuat table transaksi yang BI friendly hingga membahas perbedaan antara data dalam excell dan data dalam table database.

Podcast kita akhiri dengan pembahasan lebih lanjut tentang industri BI di indonesia serta membahas karir di BI.

#15 http://indo-java-podcast.googlecode.com/files/indo-java-podcast%2315.mp3
- Pentaho sebagai solusi dan pentaho sebagai perusahaan
- Arsitektur aplikasi yang menggunakan Bussiness Intelligence
- Komponen Pentaho
– Pentaho Reporting
– Pentaho Data Integration (Kettle), aplikasi ETL yang merupakan komponen jagoanya Pentaho
– Pentaho Analysis (Mondrian), crosstab reporting tools
– Pentaho Data Mining (Weka)
– Pentaho BI Server

Development Environment dan Methodology di Industri Perbankan

8

Hari ini di milis it-project-indonesia@googlegroups.com ada Joshua Partogi dari Scrum Indonesia yang kenalan, kemudian terjadi diskusi yang cukup seru tentang Scrum Vs Waterfall. Nah di salah satu thread ada yang menanyakan gimana sih development di banking kepada saya


> Buat Ifnu, bisa ceritain nu development di banking kaya gimana dan
> kenapa waterfall itu yang terbaik?

Nah karena jawaban saya panjang lebar, sepertinya cocok diletakkan di dalam blog agar lebih banyak yang bisa baca. Hmm, oke gw ceritain agak panjang yah tentang topik ini.
(more…)

Performance Tuning Guidelines

0

Udah lama sekali ga ngeblog yah, ga kerasa udah beberapa bulan ga ada entry. Mungkin karena ramadan ini badan jadi terasa lebih seger, atau karena ramadhan bisa pulang tenggo dan ga terlalu cape sesampainya di rumah? yang manapun ga masalah deh, asal ngeblognya jalan lagi.

Barusan saya posting di JUG tentang performance tuning guidlines, nah karena pentingnya topik ini saya pikir lebih baik diletakkan di blog untuk pengingat kalau suatu saat perlu.

Blog entry ini akan saya terus edit untuk agar lebih lengkap dan ada contoh-contoh kongkritnya, sekarang cukup kerangka umumnya dulu yah.
(more…)

Indo Java Podcast #14 : Data warehouse, data mining dan bussiness intelligent bareng Ferish Thia

0

Hi pendengarnya indo java podcast. Lagi-lagi kita perlu waktu 3 bulan untuk menerbitkan episode baru :( , setelah awal tahun kemaren saya yang sibuk, gantian 3 bulan terakhir Dito yang sibuk, jadi mohon maaf atas ketidaklancaran penerbitan episode Indo Java Podcast. Kali ini kita kedatangan tamu, Feris Thia, dari PHI-Integration. Kita ngomongin Data Warehouse, Data Mining dan Bussiness Intelligent dari awal sampai akhir bahkan sampai beberapa topik diluar teknis seperti lowongan kerja, karir di area ini hingga pengalaman implementasi PHI di berbagai perusahaan.

Kita mulai membahas tentang apa itu Data Warehouse dan dua mahzab yaitu : Ralph Kimball dan Bill Inmon (http://en.wikipedia.org/wiki/Data_warehouse). Kemudian dilanjutkan dengan membahas lebih lanjut teori aliran Kimballites, di dalamnya ada teori tentang snowflake schema dan star schema. Saya sendiri cukup mendapat banyak penerangan tentang istilah-istilah penting dalam DW, misalnya apa itu fact table dan dimension table yang sebenernya adalah nama lain dari master table dan transaction table di OLTP.

Setelah puas membahas DW, kita lanjut ke tema yang lebih seru, yaitu Data Mining dan Bussiness Intelligent. Nah di sini ada istilah yang disebut dengan active reporting, dimana report yang ditampilkan kepada pengguna sudah mengandung “kecerdasan”, bukan lagi pasif reporting yang cuma menampilkan data dalam bentuk table, diagram atau malah cuma angka-angka gak bermakna. Singkatnya, Data Mining dan Bussiness Intelligent itu membuat data bisa ngomong dengan bahasa manusia :D . Data Mining dan Bussiness Intelligent bisa membuat management melihat keadaan perusahaan dengan lebih jelas dan dengan persepsi yang sama, kalau cuma data pasif yang disajikan, maka setiap orang dalam managerial bisa punya asumsi yang berbeda tentang keadaan perusahaan, ada yang bilang oh penjualan kita OK nih, nah ini parameter OK dilihat dari mana? Bussiness Intelligent bisa menterjemahkan data yang dikumpulkan oleh Data warehouse menjadi laporan-laporan aktif seperti ini.

#14 : http://indo-java-podcast.googlecode.com/files/indo-java-podcast 14.mp3
- Data Warehouse
– Ralph Kimball dan Bill Inmon
– Snowflake schema dan Star schema
– Dimension dan Fact schema
– Slowly changing dimension
- Bussiness Intelligent dan Data Mining

Buku Java Desktop

60

Akhirnya setelah 10 bulan menulis, mengedit dan menyiapkan website, buku Java Desktop bisa anda unduh dengan gratis dari URL di bawah ini :

http://code.google.com/p/project-template/downloads/detail?name=Java%20Desktop%20-%20Ifnu%20Bima.pdf

Buku ini berisi intisari pengetahuan dasar bahasa pemrograman Java hingga pengetahuan tentang bagaimana membuat aplikasi dekstop menggunakan Java. Intisari tersebut saya kumpulkan selama 3 tahun terakhir. Buku ini terdiri dari 8 bab, antara lain :

Bab 1 kita akan membahas tentang Java Fundamental, bab ini dibagi menjadi dua bagian besar: belajar sintaks java dan belajar OOP menggunakan java. Di dalam bab ini juga dibahas tentang java 5 language enhancement yang mencakup beberapa perubahan fundamental di dalam sintaks java. Bab ini cukup panjang dan mangambil porsi hingga 1/3 dari buku ini.

Bab 2 membahas tentang tools yang kita gunakan, NetBeans. Bagaimana membuat project, menambahkan library, menambahkan library ke pallete, menggunakan editor dan debugger, dan seterusnya. Penguasaan akan IDE diperlukan untuk menaikkan produktiftas, tanpa penguasaan IDE yang baik, produktiftas tinggi susah untuk dicapai.

Bab 3 membahas tentang koneksi ke database menggunakan JDBC. Di bab ini mulai dibahas tentang design-pattern dalam membuat kode. DAO dan Service adalah design-pattern sangat penting dalam akses database. Dilanjutkan dengan membahas ORM, Hibernate dan Spring untuk akses data. Dengan menggunakan Hibernate, produktiftas programmer menjadi meningkat drastis dibanding menggunakan JDBC murni. Spring digunakan sebagai “lem” untuk merekatkan berbagai macam komponen aplikasi, termasuk nanti digunakan sebagai tulang punggung arsitektur three tier

Bab 4 membahas tentang Swing dan komponen-komponenya. Dibahas juga pattern MVC yang digunakan komponen Swing dalam mengolah dan menampilkan data.

Bab 5 membahas bagaimana membuat aplikasi POS. Dimulai dari membuat halaman master, dilanjutkan dengan membuat halaman pembelian dan penjualan.

Bab 6 membahas bagaimana membuat report dengan JasperReport. Di dalamnya termasuk juga teknik mengcompile report yang dibuat secara otomatis menggunakan ant script bawaan dari NetBeans.

Bab 7 membahas bagaimana mengimplentasikan arsitektur three tier menggunakan Spring Remoting.

Bab 8 merupakan bab terakhir yang membahas bagaimana membuat installer menggunakan IzPack, sehingga aplikasi mudah didistribusikan dengan adanya fle installer.

Mereset password root mysql di Linux Ubuntu 10.04

3

Hari ini saya login ke server dan mendeploy aplikasi tanyajava.com, eh eh ternyata saya lupa password root mysqlnya :( . Sudah dicoba dengan apt-get remove dan apt-get install berkali-kali ternyata password rootnya tidak disetting ulang.

Setelah cari tutorial ke sana ke mari akhirnya dapet juga tutorial yang bagus di situsnya mysql. Langkahnya ternyata tidak terlalu sulit dan mudah diikuti.

1. Stop mysql server

$ sudo /etc/init.d/mysql stop

2. Buat sebuah file untuk meletakkan script reset password, misalnya nama filenya adalah reset-mysql-password.txt yang saya letakkan dalam folder /home/ifnu kemudian isikan query berikut ini :

UPDATE mysql.user SET Password=PASSWORD('MyNewPass') WHERE User='root';
FLUSH PRIVILEGES;

ganti nilai ‘MyNewPass’ dengan password yang anda inginkan. Pastikan passwordnya strong agar tidak mudak dijebol hacker.
3. Login ke dalam sistem dengan user root :

$ sudo su

4. Setelah dapat akses root linux, jalankan perintah ini :

# mysqld_save --user=mysql --init-file=/home/ifnu/reset-mysql-password.txt 

5. Setelah itu coba login dengan menggunakan user root

$ mysql -u root -p

6. Kalau langkah 5 berhasil, keluar dari mode safe (msyqld_safe) dengan menekan ctrl + c dan jalankan service mysqlnya secara normal

$ sudo /etc/init.d/mysql start

Selesai sudah langkah mereset password root dari mysql.

Mensetting private-public key ssh login dari Mac ke Linux Ubuntu

2

Posting kali ini saya mau membahas cara mensetting ssh login dari mac ke linux ubuntu tanpa menggunakan password, jadi tujuanya adalah membuat linux mempercayai saya (mac) sebagai client yang terpercaya sehingga tidak perlu meminta password setiap kali login ssh ke server. Dengan fasilitas ini memudahkan berbagai macam aktifitas dari client (mac) ke server, semisal melakukan scp dan rsync tanpa harus memasukkan password.
Untuk mengetahui lebih jelas skenario ini serta sedikit intro tentang private-public key, anda bisa baca entry dari blognya endy di sini

Langkah-langkahnya sangat sederhana, yang pertama adalah membuat rsa private-public key dengan perintah ssh-keygen di mac (client) :

$ ssh-keygen 
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/ifnu/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /Users/ifnu/.ssh/id_rsa.
Your public key has been saved in /Users/ifnu/.ssh/id_rsa.pub.
The key fingerprint is:
xx:xx:xxx...:xxxxxx 

Perintah ini akan menghasilkan dua buah file di dalam folder .ssh yaitu id_rsa dan id_rsa.pub, file id_rsa.pub adalah public key yang akan kita kirimkan ke server.
Langkah kedua adalah menyiapkan konfigurasi di server, tentu saja sampai saat ini ssh server sudah terinstall di server, tetapi setiap kali login kita perlu memasukkan password. Misalnya IP server saya adalah 12.34.56.78, usernamenya adalah ifnu dan home folder saya adalah /home/ifnu, kita perlu membuat file authorized_keys di dalam folder .ssh yang ada di dalam home folder. Kalau folder dan filenya belum ada silahkan buat dulu menggunakan perintah mkdir dan touch.
Setelah file /home/ifnu/.ssh/authorized_keys tersedia, kita perlu mendaftarkan public key yang sudah kita buat di client ke server. Cara pendaftaran public key yang sudah dibuat di langkah pertama di atas sangat sederhana, kita cuma perlu mengkopi paste isi dari id_rsa.pub yang ada di client ke dalam file authorized_keys yang ada di server. Buka file authorized_keys menggunakan text editor, semisal nano, paste isi dari id_rsa.pub ke dalam file tersebut dan simpan.
Setelah proses pendaftaran public key selesai dilaksanakan, maka ssh login ke server dari client tidak perlu lagi menggunakan password, cukup ketik perintah :

$ ssh ifnu@12.34.56.78 

maka kita langsung bisa masuk ke dalam server tanpa password sama sekali.

Lingkungan Kerja yang Enak di Perusahaan

5

Di milis JUG indonesia sedang ramai membahas topik tentang lingkungan seperti apa yang enak untuk karyawan. Thread seperti ini biasanya panjang, seperti halnya thread gaji, kedua thread ini punya satu kesamaan : membahas masalah hubungan employee-employer. Ada satu sisi ingin mendapat fasilitas, gaji dan kebebasan berekspresi super satu lagi ingin mendapatkan margin keuntungan selebar-lebarnya.

Thread mulai panjang ketika salah satu “owner” perusahaan melempar pertanyaan seperti ini :

Sebenarnya definisi/kondisi enak di suatu perush itu apa ya? Sebenarnya kita juga lagi cari Java Programmer
Mungkin sbg perusahaan, siapa tahu kita bisa menciptakan kondisi yg enak tsb kalau kita tidak tahu kondisi yg enak, maka tdk pernah tercipta kondisi enak tsb.

Kemudian ada yang menjawab dengan sangat baik pertanyaan di atas
(more…)

Go to Top