Mac Macan

Ketidaktahuan memang anugerah :). Ada sense yang menarik waktu kita mempelajari sesuatu yang baru, misal waktu belajar komputer. Aku bahkan masih bisa membayangkan detik2 menarik waktu aku pertama kali mengetik dengan Chiwriter, dan menyaksikan huruf2 bergulir ke baris baru tanpa aku harus menekan Enter (seperti di mesin ketik), sementara kata2 di baris lama mensejajarkan diri dalam baris yang rapi. Juga waktu pertama kali mengetik puts(“Hello world”); dan melakukan kompilasi dengan Turbo C. Dan ternyata yang macam gitu belum sepenuhnya hilang. Dia kembali waktu tahun 2006 aku mengupgrade komputer rumah bukan dengan PC lagi, tetapi dengan Mac.

Menikmati jadi novice, aku coba belajar dari buku (dan juga dari tanya2 — thanks to Eko and Jay). Belajar dari buku juga punya sense lain dibandingkan dari howto, dari ebook, dari i-documents — tak kalah yahudnya dibanding belajar sistem baru itu sendiri. macosxtigerbook.jpgDan buku yang dipilih adalah Running Mac OS X Tiger. Nah lo, kok baru beli sekarang — 1 tahun kemudian? Tadinya sih sekalian menunggu peluncuran Mac OS X Leopard yang dijadwalkan pertengahan tahun ini. Tapi ianya tak kunjung melandas jua. Akhirnya aku beli juga buku ini. (Hm, khabarnya akhirnya Leopard akan diluncurkan bulan Oktober ini juga — tapi biar deh, updatenya dipelajari via e-documents sahaja).

Buku ini bukan untuk novice sebenernya (hey, aku udah jadi user 1 tahun, masa novice melulu); tapi juga bukan untuk geek. Dia untuk power user. Mulai mendalami hal di balik GUI. Syukurlah aku nggak terlalu asing sama Unix. Tapi tentu Mac OS X bukan hanya Unix + GUI Aqua. Banyak serentetan hal menarik yang dihasilkan dari evolusi + revolusi + optimasi panjang dunia Mac; termasuk keputusan untuk menggeser dari Mac Classic ke Mac bergaya NeXT, lalu ke Unix BSD-based Darwin sebagai core. Banyak alternatif dimana kita bisa memainkan optimasi dan development. Toolsnya pun menarik untuk dicobai. Dan itu sebabnya buku ini jadi mengasyikkan.

Dan entah kenapa mimpiku jadi berisi tiger, panther, cheetah, puma, leopard, sekalian juga ocelot. Kecanduan Mac Macan kayaknya. Jadi lebih pintar? Not necessarily. Tapi hidup jadi lebih menarik.

Stroustrup Lagi

Hah, zaman Web 2.0 gini, masih membahas Stroustrup?
Dan ini jawabanku: Bjarin!

Waktu ditanya tentang contoh program C++ yang berhasil :), Stroustrup menjawab dengan: Google. Ia juga bertanya: masih ingat, seperti apa dunia tanpa Google, baru 5 tahun yang lalu? Selain ini ia juga menyebut Mars Rovers, yang bisa melakukan pengemudian secara mandiri di planet asing itu. Dan dalam wawancara lain juga ia menyebut Human Genome Project. Tapi waktu ditanya tentang kenapa sebagian besar program bermasalah, ia menyebut bahwa programmer tidak lagi sempat memeriksai “correctness, algorithms, data structures, maintainability” dari program — mereka dikelola oleh para micromanager yang membuat pekerjaan selalu seperti dalam keadaan darurat yang permanen. Hal2 seperti ini tidak pernah tampak oleh user, selain bahwa misalnya Internet Explorer tiba2 freeze. Hm, Google di sisi plus, Microsoft di sisi minus.

