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 

Pergeseran Waktu dalam Perjuangan

Beberapa bulan ini saya merasakan pergeseran waktu kembali. Yup, hari terasa begitu cepat berlalu tahun ini, siang kini terasa semakin cepat dan malam menjelang pagi terasa begitu lama. Beberapa bulan ini saya kembali menjadi kalong, tidur dikala para pekerja terjebak macet menuju kantor mereka dan bangun dikala pekerja hendak makan siang. Well, sejak kuliah (dan bahkan sejak SMA) saya sudah terinfeksi dengan pola hidup seperti ini. Belajar dan bekerja disaat semua orang terlelap bagi saya mempunyai nuansa tersendiri. Kadang jika kita ingin meraih sesuatu ada hal yang harus kita korbankan, entah itu kebersamaan atau waktu tidur. Dan sayangnya saya selalu ingin meraih sesuatu sehingga ada saja yang harus dikorbankan. Apa yang ingin saya raih saat ini? Hmm.. hanya satu, yaitu ilmu (saya bohong, plus uang tentunya). Berbicara tentang keinginan yang diraih, saya jadi teringat percakapan dengan teman saya malam kemarin, seseorang yang ingin bekerja dibidang yang disukai (tapi dengan salary yang setimpal). Read the rest of this entry »

ls direktori dalam format tree

Apabila kita bekerja dengan konsol dan ingin mengetahui struktur direktori tertentu biasanya kita melakukannya dengan perintah ls nama_direktori, lalu kita ls lagi direktori di dalamnya. Jika kita bekerja di desktop, kita dapat mengetahui struktur direktori tertentu dengan membuka penjelajah berkas (file browser). Sebenarnya di konsol, ada perintah tree untuk melihat senarai direktori dalam format tree.

tree - list contents of directories in a tree-like format.

Saya menggunakan ubuntu, cukup mudah menginstalnya jika perintah tree belum tersedia.

sudo apt-get install tree

Lalu kita lihat seperti apa keluarannya:

akeda@akeda-desktop:~$ tree ~/www/keuangan/app/models
/home/akeda/www/keuangan/app/models
|-- activity.php
|-- activity_child.php
|-- behaviors
|   |-- empty
|   |-- formatable.php
|   `-- money.php
|-- budget.php
|-- budget_detail.php
|-- budget_detail_description.php
|-- city.php
|-- datasources
|   `-- empty
|-- funding_source.php
|-- group.php
|-- groups_module_action.php
|-- journal_bank.php
|-- journal_cash.php
|-- journal_tax.php
|-- menu.php
|-- menu_type.php
|-- module.php
|-- module_action.php
|-- province.php
|-- site_setting.php
|-- tax_type.php
|-- transaction.php
|-- transaction_revision.php
|-- unit.php
|-- unit_code.php
|-- user.php
|-- user_log.php
`-- volume.php

2 directories, 30 files

Sebernarnya keluaran hasil tree di atas berwarna tergantung tipe berkas dan ekstensinya (yang terdefinsi dalam dircolors). Untuk penggunaan lebih lanjut silahkan coba-coba dan baca man tree.

Copy dari clipboard konsol (X11)

Suatu saat Anda berada dalam konsol server yang tidak memiliki tetikus (mouse). Katakanlah Anda perlu mengkopi suatu berkas ke berkas lain, mungkin langkahnya seperti berikut:

  1. membuka suatu berkas (misal dengan vim), dan
  2. memblok seluruh baris lalu melakukan kopi (Ctrl-C), tutup berkas, dan
  3. membuka berkas lainnya untuk mem-paste-nya.

Ups, mungkin Anda lupa bagaimana perintah di Vim untuk memblok keseluruhan baris. Disini xclip membantu Anda. Hal yang umum dilakukan kita adalah mengkopi isi dari berkas SSH Public Key di dalam berkas ~/.ssh/id_rsa.pub. Contohnya:

cat ~/.ssh/id_rsa.pub | xclip -sel clip

Silahkan klik Ctrl-V di tempat yang Anda inginkan. Untuk yang belum terinstall xclip, silahkan unduh di sini. Untuk pengguna Ubuntu:

sudo apt-get install xclip

Referensi:
http://sourceforge.net/projects/xclip/
http://help.github.com/linux-key-setup/

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.

  Older Entries