Manfaat Local History di IDE/Editor

local-history
Standar

Hohoo… Hari ini agak sedikit stress. Ceritanya saya buat private composer package untuk salah satu project. Setelah package itu di-pull dari repository dengan composer install, saya mengerjakan project seperti biasa. Tapi karena lagi agak malas, beberapa file di folder vendor saya edit langsung. Niat hati sih nanti di-push ke repo.

Ntah apa yang ada dipikiran saya saat itu. Setelah aplikasi berjalan sebagaimana mestinya, saya hapus folder vendor lalu saya lakukan composer update. Dan, seperti yang sudah diduga, file yang sudah di-edit menjadi seperti awal lagi :| Oh God, Why? Dan karena folder vendor ini termasuk folder yang masuk dalam list .gitignore, jadi tidak bisa di-restore dengan VCS (kecuali pernah pake git add --force, lalu commit).

Local History for Rescue

Setelah beberapa jam mencoba mengumpulkan kembali serpihan code sebelumnya dari otak, akhirnya saya ingat dengan local history. Biasanya saya menggunakan vim, tapi kebetulan saya menggunakan IDE dari JetBrains. Solusinya simple banget, cukup dengan right click di folder atau root project, lalu pilih Local History > Show History. Kita bisa mencari file-file berdasarkan perubahan yang pernah kita lakukan. Baik itu perubahan langsung dari IDE, maupun perubahan dari luar. Kita bisa memilih hanya file tertentu yang di-revert, suatu folder ataupun keseluruhan perubahan. Atau bisa juga dengan copy paste hanya pada bagian yang dibutuhkan.

Fiuhh… Thanks JetBrains :D

Berikut penampakan Local History

local-history

Vim

Bila anda juga pengguna vim, sebenernya ada fitur yang serupa. Setiap kali anda edit file akan dibuat file .swp. Sebaiknya dari awal sudah dikonfigurasi agar file backup ini dipisah dari working folder. Detailnya bisa pelajari disini http://vim.wikia.com/wiki/Remove_swap_and_backup_files_from_your_working_directory

Saya belum pernah coba, tapi sepertinya “plugin” ini layak untuk dicoba:
https://github.com/hjdivad/vimlocalhistory
https://github.com/serby/vim-historic

Sepertinya saya harus explore fitur vim yang ini. Btw, punya info vim plugin lain? :/

How to access database in Homestead

homestead-mysql-pgsql
Standar

Anda bingung bagaimana cara mengakses database yang ada di dalam Homestead? :/

Video yang didemonstrasikan di Laracasts menggunakan SequelPro. Bila saya menggunakan salah satu distro Linux atau Windows, apakah saya harus install aplikasi desktop seperti MySQL Workbench dengan ukuran file yang besar? :O Heeelp!!

Padahal saya hanya mengakses hal-hal yang sederhana. Terlalu berlebihan rasanya kalau harus install aplikasi semacam MySQL Workbench, HeidiSQL, Navicat, blabla…

Jangan takut jangan khawatir, berikut cara alternatif yang lebih hemat.

Command line

Ini cara paling mudah. Jika anda sudah install MySQL/PostgreSQL client berbasis CLI di host machine, cukup jalankan command tersebut dan ditambahkan port.

MySQL

mysql -u homestead -psecret -P 33060

PostgreSQL

PGPASSWORD=secret psql -U homestead -h localhost -p 54320

Web

Anda bisa menggunakan web server di host machine. Ntah itu Apache HTTPD, nginx, LiteSpeed, IIS, atau apapun yang bisa menjalankan PHP. Kalau belum terinstall web server, anda menggunakan PHP built-in server.

Anda bisa menggunakan database client apapun yang berbasis web. Misalnya PHPMyAdmin, Chive, MyWebSQL, atau apapun yang berbasis web. Dan tidak harus berbasis PHP. Tapi disini saya beri contoh menggunakan Adminer.

