Mercurial 101: Install dan Gunakan Saat Ini Juga

July 11, 2010 by NWH  
Filed under Alumni Aggregator

Sedikit pengantar, mercurial adalah sistem manajemen source code untuk kolaborasi pekerjaan dan pelacakan perubahan. Utamanya digunakan oleh para pembuat program. Perangkat lunak ini dibuat berbasis bahasa pemrograman python dan sedikit C untuk alasan kecepatan.

Sudah terdapat beberapa sistem manajemen source code seperti ini, misalnya: Concurrent Versions System (CVS), Subversion (SVN), Bazaar (bzr), Git, dan beberapa yang lain. Lihat di Comparison of revision control software

Masing-masing Versioning System mempunyai kelebihan dan kekurangan. Jadi kenapa saya memilih mercurial, sederhana: saya belum terlalu dalam menggunakan CVS dan SVN dan saat ini sedang fokus di bahasa pemrograman python. Jadi mercurial ada pilihan wajar saat ini. Selain itu namanya keren, “scientist” banget.

more »

Menolak Email pada Postfix/Zimbra

June 19, 2010 by NWH  
Filed under Alumni Aggregator

Beberapa waktu terkini, saya mendapat keluhan dari user mail server yang saya pelihara. Email-email tidak jelas masuk ke inbox mereka. Setelah saya pelajari salinan email yang dimaksud, tampak jelas bahwa email tidak terkirim dari email server kami. Akan tetapi berasal dari email server di luar. Tujuan dan asal email memang ke arah domain klien saya tersebut. Jadi sekiranya email tersebut tidak sampai ke tujuan, pasti akan berbalik ke arah email server kami.

Solusi yang dijelaskan disini meski berbasis Zimbra, jelas bisa diterapkan pada sistem lain yang menggunakan Postfix. Karena kita tahu Zimbra menggunakan Postfix sebagai MTA (Mail Transfer Agent).

more »

Memulai Postgresql

June 14, 2010 by NWH  
Filed under Alumni Aggregator

Setelah terjadi hiruk pikuk alih tangan MySQL pada saat ingin fokus menggunakan MySQL, membuat saya berpikir untuk kembali fokus dengan database server PostgreSQL. Dengan pertimbangan masa depan yang menurut saya kurang bagus buat MySQL. Ini adalah kejadian yang ketiga setelah saya beralih dari distribusi GNU/Linux RedHat/Fedora ke Mandrake/Mandriva, dan kemudian ke Debian. Dengan alasan yang sama tentunya. Masa depan yang sepertinya gak terlalu bagus.

Beberapa tahun saya telah mengunakan dua database utama yaitu MySQL dan PostgreSQL. Namun tidak pernah membuat dokumentasi masing-masing. Sekarang saat yang tepat untuk segera membuat dokumentasi. Agar mudah mencari apa yang telah saya kerjakan, daripada mencari dalam lautan database mesin pencari di Internet. Selain itu agar bermanfaat pula bagi orang lain.

Fitur-fitur penting dijelaskan di website postgresql. Tapi seingat saya, PosgreSQL mempunyai fitur yang jauh di atas MySQL di awal-awal tahun 2000-an. Untuk kondisi sekarang belum membandingkan, karena MySQL sudah sedemikian maju. Dan saya baru mulai menggunakan PosgreSQL lagi.

more »

Mengaktifkan Web Server Lighttpd

June 13, 2010 by NWH  
Filed under Alumni Aggregator

Deskripsi mengenai Lighttpd yang bisa didapat dari website resminya adalah:

Security, speed, compliance, and flexibility — all of these describe lighttpd (pron. lighty) which is rapidly redefining efficiency of a webserver; as it is designed and optimized for high performance environments. With a small memory footprint compared to other web-servers, effective management of the cpu-load, and advanced feature set (FastCGI, SCGI, Auth, Output-Compression, URL-Rewriting and many more) lighttpd is the perfect solution for every server that is suffering load problems. And best of all it’s Open Source licensed under the revised BSD license.

