Wednesday, May 17, 2006

Installing Rails on Ubuntu Breezy

After I have Apache2, PHP, MySql, etc installed in my Ubuntu box,
I want to try to install Rails [Ruby] also.

So I do these as root (sudo su) :

apt-get install rails
apt-get install libapache2-mod-ruby
a2enmod rewrite



I don't want to touch my DocumentRoot at
/etc/apache2/sites-available/default

So, I add in the end of but within <VirtualHost></VirtualHost> :

Alias /rails/ "/usr/lib/cgi-bin/rails/"
<Directory "/usr/lib/cgi-bin/rails/">
     Options ExecCGI FollowSymLinks
     AddHandler cgi-script .cgi
     AllowOverride all
     Order allow,deny
     Allow from all
</Directory>


Then re-start the apache

/etc/init.d/apache2 force-reload

Then goto /usr/lib/cgi-bin

cd /usr/lib/cgi-bin
mkdir rails
cd rails


To test the rails at /usr/lib/cgi-bin/rails/

rails test
cd test
ruby script/generate controller pleasework
vi app/controllers/pleasework_controller.rb


Add something inside pleasework_controller.rb, to be look like this :
class PleaseworkController < ApplicationController
    def index
        render_text "rails ok juga"
    end
end


Edit public/.htaccess

vi public/.htaccess

Change the RewriteRule from

RewriteRule ^(.*)$ dispatch.cgi [QSA,L]

to this

RewriteRule ^(.*)$ /cgi-bin/rails/test/public/dispatch.cgi [QSA,L]


I don't know how to do this more elegant (damn ... another regex!!)

At last, we ready to shoot the URL :

http://myubuntubox/cgi-bin/rails/test/public/pleasework

Tags: , , , , ,

Tuesday, April 18, 2006

Setting autentikasi apache 2 dengan mysql di Ubuntu

Install :
apt-get install libapache2-mod-auth-mysql
 

Berikut ini spesifik untuk kasus saya yg mungkin berbeda dengan Anda.

Edit file /etc/apache2/sites-available/ssl-default

Kira-kira sebagian isinya seperti ini :

    Auth_MySQL_Info 192.168.2.4 "www-data" w
    Alias /svnadmin/ "/var/www/svnadmin/"
    <Directory "/var/www/svnadmin/">
        Options FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from 192.168.2.0/255.255.255.0
        AuthMYSQL on
        AuthMySQL_Authoritative on
        Auth_MySQL_DB http_auth
        Auth_MySQL_Empty_Passwords off
        AuthName "Subversion user admin"
        AuthType Basic
        require valid-user
    </Directory>

Posisi Auth_MySQL_Info harus diluar <Directory>.
 

 

Sunday, December 18, 2005

Setting dial-up CDMA Flexi dengan wvdial

File config :

[Dialer Defaults]
Modem = /dev/ttyUSB0
Baud = 230400
Init1 = ATZ
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
Init3 = at+crm=1;+cso=33
ISDN = 0
Modem Type = Analog Modem
Phone = #777
Username = telkomnet@flexi
Password = telkom

Monday, April 18, 2005

Koneksi GPRS menggunakan Bluetooth Nokia 9500 di Ubuntu

Sumber : http://www.teaparty.net/technotes/blue-gprs.html
Linux : Ubuntu 5.04
Bluetooth USB
GSM/GPRS : Matrix (Indosat)

Install bluez-utils.
Saya menggunakan bluetooth USB.
Colok BT ke PC.
Cek dmesg | grep USB kira-kira akan terlihat spt :
---------
usb 2-1: new full speed USB device using uhci_hcd and address 2
Bluetooth: HCI USB driver ver 2.7
---------

Nyalakan BT di Nokia.
Scan BT dari Linux


$ hcitool scan
Scanning ...
00:11:9F:EC:59:29 mh n9500


OK kita dpt BT Device address.
Sekarang kita cari channel Dial Up Network.


$ sdptool search DUN
Inquiring ...
Searching for DUN on 00:11:9F:EC:59:29 ...
Service Name: Dial-Up Networking
Service RecHandle: 0x1001c
Service Class ID List:
"Dialup Networking" (0x1103)
Protocol Descriptor List:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
Channel: 2
Language Base Attr List:
code_ISO639: 0x454e
encoding: 0x6a
base_offset: 0x100
Profile Descriptor List:
"Dialup Networking" (0x1103)
Version: 0x0100


