Friday, December 22, 2006

Bimbo - Semalam di Malaysia

aku pulang
dari rantau
bertahun-tahun di
negeri orang
oh, Malaysia

oh, dimana
kawan dulu, kawan dulu
yang sama berjuang
oh, Malaysia

kekasih hatipun
telah pula hilang
hilang tiada pesan
aduhai nasib
apakah daya
cita hampa
jiwaku merana
mana dinda

inilah kisahku
semalam di Malaysia
diri rasa sunyi
aduhai nasib
apakah daya
aku hanya
seorang pengembara
yang hina

Friday, November 17, 2006

It works!!!

One thing I just realized after upgrading to Edgy, all hotkey in my desknote, which by the way is an ECS A907, works out of the box. No hacking, no tweaking, no user intervention. The volume manager key works, the "internet" key fires up Firefox and the "mail" key opens Evolution.

Now...if only I could make use of that f***in' flyin' windows key ...

Thursday, November 16, 2006

Edgy upgrade fail on acpid

I just upgraded my dapper into edgy. everything went fine but acpid and
everything that depends on it.
After several hours of googling... I found the answer from launchpad.
The workaround are:
1. Shutdown the acpid (I removed it instead)
2. sudo killall hald
3. sudo dpkg --configure -a
4. sudo apt-get install acpid

Perhaps 4 months is a bit too short for a release cycle of a distro as
massive as Ubuntu...

Mounting Remote Directories using SSHFS

Due to limited harddisk capacity, I stored my edgy repository in an external USB hard drive.
To access it, I mount it using sshfs. Here is how I did it in Ubuntu 6.06.

$ sudo apt-get install sshfs

$ sudo modprobe fuse

$ mkdir /somewhere/localfolder/

$ sshfs -o allow_other user@remotehost:/somewhere/somefolder /somewhere/localfolder

To unmount it just use the normal umount command

$ sudo umount /somewher/localfolder

Now I have edgy repo, shall I start upgrading now... ?
I heard some bad rumors about upgrading dapper to edgy.
I think I need to do some backup first.

Tuesday, November 14, 2006

screen bash

When executing application using screen, I found that if the application went bad, we couldn't find out the error unless we specificy to log it. My debmirror script sometimes fail and I don't know if it is fail unless I repeat the script again.

Hence, bash must go first :-)

It's also quite handy to hide whatever I am doing on the screen as I only need to press C-a d to detach it.

Monday, November 13, 2006

Lust : Feature or Bug

Q: What is lust, a feature or a bug?
If it is a bug, then we are still in development stage and shouldn't have been released yet.
If it is a feature, then why some of us must go to hell because of it?

A: Well, probably deep inside our heart, there are lots of things that was meant to be patched by ourselves.

Hmm... a self-repairing apps...
Thank God we're not running Vista :p

Friday, November 10, 2006

pmount vs perl

After modifying debmirror, i copied it into a folder in my mounted portable hard drive.
The remaining space is quite large, so I put dapper & edgy as the target and start executing the script.
myscript: /usr/bin/perl: bad interpreter: Permission denied

what the h###?!

I am absolutely sure I have no problem with permissions as the same script also copied into the parent directory of
a running ubuntu local ftp repository, and it works.

After checking every possible permission problem I encountered, I finally came into mount permission.
I mounted the portable hd using pmount (it's a usb-connected external hd) and it turnout that the default parameter
used by pmount include a noexec option, therefore, when I mounted it using the classic mount, the script worked.

Now, one question remain...
How come a perl script is considered a binary executable, while bash script is not?

Blogging via mutt

In blogspot, one can post his/her blog via mail. I like this feature because of two reasons :
1. The built in blogspot editor is terribly *cough*bloated*cough* slow
2. Due to aging hardware, opening firefox in my laptop takes zillion years
The problem is, the reason #2 is also the reason why I hate opening evolution in my laptop.

Few days ago, I installed mutt. The setup is not perfect yet, but I found myself quite enjoying it.
It loads extremely fast... that I only keep evolution just for reading html-formatted-mail sent to me.
I can also deal with junk mails much better :-)

Thursday, November 09, 2006

