Uninitialized Pointer Works?

Hari ini baru coba beberapa operasi string dengan C\Cpp (lagi), baru sadar pointer karakter di C bisa dipakai walau belum dialokasikan (asal udah diisi aja)

Awalnya begini
#include <stdio.h>
#include <string.h>
int main(){
char *this;
strcpy(this,"this is uninitialized");
printf("%s\n",this);
return(0);
}

Keluarannya lagsung SEGFAULT

Selanjutnya:
#include <stdio.h>
#include <string.h>
int main(){
char *this;
strcpy(this,"this is uninitialized");
char *that;
printf("%s\n",this);
return(0);
}

Keluarannya, "this is unintialized" bakal tampak, tapi habis itu baru SEGFAULT.

Diisengin dikit:
#include <stdio.h>
#include <string.h>
int main(){
char *this;
strcpy(this,"this is uninitialized");
char *that;
strcpy(that,"so is this");
printf("%s %s\n",this,that);
return(0);
}

Langsung SEGFAULT (tapi beneran, tadi bisa lebih kacau dari yang kedua)

Moral: selalu inisialisasi pointer yang kamu pakai :D (tapi kok perasaan ga penting banget kaya begini)

Chile Miners

Peristiwa penyelamatan penambang ini benar-benar menyentuh. Presidennya tanggap (bukan maksud mendiskreditkan Pak Susilo Bambang Yudhoyono), warga semua mendukung.

Ada nilai-nilai spiritualitas pula yang aku suka :D (mereka masih ingat sama San Lorenzo, saint pelindung penambang)

Amarok Pidgin

Recently written :D
Shell skrip dipakai tampilkan lagu yang lagi diputar di Amarok jadi message status Pidgin.

#!/bin/bash
# pidgin-amarok-status v0.1
# License: GPL version 2
# script by yoen (jendral_hxr[at]eml.cc),
# based on code by Cory Burgett (Groovebot),
# which is based on AppleGrew's,
# which is based form http://gentoo-wiki.com/TIP_Gaim_Autoprofile_plugin

# adjust the timer
sleep_time=30

# Some ornamentation :)
leader='♫'
trailer='♪'

# checking if pidgin is alive or not (for initializing)
if `pgrep -x pidgin >/dev/null`
then
echo "Pidgin already running"
else
pidgin &
fi

while [ 1 ]; do

# checking the original IM's status message
currstatus_msg=`purple-remote getstatusmessage`

# checking whether Amarok is alive and playing
if `dcop | grep amarok > /dev/null` && [ `dcop amarok player isPlaying` == "true" ];
then
player_artist=`dcop amarok player artist`
player_song=`dcop amarok player title`
player_msg="$player_artist - $player_song"
fi

# change the status only if status is either avail or away
if [ "`purple-remote getstatus`" == "available" ] || [ "`purple-remote getstatus`" == "away" ]; then
#shape the message just as you like, I like to cat it with my IM status message
purple-remote "setstatus?status=available&message=$currstatus_msg $leader$player_msg$trailer"
sleep $sleep_time
fi

#change to original message so it won't change
purple-remote "setstatus?status=available&message=$currstatus_msg"

# checking wheter both pidgin and amarok are still alive or not (for quitting)
if ! `pgrep -x pidgin >/dev/null` && ! `dcop | grep amarok > /dev/null`
then
exit 0
fi

done


Proyek selanjutnya: tulis skrip serupa buat Exaile.

Accidents do happen

Setelah membulatkan tekad untuk mengenakan helm setiap mengendarai sepeda (kecuali sepeda keranjang Ibu) pada hari Kamis dan mulai melakukannya pada hari Jum'at...

Hari Minggu kemarin saya mencoba melepas helm dengan alasan harus belanja ke toko (so why?), hasilnya saya jatuh setelah terjepit antara sepada motor yang memotong dari kiri dan mobil van yang ada di kanan (saya berniat mendahului mobil dari kiri) di Jalan LaksDa Adi Sutjipto, hasilnya luka di betis kanan yang tak kunjung sembuh sampai sekarang walau sudah habis sulfanilamide satu sachet.

Beberapa menit setelah kejadian itu, saya jatuh (lagi) di lampu lalu lintas di pertigaan Jalan Achmad Yani (dari arah selatan) karena cleat yang belum terlepas dari pedal, untungnya Bapak yang saya tabrak pintunya tidak marah dan segera memaafkan. Ternyata Bapaknya juga enthusiast sepeda, dan mengusulkan saya menggunakan sepatu futsal bukan bola untuk dijadikan sepatu sepeda (but I got my personal considerations :D ).

Ah, kadang niat benar-benar harus dijaga :D

Helmet

I decided to wear my bike helmet, simply because Prof. Budiono said so.

Also, this article looks good. :)