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
    }
    
  • 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 -hs --max-depth=2 .

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

Estu~


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 Desktop

EndlessOS 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 #1

App 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 Studio

App 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.

Audacity

Audacity – 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 GIMP

Two GIMP

Steinberg UR242

Steinberg UR242

Steinberg 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 Rock

Let’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


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.

Git Version Control System

Halo pembaca, kali ini saya akan menuliskan sekilat tentang Version Control System (VCS) favorit saya; Git. Ya, Git adalah salah satu dari VCS yang banyak digunakan oleh para developer. Git itu sendiri dibuat oleh orang yang sama pembuat Kernel Linux. Yup, beliau adalah pak Linus Torvalds. Tentang Version Control Sebelum...

Berkenalan dengan Docker

Sejak beberapa bulan/minggu ini saya ingin sekali menulis tentang Docker. Baru kali ini kesempatan menulis, di sela-sela mengikuti pelatihan kurikulum dua ribu tiga belas. Ya, saya seorang pengajar/pendidik/guru di sebuah sekolah swasta di lingkungan Kecamatan Kawunganten, Kabupaten Cilacap. Baiklah, tidak perlu panjang lebar, mari mulai membahas tentang Docker. Docker awal...

Makanya Jangan Ber-Linux Terus

Sore tadi, saat pulang dari diklat kurtilas hari pertama di SMK Negeri 1 Kawunganten, Cilacap. Di jalan raya, saat naik kendaraan bermotor ada seorang teman mendekat, dengan kendaraan bermotor juga (mungkin) dia meledek. Namun nada ledekannya (mungkin juga) hanya bercanda. Tapi intonasi dan kalimatnya mengungkapkan seolah-olah menggunakan Linux itu adalah...

Konversi VCS Bazaar ke Git

VCS atau Version Control System adalah sebuah perangkat lunak yang biasa digunakan untuk mencaat setiap perubahan pada kode sumber sebuah aplikasi. Ini merupakan peralatan wajib bagi seorang programmer, atau pengembang aplikasi. Beberapa VCS yang bernah saya coba pakai adalah Bazaar dan Git. Lainnya ada Mercurial, Subversion, dll selebihnya dapat dibaca...

Mengenalkan Komputer Melalui GCompris

Kegiatan implementasi TIK untuk Pendidikan di Sekolah Dasar Farol, Dili, Timor Leste resmi dibuka hari Rabu 30 November 2011 oleh kepala sekolah SD Farol, ibu Irene. Pelatihan yang rencananya akan diikuti oleh 15 murid dan 7 guru ini dimulai dengan perkenalan perangkat komputer, dari nama-nama perangkat komputer sampai cara menghidupkan dan mematikan komputer. Untuk mulai mengenal pengoperasian komputer, berinteraksi dengan komputer menggunakan keyboard dan mouse, para peserta ...

Jaring tim pengembang, BlankOn adakan Lokakarya pemaketan

14 Oktober 2011, Guna mempersolid tim pengembang dan menjaring para pengembang baru, tim BlankOn Linux bekerja sama dengan Yayasan Air Putih mengadakan lokakarya pemaketan secara luring. Sebagai salah satu distribusi Linux yang dikembangkankan untuk kebutuhan masyarakat Indonesia, tim BlankOn merasa perlu untuk membangun komunitas dan mengajak para anak bangsa untuk ikut berkontribusi dalam pengembangannya. Lokakarya ini diselenggarakan di Laboratorium Komputer Yayasan ...

AirPutih bekerja sama dengan BlankOn Linux kembangkan TIK untuk Pendidikan di Timor Leste

Seiring dengan perkembangan Teknologi, pengetahuan dalam bidang Teknologi Informasi dan Komunikasi (TIK) saat ini merupakan pengetahuan yang harus dimiliki oleh setiap orang, dari tingkat SD sampai Perguruan Tinggi. Tidak hanya siswa yang harus menguasai TIK, tenaga pengajar (guru) juga harus mampu dan matang dalam menguasai TIK, sehingga mampu mengimplementasikan pemanfaatan TIK dalam pembelajaran di sekolah. TIK sebagai alat bantu dalam proses belajar-mengajar memungkinkan ...

Belajar Mengetik Untuk Anak-anak

Menggunakan komputer tidak lepas dari pekerjaan mengetik atau menggunakan papantik. Pada pertemuan kedua pelatihan TIK untuk pendidikan di SD Farol, Dili - Timor Leste, peserta dikenalkan dengan perangkat lunak TuxType, sebuah perangkat lunak untuk belajar mengetik sambil bermain. Fitur tuxtype menyediakan perangkat pembelajaran mengetik 10 jari. Selain mengenalkan cara mengetik 10 jari kepada peserta, materi ini juga bermaksud memperkenalkan komputer kepada anak-anak, sehingga ...

Pelatihan Migrasi Open Source di Dinkes Lamongan

Pada tanggal 28 dan 29 Oktober 2011  Komunitas Open Source dan Linux Lamongan  dan Dinas Kesehatan Kabupaten Lamongan mengadakan pelatihan migrasi ke Open Source. Sistem Operasi yang dipilih setelah disepakati adalah BlankonLinux. Ada beberapa hal yang menyebabkan Dinkes Lamongan dan KOSLA memilih BlankOn Linux. Ubuntu memang bagus, tapi karena terlalu cepat update rilis baru (tiap 6 bulan sekali) menyebabkan Sistem Operasi yang diinstall terasa jadul. ...

Proof of Concept: Information Exposure from an outdated configuration

suddenly i need an internet connection and an unencrypted SSID appears. here is what i do with that specific SSID:

  1. seek for an SSID named "Speedy Instan@wifi.id". if exists, connect to it with a random RFC1918 ip address space with /24 subnet mask
  2. open Wireshark, look for an IGMP packet
  3. select that IGMP packet, take note of the source address. if the configuration is default, "192.168.1.1" is appeared. else, you're out of luck unless you can guess the subnet mask
  4. change your wifi interface connecting to that SSID with a random ip address inside 192.168.1.0/24 address space. take the bottom part, e.g. 235
  5. open http://192.168.1.1 and put 'admin' as username and password when asked. if it is not accepted, you're out of luck.
  6. seek for wireless configuration, and you can see the real SSID and passphrase
  7. enjoy free internet :v

YMMV. goodluck.