Penting diperhatikan nomor Channel yg didapat ( 2 ).
Mungkin utk device lain berbeda.
Copy file /etc/ppp/peers/provider jadi gprs .
Edit file /etc/ppp/peers/gprs .

----------------------------------
noauth
connect "/usr/sbin/chat -v -f /etc/chatscripts/gprs"
defaultroute
/dev/rfcomm0
57600
debug
----------------------------------

Copy /etc/chatscripts/provider jadi gprs
Edit /etc/chatscripts/gprs

----------------------------------
TIMEOUT 5
ECHO ON
ABORT '\nBUSY\r'
ABORT '\nERROR\r'
ABORT '\nNO ANSWER\r'
ABORT '\nNO CARRIER\r'
ABORT '\nNO DIALTONE\r'
ABORT '\nRINGING\r\n\r\nRINGING\r'
'' \rAT
TIMEOUT 12
OK ATE1
OK 'AT+cgdcont=1,"IP","satelindogprs.com"'
OK ATD*99***1#
----------------------------------

Untuk menjalankan koneksi GPRS.
Jalankan :

$ rfcomm release 0

$ rfcomm bind 0 00:11:9F:EC:59:29 2

$ cat < /dev/rfcomm0

Isi PIN di Nokia 9500

Isi PIN di Linux.
Jika tdk muncul dialog PIN. Jalankan command 'xhost +' . Ini trik kasar. Lihat man xhost .
Ulangi cat < /dev/rfcomm0
Ketik Ctr+C untuk kembali ke prompt.


$ pppd call gprs


Happy surfing ...

Salam,
Mige

Tuesday, April 12, 2005

Setting vfat di /etc/fstab


here's the fstab entry:
/dev/hdb5 /mnt/win_d vfat umask=0,iocharset=iso8859-1,codepage=850,users 0 0

pretty sure it's the umask=0 that did it, as that essentially mounts the partition with file permissions of 777. The ,users entry is probably unecessary, but i'll leave it for the time being.

Monday, February 28, 2005

Koneksi Matrix GPRS dengan Sony Ericsson T610

Lihat di dmesg apakah kabel DCU-11 dikenal oleh Linux ?
Jika tdk ada device usb-serial lain biasanya kabel DCU-11 dikenal dgn driver dari Prolific 2303. (lihat juga blog saya mengenai usb-serial dn chipset Silicon Labs)
Kabel USB ini akan terhubung sebagai device serial, mungkin di /dev/ttyUSB0 (atau /dev/tts/USB0 ... cari yg mirip lah)

Cek AT+CGDCONT? dgn menggunakan minicom di handphone anda.
Sesuaikan "AT+CGDCONT=3,\"IP\",\"satelindogprs.com\",\"\",0,0"
dan "ATDT*99***3#
angka 3 disini harus sesuai dengan salah satu AT+CGDCONT?

/usr/sbin/pppd /dev/ttyUSB0 115200 connect '/usr/sbin/chat -v ABORT "NO CARRIER" "" "AT&F" OK "AT+CGDCONT=3,\"IP\",\"satelindogprs.com\",\"\",0,0" OK "ATDT*99***3#" CONNECT' disconnect '/usr/sbin/chat -v ABORT "BUSY" "" "\K" "" "+++ATH"' defaultroute noauth mtu 1500 mru 1500 noipdefault idle 600

