Friday, March 23, 2012

Bukan mencari jarum dalam tumpukan jerami.

Mencari solusi 1 dari 4,3e19 kemungkinan pada kubus 3x3 atau mencari 1 dari 1,9e160 yang merupakan bilangan lebih besar dari jumlah partikel elementer (quark, lepton,boson) di jagat raya yang mampu diamati http://en.wikipedia.org/wiki/Orders_of_magnitude_(numbers) untuk menyelesaikan kubus 7x7. Angka yang terlihat sulit atau hampir mustahil tetapi secara logis lebih mudah daripada mencari jarum dalam tumpukan jerami. Dalam tumpukan jerami tidak ada kaitan pasti antara jerami satu dengan yang lain. Antara jerami satu dengan yang hampir sulit dibedakan, apabila ada jarum di dalamnya akan dapat dibedakan dengan mudah bahkan oleh orang buta. Tetapi dalam mencarinya sepertinya sangat sulit karena kita tidak tahu letak jarum di dalam jerami.  Selama mencari kita tidak dapat mengetahui apakah kita semakin dekat atau semakin jauh dari jarum tanpa bantuan detektor. Atau menggunakan metode yang mirip dengan bruteforcing dengan mengambil jerami satu persatu sampai jarumnya ketemu. Menemukan solusi sebuah kubus juga bukan hal yang mudah tetapi sepertinya juga tidak sesulit menemukan 1 jarum di antara (4,3e19)-1 jerami yang kira2 cukup untuk menutupi lapangan sepak bola setinggi 1,5e8 m. Saat mengerjakan sebuah Kubus Rubik kita bisa menilai apakah kita semakin dekat atau semakin jauh dari solusi dengan melihat konfigurasi warna2nya. Semakin banyak sisi yang memiliki warna yang sama bisa disimpulkan kita semakin dekat dengan penyelesaian.

Live USB!!!

Membuat live USB adalah hal yang biasa. Pada umumnya live USB digunakan untuk melakukan instalasi Linux pada komputer yang tidak memiliki CD drive tapi berkemampuan boot dari USB. Dengan software pembuatan live usb tertentu seperti Startup Disk Creator pada Ubuntu dapat ditambahkan file persisten yang akan menyimpan konfigurasi yang kita lakukan pada live USB. Artinya kita dapat menggunakan live USB seperti seolah kita menginstal dalam komputer. Live USB jadi dapat menyimpan history, instalasi aplikasi, sinkronisasi dll.

Cara paling mudah untuk membuat live USB dengan menggunakan Startup Disk Creator dan mengaktifkan opsi membuat file persisten. Hanya saja file persisten ini hanya dapat diakses oleh Linux karena menggunakan filesystem ext2. Dengan berbekal flashdisk 4GB kita bisa menciptakan live USB yang ideal dengan sedikit agak rumit.  Yang dimaksud ideal adalah live USB dengan sistem penyimpanan shared folders untuk menghindari duplikasi, dapat diakses oleh sistem operasi lain dan oleh sistem operasi live usb itu sendiri.

Flashdisk umumnya diformat menggunakan filesystem FAT32 dalam satu partisi saja. Keuntungan konfigurasi ini adalah jaminan bahwa flashdisk dapat dibaca di sembarang OS. Proses penataan space semacam ini juga tidak rumit termasuk untuk pembuatan live USB dengan sisa space yang cukup banyak. Pembuatan live USB Ubuntu dengan file persisten 1,5GB memerlukan total sekitar 2,3GB. Sisa space dapat dipakai untuk menyimpan file2 yang lain. Kelemahan live USB semacam ini adalah penyimpanan yang terpisah antara sistem native live USB dan sisa space pada flashdisk. Perlu diketahui pada filesystem FAT32 tidak mendukung symlinking yaitu kita tidak dapat membuat link/shortcut untuk file atau folder pada filesystem FAT32 yang dapat ditempatkan di lokasi lain. Tanpa dukungan symlinking maka cloud folder (folder khusus untuk sinkronisasi file dengan cloud server seperti ubuntuone, dropbox dll.) harus disimpan di dalam file persisten yang tidak dapat diakses menggunakan Windows. Filesystem yang mendukung sysmlinking paling tidak Ext2 dan NTFS. Windows tidak dapat membaca filesystem Ext2 sehingga pilihan jatuh pada NTFS. Masalah berikutnya, file2 live USB hanya dapat dipasang pada system FAT32 sehingga perlu dibuat paling tidak 2 buah partisi. Yang satu berformat FAT32 dan satunya NTFS. Pada Linux flashdisk dengan lebih dari satu partisi bukanlah masalah sedangkan Windows hanya akan mengenali partisi pertama saja dan default Windows hanya bisa melakukan formatting FAT32 pada flashdisk.

