Setelah melakukan update-pack 6 Manjaro kemarin, ada beberapa update yang cukup berarti bagi pengguna Manjaro edisi XFCE.

Salah satunya adalah shortcut pada xfce4-popup-whiskermenu. Pada versi sebelumnya ketika menekan tombol super, menu akan muncul ketika tombol baru ditekan (on press). Sedangkan pada versi baru, xfce4-popup-whiskermenu baru muncul ketika tombol terlepas dari tekanan jari (on release).

gedit

Beberapa aplikasi resmi mengimplementasikan GTK 3, ini terlihat dari tampilan title bar dan kotak dialognya, salah satunya adalah Gedit (3.12.1).

dialog box gtk3

Firefox versi 29 juga terpasang di Update Pack 6.

Untuk mengupdate Manjaro kali ini, kita tidak disarankan untuk menggunakan pamac karena ada satu package (saya lupa namanya) yang di downgrade, sehingga kita harus melakukan force downgrade menggunakan perintah pacman -Suu.

Pertanyaan ini pernah ditanyakan oleh teman yang selalu saya jawab dengan kata “nyaman”. Kata “nyaman” memiliki banyak arti bagi saya.

Hidup CLI (Shell)!

Saya hobi bermain dengan CLI (Command Line). Di Windows, CMD (Command Prompt) hanyalah sebatas tool kecil pelengkap sistem operasi besutan Bill Gates. CMD merupakan tool yang bisa dibilang seperti aplikasi yang tidak banyak berguna, walaupun kemudian muncul Power Shell, saya tidak begitu tertarik. Di sisi lain, ada pernyataan dari seseorang yang mengaku pernah berkontribusi di kernel Windows. Dia menyatakan bahwa beberapa orang kontributor kernel ingin mengimprovisasi CMD, tapi mereka tidak bisa/tidak diijinkan. Terlepas dari pengakuan itu, karena Windows awalnya memang dibangun dengan GUI, maka hampir semua perintah bisa dijalankan via GUI, tanpa CMD pun bisa.

shell

Berbeda dengan Linux, CLI sangat powerful. Bahkan ada pepatah yang mengatakan “there is a shell, there is a way”. Di Linux, anda paling tidak harus mengerti beberapa perintah, khususnya yang berhubungan dengan manajemen paket, seperti perintah pacman di Arch Linux dan turunannya, perintah apt-get di Debian dan turunannya, perintah emerge di Gentoo, dan lainnya.

Open Source

Saya sangat tertarik dengan hal-hal berbau open source. Linux adalah open source! Ketika memakai Windows, saya sudah malas duluan ketika ingin mencoba mengcompile sesuatu karena harus instal cygwin atau mingw. Itu cukup menyebalkan.

Package Manager

Instalasi aplikasi sangat mudah. Di Windows, ketika ingin menginstal sebuah aplikasi saya harus menuju situs penyedia aplikasi tersebut baik situs resmi atau situs mirror. Download kemudian instal. Berbeda dengan Linux, saya hanya perlu mengetikkan perintah satu baris menggunakan CLI untuk mendownload dan menginstal aplikasi. Misal, ketika ingin menginstal Firefox di Ubuntu saya hanya perlu menulis perintah apt-get install firefox atau ketika di Manjaro dengan perintah pacman -S firefox. Terkadang saya menggunakan pamac di samping pacman, atau mirip dengan synapticnya Ubuntu.

pamac

Package Managerlah tool yang digunakan di Linux untuk menginstal sesuatu seperti di atas.

Windows Membosankan

Mungkin karena sejak SD saya selalu menggunakan Windows, saya menjadi bosan. Selain itu, menggunakan sistem operasi ini serasa tidak menantang. Yah .. walaupun tantangan itu selalu datang dalam wujud malware.

Pergilah crack!

Menurut saya,

Windows mengajarkan kita untuk membajak. Mac mengajarkan kita untuk mengeluarkan biaya lebih. Linux mengajarkan kita untuk menggunakan open source.

Sebagai orang Indonesia yang tidak terbiasa membeli lisensi software, saya selalu menggunakan crack, serial number, keygen, dsb. Bagi saya, ini sangat menjengkelkan. Saya bisa menghabiskan waktu bermenit-menit, atau mungkin berjam-jam untuk mendapatkan crack yang valid. Waktu produktif saya pun hangus.

Konyolnya banyak orang menginstal anti-virus premium menggunakan crack. Terus, apa gunanya anti-virus?

Bukan gamer

Ya, saya bukan gamer. Saya tidak terlalu menggebu-nggebu main game. Tapi kalau untuk game-game tertentu, saya oke :3

steam-site.png

Toh, saya optimis. Para pengembang game dan distributornya lambat laun akan melirik Linux sebagai platformnya. Contohnya saja Steam, sebuah distributor game milik Valve, yang sudah mendukung Linux. Bahkan beberapa game pun juga sudah dikembangkan native untuk Linux, seperti DOTA dan game lain yang mampu dijalankan dengan Wine.

