All posts by sufehmi

MySQL – Sharding

Beberapa hari yang lalu saya hadir di konferensi online yang diadakan oleh komunitas MySQL Indonesia. Praktis, karena online, jadi bisa dihadiri dari mana saja. Tapi sialnya, saya keliru waktu – saya kira dimulai pukul 22:00, ternyata sudah berjalan sejak pukul 20:00 πŸ™‚

Untunglah setiap konferensi dicatat, dan kemudian diposting di milis mysql-indonesia@googlegroups.com
Terlampir adalah catatan konferensi online pada tanggal 25 Juni 2009, dengan topik “Horizontal partitioning dengan menggunakan MySQL-Proxy dan Spock“, yang diadakan di channel #id-mysql di irc.freenode.net

Selamat menikmati.

<iis> ok..selamat malam teman-teman
<iis> malam ini confernce # 18
<iis> materinya tentang horizontal partitioning
<iis> yang akan ngizi crazynuxer
<iis> silahkan dimulai..
<crazynuxer> ok πŸ™‚
<crazynuxer> beberapa minggu lalu sudah dijelas kan oleh bro dendie
<crazynuxer> mengenai partition di mysql database
<crazynuxer> cuman itu disebut sebagai vertikal partitioning
<crazynuxer> jadi partition hanya di satu mesin
<crazynuxer> nah horizontal partition ini
<crazynuxer> adalah partition di beda mesin
<crazynuxer> atau istilah kerennya sharding
<iis> jadi istilah yang lebih dikenal sharding?
<crazynuxer> atau klo saya istilahkan lebih mudahnya itu
<crazynuxer> iya
<crazynuxer> intinya sih load balance database berdasarkan record
<crazynuxer> jadi misalnya kita ada 10 record
<crazynuxer> 5 record di server A dan 5 record lagi di server B
<crazynuxer> kira-kira sampai sejauh
<crazynuxer> bisa dibayangin ga
<crazynuxer> sharding itu gmn ?
<mediEvil44> bisa
<crazynuxer> klo dari wikipedia
<crazynuxer> Horizontal partitioning is a design principle whereby rows of a database table are held separately, rather than splitting by columns (as for normalization). Each partition forms part of a shard, which may in turn be located on a separate database server or physical location.
<crazynuxer> jadi kita melakukan scale out
<crazynuxer> untuk meningkatkan performance secara scale out karena dukungan scalabilitas
<iis> scale out itu apa ya? πŸ˜€
<crazynuxer> ada scale out dan scale in
<crazynuxer> gini
<crazynuxer> misalkan server kita udah bottleneck nih
<crazynuxer> dan bottleneck itu karena hardware resource yg ga mumpuni atau mencukupi lagi
<crazynuxer> ada 2 solusi untuk masalah ini
* d3ptzz (n=d3ptzz@125.163.244.26) has joined #mysql-id
<crazynuxer> yang pertama kita beli server baru lagi
<crazynuxer> dengan spesifikasi hardware yg lebih bagus dan lebih handal
<crazynuxer> kemudian kita pindah datanya
<crazynuxer> dan jalankan lagi servernya
<crazynuxer> solusi ini disebut scale in
<iis> trus?
<crazynuxer> kelemahannya kita harus mengeluarkan banyak waktu dan tenaga
<crazynuxer> selain itu kita juga harus rugi
<crazynuxer> karena ada downtime
<crazynuxer> lalu ada solusi lagi
<crazynuxer> selain itu
<crazynuxer> scale out istilahnya kerennya
<crazynuxer> jadi kita memakai semacam balancer
* d3ptzz (n=d3ptzz@125.163.244.26) Quit (Remote closed the connection )
<crazynuxer> dan dibelakang balancer itu ada beberapa server sebagai backend nya
<crazynuxer> jadi ketika server kita sudah overload kita tinggal nambah backend lagi dibelakangnya
<crazynuxer> jadi mempunyai skalabilitas yang bagus
<crazynuxer> kita bisa menambah tanpa downtime
<crazynuxer> dan mengurangi backend tanpa downtime
<crazynuxer> karena dari sisi user diakan akan mengakses ipnya balancer
<crazynuxer> lalu oleh balancer akan diberikan atau dibagi ke backend sesuai dengan algoritma
<crazynuxer> sejauh ini masih paham ?
<the_curious> algoritma nya?
<crazynuxer> algoritmanya macem2
<crazynuxer> tergantung jenisnya dan kebutuhannya
<crazynuxer> ada round-roubin, least-connection, weight least connection
<crazynuxer> dll
<crazynuxer> itu juga tergantung dari balancernya support apa ga
<crazynuxer> ada juga yg berdasarkan schema
<crazynuxer> misalnya spock proxy
<crazynuxer> atau mysql-proxy
<crazynuxer> yg berdasarkan algoritma didalam script lua nya
<crazynuxer> nanti yg akan kita bahas adalah mengenai spock proxy
<iis> “script lua nya”, mksdnya apa ya?
<crazynuxer> dan mysql-proxy sebagai software horizontal partition di mysql
<crazynuxer> lua itu jenis bahasa pemrograman
<crazynuxer> yg biasanya di buat untuk game πŸ˜€
<crazynuxer> sampai sejauh ini bagaimana ?
<the_curious> πŸ˜€
<the_curious> asiiikkk
<the_curious> πŸ˜€
<tundra1> lumayan
<crazynuxer> ok
<mediEvil44> keren
<crazynuxer> di mysql sendiri ada beberapa software yg digunakan untuk kebutuhan ini
<crazynuxer> bahkan sudah ada engine yg sudah diciptakan
<crazynuxer> ada mysql-proxy,spockproxy , sqlrelay dll
<crazynuxer> mysql-proxy+hscale
<crazynuxer> dan untuk engine sudah ada engine baru
<crazynuxer> namanya spider engine
<crazynuxer> cuman gue belum nyoba
<crazynuxer> yg udah gue coba mysql-proxy dan spock proxy
<crazynuxer> πŸ˜€
<iis> mysql-proxy dan spock proxy itu software ?
<crazynuxer> pertama kita mulai dengan mysql-proxy ya πŸ˜€
<crazynuxer> iya
<crazynuxer> mysql-proxy sekarang masih dalam tahap alpha
<crazynuxer> dan belum layak untuk production
<crazynuxer> hanya untuk main-main dan belajar saja
<crazynuxer> πŸ˜€
<crazynuxer> itu yang dijelaskan di manualnya mysql-proxy
<crazynuxer> untuk manualnya silahkan download di mysql.com
<crazynuxer> πŸ™‚
<crazynuxer> cuman sebenernya mysql-proxy ini sangat flexible karena mendukung scripting language
<crazynuxer> menggunakan lua
<the_curious> brarti belajar Lua juga dong
<the_curious> kekekekeke
<crazynuxer> oh ya untuk sedikit info saya menggunakan linux ketika melakukan ujicoba kedua software ini
<crazynuxer> hehehe
<crazynuxer> iya
<crazynuxer> tidak pun tidak2 apa
<crazynuxer> karena sudah banyak scritpt yg siap pakai
<crazynuxer> tapi…
<the_curious> Enakan bisa
<crazynuxer> keahlian untuk membaca script tetep harus dimiliki
<the_curious> buat kustomisasi
<the_curious> πŸ˜€
<crazynuxer> karena untuk proses troubleshoot πŸ™‚
<crazynuxer> klo bisa ya berarti lebih mantap πŸ˜€
<crazynuxer> ketika kita akan melakukan installasi mysql-proxy itu dari source
<crazynuxer> jadi harus compile πŸ™‚
<crazynuxer> dan disource nya itu ada banyak contoh script2 lua yg bisa di coba
<crazynuxer> πŸ™‚
<crazynuxer> mysql-proxy tidak hanya bisa melakukan load balance
<crazynuxer> tapi bisa memanipulasi query
<crazynuxer> πŸ™‚
<the_curious> mksdnya?
<crazynuxer> jadi juga bisa dipakai untuk menambah fitur keamanan
<the_curious> di manipulasi nya gimana nih
<crazynuxer> karena dia bisa membaca dan menganalisa query
<crazynuxer> yg bisa dilakukan oleh mysql-proxy
<crazynuxer> create new commands
<crazynuxer> Γ―β€šΒ§ filter queries (deny specific queries)
<crazynuxer> Γ―β€šΒ§ collect statistics on usage
<crazynuxer> Γ―β€šΒ§ implement usage quotas
<crazynuxer> Γ―β€šΒ§ execute shell commands
<crazynuxer> load balancing servers
<crazynuxer> jadi beberapa hal diatas bisa dijalankan oleh mysql-proxy
<crazynuxer> cuman satu kelemahan mysql-proxy
<crazynuxer> πŸ˜€
<crazynuxer> belum stable πŸ™‚
<crazynuxer> untuk install tinggal download
<crazynuxer> lalu ekstrak menggunakan perintah tar
<crazynuxer> tar zxvf mysql-proxy.tar.gz -C /usr/local/src/
<crazynuxer> cd /usr/local/src/mysql-proxy/
<crazynuxer> ./configure –prefix=/opt/mysql-proxy
<crazynuxer> make -j4 && make install
<crazynuxer> finish
<tundra1> sama di semua linux mas
<crazynuxer> yups πŸ™‚
<crazynuxer> harusnya sama semua
<crazynuxer> yang make -j4 itu bisa diganti make saja
<crazynuxer> πŸ™‚
<crazynuxer> -j4 itu jika kita menggunakan prosesor yg quad core
<crazynuxer> klo cuman single core ya make saja
<crazynuxer> πŸ™‚
<crazynuxer> biar lebih cepet compile nya
<crazynuxer> ada pertanyaan ?
<crazynuxer> sejauh ini masih paham ?
<the_curious> yang lain
<the_curious> πŸ˜€
<the_curious> Bobo yah
<the_curious> Ahahaha
<mediEvil44> lumayan
<iis> lagi liatin scriptnya πŸ˜€
<crazynuxer> ada cara yg lebih mudah jika pake ubuntu πŸ˜€
<crazynuxer> tinggal apt-get install mysql-proxy
<mediEvil44> ada di repo
<tundra1> wuih enak ya pake ubuntu..
<the_curious> πŸ˜€
<the_curious> slacker yah mas tundra
<the_curious> kekekekeke
<the_curious> source aja ams
<the_curious> πŸ˜€
<the_curious> Mas
<crazynuxer> —
<crazynuxer> — read_query() gets the client query before it reaches the server
<crazynuxer> —
<crazynuxer> — @param packet the mysql-packet sent by client
<crazynuxer> —
<crazynuxer> — the packet contains a command-packet:
<crazynuxer> — * the first byte the type (e.g. proxy.COM_QUERY)
<crazynuxer> — * the argument of the command
<crazynuxer> —
<crazynuxer> — http://forge.mysql.com/wiki/MySQL_Internals_ClientServer_Protocol#Command_Packet
<crazynuxer> —
<crazynuxer> — for a COM_QUERY it is the query itself in plain-text
<crazynuxer> —
<crazynuxer> function read_query( packet )
<crazynuxer> if string.byte(packet) == proxy.COM_QUERY then
<crazynuxer> print(“we got a normal query: ” .. string.sub(packet, 2))
<crazynuxer> end
<crazynuxer> end
<crazynuxer> itu contoh script yg simple nya
<crazynuxer> jadi nanti ketika anda menjalakan mysql proxy dan melakukan query
<crazynuxer> akan tampil we got a normal query: “query_anda”
<crazynuxer> di console πŸ™‚
<crazynuxer> di mysql-proxy ini
<crazynuxer> ketika kita menjalankan
<crazynuxer> akan ada 2 port yg dilisten
<crazynuxer> yg pertama untuk admin port
<crazynuxer> yg kedua itu port untuk balancer yg akan diakses user atau aplikasi
<crazynuxer> saya menggunakan port 4041 untuk admin nya
<crazynuxer> 4040 untuk diakses user atau aplikasi
<crazynuxer> berikut saya kasih contohnya
<crazynuxer> bentar ssh dulu ke mesinnya
<crazynuxer> :LD
<crazynuxer> πŸ˜€
<crazynuxer> untuk menjalankannya
<crazynuxer> /usr/sbin/mysql-proxy –proxy-lua-script=/opt/proxy/lib/mysql-proxy/example.lua –proxy-address=xxx.xxx.xxx.xxx:4040 –proxy-backend-addresses=xxx.xxx.xxx.xxx:3306 –proxy-backend-addresses=xxx.xxx.xxx.xxx:3306
<crazynuxer> mysql-proxy –> itu binary nya
<crazynuxer> –proxy-lua-script itu agar mysql-proxy menggunakan script example.lua
<crazynuxer> –proxy-address=xxx.xxx.xxx.xxx:4040 ini adalah sebagai ip dan port yg akan diakses oleh client atau aplikasi
<crazynuxer> atau ip balancer nya
<crazynuxer> sedangkan backend address nya itu adalah server2 database yg dibelakang balancer
<crazynuxer> setelah menjalankan perintah diatas kita bisa ngecheck apakah port 4040 dan 4041
<crazynuxer> sudah listen
<crazynuxer> root@crazynuxer:~# netstat -nltp
<crazynuxer> Active Internet connections (only servers)
<crazynuxer> Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
<crazynuxer> tcp 0 0 xxx.xxx.xxx.10:4040 0.0.0.0:* LISTEN 29432/mysql-proxy
<crazynuxer> tcp 0 0 0.0.0.0:4041 0.0.0.0:* LISTEN 29432/mysql-proxy
<crazynuxer> tcp 0 0 xxx.xxx.xxx.9:3306 0.0.0.0:* LISTEN 25706/mysqld
<crazynuxer> tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 19049/sshd
<crazynuxer> tcp6 0 0 :::22 :::* LISTEN 19049/sshd
<crazynuxer> kita lihat sudah listen
<crazynuxer> klo gitu kita akan coba melakukan query ya
<crazynuxer> mysql -uroot -h xxx.xxx.xxx.10 -P 4040 -e ‘select * from mysql.user’ -p
<crazynuxer> dan masukkin passwordnya
<crazynuxer> maka diconsole akan tampil
<crazynuxer> Hello world! Seen the query: select @@version_comment limit 1
<crazynuxer> Hello world! Seen the query: select * from mysql.user
<crazynuxer> sesuai dengan isi script yg ada diexample.lua
<crazynuxer> berikut isi example.lua
<crazynuxer> function read_query(packet)
<crazynuxer> if string.byte(packet) == proxy.COM_QUERY then
<crazynuxer> print(“Hello world! Seen the query: ” .. string.sub(packet, 2))
<crazynuxer> end
<crazynuxer> end
<crazynuxer> print(“test”
<crazynuxer> )
<crazynuxer> jadi di mysql-proxy ini bisa memanipulasi query dan me load balance
<crazynuxer> sesuai dengan isi script lua nya
<crazynuxer> jadi sangat2 flexible
<crazynuxer> dan untuk load balance ini di mysql-proxy sudah ada plugin
<crazynuxer> namanya hscale
<crazynuxer> bisa coba akses situsnya
<crazynuxer> hscale.org klo ga salah πŸ™‚
<crazynuxer> itu juga dalemnya lua
<crazynuxer> jadi nantinya proses load balance nya akan dihandle oleh hscale
<crazynuxer> dengan script lua didalamnya
<crazynuxer> untuk menjalankannya silahkan download di hscale.org
<crazynuxer> dan untuk installation tinggal download dan ekstrak kemudian set env variable dan local variable nya
<crazynuxer> sesuai dengan petunjuk dari situs hscale.org
<crazynuxer> itu sedikit info mengenai mysql-proxy πŸ™‚
<crazynuxer> untuk ubuntu konfigurasinya ada di /etc/default/mysql-proxy dan /etc/init.d/mysql-proxy
<crazynuxer> πŸ™‚
<crazynuxer> ok sekarang kita akan bahas spock proxy
<crazynuxer> spockproxy ini sudah bisa digunakan di production
<crazynuxer> ini dikeluarkan oleh spock.com
<crazynuxer> salah satu search engine πŸ™‚
<crazynuxer> coba deh liat www.spock.com
<crazynuxer> dan ini merupakan forking dari mysql-proxy
<crazynuxer> untuk situs resminya
<crazynuxer> spockproxy
<crazynuxer> http://spockproxy.sourceforge.net/
<crazynuxer> spockproxy yg terbaru baru versi 0.8.7
<crazynuxer> spockproxy ini hampir sama dengan mysql-proxy
<crazynuxer> cuman spockproxy tidak pake lua
<crazynuxer> dan horizontal partition menggunakan system range base
<crazynuxer> jadi misalnya ada 10 query
<crazynuxer> nanti dia akan bagi berdasarkan range yg sudah disetting
<crazynuxer> didalam database schema
<crazynuxer> jadi spock ini dalam pengaturannya menggunakan database schema
<crazynuxer> didalam database schema itu terdapat 3 buah table
<crazynuxer> shard_database_directory
<crazynuxer> shard_table_directory
<crazynuxer> shard_range_directory
<crazynuxer> table database directory itu untuk mengatur koneksi
<crazynuxer> jadi pendefinisian backend beserta database yg mau disharding
<crazynuxer> klo table shard_table_directory itu berdasarkan table yg mau disharding
<crazynuxer> kita mendefinisikan column
<crazynuxer> sedangkan range yg range yg akan kita atur nanti
<crazynuxer> jadi misalnya kita ada 10 query
<crazynuxer> range query 0-5 di lemparkan kemesin backend database A
<crazynuxer> 6-10 itu dilempar ke mesin database B
<crazynuxer> dan seterusnya
<crazynuxer> sampai sejauh ini bagaimana ?
<the_curious> masalahnya
<the_curious> πŸ˜€
<the_curious> kalo ga tau wuery nya berapa banyak
<the_curious> gimana?
<the_curious> iya kan?
<the_curious> πŸ˜€
<the_curious> *query
<crazynuxer> hehehe
<crazynuxer> yups betul banget saudara digit πŸ˜›
<crazynuxer> bagaimana dengan yg lain ?
<crazynuxer> untuk sejauh ini ?
<sufehmi> halo, saya agak sedikit rancu soal range query
<the_curious> iya pak
<sufehmi> jadi itu benar2 berdasarkan urutan query yang datang ya?
<sufehmi> bukan bagaimana isi querynya?
<sufehmi> oooo ok
<sufehmi> eh sori kirain mengkonfirmasi, layar saya terlalu terang
<sufehmi> bentar…. ***atur brightness layar**
<crazynuxer> berdasarkan isi nya
<crazynuxer> jadi misalnya kita setting id sebagai column yg ingin disharding
<crazynuxer> maka spock ini akan melihat idnya
<crazynuxer> lalu berdasarkan range nya
<crazynuxer> dia akan lempar ke backend
<crazynuxer> jika didalam range tidak ada
<crazynuxer> maka akan ditolah
<crazynuxer> ditolak
<crazynuxer> itu yang saya alami kemarin πŸ™‚
<sufehmi> oke, menarik… jadi kita bisa setup semacam rule ya
<sufehmi> untuk menentukan query yang mana untuk ke backend yang mana
<crazynuxer> iya
<sufehmi> kalau berdasarkan urutan datangnya query saja, gimana?
<sufehmi> bisa atau tidak ya?
<sufehmi> memang terlalu simple sih, tapi kadang ada kasus yang sudah cukup dengan seperti ini
<sufehmi> jadi misalnya; query yang pertama datang akan di opern ke backend1
<sufehmi> opern=oper
<sufehmi> query kedua dioper ke backend2
<sufehmi> query ketiga kembali ke backend1
<sufehmi> query keempat ke backend2
<sufehmi> dst
<crazynuxer> iya
<sufehmi> jadi cuma sekedar load balancer sederhana
<crazynuxer> kelemahan kita harus set itu semua πŸ™‚
<sufehmi> hehehe
<crazynuxer> iya sederhana sekali cara kerjanya
<crazynuxer> waktu kita select pun
<crazynuxer> sebenernya si spock ini melakukan query select di semua backend
<sufehmi> ooo
<sufehmi> ini topik yg sangat menarik, karena ada bbrp customer saya yang sudah perlu pakai multiple backend
<sufehmi> pada saat ini, ada bbrp customer saya yang traffiknya setara dengan republika.co.id
<sufehmi> jawapos.co
<sufehmi> padahal servernya cuma dual-core, 2 GB RAM πŸ™‚
<sufehmi> tertolongnya karena saya pakai squid, sehingga mayoritas hits mengenai squid. Bukan ke Apache/PHP
<sufehmi> tapi, traffic nya bertambah terus
<sufehmi> jadi musti siap2 utk multiple backend juga
<crazynuxer> iya πŸ™‚
<crazynuxer> sebaiknya mulai membuat solusi scale out πŸ™‚
<sufehmi> nah, sharding selama ini memerluka coding ulang dari web-apps ybs
<sufehmi> dengan spock, jadi ada harapan bahwa ini tidak perlu
<crazynuxer> iya πŸ™‚
<sufehmi> jadi shardingnya di handle di level “middleware” / spock
<sufehmi> bukan di aplikasi
<sufehmi> wah, sedap betul ini πŸ™‚
* hilman (n=adit@125.161.205.58) has joined #mysql-id
* hilman is now known as adit
<adit> ya telat ya
<crazynuxer> sepertinya begitu dit πŸ™‚
<adit> πŸ™
* sufehmi sambil testing game StarTrek Voyager : Elite Force di Ubuntu 9.04 πŸ™‚
<crazynuxer> hahaha
<the_curious> donlot dimana
<the_curious> di share dunk
<the_curious> Hahahaha
<adit> tadi keasyikan nonton opera van java
* the_curious mupeng
<adit> πŸ˜€
<crazynuxer> bagaimana sejauh ini yg masih belum jelas ?
<adit> tadi ngebahas apa ki?
<adit> tumben banget info nya telat di milis
<adit> lagi pada sibuk ya? ;))
<crazynuxer> hehehe
<crazynuxer> yups
<crazynuxer> jadi konsepnya sperti itu untuk spockproxy
<crazynuxer> untuk install nya silahkan download
<crazynuxer> lalu ekstrak,
<crazynuxer> install dengan perintah
<crazynuxer> ./autogen.sh
<crazynuxer> ./configure
<crazynuxer> make
<crazynuxer> dan make install
<crazynuxer> untuk ubuntu jaunty
<crazynuxer> harus sedikit menyesuaikan gcc nya πŸ˜€
<crazynuxer> untuk yg pake centos tidak perlu
<crazynuxer> untuk lebih detailnya nanti akan saya demokan di mysql monthly meeting
<crazynuxer> πŸ™‚
<crazynuxer> demikian dari saya
<crazynuxer> jika ada yg mau ditanyakan , silahkan
<adit> membahas apa toh ? πŸ˜€
<adit> sangat2 ketinggalan neh
<crazynuxer> adit: loe lihat log nya aja πŸ˜›
<adit> ok2 :p
<iis> jadi gmn teman-teman?
<iis> ada yang mau tanya ke nuxer?
<crazynuxer> bagaimana ?
<iis> sepertinya tidak ada yang bertanya nih..?
<iis> kalo gak ada mau ditutup nih confernce nya..
<crazynuxer> ok πŸ™‚
<mediEvil44> ok
<iis> baiklah…
<iis> conference mysql indonesia ke 18 berakhir disini
* udie_mysql (n=chatzill@114.123.173.175) Quit (“ChatZilla 0.9.85 [Firefox 3.0/2008052906]” )
<iis> kalo nanti tiba2 teringat ada yang mau ditanyain ttg materi ini, pm aja ke nuxer
<iis> atau kirim ke milis juga gpp..
<iis> lognya akan segera dikirim ke milis
<mediEvil44> sip
<crazynuxer> bener
<iis> terima kasih atas kesediaan temen2 ikut confernce malam ini
<iis> assalamu’alaikum semuanya..
<crazynuxer> waalaikumsalam
<iis> sampai jumpa di confernce berikutnya
* adit (n=adit@125.161.205.58) has left #mysql-id
<iis> jangan lupa mysql meeting 2009.06 tanggal 4 juli di kantor SUN di Jl. Sudirman

