Kusaeni Gooners & Random

NCMPCPP Visualizer

Halaman Wiki Archlinux tentang ncmpcpp sudah cukup untuk membantu mengsetup MPD + ncmpcpp dengan baik. Namun ada hal yang kurang mengenai bagaimana cara menampilkan visualizer di ncmpcpp dengan baik.

Setelah memasang mpd dan ncmpcpp, mengatur file config di ~/.ncmpcpp/config. Biasanya ncmpcpp sudah bisa berjalan dengan baik. Namun kadang tidak di bagian penampil visual note suara.

ERROR yang sering muncul adalah can not open mpd.fifo for reading PCM data.

Sesuai dengan arahan di Wiki, bahwa untuk menampilkan visualizer harus menambahkan baris sebagai berikut di /etc/mpd.conf

audio_output {
    type                    "fifo"
    name                    "my_fifo"
    path                    "/tmp/mpd.fifo"
    format                  "44100:16:2"
}

dan di ~/.ncmpcpp/config

visualizer_fifo_path = "/tmp/mpd.fifo"
visualizer_output_name = "my_fifo"
visualizer_sync_interval = "30" 
visualizer_in_stereo = "yes"
visualizer_type = "spectrum" (spectrum/wave)

Namun seringkali ada error muncul yang mengatakan bahwa file mpd.fifo tidak ditemukan. Mengapa? . Karena file tersebut memang belum ada dan harus dibuat secara manual.

Masalahnya, file fifo ini ternyata bukan jenis file biasa yang bisa dibuat dengan perintah touch misalnya. Untuk membuat file fifo ini harus dibuat dengan perintah khusus mkfifo.

A FIFO special file is similar to a pipe, except that it is created in a different way. Instead of being an anonymous communications channel, a FIFO special file is entered into the file system by calling mkfifo().

Sehingga harus dibuat dengan perintah $ mkfifo mpd.fifo. Restart ncmpcpp, mainkan sebuah musik, dan tekan 8 untuk masuk ke tampilan visualizer. Tekan tombol space untuk berubah ke jenis model tampilan visualizer Nikmati.


Elforkane

Elforkane adalah aplikasi Al Qur’an. Semacam Zekr dan Ayat yang sudah tersedia sebelumnya.

Elforkane dibangun diatas Qt dan bisa berjalan native diatas Linux dengan baik. Kelebihan Elforkane dibanding kedua aplikasi sebelumnya adalah dalam hal tampilan UI yang lebih baik. Ok mungkin Ayat masih lebih indah daripada Elforkane, namun Ayat hanya bisa berjalan diatas Adobe AIR yang pengembangannya sudah dihentikan.

Selain di Linux, Elforkane juga tersedia di pelbagai OS seperti Microsoft Windows, bahkan sampai ke Haiku.

Di Archlinux, aplikasi yang dibuat oleh Abu Zakaria (semoga Alloh SWT melimpahkan rahmat kepadanya) ini bisa ditemukan di AUR.

 $ cower -d elforkane
$ cd elforkane
$ makepkg -si

elforkane

Selain sebagai Quran Browser, Elforkane juga menyediakan reciter audio dan tafsir. Ada sekitar 23 bahasa yang didukung, dan Bahasa Indonesia termasuk didalamnya.

Untuk bisa mendengarkan suara reciter dibutuhkan koneksi internet, karena Elforkane akan mengunduh audio dari situs quran.ksu.edu/sa. Untuk yang tidak memiliki koneksi internet setiap saat, bisa juga mengunduh berkas audio dalam bentuk .zip atau .ayt. Setelah terunduh berkas bisa diurai dan diletakkan di folder~/.elforkane/audio/nama_reciter (jika folder tidak ada, silakan dibuat sendiri).

Kumpulan berkas audio, para reciter, gambar, tafsir, terjemahan dan lain - lain bisa diunduh di quran.ksu.edu.sa.

Ada fitur yang menarik di Elforkane, yaitu memorizing. Fitur ini sangat membantu untuk yang ingin menghafal Al Quran. Jika diaktifkan, teks Al Quran akan disembunyikan sementara untuk menghafal. Dan bisa ditampilkan kembali untuk memeriksa hafalan. Luar Biasa.

Alhamdulillah terima kasih kepada Abu Zakariya (semoga Alloh SWT melimpahkan rahmat kepadanya).


Jekyll + lftp + bash = ❤

Saat mempergunakan Jekyll untuk melakukan revisi pada post akan menjadi rumit pada proses pengunggahan.

Banyak orang mengatakan bahwa GIT mempermudah prosesnya. Tapi sebenarnya jauh lebih mudah mempergunakan fungsi editor seperti yang ada pada blog engine pada umumnya. Tinggal edit artikel, kemudian publish semua ada pada satu interface.