Kesimpulan

Saya bukan fanboy Linux, tapi saya cinta Linux. Pengguna Linux lain pun pasti punya alasan berbeda-beda kenapa pakai Linux.

Saya tidak anti Windows, karena saya menggunakan sistem operasi ini untuk bermain game :3

Jadi, kalau pakai Linux bisa, kenapa pakai Windows?

Sudah beberapa minggu lalu saya menggunakan Manjaro sebagai sistem operasi utama yang saya gunakan sehari-hari.

Tanggal 18 Mei kemarin, Phil Mueller baru saja meluncurkan update-pack 6 Manjaro. Update kali ini yang paling menonjol adalah untuk Gnome 3.12. Saya tidak terlalu tertarik dengan ini, wong saya pakai XFCE. Manjaro versi XFCE dan OpenBox sepertinya yang akan banyak menikmati update-an ini. Bagi yang menggunakan KDE, anda harus sedikit kecewa karena update ini tidak akan begitu memberikan arti. Namun, tenang saja KDE 4.13 sudah disiapkan oleh tim pengelola paket Manjaro.

Update yang cukup menonjol adalah Xorg-Stack to 1.15-series. Tapi sepertinya MSI CR41 saya tidak akan terpengaruh karena hanya menggunakan VGA onboard, Intel HD Graphics.

Mungkin besok ini saya baru akan bermain dengan pacman -Suu. Semoga santai ..

Setelah saya memutuskan mengganti shell (dari bash menjadi zshell), pesan berupa warning muncul ketika saya menjalankan perintah rvm pada shell.

Warning! PATH is not properly set up, '/home/ramdzi/.rvm/gems/ruby-2.1.0/bin' is not at first place, usually this is caused by shell initialization files - check them for ' PATH=...' entries, it might also help to re-add RVM to your dotfiles: 'rvm get stable --auto-dotfiles', to fix temporarily in this shell session run: 'rvm use ruby-2.1.0'

Padahal sebelumnya dengan bash pesan ini tidak muncul, hanya ketika setelah memakai zshell pesan ini kemudian muncul (walaupun saya jalankan lagi bash, pesan ini tetap muncul).

Saya sudah mencoba menggunakan perintah rvm get head --auto-dotfiles tetap tidak bisa. Saya tidak mencoba perintah rvm get stable --auto-dotfiles karena RVM saya sudah versi terbaru, ogah download-download lagi :v.

Ya sudah, saya coba pindahkan direktori /home/ramdzi/.rvm/gems/ruby-2.1.0/bin dari tengah ke awal pada variable PATH. Akhirnya pun sukses, cukup simple ternyata -_- .

PDO (PHP Data Objects) adalah interface untuk mengakses database yang sudah disediakan oleh PHP untuk menggantikan fitur mysql_. Seperti kita tahu, dari dahulu kita diajarkan untuk menggunakan fitur mysql_ dalam setiap bentuk koneksi database maupun melakukan operasi CRUD pada PHP, namun fitur ini sudah deprecated.

Fitur mysql_ yang saya sebutkan ini contohnya seperti fitur mysql_connect, mysql_query, dsb. Konyolnya masih banyak tutorial-tutorial di internet maupun maupun mata kuliah pemrograman web yang masih menggunakan cara jadul ini, cara yang sudah tidak direkomendasikan dalam melakukan interaksi dengan database pada PHP.

Selain PDO ada juga fitur mysqli, namun mengapa saya menuliskan PDO? Karena PDO bisa digunakan pada database apapun, berbeda dengan mysqli yang hanya bisa digunakan untuk database MySQL.

Untuk membuat koneksi awal dengan PDO pada database MySQL, sintak yang digunakan adalah

$pdo = new PDO("mysql:host=$nama_host;dbname=$nama_database",$username_database,$password_database);

Untuk mengeksekusi perintah SQL menggunakan prepared statement maka sintak yang saya gunakan:

$stmt = $pdo->prepare($sql);

Yang kemudian saya eksekusi dengan perintah execute.

$stmt->execute($parameter);

Maka sintak lengkap yang saya gunakan untuk mengambil data user yang memiliki ID=1 adalah seperti ini:

<?php
	try {
		$host = 'localhost';
		$db = 'user';
		$username = 'root';
		$password = '';
		$pdo = new PDO("mysql:host=$host;dbname=$db",$username,$password);

		$sql = 'SELECT * FROM user WHERE id = ?';
		$sth = $pdo->prepare($sql);
		$sth->execute(array(1));
		$hasil = $sth->fetchAll();
		foreach ($hasil as $h) {
			echo $h['username'];
		}
	} catch (PDOException $e) {
		echo $e->message;
	}
?>