Friday, August 17, 2012

Koneksi MySQL Dengan Python dan CherryPy

Salah satu kelebihan Python adalah dukungannya terhadap database, Python sudah mendukung hampir semua database populer yang banyak digunakan saat ini bahkan Python sudah mendukung ADO dan ODBC.

Beberapa waktu yang lalu saya membaca sebuah pertanyaan pada salah satu thread milis ID-Python yang berkaitan dengan koneksi database dengan Python (terutama menggunakan web framework Django).

Sebenarnya sudah cukup lama saya berniat memposting tulisan yang berkaitan dengan koneksi database MySQL dengan Python. Untuk menghubungkan Python dengan MySQL dibutuhkan modul Python yang bernama MySQLdb (mysql-python) yang dapat diunduh di http://sourceforge.net/projects/mysql-python.

Bagi Anda pengguna Linux Slackware, untuk mempermudah proses installasi dapat menggunakan script SlackBuild yang bisa diunduh di http://slackbuilds.org/repository/13.37/development/MySQL-python/.

Python dan MySQL

Disini saya tidak akan menjelaskan cara penginstallasian modul MySQLdb dan MySQL server (silahkan membaca dokumentasi masing-masing item tersebut). Setelah modul MySQLdb terinstall, mari kita lakukan percobaan dengan menggunakan konsol Python.

Buka konsol Python, bila menggunakan windows silahkan gunakan IDLE (Python GUI) atau bila Anda menggunakan Linux ketik "python" pada konsol Linux hingga tampil konsol Python yang ditandai dengan prompt ">>>"

Wednesday, August 15, 2012

Templating CherryPy Dengan Jinja2

Bila ditulisan sebelumnya membahas tentang setting web server dan installasi CherryPy, sekarang saatnya membahas penggunaan template pada CherryPy dengan menggunakan Jinja2. Saya menggunakan Jinja karena formatnya sangat familiar dengan format template pada Django dan templating system pada Appengine.

Sebenarnya saya juga pernah menulis tentang penggunaan templating system pada CherryPy hanya saja ditulisan tersebut saya melakukan percobaan menggunakan fasilitas Google Appengine dengan contoh menggunakan templating system default milik Appengine.

Dengan keterbukaan framework CherryPy sebenarnya kita bisa menggunakan templating system yang lain selain Jinja, antara lain ZPT, Cheetah, Genshi dan lain-lain coba cek dokumentasi CherryPy yang berkaitan dengan templating pada CherryPy.

Installasi Jinja2

Silahkan unduh Jinja2 di http://pypi.python.org/pypi/Jinja2/. Sebelum Anda melakukan installasi Jinja pastikan di server Anda sudah terinstall setuptools, bila belum silahkan unduh di http://pypi.python.org/pypi/setuptools/. Berhubung saya menggunakan Slackware, untuk mempermudah proses instalasi saya menggunakan script SlackBuild yang bisa diunduh di http://slackbuilds.org/repository/13.37/python/pysetuptools/.

Install Jinja dengan perintah berikut :

# python setup.py install

Untuk mengetahui cara installasi, setting dan penggunaan API Jinja selengkapnya silahkan baca dokumentasinya di http://jinja.pocoo.org/docs/

Sunday, August 12, 2012

Setting mod_wsgi dan CherryPy Dengan Apache

Apa itu mod_wsgi ? menurut para pengembangnya, mod_wsgi adalah sebuah modul sederhana yang diimplemetasikan sebagai modul Apache web server yang berfungsi untuk menangani aplikasi web berbasis Python yang mendukung antarmuka Python WSGI.

Apa itu CherryPy ? CherryPy adalah HTTP framework Python yang berorientasi object, dengan CherryPy kita dapat membuat berbagai aplikasi web berbasis Python bahkan dengan CherryPy kita juga dapat mengembangkan web framework berbasis Python. Salah satu contoh web framework Python populer yang dikembangkan menggunakan CherryPy adalah TurboGears.
  
Installasi  CherryPy

Unduh CherryPy (versi terbaru saat tulisan ini dibuat adalah versi 3.2.2) di http://download.cherrypy.org/cherrypy/3.2.2/, kemudian ekstrak dan masuklah ke folder tempat kita mengekstrak CherryPy tersebut kemudian berikan perintah berikut untuk menginstall CherryPy yang sudah kita unduh. 

# python setup.py install 

Installasi mod_wsgi

