Skip to main content

What i don't like about Mac OS X


Bagi pengguna "fanatik" Mac OSX mungkin judul post kali ini agak mengganggu, tapi ini pengalaman yang saya rasakan sebagai "pengguna baru".

Jadi 2 hari kemarin saya sudah mulai aktif kembali di kantor,
yang mana sebelumnya saya bekerja secara remote dikarenakan alasan kesehatan.
Namun ujian datang ketika saya ingin mulai aktif di kantor.
Pagi hari sebelum berangkat, laptop saya tidak bisa booting, yang ternyata penyebabnya adalah harddisk utama tidak terbaca oleh sistem, alhasil laptop yang sudah menemani saya selama hampir 4 tahun ini harus "dirumah sakitkan".
Saya kontak rekan kantor untuk mengabarkan bahwa saya harus ke service center terlebih dahulu sebelum "ngantor".

Di kantor tidak ada lagi komputer/laptop yang bisa saya gunakan, sehingga saya pun "terpaksa" memakai MacMini second hand yang dimiliki kantor.
Perjuangan dimulai dari sini, karena saya harus mensetup environment yang sama dengan yang saya gunakan di laptop.
Sebagai programmer yang terbiasa bekerja dengan workstation berbasis Ubuntu selama hampir 8 tahun, memang secara UI/UX Mac OS X sangat memukau, namun secara sistem saya sangat menyukai Ubuntu/Debian dengan package managernya.
Di Ubuntu untuk menginstall aplikasi yang saya butuhkan cukup dengan mengetik
apt-get install xxx
(done, aplikasi siap dipakai).
Sedangkan di Mac saya harus mencari installer manual.
Meskipun di Mac ada homebrew/brew untuk menghandle keperluan ini, tetap saja ada kesulitan bagi saya untuk mengatur konfigurasi dari aplikasi, mengecek apakah service sudah jalan atau belum (saya menginstall nginx (dibaca engine X, bukan ngings, hehe) dan php7).
Setelah "rambut saya keriting" dan utak-atik sana sini, duo combi ini masih belum bisa berjalan dengan baik. Padahal di Ubuntu, setelah apt-get install dan beberapa utak-utik, duo combi sudah bisa berjalan dengan baik.

Saya pun memutuskan untuk menggunakan Vagrant saja.
Vagrant adalah sistem yang menggunakan virtual host 
untuk memfasilitasi environtment development. 
Semua kebutuhan development (eg: server, database, etc *kecuali IDE) 
akan diinstall di virtual host ini, dan dihubungkan dengan komputer/laptop host. 
Dengan Vagrant setiap programmer bisa memiliki lingkungan kerja yang sama 
(memiliki spec yang sama dengan komputer production),
jadi tidak ada lagi penyataan, 
"Aplikasi sudah jalan di komputer saya" :D
InsyaAllah saya akan membahas Vagrant di post lain.

Selain packager manager, saya juga tidak menyukai window management dari Mac OSX, khususnya untuk "fullscreen window".
Setidaknya inilah yang saya rasakan sebagai pengguna baru Mac OSX selama 2 hari kemarin.
Bagi pengguna senior Mac OSX, tolong jangan bully saya, saya masih nyubi kakak :D

*Laptop saya sudah selesai diservice selama 2 hari, namun dengan penggantian harddisk baru (bye-bye 4 years of data T_T, mulai dari mp3, mkv, ebook halal dan ebook "haram" *baca: bajakan :D)

*Alhamdulillah saya sudah menyimpan project terbaru saya di harddisk ke-2 di laptop. FYI, saya memodif laptop dengan mengorbankan slot CD/DVD-ROM untuk dipasangi hdd ke-2 dengan menggunakan hdd caddy, yang mungkin akan saya bahas di post lain.

* Tampilan backcover laptop saya, tolong jangan perhatikan stikernya :D