Beda dengan Jekyll. Pada kasus saya, untuk mengedit perlu Vim. Kemudian periksa hasil dengan Jekyll yang berjalan diatas URxvt. Setelah sesuai, pindah ke folder _site dan unggah dengan FTP atau GIT.

Kadang kala proses ini membosankan, apalagi jika terjadi revisi berkali - kali. Untuk mempercepat proses, maka perlu dibuat sebuah script BASH sederhana.

 #!/bin/bash

unset username
unset password
echo "###-----------------------------###"
echo "### jekyll + lftp = kusaeni.com ###"
echo "###-----------------------------###"
echo " "
echo -n "username :"
read username
prompt="password :"
while IFS= read -p "$prompt" -r -s -n 1 char
do 
if [[ $char == $'\0' ]]
then
    break
fi
prompt='*'
password+="$char"
done

lftp -u $username,$password ftp.kusaeni.com <<EOF

cd /sites/kusaeni.com/www
lcd /home/kusaeni/GitHub/kusaeni.com/_site

echo " "
echo "Mulai mengunggah file .."
mirror --reverse --ignore-time --only-newer --parallel=5 --verbose

echo  "Selesai."

quit 0

EOF

Simpan sebagai bash script, kemudian gunakan $ chmod +x jlftp.sh agar bisa dieksekusi. Taruh di $PATH atau folder ~/.bin atau /usr/bin agar bisa dijalankan langsung via Terminal.

Script ini memiliki fungsi untuk mempercepat proses pengunggahan dengan memanfaatkan lftp. Masih sangat sederhana dan belum mengakomodir error status pada saat koneksi ftp. Namun setidaknya bisa memangkas waktu untuk berpindah direktori dan mengetik perintah - perintah lftp secara manual.


Modifikasi Luakit

PS: Artikel ini diambil dari blog lain di fanadir.in.

Luakit adalah web browser yang mempergunakan webkit sebagai mesinnya ( sama seperti Chromium / Google Chrome ). Tapi Luakit dibuat dengan filosofi vim, sehingga tampilan dan key-binding pun dibuat sama / mirip. Luakit adalah web browser sederhana, bisa dibilang hadir hanya untuk sekedar jelajah web saja, hanya itu.

Oleh karena itu, untuk beberapa keperluan perlu sedikit memodifikasi agar Luakit bisa berjalan seperti apa yang diminta. Modifikasi tersebut antara lain :

  1. Otomatis jalankan Pidgin saat klik ikon tautan Yahoo! Messenger
  2. 	
    webview.init_funcs.ym_hook = function (view, w)
    	 view:add_signal("navigation-request", function (v, uri)
           if string.match(string.lower(uri), "^ymsgr:") then
            luakit.spawn(string.format("%s %q", "purple-url-handler", uri))
               return false
       	   end
      	end)
    end

  3. Download dengan eksternal Download Manager
  4. 	
     mime_decision = function (view, w)
    
        view:add_signal("mime-type-decision", function (v, uri, mime)
            info("Requested link: %s (%s)", uri, mime)
    
            if (mime == "audio/mpeg") or (mime == "application/octet-stream") or (mime == "video/mov") then
                local cmd = string.format("%s %q","uget-gtk", uri)
                luakit.spawn(cmd)    
                return false
            end
        end)
     end,

Masih ada beberapa fungsi lain, yang sudah aye tambahkan seperti download .torrent dengan Transmission, buka tautan email dengan Geary Email Client dll. Tapi secara kode dan fungsi mirip dengan snippet no 1.

Luakit ringan dan gegas, secara tampilan memang sederhana ( bahkan tidak ada tombol apapun! ) mungkin sulit untuk yg sudah terbiasa dengan GUI, tapi buat yang biasa pakai VIM pasti akan lebih mudah dan cepat. fnd


21/06: Yang Menarik Hari Ini

The Art of Command Line

This is a selection of notes and tips on using the command-line that I’ve found useful when working on Linux. Some tips are elementary, and some are fairly specific, sophisticated, or obscure.

Material Theme

Material Theme, the most epic theme for Sublime Text 3 by Mattia Astorino

PapyrOS

Bringing modern features and Material Design to (Arch)Linux


Modifikasi SublimeText

SublimeText sudah menjadi text editor favorit berdampingan dengan Vim jika menggunakan konsol.

Seperti Vim, saya juga perlu untuk meng-tweak Sublimetext agar sesuai dengan keinginan. Terlebih di sisi tampilan. Berikut beberapa tweak yang sudah dilakukan untuk membuat SublimeText menjadi seperti dibawah ini.

SublimeText

###1. Package Control

Rasa - rasanya Package Control adalah semacam addons wajib yang harus dipasang. Package Control ini memiliki banyak fitur yang bisa memperkaya fungsi dari SublimeText.

