Adheaven - Webpreneur, Futurist and Technologist

The official Natali Ardianto blog

22 March 2009

Yahoo! Developer Network

Tadi pagi jadi pergi ke eventnya Yahoo! Developer Network di Ritz-Carlton. Disitu dibahas mengenai Yahoo! Blueprint buat mobile devices. This is the most interesting stuff of them all! Jadi konsepnya, user request ke server blueprintnya yahoo, yahoo akan menyerahkan semuanya baik headers maupun content ke kita. Kita proses dan response ke server yahoo blueprintnya adalah XML format, dan yahoo nantinya yang mengoutputkan ke mobile sesuai karakteristik masing-masing mobile phone browsers! Jadi whether you are using wml browser, iPhone browser, Opera mini, dan browser apapun (event XHTML!), Yahoo akan mengurusnya untuk elo. Hoiya, juga bisa langsung jadi widget Yahoo GO! lhooo. Kelemahannya ya interface dan warnanya jadi template banget (although I don't know about the color ya, mungkin bisa diubah?)

Taaaapppiii, gwe sudah coba bikin. Hasilnya di http://m.ardianto.com didapat dari tutorial yang ada di SDK-nya. Ini program dimana kita login twitter, dan resultnya adalah 20 feed terakhir twitter, dengan kemampuan status update. Gwe belum apa-apa sudah frustasi, keluar error ini:
Gwe benar-benar bingung dengan error ini. Gwe search di Google ndak nyaut. Gwe search di box searchnya YDN malah kosong melompong (yang gwe search keyword error bahasa inggrisnya). Bahkan error code 606 dan 601 ndak ada tanda-tandanya. Anehnya lagi, community drivennya hanya dari Blog dan YahooGroups! Pantes di search-search ndak nemu huhuhu.

Gwe cek langsung di program PHPnya, jalan dengan normal koq, tidak keluar error PHP satu pun. Apa yang salah? Struktur xml-nya? Lha wong cuma copy paste dari SDK? Kalau teman-teman mau cek xmlnya silahkan, http://www.ardianto.com/twitter_sample/index.php?username=email.buat@login.twitter.com&password=password.twitter.

Trus, satu pertanyaan, ndak ada semacam validator ya? Karena katanya format XML-nya stict, ngga boleh ada salahnya dikit. Udah gitu kalau gwe akses langsung pagenya (mengakses page ini: http://www.ardianto.com/twitter-sample/ ) langsung download. Wahduh, gimana cara manipulasi mime-nya ya supaya tetap keluar secara normal. I know header content-type-nya dimatiin atau diganti text/xml, tapi ya gwe ngga mau repot on dan off-kan. How how how?

Well, biasanya sebuah API itu bagus karena community-nya, yaitu mostly dari forum. Lha ini cuma ada blog dan mailing list. Jangan sampai gwe harus ikut milisnya, nanya dan menunggu jawabannya beberapa menit (or even hours), dan yang paling apes, yang lain juga ngga pada tahu, jadinya ngga ada yang jawab. Kalau sudah begini, mending just go to the sea.

Update: Hari minggu jam 12.30 ngecek http://m.ardianto.com, coba login dan berhasil! It's a miracle! Wakakaks... I think there's a hand of gods here :P

Create Post

08 March 2009

Computer Fraud and Abuse Act, the California Anti-Phishing Act and the Controlling the Assault of Non-Solicited Pornography and Marketing Act (CAN-SPAM)

Kapan ya Indonesia punya undang-undang sedetail yang di Amerika. Gwe lihat, UU-ITE yang kita miliki ini masih sangat general dan bisa diintepretasikan macem-macem. Facebook baru-baru ini memenangkan sidang melawan tiga orang spammer. Well actually baru restraining order, tapi begitu mereka nantinya mencoba spam sedikit lagi, langsung masuk slammer (penjara). Tiga bulan yang lalu, Facebook juga memenangkan sidang melawan Guerbuez dan Atlantis Blue Capital senilai USD 873 juta karena mereka nyepam.

Gwe sudah kebayang, Urbanesia.com nantinya pasti banyak melalui usaha-usaha orang tidak bertanggungjawab untuk melakukan spamming, attack, injection dan segala jenis usaha merusak lainnya. Walaupun saat ini kita sudah melakukan segala upaya untuk menghindarinya seperti good codeship, mengikuti semua protokol security yang ada, whitelisting dan blacklisting, XSS filter, sistem yang mampu menghandle 3000 requests/second (for now) dan IDS di jaringan server nantinya, adanya Completely Automated Public Turing test to tell Computers and Humans Apart (sederhananya, CAPTCHA hehe) dan security measures lainnya, tapi yang namanya spammer ya pasti nemu celah, misalnya mengirim email dengan memanipulasi From headernya, dan teknik-teknik lainnya.

Gwe sih berharap kita tidak perlu sampai melalui tahap persidangan nantinya untuk menghadapi orang-orang yang berusaha merugikan para visitor kami nantinya. Dan semoga saja UU-ITE memiliki UU turunan lainnya yang lebih detail dan spesifik dalam menghandle masalah di dunia IT ini. Bayangkan, CAN-SPAM saja secara spesifik menuliskan bahwa tindakan yang melawan hukum salah satunya adalah melakukan manipulasi header From tersebut dengan alamat email milik orang lain. Padahal, untuk memanipulasi From header itu mudahnya minta ampun. Cukup . Coba cari di UU-ITE kita, ada ngga yang mengatur sedetail ini?

Gwe dulu pernah menjadi narasumber pemerintah untuk penyusunan standar kompetensi bidang keahlian programer komputer (lihat di PDF ini, halaman 2 nomer 33). Sejujurnya, waktu itu revisi dari gwe yang paling banyak dibandingkan yang lainnya, karena gwe waktu itu benar-benar concern dengan yang sudah dibuat oleh tim penyusun (tanpa bermaksud undermining them lho yaa). Gwe dikasih tanggung jawab sebagai narasumber untuk memperbaiki dan melengkapinya, dan gwe melakukannya dengan tingkat keseriusan yang tinggi. Apalagi gwe merevisinya di sela-sela gwe ngajar waktu itu. Benar-benar melelahkan. Gwe sebenarnya waktu itu masih kurang puas dengan revisi yang sudah gwe lakukan, tapi ternyata di kodenya memang sudah dipersiapkan satu kolom yang menunjukkan progress revisi (semacam versi gitu) yang akan dilakukan berkala, setiap 6 bulan s/d 1 tahun sekali, jadi ya gwe juga ngga neko-neko.

Ngomong-ngomong tentang UU-ITE, sudah tahu belum kalau semua informasi elektronik, termasuk email yang elo kirim itu bisa dijadikan barang bukti yang sah? Usaha untuk memeras, menakut-nakuti, SARA, porno dan lain-lain yang tertulis secara elektronik can be used and held against you in the court of law. Ini ada cuplikan sedikit mengenai beberapa hal that can get you in trouble:

Pasal 29
Setiap Orang dengan sengaja dan tanpa hak mengirimkan Informasi Elektronik dan/atau Dokumen Elektronik yang berisi ancaman kekerasan atau menakut‐nakuti yang ditujukan secara pribadi. Jadi kalau mau teror orang, lewat telepon saja.

Pasal 30
(1) Setiap Orang dengan sengaja dan tanpa hak atau melawan hukum mengakses Komputer dan/atau Sistem Elektronik milik Orang lain dengan cara apa pun. Hacking.
(3) Setiap Orang dengan sengaja dan tanpa hak atau melawan hukum mengakses Komputer dan/atau Sistem Elektronik dengan cara apa pun dengan melanggar, menerobos, melampaui, atau menjebol sistem pengamanan. Breaching.

Pasal 31
(1) Setiap Orang dengan sengaja dan tanpa hak atau melawan hukum melakukan intersepsi atau penyadapan atas Informasi Elektronik dan/atau Dokumen Elektronik dalam suatu Komputer dan/atau Sistem Elektronik tertentu milik Orang lain. Sniffing.

Pasal 32
(3) Terhadap perbuatan sebagaimana dimaksud pada ayat (1) yang mengakibatkan terbukanya suatu Informasi Elektronik dan/atau Dokumen Elektronik yang bersifat rahasia menjadi dapat diakses oleh publik dengan keutuhan data yang tidak sebagaimana mestinya. Kalau diinterpretasikan mentah-mentah, harusnya foto-foto pribadi di ponsel adalah data yang bersifat rahasia. Jadi siapa saja yang ngebocorin foto porno artis harusnya sih bisa dikenakan pasal ini.

Pasal 33
Setiap Orang dengan sengaja dan tanpa hak atau melawan hukum melakukan tindakan apa pun yang berakibat terganggunya Sistem Elektronik dan/atau mengakibatkan Sistem Elektronik menjadi tidak bekerja sebagaimana mestinya. Intrusion.

Yah sejalan dengan makin berkembangnya TI di Indonesia, gwe percaya pemerintah bakalan lebih peka lagi dengan membuat undang-undang yang lebih detail. Setahu gwe undang-undang yang mengatur konten situs pun sekarang sudah ada (atau masih draft ya? lupa). Bahkan penyedia jasa pun juga harus proaktif, karena kalau tidak bisa ikut terseret hukum. Nah lo.

Create Post

04 March 2009

Word Boundaries Regex di Mysql

Ini hanya quick post, supaya inget aja di hari tua nanti. Di MySQL kita juga bisa pakai Regex (regular expression, tapi ngga ada regular-regularnya, kompleks habis) dengan sintaks rows_of_haystack REGEX regex_needle. Detilnya baca di manual MySQL wae. Yang ingin gwe bahas adalah bagaimana mencari sebuah "kata" dalam sebuah sequence string. Please note, bukan sebagian dari sebuah kata, tapi satu kata (atau frase). Misalnya ada beberapa baris data seperti berikut:
PT. Ayoklik Indonesia
PT Ayoklik Indonesia
Ayoklik Indonesia PT
Ayoklik Indonesia, PT.
Jika saya mencari sebuah kata 'ayo' menggunakan query LIKE '%ayo%', maka yang keluar adalah empat baris di atas, padahal SALAH. Tapi kalau pakai RLIKE '[[:<:]]ayo[[:>:]]', maka keempat baris di atas tidak akan keluar, sehingga resultnya BENAR karena ayo != ayoklik. Sintaksnya kalau di PHP cukup pakai \b, seperti ini: eregi('\\bayo\\b', $subject). Note: RLIKE itu sinonim dari REGEX.

Inilah yang disebut word boundaries. Word boundaries berlaku di semua semua karakter non alphanumeric characters dan underscore (_). Ini juga termasuk jika ada di awal baris (^), atau di akhir baris ($).

Pertanyaanya, kalau saya cari PT (tanpa titik di belakangnya), apakah empat row itu akan keluar jika menggunakan REGEX? Tentu saya keluar! Word boundary berlaku juga di awal dan di akhir baris. Jadi \bPT\b akan tetap mereturn keempat baris tersebut, walaupun di baris kedua kata PT ada di awal dan di baris ketiga kata PT ada di akhir. Sama halnya dengan \bindonesia\b, keempatnya juga akan mereturn true. Convenient bukan?

Jadi buang sintaks LIKE jauh-jauh, karena ini adalah pattern matching yang clumsy, useless untuk search. Tapi perlu diperhatikan, REGEX memerlukan processing power CPU yang jauh lebih besar. Kalau ngga mau pusing ya pakai Full-text search wae. Ndak perlu dibuat indexnya, langsung pakai MATCH (kol1, kol2) AGAINST ('kata kunci' IN BOOLEAN MODE).

Create Post