Untungnya ada solusi dengan mengupgrade driver flashdisk USB menggunakan driver Microdrive dari Hitachi. Dengan mengupgrade driver maka kita dapat membaca dan membuat lebih dari satu partisi pada Windows termasuk melakukan formatting menggunakan NTFS. Hanya saja kelemahannya kita harus melakukan update driver di setiap Windows baru yang akan digunakan untuk membaca flashdisk kita. Driver microdrive yang saya gunakan dapat didownload di sini.
Untuk menggunakan driver tersebut kita perlu mengetahui nama device flashdisk kita pada registry key Windows (menggunakan regedit):
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\USBSTOR ; di bawahnya ada banyak device flashdisk yang pernah digunakan dan kita harus memilih yang merupakan nama device kita. Kebetulan punya saya Disk&Ven_hp&Prod_v228g&Rev_1100 dari HP. Selanjutnya kita buka file cfadisk.inf yang ada pada folder driver hasil download menggunakan text editor dan cari bagian [cfadisk_device] dan tambahkan di bawahnya
%Microdrive_devdesc% = cfadisk_install,IDE\Nama_device_anda
baris2 yang lain di bawah [cfadisk_device] sampai pada [cfadisk_addreg] dapat dihapus. Simpan file dan anda dapat mulai mengupgrade driver USB anda dari Device Manager Windows dan melakukan restart Windows. Setelah itu kita dapat memformat partisi kedua menggunakan filesystem NTFS.

Pada saat kita booting menggunakan live USB buatan kita, sesuai default, komponen2 di dalam Home tersimpan dalam file persisten. Kita dapat memulai dengan memindahkan folder2 non-hidden (folder yang hidden biasanya untuk konfigurasi dan lebih baik kita biarkan saja) ke partisi NTFS yang juga sudah kita buat dan membuatkan symlinknya. Symlink2 ini yang kita pindahkan lagi ke folder home kita dengan sedikit rename maka kita dapat mengakses folder2 Documents, Downloads, Music, Ubuntu One, dll melalui symlink2 tersebut sehingga tidak menghabiskan tempat di file persisten. Space pada file persisten dapat digunakan untuk konfigurasi dan instalasi aplikasi yang kita perlukan. Dan lagi kita dapat mengakses folder2 kita melalui OS lain di luar sistem live USB karena berada pada partisi tersendiri. Hanya saja sampai saat ini untuk menggunakan live USB maka partisi harus di-mount secara manual walaupun proses mounting ini sangat mudah dengan mengklik saja.

Dalam 4GB dapat diisi dengan :
- LiveUSB Ubuntu standar dengan LibreOffice
- Boot Repair
- Planner
- XMind
- R
- RStudio
- Quantum GIS
- Java-6-JRE
ditambah sisa space 1GB dan swap 500KB.

Tuesday, March 13, 2012

Pengalaman seting Ubuntu 11.10 untuk presentasi

Ada kebiasaan saya yang ujung2nya sepertinya menyusahkan diri sendiri pada saat Ubuntu digunakan untuk presentasi. Pada setingan awal Ubuntu menyediakan 4 virtual workspace untuk menghindari desktop dan launcher menjadi penuh oleh window yang kita buka. Kebiasaan saya adalah menghilangkan 3 workspace yang lain dan menyisakan hanya satu untuk beraktivitas dengan alasan menghemat sumberdaya. Ternyata workspace extra tersebut diperlukan untuk tampilan multi monitor atau menggunakan LCD projector. Masalah yang saya temui saat hanya menggunakan 1 workspace muncul karena resolusi layar laptop dan projector berbeda. Satu2nya resolusi yang bisa ditampilkan oleh dua display tersebut adalah 640x480 yang terlihat sangat kasar. Kemudian saya mencoba untuk mengembalikan ke seting awal dengan perintah unity --reset maka jumlah workspace kembali menjadi 4. Karena 4 workspace masih terasa membuang2 resource jumlahnya saya kurangi tetapi sekarang saya sisakan dua. Hasilnya di luar dugaan pada saat dihubungkan dengan projector, ternyata masing2 workspace ditampilkan pada display yang berbeda. Dengan demikian masing2 dapat diset menggunakan resolusi yang berbeda sehingga dapat tampil maksimal. Apabila hendak memindahkan window dari tampilan laptop ke projector atau sebaliknya tinggal drag ke workspace yang bersangkutan.
Virtual Workspace yang ternyata berguna bagi multiple display

