Wednesday, January 29, 2014

NodeJS di dalam Meteor

Secara internal framework Meteor dibangun di atas NodeJS. Saat bekerja dengan Meteor, sebagai developer seringkali kita tidak peduli lagi NodeJS. Tetapi ada kalanya kita perlu tahu dimana path dari NodeJS. Ini langkah-langkahnya:
  1. Cari versi dari Meteor kita, kita namakan RELEASE. Maka dia terletak di ./.meteor/release/[RELEASE].release.json
  2. Lihat nilai dari key "tools", kita namakan TOOL_ID
  3. Maka path dari NodeJS adalah ./.meteor/tools/[TOOL_ID]/bin/node

Sunday, October 06, 2013

Seberapa lama waktu tidur siang yang kita perlukan.

Di dunia modern yang semakin sibuk ini, tidur siang, atau tidur sebentar, adalah kemewahan. Tetapi ternyata banyak ahli membuktikan bahwa tidur siang (atau tidur sebentar di tengah hari) sangat diperlukan untuk vitalitas kehidupan kita.

Kenapa kita perlu tidur siang? Banyak sebab. Sebab pertama karena kurang tidur di waktu malam. Ini juga mungkin yang sering saya alami. Maklum, pekerjaan programer/software developer itu banyak aspek seni dan kreatifitas, dan bagi saya, puncak kreatifitas di malam hari, di saat dunia sunyi.
National Sleep Foundation menyarankan agar setiap orang dewasa tidur 7-9 semalam. Tetapi berdasarkan studi CDC, rata-rata manusia dewasa tidur kurang dari 6 jam semalam.

Sebab kedua kita perlu tidur siang adalah kurangnya nutrisi. Kekurangan nutrisi menyebabkan badan cepat lelah. Kekurangan nutrisi dapat disebabkan karena kurangnya sarapan pagi, sehingga tidak cukup pasokan energi sampai malam. Atau juga disebabkan makanan yang kurang gizi.

Sebab lain, adalah karena memang secara alami badan diciptakan oleh Allah SWT, agar istirahat setelah waktu tertentu. Kita mengenalnya sebagai jam biologis.

Nah, kembali ke diskusi di judul, berapa lama waktu tidur  yang kita perlukan?

Untuk mengembalikan tingkat kewaspadaan, kita perlu tidur 10-20 menit.

Untuk meningkatkan proses kongitif dalam memori/daya ingat, maka kita perlu waktu 60 menit. Dengan durasi ini, maka dapat meningkatkan daya ingat kita, misalnya mengingat tempat, istilah dan lain-lain. Tetapi hati-hati, mungkin Anda pening saat bangun.

Tidur 90 menit, merupakan siklus penuh tidur. Durasi ini akan meningkatkan kerja otak dalam hal kreatifitas dan emosional dan pemrosesan memori, dalam belajar, misalnya belajar mengendarai sepeda. Bangun dari tidur durasi 90 menit ini memiliki inersia terkecil, maksudnya semakin kecil kemungkinan pusing/pening saat bangun, karena bangung pada waktu siklus yang pas.

Bila kita bangun dari tidur selama 30 menit, maka kemungkinan pusing saat bangun sangat besar. Inersianya paling besar.

Sumber:
How Long to Nap for the Biggest Brain Benefits
Calculate the Best Time to Nap with This Interactive Nap Wheel

Friday, September 27, 2013

R: bahasa/tool terbaik untuk belajar/praktek analisis data

Tidak dapat dipungkiri bahwa dunia digital semakin membutuhkan aspek analisis pada data. Kita mengenal fenomena "ledakan informasi", tetapi sesungguhnya yang terjadi adalah "ledakan data". Mendapatkan data telah menjadi proses yang mudah. Mengolah data untuk menjadi informasi dan mengolah informasi itu sendiri menjadi proses yang semakin rumit. Kerumitannya terletak pada semakin besarnya data. Sehingga wajar kalau akhir-akhir ini perburuan pengetahuan analisa "big data" semakin marak.