Letakkan file Adminer ditempat yang seharusnya. Misalnya di /var/www/adminer atau di ~/public_html/adminer. Tergantung konfigurasi web server anda.

Sebagai contoh, saya meletakkan di ~/webapp/adminer. Lalu saya jalankan PHP built-in server.

php -S localhost:8000 -t ~/webapp/adminer

Bila kita buka localhost:8000 dari browser, akan muncul Adminer.

Untuk MySQL tinggal masukkan saja:

Server: 127.0.0.1:33060
Username: homestead
Password: secret

Screen Shot 2014-10-21 at 18.57.58

Untuk mengakses PostgreSQL, jangan lupa ganti dengan PostgreSQL. Lalu isi dengan:

Server: 127.0.0.1:54320
Username: homestead
Password: secret

Screen Shot 2014-10-21 at 18.56.56

Akses dari Homestead

Buka file Homestead.yml. Tambahkan beberapa mapping

folders:
  - map: ~/webapp/adminer
    to: /home/vagrant/adminer

sites:
  - map: adminer.app
    to: /home/vagrant/adminer

Jangan lupa tambahkan sesuatu di /etc/hosts. Jika menggunakan Windows tambahkan sesuatu di %System32%\drivers\etc\hosts

Buka adminer.app:8000 dari browser.

MySQL/PostgreSQL
Server: [boleh dikosongkan karena default localhost]
Username: homestead
Password: secret

Yummy… cara ini sangat hemat dan dapat dengan mudah diakses di komputer lain. :p

Keyboard Tweak: Remap Escape to Caps Lock

IMG_3553
Standar
Jump to How to

Sebelumnya sudah disinggung sedikit di postingan sebelumnya Vim in my life. Kali ini dibahas lebih detail. Dan saya asumsikan menggunakan keyboard dengan standard layout, bukan seperti HHKB, TREK, ataupun Kinesis.

Jadi… Kenapa di-ganti? :|

Sebelum dijawab, saya tanya dulu. Seberapa sering anda menekan tombol Escape dan Caps Lock ? :/ Nah loo… Bisa jawab nggak?

Hmm… kalau saya sih sangat jarang memanfaatkan fungsi Caps Lock, dan lebih sering memanfaatkan fungsi Escape. Setau saya Caps Lock ini hanya untuk membuat huruf menjadi upper case, yang mana hal itu bisa digantikan dengan tombol Shift.

Dan juga, tombol Caps Lock ini lebih besar ukurannya dan lebih mudah dijangkau oleh jari daripada Escape.

So, karena dua asalan itulah saya pikir lebih baik juga tombol ini bertukar tempat. Atau, malahan fungsi Caps Lock dibuang aja ya? :/

Saya akan bahas caranya untuk Mac OS X, Linux dan Windows.

How to

 

Mac OS X #

Untuk OS X, gunakan Seil yang bisa di-download dari sini https://pqrs.org/osx/karabiner/seil.html.en

Klik “Change the caps lock key”

Screen Shot 2014-10-09 at 15.05.27

Baca instruksi warna orange.

Screen Shot 2014-10-09 at 15.15.41

Buka “System Preferences”, “Keyboard”, tekan tombol “Modifier Keys…” di kanan bawah.

Screen Shot 2014-10-09 at 15.06.47

Ganti “Caps Lock” menjadi No Action

Screen Shot 2014-10-09 at 15.07.08

Kembali lagi ke Seil. Ganti key code menjadi 53.

Screen Shot 2014-10-09 at 15.15.41

 

Linux #

Di Linux ada banyak cara. Tergantung pakai desktop environment-nya. Bisa dengan menggunakan dconf-editor atau gnome-tweak-tool. Tapi cara yang saya gunakan dengan menggunakan Xmodmap. Perlu diingat, cara ini hanya berjalan diatas XServer. Jadi tidak bisa digunakan di tty.

Xmodmap

