ronny.haryan.to

Icon

Print: $9.50 — Online: free

Membuat Kamus Online

Seringkali saya punya ide untuk membuat suatu aplikasi yang mungkin bisa berguna buat orang banyak, misalnya membuat kamus online bahasa Indonesia<->Inggris yang professional, bukan sekedar terjemahan kata per kata saja tapi juga contoh penggunaan, konteks yang berbeda-beda, part of speech / fungsi kata, idiom, padanan kata, etymology, dan referensi atau link ke kata atau sumber lain. Saya juga ingin kamus online ini mempunyai API web services misalnya lewat SOAP sehingga bisa diintegrasikan ke aplikasi lain (e.g. Dashboard widget atau GNOME applet), atau word of the day lewat RSS misalnya. Kamus ini juga nantinya bisa menampung masukan dari sumber-sumber lain yang berbeda-beda, mirip seperti dictionary.com. Sukur-sukur bisa dibuat cukup generik sehingga aplikasinya bisa digunakan kembali untuk keperluan lain (misalnya kamus Indonesia-Indonesia, atau Indonesia-Jawa, dsb.). Idealnya aplikasinya akan berlisensi free dan open source, begitu pula dengan isinya kurang lebih akan menggunakan lisensi seperti Creative Commons atau GNU FDL.

Karena saya orang teknis, saya cenderung mempunyai ide yang berawal dari design aplikasinya dahulu ketimbang memikirkan bagaimana saya akan mendapatkan contentnya. Saya sadar bahwa pada akhirnya aplikasi yang secanggih dan seuser-friendly apa pun jika tidak mempunyai isi yang bernilai kepada penggunanya sama saja bohong. Saya rasa ini adalah masalah klasik yang dihadapi web developers yang cenderung technical.

Membuat kamus dari scratch (nol) itu bukan pekerjaan mudah, dikerjakan full-time oleh seorang professional saja bisa memakan waktu bertahun-tahun barangkali. Alternatif yang ada adalah menggunakan sumber yang sudah ada dengan meminta ijin kepada pemiliknya (lebih kecil kemungkinannya tapi tidak ada salahnya dicoba), dan/atau membuat sendiri rame-rame a la Wiki. (Catatan teknis: Ini berarti ada dua lagi feature dari kamus online ini, yaitu bisa diedit oleh siapa saja (setelah login, dan mungkin menggunakan captcha), dan ada versioning control untuk jaga-jaga kalau kena vandalisme.) Sumber yang sudah ada yang bisa diadaptasi idealnya adalah yang berkualitas tinggi, seperti kamus edisi cetak yang dijual di toko-toko buku (walaupun tidak berarti semua kamus edisi cetak yang dijual di toko buku berkualitas tinggi), bukan sekedar kamus online buatan si Panjul atau si Unyil. Sejujurnya, dan cukup disayangkan, sampai saat ini saya belum menemukan satu pun kamus Inggris<->Indonesia online yang isinya berkualitas mendekati kamus edisi cetak.

Saya sudah punya gambaran garis besarnya untuk design aplikasinya untuk saat ini. Yang saya rasa lebih penting adalah memikirkan bagaimana mendapatkan isi kamus yang berkualitas. Ada ide atau saran lain barangkali?

Update: SEAsite dari Pusat Studi Asia Tenggara, Northern Illinois University menyediakan kamus Inggris-Indonesia yang mendekati apa yang saya cari. Mudah-mudahan jika waktu dan pemilik kamusnya mengijinkan saya akan konversi ke database dan interface yang seperti saya ceritakan di atas.

Ruby on Rails

Rails logoI finally got a chance to play around with Ruby on Rails. I looked around for a simple and straightforward tutorial that covers the basic, and settled with Curt Hibbs’ Rolling with Ruby on Rails on ONLamp.com. It’s a two-part article. Not overly long to follow, like 30 minutes or so (including searching and reading some API documentation), and I got a functional application at the end of the tutorial. All without too much knowledge about Ruby language, just have some prior understanding of the MVC (model-view-controller) model general concept and you’re all set.

Ruby on Rails is what J2EE should have been.

Oh, man, was I ever excited! After finishing that tutorial, I immediately searched for information about the existance of an Oracle adapter for ActiveRecord. It turned out that there is one, it’s included in recent versions of ActiveRecord and is based on the ruby-oci8 driver. I started my development Oracle server and immediately generated a scaffold for a test model. There were two minor problems. The first problem was that my table and column names did not follow the proper naming conventions expected by Rails, so I had to override it in the model class with set_table_name (doc) and set_primary_key (doc). No worries. The second problem was that the web server seemed to freeze after about 5-10 seconds of inactivity. It must have been something to do with the oci8 driver or ActiveRecord’s oci8 implementation, because it worked flawlessly with mysql. I didn’t have time to investigate further. It was good enough for me for now. I’m sure if it really was a problem with the driver then someone more knowledegable will catch it real soon and we’ll have a fix.

So, in conclusion, I wish Ruby on Rails had existed many years ago therefore, it could save me many weeks worth of tedious and error-prone coding. It beats PHP and J2EE any day. I will definitely use Ruby on Rails for my next web development project. And to summarize for those of you that are lazy or don’t have the time to follow the tutorial, install Ruby on Rails, then create a table in your database called products with these columns: id, name, description. Then create the rails structure with rails productlist, go inside the newly-created productlist directory, edit config/database.yml accordingly then run ruby script/generate scaffold Product. Then run the built-in WEBrick web server with ruby script/server then open your browser and go to http://127.0.0.1:3000/products. VoilĂ ! That was ‘hard’. Now you can concentrate on what’s important, your application and its design, not tedious, repetitive and error-prone coding.

Things I Learned Today

  1. I finally read this article (which had been sitting for a long time in my thick pile of printed “read-later” articles) from Apple Developer Connection about XMLHttpRequest which plays a major part in AJAX, which has been discussed a lot lately in the web development area and is used by popular services such as Gmail, Google Maps, Google Suggest and many more.

  2. Maybe I should have named this category “Things I Learned Yesterday” since I usually post after midnight.

  3. There are still a lot of people who are so naive and believe everything they got from the Internet or from forwarded emails, especially urban-legend or scarelore kind of stories. I hate those.

  4. CeBIT Australia exists and it will be held from 24 to 26 May 2005 at Sydney Exhibition Centre in Darling Harbour. I’ll be there if I don’t have any exams or anything like that during that time. Free online registration.

  5. Need to put less ginger and more salted fish for my spicy eggplant with minced pork.

  6. A second look on iSCSI and iSCSI on Linux, and a first introduction to Vinum Volume Manager after reading a Slashdot post about Firewire storage.

  7. There are several available options for backup solutions that are POSIX ACL aware, including using star, proper backup program like Arkeia, patched NFS (out-of-the-box with SuSE), rsync with ACL patch, etc. Info from this post, googled after answering a mailing list post.

  8. “IT Research Methods” is such a boring and useless (at least for me) subject. It’s hard to force myself to do the assignments for this subject. I wouldn’t have taken the subject if it weren’t mandatory. Oh, what the hell, might as well make something useful out of it since I’ve already paid for it.

  9. Evolution 2.0.x doesn’t provide an alarm for contact items such as for contact birthdays and anniversaries. I haven’t looked at the source code yet so I don’t know how hard it is to implement this. It’s surprising since I thought many people would have wanted this useful feature.

About

Ronny Haryanto is a technology addict/chef wannabe living in beautiful Melbourne, Australia.

Read more…

Follow Me on Twitter

Follow @ronny on Twitter where I post much more often than my blog.