Sebagai analis data, kita tidak hanya memerlukan ketrampilan dan pengetahuan yang memadai dalam statistik, database, data warehouse (ETL), data mining, interpretasi data/informasi dan juga visualisasi informasi. Beragam ketrampilan tersebut memerlukan tools yang tepat, yaitu tools yang dapat membantu pekerjaan kita lebih efisiean dan efektif. Memilih tools yang tepat adalah tugas kedua kita setelah mendalami pengetahuan dan ketrampilan tsb di atas. Atau bahkan dalam mempelajari ketrampilan dan pengetahuan tsb justru kita memerlukan tools terlebih dahulu. Problem ini memang akhirnya menjadi seperti ayam dan telur, mana duluan? Paling tidak menurut saya, pengetahuan dasar stastistik dan database perlu terlebih dahulu kita miliki, baru kemudian memanfaatkan tools yang tepat, kita mengembangkan pengetahuan dan ketrampilan analisis data. Pengetahuan dasar statistik kita dapatkan di bangku sekolah (menengah/tinggi). Sekarang tinggal database, kita memang perlu mengambil mata kuliah database (khususnya relasional) atau kursus atau otodidak.

Nah, sekarang permasalahan utama kita adalah memilih tools. Banyak faktor yang perlu kita perhatikan dalam memilih tools Alhamdulillah kita berada dalam dunia informasi dan internet, sehingga untuk keperluan ini kita dapat melakukannya dengan search di internet atau melihat rekomendasi/artikel dari komunitas-komunitas atau website analis data.

Berdasarkan polling komunitas data-mining kdnuggets.com, tools tertinggi penggunanya adalah R. Selama tiga tahun (2011-2013) R menduduki peringkat teratas, dan tetap tumbuh besar [1].



Referensi:
1. Top languages for analytics, data mining, data science 
2. Poll: R top language for data science three years running

Tuesday, April 30, 2013

Javascript Tutorial: Beginning

Javascript adalah bahasa pemrograman yang banyak digunakan untuk menambahkan fitur interaktif pada aplikasi web, bergerak di sisi client. Tetapi dengan sistem node.js, Javascript dapat digunakan di sisi server. Program hibrid (desktop + web) berbasis Adobe Air juga dapat dibangun dengan javascript. Sehingga seperti sepupunya -- Java, Javascript adalah bahasa pemrograman yang sangat portable, cross-platform, run anywhere. Justru lebih lightweight dibandingkan Java. Di sisi client (browser), Javascript lebih responsive dibandingkan Java

Belajar Javascript gratis dan mudah. Gratis, karena banyak sekali tutorial online gratis. Salah satunya adalah favorit saya yaitu W3School. Mudah karena memang bahasanya tergolong mudah dibandingkan Java dan C/C++ yang kompleks. Mudah karena tools belajar onlinenya banyak tersedia seperti, lagi-lagi dari W3School yaitu Tri It Your Self. Menjalankan programnya, simple, kita hanya perlu web browser. Tapi hati-hati, tidak semua web browser mendukung javascript versi terbaru, khususnya IE dari Microsoft. IE terkenal lambat dalam mengadopsi standar, dan seringkali memiliki dialek dan library khusus sendiri.


Tag <script>


Sebagai contoh berikut ini Javascript ditulis di dalam tag <body> dan melakukan manipulasi penambahan script html di dalam body.

<body>

JavaScript can write directly into the HTML output stream:

<script>
document.write("<h1>This is a heading</h1>");
document.write("<p>This is a paragraph.</p>");
</script>

</body>

Kita hanya bisa menggunakan <strong>document.write</strong> di dalam output HTML.
Jika menggunakannya setelah dokumen di-load (misalnya dalam suatu funtion), maka keseluruhan dokumen akan tertimpa.

Javascript juga digunakan untuk menambahkan sifat reaktif pada dokumen html. Seperti kode berikut ini, bila kita mengklik tombol "Click Me!" maka akan muncul popup alert window "Welcome".
<button type="button" onclick="alert('Welcome!')">Click Me!</button>

Function dalam Javascript adalah kumpulan statement/perintah. Seperti contoh berikut ini fungsi myFunction akan merubah isi tag <body> ber-id "demo".

<p id="demo">
JavaScript can change the content of an HTML element.
</p>

<script>
function myFunction()
{
   x=document.getElementById("demo");  // Find the element
   x.innerHTML="Hello JavaScript!";    // Change the content
}
</script>

<button type="button" onclick="myFunction()">Click Me!</button>