Buat file baru ~/.Xmodmap (sebenernya nggak harus ini sih). Isi dengan

"keycode 9 = Caps_Lock NoSymbol Caps_Lock"
"keycode 66 = Escape NoSymbol Escape"

Lalu jalankan xmodmap

xmodmap ~/.Xmodmap

Tada… Caps Lock dan Escape sudah bergantian tempat.

Jangan lupa tambahkan ke startup. Bisa itu di startup session atau di file yang di-initialize saat anda login seperti ~/.bash_profile, ~/.zprofile, ~/.config/fish/config.fish.

 

Windows #

Gunakan AutoHotkey yang bisa di-download disini http://ahkscript.org/download/. Pilih aja yang installer kalau bingung.

Setelah instalasi selesai, jalankan AutoHotkey. Nanti akan muncul di system tray seperti ini.

10-10-2014 1-49-41 AM

Klik 2x, atau klik kanan open. Akan muncul seperti ini.

10-10-2014 1-50-09 AM

Klik File, pilih “Edit Script”

10-10-2014 1-50-44 AM

Buat script seperti ini

Capslock::Esc
Esc::Capslock
SetCapsLockState, off
Suspend On
Send, {ESC}
Suspend Off
return

Save, lalu Reload.

10-10-2014 1-51-33 AM

Sekarang, tombol Caps Lock dan Escape sudah berganti posisi.

Jika ingin setiap kali log in AutoHotkey ini jalan, cukup masukkan AutoHotkey ke startup folder.

10-10-2014 1-55-00 AM

That’s it… Mungkin diawalnya akan kesulitan. Biasa itu… sama seperti kali pertama naik sepeda atau berenang. Tapi setelah beberapa jam, atau mungkin hari, anda akan terbiasa dan merasakan nikmatnya :p

Hohohohooo :O

Trik Instalasi Vagrant Box

vagrant-cloud-laravel-homestead
Standar

Ntah kenapa setiap kali mau install homestead melalui vagrant box add laravel/homestead sangat lambat. Padahal ukuran file hanya berkisar 755 MiB (v0.2.0). Jadi solusinya paling mudah adalah download manual dari http://cabinet.laravel.com/homestead-0-2-0.box.

Setelah selesai download, add secara manual dengan

vagrant box add homestead-0-2-0.box

Tetapi dengan cara itu versi homestead akan dianggap versi 0. Kita tidak bisa menggunakan parameter --box-version kalau install box secara manual.

Screen Shot 2014-10-06 at 18.39.17

Bandingkan dengan Ubuntu box dibawahnya yang ada versinya. Jika versinya ini 0, akan kesulitan jika kita mau menggunakan beberapa versi Homestead. Bisa saja sih kita ubah namanya. Misalnya menjadi laravel/homestead-0-2-0 atau hanya homestead-0.2.0 tanpa nama vendor, dengan cara menambahkan parameter --name. Tapi… euuyyhh @,@

So, solusinya adalah install box dari Vagrant Cloud dengan cara

vagrant box add laravel/homestead

Tunggu kira-kira mulai proses download, lalu cancel dengan Ctrl+C.

Cek directory ~/.vagrant.d/tmp. Disitu ada file temporary baru box77efe8fc4223b8475e871defc7c83573aea72b50.

Copy file homestead-0-2-0.box ke ~/.vagrant.d/tmp/box77efe8fc4223b8475e871defc7c83573aea72b50.

Misalnya di sistem saya

cp ~/Downloads/homestead-0-2-0.box ~/.vagrant.d/tmp/box77efe8fc4223b8475e871defc7c83573aea72b50

Lalu lakukan lagi proses install box melalui Vagrant Cloud.

vagrant box add laravel/homestead

Tada…!! Langsung 100% :p

Screen Shot 2014-10-06 at 18.50.37

Dan sekarang, cek dengan

vagrant box list

Ngahahahaa… :v

Screen Shot 2014-10-06 at 19.03.52

