rioastamal.net

Just things inside my head…

Archive for July, 2008

Tips: Menghilangkan Iklan pada Website

Posted by rio On July - 7 - 2008

Teknik pada artikel ini juga dapat diimplementasikan dengan menginstall DNS Server pada komputer anda.

Pernahkah anda mengunjungi suatu situs yang disitu banyak sekali dijejali iklan sana-sini(misal adsense, dsb)? Saya yakin anda pasti pernah mengalaminnya. Jika memang anda tidak terganggu dengan adanya iklan tersebut silahkan tutup halaman ini, namun bagi anda yang merasa terganggu saya “sarankan” untuk melanjutkan membaca ;)

Alasan lain dan sebenarnya merupakan alasan utama saya menggunakan teknik ini adalah karena iklan-iklan tersebut memberatkan loading website. Jadi saya harus lebih bersabar menunggu konten dan menyimak iklan :( . Hal ini tidak masalah jika koneksi saya broadband dan bandwidth unlimited, sedangkan koneksi yang saya gunakan untuk berinternet ria hanya menggunakan HP CDMA yang kadang-kadang lemot :(

Mohon maaf pada advertiser jika artikel ini merugikan anda, ya semoga saja yang membaca cuman 1-2 orang ;)

Teknik pada artikel ini mengacu pada Sistem Operasi Windows dan GNU/Linux, mengingat dua sistem operasi tersebut yang “bersemayam” di laptop saya :)

CATATAN:
- Linux dalam artikel ini mengacu pada Ubuntu 7.04
- Windows dalam artikel ini mengacu pada Windows XP

Baiklah langsung saja kita mulai membuang iklan-iklan yang menganggu ini…

1. Alur Kerja

Pada dasarnya jika suatu situs memajang iklan dari pihak lain (sebut saja advertiser) seperti Google Adsense, AdBrite, dsb. Maka situs tersebut melakukan request ke server advertiser untuk ditampilkan dalam browser anda. Sebenarnya dalam proses ini situs yang anda kunjungi tidak melakukan hubungan langsung dengan server advertiser. Yang melakukan request ke server advertiser sebenarnya adalah komputer anda sendiri dalam hal ini dilakukan oleh browser anda. Untuk lebih jelasnya lihatlah ilustrasi gambar berikut:

alur kerja
Gambar 1

click for full-size
Gambar 2: salah satu “situs warta era digital” di Indonesia penuh dengan iklan :)

Seperti yang terlihat di gambar sebenarnya kita dapat mengabaikan proses 3 dan 4. Karena konten yang ingin kita tampilkan sudah selesai diload pada proses 1 dan 2. Pada proses 3 browser kita menghubungi server advertiser untuk meminta iklan, kemudian server advertiser memberikan iklan yang diminta oleh browser.

Permintaan yang dilakukan oleh browser tentu saja adalah HTTP request biasa. Oleh karena itu kita dapat “mengelabui” browser agar proses 3-4 tidak sampai terjadi. Caranya? tetap baca artikel ini ;)

2. Membuat domain sendiri

Setiap sistem operasi pasti memiliki alamat lokal (loopback address) untuk dirinya sendiri. Dimana dengan mengisi loopback ini dengan domain apapun maka secara otomatis domain yang anda masukkan akan dikenali sebagai komputer anda sendiri bukan sumber dari luar.

Nama domain yang umum untuk loopback address adalah localhost dan alamat IPv4 untuk localhost adalah 127.0.0.1. Yang akan kita lakukan berikutnya adalah menambahkan daftar domain untuk alamat IP 127.0.0.1. Dalam contoh nanti kita akan memasukkan tiga domain advertiser pada daftar “blacklists” kita.

Sebelum mengecek ke DNS Server, komputer kita akan akan mengecek dulu pada file (X:\Windows\system32\drivers\etc\hosts untuk Windows dan /etc/hosts untuk Linux). Jika domain yang coba dicari ada dalam daftar maka sistem tidak akan melanjutkan query ke DNS server. Jika sekenario tersebut kita implementasikan maka ilustrasi dari gambar 1 akan berubah seperti berikut:

skema loopback address

Gambar 3: loopback address