Patching debmirror...

I just realized that debmirror has a weakness in its design. Debmirror is designed to download the packages lists, selecting correct packages to be downloaded, then and only then,  download the packages. However, the packages selection, is somewhat long and tedious. Even worse, there is no progress indicator to tell us how much time left for package selection process to start downloading those damn packages.

I wonder if I can modify it to make it faster.

* searching google with keywords: perl tutorial*

Monday, October 16, 2006

Free as in Freedom

I just saw Ust. Quraish Shihab on MetroTV this morning saying that we are free to choose our religion. He also said that one must face the corresponding consequences of choosing such faith him/herself.
However, since apostasy in Islam is punishable by death, I doubt it is free enough to be called freedom.

It's not that I lost my faith. I just found it disturbing that such foremost muslim scholar unaware of such thing.

Tuesday, September 19, 2006

Shiver Me Timbers!


Monday, September 11, 2006

apt-get moo

$ apt-get moo

/ | ||
* /\---/ ~~ ~~
...."Have you mooed today?"...

Tuesday, September 05, 2006

Partitioning USB Drive from Linux

USB drive is indeed can be partitioned.
What you need to do is:
1. Unmount USB drive,
2. Disable auto-mounting
3. gparted /dev/sda

As I haven't been able to tame the automounting feature of Kubuntu, I used
Gparted-Live and partitioned from there. When I partitioned my USB drive in
Kubuntu, it persistently automounted the first partition (sda1) after it had
been created, even the whole partitioning process hadn't been finished yet.

Thus, it's the value of having a pocket-CD of Gparted-Live everywhere you go.

Now I have a 128MiB USB pen-drive partitioned into 80s MiB FAT16 and 30s MiB EXT2


250 GiB USB Harddrive partitioned into 40s GiB FAT32, and two 100s GiB EXT3

Now ... I am backing-up everything :-D

Wednesday, August 30, 2006

Managing Wireless Equipment (802.11x) using ap-utils

Being maintaining snmp-based nms for months, I've just found this tool few
hours ago. With ap-utils, I can manage my SmartBridge devices natively from
Linux. Ironically, I've been struggling with wine for years just to configure
my WiFi equipment, and even installing windows 98 via Qemu just to have the
wireless configuration software installed.

To install it in Ubuntu :

sudo apt-get install ap-utils



The menu inside ap-utils is self-explanatory.
If only this tools can manage other proprietary wi-fi devices, (alvarion,
canopy, trango, etc) it will be much better.

Tuesday, August 08, 2006

QEMU in Ubuntu Dapper

Should you need another OS emulated within your system, QEMU is the Free Software that do the job well.
In Ubuntu 6.06, you can have the version 0.8.0 packaged in the universe repo.

To use it, just install it using apt-get (or synaptic if you prefer):

$ sudo apt-get install qemu

then create the virtual hard drive using qemu-img

$ qemu-img create mydisk 3G

to install an OS into your emulated hard drive (using CD-ROM installer)

$ qemu -hda mydisk -cdrom /dev/cdrom -boot d

