Monday, December 26, 2016

How To Make XFCE Looks Like Gnome Shell

Sekilas Anda akan melihat bahwa tampilan berikut mirip desain dari desktop environment Gnome Shell, padahal ini adalah dekstop environment XFCE.































Berikut adalah app yang saya tambahkan:
  1. xfce4-datetime-plugin, yang digunakan sebagai pengganti info clock di top panel.
  2. xfce4-whiskermenu-plugin, yang digunakan sebagai pengganti "Activities".
Kedua app tersebut saya dapatkan dari slackbuilds.org.

Adapun konfigurasi separator pada top panel adalah sebagai berikut:


 






















Dari pengalaman saya, bisa disimpulkan bahwa ada satu hal yang menjadi inti dari inovasi Gnome Shell, yaitu kegunaan tombol "Super" (atau tombol keyboard dengan lambang Windows) yang akan menampilkan semua menu. Ini adalah ide yang genuine dari Gnome Shell untuk tidak selalu bergantung kepada mouse. It's a cool thing.




Wednesday, December 21, 2016

From Hard Coding to App

Bagaimana sebuah app dibuat?

Aplikasi atau disingkat app, adalah sebuah aplikasi yang berjalan
dengan fungsi tertentu. App yang didesain berjalan di platform A tidak
bisa berjalan di platform B, demikian juga sebaliknya. Sebagai contoh,
app calculator yang didesain berjalan di OS android tidak dapat
dijalankan di OS iOS, demikian juga sebaliknya.

Berikut adalah tahapan sebuah app itu dibuat dari awal (di create from
scratch):

(1) Hard Coding

   Ini adalah proses menuliskan kode pada sebuah bahasa pemrograman
   tertentu, misalnya bahasa C. Yaitu berupa urutan instruksi yang
   membuat sebuah fungsi kalkulator dalam bahasa C. Hasil dari hard
   coding ini, disebut sebagai source code (kode sumber). Yaitu berupa
   plain text yang bisa dibaca oleh semua jenis platform (OS) apapun.

(2) Compile
   Proses kompilasi ini akan mengubah source code dari proses hard
   coding diatas ke dalam specifik platform (OS) tertentu. Misalnya
   dikompilasi ke dalam platform Linux. Hasil kompilasi ini adalah
   berupa app yang bisa diinstal di platform Linux saja.

(3) Instalasi
   Ini adalah tahapan terakhir dari hasil compile, yaitu file
   yang siap untuk diinstal pada platform yang sudah ditentukan.
 
Hasil instalasi inilah yang kita namakan dengan app, singkatan dari
application. Dan app inilah yang selama ini kita bergaul dengannya.

Sebagai contoh kasus, bila kita memiliki source code dalam bahasa C, maka kita bisa
melakukan kompilasi dan instalasi kesemua jenis platform yang kita inginkan.
Misal kita menulis hard codingnya dengan macOS (source-code.c) ,
kemudian kita kompilasi di Windows (source-code.exe).
Maka hasil kompilasi tersebut bisa diinstall dan dijalankan di OS Windows,
seperti yang kita inginkan.

Akan tetapi bila kita kompilasi ke Linux, maka hasilnya bisa
dijalankan di Linux.

Java

Ada konsep sederhana yang genius dari Java, yaitu ingin membuat satu
buah jenis kompilasi yang bisa berjalan disemua jenis OS. Maka
dibuatlah konsep virtual machine yang disebut Java Virtual Machine
(JVM). Virtual machine ini berarti kita menambah satu layer diatas platform
(atau OS) yang sudah ada.

Hasil kompilasi source code Java disebut Java Bytecode. Dan byte code
inilah yang dijalankan diatas JVM. Maka seolah-olah kita memiliki
mesin virtual diatas platform, yang berfungsi seperti platform itu
sendiri. Dan semua jenis java byte code tersebut bisa berjalan disemua
jenis OS yang mengimplementasikan JVM. JVM merupakan salah satu
bagian dari JRE (Java Runtime Environment), yaitu lingkungan
tempat Java byte code berjalan.

Maka konsep pemrograman Java ini kita kenal dengan istilah "Write
Once, Run Everywhere". Dan konsep ini terbukti banyak diadopsi oleh
kalangan korporat dalam bidang IT. Karena jenis OS apapun yang
diimplementasikan, bisa dikembangkan dengan menggunakan bahasa Java
tersebut.