Proof of Concept: Information Exposure from an outdated configuration

suddenly i need an internet connection and an unencrypted SSID appears. here is what i do with that specific SSID:

  1. seek for an SSID named "Speedy Instan@wifi.id". if exists, connect to it with a random RFC1918 ip address space with /24 subnet mask
  2. open Wireshark, look for an IGMP packet
  3. select that IGMP packet, take note of the source address. if the configuration is default, "192.168.1.1" is appeared. else, you're out of luck unless you can guess the subnet mask
  4. change your wifi interface connecting to that SSID with a random ip address inside 192.168.1.0/24 address space. take the bottom part, e.g. 235
  5. open http://192.168.1.1 and put 'admin' as username and password when asked. if it is not accepted, you're out of luck.
  6. seek for wireless configuration, and you can see the real SSID and passphrase
  7. enjoy free internet :v

YMMV. goodluck.

Migrasi Blogspot ke Jekyll

Blog ini dulunya menggunakan blogspot. Iya, dulunya. Baru beberapa hari ini sih saya migrasikan ke jekyll. Apa sih itu Jekyll? apa pula GitHub Pages? Bisa saya tuliskan secara ringkas, bahwa Jekyll adalah sebuah mesin blog yang statis yang menggunakan bahasa pemrograman ruby. Dalam menulis/ posting tulisan di blog berbasis jekyll,...

Matplotlib show or imshow not working

When using matplotlib inside terminal console, and execute show or imshow, if we want to see the plot then we need to activate interactive mode:

matplotlib.pyplot.ion()


To turn off interactive mode:


matplotlib.pyplot.ioff()


Interactive mode causing program run slower, so just activate when needed.

Minta Screenshot Malah Foto yang dikirim

Di dunia maya kita sering berinteraksi dengan orang-orang yang memiliki latar belakang berbeda, sehingga kemampuan dan cara menggunakan internet juga berbeda-beda pula. Dengan adanya internet kita dimudahkan dalam belajar berbagai hal, hal ini semakin mudah dengan hadirnya berbagai Sosial Media, Forum, Millis, dan lain-lain.

Pertanyaan yang sering penulis temui adalah tanya-jawab dalam dunia perkomputeran, terutama pertanyaan seputar penggunaan aplikasi tertentu. Kadang isi dari pertanyaan sudah pernah dibahas dan tentu saja sudah terjawab, namun tetap saja ada yang bertanya dengan pertanyaan yang sama tersebut, inilah salah satu kekurangan generasi sekarang, yaitu:
Malas mencari tahu sendiri jawaban atas permasalahannya, padahal masalah tersebut sudah berkali-kali ditanyakan.
Malas membaca buku yang tebal, padahal si penanya sudah memiliki buku tersebut, kadang buku hanya sebagai koleksi biar terlihat keren
Jika masalah yang dihadapinya sudah terselesaikan malas menulis dokumentasi.

Beberapa orang sering bertanya dengan pertanyaan yang kadang susah dipahami oleh orang lain yang ingin membantunya, misalnya tidak menyebutkan Sistem Operasi yang ia gunakan, menggunakan bahasa yang disingkat-singkat (kadang bahasa alay), tidak menyertakan tangkapan layar (screenshot) dari pertanyaannya, dan lain-lain.

Nah, masalah screenshot ini yang kadang membuat penulis jadi jengkel, ketika kita minta screenshot ke si penanya, eh yang dikirim malah foto, contohnya ketika ada yang bertanya cara mengubah ukuran kertas di LibreOffice yang ia kirim foto seperti di bawah ini:


Beberapa minggu lalu, salah seorang Pengembang BlankOn sampai menulis status di Facebooknya masalah screenshot, mungkin saking jengkelnya 


Mungkin kita bisa memaklumi jika si penanya terpaksa mengirimkan foto karena suatu hal yang tidak memungkinkan untuk mengirim screenshot, misalnya ketika tidak bisa login di komputernya seperti gambar di bawah ini.


Inti pertanyaannya adalah apa sih susahnya ambil screenshot
Untuk pengguna GNU/Linux, ini bukanlah masalah yang berarti karena hampir sebagian besar Distro Linux sudah menyertakan aplikasi Screenshot secara default, tinggal tekan tombol PrintScreen beres deh, walaupun perlu dimaklumi masih banyak juga yang tidak tahu fungsi dari tombol Printscreen pada keyboard.
 
Lain ceritanya untuk pengguna Sistem Operasi milik tetangga sebelah, untuk membuat tangkapan layar (screenshot) tidak sesederhana di GNU/Linux yaitu tinggal tekan tombol PrintScreen beres. Di OS tetangga sebelah, untuk membuat Screenshot sehingga menghasilkan gambar Bitmap, mereka harus melakukan beberapa langkah dulu, misalnya  harus tekan tombol PrintScreen => buka aplikasi menggambar => lakukan paste pada aplikasi menggambar => Export menjadi Gambar baru beres. 


-
Saking asiknya nulis, he ladalah, ternyata sekarang sudah tanggal 18 Mei, sudah waktunya untuk bayar rekening listrik biar gak kena denda, ya sudah saya ke pasar dulu  ya.

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.

Kursus Komputer Khusus Orang Tua

Sudah beberapa kali ngobrol-ngobrol dengan beberapa orang tua yang ngantar anaknya service laptop ke kios, isi dari obrolannya adalah sebagian besar mereka juga ingin sedikit bisa menggunakan komputer/laptop (sekedar ngetik dan internetan). Beberapa dari mereka meminta saya untuk mengajarinya, sampai saat ini saya masih menolaknya secara halus dengan berbagai alasan.

Sebenarnya ini adalah sebuah peluang yang cukup untuk menambah penghasilan bagi yang bisa komputer tapi masih pengangguran, yah daripada buat status galau setiap hari :D, salah satu ide saya adalah Buat kursus komputer khusus orang tua

Bagaimana pendapat Anda?

Laptop Sekarang Jelek-jelek