Saturday, February 23, 2013

Free Dataset

Salah satu tahap awal dalam proses data mining baik untuk bahan ajar maupun riset adalah menyediakan dataset. Banyak sekali dataset yang tersedia gratis di internet. Berikut adalah sebagian daftarnya:

Yang biasa digunakan dalam buku teks:


Yang lainnya

Informasi selanjutnya:

Friday, January 04, 2013

PHP & MySQL Tutorial

Source:
  • W3School
    • http://www.w3schools.com/php/php_intro.asp
  • Free Webmaster Help 
    • http://www.freewebmasterhelp.com/tutorials/php/
    • http://www.freewebmasterhelp.com/tutorials/phpmysql
  • Tutorials Point
    • http://www.tutorialspoint.com/php/index.htm

Menghubungkan Mylyn (Eclipse) dan Redmine

Developer software, khususnya software opensource terkait bahasa pemrograman Java seringkali menggunakan Eclipse sebagai IDE-nya. Meskipun demikian pengguna Eclipse mulai berkembang tidak hanya programer Java tetapi juga Python dan web.

Mylyn adalah tool untuk manajemen task dan manajemen lifycyle aplikasi (ALM: application lifecyle manajemen) untuk Eclipse IDE. Antarmuka berfokus-task pada Mylyn memperkecil informasi overload dan memungkin pembuatan task multitasking secara mudah. Mylyn mengintegrasikan pengeditan secara offline dan secara otomatis memonitor aktifitas pemrograman kita, serta melinkan dengan seluruh artifak. Sehingga Mylyn dapat meningkatkan produktifitas kita dengan mengurangi informasi overload, memfasilitasi multitasking dan memudahkan proses sharing dengan tim.

Redmine adalah sistem manajemen task berbasis web+Ruby. Redmine memiliki user interface yang bagus dan memungkinkan manajemen project, source, bug dan sharing antar developer. Tetapi sebagian besar developer tetap ingin bekerja dengan IDE favorit mereka sembari tetap mengupdate task-task mereka ke tim via sistem manajemen task terpusat seperti Redmine.

Plugin Eclipse bernama Redmine-Mylyn-Connector dapat membantu menyambungkan kedua tool ini dengan mudah. Plugin ini mendukung integrasi 2 arah antara kedua tool. Plugin ini telah dikembangan selama 4 tahun, dan masih aktif dalam pengembangan.

Instalasi Redmine-Mylyn-Connector terdiri dari 3 langkah mudah sbb:

Instal Plugin Redmine-Mylyn-Connector di Redmine

Masuk ke direktori redmine/vendor/plugins dan download plugin dengan git:

git clone git://redmin-mylyncon.git.sourceforg.net/gitroot/redmin-mylyncon/redmine-mylyn-connector

Install Plugin Redmine-Mylyn-Connector di Eclipse

Pertama tambahkan situs repository plugin, bila ingin menginstal versi stabil tambahkan 

http://redmin-mylyncon.sourceforge.net/update-site/N/

Bila ingin menginstal versi terakhir tambahkan

http://redmin-mylyncon.sourceforge.net/update-site/dev/
 
Setelah menambahkan situs plugin, maka lakukan instal.

Konfigurasi plugin di Eclipse

Buat sebuah task repository baru dengan memilih Add Task Repository. Pilih Redmine connector dan isikan seluruh detail yang diperlukan. Direkomendasikan untuk menggunakan opsi API-Key untuk autentikasi, karena lebih handal dibandingkan kombinasi user/password.

Untuk menentukan API-Key, buka Redmine, lalu buka My Account dan klik link Show di bawah sesi API access key pada panel sebelah kanan.

Sekarang kita dapat melakukan query pada task kita dengan membuat sebuah Query baru dalam Task List.

Referensi
  1. Eclipse Web Tools Platform (WTP) Project 
  2. Mylyn task and application lifycyle management framework for Eclipse
  3. Redmine, flexible web-based project management
  4. Redmine-Mylyn-Connector di sourceforge

Tuesday, May 03, 2011