Go Cross Compilation

Agak sedikit berbeda dengan Java, bahasa Go memperkenalkan cross
compilation dan menghilangkan konsep virtual machine seperti yang
diusung oleh teknologi Java diatas. Yaitu proses compilasinya langsung
ditentukan jenis platformnya, kemudian hasil kompilasinya bisa
langsung dijalankan ke platform yang dituju. Meskipun proses
kompilasinya dilakukan di platform yang lain.

Misal, source code Go dibuat dengan OS Linux, dan dikompilasi di
Linux, akan tetapi tujuannya adalah untuk OS macOS. Maka, hasil
kompilasinya bisa dijalankan di OS macOS saja. Dan tidak dapat
berjalan di OS Linux.

Ini adalah konsep yang lebih baik, karena dengan menghilangkan "java
virtual machine", maka unjuk kerja (performa) app dengan bahasa Go
dapat berjalan lebih cepat daripada byte code java yang berjalan diatas JVM.

Penggunaan Bahasa Pemrograman

Sebuah bahasa pemrograman diciptakan untuk memecahkan masalah
tertentu. Bahasa C memang diciptakan untuk membuat software system,
seperti OS. Maka C banyak digunakan dalam membuat kernel Linux, atau
OS Windows. Dan C++ menawarkan konsep pemrograman object, yang lalu
diadopsi juga dalam membuat OS Windows.

Sementara Java didesain agar bisa dijalankan di berbagai platform
dengan biaya pengembangan yang hemat. Jadi dengan satu kali biaya
pengembangan, kita bisa menjualnya ke berbagai jenis OS. Inilah
selling point dari Java.

Sementara Go didesain untuk menangani concurrency app. Yang
membutuhkan multithreading. Dan Go memang jagoan dalam hal ini.

Sedang python paling cocok untuk menangai komputasi dalam bidang sains. Dan komputasi ilmiah. Selain itu, Python juga digunakan Google dalam search engine mereka.

Demikian, sekilas pembahasan tentang app.

Monday, December 19, 2016

OPEN SUSE LEAP 42.2

Saya merasakan banyak improvement terjadi pada versi 42.2 kali ini, bila
dibanding dengan versi 42.1. Yang terlihat jelas sekali adalah masalah
performance, pada versi 42.2 ini terasa lancar dan lebih gegas daripada versi
42.1.

Selain itu, ada yang menarik, yaitu bahwa bila kita mengupdate paket dengan
perintah # zypper up, maka hanya aplikasi yang sudah terinstal saja yang akan diupdate. Sementara pada versi sebelumnya, maka semua paket bawaannya juga akan diinstal lagi, meski sudah kita hilangkan. Misalnya setelah fresh install, ada satu paket games yang saya hapus, begitu dilakukan update dengan # zypper up, maka games yang sudah kita hapus itu akan diinstal lagi. Hal itu sekarang tidak kita temukan. Ini adalah point penting dari inovasi versi 42.2 kali ini.

Hal lain yang membuat saya gembira adalah bahwa pada versi 42.2 ini, aplikasi
libre office-nya sudah bisa melakukan pencetakkan pada mode landscape dengan normal. Karena pada versi 13.2 saya tidak dapat melakukannya dengan proper. Selalu tercetak dengan orientasi potret.


Setting Tambahan

Ada setting tambahan yang menurut saya perlu dilakukan, yaitu log system yang selalu muncul sewaktu kita bekerja pada console. Hal ini bisa kita lakukan
dengan cara menambahkan kode berikut pada file /etc/sysctl.conf
kernel.printk = 3 4 1 3


Setelah itu, restart-lah komputer Anda. Maka semua log system yang selama ini mengganggu aktifitas Anda saat di console tidak akan ditampilkan, alias akan di hidden. Jadi sama dengan kondisi di Slackware.

 

Paket Tambahan

Untuk memutar mp3, diperlukan tambahan aplikasi gstreamer-fluendo-mp3,
sehingga mp3 bisa dijalankan pada aplikasi gnome-music. Simple is
beautiful. Adapun untuk equalizer-nya, kita bisa menggunakan paket
pulseaudio-equalizer. Jadi dua paket sudah mencukupi untuk memutar musik dari CD dan juga file yang berformat mp3. 


Gnome Extensions

Ada tiga gnome extensions yang saya suka, yaitu 
  1. Places status indicator
  2. Dash to dock.
  3. Coverflow Alt-Tab.
