Install WordPress di Docker

Ceritanya kemarin daftar Free Trial Google Cloud Platform, dan hari ini nyoba-nyoba sesuatu, salah satunya cara install WordPress di atas Docker, gampang banget ternyata… Langkah pertama, jalankan container mariadb, ganti “rahasia” dengan password yang diinginkan Kemudian jalankan container wordpressnya Akses ke http://ipaddress_vminstance

Dukungan Video MP4/H.264 di openSUSE Leap 15.0

openSUSE Asia Summit 2015

Setelah memasang Leap 15.0 di x260, ternyata saya tidak bisa memainkan gif ataupun video dari Facebook. Peramban yang saya gunakan adalah Firefox 60.0.1. Di lain sisi, memutar youtube tidak ada masalah. Dari hasil pengecekan https://www.youtube.com/html5 didapat bahwa format MP4/H.264 belum didukung oleh sistem operasi dan peramban.

Membaca wiki openSUSE ditautan https://en.opensuse.org/SDB:Firefox_MP4/H.264_Video_Support, masalah ini dapat diatasi dengan:

  1. Pasang repo packman,
  2. Pasang libav, sekalian memasang VLC
    $ sudo zypper in vlc libavcodec56 libavcodec57 libavformat56 libavformat57 libavdevice56 libavdevice57
    
  3. Restart firefox, dan test kembali dukungan video di https://www.youtube.com/html5

Selesai. Horeee.

Estu~

GPD Pocket with openSUSE Tumbleweed