Tidak masalah jika aplikasi utama dan iklan terletak pada server yang sama. Asalkan domain yang digunakan berbeda contoh, example.com dengan ad.example.com

3. Nama domain advertiser

OK, saya mengerti, tapi bagaimana saya mencari nama domain dari server advertiser tersebut? mungkin itulah pertanyaan yang terlintas dipikiran anda. Dalam hal ini saya memiliki dua metode sederhana untuk mengetahui domain dari advertiser tersebut.

Metode yang pertama ini anda membutuhkan browser yang dapat menampilkan status loading dari website pada status-barnya (Firefox/IE memiliki hal ini) dan koneksi internet yang “cukup lambat” :). Mengapa? kalau koneksi internet anda sangat cepat anda tidak akan sempat melihat perubahan pada status bar browser anda. Untuk hal ini anda perlu metode yang ke-dua.

status-bar
Gambar 4: nama domain advertiser (google adsense)

Metode yang kedua sedikit lebih sulit karena anda harus melihat source code HTML situs tersebut. Hampir setiap browser pasti menyediakan menu untuk melihat source code website yang sedang ditampilkan. Setelah itu anda perlu melihat bagian yang menurut anda merupakan sebuah “panggilan” ke server advertiser.

google adsense
Gambar 5: javascript untuk publisher google adsense

Biasanya pihak advertiser akan memberikan sebuah kode berupa javascript untuk publisher iklan. Lalu publisher menempatkan javascript tersebut di websitenya.

4. Implementasi

Dalam contoh berikut kita akan melakukan blok terhadap beberapa iklan dari google adsense(pagead2.googlesyndication.com), Tribal (a.tribalfusion.com), dan media Fastclick (media.fastclick.com).

- Untuk Sistem Windows

1. Sebaiknya backup terlebih dahulu file untuk berjaga-jaga
2. Buka file X:\Windows\system32\drivers\etc\hosts menggunakan teks editor (misal notepad)
3. Edit file tersebut hingga kurang lebih seperti berikut:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# Copyright (c) 1993-1999 Microsoft Corp.
#
# This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
#
# This file contains the mappings of IP addresses to host names. Each
# entry should be kept on an individual line. The IP address should
# be placed in the first column followed by the corresponding host name.
# The IP address and the host name should be separated by at least one
# space.
#
# Additionally, comments (such as these) may be inserted on individual
# lines or following the machine name denoted by a '#' symbol.
#
# For example:
#
#      102.54.94.97     rhino.acme.com          # source server
#       38.25.63.10     x.acme.com              # x client host</span>
 
127.0.0.1   localhost
127.0.0.1    pagead2.googlesyndication.com
127.0.0.1   a.tribalfusion.com
127.0.0.1    media.fastclick.net

4. Simpan file tersebut
5. Coba refresh browser anda apakah iklan-iklan tersebut sudah tidak muncul lagi
6. Untuk memastikan, bersihkan semua history dan cache browser anda.

- Untuk Sistem Linux

1. Backup terlebih dahulu file /etc/hosts
$ sudo cp /etc/hosts /etc/hosts.original
2. Edit file /etc/hosts
$ gksu gedit /etc/hosts
3. Tambahkan hosts pada IP 127.0.0.1 hingga kurang lebih seperti berikut:

1
2
3
4
5
6
7
8
9
10
127.0.0.1 localhost
127.0.0.1 pagead2.googlesyndication.com media.fastclick.net a.tribalfusion.com
 
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts

4. Simpan file tersebut
5. Coba refresh browser anda apakah iklan-iklan tersebut sudah tidak muncul lagi
6. Untuk memastikan, bersihkan semua history dan cache browser anda.

click for fullszie
Gambar 6: Sekarang “situs warta era digital” tanpa iklan dan sangat cepat :)

Catatan: Jika memang koneksi anda kencang dan memiliki bandwidth yang tinggi, sebaiknya tidak melakukan ini mengingat para pemilik situs juga cari makan lewat advertiser, tapi jika memang terasa terganggu dengan iklan, ya apa boleh buat :)

Share/Save/Bookmark

Tutorial: Mengambil Screenshot GDM

Posted by rio On July - 5 - 2008