Qemu can be emulating at higher speed when it uses its accelerator module named Kqemu. However Kqemu is a proprietary software (although it'll cost 0 in price). To install the accelerator, you can use the method posted here

Unbloggable Months

Well...two months without blogging...
I lost my desire to write these two months.
Mostly due to:
  • FIFA World Cup '06 Germany
  • (Somehow single) Parenting
Now, since I feel quite narcisist enough, it's time to write again :-D

Thursday, June 08, 2006

Linux Only

When my desknote crashed several days ago, I've tried to put another flavor of UNIX into it.
Yup, I tried to boot Belenix (Solaris-based) and PC-BSD (FreeBSD-based).
Both kernel got panic and dumped.
It seems that Linux is the only "free" kernel that will boot up my transmeta box.
(My Sempron 2100+ box has no problem at all)

Linux rules :-D

"Crippled" Repo

After hours of trying and failing net-install Ubuntu 6.06 (Dapper Drake) from my local repository, I finally found out what's missing from it.
I did not include main/debian-installer in my debmirror script!
Thus, the repository is only good for installing packages into up & running Ubuntu system.
With less than 3 GB disk space remaining, I don't think I can afford to add main/debian-installer into my local repo.
Thus, having CD-installer ready is a must.

Friday, May 12, 2006

Proxy Traceroute

When I need to ensure that an IP address is properly routed and reachable, I often use the traceroute service of However when I have to query frequently, the slowness of firefox on my laptop is such a hinderance.
To keep myself from hammering down my laptop, I create shell script to do the task using elinks and sed. Here is my code:

elinks -dump --no-references --no-numbering \ "$1"|sed '1,21d'|sed -n -e :a -e '1,7!{P;N;D;};N;ba'

I saved the script as and using it with the traceroute target as the only parameter.

$ sh
$ sh

This way is much faster, really.

Thursday, May 04, 2006

Intransitive Trust

In those ol' days...there were Windows NT4.
I remember the pain of setting every domain to trust each other as the trust relationship between domain is one way and intransitive.
To get every domain connected in a sane way is a great challenge.
Especially if you put different version of windows into.

That memory suddenly came to mind...
As I feel so miserable when I've got so little trust from someone I love, while she got mine, fully.
Perhaps, I need to be wiretapped, equipped with gps, and monitored 24/7 as well?!
This is ridiculous and draining my sanity.

*Taking deep breath, holding it for several seconds, and release it slowly...repeated 3x*

Hello World! :-)

Thursday, April 20, 2006

A Geek's Bedroom

New Look

Kubuntu, with ATI RADEON 9250 Chipset, and TV-OUT, means Multimedia Playback in the Bedroom!
Now...if I can build MythTV on it...

Tuesday, April 04, 2006

Another Google April Fools' Joke

I am always fascinated by their April1st Jokes
Just now they launched Google Romance
Just check it at
Have fun

Thursday, March 23, 2006

My sysadmin toolbox

Inspired by :-)

For my day to day network administration, I use these apps frequently:

ssh,telnet,bash,coreutils,rsync,scp,elinks,wget,nano....if you don't know what
are these apps for, then probably you could skip this
*cough*article*cough* :-)
For serial console access, I use minicom. I love configuring my huawei box
with minicom using transparent konsole, it's so damn pretty.
For quick traffic monitoring via snmp poll, I use ifstat. If only I could
figure out how to parse the capture result into rrd files, I would make it
even more useful.
For more comperehensive network provisioning, JFFNMS is what I use. I just
wonder how to reduce its resource usage. I'll probably give nagios a shot

The others will be most of what GNOME & KDE offers....

100.000 km milestone

The odometer of my motorbike has just passed 100.000 kms milestone :-)
The odometer itself, however, consists of 5 digit only,
hence, its returned to ZERO :-D

Time to sell the bike eh?


Friday, March 17, 2006

Merah Putih

What makes a nation, nation?
no...I think the question should be ...
What keeps a nation, nation?


Are we really still a nation... or perhaps... we never was...?!


Going into bash, aliases make my life easier, really!
I kept adding these aliases in wherever .bashrc I have

someone@somewhere:~$ alias
alias acs='apt-cache search'
alias acso='apt-cache show'
alias dusk='du -s -k -c * | sort -rn'
alias greph='history | grep '
alias ls='ls --color=auto'
alias nsl='netstat -alnp --protocol=inet | grep -v CLOSE_WAIT | cut -c-6,21-94
| tail +2'
alias sadug='sudo apt-get dist-upgrade'
alias sapi='sudo apt-get install'
alias sapu='sudo apt-get update'
alias sapup='sudo apt-get upgrade'

As you can see... it's very ubuntu, right? :-)
I think I need to add some more...
Any idea ?

Wednesday, March 08, 2006

Messing up with debmirror

From debmirror manpages:

DEBMIRROR(1) User Contributed Perl Documentation DEBMIRROR(1)

debmirror - Debian partial mirror script, with ftp, http, hftp or rsync
and package pool support

debmirror [options] mirrordir

This program downloads and maintains a partial local Debian mirror. It
can mirror any combination of architectures, distributions, and sec‐
tions. Files are transferred by ftp, and package pools are fully sup‐
ported. It also does locking and updates trace files.