Ontology versus Taxonomy

  1. Ontologi memiliki ruang lingkup yang lebih luas. 
  2. Taksonomi adalah "tree" sedangkan ontologi adalah "forest"
  3. Ontologi merepresentasikan sebuah topik dengan beberapa perspektif. Sebagaimana "telur" adalah sebuah fase kehidupan mahluk hidup dan dia juga sejenis makanan.
  4. Ontologi mengandung vocabulary yang lebih terkontrol dan memiliki definisi relasi yang lebih teliti.
  5. Akademisi lebih condong kepada ontologi, sedangkan industri (salah satunya komunitas perpustakaan/pustakawan) lebih condong menggunakan taksonomi. 
  6. Taksonomi memiliki bervariasi dalam hal banyaknya informasi yang mereka kandung. Bisa hanya mereprensentasikan pengelompokan secara logik suatu subyek, dengan kemungkinan dengan atau tanpa istilah yang mendukungnya, dan bisa saja data atau aksi yang terasosiasi kepada setiap node.
  7. Taksonomi pada umumnya memiliki hirarki yang tegas, seiring dengan strukturnya yang berbentuk "tree". Di dunia perpustakaan, taksonomi digunakan dalam thesaurus dan vocabulary yang terkontrol lainnya. Namun akhir-akhir ini, dokumen web menggunakan hirarki yang lebih lunak yang dikenal dengan folksonomi.



Monday, April 11, 2011

GUI untuk Java Keytool

Mungkin Anda sering menggunakan utilitas Java yang bernama keytool. Keytool bersama dengan utilitas Jarsigner menggantikan utilitas lama javakey di Java 1.1. Keytool digunakan untuk membuat dan mengelola sendiri kunci private-public, serta mengelola certificate.

Namun mungkin selama ini kita dibuat pusing dengan pembuatan dan pengelolaan kunci private/public dan certificate yang kita miliki atau kita dapatkan dari personal/situs lain. Jangan khawatir Keytool UI sekarang telah menjadi open source, sehingga kita dapat memanfaatkannya secara bebas. Keytool UI dapat didownload dari http://code.google.com/p/keytool-iui/

Monday, May 24, 2010

Trust & Reward System: Diskusi KM PDII-ITB Mei 2010

Untuk sekian kalinya, diskusi pengelolaan KM di institusi mengambil kesimpulan bahwa faktor SDM dan hubungan personal di dalamnya mengambil peran penting. Bagaimana pun canggihnya sistem informasi pengelolaan KM, dimana komunitas "dipaksa" atau "terpaksa" mengupload knowledge-nya ke sistem, tetapi faktor terpenting keberhasilannya terletak kepada "trust".

Waktu & Tempat: 20 Mei 2010, ruang rapat lt 6. PDII-LIPI
Peserta diskusi: Tim peneliti KM dari ITB yang dikomandani Prof. Dr. Jann, sedangkan dari PDII dihadiri oleh Kepala Pusat Putut Irwan P, bidang Pengembangan PDII, serta tim pengembangan ISJD.

Install Liferay untuk Glassfish Application Server di Windows XP

Liferay portal adalah CMS Portal yang powerful. Berikut instalasi Liferay portal 5.2.3 dengan server aplikasi (Java EE) Glassfish di Windows XP.

1. Download liferay-portal-glassfish-windows-5.2.3.jar dari liferay.com atau Sourceforge.org
2. Jalankankan java -Xmx256m -jar liferay-portal-glassfish-windows-5.2.3.jar
3. Jalankan ant -f setup.xml di dalam direktori glassfish.
4. Start app server. Akses portal

Friday, November 06, 2009

Tools Hebat dari Google untuk Bikin Aplikasi Web Sehebat Gmail



Kemarin Google meng-open-source-kan koleksi tool Javascript yang memungkinkan developer dapat membuat aplikasi web lebih cepat, powerful dan efisien sebagaimana Gmail, Google Maps dan Google Docs.

Closure Compiler adalah salah satu dari tool-tool itu. Ia adalah optimalizer untuk kode Javascript. Closure akan  mengkompilasi code Javascript menjadi lebih kompak dan performa meningkat. Closure akan menghapus kode-kode yang tidak berguna, sehingga engine browser akan menjalankan program Javascript lebih ringan dan lebih cepat.

Selain Closure Compiler, ada juga Closure Library, yaitu sekumpulan library untuk Javascript yang terdiri dari library widget GUI, struktur data, komunikasi dengan server, animasi dan lain-lain.