Ini tentu soal klasik. User, manager, hingga media, memuja software (dan produk akhir) yang murah, cepat, biarpun buggy. Orang tidak suka kerumitan, tidak suka belajar hal2 baru, dan tidak mau membayar lebih untuk kualitas. Soal lain yang tidak klasik adalah bahwa para pakar memaksakan satu atau dua aspek tertentu sebagai pemecahan masalah. Secara praktis, Stroustrup mencontohkan: “Better design methods can help, better specification techniques can help, better programming languages can help, better testing technologies can help, better operating systems can help, better middle-ware infrastructures can help, better understanding of application domains can help, better understanding of data structures and algorithms can help–and so on. For example, type theory, model-based development, and formal methods can undoubtedly provide significant help in some areas, but pushed as the solution to the exclusion of other approaches, each guarantees failure in large-scale projects. People push what they know and what they have seen work; how could they do otherwise? But few have the technical maturity to balance the demands and the resources.”

cpluxplux.jpgKritik2 atas C++ ditanggapi Stroustrup dengan mengiyakan bahwa memang C++ ditujukan untuk expert, tetapi dengan mengingatkan bahwa terdapat generalitas yang tertanam dalam bahasa itu. Dan performansi. Waktu si pewawancara mengingatkan bahwa Stroustrup pernah mengatakan bahwa salah satu motivator atas C++ adalah Kierkegaard :), ia membalas bahwa kecenderungan saat ini untuk mengintegrasikan manusia dalam corporate culture (tanpa melihat lagi keunikan dan talenta individual) itu kejam dan tak efektif. Kierkegaard adalah pendukung peran individu melawan “the crowd,” dan cukup serius membahas pentingnya estetika dan etika. Maka C++ jadi dicipta dengan mengandaikan setiap programmernya memiliki keleluasaan untuk mencipta dan mengatur yang terbaik bagi mereka sendiri.

Namun tentang aspect-oriented programming, Stroustrup meramalkan bahwa benda nan unik ini masih perlu waktu lama untuk meninggalkan dunia akademis dan memasuki industri nyata. Tentu ia tidak antipati pada benda elegan ini. Hanya, ia mengingatkan bahwa selain konsep yang baik, ada banyak hal yang harus disiapkan untuk masuk ke lingkungan skala industri.

Dan tentang C# dan .Net? Ah, Microsoft masih di sisi minus buat Stroustrup. Hmmh.

Lebih lanjut, baca sendiri:
The Problem with Programming
More Trouble in Programming

Juga lihat:
Stroustrup asli
Stroustrup wannabe

Installing Days

Mentang2 lebaran kali ye, disuruh bersuasana serba baru. So, beberapa menit setelah WordPress 2.0.5 diluncurkan, mumpung waktu lagi luang, aku langsung upgrade site ini ke WordPress 2.0.5. Link ini membahas perubahan dari WordPress 2.0.4: Mark Jaquith. Tapi sambil sekaligus download Firefox 2.0. Beresin WordPress (edit dikit), Firefox mulai diinstal (Hal-hal baru di versi ini dibahas di link ini: Mozilla). Tapi nggak lama, trus inget bahwa Microsoft juga konon mau meluncurkan Explorer 7.0 hari2 ini juga. Jadi, berkunjung ke Microsoft, dan ternyata memang udah siap diload (Apa yang baru? Lihat di link ini: Microsoft). OK, install juga yang satu itu. Plus beberapa add on, baik untuk Firefox 2 maupun Explorer 7. Apa lagi? Ah ya: Turbo C++. Abis download yang selalu tertunda, akhirnya dapat juga file instalasi Turbo Explorer (C++, C#, Delphi — info lengkap ada di sini: Turbo Explorer) dari majalah PC Media edisi November, dalam bentuk DVD. Install lagi! Baru C++ aja sih. Install Delphi juga udah nggak punya bayangan sintaksnya kayak apa. C#, ntar deh di komputer lain, buat iseng kali ye.

Anyway, hari ini mulai ke kantor lagi. Mudah2an ada yang baru juga :).

Turbo C++ Diluncurkan

Ini jelas deja vu. Dan barangkali juga candaan — tapi candaan yang serius. Tapi, punten ah, mau heboh bentar. Aaaaaaaaaaaaaaaaaaaaaaaaaa. Benda ajaib ini bisa kembali! Dan Ariya yang menginfokan bahwa keluarga Turbo dari Borland kembali diluncurkan. Aaaaaaaaaaaaaaaa. Eh, tadi udah.

