All posts filed under “Geeky Stuff

The Kubuntu Aftermath

So, I was trying to rescue a Karmic Koala in distress. I failed at the time, because I didn’t have an up-to-date release of Kubuntu (or Ubuntu, for that matter). So here’s what happened next.

I finally got to borrow a friend’s Kubuntu installation CD, so I booted it up. I poked around in it for a bit, and… alas… there is no such thing as GParted preinstalled inside Kubuntu’s live CD. Lucky for me, I got me an Ubuntu Live CD at hand, also Karmic Koala. Without hesitating, I fired it up, and there it was, Gparted… *drool*

So, I went ahead and just repartitioned the darn virtual disk. By this, I mean I did it in one go, I didn’t stop to apply partition deletions before resizing my root partition and creating a tiny swap partition. One go only. And it worked like a charm.

So there it is, my Kubuntu Karmic Koala now has 5GB of disk space, of which about 1.2GB is free. Enough for now.

Saving Koala Karmic with Gutsy Gibbon: A Failed Attempt

DISCLAIMER: The post you are about to read is really boring unless you are a geek like me. You have been warned.

So, I’ve been trying to tune my Kubuntu installation the best I can, scrounging what is left of my unreliable mobile connection. I managed to actually finish doing apt-get dist-upgrade on it, but by the time everything is installed I came across another problem: hard drive space.

I initially setup my virtual machine to have a 4GB hard drive. After a full installation of Kubuntu Koala Karmic, I got around 600MB of free space on it. So, I went ahead and did a full upgrade, after which my free hard drive space immediately dropped to below 100MB. Oh yay!

That said, turned the VM off and tried to edit its settings. I added an extra gigabyte to the existing 4GB virtual hard drive, then booted into Kubuntu again. Oh darn… I forgot that resizing the virtual hard drive merely simulates an increase of physical hard drive size, and to make use of this I had to actually resize the darn partition.

Next, I got my old Ubuntu Gutsy Gibbon CD, which I finally found after digging through a pile of old movies and stuff. I launched the live session, got into GParted, and attempted to resize my root partition.

Then another hurdle: GParted could delete my existing extended partition (which contained my swap partition), but when I tried to resize my primary  partition it failed. It says something about the superblock being corrupt, whatever that means.

So I tried doing a workaround: I built my extended partition again, only this time covering the entire free space. I then added a new EXT3 partition and kept my swap at a meager 256MB. Then I tried to boot into Koala Karmic again, and voila, it booted.

But this doesn’t solve the problem that Karmic Koala keeps warning me about low disk space. I can actually tell it not to warn me anymore, but the fact that I only have 120 megs of space in my root partition bothers me. I wouldn’t be able to install pretty much anything…

OK, let’s try this again. Boot into Gutsy Gibbon, and try to redo the partitioning (again).

*By the way, I gotta tell you, booting a live CD takes forever! Using a bootable USB stick is probably a better idea.

Nope. It just won’t do it. I guess Gutsy Gibbon is a bit old to do its trick on newer Kubuntu installations. I’ll just have to wait to get that Kubuntu installation DVD…

Going Vintage

Ever since I got my hands on a copy of Kubuntu and successfully installed it as a virtual machine on my Mac OS 10.6.3, I’ve been craving to get my hands on other operating systems. By this, I mean some of the older operating systems. The windows family, for example, ranging from XP (I’ll just skip Vista, not worth the try), 2000, Me, 98, 95, and back as far as Windows 3.11 and DOS 6.xx. Other than that, there are numerous UNIX/Linux-based systems such as OpenSUSE, Mandriva, CentOS, Gentoo, Slackware, FreeBSD, and many more.

The geek in me has taken over…

I just wanted to relive the experience of installing, configuring, and actually using those systems. I wonder if my thesis from my college days will still run on the most current version of Ubuntu, and I wonder if I can still code in VisualBasic 6.0 or C++.

I’d like to more appreciate the fact that our newest operating systems (with all its user-friendliness and advanced technologies that we so often take for granted) are built using those earlier systems. We wouldn’t have Windows 7 today if Microsoft didn’t pull off its gig when it launched Windows 3.11 back then.