Ada juga Closure Templates, kumpulan template untuk web yang telah dikompilasi agar Javascript lebih efisien. Berbeda dengan sistem template tradisional, kita dapat menggunakan Closure Template secara alami sebagai programmer. Closure Template diimplementasikan baik untuk Javascript maupun Java, sehingga kita dapat menggunakan template yang sama baik untuk server-side (Java) maupun client-side.

Google berharap dengan adanya kemajuan dan peningkatan aplikasi web, maka pencarian dengan Google semakian menjadi penting.

Wednesday, September 23, 2009

Sistem Pencarian 'ala' Pustakawan Tidak Cocok untuk Pengguna Awam

Pustakawan adalah ahli dokumen, mereka melakukan kategorisasi, membuat ringkasan (abstrak, resensi dll), mereka membuat indeks dan lain-lain untuk dokumen. Oleh karenanya cara berfikir pustakawan dalam pencarian akan sangat berbeda dengan cara berfikir pengguna awam. Mereka juga mengembangkan cara-cara pencarian dokumen, sehingga mereka juga membuat sistem pencarian berbasis komputer.

Permasalahannya adalah sistem pencarian 'ala' pustakawan ini, seringkali tidak cocok untuk pengguna awam. Pustakawan mengindeks dokumen untuk sistem pencarian berbasiskan kata kunci khusus, misalnya dengan nama latin untuk tumbuhan. Pengguna awam mencari hasil indeks pustakawan di sistem tersebut dengan nama umum. Mungkin hanya sebagian kecil pengguna yang mengerti nama latin atau nama ilmiah suatu tumbuhan yang dicarinya. Pengguna seperti termasuk di antaranya adalah mahasiswa atau peneliti.

Berdasarkan penelitian Hargittai, 2004, kebanyakan orang tidak memahami konsep kata kunci, bahkan untuk spesifikasi kata kunci yang sangat dasar sekalipun.Partisipan penelitiannya adalah 100 warga New Jersey yang dipilih secara acak tetapi mewakili komposisi berbasarkan faktor sosio-ekonomi. Bahkan Hargittai menemukan banyak pula yang salah paham terhadap user interface pencarian, mereka menginputkan kata kunci ke address bar, dan sebaliknya mengetikan alamat URL ke form entri kata kunci.

Muramatsu dan Pratt, 2001, juga menemukan bahwa kebanyakan orang salah persepsi terhadap operator Boolean. Mereka kurang memahami perbedaan antara operator AND dan OR, apalagi untuk sistem yang secara implisit menerapkan AND atau OR. Dua pertiga dari mereka juga tidak bisa menjelaskan mengapa ketika entri pencarian adalah "to be or not to be", maka hasil yang didapatkan kosong.

Jadi, sistem untuk pustakawan harusnya berbeda untuk pengguna awam. Jangan paksakan pengguna awam melakukan pencarian menggunakan sistem pustakawan. Memang, cara yang digunakan pustakawan akan menghasilkan pencarian yang efisien. Tetapi sistem pustakawan juga memerlukan persiapan yang tidak pendek. Ada proses kategorisasi, ada pula proses pengindeksan. Pustakawan mencari dengan kata kunci yang sudah disepakati mereka. Tetapi kesepakatan para pustakawan ini tidak diketahui para pengguna.

Biarkanlah para pengguna bereksplorasi berdasarkan pengalaman dan pengetahuan yang mereka miliki, jangan paksakan mereka "belajar" menjadi pustakawan. Kalau mereka dipaksa menjadi pustakawan, lalu kapan mereka menyelesaikan tugas utamanya. Kalau mereka dipaksa menjadi pustakawan, lalu pustakawan mau jadi apa?

# Permudah, jangan dipersulit. Gembirakan, jangan ditakuti.
# (hadist)

Referensi:
E. Hargittai. Classifying and Coding Online Actions. Social Science Computer Review, 22(2):210–227, 2004.

J. Muramatsu and W. Pratt. Transparent Queries: Investigation Users' Mental Models Of Search Engines. Proceedings of the 24th Annual International ACM SIGIR Conference on Research and development in information retrieval (SIGIR'01), pages 217–224, 2001.

Tuesday, February 24, 2009

Serba 2.0