Jgn lupa untuk men-edit file /etc/ppp/options
Disable LCP dengan cara beri tanda komen(#) dibagian lcp-*
Jika tdk koneksi anda akan selalu putus dlm waktu 120 detik.

regards,
mige
(This blog send with Matrix GPRS)

Thursday, February 24, 2005

USB to Serial dengan chipset dari Silicon Laboratories CP210x


Saya punya beberapa kabel data Sony Ericsson tapi pake chipset dari Silicon Laboratories (CP210x).
Di Debian : lsusb -v

Sayang sekali nggak ada drivernya untuk Linux.
Setelah cari2 di google ternyata, Silicon Laboratories di banned oleh komunitas Linux krn melanggar GPL ...
Nasib ...
Ada cara lain untuk meng-akali hal ini ?????
Ubuntu

Distro buat yang nge-fans berat sama :
- Debian
- Gtk/Gnome
- Python

Ini distro yang cool banget .... Ubuntu
bisa dilihat di ubuntulinux.org

Ada versi live CD dan install CD ...
Udah saya coba baik yg Warty (4.10) maupun yg Hoary (5.03) ...
Ok banget ... bisa dinstall di Notebook (mis Compaq 2100 )

Tuesday, April 27, 2004

Mandare 10.0 Community (Download Version) Continue 2 ...

Akhirnya vcd playernya jalan ...
Cek semua file config untuk semua playernya ...
Cari kira-kira yang isinya "default.vcd.device=" trus isi (punya saya) "/dev/hdd" jadi seperti begini :

default.vcd.device=/dev/hdd

Pokoknya lihat semua file config dari gmplayer, totem, xine dan cari yang mirip seperti diatas.

Happy search and fill ...


Monday, April 12, 2004

Mandare 10.0 Community (Download Version) Continue ...

Install gmplayer (GUInya mplayer) ... payah nggak bisa langsung jalan .... error di option -vo ...apa gichu (males setting-setting lagi) ...

Jadi masih pake mplayer untuk VCD player ... agak report tapi ok ...

Install xmlto (interfacenya xmlproc) dwonload dari rpmfind.net ... ok

Sekian dulu ...

Sunday, April 11, 2004

Mandare 10.0 Community (Download Version)

Install Mandare 10.0 Community (Download Version), maunya sih upgrade dari Mdk 9.2 tapi estimated time-nya sekitar 4 jam ...
Saya urungkan untuk melanjukan upgrade. Saya install fresh ... Semua mount point di-format kecuali /home ...
Instalasinya kira-kira 1 jam ...

Dari tampilannya sih nggak jauh beda dari Mdk 9.2 ....
Mungkin diawal-awal lebih banyak kecewanya .... boot nggak bisa dari CD1 tapi dari CD2 ... but it's ok.

Default browser internet untuk gnome ganti dari galeon jadi ephipany ... kurang tahu kenapa ...(agak kecewa)

Totem nggak bisa nyetel VCD ... uh... padahal di 9.2 langsung bisa. Xine juga nggak bisa ... arrgghhh ...
Jadinya pake mplayer untuk VCD ...(what ... command line again ..)

Sebagai developer saya butuh beberapa package :
- Anjuta saya install dari sourcenya ... semua dependency ada di Mdk 10.0 ... cool ...
- python + pygtk + wxpython ... ok
- docbook dtd + xsl ... ok

Ok deh ... gichu aja dulu ..

Monday, November 17, 2003

Testing mod_python

Testing mod_python


Rationale
Lagi iseng coba-coba CGI dengan python juga nyoba Zope. Hmmm mestinya ada yang bikin ASP atau PHP versi python.
Setelah googling dengan keyword 'python server pages' (inget ASP) trus 'python hypertext processor' (inget PHP) ... ada dua yang menarik :

-Spyce
Ini sepertinya PSP yang paling matang dilihat dari informasi dari web-site reference yang lain.
Setelah lihat-lihat di web-site-nya, IMHO spyce ini agak aneh.
Pertama adalah TAG yang digunakan untuk menyisipkan kode python. Tag itu adalah [[ dan ]].
Mungkin karena terbiasa menggunakan <% %> atau <? ?> (pokoknya di web itu harus pake < dan >) kalo nggak aneh aja.... Tapi dia kasih alasan kenapa pake tag [[ dan ]] (saya makin bego ... nggak ngerti). Mungkin akhirnya dia mengalah dengan menambahkan bahwa tag <% %> bisa juga dipakai.

Kedua ada karakter ketiga setelah tag misalnya [[. atau [[\ dan lain-lain dengan tujuan masing-masing.

Ketiga, hal yang sangat berseberangan dengan python .... spyce ini pakai kurung buka dan kurung tutup { ... } untuk block-statements (hah ... apa-apaan nih ). Contoh :
[[ for item in mylist : {
do_something(item)
and_more(item)
} ]]
Tapi ... mungkin bener juga ... agak susah untuk indent/dedent di dalam file dengan format HTML.
Mau nyoba instal .. tapi agak ragu. Cari alternatif yang lain dulu.

-mod_python
Pertama dibuat sejak jaman Netscape web server masih berjaya (belum ada Apache).
Kemudian dihibahkan ke Apache Software Fondation. Pada dasarnya fungsi mod_python adalah memungkinkan kita membuat "handler" Apache dengan bahasa Python. Implikasi lain adalah peningkatan kecepatan dibanding CGI dengan Python.
Saya sendiri lebih tertarik pada fitur PSP dari mod_python.
Sayang sekali fitur PSP ini baru masuk ke versi belakangan saja. Jadi saya pikir fitur PSPnya belum terlalu matang. Juga dilihat dari dokumentasinya juga sangat ringkas. Belum bisa dibandingkan dengan dokumentasi PHP, apalagi ASP.
Tapi pantes buat dicoba.... Mungkin alasannya karena mod_python dikembangkan oleh ASF, jadi saya lebih yakin bahwa mod_python ini bakal terus dikembangkan. Bukan berarti Spyce nggak berkelanjutan, tapi who knows ??


Instalasi
Cari-cari paket rpm mod_python untuk Mandrake di rpmfind.net . Tapi hanya ada versi yang lama yang belum termasuk fitur PSP.
Akhirnya download source mod_python Release 3.1.2b di www.modpython.org .
Extract source mod_python di home saya.

Seperti biasa baca README-nya dan dokumentasi instalasi. Requirementnya :
* Python 2.2.1 or later.
* Apache 2.0.40 or later.

Di Mandrake 9.2 sudah terinstal python 2.3 dan apache2 (versi 2.0.47) jadi mestinya tidak ada masalah.

Kita coba jalankan tanpa parameter,
$ ./configure

Ada yang nggak beres ... Muncul pesan : Bla bla bla apxs apa gichu .....

... Apaan tuh apxs ?
Untuk ./configure butuh argument --with-apxs=/path/ke/apxs
Cari di rpmdrake paket mana yang provide apxs... ternyata apache2-devel***.rpm . Install deh.

Jalankan
$ ./configure --with-apxs=/usr/sbin/apxs2 ........OK
$ make ..........OK

Kemudian ... butuh root untuk instal.
$ su
$ make install

OK nggak ada masalah .....

Kemudian kita perlu menambahkan beberapa directive di file konfigurasi Apache.
Saya buat file '80_mod_python.conf' di /etc/httpd/conf.d . Isinya : (di antara garis ----- )

-------------
LoadModule python_module modules/mod_python.so
-------------

Kemudian saya ikuti contoh testing mod_python di dokumentasi. Sayang sekali nggak jalan.
Kurang tahu apa yang kurang yaa ...??? (Udah bolak balik cek '.conf' file, restart Apache, cek permission, dll)

Cuek aja ... Trus baca dokumentasi lagi ...
Ada yang menarik di bagian Publisher.
Coba ganti isi '80_mod_python.conf' jadi berisi :

-------------
LoadModule python_module modules/mod_python.so

AddHandler mod_python .py
PythonHandler mod_python.publisher
-------------

Restart Apache,

$ /etc/init.d/httpd restart

Bikin directory mptest /var/www/html .
Bikin file 'form.html' di /var/www/html/mptest. Berisi :

-------------
<html>
Please provide feedback below:
<p>
<form action="form.py/email" method="POST">

Name: <input type="text" name="name"><br>
Email: <input type="text" name="email"><br>
Comment: <textarea name="comment" rows=4 cols=20></textarea><br>
<input type="submit">

</form>
</html>
-------------

Juga file 'form.py' di /var/www/html/mptest. Berisi :

-------------
WEBMASTER = "webmaster"   # webmaster e-mail

SMTP_SERVER = "localhost" # your SMTP server



def email(req, name, email, comment):



    # make sure the user provided all the parameters

    if not (name and email and comment):

        return "A required parameter is missing,                please go back and correct the error"





    # provide feedback to the user

    s = """<html>



From : %s<br>

                                                                                                                                           

Subject: feedback <br>

To: %s<br>



I have the following comment:<br>



%s<br>



Thank You,<br>



%s<br>





</html>""" % (email, WEBMASTER, comment, name)



    return s

-------------

Contoh aslinya di dokumentasi, skrip aslinya akan mengirim email ke WEBMASTER.
Saya ubah sedikit supaya nggak kirim email, jadi hanya print ke HTML.

Browse pake galeon ke http://localhost/mptest/form.html .
Isi text field ... dan klik submit .... Viola ... it's working !!! Duh ...senangnya ...

Baca-baca lagi bagian PSP dan directive .psp .
File '80_mod_python.conf' ganti lagi :

--------------
LoadModule python_module modules/mod_python.so

AddHandler mod_python .psp
PythonHandler mod_python.psp

PythonDebug On

--------------

Restart Apache,

$ /etc/init.d/httpd restart

Bikin file mptime.psp di /var/www/html :

-------------
<html>
<%
import time
%>
Hello world, the time is: <%=time.strftime("%Y-%m-%d, %H:%M:%S")%>
</html>
-------------

Browse http://localhost/mptime.psp ...
Sekali lagi ..... Sukses .....

(sebenarnya nggak langsung sukses..... tapi hanya masalah indent di bagian 'import time')

OK deh .... sampe sini dulu yaa ...