Comments

  1. Berarti nanti IAK pakek Mac ya mas? :D

    ReplyDelete
    Replies
    1. Punya kantor, bukan punya saya.
      Lagipula itu mac mini, ga mungkin saya bawa monitor, keyboard, mouse kemana-mana :D

      Delete

Post a Comment

Popular posts from this blog

Java | Menambahkan Dialog Konfirmasi Sebelum Keluar dari Aplikasi

Kali ini saya ingin berbagi cara sederhana untuk menampilkan dialog konfirmasi sebelum keluar dari aplikasi. Dengan syarat aplikasi yang kita buat harus menggunakan JFrame sebagai frame utama. Langkah-langkah yang harus kita lakukan adalah sebagai berikut: 1. Ganti property default close operation dari JFrame menjadi DO_NOTHING_ON_CLOSE, value ini dimaksudkan agar ketika button close dari JFrame diklik tidak akan terjadi apa-apa. Sebaliknya jika valuenya adalah EXIT_ON_CLOSE, maka ketika button close dari JFrame diklik maka program akan tertutup. setDefaultCloseOperation(DO_NOTHING_ON_CLOSE); 2. Yang kedua adalah kita harus menambahkan WindowListener pada JFrame. Interface WindowListener memiliki beberapa method terkait event terhadap window (yakni JFrame), namun yang harus kita override hanyalah method windowClosing, method ini akan dipanggil ketika button close diklik.   Sebagai informasi, apabila kita menambahkan WindowListener secara langsung maka semua method dari i

PostgreSQL | Membuat Nomor Urut dengan Window Function ROW_NUMBER()

Pengguna Oracle Database mungkin sudah sangat familiar dengan clausa ROWNUM. Bagi yang belum tahu apa itu ROWNUM,  ROWNUM  adalah  pseudo column  (kolom bayangan) yang berisi nomor urut dari hasil eksekusi query. Sayangnya fitur ini belum tersedia pada PostgreSQL . Namun ada kabar gembira bagi kita pengguna  PostgreSQL , dimana sejak versi 8.4, PostgreSQL telah menyediakan 1 window function  yang mengakomodasi masalah ROWNUM, yakni ROW_NUMBER() . Sesuai dengan dokumentasi yang disediakan, cara menggunakan fungsi ini adalah dengan menggabungkannya dengan clausa OVER  yang didalamnya berisi clausa ORDER BY . Supaya lebih jelas dan lebih mudah dipahami, lebih baik langsung kita praktekkan saja. Saya membuat sebuah table dengan struktur sebagai berikut CREATE TABLE name ( code CHAR(1) ); yang kemudian saya isi kolom code dengan alfabet mulai dari a s/d z  dan angka 0 (nol). Sebelumnya kita lakukan query ke table name tanpa clausa ORDER BY : SELECT code FROM name; Outputny

PostgreSQL | Ekspresi Kondisional CASE Pada Query

Salah satu fitur yang saya sukai dari PostgreSQL adalah dapat digunakannya ekspresi kondisional pada query. PostgreSQL menyediakan ekpresi CASE yang memiliki fungsi yang sama dengan statemen IF/ELSE pada bahasa pemrograman. Berikut adalah bentuk dari ekspresi CASE pada PostgreSQL CASE WHEN condition THEN result      [WHEN ...]      [ELSE result] END Untuk melihat bagaimana cara menggunakan ekspresi CASE, saya memiliki sebuah tabel number dengan sebuah kolom nomor yang memuat data bertipe integer. SELECT nomor FROM number ORDER BY nomor;  nomor -------      1      3     32     37     38     97 (6 rows) Sekarang mari kita gunakan ekspresi CASE untuk menentukan apakah nomor tersebut merupakan bilangan ganjil atau genap. SELECT nomor, (CASE WHEN nomor % 2 = 0 THEN 'Bilangan Genap' ELSE 'Bilangan Ganjil' END) AS status FROM number ORDER BY nomor; dan hasilnya adalah sebagai berikut:  nomor |     status     -------+-----------------      1 | Bilangan