Update 19 Desember 2014

Homestead v0.2.1 download disini http://cabinet.laravel.com/homestead-0-2-1.box (924 GiB).

Untuk pengguna Windows, lokasi temporary vagrant box ini ada di %UserProfile%\.vagrant.d\tmp. Apa itu %UserProfile%? :/ Anda harus mengenal Windows anda sendiri. Itu environment variable yang default ada di Windows. Itu sama dengan C:\Users\Username. Kalau bingung, silahkan lihat GIF dibawah :D

vagrant-box-tmp-location

How to Setup Dvorak-Qwerty Keyboard Layout on Mac OS X, Linux and Windows

dvorak-love-qwerty
Standar
If you don’t understand what I’m talking about, use this link Translate from Indonesian language to English.

 

Jump to How to

Anda tau Dvorak? :?

Hmm… Kalau belum tau, baca dulu Dvorak dari Wikipedia atau baca komiknya http://www.dvzine.org/zine/01-toc.html.

Oke, gimana caranya mengubah keyboard layout menjadi Dvorak?
Mudah! Cukup ganti aja. :|

Tapi bagaimana mau ganti jadi Dvorak-Qwerty?
Nggg… nganu… Btw, apa itu Dvorak-Qwerty? :/ :?:

Dvorak-Qwerty adalah keyboard layout yang menggunakan Dvorak. Tetapi saat menekan tombol tertentu seperti Shift, Ctrl, akan berubah menjadi Qwerty. Ini sangat-sangat membantu, karena kebanyakan orang sudah sangat familiar dengan shortcut-key di Qwerty.

Misalnya untuk undo, anda biasa menekan Ctrl+Z. Tetapi jika menggunakan Dvorak posisi huruf Z ini ada di /. Begitu pula dengan tombol lain seperti Ctrl+C, Ctrl+X, Ctrl+V, di dvorak anda menekan Ctrl+I, Ctrl+B, Ctrl+. Yikes :'(

Untuk itulah gunanya Dvorak-Qwerty. Tangan anda tetap dimanjakan dengan Dvorak, dan shortcut-key dari Qwerty.

Jadi gimana caranya? Berikut cara menggunakan Dvorak-Qwerty pada Mac OS X, Linux dan Windows.

# Mac OS X

Di Mac OS X, mengubah keyboard layout ke Dvorak-Qwerty sangat-sangat mudah. Cukup masuk ke System Preferences, Keyboard, Input Sources, tekan tombol + di kiri-bawah, cari Dvorak-Qwerty, Add. Done!

Detailnya bisa dilihat pada screenshot dibawah ini.

Mac OS X system preferences keyboard spotlight Mac OS X keyboard input source preferences Mac OS X add keyboard layout

# Linux

Di Linux anda bisa menggunakan https://code.google.com/p/dvorak-qwerty/

Caranya download dvorak-qwerty dari link di atas, atau pakai yang sudah saya fork di GitHub.

wget https://raw.githubusercontent.com/mul14/dvorak-qwerty/master/unix/xdq.c
gcc xdq.c -o xdq -std=gnu99 -O2 -lX11

Selanjutnya anda tinggal menjalankan file output xdq. Anda bisa coba melalui terminal, atau masukkan ke startup session.

# Windows

Di Windows XP, Vista, 7, 8, anda bisa menggunakan http://sourceforge.net/projects/dvorakqwerty. Saya belum pernah coba di Windows Server. Tapi seharusnya bisa karena link diatas itu dibuat dari MSKLC. Anda bisa mendapatkan informasi MSKLC disini http://msdn.microsoft.com/en-us/goglobal/bb964665.aspx.

Alternatif lain anda bisa menggunakan https://code.google.com/p/dvorak-qwerty/. Untuk yang ini saya belum coba di Windows.

Screenshot di Windows 8.1 Pro with Media Center

Dvorak-Qwerty on Windows 8.1 Pro with Media Center