Catatan ini adalah rekaman yang sempat saya buat ketika membuat aplikasi berbasis web dengan menggunakan bahasa skripting python.

more »

Instalasi Debian dari USB

May 2, 2010 by NWH  
Filed under Alumni Aggregator

Dokumentasi ini dibuat saat saya ingin menginstall distribusi kesayangan Debian GNU/Linux ke sebuah netbook murah, accer aspire one. Saya pikir sekarang sudah saatnya menghindari melakukan proses instalasi menggunakan keping CD/DVD, untuk mengurangi dampak bahaya lingkungan yang diakibatkan oleh sampah CD/DVD–sebuah statement sok tahu yang tidak didukung data yang benar.

Lagi pula menginstal sistem operasi menggunakan media harddisk atau USB flaskdisk lebih cepat dan mempunyai tingkat kesuksesan yang lebih bagus daripada menggunakan CD/DVD.

Asumsi untuk melakukan langkah-langkah ini adalah,

  • Kita bekerja menggunakan sistem operasi GNU/Linux yang sudah berjalan, dalam hal ini saya menggunakan distribusi Debian Lenny.
  • Sudah terinstall paket syslinux dan syslinux-common.
  • Sudah terinstall program fdisk dan rsync.
  • Menggunakan hak akses ‘root’.
  • Direktori sumber adalah /tmp/source, dan direktori tujuan adalah /tmp/target.

more »

Membuat Salinan Instalasi Server dengan Fungsi Sama

April 11, 2010 by NWH  
Filed under Alumni Aggregator

Beberapa hari ini saya harus menginstall beberapa server dengan fungsi khusus, seperti server printer dan server fax. Alih-alih menginstall masing-masing server menggunakan media installer standar kemudian menyetel satu persatu. Saya menginstall satu mesin, menyetel dengan benar sistem di mesin tersebut. Setelah itu menyalin sistem secara keseluruhan pada komputer-komputer lainnya. Dan terakhir menyetel kebutuhan khusus masing-masing server.

Metode instalasi yang dijelaskan disini, adalah rangkuman hasil catatan setelah melakukan instalasi. Bukan didokumentasikan saat instalasi. Akan sangat memungkinkan terdapat kekeliruan penulisan perintah dan lain sebagainya. Koreksi dan usulan sangat terbuka dari para penerap dan pengguna GNU/Linux secara umum.

Meski tulisan ini berbasis distribusi Debian, tapi saya sangat yakin bisa diterapkan untuk distribusi lainnya.

Cara seperti ini sebenarnya mirip dengan cara diterapkan pada distribusi-distribusi yang diinstall dari live-cd

more »

Definit Integral Metode Monte Carlo

November 23, 2009 by NWH  
Filed under Alumni Aggregator

Hari ini mendapat email dari seorang mahasiswa, begini bunyinya:

Bapak salaman sya mau bertanya. ini saya attach. sebelumnya terimaksih banyak ya bapak

Dan isi file attachment dalam format “doc” adalah:

bapak, saya mau menanya bagaimana skrip untuk perhitungan metode monte carlo dengan cara membangkitkan bilangan acak.

Dalam integral monte carlo ada rumus begini :

Dengan N = banyaknya data yang dibangkitkan.
Algoritmanya begini mas :
1. bangkitkan data dalam interval a sampai b
2. masukkan nilainya ke dalam fungsi g(x) lalu jumlahkan nilainya
3. hitung rata-rata lalu kalikan dengan (b-a) sebagai taksiran nilai integral yang dicari.

Misal ada soal begini :

bagaimana cara menyelesaikan dengan script python dengan integral monte carlo….? mohon saya diberi contoh skripnya ya bapak

Sebelumnya saya ucapkan terimakasih banyak atas kebaikan bapak

Entah iseng atau kurang kerjaan, saya jawab pertanyaan ini. Berikut jawaban saya:

Berikut ini skrip yang dimaksud. Saya buat secara cepat dengan menggali ingatan hampir 14 tahun yang lalu. Tidak ada upaya optimasi apapun, hanya menerjemakan algoritma “monte carlo” yang berbasis bilangan acak. Dan perlu diingat bilangan acak ini, karena dibuat oleh komputer sifatnyat tidak benar-benar acak. Sering disebut “quasi random”.

#!/usr/bin/python
from math import *
from random import *

# ubah fungsi ini.
def equation(x):
        return x*x

def genrand(a,b,n):
        step = (b-a)/n
        pairs = []
        l = a
        while (l<n):
                x = uniform(a,b)
                pairs.append([x, equation(x)])
                l = l + step
        return pairs

def calculate(a,b,n):
        pairs = genrand(a,b,n)
        points = len(pairs)
        y = 0
        for x in pairs:
                y = y + x[1]
        avg = y/points
        bmina = b - a
        return bmina*avg

a = 2.0
b = 8.0
n = 1000
print ""
print "a = %s, b = %s, n= %s" % (a,b,n)
print "Definit integral: %s" % calculate(a, b, n)
print 40*"-"
print "notes: change equation() definition"
print ""

Gunakan dengan bijak dan tidak ada pernyataan apapun. Resiko apapun ditanggung pengguna. *LOL*

Langkah Pertama Menguasai Smarty

November 16, 2009 by NWH  
Filed under Alumni Aggregator

Apa sih sebenarnya Smarty? Penjelasan pendeknya, Smarty adalah library PHP untuk mengolah tampilan berbasis web dari sebuah cetakan tampilan dan data dari skrip PHP.

Sistem template ini sangat penting dalam pekerjaan menampilkan halaman web dinamis. Pekerjaan mengkreasi tampilan dan logika pemrograman secara mudah dipisahkan. Sehingga tingkat kebergantungan akan dikurangi.

Cara kerja sistem template pernah saya tulis di disini, atau disini. Dalam tulisan ini saya akan membahas sistem templating yang lebih rumit dan lengkap.

Asumsi:

  • Sistem operasi Debian GNU/Linux 5.0 “Lenni”,
  • PHP 5.2.6,
  • Smarty 2.6.26, bisa didapatkan dari URI ini,
  • Konfigurasi Apache 2.2.9 standar bawaan Debian,
  • Mampu menggunakan perintah baris di GNU/Linux.

Siapkan direktori kerja di bawah struktur direktory Apache, yaitu /var/www. Karena otoritas membuat file/direktori dalam direktori ini adalah user “root” maka kita harus mengubah efektif id kita menjadi root dengan perintah,

salman@neon:~$ su -
Password:
neon:~#

Perhatikan perintah di atas. Username yang digunakan sebelumnya adalah “salman” setelah perintah “su -”, user menjadi “root”. Sesuaikan dengan username yang Anda gunakan. Saatnya membuat struktur direktori kerja.

neon:~# mkdir -p /var/www/smarty/{templates,templates_c,cache,configs}
neon:~# chown -R salman:salman /var/www/smarty/
neon:~# chown www-data:www-data /var/www/smarty/{templates_c,cache}

Download file Smarty dari URI yang telah ditunjukkan di atas. Kemudian uraikan file tersebut.

salman@neon:~$ tar -xzvf Smarty-2.6.26.tar.gz
salman@neon:~$ mv Smarty-2.6.26/libs/ /var/www/smarty

Struktur direktori akan nampak seperti ini,

/var/www/smarty
|-- cache
|-- configs
|-- libs
|   |-- internals
|   `-- plugins
|-- templates
`-- templates_c

Kita akan membuat sebuah halaman sederhana untuk menampilkan pesan yang sangat terkenal, “Hello World”. Siapkan template untuk ditampilkan.

salman@neon:~$ cd /var/www/smarty
salman@neon:/var/www/smarty$ vi templates/index.tpl

Isi file adalah,

<HTML>
<BODY>
{$isi}
</BODY>
</HTML>