Turbo pernah jadi semacam pahlawan di pertengahan akhir tahun 1980an. Di zaman itu, Anda pikir, berapa waktu yang diperlukan untuk bisa jadi programmer awal Bahasa C? Atau Pascal? Kurang dari setengah jam! Masukkan disket IDE ke Drive A, ketik TC pada prompt DOS, tunggu kira2 setengah menit sampai IDE termuat. Editor bergaya WS itu tak lagi perlu dipelajari. Tinggal soal bahasanya. Tekan F1 untuk meminta bantuan. Ketikkan sebuah contoh yang diberikan. Save. Panggil menu Run. Eit, jalan! Terus kita periksa apa yang baru saja terjadi. Dengan ritme detak jantung yang bahkan terasakan sampai sekarang. Dan kemudian eksplorasi panjang pun dimulai. Thanks, Borland.

Turbo C++Kalau versi aku (yang lebih banyak ketemu orang elektro), minggu2 awal bukannya diisi pembelajaran fungsi2 dari kepustakaan C, tetapi belajar memprogram kode-kode pengganti assembler dalam bahasa C. Wow, aku udah secanggih kakak2 angkatanku :). Baru fungsi2 C sendiri. Dan bikin editor sendiri (VIE dan kemudian TVE, hihi), sehingga nggak lama kemudian TC jarang dipakai lagi (selain untuk tracing). Kompilasi menggunakan TCC yang merupakan versi command line. File yang dihasilkan bukan cuma EXE, tetapi juga COM. Eh, COM yang ini beneran ekstensi loh, bukan seperti yang kata seorang pakar: ekstensi domain. Trus, tentu saja terimbas migrasi dari kompiler C ke kompiler C++. Biarpun, sebenernya, nulis programnya tetap dalam C. Dan baru kemudian pindah ke C++, tanpa heboh.

Oh ya, ini site keluarga Turbo yang akan diluncurkan kembali: turboexplorer.com. Diluncurkan 13 hari lagi, Turbo Explorer akan mencakup Turbo C++, Turbo C#, Turbo Delphi, dan Turbo Delphi .NET. Turbo Assembler dan Turbo Prolog nampaknya cuman akan tersedia di museum. Turbo Profiler juga — takut ketuker turbo propeller. Baca rinciannya di site itu yaa.

Charles Simonyi

Tadinya aku berminat nulis tentang beberapa matematikawan lagi. Kawanan matematikawan mati kawanan, semacam itu lah. Tapi, gara2 masih doyan buku2 string, nama yang pertama teringat itu Edward Witten. Kebetulan, tahun 2003 aku pernah nulis nama ini di blog ini. Trus aku baca2 dikit di Wiki tentang Witten.  Pemenang Medali Field, tentu. Pendiri teori M, dimana lima macam teori string yang ada pada waktu itu dapat dipandang hanya sebagai kasus2nya. Sekarang merupakan Charles Simonyi Professor of Mathematical Physics di Institute for Advanced Study. Lucunya, nama Charles Simonyi ini kedengeran akrab. Ini juga adalah jabatan profesor yang dipegang Richard Dawkins (yeah, Dawkins yang itu tentu).  Dawkins adalah Charles Simonyi Professor in the Public Understanding of Science di Oxford University. Ostosmastis, jadi penasaran: siapa sih Charles Simonyi, yang memberikan professorship kepada dua orang yang betul-betul outstanding di bidangnya? Terutama Ed Witten, tentu.

Charles Simonyi ternyata … programmer! Dan kerja untuk Microsoft! Anak ini lahir di Hongaria. Waktu SMA, dia kerja jadi satpam di lab komputer. Trus belajar komputer. Lulus SMA, dia sudah bisa menulis kompiler sendiri, dan menjualnya ke pemerintah. Trus pindah ke AS, sekalian kuliah Engineering Mathematics. Kerja di Xerox PARC, dia menyusun program penyiapan program pertama yang bersifat wysiwyg. Trus, tahun 1981, dia melamar ke Bill Gates untuk kerja di Microsoft. Di sini, sia bekerja menyusun Multiplan dan kemudian Excel. Juga Word. Simonyi membawa ke Microsoft teknik pemrograman berorientasi obyek, dan penamaan variabel “bernotasi Hongaria.” Untuk menyusun disertasi, Simonyi menyusun metode pengelolaan software yang dinamai metaprogramming. Metaprogramming memperkaya knowledge di Microsoft, sehingga mereka mengambil pendekatan baru untuk programming setelahnya. Namun tahun 2002 Simonyi keluar secara kasar dari Microsoft, dan mendirikan perusahaan baru.