Materi Workshop @ Timor Leste – gratis + copyleft

Beberapa hari yang lalu saya diundang oleh Ristek untuk berkunjung ke Timor Leste selama 5 hari. Disana saya bersama Pak Onno Purbo memberikan workshop / seminar selama 3 hari. Untuk acara tersebut, saya membuat 4 buah dokumen training / tutorial.

Semua dokumen tersebut saya buat dengan lisensi GPL v2. Artinya, Anda bebas menggunakannya untuk kebutuhan Anda sendiri. Termasuk memodifikasinya untuk keperluan Anda.

Terlampir adalah dokumen-dokumen ybs :

[1] Cara Cepat Pemrograman Web – bagian 1 : berbasis Open Source (1,2 MB)
[ format PDF (280 KB)]
[2] Cara Cepat Pemrograman Web – bagian 2 : berbasis Open Source (1,2 MB)>
[ format PDF (282 KB)]
[3] Pengenalan Virtualisasi (1,6 MB) [ format PDF (888 KB)]
[4] Tutorial Open Office (4,5 MB) [ format PDF (2,9 MB)]

Dokumen ke 4 dibuat oleh Hasan (Ardelindo.com) dengan lisensi GPL. Sebetulnya dokumen tersebut membahas Open Office v2. Karena lisensinya bebas, maka saya jadi bisa meng update dokumen tersebut untuk versi 3, melakukan beberapa editing, beberapa revisi – dan lalu menyediakannya kembali untuk Anda sekalian.