Setelah itu siapkan skrip yang akan menggunakan template ini.

salman@neon:/var/www/smarty$ vi index.php

Isi file,

<?php
require libs/Smarty.class.php;

$smarty = new Smarty;
$smarty->assign("isi","Hello World.");
$smarty->display(index.tpl);
?>

Setelah itu akses file index.php menggunakan web browser. Isikan pada address bar browser. http://localhost/smarty/.

E.O.T

Info Sekilas Filesystem FAT32

October 22, 2009 by NWH  
Filed under Alumni Aggregator

Berikut info yang saya dapat dari url:

Berikut ringkasannya:

  • Ukuran kluster tidak bisa lebih besar atau sama dengan 64KB. Beberapa program akan sangat bermasalah dengan ukuran lebih besar dari batas ini.
  • Jumlah kluster maksimum adalah 268,435,445. Jika tiap kluster maksimal memuat 32KB maka jumlah seluruhnya adalah sekitar 8TB.
  • Boot sector menggunakan 32bit untuk menyimpan jumlah sektor, sehingga ukuran maksimal adalah 2TB pada harddisk dengan ukuran 512Byte/sektor. (2^32*512Byte = 2TB).
  • Tools di Windows XP/Windows 2K tidak mampu membuat fileystem FAT32 dengan ukuran lebih besar dari 32GB. Akan tetapi bisa mengakses filesystem lebih besar dari itu.
  • Kita tidak bisa membuat file dengan ukuran lebih besar dari 4GB-1Byte dalam sebuah partisi FAT32.

Bila mempunyai harddisk eksternal dengan ukuran besar (>60GB) dan ingin menggunakan hanya satu partisi dengan filesystem FAT32. Gunakan tools di sistem operasi GNU/Linux.

neon:~# mkfs.vfat -n RAISING -c -v -m bootmsg.txt /dev/sdb1
mkfs.vfat 3.0.1 (23 Nov 2008)
Auto-selecting FAT32 for large filesystem
/dev/sdb1 has 255 heads and 63 sectors per track,
logical sector size is 512,
using 0xf8 media descriptor, with 156296322 sectors;
file system has 2 32-bit FATs and 32 sectors per cluster.
FAT size is 38140 sectors, and provides 4881875 clusters.
Volume ID is 65e9d871, volume label RAISING    .

Hasil filesystem yang dibuat dengan perintah di atas. Ukuran klusternya 32*512Byte=16kByte.

Selesai

E.O.T

Update Pidgin dari Repository Backports

October 11, 2009 by NWH  
Filed under Alumni Aggregator

Akhir-akhir ini terdapat masalah koneksi antara messenger klien pidgin versi 2.4 dengan server messenger yahoo. Awal-awal terjadi masalah bisa diatasi dengan mengganti server messenger. Akan tetapi dalam seminggu ini server-server alternatif ternyata juga sudah diupdate oleh yahoo, sehingga pidgin tidak bisa lagi digunakan untuk yahoo messenger

Solusi satu-satunya adalah mengupdate pidgin dengan versi terbaru. Berhubung paket standard distribusi Debian Lenny adalah pidgin versi 2.4, maka perlu dicari server alternatif lain yang menyediakan versi yang lebih baru yaitu versi 2.6.

Berdasarkan informasi dari milis tanya-jawab@linux.or.id yang diposting oleh nugrahadi@gmail.com, paket-paket backport bisa didapatkan dari alamat http://repo.ugm.ac.id/debian-backports.

Ikuti perintah-perintah berikut untuk menginstall pidgin versi 2.6.

neon:~# echo "deb http://repo.ugm.ac.id/debian-backports \
lenny-backports main contrib non-free" >> /etc/apt/sources.list
neon:~# wget http://repo.ugm.ac.id/debian-backports/archive.key
neon:~# apt-key add archive.key
neon:~# apt-get update
neon:~# apt-get -t lenny-backports install pidgin

Selesai. Jalankan pidgin kembali.

E.O.T

Next Page »