Disini saya menggunakan web server Apache berbasis Slackware 13.37. Untuk dapat menggunakan mod_wsgi kita harus terlebih dahulu menginstall modul ini yang source-nya bisa diunduh di http://code.google.com/p/modwsgi/.

Monday, August 6, 2012

Mail Server Postfix, Dovecot dan SSL Berbasis Slackware

Beberapa hari terakhir ini sebenarnya cukup melelahkan juga, dapat project membangun mail server hingga memaksa saya sibuk Googling sana-sini hanya untuk mencari artikel dan forum yang berkaitan dengan mail server berbasis slackware dengan Postfix, Dovecot dengan autentifikasi SSL.

Cukup sulit juga, apalagi bila saya perhatikan sangat sedikit sekali artikel yang membahas mail server Slackware yang saya temui karena sebagian besar artikel dan forum yang ada kebanyakan membahas masalah mail server berbasis Debian, Ubuntu dan Redhat.

Terlebih lagi, berdasarkan beberapa artikel yang saya baca Slackware tidak mendukung PAM. Jadi untuk menggunakan SSL pada mail server yang akan kita buat harus menginstall Cyrus terlebih dahulu.

Akhirnya setelah oprek sana-sini dengan arahan artikel dan dokumentasi berikut :

https://www.zulius.com/how-to/set-up-postfix-with-a-remote-smtp-relay-host/
http://www.postfix.org/SASL_README.html
http://wiki.dovecot.org/HowTo/PostfixAndDovecotSASL
http://wiki1.dovecot.org/HowTo/DovecotLDAPostfixAdminMySQL
http://library.linode.com/email/postfix/dovecot-mysql-debian-6-squeeze 

Dan beruntung, saat ini Dovecot sudah mendukung SSL hingga saya tidak perlu lagi menggunakan Cyrus untuk dapat membuat mail server Slackware dengan SSL.

Saturday, April 21, 2012

Pemburu Sinyal

Judul di atas terdengar lebay bukan, hehehe.... maklum saja sejak pindahan rumah dua minggu terakhir ini saya memang lagi kesulitan bandwith untuk koneksi internet saya. Maklum saja saat ini saya pindah ke daerah pinggirian kota Jakarta yang jaraknya cukup jauh, bagi sebagian orang daerah tempat tinggal saya ini disebut tempat jin buang anak atau lebih lucu lagi ada kelakar salah seorang rekan bilang ' kalo ke rumah elo sepertinya harus bawa topi, sebab kalo gak nanti kepala ke patok ular' (tempat saya tinggal memang masih banyak lahan-lahan kosong dan masih rimbun beda dengan Jakarta).

Bicara mengenai 'kesulitan bandwith' di atas, saat ini saya lagi semangat-semangatnya mencari provider wireless dengan sinyal mumpuni. Tapi setelah tanya tetangga kiri-kanan, ternyata hampir semua sinyal telekomunikasi baik GSM maupun CDMA di daerah perumahan saya ini diterima sangat lemah. Salah satu penyebabnya adalah lokasi geografis perumahan tempat tinggal saya yang berada di cekungan (letak perumahan lebih rendah dari perumahan penduduk perkampungan sekitar dan jalan raya diluar komplek), kasarnya seperti tinggal di dalam baskom hehehe...

Saya sudah mencoba menggunakan GSM modem menggunakan XL bahkan Flash yang katanya memiliki jaringan 3G terbaik masih tidak dapat diterima dengan baik disana (meskipun masih bisa menerima satu bar sinyal 3G) hingga koneksi putus nyambung terus.

Dari hasil Googling, katanya untuk daerah 'remote' seperti tempat saya tinggal paling cocok menggunakan koneksi CDMA. Tapi setelah 'bela-belain' membeli modem AHA dengan Evdonya ternyata juga masih lemot, memang sih dibandingkan menggunakan GSM koneksi CDMA ini jauh lebih stabil karena durasi DC-nya jauh lebih lama hehehehe....

Ada juga yang menganjurkan menggunakan antenna penguat sinyal, mulai dari lilitan kabel tembaga, menggunakan sendok sampai menggunakan antenna beneran seperti Yagi (bisa beli atau bikin sendiri). Tapi sepertinya ribet juga, dari pada kelamaan jalur terakhir adalah menggunakan koneksi Speedy Telkom.

Meskipun sebenarnya saya juga ga terlalu percaya dengan koneksi yang satu ini tapi gapapalah, dari pada gak ada koneksi sama sekali. Terus terang saya sangat membutuhkan koneksi internet untuk mendukung rutinitas sehari-hari.