Dengan membebaskan dokumen / artikel, yaitu melisensikannya secara bebas (GPL atau setara), maka dokumen tersebut seakan-akan menjadi hidup. Dia jadi bisa diakses oleh siapa saja, bermanfaat oleh siapa saja, dan bahkan jadi bisa terus relevan sesuai dengan perkembangan zaman.
Terimakasih kepada Hasan yang sudah menginspirasi saya untuk membebaskan dokumen-dokumen saya sendiri juga.

Kembali ke acaranya; mengenang kunjungan tersebut, terlampir adalah lagu “Juni di kota Dili” oleh Rita Effendi. Selamat menikmati πŸ™‚

Murah itu Mahal

Ketika SD dulu, kami sekeluarga pernah pulang kampung beramai-ramai. Istilahnya, “Pulang Basamo” – pulang bersama. Konvoi banyak mobil, dari Jakarta, Merak, menyeberang Selat Sunda, terus menjelajah selatan Sumatera, sampai akhirnya tiba di desa kecil yang bernama Silungkang.

Sebetulnya ada pilihan naik kapal laut, ataupun kapal terbang. Tapi naik kapal laut betul-betul membuat pusing, mabuk saya. Sedangkan naik kapal terbang ketika itu masih cukup mahal biayanya.
Lagipula jika bisa seru menjelajah naik mobil, kenapa naik pesawat?

Ya, ketika itu jalur Lintas Sumatera belum ada. Banyak jalanan di rute kami yang masih berupa tanah dipadatkan. Kadangkala jembatannya adalah beberapa potong pohon yang dibentangkan diatas sungai, atasnya dibuat rata dengan beberapa buah papan. Ya, perjalanan pulang kampung ketika itu benar-benar adalah sebuah penjelajahan πŸ™‚

Nah, ketika perjalanan sejauh itu, di rute yang tidak terlalu ramah, keamanannya pun tidak terlalu meyakinkan, sambil membawa keluarga dan anak kecil; maka konvoi adalah suatu keharusan.
Sungguh menyenangkan – pulang kampung bersama kawan-kawan dan saudara sepermainan, bersama-sama menjelajah ratusan kilometer bumi yang asing bagi kami.

Anyway, akhirnya kami tiba di desa bernama Silungkang itu. Bagi anak kota seperti saya, kampung adalah suatu tempat yang amat menarik. Semuanya serba luas ! Bisa lari ke segala arah tanpa menabrak tembok πŸ™‚
Dan sungainya – bisa seharian main disitu dan tidak bosan. Nanti ketika sudah agak besar, kadang juga menemani para paman memancing, atau, menjala ! Benar-benar seru.

Ketika malam turun, kami masuk ke rumah gadang milik keluarga besar masing-masing. Rumah kayu berukuran besar ini bisa menampung beberapa keluarga di dalamnya.
Disini, waktu seperti berhenti. Kami bisa melihat berbagai foto dan benda dari zaman Jepang dan Belanda, masih tersimpan baik. Orang zaman dahulu memang begitu, mereka memperhatikan benda-benda miliknya dan dirawat dengan baik. Bahkan ketika benda tersebut sudah tidak digunakan lagi sekalipun.

Seperti sebuah mainan pesawat terbang yang saya temukan di lemari pajangan. Tadinya saya kira hanya pajangan. Bagus, pesawat Spitfire, yang digunakan Inggris di Perang Dunia II. Tapi saya segera menyadari bahwa itu bukan pajangan, melainkan mainan.

Namanya anak kecil ya otomatis langsung tertarik melihat mainan πŸ™‚
Apalagi ternyata mainan ini dulu adalah milik salah satu paman saya ketika masih kecil, kemudian diturunkan lagi ke saudara-saudaranya yang lebih kecil – terus sampai akhirnya habis anak kecil di rumah itu, karena sudah besar, dan membawa anak-anak mereka juga pergi merantau ke berbagai penjuru Indonesia. Dan sejak itu pesawat mainan tersebut disimpan di dalam lemari tersebut.

Saya tercengang ketika menyadari bahwa pesawat mainan tersebut masih bisa dimainkan dan berfungsi dengan baik !
Di sayapnya ada beberapa lubang, yang kita bisa masukkan rudal ke dalamnya. Lalu kita tekan sebuah tombol di belakangnya – wusssshhh, rudal plastik tersebut meluncur kencang dan jauh.

Berapa umur mainan ini ? 30 tahun ?! πŸ˜€
Dan masih bisa dimainkan dengan baik.

Sampai sekarang saya masih takjub jika ingat hal itu. Bukan apa-apa, mainan zaman sekarang kontras total dengan mainan kuno tersebut.
Harganya memang mungkin jauh lebih murah – tapi, baru beberapa kali dimainkan sudah rusak. Minta ampun. Bukan membuat senang, malah merusak kesenangan, karena rusak ketika sedang asyik dimainkan.

Efek sampingnya, anak-anak jadi cenderung tidak peduli dengan barang miliknya. Toh barang cepat rusak juga, buat apa peduli ? Dan kalau sudah rusak ya tinggal beli gantinya. Murah kok.

Padahal sikap konsumtif ini jelas tidak baik, karena berarti (antara lain) kita juga mengajarkan mereka untuk turut mepercepat kerusakan bumi.
Makin banyak barang yang rusak, berarti makin banyak sampah. Padahal plastik dan berbagai bahan pada mainan / barang murahan itu bisa utuh selama ratusan tahun, tidak mudah terurai. Kalaupun terurai, seringkali menjadi zat-zat beracun.

Akhirnya sekarang kami cenderung menghindari membelikan mereka mainan. Kecuali jika jelas bagus, ada manfaatnya, dan bisa tahan lama. Mahal, tidak apa. Kalau perlu biar anak-anak itu yang membelinya sendiri, dengan menabung dulu. Jadi biar mereka tahu nikmatnya mendapatkan sesuatu dengan usaha mereka sendiri.

Foto di atas adalah sebuah Air Conditioner (AC) merk Sanyo, yang mungkin sudah berusia sekitar 15 tahun. Dan AC ini masih dingin πŸ™‚
Cukup mencengangkan, terutama ketika dibandingkan dengan berbagai AC yang baru akhir-akhir ini. Ada yang baru satu tahun sudah rusak – tidak lama setelah masa garansinya habis.

Apa bedanya AC yang baru ini dengan AC Sanyo tersebut?
Bagi orang awam seperti saya, tidak jelas, kecuali satu hal – harganya JAUH lebih murah. Made in China pula. Klop dengan imagenya yang murah meriah. Karena itu kami kemudian membelinya dalam jumlah banyak untuk beberapa kantor kami.

Apa yang kemudian terjadi ? Tidak saja banyak yang rusak, namun juga pemakaian listriknya sangat boros.

Ya, niat ingin menghemat – alhasil malah merugi. Murah itu ternyata Mahal !

Yang di samping ini adalah sebuah kursi belajar. Merk Chitose. Umurnya mungkin sudah 20 tahun.

Nah, bisakah Anda temukan cacat pada kursi tersebut ?
Boro-boro menemukan cacat, mungkin komentar Anda malah “hah 20 tahun, yang bener??” πŸ˜€

Ya, harga kursi ini dulu juga tidak terlalu murah. Tapi, inilah cara kita membeli barang zaman dahulu – cash, kalau perlu menabung dulu. Dan sebagai investasi / aset jangka panjang, digunakan & dirawat dengan baik.
Hasilnya, barang yang mahal tersebut awet selama puluhan tahun. Dan harga awal yang dikira mahal itu, ternyata sebetulnya murah.

Coba kita bandingkan misalnya dengan kursi zaman sekarang yang harganya Rp 150.000. Dengan daya tahan mungkin 2 tahun, sebelum mulai rusak disana sini.
Berarti per tahun seperti kita mengeluarkan biaya sebesar Rp 75.000 untuk kursi tersebut.

Kursi Chitose yang mahal ini mungkin sekarang harganya sekitar Rp 500.000. Dengan masa penggunakan (sampai saat ini) selama 20 tahun, maka seperti kita mengeluarkan biaya per tahunnya hanya Rp 25.000 saja untuk kursi ini.

Ternyata, walaupun harganya lebih mahal, sebetulnya kursi Chitose tersebut lebih murah (paling tidak) 3x lipat daripada yang kursi murahan tersebut. πŸ™‚

Zaman ini memang penuh tipuan. Yang kita kira murah, ternyata sebetulnya mahal. Yang kita kira mahal, ternyata sebetulnya murah.
Jika tidak berhati-hati, maka kita bisa tertipu dan uang kita jutaan rupiah bisa terbuang percuma begitu saja.

Jadi jangan lupa – Murah itu Mahal !

Tulisan terkait : Murah versus Kualitas

LG : Life is Good – But We (our website) Sucks

Today I had a chance to practice my patience. I failed πŸ™‚ lg-sucks

It all started when we realized that we have lost the User Guide / Owner’s Manual for our LG Jet Cool Air Conditioner. Model LS-Q076.
While we still don’t know how to program the AC to shut off at certain time.

We need this functionality to ensure that the kids will still have an enjoyable night sleep – but without suffering from dry air due to a continuous, all-night, AC operation.