So I’m attempting to be a collector of antiquities, and by this I mean vintage software. I hope it’s going to be an exciting ride.

Kernel Upgrade (again?)

Baru saja upgrade ke 2.6.24-18, sudah mau upgrade lagi. Macam mana ini? Harus install restricted drivers lagi? Aaaaa…

root@kertiyasa:~# apt-get dist-upgrade
Reading package lists... Done
Building dependency tree
Reading state information... Done
Calculating upgrade... Done
The following NEW packages will be installed:
  linux-headers-2.6.24-19 linux-headers-2.6.24-19-generic
  linux-image-2.6.24-19-generic linux-restricted-modules-2.6.24-19-generic
  linux-ubuntu-modules-2.6.24-19-generic
The following packages will be upgraded:
  guidance-backends linux-generic linux-headers-generic linux-image-generic
  linux-restricted-modules-generic
5 upgraded, 5 newly installed, 0 to remove and 0 not upgraded.
Need to get 50.6MB of archives.
After this operation, 195MB of additional disk space will be used.
Do you want to continue [Y/n]?

Going Ubuntu

Setelah mengalami trauma yang cukup menganggu, akhirnya aku memberanikan diri install ulang Ubuntu Gutsy Gibbon, dan kali ini langsung di-upgrade jadi Hardy Heron. Hasilnya? Ciamik euy! Memang rasanya beda banget dibandingin pake Windows, apalagi buat aku yang *control-freak* dan *settings-junkie*, sering kali aku jadi *cupu* kalo mau ganti-ganti setting ini itu, tapi overall T.O.P. dah!

Sekedar info tambahan, hardware-ku Acer Aspire 4310. WiFi bawaan Atheros 5007EG, yang driver bawaannya dari Acer sendiri sering nggak cocok…