Tadi siang ngobrol dengan salah seorang customer yang service laptop ke kios, dia bilang "Laptop sekarang kualitasnya jelek-jelek"
Kemudian saya beri sedikit penjelasan, bahwa laptop sekarang banyak yang bagus kok. Selanjutnya terjadi obrolan seperti berikut:
S: Saya - C: Customer
  • S: Anda dulu beli laptop harganya berapa?
  • C: Kalau tidak salah hampir 7 juta
  • S: Tahun berapa itu?
  • C: Tahun 2001
  • S: Laptop yang cepat rusak ini harganya berapa?
  •  C: 4 Juta
  •  S: Tahun berapa berapa belinya?
  •  C: Tahun 2015
  •  S: Ya jelas saja laptop bapak yang sekarang kualitasnya kurang bagus, dulu aja tahun 2001 beli yang harganya 7 juta, seharusnya sekarang beli yang harganya tiga kali lipat dari harga tahun 2001, saya jamin bagus. Tahun 2001 harga nasi bungkus di angkringan 500 rupiah, lha sekarang sudah 2000 rupiah.
  • C: Oh ya (sambil mengangguk-angguk)
===========
Ini ceritaku hari ini, mana ceritamu?

Rekontruksi IRGSH (2)

DRAFT

Tulisan kali ini mengupas tentang irgsh-web, salah satu dari 3 komponen utama IRGSH. Sebelum menuju kesana, mari kita petakan alur kerja pengembangan distribusi BlankOn secara keseluruhan.

  1. (1) Infra menyiapkan repropro dan layanan repository. Reprepro sudah di-update ke Sid.
  2. (2) Pemaket memasukkan paket ke IRGSH.
  3. (3) Paket dibangun oleh IRGSH.
  4. (4) Paket jadi dikirim ke ke irgsh-web/taskinit
  5. (5) Paket jadi dikirim ke irgsh-repo.
  6. (6) Paket jadi disuntik ke reprepro oleh irgsh-repo.
  7. (7) Infra menjahit berkas ISO dan menyiapkan layanan untuk mengunduh ISO.
  8. (8) Jaminan Kualitas menguji berkas ISO.

Persiapan

Tulisan berseri ini dirancang untuk membangun ekosistem IRGSH di satu mesin dan telah dicoba di mesin dengan spesifikasi CPU 2 core, RAM 2GB, ruang penyimpanan 30GB dan sistem operasi Debian Jessie. Untuk mengupdate reprepro ke Sid (1), perlu ruang penyimpanan minimal 200GB. Kita akan coba bangun irgsh-web dulu. Reprepro akan dibuat saat membangun irgsh-repo, namun tidak disync ke Sid.

Pada mesin uji coba kita, akan ada 3 pengguna yang mewakili masing-masing komponen irgsh, yaitu irgsh-web, irgsh-node dan irgsh-repo.

irgsh-web

Membangun irgsh-web

  1. Pasang paket-paket yang diperlukan
    • sudo apt-get update
    • sudo apt-get install -y -qqq make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev xz-utils sudo python python-pip python-dev python-debian dpkg-dev rabbitmq-server git-core nginx libpq-dev git vim net-tools postgresql
  2. Buat pengguna baru dengan nama pengguna irgsh-web kemudian masuk sebagai pengguna tersebut.
  3. Siapkan Python 2.6.x dengan menggunakan pyenv
    • curl -L https://raw.githubusercontent.com/pyenv/pyenv-installer/master/bin/pyenv-installer | bash
    • Tambahkan potongan kode ini di ~/.bashrc :
      export PATH="/home/irgsh-web/.pyenv/bin:$PATH"
      eval "$(pyenv init -)"
      eval "$(pyenv virtualenv-init -)"
      
    • source ~/.bashrc
    • pyenv install 2.6.6
  4. cd /home/irgsh-web

  5. Kloning repo irgsh-web dan python-irgsh
    • git clone git://github.com/BlankOn/python-irgsh.git
    • git clone git://github.com/BlankOn/irgsh-web.git
  6. Buat symlink untuk python-irgsh :
    • cd irgsh-web
    • ln -s ../python-irgsh/irgsh
  7. Bangun, ./build.sh. Jika berhasil, di ./bin akan ada berkas django yang siap digunakan untuk menjalankan irgsh-web.

Mempersiapkan sertifikat

Sertifikat-sertifikat ini nantinya akan digunakan sebagai otentikasi antara taskinit dan pekerjanya.

Inisialisasi CA

Jika sudah ada CA (Certificate Authority), buat sertifikat baru untuk komponen irgsh-web. Jika belum ada, berikut cara menginisalisasi CA baru dan membuat sertifikat turunan.

  1. Masuk ke /home/irgsh-web/irgsh-web/certs/
  2. Inisialisasi CA, ./scripts/ca.pl -newcert. Anda akan diminta passphrase dan beberapa informasi sertifikat.
  3. Siapkan direktori untuk manajemen sertifikat, ./scripts/prepare.sh

Membuat sertifikat turunan untuk irgsh-web

  1. ./scripts/new-cert.sh irgsh-web, Anda akan dimintai passphrase CA untuk menandatangani sertifikat baru tersebut
  2. Sertifikat keluaran untuk irgsh-web terletak di /home/irgsh-web/irgsh-web/certs/irgsh-web/.

Basis data

Aku.boi

Konfigurasi

Cara Mendapatkan Sertifikat Fundamental Linux Administration Gratis dari Cybrary

Di sebuah grup WhatsApp, saya sempat sharing tentang cara mendapatkan sertifikat seperti yang tertulis di judul. Saya tuliskan, jika peminatnya ada minimal 5 orang. Postingan berikut merupakan teks yang pernah saya share di sana. Nah, sesuai janji saya karena peminatnya sudah ada minimal 5. Saya akan tuliskan cara mendapatkan sertifikat...

Mudah Menggunakan TMUX

Semalam ketika saya sedang belajar mengenai pair programming, saya berkenalan dengan tmux teminal multiplexer. tmux ini berguna untuk melakukan pair programming secara remote, disini karena say amsih baru dengan tmux saya hanya ingin bebagi tentang tmux saja belum ke pair programming karena jadwal sore ini ternyata ditunda.

Memasang tmux

untuk memasang tmux pada Ubuntu 16.04 cukup dilakukan dengan perintah

$ sudo apt install tmux

maka secara langsung program tmux akan terpasang pada sistem anda. Anda dapt menjalankan dengan perintah tmux dari shell yang dijalankan.

Pintasan