So, easy, right? Nowadays, just Google, and you should find it, right. Right ? πŸ™‚

Finding LG’s website was easy enough. However, I immediately realized that the WHOLE website’s interface was coded in Javascript.

This is a nightmare for visitors like me for various reasons :

(1) Broken “back” button
(2) Slower website performance
(3) In case of problems – it’s back to start for us.

The International LG website has 4000+ documents listed for their AC product alone. So I looked for its Indonesian website. Found it in no time. And the horror begin.

The website is slow. Horribly slow. This is on a 3G broadband connection, with regular 160 Kbps download speed.

It’s the dynamic parts – the static parts of the website renders quickly. However, its dynamic ones, such as lists, will show up MUCH later.

Basing the website heavily on Javascript doesn’t help either in this particular case. Now you have 2 dynamic parts – on server and client. Both horribly unoptimized.

By default, a dynamic website WILL perform slower than a similar, static one. There are tricks to make it faster, but you need to be really knowledgeable in this topic to pull it off.
LG’s website not only deploy dynamic website on both of its server & client side; it also does so blindly.

Actually, I still have patience for this kind of websites. Since they’re so widespread anyway, sometimes you just have to grind your teeth and get on with it.

But broken navigation ? That’s the last straw.

Basically, I was browsing on the braindead UI design of LG’s website, when it threw an error on me.
I call it braindead because you are looking for a single document from a THOUSAND available choice – but you can only see 20 choices at a time; and you can NOT skip to the page where you think your document is.

Then after skippng about 40 pages, you found the document – and it threw an error.

I had to start again from the Front page πŸ™

No, the BACK button does NOT work. Genius, I know.

So, after hours of browsing, retries, and barely enough patience to held back my rage; I finally got my document. Yeah!
Now we know how to set the AC off after certain time.

Then I rushes to my blog, and wrote this. πŸ™‚

Anyway, hope you enjoyed reading it, more than I have suffered it. These kind of websites should be named & shamed as widely as possible.
Hopefully then we’ll be seeing less of them. And the Internets then will become a MUCH better place to browse around.

To Hell with stupid web design practices ! πŸ˜€

Nabi & Rasul

Saya adalah laki-laki paling ganteng, di rumah saya. Well, oke, nomor 2 paling ganteng – hanya kalah dari Umar. Anyway, hidup di tengah kumpulan wanita itu memang menyenangkan sekali. Ada banyak hal-hal menarik yang terjadi dari waktu ke waktu. Tidak pernah membosankan πŸ™‚

Beberapa hari yang lalu terjadi tanya-jawab antara saya dengan Anisah, anak saya yang sulung, sebagai berikut :

Anisah (A) : Pa, kok Nabi itu tidak ada yang perempuan ya ?

Saya (S) : Hm, iya yah ?

A : Iya, semuanya cowok kan ?

S : Betul, mungkin karena pekerjaannya berat ?

A : ?

S : Lihat aja tuh Nabi Muhammad, beliau pernah malah disambit pakai batu-batu sampai berdarah-darah

A : Ya ampunnnn

S : Iya, pernah ditimpa dengan tahi unta juga. Disiram dengan air kencing. Dan berusaha dibunuh berkali-kali.

Nabi-nabi yang lain juga kayak begitu. Nabi Zakariya digergaji hidup-hidup sampai wafat.

A : Hah !!! Beneren pa? Hiiiyy

S : Ya, Nabi Yahya disembelih. Nabi Isa mau disalib – tahu gak disalib itu apa?

A : Digantung di kayu ?

S : Ya, tangannya dipaku ke tiang kayu.

A : *bergidik*

S : Nah, kalau Nabi itu perempuan, kayaknya kesian deh kalau musti kejadian kayak begitu

A : Iya ya…. aduh. Ngeri banget.

S : Ngebayanginnya aja Papa gak tega. Kalau cowok sih, biarin aja πŸ™‚

A : Hahahaha…

S : Ya, itulah nasib para Nabi. Kerjaannya berat, untuk kebaikan orang lain – eehh malah dibalasnya kayak begitu sama orang yang mau mereka tolong. Cape deh.

A : Bwahahaha…

S : Yah jadi gitu kakak, mungkin karena itu gak ada Nabi yang perempuan

A : Iya lah, untung juga ya.

Jakarta 13 Mei 2009, ditulis di sela-sela rehat setelah bekerja + meeting seharian.

Mobile Dev Joy : The Adventure with Mobile Browser

My post today will be rather technical, but I’m sure some will find it interesting because it’s about a topic that’s not as widely discussed as others. Some may even find it useful. It’s about my brief stunt with mobile development.

Some time ago I was asked to look at a web-based apps which is to be used with a mobile phone. A Nokia E70 to be exact. It’s based on Symbian S60 3rd edition platform. Basically, a Javascript which is supposed to run won’t. So I looked into it.

This piece of Javascript is vital for usability reasons. Without it, the input process will take up to 50% longer. So I thought, yeah I’ll set aside a bit of my time and hack this.

Then I realized that when I thought the browser situation on the PC / desktop platform is a mess; it actually look very tidy and well-ordered compared to the situation on the mobile platform πŸ™‚

First, mobile platform is much more limited — in terms of CPU / processor power, memory capacity, secondary storage (hard disk / flash ram) capacity, power, etc. These limitations in turn must be taken into account by all mobile browsers. Which causes various quirks / incompatibilities to surface when you dig deeper into it.

Second, free(dom) software has not yet made as much impact here as it is on the desktop. Therefore we have plethora of proprietary technologies, which sometimes doesn’t work together / conform to the open standards.

Third, there’s not as many documentations available on the topic. As I googled around, I realized in horror that I may have to hack around much more than I thought necessary.

Back to the hack – first thing I tried was to install Opera mobile (not Opera mini). Yes, we’re willing very willing to pay Opera if it works. In short – the Javascript works on it.
Unfortunately, Opera mobile crashes around so much, it’s impossible to enjoy any kind of productivity with it.

Also there are a LOT of quirks with Opera mobile when used with keypad.
They are small things, but gets annoying very quickly. Which doesn’t help when you’re trying to accomplish good amount of work.

Maybe it’d be better if I try an older version of it, but seeing it consume too much RAM anyway; I thought I’ll give the built-in browser a try first.

Called “Nokia Mini Map Browser” because of its “mini map” feature, it’s speedier than Opera mobile and doesn’t use as much memory. However, the Javascript on our web-apps doesn’t work there.

So I thought, perhaps this browser doesn’t support the latest version of Javascript. Or worse, perhaps it has its own version of Javascript. That would suck greatly.
Anyway, I started to try looking for documentation on the topic, also for a tool to help me debug the problems there.

I found Nokia Mobile Browser Simulator 4.0. It’s Java-based. However, it seems to be hard-coded for Windows, with Windows installer too. Ok so I found a Windows machine, and set it up.

To my dismay, it doesn’t work very reliably. To be precise, it won’t even load the web-apps. While the actual browser in Nokia E70 will display it correctly.

With documentation on the subject (Javascript capabilities of Nokia Mini Map Browser) also very lacking, this is starting to look like a dead end.
Until I found out that the Nokia Mini Map Browser is actually an open source project !

Code named “S60browser”, or “S60Webkit”, it’s available from opensource.nokia.com
There’s hope – if there’s code available, then anything can always be traced / found out.

My sharp-minded readers will quickly realize another thing – yes, it’s basically the same as the Safari browser, the one on Mac OS X πŸ™‚

Nokia Mini Map Browser aka S60browser aka S60Webkit is based on another open source project called WebKit. Which happens to be the foundation used as well by Apple to build their browser, Safari.

Now this is getting interesting πŸ™‚

I dug deeper into these new clues, and began to feel sure that both browser’s cores are indeed identical. Which means that I’d be able to debug the problem with Safari browser.

safari-pref-advanced
I fired up Safari, invoked the Preferences screen, and clicked on Advanced icon. I enabled “Show Develop menu in menu bar”, then I restarted Safari. A new menu then showed up. I chose Develop – Show Web Inspector (also accessible via Cmd-Alt-i)

I got the detailed error message in no time. It’s “Object [object HTMLInputElement] (result of expression document.getElementById(“testForm”).submit) does not allow calls“.
As I already mentioned, the script works on Firefox and Opera, but somehow it doesn’t work on Safari. So it’s Googling time again.

Turn out it’s a generic error message whenever Safari have problems executing a function.
So it could be that the function doesn’t exist. Or the function name is mispelled. Or any other function-calling related problems.
Great, looks like this will cause more questions than it answers…

Thankfully I wasn’t on the wild goose chase for too long. A comment on a blog post gave me the hint I needed :

I gave a form button the *same name* as the function it was calling in its onclick. This error was the result.

Joshua, thank you. That’s exactly what happened in my case πŸ™‚
A line in the script is as follows :

document.getElementById(“testForm”).submit();

While there’s also a button on the same script named, you guessed it, submit :

<input type=”submit” name=submit />

So Safari got confused, and threw this generic error message.

And it’s very easy to fix, I just need to change the button’s name value to something else – and it works now on Safari & Nokia Mini Map Browser, as well as on Firefox and Opera.

I love happy endings πŸ™‚

Moral of the story ? Open source software empowers developers.

And this is not the first time – my MSc thesis was about to fail; when I found ping’s source code on the Internet. It gave me the hint needed to continue the project. The thesis got among the best mark at that year.

With availability of the source, we can learn from the brightest minds on Earth with ease. The knowledge and wisdom become available for all.
Even to the ones with feeble minds, like me.

Here’s another cheer for free(dom) software movement : May the source be with you πŸ™‚

(oh, and also, all hail Google !)

Old & New

Ketika akan posting hari ini, saya baru sadar bahwa situs ini lenyap. Kosong melompong. Hanya menampilkan indeks directory nya di server, yang polos tiada berisi suatu apa pun.

Kena hack? Bisa jadi.
Padahal ini dihosting di sebuah server yang sudah di harden.

Untunglah ini bukan masalah, karena situs ini rutin di backup πŸ™‚
Dalam waktu kurang dari 5 menit, data situs dari backup nya selesai saya restore – dan situs ini kembali berjalan sebagaimana semula.

Ada beberapa pelajaran yang bisa kita ambil dari sini :

(1) Server yang secure itu percuma, jika aplikasinya belum secure. Tetap saja para hacker/cracker akan bisa masuk.

(2) Backup data itu sangat penting.

Oh ya, perusak situs ini adalah cracker, BUKAN hacker.
Hacker itu bisa jadi adalah seseorang yang banyak ingin tahu, senang mengutak-atik berbagai hal, senang mencoba-coba — namun, hacker TIDAK merusak.

Seseorang yang desktruktif / senang merusak tidak layak untuk menyandang predikat hacker.

OK, itu berita yang baru. Apa berita yang lama?

Tidak terlalu spesial sih. Saya hanya menemukan blog saya yang lama di Internet Archive. Lalu, saya putuskan untuk memindahkannya ke blog ini.

Ternyata, saya pertama kali ngeblog itu adalah tanggal 3 Januari 2001 πŸ™‚

Semua posting di blog lama tersebut akan mulai saya posting di kategori old-blog.

Memang blog itu luar biasa menarik. Tanpa sadar, ternyata sudah 8 tahun saya ngeblog ! Wow… rasanya baru kemarin saya membuat script blog saya sendiri, dan mengetikkan posting pertamanya.

Saya tertawa membaca posting saya tentang kamera digital pertama saya, pada tanggal 7 Maret 2001. Kamera tersebut merk Intel, dan memiliki kapasitas simpan memory sebesar 8 MB. Yak, 8 Megabytes saudara-saudara – BUKAN Gigabytes πŸ˜€