Anda tentu sering mendengar kata screenshot, bagi yang belum mengetahui apa screenshot tersebut, pengertian screenshot adalah suatu gambar yang diambil dari apa yang terlihat di layar komputer kita baik itu seluruh layar, window tertentu, atau bagian tertentu (geometri) dari layar. Semua sistem operasi secara default menyediakan fungsi ini. Cara paling mudah dan sederhana untuk mengambil screenshot adalah dengan menekan tombol PrtSc SysRq pada keyboard laku paste ke program pengolah gambar seperti MS Paint(Windows) atau GIMP(Linux).

Pada tutorial kali ini saya akan membahas bagaimana mengambil screenshot pada sistem operasi Linux(Ubuntu 8.04) lebih tepatnya screen login Gnome (GDM). Jika kita ingin mengambil screenshot setelah kita login pada Gnome itu hal mudah, tinggal tekan tombol PrtSc SysRq lalu paste di GIMP, beres. Masalahnya baru muncul ketika kita ingin mengambil screenshot dari screen login itu sendiri, kita tidak bisa langsung menekan tombol lalu paste begitu saja, hal ini karena kita belum login jadi mana mungkin kita dapat membuka program semacam GIMP. Terus bagaimana caranya? dari hasil googling terdapat dua metode untuk meng-capture screen GDM, yaitu:

  1. Menggunakan program gdmthemetester
  2. Menggunakan shell script untuk otomatisasi pengambilan screenshot

Cara yang akan saya tunjukkan adalah cara yang kedua yaitu menggunakan shell script. Berikut adalah langkah-langkahnya:

  1. Buat sebuah file baru menggunakan teks editor misal, takeshot.sh
  2. Ketik kode dibawah ini:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#!/bin/sh
#
# Simple shell script to take screenshot
# By Rio Astamal : 05-Jul-2008
#
 
executor=`whoami`
timestamp=`date +%s` # UNIX timestamp
defname="/tmp/scshot${timestamp}.png"
myuname="astadev"  # CHANGE this with your own username
delay=3  # delay before screenshot taken (in second)
if [ "$executor" != "root" ]; then
   echo 'You MUST run this script as root!.'
   exit 2
fi
 
function usage() {
   echo "Usage: $0 [file_name]"
   echo "Example: "
   echo "$0 /tmp/scshot.png"
   return
}
 
if [ $# -gt 0 ]; then
   if [ "$1" == "--help" ]; then
      usage ; exit 2
   else
      defname=$1
   fi
fi
 
ls $defname 1>/dev/null 2>/dev/null
if [ $? -eq 0 ]; then
   # file is exists make a copy of it
   newfile=${defname}.bak.$timestamp
   cp $defname $newfile
   echo "Old file was copied to $newfile."
fi
 
chvt 7      # more info see man chvt
sleep $delay
XAUTHORITY=/var/lib/gdm/:0.Xauth DISPLAY=:0.0 import -window root $defname
 
if [ $? -eq 0 ]; then
   chown ${myuname}:${myuname} $defname 2>/dev/null
   echo "DONE: Screenshot saved to ${defname}."
else
   echo "ERROR: Make sure you have write permission on that directory."
fi
 
# EOF
  1. Log out dari session sekarang
  2. Ketika muncul screen login tekan kombinasi Ctrl-Alt-F2
  3. Login dengan username dan password anda
  4. Jalankan script dengan menggunakan perintah:
    • sudo sh takeshot.sh, atau
    • sudo sh takeshot.sh /tmp/myscreenshot.png

Dari script di atas baris yang paling penting adalah baris nomor 42. Pada baris tersebut terdapat perintah import -window root $defname, perintah inilah yang kita gunakan untuk mengcapture screen. Program import merupakan salah satu program yang ada pada paket ImageMagick.

Kebanyakan user yang mengambil screenshot dari GDM adalah para GDM theme creator. Nah karena saya bukan theme creator, saya mengambil screen GDM karena saya membuat halaman My Desktop pada blog ini yang menampilkan tampilan Desktop Ubuntu saya :). Ini contoh hasilnya:

My GDM

Referensi:
http://ubuntuforums.org/archive/index.php/t-239810.html
http://bbs.archlinux.org/viewtopic.php?pid=294833
http://forums.fedoraforum.org/showthread.php?t=122058

Share/Save/Bookmark