To support package pools, this program mirrors in three steps.

1. download Packages and Sources files
First it downloads all Packages and Sources files for the subset of
Debian it was instructed to get.

2. clean up unknown files
Any files and directories on the local mirror that are not in the
list are removed.

3. download everything else
The Packages and Sources files are scanned, to build up a list of
all the files they refer to. A few other miscellaneous files are
added to the list. Then the program makes sure that each file in
the list is present on the local mirror and is up-to-date, using
file size (and optionally md5sum) checks. Any necessary files are

I had never paid attention step two before I tried to add breezy-updates and breezy-security, into my existing Ubuntu Breezy repository. I executed debmirror without putting breezy in the dist parameter (instead, only breezy-updates and breezy-security), hence, I lost 11 Gigs of data.

Mental note: RTFM RTFM RTFM

Tuesday, February 28, 2006

Scripting Addiction

Since I can do some bash scripting, I fell like I can't stop.
I even try to automate anything I usually do by scripting it.
Hmm... should I dive into python and made my own NMS?
I'm quite dissappointed with JFFNMS performance, btw.
Probably, I should take a look at ifstat source code and learn from it, and then make my own lightweight network monitoring system....
Hmm... scripting is really really really addictive....

Friday, February 17, 2006

A week with Fedora Core 4

FYI, my laptop is now running Debian Sarge. It's just plain stable, albeit old system :-)
My PC, however, is running Kubuntu Dapper Drake, and with spare hdc (after cleaning up the pre-existing Ubuntu Breezy Badger) I decided to try another distro that is not debian-based.

Going into RPM world, Fedora is my first choice.

My first experience with GNU/Linux is with Red Hat 5 several years ago. Being a newbie, that was an unpleasant experience. I knew nothing about UNIX-like environment, getting annoyed with RH5 hardware detection, especially in Multimedia & Printing support, I finally mess with X and cannot log into GDM until one day my cousin did some fiddling with configuration files and fixed my X issue.
With those unpleasant memory, I begin installing FC-4.

Installation is graphical and intuitive. During the installation, I chose to manually partition my hard disk and customizing packages selection. I didn't found synaptic nor adept there, but hey, this was the time to use yum, right?

The installation ended with grub installation. Here, I made a mistake. I overwrote my Ubuntu's grub in MBR with Fedora's one. As Fedora did not recognize my Ubuntu installation, after reboot, I presented with no option to log into Ubuntu unless I manually edited the Grub.

The bootsplash is nice although not as informative as (K)Ubuntu's, and after passing my username & password into GDM, I was presented with GNOME 2.10. I had to say I much prefer the brown one than that bluecurve+clearlooks combo though :-)