Conclusie

Mengaktifkan Dvorak-Qwerty tidaklah sulit. Dengan menggunakan Dvorak, tangan dan jari-jemari anda akan sangat berterima kasih kepada anda karena telah dimanjakan. ^^’

Dengan latihan yang intensif, otot anda akan terbiasa (baca: muscle memory) dan meningkat produktifitas anda dalam mengetik, terutama coding. :o

Punya informasi lain mengenai Dvorak Qwerty? Langsung aja share di kolom komentar. ;)

Update
Barusan nemu ini http://msol.io/blog/tech/2014/03/26/dvorak-qwerty-on-mac-windows-and-linux/
Dan ternyata ada yang jualan keyboard khusus dvorak disini http://matias.ca/dvorak/ :/

Vim in my life ❤️

I Love VIM
Standar

I ❤️ vim!! Terutama dengan key binding-nya. Sangat-sangat nikmat. 😍

Berapa lama anda mengetik dengan menggunakan keyboard? Keyboard disini maksudnya keyboard laptop atau PC. Bukan swipe keyboard seperti di Android 😓. Saya hampir setiap hari mengetik. Ntah itu mengetik status, jawaban dan pertanyaan di forum, atau membuat code.

Dulu seringkali pergelangan tangan saya sakit karena harus pindah posisi tangan. Mungkin itu yang disebut gejala carpal tunnel syndrome karena melakukan gerakan tangan ringan dan berulang-ulang. Misalnya menggeser posisi tangan ke mouse supaya bisa meng-klik sesuatu. Menggeser tangan untuk menetak arrow key. Menekan tombol PageUp, PageDown, Home, End, Delete. Well, saat menekan tombol-tombol itu, saya harus mengangkat tangan, atau menekukkan tangan supaya bisa menekan tombol tsb. Tapi setelah mengenal vim dan membiasakan muscle memory saya dengan vim, saya dapat meminimalisir gerakan tangan yang tidak perlu.

Bahkan saya menggunakan vim key binding saat browsing. Dengan Chrome/Chromium saya menggunakan Vimium. Jika menggunakan Firefox, saya pakai Vimperator.

Di editor seperti Sublime Text, LightTable, Atom, JetBrains IDE, NetBeans, dll juga ada vim mode.

Juga saat menggunakan shell seperti bash dan zsh, saya menggunakan vim mode. Di bash, tambahkan ini di ~/.inputrc

set editing-mode vi

Di ZSH, cukup dengan menjalankan command bindkey -v

Saya bahkan mengganti tombol Esc menjadi Capslock 😊. Tentu pengguna vim paham karena seringkali harus menekan tombol Esc. Dan selama menggunakan komputer saya sangat-sangat jarang sekali menggunakan tombol Capslock. Untuk huruf besar dan kecil, cukup menggunakan Shift-key. Karena tombol Capslock ini besar, sangat mudah dijangkau dan berada di home row, saya ganti saja dengan Esc.

Untuk mengganti tombol Capslock menjadi Esc, di Mac OS X, saya menggunakan Seil. Di Linux, cukup menggunakan Xmodmap. Dan di Windows menggunakan AutoHotkey.

Sebenarnya ada dua hal lagi untuk memanjakan jari dan tangan anda, selain vim. Pertama adalah menggunakan keyboard yang bentuknya ergonomis. Dan yang kedua ini masih terus saya pelajari dari dulu dan belum lulus 😅. Apa itu? DVORAK keyboard layout!!

Agak berbeda memang saya belajar menggunakan vim dan dvorak. Saat menggunakan vim, saya efektif menggunakannya dalam 3 bulan. Sehingga muscle memory saya terlatih. Tapi pas belajar dvorak, nggak pernah bisa efektif lebih dari satu hari 😭. Hmm… mungkin nanti dibahas mengenai dvorak+vim.

Rencananya mau bikin video tutorial yang bahas vim. Tungguin aja 😜.