Ketika pertama kali menggunakan tmux ini hal menurut saya cukup menarik adalah kita dapat membuat beberapa pane dalam sebuah terminal, berikut adalah beberapa pintasan yang saya pelajari ketika menggunakan tmux. Pintasan pada tmux menggunakan kombinasi tombol CTRL + b kemudian dilanjutkan dengan tombol pintasan.

  1. CTRL + b - " - Split panel secara horizontal
  2. CTRL + b - % - Split panel secara vertikal
  3. CTRL + b - ARROW - Berpindah antar panel
  4. CTRL + b - PgUp/PgDown - Mode scrolling
  5. CTRL + b - [ - Mode salin, dengan mode ini maka kita dapat menyalin dengan menggerakkan kursor menggunakan PgUp/PgDown untuk mengakhiri cukup tekan q

Itu adalah beberapa hal yang saya pelajari ketika menggunakan tmux untuk pertama kali. Masih panjang jalan menuju Roma ….

Mudah Menggunakan Tempel CLI

Mungkin beberapa dari kalian sudah membaca post saya berikut dimana saya mention tentang aplikasi tempel dari Blankon Linux. Meskipun secara default tempel ini hanya ada di Blankon namun kita bisa memasang pada distro yang kita gunakan. Untuk menggunakan tempel pada distro kesayangan kita cukup clone dari repo tempel dengan perintah

$ git clone https://github.com/BlankOn/tempel-cli-py.git

Kemudian gunakan .bashrc agar dapat memanggil perintah tempel, pastikan bahwa berkas tempel sudah mendapat permission untuk eksekusi.

export PATH=/path/ke/tempel:$PATH

Lalu buka teminal baru atau gunakan perintah source ~/.bashrc. Atau dengan memindahkan berkas tempel ke /usr/bin/ dan /usr/local/bin/.Untuk menggunakan tempel sendiri sangat mudah, misal anda ingin berbagi hasil keluaran dari dmesg maka dapat dilakukan dengan

$ dmesg | tempel bash -s

Atau jika ingin menggunakan teks biasa dapat dilakukan dengan perintah

$ tempel -t 'teks`

Dan bila ingin berbagi dari isi berkas dapat dilakukan dengan perintah

$ tempel bash -s /path/ke/script.sh

Secara default tempel mengambil data dari clipboard sehingga memudahkan kita ketika ingin berbagi sumber teks ke teman melaui layanan tempel.blankon.in.

Selamat mencoba …

Touch Typing dengan Klavaro

Salah satu resolusi yang belum kesampaian hinga saat ini adalah memiliki kemampuan touch typing, padahal setiap hari bekerja di depan komputer .. ckckckck. Karena hal itulah saya pun berniat untuk belajar touch typing ini dengan lebih konsisten, salah satunya dengan menggunakan aplikasi bernama Klavaro. Klavaro sendiri merupakan sebuah program yang mengajarkan kita untuk mengetik dengan benar menggunakan 10 jari serta memiliki fitur untuk melatih kecepatan mengetik kita. Untuk memasang Klavaro cukup mudah bagi yang menggunakan Ubuntu cukup dengan perintah

$ sudo apt install klavaro

Klavaro sendiri memiliki 4 tipe latihan yang cukup berguna bagi yang baru pertama kali belajar mengetik yaitu Basic Course, Adaptability, Speed, Fluidity. Klavaro sendiri mendukung beberapa layout keyboard seperti qwerty, qwerty-2, dvorak, colemak, dan beberapa lainya.

Sebenarnya menggunakan 10 jari ini masih terasa kagok bagi saya, dikarenakan jari kelingking saya yang cukup pendek. Tapi saya tidak ingin menyerah dengan mudah karena salah satu member di grup yang saya ikuti sudah memiliki typing speed mencapai > 120 WMP.

Semangat …..

Mudah Menggunakan Gnome

Here I am, give me something I could follow
So I can find my way out from the shadows
Raise your voice cause the time is now or never
And if we have to fall, we’ll fall together

Lirik di atas adalah lirik dari Fall Together lagu dari band Temper Trap yang selalu saya dengarkan setiap pagi selama 2 bulan terakhir. Lagunya cukup menarik apalagi ada versi akustik yang memang lumayan asik untuk didengar …

Kali ini saya ingin bercerita tentang bagaimana akhirnya saya menggunakan Ubuntu GNOME 16.04, seperti yang kalian ketahui instalasi Ubuntu saya sebelumnya mengalami galat. Eh .. lagi nyari solasi si Mark Shuttleworth ngumumin mau matiin Unity .. Shit. Akhirnya saya pun memasang Ubuntu GNOME ini, pertama kali menggunakan DE ini rasanya sangat sangat ngehe. Bayangkan bagi kamu yang terbiasa dengan Global Menu, HUD, App Spread, dan lain sebagainya sekarang terasa beda ditambah lagi ini title bar di GNOME kerasa ngabisin space. Dengan berkonsultasi dengan beberapa teman di grup Pegelinux, akhirnya dapat juga solasi untuk memodifikasi GNOME.

Memasang GNOME Extension

Jadi GNOME Extension ini yang nanti akan banyak kita gunakan, BTW ekstensi yang saya gunakan hanya Dash to Dock, Media Player Indicator, Refresh Wifi Connection, No Topleft Hot Corner, Top Icon Plus, dan beberapa ekstensi default. Disini sebenarnya saya merasa sangat kecewa karena ternyata tidak ada ekstensi yang bisa membuat seperti Global Menu. Beberapa teman menyarankan untuk menggunakan Pixel Saver, namun saya kecewa ketika menggunakannya, karena tidak menggunakan window decoration untuk control button yang dihasilkan.

Kunci Pintasan

Dengan berganti DE berganti pula shortcut yang biasa saya gunakan, namun berikut adalah yang saya pelajari ketika menggunakan GNOME

  1. App Spread hanya peerlu menggunakan Super.
  2. Run Command dapat dilakukan dengan ALT + F2.
  3. Maximize Window dapat dilakukan dengan Super + UP Arrow.
  4. Un-Maximize Window dapat dilakukan dengan Super + DOWN Arrow.
  5. Dock Window dapat dilakukan dengan Super + LEFT/RIGHT Arrow. ini fitur yang cukup saya suka
  6. Screencasting, ya screencasting tanpa harus memasang simplescreenrecorder, dapat dilakukan dengan CTRL + SHIFT + ALT + R.
  7. Create Screenshoot, ini ada dua cara pertama langsung disimpan ke folder Pictures dengan SHIFT + PrtSc, cara kedua selain menyimpan ke folder Pictures juga akan mengirim ke clipboard dengan kombinasi CTRL + SHIFT + PrtSc.

Itu adalah pengalaman saya ketika migrasi dari Unity ke GNOME, semoga Unity yang dikembangkan yunit bisa segera rilis pas 18.04 nanti …

Ridon: Membangun Sistem Telepon Pintar

Pernah dengar Ridon? Berikut penjelasan di wiki pengembangnya.

Ridon is a mobile operating system built on top of Replicant, CyanogenMod and Android Open Source Project. Ridon is part of The BlankOn Project. The goal is to have a mobile port of BlankOn operating system with custom UI/UX and it is not meant to have a full compatibility with common Android ecosystem with Google cloud infrastructure (although you may want to (and can) add that feature yourself).

Riset dan Kendala

Riset ini sendiri sudah lama dilakukan, namun belum ada rilis secara resmi hasil pengembangannya. Namun beberapa minggu yang lalu saya diajak untuk mengembangkannya dengan beberapa orang.

Kendala proyek ini adalah pada infrastruktur pengembangannya. Sebagian besar sumberdaya BlankOn didedikasikan untuk pengembangan Sistem Operasi berbasis PC, pengembangan Ridon masih bersifat voluntary / sukarela menggunakan infrastruktur pribadi masing-masing. Saya sendiri akhirnya menyewa mesin Scaleway untuk mengembangkannya.

Anda ingin berkontribusi?

Uji Pengembangan

Dalam uji pengembangan ini saya mencoba versi Ridon 7.1.2 di Sistem Operasi Debian Jessie untuk perangkat Gts210ltexx (Samsung Tab SM-T815). Jadi segala hal dibawah akan merujuk hanya pada perangkat-perangkat tersebut.

Siapkan Perangkat Pengembang

Untuk memulainya silakan ikuti perintah di wiki Ridon 7.1.2. Dan mohon diingat, langkah yang ada dalam laman ini akan mengunduh 30 – 40GB berkas peralatan pengembangan.

Oh, iya ada catatan tambahan dalam menjalankan langkah ini. Tambahkan paket schedtool, lzop dan imagemagick dengan `apt-get install schedtool lzop imagemagick`. Dan jangan lupa, mengganti libwxgtk2.8-dev dengan libwxgtk3.0-dev.

Kompilasi per Perangkat

Pastikan perangkat sudah terpasang sesuai dengan petunjuk sebelumnya. Berikut kebutuhan space hardisk sebagai referensi.

ridon@scw-10d893:/mnt/ridon/system$ du –max-depth=1 -h
58M ./lineage
148M ./system
1.7G ./frameworks
82M ./ndk
164M ./developers
15M ./build
31M ./bionic
1.5G ./tools
613M ./packages
11M ./dalvik
324M ./development
681M ./kernel
12G ./prebuilts
4.1G ./out
96K ./android
11G ./.repo
4.8G ./external
3.2M ./platform_testing
128K ./abi
2.2G ./vendor
900K ./pdk
31M ./sdk
48M ./art
223M ./toolchain
21M ./bootable
268M ./hardware
67M ./libcore
495M ./cts
25M ./device
240K ./libnativehelper
39G .

Bila tidak ada perbedaan bisa lanjut ke langkah pada wiki Ridon untuk Perangkat gts210ltexx.

Setelah selesai silakan cek hasil di out/target/product/gts210ltexx/. Hasil akhir seperti dibawah:

running: java -Xmx2048m -Djava.library.path=/mnt/ridon/system/out/host/linux-x86/lib64 -jar /mnt/ridon/system/out/host/linux-x86/framework/signapk.jar -w build/target/product/security/testkey.x509.pem build/target/product/security/testkey.pk8 /tmp/tmpQl1gtX /mnt/ridon/system/out/target/product/gts210ltexx/ridon_gts210ltexx-ota-9e23a6d0a4.zip
done.
[100% 33937/33937] build bacon
Package Complete: /mnt/ridon/system/out/target/product/gts210ltexx/ridon-14.1-20170426-UNOFFICIAL-gts210ltexx.zip
make: Leaving directory ‘/mnt/ridon/system’

#### make completed successfully (01:53:19 (hh:mm:ss)) ####

Catatan Perangkat Keras

Saya terlupa untuk mencatat di awal. Ada rekomendasi dalam hal perangkat keras untuk membangun Ridon, yaitu minimal RAM adalah 8 GB.

Untuk lebih amannya, gunakan mesin yang lebih mumpuni.

Belajar Ruby dengan Ruby Koans

I’ll quote “on the road” like a twat
And wind my way out of the city
Finding a girl who is equally pretty won’t be hard
Oh, I just had a change of heart
[Instrumental Interlude]
You smashed a glass into pieces
That’s around the time I left
And you were coming across as clever
Then you lit the wrong end of your cigarette

Lirik diatas adalah lagu kedua yang saya suka dari The 1975, A Change of Heart. Saya sangat suka bagian instrumental interlude dimana musiknya asik bet lah, kalian musti dengar lagu yang satu ini.

Lanjut lagi .. Jadi sekarang saya ceritanya pengen belajar Ruby, sekilas kalau saya lihat code Ruby sepertinya mirip dengan Python, tanpa ; tanpa pembukaan { untuk fungsi dan dynamic typing .. Kek ...

Ketika sedang mencari bahan belajar, seorang teman menyarankan untuk belajar Ruby dengan Ruby Koans. Ruby Koans sendiri merupakan sebuah alat pembelajaran yang diciptakan dengan metode TDD, jika kalian belum mengerti TDD mungkin artikel teman ini bisa sedikit memberi pencerahan.

Hal pertama yang perlu dilakukan untuk belajar dengan koans ini tentu adalah dengan mengunduhnya, setelah itu dapat menjalankan perintah berikut pada folder Koans:

$ ruby path_to_enlighttenment.rb

Kalian akan mendapat pesan galat yang merujuk ke berkas dan nomor baris.

Ruby Koans

Ketika membuka berkas about_asserts.rb seperti yang ditunjukkan di atas, maka kita akan dapat melihat komentar-komentar yang membantu kita untuk memecahkan solusi untuk permasalahan diatas.

Satu hal yang perlu diperhatikan ketika self learning dengan Koans ini adalah jangan menyontek, karena saat ini banyak sekali solusi dari Ruby Koans yang bertebaran di Github. Usahakan mencari solusi dengan membaca buku-buku Ruby atau bertanya pada forum jika memang sudah tidak menemukan solusi dari buku.

Seperti yang ditulis pada artikel teman tentang TDD, dimana ada fase Red, Green, Refactor, maka ketika belajar dengan Koans ini pun sebisa mungkin jalankan fase tersebut. Jika perlu mengingat lagi maka :

  1. Red Phase – Fasa dimana menulis tes yang gagal dijalankan
  2. Green Phase – Fase dimana kita berhasil lolos dari tes yang diberikan
  3. Refactor Phase – Fase dimana kita melihat kembali kode yang dijalankan, dan melihat kemungkinan lebih baik

Well saya pun juga masih baru dengan Koans ini, tetap semangat belajar ..

Mengenal static dan Dynamic Typing

Well I know when you’re around cause I know the sound
I know the sound, of your heart
Well I know when you’re around cause I know the sound
I know the sound, of your heart

Lirik di atas adalah lirik lagu The Sound oleh 1975, ceritanya ini lagi ngahaleuang gegara sering didenger lagunya. Lagunya enak sih …

Di kesempatan kali ini saya ingin bercerita, jadi pada suatu hari seperti biasa obrolan di Pegelinux membahas masalah sehari-hari kemudian mencuatlah istilah static typing. Ketika saya belajar pemrograman pertama kali bahasa yang saya pelajari tidak mengharuskan deklarasi variabel, semua bebas sehingga saya pun terbiasa dengan kebebasan ini.

Namun sebuah pernyataan teman “Enjoy your TypeError: undefined is not a function” menyadarkan saya. Saya pun mulai meragukan kebebasan deklarasi variabel yang sering saya lakukan.

Static vs Dynamic

Contoh sebuah bahasa yang menggunakan static typed

package main

import "fmt"

func main() {

    // deklarasi string
    var a string = "initial"
    fmt.Println(a)

    // deklarasi integer
    var b, c int = 1, 2
    fmt.Println(b, c)

}

Dan berikut adalah bahasa yang dynamic typed

x = "initial"
print(x)

x = 5
print(x)

Dari contoh diatas dapat disimpulkan bahwa dynamic typing adalah sebuah mekanisme dimana variabel dapat dirubah secara on the fly ketika akan dibaca interpreter. Sedangkan static typing adalah dimana variabel yang telah dideklarasikan sebagai sebuah type tertentu tidak dapat dirubah dengan mudah kemudian.

Well .. sekarang saya sedang belajar Python, Ruby, dan Javascript. Dan semuanya dynamic typing, akan tetapi tidak masalah dengan terus belajar nanti pasti akan menemukan jalan ninja yang tepat.

Rekontruksi IRGSH (1)

Sebelum memulai tulisan berseri ini, saya ingin mengucapkan terima kasih ke para pengembang BlankOn, terutama senior dan pensiunan, pak Aftian dan pak MHY. Tanpa mereka, kami tidak tahu IRGSH mau diapakan lagi. Terima kasih! Terima kasih juga untuk teman-teman pengembang generasi baru, terutama tim Infra, tim Pemaket dan tim Riset.

Kisah dimulai setelah Tambora rilis, dimana beberapa pengembang kunci memilih pensiun. Keputusan ini sangat penting karena terkait erat dengan regenerasi. Dan apa yang ditinggalkan untuk generasi penerus sangat menarik. Mesin-mesin, layanan-layanan yang perlu dipetakan ulang, dan lainnya. Namun yang paling menarik dan salah satu yang terpenting untuk kelangsungan distribusi BlankOn Linux adalah IRGSH.

Apa itu IRGSH? Dibangun oleh pak MDAMT, pak Fajran, pak Somat dan pengembang-pengembang lain, IRGSH adalah salah satu karya penting di komunitas BlankOn. IRGSH adalah perkakas yang membantu pengembang (khususnya tim pemaket) untuk meng-otomatisasi pembangunan paket-paket sampai masuk ke lumbung paket dan siap dikonsumsi. Jadi pemaket tinggal menyetor sumber kode dari paket tertentu, IRGSH akan mengolah dan membangunnya untuk arsitektur-arsitektur yang ditentukan. Jika sukses, paketnya akan tersedia di lumbung paket. IRGSH terdiri dari 3 komponen utama :

  • irgsh-web (github.com/blankon/irgsh-web)
    Antar muka web yang diakses oleh pemaket dan pengelola tugas-tugas yang akan diserahkan ke pekerjanya
  • irgsh-node (github.com/blankon/irgsh-node)
    Salah satu pekerja irgsh (builder), membangun paket-paket dengan arsitektur tertentu. Satu ekosistem IRGSH bisa memiliki beberapa builder.
  • irgsh-repo (github.com/blankon/irgsh-repo)
    Salah satu pekerja irgsh (repository), menerima paket yang sudah dibangun dan memasukkannya ke lumbung paket.

Sisanya dibantu oleh perkakas lain seperti reprepro, pbuilder, chroot dan lainnya. Secara garis besar, alur kerja IRGSH adalah sebagai berikut :

Lalu, kepanjangan IRGSH apa? Disadur dari thread lama di milis BlankOn-dev :

Sender: mohammad.damt@gmail.com
Received: by 10.223.103.133 with SMTP id k5mr4079075fao.23.1245567549549; Sat,
        20 Jun 2009 23:59:09 -0700 (PDT)
Date: Sun, 21 Jun 2009 13:59:09 +0700
Message-ID: <f5c139650906202359t535e9e62r95916d746c0961cf@mail.gmail.com>
Subject: Re: [BlankOn-dev] Latar belakang nama yeyen, robot gedek
From: Mohammad Anwari <mdamt@mnots.eu>
To: BlankOn-dev@googlegroups.com
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit


2009/6/18, Akhmat Safrudin <akhmat.safrudin@gmail.com>:
>  mau bertanya, kalo latar belakang nama irgsh (robot gedek) yeyen (server pengembangan)

irgsh:
Dulu hanya berupa pabrik paket. Karena robot, mau dinamakan apa
ingatnya pak Robot Gedek, terdakwa kasus kriminal bertahun-tahun lalu:

http://id.wikipedia.org/wiki/Robot_Gedek

Kemudian robot ini berupa skrip shell, jadi harus diberi nama berkasnya:

robot-gedek.sh

Tapi karena dari nama di atas ternyata mengandung gelar kesarjanaan
(.sh), maka supaya komplet maka dikasih gelar Insinyur honoris causa,
jadi:

ir-robot-gedek.sh

Karena kepanjangan, maka disingkat jadi irgsh. Demikiang.

Nah, ada apa dengan IRGSH? Dokumentasi IRGSH tidak lengkap. IRGSH ditulis dengan Python 2.6.x, perlu sedikit penyesuain untuk bisa hidup di mesin modern. Konfigurasi IRGSH cukup rumit dan tidak ada pengembang baru yang benar-benar memahami IRGSH. Setelah insiden harddisk rani.boi yang rusak, IRGSH di production tidak lagi bekerja dengan benar. Untuk bisa menjadi generasi penerus, kami harus menguasai apa-apa yang diwariskan oleh pengembang lama. Jadi kami punya misi : harus bisa membangun IRGSH dari nol dan menguasainya. Usaha ini sudah saya mulai sejak September 2016, berkutat dengan buildout di Python 2.6. Bahkan lebih jauh lagi, kami ingin IRGSH dibungkus dalam Docker dan Docker image-nya tersedia untuk siap pakai.

Ada wacana-wacana untuk melepaskan IRGSH. Ada Open Build Service dan lainnya, bahkan ada ide soal JDG (Jenkins Debian Glue). Tapi hei, ini BlankOn dimana kami mesti sebisa mungkin mendorong diri kami sendiri untuk mandiri, gunakan apa yang kita bikin. Rekontruksi IRGSH sudah masuk ke milestone bulan Maret namun target tersebut tidak tercapai. Di April ini, kami pacu kembali dan sudah ada beberapa kabar baik.

Banyak hal-hal baru yang saya pelajari sejak bermain dengan IRGSH, tentang sistem terdistribusi, queue, isolasi sistem dan lainnya. Tertarik juga? Mari, https://github.com/BlankOn/Uluwatu/blob/master/TEAM.md.

Nah, hal-hal yang berbau teknis akan dimulai pada bagian kedua. :D

Menghindari Kelelahan Mata

Beberapa hari belakangan ini mata saya mulai mudah lelah, mungkin efek sehabis sakit atau efek lainnya. Untuk sedikit mengurangi kelelahan mata ini saya menemukan artikel menarik pada blog teman disini. Sehingga saya pun tertarik menggunakan redshift ini. Setelah melakukan instalasi ternyata konfigurasi default dari redshift yang harus kita buat manual tidak bekerja dengan baik.

Muncul pesan “Screen 1 Could Not Be Found”

Saya kan cuma pake satu screen kok ini dibilang ga bisa ketemu, kemudian terlintas pada pikiran saya untuk merubah baris

[randr]
;screen=1 ini adalah nilai default
screen=0

Karena kemungkinan pembacaan yang dimulai dari 0. Well .. ternyata berjalan sesuai yang diharapkan, but wait .. ini kok ngaco proses perpindahannya. Selidik punya selidik ternyata pada berkas redshift.conf pengaturan untuk location-provider diatur ke manual, dan pada section [manual] lat serta lon ga sesuai dengan lokasi saya saat ini. Kemudian saya menggunakan layanan daring untuk mencari lat dan lon untuk kota saya dan merubah menjadi

[manual]
lat=-4.4553220
lon=137.1362130

Hmmm .. sudah berjalan dengan harapan. Namun masalah muncul kembali, ternyata redshift ini tidak secara otomatis dijalankan ketika startup. Saya pun membuat entry startup baru dengan command berisikan /usr/bin/redshift. Voila redshift akan dijalankan setelah saya menyalakan T430 kesayangan ini.

Mudah Memasang Ruby

Pada kesempatan kali ini saya ingin berbagi tentang bagaimana saya menggunakan Jekyll sebagai platform blogging saya. Jekyll menggunakan bahasa pemrograman Ruby, dan seperti yang dilansir oleh beberapa teman pemasangan Ruby pada sistem operasi linux dianggap ribet, oleh karena itulah tercipta RVM. Saat ini saya selalu menggunakan ruby dengan RVM.

Memasang RVM dan Ruby

Hal pertama yang perlu kita lakukan sebelum memasang rvm dan ruby adalah melakukan import gpg key, lakukan dengan perintah

$ curl -sSL https://rvm.io/mpapis.asc | gpg2 --import -

Setelah melakukan impor key, kita dapat memasang rvm sekaligus dengan ruby melalui perintah

$ \curl -sSL https://get.rvm.io | bash -s stable --ruby

Proses tersebut akan memakan waktu beberapa saat, tergantung koneksi. Sebelum dapat menggunakan rvm maupun ruby kita perlu memanggil rvm ke environment kita dengan

$ source $HOME/.rvm/scripts/rvm

Atau kita dapat meletakkan perintah tersebut pada berkas .bashrc dengan perintah

$ echo '[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"' >> .bashrc

Untuk memeriksa apakah rvm dan ruby sudah terpasang, anda dapat menggunakan perintah which rvm, jika telah terpasang maka akan mengembalikan path dari instalasi rvm.

Mempercepat Instalasi Gem

Pada dasarnya instalasi gem itu cepat, tapi instalasi gem umumnya menyertakan docs. Padahal kebanyakan dari kita lebih suka membaca docs dari browser dengan koneksi internet. Hal ini menjadikan docs yang terpasang menjadi mubadzir. Untuk itu kita perlu membuat berkas .gemrc pada $HOME dan mengisi dengan baris berikut

gem: --no-rdoc --no-ri

Wekwekwek .. dengan begitu pemasangan gem tidak akan menyertakan docs, hemat bandwidth dan hemat storage.

Menggunakan Rake

Hal berikutnya yang saya suka dari Jekyll adalah kita bisa menggunakan rakefile untuk membuat template post, page, dan hal-hal lainnya. Sebagai contoh, untuk membuat post saya hanya perlu mengetik perintah $ rake post title="Judul" dan sebuah berkas dengan template post jekyll saya pun tercipta. Berikut adalah contoh rakefile yang saya gunakan.

require "rubygems"
require 'rake'
require 'yaml'
require 'time'

SOURCE = "."
CONFIG = {
'version' => "0.3.0",
'themes' => File.join(SOURCE, "_includes", "themes"),
'layouts' => File.join(SOURCE, "_layouts"),
'posts' => File.join(SOURCE, "_posts"),
'post_ext' => "md",
'theme_package_version' => "0.1.0"
}

desc "Begin a new post in #{CONFIG['posts']}"
task :post do
abort("rake aborted: '#{CONFIG['posts']}' directory not found.") unless FileTest.directory?(CONFIG['posts'])
title = ENV["title"] || "new-post"
tags = ENV["tags"] || "[]"
category = ENV["category"] || ""
category = "\"#{category.gsub(/-/,' ')}\"" if !category.empty?
slug = title.downcase.strip.gsub(' ', '-').gsub(/[^\w-]/, '')
begin
    date = (ENV['date'] ? Time.parse(ENV['date']) : Time.now).strftime('%Y-%m-%d')
rescue => e
    puts "Error - date format must be YYYY-MM-DD, please check you typed it correctly!"
    exit -1
end
filename = File.join(CONFIG['posts'], "#{date}-#{slug}.#{CONFIG['post_ext']}")
if File.exist?(filename)
    abort("rake aborted!") if ask("#{filename} already exists. Do you want to overwrite?", ['y', 'n']) == 'n'
end

puts "Creating new post: #{filename}"
open(filename, 'w') do |post|
    post.puts "---"
    post.puts "layout: post"
    post.puts "title: \"#{title.gsub(/-/,' ')}\""
    post.puts 'subtitle: ""'
    post.puts 'description: ""'
    post.puts "category: #{category}"
    post.puts "tags: #{tags}"
    post.puts "---"
    post.puts "
"
end
end

Perlu diingat sebelum menggunakan rake anda harus memasangnya dengan perintah $ gem install rake.

Memperbaiki URL Firebase

Semalam ketika saya sedang membuka Google Search Console dan memeriksa Crawl Errors alangkah terkejutnya saya dikarenakan banyaknya laporan yang menunjukkan galat 404, dengan total sekitar 29 halaman dilaporkan memiliki galat 404. Setelah saya periksa ternyata hal ini berhubungan dengan perubahan url yang dituju, jika sebelumnya pada Github Pages saya bisa mengakses halaman https://linhub.io/blogroll tanpa ada masalah, namun pada hosting Firebase ini ternyata mewajibkan penggunaan .html untuk menuju halaman yang kita inginkan.

Untuk mengatasi ini Firebase menyediakan sebuah opsi yaitu cleanUrls, opsi ini berguna untuk secara otomatis melakukan drop pada ekstensi .html sehingga url yang kita tuju akan lebih cantik.

Untuk menggunakan fitur ini saya hanya menambahkan baris berikut pada berkas firebase.json

"cleanUrls": true

Dengan begitu saya dapat mengakses https://linhub.io/blogroll tanpa harus di redirect ke 404.

RVM over SSH

Bukan materi baru, cuma baru nemu aja solusinya setelah mikir dua hari.

Kasus:

  • Delpoy Ruby on Rails via ssh
    laptop$ ssh estu@ip-mesin "cd ~; deploy.sh"
    
  • Ruby dibantu rvm.

Kendala:

  • Log stdout:
    bundle not found
    

Mitigasi:

Di server via login langsung:

server$ echo $PATH

Ouput tidak sama dengan ‘echo PATH’ dari ssh:

laptop$ ssh estu@ip-mesin "echo $PATH"

Solusi:

    1. Set env dari .bashrc ke /etc/environment. Samakan hasil “echo $PATH”. Kira-kira begini:
      PATH="/home/ubuntu/.rvm/gems/ruby-2.3.3/bin:/home/ubuntu/.rvm/gems/ruby-2.3.3@global/bin:/home/ubuntu/.rvm/rubies/ruby-2.3.3/bin:/home/ubuntu/bin:/home/ubuntu/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/home/ubuntu/.rvm/bin"
      export GEM_PATH=/home/ubuntu/.rvm/gems/ruby-2.3.3:/home/ubuntu/.rvm/gems/ruby-2.3.3@global
      export GEM_HOME=/home/ubuntu/.rvm/gems/ruby-2.3.3
      
    2. Disable env dari .bashrc.
    3. Reboot
    4. Tambahkan opsi –login pada baris ssh dan sederhanakan opsi perintah
      laptop$ ssh estu@ip-mesin  bash --login "./deploy.sh</code>"
      

 

Dah gitu aja.

Selamat istirahat.
Estu~


Melakukan Debugging pada Shell Script

Hari ini saya sudah sedikit enakan, karena suddah beristirahat selama beberapa hari kemarin. Ketika sedang membaca di situs Pak Haji dan dilanjutkan ke situs Om Ali saya menjadi teringat akan bagaimana melakukan debug pada shell script yang kita buat. Sebenarnya langkah ini hanya diperlukan bila script yang kita buat cukup panjang.

Membuat Executable Script

Untuk langkah ini kalian bisa mengikuti tutorial dari Om Ali.

Mengaktifkan Shell Script Debug Mode

Ada beberapa cara untuk mengkatifkan debug mode pada shell script yaitu:

  • -v – Mengaktifkan mode verbose.
  • -n – Opsi ini memberitahu untuk tidak melakukan eksekusi sekaligus melakukan syntax check.
  • -x – Opsi ini mengaktifkan shell tracing mode.

Menjalankan Debug Mode

Untuk menjalankan debug mode ada 2 cara yang dapat dilakukan yaitu:

  1. Memanggil Opsi Debug
    Opsi ini akan melakukan debugging pada seluruh script, dan dapat dipanggil dengan
     $ /bin/bash -x test.sh -argumen1
    
  2. Mengubah Berkas Executable
    Opsi ini dapat dilakukan dengan mengaktifkan debug mode pada she-bang atau dengan opsi set. Berikut adalah contoh dengan mengubah she-bang.
     #!/bin/sh -x
    

    Atau dengan opsi set pada bagian tertentu dalam berkas, misal pada berkas berikut

     #!/bin/sh
    
     set -x
     echo "Halo"
     set +x
    

    Dengan begitu anda dapat melakukan debugging pada shell script yang anda buat.