United Nation 2.0
http://www.wikinomics.com/blog/index.php/2009/02/02/united-nations-20/
http://www.ejc.net/magazine/article/nation_20/

Goverment 2.0
http://www.wikinomics.com/blog/index.php/2009/02/02/government-20-camp-in-dc/
http://government20bestpractices.pbwiki.com/
http://www.readwriteweb.com/archives/government_as_a_platform.php

Library 2.0
http://en.wikipedia.org/wiki/Library_2.0
http://www.libraryjournal.com/article/CA6365200.html
http://library20.ning.com/

Science 2.0
http://www.sciam.com/article.cfm?id=science-2-point-0-great-new-tool-or-great-risk
http://www.sciam.com/article.cfm?id=science-2-point-0

dan terakhir ....
PDII 2.0
http://www.pdii.lipi.go.id/

Sunday, December 14, 2008

Peneliti bisa download gambar langsung dari otak manusia



Peneliti ternyata sekarang bisa men-download gambar yang sedang dipikirkan seseorang. Download langsung dari otak.

Para peneliti dari ATR Computational Neuroscience Laboratories, Jepang, berhasil merekonstruksi gambar yang berada di otak seseorang, dan menampilkan kembali ke monitor. Dengan merekam aliran darah di otak melalui MRI, peneliti bisa memprediksi gambar yang sedang dipikirkan oleh manusia.

Gambar yang mengandung kata-kata n-e-u-r-o-n di rekam otak, mesin merekam aliran darah, kemudian merekonstruksi kembali dalam bentuk image seperti gambar di atas. Meskipun baru bisa merekonstruksi gambar hitam-putih saja, tetapi menurut Dr. Cheng dari RIKEN institute, ini adalah terobosan penting di bidang penelitian aktifitas otak. Seperti halnya penemuan awal TV yang hanya hitam-putih, peningkatan menjadi mampu untuk gambar berwarna hanya masalah waktu.


Ke depan mungkin saja tidak hanya gambar, tapi juga logika, pemikiran, atau bahkan perasaan ....:D mungkinkah?


source: http://www.pinktentacle.com/2008/12/scientists-extract-images-directly-from-brain/



Blogin di sana dan di sini

Memiliki banyak situs blog seringkali bikin kita susah. Tetapi karena kita ingin tergabung dalam beberapa situs network sosial, atau memang karena semakin banyak situs-situs blog yang baru dan kita tidak ingin meninggalkan situs blog lama, maka ada keperluan untuk meng-import artikel-artikel kita dari satu situs blog ke situs lainnya.

Multiply misalnya, memberikan fasilitas import blog dari blogger.com (blogspot.com), Yahoo 360, Windows Live Spaces, Live Journal, TypePad, amazon.com dll. Bahkan Multiply.com dapat juga melakukan cross-posting ke blog kita yang terdaftar. Memang tidak semuanya sih ... tapi paling tidak kan lumayan. Sekarang saya cukup posting dari salah satu blog, maka otomatis Multiply akan mengimportnya. Sinkronisasi dari blogger.com ke Multiply.com selama ini oke-oke saja.


Dua bulan terakhir saya terpaksa masuk juga ke friendster dan facebook bahkan twitter. Sebenarnya saya tidak pingin ribet dengan punya banyak account. Tapi undangang dari teman-teman bertubi-tubi. Jadi akhirnya saya masuk juga. Dan lagi-lagi saya punya masalah dengan sinkronisasi. Saya ingin posting saya di situs blog lain ter-update ke situs network sosial friendster dan facebook. Tapi saya masih bingung.


Facebook menyediakan hanya SATU situs blog yang dapat diimport. Awalnya saya import salah satu blog saya di blogspot.com (blogger.com). Tapi nggak puas. Akhirnya saya import dari Multiply.com saja. Kan sebagian blog saya sudah ter-sinkronisasi ke Multiply. Tapi saya belum puas.


Pernah terpikir untuk menggunakan Bloglines.com. Bloglines.com dan Blogger.com adalah 2 situs blogging yang paling awal saya gunakan. Akhirnya saya memutuskan tidak memakai bloglines.com, saya sudah terlalu lama meninggalkannya.


Sekarang saya sedang menjajagi friendfeed.com.


Tags: , ,