Kapasitas cuma secuil segitu bisa ngapain???“, mungkin itu pertanyaan kita semua.
Ternyata, bisa menjadi ratusan buah foto kenangan. Ya, sebagian besar foto-foto di halaman tersebut adalah berasal dari kamera digital yang super cemen ini πŸ™‚
(ya, saking cemennya, bahkan foto-foto tersebut tidak ada metadatanya sama sekali / nama kamera yang digunakan tidak muncul. Pakar IT kita bisa kelabakan kalau menemukan foto-foto ini)

Selain tawa, dengan terharu saya juga menemukan kembali catatan-catatan perkembangan anak-anak saya. Berbagai memori yang sudah mulai terlupakan muncul kembali dengan manis. Inilah harta saya yang paling berharga.
Tanpa blog, semua kenangan itu akan pudar & lenyap seiring dengan berjalannya waktu.

Jadi, mari kita jangan ngehack blog orang lain. Mari kita ngeblog saja yuk. Mari πŸ™‚

Google Killer ? Wolfram Alpha etc

These past few days I’ve been stumbling on articles about Wolfram Alpha. How that it’d be the next search engine. How it’d be the Google killer. And so on.
Unfortunately, it’s not the first time I’ve heard about such claims.

I can’t remember exactly when I was first online on the Internet. Probably 1995. Back at that time, there was only a handful of websites. There was a book claiming to be the Yellow Page of Internet. It was enough to get me around.

Then the internet grew. Very quickly. So I started to utilize Yahoo to find websites of interest. At that time, Yahoo looks like DMOZ.org. Yes, seriously.
Anyway, it was enough for my needs.

But the Internet doesn’t stop growing. Then I realized that I’ll need a different kind of assistance, to enable me to continue utilize it as best as possible.

So I found AltaVista. Lycos. And others. A.k.a “search engines”

It was truly amazing. You can find what you’re looking for from several millions of pages on the Internet within several seconds. Totally unheard of. I became adept at utilizing it. People thought I’m an IT wizard. While actually I was just rather good at asking the right questions to Altavista.

One thing about the Internet is that it’s a free place. Everyone can do anything at anytime. Altavista was not left alone for long — soon others are gunning for its position.

Long story cut short – Yahoo made Google as its search engine, Google became successful, Yahoo cut the deal; but it was too late. Google already became the King of Search Engines.

So now others are gunning Google.
And they’re not always doing it exactly the same way as Google. Which is good.

We’ve heard about Mahalo. About Cuil. Metacrawler, Ask.com, etc.
However, after years, still none managed to unseat Google from its top position. Despite the fact that some are answering questions even better than Google.

For example, do you know that there are search engines that can process questions in natural language form ? Example : Who is the president of Indonesia ?

Awesome πŸ™‚

START is the first web-based answering system, online since Dec 1993. Yes, what Wolfram Alpha trying to achieve is already done by MIT. 15 years ago.
That made START even more impressive.

Have a look around : Who is Sarah Connor ?

It can be biased too πŸ™‚
What is the best programming language ?

It can even lie !
Are you alive ?

Ahem. Okay, back to the topic – with all these wonderful engines, why it’s Google that’s still on the top ?

It’s because performance alone doesn’t ensure success.

You need also :

(1) Marketing : Google is already a very well-known brand. It’s even included in Merriam-Webster dictionary.

Competing with such well-known brand is a significant challenge.

(2) Scalability : Incoming : Can the engine scale to today’s billions of pages out there on the Internet ?

Google could. Not all the others fare as well.

(3) Scalability : Outgoing : Keeping point 2 above in mind – can you reply to people’s questions within / under 1 second ?

Google could. Some others could too – by sacrificing point 2.

(4) Relevancy : Can you read people’s mind ? Oops, let me rephrase that – can you give relevant answers to the questions ?

This is not easy as it might be because Internet keeps changing. It’s a moving target.

A while ago I was using a search engine called GigaBlast.
It was pretty good, and at the time it was even faster than Google.

However, after a while it started giving me irrelevant results. When I checked, it was because of various SEO techniques being deployed. So it got tricked in certain queries.
But Google kept becoming better. So I went back to Google.

Any contender for Google’s seat must be able to compete in the long run. They must not stay the same, because Google is always becoming better.

Yeah, it might be a while before we saw someone killed Google. Actually, they may be absorbed into Google’s collective instead.

But just as two-person start-up managed to shook the search engine world several years ago by creating Google, we may very well witness that again in the next several years. Because on the Internet, nothing is sacred and forever.

Obama : support & assist – don’t bring him down

Let’s be clear about one thing – Obama is not perfect. Anyone thinking the reverse is deluded. He’s just a man, not an angel (although it’d be really cool if he IS indeed a black angel) πŸ™‚

So he made mistakes, and he will continue to do so from time to time.

That said – I’m absolutely appalled at lack of patience that’s displayed by some people. Do you SERIOUSLY think that 8 YEARS of destructions done by Bush can be reversed by Obama in 1 MONTH ??

Come on people. We’re talking about some of the MOST thorough global destruction ever witnessed in this century. Bush does not only destroy America, he also wreaked havoc in various other countries too. Including Indonesia – various evil US corporations really did have a field day during his administration.

I already expected that Bush’s great momentum of disaster would be really hard to stop and turn  around. I’ve suspected that Obama would have to compromise in several cases – and it has started to happen. There is NO way he’d be able to do everything – he’ll have to prioritize. Anyone with the slightest experience of management roles will understand this. To compromise really sucks, but sometimes the other options are even worse. Like quitting what you’re doing. Ask yourself – do you really feel like seeing him leaving after just a while ?

What really matters is his intentions – does Obama do that because he’s evil? Or is it because he’s cornered to? Or unable to do the reverse? And so on.

Remember, we’re talking about politics here. This is among the MOST complicated subject anyone could ever encounter. And here Obama is tackling US of A’s politics – probably the most complex of them all.

Unfortunately, we can’t read into people’s mind yet. Fortunately, we CAN make intelligent assessments. Instead of just accusing people blindly, we should really do this.

Check Obama’s track records. List his negative and positive points, this will enable you to see things more objectively. Try to focus on the bigger picture.

This is why I like Truth-O-Meter by Politifact.com. It really help you to look at things objectively, not subjectively. Note that it still misses some, even big ones – such as the fact that Obama have put a good man in charge for the recovery of USA, etc.
However, it’s definitely better than nothing.

Even easier is to compare Obama with Bush.

It then become as clear as day and night !

People, help Obama to make USA better for you. Don’t drag him down over small details. When he made mistakes – let him know that you’re not happy. When he try to do something right, let him know too that you support him.

It can be very lonely up there. If all you’re doing is nag him and get angry, any human is bound to get tired of it and think, “why the hell am I doing this ?“. That’s the first step to seduction by the sweet melody from the dark side.

A small compliment from time to time never hurts. A polite, but firm, reminder is always much better than a rude one.

.
.
.
So unless you want another Bush to rise and kick your collective a$$es even harder than before – get up, and work together to rebuild America.

We will all benefit from that as well. Because we all live in this same small blue rock called “Earth”, on this vast void of universe.

With love from Indonesia.

RescueTime.com – cara canggih meningkatkan produktivitas pribadi Anda

rescuetime-top-tagsSelama beberapa minggu ini software RescueTime.com telah terpasang di laptop saya. “Lho, RescueTime.com itu bukannya website? Kok software?“. Ya, ini kombinasi layanan yang unik – software di komputer Anda akan mencatat apa saja yang Anda kerjakan. Lalu kemudian Anda bisa melihat laporannya di RescueTime.com

Terus terang tadinya saya extra pesimis dengan slogannya – “Ridiculously Easy Time Management Software”.
Kebetulan saya sudah pengalaman mencoba berbagai macam software serupa. Mulai dari Borland SideKick (omg – masih ada yang bahkan menjual software ini !), Lotus Organizer (probably the best PIM out there), Google Calendar, iCal (sync dengan calendar di handphone saya), dst.
Semuanya sangat membantu, tapi selalu saya merasa masih ada yang kurang. Selalu saya merasa bahwa performa & produktivitas saya pribadi masih bisa ditingkatkan lagi.

Jadi karena perasaan tersebut, saya pasang RescueTime.com di laptop saya, walaupun dengan agak sedikit segan. Bukan apa-apa, saya berusaha agar tidak terlalu banyak aplikasi terpasang di laptop saya. Ribet.
Apalagi ini justru berjalan terus, dan ketika saya konek ke Internet, softwarenya juga secara rutin mengirim data-data aktivitas saya ke server RescueTime.com

rescuetime-apps-sitesTernyata instalasinya cukup simpel. Berjalan dengan cepat, dan softwarenya langsung berjalan. Hanya menanyakan username & password saya satu kali, lalu tidak ada lagi mengusik kita. Saya perhatikan, softwarenya juga cukup stabil. Lalu saya cek sekilas disitusnya, datanya juga sudah mulai masuk di account saya. Oke, mari kita biarkan dulu dia berjalan selama beberapa hari.
Lalu saya lupa, dan baru teringat lagi belakangan.

Secara ringkas, inilah yang terjadi :
Minggu pertama : shock πŸ˜€
Dua minggu selanjutnya : optimalisasi cara kerja dan prioritas pekerjaan
Minggu ketiga : Sukses.

Secara detail – apa yang terjadi ??

Setelah satu minggu, saya baru ingat bahwa saya telah memasang software RescueTime.com. OK, iseng ah, coba kita lihat, hasilnya seperti apa sih ? Saya buka RescueTime.com, dan login ke account saya. Dalam waktu singkat, langsung terbuka beberapa panel yang menampilkan rangkuman performa / produktivitas saya selama ini.

Dengan kejam, RescueTime.com, tanpa tedeng aling-aling, melaporkan bahwa produktivitas saya, dari skala -2 sampai 2, hanya 0.2 !! πŸ˜€

Seperti kata alexfarran di Twitter :

Rescuetime is unforgiving. It can’t be bargained with. It can’t be reasoned with. It doesn’t feel pity, or remorse, or fear.

Bisa terasa muka saya memerah ketika itu, hahaha. Hanya 0.2 ?? Apa yang terjadi ?? πŸ˜€
Penasaran, saya kemudian mengutak-atik situs RescueTime.com lebih lanjut lagi, meneliti latar belakang dari skor yang cukup menggemaskan tersebut.

Beberapa hal yang saya temukan :

  • Facebook ! Ketika itu saya sedang seru-serunya mengawali petualangan di Facebook. Dan karena Facebook bukan dianggap kegiatan yang produktif (suatu yang yang bisa, ehem, diperdebatkan) maka total produktivitas saya terjun bebas. Karena memang, ketika itu, cukup banyak waktu saya yang terpakai untuk mengakses situs yang satu ini.
  • Plurk : Saya kira hampir semua orang sudah tahu bagaimana adiktifnya situs yang satu ini πŸ˜€
    Secara ringkas – bisa saya katakan dengan gembira bahwa saya sudah bebas dari kecanduan Plurk, berkat kekejaman RescueTime.com πŸ˜€
  • Situs / software yang belum terdeteksi : RescueTime.com bukanlah sesuatu yang sempurna. Ada kalanya dia tidak tahu apakah suatu situs yang kita buka / software yang kita gunakan itu termasuk produktif atau tidak. Akibatnya, cukup banyak kegiatan saya yang diberi nilai 0 (nol), netral.
    Untungnya ini bisa kita koreksi dengan mudah — kita bisa dengan sangat cepat memberitahu RescueTime.com, bahwa suatu situs / software adalah kegiatan produktif / tidak.