Cara memasangnya mudah, kunjungi laman Package Control. Kemudian pilih versi SublimeText (2/3) lalu copy paste kode Python kedalam SublimeText Console yang bisa diakses lewat menu View > Show Console atau lewat shortcut CTRL + `.

###2. Tema dan skema warna

Ada banyak tema tersedia untuk SublimeText dan yang paling menarik adalah tema minimalis/flat. Pilihan jatuh kepada spacegray.

Untuk menginstall tema - skema warna ini jalan paling mudah adalah dengan mempergunakan Package Control. Caranya adalah dengan menu Preferences > Package Control , dari menu pop out yang muncul ketik Package Install . Maka SublimeText akan mengambil data dari repositorynya, kemudian ketik SpaceGray dan pilih sebagai tema. Setelah terpasang, restart SublimeText.

Untuk mengaktifkan UI dan skema warna bisa dengan memodifikasi user preferences. Tentang apa saja yg harus dilakukan untuk mengaktifkan tema ini termasuk didalamnya modifikasi bisa merujuk halaman manual spacegray.

Bacaan sebagai referensi

  1. Manual Install SpaceGray

###3. Visual & Tipography

Karena mempergunakan dark theme seringnya saya merasa bahwa letak baris teks di SublimeText terlalu rapat sehingga sulit dibaca. Selain itu perlu juga ada perubahan tampilan visual yang bisa diatur melalui baris - baris kode di Preferences > Setting User.

  • Merubah Caret Style (kursor)

Normalnya pengaturan kursor adalah blink, namun saya lebih suka mengaturnya menjadi fade agar ada efek muncul hilang terasa lebih lembut.

 {
 "caret_style": "phase"
 }
  • Highlight Current Line

Dengan mengaktifkan fungsi ini, maka Sublimetext akan memberi tanda warna pada posisi baris kursor yang sedang aktif. Sangat membantu sekali saat mengetikkan kode - kode yang panjang, sehingga bisa tahu apakah baris yang sedang aktif masuk kedalam wrap kode atau tidak.

 {
 "highlight_line": true
 }
  • Mengatur tinggi baris (line height)

Baris teks SublimeText terlalu rapat? dengan kode ini jarak baris bisa diatur dengan mudah.

 {
 "line_padding_bottom": 1,
 "line_padding_top": 1
 }
  • Menentukan Font

Normalnya SublimeText akan mempergunakan mono font yang menjadi standar di sistem. Namun jika kurang berkenan, bisa dirubah sendiri.

 {
 "font_face": "Fira Code",
 }

Saya sengaja tidak menentukan besar ukuran font agar bisa diatur secara manual lewat shortcut CTRL + = dan CTRL + - .

Ada banyak mono font yang tersedia bebas dan gratis, salah satu yang bagus adalah Fira Code. Namun juga ada Source Code Pro, Inconsolata, Roboto Mono yang bagus.


AUR 4

Persiapan migrasi ke AUR4

Arch Linux Repository atau yang sering disingkat dengan AUR, per tanggal 8 Juni kemarin mulai dimigrasikan ke AUR versi 4.

AUR4 ini adalah sistem AUR yang sudah mempergunakan GIT based platform dimana nantinya semua paket AUR akan memiliki kelebihan GIT seperti kemungkinan untuk rollback, melihat perubahan, mengomentari perubahan, dan memberikan saran perubahan. Persis seperti di github.

Khusus untuk mainteners paket di AUR, jika masih ingin melanjutkan paket yang sudah dipelihara sebelumnya bisa melakukan permohonan dengan mengajukannya lewat situs AUR4 paling lambat tanggal 8 Juli 2015.

Jika sampai dengan tanggal 8 Juli, paket AUR belum didaftarkan. Maka orang lain bisa mendaftarkan paket tersebut dan dianggap sebagai mainteners yang baru.

Berkaitan dengan perubahan sistem diatas, mainteners diharapkan mengerti dasar - dasar dari GIT dan SSH, lebih lengkap bisa merujuk ke Wiki Archlinux AUR4, disitu juga ada beberapa tools untuk mempermudah migrasi.

DayTask

DayTask adalah aplikasi klien untuk todo.txt yang dibuat oleh the Jambi. Installer aplikasi ini hanya berjalan di Ubuntu.

Untuk Archlinux, saya sudah membuat PKGBUILD agar bisa diinstall. Bisa didapat dengan

 $ git clone https://github.com/kuspoes/daytasks-aur
$ cd daytasks-aur
$ makepkg
$ sudo pacman -U daytask
$ daytask

PKGBUILD ini masih banyak hal yang perlu diperbaiki, namun sudah bisa dipergunakan dengan baik. Jika ada waktu luang silakan mengfork repository ini.

DayTask belum diunggah di AUR (AUR2/3 maupun 4). Dan insya Alloh akan diunggah di AUR4 selepas tanggal 8 Juli nanti.

Bacaan sebagai referensi

  1. AUR 4 - Archlinux Wiki
  2. AUR BugTracker - AUR BugTracker
  3. Dasar - dasar GIT - Git SCM

Jekyll Short URL

CATATAN PENTING: Setelah Jekyll versi 3.0, trik ini masih bisa berjalan dengan baik diatas WEBRick dan Github Pages, tapi tidak bisa diatas server Apache (tanpa pemetaan extension files). Pelajari lebih lanjut di dokumentasi tentang PERMALINK.

Jekyll mendukung cara yang fleksibel untuk menampilkan URL dari situs. Jenis Permalinks yang bisa ditampilkan oleh Jekyll diatur di dalam file konfigurasi dalam format YAML Front Matter yang bisa disisipkan pada tiap artikel atau dengan mengaturnya lewat berkas _config.yml.

 permalink: pretty

Standarnya, dengan memakai kode permalink: pretty sudah cukup untuk bisa menampilkan permanent link dengan baik. Dengan kode tadi maka Jekyll akan membangun URL dengan format URL/tahun/bulan/hari/judul-artikel.

Namun menurut beberapa sumber, model permalinks seperti diatas akan bermasalah dengan SEO dan tidak mudah diingat. Alamat yang (mungkin) lebih baik adalah dengan urutan seperti ini : URL/judul-artikel atau boleh juga disebut dengan short URL.

Short URL

Pertama dicoba dengan merubah argumen di _config.yml sebagai berikut

 permalink: none

Dari perubahan diatas akan menghasilkan format URL URL/judul-artikel.html. Disini short URL yang diinginkan sudah sesuai, namun akan muncul tambahan akhiran .html diakhir judul. Cukup, tapi tidak cukup.

Cara kedua adalah dengan memaksakan untuk menetapkan short URL lewat penulisan permalink key di YAML metadata pada artikel yang dibuat.

  ---
 layout: post
 title: Judul Artikel
 permalink: judul-artikel
 ---

Akan menghasilkan format URL URL/judul-artikel. Bagus, namun kelemahannya adalah harus menyisipkan permalink tersebut secara manual pada setiap post .

Bacaan sebagai referensi

  1. Jekyll Permalinks - Jekyll Documentation
  2. How to Set Short URLs in Jekyll - Joshua Lande
  3. Jekyll Pages with Pretty URLs - Dave Hulihan

Python Acak Angka

Rencana awal akan dipergunakan untuk pengundi door prize. Memanfaatkan fungsi random di dalam Python2.

import random, time
from sys import stdout

my_list = list(xrange(1,1000)) 
                             
random.shuffle(my_list)

for i in my_list:
	stdout.write("\r%d" % i)
	stdout.flush()
	time.sleep(.1)
stdout.write("\n")	

Hasilnya sebagai berikut :

Akan menampilkan random number yang terus berputar menghitung antara 1 sampai dengan 1000. Kode ini masih kacau, dan baru berjalan di konsol. Masih jauh untuk mengintegrasikannya kedalam GUI. Akan dilanjutkan tergantung mood , dan masih perlu belajar Python2 lagi.

PS : Aldi @kriwil sempat membuatkan sebuah kode dengan fungsi yang sama dan jalan di Tkinter. Bisa didapat disini gist github kriwil .


06/06: Yang menarik hari ini

Arc, sebuah tema indah untuk GTK.

Arch adalah sebuah flat theme dengan elemen transparasi untuk keluarga GTK (2,3, dan Gnome Shell). Mendukung penuh desktop yang mempergunakan GTK sebagai penampilnya seperti Gnome Shell, Unity, Budgie, Pantheon, dan lain - lain.

Arc

Arc juga sudah bisa dipasang dengan mudah (lewat package manager) di banyak distro populer seperti Archlinux, Ubuntu, Fedora. Untuk pemasangan manual Arc bisa diunduh lewat repository di GitHub!.

Arm, penampil status Tor di terminal

The Anonymizing Relay Monitor (arm) adalah aplikasi yang dipergunakan untuk memonitor koneksi lewat jaringan Tor, dan memberikan informasi statistik secara real time untuk

  • Penggunaan bandwidth, cpu, dan memori,
  • Konfigurasi relay yang saat ini dipergunakan,
  • Detil koneksi (semacam IP, hostname, fingerprint, dan lain - lain.

Arm

Arm ini bisa menjadi alternatif ringan dan menyenangkan untuk aplikasi Tor lainnya yang populer seperti Vidalia. Arm sudah tersebar di pelbagai macam distribusi, namun juga bisa diunduh di situs resmi proyek Arm