Booting-up "CPU" programer

Sering kali dan sangat sering, saya kehilangan momen untuk memulai memprogram. Ada saja alasannya. Seperti hari ini, ada 2 proyek software dan 1 laporan yang perlu saya selesaikan. Kedua-duanya perlu skill menulis, meskipun beda nuansa. Satunya menulis kode program dengan emosi ditekan dan logika dibiarkan liar. Satunya lagi menulis laporan, dengan emosi dikembangkan dan logika sedikit disesuaikan. Dua-duanya perlu skill menulis. Dan dua-duanya perlu sesuatu yang sering saya jadikan alasan kepada istri saya, "mood".

Saya hari ini membaca artikel Joel di Joel on Software berjudul "The Joel Test: 12 Steps to Better Code".
  1. Do you use source control?
  2. Can you make a build in one step?
  3. Do you make daily builds?
  4. Do you have a bug database?
  5. Do you fix bugs before writing new code?
  6. Do you have an up-to-date schedule?
  7. Do you have a spec?
  8. Do programmers have quiet working conditions?
  9. Do you use the best tools money can buy?
  10. Do you have testers?
  11. Do new candidates write code during their interview?
  12. Do you do hallway usability testing?
Saya coba fokus kepada Do programmers have quiet working conditions? Joel menggaris-bawahi beberapa dokumen terkait hubungan tingkat produktifitas dan "zone" para knowledge-worker (pekerja pengetahuan) yang salah satunya adalah programer. Mereka -- pekerja pengetahuan -- memerlukan kondisi flow (mengalir) atau zone (zona) nyaman, sehingga kreatifitas mereka benar-benar mengalir. Segala gangguan suara seperti keributan di sekeliling mereka, dering telepon, suara bercakap-cakap rekan sekerja, atau bahkan hanya sekedar suara pintu yang buka-tutup, cukup menggangu kinerja (produktifitas) mereka. Oleh karenanya mereka seringkali perlu pergi berjalan 5 menit menuju Starbucks untuk melanjutkan pekerjaan mereka.

Saya sendiri sering melakukannya dengan sengaja pindah kerja ke ruang perpustakaan, atau menggeser waktu kerja saya setelah jam kantor, atau bahkan sengaja tidak ngantor untuk dapat menyendiri di kamar saya di rumah. Sering kali saya sengaja baru datang ke kantor jam 2 atau jam 3 sore, hanya untuk menghindari rekan sekerja, agar saya bisa melanjutkan pekerjaan menulis (laporan, desain, coding) saya. Ini memang aneh bagi sebagian besar rekan saya di kantor. Awalnya saya dapat rapor merah dari pimpinan. Bahkan secara halus saya diusir dari kantor setelah jam 5 sore. Lampu-lampu dimatikan oleh satpam dan termasuk juga lift. Beberapa kali saya sempat terjebak di lantai 5 gedung lama PDII (waktu itu ruang subid komputer masih di sini). Kadang-kala beberapa teman seprofesi (Romi, Slamet, Sjaeful) masih bersama saya beberapa jam. Lantai 5 gelap, bahkan salah satu senior saya sempat tiba-tiba lari turun dan pulang karena di ruangannya, sebelah ruang saya, katanya ada suara wanita "tanpa wujud" membisikinya. Sehingga lengkap sudah. Saya terjebak gelap dan terkunci di lantai 5, tanpa bisa turun lewat lift. Tetapi kemudian beberapa pimpinan membolehkan saya kerja sampai tengah malam di kantor. Tetapi tetap saja jam kantor saya dianggap cuman 1 jam, yaitu jam 2 sd 3. Sedangkan sisanya jam 4 sd jam 11 malam dianggap tidak ada. Jangan harap uang lembur.

Balik lagi masalah "zona produktif". Saya memerlukan waktu-suasana-emosi atau singkatnya "mood" untuk memulai pekerjaan coding atau menulis lainnya. Booting-up-nya juga sangat lambat. CPU di batok kepala saya ini mungkin masuk keluarga 480, bukan Pentium apalagi Core 2 Duo, jadi lambat. Seperti hari ini, saya sudah buka komputer sejak jam 10 pagi tadi. Saya sudah olahraga sebelumnya. Saya sudah cukup tidur semalam. Saya sudah sarapan enak, nasi pecel kesukaan saya. Anak-anak tidak rewel, istri juga nggak rewel. Semua kondusif. Tapi sampai artikel ini saya tulis, saya belum mood juga.