I’ve been curious and interested with GPD Pocket since last year, when first time it announced (https://www.indiegogo.com/projects/gpd-pocket-7-0-umpc-laptop-ubuntu-or-win-10-os#/).

I bought this tiny machine 3 weeks ago on aliexpress. Shipping take only a day, but custom clearance takes almost two weeks.

First impression about this laptop was cute and good built quality.

Tiny

Installing It with Linux

This machine preinstalled with Windows 10, I think it’s original but who cares. I need running linux on it.

I try Leap 15 for first time. Screen rotated -1 and wifi not working. Then I tried Ubuntu 18.04 and similar thing happen. I use iso from gpd site, Ubuntu 16.04 that already customized for GPD Pocket but not working (stuck at boot).

Ubuntu 16.04

I read some documentation at https://github.com/stockmind/gpd-pocket-ubuntu-respin to rebuild Ubuntu 18.04 iso, but not working enough. So I use another methode, installing it then use update.sh to reconfigure all. It’s working. But I’m not satisfied in it. I wanna Tumbleweed on this machine.

I download openSUSE-Tumbleweed-DVD-x86_64-Snapshot20180520-Media.iso and dd-ing it to usb flashdisk then install. Of course when installing process, my screen was rotated -1. I choose GNOME Desktop. But after reboot, GNOME works fine except:

  1. wifi not working
  2. no battery applet, and system not recognize battery

Patch

Kukuh Syafaat, President of openSUSE-ID told me that Richard Brown (@sysrich) use GPD Pocket. So I ask Richard on twitter and he gave me clue in https://github.com/sysrich/salt-states/blob/master/opensuse/laptop.sls.

I use few lines from laptop.sls and it’s working well. I translated that salt script into plain bash script at https://github.com/princeofgiri/gpd-pocket-patch.

After reboot, Tumbleweed still not detecting the battery.

Use Another Kernel

I remember that Leap 15 can recognize the battery. So I download the kernel and installing it. Yes it’s work, but there’s new problem, when in charging mode, battery applet seems not know if that time is in charging mode.

So I decide to compile kernel by my self. Got the source from https://github.com/jwrdegoede/linux-sunxi.git and the result was cool. It’s works.

Let’s Work

Notes

  • I write this post using GPD Pocket
  • I will write kernel compilation in another post
  • Plymouth still rotated -1
Plymouth

Menjadi BlankOn

Hai, saya Estu.

Kali ini sedang mencoba menjadi manager rilis BlankOn XI dengan nama kode Uluwatu. Rilis kali ini pengerjaan dimulai 8 Feb 2017.

Apa yang terjadi dalam kurun waktu menuju Uluwatu?

Setelah rilis BlankOn X Tambora, hampir semua koordinator tim mengundurkan diri, tak luput beberapa pengembang veteran pun ikut gantung papan ketik.

Saya sendiri mungkin hanya sebagian pengembang lawas yang masih ikut. Mari bikin tim baru. Kenyataan pertama yang dari dulu sudah menjadi momok adalah baru sadar bahwa tidak ada dokumentasi yang memadai pada Infrastruktur dan aplikasi utama. Kedua hal itu biasanya merupakan tugas turunan untuk menjadi pawang mesin dan pawang aplikasi tanpa tau bagaimana kedua hal itu dibangun. Momok itu baru sadar ketika beberapa service tidak berjalan baik.

Selama perjalanan menjahit Uluwatu, ada beberapa kejadian yang menjadi catatan saya.

Milestone:

  1. Perawatan Mesin BlankOn
    • Waljinah, penambahan hardisk | Maret 2017
    • Perawatan Rani, penambahan hardiks | Maret 2017
    • Perawatan Alynne, penambahan CPU dan RAM | April 2017
  2. Laporan kerusakan pada lumbung Tambora | April 2017
    • Backup service, Alynne install ulang
  3. Rekontruksi Pabrik CD, Pabrik Paket (IRGSH), dan Pabrik Repo | Maret – Juni 2017
    • Inisiasi ananda | mesin baru di Digital Ocean untuk riset rekontruksi
  4. Alynne gagal hidup dan bekerja akibat MotherBoard yg rusak | Desember 2017
  5. Penyalahgunaan Maskot Boni untuk komersial

Pada rilis Uluwatu ini, tidak banyak yang berubah dari segi isi dan fitur. Beberapa hanya menaikan versi aplikasi. Namun beberapa kerjaan selesai yang saya anggap sebuah pencapaian dalam rilis kali ini ada banyak, diantaranya:

  1. Dokumentasi bagaimana membangun layanan BlankOn.
    Rilis kali ini saya ikut membidani rekontruksi infra BlankOn akibat beberapa catatan kejadian diatas.

    • Dokumentasi Pabrik Repo menggunakan reprepro
    • Dokumentasi Pabrik CC, service yg menjahit ISO BlankOn
    • Dokumentasi Pabrik Paket (irgsh server dan irgsh worker)
    • Isu-isu yang sering muncul di layanan dan bagaimana menangani
  2. Pemindahan Repository dari dev.boi yg menggunakan bzr ke github dengan scm git.
  3. Pemindahan Wiki oleh tim Dokumentasi dari Trac di dev.bo ke github pages.
    • Tim Dokumentasi kali ini memberikan lompatan yg besar. Karena mayoritas anggota bukan dari latar belakang IT, setelah bergabung. Belajar bagaimana menulis dokumentasi dalam format Markdown dan menggungahnya ke github melalui baris-baris perintah git.
  4. Perilisan Kode Etik berkomunikasi
  5. Pendaftaran Sponsor dan Mitra dirilis
  6. Kegiatan Translasi GCompris edisi Bahasa Indonesia
  7. Kegiatan Pameran di Habibie Festival dan Libroffice Conference Indonesia

Beberapa catatan lain.

9 Februari 2018, kami kehilangan kawan, sahabat, jiwa muda di tim pengembang BlankOn.
Muhammad Rafi, koordinator Humas, berpulang setelah seminggu dirawat pasca kecelakaan.
Sebuah kehilangan yang sangat besar bagi kami. Semoga dilapangkan jalannya, Amin.

Diawal bulan Mei ini, setelah melalui perjalanan panjang, pasang surut. Tim Pengembang sepakat.
“Merilis BlankOn XI Uluwatu”

Selamat rilis kawan, tetap semangat menuju kemandirian perangkat lunak bersumber terbuka.
Mohon maaf belum dapat menjadi manager rilis yang baik.

Tabik
Estu – tuanpembual

GNOME yang Jelek atau Akhlak Kalian yang Buruk?

GNOME 3.28 beberapa waktu lalu baru rilis, cukup memancing banyak komentar. Tanggal 26 April kemarin, Ubuntu 18.04 meluncur dengan menyertakan GNOME 3.28 sebagai Desktop Environment baku. Unity sudah tidak dipergunakan lagi, mungkin tim Ubuntu sudah lelah.

Berawal dari move on-nya si Ubuntu, banyak penggemarnya kecewa, dan merasa GNOME itu jelek, tanpa bisa menunjukkan kejelekannya. Mari kita mundur beberapa waktu lalu.

 

Awal muncul GNOME 3, saya termasuk orang yang tidak suka, antar mukanya aneh. Lebih nyaman dan sederhana GNOME 2. Saya yang saat itu masuk di tim pengembang BlankOn, bersama rekan-rekan membedah kejelekannya sehingga muncullah bibit-bibit pemberontakan dengan dimulainya BlankOn Panel yang berujung pada Manokwari.

Manokwari sendiri perlu dibuat karena kedepannya, semua pustaka GNOME 2 akan ditinggalkan dan beralih ke GNOME 3. Tapi saya dan teman-teman tidak siap untuk sepenuhnya menggunakan GNOME 3 karena beberapa kejelekannya.

2014, saat GNOME Asia di Beijing, saya ngomong sendiri bahwa GNOME jelek ke pimpinan desainer UI/UX, Allan Day, dan berujunglah diskusi panjang. Saya pasti kalah sama mereka dalam hal penjelasan, saya cupunya minta ampun. Tapi saya menang dengan menceritakan bahwa GNOME 3 membutuhkan sumber daya komputer cukup besar (misal RAM 1 GB) di mana masyarakat Indonesia tidak banyak yang bisa memenuhinya. Sedangkan Manokwari, bisa bekerja (waktu itu) pada RAM 256 MB. Toh Manokwari masih menggunakan pustaka GNOME.

Sekitar 2011, Ubuntu merilis Unity, banyak yang komplain dan gak nyaman. Pindah ke KDE juga takut gengsinya turun lantara KDE di masa itu (sampai masa kini sih) mirip MS Windows dan banyak kutu (sekarang udah jauh mendingan).

Kita terbiasa ngedumel dan menjelek-jelekkan tanpa bisa menunjukkan apa yang bisa dilakukan untuk memperbagus hal tersebut. Mental kita lebih banyak sebagai pencela dari pada penebar “Rahmatan Lil Alamin”.

Saya dulu, mantab pindah ke GNOME 3.x saat memiliki layar dengan resolusi di atas FHD (3K) dan layar sentuh. Banyak perabotan GNOME bisa berfungsi dengan baik, seperti:

  • di Yoga 3 Pro, di layar ada logo jendela, saat disentuh, akan bisa menampilkan Activities. Pada DE lain tidak bisa
  • di layar sentuh, on screen keyboard sangat mudah tampil saat kita merasa memerlukannya (atau pada tablet mode). Tentunya hal ini tidak terjadi jika komputer kalian masih konvensional.

Jadi, sebelum mencela GNOME, lebih baik kopdar, ngopi-ngopi dulu dengan teman-teman komunitas GNOME. Saya traktir!

Catatan: saya belum nemu orang komplain dengan DE-nya Endless OS. Kalau komplain terkait tidak bisa booting dan sampai mencela saya tidak beretika sih ada.

Buku Inkscape Versi Cetak Tidak Tersedia

Sejak penulis meluncurkan Buku Inkscape versi Digital secara Gratis, hingga hari ini penulis masih menerima banyak pesan, baik lewat Surel, Japri, maupun SMS/WA, yang isinya kurang lebih menanyakan harga buku tersebut versi cetaknya.

Ini yang menurut agak aneh, dulu waktu masih dijual tidak pada mau pesan atau beli, eh begitu diberikan secara gratis malah pada mau beli, terus selama dua tahun ini pada ngapain?
Ada sih beberapa orang ingin membeli buku dengan alasan sebagai bentuk penghargaan kepada penulis buku tsb agar semangat menulis buku lagi.

Untuk memberi penghargaan kan tidak hanya berupa uang saja kalau ada yang mau kasih juga mau sih atau membeli buku tersebut, sudah mau membaca dan menyebarkan buku tersebut dalam versi digital juga suatu bentuk penghargaan kok


Maka melalui postingan ini, penulis umumkan bahwa; "mulai hari ini Buku Desain Grafis dengan Inkscape versi cetak sudah tidak dijual lagi".


Sebenarnaya masih ada sisa beberapa eksemplar buku, tapi penulis sudah berniat tidak untuk menjualnya, namun akan dibagikan secara gratis pada event atau acara-acara yang berhubungan dengan Open Source.

Demikian Pengumuman mengenai Buku Desain Grafis dengan Inkscape yang saya tulis
Terima kasih

Buku LibreOffice Gratis

Seperti sudah kita ketahui bersama, saat ini penggunaan aplikasi Open Source di Indonesia masih kalah jauh dibandingkan dengan aplikasi proprietary, dan yang lebih memprihatinkan lagi adalah  aplikasi proprietary yang digunakan sebagian besar adalah ilegal (bajakan atau hasil crack).
-
Untuk mendukung dan mengenalkan aplikasi Open Source ke masyarakat luas di Indonesia, terutama di bidang pendidikan, saya menyediakan beberapa eksemplar buku Menulis Buku dengan LibreOffice secara GRATIS untuk komunitas yang mengadakan acara Seminar atau Lokakarya (workshop) yang berhubungan dengan aplikasi Open Source.


Bagaimana cara mendapatkan buku gratis tersebut?
Kirim proposal kegiatan yang akan dilakukan minimal dua minggu sebelum acara dilaksanakan

Berapa buku yang tersedia?
6 (enam) buku setiap bulannya.

Sampai kapan berlaku?
Selama persediaan buku masih ada.

Apakah 6 buku tersebut untuk satu komunitas?
Bisa iya, bisa tidak, penjelasannnya begini; misalnya dalam satu bulan hanya ada satu kegiatan komunitas yang mengirim proposal, maka buku tersebut akan diberikan semua ke satu komunitas tersebut, tapi jika dalam satu bulan ada lebih dari satu kegiatan komunitas, maka akan dibagi untuk beberapa komunitas yang mengadakan kegitan tersebut.

Apakah semua komunitas yang mengirim proposal akan mendapatkan buku?
Tidak,  proposal tetap saya seleksi untuk dipilih komunitas mana/apa saja yang akan mendapatkan buku.

Siapa yang menanggung ongkos kirim buku?
Ongkos kirim buku ditanggung oleh komunitas yang akan mendapatkan buku, namun tidak menutup kemungkinan saya yang menanggungnya.

Kemana proposal dikirim?
Ke surel istanalinux@gmail.com

Demikian Tata cara Mendapatkan Buku LibreOffice Gratis yang dapat saya sampaikan, jika masih ada  yang kurang jelas, jangan sungkan untuk menyampaikannya lewat kolom komentar.

Cara Membeli Buku LibreOffice

Salam sejahtera untuk Anda semua pembaca setia blog ini, postingan ini adalah update terbaru dari buku Menulis Buku dengan LibreOffice yang telah siap terbit.

Alhamdulillah, setelah melalui perjuangan yang cukup melelahkan akhirnya buku Menulis Buku dengan LibreOffice telah selesai proses cetaknya sehingga sudah layak terbit.

Seperti buku Desain Grafis dengan Inkscape yang telah terbit sebelumnya, buku ini juga penulis edarkan dan jual secara online.

Rencananya buku ini akan dirillis tanggal 24 Maret 2018 yang bertepatan dengan acara Konferensi LibreOffice Indonesia 2018 di Surabaya.
Nah karena banyak teman-teman yang sudah tidak sabar untuk memesan buku ini, maka melalui postingan ini penulis mengumumkan bahwa buku Menulis Buku dengan LibreOffice sudah dapat dipesan oleh pembaca melalui formulir pemesanan yang penulis sediakan. Namun, buku pesanan anda baru akan dikirim setelah acara Konferensi LibreOffice Indonesia 2018 selesai.



Berikut ini adalah tata cara untuk memesan buku:
  • Pemesanan buku dimulai ketika postingan ini tayang.
  • Pemesanan buku dilakukan dengan mengisi Formulir Pemesanan Buku LibreOffice.
  • Harga buku versi Hardcover adalah Rp.65.000,- per-eksemplar, sedangkan versi Softcover adalah Rp.40.000,- per-eksemplar.
  • Satu orang dapat memesan buku sebanyak-banyaknya selama stok masih ada.
  • Pemesan yang dianggap telah membeli buku adalah mereka yang telah melakukan pembayaran sesuai harga yang telah disebutkan di atas.
  • Pembayaran buku dapat dilakukan dengan sistem transfer ke nomor rekening BRI 3788-01-019373-53-8 a/n SOKIBI, setelah melakukan transfer silakan konfirmasi melalui SMS/WA ke 085727528266, atau surel ke istanalinux@gmail.com.

Informasi
Untuk info seputar buku Menulis Buku dengan LibreOffice, Anda bisa menghubungi beberapa kontak di bawah ini selama jam kerja:
  • Facebook: Sokhibi Imgos
  • SMS/WA: +6285727528266
  • Email: istanalinux@gmail.com
  • Workshop: Jl. Kokrosono Raya Blok B Lantai 2 No.8-9 Semarang Utara - Jawa Tengah

Ongkos Kirim:
  • Ongkos kirim buku ditanggung pemesan, buku yang dipesan akan dikirim dari Semarang menggunakan jasa JNE atau Pos Indonesia, sebagai acuan ongkos kirim, berat 1 (satu) buku dihitung 1 Kg.
Catatan:
  • Untuk pengiriman melalui Pos Indonesia dapat menggunakan satuan berat gram, satu buku versi softcover beratnya +500 gram
  • Jika menggunakan jasa JNE dibulatkan menjadi 1 kg, jadi jika ingin memesan 2 buku dan dikirim melalui jasa JNE tetap dihitung 1 kg.
  • Buku versi Hardcover  beratnya +700 gram, jadi jika anda pesan dua buku maka beratnya tetap dihitung 2 kg.

      Pertanyaan Mengenai Buku
      • Apakah stok buku terbatas?
        Iya, terutama versi hardcover yang stoknya sangat terbatas. Jadi silakan pesan secepatnya sebelum stok habis, karena kami menganut sistem pertama datang akan pertama dilayani.

        • Kapan buku dikirim?
          Buku yang Anda pesan beli akan dikirm setelah acara Konferensi LibreOffi Indonesia 2018 yang berlangsung tanggal 23 s/d 25 Maret 2018.

        • Apakah bisa COD?
          Bisa, datang langsung ke kios Istana Media  Jl. Kokrosono Raya Blok B Lantai 2 No.8-9 Semarang Utara - Jawa Tengah (harap buat janji dulu).

        • Saya berminat menjadi reseller buku ini untuk dijual kembali, apakah bisa?
          Bisa, silakan membuat pengajuan untuk menjadi reseller kemudian kirim ke istanalinux@gmail.com.

          • Apa perbedaan antara buku Hardcover dan Softcover?
            Isi keduanya sama, hanya beda sampul luar dan sampul dalam, pada versi hardcover di sampul dalam terdapat nama pemesan.
            Jadi khusus buku dengan sampul Hardcover tidak bisa langsung dikirim secepatnya, karena buku versi ini belum dijilid, begitu ada pemesanan baru dijilid.

            Buku LibreOffice Untuk Meramaikan LOCI 2018

            Di postingan saya beberapa waktu lalu dengan judul Cerita Di Balik LibreOffice Conference Indonesia 2018 sudah saya bahas mengenai awal mula acara tersebut, walau hanya sedikit. Postingan ini merupakan lanjutan dari postingan tersebut. 
            Di tengah-tengah istirahat makan siang pada acara Penerjamahan GCompris, kami membahas mengenai adanya Mini Conference dari salah satu foto yang dibagikan oleh teman penggiat dan kontributor F/LOSS  di Jepang sana, dari foto tersebut maka kami punya inisiatif untuk membuat acara serupa di Indonesia, ide ini berasal dari pak Ahmad Haris.

            Awalnya kami hanya akan membuat mini konferensi yang dihadiri oleh kurang lebih 50 orang saja seperti yang sudah dilakukan di beberapa negara sebelumnya (Jepang, Jerman, Italia, dll.), namun seiring berjalannya waktu, acara ini menjadi acara Open Source terbesar di Asia pada awal tahun 2018 (bisa jadi terbesar di tahun 2018).

            Buku LibreOffice
            Untuk mendukung acara tersebut agar lebih meriah dan terlihat keren, maka beberapa orang dari kami punya agenda yaitu dengan launching suatu produk nyata, sebagai contohnya adalah pak Iwan Tahari (Sepatu FANS) membuat boneka imut yang diberi nama Bimbim, sedangkan tugas saya yang hobi menulis, maka dapat jatah merillis salah satu buku yang sedang saya kerjakan.

            Jika pada acara Gnome Asia Summit tahun 2015 beberapa tahun yang lalu saya meramaikan acara tersebut dengan buku Desain Grafis dengan Inkscape, maka pada acara LibreOffice Conference Indonesia 2018 saya akan merillis buku lain sesuai dengan tema acara yang akan berlangsung. 

            Awalnya saya bingung memilih buku yang akan saya rillis karena saya sedang menulis beberapa buku hampir secara bersamaan, diantaranya Scribus, GIMP, Blender, dan Krita. Pilihan pertama jatuh pada Scribus karena beberapa tahun yang lampau ketika saya kerja sebagai editor dan layouting di salah satu penebit sering menggunakan Adobe InDesign yang konsep dan fiturnya hampir sama dengan Scribus.

            Nah, ketika sedang berusaha keras untuk menyelesaikan buku Scribus, tidak sengaja saya buka-buka folder lama di flashdisk jadul saya yang kapasitasnya hanya 512 MB, di flashdisk tersebut saya menemukan naskah OpenOffice yang pernah saya tulis beberapa tahun lampau. Naskah tersebut saya beri judul Menulis & Menyusun Buku dengan OpenOffice org.
            Naskah tersebut pernah saya kirim ke salah satu penerbit yang ikut jadi sponsor acara BlanKonf#3 di semarang. Penerbit tersebut sering menerbitkan buku-buku komputer berbasis Open Source. Nah, kebetulan salah seorang teman saya pernah jadi editor di penerbit tersebut, atas rekomendasinya, maka saya mengirimkan naskah buku Menulis & Menyusun Buku dengan OpenOffice org.

            Singkat cerita saya mengirim sample naskah buku dengan format PDF, buku saya diterima oleh penerbit tersebut dan layak untuk diterbitkan (senangnya seperti penulis pemula yang naskahnya baru pertama kali diterima penerbit). Namun sayangnya, salah satu syarat dari penerbit tersebut adalah saya harus mengirimkannya dalam format Doc. Tentu saja syarat tersebut saya tolak, karena saya tidak bisa menggunakan Microsoft Office.
            Lagian buku tersebut isinya adalah cara menulis dan menyusun buku dengan OpenOffice kok saya disuruh ngirim yang formatnya aplikasi lain, dan apa susahnya sih install OpenOffice. Membaca email balasan dari penerbit yang syaratnya seperti di atas, membuat saya menjadi tambah geram sabar dengan satu tekad, suatu saat saya bisa menerbitkan sendiri buku-buku aplikasi OpenSource.

            Kembali ke masalah buku yang akan saya rillis pada acara LibreOffice Conference Indonesia 2018, setelah saya menemukan naskah buku OpenOffice di flashdisk jadul, maka saya buka naskah tersebut dan bisa dibuka dengan lancar tanpa kendala yang berarti.

            Singkat cerita saya edit dan modifikasi naskah tersebut secara besar-besaran sehingga menjadi buku yang kelak membuat saya capek harus tanda tangan dan foto-foto di stan LibreOffice.

            Demikianlah cerita mengenai Buku LibreOffice Untuk Meramaikan LOCI 2018, cerita ini masih bersambung lagi ke cerita yang lebih menarik, silakan tunggu dengan sabar kelanjutannya.

            Bersambung lagi

            Konfigurasi LB gRPC Service dengan HAProxy

            2018-04-05 15.07.23

            Kemaren diminta setting load balancer di HAProxy untuk gRPC Service.
            Panduan ini saya nyomot dari https://grpc.io/blog/loadbalancing dan https://gist.github.com/thpham/114d20de8472b2cef966

            Desain service kira-kira seperti ini:

            Springboot-Service(API) <—> HAProxy <—-> gRPC Server 1 & gRPC Server 2

            Kasusnya adalah:

            • Traditional setup – Many clients connecting to services behind a proxy
            • Need trust boundary between servers and clients
            • Metode pembagian beban adalah roundrobin
            • HAProxy dipasang dimesin yang sama dengan gRPC server 1.

            Solusi yang diambil:

            • L3/L4 LB with haproxy.

            Installasi dan Konfigurasi

            $ sudo apt install haproxy
            

            Berikut konfigurasi yang saya gunakan dengan perubahan seperlunya termasuk mengatur status load balancer (Dashboard HAProxy).

            global
              tune.ssl.default-dh-param 1024
            
            defaults
              timeout connect 10000ms
              timeout client 60000ms
              timeout server 60000ms
            
            ## Pengaturan Dashboard HAProxy
            listen stats
              bind :1936
              mode http
              log  global
            
              stats enable
              stats uri /stats
              stats refresh 15s
              stats show-node
              stats hide-version
              stats realm Haproxy\ Statistics
              stats auth user:password
            
            frontend fe_http2
              mode tcp
              ## alamat binding gRPC yg akan diakses oleh Springboot-Service
              bind 192.168.33.100:6668 npn spdy/2 alpn h2,http/1.1
              ## alamat routing backend
              default_backend be_grpc
            
            backend be_grpc
              mode tcp
              balance roundrobin
              ## daftar gRPC service yang akan menerima LB dari HAProxy
              server prod-service-020 127.0.0.1:6667
              server prod-service-021 192.168.101:6667
            

            Setelah konfigurasi dirasa cukup, lakukan testing konfigurasi HAPRoxy dengan perintah berikut.

            $ sudo haproxy -c -f /etc/haproxy/haproxy.cfg
            

            Jika udah ijo, lakukan restart haproxy.

            $ sudo systemctl restart haproxy
            

            Demikian.
            Estu yg lagi dolanan Mattermost

            Umroh

            Belasan tahun lalu, saya tidak yakin akan bisa datang ke Haramain dan selalu kagum ke orang-orang yang bisa berhaji atau umrah di usia muda.

            Semenjak kehidupan saya lebih baik, orang tua saya memaksa agar saya daftar haji. Namun saya masih menolak dengan banyak dalih (terutama terkait carut marutnya pengurusan haji). Saya juga melihat mereka seperti merindukan Makkah dan Madinah (walaupun belum pernah ke sana) dikarenakan tiap hari yang ditonton adalah TV Kabel yang menyiarkan Masjidil Haram dan Masjid Nabawi secara langsung. Tiap pulang ke Gresik, yang terpikir adalah segera memberangkatkan mereka umroh dan alhamdulillah sudah terpenuhi.

            Sepulang dari umroh (saya kebetulan mendarat dari Singapore langsung menuju Bandara Juanda untuk menjemput mereka) mereka selalu menceritakan kesenangan dan kebahagiaan selama di sana. Yang paling sering terdengar adalah mereka merasa “ingin kembali ke sana”. Saya termasuk orang yang skeptis dengan hal-hal seperti ini. Sampai akhirnya saya merasakannya sendiri.

            Akhir tahun lalu saya mengutarakan keinginan untuk melaksanakan umroh ke om Edwin, barangkali dia juga mau berangkat bersama dan kebetulan dia punya banyak relasi yang siapa tahun salah satunya punya travel yang menangani umroh. Dan memang benar tebakan saya.

            Kenapa sama om Edwin? hmmm, saya ini tidak punya seorang saudara yang lebih tua, jadi sampai hari ini, dia lah yang saya anggap saudara tua sekaligus teman. Dan dalam kaitan dengan banyak hal yang bersifat pribadi dan emosional, saya percaya ke dia. Entah dia percaya ama saya apa enggak. Hahaha.

            Kami resmi mendaftar pada APM Travel dan mengurus semua persyaratan saat awal tahun 2018 dan alhamdulillah semua lancar dan bisa berangkat 31 Januari 2018. Travelnya juga terpercaya!

            Persiapan

            Tidak ada persiapan yang super khusus selain hanya membeli baju-baju yang tahan dipakai untuk udara dingin. Karena kabarnya di Madinah suhunya cukup rendah. Persiapan personal, saya menahan diri untuk tidak gampang emosi sebelum berangkat.

            Saya cukup beruntung karena bisa tidak memikirkan membeli oleh-oleh dikarenakan bapak dan ibu saya sudah pernah umroh, adek saya sudah pernah berangkat haji dan yang paling kecil sudah mampu untuk umroh sendiri. Jadi tidak ada beban untuk belanja oleh-oleh.

            Tidak lupa saya juga menulis wasiat ke keluarga (ini kebiasaan jika pergi ke luar negeri).

            Perjalanan

            Rute yang diberikan memungkinkan saya transit di Kuala Lumpur dan para jamaah diajak keliling Kuala Lumpur secara singkat. Saat di bandara, barangkali karena tampang saya yang tidak islami (bercelana jeans, bersepatu kets serta berambut panjang dan warna merah), banyak orang yang “agak gimana” gitu ke saya. Entah takut ato apa. Saat di bandara Kuala Lumpur, saya memberikan ke arahan ke beberapa orang (terutama yang belum pernah ke luar negeri) terkait rute pengambilan bagasi namun banyak yang tidak percaya/tidak mau menurut. Jadinya ya ada beberapa grup orang yang tersesat. Puyeng!

            Rombongan dapat kesempatan ke Menara Kembar Petronas dan Masjid Putrajaya. Saya tidak tertarik untuk banyak tingkah kali ini, karena khawatir niat ibadahnya terganggu. 😀

            Twin Towers

            Saat menuju Jeddah, saya mengalami sakit kepala dikarenakan rasa capek dan ngantuk yang super.

            Tiba di Jeddah

            Saat mendarat, drama dimulai, saya yang biasanya cuek dengan hal-hal yang berbau “sok religius” tiba-tiba merasakan hal yang berbeda. Yang sangat terasa adalah saya bersangat bersyukur akhirnya bisa menjejakkan kaki di Jeddah dan beberapa jam lagi bisa berkunjung ke kota Makkah.

            Para rombongan mengambil miqat (memakai pakaian ihram dan niat umrah) di bandara. Selanjutnya rombongan menuju Makkah dengan menggunakan bus. Dengan perkiraan sampai Makkah dini hari.

            Selama perjalanan, muthawwif memberikan banyak arahan dan penjelasan. Saya memutuskan untuk tidur saat muthawwif selesai memberikan arahan dan tiba-tiba terbangun karena tubuh saya terasa merinding.

            Makkah

            Saya terbangun saat muthawwif bilang bahwa kita sudah memasuki kota Makkah. Di situ perasaan saya bercampur aduk tidak karuan. Takut, senang, tidak bisa digambarkan. Saat masuk Masjidil Haram dan melihat Ka’bah pertama kali, saya merasa lemas. Padahal di hari-hari biasa, saya tidak membayangkan akan terjadi seperti ini. Ibu saya sendiri takut kalau saya tidak bisa melihat Ka’bah, mungkin dikarenakan kenakalan-kenakalan saya di masa lalu yang cukup bikin beliau menangis.

            Saya menyempatkan melihat sekitaran Masjidil Haram, mempelajari situasi terutama arah balik ke hotel dari berbagai sisi. Biar kalau ada yang hilang atau tersesat, bisa membantu memberi petunjuk. Dan memang benar, ada yang tersesat.

            Saya bersyukur memiliki teman sekamar orang-orang yang baik, setidaknya yang paling brengsek dan iseng mungkin saya. Tentunya saya yang paling muda. Kami sangat terkoordinir dan saling mengingatkan.

            Oh iya, di Makkah, kartu gsm (roaming) yang paling sip adalah Telkomsel, om Edwin menggunakan Indosat namun berkali-kali sering tidak bisa terhubung internet. Penggunaan internet cukup membantu terutama buat acuan peta (google maps) serta komunikasi dengan jamaah lainnya. Untuk pribadi, saya biasanya melakukan video call sepulang jamaah shalat subuh dengan keluarga.

            Suhu Makkah awal Februari cukup kondusif, panas pada siang hari, cukup sejuk/dingin di malam hari. Tapi tubuh ini masih bisa bertahan. Saya juga mencoba merasakan thawaf di lantai dua, yang menurut saya jaraknya mirip dengan kita mengitari stadion Pakansari di Cibinong. Bahkan saya dua kali thawaf di lantai dua. Yang terakhir gegara om Edwin. hahaha.

            Alhamdulillah di Makkah semua berjalan lancar. Saya sempat merasakan shalat diimami oleh Syeikh Abdurrahman as-Sudais. Suaranya itu lho, legendaris!

            Saya juga bisa melaksanakan beberapa ritual ibadah bersama rombongan, juga ritual ibadah sendiri (karena memang ingin menyendiri). Tidak banyak halangan berarti. Kendala terbesar saya adalah tumit dan beberapa bagian telapak kaki rasanya kayak terbakar. Mungkin karena sering “terbentur” marmer, atau juga “diperingatkan” karena jarang ke masjid.

            Madinah

            Kesan pertama saat tiba di Madinah adalah “keren”. Kota ini tertata rapi. Selanjutnya, suhunya dingin. Saya sampai di hotel sekitar isya’. Tidak bisa berjamaah isya’ di Masjid Nabawi, namun saya dan teman sekamar kabur setelah makan malam (makan malam di Makkah dan Madinah adalah setelah shalat isya’) untuk ke Masjid Nabawi. Sightseeing-lah serta ingin berkunjung ke makam Nabi.

            Saya melihat salah satu peristiwa seorang kakek tua yang menggunakan dua tongkat untuk menyangga tubuhnya, dipersilahkan untuk masuk Raudhah tanpa antrian oleh para tentara penjaga masjid. Para tentara tersebut menanyai orang tua itu apakah sudah berkesempatan ke Raudhah atau belum, jika belum, dibantu/diantarkan ke sana. Kita semua tahu bahwa untuk masuk ke Raudhah, harus antri, antrinya jauh lebih tertib dibandingkan antri untuk mendekati Ka’bah atau mencium Hajar Aswad. Di hari berikutnya saya juga melihat kejadian yang mirip.

            Saat shalat subuh, beneran maknyus dinginnya. Saya sampai menggunakan baju rangkap dan menggunakan mantel musim dingin. Mungkin sekitar 5 derajat celsius. Siangnya, sekitar jam 11, saya memantau suhunya berkisar antara 10 sampai 12 derajat celcius.

            Di Madinah, karena saya punya rekan-rekan yang baik-baik, banyak hal-hal yang dimudahkan. Kami bisa di Raudhah kurang lebih dua jam, bisa berjamaah dzuhur di sana, serta saya sendiri sempat bersalaman dengan salah satu imam masjid Nabawi. Sepulang dari masjid, saya bisa tersenyum dan pamer ke teman-teman rombongan lainnya. Hehehe.

            Saat di Makkah, saya tidak berminat sekalipun untuk membeli minyak wangi. Di kehidupan sehari-hari, saya juga tidak terbiasa menggunakan minyak wangi. Sangat berbeda dengan kebanyakan orang. Namun saat saya berhasil menyentuh Ka’bah, saya ingat betul harum baunya. Bahkan masih nempel di kain ihram saya saat sudah di Madinah. Beruntung, saat ngobrol dengan penjaga toko di depan Masjid Nabawi, secara tidak sengaja penjaga tersebut menyemprotkan minyak wangi yang harumnya sama dengan yang di Ka’bah. Saya dan om Edwin membelinya. Yang menarik adalah komposisinya terdiri dari bunga mawar Madinah, air zamzam dan zat pengawet tentu saja.

            Apalagi Ya?

            Hmm… Semoga bisa kesana lagi deh!

            Memperbaiki Daemon ScreenSaver di BlankOn Uluwatu

            IMG_20180405_170943

            Yaps x260 saya isinya Uluwatu dan gado-gado lainnya. Lebih seringnya makai repo SID dari Kartolo. Beberapa hari ini, setelah jalankan upgrade paket dari SID, beberapa fitur ngambek.

            Salah satunya screensaver g jalan. Akibatnya laptop jadi tambah boros. Layar idup selalu meski udah ditinggal lama ( g mau dim).

            Yuk dibenerin. Kata Pak Sofyan cukup ubah file desktop gnome-screensaver:

            $ sudo vim /etc/xdg/autostart/gnome-screensaver.desktop
            

            Cari baris ke 157.
            Ganti OnlyShowIn=GNOME-Flashback menjadi OnlyShowIn=GNOME

            Setelah itu, logout dan login kembali ke Manokwari. Tadaaa… Sukses

            Estu yang lagi nunggu rilis.

            LibreOffice Conference Indonesia 2018

            The Original Story Behind This Conference

            Yes, Sokibi and Rania already write the story about how we starting the conference. It’s true but not complete one. The original one was before I have dinner with Sokibi and Rania. I have lunch with Kukuh and Moko in Soto Betawi Restourant near my house.

            Soto Betawi

            We’re thinking that in 2017 there’s no FOSS Conference in Indonesia. So we decide to organize conference about LibreOffice but small one (we can call it mini conference). But time flows, and we kick out “mini” and become normal conference.

            The Document Foundation

            Since Franklin Weng becoming board in TDF, he often pursuade me to joining TDF Membership. Well, I’m thinking that I less contribution on LibreOffice and little experience in that (except for personal/daily use). I have lot of experience in OpenOffice, an era before LibreOffice.

            So, with organizing this conference, it’s my starting point to contribute to LibreOffice and of course I apply the membership and TDF will process my submission this month.

            Start Organizing Conference

            We start work in December 2017, preparing the proposal and choose which city and university for the venue. We asking two universities and good will comes from PENS (Politeknik Electronika Negeri Surabaya). We start working on Januari 4th, and prepare everything daily.

            We have 9 members of organizer in first place, but then one member just gone away not active, so I kicked him out. Our member was come from different cities, luckly it’s still in one timezone. So we just have 8 powerfull members. In last week near the event, there’s about 25 students from university that joining us as local community organizer.

            My main role is as coordinator and fundraiser. It’s easy but not easy. But I have good team members. In the event it’s self I was complicated busy, make sure everything work and run perfectly. But me and others are happy.

            Honorable mention Rania, Moko, Kukuh, Joko, Darian, Ummul, and Tamara. The last one can’t attend the conference.

            Day #-1

            I arrived at Surabaya on Thursday, one day before workshop. I need to come early to make coordination with local organizer and pickup Franklin and Eric. Both of them are my old friends.

            Mr. Ardi (lecturer from PENS who also local organizer) told me in telegram chat, that in Day#1, I need to have speech to open the conference with some professor. I bought batik shirt for this special moment. 😀

            Day #0

            This is workshop day. I visited the venue and meet Mr. Ardi. I see the workshop for couple minutes and then at lunch time, I have meeting with Franklin, Eric, Andika, Noor, Darian, Estu and Lecturer/Professor from PENS.

            In that meeting we have introduce our self and have small discussion. The Director of PENS also open the conference, because on Day#1 he can’t attending it.

            I stay in Rumah Kertajaya Hostel, same with Franklin, Eric and Italo. I choose this because Italo already book this place and I need to have better communication and coordination with them.

            Day #1

            This is my special day. It’s rare to see me use formal shirt, especially batik shirt. I have opening speech as coordinator of organizer.

            Batik

            I spent this day to meet other speaker, have small discussion and make sure everything works smoothly. Also must sign many documents related to sponsorship from government.

            Souvenir for Italo Vignoli

            I’m not attending any class this day. Only for Keynote.

            Day #2

            This day, I use spiderman t-shirt. Hahaha. I wanna make this day little bit more relax. I attend one class, about LibreOffice for Writing Scientific Work in Arabic by Rizki Fauzi. Yes I able to read and type in Arabic.

            I also becoming moderator for Q&A with TDF before closing ceremony. Becoming moderator is not easy (it’s true) because Italo are person who love to tell his experience and good story teller. I can’t stop him many times.

            The closing ceremony was cheerful, you can see it on LibreOffice Conference Indonesia 2018 group.

            Day #3

            Day #3 was city tour day. We have mini bus contain foreigner speaker, few local speaker and local organizer. We going to neighboor city of Surabaya, Mojokerto, which still have ancient Majapahit museum and temple.

            Brahu Temple

            We’re also going to Sampoerna Museum and Mirota Batik Store. Italo need to buy many of them. 😀

            Day #4

            Me, Italo, Eric and Franklin have discussion session with PENS. It talk about curriculum and implementation in IT world.

            In afternoon, Italo and Franklin become Guest Lecturer.

            Guest Lecture

            In evening, I also become Guest Lecturer. My class talking about Ridon.id.

            Ridon Class

            Day #5

            This day Franklin, Eric and Italo departed from Surabaya in the morning. In evening I also departed using night train.

            Dinner

            We actually have dinner sponsored by LibreOfficeID since Day #-1. Delicious dinner and have good stories from each other. Take a look at flickr if you want to see the picture.

            Summary

            Here my personal summaries about this conference:

            • This conference is biggest FOSS conference in 2017 and 2018 in Indonesia
            • Many people still doesn’t know about LibreOffice
            • It’s quite difficult to get sponsorship from IT company
            • Organizing conference outside JABODETABEK is different. Also the participant, many issues such as ticket price, transportation and hotel
            • Collaboration with students are difficult in the beginning, but at the end, there’s few students are good and joining community
            • Many student in PENS able to speak English. It’s opposite from last two conference (GNOME Asia and openSUSE Asia) in Indonesia
            • Meet other/community members are good for your helth
            • There’s a lot of chance to contribution and travel arround the world

            Cerita Di Balik LibreOffice Conference Indonesia 2018

            Ini adalah cerita di balik acara  LibreOffice Conference Indonesia 2018  versi saya, cerita dimulai dari awal mulanya akan diadakan acara tersebut hingga selesai dilaksanakan.
            Pada tanggal 7 s/d 13 Agustus 2017, BlankOn dan Ridon mengikuti acara BEKRAF HABIBIE FESTIVAL Teknologi & Inovasi di JIEXPO Kemayoran, Jakarta.
            Pada acara tersebut beberapa Pengembang dan Pensiunan Pengembang BlankOn, serta perwakilan Sepatu FANS bertemu dan punya rencana untuk mempromosikan aplikasi Open Source ke masyarakat luas.
            Saya datang terlambat ke acara tersebut, yaitu pada tanggal 12 Agustus 2017, yang artinya saya hanya bisa mengikuti acara keren tersebut dua hari saja, maklum saya hanya dapat ijin dari kantor pada tanggal itu.
            Beberapa hari sebelumnya (sebelum tanggal 12 Agusrus 2017), saya sering melihat beberapa gambar yang diunggah oleh teman-teman pengembang BlankOn penjaga stan, dari pengamatan yang saya lakukan, ternyata banyak anak-anak yang berkunjung ke acara tersebut.


            Maka saya punya ide untuk membuat beberapa video yang berisi permainan anak, pilihan jatuh ke permainan yang berorientasi pendidikan, yaitu GCompris.
            Singkat cerita saya berhasil membuat beberapa video permainan GCompris dengan cara melakukan rekam desktop permainan yang saya lakukan. Dan, pada tanggal 12 Agustus 2017 saya tampilkan video tersebut pada display LED di stand BlankOn dan Ridon.
            Dengan ditampilkan video permainan GCompris, stand BlankOn & Ridon semakin banyak didatangi oleh pengujung, bukan hanya anak-anak saja yang tertarik dan antusias untuk mencoba permainan GCompris, tapi banyak juga orang-orang yang sudah bukan anak-anak mencoba permainan tersebut.
            Di hari terakhir acara BEKRAF HABIBIE FESTIVAL Teknologi & Inovasi yaitu tanggal 13 Agustus 2015, stand BlankOn dan Ridon masih ramai didatangi pengujung, sehingga beberapa pengunjung harus antri untuk mencoba permainan GCompris di laptop yang tersedia di stand BlankOn.

            Permainan GCompris yang digunakan saat itu, baik yang ditampilkan di display LED maupun terpasang di Laptop merupakan versi lama, dan terjemahannya bahasa Indonesia tidak lengkap, mengingat terjemahan GCompris yang digunakan terakhir dilakukan tahun 2009.
            Dari permasalahan terjemahan  GCompris yang sudah terlalu Old tesebut maka terbesitlah ide untuk menerjemahkan GCompris versi Now ke Bahasa Indonesia yang lebih modern. Obrol sana, obrel sini, maka disepakatilah untuk membuat acara penerjemahan GCompris. 
            Singkat cerita, acara penerjamahan diagendakan untuk diselenggarakan pada tanggal 16-17 September 2017, di markas Kode Kraetif, Jl. Graha Kartika Pratama Blok A3 No 10 Bojonggede.

            Berdasarkan agenda di atas, saya datang ke tempat diselenggarakannya Penerjemahan GCompris satu hari sebelum acara dilaksanakan, yaitu datang pada tanggal 15 September 2017, saya datang sebagai anggota penerjemah.
            Di bawah ini adalah beberapa foto yang berhasil saya ambil ketika acara Penerjemahan GCompris berlangsung.
            Proses penenentuan jatah halaman yang akan diterjemahkan
            Acara Penerjemahan hari pertama (peserta yang dapat duduk dan meja)
            Uji coba microphon sebelum melakukan perekaman untuk suara permainan GCompris
            Kordinator acara Penerjemah GCompris adalah senior penerjemahan Gnome dan aplikasi Open Source, salah satu aplikasi yang beliu terjemahkan adalah LibreOffice

            Obrol sana, obrol sini, maka disepakitilah untuk membuat acara menerjemahkan LibreOffice, yang kemudian kelak disuatu hari menjadi acara keren bernama LibreOffice Conference Indonesia 2018.

            Demikianlah Cerita Di Balik LibreOffice Conference Indonesia 2018 versi saya, cerita ini masih bersambung lagi ke cerita yang lebih menarik, silakan tunggu dengan sabar kelanjutannya.
            Bersambung
             



            Membangun GNOME Recipes dan Menjalankan dengan Antar Muka Indonesia

            Tulisan ini masih sedikit melanjutkan pengalaman GNOME Recipes Hackfest 2018, namun sedikit ditambahkan atas pesanan Pak Andika (Koordinator Penerjemahan GNOME) terkait bagaimana cara menguji aplikasi dengan antar muka bahasa Indonesia (dengan file .po yang sudah kita terjemahkan).

            Mari kita mulai!

            Pasang GNOME Builder Nightly
            • Unduh flatpakref untuk GNOME Nightly dari https://sdk.gnome.org/gnome-nightly.flatpakrepo dan pasang

            flatpak –user remote-add gnome-nightly gnome-nightly.flatpakrepo

            • Unduh flatpakref untuk GNOME Builder dari https://raw.githubusercontent.com/GNOME/gnome-apps-nightly/master/gnome-builder.flatpakref dan pasang

            flatpak –user install –from gnome-builder.flatpakref

            Jalankan Builder dan Ambil Kode GNOME Recipes
            • Jalankan Builder dan pilih tombol Clone untuk kloning kode sumber
            • Kloning dari https://gitlab.gnome.org/GNOME/recipes.git
            Kloning Kode
            • Kode akan otomatis dibangun oleh Builder
            Build
            Detil Build
            • Jalankan!
            Jalankan!
            GNOME Recipes
            Mengubah Antar Muka ke bahasa Indonesia

            Seperti gambar di atas, antar muka aplikasi yang kita jalankan menggunakan antar muka baku (bahasa Inggris). Untuk kasus teman-teman yang mengerjakan terjemahan, perlu menguji dan membuat antar mukanya ke bahasa Indonesia. Adapun langkahnya sebagai berikut:

            • tambahkan “–env=LC_ALL=id_ID.utf8” pada bagian “finish-args” di berkas org.gnome.Recipes.json.
            org.gnome.Recipes.json
            • Jalankan lagi!
            Berbahasa Indonesia

             

            Selamat Mencoba!

             

            Attending GNOME Hackfest 2018

            This Hackfest are focused on GNOME Recipes and venues in AMIKOM university in Yogyakarta. https://en.m.wikipedia.org/wiki/University_of_Amikom_Yogyakarta

            In last year,  I know there will be GNOME Hackfest in Yogyakarta and possibly in March. And I thought it wil be at end of March until Nuritzi tell in Endless Ambassador Telegram Group that it will be start from February 28th until March 2nd. I know this on February 25th. So I ask Kukuh Syafaat to go together and help since he also GNOME Foundation Members.

            Actually at February 27th, there’s an outreach event at the local university. But I can’t manage to go because I arrived at Yogyakarta at 17:00 and it already finished. But I have dinner with few GNOME Developer (but no Mattias and Emel) for that day.

            #1st Day

            This is my first time joining GNOME Hackfest and I don’t know about Recipes at all. So I just learning for this day.

            There’s two application, GNOME Recipes and Endless Recipes. We (actually I just silent becase I became student this time 🙂 define our goals in this hackfest.

            Then continue with demo of GNOME Recipes and Endless Recipes. And this time I understand how both work. It’s make me interesting to learn about creating basic GNOME applications.

            When Phillip gave demonstration, I was amazed by few tools from Endless, there’s Ingester who can collect data and download it to locals then preview it with Hatch Preview.

            And from this first day, I understand how different about data between those two applications.

            Apps Demo - Endless DemoApps Demo – Endless Demo

            For first day dinner, I meet Endless CEO (Matt Dalio) for first time and we have dinner with all developer in Taj (India) Restaurant. Endless paid all food. Thank’s Endless.

            Indian Restaurant

            Note for first day can be read in https://wiki.gnome.org/Hackfests/Recipes2018/Day1.

            #2nd Day

            This day starting by Emanuelle explaining about constraints-based layout which is also first time for me to know it. There’s Autolayout.js and Emeus to help manage the layout.

            Emanualle explain about constrain-based layoutAutolayout.js

            In this day we have some question that Rama and Emel need to ask to “real life” students. Rama became coordinator for collection recipes from Indonesia’s side. It’s decided on first day.

            After lunch Martin got the recipes data and started converting it into a shard. Matthias debugged some issues that showed up during demoing of recipes earlier. Me, personally I’m learning about building Recipes from source and understanding ingester.

            After hackfest, I meet with Renato from Endless. Actually we already meet at first time dinner but he thinking that me and Kukuh are GNOMErs, not Endless Ambassador. We discuss about marketing stuff and strategy and also he told me that Endless will have office in Bali.

            Dinner for this day, I help them to choose. You can guess where is it? The owner come to us and ask take picture with us.

            Guess where is it?Guess where is it?

            Endless also take care this dinner. Thank’s Endless (again).

            You can read official notes from 2nd day in https://wiki.gnome.org/Hackfests/Recipes2018/Day2.

            #3rd Day

            This last day seems like demo/conclution day. Like yesterday discussion that Endless Recipes will use GNOME Recipes’s data, Martin demoed his recipes shard in several endless templates, and it basically worked. The shard was hacked to make the recipes data show up in the endless data model. For a proper conversion, we need a data model that is appropriate for recipes and chefs.

            Cosimo showed a karaoke app that he found on github, working as flatpak. It make this day little bit more fun.

            Then Philip took Martin’s shard and plugged it into his recipe app lookalike and more beautiful.

            Matthias showed the Halal category that he added to GNOME recipes. Yes as a moslem, this is very important and I would like to say thank you to all GNOME and Endless Developer for concerning about this.

            Siska brought recipes and seasoning for foreigner and make the day more noisy. Different from two days before. Hahaha. There also Kiki (from Mozilla) in this day.

            Busy 🙂

            Last day dinner was also paid by Endless.

            Note:

            Todo:

            • Collecting recipes and translating to it
            • Translating and understanding Ingester how to that wrote by Phillip

            Thanks to Matthias, Cossimo, Jonathan, Emel, Philip, Martin, Emanuelle, Umang and Ekta. Well, see you all soon guys.

            Thanks to GNOME Foundation and Endless.

            Modifikasi Tombol Pintas Pada LibreOffice Writer

            Untuk mempercepat pekerjaan dalam mengolah sebuah dokumen atau naskah penulis sering mengunakan tombol pintas pada papan tik. Secara baku LibreOffice Writer sudah menyediakan berbagai tombol pintas yang siap digunakan. Namun kadangkala dalam kebutuhan tertentu tombol pintas yang sudah disediakan secara baku tersebut belum memenuhi keinginan penulis.


            Menambahkan Tombol Pintas
            Berikut ini langkah-langkah cara menambahkan tombol pintas pada LibreOffice Writer:

            • Arahkan kursor ke Bilah Menu, klik Perkakas => Kustomasi...

            Pada jendela Gubahan yang tampil pilih tab Papan Tik, kemudian lakukan langkah berikut:

            Tombol Pintas

            • Pilih tombol pintas yang belum digunakan (contoh: Ctrl+9).

            Kategori

            • Pilih kategori yang akan dibuatkan tombol pintas (contoh: Sisip).

            Fungsi

            • Pilih fungsi untuk menerima perintah dari tombol pintas yang akan ditambahkan (contoh: Simbol).
            • Jika semua pengaturan yang dilakukan sudah sesuai, klik tombol Ubah untuk menyelesaikan penambahan tombol pintas. Lebih jelasnya lihat Gambar di bawah ini:


            • Lakukan cara yang sama untuk menambahkan tombol pintas pada perintah lainnya.
            Klik tombol Oke untuk menyelesaikan pengaturan Tombol Pintas.


            Hapus Tombol Pintas
            Tombol pintas yang sudah ditambahkan jika sudah tidak dibutuhkan dapat dihapus, berikut cara menghapus tombol pintas:

            • Pilih tombol pintas yang akan dihapus pada menu Tombol Pintas, kemudian klik tombol Hapus.

            Catatan:

            • Ketika membuka dokumen dengan LibreOffice Writer pada sistem operasi lain maka tombol pintas yang telah ditambahkan tidak berfungsi.

            Sumber: Buku Menulis Buku dengan LibreOffice Bab 12





            Cara Mining Yang Dijamin Berhasil

            Beberapa tahun belakangan ini di dunia maya sedang ramai membahas suatu pekerjaan atau peluang baru yang prospeknya sangat bagus yaitu Mining. Secara umum mining jika diterjemahkan ke bahasa Indnoesia adalah menambang, dalam hal ini bukan menambang secara fisik seperti di Papua Barat sana, namun menambang dengan komputer.
            Penulis sendiri sudah lumayan lama ikut kegiatan menambang tersebut, bahkan sebelum (ramai) booming di Indonesia, penulis sudah melakukannya, berikut ini langkah-langkah agar sukses dalam menambang:

            Hardware Yang Mumpuni

            Agar dapat menambang dengan baik sebaiknya gunakan spesifikasi komputer/laptop yang cukup mumpuni, karena jadinya tidak lucu ketika sedang asik-asiknya menambang tiba-tiba komputer anda not responding, dalam contoh penulis menggunakan komputer seperti gambar di bawah ini:

            Peralatan Tempur
            Jika spek komputer yang anda gunakan sudah sesuai, selanjutnya adalah menyiapkan perlatan untuk menambang, dalam hal ini menggunkan salah satu tool yang cukup powerfull, anda dapat mengunduh Alat Tempur Mining pilih sesuai sistem operasi komputer yang anda gunakan.

            Memasang Alat Tempur
            Setelah alat tempur berhasil diunduh, langkah selanjutnya adalah memasang alat tempur tersebut, contohnya seperti gambar di bawah ini:

            Menjalankan Alat Tempur
            Jika pemasangan alat tempur sudah berlhasil, langkah selanjutnya adalah menggunakan alat tempur tersebut untuk menambang (bahasa kerennya miner), Salah satu cara menjalankan alat tempur dapat dilihat pada gamabr di bawah ini:

            Penulis asumsikan bahwa anda sudah berhasil menjalankan alat tempur dengan baik, pada jendela aplikasi yang tampil klik tombol pencarian

            Pada kotak pencarian ketik kata kunci mining, untuk menemukan peralatan yang cocok, klik menu Mining for gold untuk mulai menambang.
            Arahkan kursor ke bintang berkilau, lakukan zooming pada gambar bintang tersebut, (jika menggunakan mouse geser maju roda tengah).
            Klik bongkahan emas untuk mengambil dan meletakkanya di gerobak.
            Lakukan unzoom untuk menemukan bintang berkilau dan bongkahan emas lainnya, kumpulkan bongkahan emas sesuai angka yang tertulis di dinding gerobak.
            Selesaikan semua level yang tersedia, dan selamat! anda sudah berhasil menjadi penambang yang hebat.

            Demikian postingan Cara Mining Yang Dijamin Berhasil kali ini, jika anda merasa terhibur jangan sungkan-sungkan untuk berkomentar di kotak komentar.
            Salam sukses selalu

            Buku Inkscape versi Digital Gratis

            Bulan ini kurang lebih sudah dua tahun penulis menerbitkan dan mengedarkan buku Inkscape versi cetak, setelah melalui berbagai pertimbangan, hari ini penulis membagikan buku tersebut dalam versi digital (ebook).

            Buku versi digital ini sengaja penulis bagikan secara gratis agar masyarakat umum yang tidak punya niat belum memiliki uang lebih untuk membeli buku versi cetak tetap bisa belajar menggunakan Inkscape. Walau demikian penulis tetap menerima dengan senang hati jika ada pembaca yang mau memberi sedikit donasi sukarela. Penulis menerima donasi berupa uang atau pulsa, tata cara melakukan donasi silakan baca halaman Kata Pengantar pada buku yang penulis bagikan.



            Unduh Buku Inkscape versi Digital Gratis


            Pembaca boleh menyebarkan buku versi digital ini ke masayarakat yang membutuhkan baik secara online ataupun offline, juga dipersilakan untuk membuat mirror di berbagai web atau server pembaca miliki. Jika mirror yang pembaca buat ingin dicantumkan di blog ini, silakan tulis mirror tersebut di bagian komentar blog ini.

            Demikian, terima kasih
            Semarang, Satu Februari Dua Ribu Tujuh Belas

            Teknisi sebagai ahli IT

            Kemarin sore hingga hari ini media sosial sedang heboh membahas masalah Ransomware jenis WannaCRY, termasuk penulis dan beberapa Pensiunan Pengembang BlankOn ngobrolin masalah ini ketika ngopi di Mall Paragon Semarang (penulis sih cuma ditraktir).

            Tadi pagi ketika penulis selesai Sholat Subuh ditelpon oleh salah seorang customer, secara singkat isi percakapannya adalah "beliau kuatir jika beberapa komputer di kantornya juga ikut kena". Maka saya jawab saja, "Mudah-mudahan tidak ikut kena", alasannya karena semua komputer di kantor tersebut memakai OS GNU/Linux, penulispun memberi penjelasan singkat bahwa Malware tersebut dapat menginfeksi komputer berdasarkan hak akses direktori komputer, sedangkan peraturan hak akses GNU/Linux sudah demikian ketatnya.

            Karena beliau masih saja kurang puas dengan jawaban singkat penulis lewat telepon, maka penulis berjanji akan merangkum penjelasan singkat yang berhubungan masalah di atas dalam tulisan di Blog.
            Berikut beberapa penjelasan singkat mengenai masalah tersebut berdasarkan analisa ala tukang solder

            Teknisi sebagai Ahli IT

            Beberapa perusahaan yang terkena serangan Ransomware jenis WannaCRY ada yang menggunakan teknisi (tukang install) sebagai ahli IT, sehingga tidak tahu cara melakukan Patch suatu Sistem Operasi komputer.

            Menggunakan Sistem Operasi Ilegal

            Beberapa komputer yang terkena serangan WannaCRY menggunakan sistem Operasi ilegal atau tidak memiliki Lisensi sehingga tidak memungkinkan untuk diupdate atau diPatch.


            Sistem Operasi yang digunakan Kadaluarsa

            Beberapa komputer yang terkena serangan WannaCRY masih menggunakan sistem Operasi yang lama atau Kadaluarsa sehingga Patch untuk sistem operasi tersebut sudah tidak tersedia

            Demikian penjelasan singkat yang dapat penulis sampaikan mengenai masalah Ransomware Jenis WannaCRY berdasarkan pengetahuan penulis yang masih sangat terbatas ini, jika masih ada yang kurang silakan tambahkan melalui kolom komentar.

            Solusi Unduh Cepat VHD UNBK 2018 (Sebuah Usulan)

            Tahun 2018 ini, sebanyak 58.077 sekolah masing-masing 17.268 SMP, 10.208 MTs, 11.191 SMA, 6.905 MA, dan 12.505 SMK (data per 26 Januari 2018, 09:23:50 dari web resmi unbk.kemdikbud.go.id) kembali menyelenggarakan UNBK. Apa itu UNBK? Berikut saya kutip dari web yang sama : Ujian Nasional Berbasis Komputer (UNBK) disebut juga Computer...

            Pengumuman Pemenang Sayembara

            Berakhir sudah Sayembara Menggambar Sampul Buku LibreOffice yang diselenggarakan oleh Istana Media, dan karena yang mengirim desain hanya enam orang saja padahal yang unduh buku Inkscape versi digital lebih dari lima belas ribu orang, maka langsung saja kami umumkan pemenangnya.
            Berikut ini adalah pemenangnya:
              Juara 1: Bayu Aji
                Karya Bayu Aji
                 Juara 2: Nurkholis
                Karya Nurkholis
                Nah, karena minimnya desain gambar yang masuk, penyelenggara sayembara kesulitan untuk memilih dan menentukan juara ketiga. Demi untuk menghargai semua peserta yang sudah mengirimkan desainnya, maka dengan ini kami putuskan bahwa semua peserta (selain juara 1 dan 2) yang sudah mengirim desain gambarnya akan mendapatkan buku Menulis Buku dengan LibreOffice atau kami anggap sebagai juara 3 semua. 
                Berikut ini adalah desain gambar yang sudah masuk:





                Untuk semua peserta yang sudah mengikuti  Sayembara Menggambar Sampul Buku LibreOffice, harap mengirimkan biodata lengkapnya ke istanalinux@gmail.com, jangan lupa cantumkan juga nomor kontak yang bisa dihubungi.

                Demikian pengumuman Pemenang Sayembara Menggambar Sampul Buku LibreOffice, terima kasih kami ucapkan kepada semua peserta yang sudah mengirim karyanya.

                Semarang, 25 Januari 2018

                SAYEMBARA MENGGAMBAR SAMPUL BUKU LIBREOFFICE

                Waktu Sayembara
                • Sayembara dimulai tanggal 18 Januari 2018, dan ditutup tanggal 24 Januari 2018.

                Ketentuan
                • Gambar harus dibuat menggunakan aplikasi Inkscape.
                • Format gambar SVG.
                • Warna gambar dominan hijau.
                • Gambar mencerminkan cara menulis buku dengan mudah menggunakan LibreOffice dan aplikasi Open Source lainnya.
                • Ukuran gambar 37 x 23 cm dengan kerangka yang sudah disediakan penyelenggara.
                • Gambar pemenang menjadi hak milik ISTANA MEDIA, namun jika digunakan tetap mencantumkan nama pembuat gambar.
                • Nama pemenang 1 akan dicantumkan pada buku Menulis Buku dengan LibreOffice.
                • Pemilihan pemenang ditentukan oleh ISTANA MEDIA secara tertutup dan tidak bisa diganggu gugat.
                • Gambar hasil desain dikirim melalui surel ke istanalinux@gmail.com.
                • Nama-nama pemenang Sayembara diumumkan maksimal 5 hari setelah sayembara berakhir.

                Pengumuman Pemenang
                Akan dipilih 3 orang pemenang dengan imbalan sebagai berikut:
                • Pemenang 1: mendapatkan pulsa selular senilai 100 ribu, buku Desain Grafis dengan Inkscape dan Menulis Buku dengan LibreOffice versi cetak.
                • Pemenang 2: mendapatkan buku Desain Grafis dengan Inkscape dan Menulis Buku dengan LibreOffice versi cetak.
                • Pemenang 3: mendapatkan buku Menulis Buku dengan LibreOffice versi cetak.

                Pengiriman Imbalan
                • Masing-masing imbalan untuk pemenang akan dikirim setelah buku Menulis Buku dengan LibreOffice versi cetak beredar (maksimal 7 hari setelah edar).

                Tautan Unduh


                Update
                Ternyata ada typo pada kerangka buku  yang diunggah sebelumnya untuk itu penulis unggah ulang versi revisinya


                JANGAN DILIHAT DARI NILAI IMBALANNYA
                TAPI DARI NAMA ANDA YANG TERTULIS DALAM SEBUAH BUKU

                Kombinasi Tail dan Grep

                eiffel.di.blankon.in

                Ah susah ini nyari judul yang pas, searchable, googlingable. Kasusnya adalah seperti ini. Saya butuh mencari baris yang mengandung kata kunci tertentu pada file logs streaming.

                Berarti butuh perintah tail -f /path/to/log dan di grep hasilnya.

                $ tail -f FILE | grep PATTERN | tail -f -n10
                

                Namun kenyataannya, perintah diatas tidak mengeluarkan hasil apapun. Hasil utak-atik kata kunci di mesin pencari membawa pencarian saya di halaman Stackoverflow.
                Berikut format solusi yang bisa digunakan:

                $ grep PATTERN FILE | tail -n10; tail -f -n0 FILE | grep PATTERN;
                

                Contoh:

                $ grep user_subject_attributes /var/log/production.log | tail -n10; tail -f -n0 /var/log/production.log | grep user_subject_attributes;
                

                Selamat berburu logs!!

                Estu~

                31 Desember

                Setiap tanggal 31 December saya teringat sebuah obrolan dengan dosen pembimbing saat saya menjalani skripsi dulu. Obrolan ini terjadi karena penelitian saya yang sudah rampung dan saya tidak segera mengajukan waktu untuk seminar hasil, kenapa? Ah nanti kapan-kapan kalau sudah hampir lupa akan saya tuliskan.

                Suatu malam di ruang pantry tiba-tiba dia bertanya

                Dosen : Ka, jadi kapan kamu mau seminar?
                Saya : Kapan ya pak waktu yang pas? (Notes: Kebiasaan menjawab pertanyaan dengan pertanyaan, tidak baik dicontoh)
                Dosen : Saya udah dikejar-kejar sama dosen yang lain supaya kamu cepat selesai, gimana kalau tanggal 31 Desember (2010) saja? itu tanggalnya pas sama ulang tahun pernikahan saya.

                Kemudian kami tertawa dengan hangat

                Starting New Episode

                Hampir semua blog yang saya baca di akhir tahun ini menyampaikan pencapaian mereka selama tahun 2017, banyak hal yang terjadi. Begitu pula dengan saya, buat yang belum tahu bisa mendengarkan podcast saya tentang Resolusi 2018. Sehubungan dengan resolusi tersebut, seperti yang kalian perhatikan ada beberapa perubahan terkait blog ini, antara lain

                Membuang Disqus

                Ada beberapa alasan kenapa saya harus membuang Disqus, bukan karena saya tidak puas dengan pelayanan yang telah diberikan. Namun ini lebih kepada beberapa alasan pribadi seperti

                1. Terlalu Rumit
                  Sebenarnya tidak begitu rumit juga, karena memang ada dokumentasinya. Namun saya merasa bahwa harusnya ada yang lebih mudah dibandingkan dengan sistem komentar ini. Sesuatu yang memang seharusnya menghubungkan antara penulis dengan pembaca dengan lebih dekat.

                2. Lambat
                  Disqus terasa lebih lambat ketika membuka halaman post blog ini, seharusnya halaman post situs ini secepat busiat Flash.

                3. Tidak Semua Suka
                  Dan tidak semua orang suka menggunakannya.

                Saya mengganti sistem komentar saya menggunakan surel dan twitter. Kenapa? Karena dengan menggunakan dua platform tersebut saya berharap dapat berinteraksi lebih dekat para pembaca setia blog ini. Ini juga akan menghindari komentar-komentar yang out of topic dari artikel yang saya tulis.

                Subscriber

                Sebelumnya memang belum terpikir untuk mencari subscriber yang akan membaca blog ini, namun data berkata lain. Selama 2017, berapa banyak artikel yang telah saya tulis? Jumlah artikel yang saya tulis sedikit banyak karena saya pernah ikut event One Day One Article. Namun ketika event tersebut selesai, kembali seperti semula. Dimana saya hanya menulis artikel ketika memang hanya ingin. Bukan sebuah kebiasaan yang bagus.

                Karena hal tersebut saya pun menambahkan kolom untuk para pembaca mengikuti perkembangan blog ini. Dengan adanya orang yang mengikuti, harapannya saya akan lebih bersemangat untuk menulis hal bermanfaat.

                Belajar Bersama

                Seperti yang telah saya bahas di podcast saya tentang Resolusi 2018. Ada hal yang ingin saya pelajari yaitu Pair Programming, untuk itu saya menyematkan sebuah link Pair With Me! di bagian bawah setiap artikel yang saya tulis. Harapannya dengan adanya link tersebut membuka kesempatan bagi saya untuk membantu orang dan meningkatkan kemampuan saya dalam mempelajari Pair Programming. Jika kalian berminat klik saja langsung.

                Kesimpulan

                Blog ini telah saya ubah untuk menyesuaikan episode baru yang akan kita hadapi dalam beberapa puluh jam kedepan. Semoga dengan perubahan baru kita dapat memulai hal yang lebih baik di episode baru.

                Mungkin ini adalah tulisan terakhir saya di tahun 2017. Nantikan artikel-artikel baru terkait podcast yang sedang saya lakukan dan juga bagaimana proses pembelajaran saya terkait Pair Programming di tahun 2018 nanti.

                Jika kalian membaca hingga baris ini, jangan lupa untuk subscribe di blog ini!

                Podcast Pertama Linhub

                Ini merupakan ide awal tahun, yang baru terealisasi saat ini. Semoga bisa membuat podcast yang lebih baik dan bermanfaat kedepannya.

                Podcast ini nanti akan digunakan sebagai sarana untuk berbagi pengetahuan, semoga bermanfaat untuk teman-teman yang telah mendengarkan. Jika ada yang ingin dibahas untuk topik podcast selanjutnya silahkan hubungi via link-link kontak yang tersebar di halaman ini.

                Untuk jadwal podcast ini adalah 1 kali dalam seminggu, semoga selama 2018 nanti saya bisa tetap konsisten membuat podcast tiap minggunya. Bantu ingatkan saya jika memang ada kekurangan atau kelupaan dalam konsistensi membuat podcast ini.

                Operasi pada Array di Ruby

                Array atau Larik merupakan salah satu bentuk struktur data pada Ruby yang dapat menyimpan banyak data, disebut dengan elemen, dengan suatu nama yang sama dan menempati tempat di memori yang berurutan (kontigu) serta bertipe data sama. Pada Ruby array dapat berisi berbagai macam tipe data seperti angka, string, dan object Ruby lainnya. Ketika kita memiliki data dalam bentuk array, kita dapat melakukan beberapa operasi seperti mengurutkan, menghapus duplikasi, membalik urutan, mengambil sebagian dari array, melakukan transformasi data, dan menjadikan sebuah array kedalam satu nilai tertentu.

                Pada kesempatan kali ini kita akan melakukan eksplorasi method yang bisa kita gunakan dalam melakukan operasi pada array. Beberapa method yang akan kita gunakan mungkin akan terasa baru, seperti method yang menggunakan tanda seru (!) atau method dengan tanda tanya(?). Untuk method dengan tanda seru (!), berarti method tersebut memiliki efek samping seperti merubah array asli tanpa melakukan proses penyalinan atau memunculkan exception. Sedangkan method dengan tanda tanya (?), menunjukkan bahwa method tersebut mengembalikan nilai boolean.

                Akses Elemen pada Array

                Seperti pada bahasa Python, array pada Ruby dapat diakses langsung dengan menggunakan nomor indeksnya(dimulai dari 0) seperti berikut:

                languages = ["Ruby", "Javascript", "Python"]
                languages[0]    # "Ruby"
                languages[1]    # "Javascript"
                languages[2]    # "Python"
                

                Selain itu kita dapat menggunakan method .first dan juga .last untuk mengakses elemen pertama dan terakhir dari sebuah array seperti berikut:

                languages = ["Ruby", "Javascript", "Python"]
                languages.first     # "Ruby"
                languages.last      # "Python"
                

                Jika kita mengakses indeks yang tidak ada, kita akan mendapatkan nil. Namun jika ingin memperoleh nilai galat, kita dapat menggunakan method .fetch seperti berikut:

                languages = ["Ruby", "Javascript", "Python"]
                languages.fetch(42)     # IndexError: index 42 outside of array bounds: -3...3
                languages.fetch(42, "None")     # "None"
                

                Mengambil Beberapa Elemen dari Array

                Ada saatnya kita perlu mengambil beberapa elemen dari sebuah array, hal ini dapat dilakukan dengan menentukan nilai awal dari indeks array dilanjutkan dengan jumlah elemen yang kita perlukan seperti berikut:

                languages = ["Ruby", "Javascript", "Python", "Haskell"]
                languages[1,2]  # ["Javascript", "Python"]
                

                Pada potongan kode di atas, kita memulai dari indeks 1, berisi "Javascript", dan kita mengambil 2 elemen, dan kita mendapatkan array baru berisi "Javascript" dan "Python". Selain menggunakan metode tersebut kita dapat menggunakan method .slice

                languages = ["Ruby", "Javascript", "Python", "Haskell"]
                languages.slice(1,2)    # ["Javascript", "Python"]
                

                Yang perlu diperhatikan adalah ketika menggunakan method .slice maka kita akan mendapatkan array baru tanpa merubah array asli. Namun jika kita menggunakan method .slice! maka array asli akan berubah.

                Method lain yang bisa kita gunakan adalah .take, dimana method ini akan memberikan kita jumlah elemen yang kita perlukan dimulai dari indeks pertama array seperti berikut:

                languages = ["Ruby", "Javascript", "Python", "Haskell"]
                languages.take(2)   # ["Ruby", "Javascript"]
                

                Mendapat Nilai Acak dari Array

                Terkadang kita memerlukan nilai acak untuk menentukan hasil undian, dengan menggunakan array kita dapat menggunakan nilai awal dan akhir indeks untuk kemudian menghasilkan nilai acak. Namun cara termudah adalah dengan menggunakan method .sample seperti berikut:

                languages = ["Ruby", "Javascript", "Python", "Haskell"]
                languages.sample        # Python
                languages.sample(2)     # ["Ruby", "Javascript"]
                

                Method .sample juga menerima argumen untuk menentukan jumlah elemen acak yang kita perlukan.

                Pencarian dan Penyaringan Array

                Ketika mencari sebuah elemen dari array umumnya kita akan melakukan iterasi pada array hingga menemukan elemen yang dimaksud. Kita dapat menggunakan method .include?, yang menghasilkan nilai boolean ketika data yang dimaksud ditemukan atau tidak.

                languages = ["Ruby", "Javascript", "Python", "Haskell"]
                languages.include? "Haskell"    # true
                languages.include? "Elixir"     # false
                

                Perlu diketahui, method .include? membutuhkan nilai yang benar-benar cocok, kita tidak dapat melakukan pencarian dengan nilai parsial seperti berikut:

                languages = ["Ruby", "Javascript", "Python", "Haskell"]
                languages.include? "Java"       # false
                languages.include? "Rub"        # false
                languages.include? "py"         # false
                

                Method lainnya adalah .find, dimana method ini akan mengembalikan nilai pertama muncul yang sesuai dengan spesifikasi yang kita berikan, berikut contoh penggunaan .find:

                languages = ["Ruby", "Javascript", "Python", "Haskell"]
                languages.find {|language| language.include?("o")} # "Python"
                

                Selain .find kita juga dapat menggunakan .select untuk menghasilkan array baru berisi hasil yang sesuai dengan spesifikasi yang kita berikan, berikut contoh:

                languages = ["Ruby", "Javascript", "Python", "Haskell"]
                languages.select {|language| language.include?("a")}
                
                # ["Javascript", "Haskell"]
                

                Sedangkan untuk menghasilkan array baru yang tidak sesuai spesifikas, kita dapat menggunakan method .reject, berikut contoh:

                languages = ["Ruby", "Javascript", "Python", "Haskell"]
                languages.reject {|language| language.include("a")}
                
                # ["Ruby", "Python"]
                

                Sama seperti sebelumnya method .select dan .reject juga menghasilkan array baru tanpa merubah array asli. Namun .select! dan .reject! mengubah array asli.

                Mengurutkan Data pada Array

                Proses pengurutan array dapat dilakukan dengan method .sort seperti berikut:

                languages = ["Ruby", "Javascript", "Python", "Haskell"]
                languages.sort      # ["Haskell", "Javascript", "Python", "Ruby"]
                

                Jika ingin membalik urutan, kita dapat menggunakan method .reverse seperti berikut:

                languages = ["Haskell", "Javascript", "Python", "Ruby"]
                languages.reverse   # ["Ruby", "Python", "Javascript", "Haskell"]
                

                Proses pengurutan data dengan method .sort dapat berubah menjadi kompleks, untuk melakukan pengurutan yang lebih kompleks kita dapat menggunakan operator pembanding (<=>) pada Ruby. Operator ini membandingkan objek Ruby sebagai berikut:

                1 <=> 2     # -1
                2 <=> 2     # 0
                2 <=> 1     # 1
                

                Berikut adalah contoh penggunaan operator pembanding dengan method .sort:

                languages = ["Ruby", "Javascript", "Python", "Haskell"]
                languages.sort {|a,b| a <=> b}
                
                # ["Haskell", "Javascript", "Python", "Ruby"]
                

                Seperti method sebelumnya .sort juga akan memberikan array baru tanpa mengubah array asli, gunakan .sort! jika kamu perlu mengubah array asli.

                Menghapus Duplikasi Elemen

                Ketika kita menggabungkan dua atau lebih array kemungkinan kita akan mendapatkan nilai duplikasi

                lang1 = ["Ruby", "Python"]
                lang2 = ["Python", "Haskell"]
                lang3 = ["Javascript", "Elixir"]
                
                lang1 + lang2 + lang3
                # ["Ruby", "Python", "Python", "Haskell", "Javascript", "Elixir"]
                

                Kita dapat menggunakan method .uniq untuk menghapus duplikasi tersebut

                languages = ["Ruby", "Python", "Python", "Haskell", "Javascript", "Elixir"]
                languages.uniq  # ["Ruby", "Python", "Haskell", "Javascript", "Elixir"]
                

                Namun selain menggunakan method .uniq, ketika proses penggabungan kita dapat menggunakan operator pipa | untuk menghindari duplikasi seperti berikut:

                lang1 = ["Ruby", "Python"]
                lang2 = ["Python", "Haskell"]
                
                lang1 + lang2
                # ["Ruby", "Python", "Python", "Haskell"]
                

                Transformasi Data Array

                Untuk melakukan transformasi pada sebuah array, kita perlu melakukan operasi pada tiap elemen array tersebut. Hal ini dapat dilakukan dengan menggunakan method .map, berikut adalah contoh sederhana untuk menjumlahkan tiap elemen array dengan 2:

                numbers = [1, 2, 3, 4, 5]
                numbers.map {|number| number + 2}
                
                # [3, 4, 5, 6, 7]
                

                Sama seperti method sebelumnya .map juga memiliki .map! jika diperlukan untuk mengubah array asli.

                Mereduksi Array

                Mungkin kita pernah dihadapkan kondisi untuk menjumlahkan nilai pada sebuah array. Hal ini dapat dilakukan dengan menggunakan method .reduce berikut contoh:

                numbers = [1, 2, 3, 4, 5]
                numbers.reduce(0) {|result, current| result += current}
                
                # 15
                

                Dan method .reduce juga bisa menggunakan binary method, sehingga cara diatas dapat ditulis sebagai berikut:

                numbers = [1, 2, 3, 4, 5]
                numbers.reduce(:+)
                
                # 15
                

                Kesimpulan

                Pada kesempatan ini kita telah melakukan beberapa operasi pada array termasuk didalamnya mengakses elemen, melakukan pencarian pada array, mengurutkan array, dan beberapa hal lainnya. Operasi pada array tersebut cukup berguna dalam memecahkan masalah yang sering dihadapi ketika melakukan pemrograman dengan Ruby.

                Eksplorasi Ruby dengan IRB

                IRB merupakan singkatan dari Interactive Ruby, sebuah perkakas REPL (Read, Evaluate, Print, Loop) yang memungkinkan kita untuk mencoba kode Ruby tanpa harus membuat berkas .rb. Untuk menggunakan IRB sendiri cukup mudah, cukup dengan menjalankan perintah $ irb pada terminal dan mulai menulis baris kode pada prompt IRB. Secara langsung IRB akan mengevaluasi kode dan menampilkan hasilnya.

                IRB sendiri memberikan akses langsung kepada semua fitur built-in Ruby, termasuk juga gem yang telah kita install. Sebagai tambahan, kita dapat melakukan konfigurasi pada IRB untuk menyimpan history command kita, mengaktifkan auto-completion dan beberapa hal lainnya.

                Pada kesempatan ini kita akan mencoba menggunakan IRB untuk menjalankan kode program, menggunakan library via IRB, dan melakukan kustomisasi pada sesi IRB.

                Memulai IRB

                Untuk memulai IRB cukup mudah, pastikan jika kamu telah memasang Ruby pada komputer yang kamu gunakan, lalu jalankan perintah irb pada terminal (command prompt pada Windows). Kemudian akan muncul prompt IRB pada terminal sebagai berikut

                irb(main):001:0>
                

                Ini mengindikasikan bahwa IRB telah dijalankan dan semua yang akan dieksekusi akan dijalankan pada konteks main yang merupakan konteks tertinggi pada program Ruby. Selain itu prompt ini juga menunjukkan nomor baris.

                Catatan: Jika menggunakan rvm, kemungkinan ada sedikit perbedaan pada prompt yang muncul. Untuk menyamakan dengan tutorial ini jalankan perintah irb dengan opsi --prompt inf-ruby.

                Untuk keluar dari IRB cukup dengan mengetikkan perintah exit atau menggunakan kombinasi tombol CTRL+D.

                Menjalankan Kode pada Sesi IRB

                IRB merupakan sebuah perangkat yang mempermudah kita untuk mencoba suatu solusi terhadap permasalahan yang kita hadapi dengan cepat. Cukup dengan mengetikan kode pada IRB, maka kita dapat melihat yang hasil yang kita harapkan dengan langsung ketika dieksekusi. Contoh sederhana adalah dengan menjumlahkan dua angka pada IRB

                irb(main):001:0> 1 + 2
                => 3
                

                Simbol => merupakan tanda yang mengindikasikan nilai dari statement yang kita eksekusi pada IRB. Contoh berikutnya

                irb(main):001:0> puts "Selamat Datang di Linhub"
                

                Ketika menekan tombol ENTER, maka IRB akan menampilkan dua hasil

                Selamat Datang di Linhub
                => nil
                

                Baris pertama merupakan hasil dari method puts, mencetak string yang diinginkan dengan tambahan line break. Baris kedua menunjukkan nilai dari statement kita, karena setiap method pada Ruby memiliki nilai return. Nilai dari method puts adalah nil, dan ini yang ditunjukkan dengan IRB. Hal ini dapat membantu kita melakukan debugging pada bentuk statement yang lebih kompleks, karena pesan galat akan mengacu pada nomor baris pada IRB.

                Selain itu kita juga dapat memberi nila pada variabel untuk sesi IRB yang sedang kita jalankan sebagaimana program Ruby pada umumnya.

                irb(main):002:0> nama = "Ngalim Siregar"
                => "Ngalim Siregar"
                

                Variabel ini dapat kita gunakan seperti biasa

                irb(main):003:0> puts nama
                Ngalim Siregar
                => nil
                

                Pembuatan statemen pada IRB dapat dilakukan dengan ekspresi satu baris atau multi baris. Berikut adalah penggunaan multi baris pada sesi IRB

                irb(main):004:0> ["Linhub", "Ngalim", "Jekyll"].select do |text|
                irb(main):005:1*  text.include?("i")
                irb(main):006:1> end
                 => ["Linhub", "Ngalim"]
                

                Dengan menggunakan IRB kita dapat mengevaluasi kode sebelum kita implementasikan pada program yang sedang kita tulis.

                Menggunakan Pustaka dan Gem

                Untuk menggunakan pustaka atau libraries pada sesi IRB diperlukan keyword require sebagaimana ketika menggunakan pustaka pada program Ruby umumnya. Pustaka yang bisa digunakan dapat berupa pustaka standard, program yang kita buat, atau bahkan gem, kumpulan pustaka yang didistribusikan melalui rubygems.org yang bisa kita pasang dengan perintah gem.

                Untuk pustaka standard dapat langsung kita panggil dengan perintah require <nama_pustaka>, namun untuk pustaka tambahan tidak dapat dipanggil secara langsung. Kita perlu memasang pustaka tersebut dengan perintah gem install <nama_pustaka>.

                Untuk memanggil pustaka yang kita perlukan saat pertama kali memanggil IRB, kita dapat menggunakan opsi -r ketika menjalankan IRB. Sebagai contoh, ketika kita ingin memanggil pustaka httparty ketika pertama kali menjalankan IRB dapat dilakukan dengan

                $ irb -r httparty
                

                Dengan memanggil pustaka dan kode kita ke dalam IRB, kita dapat menginspeksi kode dengan lebih baik sebelum benar-benar mengintegrasikan ke program seutuhnya.

                Kustomisasi IRB

                Konfigurasi untuk IRB disimpan pada berkas .irbrc pada direktori home, lebih mudah jika ditulis dengan ~/.irbrc. Berikut adalah contoh konfigurasi untuk IRB

                require `irb/completion'
                
                IRB.conf[:SAVE_HISTORY] = 1000
                IRB.conf[:HISTORY_FILE] = '~/berkas_histori_irb'
                IRB.conf[:AUTO_INDENT]  = true
                
                def history(count = 0)
                
                  history_array = Readline::HISTORY.to_a
                  count = count > 0 ? count : 0
                
                  if count > 0
                    from = hist.length - count
                    history_array = history_array[from..-1] 
                  end
                
                  print history_array.join("\n")
                end
                

                Pada contoh diatas, kita memanggil pustaka irb/completion untuk mengaktifkan fitur auto-complete pada IRB. Sedangkan method history dapat kita jalankan pada konsole IRB untuk menampilkan histori ke-n terakhir.

                Hal yang perlu diperhatikan pada .irbrc adalah kita dapat memanggil beberapa pustaka yang sering kita gunakan, namun hal ini juga akan berpengaruh pada kecepatan IRB ketika pertama kali membuat sesi.

                Kesimpulan

                Dengan menggunakan IRB, kita dapat melakukan berbagai eksperimen kode Ruby. Ini merupakan perangkat yang cukup membantu untuk mencoba alur program sebelum benar-benar dituliskan.

                Log Kulgram 002 Kemas Aplikasimu dengan Docker Container

                KULGRAM #002 Docker Container DIMULAI banner kulgram #002 Assalamualaikum, selamat malam temen-temen semua… Bagaimana kabarnya malam Minggu ini? Nah, kira-kira saya perlu perkenalan lagi gak nih? hehehe…. Perkenalkan (lagi), saya Samsul Ma’arif. Saya warga negara Indonesia asli Cilacap, Jawa Tengah yang sekarang tinggal di Turen, Kab. Malang, Jawa Timur bersama...

                Logrotate | Bersih-bersih Kapasitas Hardisk

                logs

                Biasanya, yang membuat hardisk server penuh adalah ukuran log yang membesar tiap harinya tanpa diurusi. Harusnya ada manajemen log.

                Apa yang harusnya dilakukan pada log?

                1. Memecah log dalam satuan waktu, misal log pertanggal dengan format tanggal ISO (*-YYYYMMDD.log).
                2. Menghapus log lama otomatis, misal log 7 hari yg lalu akan dihapus.

                Implementasi ?
                Logrotate.

                Berikut contoh konfigurasi yang biasa saya lakukan:

                • Install logrotate.
                  $ sudo apt install logrotate
                  
                • Atur konfigurasi logrotate.
                  /path/to/log {
                      daily
                      missingok
                      rotate 7
                      size 100M
                      compress
                      delaycompress
                      notifempty
                      create 0640 user user
                      sharedscripts
                  }
                  
                • Testing Logrotate
                  $ sudo logrotate -vf /etc/logrotate.d/{{ app_name }}
                  
                • Restart service cron

                Kalau ada pertanyaan, silahkan tinggalkan komentar. Sekian.

                Estu~

                Mengoreksi Kapasitas Hardisk Sistem Operasi

                Tumis-Tempe

                ps: foto tak ada hubungan sama isi postingan

                Nah ini sebenarnya sering saya lupa, tapi nyari pas butuh. Mesin penuh, service matik.

                Nyari pembagian partisi

                # sudo fdisk -l
                

                Nyari kepastian ukuran partisi yang terpakai

                # sudo df -h
                

                Nyari ukuran folder pada posisi $(pwd)

                # sudo du -sh
                

                Nyari list ukuran deretan folder, demi mengetahui folder mana yang menghabiskan space paling besar

                # sudo du -h --max-depth=2 .
                

                Sepertinya itu aja kali ini. Lanjut cara benerinnya diposting selanjutnya. Kalau ada nemu yg lain nanti, akan saya tambahin disini.

                Estu~

                Log Kulgram 001 Up & Running with Docker Container

                KULGRAM Docker DIMULAI Assalamu’alaikum, selamat malam teman-teman semua. Perkenalkan, saya Samsul Ma’arif. Saya warga negara Indonesia asli Cilacap, Jawa Tengah yang sekarang tinggal di Turen, Kab. Malang, Jawa Timur bersama istri tercinta :-D. Aktifitas saya sehari-hari adalah seorang A.J.I. Ada yang tau apa itu? Ya, betul. Antar Jemput Istri. Selain...

                Upgrade BlankOn Tambora Menjadi BlankOn Uluwatu

                Screenshot from 2017-11-13 16-40-47

                CATATAN: RESIKO DITANGGUNG SENDIRI.
                Penulis tutup mata jika langkah-langkah dibawah ini mengakibatnya keharusan memasang ulang OS di Laptop/PC masing-masing.

                Ini adalah surhatan saya. Langkah berikut adalah pengalaman penulis, tidak ada jaminan akan berlaku sama jika diuji orang lain.

                Berawal dari; oleh karena suatu sebab musabab, repo Tambora tidak lagi sehat dan beberapa kerjaan saya membutuhkan paket-paket lain. Jadi intinya saya g bisa masang-masang tools buat ngetik aneh-aneh.

                Diputuskan: DIST-UPGRADE ke Uluwatu

                Kondisi:
                Laptop Thinkpad X260, terpasang BlankOn Tambora 64bit.

                Karena dipakai kerjaan, jadinya proses ini saya cicil harap-harap cemas.

                Step-step nya adalah:

                1. Ganti repo menuju Uluwatu.
                  deb http://arsip-dev.blankonlinux.or.id/blankon uluwatu main restricted extras extras-restricted
                  
                2. Update dan install kernel baru. Reboot setelah itu.
                  sudo apt install linux-headers-amd64 linux-image-amd64
                  
                3. Benerin applikasi yg ngaco gegara upgrade kernel (wifi install ulang driver dan virtualbox upgrade sekalian). Reboot setelah itu.
                  sudo apt-get install firmware-iwlwifi --reinstall
                  sudo sh VirtualBox-5.1*
                  
                4. Upgrade aplikasi yg biasa dipakai. Bisa disorting via sudo apt list --upgradable. Aplikasi yang saya upgrade sebangsa Firefox, terminator, calibre dkk. Beberapa paket compiler juga.
                  sudo apt install lsb aptitude inkscape vim zsh s3cmd zsync make sudo rsync build-essential tzdata openssh-client nano tar unzip audacious automake firefox xchat curl gedit dpkg gedit git reprepro terminator time wget tree sed bash whois p7zip openssl samba mount unrar mc net-tools nmap cron debootstrap gparted lsb
                  
                5. Hapus paket yang bentrok. VLC saya hapus.
                  sudo apt remove vlc
                  
                6. Kalau sudah yakin, kita mulai dari upgrade. Dalam proses ini ada beberapa pertanyaan terkait ada config yang berubah seperti lsb-release. (Saya lupa yg lain, ada 2-3 kali).
                  sudo apt upgrade
                  
                7. Lanjut dengan dist-upgrade. Setelah selesai, silahkan reboot. Jangan lupa berdoa (beneran harap-harap cemas ini)
                  sudo apt dist-upgrade
                  

                Step-step setelah selesai dist-upgrade dan masalah-masalah yang timbul:

                1. Bersihkan sisa-sisa paket
                  sudo apt clean && sudo apt autoremove
                  
                2. Benerin driver touchpad.
                  sudo apt install xserver-xorg-input-libinput --reinstall &&
                  sudo apt remove --purge xserver-xorg-input-synaptic
                  
                3. Atur tap dan natural scrolling dari panduan ini.
                  sudo modprobe -r psmouse
                  sudo modprobe psmouse
                  

                  Kemudian buka gnome-control-center, atur sesuai kebutuhan (enable tap dan natural scrolling)

                Sudah, itu saja yang saya lakukan.

                Beberapa kutu yang masih ada adalah:

                1. Tampilan grub masih biru bawaan Debian, berbeda dari Tambora yg sudah ada khas logo BlankOn di pojok kanan.
                2. Network applet belum muncul.
                3. Paket VLC rusak.

                Menuju RC3. Yay!!
                Estu, yg mumet mainan Tsung.

                Starting EndlessOS

                Did you know about EndlessOS? you can read here.

                Since end of October, I’m joining Endless Ambassadors Programme. And on November 3rd until November 5th, we have reatreat in Jogjakarta with others Ambassador and Endless employee.

                Today, I’m decide to use EndlessOS as my daily OS. I wanna try it, if it’s can fit with me or not. Before using EndlessOS, I’m using Ubuntu and Debian. Personally, since it’s using Linux, I have no struggle on it.

                But EndlessOS is different. I according to my first impression before (I install it on another computer), it’s good for new comers but not for advance users.

                Right now I’m using EndlessOS 3.3 on my X1 Carbon that using Intel Core i7 5600U and single boot. I’m downloading from Buaya. Yes that’s local repository. It’s because more faster than from the original download source.

                First Impression

                Fast!

                Yes it’s fast, from boot until going to desktop. Even faster than BlankOn.

                Nice

                I love the wallpaper.

                EndlessOS DesktopEndlessOS Desktop

                Just Work

                My laptop just work on it. Everything seems ok even I have some notes and I will put on last section of this post.

                App Center

                After installing, I need to make sure that my needs are ready in App Center, so I just randomly look at that.

                App Center #1App Center #1

                There’s local encyclopedia, so you don’t need to connect internet everytime.

                App Center #2 – Encyclopedia

                And there’s also Android Studio.

                App Center #3 - Android StudioApp Center #3 – Android Studio

                I install some of them according to my needs. They’re success installed on my system. One or two seem has problem when downloading the package. I was wondering that’s because internet connection not good. As far I know, that’s need international connection and mostly, this country connection not good at that.

                AudacityAudacity – My lovely application

                There’s some “weird” in App Center. It’s has two GIMP. Probably it can make new comers feel confuse at first time. They need to choose which one is the “real” one.

                Two GIMPTwo GIMP

                Steinberg UR242

                Steinberg UR242Steinberg UR242

                My external soundcard is working here (even I just only playing music from youtube). I have Steinberg UR242. And it’s smoothly can play song from youtube.

                Let's RockLet’s Rock

                What is missing?

                TuxGuitar – Yeah! there’s no tuxguitar in App Center right now. This is my “must have apps all the time”.

                Ardour – this is also in my list of apps.

                Thunderbird – I can’t find it in App Center. My office use it and I already has backup from previous installation.

                VirtualBox – No virtualbox. 🙂

                Touchpad – My touchpad always stopped to able to scroll after suspending system (or close the screen). It’s happen in Ubuntu 17.10, and can be solved by installing xserver-xorg-input-synaptics.

                Telegram Desktop – It’s not working for me. It’s always force close when I input phone number.

                Translations

                I found some translation that not fit (yes of course I can help to make better translations).

                Use “Siap digunakan” insted of “Siap Pergi”

                 

                It’s better use “Ini mungkin memakan waktu” instead of “Ini mungkin makan waktu”

                 

                Steinberg UR242 Ubuntu 17.10

                Bulan ini saya jajan kartu suara baru buat bermain gitar. Sebelumnya nyoba beberapa kartu suara hasil minjem dari beberapa teman. Atas rekomendasi pakar studio rekaman Nada Musika, terpilihlah Steinberg UR242.

                Steinberg UR242

                Saya colokkan ke USB di MacOS, langsung ketedek. Saya langsung optimis bahwa ini akan berfungsi di linux (kecuali fitur DSP, karena saya belum tau entah ada atau tidak di linux). Dan benar saja, dicolokkan ke Ubuntu 17.10 langsung jreng.

                Hasil lsusb, muncul Yamaha, karena memang sekarang milik Yamaha.

                 

                Pada halaman settings

                Menghapus Volume Group Hardisk Setelah Install Proxmox VE

                Nah, ini adalah catatan untuk mengingat pengalaman yang pernah saya alami. Diambil dari berkas log yang sempat saya simpan di laptop saya. Saat itu saya masih mengajar di SMK TI Kawunganten, Cilacap. Setelah praktik install proxmox VE, hardisk tersebut akan digunakan untuk keperluan lain. E, tapi, ternyata hardisk tersebut tidak...

                Catatan Membuat Pabrik CD BlankOn di Debian 9

                Pabrik CD merupakan sebuah alat untuk membuat berkas ISO dari sebuah distro Linux. BlankOn Linux merupakan distro yang dikembangkan oleh YPLI dan komunitas pengembang BlankOn. Berdasarkan commit history, Pabrik CD pertama kali dikembangkan pada 13 November 2011 oleh pak Mohammad Anwari (MDAMT). Saat itu beliau adalah Koordinator pengembang BlankOn untuk...

                Virtual Environtment

                Perkembangan perangkat bahasa pemrograman semakin cepat dan bervariasi. Namun pengembang banyak yang masih bertahan di versi ‘jadul’, terutama untuk perangkat di mesin-mesin produksi, dan tampak enggan beranjak karena menjaga stabilitas layanan.

                Di sisi lain pengembang bahasa pemrograman terus memperbaiki fitur dan kutu yang tentunya membuat semakin baik lagi. Coba saja ikuti versi setiap bahasa pemrograman.

                Apa yang bisa kita lakukan?

                Sebagai bagian dari pengembangan, tentunya ada sisi lain yang perlu dilakukan selain menulis baris kode, yaitu riset. Percobaan-percobaan yang perlu dilakukan untuk melihat berbagai kemungkinan penerapan di luar platform yang digunakan maupun penerapan pada platform yang lebih baru.

                Mengetahui platform lain perlu sebagai perbandingan atau benchmark akan kondisi teknologi yang digunakan saat ini. Karena pada hakekatnya perkembangan teknologi itu berjalan beriringan namun penerapan bergantung dari fokus pengembang platform. Pengguna tentunya sangat diuntungkan dengan adanya banyak pengembangan yang arahnya sama.

                Platform yang lebih baru tentunya memiliki fitur yang lebih, baik dari segi kualitas kode maupun keamanan. Kondisi ini mewajibkan tim riset untuk mencoba mengubah kode seiring dengan naiknya versi platform yang digunakan. Tak melakukannya akan membuat beberapa masalah dikemudian hari. Mau mencoba?

                Lingkungan Virtual

                Lingkungan Virtual atau Virtual Environtment merupakan sebuah media, sarana percobaan, memasuki lingkungan pengembangan yang baru. Beberapa platform, bahasa pemrograman, sudah memiliki sarana ini. Hal ini memudahkan periset untuk menjalankan tugasnya.

                Beberapa bahasa pemrograman yang memiliki sarana ini akan coba dibahas.

                Perlbrew untuk Perl

                Untuk platform Perl,  silakan coba Perlbrew. Ada 2 cara dalam melakukan pemasangan, dengan CPAN atau manual, namun rekomendasi tentunya menggunakan cara aman, yaitu CPAN.

                Melakukan instalasi dengan CPAN sangat mudah cukup jalankan “cpan App::perlbrew” untuk memasang, dan jalankan “perlbrew init” untuk mulai menggunakannya.

                Pyenv untuk Python

                Jika anda pengguna Python, silakan pasang Pyenv. Untuk pemasangannya silakan clone proyek ke .pyenv di home dengan perintah “git clone https://github.com/pyenv/pyenv.git ~/.pyenv“.

                Setelah semua selesai silakan ubah variabel PYENV_ROOT ke folder tadi ($HOME/.pyenv). Dan tambahkan $HOME/.pyenv/bin ke dalam $PATH. Dan terakhir, jalankan “pyenv init -“. Untuk otomasi silakan edit berkas .bashrc atau .bash_profile Anda.

                 Sebenarnya pyenv ini merupakan hasil fork rbenv yang akan dijelaskan kemudian.

                Rbenv untuk Ruby

                Terakhir kita akan membahas platform Ruby dengan rbenv. Pada dasarnya pemasangan sama dengan pyenv mengingat ini adalah proyek induk. Namun dalam hal pemasangan versi tambahan, membutuhkan pengaya lagi, yaitu ruby-build, dimana  pyenv yang sudah memasukkannya secara built-in. Untuk pemasangan ikuti saja perintahnya di sini, yang pada dasarnya sama dengan pyenv.

                Pemasangan paket tambahan dengan memasukkan ruby-build dengan menjalankan perintah berikut:

                > mkdir -p “$(rbenv root)”/plugins
                > git clone https://github.com/rbenv/ruby-build.git “$(rbenv root)”/plugins/ruby-build

                Dan nikmati kemudahannya.

                Pilihan

                Platform itu adalah pilihan. Layaknya seorang laki-laki yang memilih istri untuk menjadi ibu bagi anak-anaknya. Jadi, silakan pilih dengan seksama dengan siapa Anda akan menikah. Eh, kog jadi ngelantur. 😀

                Tapi memang itulah yang sebenarnya, Anda perlu tahu banyak sebagai pertimbangan dalam menentukan platform yang akan Anda gunakan. Bukan untuk menyindir yang suka “gonta-ganti” platform, tapi sebaiknya platform yang digunakan dapat diadopsi dalam waktu hampir tak terbatas untuk menjaga tersedianya layanan. Sekali lagi itu adalah pilihan.

                Dan kenapa saya tidak menulis panjang lebar mengenai bagaimana penggunaannya? Hai, pembaca. Apakah Anda yang membaca ini ingin melakukan riset atau hanya membaca? Poin penting periset adalah membaca dan mencoba menerapkan, bila satu poin gagal ya…

                Jangan malas membaca, ya. Dokumentasi lengkap kog.

                Dan sekali lagi. Ini adalah pilihan. Buru-burulah memilih, sebelum diambil orang. #eh

                Cara Install Debian 9 (Stretch) dengan Pemartisian Manual

                Instalasi sistem operasi Debian pada umumnya sama, versi berapa pun. Dan tutorial/panduan instalasi Debian sudah banyak tersebar di internet. Anda dapat dengan mudah mendapatkannya dalam sekejap melalui mesin pencari google. Lalu apa istimewanya tutorial yang saya tulis ini? Hehehe… tidak ada yang istimewa kok. Catatan (bukan tutotial loh yah) saya...

                Liputan Acara Bekraf-Habibie Festival (bagian 1)

                Pada tanggal 12 dan 13 Agustus lalu penulis ikut jaga stan Ridon & BlankOn dalam acara BEKRAF-HABIBIE FESTIVAl yang dilaksanan di PRJ Kemayoran.
                Acara tersebut sebenarnya diselenggarakan dari tanggal 7 s/d 13 Agustus 2017, namun penulis hanya bisa bantu-bantu jaga dua hari saja, yaitu tanggal 12 dan 13.
                Penulis berangkat dari semarang tanggal 12 Agustus dini hari dari Stasiun Besar Tawang Semarang dengan naik Kereta Api kelas kurang manusiawi Ekonomi Kertajaya.
                Singkat Cerita penulis sampai di Stasiun Pasar Senen terlambat 15 menit dari jadwal yang sebenarnya, yang harusnya sampai stasiun Senen jam 8.40 WIB jadi jam 8.55 WIB. sampai stasiun senen langsung menuju PRJ Kebayoran dengan menggunakan jasa Ojek Online.
                Ternyata sampai di PRJ Kebayoran stan dalam pameran belum pada buka, ketika penulis tanya pada security yang boleh masuk adalah yang jaga stan saja, nah saya bilang saja kalau saya jaga stan Ridon & BlankOn, padahal alasan sebenarnya pengen cari Toilet karena perut saya mules.
                Setelah perut terasa lega dan cuci muka alakadarnya, clingak-clinguk mencari lokasi satan Ridon & BlankOn, singkat cerita penulis akhirnya menemukan stan yang dicari,  selanjutnya penulis punya inisiatif untuk menata peralatan di stan.


                Nah ketika mau menata peralatan stan, penulis jadi bingung sendiri karena mau ditata bagaimana, akhirnya penulis buka Facebook group BlankOn untuk melihat susunan peralatan stan melalui beberapa gambar yang sudah di pamerkan oleh teman-teman penjaga stan sebelumnya 
                Posisi terlihat dari depan

                Posisi terlihat daridalam stan
                Anak-anak foto dengan latar belakang Boni
                Belum selesai penulis menata peralatan stan, tenryata acara pameran sudah dibuka, dan efeknya stan Ridon & BlankOn dibanjiri oleh pengunjung karena stan-stan lain masih pada tutup, akhirnya penulis hentikan penataan peralatan stan karena penulis harus melayani pengunjung yang bertanya ini-itu.

                Bersambung ke liputan bagian 2

                TUGU PAHLAWAN

                Beberapa hari ini saya baca berita di Google bahwa ada beberapa kelompok atau organisasi masyarakat yang akan demo di depan salah patung di Jakarta, yaitu di depan "Tugu Tani", ya begitulah mereka menyebut nama tugu tersebut, salah satu tujuannya adalah Tuntutan agar pemerintah menghancurkan tugu tersebut.
                Eit, ..... tunggu dulu, sebenarnya nama patung atau tugu tersebut adalah Patung Pahlawan bukan Tugu Tani, saya sih memaklumi jika generasi NOW! banyak yang tidak tahu nama asli tugu tersebut karena mereka lebih sering baca media online secara mentah-mentah tanpa pernah baca media cetak yang kredibel, bahkan mungkin ada yang baru tahu nama asli patung tersebut setelah baca tulisan ini.


                Sebenarnya bukan kali ini saja ada kelompok atau organisasi masyarakat yang menginginkan agar Tugu tersebut dirobohkan, jaman belum ada Android juga pernah terjadi kok. 

                Dulu saya pernah membaca liputan lengkap tentang sejarah Tugu Pahlawan di majalah Intisari, dalam liputan tersebut juga dijelaskan alasannya mengapa tugu tersebut tidak boleh dihancurkan atau dirobohkan, eh ngomong-ngomong mungkin Generasi NOW! juga ada yang belum tahu apa itu majalah Intisari, panganan opo kuwi?.
                 
                Mungkin kalau memang Patung tersebut harus dirobohkan sebaiknya dibuat lagi Tugu yang lebih kekinian sebagai penggantinya sehingga kita tetap menjunjung slogan JAS MERAH.
                -
                Selamat menikmati akhir bulan, jangan lupa masak mie instant tapi jangan ditambahi micin ya

                Repository BlankOn, Pembenahan

                Agak tersentil di beberapa tempat. Mungkin sekedar membuat report.

                Bila ingin membantu pembenahan silakan gunakan cara ini. Dan balas thread ini bila Anda pengembang juga, atau mantan pengembang yang masih nyanggong di dalam milis. Atau gunakan thread ini bila Anda adalah pengguna.

                Itu saja. Jangan cuman koar-koar.

                Bekraf, Sebuah Catatan

                Tiga hari, Jum’at s.d Minggu, saya berada di lingkungan JIExpo, Kemayoran. 2 (dua) hari pertama, saya menjadi SPB BlankOn, dan hari terakhir saya mencoba mengenalkan produk-produk industri kreatif kepada anak-anak saya dengan mengantar mereka.

                Catatan ini tidak akan memuat tentang Bekraf atau BlankOn, karena pastilah lembaga sebesar Bekraf dan Tim Pengembang BlankOn memiliki bagian kehumasan yang akan mengemas rilis berita yang lebih menarik. Tulisan ini lebih kepada catatan saya sendiri mengenai banyak hal yang sudah saya rencanakan namun belum bisa terlaksana sampai saat ini.

                Jadi, ini tulisan apa? Hanya sebuah catatan.

                Media Promosi

                Dari beberapa obrolan singkat dengan teman-teman, pendukung dan promotor, mengikuti ajang seperti Bekraf merupakan sebuah kewajiban sebagai media promosi. Dari mana produk dapat dikenal masyarakat bila tidak dengan cara mengikuti pameran?

                Media Komunikasi

                Berkumpul dengan teman-teman yang biasanya hanya bisa bersua daring, dengan para pelaku bisnis yang memanfaatkan produk, dengan promotor acara yang mendukung BlankOn, tidak ada yang lebih indah daripada bertemu muka, bukan?

                Riset Pasar

                Poin pertama yang saya sebutkan merupakan hal utama bila kita mengenalkan produk. Namun dibalik itu kita dapat mengumpulkan ide-ide baru dari berbagai pertanyaan yang timbul dan kesan pengunjung.

                Pembenahan Diri dan Pengambilan Sikap/Keputusan

                Hal yang paling bisa saya ambil adalah harus bisa membenahi diri. Banyak hal yang bisa dipelajari dari saat berkomunikasi, baik pengenalan produk maupun dalam tim.

                Selain itu, saya juga mulai berani mengambil sikap. Di kesempatan inilah pertama kalinya saya berani mengambil cuti untuk kegiatan komunitas.

                Terima kasih kepada teman-teman, para pendukung dan promotor yang memberi kesempatan saya untuk belajar.

                Buku Bermain dan Belajar dengan GCompris

                Puji syukur penyusun panjatkan kepada Tuhan Yang Maha Esa yang telah memberikan rahmat dan karunia-Nya, akhirnya Buku Bermain dan Belajar dengan GCompris ini dapat terselesaikan. Buku ini saya susun berdasarkan artikel dari situs Panduan BlankOn linux (http://panduan.blankonlinux.or.id/) yang ditulis oleh Muhammad Mustofa.

                Buku ini sengaja saya susun ulang sebagai langkah awal untuk memenuhi kebutuhan buku anak-anak agar dapat belajar sambil bermain secara menyenangkan dengan menggunakan aplikasi permainan (game) yang berbasis kode sumber terbuka (open source).  Buku ini berisi panduan cara-cara bermain dan belajar dengan mudah menggunakan software open source yang dapat diunduh (download) dan digunakan secara gratis.

                Dengan adanya buku ini kami (penyusun dan penulis) berharap semoga anak-anak dapat belajar sambil bermain dengan menggunakan Aplikasi murah tanpa harus memakai aplikasi bajakan. Penyusun dan Penulis berharap dengan adanya buku ini, semoga akan hadir juga buku Bermain dan Belajar secara menyenangkan lain  yang ditulis orang lain sehingga dapat saling melengkapi.

                Buku ini berisi panduan dasar cara menggunakan aplikasi permainan pendidikan GCompris. Buku ini diperuntukkan untuk orang tua agar dapat mengajarkan dan mendampingi anaknya belajar menggunakan komputer lewat permainan yang mengasikkan.

                Gcompris yang digunakan penyusun pada buku ini adalah versi 15.10 yang berjalan di atas Sistem Operasi BlankOn Linux versi X yaitu BlankOn Tambora, maka dari itu sangat memungkinkan terdapat perbedaan pada sistem operasi lain yang pembaca gunakan. Walaupun GCompris yang digunakan oleh penyusun sudah menggunakan versi yang termasuk baru, namun buku ini tetap dapat digunakan sebagai panduan untuk Gcompris versi sebelumnya, hal ini dapat terjadi karena sebagian besar permainan pada GCompris versi baru sudah ada pada versi sebelumnya. 

                Terima kasih kepada teman-teman Pengembang BlankOn Linux dan Komunitas Open Source seluruh Indonesia atas semua dukungannya, tanpa dukungan kalian semua buku ini tidak dapat tersusun dengan baik.

                Penyusun dan Penulis menyadari bahwa buku ini masih banyak kekurangannya. Untuk itu, kritik dan saran dari para pengguna buku ini sangat diharapkan. Akhir kata, terima kasih telah menggunakan buku ini. Semoga buku ini dapat bermanfaat bagi kita semua.





                NB:
                • Pembaca boleh menyebarkan buku versi digital ini ke masayarakat yang membutuhkan baik secara online ataupun offline, juga dipersilakan untuk membuat mirror di berbagai web atau server pembaca miliki.

                Menentukan Array Berisi Nilai Dari Array Lain di Ruby

                Ketika sedang belajar ruby semalam, saya menemukan sedikit permasalahan untuk menentukan jika sebuah array dalam ruby berisi nilai dari array lain. Untuk lebih mudahnya ini seperti menentukan apakah array [1, 2, 3] memiliki elemen dari array [3, 2, 4]. Berikut adalah beberapa cara yang dapat dilakukan

                array_1 = [1, 2, 3, 5, 6, 10, 15, 30]
                array_2 = [3, 5, 7]
                
                # mendapatkan intersection
                array_1 & array_2
                
                # cara cepat
                (array_1 & array_2).empty?
                
                # cara yang lebih mudah dibaca
                array_1.any? {|x| array_2.include? x}

                Bagi saya sendiri, saya lebih menyukai cara kedua. Hal ini dikarenakan saya lebih mudah membacanya dibandingkan cara pertama yang menggunakan method .empty.

                This Week with OpenBSD

                Everthings has come to an end…

                Itu adalah salah satu quote yang cukup saya suka dari seorang admin di grup Telegram yang saya ikuti, selama satu minggu terakhir ini ada banyak kejadian yang terjadi. Baik di dunia sosial melalui Telegram maupun di dunia nyata, tapi yang lebih mengejutkan adalah saya telah menggunakan OpenBSD sebagai sistem operasi default pada laptop kesayangan saya selama satu minggu.

                Lalu apa saja yang telah saya pelajari selama satu minggu ini menggunakan OpenBSD sebagai sistem operasi default

                Terminal

                Saat ini hidup saya dengan OpenBSD lebih banyak menggunakan terminal. Bahkan hingga artikel ini ditulis saya masih belum memasang file manager seperti nautilus atau sejenisnya. Saya lebih sering melakukan pencarian berkas dari dalam terminal. Lalu bagaimana dengan text editor? Ya seperti yang pernah saya tulis sebelumnya ketika sedang belajar menggunakan vim dan tmux, selama sepekan ini saya menggunakan vim atau nano di OpenBSD.

                Dan juga dikarenakan OpenBSD tidak menyediakan antar muka grafis secara default, maka hampir semua proses editing melalui terminal.

                Window Manager

                Ini adalah hal baru yang saya pelajari, menggunakan window manager dibandingkan dengan Desktop Environment. Sebelumnya saya sempat memasang GNOME sebagai Desktop Environmen namun merasa kurang pas, karena sebelumnya terbiasa di Ubuntu dengan GNOME. Akhirnya saya pun memilih ratpoison sebagai Window Manager untuk saya gunakan.

                Namun versi ratpoison yang saya gunakan sedikit berbeda karena saya menggunakan versi yang sudah diubah oleh bapak Joshua Stein. Sehingga antarmuka laptop saya saat ini mirip-mirip dengan yang beliau gunakan.

                Namun ada sedikit masalah yang saya hadapi dengan menggunakan Window Manager ini, yaitu ketika sedang menutup aplikasi yang saya gunakan. Ketika memberikan perintah close pada aplikasi yang terbuka, sepertinya aplikasi tidak tertutup dengan benar.

                Hal yang belum sempat saya atur adalah penggunaan multi-monitor, sebelumnya saya menggunakan monitor tambahan untuk meningkatkan produktivitas ketika harus membuka beberapa aplikasi secara bersamaan. Namun saya lupa menambahkan baris berikut pada berkas .xsession saya di OpenBSD

                xrandr --newmode "1920x1080_75.00"  220.75  1920 2064 2264 2608  1080 1083 1088 1130 -hsync +vsync
                xrandr --addmode VGA-1 "1920x1080_75.00"

                Itu adalah pengaturan untuk monitor tambahan yang saya gunakan dengan menggunakan output port VGA di laptop.

                Menjelajah Dunia Maya

                Seperti biasa, peramban kesukaan saya adalah Firefox sehingga saya pun melakukan pemasangan dengan perintah

                $ sudo pkg_add firefox

                Namun menggunakan Firefox di OpenBSD selama satu minggu terakhir terasa kurang nyaman. Beberapa kali tiba-tiba tertutup secara paksa, dan saya belum mengetahui apa penyebabnya.

                Satu hal yang perlu diketahui adalah, saya belum berhasil melakukan kompilasi aplikasi Telegram di platform OpenBSD ini. Hal ini menyebabkan saya harus membuka Telegram melalui webogram.

                Selain hal-hal diatas ada juga yang membuat saya kadang merasa harus kembali lagi menggunakan Ubuntu, berikut adalah beberapa hal yang membuat saya ingin kembali menggunakan Ubuntu

                • Wifi
                  It’s sucks men .. masa kaga bisa konek wifi dengan gampang, saya membuat script sederhana untuk terhubung dengan wifi kosan yang saya gunakan. Jika harus terhubung dengan wifi baru maka harus ubah lagi script tersebut (T__T).

                • Development
                  Saat ini saya sedang belajar rust sebagai bahasa baru untuk meningkatkan kemampuan saya pribadi. Namun berdasarkan halaman ini, OpenBSD belum sepenuhnya mendapat dukungan (T__T). Dan juga saya belum memasang IDE apapun, cuma vim sebagai editor yang saya gunakan saat ini.

                Itu adalah pengalaman saya selama satu minggu ini menggunakan OpenBSD sebagai sistem operasi harian. Banyak hal yang hilang dari apa yang biasa saya dapatkan ketika mengunakan Ubuntu, dan meskipun seperti quote yang saya tuliskan di atas sepertinya petualangan bersama OpenBSD ini belum akan berakhir.

                Alasan Menolak Kirim Barang Elektronik

                Beberapa teman penghuni dunia maya dan media sosial yang berada di luar kota sering bertanya apakah saya melayani kirim-kirm barang yang saya iklankan?.. Saya biasanya akan menolak untuk pengiriman barang ke luar kota terutama jika barang yang dipesan jenisnya elektronik. Biasanya saya pakai alasan "ongkos kirim tidak sebanding dengan harga barang jika nilai transaksinya dibawah satu juta"

                Sebenarnya alasan utamanya bukan itu sih, tapi lebih ke keselamatan barang ketika dalam proses pengiriman oleh jasa pengiriman tertentu.
                Lha untuk pengiriman kan bisa menggunakan pak kayu dan barang diasuransikan!?
                Ah, masalahnya tidak semudah itu kok, saya jelaskan saja berdasarkan dua pengalaman berikut:
                • Saya pernah mengirim barang ke Sumatera (ke Jambi), barang yang dikirim berupa laptop, pak kayu sudah dilakukan, asuransi juga sudah dilakukan, 5 hari kemudian laptop sudah diterima oleh pemesan, begitu dicek oleh pemesan ternyata harddisknya badsector (sebagian sektor ada yang rusak). padahal waktu mau dikirim sudah saya cek dan saya pastikan normal semua, kerusakan mungkin saja terjadi karena gonjangan dalam proses pengiriman. Pembaca tentu berfikir agar saya bisa klaim ganti rugi untuk kerusakan tersebut karena barang sudah diasuransikan, tidak mudah saudara-saudara, salah satu syarat untuk klaim asuransi dari ekpedisi pengiriman adalah kerusakan harus bisa dilihat secara fisik, jika fisik luarnya utuh tidak bisa diklaim untuk ganti rugi"
                • Pengalaman kedua ketika saya mengirim barang berupa printer laserjet ke Pemalang, dalam kasus inia saya menggunakan ekpedisi berbeda dengan kasus pengiriman laptop di atas, singkat cerita barang sudah saya cek sebelum dikirim, sampai di agen ekpedisi pengiriman sudah dipak kayu+diasuransikan. Dua hari kemudian barang diterima oleh pemesan, kemudian dicobalah printer tersebut untuk print document, eh begitu dinyalakan bunyi klotak-klotak, kemudian dia ngabari saya lewat telepon dan menceritakan kejadian tersebut, saya sarankan saja untuk membuka tutup toner, eh begitu dibuka tahulah penyebabnya, yaitu salah satu per (pegas) pengait pada toner lepas dan nyangkut di roller sehingga rusaklah roller tersebut, ketika saya minta ganti rugi ke kantor jasa pengiriman tetap tidak dilayani, alasanya sama yaitu "tidak ada kerusakan pada fisik luarnya.
                -
                Demikian alasan saya mengapa sering menolak untuk kirim barang ke luar kota terutama untuk barang berjenis elektronik.

                Menggunakan OpenBSD

                Setelah beberapa hari lalu saya berhasil melakukan update firmware pada OpenBSD di Thinkpad kesayangan saya, kali ini saya berencana untuk menggunakan OpenBSD sebagai sistem operasi default saya dalam kegiatan sehari-hari. Alasan kenapa saya ingin menggunakan OpenBSD sebagai sistem operasi sehari-hari tidak lain dan tidak bukan adalah karena saya sedang meneliti seberapa greget sistem operasi ini dibandingkan dengan sistem operasi GNU/Linux yang biasa saya gunakan. Beberapa thread yang membahas mengenai penggunaan OpenBSD menyebutkan bahwa sistem operasi ini memiliki banyak kelebihan.

                Memasang OpenBSD Menggantikan Ubuntu

                Seperti yang sudah saya tulis sebelumnya saya telah melakukan instalasi OpenBSD pada Thinkpad kesayangan, namun jika sebelumnya saya masih memasang Ubuntu sebagai alternatif maka kali ini saya hanya memasang OpenBSD sebagai sistem operasi saya. Perlu dicatat, pada pengalaman kali ini saya menggunakan hanya satu partisi yang di mount pada /. Untuk melakukan hal ini ketika installer OpenBSD memberikan pertanyaan terkait pemilihan penggunaan disk saya memilih opsi C untuk konfigurasi kustom. Detail dari langkah yang saya lakukan dapat dilihat pada keluaran berikut

                Use (A)uto layout, (E)dit auto layout, or create (C)ustom layout? [a] C
                
                You will now create an OpenBSD disklabel inside the OpenBSD MBR partition.
                The disklabel defines how OpenBSD splits up the MBR partition into OpenBSD partition
                in which filesystem and swap space are created. 
                You must provide each filesystem's mountpoint in this program.
                
                The offset used in the disklabel are ABSOLUTE, i.e. relative to the
                start of the disk, NOT the start of the OpenBSD MBR partition.
                
                Label editor (enter '?' for help at any prompt)
                > p
                OpenBSD area: 64-4193280; size: 4193216; free 4193216
                #                size           offset  fstype  [fsize  bsize  cpg]
                  c:          4194304                0  unused 
                > a
                partition: [a] b
                offset: [64]
                size: [4193216] 256M
                Rounding to cylinder: 532160
                FS type: [swap]
                > a
                partition: [a]
                offset: [532224]
                size: [3661056]
                FS type: [4.2BSD]
                mount point: [none] /
                > w
                > q
                

                Seperti yang terlihat pada keluaran di atas, saya menambahkan b dengan offset default [64] sebesar 250 mega dengan filesystem swap. Kemudian untuk label a saya menggunakan sisa offset dan membiarkan installer menentukan offset terakhir secara otomatis. Kemudian saya melanjutkan instalasi OpenBSD seperti biasanya.

                Mengubah /etc/installurl ke Mirror Lokal

                Untuk mempercepat proses pemasangan paket, maka saya memilih untuk menggunakan mirror OpenBSD lokal. Hal ini saya lakukan dengan menggunakan perintah echo sebagai berikut

                # echo "http://kartolo.sby.datautama.net.id/pub/OpenBSD/" >> /etc/installurl
                

                Dengan begitu perintah pkg_add akan menambahkan versi dan arsitektur mesin pada direktori URL.

                Mengganti Shell dengan Bash

                Saya cukup betah dengan menggunakan shell bash pada Ubuntu sebelumnya, untuk itu saya ingin menggunakannya kembali pada OpenBSD ini. Untuk mengganti shell dengan bash gunakan perintah berikut

                # pkg_add bash
                # chsh -s /usr/local/bin/bash
                

                Jika kamu ingin mengganti shell pada user lain, maka gunakan perintah

                # chsh -s /usr/local/bin/bash nama_user
                

                Itu adalah beberapa hal yang baru saya lakukan pada instalasi OpenBSD ini, masih banyak yang harus dilakukan untuk bisa digunakan sebagai sistem operasi harian seperti

                1. Memasang window manager
                2. Memasang peramban untuk keperluan menjelajah dunia maya
                3. Memasang IDE untuk keperluan sehari-hari
                4. Serta melakukan kompilasi Telegram pada sistem operasi ini

                Semoga semua itu bisa saya lakukan dalam beberapa hari kedepan .. Semangat!!

                Why I Use Private VPN

                Beberapa saat lalu kita mendengar tentang berita bahwa akan diblokirnya Telegram, yang kemudian disusul dengan adanya berita bahwa pemerintah Indonesia akan meminta akses penyadapan pada Telegram. Hal ini sangat disayangkan sekali karena menurut saya sebuah privasi adalah bagian dari hak asasi manusia, dan praktik penyadapan ini secara tidak langsung telah melanggar hak kita sebagai manusia. Namun sangat disayangkan sekali praktik-praktik penyadapan ini secara tidak langsung sudah dilakukan dengan tanpa sepengetahuan kita oleh para operator seluler dan juga internet. Seperti yang kita ketahui bahwa ketika kita melakukan pencarian di Google, atau melakukan aktivitas di sosial media maka data kita akan menjadi target pasar mereka.

                Beberapa tahun lalu ketika pertama menggunakan internet dan bermain sosial media saya tidak begitu perduli dengan apa yang disebut dengan privasi. Saya berpikir bahwa “Jika memang tidak ada yang disembunyikan, kenapa harus takut disadap?”. Namun seiring dengan berjalannya waktu saya menyadari bahwa hal tersebut tidak demikian seharusnya. Sebagai contoh untuk membuktikannya, saya memiliki sebuah akun email dengan banyak email di dalam inbox saya, lebih dari 40.000 email. Bayangkan jika email-email saya dapat diakses oleh semua teman-teman saya di kantor, teman-teman di Telegram. Jika mereka tidak peduli mungkin tidak menjadi masalah, namun bagaimana jika ada yang ingin mencari-cari kesalahan saya. Dengan berbekal email-email tersebut mereka mungkin bisa membuat sebuah cerita yang menyudutkan saya. Dan saya juga tidak ingin bahwa semua percakapan pribadi saya tersebar pada semua orang.

                Dengan berbekal contoh pada penggunaan email, bagaimana dengan percakapan anda melalui SMS, bagaimana percakapan anda melalui aplikasi percakapan instan lainnya? Bagaimana dengan data browsing sehari-hari anda?

                Kemudian saya mengenal tentang melindungi privasi dengan menggunakan Virtual Private Network atau yang lebih dikenal dengan VPN. Sebuah VPN pada dasarnya digunakan untuk

                1. Melakukan enkripsi pada jaringan yang anda gunakan, untuk melindungi aktivitas online anda dari penyadapan
                2. Memanipulasi alamat IP yang anda gunakan sehingga nampak dari lokasi yang berbeda

                Pada tahun 2015 saya sering menggunakan layanan VPN gratisan, mau gimana lagi saya ini penggemar gratisan. Namun kemudian saya sadar bahwa pemberi layanan ini tidak mungkin memberikan layanan secara cuma-cuma, pasti ada hal yang dikorbankan. Kemudian saya mendengar sebuah komentar dari Andrew Lewis yang berbunyi

                “If you are not paying for it, you’re not the customer; you’re the product being sold”

                Weeew … dengan menggunakan layanan VPN gratisan secara tidak langsung kita telah menjadi produk yang dijual oleh pemberi layanan. Hal ini cukup masuk akal, dan hal ini pula yang mendorong saya untuk beralih ke layanan VPN berbayar di tahun yang sama. Dengan biaya sekitar 60 USD per tahun saya menggunakan sebuah layanan VPN berbayar dengan berbagai macam fitur yang ditawarkan.

                Namun apakah memang dengan menggunakan layanan VPN berbayar yang menjanjikan

                We don’t log, period.

                Benar-benar tidak melakukan logging pada data kita untuk dijual atau dijadikan bahan riset?

                Kita tidak benar-benar bisa melakukan verifikasi untuk hal ini bukan? Misal terjadi kesalahan maka akan dengan mudah mereka menyalahkan kita sebagai pengguna, data kita ada di tangan mereka. Lalu bukankah dengan melakukan penjualan data pengguna maka pemberi layanan ini akan kehilangan bisnis mereka?

                Sekitar tahun 2011 sebuah layanan VPN berbayar ditemukan menjual data penggunanya, hal ini bisa kamu baca pada laman ini. Dan fakta yang mengejutkan kebanyakan penggunanya seakan tidak peduli, atau bahkan tidak tahu.

                Dengan fakta-fakta tersebut maka saya pun berpikir untuk menggunakan sebuah layanan VPN personal, dengan berbekal sebuah droplet di Digital Ocean saya pun membuat sebuah VPN personal. Dengan hal ini maka kekhawatiran akan kemungkinan penyadapan akan semakin kecil, karena kita sendiri yang memiliki data kita.

                Lalu kembali kepada kemungkinan penyadapan yang dilakukan pemerintah, apakah anda rela?

                What I Learned by Switching Keyboard Layout

                A few months ago, I’ve set some resolution to learn touch typing by using Klavaro in my Ubuntu. For about 2-3 weeks I persisted to use QWERTY layout to learn, started with home row as usual then move to another row. Apparently using QWERTY layout hurts my fingers, especially my little finger (both of them). I was able to touch typing, but my speed not increased at all. Day by day I skip my Klavaro practice and using https://10fastfingers.com/ to increase my typing speed, and it is not working at all (stopped at about 40 WPM).

                During my quest to increase my typing speed, I found some old quotes from Albert Einstein saying: “Insanity is doing the same thing over and over again and expecting different results”. Because of that quote, I start to thinking about change my layout. Then I found this Telegram group, and start to think change my keyboard layout to DVORAK. Member of this Telegram group show me the benefits by using DVORAK layout for everyday usage, such as reduce repetitive strain injuries (which i have during my quest), increase typing speed and the others. So I decided switching to DVORAK layout, to learn this layout I did spent some money to buy Logitech MK240 and then re-layout the keyboard layout to DVORAK. Here is what I’ve learned during my quest to increase my typing speed with DVORAK.

                1. It’s Easy, Is it?

                I can learn this layout less than a week, and using Klavaro to learn only the homerow. This layout offering user to mostly use homerow. But getting keyboard with DVORAK layout is not easy, in Indonesia most computer store only sell keyboard with QWERTY layout. You should modify QWERTY keyboard to DVORAK, or buy from abroad. Another solution is to get programmable mechanical keyboard, but to get DVORAK keycap also not easy. The easiest solution for mechanical keyboard to get DVORAK keycaps, is by buying DSA keycaps since they have common profile for every row.

                But, yeah it is easy to learn it.

                2. Using DVORAK is Cool

                Imagine you can write and read upside down, it is a cool thing, but did everyone really care about it? No they don’t. Using DVORAK layout is pretty cool actually, you will be in an exclusive club (DVORAK Typist), increased your productivity, and many more. As we can see, here in Indonesia, everyone mostly using QWERTY as standard. We can found it in almost every institution using this standard, and by using different standard will make you cool but also added some problem. I’ve used to bring my own Logitech MK240 to the meeting room and change the input source to DVORAK everytime I attend the meeting. My colleague can’t use my computer due to this different keyboard layout, also the IT guy who will fix problem in my computer.

                In fact, yeah it is cool to use DVORAK layout, but not everyone use this layout and they don’t care. But as additional benefits, it’s increase your privacy since everyone do not want to use your computer.

                3. It’s More Comfortable

                There is a study that said the typist finger traveled 30 km in QWERTY layout, but only 1.5 km in DVORAK in a day. Yeah it is, I didn’t feel pain in my little finger anymore. But it is not comfortable to always bringing your own keyboard to every meeting (tips: bring programmable mechanical keyboard, which programmed to DVORAK, to eliminate changing input source process). Notable things in here is, you cannot use your most common keyboard shortcut as usual. This is like copy and paste feature, which usually can be done with single hand now require two hands.

                After all, yes it is more comfortable using DVORAK layout rather than using QWERTY layout.

                4. Increase Typing Speed

                Remember where my speed stopped when using QWERTY layout, about 40 WPM. By using DVORAK layout now my speed increased to about 70 WPM just in a few weeks. DVORAK designed to maximize utilization of home row about 70%; 22% on top row; 8% on the bottom. Also DVORAK placing all vowels at the left side of home row and most used consonant at the right of home row. This will guarantee your strokes alternate between your left and right hand.

                Faster at typing increase your productivity after all.

                That is what I’ve learned by using different keyboard layout for daily activities. Not all benefits from this layout became real benefits in real life after all. All the problem we facing here is because the standard. Dr. Dvorak created something great, but he died in vain.

                “I’m tired of trying to do something worthwhile for the human race,” he said, realizing his failure to convince people to adopt his layout. “They simply don’t want to change!”

                QWERTY has remained the default keyboard layout for over a century. It has outlived the purpose for which it was designed, yet it’s weaknesses still remain. By switching to Dvorak, you are joining a movement that empowers typists and honors the legacy of a great man.

                I am gonna use this layout to the end, and teach my son later to use it. Just to be different …

                Parkir

                Peluit itu saya biarkan di saku saya, tidak saya gunakan hari ini. Nafas saya tidak kuat lagi. Bisa-bisa saya muntah darah kalau saya memaksakan diri. Saya tidak tahu saya sedang sakit apa sekarang ini. Orang miskin macam saya tidak patut ke rumah sakit. Kok? Tidak cukup uang. Tidak pula saya bertanya kepada orang-orang, dan bila ditanya, saya bilang, ah, batuk-batuk biasa.

                Jadi begini saya menghidupi anak-anak saya. Memang mereka tidak sekolah, tidak berpakaian bagus, tidak punya tempat tinggal yang layak, tapi mereka hidup. Hidup dari tangan saya, hidup dari jalanan, hidup dari sampah plastik, hidup dari umpatan-umpatan yang dilontarkan orang-orang (jika anak saya mencuri sesuatu dari mereka).

                Menjadi juru parkir sebenarnya macam bermain tahta, macam tuan tanah. Saya berdiri di atas teritori saya. Semua kendaraan baik roda dua atau roda empat adalah milik saya ketika mereka diparkirkan di sini. Dan rupiah mengalir begitu saja, biasanya stabil. Tugas saya sederhana, adalah merapikan barisan kendaraan, membenarkan arah hadapnya ke jalan, menutupi sadel kendaraan roda dua dengan bekas-bekas kardus (jika masih ada), mengarahkan sopir mobil agar memarkirkan mobil mereka dengan benar (padahal sebenarnya sebagian besar sopir tidak membutuhkan saya), mengarahkan pengendara saat mereka meninggalkan tempat parkir. Saya tinggal menunggui pengendara mengeluarkan uang dari dompet atau saku mereka, atau kalau tidak, saya paling banter hanya mengumpat. Mudah. Tapi melelahkan karena terik matahari.

                Kalau wilayah saya dimasuki tukang parkir lain, saya tidak rela. Biasanya saya bertengkar dan membuat kesepakatan-kesepakatan. Tapi sedari dulu saya tidak pernah pindah. Saya selalu bertahan. Tetap di sini wilayah saya, di depan supermarket kecil yang ramai. Dan jubah kebesaran saya, warna oranye terang, yang darinya saya memperoleh pengakuan semu.

                Tapi mungkin saya besok mati, karena sakit yang tidak kunjung sembuh ini.


                Pagi itu saya bilang ke anak-anak saya, bahwa saya mau istirahat sepanjang hari ini, dan besoknya saya benar-benar mau mati, tidak berdaya.

                Saya dibaringkan di gubuk triplek kediaman saya. Tubuh saya lemah, hanya bisa menggerakkan kepala dan berkata pelan.

                “Kamu-kamu cari plastik sana, jangan diam di sini saja.” kata saya.

                Anak-anak saya, Paijo dan Paimin, tak bergeming.

                Sedihkah mereka? Sepatutnya mereka benci pada saya karena mebiarkan mereka hidup sekeras ini. Tapi baru kali ini saya melihat kesedihan di mata mereka karena saya sekarat.

                “Pergi. Pergi.”

                Alih-alih meninggalkan saya, Paijo, yang bungsu, berdiri dan mengambil rompi oranye kesayangan saya. Saya terkejut. Karena saya tidak kuat teriak, saya pelototin dia. “Letakkan itu,” mata saya memberikan isyarat. “Saya mau jadi tukang parkir, Bapak” kata Paijo. Belum saja saya menjawab, Paimin sudah bangkit merebut rompi itu dan berkata kasar, “Biar saya, biar saya yang pakai ini!”

                Kemudian anak-anak saya bertengkar hebat, saling jambak, saling pukul, saling gigit. Saya tidak bisa melerai. Lama sekali baru mereka selesai karena kelelahan. Paimin sudah menggenggam sebagian besar gundukan kain itu, tapi masih ada jari-jari Paijo menggelayut di ujung lain.

                “Sini, bawa sini.”, kata saya pelan.

                “Tidak. Bapak mau mati, ini warisan saya,” kata Paimin lancang.

                Ingin saya gampar dia. Tapi dia memang benar, dia berhak.

                “Istirahatlah, Pak, “ katanya. Saya meram.

                Generate SSH Key pada MacOS

                Jadi saya ingin memiliki sebuah laptop baru yang bisa saya bawa kemana-mana, karena T430 ini sekarang sudah cukup nyaman saya gunakan sebagai pengganti desktop dan juga sebagai procrastinator station bagi saya dirumah. Sebenarnya saya ingin mengambil satu Thinkpad X220 sebagai pengganti Thinkpad X201 saya yang memang sudah tak terselamatkan lagi (untuk X201 ini bangkainya masih ada, jika ada yang minat untuk pritilannya bisa kontak saya). Namun saya mendapat berita yang tidak disangka, seorang teman berniat melepas MacBookPro tahun 2015 miliknya dengan harga murah dan juga bisa dicicil. Namanya penggemar barang murah saya pun langsung mengiyakan tawaran teman tersebut, alhasil saat ini saya memiliki MacBookPro tahun 2015 sebagai daily driver.

                Karena akan saya gunakan sebagai mobile daily driver, maka saya perlu melakukan beberapa setup agar tidak mengganggu kegiatan saya sehari-hari. Salah satu yang akan saya lakukan adalah mengatur ssh key untuk bisa digunakan dengan akun github saya.

                Melakukan Generate SSH Key

                Pertama saya akan melakukan generate SSH Key dengan menggunakan terminal pada MacOS, saya menggunakan terminal iTerm pada kesempatan kali ini. Untuk melakukannya ketik perintah berikut pada layar terminal

                $ ssh-keygen -t rsa
                

                Ketika mengeksekusi perintah ssh-keygen maka akan menawarkan untuk penentuan lokasi penyimpanan key yang digenerate nantinya. Langsung saja tekan return untuk menyimpan pada lokasi default. Selanjutkan kamu akan diminta untuk menentukan passphrase, kamu bisa mengosongkannya tapi ini sangat tidak direkomendasikan.

                Setelah konfirmasi passphrase maka program tersebut akan melakukan generasi key, dan terminal kamu akan menampilkan

                Your identification has been saved in /Users/myname/.ssh/id_rsa.
                Your public key has been saved in /Users/myname/.ssh/id_rsa.pub.
                The key fingerprint is:
                ae:89:72:0b:85:da:5a:f4:7c:1f:c2:43:fd:c6:44:38 myname@mymac.local
                The key's randomart image is:
                +--[ RSA 2048]----+
                |                 |
                |         .       |
                |        E .      |
                |   .   . o       |
                |  o . . S .      |
                | + + o . +       |
                |. + o = o +      |
                | o...o * o       |
                |.  oo.o .        |
                +-----------------+
                

                Lokasi private key kamu berada pada direktori .ssh pada akun yang kamu gunakan dengan nama id_rsa.

                Peringatan: jangan pernah berbagi private key kamu dengan orang lain

                Menambah SSH Key pada Akun Github

                Sedangkan untuk public key kamu juga berada pada direktori .ssh dengan nama id_rsa.pub, isi dari berkas inilah yang akan kita tambahkan pada akun github nantinya. Sebelumnya kamu perlu menyalin isi dari berkas id_rsa.pub tersebut dengan menggunakan pbcopy

                $ pbcopy < ~/.ssh/id_rsa.pub
                

                Kemudian buka akun github kamu dan ikuti langkah berikut

                1. Masuk ke bagian Settings->SSH and GPG Keys
                2. Tekan tombol New SSH Key
                3. Beri nama pada field Title dengan nama yang mudah bagi kamu mengidentifikasi
                4. Paste SSH Key yang sudah kita salin tadi
                5. Selanjutnya tekan tombol Add SSH Key

                Dengan begitu kamu bisa melakukan git clone menggunakan protokol ssh. Sebagai informasi post ini juga dibuat dari MacBookPro yang sudah disetup.

                Memasang Shadowsocks Server Pribadi

                Baru beberapa saat tadi tersebar berita bahwasanya Telegram mulai diblokir oleh Pemerintah Indonesia. Hal ini menyebabkan berinternet di Indonesia semakin kurang menyenangkan, ditambah dengan penyedia layanan yang memang menolak internet netral di Indonesia. Ditambah lagi dengan praktek menjijikkan dari beberapa provider yang memang melakukan intrusive content modifying secara terang-terangan. Mungkin beberapa dari kamu sudah mengerti tentang bagaimana menghindari praktek semacam ini dengan menggunakan vpn atau ssh proxy, kesempatan kali ini saya ingin menulis tentang menggunakan shadowsocks untuk menjaga privasi kamu ketika sedang online.

                Antara Shadowsocks dan VPN

                Seperti yang (mungkin) sudah kita ketahui bersama, kita bisa menggunakan vpn untuk melakukan bypass pada firewall dan melindungi privasi selama berselancar di dunia maya. Namun dengan menggunakan vpn bisa dikatakan akan memperlambat kecepatan internet kita, kenapa? Karena dengan menggunakan vpn semua traffic internet kita akan diarahkan ke server vpn yang kemungkinan besar ada di luar negeri.

                Atas dasar inilah saya menyarankan untuk menggunakan shadowsocks, karena dengan shadowsocks kita bisa mengatur aplikasi apa saja yang diarahkan dengan shadowsocks.

                Memasang Shadowsocks di VPS

                Jadi ceritanya saya punya VPS di Digital Ocean (Ubuntu 16.04) yang memang saya gunakan untuk kebutuhan proxying, hal ini karena agak serem jika menggunakan proxy yang bukan milik sendiri. Di VPS ini saya sudah memasang SSH Endpoint, Squid Proxy dan beberapa tambahan lain. Untuk memasang tambahan Shadowsocks sebenarnya tidak terlalu rumit, pertama yang diperlukan adalah python pip untuk memasang shadowsocks dan m2crypto.

                $ sudo apt install python-pip python-m2crypto
                $ sudo pip install shadowsocks
                

                Kemudian buat berkas konfigurasi

                $ sudo vi /etc/shadowsocks.json
                

                Masukkan konfigurasi berikut pada berkas tersebut

                {
                    "server":"ip dari server",
                    "server_port":8388,
                    "local_port":1080,
                    "password":"kata sandi!",
                    "timeout":600,
                    "method":"chacha20-ietf-poly1305"
                }
                

                Untuk lebih jelas mengenai konfigurasi ini kamu bisa melihat di sini. Kemudian jalankan shadowsocks dengan perintah

                $ sudo ssserver -c /etc/shadowsocks.json -d start
                

                Jika diperlukan mungkin kamu perlu menjalankan perintah berikut untuk membuka akses shadowsocks dari iptables

                $ sudo iptables -I INPUT -p tcp --dport 8000 -j ACCEPT
                

                Jika menginginkan agar server shadowsocks berjalan otomatis setelah restart, tambahkan baris berikut pada berkas /etc/rc.local

                /usr/bin/python /usr/local/bin/ssserver -c /etc/shadowsocks.json -d start
                

                Memasang Shadowsocks pada Android

                Untuk memasang client di Android silahkan unduh di sini

                Optimasi Shadowsocks

                well ini sih memang bisa dibilang tergantung pada beberapa hal antara lain lokasi vps dan kecepatan provider. Untuk droplet saya sendiri berada di Singapore, sehingga bisa dikatakan cukup lumayan untuk kebutuhan sehari-hari.

                Dengan cara ini saya melakukan bypass internet pada aplikasi reddit dan beberapa lainnya di smartphone yang saya gunakan, jika nanti memang Telegram diblok oleh pemerintah Indonesia setidaknya sudah ada jalan lain yang bisa dicoba.

                Panduan Membeli Thinkpad Bekas

                Saya bisa dibilang adalah penggemar Thinkpad, kenapa? Meskipun laptop pertama yang saya gunakan adalah Compaq namun sejak dicuri orang beberapa tahun silam, sebagai pengganti hati saya tertambat pada Thinkpad X201. Alasan lain yang membuat saya jatuh hati adalah warna hitamnya yang memikat siapapun yang melihat (menurut saya), Thinkpad ini juga bisa dibilang tahan banting, mudah perawatan dan murah. Untuk murah ini mungkin relatif, namun hampir setiap Thinkpad bekas yang dijual di Tokopedia maupun Bukalapak harganya benar-benar turun dari harga awal mereka dikeluarkan.

                Jika anda bertanya kenapa bekas? Kenapa bukan beli Thinkpad baru saja? Well memang ini adalah selera masing-masing, namun yang perlu diingat adalah Thinkpad umumnya digunakan dalam skala bisnis, sehingga ketika masa bisnisnya telah habis bisa dibilang perusahaan yang menggunakannya akan menjual secara massal dan murah. Jika dibandingkan dengan harga barunya akan sangat jauh sekali, bahkan bisa dibilang untuk Thinkpad seri baru overpriced.

                Pada postingan kali ini saya ingin membahas mengenai “Panduan Membeli Thinkpad Bekas”, panduan ini berdasarkan harga di Tokopedia saja. Dengan harga mulai dari 2,4 juta rupiah maka kamu bisa memboyong Thinkpad untuk digunakan dirumah.

                Sebagai racun pertama perlu kamu simak beberapa keuntungan membeli Thinkpad bekas berikut:

                • Thinkpad memiliki desain yang cukup bagus, hal ini dapat dilihat dari layout keyboard, penggunaan indicator LED, warna dan bentuk yang klasik.
                • Tahan Banting. Thinkpad bisa dibilang merupakan laptop tahan banting, sebagai tambahan X201 saya pernah terendam ketika banjir dan masih selamat.
                • Mudah untuk perbaikan dan upgrade. Hal ini dapat dibuktikan dengan banyaknya sparepart yang dijual untuk Thinkpad. Kamu bisa cari dengan mudah di Jakarta Notebook, Tokopedia, dan Bukalapak.
                • Docking, Thinkpad mendukung fitur docking dimana memungkinkan kamu untuk mengubah menjadi semacam desktop.
                • Murah … ya seperti yang sudah dibahas di atas, alasan utamanya ya murah. Dengan harga murah kamu dapat memasang sistem operasi terbaru, baik Windows maupun Linux.

                Thinkpad

                Thinkpad Seri T

                Jika mengacu pada situs Lenovo, maka seri T bisa dibilang adalah seri High End untuk Bisnis.

                T410 - Layar 14.1”, Prosesor Core iSeries G1 - ~ 2,4 - 2,8 juta Rupiah
                T510 - Layar 15.6”, Prosesor Core iSeries G1 - ~ 2,5 - 3,7 juta Rupiah
                T420 - Layar 14”, Prosesor Core iSeries G2 - ~ 2,9 - 4,5 juta Rupiah
                T520 - Layar 15.6”, Prosesor Core iSeries G2 - ~ 3,2 - 4,8 juta Rupiah
                T430 - Layar 14”, Prosesor Core iSeries G3 - ~ 3,2 - 4,7 juta Rupiah
                T530 - Layar 15.6”, Prosesor Core iSeries G3 - ~ 3,7 - 5,0 juta Rupiah
                T440 - Layar 14”, Prosesor Core iSeries G4 - ~ 4,4 - 7,7 juta Rupiah

                Untuk seri T menurut saya yang paling bagus dari segi harga dan performa untuk saat ini adalah seri T430, karena tidak terlalu ketinggalan jaman dari segi prosesor dan harga yang cukup terjangkau jika dibandingkan dengan membeli laptop baru.

                Thinkpad Seri X

                Bisa dikatakan seri ini adalah seri Best LightWeight.

                X201 - Layar 12.1”, Prosesor Core iSeries G1 - ~ 2,5 - 2,5 juta Rupiah
                X220 - Layar 12.5”, Prosesor Core iSeries G2 - ~ 2,6 - 4,5 juta Rupiah
                X230 - Layar 12.5”, Prosesor Core iSeries G3 - ~ 3,2 - 4,5 juta Rupiah
                X240 - Layar 12.5”, Prosesor Core iSeries G4 - ~ 4,4 - 7,9 juta Rupiah

                Untuk seri inipun saya juga merekomendasikan seri X230.

                Upgrade Thinkpad

                Setelah memboyong Thinkpad idaman, hal pertama yang bisa kamu lakukan adalah dengan menambah performa Thinkpad kamu. Hal ini bisa dilakukan dengan:

                • Mengganti HDD ke SSD, upgrade ini cukup menambah performa yang signifikan. Jika budget kamu pas-pasan ketika membeli Thinkpad, pikirkan harga upgrade ssd ini saat menentukan harga Thinkpad yang kamu inginkan. Sebagai catatan kamu bisa membeli SSD 120GB seharga 600 ribuan, dan menambah HDD Caddy seharga 150 ribuan. Gunakan SSD sebagai sistem, dan HDD sebagai storage tambahan.
                • Menambah RAM, upgrade ini menurut saya bersifat opsional. Artinya kamu bisa lakukan jika memang ada rejeki berlebih.
                • Menambah WWAN Module, lebih baik tidak. Kecuali memang ada rejeki berlebih.

                Catatan Penting

                Beberapa hal yang harus kamu perhatikan ketika memboyong Thinkpad Bekas:

                • Jangan membeli Thinkpad yang statusnya BIOS Lock. This is pain in the ass, beberapa forum memang mengajarkan metode untuk menghapus password ini. Namun menurut saya ini tidak sebanding dengan biaya yang dikeluarkan.
                • Pastikan kamu memeriksa kondisi fisiknya. Beberapa penjual sangat terbuka akan cacat fisik yang dimiliki barang dagangannya. Jika kamu menerimanya ya tidak masalah.
                • Pastikan aksesoris yang kamu terima lengkap. Well umumnya sih cuman charger, jadi pastikan ini bisa digunakan.
                • Jika membeli COD pastikan semua fungsi bekerja, namun jika membeli secara online minta semua status pada penjual.

                Rekomendasi Penjual

                Sebagai pengalaman saya ketika berbelanja Thinkpad ini, ada dua penjual yang menurut saya recommended seller mereka adalah:

                • Agan Adien - ini adalah agan dimana saya memboyong T430, cukup fast response, ramah, dan biasa ada barang murah yang dijual.
                • Toko Shoozay - toko yang lumayan terkenal dikalangan Thinkpadders ID, barang yang dijual lumayan banyak dan cukup murah.

                Jika berminat kamu juga bisa bergabung dengan grup Telegram Thinkpad untuk mendapat informasi baru atau siapa tau mendapat Thinkpad bekas yang dijual penghuni disini https://t.me/pegelthinkpad.

                Update Wireless Card Firmware in OpenBSD

                Beberapa saat yang lalu saya melakukan instalasi OpenBSD pada Thinkpad T430 kesayangan yang saya gunakan, kenapa OpenBSD? Sebenarnya tidak ada alasan spesifik, alasan kenapa saya mencoba OpenBSD lebih dikarenakan racun yang sering saya dapat ketika membaca subreddit OpenBSD. Kesan pertama ketika melakukan instalasi OpenBSD adalah ini bukan sembarangan kenapa? Karena memang memasang OpenBSD tidak semudah ketika saya memasang Ubuntu di laptop kesayangan ini.

                Hal pertama yang cukup membuat saya tercengang adalah OpenBSD tidak memasang DE secara default, it’s all black screen and white text. Dan yang cukup membuat saya kaget untuk kali kedua adalah karena ternyata wireless card yang saya gunakan tidak terdeteksi di OpenBSD, dan ternyata membutuhkan firmware update.

                Masalah firmware update ini sebenarnya tidak akan merembet terlalu jauh jika saya memiliki koneksi dengan menggunakan kabel, well saya juga tidak yakin akan hal ini karena belum tentu tidak membutuhkan firmware update.

                Secara asali OpenBSD memiliki perangkat lunak fw_update untuk melakukan pembaruan pada firmware yang membutuhkan, namun sungguh ironis karena perangkat lunak ini memerlukan koneksi internet, yang pada kasus yang saat itu saya hadapi, menggunakan wireless card.

                Akhirnya saya melakukan pembaruan secara manual pada wireless card yang saya gunakan dengan mengunduh firmware yang diperlukan pada laman http://firmware.openbsd.org/firmware/6.1/.

                Sebagai catatan, kasus saya memerlukan iwn firmware, mungkin berbeda pada kasus yang mungkin akan kalian hadapi.

                Saya mengunduh dua berkas SHA256.sig dan iwn-firmware-5.11p1.tgz serta meletakkan kedua berkas tersebut pada removable media. Kemudian saya melakukan pemasangan firmware dengan perintah

                # mkdir /mnt/usbflash
                # mount /dev/sd0i /mnt/usbflash
                # cd /mnt/usbflash
                # pkg_add iwn-firmware-5.11p1.tgz
                

                Well dengan cara tersebut akhirnya wireless card saya bisa digunakan, berikutnya adalah bagaimana terhubung dengan wifi dirumah.

                Untuk terhubung dengan wifi di rumah saya menggunakan perintah beriku:

                # ifconfig iwn0 up
                # ifconfig iwn0 scan
                # ifconfig iwn0 nwid nama_hotspot wpakey kata_sandi wpaprotos wpa1,wpa2
                # dhclient iwn0
                

                Perintah tersebut akan selalu kita gunakan ketika akan terhubung dengan wifi, saya juga mendapat informasi tentang penggunaan beberapa script untuk melakukan reconnection secara otomatis namun belum mencoba.

                Setelah terhubung dengan wifi hal pertama yang saya lakukan adalah melakukan perintah berikut:

                # fw_update
                

                Untuk melakukan pembaruan firmware yang lain secara otomatis.

                Update Wireless Card Firmware in OpenBSD

                Beberapa saat yang lalu saya melakukan instalasi OpenBSD pada Thinkpad T430 kesayangan yang saya gunakan, kenapa OpenBSD? Sebenarnya tidak ada alasan spesifik, alasan kenapa saya mencoba OpenBSD lebih dikarenakan racun yang sering saya dapat ketika membaca subreddit OpenBSD. Kesan pertama ketika melakukan instalasi OpenBSD adalah ini bukan sembarangan kenapa? Karena memang memasang OpenBSD tidak semudah ketika saya memasang Ubuntu di laptop kesayangan ini.

                Hal pertama yang cukup membuat saya tercengang adalah OpenBSD tidak memasang DE secara default, it’s all black screen and white text. Dan yang cukup membuat saya kaget untuk kali kedua adalah karena ternyata wireless card yang saya gunakan tidak terdeteksi di OpenBSD, dan ternyata membutuhkan firmware update.

                Masalah firmware update ini sebenarnya tidak akan merembet terlalu jauh jika saya memiliki koneksi dengan menggunakan kabel, well saya juga tidak yakin akan hal ini karena belum tentu tidak membutuhkan firmware update.

                Secara asali OpenBSD memiliki perangkat lunak fw_update untuk melakukan pembaruan pada firmware yang membutuhkan, namun sungguh ironis karena perangkat lunak ini memerlukan koneksi internet, yang pada kasus yang saat itu saya hadapi, menggunakan wireless card.

                Akhirnya saya melakukan pembaruan secara manual pada wireless card yang saya gunakan dengan mengunduh firmware yang diperlukan pada laman http://firmware.openbsd.org/firmware/6.1/.

                Sebagai catatan, kasus saya memerlukan iwn firmware, mungkin berbeda pada kasus yang mungkin akan kalian hadapi.

                Saya mengunduh dua berkas SHA256.sig dan iwn-firmware-5.11p1.tgz serta meletakkan kedua berkas tersebut pada removable media. Kemudian saya melakukan pemasangan firmware dengan perintah

                # mkdir /mnt/usbflash
                # mount /dev/sd0i /mnt/usbflash
                # cd /mnt/usbflash
                # pkg_add iwn-firmware-5.11p1.tgz
                

                Well dengan cara tersebut akhirnya wireless card saya bisa digunakan, berikutnya adalah bagaimana terhubung dengan wifi dirumah.

                Untuk terhubung dengan wifi di rumah saya menggunakan perintah beriku:

                # ifconfig iwn0 up
                # ifconfig iwn0 scan
                # ifconfig iwn0 connection_name wpakey password wpaprotos wpa1,wpa2
                # dhclient iwn0
                

                Perintah tersebut akan selalu kita gunakan ketika akan terhubung dengan wifi, saya juga mendapat informasi tentang penggunaan beberapa script untuk melakukan reconnection secara otomatis namun belum mencoba.

                Setelah terhubung dengan wifi hal pertama yang saya lakukan adalah melakukan perintah berikut:

                # fw_update
                

                Untuk melakukan pembaruan firmware secara otomatis.

                Vortex Core

                Saya sudah lama sekali mengidam-idamkan papan tik mekanik. Kebetulan bulan lalu saya berulang tahun dan saya jadikan alasan untuk menghadiahi diri sendiri. Akhirnya terpilihlah dua benda : jam tangan Casio F91W yang mungil dan papan tik mekanik Vortex Core.

                Apa perbedaan papan tik biasa dengan papan tik mekanik? Papan tik biasa yang banyak digunakan sekarang ini disusun oleh beberapa lembar membran dan setiap tombolnya terdapat karet berbentuk kubah (dome). Model seperti ini tidak tahan lama karena karet bisa rusak oleh kelembapan yang kurang tepat. Mengetik di papan tik dome juga kurang akurat, ada saatnya tombol sudah ditekan namun input tidak masuk. Kita tidak mendapat jaminan kepastian, apakah input karakternya benar-benar masuk atau tidak.

                Papan tik dome, gambar dari Wikipedia.

                Sementara pada papan tik mekanik, setiap tombolnya disokong oleh 1 unit mekanis. Papan tik mekanik memiliki tekanan dan suara klik yang khas. Suara klik tersebut (terutama untuk switch Cherry MX Blue) bisa menjadi jaminan bagi pengetik bahwa input karakter sudah masuk sehingga mengurangi saltik dan juga membuat pengetik menyadari saltiknya lebih cepat. Unit-unit mekanis ini juga berumur panjang. Jika satu rusak, kita cukup menggantu yang rusak saja.

                Papan tik mekanik sendiri punya banyak varian switch (jenis tombol mekanis), seperti buckle spring (saya pernah menggunakan papan tik jenis ini waktu masih SMP, keluaran IBM), Cherry MX, Mathias dan lain-lain. Cherry MX sendiri punya beberapa varian dengan tekanan, suara dan tactile feedback yang berbeda-beda. Varian Cherry MX yang paling digemari Touch Typist (sebutan bagi pengetik yang sudah mengenal posisi huruf dan tidak melihat ke papan tik saat mengetik) adalah Cherry MX Blue. Penggemar permainan komputer (gamer) punya varian switch favorit yang lain.

                Cherry MX Blue Switch, gambar dari Wikipedia.

                Switch Cherry MX Blue inilah yang saya pilih saat membeli papan tik mekanik. Papan tik yang saya pilih adalah Vortex Core, seri terkecil (40%) keluaran Vortex di samping Vortex Race dan Vortex POK3R. Saya memilih ini karena suka sekali dengan ukurannya yang minimalis dan sederhana, namun kemudian menyadari ada satu hal yang membuat pilihan saya kurang tepat (akan saya ceritakan nanti).

                Saat barangnya datang, saya cukup senang dengan paket kardusnya. Mewah, elegan dan sederhana. Isinya terdiri dari papan tik itu sendiri, kabel micro USB, dan selembar dokumentasi yang dilipat. Papan tiknya sangat mungil dan selalu berhasil memperbaiki mood saya saat saya melihat ke arahnya. Tombol-tombolnya terdiri dari 4 baris dan ada 2 tombol spasi. Mengapa bisa dipangkas sampai sekecil ini? Vortex Core mengandalkan banyak sekali tombol pintas untuk mengakses input di luar alfabet. Layer fungsi berwarna biru yang aksesnya dibantu oleh tombol Fn dan layer simbol berwarna merah yang dibantu oleh tomol Fn1. Butuh waktu bagi saya untuk membiasakan diri menggunakan pintasan-pintasan ini. Apa lagi, pekerjaan saya memrogram komputer dan membutuhkan akses mudah ke tombol simbol. Kira-kira saya menghapbiskan waktu 2 minggu untuk menguasai penggunaan papan tik ini.

                Vortex Core, gambar dari dokumentasi pribadi.

                Vortex Core adalah papan tik programmable, artinya tombol-tombolnya dapat diprogram ulang sesuai kebutuhan. Kita bisa memrogram ulang tombol capslock menjadi backspace, misalnya. Memrogram ulang tombol di Vortex Core dilakukan langsung di papan tiknya, tanpa bergantung ke perangkat lunak yang terpasang di komputer. Sayangnya, Vortex Core tidak fully programmable, tidak semua tombolnya bisa diprogram ulang. Vortex Core menyediakan 3 layer untuk di program ulang. Pada layer 0 (layer asli), tombol tidak dapat di program. Saya langsung memrogram ulang layernya sebagai berikut :

                • Layer 1, beberapa tombol menyesuaikan untuk Colemak, untuk sistem operasi yang sudah disetel Colemak
                • Layer 2, semua tombol disesuaikan ke Colemak, untuk sistem operasi yang masih QWERTY dan saya menginginkan mengetik Colemak tanpa harus mengganggu setelan sistem operasinya
                • Layer 3, saya biarkan kosong untuk cadangan.

                Yang saya lakukan setelah memrogram tombol adalah membongkar semuanya, karena penasaran dalemannya seperti apa, lalu menyusun ulang tombol-tombolnya sesuai keinginan saya. Jenis tombolnya adalah plastik ABS, kompatibel dengan Cherry MX dan sangat mudah dilepas pasang. Kekurangan rancangan tombol Vortex Core adalah beberapa tombolnya berukuran tidak lazim. Jadi, jika saya berkeinginan mengganti semua tombolnya dengan warna lain, itu tidak mungkin karena tombol-tombol (keycaps) yang dijual di pasaran internet tidak memiliki ukuran-ukuran tombol yang tidak lazim tadi.

                Selama pengujian dan pemakaian sehari-hari, saya merasa sangat nyaman dengan papan tik ini. Awal-awalnya butuh penyesuaian dan kecepatan mengetik saya berkurang. Namun kurang dari sebulan, saya bisa mencapai 90WPM untuk Bahasa Inggris dan 120WPM untuk Bahasa Indonesia. That feeling…

                Satu hal yang membuat saya menyadari bahwa Vortex Core ini bukan pilhan yang tepat adalah ukurannya terlalu kecil untuk diletakkan di atas komputer-komputer jinjing saya (Thinkpad X1 Carbon, Thinkpad X220, MBA 11” 2013). Massa dari papan tik ini cukup berat dan langsung menekan tombol di papan tik laptop saat diletakkan di atasnya. Posisi yang tidak mengganggu adalah di atas touchpad, namun posisi ini sangat tidak nyaman untuk lengan.

                Saya berencana memodifikasi case papan tik ini ke depannya agar dapat diletakkan di atas papan tik laptop manapun.

                BlankOn: Cek Snapshot, Unduh!

                Ini merupakan lanjutan dari dokumentasi pembenahan gudang paket blankon yang mengambil dari gudang paket debian.

                Skrip untuk melakukan pengambilan ini masih ada di gudang kode yang sama, yaitu: cek-repo-bolong. Nama skrip yang dipakai cek-snapshot.sh.

                Metode pengambilan dari snapshot debian diperlukan karena ternyata masih ada banyak paket yang tidak ada dalam gudang arsip debian dan cerminnya. Penggunaan masih menggunakan cara yang sama, yaitu:

                $ . cek-snapshot.sh [dists] [section] [arch]

                Untuk sementara status pembenahan paket-paket impor dari debian ini menunggu Tim Jaminan Kualitas.

                Semoga saja tidak ada paket yang terlewat dan menjadi masalah yang berarti.

                BlankOn: Cek Bolong, Unduh!

                Dalam beberapa minggu terakhir ditemukan adanya masalah dalam gudang paket (repository) BlankOn. Untuk sementara digunakan milik pengembang pensiunan di repo.ridon.id. Namun setelah diteliti, ternyata gudang paket tersebut masih memiliki banyak kekurangan, sehingga dibutuhkan tindakan lebih lanjut.

                Yang perlu dijadikan catatan adalah permasalahan ini tidak hanya terjadi pada BlankOn X Tambora, namun juga versi sebelumnya. Karena panjang cerita bila dilakukan penanganan secara keseluruhan, perlu dilakukan pembatasan dalam penanganan masalah ini, yaitu rilis yang merupakan turunan dari debian, yaitu rote, suroboyo dan tambora.

                Untuk penanganan masalah ini saya membuat peralatan yang bisa dipelajari di github saya. Peralatan ini dijalankan pada mesin dimana gudang paket berada.

                Dalam proyek itu, untuk sementara, proses yang ada adalah mengunduh berkas-berkas yang ada dalam arsip debian paket-paket yang terdaftar dalam rilis dan arsitektur yang disebutkan dalam argumen. Cara penggunaannya adalah:

                $ . cek-binary.sh [dists] [section] [arch]

                Jadi, bila kita menginginkan pembenahan paket-paket tambora/main arsitektur amd64 perintahnya adalah . cek-binary.sh tambora main amd64.

                Saat ini masih dipelajari penggunaan metode lain, karena ternyata terdapat paket-paket yang telah disingkirkan dari arsip debian.