Pada versi Open SUSE Leap 42.2 kali ini menggunakan Gnome 3.20.4 
 

Simple Scan Yang Lebih Baik

Di Open SUSE versi 42.2 ini, rupanya sudah ada aplikasi simple-scan sebagai
bentuk inovasi untuk desktop Gnome, dan rupanya memberi kemudahan dalam hal setting dan penggunaan bagi end user. Asal software driver printer dan
scannernya kita install, maka kita bisa menggunakan aplikasi simple-scan ini
dengan mudah sekali. Akan tetapi untuk menggabungkan beberapa halaman pdf yang belum bisa dilakukan, kita memerlukan pdftk. 

 

Leap Atau Tumbleweed ?

Seolah ingin mengakomodasi semua masukan, maka Open SUSE sejak versi
42.1 membuat dua versi release, yaitu versi tumbleweed (rolling
release) selain stable release yang dikenal selama ini. Dan untuk
stable release diberi tambahan label "Leap".

Secara umum, distro Linux menganut 2 mahzab dalam menghasilkan distro, yaitu rolling release, alias selalu up to date. Dan mahzab yang kedua adalah stable release. Keduanya pernah saya coba, dan masing-masing memiliki kekurangan dan kelebihan.

Bila Anda lebih menyukai software yang cutting edge, maka disarankan untuk
menggunakan versi Tumbleweed. Akan tetapi kekurangannya adalah ketidak
stabilan sistem kadang-kadang masih kita temukan, sebagai akibat masih adanya bug pada versi software terbaru tersebut.

Akan tetapi bila Anda lebih menyukai kestabilan sistem secara keseluruhan,
maka pilihlah yang versi Leap. Karena ini lebih stabil daripada versi
Tumbleweed, meski kadang kita mesti berkutat dengan software yang agak sedikit lebih lama, akan tetapi dari sisi kestabilan sudah teruji. Adapun software
aplikasi yang akan diadopsi pada versi enterprise biasanya diambil dari versi
stable release ini. Karena sudah teruji kehandalan dan kestabilannya.

Saya lebih merekomendasikan versi Leap ketimbang Tumbleweed. Mengapa
demikian? Karena dari pengalaman saya, sewaktu menggunakan Tumbleweed,
bila kita akan berpindah dari console ke GUI, yang seharusnya hanya
bisa kita lakukan dengan Ctrl-Alt-F7, rupanya bisa juga dilakukan
dengan Ctrl-Alt-F2. Dan menurut saya itu adalah "bug" yang cukup
mengganggu aktifitas berkomputasi.


Konklusi

  • Kita akan merasakan menggunakan distro berkelas enterprise pada openSUSE Leap 42.2 ini.
  • Easy to use and easy to manage dengan adanya zypper dan YAST.

Tuesday, July 19, 2016

Go Programming Language

Ada hal yang menarik dari Go programming language, yaitu adanya fitur cross compilation. Yaitu kita bisa membuat executable file yang dihasilkan untuk dijalankan pada platform (OS) yang berbeda. 

Sebagai contoh kasus, kita melakukan pengembangan sebuah aplikasi di Linux. Setelah berhasil, maka bila kita ingin menjalankannya di Windows, maka yang perlu kita lakukan adalah sebagai berikut:

$ GOOS=windows go build hello.go

Maka output dari build ini adalah hello.exe dan bila kita cek, dengan perintah $ file hello.exe, maka akan muncul penjelasan sebagai berikut:

hello.exe: PE32+ executable (console) x86-64 (stripped to external PDB), for MS Windows
Hal ini menunjukkan bahwa file hello.exe tersebut runnable di Windows. Bila kita coba jalankan di Linux, akan muncul error message berikut:

 -bash: ./hello.exe: cannot execute binary file: Exec format error

Hal yang menarik lagi adalah bahwa untuk menjalankan file hello.exe tersebut, kita tidak perlu menginstal Go di Windows yang kita tuju. Tidak seperti Java yang mensyaratkan untuk menginstall Java Runtime Environment (JRE) pada Windows tujuan. 

Inilah cara yang cerdik dari para pengembang bahasa Go tersebut. It's a cool thing. 



Friday, July 15, 2016

Konfigurasi Keymap di Emacs

Konfigurasi utf-8 sudah berjalan dengan baik, di lingkungan GUI. Adapun di lingkungan text mode (console), diperlukan beberapa konfigurasi berikut:
 