Menurut Joel di artikel tersebut, kebanyakan programmer perlu waktu 15 menit untuk booting-up. Bahkan gangguan walau cuman 30 detik, akan menghambat produktifitas para programmer rata-rata 15 menit. Itu programmer selevel Joel cs. Bagaimana dengan saya?



Tuesday, December 09, 2008

Real-Time Search vs Static Search

Tulisan ini berawal dari keingin-tahuan saya ttg perkembangan deep-web searching di kelas struktur data di pasca sarjana, univ. Budi Luhur. Setelah re-google-ing, saya temukan ada trend baru searching selain deep-web searching, yaitu real-time search. Apa dan bagaimananya silahkan lihat di "From Static to Real-Time Search"

EtherPad: Real-Time Text Editing

Kolaborasi. Kolaborasi adalah salah satu teknologi kunci Web 2.0. Banyak sekali kolaborasi tools seperti wiki (Wikipedia, Dokuwiki dll), blogging, Google's Documents. EtherPad adalah salah satu langkah maju. Selama ini tools kolaborasi membangun dokumen bersama belum ada yang real-time. Mungkin yang real-time hanya chatting atau video conference. Itu semua dasarnya dialog real-time. Tetapi untuk bekerja bersama-sama mengedit dokumen secara real-time, setahu saya yaa cuman EtherPad. Google documents juga bisa sih ... tapi perlu waktu sebelum orang lain dapat menambahkan teks.



EtherPad dibuat oleh 2 orang mantan pegawai Google. Banyak kemungkinan unik yang akan muncul dari ide ini. Ke depan sepertinya tidak hanya teks editor, tetapi bisa saja spreadsheet.

Links:
http://blogoscoped.com/archive/2008-11-20-n42.html
http://etherpad.com/

Pemrograman di Kelas Pasca Sarjana M.Kom

Beberapa bulan terakhiri saya mengasuh kelas di program pasca sarjana yang sangat terkait dengan pemrograman. Di Udinus ada image processing, computer graphics & visualization, internet dan web programming, multimedia authoring. Di STTI Benarif web technology. Di Budi Luhur struktur data dan pemrograman. Sedangkan mahasiswanya lebih dari 50% tidak berasal dari pendidikan ilmu komputer atau teknik komputer atau paling tidak teknik elektro. Sehingga untuk pemrograman mereka seharusnya mendapatkan menu sebagaimana under-graduate. Atau paling tidak harus ada matrikulasi untuk pemrograman. Tetapi kasihan juga kepada mahasiswa yang telah mengambil ilmu komputer, teknik komputer/informatika atau teknik elektro. Mereka ini akan bosen kalau diminta mengulang pelajaran undergraduate.

Padahal skill programming menurut saya adalah skill wajib bagi seorang master komputer. Skill programming juga tidak dapat diperoleh instan. Learning curve-nya panjang. Cukup setahun untuk program reguler, dan tiap pekan dilatih. Tetapi untuk program weekend atau kelas malam, kapan mereka berlatihnya? Itu pun masih dasar sekail. Apalagi bagi orang yang sama sekali tidak pernah membuat program, perlu waktu yang lebih lama untuk memahami konsep-konsep dasar. Saya jadi bertanya-tanya lulusan seperti apa yang dikehendaki oleh universitas kalau master-master mereka sama sekali tidak bisa membuat program? Skill programming itu seperti skill menggambar teknik untuk mahasiswa pasca sarjana arsitektur. Atau bahasa Arab bagi pasca sarjana ilmu-ilmu agama Islam seperti tafsir, hadist dan fiqih.

Tapi, terpaksa. Saya harus menghadapi persoalan rumit itu dengan bijak.

Pertanyaan berikutnya yang mendesak adalah dengan cara dan metode bagaimana saya mengajarkans secara singkat pemrograman, sebelum saya bisa masuk ke isi mata kuliah saya. Akhirnya saya juga harus memilih bahasa pemrograman apa yang harus dikenalkan.

Maka dimulailah satu lagi pencarian. Tetap semangat!