Jadi ternyata inilah RescueTime.com. Dia bukan software pengatur jadwal kita, tapi hanya sekedar mencatat saja. Sederhana kan ? Tapi, dilakukannya dengan sangat efektif, dan dengan hasil yang sangat mudah untuk kita pahami.

rescuetime-category
Selama 2 minggu kemudian, saya sibuk sendiri merubah berbagai kebiasaan kerja saya. πŸ˜€
Sekitar setiap 2 hari saya memeriksa lagi performa saya. Jika masih ada yang terlihat waktu yang terbuang, saya tahu terbuang karena apa, dan selama berapa lama.

Luar biasa – rasanya baru kali ini saya benar-benar merasakan memegang kontrol terhadap waktu yang saya gunakan. Maklum, dasar pelupa, jadi sering tidak sadar dengan hal-hal seperti ini. RescueTime.com mencatat semuanya untuk saya, dan menjadi pengingat yang cukup menohok πŸ˜€

rescuetime-efficiencyPada minggu ketiga saya memeriksa lagi skor produktifitas saya, dan berapa nilai saya kali ini ? 1.65 saudara-saudara sekalian πŸ˜€
Dari skor maksimal 2.0, skor 1.65 ini memasukkan saya ke Top 2% skor di RescueTime.com.

Alhamdulillah, kini saya bisa bekerja dengan gembira dan tahu bahwa saya telah, dan akan selalu, produktif. RescueTime.com akan selalu membantu menyampaikan kekurangan-kekurangan saya dengan tanpa segan-segan dan perasaan bersalah sama sekali. Dan karena itu maka saya jadi akan selalu bisa memperbaiki diri saya sendiri.

Sangat direkomendasikan – software RescueTime.com tersedia untuk Linux, Windows, maupun Mac OS X. Selamat mencoba !

MacBook terkunci di screensaver ?

Ada yang pernah mengalami hal ini ? Sejak beberapa minggu yang lalu, MacBook saya kadang terkunci terus di screensaver nya. Setelah memasukkan password, layarnya gelap terus. Kursor mousenya muncul dan bisa digerakkan, tapi selain itu hitam semua.

Alhasil, beberapa kali akhirnya terpaksa pencet tombol Ctrl-Alt-Del power. Beuh, mudah-mudahan struktur filesystem nya tidak rusak, sudah beberapa kali terpaksa melakukan ini, hehe.

Kalau di Linux sih enak, saya tinggal pencet Alt-F1 – F6. Maka layar console (teks) akan tampil, dan saya bisa cari tahu sumber masalahnya. Kalau di Mac gimana ya?

Mana Safari tidak menyimpan session terakhir, duh. Saban restart, Safari terbuka kosong kembali πŸ™ lenyap semua tab yang tadi sedang terbuka. Musti ingat untuk pakai Firefox terus nih.

Ada ide / hint ? Thanks.

Monty Python Goes Marketing 2.0

Beberapa waktu yang lalu, datacenter yang menghosting salah satu server saya mengirimkan sebuah surat yang mengejutkan – DMCA notice dari Lionsgate Films. 

Surat tersebut menuduh bahwa server saya telah terlibat dalam pembajakan salah satu film mereka, yaitu Transporter 3. Sebuah tuduhan yang sangat serius. Ditambah lagi bahwa server saya tersebut berada di Amerika, sehingga bisa diproses berdasarkan hukum mereka (yang ngawur berat itu).

Masalahnya :

(1) Saya tidak pernah membajak film tersebut πŸ˜€

(2) Server tersebut masih kosong, jadi tidak mungkin hal tersebut dilakukan oleh customer saya

Sekedar meyakinkan, saya lakukan search terhadap seluruh isi hard disk server tsb, dan hasilnya memang bersih. Lalu sambil nyengir, saya kirimkan hasilnya ke datacenter saya, yang menerimanya sambil nyengir juga πŸ™‚ sepertinya ini bukan kejadian yang pertama kali, he he.

Ajaib – memang IP address yang tercantum di surat tersebut adalah milik server saya. Tapi padahal kan tidak ada pelanggaran yang saya lakukan. Ha ha ha… Γ‚Β πŸ˜€  sekedar mendeteksi IP address saja tidak becus. 

Jadi bergidik membayangkan kalau saya adalah warga Amerika – dan kena tuduhan yang keliru seperti ini. Hidup saya bisa hancur berantakan (untunglah nenek Sarah mendapat bantuan dari EFF), walaupun saya tidak melakukan kesalahan apapun.

Anyway, ini adalah salah satu alasan saya sangat mendukung gerakan Creative Commons. Nyaris seluruh foto saya di flickr.com berlisensi bebas. Juga seluruh artikel di blog ini.

Konten yang bebas bisa sangat bermanfaat bagi sangat banyak orang. Saya sudah merasakannya sendiri. Dan karena itu juga berusaha memberikan kontribusi dalam hal ini. 

Tidak itu saja – konten yang bebas juga menguntungkan pemiliknya secara finansial. Ini sudah terbukti berkali-kali selama puluhan tahun.

Contoh: dulu para pemilik kontek protes bahwa VHS / betamax adalah sarana pembajakan. Kemudian mereka menyadari bahwa ini adalah pangsa pasar baru.

Maka  kemudian selama puluhan tahun, mereka meraup keuntungan yang sangat besar dari sini.

Ketika stasiun radio mulai bermunculan, para pemilik konten protes. “Ini adalah pembajakan konten kami, untuk keuntungan para pemilik stasiun radio!“, begitu kira-kira protes mereka.
Belakangan mereka menyadari bahwa ini adalah promosi gratis.  Lagu yang sering diputar di radio cenderung mengalami peningkatan penjualan. Maka kemudian malah terjadi kongkalikong antara pemilik konten dengan pemilik/jaringan stasiun radio – untuk mendongkrak penjualan lagu tertentu.

Walaupun tetap saja mereka berusaha mendapatkan “uang preman” dari stasiun radio…. *sigh*, human’s greed know no bound, indeed.

Di tengah berbagai kekonyolan ini, sebuah kelompok yang terkenal dengan kekonyolannya malah melakukan sesuatu yang brilian. 

Luar biasa – kru Monty Python menyediakan berbagai klip videonya di Youtube.com, dan mengakibatkan peningkatan penjualan DVD Monty Python sampai 23000% !

Di zaman elektronik ini, ada banyak kesempatan. Dan yang akan menang adalah mereka yang kreatif. Kru Monty Python mungkin konyol, tapi mereka bukan orang bodoh & rakus. Maka mereka bisa meraup keuntungannya.

Posting ini saya cantumkan juga di kategori OpenSource, karena ini adalah juga bagian dari keterbukaan. Open software, Open content, malah juga Open hardware — keterbukaan adalah hal yang penting bagi peradaban manusia. 

Selama beribu-ribu tahun, manusia selalu saling membagi penemuan mereka. Sehingga peradaban manusia bisa berkembang tanpa perlu mengulang-ulang melakukan hal yang sama. Dan semua penemuan jadi bisa bermanfaat bagi semua pihak – bukan cuma untuk segelintir orang saja. 

Selamat dan salut sekali lagi kepada kru Monty Python. Semoga teladan yang baik ini bisa ditiru oleh kita semua !

Terlampir adalah surat DMCA dari Lionsgate Films :) 

 

Continue reading Monty Python Goes Marketing 2.0

ISP : Fix Your Bloody DNS

Sedikit penjelasan; ISP = Internet Service Provider, penyedia layanan akses Internet kita.
DNS = Domain Name System, yaitu layanan dari ISP yang memungkinkan kita untuk mengakses berbagai website – seperti google.com, yahoo.com, dll.

Sekilas cara kerja DNS : ketika kita mengetikkan (misalnya) google.com di browser, maka browser akan menghubungi DNS milis ISP. DNS server kemudian akan memberikan alamat (IP address) yang sebenarnya dari google.com. Yah, seperti alamat rumah nya lah. πŸ™‚

Nah, bermodalkan dengan alamat (IP address) tersebut, maka kemudian browser akan menghubunginya. Jika alamatnya benar, maka akan tersambunglah koneksi dengan server Google. Dan dengan cepat kita segera bisa menikmati berbagai layanan dari situs Google.com di browser kita.

OK, sejak beberapa waktu yang lalu, beberapa kali saya membantu beberapa kawan-kawan untuk memindahkan situs-situs mereka ke server saya. Kebetulan saya memiliki beberapa server di luar negeri untuk private customers. Jadi dengan senang hati saya bantu sebisa saya.

Ada yang servernya overload karena situsnya terlalu populer, sehingga saya pindahkan ke high-capacity server saya. Kini sudah berjalan dengan sangat cepat (testing terakhir : situsnya bisa diakses dalam waktu setengah detik).

Ada lagi yang pindah karena server lamanya bermasalah. Sepanjang hari down, dan lalu sesekali bisa muncul. Tentunya ini sangat menyebalkan bagi pengunjung situs tersebut. Kini sudah selesai  dipindahkan ke server saya, dan situsnya sudah up & running lagi.

Namun, semuanya mengalami masalah yang sama; yaitu ketika baru pindah, customer mereka pada protes bahwa “situsnya kok BELUM pindah ??”

Hah ?

Tentu saja kita jadi bingung.
Lha sudah jelas situsnya sudah di server saya, dan sudah bisa kita akses dari browser kita. Kenapa dibilangnya belum pindah ya ?

Ketika ini pertama kali terjadi lumayan membuat pusing juga. Berbagai setting di server kita cek. Tapi semuanya sudah benar. Tapi, kenapa customer tetap tidak konek ke server yang baru ?

Ternyata, ini semua karena DNS nya beberapa ISP …………..!

Jika Anda sempat membaca sekilas penjelasan mengenai DNS di awal posting ini, tentu akan menyadari bahwa setiap harinya ada banyak pelanggan ISP, dan masing-masing mereka setiap harinya browsing ke banyak situs = ada banyak sekali akses ke DNS server milik ISP ybs.
Nah, untuk mengurangi beban, maka kebanyakan DNS server melakukan caching – yaitu menyimpan data-data alamat dari berbagai situs di memory. Dengan demikian, maka DNS server nya bisa memiliki performa yang optimal.

Setiap DNS server memiliki setting cache yang berbeda. Ada yang menyimpan alamat situs selama 1 hari, sebelum melakukan refresh. Ada yang refresh rate nya adalah 1 jam. Ada yang refresh rate nya beberapa jam.

Sialnya bagi kami, beberapa ISP besar ternyata men set refresh rate DNS server mereka selama 1 minggu …….. !

Hasilnya bisa ditebak – customer yang menggunakan ISP besar tersebut tetap diarahkan ke server situs yang lama.
Karena DNS server ISP nya masih menyimpan alamat situs yang lama, yang jelas sudah basi. 1 minggu gitu lho.

Alhasil, selama 1 minggu, kawan saya tersebut terpaksa menebalkan kupingnya, dimarahi oleh para customernya. Padahal, dia tidak salah apa-apa.  :) 
Hehehe… nasib

Yang terakhir kemarin ini adalah sebuah situs yang cukup dikenal masyarakat yang juga pindah ke salah satu server saya. Setelah pindah dan semuanya kita test berjalan ok, lalu dilaporkan oleh tim IT nya ke manajemen mereka.
Oleh manajemennya dicoba dibuka. Lha, ternyata masih membuka situs di server yang lama.

Kontan saja tim IT nya kena semprot πŸ˜€

Sambil menahan tawa (kasihan), saya mencoba menjelaskan duduk perkaranya. Alhamdulillah bisa dipahami oleh ybs. Walaupun jelas dia kebingungan tentang bagaimana caranya dia akan menjelaskan ke manajemen.

