tag:blogger.com,1999:blog-32617692782283686772024-03-13T04:50:39.164-07:00Berkas BebasSegala momen pun tercatat di dalamnya..Adamhttp://www.blogger.com/profile/11648751033781361951noreply@blogger.comBlogger11125tag:blogger.com,1999:blog-3261769278228368677.post-31726806403572367232011-06-28T21:51:00.000-07:002011-07-01T22:45:05.678-07:00[Sed] Merubah kata pada kolom tertentuSed atau dikenal sebagai <i>Stream Editor</i> adalah alat sederhana yang sangat membantu dalam menulis, khususnya programmer. Singkatnya Sed dapat merubah beberapa kata/huruf/kalimat/angka/apapun secara otomasi dengan beberapa perintah saja, tanpa harus merubah file aslinya, artikel yang ber-prefix-kan [Sed] akan menjelaskan trik sederhana penggunaan Sed.<br /><br />Asumsikan mempunyai file <code>baca.txt</code> dengan isi:<br /><br /><pre>naga itu memakan naga kecil ini<br />naga itu memakan naga kecil ini<br />naga itu memakan naga kecil ini</pre><br />Kita dapat merubah kata naga yang kedua (setelah kata 'memakan') dengan perintah ini:<br /><br /><pre>sed -e 's/naga/kucing/2' baca.txt > kucing.txt</pre><br /><code>-e</code>, adalah opsi untuk memasukan ekspresi, dalam contoh ini <code>'s/naga/kucing/2'</code> sebagai ekspresi.<br />Angka 2 pada string tersebut menandakan, akan mengganti kata 'naga' pada kemunculan kedua, hasil olahan tersebut dimasukan ke file kucing.txt.<br /><br />Jika ingin mengganti pada baris pertama saja, tinggal tambahkan angka satu:<br /><br /><pre>sed -e '1s/naga/kucing/g' baca.txt > kucing.txt</pre><br />Kita melihat ada huruf 'g' pada string, ini membuat semua kata 'naga' di baris pertama akan diganti, jika tidak menggunakan 'g' maka hanya kata 'naga' pertama kali bertemu yang akan dirubah.<br /><br />Jika ingin merubah baris satu dan dua saja, maka gunakan ini:<br /><br /><pre>sed -e '1,2s/naga/kucing/g' baca.txt > kucing.txt</pre><br /><code>1,2</code>, berarti dari baris satu sampai dua yang akan dirubah.<br /><br />nb: Masih banyak kekurangan, dan beberapa penjelasan ini tidak <i>Best Practices</i> masih butuh, koreksi dari para ahli :DAdamhttp://www.blogger.com/profile/11648751033781361951noreply@blogger.com0tag:blogger.com,1999:blog-3261769278228368677.post-92164607889146587622011-06-13T22:36:00.000-07:002011-06-13T22:36:56.288-07:00Copy-Paste ke dalam Clipboard pada VimJika terdapat 2 terminal emulator dan masing-masing terminal menggunakan Vim, maka tiap sesi Vim ini berbeda, dan untuk Copy-Paste seperti biasa tidak akan berjalan, gunakan perintah ini untuk menyalinnya ke dalam Clipboard, namun terlebih dahulu pilih bagian yang ingin di salin menggunakan Visual Mode:<br />
<br />
<pre>"+y</pre><br />
Setelahnya, pindah ke sesi Vim satunya, dan jalankan:<br />
<br />
<pre>"+p</pre><br />
Maka Vim akan mengambil konten dari Clipboard dan menyalinnya di sesi Vim tersebut.Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3261769278228368677.post-45822677610936194122011-06-02T05:14:00.000-07:002011-06-02T05:14:57.788-07:00[Error] ! Undefined control sequence pada pdftexSebenarnya ini sangat memalukan, karena tidak ada yang salah dari sumber dokumen tex berikut:<br />
<br />
<pre>\documentclass[a4paper,10pt]{article}
\usepackage[bahasa]{babel}
\begin{document}
\section*{C}
\begin{itemize}
\item[1.] Common Coding Practices
\item[2.] Indentation and Code Formats
\item[3.] Clarity and Simplicity
\item[4.] Elements of Programs
\item[5.] Basic Programs Structure
\item[6.] Simple Expressions
\item[7.] Variables and Storages
\item[8.] Integers
\item[9.] printf Function
\item[10.] Floating Point
\item[11.] Characters
\end{itemize}
\end{document}</pre><br />
Penggunaan <code>pdftex</code> malah menghasilkan pesan kesalahan seperti ini:<br />
<br />
<pre>! Undefined control sequence.
l.1 \documentclass
[a4paper, 10pt] {article}</pre><br />
Ternyata, salah menggunakan <code>pdftex</code> untuk menghasilkan dengan syntax seperti ini dan solusinya adalah mengganti perintah menjadi <code>pdflatex</code><br />
<br />
:DUnknownnoreply@blogger.com0tag:blogger.com,1999:blog-3261769278228368677.post-57527834982578900182011-05-25T17:11:00.000-07:002011-05-25T17:11:12.311-07:00[Error] xcompmgr menghilangkan semua window pada Openboxxcompmgr sepertinya bentrok dengan conky, karena dalam Archlinux dengan window manager Openbox (tidak tahu apakah ini terjadi di distro dan window manager lain), terjadi keanehan dalam prilaku xcompmgr, kita tahu xcompmgr sebagai compositing manager sederhana yang ringan namun berbeda dengan compiz yang mempunyai fitur banyak.<br />
<br />
Instalasi xcompmgr berjalan aman, namun terjadi permasalah pada saat menjalankannya:<br />
<br />
Pertama, saya membuka <code>urxvt</code> lalu menjalankan<br />
<br />
<pre>$ xcompmgr -c</pre><br />
Satu detik setelah eksekusi, window <code>urxvt</code> menghilang, begitu juga dengan firefox yang saya jalankan di workspace lain, meskipun dengan <code>alt-tab</code> window tersebut muncul kembali, namun dengan seketika menghilang kembali, tidak ada pesan error satu pun yang keluar, setelah pencarian singkat menemukan thread <a href="https://bbs.archlinux.org/viewtopic.php?id=45667">ini</a> di forum archlinux, dia menyarankan merubah satu konfigurasi conky:<br />
<br />
<pre>own_window no</pre><br />
Menjadi:<br />
<br />
<pre>own_window yes</pre><br />
Setelah merubahnya, semuanya berjalan normal, hanya saja jika klik-kanan pada daerah conky, menu Openbox tidak munculUnknownnoreply@blogger.com0tag:blogger.com,1999:blog-3261769278228368677.post-91717425001870416602011-05-24T10:14:00.000-07:002011-05-28T07:12:00.761-07:00Fstab - Informasi statis tentang filesystem<code>/etc/fstab</code> - menyimpan konfigurasi serta informasi tentang semua harddisk yang tersedia beserta partisi dan filesystem-nya, prilaku bagaimana tiap partisi itu di inisialisasi juga menjadi tugasnya, utilitas seperti <code>fsck</code>, <code>mount</code>, dan <code>umount</code> sangat bergantung pada <code>/etc/fstab</code>.<br />
<br />
Contoh isi dari <code>/etc/fstab</code>:<br />
<br />
<pre># <file system> <dir> <type> <options> <dump> <pass>
devpts /dev/pts devpts defaults 0 0
shm /dev/shm tmpfs nodev,nosuid 0 0
#/dev/cdrom /media/cd auto ro,user,noauto,unhide 0 0
#/dev/dvd /media/dvd auto ro,user,noauto,unhide 0 0
#/dev/fd0 /media/fl auto user,noauto 0 0
UUID=004b497f-d56a-46ba-af1c-9f3ab0ce2020 / ext3 defaults 0 1
UUID=5a2e1a84-7073-40ec-b717-7936dc1a99ed swap swap defaults 0 0
UUID=1240b1b4-60e0-44e7-b412-2c8cc523d661 /media/sda3 ext3 user,rw,uid=1000,noatime 0 0</pre><br />
Untuk memodifikasi, setidaknya kita harus mengerti enam informasi yang dibutuhkan <code>/etc/fstab</code>, lihat pada baris terakhir:<br />
<br />
<pre>UUID=1240b1b4-60e0-44e7-b412-2c8cc523d661 /media/sda3 ext3 user,rw,uid=1000,noatime</pre><br />
<code>/etc/fstab</code> terbagi menjadi 6 wilayah, yaitu:<br />
<br />
<pre><file system> <dir> <type> <options> <dump> <pass></pre><br />
<b>Pertama</b>, wilayah filesystem digunakan untuk menentukan mana partisi yang digunakan, dalam contoh ini penulis menggunakan UUID untuk mengenali partisi.<br />
<br />
<b>Kedua</b>, menenentukan dimana filesystem akan di mount, pada kasus ini berada di <code>/media/sda3</code><br />
<br />
<b>Ketiga</b>, deskripsikan secara jelas jenis filesystem-nya, dalam contoh ini menggunakan ext3, jika tidak yakin dapat menggunakan <code>auto</code> sistem mendeteksi filesystem-nya.<br />
<br />
<b>Keempat</b>, <code>user,rw,uid=1000,noatime 0 0</code> ini opsi yang digunakan, terdapat opsi lain, yaitu;<br />
<br />
<ul><li><code>auto</code>, filesystem akan di mounting secara otomatis pada startup atau pada saat perintah <code>mount -a</code> dijalankan.</li>
<li><code>noauto</code>, filesystem tidak akan di mounting dengan otomatis.</li>
<li><code>exec</code>, mengizinkan agar dapat menjalankan file executable.</li>
<li><code>noexec</code>, tidak mengizinkan menjalankan file executable.</li>
<li><code>ro</code>, mounting dengan read-only.</li>
<li><code>rw</code>, mounting dengan read-write.</li>
<li><code>user</code>, memungkinkan user selain root dapat mounting filesystem.</li>
<li><code>nouser</code>, hanya root yang boleh mounting filesystem.</li>
<li><code>suid</code>, membolehkan operasi suid dan sgid, untuk memperbolehkan menjalankan file binary dengan akses tinggi untuk menyelesaikan beberapa tugas.</li>
<li><code>nosuid</code>, tidak memperbolehkan operasi suid dan sgid.</li>
<li><code>defaults</code>, sama dengan <code>rw,suid,dev,exec,auto,nouser,async</code></li>
<li><code>sync</code>, menentukan bagaimana input/output diselesaikan pada filesystem, dengan opsi <code>sync</code> maka I/O akan diselesaikan secara sinkron, dalam artian jika USB Flashdrive ada di komputer, lalu pada saat menyalin suatu file, maka file itu secara fisik juga tersalin pada Flashdrive.</li>
<li><code>async</code>, dengan opsi ini jika menyalin suatu file ke Flashdrive, maka perubahan fisik akan terjadi setelah perintah itu dijalankan namun dengan rentang waktu yang cukup lama, berarti meskipun menyalin file tersebut dan seketika Flashdrive tersebut dilepas dari komputer, maka tidak akan ada perubahan pada Flashdrive tersebut.</li>
</ul><br />
<b>Kelima</b>, berisi nilai 0 atau 1, jika nilai 0 maka utilitas <code>dump</code> tidak menganggap filesystem tersebut, <code>dump</code> digunakan untuk backup filesystem.<br />
<br />
<b>Keenam</b>, nilai ini digunakan untuk memberitahu <code>fsck</code> agar mengecek integritas filesystem, dapat diisi dengan nilain 0, 1, dan 2, nilai satu digunakan untuk prioritas tertinggi, biasanya digunakan untuk partisi root, jika nilai 0, maka <code>fsck</code> tidak melakukan pengecekan.Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3261769278228368677.post-89209508271172803982011-05-24T02:32:00.000-07:002011-05-24T08:23:48.407-07:00[Baris Perintah] du - untuk mengetahui ukuran direktori<code>du</code> - biasa digunakan untuk mencari ukuran sebuah direktori, walau sebenarnya du adalah perintah untuk mencari ukuran pada sebuah file, dan untuk mendapat ukuran direktori di lakukan secara rekursif pada seluruh file di direktori tersebut, lalu diberikan total dari akumulasi ukuran tiap file.<br />
<br />
Penggunaannya sebagai berikut:<br />
<br />
<pre>du [OPTION]... [FILE]...</pre><br />
dimana <code>OPTION</code> akan memudahkan kita dalam pencarian informasi, sedangkan <code>FILE</code> diisi dengan file yang inginkan, dapat digunakan lebih dari satu file.<br />
<br />
<pre>$ du foo.txt bar.txt
10 foo.txt
20 bar.txt</pre><br />
Ini bentuk sederhana yang hanya mengeluarkan ukuran tanpa postfix seperti <code>K</code>, <code>M</code>, atau <code>G</code>. Untuk mendapatkan postfix tersebut digunakan opsi:<br />
<br />
<pre>$ du -h foo.txt
10K foo.txt</pre><br />
<code>-h</code>, <code>--human-readable</code> berarti formatnya dipermudah dengan menambahkan postfix.<br />
<br />
<pre>$ du foobar/
34 foobar</pre><br />
Direktori foobar berisi file <code>foo.txt</code> dan <code>bar.txt</code>, nilai 34 di ambil dari akumulasi <code>foo.txt</code>, <code>bar.txt</code> dan direktori <code>foobar/</code> (direktori mempunyai ukurannya sendiri yaitu 4 KB)<br />
<br />
<pre>$ du -a foobar/
10 foobar/foo.txt
20 foobar/bar.txt
34 foobar/</pre><br />
<code>-a</code>, <code>-all</code> digunakan agar format output dari du juga menyisipkan ukuran tiap file, karena tanpa opsi <code>-a</code> hanya menampilkan ukuran tiap direktori serta sub-direktori saja.<br />
<br />
<pre>$ du -sh foobar/
34K foobar</pre><br />
<code>-s</code>, <code>--summarize</code> hanya menampilkan total keseluruhan direktori beserta file-nya tambahkan opsi <code>-h</code> untuk mendapatkan format yang mudah dibaca.<br />
<br />
Jika menjalankan perintah du tanpa file input, maka dia akan memeriksa pada direktori yang sedang aktif saja.<br />
<br />
Selain opsi-opsi diatas, terdapat opsi lain, seperti:<br />
<br />
<code>-S</code>, <code>--seperate-dirs</code> ukuran sub-direktori tidak akan di ikutkan dalam akumulasi, jadi jika didalam <code>foobar/</code> ada direktori <code>barfoo/</code> dengan ukuran 4K, dan dengan opsi <code>-S</code> maka hasilnya akan tetap 34K.<br />
<br />
<code>--exclude=PATTERN</code> opsi ini akan menyingkarkan file yang mempunyai bentuk sesuai dengan <code>PATTERN</code>, dan ini bukan <i>regular expression</i>, hanya shell pattern yang sederhana seperti tanda <code>?</code> akan mencocokan pada satu karakter saja dan tanda <code>*</code> akan mencocokan pada string apapun, contoh;<br />
<br />
Jika direktori <code>foobar/</code> mempunyai file <code>header.c</code> dan <code>main.c</code>, lalu:<br />
<br />
<pre>$ du -a --exclude="*.c" foobar/
10 foobar/foo.txt
20 foobar/bar.txt
34 foobar/</pre><br />
Maka yang tampak hanyalah <code>foo.txt</code>, <code>bar.txt</code>, dan <code>foobar/</code>, file <code>header.c</code> dan <code>main.c</code> dihilangkan karena mereka termasuk dalam <code>PATTERN</code>.Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3261769278228368677.post-39675405966591566712011-05-23T18:36:00.000-07:002011-05-24T05:22:14.861-07:00Alt-Tab Preview pada Openbox<b>Alt-Tab</b> adalah shortcut yang biasanya digunakan untuk memilih window aktif pada desktop, Openbox menawarkan banyak opsi untuk meningkatkan produktifitas, salah satunya dengan meng-preview window selama kita memilih-milih window dengan Alt-Tab.<br />
<br />
Dengan menambahkan opsi <code>raise</code> pada fitur <code>NextWindow</code>, berikut contoh penggunaannya:<br />
<br />
<pre><keybind key="A-Tab">
<action name="NextWindow">
<raise>yes</raise>
</action>
</keybind></pre><br />
Opsi ini juga dapat diterapkan pada <code>PreviousWindow</code>, dokumentasi tentang Action pada Openbox dapat dilihat disini <a href="http://openbox.org/wiki/Help:Actions">Openbox Actions Documentation</a>.Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3261769278228368677.post-67609065257127134112011-05-23T05:12:00.000-07:002011-05-24T04:40:46.257-07:00Mengatur Margin Openbox untuk penggunaan ConkyPenggunaan Conky untuk memonitor hardware ataupun waktu sudah menjadi keharusan, untuk pecinta simplisitas desktop biasanya menggunakan conky one-liner yang diletakkan di atas maupun di bawah, nah kadang conky one-liner ini meskipun sudah menggunakan atribut untuk membuatnya di atas namun window aplikasi tetap saja menimpa conky ataupun window tercampur dengan conky, ada solusi yang dapat digunakan di Openbox yaitu dengan mengatur margin, karena Openbox ini sudah kompatibel dengan EWMH.<br />
<br />
Pertama, tambahkan di <code>rc.xml</code> baris berikut:<br />
<br />
<pre><margins>
<top>14</top>
<bottom>0</bottom>
<left>0</left>
<right>0</right>
</margins></pre><br />
Atau lebih mudah dapat menggunakan utilitas <code>obconf</code>, nilai margin bisa anda rubah sendiri sesuai kebutuhan.<br />
<br />
Kedua, tambahkan di <code>.conkyrc</code> baris berikut:<br />
<br />
<pre>own_window yes
own_window_transparent no
own_window_type normal
own_window_hints undecorated,sticky,skip_taskbar,skip_pager</pre><br />
Reload conky, lalu liat hasilnya :DUnknownnoreply@blogger.com0tag:blogger.com,1999:blog-3261769278228368677.post-53158401538059345662011-05-20T18:18:00.000-07:002011-05-24T04:44:49.393-07:00Konversi PNG ke JPG dengan ImageMagickPindah ke folder yang terdapat file PNG Anda:<br />
<br />
<pre>$ convert gambar.png gambar.jpg</pre><br />
Perintah tersebut akan mengkonversi satu file, namun jika banyak file<br />
yang ingin di konversi gunakan script berikut:<br />
<br />
<pre>$ for img in *.png; do
> convert "$img" "$img.jpg"
> done</pre>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3261769278228368677.post-45309450466320227752011-04-26T17:53:00.000-07:002011-05-24T04:46:27.125-07:0080 Karakter per baris pada VimJika mempunyai file teks yang tidak mempunyai standar 80 karakter per baris, dapat di format dengan terlebih dahulu mengatur <code>textwidth</code> menjadi 80, masukan baris in ke <code>.vimrc</code><br />
<br />
<pre>set textwidth=80</pre><br />
lalu buka file teks tersebut, pindahkan kursor ke tempat dari mana Anda ingin memformatnya, lalu jalankan ini<br />
<br />
<pre>VGgq</pre><br />
voila! file teks Anda sudah mengikuti standar 80 karakter :DUnknownnoreply@blogger.com0tag:blogger.com,1999:blog-3261769278228368677.post-32842060319671998832011-04-18T10:52:00.000-07:002011-05-24T04:47:43.851-07:00[Baca Kode] Memotong file mp3 dengan ffmpeg<pre>ffmpeg -ss waktumulai -t jumlahdetik -i input.mp3 -acodec copy output.mp3</pre><br />
waktumulai = waktu pertama memulai pemotongan<br />
jumlahdetik = berapa detik potongan ingin dilakukanUnknownnoreply@blogger.com0