Friday, January 23, 2009

Survey: C adalah bahasa programming yang mendominasi proyek open-source

Dari Slashdot, Survey Says C dominated New '08 Open-Source Projects, C adalah bahasa programming yang mendominasi proyek open-source tahun 2008 dari laporan The Register (UK). Menurut Black Duck Software yang memonitor 180000 proyek pada hampir 4000 website, hampir setengah - 47% - 17000 dari proyek open-source yang baru ditulis dalam bahasa C. Setelah itu Java sebesar 28%. Untuk bahasa scripting JavaScript menempati posisi teratas sebesar 20%, lalu Perl 18%, PHP sebesar 11% dan Ruby hanya sebesar 6%. PHP banyak lebih banyak digunakan untuk development website ketimbang Ruby.

Dari kutipan diatas, C adalah bahasa yang paling universal. Bahasa ini bisa untuk hampir semua level pemrograman. Kernel Linux sebagian besarnya ditulis dengan bahasa C, untuk GUI ada toolkit GTK+ di UNIX dan WinAPI di Windows. C dengan GTK+ tercapai karena implementasi sistem obyek pada level C yang disebut dengan GObject. Ini adalah inti C dan GTK+ di desktop GNOME. Saya sangat menyukai C tapi ingin mempelajari bahasa-bahasa yang baru lebih dalam juga. Python dan C# (mono) adalah pilihan yang baik.

Tuesday, January 20, 2009

Kepalaku Pusing

Akhir-akhir ini kepalaku sering pusing sehabis bangun pagi, saya telah mancari-cari sumber rasa sakit ini di internet, bisa jadi penyakit seperti Vertigo yang artinya adalah gangguan keseimbangan kepala (gak ngertilah apa itu). Bisa juga karena sistem peredaran darah di kepala yang terganggu, kurang tidur/istirahat dan penyebab lainnya.

Saya selalu tidur dengan sembarang penyangga kepala (bantal), favorit saya adalah buku manual Linux - The Advance Reference sebagai bantal karena buku ini sangat tebal sekitar 30 cm. Dulu hal ini tidak terasa, tidak ada rasa pusing atau sakit yang saya rasakan. Kira-kira 2 minggu lalu, diselingi dengan kurang tidur dan istirahat yang tidak banyak. Akhirnya drop juga. Sekarang rasa pusing seperti berputar-putar selalu saya rasakan ketika tidur dengan condong ke kapala bagian kanan, saya ingin memeriksakan ke dokter jika terus berlanjut.

Thursday, January 15, 2009

Debian Networking

Konfigurasi network debian, konfigurasi ini seharusnya bisa diterapkan juga untuk distro-distro turunan. File konfigurasi ethernet debian berada di /etc/interface/network dengan format seperti berikut:
auto eth0
iface eth0 inet static
address 10.0.0.10
netmask 255.0.0.0
network 10.0.0.0
broadcast 10.255.255.255
gateway 10.0.0.20
Script untuk kontrol interface berada di /etc/init.d/network, file ini sama saja dengan file-file .rc lainnya (System V).

Sunday, January 11, 2009

File Locking

File locking di UNIX menggunakan system call flock( ). Di Linux fungsi ini di panggil dengan cara mendefinisikan mode lock yang akan di gunakan.
int flock (int fd, int operation);
Fungsi ini didefinisikan di sys/file.h, fd adalah file descriptor yang telah diakses dengan open( ), operation adalah parameter operasi yang akan diberlakukan, ini bisa berupa salah satu perintah di bawah ini:

LOCK_SH: Shared lock, lock bisa dipunya oleh beberapa proses (lebih dari satu).
LOCK_EX: Exclusive lock, lock hanya dimiliki oleh satu proses.
LOCK_UN: Menonaktifkan lock.

flock( ) akan diturunkan ke proses turunan yang bisa dibuat seperti fork( ) atau dup( ) system call. EAGAIN akan di set sebagai errno jika file tersebut sedang dalam status lock dengan return value -1 (UNIX way bro ;)).

Fungsi ini juga bisa mengakibatkan block pada file descriptor, gunakan nonblocking mode dengan ORing LOCK_NB misalnya:
int op = LOCK_NB | LOCK_EX;
Sory, ga ada code.

%man 2 flock -> Complete resources.