Langkah-langkah installnya (spesifik untuk keperluanku) seperti berikut ini. Catatan: semua perintah di console berasumsi bahwa sebelumnya sudah melakukan sudo su –.

  1. Untuk memastikan bisa upgrade dan install ini itu dengan lancar, pastikan ada koneksi internet yang bisa diakses via LAN. Caraku: “merampas” laptop temen untuk dijadikan gateway sementara.
  2. Install Ubuntu Gutsy Gibbon (7.10) dari Live CD. Sebenernya bisa langsung pake Ubuntu Hardy Heron (8.04), tapi karena kesalahan teknis pada DVD-Writer di laptop, aku pake CD yang sudah ada: Gutsy Gibbon.
  3. Supaya proses instalasi bisa lebih lancar, install dulu driver-driver untuk konektivitas WiFi:
    Untuk WiFi adapter bawaan Acer (Atheros 5007EG):
    apt-get install build-essential
    – Download madwifi-ng-r2756+ar5007.tar.gz dari madwifi.org
    – Extract dan masuk ke direktori hasil extract dengan console
    make
    make install
    modprobe ath_pci
    Untuk WiFi adapter tambahan (buat akses internet nebeng tower tetangga, SMCWUSB-G):
    – Download ndiswrapper terbaru dari http://sourceforge.net/projects/ndiswrapper
    – Extract dan masuk ke direktori hasil extract dengan console
    make distclean
    make
    make install
    – Cari driver SMC Wireles USB Adapter SMCWUSB-G yang versi Windows
    – Cari dan copy SMCWGUXP.sys dan SMCWGU.inf dari paket driver tadi ke suatu tempat buat installnya (misal home directory)
    ndiswrapper -i [full-path]/filename.inf
    ndiswrapper -l –> memastikan driver terinstall dengan benar
    – Sambungkan adapternya
    lsusb –> perhatikan bahwa USB device sudah ada dalam daftar (jika perlu catat ID-nya, misalnya 058f:9254)
    depmod -a
    modprobe ndiswrapper
    tail /var/log/messages –> cek apakah ada error message, jika tidak ada maka instalasi beres
    – Klik di icon Wireless Network Configuration di panel kanan atas. Cari device yang baru saja diinstall tadi. Jika belum ada, tunggu beberapa saat dan cek lagi. Jika perlu, cek dengan iwconfig di console, harusnya device itu sudah ada di daftar.
  4. Update via APT. Sebelum melakukan update, ganti dulu repo Gutsy dengan repo Hardy. Caraku, gedit /etc/apt/sources.list lalu tambahkan repo di akhir file sebagai berikut:
    ## REPOSITORY UTAMA
    deb http://kambing.ui.edu/ubuntu hardy main restricted universe multiverse
    deb-src http://kambing.ui.edu/ubuntu hardy main restricted universe multiverse
    
    ## INI UNTUK MAJOR BUG FIX UPDATES
    deb http://kambing.ui.edu/ubuntu hardy-updates main restricted universe multiverse
    deb-src http://kambing.ui.edu/ubuntu hardy-updates main restricted universe multiverse
    
    ## INI UNTUK UBUNTU SECURITY UPDATES
    deb http://kambing.ui.edu/ubuntu hardy-security main restricted universe multiverse
    deb-src http://kambing.ui.edu/ubuntu hardy-security main restricted universe multiverse
    
    ## proposed
    deb http://kambing.ui.edu/ubuntu hardy-proposed main restricted universe multiverse
    deb-src http://kambing.ui.edu/ubuntu hardy-proposed main restricted universe multiverse
    
    ## backports
    #deb http://kambing.ui.edu/ubuntu hardy-backports main restricted universe multiverse
    #deb-src http://kambing.ui.edu/ubuntu hardy-backports main restricted universe multiverse
    deb http://archive.ubuntu.com/ubuntu/ hardy multiverse restricted universe main

    Setelah itu, apt-get dist-upgrade dan kalo apt tanya-tanya macem-macem diiyakan saja. Tahap ini agak lama karena butuh download macem-macem dari repo, totalnya bisa hampir 1GB (bahkan bisa lebih! *sweat*) untuk upgrade dari Gutsy ke Hardy. Makanya lebih enak kalo dari awal pake Live CD yang Hardy.

  5. Pastikan driver VGA sudah terinstal dengan benar. Tahap ini perlu untuk memastikan alat-alat cuci mata yang akan diinstall untuk desktop nanti bisa optimal. Caraku: apt-get install libgl1-mesa-dev libgl1-mesa-glx libgl1-mesa-dri. Tambahan info, hasil lspci | grep VGA –> 00:02.0 VGA compatible controller: Intel Corporation Mobile 945GM/GMS, 943/940GML Express Integrated Graphics Controller (rev 03).
  6. Setelah itu, aku pilih install alat-alat cuci mata dulu. Dalam hal ini CompizFusion. Caraku: apt-get install compizconfig-settings-manager. Setelah itu, bisa setting macem-macem efek di desktop dengan masuk ke menu System -> Preferences -> Advanced Desktop Effects Settings. Karena suka pake dock seperti di MacOS, aku sekalian install Avant Window Manager dengan apt-get install avant-window-manager. Selain itu, aku juga install macem-macem GDM Theme dan GTK Metacity Theme dari www.gnome-look.net.
  7. Untuk hiburan audio visual, perlu install macem-macem codec yang diperlukan. Cara simpel: coba buka mp3 dan/atau film-film dalam format apapun. Jika player-nya protes minta download codec, turuti saja. Cara lain buat yang *lebih* peduli codec apa saja yang diinstall:
    – System -> Administration -> Synaptics Package Manager
    – Search Gstreamer plugins, install apa yang dianggap perlu
    Media player yang aku pake adalah VLC untuk video dan Amarok untuk audio.
  8. Aplikasi-aplikasi tambahan yang aku gunakan sementara ini:
    – Thunderbird, buat kirim-kirim email yang bukan spam
    – Pidgin, gantinya YM di Ubuntu
    – Deluge BitTorrent Client, buat download barang-barang nggak jelas (biasanya barang-barang *haram*)
    – Nero Linux, karena Brasero *katanya* menyebalkan kalo dipake burn DVD
    – WINE, buat instal aplikasi Windows yang aneh-aneh
    – Crossover, buat instal Microsoft Office 2003 (OO.org boleh juga, tapi aku masih lebih nyaman pake MSO) dan Dreamweaver MX
    – Anjuta, IDE buat bikin-bikin program. Syntax highlighting, indentation guide, dan code folding-nya sangat membantu.

