Wednesday, November 15, 2006

Hmm... Free Software... yummy

Jadi,
Java, yang bahasa dan framework pemrograman, dan god knows what apaan lagi dia itu sebenarnya, yang dibuat oleh James Gosling dari Sun yang hebat itu, akhirnya menjadi Free Software dengan menggunakan lisensi GPLv2.

Hmm... ini artinya apa ya?

Friday, November 10, 2006

Jumpa lagi...

Pernah coba mrogram pakai bahasa tingkat Enak (e gede) kayak php atau perl atau ruby? Segalanya sudah enak tersedia disitu. Paling tidak, hampir segalanya.

Ada beberapa yang bisa dicatat, tapi saat ini, enaknya kita ngomongin soal "associative-array", salah satu jenis struktur data yang didukung oleh bahasa-bahasa tersebut. Dengan associative-array ini, kita bisa melakukan hal-hal sebagai berikut:

daftar_harga["apel"] = 2000;
daftar_harga["mangga"] = 3000;

Sekarang, mari bermain dengan bahasa C. Bahasa tingkat enak (e kecil) yang satu ini sungguh ajaib. Konsepnya gak banyak, cukup untuk bisa disimpen di alamat memori akses langsung di otak kita. Ini keliatan awalnya. Nyatanya, setan didalamnya cukup banyak untuk bisa bikin stress orang-orang yang gak siap mental.. :-)

Nah, di C, tidak ada yang namanya associative-array. Jenis data array memang ada di C, namun tidak associative, semua array hanya bisa punya indeks angka. Jadi kalau ingin melakukan hal seperti diatas dalam C, kita jadi harus melakukan, kira-kira, hal berikut:

#define APEL 0
#define MANGGA 1

daftar_harga[APEL] = 2000;
daftar_harga[MANGGA] = 3000;

penjelasan detailnya apa itu #define, silahkan cari di kamus-kamus terdekat.

Problem ini tentu saja selesai, kalau kita memang hanya ingin melihat daftar harga Apel dan Mangga. Bagaimana bila kita tiba-tiba ingin melihat juga daftar harga Jeruk, Salak, dan Semangka?

Di php dan kawan-kawan, ini bukan masalah besar, malah jika ingin kita bisa saja membuat associative-array secara dinamis dengan mengambil daftar buah dan harga dari sebuah file atau mungkin dari tabel di database.

Bagaimana melakukan hal yang sama dalam C?

Untuk itu, kita jadi perlu berkenalan dengan hash dan linked list, dua format struktur data yang bisa digambarkan dengan 1 kata; "Menarik"!

Dari dulu waktu mulai belajar C, kalau ketemu linked list, aku selalu garuk-garuk kepala. Pertama pusing, bagaimana sebenarnya dia bekerja, kemudian pusing, mengapa implementasi linked-list ku selalu berhasil mengeluarkan pesan "Segmentation fault". Dan terakhir, suka terkagum-kagum sendiri karena akhirnya (mengira) berhasil mengerti dan membuat linked list sendiri :-)

Cukup dengan nostalgianya.

Sekarang bagaimana kita bisa menggunakan hash dan linked list untuk implementasi sesuatu seperti associative array?

Konsep-nya sederhana, begini mungkin ceritanya:

1. Mengingat bahwa di C segala array itu hanya bisa diindex dengan angka, maka kita perlu merubah kata-kata yang ingin kita jadikan indeks itu menjadi angka terlebih dahulu. Inilah gunanya hash. Dengan menggunakan fungsi hash, kita bisa merubah kata-kata "pisang" jadi angka 1, misalnya.

2. Keliatannya selesai? Belum. Mengingat bahwa tidak ada fungsi hash yang sempurna, dalam artian selalu menghasilkan angka yang berbeda untuk setiap macam kata, maka tabrakan (collission) pasti akan terjadi. Misalnya, kalau hash("pisang") => 1, maka bukan tidak mungkin kalau hash("rambutan") juga => 1. Kalau begini, apa yang bisa kita lakukan? Ada dua yang kuketahui, 1 yang disebut dengan Chaining, dan 2 yang disebut dengan Open-Addressing.

3. Berhubung kita lagi ngomongin linked-list (dan aku gak ngerti Open-addressing *smile*), maka kita memilih metode Chaining untuk memecahkan masalah tabrakan tadi. Chaining ini artinya, semua data yang mau kita associate-kan kita simpan dalam sebuah hash-table dalam bentuk linked-list.

Susah juga ya menjelaskannya.
Mungkin aku harusnya menjelaskan soal apa itu linked-list dulu kali ya?

to-be continued aja dech... :-)

ps: anyone interested, please lookup the details on Google or Wikipedia, they should have it and should provide better explanations than what I can give.

Thursday, November 09, 2006

Bersyukur pada-Mu...

ya Allah,
aku sering lupa dan kurang bersyukur.

Untuk hidup yang Kau berikan...
atas setiap hembusan nafas.

Untuk mendung hari ini,
atau panas esok hari.

Thursday, October 05, 2006

Satu lagi korban keegoisan kita

Kemarin dulu, aku lihat berita, ada kakek-kakek tua meninggal di kolong jembatan.
Konon beliau meninggal karena sakit.

Begitu saja.
Tanpa ada yang menyadarinya sampai suatu ketika.

Satu lagi tamparan buat kita dan keegoisan kita.

Freakonomics

Menurut Steven D. Levitt di buku ini,

"Moralitas itu menggambarkan bagaimana dunia yang ideal"

sementara,

"Ekonomi menggambarkan bagaimana yang sebenarnya terjadi di dunia ini"

Levitt ini sendiri orangnya konon unik, misalnya dikisahkan, ketika ada seorang pengemis menghampiri dia, yang Levitt lakukan hanya menatap pengemis itu hingga dia berlalu sendiri.

Kemudian Levitt berkomentar,
"Wow, dia punya ponsel yang sangat bagus! Bahkan lebih bagus dari milikku."

Walau agak berat buatku yang gak pernah sepenuhnya mengerti ekonomi ini (walaupun telah berusaha, bener!) buku ini sangat menarik.

Di buku ini diceritakan bagaimana mendeteksi kejujuran eksekutif-eksekutif dan pegawai-pegawai perusahaan-perusahaan top dengan cara berjualan roti.

Atau betapa teori Broken Window yang selama ini dipercaya sebagai faktor utama yang berhasil mengatasi bahkan mengurangi kriminalitas di kota New York selama periode tahun 90-an itu ternyata hanya punya kontribusi minimal. Dan apa faktor utamanya? I don't want to be a spoiler. Just go read the book. (Gramedia, where's my percentage... ? )

Atau tentang mengapa banyak bandar narkoba masih tinggal bersama ibunya.

Dan banyak lagi kisah-kisah menarik lainnya.

Oh iya, menurut penjual roti itu, paling tidak 87% manusia itu jujur. Paling tidak, manusia-manusia yang bekerja di perusahaan-perusahaan kenamaan itu.

Wednesday, September 27, 2006

Bahayanya Senjata Nuklir

Tiba-tiba jalur komunikasi putus antara dua instansi militer penting.

Kemungkinannya cuman dua. Satu, semua jalur komunikasi alternatif terputus, dan kedua, ini yang mengerikan, serangan telah dilancarkan lawan yang menghancurkan dua instansi penting itu.

Jalur komunikasi itu punya banyak sekali rute alternatif, termasuk diantaranya melalui jalur telekomunikasi komersial. Jadi kemungkinan nomer satu ini sangat kecil.

Tanda bahaya dibunyikan, pesawat-pesawat B52 pun disiagakan, mereka diinstruksikan untuk menyalakan mesin dan bersiap-siap, namun juga untuk tidak lepas landas sampai ada pemberitahuan lebih lanjut.

Melalui komunikasi radio akhirnya didapatkan fakta bahwa tidak ada penyerangan apapun terhadap instansi-2 tersebut. Dan ternyata semua rute alternatif jalur komunikasi tersebut mempunyai satu titik simpul di sebuah stasiun relay yang saat itu punya masalah mekanik (motor kepanasan) dan mengakibatkan putusnya semua jalur komunikasi.

---

Peristiwa diatas dan banyak peristiwa-peristiwa "nyaris" lainnya yang hampir membawa dunia ke kehancuran akibat perang nuklir bisa dibaca disini.

Ini satu hal yang, menurutku, susah untuk dilihat secara optimis.

Bulan Penuh Berkah

Ramadhan itu bulan penuh berkah, kata seorang Akhmad Syakhlani.

Dan dia lebih lanjut mengatakan kalau kita seharusnya memandang Ramadhan dari sisi itu.

Hmm...

Aku berdoa semoga memang demikian adanya Ramadhan 1427 kali ini, penuh berkah, bagi semua. Bagi mereka yang melaksanakan kewajibannya, dan bagi yang lain, yang merasakan berkahnya melalui mereka yang melaksanakannya.

Dan semoga ridha Allah jadi milik kita.
Amin.

Ways on seeing religion differences

  1. To treat religion as the prime factor that defines a person and use this view to guide how we interact with other people. We might dislike them just by that, or on the contrary, loving them by that.
  2. To treat religion just like we treat skin colors, sure it make different people different, but when we interact with people as an educated person, we'll (usually) disregards skin colors. So we realizes the differences, might also grows some prejudice upon them, but we won't act by it.
  3. To treat religion as an insensitive issues, that really don't matter in everyday life.

So what's your view?

My own view right now might be a join of the views above.
I choose to respect the religion of others, may considered religion is irrelevant in many things on interactions with others in everyday life, and I also tend to care more for my own religion.

Errr... it sounds unclear.
Ok, let me rephrase, basically, my view is this:

(taken from Al-Quran, Surah Al-Kafirun, last verse)
"Lakum dinukum waliyadin"

It translates (my own words, please CMIIW):
"For you your religion, for me my religion".

No Judgement != No Opinion

Beberapa minggu lalu berlangsung diskusi kecil-kecilan di Isnet. Ngomongin perbedaan, dan bagaimana mengatasinya on conceptual, individual level. Menariknya buatku, diskusi ini mendalami pemikiranku yang lama tentang masalah ini.

Ibu Dr. Darfiana Nur yang hebat itu, menyebutkan sesuatu yang mirip dengan pandanganku tentang ini.

Basically its goes like this:
No judgement to the belief of others. But not opinionless.

Below is my personal stressing on the point (not hers).
I really, really, think that enforced personal judgements to others is bad.

And I really like to bring a point I've mentioned in the discussion here,
this point I raised when the discussion went on to mention that Muhammad SAW/PBUH had in several times enforced judgement to others when they disregards or insults Allah.

My point were:
" ... we are not Muhammad, may never will be. We don't have his wisdom, we don't have Allah direct guidance and we don't have his qadha and qadar ... "

When we judge people and enforce our judgements as if they were the only right possible judgements or interpretation on a matter, we have more or less acting as God.

And that is an unforgivable sin.

What's your 10 MRU shell commands?

Following a meme on planet debian:

$ history|awk '{print $2}'|awk 'BEGIN {FS="|"} {print $1}'|sort|uniq -c|sort -nr|head -10

81 ls
76 ll
71 cd
32 svn
27 vi
18 ps
16 apt-cache
13 find
13 exit
12 ssh


---

Nothing outstanding here...
Still an interesting things...

So what are yours?
Comment please.

Friday, August 25, 2006

Pointer to Function vs Pointer to Data

From http://www.opengroup.org/onlinepubs/009695399/functions/dlsym.html:

--- start ---

The ISO C standard does not require that pointers to functions can be cast back and forth to pointers to data. Indeed, the ISO C standard does not require that an object of type void * can hold a pointer to a function. Implementations supporting the XSI extension, however, do require that an object of type void * can hold a pointer to a function. The result of converting a pointer to a function into a pointer to another data type (except void *) is still undefined, however. Note that compilers conforming to the ISO C standard are required to generate a warning if a conversion from a void * pointer to a function pointer is attempted as in:

fptr = (int (*)(int))dlsym(handle, "my_function");
--- end ---

Hmm...

Hmm...

Hmm...

So that's why they do it like this:


* (void **) (&fptr) = dlsym(handle, "my_function");

me, on learning how to load a library ...

and the really funny thing:
I was actually searching first to linux kernel code to learn how they did module load/unload, before resorted to dl*() family of functions...

Poor me.

Friday, August 18, 2006

Merdeka!

Setting tahoen 1945.

atau 05, sebagaimana tercantum dalam teks asli proklamasi,
yang aku baru ngeh lagi kemarin, ketika mengikuti (dengan khidmat dong) peringatan detik-detik krusial itu kemarin.

Rakyat mendengarkan dengan khidmat, harap-harap namun bukan cemas, sesuatu yang lain yang dirasakan, bulu kuduk tidak mau kalah unjuk diri, menegaskan rasa itu. Merinding.

Soekarno pelan dan penuh ketegasan mengucapkan bait-baik teks yang disusun malam sebelumnya. Hatta dekat berdiri dibelakangnya.

Mungkin tak ada yang tahu bagaimana hari-hari berikutnya akan dilalui. Mungkin pula saat itu tak ada yang begitu memperdulikannya. Rasa haru dan bahagia terlalu dalam. Mengaburkan rasio.

Ketika teks selesai dibacakan, rasa yang terpendam pun meluap, memuncak, membuncah. Semua berteriak.

Merdeka!

---

Setting tahun 2000.

Aga lahir.

Negeri tempatnya lahir, berkubang dalam sengketa.
Sengketa berdarah antar saudara.
Mempertanyakan makna kemerdekaan.

Jika merdeka, mengapa menderita?
Jika merdeka, mengapa terkungkung?

tertekan. ditekan.

Tak bebas mencari makna hidup.
Tak bebas mengikuti langkah angin.
Terbelenggu.

Maka Aga pun Mahardika.

---
Setting tahun 2006.

Merdeka-pun mendua.
Sebagian terkekang karenanya.
Mungkin karena sadar bahwa Merdeka itu belum.

Sebagian, menari dalam setiap langkahnya.
Merasa bebas. Seperti angin. Tanpa batas.
Bebas tanpa arti. Mungkin juga tanpa isi.

Tidak sadari, bahkan angin pun mengikuti aturan-Nya.

Friday, August 04, 2006

A War on Stupidity and Arrogancy

Seen on planet debian (from: http://www.advogato.org/person/vorlon/diary.html?start=17):

On foreign policy

When you defend the death of a civilian
and say
he should have known better
he should have left his home
and his life
in the land of your enemy
that is hate.

When you say the boy's death was justified,
for daring to be born in that country
with such people
and such policies
it is because you hate.

When the war comes to your town
and you are caught in the cross fire,
I too will say,
you had it coming.

---

What more we can say?

I'm hereby declaring a war on stupidity, ignorancy, and arrogancy shown by Israel and America, winners of the Stupid and Arrogant Goliath of the century award.

I do realize that there still exists many smart, sightful people with conciousness on both countries, to them I offer my condolences for being intellectually impotent, though that may not be by their own will.

And this war is not limited to those countries, but also to others who shows that kind of stupidity, ignorancy and arrogancy.

Monday, July 17, 2006

The War on Terror ?

This one taken from: http://www.britshalom.org/csforum/read.php?id=43?

"You and your friends have no moral right to be there and certainly not to do what you are doing to the population there. You have no moral right to imprison the population, to enter their homes in the middle of the night, to go from home to home by breaking down walls, to detain people indiscriminately, to destroy, to shoot, to tyrannize and to inflict casualties."

It's a reply from an Israelian to a letter from an Israel's soldier.

---

We're all living in a very sad period.

A period where intolerance, greed, and stupidity rules. A period where people stop using their sanity, and chooses to be insane. A period where people stop using their hearts, even forgot about it.

Terrors, as in peace effort, is not an individual or group act, it is a global, unified act. That's why when we said we should bring war on terror, at that moment, if we have self dignity and a little piece of consciousness, we should realize that we should start the war onto ourself.

And it's not a war of weapons.
It's a war of mind and heart, a war of finding one's trueself. A war against one's inner-evils.

B'cause human are meant to love and be loved.

If we care for all the children of war, to all the victims of war, past present and future, we should stop these stupid wars on terrors and start healing ourselves and others.

Start to love again.

Wednesday, June 28, 2006

Ali bin Abi Thalib r.a.

Waktu ditanya,

"diantara shahabat-2 Nabi, siapa yang paling kamu kagumi?"

Aku menjawab, "Ali bin Abi Thalib r.a.".

Hari ini, dari blog-nya mas Fami yang luar biasa, aku mendapatkan nasihat-nasihatnya Imam Ali ketika beliau akan wafat, daripada nanti aku pusing lagi mengingat-ingat nasihat-nasihat beliau itu, aku paste saja disini.

”Aku berpesan kepada kalian berdua, bertakwalah kepada Allah. Jangan mencintai dunia, walau ia menggodamu. Jangan menangisi sesuatu yang menyusahkanmu. Sampaikan kebenaran. Sayangilah anak yatim. Beri petunjuk orang yang sesat. Berbuatlah untuk akhirat. Jadilah musuh orang zalim, dan pembela orang yang dizalimi. Berbuatlah sesuai dengan Kitab Allah. Dan jangan jadikan Allah sebagai sasaran caci maki.”

”Aku berpesan padamu, Nak. Hendaklah engkau bertakwa kepada Allah, mendirikan shalat tepat waktu, menunaikan zakat pada yang berhak, menyempurnakan wudhu karena tidak sah shalat tanpa bersuci. Aku berpesan padamu agar memaafkan dosa, menahan amarah, bersilaturahim, bijaksana pada orang bodoh, mendalami ilmu agama, tabah dalam menghadapi masalah, menjaga Al-Quran, bertetangga dengan baik, menyeru kepada kebajikan, melarang kemungkaran dan menghindari perbuatan keji.”


Nasihat-nasihat beliau ini sulit kuanggap sebagai nasihat-nasihat kosong, kalau mengingat kisah-kisah beliau selama hidup.

Manusia-manusia luar biasa yang dibentuk oleh Rasulullah seperti ini, pastilah sedang dirindukan sangat oleh bumi. Rindu dendam yang membuatnya memuntahkan isi perutnya dan menggoncang alam serta makhluk-makhluk yang sedang lupa.

Jadi inget surat Al-Zalzalah.

Ada 600.000

.... orang superkaya di Indonesia.
Konon kabarnya.

Kalau 600.000 orang superkaya ini, memberi modal usaha 100 juta rupiah untuk 10 orang indonesia lainnya, dan aku yakin 1M rupiah itu bukan jumlah besar buat mereka, maka kita bisa mengurangi 6.000.000 pengangguran di Indonesia.

Pada saatnya, usaha 6.000.000 orang itu akan menarik minimal 10 orang lain lagi, itu artinya 60.000.000 orang Indonesia. Bisa dibayangkan jika 60.000.000 orang Indonesia ini punya keluarga minimal 1 orang istri/suami.

Well, mungkin, gak seindah itu.
Tapi kalau 20% saja dari jumlah itu yang berhasil, 12.000.000 orang. Wow.

Di Isnet sekarang lagi berkembang diskusi untuk mendanai proyek-2 penelitian. Agar para ilmuwan bisa fokus sepenuhnya mengembangkan ilmu dan berinovasi tanpa harus memikirkan nasib anak-istrinya. Mungkin bisa juga 600.000 orang superkaya tadi membantu kearah ini.

Ustadz Nadirsyah Hosen juga menekankan kalau Indonesia bisa menjadi Emas lagi, jika ulama-nya (baca: ilmuwan-nya) sibuk menggali Ilmu.

Monday, June 26, 2006

Wednesday, June 14, 2006

On Togetherness

I really don't believe that God has created mankind and the world which we're living, under the same blue sky and burning sun, and all's just for sideseeing how fast we can destroy it and ourselves.

A scene in Mahatma Gandhi (the movie) strikes me.

There are two extremes on the political situations that time. One part was demanded to split India to separate states, both with each own Islam and Hindu territory (which is now becoming Pakistan and India), other was insisted to became one nation.

Gandhi was about to go onto a meeting to discussed the future of India. There are demonstrants gathering just in front of the blocks where Gandhi's living. And they blocked Gandhi's way out, asking, why did Gandhi participating in the meeting, they insisted on asking Gandhi to support separation of India.

Gandhi was very upset. He speaks, "I'm a hindu, a moslem, a christian, a jews, a buddhist. I'm all of you." And then he speaks about how sad and mad he is to see that his struggle for India's independence has turn to politics and society clash.

In another scene, Gandhi also speaks of how he miss the day, when as a child, he is playing and learning with friends, reading both Tripitaka and Qur'an side by side, learning from each other.

Something said in X-Men-3 pointed out more to me (taken from my lousy memory):

"In the world where intolerance, ego, and anarchy arise, there are brave men who fought against them in search for a better world. A world of harmony."

Imagine there is no heaven.

Tuesday, May 16, 2006

Kehidupan Ghifa

Kalau Aga mengajariku soal keajaiban, dan Nadia mengajariku soal kesabaran.

Maka Ghifa, mengajariku soal kehidupan.

Selamat datang Ghifa, semoga Allah mengiringi tiap langkah kita bersama dengan ridha-Nya. Dan semoga Dia juga akan membimbingmu pada saatnya nanti dengan rahim dan rahmat-Nya.

(ps: Ghifa itu titipan Allah yang ketiga di rumah kami, baru saja datang Jumat kemarin, May 12, 2006 13:50-13:55 JAVT)

Wednesday, May 10, 2006

Reading the Google Story

Me currently reading The Google Story.

Inspirational, to say the least.