Cara Mining Yang Dijamin Berhasil

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

Hardware Yang Mumpuni

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

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

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

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

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

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

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

Buku Inkscape versi Digital Gratis

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

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



Unduh Buku Inkscape versi Digital Gratis


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

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

Teknisi sebagai ahli IT

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

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

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

Teknisi sebagai Ahli IT

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

Menggunakan Sistem Operasi Ilegal

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


Sistem Operasi yang digunakan Kadaluarsa

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

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

Solusi Unduh Cepat VHD UNBK 2018 (Sebuah Usulan)

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

Pengumuman Pemenang Sayembara

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





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

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

      Semarang, 25 Januari 2018

      SAYEMBARA MENGGAMBAR SAMPUL BUKU LIBREOFFICE

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

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

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

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

      Tautan Unduh


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


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

      Kombinasi Tail dan Grep

      eiffel.di.blankon.in

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

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

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

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

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

      Contoh:

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

      Selamat berburu logs!!

      Estu~

      31 Desember

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

      Suatu malam di ruang pantry tiba-tiba dia bertanya

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

      Kemudian kami tertawa dengan hangat


      Filed under: Uncategorized

      Starting New Episode

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

      Membuang Disqus

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

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

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

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

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

      Subscriber

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

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

      Belajar Bersama

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

      Kesimpulan

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

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

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

      Podcast Pertama Linhub

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

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

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

      Operasi pada Array di Ruby

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

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

      Akses Elemen pada Array

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

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

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

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

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

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

      Mengambil Beberapa Elemen dari Array

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

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

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

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

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

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

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

      Mendapat Nilai Acak dari Array

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

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

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

      Pencarian dan Penyaringan Array

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

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

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

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

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

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

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

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

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

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

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

      Mengurutkan Data pada Array

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

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

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

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

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

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

      Berikut adalah contoh penggunaan operator pembanding dengan method .sort:

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

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

      Menghapus Duplikasi Elemen

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

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

      Kita dapat menggunakan method .uniq untuk menghapus duplikasi tersebut

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

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

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

      Transformasi Data Array

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

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

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

      Mereduksi Array

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

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

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

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

      Kesimpulan

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

      Eksplorasi Ruby dengan IRB

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

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

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

      Memulai IRB

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

      irb(main):001:0>
      

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

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

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

      Menjalankan Kode pada Sesi IRB

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

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

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

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

      Ketika menekan tombol ENTER, maka IRB akan menampilkan dua hasil

      Selamat Datang di Linhub
      => nil
      

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

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

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

      Variabel ini dapat kita gunakan seperti biasa

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

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

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

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

      Menggunakan Pustaka dan Gem

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

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

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

      $ irb -r httparty
      

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

      Kustomisasi IRB

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

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

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

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

      Kesimpulan

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

      Log Kulgram 002 Kemas Aplikasimu dengan Docker Container

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

      Logrotate | Bersih-bersih Kapasitas Hardisk

      logs

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

      Apa yang harusnya dilakukan pada log?

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

      Implementasi ?
      Logrotate.

      Berikut contoh konfigurasi yang biasa saya lakukan:

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

      Kalau ada pertanyaan, silahkan tinggalkan komentar. Sekian.

      Estu~

      Mengoreksi Kapasitas Hardisk Sistem Operasi

      Tumis-Tempe

      ps: foto tak ada hubungan sama isi postingan

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

      Nyari pembagian partisi

      # sudo fdisk -l
      

      Nyari kepastian ukuran partisi yang terpakai

      # sudo df -h
      

      Nyari ukuran folder pada posisi $(pwd)

      # sudo du -sh
      

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

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

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

      Estu~

      Log Kulgram 001 Up & Running with Docker Container

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

      Upgrade BlankOn Tambora Menjadi BlankOn Uluwatu

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

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

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

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

      Diputuskan: DIST-UPGRADE ke Uluwatu

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

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

      Step-step nya adalah:

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

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

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

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

      Sudah, itu saja yang saya lakukan.

      Beberapa kutu yang masih ada adalah:

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

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

      Starting EndlessOS

      Did you know about EndlessOS? you can read here.

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

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

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

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

      First Impression

      Fast!

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

      Nice

      I love the wallpaper.

      EndlessOS Desktop

      EndlessOS Desktop

      Just Work

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

      App Center

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

      App Center #1

      App Center #1

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

      App Center #2 – Encyclopedia

      And there’s also Android Studio.

      App Center #3 - Android Studio

      App Center #3 – Android Studio

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

      Audacity

      Audacity – My lovely application

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

      Two GIMP

      Two GIMP

      Steinberg UR242

      Steinberg UR242

      Steinberg UR242

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

      Let's Rock

      Let’s Rock

      What is missing?

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

      Ardour – this is also in my list of apps.

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

      VirtualBox – No virtualbox. 🙂

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

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

      Translations

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

      Use “Siap digunakan” insted of “Siap Pergi”

       

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

       


      Steinberg UR242 Ubuntu 17.10

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

      Steinberg UR242

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

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

       

      Pada halaman settings


      Menghapus Volume Group Hardisk Setelah Install Proxmox VE

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

      Catatan Membuat Pabrik CD BlankOn di Debian 9

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

      Virtual Environtment

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

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

      Apa yang bisa kita lakukan?

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

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

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

      Lingkungan Virtual

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

      Beberapa bahasa pemrograman yang memiliki sarana ini akan coba dibahas.

      Perlbrew untuk Perl

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

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

      Pyenv untuk Python

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

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

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

      Rbenv untuk Ruby

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

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

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

      Dan nikmati kemudahannya.

      Pilihan

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

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

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

      Jangan malas membaca, ya. Dokumentasi lengkap kog.

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

      Cara Install Debian 9 (Stretch) dengan Pemartisian Manual

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

      Liputan Acara Bekraf-Habibie Festival (bagian 1)

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


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

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

      Bersambung ke liputan bagian 2

      TUGU PAHLAWAN

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


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

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

      Repository BlankOn, Pembenahan

      Agak tersentil di beberapa tempat. Mungkin sekedar membuat report.

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

      Itu saja. Jangan cuman koar-koar.

      Bekraf, Sebuah Catatan

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

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

      Jadi, ini tulisan apa? Hanya sebuah catatan.

      Media Promosi

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

      Media Komunikasi

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

      Riset Pasar

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

      Pembenahan Diri dan Pengambilan Sikap/Keputusan

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

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

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

      Buku Bermain dan Belajar dengan GCompris

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

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

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

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

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

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

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





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

      Menentukan Array Berisi Nilai Dari Array Lain di Ruby

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

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

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

      This Week with OpenBSD

      Everthings has come to an end…

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

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

      Terminal

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

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

      Window Manager

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

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

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

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

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

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

      Menjelajah Dunia Maya

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

      $ sudo pkg_add firefox

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

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

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

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

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

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

      Alasan Menolak Kirim Barang Elektronik

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

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

      Menggunakan OpenBSD

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

      Memasang OpenBSD Menggantikan Ubuntu

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

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

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

      Mengubah /etc/installurl ke Mirror Lokal

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

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

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

      Mengganti Shell dengan Bash

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

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

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

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

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

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

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

      Why I Use Private VPN

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

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

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

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

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

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

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

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

      Namun apakah memang dengan menggunakan layanan VPN berbayar yang menjanjikan

      We don’t log, period.

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

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

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

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

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

      What I Learned by Switching Keyboard Layout

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

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

      1. It’s Easy, Is it?

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

      But, yeah it is easy to learn it.

      2. Using DVORAK is Cool

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

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

      3. It’s More Comfortable

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

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

      4. Increase Typing Speed

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

      Faster at typing increase your productivity after all.

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

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

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

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

      Parkir

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

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

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

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

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


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

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

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

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

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

      “Pergi. Pergi.”

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

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

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

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

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

      “Istirahatlah, Pak, “ katanya. Saya meram.

      Generate SSH Key pada MacOS

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

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

      Melakukan Generate SSH Key

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

      $ ssh-keygen -t rsa
      

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

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

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

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

      Peringatan: jangan pernah berbagi private key kamu dengan orang lain

      Menambah SSH Key pada Akun Github

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

      $ pbcopy < ~/.ssh/id_rsa.pub
      

      Kemudian buka akun github kamu dan ikuti langkah berikut

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

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

      Memasang Shadowsocks Server Pribadi

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

      Antara Shadowsocks dan VPN

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

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

      Memasang Shadowsocks di VPS

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

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

      Kemudian buat berkas konfigurasi

      $ sudo vi /etc/shadowsocks.json
      

      Masukkan konfigurasi berikut pada berkas tersebut

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

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

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

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

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

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

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

      Memasang Shadowsocks pada Android

      Untuk memasang client di Android silahkan unduh di sini

      Optimasi Shadowsocks

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

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

      Panduan Membeli Thinkpad Bekas

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

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

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

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

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

      Thinkpad

      Thinkpad Seri T

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

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

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

      Thinkpad Seri X

      Bisa dikatakan seri ini adalah seri Best LightWeight.

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

      Untuk seri inipun saya juga merekomendasikan seri X230.

      Upgrade Thinkpad

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

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

      Catatan Penting

      Beberapa hal yang harus kamu perhatikan ketika memboyong Thinkpad Bekas:

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

      Rekomendasi Penjual

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

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

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

      Update Wireless Card Firmware in OpenBSD

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

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

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

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

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

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

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

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

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

      Untuk terhubung dengan wifi di rumah saya menggunakan perintah beriku:

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

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

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

      # fw_update
      

      Untuk melakukan pembaruan firmware yang lain secara otomatis.

      Update Wireless Card Firmware in OpenBSD

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

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

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

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

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

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

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

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

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

      Untuk terhubung dengan wifi di rumah saya menggunakan perintah beriku:

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

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

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

      # fw_update
      

      Untuk melakukan pembaruan firmware secara otomatis.

      Vortex Core

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

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

      Papan tik dome, gambar dari Wikipedia.

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

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

      Cherry MX Blue Switch, gambar dari Wikipedia.

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

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

      Vortex Core, gambar dari dokumentasi pribadi.

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

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

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

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

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

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

      BlankOn: Cek Snapshot, Unduh!

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

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

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

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

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

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

      BlankOn: Cek Bolong, Unduh!

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

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

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

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

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

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

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

      Git Version Control System

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

      Berkenalan dengan Docker

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

      Makanya Jangan Ber-Linux Terus

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

      Konversi VCS Bazaar ke Git

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

      Mengenalkan Komputer Melalui GCompris

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

      Jaring tim pengembang, BlankOn adakan Lokakarya pemaketan

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

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

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

      Belajar Mengetik Untuk Anak-anak

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

      Pelatihan Migrasi Open Source di Dinkes Lamongan

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

      Proof of Concept: Information Exposure from an outdated configuration

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

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

      YMMV. goodluck.

      Proof of Concept: Information Exposure from an outdated configuration

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

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

      YMMV. goodluck.

      Migrasi Blogspot ke Jekyll

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

      Matplotlib show or imshow not working

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

      matplotlib.pyplot.ion()


      To turn off interactive mode:


      matplotlib.pyplot.ioff()


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

      Minta Screenshot Malah Foto yang dikirim

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

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

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

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


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


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


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


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

      Kursus Komputer Khusus Orang Tua

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

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

      Bagaimana pendapat Anda?

      Laptop Sekarang Jelek-jelek

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

      Rekontruksi IRGSH (2)

      DRAFT

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

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

      Persiapan

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

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

      irgsh-web

      Membangun irgsh-web

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

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

      Mempersiapkan sertifikat

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

      Inisialisasi CA

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

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

      Membuat sertifikat turunan untuk irgsh-web

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

      Basis data

      Aku.boi

      Konfigurasi