Simonyi seorang philanthropist. Buktinya tentu adalah beberapa professorship yang ia danai. Juga ia membuat Dana Simonyi untuk Seni dan Sains. Sekarang, cita2nya adalah menjadi turis luar angkasa yang kelima. Rencananya mau berangkat bulan Maret 2007.

Web 2.0

Google menyebut belasan juta hit untuk istilah ini. Factive menunjukkan 1500 kutipan. Technorati bilang ada seratusan ribu weblog yang mengulasnya. Dan satu lagi sekarang. Web 2.0. Banyak yang membahasnya dengan becanda. Kenapa? Definisinya memang tak pernah jelas. Entah karena cakupannya yang terlalu luas untuk disempitkan, atau memang dia tidak  sungguh2 punya arti. Spectrum coba2 mendefinisikannya secara kasar: fase kedua dari evolusi web dimana para pengembang mencipta site yang berlaku mirip program desktop serta mendorong komunikasi dan kolaborasi antar user. Tuh kan, kali ini nggak becanda :). Beberapa keywordnya: tagging, folksonomy, long tail, dan collective intelligence.

Yang mungkin terbayang dengan kata kolaborasi tentulah Wiki, dan berbagai proyeknya. Tapi yang membuat istilah Web 2.0 banyak dipakai justru Gmail dari Google. Juga Flickr yang dibeli Yahoo dan Writely juga dibeli Google. Google juga main spreadsheet sekarang. Belum nyoba. Dilarang dokter untuk sering ketemu spreadsheet, for God’s sake.

Web 2.0 dibasiskan pada web yang secara dinamik memanfaatkan database. Interface ditata dengan AJAX (kaitan asinkron antara Javasript dan XML). Web services banyak dimainkan. Yang menarik tentu adalah menciptakan info atau layanan baru dengan memanfaatkan web services dari beberapa sumber sekaligus.
Orang IT memang suka mengalihkan satu istilah ke istilah lain. Misalnya, dari dulu ada web service dan infoware. Dari dulu ada XML dan Javascript. Trus kenapa ada AJAX sekarang? AJAX memang sekedar Javascript bermain XML :). Tapi ada skemanya. User interface yang standard dengan DHTML dan CSS, dinamisasi interaktivitas dengan document object model, transformasi dan transfer dara dengan XML dan XSLT, komunikasi asinkron dengan XMLHttpRequest, dan JavaScript yang menggabungkan komponen2 itu.

Tapi, repot2, konon sebenernya Web 2.0 itu cuman semangat baru, menyambut kembalinya uang ke Internet. Tuh kan, becanda lagi. UUD pula :).

Nonsecret Encryption

Siapa para tokoh di belakang public-key encryption? Orang akan menyebut nama RSA: Rivest, Shamir, Adleman. Atau lebih jauh: Diffie, Hellman, dan Merkle. Tapi beberapa tahun sebelum Diffie, bagian dari dinas rahasia Inggris sudah mengkaji konsep yang serupa. Cheltenham. Nama kota ini mengingatkan ke Ahmad Sofyan yang terus-menerus meyakinkanku bahwa inilah kota tercantik di England. Di sini ada Markas Komunikasi Pemerintah (GCHQ). Di sana John Ellis dulu bekerja, sebagai pegawai yang selalu penuh ide. Separuhnya konyol, dan separuhnya brilian. Sebelum ada kopi instan, ia sudah punya ide mencampur Nescafe dengan gula, dengan alasan efisiensi kerja.

Oh ya, cerita berhenti dulu untuk pesan sponsor. Pagi ini aku minumnya kopi Flores. Jadi agak-agak fly. Kurang banyak kali :).