Sip dah! Semua sudah terinstall dan enak digunakan, tapi buat aku ini masih kurang lengkap. Karena ini laptop mau dipake untuk mengerjakan (baca: menyelesaikan) skripsi, maka perlu ada tambahan-tambahan berikut:

  1. Install Linux-Apache-PHP-MySQL (LAMP) dengan tambahan modul PECL-HTTP:
    apt-get install ssh mysql-server-5.0 apache2 php5 libapache2-mod-php5
    /etc/init.d/apache2 restart
    apt-get install phpmyadmin
    apt-get install php5-dev php-pear libcurl4-gnutls-dev pecl_http
    pecl install pecl_http
    gedit /etc/php5/apache2/php.ini –> tambahkan extension=http.so pada akhir file
    /etc/init.d/apache2 restart
  2. Untuk lebih memudahkan editing, aku memindah web root folder dari /var/www ke home folderku. Caranya:
    cd /etc/apache2/sites-available/
    cp default [your_user_name]
    gedit joliet –> edit setting webmaster email address dan root folder sesuai keinginan
    a2ensite [your_user_name]
    /etc/init.d/apache2 restart
  3. Install SBCL dan tetek bengek lainnya: apt-get install sbcl cl-sql cl-sql-mysql cl-who cl-hunchentoot.

Oke dah, semua sudah siap digunakan. Sekarang, waktunya mengerjakan skripsi *hiks*…

SweetTitles

Malam ini bosan ngurusi kode PHP yang kalau dituruti nggak akan pernah ada sempurnanya. Selalu ada ruang untuk menyempurnakan. Iseng-iseng aku mengunjungi website milik kang Oggix, si juragan hosting dan domain. Setelah liat-liat sini dan situ, ternyata sekarang idWebHost punya blog. Wah, apa pula ini? Langsung meluncur ke TKP…

Setelah baca-baca ini dan itu, tidak sengaja aku menemukan ada tooltip yang asik tampilannya, pakai efek fade-in pula. Penasaran, aku Ctrl+U di Firefox, liat sana-sini mencari jejak javascript yang bertanggung jawab untuk efek itu. Setelah ketemu sumbernya, buka, dan ketahuanlah bahwa si empunya script adalah seorang Dustin Diaz, pegawai Google yang memang berkutat di bagian user interface.

Meluncur ke TKP!

Setelah sampai di sana, baca-baca blognya, ternyata nama scriptnya SweetTitle, dan sudah mengalami banyak perubahan. Meskipun sudah cukup “berumur” (debutnya tahun 2005), tapi masih cukup menarik. Tanpa pikir panjang, donwload dan baca-baca dokumentasi. Hmmm… sepertinya cukup mudah diimplementasikan. Memang akan perlu mengubah beberapa (puluh, atau malah ratus) baris kode di phpFormGenerator, tapi nggak ada salahnya to… Dengan catatan: kalau ada waktu lebih aja…

Kalau nggak salah tadi aku berniat mundur selangkah dari usaha penyempurnaan tiada henti, lha kok malah mau menyempurnakan lagi… Piye to iki??

Hunchentoot: standalone vs. mod_lisp