Apabila umumnya untuk mengaktifkan fungsi dual display menggunakan Fn+F (sesuai jenis laptop), maka pada Ubuntu perlu juga melihat status display dengan cara membuka jendela Display Settings. Untuk mengaktifkan secondary display maka statusnya harus diubah dari OFF ke ON. Waktu masih menggunakan single workspace maka perlu dicentang Mirror Display yang akan menyamakan resolusi kedua display yang hasilnya ternyata kurang optimal. Dengan dua workspace maka masing2 display dapat menggunakan resolusi yang optimal.
Contoh Display Settings

Untuk program presentasi, di sini saya menggunakan Libreoffice Impress, pada menu Slideshow>Slideshow Settings.... bagian opsi Multiple Displays perlu ditentukan presentasi akan ditampilkan pada display yang mana. Apabila sedang beruntung dengan instalasi Libreoffice yang baik, dengan menginstall presenter-console maka kita akan mendapatkan panel khusus. Panel ini akan memungkinkan kita melakukan navigasi, mengetahui durasi slide dan melihat notes yang mungkin menyertai slide kita. Presenter console ini tidak akan ditampilkan pada projector, hanya si presenter yang melihat.
Contoh presenter console

Thursday, March 8, 2012

Kembali ke fitrah distro

Pengguna yang lapar fitur biasanya akan menambahkan banyak sekali PPA (Personal Packages Archive) untuk mendapatkan build yang lebih baru untuk rilis Ubuntunya. Hasilnya bisa jadi luar biasa kerena rilisnya menjadi sangat kaya fitur dan beberapa bug menjadi hilang. Selain hal2 yang menyenangkan tersebut adakalanya build satu dengan yang lain tidak cocok sehingga yang terjadi adalah sistem kita menjadi tidak stabil. Beberap PPA yang sangat radikal dalam mengubah sistem berdasarkan pengalaman sendiri adalah:

- Ubuntu proposed repository yang tersedia di Software Source bawaan Ubuntu
- Gnome-Shell Testing PPA : Rico Tzschichholz : ppa:ricotz/testing, yang berisikan build berdasarkan kode2 terbaru untuk gnome shell.
- GNOME3 : “GNOME3 Team” team : ppa:gnome3-team/gnome3, yang dipasang sebagai komplemen dari PPA ricotz.

Pengalaman dari Ubuntu 11.10 penggunaan repositori di atas menyebabkan tidak berfungsinya global menu. Ubuntu 12.04 versi pengembangan (belum resmi) sudah terinstal dan banyak sekali perbaikan yang dilakukan yang menjadikan saya optimis 12.04 akan menjadi versi yang bagus dan awet. Sebenarnya proses migrasi sudah komplit hanya saja beberapa software penting belum terdapat updatenya sehingga masih harus menggunakan versi 11.10. Saya putuskan untuk membersihkan 11.10 dari PPA yang menurut saya kurang stabil dan mengembalikan 11.10 ke kondisi stabil. Ternyata proses bersih2 PPA bukan pekerjaan yang mudah (paling tidak, tidak semudah menambahkannya). Terlebih dahulu harus dipahami interdependensi antar PPA seperti contoh gimp 2.7 versi Matthaeus123 yang memerlukan PPA dari ricotz dan gnome3-team.

Program yang digunakan adalah ppa-purge yang tersedia dari repositori resmi. Untuk membuang PPA perlu diperhatikan urutannya. Yang pertama perlu dibuang adalah PPA yang tidak memiliki dependant, seperti contoh di atas adalah PPA gimp :

sudo ppa-purge ppa:matthaeus123/mrw-gimp-svn #(nama PPA didapat dari situs Launchpad PPA yang bersangkutan)