a. Pastikan saat instalasi kita meng-enable utf-8 tersebut. Untuk memastikannya bisa kita lihat di /etc/lilo.conf berikut:
append=" vt.default_utf8=1"
 

b. Mengubah LANG=en_US dengan LANG=en_US.UTF-8, yaitu pada file /etc/profile.d/lang.sh. Yaitu dengan cara menambah komentar # pada baris:
#export LANG=en_US
dan hilangkan tanda komentar # pada dua baris berikut:
export LANG=C
export LANG=en_US.UTF-8
 

c. Tambahkan kode berikut pada /etc/rc.d/rc.local
loadkeys us.map.gz


Dengan demikian, maka semua key dan variasinya seperti M->, M-! pada lingkungan console bisa berfungsi dengan baik. Dan tampilan kode unicode, akan muncul huruf yang proper.

Slackware 14.2

Setelah cukup lama ditunggu sejak versi beta sampai dirilis resmi pada akhir Juni 2016, maka berakhir sudah waktu menunggu itu. Dan berikut adalah beberapa improvement yang ada pada versi 14.2 kali ini.

0. Instalasi
Hanya dua hal yang saya rasakan, yaitu improvement cfdisk saat melakukan partisi hard disk, yang lebih intuitif. Yang lain adalah adanya pertanyaan mau di reboot sekarang atau nanti, dimana pada versi sebelumnya, kita diminta untuk melakukannya dengan cara Ctrl-Alt-Del sendiri. Adapun semua proses instalasi tidak banyak perubahan dengan versi sebelumnya. Tetap menggunakan text mode.

1. Tidak Menggunakan systemd
Merupakan khabar baik, karena pada versi 14.2 ini, tidak diadopsi. Mengingat systemd menimbulkan kontroversi diantara para pengguna.

2. Emacs

Ada tambahan theme leuven yang ditambahkan. Menurut saya ini adalah theme light yang cool dan secara default sudah ditambahkan pada Emacs. Good improvement.

3. Fonts
Ada tambahan font yang memberi impresi OS Linux, yaitu Linux Libertine dan Linux Biolinum, yang ditambahkan secara default. Adapun tambahan webcore-fonts menurut saya tetap perlu ditambahkan agar tampilan font di aplikasi dokumen bisa konsisten dengan kolega yang mungkin masih menggunakan OS non-Linux, serta memperkaya font seperti Cambria, Calibri, Verdana pada aplikasi Libre Office.

Demikian.

Thursday, July 14, 2016

Paket Dependensi Okular di Slackware 14.2

Untuk Slackware 14.2 kali ini, yang menggunakan KDE Platform 4.14.21, berikut adalah daftar 15 paket dependensi aplikasi Okular pdf reader:
  1. kactivities
  2. kde-runtime
  3. kdelibs
  4. kdepimlibs
  5. libkdcraw
  6. libkexiv2
  7. libkipi
  8. libkomparediff2
  9. libksane
  10. libkscreen
  11. libmm-qt
  12. libnm-qt
  13. okular
  14. oxygen-gtk2
  15. oxygen-icons

Bila tidak terpenuhi paket dependency-nya maka yang muncul adalah error message:
"Unable to find the Okular component."

Demikian.

Thursday, May 12, 2016

Mengganti Wallpaper di Blackbox Window Manager

Secara default, blackbox window manager menawarkan styles: Blue, Gray, Green, Purple dan Red. Apabila kita bosan dengan wallpaper warna solid yang ditawarkan, maka berikut adalah cara bagaimana mengganti wallpaper color tersebut dengan gambar yang kita suka sebagai wallpapernya.

Perlu diketahui bahwa lokasi styles tersebut tersimpan pada direktori: /usr/share/blackbox/styles/

Langkah pertama adalah mencopy salah satu styles tersebut, sebagai contoh ketik:
# cp Purple Chelsea
Setelah itu, editlah file Chelsea tersebut:
# emacs Chelsea
Kemudian cari perintah berikut:
rootCoomand: bsetroot -solid rgb:77/aa/77
Gantilah menjadi:
rootCommand: bsetbg /home/purnomo/Pictures/danau.jpg
Lalu simpan perubahan tersebut.

Kemudian kita jalankan blackbox dengan perintah: $ startx. Maka akan muncullah wallpaper danau.jpg tersebut.

Demikian.