Tulisan ini meralat tulisanku di sini tentang mengapa tidak menggunakan mod_lisp untuk menghubungkan Hunchentoot dengan Apache. Setelah membaca-baca lagi spesifikasi dan cara penggunaan Hunchentoot, sekaligus baca-baca mailing list tbnl-devel, aku meralat alasanku dan menemukan alasan-alasan yang lebih kuat dan logis:

  1. Menggunakan mod_lisp tidak membuat Hunchentoot dan Apache harus dipasang pada mesin yang sama. Dengan memberikan setting yang tepat pada konfigurasi Apache (httpd.conf), kita bisa menggunakan mod_lisp untuk membuat Apache bekerja bersama dengan Hunchentoot yang dipasang pada mesin yang berbeda. Dengan demikian alasan tidak menggunakan mod_lisp untuk mengantisipasi Hunchentoot yang akan dipasang pada mesin yang berbeda dengan Apache tidak lagi relevan.
  2. Kemampuan Hunchentoot menggunakan mod_lisp sebagai perantara untuk bekerja bersama dengan Apache kemungkinan besar akan dihilangkan. Ini dilakukan untuk menyederhanakan code base Hunchentoot dan dengan demikian mempermudah proses debugging. Selain itu, Hunchentoot akan dikembangkan menjadi full-fledged, full-featured, standalone web server. Dengan demikian penggunaan mod_lisp menjadi tidak strategis.

The Security Hole Solution

Masalah:

Ketika user berada di tempat yang seharusnya tidak bisa diakses olehnya, aplikasi akan tetap tereksekusi.

Solusi:

Menggunakan konstruksi <if></if> di Fusebox XML. Jika sistem menunjukkan bahwa user berada di tempat yang seharusnya tidak boleh diakses olehnya, dapat dilakukan beberapa alternatif langkah, yaitu redireksi ke suatu fuseaction yang akan menghentikan eksekusi. Ketika fuseaction tersebut mendeteksi bahwa eksekusi aplikasi harus dihentikan, ia harus bisa menyimpan semua variabel vital yang ada (system, config, server, get, post, dan lain-lain), lalu menghentikan eksekusi dengan perintah die(). Untuk sementara ini user experience akan sangat terganggu.

signal processing programming

a week ago an old friend of mine contacted me. she wanted to know if i could help her on her thesis. she’s supposed to craft some kind of program to graph and analyze some digital signal processing technique. since i am not a C-course (signal systems and electronics) student and had no knowledge whatsoever about digital signal processing, i was immediately interested (what the…?!). so i invited her to come over to my place to talk a few things over.

she wanted to build the application on delphi, and i think she is just about as anxious to get the job done as i am. she bought a book on basic deplhi programming. unfortunately i have no experience about delphi. i couldn’t even get the main form to show up! so i talked her into visual basic 6.0. now this is a programming language i am very familiar with. well, at least i had completed several homeworks using this language.

so, on a saturday morning, after a full night without sleep in the internet cafe, i had my girlfriend pick me up. then, at home, i sat down with this old friend and we started exchanging ideas. i always wanted to do an application that includes graphing, and i think now’s my chance. she walked me through the equations and we worked out an algorithm. unfortunately, i lacked enough sensitivity to let her in on what i was typing on the visual basic IDE. well, at least the darn thing compiled OK, and we tested it a couple of times. she then copied the prototype and said “i’ll show this to my teachers and i’ll let you know what they have to say about it”. i think that means that if the teachers are okay with the prototype, she can go ahead and really start studying visual basic and develop a real application.

programming something scientific was something new to me, as i spent most of my time developing database-centric applications. as i was also a greenhorn in the world of desktop programming, this opportunity allows me to acquire new knowledge. the bottom line is, i think i’m not doing this for her, i’m doing it for myself.

today i finished the first – and very unreliable – class, containing calculations for the BPSK mode (whatever that is). i basically cut the calculation procedure from last week’s prototype and retrofitted it into a class. i wanted to finish the class – at least until it can validate its own data – but i had a job to go to.

i plan to put some other functionalities in the class, such as calculating PAPR, and other signal attributes. i also intend to build two more classes that will provide support for QPSK and nQAM modes.

let’s start!

linux vitual server

apa itu linux virtual server???
aku pun bertanya-tanya…
mari kita cari informasi:
http://www.linuxvirtualserver.org/
http://www.ultramonkey.org/
butuh niiii bwat kp!!!