After playing around for a while (and tasting Fedora's KDE 3.4) I started using yum.
I was thinking yum update is the equivalent of apt-get update when I noticed that it actually updated the system. I found that command is similar with apt-get update followed with apt-get upgrade.

As with apt, a proxy-server in the middle of the way messed up with yum. In the case of my Debian-based system, I changed the sources.list to make apt use ftp instead of http connection. In yum, I found it a bit tricky as it use mirrorlist. By default Fedora's yum using a mirror list to reach its mirror, defined in /etc/yum.repos.d/fedora*.repo (This is a good method, I wonder if Debianistas would adopt this). Since I couldn't find a way to tell yum to use ftp instead http, I created a directory named yum.custom.repo, copied the original .repo files there, made a script to grab those mirrorlist, and created the list locally.

cat fedora.repo|grep mirrorlist|sed -e 's/mirrorlist=//' -e 's/$releasever/4/'|wget -i - -O -|grep ftp|sed 's/http:/ftp:/' >fedora.mirrorlist
cat fedora-extras.repo|grep mirrorlist|sed -e 's/mirrorlist=//' -e 's/$releasever/4/'|wget -i - -O -|grep ftp|sed 's/http:/ftp:/' >fedora-extras.mirrorlist
cat fedora-updates.repo|grep mirrorlist|sed -e 's/mirrorlist=//' -e 's/$releasever/4/'|wget -i - -O -|grep ftp|sed 's/http:/ftp:/' >fedora-updates.mirrorlist
cat fedora-updates-testing.repo|grep mirrorlist|sed -e 's/mirrorlist=//' -e 's/$releasever/4/'|wget -i - -O -|grep ftp|sed 's/http:/ftp:/' >fedora-updates-testing.mirrorlist
cat fedora-devel.repo|grep mirrorlist|sed -e 's/mirrorlist=//' -e 's/$releasever/4/'|wget -i - -O -|grep ftp|sed 's/http:/ftp:/' >fedora-devel.mirrorlist
cat fedora-extras-devel.repo|grep mirrorlist|sed -e 's/mirrorlist=//' -e 's/$releasever/4/'|wget -i - -O -|grep ftp|sed 's/http:/ftp:/' >fedora-extras-devel.mirrorlist

Then I just edited the mirrorlist option in .repo files at /etc/yum.repos.d to point into those mirror list, e.g:

name=Fedora Core $releasever - $basearch - Base

After yum update completed, I was left with a very up-to-date Fedora system, with surprisingly: a well-working KDE 3.5.

So far, I enjoyed my Fedora experience, and kept it in my system.

I still have space in my hard disk.
So... what will it be : Open SUSE, Mandriva, Gentoo or Slackware?

Tuesday, February 14, 2006

Merge PDF files with pdftk

Having some of my manuals/documentations downloaded in several separated pdf files, I wanted to merge them into a single file.

First, I installed pdftk

# apt-get install pdftk

Then, I merged the files into a single file

$ pdftk file1.pdf file2.pdf file3.pdf cat output file123.pdf

When the files to be merged is a lot, I edited the file list in a text editor (or, when I am in a good mood, using ls & awk & sed) then combine it with the script found here

$ cat
# combine PDFs; pass filenames in on stdin;
# pass output to stdout
read input_filenames
pdftk $input_filenames cat output -

$ cat filelist|./>mergedfile.pdf

So far, I am satisfied with the result.
However, I am still looking for the method to modify the hyperlink to suit the new file, since the previously scattered files actually hyperlinked to each other. RTFM is in progress :-)

Thursday, February 09, 2006

Size of Ubuntu Repository

When I tried to create local repository of Ubuntu, I was haunted by an unanswered question: How big will it be?
Googling and diving into gave me no solution.
Then, a friend in Ubuntu-id mailing list gave me the answer: calculate the size from every packages listed in Package.gz.

This is a sample (ugly) script I used to get main repository size calculated.

$ wget -O - |zcat|sed 's/Installed-Size://'|grep Size|awk '/Size:/ {pkgsize+=$2} END {print "package size = "pkgsize" Bytes"}'

The size of other repositories can be calculated by simply changing the path of Packages.gz

Tuesday, February 07, 2006

Building Ubuntu Local Repository (CD)

I've just read from this site about creating Ubuntu DVD Repositories. I thought I need to create such local repo, but in CDs, as I don't have DVD burner.

First, I created local copy from main repository using debmirror.
In this case, I am using mirror from CBN.

$ debmirror --nosource -m --passive --root=Ubuntu/ --method=http--progress --dist=breezy --section=main --arch=i386 ubuntu/ --ignore-release-gpg

Creating destination folders for partitioning

$ mkdir ubuntu-cd

Then I partitioned those files using debpartial

$ debpartial --nosource --dirprefix=ubuntu --section=main --dist=breezy --size=CD74 ubuntu/ ubuntu-cd/

After the packages lists had been generated, I created the symlink to the corresponding packages using debcopy script. It can be downloaded from here.

$ ruby debcopy -l ubuntu/ ubuntu-cd/ubuntu0
$ ruby debcopy -l ubuntu/ ubuntu-cd/ubuntu1
$ ruby debcopy -l ubuntu/ ubuntu-cd/ubuntu2
$ ruby debcopy -l ubuntu/ ubuntu-cd/ubuntu3
$ ruby debcopy -l ubuntu/ ubuntu-cd/ubuntu4

The partitioned folders then converted into iso image files, and burnt.