Tentu akan sulit sekali menjelaskan bahwa kesalahan ada di ISP mereka – perusahaan dengan revenue milyaran rupiah setiap bulannya !
Bisa-bisa malah kena semprot lagi oleh manajemen, karena dikira mengada-ada πŸ™‚

Karena itu saya membuat posting ini, untuk membantu menjelaskan situasi tersebut.
Kesalahan bukan di pihak Anda, namun pada ISP Anda. Kontak ISP Anda, dan tuntut mereka untuk membetulkan DNS servernya. Jelaskan bahwa Anda menuntut untuk soal ini di eskalasi sampai ke level engineer & manajemen dari ISP ybs.

Bukan apa-apa, melakukan caching DNS selama 1 minggu mungkin relevan di zaman dulu, ketika server masih lambat. Bandwidth masih luar biasa mahal. Dst.

Tapi, sekarang ? Rp 4 jt saja sudah dapat server dual-core dengan RAM berukuran ribuan megabytes. Sudah jauh sangat mampu untuk melayani request DNS dengan baik. Bandwidth yang diperlukan untuk melakukan refresh juga sudah jauh lebih murah harganya.

Kalaupun mau caching, maksimum 1 hari saja.  Jangan sampai lebih.
Karena ini sudah menyangkut hajat hidup orang banyak. 

Ya, siapa sangka. Internet kini sudah menjadi hajat hidup banyak orang πŸ™‚

So ISP, if you still cache for more than 1 day – Fix Your DNS !  People are suffering because of it.

NB: jika DNS server ISP Anda bermasalah, sambil menunggu mereka membereskannya, Anda bisa menggunakan DNS server milik AWARI. Yaitu 203.34.118.10 dan 203.34.118.12

Terimakasih banyak kita ucapkan kepada kawan-kawan di AWARI, yang telah menyediakan layanan ini tanpa biaya untuk kita semua !

WordPress, dan blogging, di Indonesia

Satu acara yang saya terpaksa lewatkan dengan penuh sayang adalah Wordcamp Indonesia. Tapi namanya deadline harus dikalahkan terlebih dahulu. Jadi saya gembira sekali ketika ada laporannya di blog Kun.co.ro.

Beberapa informasi yang menarik :

  1. B.Indonesia menduduki rangking ke #3 di WordPress.com, hanya kalah dari b.Inggris & Spanyol
  2. B.Indonesia adalah yang tumbuh tercepat nomor #2 di WordPress.com
  3. Pengguna WordPress.org dan WordPress.com cukup berimbang : ini kejutan yang cukup menarik. Ternyata cukup besar pengguna WordPress yang bisa memasangnya sendiri (download dari wordpress.org, lalu setup)
  4. Update: Ma.tt Mullenwegg mengatakan bahwa kini lebih besar kemungkinan kita mendapatkan uang KARENA blog – bukan DARI blog. Akur sekali, ini juga pengalaman saya selama ini.

Banyak kesimpulan menarik dan potensi peluang yang bisa ditarik dari beberapa data ini.
Satu contoh, jika traffic WordPress.com dari Indonesia menyamai traffic Detik.com (dan mengalahkan Kompas.com), maka dengan data dari poin 3 – berarti traffic WordPress.com DAN WordPress.org bisa 2x lipat dari traffic Detik.com. Wow.

Update: Detil & informasi lebih lanjut bisa dibaca di kanal Wordcamp di Twitter (trims mas Koen dkk).

Inilah kekuatan platform blog yang dimungkinkan dengan software open source. Beberapa dari kita mungkin masih ingat bagaimana blog dulu tidak terlalu meledak ketika toolsnya masih proprietary dan/atau mahal dan/atau tidak terbuka. Kini ketika platform blog telah dibebaskan dengan berbagai software blog open source yang nyaman digunakan, maka kita semua yang meraup manfaatnya.

Terus nge-Blog ! πŸ™‚

Harry Sufehmi & Opensource

Blog saya adalah sebuah blog yang dikenal dengan istilah “blog gado-gado”. Segala macam bisa Anda temukan disana πŸ˜€
Mulai dari pemikiran, curhat, review, artikel teknis, pengalaman hidup, dan lain-lainnya. Pokoknya gado-gado betul. Betulan segala macam bisa Anda temukan disana.

Termasuk, ternyata, ada banyak artikel seputar Open Source disana. Namun, mungkin selama ini tenggelam di tengah keriuhan berbagai artikel lainnya. Saya sendiri kadang agak kesulitan untuk menemukan artikel Open Source tertentu di blog tersebut, he he πŸ˜‰

Karena itu barusan saya sudah membuatkan blog khusus untuk topik ini, dengan nama yang sama sekali tidak kreatif πŸ˜€ — Opensource @ Sufehmi.com
Disini Anda akan bisa menikmati semua artikel-artikel saya seputar Opensource dengan nyaman.

Enjoy !

Jews for Palestine – Pelajaran mengenai “generalisasi”

Luar biasa, sangat mengharukan. Saya menemukan surat pembaca dari berbagai tokoh Yahudi di Inggris, yang menyatakan kecaman mereka terhadap Israel.

Di tengah semua kemarahan, emosi, ketidak adilan, dan kekejaman di sepotong kecil tanah bernama Gaza; alhamdulillah masih ada sekelompok orang-orang yang masih bisa berpikir dengan rasional dan kritis. Dan mengutamakan hati kecil mereka daripada egonya.

Terlampir adalah surat mereka ke koran Guardian di Inggris :

We the undersigned are all of Jewish origin.

When we see the dead and bloodied bodies of young children, the cutting off of water, electricity and food, we are reminded of the siege of the Warsaw Ghetto. When Dov Weisglass, an adviser to the Israeli prime minister, Ehud Olmert, talked of putting Gazans “on a diet” and the deputy defence minister, Matan Vilnai, talked about the Palestinians experiencing “a bigger shoah” (holocaust), this reminds us of Governor General Hans Frank in Nazi-occupied Poland, who spoke of “death by hunger”.

The real reason for the attack on Gaza is that Israel is only willing to deal with Palestinian quislings. The main crime of Hamas is not terrorism but its refusal to accept becoming a pawn in the hands of the Israeli occupation regime in Palestine.

The decision last month by the EU council to upgrade relations with Israel, without any specific conditions on human rights, has encouraged further Israeli aggression. The time for appeasing Israel is long past. As a first step, Britain must withdraw the British ambassador to Israel and, as with apartheid South Africa, embark on a programme of boycott, divestment and sanctions.

Ben Birnberg, Prof Haim Bresheeth, Deborah Fink, Bella Freud, Tony Greenstein, Abe Hayeem, Prof Adah Kay, Yehudit Keshet, Dr Les Levidow, Prof Yosefa Loshitzky, Prof Moshe Machover, Miriam Margolyes, Prof Jonathan Rosenhead, Seymour Alexander, Ben Birnberg, Martin Birnstingl, Prof. Haim Bresheeth, Ruth Clark, Judith Cravitz, Mike Cushman, Angela Dale, Merav Devere, Greg Dropkin, Angela Eden, Sarah Ferner, Alf Filer, Mark Findlay, Sylvia Finzi, Bella Freud, Tessa van Gelderen, Claire Glasman, Ruth Hall, Adrian Hart, Alain Hertzmann, Abe Hayeem, Rosamene Hayeem, Anna Hellmann, Selma James, Riva Joffe, Yael Kahn, Michael Kalmanovitz, Ros Kane, Prof. Adah Kay, Yehudit Keshet, Mark Krantz, Bernice Laschinger, Pam Laurance, Dr Les Levidow, Prof. Yosefa Loshitzky, Prof. Moshe Machover, Beryl Maizels, Miriam Margolyes, Helen Marks, Martine Miel, Diana Neslen, O Neumann, Susan Pashkoff, Hon. Juliet Peston, Renate Prince, Roland Rance, Sheila Robin, Ossi Ron, Manfred Ropschitz, John Rose, Prof. Jonathan Rosenhead, Leon Rosselson, Michael Sackin, Ian Saville, Amanda Sebestyen, Sam Semoff, Prof. Ludi Simpson, Viv Stein, Inbar Tamari, Ruth Tenne, Norman Traub, Eve Turner, Tirza Waisel, Karl Walinets, Renee Walinets, Stanley Walinets, Philip Ward, Naomi Wimborne-Idrissi, Ruth Williams, Jay Woolrich, Ben Young, Myk Zeitlin, Androulla Zucker, John Zucker

Para Yahudi ini justru menyarankan boikot, penarikan investasi, dan hukuman-hukuman bagi Israel. Mudah-mudahan kita bisa menjalankan saran-saran mereka tersebut.

Juga, semoga kita bisa selalu ingat untuk tidak menggeneralisir bahwa “semua Yahudi itu jahat”. Di antara mereka, masih ada segelintir kecil yang hatinya turut menangis untuk rakyat Palestina. Tidak itu saja, mereka juga secara aktif menentang penjajahan & kezaliman Israel terhadap Palestina.

Beberapa bahkan membayar sikap mereka tersebut dengan nyawanya.

Quran tidak mengajarkan kita untuk membenci Yahudi. Namun, untuk waspada terhadap tipu daya dan makar dari sebagian mereka.
Memvonis seluruh Yahudi jahat karena kejahatan sebagian dari mereka adalah generalisasi. Ini termasuk pada ketidak adilan – dan jelas ini tidak dibenarkan oleh Islam. Islam adalah agama yang sangat menitik beratkan fokus pada keadilan. Jangan sampai kita terjerumus kepada menzalimi sebagian pihak, hanya karena kebencian & emosi kita.

Satu contoh lagi adalah Neturei Karta. Slogan mereka adalah “Orthodox Jews United Against Zionism” (*).
Ketika beberapa diantara kita mungkin hanya duduk di belakang meja dan bersimpati tanpa banyak melakukan sesuatu, para anggota Neturei Karta aktif dan gencar turun langsung ke lapangan menentang Zionisme. Luar biasa.

Yahudi juga manusia. Mereka mampu untuk melakukan kebaikan. Namun, sebagian mereka juga mampu melakukan kejahatan, seperti manusia lainnya juga. Kita musti bisa bertindak secara adil terhadap semua ini.

Satu contoh Yahudi yang pantas untuk ditindak adalah Howard Schultz. Chairman, president, dan CEO dari Starbucks, Schultz dengan aktif mendukung negara Israel, dan mengkampanyekan keberadaannya. Tentunya dia bukan tidak tahu mengenai berbagai kejahatan Israel. Namun tetap saja Schultz mendukung Zionisme.

Yah, alhamdulillah menemukan informasi ini. Menuruti himbauan dari rekan-rekan Yahudi di Inggris di atas, sekarang saya jadi sangat malas untuk ngopi di Starbucks.
Yuk kita ramaikan saja Bakoel Koffie, atau warung-warung lainnya.

Hari ini saya mendapat pelajaran yang sangat berharga mengenai kemanusiaan, empati, nurani, keadilan dan logika. Semoga bisa bermanfaat juga untuk Anda.

(*) Zionisme sebetulnya adalah salah satu bentuk ekstrimisme / zealotry dalam beragama. Dalam teks agama Yahudi sendiri sebetulnya tidak ada mengharuskan mereka untuk kembali lagi ke tanah Palestina. Zionists memilih penafsiran yang ekstrim, plus implementasi yang tidak kalah ekstrimnya lagi. Hasilnya, seperti yang sudah dan sedang kita saksikan, adalah derita berkepanjangan dari rakyat Palestina.

