Category Archives

409 Articles
WordPress 4.9.1 dengan PHP 7.2

WordPress 4.9.1 dengan PHP 7.2

Saya biasanya kalau mau memperbaharui WordPress selalu menunggu versi minor .1 atau lebih. Soalnya, suka ada perilaku tak terduga kalau versi mayor baru terbit. Kali ini, WordPress 4.9.1 sudah terbit.

Menurut situsnya, WordPress merekomendasikan penggunaan PHP 7.2. Saya sendiri baru tahu kalau sudah ada PHP 7.2. Pantas saja WordPress berhenti di versi 4.8.4 pada beberapa peladen.

Saatnya memasang PHP 7.2!

Pemasangan PHP 7.2

Saya pernah membahas tentang PHP 7.1+ di artikel terdahulu. Jadi, ini sekedar mengulang saja.

Aktifkan modul APT untuk mengakses repo berbasis HTTPS dan beberapa paket lainnya.

Aktifkan repo Suri.

Lalu, pasang PHP 7.2 untuk menggantikan PHP 5.

Kalau hanya sekedar php-fpm, yang terpasang bakal versi 7.1. Harus secara eksplisit disebutkan versi 7.2.

Selanjutnya, menyalin konfigurasi fpm dari /etc/php5/fpm/pool.d ke /etc/php/7.2/fpm/pool.d untuk setiap pool.

Saya sejauh ini tidak ada masalah.

Fungsi Yang Mulai Ditinggalkan

Nampaknya PHP7 dan terbaru hendak dibuat menjadi domain yang ketat (strict typecast). Mungkin pengembang PHP ingin menjadikan PHP sebagai bahasa yang lebih aman. Kalau saya melihat log, biasanya akan diprotes bentuk akses senarai (array). Saya mendapati fungsi count() terutama yang paling sering dicatat.

Ada orang-orang yang memutuskan untuk kembali ke PHP 7.1. Tapi saya tidak! Agar sesuai dengan PHP7.2 dan terbaru, misalnya ada variabel:

count($elements[‘#value’])

Diubah dengan menambahkan uji tipe senarai :

Atau, saat diubah menjadi tipe senarai:

Penyebab ini semua kalau saya lihat di kode sumber WordPress adalah biasanya karena penggunaan variabel global.

Untung saja, untuk yang lain pun WordPress dan plugin-nya sudah cukup bersahabat.

Bacaan Lebih Lanjut

Melihat Laporan DMARC

Melihat Laporan DMARC

Dengan semakin ganasnya SPAM dan bisnis surel, Universitas Indonesia pun selalu memperbaharui konfigurasi surel agar selalu aman dan nyaman. Selama inisaya hanya menerapkan SPF, DKIM, ADSP, DMARC dan lain sebagainya ke sub domain UI. Kali ini, untuk domain global UI, DMARC pun diterapkan.

Saya membuka kotak pandora! Ternyata ada domain-domain di bawah UI yang masih perlu dikonfigurasi. Misalnya, untuk domain yang berbasis Google Apps (GMail), saya menerapkan minimum konfigurasi SPF dan DMARC. Namun, ini semua harus ditambahkan satu persatu.

Beruntung, DMARC menyediakan mekanisme laporan berkala yang bisa dipakai oleh UI untuk melihat bagaimana domainnya digunakan ke tempat lain. Laporan DMARC berformat XML. Untuk ini, saya menuliskan cara saya membaca XML tersebut dengan perkakas yang sudah ada.

Saya malas membuat pencacah sendiri. Untungnya, Dave dari TechSneeze menyediakan perkakas kecil untuk itu. Ada dua bagian yang perlu dipasang, pencacah dan pembaca. Berhubung saya tiba-tiba jadi malas menulis, saya percepat saja.

Basisdata

Pencacah ini memasukkan XML ke dalam basisdata. Basisdata MySQL ini digunakan untuk menyimpan hasil proses pelaporan DMARC. Mari buat sebuah basisdata:

Jangan lupa mengganti sandi dengan yang benar!

Pencacah

Pasang paket-paket pendukung.

Unduh dan masuk ke direktori.

Salin berkas dmarcts-report-parser.conf.sample menjadi dmarcts-report-parser.conf yang akan dipakai sebagai konfigurasi. Ubah login MySQL di berkas tersebut.

Sudah bisa digunakan. Cara saya menggunakannya:

Saya suka cara seperti ini. Kalau misalnya semua berkas laporan ditaruh di sebuah direktori, maka tinggal:

Kalau membaca konfigurasi, perkakas ini bisa membaca dari IMAP. Tetapi saya belum mencobanya.

Pembaca

Salin GIT:

Pasang PHP-FPM dan NGINX. Berkas utamanya ada di /var/www/html. Saya terlalu malas untuk mengonfigurasi. Tapi, ini kira-kira konfigurasi saya:

Jangan lupa dmarcts-report-viewer-config.php.sample menjadi dmarcts-report-viewer-config.php dan ubah $dbname, $dbuser, dan $dbpass seperti konfigurasi pencacah.

Silakan diubah sesuai selera. Nanti kalau sudah selesai, bisa dilihat di peramban:

DMARC Report

DMARC Report

Kalau saya tidak sedang sibuk dan malas menulis, saya akan mencoba membagikan bagaimana mengonfigurasi SPF, DKIM, ADSP, DMARC dan lain sebagainya. Kalau ingat, ya…. Tak janji.

Bacaan Lebih Lanjut

Tadinya Tentang Doki-doki Literature Club, Sekarang Tentang Ren’Py
doki-doki literature club, coded with Ren'Py

Tadinya Tentang Doki-doki Literature Club, Sekarang Tentang Ren’Py

Ada sebuah novel interaktif (visual novel) terbaru yang sedang populer saat ini di Internet. Nama novel tersebut adalah Doki-doki Literature Club (DDLC). DDLC merupakan sebuah novel interaktif horor yang menyajikan elemen penembus sekat (breaking 4th wall). Novel ini membuat cerita normal seperti novel pacaran lainnya; sampai satu titik pemain tanpa sadar membuat keputusan yang membuat depresi pemain. Itu sebabnya, permainan ini tidak dianjurkan untuk dimainkan oleh jomblo akut yang memiliki tendensi bunuh diri, dalam depresi, atau dalam masa terapi.

Anda mungkin bertanya, “menembus sekat pada bagian mana?” Saya tidak ingin membuka tabir misteri novel ini. Untuk menikmati novel ini, menurut saya, Anda harus mulai dari situs permainan dan membaca deskripsi perkenalan permainan ini di sana. Lalu, unduh dan mainkan. Anda akan mengerti mengapa deskripsi situsnya membuat permainan ini lebih mengerikan.

Permainan ini dapat diunduh gratis langsung dari situsnya. Anda bisa menyumbang di sana atau langsung ke laman unduhan. Permainan ini menyediakan berbagai tambalan terjemahan yang nampaknya disediakan oleh berbagai orang. Mungkin Anda tertarik untuk menerjemahkan ke dalam Bahasa Indonesia?

Yang menarik, saya menemukan bahwa berkas unduhan untuk GNU/Linux dan Windows menjadi satu. Besar berkas ZIP tersebut sekitar 240MB. Di dalam ZIP terdapat berkas DDLC.exe untuk Windows dan DDLC.sh untuk dijalankan di GNU/Linux.

Untuk menjalankan DDLC di GNU/Linux:

Tentunya cara yang lebih gampang adalah membuka penjelajah berkas Anda; klik kanan untuk ekstraksi; dan klik DDLC.sh untuk menjalankan aplikasi. GNU/Linux tidak seheker zaman dulu.

Ingat! Jangan mainkan bila Anda jomblo akut!

Ren’Py

Saya bukan pengamat permainan. Saya lebih tertarik kepada teknologi yang ada di dalamnya. Ternyata, DDLC menggunakan pustaka Ren’Py sebagai tulang punggung. Ren’Py dikembangkan menggunakan bahasa Python. Pantas saja berkas DDLC untuk Windows dan GNU/Linux digabung. Berkas eksekusi ternyata hanya pembungkus untuk menjalankan skrip Python.

Ren’Py adalah sebuah perkakas pengembangan untuk membuat novel interaktif. Dia diterbitkan sebagai perangkat lunak bebas. Anda bisa memodifikasi sesuai kebutuhan Anda.

Pemasangan Renpy

Ada dua cara pemasangan: melalui berkas unduhan dan melalui distribusi. Karena suatu galat, Ren’Py membutuhkan pemasangan paket Python Tk. Paket ini diperlukan untuk membuat proyek baru. Jadi, untuk kedua metode tersebut, pastikan sudah dipasang:

Setelah itu, aplikasi bisa dijalankan/dipasang seperti biasa.

Unduhan Situs

Anda dapat mengunduh di situsnya. Dengan cara normal, menggunakan penjelajah berkas favorit Anda, Anda dapat mengekstraksi dan menjalankan skrip renpy.sh tanpa perlu membuka terminal.

Ren'Py site's version

Ren’Py interface running from its site distribution.

Tetapi, saya beda! Berikut cara menjalankan:

Atau gunakan cara yang lebih normal.

Paket Distribusi

Pada distribusi Debian 9 (Stretch), Ubuntu 16.04 atau terbaru, dan segala turunannya:

Saya lebih menyarankan cara ini karena semua paket pustaka yang dibutuhkan akan ikut dipasang.

Vanilla Ren'Py installed from Ubuntu.

Vanilla Ren’Py installed from Ubuntu repository.

Versi distribusi menyediakan layar yang lebih bersih karena pemelihara paket membagi Ren’Py menjadi beberapa bagian:

  • python-renpy, paket modul Python Ren’Py.

  • renpy, paket utama untuk memasang Ren’Py

  • renpy-demo, demo-demo yang bisa dijadikan acuan untuk mempelajari Ren’Py.

  • renpy-doc, dokumentasi penggunaan Ren’Py.

  • renpy-thequestion, contoh satu novel interaktif sederhana yang telah dikembang dengan Ren’Py.

Saya hanya memasang renpy dan tidak yang lain. Silakan pasang saja yang lain bila ingin.

Memasang dari Github

Cara lain yang lebih abnormal adalah Anda mengunduh sendiri dari Github dan mengompilasi aplikasi Ren’Py dari kode sumber. Silakan baca sendiri caranya di sana. Saya tidak membahas karena takut tulisan ini jadi kepanjangan.

Sekilas Penggunaan Ren’Py

Saya tertarik membuat aplikasi interaktif sederhana. Ada sedikit kekurangan saat membuat proyek baru. Saya harus membuat sebuah direktori kosong. Sepertinya Ren’Py tidak bisa membuat direktori baru untuk wisaya proyek baru.

Ya, sudah. Toh, membuat direktori baru hanya sejauh klik kanan atau mkdir:

Catatan: tanda ~ artinya direktori rumah (/home/test pada contoh)

Setelah itu, klik + Create New Project

Khusus untuk penggunaan Ren’Py yang pertama kali, kita akan ditanyakan direktori dasar untuk setiap proyek nantinya disimpan.

Project's root directory

First time using Ren’Py we will be asked about its project’s root directory.

Masukkan nama proyek:

New Project name

New Project name. Yeah, I don’t have a naming sense.

Setelah memasukkan nama proyek, tekan tombol ENTER untuk ke layar berikutnya.

Layar berikutnya untuk pemilihan templat bahasa. Sayangnya, templat Bahasa Indonesia saat ini tidak tersedia. Ya, sudah, langsung saja klik Continue.

Select primary language for your new project.

Select primary language for your new project.

Layar berikutnya untuk pemilihan tema awal. Pilih sesuai selera lalu  klik Continue.

Theme selection

Theme selection

Setelah itu, proyek Entah Apa Ini sudah termasuk dalam daftar proyek yang bisa diakses.

Our new project now appeared on the project list.

Our new project now appeared on the project list.

Kalau mau menjalankan aplikasi yang dibuat, klik Launch Project. Menu di sebelah kanan menyediakan apa saja yang bisa dikerjakan pada aplikasi.

Sekilas Utak-atik Proyek Ren’Py

Untuk proyek Entah Apa Ini, saya membuat beberapa perubahan berikut:

  • Mengubah resolusi dari 800×600 menjadi 720p (1280×720). Ada di game/options.rpy dengan opsi config.screen_width dan config.screen_width
  • Membuat direktori gambar dan menaruh semua gambar di sana: game/images
  • Skenario/alur permainan dibuat di game/script.rpy

Saya sudah membuat repositori GIT kalau hendak iseng-iseng mencoba.

Untuk mengunduh:

Untuk menjalankan:

Distribusi

Sayangnya, versi pemaketan Ubuntu 16.04 yang saya gunakan tidak dapat membuat berkas distribusi. Anda harus menjalankan aplikasi Ren’Py yang diunduh dari situsnya. Berikut caranya setelah memuat proyek tersebut.

Hasilnya nanti berupa berkas ZIP yang bisa dijalankan langsung.

Terakhir

Untuk apakah aplikasi ini? Saya melihat potensi selain untuk membuat permainan, Anda bisa membuat semacam kuis interaktif untuk anak kecil sebagai bahan mata ajar. Anda bisa mengubah tata letak sehingga bisa membuat aplikasi ini menjadi ujian langsung.

Selamat berkarya!

Bacaan Lebih Lanjut

Membuat VLOG dengan Perangkat Lunak Bebas dan Terbuka

Saat ini di Indonesia sedang keranjingan membuat VLOG. VLOG adalah jurnal berbentuk video yang diunggah ke Youtube. Bahkan, Pakde Jokowi, Presiden RI, juga memiliki kanal Youtube resmi.

Mengapa saya spesifik menyebutkan hanya Youtube? Mengapa saya tidak menyebut media sosial lainnya? Karena vidio.com jarang yang menonton dan Vimeo masih saja ada yang memblokir. Selain itu, proses komersialisasi video atau lazim yang disebut sebagai monetisasi, hanya disediakan dengan mantap oleh Youtube.

Ahem! Saya sebenarnya mau menyinyir yang lainnya, bukan itu. Saya sedih bahwa banyak artis-artis media sosial yang menyarankan menggunakan perangkat berbayar semisalnya Adobe Premiere Pro. Banyak yang memberikan tutorial menggunakan perkakas ini. Sepertinya mereka banyak yang sanggup membayar Rp269.800,00 per bulan atau Rp3.237.600,00 per tahun.

Hmm…

Menurut saya, ada banyak peralatan yang lebih murah untuk membuat itu.

Perkakas yang Digunakan

Saya menggunakan kamera telepon pintar saya, Xiaomi Mi 6. Berikut spesifikasi saya:

  • Sistem operasi saya Lineage OS 14.1 bentukan 1024 oleh Xiaobai yang didapatkan dari XDA Developer.
  • Aplikasi Legend untuk membuat logo yang menarik. Saya dapatkan dari Playstore.
  • Aplikasi Audio Recorder untuk merekam suara. Saya dapatkan dari F-Droid.
  • Aplikasi kamera Snapdragon PRO M 4.4.0. Saya dapatkan zip pemasangan dari XDA.

Semua aplikasi yang saya sebutkan bisa diganti dengan yang lain. Intinya, semua kebutuhan (OS, kamera, dan aplikasi) sudah bisa dipenuhi dan banyak alternatif yang gratis dan bebas.

Saya memiliki PC dengan memori 32GB dan AMD FX-8350 seperti yang sudah pernah saya bahas sebelum ini. PC ini masih mumpuni. Berikut spesifikasi saya:

  • Sistem operasi saya GNU/Linux KDE Neon 5.11, sebuah distribusi KDE berdasarkan Ubuntu 16.04.
  • Aplikasi Kdenlive untuk menyunting video.
  • Aplikasi Audacity untuk menyunting suara. Aplikasi ini sangat penting untuk memperbaiki bising yang timbul.

Sekarang saatnya membuat video.

Bahan-bahan

Saya menggunakan bahan-bahan sebagai berikut:

  • Berkas intro tanpa suara yang dibuat dari Legend.
  • Berkas ketukan untuk suara intro yang saya rekam sendiri menggunakan Audio Recorder. Saya buat dengan mengetukkan meja.
  • Berkas “Take_You _Home_Tonight.mp3” yang disediakan oleh Youtube untuk bebas diunduh. Kalau penasaran, sumbernya “Take You Home Tonight – Vibe Tracks”.
  • Berkas saya berbicara singkat.
  • Berkas suara saya berbicara singkat.

Membuat Intro (dan Outro Karena Saya Terlalu Malas)

Create logo

Dari Legend, ketik kata yang mau dijadikan logo. Lalu, tekan tanda centang.

Edit Logo

Edit Logo

Sunting animasi logo dan tekan tanda panah ke bawah (ekspor/unduh) untuk memilih mengunduh sebagai video.

Video yang dibuat masih tidak ada suara. Anda dapat membuat suara apa pun, namun perhatikan lisensi lagu/suara yang hendak dijadikan suara latar. Untuk menghindari kerumitan, kali ini saya menggunakan suara yang saya buat sendiri. Selain unik, suara ini pun bebas lisensi dari orang lain. Benar-benar 100% karya sendiri.

Pada Kdenlive, klik Project → Add Clip untuk menambah video animasi dan suara ketukan animasi. Nanti pada Project Bin, video animasi dan suara akan muncul sebagai aset proyek (sebutan untuk mereka klip suara dan klip video). Untuk menggunakan keduanya, drag saja masing-masing ke linimasa (timeline) Video 1 dan Suara 1.

Inilah demarkasi yang membedakan orang jago dan bodoh. Proses membuat suara dan video menjadi sesuai/sinkronisasi. Anda harus pintar untuk menyesuaikan suara dan video (timing). Saya, sih, membuat klip video animasi pada menit 0 dan klip suara mulai dari menit ke-15. Saya juga menambahkan efek Phaser ke klip suara.

Setiap kita punya selera berbeda. Namun, saya sudah memberikan prinsip bagi Anda.

Video Isi

Pada video isi, saya seperti biasa menambahkan aset klip video pembicaraan saya.

Lalu, pada Project Bin, saya klik kanan → Extract Audio → Wav 48000Hz untuk menghasilkan klip suara pembicaraan saya. Pada video asli, suara saya berdesis (noise).

Modifikasi Desis

Buka Audacity dan buka berkas mentahan klip suara. Pada Audacity, drag pada bagian kosong yang biasanya cuma berisi desis.

Drag to get noise sample

Drag to get noise sample

Lalu, pilih Efek → Noise Reduction → Get Noise Profile.

Setelah itu, pilih semua bagian klip suara yang mau dibuang kebisingannya. Saya pilih CTRL + A untuk memilih semua.

Setelah terpilih, klik Efek → Noise Reduction → Get Noise Profile → OK. Ya, silakan ubah-ubah parameter sebelum OK. Saya sendiri hanya mengubah Noise reduction menjadi 15dB.

Buat Diam

Oh, iya, terkadang kita tidak bisa menghindari suara-suara aneh, misalnya di awal ada suara kamera. Drag saja area klip suara yang mau dibuang. Lalu, pilih Buat → Diam… → OK.

Simpan perubahan dengan Berkas → Export Audio.

Sinkronisasi Pembicaraan

Nah, ini yang paling ribet sedunia. Bahkan dunia rekaman profesional pun suka salah. Masukkan klip suara yang sudah dibuat di Audacity sebagai aset proyek.

Saya biasanya membagi klip video menjadi kanal video dan kanal suara. Caranya, dengan klik kanan pada klip di linimasa dan pilih Split Audio.

Buat kanal Audio baru dengan cara klik kanan pada panel label linimasa dan pilih Insert Track.

Drag klip suara ke trek yang baru dibuat. Sesuaikan gambarnya dengan trek audio asli.

Sound edit

Sound edit. Sorry BGM got in the way because recreate for the tutorial.

Seperti pada gambar, saya berusaha menyesuakan suara hasil sunting dengan suara asli. Saya perhatikan gunung-gunung suara. Mohon maaf bila pada gambar tersempil kanal BGM. Cuplikan saya buat setelah produksi untuk keperluan blog ini. Biasanya di atas BGM.

Setelah dirasa sesuai, klik kanan pada kanal Suara Asli dan hapus kanal tersebut. Hal ini agar suara yang digunakan adalah suara yang sudah dibersihkan sebelumnya.

Suara Latar (BGM/Background Music)

Beda jenis isi, beda pula penggunaan BGM. Ada yang sama sekali tak perlu misalnya, bila itu isinya adalah lagu, khotbah, atau diskusi bersama. Namun, suara jangkrik akan terdengar bila saya sendirian berbicara tanpa ada suara apa pun. Biasanya, untuk format santai, gunakan suara latar untuk menambah isi.

Prinsipnya sama seperti waktu kita makan di restoran atau belanja di Mall. Lagu yang dipasang menambah suasana kondusif. Ingat, ya, penambah, bukan untuk mengacaukan. Jadi, pilihlah suara yang sesuai dengan tema isi blog.

Youtube menyediakan aset suara yang bisa diunduh dan digunakan secara bebas. Perhatikan lisensi suara yang hendak digunakan. Biasanya ada lisensi yang memerlukan atribusi (penyantuman nama lagu yang digunakan) dan sebagainya. Saya menggunakan suara yang berlisensi Domain Publik/bebas.

Seperti biasa, masukkan berkas suara tersebut menjadi klip suara di Project → Add Clip. Drag seperti biasa untuk sejajar dengan konten. Atau, bisa agak geser sedikit kalau mau agak nyeni dan sedikit pro.

Ada dua cara untuk menyesuaikan durasi klip suara latar dengan klip konten. Yang pertama, ke ujung klip lalu kecilkan bingkai klip lagu sehingga pas dengan durasi yang dibutuhkan. Cara kedua, klik dua kali pada  klip suara dan klip bisa disesuaikan parameter durasi, mulai muncul pada menit ke berapa, dan berakhir pada menit ke berapa. Saya menggunakan cara pertama, lalu menggunakan cara kedua untuk lebih presisi lagi.

Ingat! Kita mau mendengar suara saya yang lembut dan bersahaja, bukan suara musik. Untuk itu, suara BGM harus dipelankan. Caranya: pilih klip suara, lalu pilih Add Effect → Audio correction → Volume (keyframable). Pada bagian Effects for Take_You_Home_Tonight.mp3, di bagian Volume, saya menurunkan Gain menjadi -17dB. Cara menurunkannya adalah dengan drag di batang Gain.

Setiap klip baik suara mau pun video dapat dibuat efek-efek yang ditumpuk menjadi satu. Namun, untuk saat ini, cukup gunakan efek dasar saja.

Terakhir

Saya pun menambahkan klip video Intro di bagian akhir. Saya memperpanjang durasi klip suara BGM sampai ke bagian akhir klip ini.

Semua proses ini saya kerjakan sekitar sejam lebih. Hal ini karena saya harus mencari-cari aplikasi yang diperlukan dan iseng-iseng mencoba. Menurut saya, kalau memang niat, kumpulkan saja klip-klip yang diperlukan. Dan, apabila sudah terbiasa, paling proses ini hanya 15 menit saja. Apalagi, saya belum menggunakan preset (konfigurasi yang sudah tersimpan dan siap digunakan).

Saya justru menghabiskan waktu untuk mengetik entri blog ini. Ah, saya sudah ditunggu untuk minum kopi bersama. Masih banyak perkakas lain yang bisa dipakai untuk membuat video. Namun, untuk saat ini saya rasa cukuplah untuk membuat video Youtube yang sederhana dan mumpuni. Yang bikin canggih itu  kreativitas, bukan perkakas yang mahal.

May the source be with you.

Belajar dari Equifax: Menerapkan Standarisasi Organisasi yang Berbasis TIK

Belajar dari Equifax: Menerapkan Standarisasi Organisasi yang Berbasis TIK

Equifax ternyata terjebol dari titik celah keamanan Apache Struts. Celah dengan kode CVE-2017-5638 tersebut merupakan celah keamanan yang memungkinkan penyerang mengunggah kode yang dapat menjalankan perintah. Celah ini diumumkan pada 19 Maret 2017.

Untungnya, pengembang Apache telah menambal celah keamanan tersebut pada hari yang sama. Namun, Equifax tidak dapat dengan segera menambal celah tersebut dengan cepat. Bisa jadi, hal ini disebabkan oleh karena penambalan tersebut akan menyebabkan operasi bisnis Equifax terhenti.

Praktik Standar Keamanan Informasi

Tidak akan pernah ada perangkat lunak yang tidak bercacat. Hal ini berlaku baik untuk perangkat lunak bebas/terbuka (FOSS) atau pun perangkat lunak tertutup (proprietary). Untuk itu, diperlukan penerapan prinsip-prinsip penerapan TIK yang benar dalam sebuah organisasi. The Apache Struts Project Management Committee (PMC) memberikan saran mengenai hal tersebut:

  1. Mengerti pustaka perangkat lunak dan versinya apa saja yang digunakan dalam organisasi. Ikuti dan lacak perkembangan untuk setiap perangkat lunak tersebut.
  2. Buat sebuah proses dalam organisasi untuk dapat menambal dengan cepat. Cepat dalam hitungan jam atau beberapa hari, bukan bulan atau pun tahun. Kasus yang ditemui biasanya kasus penjebolan melalui cacat yang sudah diumumkan berbulan/bertahun-tahun sebelumnya.
  3. Setiap perangkat lunak yang kompleks mengandung cacat. Jangan membuat kebijakan keamanan (security policy) berdasarkan asumsi bahwa perangkat lunak yang mendukung itu bebas cacat, terutama kecacatan dalam hal keamanan.
  4. Buat lapisan-lapisan keamanan. Adalah sebuah praktik pengembangan perangkat lunak yang baik untuk melindungi setiap lapisan yang ada di belakang lapisan presentasi seperti Apache Struts. Terjebolnya lapisan presentasi (web) seharusnya tidak menyebabkan akses menyeluruh kepada seluruh data.
  5. Buat pemonitoran yang aktif terhadap Web yang dimiliki. Saat ini sudah banyak solusi baik perangkat lunak terbuka mau pun komersial yang bisa mendeteksi dan memberitahukan adanya pola-pola penyerangan.

Hal ini adalah standar paling dasar yang diterapkan dalam sebuah organisasi. Ada hal-hal lain yang juga perlu diperhatikan selain perangkat lunak dan perangkat keras dalam perusahaan. Keamanan sistem informasi juga berlaku untuk sumber daya manusia dan yang lainnya yang dapat menimbulkan risiko keamanan.

Semua ini sudah ada dalam standar-standar Kebijakan TIK. Ada ITIL, TOGAF 9.1, dan bahkan ISO/IEC 27001:2013. Semuanya bisa dipilih dan diterapkan kepada organisasi. Biasanya, mereka menerapkan level dan roadmap sesuai dengan kebutuhan organisasi.

UI sendiri, walau pun tanpa SK Rektor, telah menerapkan kebijakan keamanan sejak zaman dahulu kala. Misalnya, hal yang paling menyebalkan dan sederhana, mengganti sandi setiap 6 bulan sekali. Kebijakan ini adalah bagian dari Kebijakan Sandi (Password Policy) yang merupakan bagian dari standar Kebijakan TIK. Saking sudah lamanya, semua sistem operasi, baik Microsoft Windows maupun GNU/Linux, sudah memiliki perkakas untuk menerapkan kebijakan pembuatan sandi.

Bukan hanya itu, Badan standar Amerika (NIST) menganjurkan kebijakan cara membuat sandi yang benar dalam NIST SP 800-63B-3. SANS Institute bahkan menawarkan templat dokumen yang dapat digunakan untuk membuat sandi. Sedikit pencarian dapat ditemukan artikel yang memberikan petunjuk kepada pengguna ketika membuat sandi. Pembuatan sandi yang aman itu sendiri masuk dalam ITIL Access Management.

Metrik Pengukuran Penerapan Keamanan Sistem Informasi

Ada prinsip yang selalu saya pegang sejak lama:

Keamanan berbanding terbalik dengan Kenyamanan

Mengakses langsung tentunya jauh lebih cepat dari pada mengakses melalui HTTPS dan memasukkan sandi. Menaruh satpam dan CCTV di depan pintu gerbang menghabiskan banyak duit dibandingkan gerbang terbuka bagi siapa saja. Ya, Anda mungkin mengerti maksud saya.

Memilih titik tengah antara pengamanan dan kenyamanan adalah sebenarnya memilih metrik yang tepat sehingga keamanan dapat dicapai dengan tingkat kenyamanan yang bisa diterima. Beberapa metrik yang sederhana yang saya tahu:

  • Visi dan misi organisasi. Hal fundamental ini yang mendasari semua hal dalam organisasi. Keamanan tentunya juga bagian dari visi dan misi organisasi. Jika terkandung visi tridarma, maka keamanan harus disesuaikan dengan kemudahan menerapkan tridarma. Jika misi mendukung disabilitas, maka keamanan yang diterapkan harus mencakup kaum difabel.
  • Pengalaman Pengguna (User eXperience). Pengalaman pengguna ini justru membuat keamanan itu seakan nyaman. Hal ini karena praktik keamanan yang lumrah di pengguna (kebiasaan) dapat menyebabkan persepsi kenyamanan tinggi bagi pengguna. Bahkan anehnya lagi, jika keamanan itu tidak diterapkan, pengguna malah merasa tidak nyaman. Metrik ini berguna untuk membuat penerapan keamanan yang baik atau pun menerapkan langkah-langkah bertahap untuk mencapai standar keamanan tanpa membuat pengguna terusik.
  • Manajemen Risiko (Risk Management). Manajemen Risiko membuat penilaian tentang risiko-risiko yang mungkin terjadi beserta dengan dampaknya. Saya paling suka dengan dokumen ini karena bila sebuah risiko dapat dikuantifikasi, kita dapat tahu seberapa potensi kerugian organisasi. Dengan menggunakan penilaian ini, kita juga dapat terbantu untuk mengenali titik-titik yang harus dilindungi dalam organisasi dan membuat proses mitigasi sesuai dengan level risiko dan nilai kerugian yang dapat timbul.

Ketiga metrik ini cukup untuk mengukur dan membuat kebijakan keamanan dalam sebuah organisasi. Tentunya, ada beberapa platform seperti ITIL, TOGAF, dan lainnya yang sudah menerapkan titik-titik yang perlu dibuat dan dikelola. Ya, intinya, buatlah sesuai kemampuan dan kepentingan organisasi.

Mohon maaf, saya diajak minum kopi. Mungkin nanti saya lanjutkan lagi. Tulisan ini terlalu panjang sepertinya dan akan saya lanjutkan Nanti bila saya ada waktu℠ 😛

Bacaan Lebih Lanjut

Belajar Dari Kasus Equifax: Privasi, SNI, dan Payung Hukum Terpadu

Belajar Dari Kasus Equifax: Privasi, SNI, dan Payung Hukum Terpadu

Ada 3 perusahaan besar (swasta) di Amerika Serikat (AS) yang mencatat semua transaksi keuangan (kartu kredit, pinjaman, SSN/nomor sosial) warga negara AS. Mereka adalah Equifax, Experian, dan TransUnion. Pada tanggal 7 September 2017, Equifax mengumumkan bahwa datanya telah terjebol. Sebanyak 143 juta rakyat AS, sekitar 44% populasi total AS, terlepas mereka menggunakan Equifax atau tidak, memiliki kemungkinan bahwa identitasnya yang tercuri dapat digunakan untuk melakukan transaksi keuangan.

Ironisnya, menurut Michael Riley, data tersebut justru tercuri dari situs Equifax yang menawarkan produk perlindungan pencurian informasi. Situs tersebut teretas menggunakan kelemahan-kelemahan yang ada untuk mengakses 143 juta data tersebut. Equifax menunggu 6 minggu untuk mengumumkan peretasan tersebut.

Apa yang dilakukan Equifax dalam 6 minggu?

Mereka membuat sebuah laman www.equifaxsecurity2017.com yang dibuat di sebuah penyedia situs umum dengan DNS yang terdaftar secara anonim, bukan atas nama Equifax. Situs ini sepertinya dibuat secara tergesa-gesa sehingga masih ada beberapa data sensitif yang belum dilindungi. Situs ini bahkan sempat ditandai sebagai situs yang mencurigakan. Padahal, situs ini menyediakan layanan kepada rakyat AS apakah data mereka terjebol.

Situs ini mensyaratkan setiap orang yang menggunakan layanan untuk mengetahui datanya terjebol atau tidak harus secara otomatis melepaskan haknya untuk menuntut Equifax untuk hal yang terjadi sebagai syarat penggunaan (Terms of Use). Artinya, semua orang yang akan menggunakan layanan itu akan secara otomatis tidak bisa lagi menuntut kecerobohan Equifax. Namun, Jaksa Umum New York mengatakan bahwa syarat arbitrasi tersebut tidak benar dan meminta Equifax untuk mengubah/menghapus syarat penggunaan tersebut.

Beberapa hari setelah terjebolnya data Equifax, 3 orang eksekutif dalam perusahaan tersebut menjual sahamnya. Mereka berdalih bahwa ini hanya kegiatan yang biasa dan, menurut perusahaan, tidak mengetahui adanya kejadian terjebolnya data sebelum penjualan saham tersebut. Terlepas dari itu semua, para analis pasar modal justru menyarankan yang lain untuk membeli saham Equifax atau menahan diri untuk menjual saham tersebut.

Pelajaran

Banyak orang berasumsi bahwa tidak ada yang perlu ditakutkan bila kita tidak melakukan hal-hal yang salah. Nyatanya, penggunaan data secara ilegal pada era digital justru memerlukan privasi. Privasi bukan hanya mengatur data apa saja yang perlu dilindungi (boleh dibuka/tidak), namun juga mengatur kewajiban apa yang diperlukan untuk sebuah entitas (perusahaan/orang/apa pun) yang memegang info sensitif tersebut. Itu sebabnya, sebuah entitas bisnis diperlukan untuk membuat pernyataan privasi pada banyak negara.

Hal-hal yang dilakukan oleh Equifax ketika terjadi peretasan menandakan bahwa mereka tidak siap. Bahkan, mereka terkesan hendak cuci tangan. Padahal, ISO27001 dan standar keamanan sistem informasi (COBIT, ITIL, TOGAF) lainnya sudah ada.

Apakah standar-standar keamanan organisasi ini wajib diterapkan?

Kalau di Indonesia, sejauh ini saya baru menemukan POJK Nomor 38/POJK.03/2016 mengenai ketentuan bank umum untuk menerapkan standar-standar keamanan sistem informasi. Belum secara spesifik menyebutkan standar apa yang dipakai, misalnya SNI ISO/IEC 27001:2013. Jadi, standar apa pun yang digunakan asalkan disebutkan standar keamanan yang memenuhi kaidah tersebut, bolehlah. Lalu, bagaimana dengan industri telekomunikasi dan lembaga-lembaga lainnya yang non-bank umum?

Anda mungkin percaya kepada entitas yang memegang data Anda. Namun, ketidaktahuan bagaimana cara mereka menyimpannya dapat membuat data Anda tercuri. Alangkah baiknya pada era digitalisasi dan pertukaran data, payung hukum terpadu yang mendukung privasi dan prinsip keamanan dikembangkan. Hal ini dapat memaksa mereka untuk menerapkan standar keamanan yang cukup untuk melindungi data yang sudah dipercayakan.

Mungkin, suatu hari nanti apa bila itu terjadi, penipuan berbasis SMS sudah tidak laku lagi. Amin.

Maaf, ya, karena penjabaran berita Equifax kepanjangan, saya tidak menulis secara lengkap pendapat saya seperti biasanya. Nanti bila saya ada waktu℠ 😛

 

#TeamElonMusk
Super Android, recharge!

#TeamElonMusk

Mark Zuckerberg dan Elon Musk berselisih pendapat mengenai keberadaan kecerdasan buatan (Artificial Intelligence/A.I.). Perselisihan dimulai dari Elon Musk yang menginginkan agar pemerintahan seluruh dunia segera bersatu membuat aturan yang mengatur kecerdasan buatan. Kemudian, melalui Facebook Live, Zuckerberg membantah Elon Musk dan mengatakan bahwa kecerdasan buatan sangat membantu dan berharap bahwa 10 tahun mendatang kecerdasan buatan dapat menolong memperbaiki kehidupan manusia. Elon Musk merupakan bagian dari penanda tangan surat terbuka yang dibuat tahun 2015 untuk meminta pengembangan kecerdasan buatan yang bertanggung jawab.

Kata-kata Mereka

Agar elok, mari kita bandingkan perkataan mereka mengenai kecerdasan buatan agar lebih mudah membahas apa sebenarnya yang menjadi masalah.

Perkataan Elon Musk

Berikut apa yang dikatakan oleh Elon Musk:

“Normally the way regulations are set up is a whole bunch of bad things happen, there’s a public outcry and then after many years the regulatory agencies set up to regulate that industry. That in the past has been bad but not something that represented a fundamental risk to the existence of civilisation. AI is a fundamental risk to the existence of civilisation in a way that car accidents, aeroplane crashes, faulty drugs or bad food were not. They were harmful to a set of individuals but they were not harmful to society as a whole.”

Menurut Musk, normalnya regulasi dibuat setelah terjadi pertentangan di publik yang memaksa sesuatu untuk diregulasi. Hal ini karena risiko yang dapat timbul tidak mengancam keberadaan peradaban manusia. [Sedangkan] Kecerdasan Buatan adalah ancaman yang mengancam peradaban yang mana berbeda [tingkat ancamannya] dengan kecelakaan mobil, kecelakaan pesawat, obat-obatan terlarang,  atau makanan yang buruk. Semuanya itu berbahaya kepada beberapa individu, tetapi mereka tidak berbahaya kepada masyarakat secara keseluruhan [seperti kecerdasan buatan].

Elon Musk mencemaskan kecerdasan buatan yang dapat mengancam keberadaan peradaban manusia.

Perkataan Zuckerberg

Berikut yang dikatakan oleh Zuckerberg:

I have pretty strong opinions on this. I am optimistic. I think you can build things and the world gets better. But with AI especially, I am really optimistic. And I think people who are naysayers and try to drum up these doomsday scenarios—I just, I don’t understand it. It’s really negative and in some ways I actually think it is pretty irresponsible In the next five to 10 years, AI is going to deliver so many improvements in the quality of our lives… Whenever I hear people saying AI is going to hurt people in the future, I think, “yeah, you know, technology can generally always be used for good and bad, and you need to be careful about how you build it, and you need to be careful about what you build and how it is going to be used.” But people who are arguing for slowing down the process of building AI, I just find that really questionable. I have a hard time wrapping my head around that.

Zuckerberg berpendapat bahwa kita dapat membangun banyak hal untuk membuat dunia yang lebih baik. Tentang kecerdasan buatan, dia optimis dan tidak mengerti mengapa ada orang-orang yang menentang dengan alasan penyebab kiamat. Padahal, dalam waktu 10 tahun, kecerdasan buatan dapat meningkatkan kualitas hidup kita. Memang, semua teknologi bisa digunakan untuk kebaikan atau kejahatan dan kita harus berhati-hati dalam menggunakan teknologi. Untuk orang-orang yang berargumen untuk memperlama proses pembuatan kecerdasan buatan, Zuckerberg mempertanyakan pendapat tersebut.

Zuckerberg berpendapat bahwa kecerdasan buatan hanyalah sebuah teknologi sama seperti teknologi lainnya. Ia dapat digunakan untuk kebaikan atau keburukan. Sehingga, memperlambat pengembangannya adalah hal yang tidak masuk akal.

Kecerdasan Buatan yang Dimaksud

Apa, sih, yang mereka perdebatkan?

Dari segi tingkat kecerdasan, ada tiga jenis kecerdasan buatan:

  • Kecerdasan Buatan Lemah, Weak A.I./Artificial Narrow Intelligence (ANI). Sistem kecerdasan buatan yang dibuat untuk menyelesaikan satu area permasalahan saja. Misalnya, kecerdasan buatan yang dibuat untuk bermain catur.
  • Kecerdasan Buatan Umum, Artificial General Intelligence (AGI). Sistem kecerdasan buatan yang dibuat untuk mereplikasi pikiran manusia.
  • Kecerdasan Buatan Super, Artificial Superintelligence (ASI). Sistem kecerdasan buatan yang memiliki kemampuan berpikir jauh lebih pintar dari manusia.

Hal yang ditakutkan oleh Elon Musk adalah kecerdasan buatan umum (AGI) yang saat ini sedang dikembangkan. Ada dua sifat yang menjadi ancaman membuat kecerdasan buatan ini menakutkan:

  1. AGI memiliki kemampuan untuk berkomunikasi dengan bahasa yang tidak dimengerti oleh manusia. Hal ini membuat penyeliaan menjadi proses yang rumit bahkan mustahil.
  2. AGI memiliki kemampuan untuk memperbaiki algoritma untuk mencapai tujuan. Perbaikan tanpa penyeliaan manusia dapat menghasilkan keputusan yang tidak dapat dicegah.

Intinya, ketika pengembangan kecerdasan buatan tanpa penyelia tercapai masalah dapat muncul. Arah algoritma yang tak terduga dapat membuat algoritma kecerdasan buatan menjadi jahat (rogue). Itu sebabnya, ada usaha seperti Google yang berusaha mengembangkan kecerdasan buatan yang tidak curang.

Ancaman Nyata Saat Ini

Hal yang paling berpengaruh dalam kecerdasan buatan adalah otomatisasi. Otomatisasi meningkatkan efisiensi yang dapat menurunkan biaya produksi. Lengan-lengan robotika dan mesin yang diatur secara canggih menghasilkan paket produk secara cepat.

Sayangnya, keberadaan otomatisasi menghilangkan kebutuhan industri akan pekerja (manusia). Otomatisasi menghilangkan banyak pekerjaan yang tersedia bagi manusia. Mereka tergantikan oleh mesin yang lebih efisien dan anti mogok kerja.

Zuckerberg tidaklah 100% melawan Musk. Seperti Elon Musk, dia menyetujui juga pentingnya pendapatan dasar universal (universal basic income, UBI). Pendapatan dasar universal adalah bantuan tunai langsung yang diberikan oleh pemerintah kepada masyarakat akibat adanya otomatisasi industri yang menggantikan pekerja. Sebagai contoh, Pemerintah Alaska menerapkan kebijakan Permanent Fund Dividend (PFD) yang memberikan uang rata-rata senilai US$1.000,00 per kepala.

Pemerintahan SBY pernah mencoba melakukan program UBI melalui Bantuan Langsung Tunai (BLT). Penyebabnya bukanlah otomatisasi industri, tetapi inflasi yang berlebihan. Namun, karena data penduduk yang digunakan adalah data lama, maka BLT berlangsung gagal dan mendapat kecaman. Timbul konflik di beberapa daerah akibat adanya BLT. Selain itu, persepsi masyarakat merasa bahwa BLT membebankan APBN. Waktu yang terbatas pun menjadikan BLT menjadi tidak tepat guna karena belum sempat efektif implementasinya.

Padahal, menurut Evans dan Popova dalam penelitian mereka di Kenya, justru tingkat penggunaan uang dari BLT sangat baik. Ketika wanita menjadi pemegang keuangan, alkohol dan rokok justru tidak terbeli. Mereka fokus untuk pemenuhan rumah tangga. Mungkin, itulah sebabnya Jokowi/Ahok menggunakan variasi BLT dalam KJP untuk dapat menaikkan standar hidup mereka sekaligus memberikan kepercayaan kepada masyarakat bahwa uang yang diberikan tidak untuk disia-siakan.

UBI bisa jadi solusi jangka panjang untuk hilangnya lapangan pekerjaan. Ada tantangan yang akan dihadapi ketika ini diterapkan di Indonesia. Pendataan penduduk yang akurat dan waktu untuk menerapkan yang cukup lama. Selain itu, pemerintah memiliki tugas untuk meyakinkan masyarakat yang masih memiliki lapangan pekerjaan bahwa tidak apa untuk memberikan gratis uang kepada mereka yang pekerjaannya terhilang.

Saya belum yakin kalau Indonesia akan bisa menganggap mereka yang menganggur sebagai penyebab hilangnya lapangan pekerjaan. Jangan-jangan, saat otomatisasi tiba, kita akan mengira bahwa mereka hanyalah orang-orang yang malas. Bahkan, kita tidak lagi mengganggap mereka adalah orang-orang yang kesempatannya telah hilang, tetapi lebih rendah dari itu.

Itulah makanya, saya setuju bahwa pencapaian teknologi perlu diimbangi dengan kajian yang mendalam mengenai dampak sosial yang akan muncul. Tidak untuk mencegah kemajuan, namun untuk sebuah kemanusiaan yang masih bebas dan merdeka.

Pemasangan Oneplus 5: Bagian 2
Super Android, recharge!

Pemasangan Oneplus 5: Bagian 2

Pada bagian ini saya hendak menceritakan beberapa perkakas yang saya pasang untuk membantu saya.

Komponen Google

Ingat bahwa saya menghapus banyak aplikasi standar OOS? (Debloated)

Nampaknya, ada beberapa komponen Google yang harus ada supaya aplikasi dan penggunaan Oneplus maksimal.

  • Google. Nampaknya peluncur Oneplus dan komponen lainnya mengambil data dari API Google. Jadi, aplikasi ini terpasang secara baku.
  • GBoard. Saya suka dengan susunan tombol dari Google Keyboard.
  • GMail. Untuk mengakses surel yang diperlukan untuk spamming daftar ke banyak situs.
  • Google Calendar. Pengingat ulang tahun nomor wahid. Bisa rusak hubungan tanpa ini.
  • Google Drive. Setidaknya bisa melihat dokumen dengan ini.
  • Google Play Games. Mobile Legends menggunakan ini untuk menyimpan data. Apa? Anda pikir saya terlalu serius?
  • Google Text-to-speech (TTS). Penyedia NLP de facto di Android. Saya malas memasang yang alternatif. Teknologi TTS dibutuhkan untuk aplikasi yang menyebutkan sesuatu seperti nama jalan. Aplikasi Here MAPS yang saya gunakan butuh ini.
  • Snapseed. Untuk menjadi (mengemulasi diri seperti) anak gaul perlu banyak efek kamera yang komprehensif. Didukung dengan kamera yang prima, Snapseed menjadi perkakas utama untuk tampil prima di media sosial.

Komponen Magisk

Magisk adalah sebuah proyek baru yang mengimplementasi supersu, fungsi rooting di Android. Berikut adalah modul tambahan yang saya masukkan untuk membuat Oneplus 5 saya lebih berwarna:

  • Busybox for Android NDK. Seperti Google, aplikasi wajib.
  • F-Droid Privileged Extension. Aplikasi market yang memasang aplikasi FOSS.
  • Sony Music app Magisk Module. Saya pecinta Sony Ericsson dari zaman Z600 sampai terakhir Xperia Mini Pro. Berhubung tidak ada aplikasi musik pada ROM yang saya pasang, saya memilih aplikasi ini. Keunggulan dia adalah bisa memilih dari direktori atau pustaka. Plus, bisa mencari gambar album. Terakhir, menaruh lagu/album ke playlist.

Demikian.

 

 

Pemasangan Oneplus 5: Bagian 1
Super Android, recharge!

Pemasangan Oneplus 5: Bagian 1

Oneplus 5

Oneplus 5 package

Sebegitu rindunya saya memiliki Oneplus 5 sehingga saya pun terpaksa menelan harga diri dan menerima paket Oneplus 5 dengan bonus Beats. Ingat! Saya tidak menggunakan Beats, jadi jangan hakimi saya!

Paket yang saya beli memberikan saya satu karet pelindung, satu pelindung layar, dan satu Beats. Sayangnya, dari ketiganya hanya karet pelindung yang saya pakai sementara. Sisanya akan teronggok di gudang.

Langkah yang pertama ketika membuka Oneplus 5, seperti versi sebelumnya, saya mengganti ROM pabrikan. Hal ini penting karena ada beberapa fitur yang perlu:

  • AdAway untuk DNS anti iklan.
  • F-Droid untuk penyedia aplikasi GPL v3.
  • Membuang aplikasi yang tak perlu.
  • Deodexed, penjadwal kernel, dan beberapa fitur lainnya.
  • Dan beberapa aplikasi yang tak baik untuk disebut di sini.

Saya sebenarnya lebih suka ROM non-OOS (non-Oxygen OS). Namun, apa daya karena masih baru, ada galat seperti dukungan Bluetooth dan beberapa galat lainnya membuat saya masih berpaling ke ROM berbasis OOS.

Setelah riset beberapa saat, saya memutuskan untuk memilih berikut:

Aktifkan Debug

Dari Settings → About phone, ketuk beberapa kali pada baris Build number untuk mengaktifkan Developer options. Keluar dari About phone akan ada menu baru Developer options.

Aktifkan OEM unlocking untuk memasang ROM pemulihan terkustomisasi, TWRP.

Aktifkan USB Debugging agar dapat dikenali di komputer.

Setelah ini, sambungkan ke komputer. Telepon akan menanyakan apakah komputer dapat dipercaya. Silakan dicentang dan setujui. Bila benar, maka Oneplus akan dikenali:

Selanjutnya memasang BOOT.

Memasang Boot

Nyalakan ulang Oneplus ke mode Fastboot:

Buka segel Oneplus:

Saya asumsikan Anda sudah mengunduh twrp-3.1.1-1-cheeseburger.img di komputer Anda.

Nyalakan ulang dan masuk ke Recovery:

Salah satu kekurangan ketika dibuka kunci, perangkat Oneplus pasti mengaktifkan fungsi semacam menu GRUB sebelum masuk. Ya, tinggal pencet tombol Power, sih, untuk Start kalau tidak sabar menunggu beberapa detik.

Memasang ROM

Ketika di dalam mode Recovery, Anda dapat menggunakan menu-menu TWRP untuk memasang sistem. Tetapi, apa serunya? Saya menggunakan terminal dan TWRP.

Format Partisi Lama

Pada menu TWRP, pilih Wipe → Advanced Wipe

Pilih partisi-partisi berikut untuk dihapus:

  • Dalvik/ART Cache
  • Cache
  • System
  • Data

Sisakan Internal Storage dan USB-OTG. Lalu, Swipe to Wipe

Wipe before install

Tekan tombol kembali tiga kali untuk kembali ke menu utama.

Menaruh Berkas-berkas

Taruh berkas-berkas yang diperlukan ke Oneplus.

ROM

Kernel

Pemasang ROM xXx akan mengenali kernel Adin bila ditaruh pada direktori yang tepat:

Pasang ROM

Untuk memasang, di menu utama ketuk menu Install.

Pilih ZIP ROM xXx yang telah diunggah tadi.

Swipe to confirm Flash

Perhatikan bahwa kita tidak perlu memilih kernel Adin karena akan dideteksi nanti.

xXx Aroma Installer

Pilih Make your individual Selections karena saya suka kebebasan!

Pastikan pilihan berikut tercentang:

Reboot Options:

  • Reboot after Flashing

Root Access:

  • Magisk v13 by topjohnwu

xXx Tweaks:

  • xXx Tweaks Framework
  • Windows Animation Scales

Kernel:

  • Kernel Selection Menu

SDcard Fix:

  • Fix SDcard permissions

Update Radio and Firmware

  • Flash Radio and Firmware

Reset Magisk Repository Image

  • Reset Magisk Image (pastikan ini dipilih supaya bersih)

Ketuk Next untuk ke halaman selanjutnya.

Laman ini laman preferensi. Jadi, silakan saja pilih sesuka hati. Namun, berikut pilihan saya.

Launcher Selection:

  • OnePlus Launcher (saya pilih ini biar terasa rasa Oneplus-nya)

Sound Mods saya tidak pilih satu pun karena semua musik yang saya taruh saya rip dari CD yang saya beli sendiri.  Silakan pilih kedua pilihan yang ada kalau Anda mau.

Debloating:

  • Extreme Debloating

Emojis:

  • Oneplus Stock Emojis 

Ketuk Next untuk ke halaman selanjutnya.

Windows Animation Speeds:

  • Fast Animations (tergantung selera)

Ketuk Next untuk ke halaman selanjutnya.

Kernel Selections:

  • STOCK KERNEL
  • Adin Kernel – by adinkwok

Ketuk Next untuk ke halaman selanjutnya.

Ketuk Next untuk untuk memulai pemasangan sistem.

Bila benar, maka setelah selesai pemasangan, sistem akan dinyalakan ulang dan masuk ke sistem yang baru. Selanjutnya, pemasangan Oneplus seperti biasa.

Memasang React Native
Super Android, recharge!

Memasang React Native

WordPress semenjak versi 4.7 telah menambahkan fitur WP REST API v2. Dengan adanya fasilitas tersebut, WordPress bisa dibuat sebagai peladen API yang berisi artikel. Namun, yang paling penting dari semuanya itu, WordPress dapat menjadi peladen untuk aplikasi-aplikasi web modern macam React/Redux dan lain sebagainya.

Cara Pasang

Pastikan bahwa Android SDK sudah terpasang. Paling gampang, kita bisa langsung memasang Android Studio yang juga akan memasang Android SDK. Silakan ikuti tautan. Saya takkan menulis apa pun karena tutorial dari Google sudah ada yang menggunakan Bahasa Indonesia.

Jalankan ketiga baris ini dan tambahkan ketiga baris tersebut ke dalam ~/.bashrc agar selalu otomatis terjalankan setiap kali Anda menjalankan sesi terminal baru.

Lalu, jalankan Android SDK Manager:

Dalam Android SDK Manager, pilih dua paket berikut:

  • Android SDK Build-tools versi 23.0.1
  • Android 6.0 (API 23) SDK Platform (Rev 3).

Silakan lihat gambar untuk lebih jelasnya.

SDK Android Platform Manager

Android SDK Manager, showing what to install to run React Native

Setelah ini, pasang React Native:

Ambil kopi atau sapa sanak saudara dari pada bengong lama menunggu proses pemasangan React Native.

Buat AVD Dulu

Buat terlebih dahulu sebuah emulasi mesin Android:

AVD Manager

AVD Manager, click Create to create new emulated Android device.

Pilih tombol Create.

Saya mengubah beberapa parameter berikut:

  • AVD Name: ReactNativeOS [Saya memang kurang kreatif :P]
  • Device: Nexus 5 [Terserah, sih]
  • Target: Android 5.1.1 – API Level 22
  • CPU/ABI: Intel Atom (x86_64)
  • Skin: Skin with dynamic hardware control
  • Front Camera, Back Camera: Emulated
  • SD Card: 200 MB
  • Emulation Options: Use Host GPU
Create Android Emulator

Create new Android Emulator based on Nexus 5 and API Level 21

Sisanya saya biarkan pilihan baku. Setelah itu, klik OK.

Jalankan Android yang baru dibuatkan:

Cara Pakai

Jalankan terlebih dahulu emulator AVD

Untuk membuat proyek baru:

Setelah pemasangan berhasil, masuk ke direktori dan jalankan peladen NodeJS:

Setelah itu, buka terminal baru lagi dan masuk ke direktori tersebut. Kalau mau di terminal yang sama, tambahkan tanda ampersand (“&”) setelah “start” agar Nodejs dijalankan di latar belakang.

Untuk melihat aplikasi Android yang sudah dibuat, jalankan:

Selamat mencoba. Sebenarnya, React Native bisa dijalankan di iOS, tapi saya tak mampu membeli SDK Apple. 😛

Membuat Sertifikat Let’s Encrypt Menggunakan certbot Di Debian Wheezy
By The people from the Tango! project, derived RRZEicons (The Tango! Desktop Project) [Public domain], via Wikimedia Commons, color modified by JP

Membuat Sertifikat Let’s Encrypt Menggunakan certbot Di Debian Wheezy

Maaf, ya, saya suka khilaf lupa menulis tulisan lanjutan. Ha… ha… ha….

Berikut ini adalah cara memasang sertifikat SSL yang ditandatangani oleh Let’s Encrypt dengan menggunakan certbot pada Debian Wheezy. Silakan lihat cara pasang di Wheezy untuk keterangan lebih lanjut.

Aktifkan Repo Debian Wheezy Backports

Anda bisa langsung mengaktifkan repo Debian Wheezy Backports:

Atau nanti tunggu ditanyakan pada saat menjalankan certbot.

Pasang certbot

Unduh dengan pengunduh favorit Anda.

Sebelum Memasang Let’s Encrypt

Siapa tahu Anda malas tidak punya waktu untuk membaca artikel sebelumnya, perhatikanlah:

  1. Pastikan semua domain yang didaftarkan sudah terdaftar di DNS publik.
  2. Pastikan bahwa direktori yang memuat URL untuk sertifikasi dapat diakses.

Penulisan DNS di luar cakupan tulisan ini. Berikut contoh direktori .well-known

Mari memasang certbot.

Sertifikasi

Seperti biasa:

Seandainya tadi Anda melewati bagian pemasangan repositori Debian Backports, maka Anda akan ditanyakan:

Lalu beberapa pesan pemasangan paket Python virtualenv. Kemudian, ditanyakan alamat info:

Lalu, ditanyakan apakah menyetujui syarat dan ketentuan yang diberikan, jawab A untuk setuju.

Setelah itu, tunggu beberapa saat.

Kalau sudah sampai sini, Anda sudah selesai mendapatkan sertifikasi dari Let’s Encrypt.

Konfigurasi NGINX

Kalau mau penjelasan, lihat artikel terdahulu.

Berikut blok SSL:

Nah, untuk Debian Wheezy, ada tambahan yang harus dilakukan.

Penambahan Penjadwalan CRON

Pada paket Debian Jessie, jadwal CRON untuk certbot sudah dipasang pada /etc/cron.d/certbot. Mari tambahkan secara manual untuk Debian Wheezy.

Pertama-tama, coba jalankan apakah sukses.

Kalau sudah berhasil, maka pasang pada CRON.

Masukkan entri:

Let’s Encrypt memandatkan untuk pengecekan sehari dua kali.

Terakhir

Selesai.

 

Bacaan Lebih Lanjut

Membuat Sertifikat Let’s Encrypt Menggunakan certbot Di Debian Jessie
By The people from the Tango! project, derived RRZEicons (The Tango! Desktop Project) [Public domain], via Wikimedia Commons, color modified by JP

Membuat Sertifikat Let’s Encrypt Menggunakan certbot Di Debian Jessie

Untuk mendukung web yang aman dan dalam rangka HTTP/2 yang sudah menggunakan SSL sebagai dasar koneksi, diperlukan sertifikat digital yang ditandatangani oleh pihak yang terpercaya. Situs yang memiliki sertifikat digital yang ditandatangani sendiri bahkan sudah ditandai oleh beberapa peramban sebagai situs tak aman. Tak ayal lagi, diperlukan tanda tangan digital yang terpercaya.

Kali ini kita menggunakan sebuah sertifikat gratis yang bernama Let’s Encrypt. Penyedia sertifikat ini (CA) didukung oleh EFF (Electronic Frontier Foundation), sebuah organisasi nirlaba yang bergerak dalam aktivitas digital. Bahkan, organisasi nirlaba ini menyediakan perkakas untuk sertifikasi tanda tangan digital, certbot.

Mungkin Anda bertanya, bagaimana dengan Sivion? Sivion adalah salah satu usaha dari Indonesia untuk itu. CA (penyedia sertifikat) dari Indonesia ini saat ini menyediakan tanda tangan gratis bagi kita. Namun, sayangnya mereka belum menyediakan perkakas sertifikasi seperti Let’s Encrypt.

Artikel kali ini membahas bagaimana memasang sertifikat Let’s Encrypt dengan certbot. Artikel ditulis untuk Debian Jessie.

Aktifkan Repo Debian Jessie Backports

Tambahkan ke daftar repo dan perbaharui daftar paket.

Saya tidak arahkan ke Kambing karena saya sedang malas membetulkan Kambing. Mungkin nanti setelah betul, saya arahkan ke Kambing. ;-P

Pasang certbot

Perkakas certbot ada di repo Jessie Backports.

Sebelum Memasang Let’s Encrypt

Ada dua hal yang menjadi kewajiban kita:

  1. Pastikan semua domain yang didaftarkan sudah terdaftar di DNS publik.
  2. Pastikan bahwa direktori yang memuat URL untuk sertifikasi dapat diakses.

Untuk pembuatan entri DNS di luar cakupan tulisan ini.

Halaman HTTP (tanpa SSL) untuk lokasi .well-known/ (http://example.com/.well-known/) harus dapat diakses. Bila Anda seperti saya yang mematikan non-SSL, harus ditambahkan dahulu pengecualian tersebut di peladen. Omong-omong saya menggunakan peladen NGINX. Contoh pengecualian:

Berikutnya, pasang.

Sertifikasi

Jalankan sertifikasi

Ikuti prosesnya, biasanya pertama-tama ditanyakan alamat surel yang bisa dihubungi bila ada apa-apa.

Enter our email address

Enter our email address

Setelah itu, biasanya ditanyakan kesediaan mengikuti syarat dan ketentuan yang ditetapkan oleh Let’s Encrypt. Pencet tombol [ENTER] saja.

Saya lupa menyuplikkan saat sudah berhasil. Ya, coba saja cek direktori /etc/letsencrypt/live yang seharusnya berisi satu direktori bernama domain pertama yang kita daftarkan.

Konfigurasi NGINX

Sebelum saya kasih konfigurasi penuh, saya coba berikan potongan.

SSL Baku

Untuk konfigurasi SSL baku gunakan sertifikat-sertifikat ini:

OCSP Stapling

Untuk memanfaatkan OCSP Stapling gunakan sertifikat ini:

Contoh Penuh

Ini contoh penuh blok SSL saya.

Terakhir

Untungnya menggunakan paket Debian Jessie adalah pembaharuan SSL berlangsung otomatis. Setelah ini saya akan buat tulisan untuk Debian Wheezy. Sayangnya, pemasangan Debian Wheezy lebih rumit dari Debian Jessie.

Selamat mencoba dan tinggalkan komentar bila ingin bertanya.

Bacaan Lebih Lanjut

Membuat Pemerintahan yang Tangkas dengan Metodologi Tangkas (Agile Method)

Membuat Pemerintahan yang Tangkas dengan Metodologi Tangkas (Agile Method)

Mark Schwartz berbicara mengenai bagaimana dia mau mengubah Departemen Imigrasi Amerika Serikat menjadi lebih mudah dan efisien. Berikut apa yang saya tangkap dari apa yang dia bagikan ditambah beberapa addendum dari saya.

  • Problem pertama Schwartz adalah adanya aturan MD 102 (Management Directive #102) dari Homeland Security untuk pengadaan proyek TIK. Dokumen tersebut menyediakan falsafah pengembangan menggunakan sebuah pengembangan air terjun (Waterfall SDLC) yang komprehensif. Pada buku tersebut, tercantum proses apa saja yang dilakukan dan dokumen apa saja yang harus dilakukan. Setelah mempelajarinya, Beliau mengumpulkan semua pelatih tangkas dan membuat sebuah sabda MD001, “mulai sekarang kita semua tangkas.” Beliau mendefinisikan 8 nilai inti dalam metodologi tangkas yang hendak diimplementasi.
  • Lebih lanjut, yang perlu dilakukan oleh Schwartz adalah menerjemahkan semua kebutuhan yang dicakup dalam MD102 dan memetakannya ke dalam sebuah Praktik Tangkas sehingga menjadi Birokrasi Ramping (Lean Bureaucracy).
    • Menggunakan Continues Integration (Integrasi Berkesinambungan) dan semua perkakas yang biasa digunakan: Chef (Infrastruktur sebagai pemrograman, otomatisasi deployment), Jenkins (perkakas pembangunan secara berkesinambungan), GIT (DVCS), Gradle, New Relic (Manajemen Log), AWS (Infrastruktur Awan), Gradle (perkakas kompilasi), Spring (Java).
    • Menerjemahkan aturan-aturan hukum menjadi Test Driven Methodology: (Metodologi Berbasis Pengujian)
      • Misalnya, untuk UU Disabilitas dibuatkan pengujian kode yang dapat mendukung disabilitas.
      • Menerapkan standarisasi keamanan menjadi analisis kode statik (Static Code Analysis).
      • Menerapkan level permainan yang sama bagi semua kontraktor yang menang tender. Mereka dapat langsung masuk dan menyelesaikan aplikasi tanpa bergantung kepada dokumentasi yang sebelumnya. Hal ini diakibatkan dari sifat Metodologi Tangkas yang menyediakan unit test dan berbagai macam penunjang sehingga pengembang bisa langsung masuk.
    • Menyediakan grafik-grafik dari data yang dapat dikumpulkan dari hulu ke hilir sehingga menghasilkan dokumen empirik yang dapat dinilai secara obyektif.
      • Semua Komponen pada Integrasi Berkesinambungan dapat dicatat!
      • Hal ini karena infrastruktur sendiri dijahit dalam kode-kode (Chef) yang dapat dimonitor (debug) dan dihitung.
      • Jenkins dapat menghasilkan catatan mengenai hasil kompilasi dan deployment setiap versi pembangunan (build).
      • Spring menyediakan instrumentasi untuk mengukur. (Lihat Spring Boot)
      • Infrastruktur Awan dapat menyediakan seberapa besar penggunaan sumber daya secara menyeluruh.
    • Menjalankan Chaos Monkey! 😛

Beliau juga berbicara pada AWS Government, Education and Nonprofits Symposium. Pada forum tersebut, Beliau menyatakan sebenarnya kebutuhan proses dalam birokrasi adalah

The speed from when we [government] realize a mission need to the time when we deploy a capability to meet that mission need.

Atau diterjemahkan sebagai berikut:

Waktu yang dibutuhkan untuk pemerintah mendapatkan sebuah kebutuhan misi sampai waktu yang diperlukan saat sebuah kemampuan yang dihasilkan untuk memenuhi kebutuhan tersebut.

Biasanya yang terjadi adalah Pemerintah mendapatkan sebuah kebutuhan dan menunggu sampai lebih banyak lagi kebutuhan sehingga dapat dibundel menjadi satu Program Kerja. Akibat satu bundel Proker ini, mereka harus menulis sekitar 105 dokumen tebal yang kemungkinan tidak ada yang membaca. Baru, setelah itu mereka masuk ke Lelang. Setelah lelang berbagai hal (barang-barang, jasa pemasangan ke Pusat Data, jasa pengembangan, dll.), aplikasi dikembangkan. Setelah selesai pengembangan, aplikasi diuji untuk memenuhi kebutuhan. Terakhir, aplikasi diuji keamanan. Baru setelah itu (kemungkinan) digunakan.

Proses ini dapat menghabiskan waktu 12 tahun. Artinya, ada 12 tahun masa yang diperlukan untuk sebuah kebutuhan Pemerintah untuk dapat benar-benar dikerjakan. Bisa jadi, kebutuhan tersebut sudah berubah.

Yang dilakukan adalah Schwartz dan tim menciptakan sebuah Sistem Integrasi Berkesinambungan (Continues Integration System) yang memiliki sejumlah pengujian. Hal yang dilakukan oleh pengembang, setelah mereka menguji kode mereka, mereka pun menerbitkan (push) kode mereka ke sistem ini. Lalu, sistem ini yang kemudian menjalankan berbagai proses tes secara otomatis. Sehingga, setelah selesai proses ini sehingga menghasilkan satu versi pembangunan yang sukses, sistem ini langsung secara otomatis dapat diterbitkan ke infrastruktur awan untuk dijalankan langsung.

Untuk setiap pembaca yang belum begitu paham Metodologi Tangkas, Metodologi Tangkas menekankan pada “code often, deploy often”. Dalam Metodologi Tangkas Scrum, hal ini diterjemahkan dengan menyediakan solusi dari hulu ke hilir untuk Kebutuhan yang tidak terlalu besar. Bahkan, Scrum menyarankan untuk memotong-motong sebuah kebutuhan yang besar menjadi kebutuhan-kebutuhan yang kecil (atomik).

Kebutuhan-kebutuhan kecil ini menjadi semacam sayembara (bounty) yang dapat diambil oleh pengembang. Setiap kebutuhan atomik ini dihargai dengan poin. Dengan adanya poin ini, pengembang dapat menghitung berapa waktu yang dibutuhkan untuk menghasilkan produk. Semua berlangsung secara empirik karena ada nilai dan proses. Kegiatan pengembangan pun dilakukan dari hulu (back end) ke hilir (front end). Sehingga, pada setiap akhir kegiatan pengembangan kebutuhan atomik, ada aplikasi yang berjalan (berfungsi/dapat diakses dan digunakan).

Dari sisi Pemerintahan, dengan kebutuhan yang kecil, maka risiko yang dapat dihasilkan pun mengecil. Sehingga, dokumentasi yang dibutuhkan, penilaian yang dilakukan, dan audit yang diperlukan tidak sebanyak yang lama. Waktu yang dibutuhkan pun menjadi kecil!

Apa artinya ini?

Inovasi sebenarnya lebih mudah di pemerintahan. Kalau secara personal, akan banyak diketemukan banyak inovasi dari hampir semua orang. Namun, yang sebenarnya terjadi adalah banyak orang yang memiliki ide untuk meningkatkan berbagai proses merasa tak berkuasa. Mereka takut untuk harus terpenjara membuat 105 dokumentasi per ide mereka.

Dengan adanya Manajemen Identitas (SSO) yang sudah ada, infrastruktur awan yang sudah tersertifikasi fedRAMP, dan Infrastruktur Integrasi Berkesinambungan yang memenuhi kaidah-kaidah hukum, maka dapat dibuat eksperimen dengan biaya hampir tidak ada dengan potensi risiko yang rendah. Hal ini dapat dicapai asalkan ide yang ditawarkan dapat diterjemahkan menjadi aplikasi yang kemudian dapat dipublikasikan melalui Infrastruktur Integrasi Berkesinambungan tadi.

Eksperimen ini dapat langsung dijalankan dan diuji apakah berjalan baik atau tidak. Bila tidak, maka dapat langsung ditutup dengan hanya mematikan VM tersebut. Potensi kerugian pun minimal. Dengan potensi risiko dan biaya yang kecil, orang-orang tinggal diyakinkan untuk tidak malu untuk berinovasi. Hal ini mendukung inovasi dalam pemerintahan.

Satu catatan kecil, apa yang dilakukan Schwartz ini belum resmi karena menunggu Pemilu AS berakhir. Untuk mencari contoh yang berhasil, cari tidak lebih jauh ke Singapura. Singapura memiliki Badan Teknologi tersendiri untuk itu.

Singapura

Pada simposium yang sama, Chan Cheow Hoe menunjukkan bagaimana cara menerapkan layanan publik pada infrastruktur awan. Sebelum lebih lanjut membahas isinya, berikut hal menarik yang saya dapatkan dari Singapura:

  • Singapura telah mereformasi Depkominfo dan Departemen Penerangannya menjadi IMDA dan GovTech.
    • GovTech bertugas membangun platform kunci yang mendukung perkembangan infrastruktur teknologi yang aman untuk dapat dimanfaatkan oleh berbagai individu dan bisnis di Singapura. Misi mereka mendefinisikan Singapura sebagai Smart Nation. Sumber inovasi untuk TIK, IoT, dan membantu meningkatkan kemampuan Pemerintah Singapura dalam domain-domain ini.
    • IMDA bertujuan untuk membangun konten yang menghubungkan komunitas dan kepentingan. [sejujurnya saya tidak tertarik membahas peran IMDA, silakan baca sendiri di situs ;-P]
  • Ada beberapa hal yang hendak dicakup oleh GovTech:
    • Pemimpin dalam transformasi digital.
    • Program kerja Smart Nation dan Digital Gov.
    • Meningkatkan Kemitraan Teknologi
    • Membuat Open Data/OpenGov [Jakarta SmartCity seharusnya, UU Keterbukaan Informasi tujuannya, KPU C1 2014 contohnya] data.gov.sg yang dapat dimanfaatkan oleh berbagai pihak melalui API.

Berikut hal-hal yang dibicarakan oleh Chan Cheow Hoe:

  • Membuat sebuah pedoman dengan empat nilai berikut:
    • Meminimalisasi gesekan saat berhubungan dengan pemerintah. Intinya, mengurangi pertemuan langsung dengan pemerintah. Misalnya, pembuatan data terintegrasi dengan banyak perusahaan sehingga dapat membantu warga dalam membuat laporan pajak secara otomatis. (e-Filing yang terintegrasi)
      There should be no transaction if it’s not necessary.
    • Membuat komunitas digital dan ekosistem yang bermakna. Intinya, sih, sistem pelaporan Jakarta SmartCity plus beberapa eksperimen fungsionalitas.
    • Mengantisipasi isu-isu dan menyelesaikannya. Intinya, Big Data Analysis.
    • Menjembatani jurang digital. Intinya, berbagai program kerja pengentasan buta teknologi.
  • Menyediakan Infrastruktur Hibrida:
    • Managed Hosting. Untuk aplikasi-aplikasi tradisional.
    • Government cloud. Untuk sistem dengan data negara yang sensitif.
    • Public cloud. Untuk sistem yang menghasilkan data yang berhubungan dengan masyarakat.
  • Menerbitkan standarisasi Multi-Tier Cloud Security (MTCS) untuk menyeragamkan setiap penyedia layanan awan. Standarisasi MTCS ini sejajar dengan ISO27001. Dengan demikian, infrastruktur yang aman pun terjamin untuk kebutuhan Singapura (baik pemerintah mau pun sektor privat).

Bahkan Schwartz menyadari bahwa Pemerintah Singapura merupakan “kompetitor” yang luar biasa. Dia bahkan melucu bahwa dia jadi tertarik mau pindah ke Singapura. Aduh, kok, tulisan ini jadi panjang lebar, yah? Oh, tidak, waktu bermain game saya habis menulis ini.

Indonesia

Tadi saya perasaan mau menulis sesuatu, tapi hasrat bermain saya meninggi. Saya rasa rekan-rekan punya ide yang lebih baik. Ini beberapa hasil analisis saya.

  • PENTING: Perbanyak bergaul dengan Agile coach (pelatih tangkas). Baik AS mau pun Singapura merangkul profesional dalam membangun infrastruktur dan kebijakan.
  • Hukum: Anehnya, Hukum di Indonesia justru mendorong inovasi ini. Tidak ada MD102, bahkan adanya UU yang mendorong pembukaan (sebagian) data pemerintah ke sektor publik.
  • Hukum: Bahkan, ada hukum yang mengharuskan data ada di Indonesia untuk memproteksi kepentingan rakyat Indonesia.
  • Infrastruktur: Perkaya dan perkuat koneksi IIX! Kenyataannya, kebanyakan bisnis lebih percaya AWS. Bahkan, mereka lebih mempercayai Digital Ocean dan Microsoft Azure yang baru saja loncat ke sektor awan. Semuanya tidak ada satu pun di Indonesia.
  • Infrastruktur: PLN memiliki layanan yang semakin baik, demikian dari hasil survei kecil-kecilan saya dengan teman-teman Facebook saya. Seharusnya, ini bisa jadi modal untuk penyediaan datacenter yang lebih terpadu. Berapa, sih, biaya untuk membangun satu infrastruktur kecil untuk menyokong datacenter?
  • Infrastruktur: Sebagian besar (semua) pemain Indonesia yang menyediakan infrastruktur awan tidak menawarkan teknologi DevOps, tetapi teknologi kuno yang sulit untuk menerapkan Sistem Integrasi Berkesinambungan dan Infrastruktur Sebagai Kode.
  • Standarisasi: Baik AS (fedRAMP) mau pun Singapura (MTCS) memiliki standarisasi infrastruktur awan. Di Indonesia apa, ya?

Sejauh mana Indonesia mengantisipasi DevOps? Saya tahu Pak Utian sedang membangun pasukan OpenStack. Semoga pemerintah lebih aktif lagi mendorong infrastruktur TIK di Indonesia. Menghapus peraturan-peraturan non-UU yang konyol. Jangan sampai “produk Indonesia, dikode oleh perusahaan India, dan dipublikasikan di AWS Singapura.”***

Bisa, ‘kah, 99,9% produk Indonesia?

Sebelum Anda menuduh saya juga berpangku tangan. Tadinya, sih, saya mau menulis tentang Gradle dan teknologi terbaru lainnya. Tetapi, komentar yang saya terima hanya komentar SPAM dan SEO. Di blog tanpa iklan, bisa diambil langsung RSS-nya, dan bisa diaktifkan tanpa Javascript dan Cookies begini masih saja dibegitukan. Malas, ah, jadinya.

Lagi pula, saya juga termasuk yang masih aliran Stallmanisme, termasuk yang masih anti awan (agak murtad, sih). Tapi, kenyataan pahit. Mau tak mau, kita harus belajar terbang di awan. Ha… ha… ha….

 

***Saya bukannya anti globalisasi, tapi setidaknya Indonesia juga menjadi produsen dalam beberapa hal sehingga seimbanglah neracanya.

MariaDB + Galera Cluster + HAProxy untuk Basisdata Lebih Handal

MariaDB + Galera Cluster + HAProxy untuk Basisdata Lebih Handal

HA Proxy Galera

HA Proxy encapsulate a Galera cluster for High-Availability solution.

Ada banyak aplikasi PHP di luar sana yang secara naas belum bisa pindah dari MySQL ke PostgreSQL. Aplikasi seperti WordPress dan Magento. Untuk aplikasi-aplikasi kritikal tersebut, diperlukan adanya redundansi untuk menjamin data. Untungnya, sekarang sudah ada produk Galera Cluster yang bisa mencapai itu. Produk ini menjadikan serangkaian MySQL Server untuk memiliki replikasi data yang sama.

Eh, tapi kayaknya kalau nanti PHP7 sudah resmi, mereka bakal dipaksa menggunakan ADODB, deh. Abstraksi ADODB memungkinkan SQL yang portabel. Hmm… sepertinya alasan ini nantinya bakal tidak ada.

Atau, mungkin Anda tertarik mengetahui bagaimana layanan MySQL Object (DBaaS) pada AWS dibuat? Atau, bagaimana layanan DBaaS pada OpenStack dibuat?

Ah, sudahlah, apa pun alasan supaya artikel ini ditulis supaya menjaga semangat ngeblog. Sejujurnya, saya menulis tutorial ini karena mood lagi naik akibat mendapatkan banyak Pokémon unik tadi siang di Perpustakaan Pusat UI.

Konfigurasi Peladen

Supaya tidak pusing, saya jelaskan dalam contoh kali ini ada 4 peladen. Satu peladen untuk HAProxy (harusnya dua, tapi saya malas). Lalu, tiga peladen menjadi peladen MySQL. Saya memilih untuk menggunakan MariaDB karena gratis dan mudah konfigurasi Galera-nya.

Peladen HAPROXY (selanjutnya dalam artikel akan saya sebut HAProxy)

  • IP 1: 192.168.1.12
  • IP 2: 192.168.101.1

IP 1 adalah IP eksternal yang digunakan untuk berhubungan dengan aplikasi. IP 2 adalah IP internal dalam jaringan lokal basisdata. Perhatikan baik-baik! Implementasi pusat data yang baik seharusnya memisahkan antara jaringan aplikasi, jaringan basisdata, jaringan administrasi, dan jaringan lainnya. Walau pun keempat peladen ini dijalankan pada VirtualBox sekalipun, tetap saya pisahkan untuk menunjukkan arsitektur yang benar.

Ada tiga peladen yang akan digunakan sebagai peladen basisdata. Saya akan namakan MariaDB1 (192.168.101.10), MariaDB2 (192.168.101.11), dan MariaDB3 (192.168.101.12). Walau pun nantinya setiap peladen bisa ditulisi, saya akan menggunakan peladen MariaDB1 sebagai awalan.

Berhubung saya malas, saya akan kurang detail menjelaskan. Silakan tinggalkan komentar bila kurang jelas. Saya menggunakan Debian Jessie sebagai sistem operasi dasar. Lalu, saya memilih menggunakan MariaDB 10.1 karena dia sudah mendukung langsung Galera Cluster.

Memasang MariaDB

Lakukan ini pada setiap peladen MariaDB: MariaDB1, MariaDB2, dan MariaDB3. Pokoknya, identik!

Memasang Peladen MariaDB

Aktifkan repositori MariaDB. Sebagai contoh dengan menggunakan Perkakas Konfigurasi Repositori kali ini saya ambil cermin Biznet karena yang sebelumnya Kartolo. Buatlah berkas /etc/apt/sources.list.d/mariadb.list yang berisi:

Atau cara lainnya:

Setelah itu, impor kunci publik repositori MariaDB:

MariaDB versi 10.1 sudah memasang Galera secara baku. Jadi, perintah pemasangan menjadi lebih mudah, cukup:

Setelah itu, matikan layanan MariaDB:

Atau, kalau Anda nyentrik atau punya alasan idealisme lainnya sehingga tidak menggunakan SystemD:

Setelah ini, konfigurasi Galera.

Berkas yang Identik

Debian Jessie menggunakan konfigurasi /etc/mysql/debian.cnf untuk menyediakan pengguna internalnya. Pengguna internal ini yang digunakan oleh Debian dalam mengonfigurasi peladen MySQL. Salin berkas tersebut dari MariaDB1 ke MariaDB2 dan MariaDB3 sehingga ketiganya memiliki /etc/mysql/debian.cnf yang identik.

Hanya berkas ini yang tidak identik karena dibuat secara otomatis oleh Debian pada saat pemasangan. Tetapi, kita perlu ketiga peladen memiliki konfigurasi yang identik. Itu sebabnya, satu berkas yang berbeda ini yang perlu disamakan.

Buat Konfigurasi untuk Kluster Galera

Pada ketiga peladen (MariaDB1, MariaDB2, MariaDB3) buat konfigurasi /etc/mysql/conf.d/galera.cnf

Silakan ganti nama berkas galera.cnf dengan nama lain kalau Anda mau. Silakan ganti “apakek_cluster” sesuai selera Anda untuk mendapatkan nama kluster yang jauh lebih baik.

Aktifkan Salah Satu Peladen Terlebih Dahulu

Lakukan langkah ini di salah satu peladen yang akan dimulai pertama kali. Bisa jadi karena pemasangan baru seperti saat ini. Atau, bisa jadi ada mati lampu sehingga menyebabkan seluruh kluster mati. Atau, laptop Anda baru dinyalakan kembali. Intinya, lakukan langkah ini pada saat tidak ada satu pun peladen yang menyala dan kluster ini baru mau dinyalakan dulu.

Bila pada kasus mati lampu atau peladen mati mendadak (crash), periksa berkas /var/lib/mysql/grastate.dat pada masing-masing peladen untuk memilih mana peladen dengan data terbaru. Sehingga, peladen tersebutlah yang dimulai pertama kali.

Bila Anda menggunakan SystemD, gunakan skrip ini:

Atau, demi alasan idealisme atau apa pun sehingga Anda membuang SystemD dan menggunakan sistem init lainnya:

Pada saat ini seharusnya sudah berjalan:

Kalau 0, berarti Anda ada salah konfigurasi di suatu tempat.

Jalankan Peladen MariaDB Sisanya

Pada dua peladen sisanya, MariaDB dijalankan dengan cara normal:

Atau

Seharusnya, apabila tidak ada kerusakan, pada akhirnya akan ada tiga peladen.

Sampai saat ini, Galera sudah selesai dibuat. Anda lakukan operasi SQL pada salah satu peladen mana pun hasilnya akan sama.

BONUS TUGAS

Terakhir, untuk tugas. Silakan buat satu pengguna Admin Super yang bisa membuat basis data dan penggunanya. Pengguna ini harus bisa mengakses dari luar.

Konfigurasi HAProxy

Pada salah satu peladen MariaDB (MariaDB1/MariaDB2/MariaDB3), buat sebuah pengguna HAProxy di basisdata. Pengguna ini akan mengkueri basisdata untuk mengecek keberlangsungan masing-masing peladen.

Ganti nama pengguna haproxy dengan sesuatu yang lebih kreatif. Demi keamanan, jangan cuma copas saja di sini!

Lalu, masuk pada peladen HAProxy dan pasang HAProxy di sana:

Lalu, buat konfigurasi HAProxy. Caranya, tambahkan baris-baris ini pada berkas konfigurasi /etc/haproxy/haproxy.cfg

Ganti nama pengguna haproxy dengan sesuatu yang lebih kreatif. Demi keamanan, jangan cuma copas saja di sini!

Lalu, jalankan ulang HAProxy. (Pada titik ini saya sudah malas membuat dua versi)

Selesai.

Optimasi

Bonus untuk landasan pemikiran. Berikut arsitektur-arsitektur alternatif yang bisa dibuat untuk memenuhi kebutuhan.

  1. Ganti HAProxy dengan perangkat keras router atau load-balancer.
  2. Pasang HAProxy pada setiap peladen aplikasi agar menghilangkan bottleneck jaringan. Jadi, hubungan antara aplikasi dan basisdata menjadi M:N. Kalau pakai ini, HAProxy lebih baik bind ke localhost jangan ke IP. Jadi, akses per aplikasi langsung ke localhost. Ini pondasi arsitektur layanan mikro (microservice architecture).
    HAProxy per apps

    HAProxy per apps

  3. Partisi peladen-peladen aplikasi untuk mengakses hanya salah peladen dalam kluster.
  4. Tambah jumlah peladen dalam kluster.

Jumlah kluster 3 itu adalah demi memenuhi konsep kuorum.

Optimasi Lebih Lanjut yang Belum Sempat Ditulis Karena Saya Ingin Mencari Pokémon Lagi Riset Lebih Lanjut

Ada riset lanjutan yang dapat membuat arsitektur aplikasi lebih terskalakan. Yakni, membuat sebuah peladen obyek penyimpan (storage object) semacam Amazon S3 dengan menggunakan OpenStack Swift dengan menggunakan CEPH. Atau, implementasi sederhana dengan GlusterFS atau NFS. Silakan kembangkan lebih lanjut agar aplikasi Anda lebih terskalakan.

Gunakan Puppet, Ansible, Chef, atau konfigurator apa pun yang lebih baik. Kalau arsitektur sudah skala besar seperti ini, mengubah peladen satu persatu itu sudah mustahil bila tanpa ada kesalahan. Buat tutorial ini menjadi cookbook/rule yang bisa secara dinamis di-deploy.

Semoga bermanfaat.

Bacaan Lebih Lanjut

Pokémon GO

Pokémon GO

Pokémon GO adalah sebuah permainan baru yang memiliki fitur AR (Augmented Reality). Teknologi AR ini memberikan efek bahwa lingkungan sekitar kita ada hal-hal yang lain. Dalam hal ini, ada Pokémon yang sedang bermain di atas meja contohnya.

Setidaknya di UI banyak orang berkumpul bermain permainan ini. Tempat yang paling sering dikunjungi adalah Perpustakaan UI, terutama yang mendekati danau. Kalau waktu malam, Parkiran FIB, Halte Sepeda Fasilkom, dan Perpustakaan UI.

Pokémon GO dikembangkan oleh Niantic, perusahaan yang mengembangkan permainan serupa, INGRESS. Data spasial Pokémon GO ini memang diambil dari INGRESS. Jangan heran oleh sebab itu di Indonesia banyak situs yang bisa dikunjungi untuk mendapatkan Pokémon langka. Bahkan, kalau mau lebih lanjut, kita bisa menebak Pokémon langka dari permainan INGRESS.

Demikian. Mengenai isu privasi dan dampak sosial, saya akan tuliskan lebih lanjut apabila kemalasan menghilang. Sekian.

Dao Modularitas: Contoh Kasus Penggunaan Modul Untuk Decoupling Dengan Gradle

Dao Modularitas: Contoh Kasus Penggunaan Modul Untuk Decoupling Dengan Gradle

Mari gunakan hasil karya terdahulu yang sudah modular.

Saat ini saya akan menggunakan metode decoupling berdasarkan tujuan (goal-based) versi yang telah disederhanakan. Tentu tidak akan serumit reverse engineering pada tulisan saya. Tulisan (Yu et al., 2005, 363--372) yang saya bahas itu rasanya terlalu rumit untuk dikembangkan di tulisan ini. Oke, sejujurnya saya juga sedang malas menggambar diagram.

Saya mengambil teknik Extract Method dari (Martin Fowler, 1999, 89--91) yang digunakan di awal metodologi itu. Agar sederhana, saya modifikasi metodologi agar menerjemahkan menjadi cerita (user story), bukan notasi ilmiah.

Contoh Metodologi Reverse Engineering Goal Based of JP, Abridge Version

Mari lihat kembali kelas yang telah dibuat sebelumnya.

Apa yang dilakukan? Mari kita ceritakan dalam kalimat cerita:

Program ini mencetak ke terminal tulisan “Hello, world!”.

Dari cerita ini, ternyata ada dua tujuan yang terlihat jelas:

  1. Mencetak ke terminal.
  2. Tulisan “Hello, world!”.

Mencetak ke terminal (1) adalah sebuah tujuan yang bisa dibuat umum. Ada banyak hal yang bisa dilakukan dengan fungsi (1) ini. Fungsi ini bisa diekstraksi dan dijadikan sebuah fungsi terpisah agar bisa dimanfaatkan yang lainnya. Maka direkomendasikan agar (1) dijadikan fungsi terpisah.

Tulisan “Hello, world!” (2) adalah sebuah tujuan yang spesifik. Dia tidak bisa dipakai untuk yang lain. Maka, direkomendasikan untuk tetap untuk di sana.

Wow, Kisanak mungkin berpikir. Gampang juga, yah. Ternyata hanya begitu saja!

Kisanak salah! Ilmu ini masih versi disederhanakan (abridge version). Mari saya bukakan sedikit tentang tujuan tersirat (soft goal). Pada metodologi Reverse Engineering Goal Based of JP, salah satu yang diperhitungkan adalah tujuan tersirat (soft goal)!

Ada banyak tujuan tersirat yang kalau pada bahasa SDLC disebut sebagai non-functional requirement. Seandainya proyek ini ditentukan tujuannya (bahasa lainnya: Scrum Goal, non-functional requirement pada Waterfall, dan lain sebagainya tergantung paguyuban tempat Kisanak berguru). Pada iterasi selanjutnya, (2) dapat dikembangkan lebih lanjut, misalnya dengan menambahkan tujuan tersirat:

  1. Ingin menyapa bukan hanya dunia. Nama yang hendak disapa dapat diperoleh melalui STDIN (nama kerennya terminal). Rekomendasi: dibuatkan sebuah variabel dengan nilai baku “Hello, %s!”. Lalu, tangkap nama melalui STDIN. Masukkan nama ke senarai yang telah dibuat itu. Terakhir, cetak.
  2. Ingin agar ini dapat dimengerti hampir semua orang. Rekomendasi: dibuatkan variabel berisi “Hello” yang dianotasi dengan i18n. Gunakan framework lokalisasi.

Jangan lupa, bahwa bahkan pengumpulan kebutuhan dapat diiterasikan agar lebih jelas. Contohnya untuk tujuan tersirat (1). Diiterasikan kembali bahwa keamanan merupakan fitur utama. Tujuan tersirat (1), ditambahkan fungsi pengecekan Regex sebagai validasi sebelum memroses (1.1). Agar menarik, maka dibuatkan pemformat yang dapat menghasilkan keluaran yang cantik ke terminal (1.2).

Kisanak tentu bertanya, bagaimana cara menentukan tujuan tersirat ini? Sampai sedalam mana iterasi ini? Bisa jadi aplikasi menjadi besar dan bahkan untuk fungsi sederhana menjadi sulit. Itu sebabnya, biasanya tujuan tersirat biasanya dibuat di awal proyek dan berlaku global atau setidaknya dalam sebuah cakupan submodul. Beberapa perguruan silat membuat itu menjadi standar baku. Inilah yang dimaksud dengan Design Pattern bukan hanya berbicara kode, tetapi standar baku di sebuah perusahaan.

Astaga, sampai mana saya tadi?

Oh, iya, intinya, sudah saya jelaskan bahwa fungsi menulis ke terminal bisa diekstraksi ke fungsi lainnya. Karena dia bisa dipakai untuk yang lain, maka dia bisa dijadikan sebuah modul tersendiri. Pada proses penentuan modul, Kisanak dapat bisa mengenali apakah fungsi cetak ke terminal ini dijadikan proyek tersendiri sehingga bisa dimanfaatkan oleh proyek-proyek yang lainnya. Apalagi, dia tidak sesuai dengan tujuan proyek ini, membuat aplikasi percuma/sia-sia. Dia sudah sangat berguna sehingga tidak masuk lagi hitungan. Ha… ha… ha….

Mari Implementasikan ke Gradle

Setelah makanan bagi jiwa, sekarang saatnya ke Gradle. Pada direktori dasar proyek, mari buat submodul:

Seperti biasa, masukkan percuma-libs ke proyek utama.

Kalau benar, maka akan muncul sebagai submodul proyek percuma.

Buat konfigurasi untuk mengompilasi percuma-libs.

Sekarang, mari buat sebuah kelas Java.

Setelah membuat submodul ini, mari tambahkan submodul percuma-libs sebagai salah satu pustaka yang dibutuhkan oleh percuma-apps.

Mari ubah kelas TestMain untuk menggunakan pustaka yang sudah kita masukkan. Ubah baris:

menjadi:

Atau kalau dari terminal:

Selesai sudah.

Judul Cuma untuk Pembatas Saja dan Saya Bingung Apa Namanya Karena Artikel Ini Bukan Artikel Terakhir Karena Entah Mengapa Kalau Saya Beri Nama Penutup Artikel Selanjutnya Tidak Pernah Jadi

Sampai sini, Kisanak bisa langsung menjalankan “./gradlew run” seperti biasa. Seharusnya, sih, keluarannya sama.

Sampai sini saya juga berpikir, apakah saya perlu mengubah gaya menulis saya? Saya biasanya menggunakan frasa, “silakan gunakan penyunting kesukaan Anda.” Kali ini saya paksakan semua kita menggunakan penyunting saya, terminal GNU/Linux.

Semuanya bisa langsung dicobakan di terminal pada sistem operasi GNU/Linux. Mohon beritahu saya kalau ada yang tidak jalan.

Selanjutnya

Kisanak berpikir setelah menguasai modularitas dengan Gradle dan metodologi cetek Reverse Engineering of JP, Abridge Version, Kisanak merasa sudah elit?

Sayang sekali, Kisanak. Kalau Kisanak sadar, cara penamaan paket saya kacau! Mana benar itu penulisan “aja.jp.percuma”? Seharusnya “edu.ui.jp.percuma” sesuai dengan organisasi yang jam kerjanya saya ambil untuk menulis ini atau “jp.percuma” karena “aja” bukanlah top level domain yang lazim. Pokoknya, konvensi penamaan ini penting.

Ah, Pak JP, apakah ada yang perlu saya pelajari? Mohon ajari, bila berkenan.

Saya suka sikap Kisanak! Nama paket akan sangat berpengaruh terhadap Artifak. Artifak adalah obyek-obyek hasil kultivasi yang banyak dipakai orang. Misalnya, menggunakan Maven dalam POM yang ada di JCenter atau Maven Repository.

Tergantung mood saya, saya akan membahas cara membuat peladen artifak lokal (bonus kalau saya lagi mood) dan  membuat artifak dengan Gradle dan mengimpor artifak dengan Gradle. Atau, mungkin hanya di sekitar artifak saja. Entahlah…. Film apa yang bagus untuk mood saya, ya?

Daftar Pustaka

Martin Fowler (1999). Refactoring: Improving the Design of Existing Code. Boston: Addison-Wesley Professional. doi: 0201485672 9780201485677. Retrieved from Addison-Wesley Professional: www.worldcat.org/isbn/0201485672.^
Yu, Yijun and Wang, Yiqiao and Mylopoulos, J. and Liaskos, S. and Lapouchnian, A. and Leite (2005, August). Reverse engineering goal models from legacy code 13th IEEE International Conference on Requirements Engineering (RE'05), [NO VOLUME]([NO ISSUE]), 363--372. doi: 10.1109/RE.2005.61.^
Membuat Sub Modul pada Gradle Sebagai Lanjutan Tulisan Iseng Kemarin Karena Mood Saya Enak Setelah Puas Menonton Warcraft Kemarin

Membuat Sub Modul pada Gradle Sebagai Lanjutan Tulisan Iseng Kemarin Karena Mood Saya Enak Setelah Puas Menonton Warcraft Kemarin

Kisanak pikir setelah mengerti jurus Kunyuk Melempar Pisang, Kisanak sudah bisa menguasai dunia persilatan? Kisanak harus mawas diri dan mengerti bahwa di atas langit masih ada langit lagi. Jurus itu mungkin bisa membuat Anda selamat di dunia persilatan. Camkan ini:

Di atas langit masih ada langit; ilmu yang dikuasai hanyalah setitik dari samudera.

Ketika aplikasi yang dibuat hanya sederhana, ilmu jurus Kunyuk Melempar Pisang sudah cukup. Masalah baru ketahuan setelah Kisanak naik level dengan aplikasi yang besar dan kompleksitas tinggi. Niscaya Kisanak akan menemukan bahwa Kisanak hanyalah jawara kampung.

Untuk dapat merajai dunia persilatan, ada konsep lain yang Kisanak mesti pahami: modularitas.

Kisanak harus bisa memilah. Mana yang kekhususannya untuk menghadapi basisdata. Mana yang kekhususannya menampilkan dan memroses laman web. Mana kekhususannya mengurusi logaritma. Dan berbagai kekhususan lainnya. Dengan memahami kekhususan ini, Kisanak bisa melakukan dua konsep ini: reuse dan melacak ketergantungan.

Reuse, adalah konsep sakral pemrograman. Seperti pemeo berkata, “do not invent the wheels.” Kode yang baik adalah yang bisa memisahkan dengan baik fungsi-fungsi dalam berkas/proyek terpisah sehingga dapat dimanfaatkan oleh banyak pihak. Proses untuk mengubah dari kode yang kompleks dan rumit menjadi terpecah-pecah dan modular ini disebut proses decoupling.

Decoupling adalah sebuah Dao yang mendalam. Banyak yang berusaha menemukan misteri dibaliknya. Sedikit yang dapat menguasai Dao ini. Mereka yang telah mencapai pencerahan, merekalah sesungguhnya yang merajai dunia persilatan!

Di dunia persilatan, ada beberapa ilmu kanuragan untuk decoupling. Ada yang memiliki karma tinggi sehingga bisa mampu menguasai level tinggi menggunakan ilmu Pemrograman Dinamis (Dynamic Programming), ilmu Kalkulus Lambda (Lambda Programming), dan lain-lain. Banyak juga orang yang tergabung dalam sekte-sekte yang memiliki repositori Dao mendalam. Mereka ini banyak mengkultivasi ilmu Design Pattern. Pernah ada legenda bahwa sebuah ilmu ilmu legendaris yang sepertinya hilang ditelan bumi seperti KAOS bisa menguasai penuh Dao ini.

Sayangnya, untuk orang-orang biasa, yang paling banyak dikultivasi orang adalah variasi ilmu Tebak-tebak Berhadiah. Ilmu ini mudah dikuasai, namun ia takkan mampu memberikan pencerahan sampai menguasai seluruh Dao. Itu sebabnya, bagi orang-orang kebanyakan, mukadimah ini semua tidak berguna.

Mereka akan mengira bahwa apa yang ditulis ini hanyalah mengisi luang supaya entri ini banyak. Camkanlah satu rahasia langit ini, Kisanak: tutorial ini hanyalah gerbang menuju Dao decoupling. Yang perlu dipahami selanjutnya adalah melatih pikiran.

Melatih jiwa, melatih raga. Melatih roh, melatih kode. Lepas dari Samsara, lepas dari debug tak berakhir.

Pindah ke Gradle Modular

Mari dapatkan proyek yang telah dibuat sebelumnya:

Setelah masuk ke direktori proyek terdahulu, mari ubah menjadi modular.

Buat direktori untuk menjadi sebuah submodul dan pindahkan berkas build.gradle dan seluruh kode sumber.

Ingat, build.gradle adalah seperti Makefile. Isinya adalah aturan yang diperlukan untuk mengompilasi.

Selanjutnya, beritahu percuma bahwa dia memiliki submodul percuma-app.

Terakhir, tambahkan modul percuma-app sebagai syarat yang dibutuhkan oleh percuma.

Karena kita mau mengompilasi proyek ini, maka jangan lupa tambahkan plugin java pada aturan Gradle. Secara otomatis Gradle akan menjalankan perintah-perintah yang dijalankan pada proyek utama pada submodulnya nanti. Kalau tidak percaya, silakan saja coba:

Hasilnya harusnya sama, sih.

WordPress JP: Installing MariaDB

WordPress JP: Installing MariaDB

THERE WAS A BUG IN THE SERVER THAT MADE ME LOST THIS POST. THIS IS THE RETRIEVED VERSION THAT I BACK UP.

It’s obvious that I speed write and take everything from guide. As I said before, writing this in Bahasa Indonesia kind of hard for me. So, I write this as I do in parallel.

Setup Filesystem

Disable ZFS file-level prefetch as in the guide:

That would be last on the next reboot, but for now disable:

Create the dataset and the optimizations:

It is optimized to use cache for metadata only if we are going to use INNODB. Its chunk is 16k, so we set it also in ZFS. In the guide we are told that MariaDB log is a 128k chunk — default chunk in ZFS.

Remember that ZFSOnLinux Bug early on? Yeah, we should regenerate Ramdisk everytime we’ve done something to /etc/zfs/zpool.cache. To be honest, I don’t know if any of the operation we did earlier warrant such action. But, just do that for precaution.

And now, we go with installing MariaDB server.

Installing Database Server

According to MariaDB Repository configuration page, let’s set MariaDB:

Import its key and update our list:

Install MariaDB server:

Disable MariaDB server double buffer by add a line (mine, vanilla at line 142) with:

And restart MariaDB server:

From this onward, we are ready to install WordPress, NGINX and such.

Bacaan Lebih Lanjut

RE: Komika; A Jester Certainly Not A Clown

Pandji P. dalam tulisannya “Mengapa Kami Menyinggung” menyebutkan bahwa seyogyanya Komika harus memiliki swa-sensor. Dia menyebutkan bahwa sering kali materi kontroversial digunakan oleh Komika dalam mop hanya sebuah kejutan. Kejutan itu sebenarnya demi memelintir pengharapan penonton.

Benarkah hanya demikian?

Kalau dilihat dari sejarah, mop modern berasal dari Amerika Serikat. Di sana, generasi dari Seinfield sampai Chris Rock berkembang. Semuanya sama, mereka mengisi dengan konten kritik sosial. Bahkan, tak lupa mereka memasukkan konten-konten yang menyakitkan.

Di negara Paman Sam sana, komedian dapat berkembang dengan baik. Amandemen UUD mereka menjamin seorang komedian takkan dihukum oleh perkataannya yang bebas. Mereka bahkan memiliki Comedy Central sebagai pusat produksi mereka.

Indonesia nampaknya tidak memiliki hukum tertinggi seperti itu. Mungkin, seperti yang dimengerti Pandji, mereka masih menganggap komika bisa memasukkan hal-hal kontroversial merupakan sebuah hal yang keren. Padahal, setiap mop yang terjadi mungkin sebenarnya memiliki agenda baik politik mau pun sosial, tapi terutama isu sosial. Sayangnya, saat ini konsekuensinya di Indonesia terlalu menakutkan.

Kalau saya boleh tarik lebih lanjut, sejarah mop berasal jauh dari zaman dahulu kala jauh di zaman kerajaan. Mereka biasanya berpakaian badut dan melucu untuk Raja atau pun para bangsawan. Mereka disebut sebagai Jester.

Mereka memiliki tugas untuk menghibur. Seorang jester mengolok tuannya dengan kritik. Hiburan dan kritik ini adalah bagian dari seorang jester. Mereka sering mengolok juga orang-orang lain.

Anehnya, banyak kerajaan di dunia menaruh posisi jester sebagai penasihat. Bahkan, di India bagian Selatan seorang raja takkan lengkap tanpa jester-nya. Mahabrata takkan lengkap tanpa punakawan.

En Folastrant Sagement

Ada kasus Ratu Elisabeth memecat jester-nya karena kurang kontroversial terhadap dirinya. Di lain pihak, banyak jester yang bercanda keterlaluan sehingga menghadapi dari hukuman cambuk bahkan sampai hukuman mati. Selalu ada resiko untuk menjadi pihak yang menghibur dengan kontroversial.

Namun, mengapa profesi tetap saja ada?

Seorang ayah yang terlalu posesif kepada anak perempuannya membuat anaknya tak bisa menikah. Seorang kaya mewarisi anaknya dengan kebodohan sehingga hartanya terkuras. Seorang raja terlalu angkuh menyediakan kepalanya di nampan pada hari tuanya. Seorang yang berdiri tinggi tanpa ada yang mengkritik cenderung mengarah kepada kehancuran.

Untuk orang-orang yang terlalu tinggi inilah seorang jester diperlukan. Seorang jester perlu menampar seseorang tanpa membuat dia kehilangan harga dirinya. Sifat ini yang menjadikan seorang jester yang baik adalah seorang yang begitu bijak sehingga ia bisa menjadi si bodoh. Menemukan formulasi yang tepat untuk memulai diskusi adalah sebuah tugas dari seorang jester. Inilah tugas dan tantangan yang harus dihadapi oleh seorang jester modern, komika a.k.a komedian.

Peter Russels mengolok-olok ras-ras dengan menyebutkan stereotipe-stereotipe ras tersebut. Pertama-tama, ia memulai dengan mengangkat ras tersebut. Lalu, ia masuk ke olokan ras tersebut. Terakhir, ia tak lupa mengangkat kembali ras yang telah dioloknya. Ia selalu menyediakan jalan keluar untuk mengangkat harkat ras tersebut sehingga ras tersebut pada akhirnya tidak tersinggung.

Untuk yang suka level keras, ada juga komedian di Comedy Central yang langsung ke subyek yang sensitif. Namun, kalau saya amati, sepertinya hidupnya seperti lelucon. Ada saja fitur dari tubuhnya yang dapat menjadi tertawaan. Memang, dosis komedi seperti ini bukan untuk khalayak ramai.

Kalau saya baca argumen yang dibilang oleh Pandji, saya teringat argumen yang berusaha diungkap oleh John Oliver kepada jurnalis. John Oliver merupakan komedian yang mengangkat tema-tema sulit di Amerika dan membawakan berita tersebut dengan gaya lelucon. Para jurnalis menyebutnya sebagai jurnalis, tetapi Beliau menyebut dirinya sebagai komedian yang berusaha membuat orang tertawa. Menurut dia, dia dan timnya memformulasikan bahwa lelucon kehilangan kelucuannya bila data yang dipaparkan tidak akurat.

Kalau menurut saya, John Oliver dan timnya telah sukses memasukkan berita yang kontroversial dengan kelucuan. Mereka berhasil menaikkan isu penting kepada publik Amerika Serikat tanpa mengaktifkan pertahanan. Pertahanan itu seperti penolakan (denial), pengacuhan, dan bahkan sensor. Alarm pertahanan tak aktif karena lelucon-lelucon yang dipaparkan membuat penonton tak merasa frustrasi, bahkan sebaliknya, mereka merasa diperkuat.

Kembali ke Pandji

Ada banyak isu yang menjadi api dalam sekam di negara ini. Isu antar umat agama. Toleransi dengan kaum minoritas. Isu jurang ekonomi yang semakin jauh dan munculnya generasi kelas menengah yang acuh. Bahkan, sampai isu sensitif seperti paham-paham komunisme dan liberalisme.

Bangsa ini terlalu takut untuk membahas isu-isu penting itu. Kami butuh jester untuk membuat kami nyaman untuk memulai diskusi itu. Kami perlu Pandji dan kawan-kawan untuk secara cerdas memasukkan isu-isu tersebut dengan lelucon, bukan swa-sensor.

Dari pada menunggu hukum yang melindungi mereka, saya hanya bisa berharap agar rekan-rekan daring melindungi mereka dari cyber-bullying. Lindungi perkataan mereka walaupun seperti menyakitkan. Saya rasa, mereka orang-orang jenius yang bukan sekedar lelucon belaka. Kita perlu melindungi mereka dari niatan jahat yang berusaha menjatuhkan mereka.

Sifat bangsa Indonesia yang sekarang semakin tak bisa dikritik menurut saya sudah pembodohan lebih dari zaman dahulu. Padahal, adalah budaya Nusantara untuk pantun-pantun jenaka. Adalah budaya Nusantara untuk majas-majas ironi dan satir. Adalah bagian dari budaya kita untuk bersilat lidah.

Saya harap, mop-mop Indonesia bisa mengembalikan budaya kita yang mau terima kritik dan mengkritik dengan elegan; mengkritik dengan lelucon. Jangan sampai api dalam sekam itu membakar lumbung padi kita. Biarlah ia terkuak dengan lelucon sehingga dapat dipadamkan.

Bacaan Lebih Lanjut

Komentar: Panama Papers dan Standar Keamanan Perusahaan

Forbes melaporkan bahwa perusahaan Mossack Fonseca memberikan akses data portal kepada penggunanya dengan menggunakan Portal yang menggunakan versi Drupal tua yang memiliki lubang keamanan. Wordfence pun menyebutkan bahwa situs MF menggunakan WordPress dengan plugin Revolution Slider versi bermasalah. Wordfence menyebutkan lebih lanjut bahwa WordPress tersebut juga menggunakan plugin yang memiliki akses ke dalam peladen surel.

Sewaktu membaca tulisan tersebut, saya merasa bangga bahwa UI menggunakan teknologi yang sama dengan mereka. Hanya saja, mengapa mereka lambat dalam memperbaharui situs WordPress mereka? Setahu saya, kelemahan Revolution Slider terkuak pada tahun 2014! Saya saja sudah agak lupa kelemahannya yang mana.

Dalam dunia keamanan, sebenarnya ada beberapa sumber bolong keamanan. Namun, Karyawan yang kecewa adalah sumber bolong terbesar dalam keamanan. Itu makanya, di dunia TIK ada segregasi tripartid yang memisahkan fungsi-fungsi dan orang yang menjabat. Dengan tiga fungsi yang dibedakan ini, diharapkan setiap pihak bisa saling mengawasi. Juga, penerapan pertukaran posisi agar karyawan tidak terlalu menguasai. Beberapa korporasi menerapkan kebijakan akses sistem dan komputer.

Kembali ke WordPress.

Setahu saya, asalkan rajin memperbaharui WordPress, situs ini relatif aman. Apalagi, WordPress dan plugin-plugin-nya rajin memperbaharui produknya. WordPress memiliki repositori saluran keamanan yang hanya sejauh klik. Masalah yang terjadi adalah justru pada plugin berbayar yang memiliki repositori sendiri. Itu sebabnya, saya pribadi lebih suka menggunakan plugin gratisan dari WordPress. Revolution Slider itu adalah plugin berbayar dan harus diperbaharui secara manual.

Saya lihat yang sering terlewati dari pembuatan kontrak dengan kontraktor pengembang adalah kontrak pemeliharaan. Kontrak pemeliharaan adalah kontrak yang paling krusial dalam sebuah organisasi. Salah satu fungsi dari perencanaan IT Roadmap dalam sebuah perusahaan adalah penentuan sampai kapan sebuah sistem perangkat lunak dikatakan usang. Keusangan itu menentukan seberapa usaha sebuah organisasi dalam memelihara sistem tersebut. MF mungkin adalah sebuah organisasi  yang tidak memiliki IT Roadmap.

Melihat horor yang terjadi bahwa penjebolan sistem dapat menyebabkan sistem lain terjebol, saya tidak habis pikir. Yang pasti, mereka tidak memiliki kebijakan TIK yang komprehensif. Mereka seharusnya memiliki segmentasi jaringan sesuai dengan prinsip-prinsip yang telah ada bertahun-tahun. Setidaknya, mereka memisahkan jaringan DMZ dan jaringan internal. Memisahkan sistem-sistem berdasarkan peruntukan. Misalnya, portal dan situs web harusnya dipisahkan dan data yang digunakan seharusnya berbeda, termasuk sandi masuk mereka!

Tentunya, pemisahan ini memerlukan biaya lebih. Faktor apakah keamanan perusahaan sebanding dengan biaya yang diperlukan, hal ini termasuk dalam Risk Assessment Analysis (Analisis Ancaman) yang mana saya malas membahas untuk saat ini.