Goto post entries

JavaScript is disabled or you're using old browser, please turn on your JavaScript or upgrade your browser to see fancy looking.

  Older Entries 

Sebelum Menggunakan Email Component CakePHP

Yang umum dalam halaman pendaftaran adalah selesai mendaftar akan ada konfirmasi telah mendaftar. Halaman konfirmasi tersebut bisa saja dengan halaman web atau dikirim ke email pendaftar. Kebetulan saya sedang mengerjakan hal serupa dimana konfirmasi juga dikirimkan ke email pendaftar. Saya menggunakan CakePHP untuk mengembangkan aplikasi, dimana telah tersedia komponen Email untuk memudahkan pekerjaan seperti ini. Penjelasan di cookbook CakePHP, bagian Email Component itu sudah cukup jelas dan sudah saya coba. Tapi jika Anda mengalami kendala tidak terkirimnya Email, mungkin saja sistem operasi Anda belum terinstall MTA (Mail Transfer Agent). Anda bisa gunakan sendmail. Instalasi MTA dan asosiasinya dengan DNS Server-nya tidak akan saya jelaskan disini, saya sendiripun belum pernah mencoba :D . Untuk coba-coba saat pengembangan, Anda bisa menggunakan MTA sendmail. Saya menggunakan Ubuntu, untuk menginstall-nya gunakan perintah ini:

sudo apt-get install sendmail mailutils

Untuk mencoba mengirim email bisa gunakan utiliti mail :

mail -s "Test" me@example.net < /var/log/email.info

Ini akan mengirim email ke me@example.net dengan subject Test dan isi pesannya adalah isi dari berkas /var/log/email.info. Kebetulan server development di tempat saya MTA-nya sudah terasosiasi dengan DNS Server-nya jadi saya bisa menerima email tersebut ke inbox gmail saya, tanpa masuk ke spam, from-nya otomatis terisi oleh nama_user_di_server_development@nama_domain. Jika belum terasosiasi dengan DNS-Server-nya akan nyangkut di spam. Jika sudah terinstall MTA dan bisa terkirim emailnya ke tujuan, saatnya mencobanya dengan CakePHP. Good luck!

Rencana Menulis Buku dan Mengajar

Ketika seseorang bertanya hal teknis, saya sering memberi jawaban untuk googling (mungkin sedang tidak mood untuk menjelaskan) tapi terkadang saya memberi jawaban panjang lebar (yang mungkin malah membuat sipenanya semakin bingung). Saya yakin kesalahan ada pada saya dalam hal menjelaskan. Untuk itu saya berusaha mengasah cara penyampaian dengan mulai berbicara di depan banyak orang. Jika tidak halangan, insyaallah, hari sabtu dan minggu saya akan membawakan materi di acara bertema Joomla di Paramadina. Dengan membiasakan diri menyampaikan materi di depan banyak orang, saya berharap ke depannya akan lebih mudah menyampaikan suatu materi kepada orang lain. Di waktu saya yang tidak terlalu sibuk ini, saya terpikir ingin menulis buku dan mengajar. Untuk menulis buku ada beberapa tema yang ingin saya tuliskan, antara lain: Python atau Django, cakePHP, jQuery dan HTML5+CSS3. Saya tidak tahu apakah tema-tema tersebut sudah banyak bukunya atau belum di Indonesia. Mungkin saya akan survey dulu untuk mencari tahu. Saya juga tidak tahu penerbit buku mana yang tepat untuk tema komputer. Rencana saya (kalau memungkinkan) adalah menggratiskan pengunduhan buku dalam format pdf atau HTML, tapi memungkinkan orang lain untuk mendapatkan hardcopy buku tersebut di toko buku. Ini seperti buku Dive Into Python. Saya tidak tahu apakah ada penerbit buku di Indonesia seperti Apress. Apakah memungkinkan di Indonesia jika tulisan kita lisensikan di bawah lisensi Creative Common tapi penerbit mau mencetaknya?