$ mkisofs -f -J -r -o ubuntu-cd-main-0.iso ubuntu-cd/ubuntu0
$ mkisofs -f -J -r -o ubuntu-cd-main-1.iso ubuntu-cd/ubuntu1
$ mkisofs -f -J -r -o ubuntu-cd-main-2.iso ubuntu-cd/ubuntu2
$ mkisofs -f -J -r -o ubuntu-cd-main-3.iso ubuntu-cd/ubuntu3
$ mkisofs -f -J -r -o ubuntu-cd-main-4.iso ubuntu-cd/ubuntu4

$ sudo cdrecord -v dev=/dev/cdrw speed=32 driveropts=burnfree -dao -eject ubuntu-cd-main-0.iso
$ sudo cdrecord -v dev=/dev/cdrw speed=32 driveropts=burnfree -dao -eject ubuntu-cd-main-1.iso
$ sudo cdrecord -v dev=/dev/cdrw speed=32 driveropts=burnfree -dao -eject ubuntu-cd-main-2.iso
$ sudo cdrecord -v dev=/dev/cdrw speed=32 driveropts=burnfree -dao -eject ubuntu-cd-main-3.iso
$ sudo cdrecord -v dev=/dev/cdrw speed=32 driveropts=burnfree -dao -eject ubuntu-cd-main-4.iso

The method to create repo-cd for universe & multiverse repository is similar.
I Just changed the apropriate parameter in debmirror & debpartial.
Now I have access to ubuntu repository even when I am not connected to the net. Right now, I am currently trying to create repo from breezy-updates & security. Hopefully, I will have it mirrored before it changes (again) :-)

Wednesday, January 25, 2006

Background Processing

I am managing a headless server (GNU/Linux) for provisioning network under my supervision. I remotely manage the server via ssh and using it as fileserver as well. Therefore, linux iso images from many distros are downloaded and stored there

One thing I love from this scheme is that I can download any iso files from the net and left the downloading process in background using wget, such as:

$ wget -b http://someurl/someisofile.iso

However, when the source server get busy, downloading from http or ftp is not a good idea. Hence, bittorrent comes in handy.
Using combination of screen and, the command looks like this:

$ screen btdownloadcurses sometorrentfiles.torrent

I can left the download process in background by pressing Ctrl-A followed by D.
Whenever I want to check the download progress, I can list the screen process by typing

$ screen -ls

Then, to get the screen-ed process back, I just type

$ screen -dr name-of-the-process

Now, I'm downloading every distro I can get for free.
I just have to make sure I'm not clogging my company's bandwidth, otherwise, I'll be in trouble :-D

Tuesday, January 03, 2006

Enlightened Ubuntu

I scrapped my Xubuntu two weeks ago to be replaced by Vector Linux 5.1 Standard. From what I read, VL is a very good distro for old hardware, thus, perfect for my ECS A907 desknote.

Having it installed, I immediately know what I missed from Xu/Ku/Ubuntu: excelent package management, good configuration utility and strong community support. It's not that Vector Linux is bad. It runs very fast! However, I don't feel convenient with its Slackware-style and decided to reinstall my ubuntu.

Now the problem is that both Ubuntu & Kubuntu are too slow, and having tried VL, I want something faster than Xubuntu. Hence, I decided to have Enlightenment clean-installed.

So far I made it :-)

I just install ubuntu server install, then after first login I did:

$ sudo apt-get install linux-686 x-window-system-core enlightenment eterm enlightenment-themes esound menu e16keyedit e16menuedit

I also grabbed several tools I need such as minicom, mc, abiword, gnumeric, xmms, firefox, sylpheed, epiphany-browser (for light browsing) and the three apps I need from KDE: Gwenview, Konqueror and Ark.

I am still tweaking my system, but overall, I love E16. Light yet Elegant.
I just can't wait for E17 :-)

Split Personality

Wow, finally...
First post of the year :-)
It seems I am not narcissist enough to write regularly last year.
However, It doesn't mean that I had nothing to write about.
I just couldn't write it here since I would like to keep several things private.
Now, since I have splitted my dark-self into other pensieve, I think there will be more writings here...probably :-)