yang akan membuang instalasi gimp dari PPA tersebut dan menggantikan dengan versi terbaru yang ada di repositori kita. Apabila kita tidak memiliki PPA gimp yang lain maka gimp akan diambilkan dari main server Ubuntu. Berturut2 kita membuang PPA yang lain sampai tersisa adalah repositori utama bawaan Ubuntu.

Membuang PPA pihak ketiga masih tergolong lugas. Yang agak tricky adalah membuang repositori proposed bawaan Ubuntu. Walaupun repositori ini bawaan Ubuntu sendiri tetapi adakalanya malah menyebabkan sistem tidak stabil karena repositori ini ditujukan untuk tester. Proses untuk membuangnya dinamakan repository pinning yang umum dilakukan pada distro turunan Debian.
Pertama perlu dibuat sebuah file /etc/apt/preferences yang isinya (contoh untuk Ubuntu 11.10) :

Package: *
Pin: release a=oneiric
Pin-Priority: 1001


Package: *
Pin: release a=oneiric-updates
Pin-Priority: 1001


Package: *
Pin: release a=oneiric-proposed
Pin-Priority: -10

script di atas akan menandai paket2 di bawah oneiric-proposed akan diupgrade (yang kenyataannya adalah malah didowngrade) ke oneiric atau oneiric-updates. Setelah itu prosesnya seperti biasa sudo apt-get update dan upgrade. Ada baiknya mengecek dulu efek upgrade dengan mensimulasikan menggunakan perintah sudo apt-get -s upgrade. Apabila sudah terlihat benar maka proses upgrade dapat dilakukan, tidak menutup kemungkin diperlukan proses dist-upgrade. Setelah proses upgrade(downgrade) selesai maka kita bisa menghapus file /etc/apt/preferences dan menghilangkan centang repositori proposed dari software source. Berikutnya kita mengecek apakah seluruh paket sudah kembali menggunakan repositori bawaan Ubuntu dengan apt-get update.

Beberapa paket ada yang membandel dan tetap bercokol dan biasanya membawa masalah pada stabilitas sistem. Paket2 tersebut dapat dilihat apabila kita melihat instalasi paket berdasarkan Origin pada synaptic package manager. Paket2 yang tidak memiliki repositori akan masuk kategori Local. Di sini terpaksa kita harus mengecek versi setiap paket satu persatu. Untuk melihat versi yang tersedia nama paket kita klik kanan dan pilih properties lalu pada jendela ada tab Version yang menunjukkan versi2 yang tersedia dari repositori kita. Versi yang terinstall ditandai dengan (now) sedangkan versi yang paling lama berada paling bawah. Kesulitannya adalah kita tidak dapat begitu saja menggunakan perintah Force Version atau reinstall pada synaptic untuk melakukan downgrading. Synaptic akan mengasumsikan kita melakukan uninstall dan akan ikut melakukan uninstall paket2 yang merupakan dependant dan bisa jadi hasilnya adalah malapetaka karena kernel bisa terikut diuninstall.
Langkah yang bisa ditempuh dengan mendownload paket2 yang akan digunakan untuk downgrading secara manual dari http://packages.ubuntu.com/. Paket2 yang diperlukan dikumpulkan dalam satu folder khusus.  Kemudian kita install bersamaan dengan perintah sudo dpkg -i *.deb. Paket2 ini akan menimpa paket2 yang terinstall di Ubuntu kita. Setelah proses ini kita mungkin perlu memeriksa apakah ada dependensi yang rusak sehingga perlu dilakukan perintah sudo apt-get -f install dan memenuhi dependensi antar paket yang prosesnya relatif lebih sederhana.

Seandainya masih ingin meyakinkan bahwa program2 telah terinstall semua dapat menggunakan perintah (dari http://gourgi.wordpress.com/2009/09/27/re-install-ubuntu-desktop-metapackage-and-reinstall-its-dependencies/):


sudo apt-cache depends ubuntu-desktop | awk -F ":" '{print $2}' | \
sed '/^$/d' | xargs sudo apt-get \
install --reinstall --install-recommends --yes


Akhir dari proses ini adalah instalasi Ubuntu kembali ke kondisi seperti instalasi awal tanpa perlu melakukan instal ulang termasuk seting akun dari awal.