Dulu saat saya rajin ke Gramedia, saya sering menumpang membaca buku-buku komputer. Ada hal yang mengagetkan saya dari salah seorang penulis buku komputer Indonesia. Penulis ini banyak menulis buku komputer dan buku yang ditulis bukan buku terjemahan. Temanya meliputi elektronika dan bahasa pemrograman. Yang membuat saya kaget adalah tulisan yang ada di buku ini sudah saya baca semuanya di internet, dengan kata lain apa yang ada di buku-bukunya itu ada semua di internet, hanya saja berbeda bahasa. Ini bukan lagi kutipan, tapi kumpulan terjemahan halaman situs berbahasa Inggris ke bahasa Indonesia. Pantas saja buku komputer yang ditulisnya banyak sekali. Memang sekilas tidak ada yang salah, tapi seharusnya di buku tersebut di jelaskan bahwa tulisan bab sekian merupakan terjemahan dari halaman situs blablabla. Menurut saya mengambil referensi dari buku lain atau halaman situs itu tidak ada yang salah selama pengutip tidak menyalahi hak cipta penulis. Tapi ini menjadi tidak wajar jika banyaknya halaman yang diterjemahkan tanpa mengubah gaya penulisan. Buku-buku luar , seperti buku pemrograman Python atau HTML+CSS itu banyak sekali. Tapi mereka semua menulis dengan gaya yang berbeda dan mereka menyusun chapter-nya berbeda pula. Apakah penerbit Indonesia meloloskan buku seperti ini dengan mudah? Atau saya saja yang lebay? Dan juga kebanyakan buku komputer di Indonesia itu tidak di jaga kelanjutannya oleh penulisnya sendiri. Beberapa penerbit luar seperti O’reilly dan Apress menyediakan halaman resource tersendiri untuk buku yang diterbitkan, ini meliputi errata, halaman unduh dan bahkan penulisnya membuatkan situs khusus untuk buku tersebut sebagai wadah diskusi, saran dan kritik dari pembaca. Sepertinya berat juga jadi penulis *berpikir kembali sebelum menulis*.

Selain berkeinginan menulis, kenapa tiba-tiba juga ingin mengajar? Well, menulis itu mudah. Kita tidak langsung mengetahui apakah pembaca memahami atau tidak. Sedangkan dengan mengajar kita langsung bertatap muka, sehingga setidaknya bisa diketahui apakah penyimak memahami apa yang kita sampaikan atau tidak. Ada beberapa ide yang terpikir oleh saya dalam mengajar, antara lain:

  1. Jika saya mengajar yang berkaitan dengan bahasa pemrograman, saya ingin yang saya ajarkan nanti membuat kelompok, merencakan membuat suatu proyek sumber terbuka lalu mengunggahnya di repositori dengan sistem kontrol versi (seperti di github.com, code.google.com atau sf.net). Mereka akan menjalani siklus pengembangan aplikasi sumber terbuka. Jika hitungan mengajar materi pemrograman ini selama 6 bulan, maka cukup bagi mereka untuk merilis sampai beberapa versi stabil. Saya lihat belum ada (CMIIW) perguruan tinggi berbasis IT di Indonesia yang mempunyai repositori sistem kontrol versi sendiri seperti github atau sf.net. Padahal ini bisa menjadi pemicu mahasiswanya untuk berkarya dan berkontribusi di dunia aplikasi sumber terbuka.
  2. Di kampus saya ada kompetisi membuat perangkat lunak, tapi saya tidak tahu bagaimana proses pengembangan di belakangnya. Terkait dengan point no. 1, pastinya juri dapat memantau proses pengembangannya, juri dapat mengetahui siapa programmer yang paling aktif meng-commit. Selain penilaian secara fungsionalitas dan kekreatifan ide, seharusnya aplikasi juga dinilai dari kualitas kode yang dibuat. Mungkin ini agak sulit bagi juri jika harus mereview kualitas kode, tapi bisa digunakan skrip yang membaca dari repositori untuk melihat frekuensi baris komentar, membaca seberapa banyak log commit, frekuensi keaktifan programmer dalam commit — seperti Ohloh Analysis Summary. Dan baiknya setiap aplikasi menyediakan unit testing, sehingga juri bisa langsung melihat seberapa banyak unit test mencangkup aspek fungsionalitas aplikasi.

