Archive for the ‘linux’ Category
Wednesday, November 19th, 2008
DHCP Server dibuat supaya kita gak usah setting ulang IP Address manual setiap melakukan koneksi ke jaringan yang berbeda-beda, jadinya server yang ngasih IP Address, client hanya tau beres aja.
|
sudo apt-get install dhcp3-server |
Biasanya setelah instalasi akan menampilkan pesan error, ini wajar karena kita blon konfigurasi DHCP Server-nya.
Misalnya setting yang ingin digunakan seperti ini:
|
DNS Server : 192.168.81.81
Range : 192.168.81.101 - 192.168.81.150
Network : 192.168.81.0
Subnet : 255.255.255.0
Broadcast : 192.168.81.255 |
Masuk ke konfigurasi DHCP:
|
sudo nano /etc/dhcp3/dhcpd.conf |
Terus hapus isinya, ganti dengan konfigurasi seperti ini:
|
ddns-update-style none;
option domain-name-servers 192.168.81.81;
default-lease-time 86400;
max-lease-time 604800;
authoritative;
subnet 192.168.81.0 netmask 255.255.255.0 {
range 192.168.81.101 192.168.81.150;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.81.255;
option routers 192.168.81.81;
} |
Trus restart DHCP Server:
|
sudo /etc/init.d/dhcp3-server restart |
Dah, tinggal sambungkan komputer-komputer lain ke jaringan kita, semua akan mendapatkan IP Address masing-masing dan sudah disetting sampe ke DNS Servernya secara otomatis.
Posted in linux, myself | 2 Comments »
Monday, November 17th, 2008
DNS itu singkatan dari Domain Name Server, jadi yang kita inget bukan alamat IP Address dari setiap komputer tapi nama yang diberikan untuk IP Address tersebut. Misalnya seperti www.yahoo.com atau www.google.com atau juga gadjah.net.
Kenapa? Karena manusia kesulitan kalo harus mengingat banyak nomor sekaligus, jadi dibuat sebuah program namanya DNS Server supaya manusia tinggal inget nama websitenya doang, tugasnya DNS Server untuk nerjemahin nama menjadi nomor.
Tapi sebelum dia bisa nerjemahin, kita harus install dan konfigurasi dulu DNS Server.
Install DNS Server:
|
sudo apt-get install bind9 |
Konfigurasi DNS Server:
Asumsi kita adalah:
|
IP Address DNS Server Statis
IP Address DNS Server : 192.168.81.81
Nama Website : http://www.ardiansah.co.cc
Network : 192.168.81.0
Gateway : 192.168.81.81
Nama komputer : ubuntu |
Yang pertama di konfigurasi adalah file named.conf.local:
|
sudo nano /etc/bind/named.conf.local |
Buat konfigurasi seperti ini:
|
# zona untuk domain -> ip address
zone "ardiansah.co.cc" {
type master;
file "/etc/bind/zones/ardiansah.co.cc.db";
};
# zona untuk ip address -> domain
zone "81.168.192.in-addr.arpa" {
type master;
file "/etc/bind/zones/rev.81.168.192.in-addr.arpa";
}; |
Untuk mengakses DNS Server lain yang isinya lebih lengkap:
|
sudo nano /etc/bind/named.conf.options |
Trus isikan IP Address atau Domain DNS Server lain yang lebih lengkap, misalnya:
|
forwarders {
123.456.789.012;
}; |
Supaya DNS Server yang udah dibuat juga bisa mengakses dirinya sendiri:
|
sudo nano /etc/resolv.conf |
Trus isi dirinya sendiri:
|
search ardiansah.co.cc.
nameserver 192.168.81.81 |
Akhirnya adalah kita buat zona untuk DNS Server, dengan urutan sebagai berikut:
|
sudo mkdir /etc/bind/zones
sudo nano /etc/bind/zones/ardiansah.co.cc.db |
Trus isikan perintah sebagai berikut:
|
$TTL 1500
@ IN SOA ubuntu.ardiansah.co.cc. root (
2007062703
28800
3600
604800
38400
);
ardiansah.co.cc. IN NS ubuntu.ardiansah.co.cc.
ubuntu IN A 192.168.81.81
www IN CNAME ubuntu |
Kebalikannya adalah:
|
sudo nano /etc/bind/zones/rev.81.168.192.in-addr.arpa |
Isikan perintah sebagai berikut:
|
$TTL 1500
@ IN SOA ubuntu.ardiansah.co.cc. root (
2007062703
28800
3600
604800
38400
);
IN NS ubuntu.ardiansah.co.cc.
81 IN PTR ubuntu.ardiansah.co.cc. |
Akhirnya restart DNS Server:
|
sudo /etc/init.d/bind9 restart |
Udah deh, sekarang kita sudah punya DNS Server aktif. Tinggal buat DHCP Server aja lanjutan berikutnya.
Posted in linux, myself | 9 Comments »
Friday, November 14th, 2008
Biasanya ada dua versi konfigurasi IP Address,
- Statis, setiap komputer punya IP Address masing-masing yang diset langsung di komputer.
- Dinamis (dhcp), setiap komputer dapet IP Address dari Server
Tempat konfigurasi IP Address:
|
sudo nano /etc/network/interfaces |
Versi dinamis dulu yang paling gampang:
Konfigurasinya jadi gini
|
# loopback, kalo gak salah, loopback itu 127.0.0.1 atau localhost
auto lo
iface lo inet loopback
# IP Address versi DHCP
auto eth0
iface eth0 inet dhcp |
Kalo Versi statis, misalnya pengen konfigurasi seperti ini:
|
IP Address : 192.168.81.81
Netmask : 255.255.255.0
Gateway : 192.168.81.81 |
hasilnya jadi kayak gini:
|
# loopback
auto lo
iface lo inet loopback
# IP Address versi statis
auto eth0
iface eth0 inet static
address 192.168.81.81
netmask 255.255.255.0
network 192.168.81.0
broadcast 192.168.81.255
gateway 192.168.81.81 |
Terus restart network:
|
sudo /etc/init.d/networking restart |
Posted in linux | 3 Comments »
Wednesday, November 12th, 2008
Kesulitan dari Ubuntu Server adalah karena dia berbasis Console, jadinya belum memiliki support automount untuk USB Flash Disk. Jadinya setiap flash disk dikoneksikan ya harus menggunakan perintah secara manual menggunakan Console.
Perintahnya sebagai berikut untuk mounting:
- Mengetahui dimana alamat dari device kita
Biasanya device yang kita inginkan ada di daftar terbawah. Yang didapatkan di Server kantorku adalah “/dev/sdc1″, mungkin akan berbeda tergantung berapa device yang tersambung di server kita.
- Membuat Direktori Mount
|
sudo mkdir /mnt/eksternal |
Kita pake direktori bernama eksternal yang dibuat dalam direktori /mnt
- Mounting device
Tipe File System FAT32:
|
sudo mount -t vfat /dev/sdc1 /mnt/eksternal -o uid=1000,gid=100,utf8,dmask=027,fmask=137 |
Tipe File System NTFS (ntfs-3g harus sudah terinstall di Ubuntu Server) :
|
sudo mount -t ntfs-3g /dev/sdc1 /mnt/eksternal |
- Umounting device
ATAU
Posted in linux, myself | 2 Comments »
Wednesday, November 5th, 2008
Kita bahas Apache Ant sekarang, guna dari Apache Ant adalah untuk otomatisasi proses kompilasi dan eksekusi program yang dibuat pake Java.
Ant menggunakan perintah XML untuk membuat proses konfigurasinya. Secara default nama file XML-nya adalah build.xml dan konfigurasi folder di build.properties.
Dalam sebuah file build.xml berisi:
- Folder tempat menyimpan source code, biasanya bernama “src”
- Folder tempat menyimpan hasil kompilasi, biasanya bernama “classes”
- Lokasi pustaka tambahan
- Classpath
- Pekerjaan tambahan lain, misalnya eksekusi file
Sedangkan build.properties berisi:
- Konfigurasi folder yang akan diakses
- Daftar variabel yang digunakan dalam build.xml
build.properties disarankan terpisah dari build.xml untuk mempermudah penggunaan.
Misalnya:
File build.properties:
|
folder.project=
folder.source=${folder.project}\src
folder.kompilasi=${folder.project}\classes |
File build.xml:
|
<project name="aplikasi balik" default="kompile">
<description>
Aplikasi untuk membalikkan kata atau kalimat.
</description>
<property file="build.properties" />
<target name="kompile">
<javac srcdir="${folder.source}"
destdir="${folder.kompilasi}" />
</target>
<target name="eksekusi" depends="kompile">
<java classpath="${folder.kompilasi}"
classname="Simulasi" />
</target>
</project> |
Kalo kita mengeksekusi Ant dengan perintah seperti ini:
Maka otomatis Ant akan mengeksekusi perintah “kompile” sebelum mengeksekusi perintah “eksekusi”.
Posted in apache, java, linux, windows | No Comments »
Monday, November 3rd, 2008
Untuk memecahkan permasalahan yang terjadi saat menggunakan beberapa pustaka Java yang dianggap invalid ternyata sangat mudah, dengan cara membuat class Java baru untuk membungkus class yang sudah ada.
Misalnya class String yang method length-nya dianggap invalid oleh Resin.
Kita buat class Java baru seperti ini:
|
package gadjah;
import java.lang.String;
public class StringKu {
private String value;
public StringKu(String value) {
this.value = value;
}
public int length() {
return value.length();
}
} |
Masih dengan asumsi bahwa Resin disimpen di D:\Java\resin-3.1.7a\, maka file class Java di atas di-copy ke direktori
|
D:\Java\resin-3.1.7a\webapps\ROOT\WEB-INF\classes\gadjah\ |
Trus ditest menggunakan file PHP, misalnya seperti ini:
|
<?php
import gadjah.StringKu;
$nama = new StringKu('irfan ardiansah');
$pjg = $nama->length();
echo $pjg;
?> |
Seharusnya sekarang setelah file PHP dieksekusi maka akan tampil jumlah huruf dari kata yang diinput. Mudah kan.
Jadi sepertinya untuk beberapa class dan method blon didukung oleh Resin, sehingga harus pake cara muter-muter untuk mendapatkan hasil yang diinginkan. Tapi cara alternatif biasanya akan membuat kita jadi tambah cerdas 
Posted in apache, java, linux, php, windows | No Comments »
Friday, October 31st, 2008
Setelah tau cara konfigurasi Resin, sekarang kita coba buat program pake PHP dulu, misal disimpan dengan nama file info.php
Dengan asumsi bahwa direktori Resin ada di D:\Java\resin-3.1.7a\, kita simpan file info.php di direktori
|
D:\Java\resin-3.1.7a\webapps\ROOT\ |
Trus setelah Resin Server dijalankan, coba akses http://localhost:8080/info.php, pasti akan muncul informasi server yang digunakan. Walau isinya gak sama dengan punya Apache.
Sekarang kita coba gabungkan PHP dan Java, kita akan buat program PHP yang manggil pustaka Java yang dimisalkan disimpan dengan nama file coba.php
|
<?php
import java.util.Random;
$acak = new Random();
$angka = $acak->nextInt(10);
echo $angka;
?> |
Coba jalankan, pasti gak ada error, padahal kita pake pustaka Random milik Java.
Tapi ternyata Resin masih memiliki bug, beberapa pustaka Java tidak dapat dikenali, misalnya
|
<?php
import java.lang.String;
$nama = new String('irfan ardiansah');
echo $nama;
echo '<br />';
echo '<br />';
$pjg = $nama->length();
echo $pjg;
?> |
tulisan irfan ardiansah akan muncul dilayar, tapi method length() milik Java akan menyebabkan program menjadi error, tampilannya seperti ini
|
irfan ardiansah
/D:/Java/resin-3.1.7a/webapps/ROOT/MyBean.php:10: Fatal Error: 'length' is an unknown method of binary(15) "irfan ardiansah". |
Seharusnya yang tampil di layar adalah 15. Payahnya di forum-nya dah bertanya tapi gak ada yang ngejawab. Akhirnya nemuin jawabannya sendiri yang ternyata sederhana banget.
Posted in apache, java, linux, php, windows | No Comments »
Wednesday, October 29th, 2008
Resin sih sebuah Application Server untuk Java seperti Apache Tomcat atau Glassfish, jadi digunakan untuk buat program untuk JavaEE.
Keunggulan Resin dibanding yang laen adalah dia sudah support juga bahasa pemrograman PHP, jadi kita bisa kombinasikan Java dan PHP
sekaligus.
Kok bisa ya, ternyata karena dalam Resin ada satu pustaka yang namanya Quercus, Quercus ini yang menerjemahkan perintah PHP menjadi perintah Java dan sebaliknya.
Kalo gak mau pake Resin, pengennya pake Tomcat atau Glassfish ternyata bisa aja, kita tinggal download pustaka Quercus-nya aja tanpa perlu download Resin.
Enaknya Resin adalah karena dia berbasis Java maka gak perlu diinstall, hanya tinggal diekstrak dan kita tinggal setting Environment Variables-nya.
Resin memerlukan beberapa setting, diantaranya CLASSPATH, JAVA_HOME dan RESIN_HOME, maka kita buat sebuah file namanya setpath.bat.
Asumsi yang digunakan adalah Windows, Java dan Resin diinstall di D:\Java
|
SET CLASSPATH=D:\Java\JDK1.5.0_06\lib\tools.jar;.
SET JAVA_HOME=D:\Java\JDK1.5.0_06
SET RESIN_HOME=D:\Java\resin-3.1.7a
java -jar resin.jar |
Save dengan nama setpath.bat trus simpan di direktori lib milik Resin, kebetulan ada di D:\Java\resin-3.1.7a\lib\
Eksekusi setpath.bat, otomatis juga Resin server langsung jalan. Tinggal buat program deh.
Posted in apache, java, linux, php, windows | 3 Comments »
Monday, October 27th, 2008
Java punya beberapa varian, misal JavaSE untuk pemrograman Desktop dan Applet, JavaEE untuk pemrograman Web dan aplikasi berbasis Enterprise atau JavaME untuk pemrograman berbasis perangkat bergerak atau yang lebih dikenal di Indonesia dengan nama hape.
Tapi ternyata Java juga disupport oleh beberapa bahasa pemrograman lain, jadi kita bisa bikin program java pake bahasa tersebut, atau sebaliknya kita bikin program untuk bahasa tersebut dengan menggunakan Java. Jadi seperti peribahasa "Sekali Dayung Dua sampai Tiga Pulau Terlampaui".
Digunakan untuk yang ingin belajar banyak bahasa pemrograman tapi gak mau nginstal banyak software, karena semua tools yang dipake semuanya dibuat menjadi pustaka Java berekstensi jar, jadi gak perlu install, hanya tinggal ekstrak aja.
1. GWT (Google Web Toolkit)
GWT dipake untuk membuat aplikasi web berbasis AJAX tapi bahasa pemrograman yang kita pakai adalah Java, dibuat oleh team google. Tampilan yang dihasilkan dari aplikasi khas banget dengan ciri google.
2. Jython
Kombinasi antara Java dan Python, Bisa buat aplikasi Python menggunakan Java atau sebaliknya buat aplikasi Java menggunakan Python.
3. JRuby
Kombinasi antara Java dan Ruby. Punya support untuk Ruby on Rails, dengan nama JRuby on Rails. Untuk yang udah denger sebuah bahasa scripting yang namanya ruby, tapi blon nyobain sampe saat ini.
4. QTJambi
Yup, namanya Jambi seperti nama sebuah provinsi di Sumatera. Mungkin idenya dicomot dari Java yang nama sebuah pulau di negara kita juga :-P. QT adalah sebuah windows framework berbasis C++, tapi digabungkan dengan Java sehingga kita bisa pake library QT di bahasa pemrograman Java.
5. ZK
Dengan ZK kita bisa membuat aplikasi web berbasis AJAX untuk JavaEE tanpa perlu ngerti bagaimana sintaks dari AJAX itu sendiri. Hanya tinggal memanggil tag-tag yang perintahnya mirip dengan tag HTML. Tinggal gabungin dengan Servlet atau JSP.
6. Quercus
Kalo yang ini bukan sebuah bahasa pemrograman, tapi sebuah web server yang sanggup menangani PHP dan Servlet. Jadi kita buat program tetep pake PHP, oleh server ini akan diterjemahkan menjadi pustaka Java. Sehingga kita bisa mengimport pustaka Java di source PHP.
Baru 6 aja yang ke-ulik, itu juga masih dasarnya blon sampe pemrograman kompleks. Kayak ada waktu aja untuk mendalami semuanya :-P. Yang penting gak ketinggalan teknologi dulu deh.
Posted in java, linux, myself, windows | No Comments »
Wednesday, October 8th, 2008
Masih menggunakan file .nanorc, kita coba mengaktifkan Syntax Highlighting pada editor teks Nano, karena Nano sebenernya dah support untuk pewarnaan tapi secara default tidak ada konfigurasinya. Jadi konfigurasinya harus kita tambahin sendiri.
Untuk menambahkan pewarnaan pada Nano sebenernya harus udah ngerti dulu penggunaan regular expression, tapi di dunia maya sudah tersedia beberapa versi syntax untuk bahasa pemrograman populer.
Ini dicomot dari beberapa situs web.
PHP
|
syntax "php" "\.php[2345s~]?$"
color brightblue "(.*)\("
#Changed this one to a character class instead of "=*|=*|<|>|!":
color blue "\$[a-zA-Z_0-9$]*|[=!<>]"
color green "(var|class|function|echo|case|break|default|exit|switch|if|else|elseif|@|while)\s"
color green "[.,{}();]"
color red "('.*')|(\".*\")"
#Forces regex to stop matching at EOL.
#Sometimes the dot . matches newline as well so this is more portable:
color brightyellow "(#.*|//.*)$"
color brightyellow start="/\*" end="\*/"
#not all php open tags are "long"
#I wanted to write (<\?(?!xml)(php)?|\?>) but the parser didn't support it.
color brightblue "(<\?(php)?|\?>)"
#unfortunately, this also makes the php tags themselves white.
#But I'll live anyway
color white start="\?>" end="<\?(php)?" |
PYTHON
|
syntax "python" "\.py$"
color brightblue "def [a-zA-Z_0-9]+"
color brightcyan "\<(and|assert|break|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|map|not|or|pass|print|raise|return|try|while)\>"
color brightgreen "([\"']).*?[^\\]\1"
color brightgreen start="\"\"\"" end="\"\"\""
color brightred "#.*$" |
HTML
|
syntax "HTML" "\.html$"
color blue start="<" end=">"
color red "&[^; ]*;" |
C/C++
|
syntax "c-file" "\.(c|C|cc|cpp|h|H|hh|hpp)$"
color red "\<[A-Z_]{2,}\>"
color green "\<(float|double|bool|char|int|short|long|sizeof|enum|void|static|const|struct|union|typedef|extern|signed|unsigned|inline)\>"
color green "\<(class|printf|namespace|template|public|protected|private|typename|this|friend|virtual|using|mutable|volatile|register|explicit)\>"
color brightyellow "\<(for|if|while|do|else|case|default|switch|goto|continue|break|return)\>"
color brightyellow "\<(try|throw|catch|operator|new|delete)\>"
color brightcyan "^ *# *(define|undef|include|ifn?def|endif|elif|else|if)"
color brightmagenta "'([^\]|(\\['abfnrtv\\]))'" "'\\(([0-7][0-7]?)|([0-3][0-7][0-7]))'" "'\\x[0-9A-Fa-f][0-9A-Fa-f]?'" |
JAVA
|
syntax "Java source" "\.java$"
color green "\<(boolean|byte|char|double|float|int|long|new|short|this|transient|void)\>"
color red "\<(break|case|catch|continue|default|do|else|finally|for|if|return|switch|throw|try|while)\>"
color cyan "\<(abstract|class|extends|final|implements|import|instanceof|interface|native|package|private|protected|public|static|strictfp|super|synchronized|throws|volatile)\>"
color red ""[^\"]*""
color yellow "\<(true|false|null)\>"
color blue "//.*"
color blue start="/\*" end="\*/"
color brightblue start="/\*\*" end="\*/"
color brightgreen,green " +$" |
Shell Script
|
syntax "shellscript" "\.sh$"
color brightgreen "^[a-zA-Z_0-9]+\(\)"
color green "\<(case|do|done|elif|else|esac|exit|fi|for|function|if|in|local|read|return|select|shift|then|time|until|while)\>"
color green "(\{|\}|\(|\)|\;|\]|\[|`|\\|\$|<|>|!|=|&|\|)"
color green "-(e|d|f|r|g|u|w|x|L)\>"
color green "-(eq|ne|gt|lt|ge|le|s|n|z)\>"
color brightblue "\<make\>" "\<(cat|cd|chmod|chown|cp|echo|env|export|grep|install|let|ln|mkdir|mv|rm|sed|set|tar|touch|umask|unset)\>"
color brightred "\$\{?[a-zA-Z_0-9]+\}?"
color yellow "#.*$"
color brightyellow ""(\\.|[^\"])*"" "'(\\.|[^'])*'" |
Pascal
|
syntax "Delphi Source" "\.pas$"
color brightcyan "\<(boolean|byte|char|double|float|integer|long|new|short|this|transient|void)\>"
color brightred "\<(break|case|catch|continue|default|do|else|finally|for|if|then|return|switch|throw|try|while|function)\>"
color cyan "\<(abstract|unit|class|extends|final|implements|import|instanceof|interface|native|package|private|protected|public|static|strictfp|super|$color brightyellow "\<(until|repeat|var|uses|type|begin|end|const)\>"
color magenta "\<(true|false|null|procedure)\>"
color brightblue "//.*"
color brightblue start="\{" end="\}" |
Sumber:
http://www.linuxhowtos.org/System/
http://ubuntuforums.org/forumdisplay.php?f=100
http://forums.gentoo.org/viewforum-f-12.html
Technorati : tools, tutorial
Del.icio.us : tools, tutorial
Posted in linux | No Comments »