Sampai mana tadi? Oh ya, di Bell Labs, akhir PD II, ada insinyur iseng membuat catatan bagaimana melakukan scrambling suara analog. Masukkan noise yang banyak dengan noise generator, gitu idenya. Campurkan noise ini ke suara dan kirimkan. Musuh akan menangkap sinyal kita, tetapi tak dapat memisahkan sinyal dari noise. Sementara, lanjut insinyur anonim itu, sekutu di ujung sana, yang punya noise generator yang sama, bisa melakukan pengurangan noise dari sinyal, dan menyisakan sinyal suara yang asli. Sederhana sekali. Tapi tak berguna waktu komunikasi lebih banyak dilakukan secara digital.

Tokoh Ellis kita membaca catatan itu, dan tidak menganggapnya konyol. Dia mulai memikirkan cara agar musuh, biarpun memperoleh sinyal yang sama, dan bahkan mengetahui teknologi enkripsi yang digunakan, tetap kesulitan melakukan dekripsi. Mungkinkah, tanyanya suatu malam. Dan malam itu, di tahun 1969, ia memperoleh jawabannya: bisa! Konsepnya seperti ini, dengan skema Bob mengirim ke Alice tapi diintip Eve. Alice membangkitkan angka yang besar dengan melakukan transformasi matematika dari sebuah bilangan yang dibuatnya. Bilangan yang dibangkitkan dikirimkan ke Bob. Bob mengenkripsi dengan angka yang dikirim Alice. Tapi enkripsi oleh Bob hanya bisa didekripsi oleh bilangan semula yang dibuat Alice. Eve, yang memperoleh baik angka panjang dari Alice mupun data terenkripsi kiriman Bob, tetap tidak bisa melakukan dekripsi. Dia memerlukan angka asli Alice, yang tentu tidak dikirimkan ke mana pun. Bilangan panjang dari Alice boleh dikirimkan melalui jaringan yang tidak aman. Bahkan boleh dipublikasikan :). Dan tetap saja siapa pun akan kesulitan melakukan dekripsi. Ellis menamai skema ini non-secret encryption.

Proyek berlanjut dengan mencari transformasi matematika yang dibutuhkan. Matematikawan Clifford Cocks, yang baru bergabung setelah lulus pascasarjana dari Oxford, memecahkan dalam semalam (juga). Ia melakukannya dengan mengalikan dua bilangan prima yang besar. Mengalikan dua bilangan prima yang besar itu relatif mudah. Yang jauh lebih sulit adalah menguraikan hasil kalinya menjadi dua faktor prima yang benar. Ia menyampaikan laporannya ke mentornya, Nick Patterson, sesama matematikawan. Patterson langsung berteriak di depan pintu: “Ini penemuan kriptografis terbesar sepanjang sejarah!”

Tapi tentu, ini adalah lembaga birokratik, seperti juga agen rahasia di mana pun. Hasil penemuan tersimpan di bawah selimut. Memberikan ruang kepada Diffie cs untuk menemukan kembali penemuan Ellis, dan RSA untuk menemukan kembali pememuan Cocks. Dan seterusnya sampai Zimmerman, PGP, GPG, GPP, EGP, dan semacamnya. Buat yang tidak pernah membaca soal ini, yang GPP dan EGP itu bohong. Tapi kita harus tahu: skema semacam inilah yang kini memungkinkan e-commerce berkembang di Internet.

Ada waktunya rahasia tentang Ellis ini dibocorkan ke Diffie. Whitfield Diffie yang terperanjat ingin menemui tokoh ini. Pertemuan itu terlaksana tahun 1982 di Cheltenham.

“Gimana rasanya menemukan non-secret encryption?” tanya Diffie.
“Siapa bilang?” sahut Ellis.
Diffie menyebutkan nama seorang tokoh NSA.
“Kamu kerja untuk dia?” tanya Ellis.

Percakapan mereka bersahabat, tapi Ellis enggan membahas soal enkripsi :). Ia kemudian hanya menyentil sekali, dengan mengatakan “You did more with it than we did,” lalu meneruskan kerahasiaannya. Cerita lebih lanjut, baca aja buku Crypto.

%d bloggers like this: