Wednesday, January 17, 2007

Ever After, a Cinderella Story, or is it?

Alkisah ada seorang anak perempuan pemberani, bernama Danielle de Barbarac. Setting di Perancis sekitar tahun 1500-an.

Cerita dimulai dengan kisah ketika ia kehilangan ayahnya sewaktu masih belia dan terpaksa harus hidup bersama ibu dan saudara tirinya. Ibu kandungnya telah lebih dahulu wafat.

Danielle tumbuh menjadi wanita yang tegar, berwatak keras agak sedikit tomboy. Namun demikian ia punya prinsip luhur yang selalu dipegang kokoh. Tidak mau ditindas begitu saja, dan selalu berusaha membela kaum miskin dan lemah.

Cerita di-fast-forward sedikit,
Danielle berusaha membebaskan seorang miskin yang ditangkap karena mencuri dan akan dijual ke amerika oleh pihak kerajaan sebagai hukumannya. (Menarik untuk diingat bahwa waktu itu amerika adalah tempat buangan yang dibenci sekaligus ditakuti orang).

Ketika ia sedang berdebat dengan prajurit pengawal, pangeran yang sedang keliling negri datang, dan perdebatan diantara keduanya pun terjadi. Sang pangeran bertanya, mengapa menurut Danielle si tawanan itu harus dibebaskan.

Dan ini yang menarik buatku, Danielle menjawab, aku re-phrase sedikit dengan kata-kata ku sendiri berdasarkan ingatan yang sudah mulai penuh ini ya:

"Ketika sebuah negeri tidak memberikan sarana dan prasarana untuk rakyatnya, memberikannya kesejahteraan dan pendidikan yang layak, "

"ketika kemudian rakyat itu tumbuh dengan pengetahuan dan kesejahteraan yang minim, dan mereka melakukan kejahatan karenanya, "

"maka siapakah yang harusnya ditangkap? Rakyat itu atau sang Penguasa negeri? Siapakah sebenarnya si penjahat itu?"

Pangeran tercekat, tak bisa menjawab.
Dan akhirnya tawanan itu pun dibebaskan.

Cerita selanjutnya sebagaimana kisah Cinderella, setelah melewati berbagai aral melintang, they live happily ever after.

---

Dialog itu menyentakkan. Menggugat.

Siapakah sesungguhnya (yang telah menjadi) penjahat itu?

Namun kenyataan masa kini sebetulnya lebih menyentak lagi. Ketika kesempatan sebetulnya terbuka lebar, tapi jalan yang ada seringkali penuh rintangan, hingga membuat langkah menuju pintu itu pun tersendat atau bahkan terhalang.

Orang sosialis-komunis mungkin akan teriak "Pemerintah menyengsarakan rakyat! Pengangguran meningkat, harga-harga kebutuhan pokok membengkak!".

Namun para kapitalis (yang seringkali didukung pemerintah karena mungkin punya lebih banyak sumber daya) juga bisa balas mencemooh: "Kalian saja yang tidak pandai memanfaatkan kesempatan, lebih sering merusak daripada membangun. Pemalas-pemalas yang harusnya bersyukur kami masih mau membiayai sistem yang menyokong kehidupan kalian!".

Can't we all take one step back?
Measure ourselves, what went wrong?

Or we will just let the sad fact that Evil,
no matter how we fight it,
will always prevails...

I hope the answer is an optimistic no, we will never rest to continue refine and improves our lives.

And that evil, shall not prevail!

Thursday, January 11, 2007

Matiin Sentral

Latar Masa: Dulu waktu jaman masih indah di Banda Aceh.

Terjadi banjir bandang, mirip dengan banjir di Kuala Simpang baru-baru ini. Daerah rumahku termasuk salah satu yang kurang beruntung dan terkena luapan air sungai waktu itu. Walau termasuk daerah yang terakhir kena luapan itu, cukup repot juga mengamankan barang-barang kami waktu itu.

Karena menganggap rumah kami tak akan terkena banjir itu, kami tidak tergesa bertindak dalam menyelamatkan barang-barang kami, baru setelah air mulai naik kami bergerak. Dan ini rupanya keputusan telat, ketika air sudah sampai setinggi dada kami masih harus bekerja menyelamatkan barang-2 yang bisa diselamatkan. Bantuan teman-teman sangat berharga waktu itu.

Sementara itu, pekerjaan berat di kantor tetap menanti. Sehubungan dengan banjir itu, semua sarana listrik dan komunikasi terputus atau terpaksa diputuskan untuk mencegah hal-hal yang lebih tidak enak lagi.

Pada saatnya tiba juga giliranku untuk mematikan sentral-ku. Waktu itu baru malamnya aku bisa mengerjakan itu. Itupun setelah diskusi akhir dengan bos-bos di Medan yang tidak selesai karena komunikasi keburu terputus. Dengan ditemani oleh Mirza dan Ibu Siti Syarinah dan siapa lagi ya? Kami berangkat ke gedung sentral.

Disana tanpa listrik yang artinya tanpa lampu, aku harus belajar untuk mematikan sentral itu, dan musti secepatnya juga, karena jika kapasitas batere habis, maka sentral itu bisa mati diluar keinginannya. Bisa susah nanti kalau mau menghidupkan dia lagi.

Mumpung kapasitas batere masih cukup, aku gunakan untuk menyalakan komputer dan printerku, membuka file-file dokumentasi dan mencari panduan untuk mematikan sentral. Perlu diingat waktu itu karena komunikasi sudah terputus, aku tak bisa lagi berkoordinasi dengan siapapun untuk melakukan ini.

Dokumentasi ketemu, kucetak semuanya. Lalu kubawa ke tempat perangkat-perangkat lucu itu berada. Dengan berbekal senter, aku baca, dan baca, dan baca lagi berulang-ulang memastikan tak ada yang terlewat. Akhirnya, bismillah, dan mulai kumatikan sentral itu.

Sekarang sich 'udah gak inget lagi gimana cara-cara-nya dan kalau disuruh ngulang, tentunya mendingan dengan bimbingan daripada manual pilot seperti itu. Namun mengingat betapa sentral itu biasanya justru adalah sistem yang tidak boleh dimatikan sembarangan, dan harus selalu dijaga, pengalaman mematikannya sungguh sangat, mmm... berkesan?

Waktu menghidupkannya lagi sayangnya aku gak ikut, karena waktu itu sudah banyak orang-orang datang, kemudian rumahku juga airnya sudah surut, jadinya aku sibuk membersihkan rumah itu yang pekerjaannya gak kalah gilanya. Pernah gak kena banjir sampai 2 meter? Lumpurnya itu lho.

Lagian dulu waktu baru dateng ke Banda Aceh, aku pernah juga melihat sentral itu dihidupkan setelah baru saja selesai instalasi. Ini cerita lain lagi di lain waktu.

Tuesday, January 09, 2007

Berapa Rupiah?

Salah satu masalah utama dalam perencanaan jaringan telekomunikasi yang sudah sangat kompleks dan luar biasa besarnya adalah menentukan parameter-paremeter acuan yang bisa se-optimal mungkin menghasilkan revenue alias duit.

Dan ini, tidak pernah mudah, atau bahkan pasti.

Saking banyaknya parameter yang saling terkait dan menentukan membuat segala macam prediksi dengan menggunakan beragam model mulai dari yang se-sederhana rumus-rumus Erlang sampai rumus-rumus stochastics dengan simbol ular berdiri hingga pangkat tiga (integral -red) sekalipun tingkat keakuratan-nya seringkali tidak jauh berbeda.

Dan sering juga meleset :-)

Tren yang lagi lucu belakangan ini adalah pertanyaan "berapa nilai rupiah-nya?". Cakupan-nya bisa macam-macam, bisa mulai dari "kalau begini berapa rupiah yang kita dapat?" hingga "berapa rupiah yang kita buang?" atau sering juga begini, "berapa nilai rupiah implementasi barang ini?"

Satu bentuk pertanyaan ini yang cukup sulit untuk dijawab adalah "Berapa potensi nilai rupiah (baca: revenue) dari implementasi 1 trunk E1?"

Bila ingin _mencoba_ menjawab pertanyaan ini, kita harus kenal dulu beberapa terminologi di dunia jaringan telekomunikasi, misalnya "trunk", "E1", kemudian kenalan juga dengan Mbah Erlang, lalu "Routing" kemudian juga musti mempelajari hal-hal seperti CDR (call data record), lalu perhitungan target pengguna jaringan, dan hal-hal zhin-ding lainnya.

Rumit dech.
Lanjutnya kapan-kapan ya...

Tuesday, December 26, 2006

Kerja dalam hampa



Photo is taken from Aceh Media Center.

2 Tahun

sudah...

Kalau daku saja mengingat hari demi hari yang berlalu.

Bagaimana dengan mereka yang harus berkutat, bergelut, dan berjuang dengan kenyataan itu tiap detik-nya?

Jalan masih panjang.


Tuesday, December 19, 2006

Kebanyakan Alat

Menakjubkan kalau melihat betapa banyaknya alat ukur + alat bantu analisa di dunia telekomunikasi sekarang ini.

Mulai dari alat yang berfungsi memantau operasi dan membantu pemeliharaan jaringan telekomunikasi itu sendiri, kemudian alat untuk mengukur performansi, kemudian alat untuk "melihat" apa yang sedang dibawa oleh jaringan telekom itu hingga ke alat-alat analisa yang bisa mengkorelasikan beragam data dan memberikan beragam kesimpulan.

Belum lagi variasi dari masing-masing jenis alat itu yang berada di pasaran, semuanya gak kalah lucu-nya satu dengan yang lain. Belum lagi yang dikembangkan sendiri oleh para operator jaringan telekomunikasi.

Saking banyaknya alat-alat ini, jarang sekali ada tukang-tukang (bukan pekerja lho) telekomunikasi yang bisa mengetahui fungsi apalagi cara menggunakan beragam alat itu. Bahkan kami, errr... mereka, pun belum tentu mengetahui bahwa sebuah alat itu ada. :-)

Sekarang, bayangkan kalau alat-alat itu semua digabung. Mungkin dalam semacam sistem pelayanan satu atap.

Ceritanya bisa jadi lebih lucu lagi.

Tuesday, December 05, 2006

More on Software

Bjarne follow up the previous paragraph with these:

"On the other hand, looking at "average" pieces of code can make me cry. The structure is appalling, and the programmers clearly didn't think deeply about correctness, algorithms, data structures, or maintainability. Most people don't actually read code; they just see Internet Explorer "freeze."

I think the real problem is that "we" (that is, we software developers) are in a permanent state of emergency, grasping at straws to get our work done. We perform many minor miracles through trial and error, excessive use of brute force, and lots and lots of testing, but--so often--it's not enough."

I can't stop laughin' on this one.

How so true.... :-)

Stroustrup on Software

"Our technological civilization depends on software, so if software had been as bad as its worst reputation, most of us would have been dead by now."

I'm thinking about it now... I mean, really?

Friday, November 24, 2006

Reverse Dependencies

Di dunia Microsoft Windows ada DLL, yang bukan singkatan dari "dan lain-lain" atau "dan lagi-lagi" (walau yang terakhir ini mungkin agak mirip dengan maksud hidup DLL itu *smile*).

DLL disitu adalah singkatan dari Dynamic Link-Library.
Yang artinya kurang lebih adalah kumpulan (pustaka/library, -red) fungsi program yang bisa digunakan oleh program-program lain.

Belakangan ini aku lagi belajar cara bikin semacam DLL itu, tapi di dunia Linux, or I should've say GNU/Linux to not upset anyone. Di dunia ini dia dikenal dengan nama shared objects (CMIIW). Tentu saja aku menggunakan bahasa C untuk membuatnya... :-)

Kalau dilihat dari sudut pandang bahasa C, sebetulnya nggak ada yang spesial tentang pembuatan shared-objects ini, satu hal yang mudah untuk diingat adalah tidak adanya fungsi main(), boleh buat beragam fungsi, asal namanya bukan main(). Ini bisa dimengerti, karena memang dia tidak akan dijalankan langsung.

Beda yang kedua adalah, pada waktu kompilasi, perintah yang digunakan agak sedikit berbeda. Kalau pakai gcc (compiler yang hebat itu!) , gunakan perintah
gcc -shared -fPIC namafile.c -o namafileoutput.so

Dengan demikian maka kumpulan fungsi kita tadi bisa diakses dari program-program lain atau bahkan dari pustaka-pustaka lainnya (detailnya agak sedikit lebih rumit, tapi ya gampangnya gitu dech).

Namun bagaimana jika kita ingin membuat pustaka kita ini dapat melihat fungsi ataupun variabel yang ada di program yang memanggil pustaka kita ini? Ini dinding yang bikin ku kepentok kemarin.

Aku coba teknik standar dalam bahasa C seperti mendeklarasikan variabel/fungsi itu dengan deklarasi extern yang artinya variabel/fungsi itu tidak dideklarasikan dalam pustaka tadi. Dan harus dicari deklarasi jelasnya dimana nanti belakangan. Namun teknik ini tidak berhasil.

Ternyata ada 1 lagi argumen di gcc yang bisa dipakai untuk mengatasi masalah ini. Argumen itu adalah argumen -rdynamic. Digunakan ketika kita mengkompilasi program yang akan memanggil pustaka kita tadi, agar variabel/fungsi-2 yang ada di program ini di eksport dan bisa diakses dari pustaka kita tadi pada saat dijalankan.

Dan masalah ini namanya adalah Reverse Dependencies. Gitu.

Capek dech.

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.