Neturei Karta, walaupun beraliran Orthodox, namun bisa memahami teks / ajaran agama mereka dengan baik / tidak ekstrim. Karena itu mereka bisa menyadari kekeliruan Zionists, dan tidak turut terjerumus kesitu.

Mudah-mudahan kita bisa meniru teladan mereka ini – terhindar dari berlebih-lebihan / ekstrimisme dalam beragama.

Virus di Linux

Salah satu pertanyaan lainnya yang paling banyak ditanyakan di berbagai seminar mengenai Open Source / Linux adalah tentang virus – apakah ada virus di Linux ?

Secara teknis, ya, ada virus di Linux. Itu adalah fakta yang tidak bisa dibantah.
Namun itu belum menjelaskan – karena SEMUA sistim komputer pasti bisa dibuatkan virusnya. Yang lebih penting untuk diketahui adalah kemudahan penularannya. Karena jika ada banyak virus, namun tidak menyebar, maka sama saja seperti dengan tidak ada virus kan?

Karena itu mari kita ubah pertanyaannya :
Apakah mudah bagi virus untuk menyebar di Linux ?

Jawabannya : Tidak πŸ™‚
Bagi seekor virus, sangat sulit untuk menyebar di platform Linux.
Apalagi sampai pada level epidemik, dimana bisa ada jutaan komputer yang terinfeksi setiap harinya. Ini akan sangat sulit terjadi di Linux, dan memang belum pernah ada yang berhasil melakukannya.

Terlampir adalah sebuah email diskusi soal ini dengan kawan saya :

menurut saya linux tidak kebal terhadap virus, hanya bedanya dengan
windows:
– windows sudah lebih banyak yang pakai (pembuat virus tentu saja ingin
“ketenaran” semakin banyak yg terinfeksi akan membuatnya lebih bangga)
– varian linux terlalu banyak –> capek bikin virus yang bervariasi per
distro

beberapa reference:
http://www.desktoplinux.com/articles/AT3307459975.html
http://www.theregister.co.uk/2003/10/06/linux_vs_windows_viruses

Artikel2 ini sudah dibuat sejak tahun 2003. Dan saat ini (desktop) Linux jelas sudah JAUH lebih populer daripada 5 tahun yang lalu – sehingga mustinya sudah jauh lebih menarik untuk menjadi target .

Pertanyaannya: dimana virus Linux ? πŸ™‚

Ada beberapa penyebab kenapa virus sulit berkembang di Linux :

(1) Secure default install : closed services :
Berbagai distro Linux sekarang sudah jauh lebih bijak daripada 5 tahun yang lalu. Misalnya, default install Ubuntu bahkan tidak menjalankan SSH server. Default install berbagai distro Linux sekarang tidak ada menghasilkan open listening port.

(2) Secure default install : non-admin default access :
Berbagai distro Linux sekarang mempraktekkan hal ini dengan baik, dan berimbang dari segi kemudahan vs keamanan : dengan implementasi sudo, maka sehari2 user bisa bekerja dengan produktif dengan aman karena bukan sebagai root user.

(3) Application-level firewall :
Merupakan software terpisah di Windows — di beberapa distro ini adalah layanan yang sudah disertakan secara default. Misal: AppArmor di Suse/Imunix/Ubuntu/dll.

App-firewall kini makin penting, karena makin banyak security hole di aplikasi yang di eksploit — bukan lagi di level operating system.

Dan masih ada beberapa hal lainnya.
Bagi pemerhati topik computer security, sangat menggembirakan melihat bahwa ada tindakan-tindakan proaktif dari berbagai vendor Linux. Dan karena disandarkan pada pondasi security yang solid, Unix/Linux, maka hasilnya juga cukup menggembirakan.
Yaitu tercapainya keseimbangan antara security dengan kemudahan pemakaian.

Menilik semua faktor tersebut, saya kira akan sulit bagi sebuah virus untuk dapat berkembang sampai ke level epidemik — sebagaimana yang terjadi dengan berbagai virus di platform Windows.

Salam, HS

Satu lagi pendapat yang menarik adalah dari John Stewart, Chief Security Officer Cisco. Pada pidatonya di konferensi AusCERT 2008, John menyatakan bahwa karena anti-virus yang ada tidak efektif (komputer tetap bisa terinfeksi), maka sebetulnya sia-sia / tidak ada gunanya.

Dikutip :

By Liam Tung, ZDNet Australia
Posted on ZDNet News: May 21, 2008 5:41:27 AM

Companies are wasting money on security processes–such as applying patches and using antivirus software–which just don’t work, according to Cisco’s chief security officer John Stewart.

Speaking at the AusCERT 2008 conference in the Gold Coast yesterday, Stewart said the malware industry is moving faster than the security industry, making it impossible for users to remain secure.

“If patching and antivirus is where I spend my money, and I’m still getting infected and I still have to clean up computers and I still need to reload them and still have to recover the user’s data and I still have to reinstall it, the entire cost equation of that is a waste.

“It’s completely wasted money,” Stewart told delegates. He said infections have become so common that most companies have learned to live with them.

Jadi kuncinya adalah pencegahan. Jika suatu sistem sulit untuk ditembus, maka virus akan sulit untuk bisa menyebar. Dan pada pembuat virus pun jadi kehilangan minat.

Dengan menggunakan Linux, kita sudah secara efektif memblokir berbagai macam virus / trojan / spyware. Kita jadi bisa bekerja dengan tenang tanpa perlu memusingkan soal virus lagi. Sangat menyenangkan bukan ?

DompetJebol.com

Ketika sedang memeriksa Kronologger.com, saya baru menyadari keberadaan sebuah link – DompetJebol.com ? Apa itu ?

Dari frontpage nya, DompetJebol.com adalah :

Layanan microblogging gratis yang berguna untuk mencatat data pengeluaran anda sehari – hari. Posting setiap pengeluaran anda dan lihat apa komentar orang lain.

Is this what I’ve been looking for years …..??

Sejak masih menggunakan Franklin REX PC, kemudian Psion 5mx, dilanjutkan dengan Nokia Communicator 9210, lalu Nokia Communicator 9500 dan kini Nokia E70 dan laptop saya; selalu berusaha untuk mencatat pengeluaran saya di PDA / smartphone / laptop saya.

Semua usaha ini selalu gagal, karena semua software yang saya temukan berbelit-belit dan/atau tidak praktis untuk digunakan dan/atau memiliki berbagai keanehan.
Akhirnya selalu mengandalkan ingatan saja. Namun, kadang jadinya ada yang terlupa untuk dicatat.

Bagaimana dengan DompetJebol.com ?

Posting / mencatat pengeluaran : melalui http://dompetjebol.com/m/posting.php, muncul halaman yang ringkas dan hemat bandwidth. Nyaman diakses dari handphone.

Kita memasukkan data-data yaitu (1) jumlah pengeluaran (2) kategori pengeluaran (3) keterangan, dan klik tombol “Posting”.
Yeesssssss! Super mudah & cepat πŸ˜€

Rekap / laporan pengeluaran : cukup klik di link Journal-Ku

Maka kemudian akan muncul total pengeluaran selama ini, hari ini, dan bulan ini. Berikut dengan detail selengkapnya.
Dan tetap dalam format yang ringkas, sehingga cepat diakses dari handphone / pda.

That’s it ! Simple & to the point.

Saat ini DompetJebol.com sudah di bookmark di handphone saya πŸ™‚

Mudah-mudahan nantinya bisa juga di update via sms, misal : “kron post DJ 250000 beli cemilan” πŸ˜‰

Terimakasih sekali lagi kepada Kukuh untuk aplikasi web nya yang bisa membantu saya. Mungkin ada beberapa masukan kecil saja untuk DompetJebol.com :

(1) Tags : pada saat ini pengeluaran dipilah berdasarkan kategori yang sudah fixed. Mungkin bisa juga alternatifnya adalah berdasarkan tags, yang bisa di definisikan sendiri oleh masing2 pengguna

(2) JurnalKu : pada saat ini belum ada pilihan tampilan per Kategori (atau tags, jika nanti ada fasilitas tags). Yang sudah ada adalah total semua, total bulan ini, dan total hari ini.

Semoga situs ini bisa terus semakin sukses !

Terimakasih, pak Polisi !

Tadi malam sekitar pukul 00:15, saya sedang mengemudikan mobil di daerah Tangerang. Baru kembali dari airport, silaturahmi dengan kawan lama dari Inggris. Jalanan cukup sepi, jadi saya bisa mengemudi dengan tenang. Anak-anak sudah lelap semua di bangku belakang – yang diratakan, sehingga bagasinya menjadi luas; dan tadinya adalah tempat bermain mereka.

Tiba-tiba, ada lampu merah yang diayun-ayunkan di depan saya. Karena kaget, mobil saya hentikan agak mendadak, walaupun sebetulnya jaraknya masih jauh. Ternyata ada beberapa polisi yang sedang berada di tengah jalan. Oh, sepertinya ini razia.

Saya buka kaca dan menyapa polisi yang menghentikan kami, “Ada apa pak?”. Dijawab oleh beliau, “Bisa saya cek surat-suratnya pak? Juga tolong hidupkan lampu dalamnya”.
Karena mobil berhenti mendadak, posisinya agak ke tengah jalan. Saya tanya, apakah perlu dipinggirkan dulu? Mungkin karena sudah tengah malam dan jalanan sepi, petugas polisi tsb menjawab tidak apa / tidak perlu.

Saya berikan STNK & SIM saya, dan lalu lampu dalam saya hidupkan. Beberapa anak-anak bergeser dari posisinya. Helen terbangun dan juga kaget melihat saya dihentikan polisi. Saya cengar-cengir πŸ™‚

Surat-surat beres, dan isi mobil tidak ada yang mencurigakan, maka kami dipersilakan untuk berjalan kembali. Saya pamit sambil mengucapkan terimakasih.
Sepertinya petugas tersebut agak terkejut. Raut mukanya agak letih. Saya cuma bisa membayangkan bagaimana kalau saya disuruh bertugas di tengah malam, di tengah jalan, seperti itu juga.

Saya ucapkan alhamdulillah masih ada petugas / institusi yang peduli. Saya jelaskan ke Helen, bahwa dengan sering razia seperti itu, mudah-mudahan orang-orang jadi tergerak untuk mengemudi dengan baik. Paling tidak, melengkapi surat-suratnya.

Selain itu, jika dilakukan cukup sering, juga bisa membantu mengurangi kejahatan.
Kebetulan di malam sebelumnya, ada sebuah mobil kami yang pada pagi hari ditemukan sudah terbuka pintu depannya. Untungnya, mobil tersebut dilengkapi dengan sebuah killswitch – sebuah tombol tersembunyi yang harus diaktifkan terlebih dahulu, agar mobil tersebut bisa di starter. Maling amatir itu jadinya gagal menggondol mobil tersebut πŸ™‚

Anyway, kalaupun mobil tersebut berhasil digondol, tapi kemudian maling tersebut bertemu tim razia, maka tentu usahanya tersebut akan jadi gagal.

Di daerah Tangerang sepertinya cukup sering diadakan razia seperti ini. Demikian juga sekitar daerah Senen, saya sudah beberapa kali bertemu razia seperti itu sekitar pukul 3 pagi.
Setiap kali saya dihentikan adalah sedang dalam keadaan letih, namun saya selalu ucapkan terimakasih. Karena saya tahu bahwa saya sendiri tidak mampu ditugaskan di tengah jalan di tengah malam seperti itu, sambil menghadapi para pengendara yang cemberut karena kenyamanannya berkendara terganggu.

Terimakasih para Bapak Polisi. Semoga bisa terus semakin baik dalam menjalankan tugas-tugasnya.