Ya ini hanya rencana yang saya ingin wujudkan, insyaallah.

Kesuksesan, Kegagalan dan Tanggung Jawab

Sejak pertengahan desember saya sudah tidak lagi bekerja di perusahaan. Saya sempat berpindah ke content provider juga, dan hanya empat hari saya bekerja. Lho kenapa? Jawabannya akan saya berikan nanti. Ada beberapa alasan yang membuat saya “untuk sementara ini” menjadi pekerja lepas saja. Sebelum memulai bercerita, kita flashback dulu di masa saat saya menjelang lulus kuliah. Faktor pertama yang membuat saya ingin bekerja di suatu perusahaan adalah uang, tapi itu dulu, saat saya baru pertama kali ingin bekerja. Saya sempat mengalami masa luntang-lantung hanya dengan datang ke kampus, ngobrol bersama teman, dan sesekali mengoprek robot tanpa menghasilkan uang sama sekali. Saya mulai mengkesampingkan idealisme saya dan berencana bekerja di perusahaan saja. Tanpa pikir panjang tawaran yang ada di depan mata saat itu pun saya ambil. Jelas saat itu, alasan utama adalah karena uang. Selain alasan uang, tentunya saya juga ingin mencari pengalaman dan ilmu. Saat bekerja disuatu perusahaan, saya merasakan idealisme yang mulai luntur. Saya tidak pernah lagi berpikir tentang kualitas karena saat bekerja saya lebih dituntut oleh waktu. Saya tidak sempat lagi untuk mencoba-coba hal baru, menerapkan hal baru bahkan untuk menulis kode secara rapih dan decoupling. Saya mulai berpikir “kapan saya bisa maju jika hanya berkutat dengan hal seperti ini terus”. Saat bekerja diperusahaan, saya harus menerima apapun pekerjaan yang diberikan. Meskipun gaya menulis kode saya tidak sesuai, saya harus tetap menerima. Saat merapikan pekerjaan lama, saya harus memilih diantara pekerjaan saya tidak selesai sesuai waktu atau memaksakan gaya menulis dengan yang sudah ada.
Read the rest of this entry »

svn:ignore yang menjengkelkan

Saat melihat blog Pak Budi Rahardjo saya jadi terpacu untuk menulis kembali. Konten blog tidak perlu selalu berisi hal teknis yang memerlukan waktu untuk menulisnya, tapi bisa kondisi hari ini. Yup hari ini saya dijengkelkan dengan sistem kontrol versi Subversion. Saya mulai membiasakan pekerjaan dan proyek pribadi untuk dikontrol versinya sejak saya bekerja di SIG. Yang menjengkelkan dari Subversion adalah exclude berkas yang tidak perlu di rekam versinya. Dalam Subversion digunakan perintah svn propedit svn:ignore untuk mengabaikan berkas di direktori kerja kita.

Tapi apabila kita banyak menggunakan berkas konfigurasi yang terpisah di beberapa direktori dan juga berkas temporari yang dihasilkan aplikasi, pekerjaan ini menjadi menjengkelkan. Belum lagi pengguna Subversion yang melupakan hal ini dan meng-commit berkas yang kita abaikan. Lalu kita ulang lagi svn rm dan menggunakan svn propedit svn:ignore kembali. Apakah ada solusi untuk ini ? Atau gunakan sistem kontrol versi lainnya seperti Git? Untuk Git, saya belum begitu paham. Tapi saya sudah coba gunakan github untuk skrip sederhana saya sekaligus untuk belajar. Jika saya tertarik, saya akan pindahkan proyek iseng saya ke github.

World University Names Database

I’ve been searching for university names database, but i didn’t find complete database that covers at least universities in 240 countries. I decide to crawl university names in LinkedIn and Webometric, since both give university names based on country code. If you are in hurry to get university names database, you can download them here. If you are interested to know how to crawl the LinkedIn and Webometric university names data and build the database, then hang on with me.

I used Python to crawl LinkedIn and Webometric. It was accidental, when i edit my profile on my LinkedIn, firebug shows ajax get request to populate university names on select element. So here is my python code to get LinkedIn university names based on country code:
Read the rest of this entry »

  Older Entries