Selasa, 5 Februari bertema "Academic Tech Day" , intinya produk-produk MS yg relevant di akademik... all the cool things that make me still stay in academic :)
Pagi dimulai dengan Phoenix Academic Program, dibawakan oleh Andy Ayers, Architect of Phoenix Team dan Yan Xu, Program Manager of Phoenix at Microsoft Research. My favorite topic, as it relates to all things compiler.
Jika belum pernah denger ttg Phoenix, berikut webcast lama saya ttg Phoenix:
http://www.zedilabs.com/tv/phoenix-whatisit/What%20is%20Phoenix.html
Aplikasi simpel yg saya buat dgn Phoenix untuk obfuskasi .NET assembly:
http://www.zedilabs.com/tv/phoenix-obfuscate/Phoenix%20Obfuscation%20Demo.html
Aplikasi simpel yg saya buat dgn Phoenix untuk analysis control-flow waktu program berjalan:
http://www.zedilabs.com/tv/phoenix-irgraph/Phoenix%20Graph%20Demo.html
So akhirnya prediksi saya benar, Windows 7 output akan di-compile ulang dengan Phoenix agar melewati fase security dan performance yang telah ditentukan (Phoenix memiliki plugin architecture sehingga tiap kode untuk analisis atau transformasi tinggal di-tempel ke pipeline Phoenix).
Beberapa akademis yang telah menggunakan Phoenix:
- University of Virginia: Defense Against The Dark Arts: Using Phoenix to Teach Computer Security
http://research.microsoft.com/phoenix/hlight/davidson/security.aspx
http://research.microsoft.com/workshops/FS2007/presentations/Bailey_Mark_Faculty_Summit_071707.ppt
- Columbia University, Dr. Alfred Aho (author of the famous Dragon Book, the bible of compiler book): Phoenix Meets Dragon:
http://research.microsoft.com/phoenix/hlight/aho.aspx
Ada quote menarik dari slide Andy, "education in compiler technology is the best software education." , kemudian dilanjutkan dengan komentarnya, "dalam observasi saya, people with compiler training make excellent software developers."
Makes sense, karena sewaktu kita membuat compiler, hampir semuanya digunakan: Data Structure & Algorithms (bikin parser yg efisien, data struktur untuk menyimpan informasi sebuah variabel), Design Patterns (Abstract Syntax Tree menggunakan factory pattern), Code Portability (jika ingin running di multi-platform), Memory Management (karena intermediate code hasil front-end akan di-load dengan backend, terserah mau pake interpreter atau dilempar ke compiler) hingga Assembly Programming (jika mengenerate sampai ke machine code instead of intermediate code).
Presentasi yg bagus, jadi motivasi tambahan untuk menggapai cita-cita: (1) membuat kurikulum compiler yg modern, (2) mengajarkan kurikulum tersebut, entah sebagai dosen atau di kuliah malam. Tentunya butuh fokus, dan melemparkan semua distraction ke orang lain (baca: nambah jumlah mahasiswa magang atau pegawai kontrak di akademik untuk mengurusi hal sehari-hari seperti Imagine Cup dan Campus Roadshow).
Sesi kedua adalah tentang F#, dibawakan oleh Luke Hoban, Program Manager Visual Studio Managed Languages. Demo yang menarik adalah "Mini-Matlab" dengan F#, menggunakan F# untuk beberapa rumus matematika, yg menghasilkan visualiasi Physics Engine dengan DirectX: tambahin rumus ini, maka akan muncul 10 bola berlarian secara random, tambahin rumus itu, maka akan muncul batas antara ruang bawah dan atas, dan tanpa memperlambat program, bola-bola yang di ruang atas tidak lagi bisa ke ruang bawah dan akan memantul kembali ke atas.
F# ini bukan bahasa anak bawang. Menurut Pak Luke, di level internal, mulai banyak programmer yg menggunakan F#. Contohnya ada kompetisi internal untuk membuat algoritma AdCenter, khususnya "The Paid Search" problem. Gimana munculin iklan yg relevan di waktu yang tepat, di tempat yang tepat, dan di saat yang tepat. Yang menang adalah sebuah tim yg terdiri dari 4 Machine Learning experts dan berhasil menyelesaikan dalam waktu 4 minggu!
Komentar tim yang menang tersebut adalah "F# allowed us to focus more on thinking than coding during the intense 4-weeks development".
Dengan adanya Microsoft Live (Microsoft main di web), dan tuntutan fitur cepat selesai, F# sepertinya akan menjadi salah satu bahasa yg dominan. Sooo, yg mau ngelamar ke Redmond, tipsnya adalah jangan sempit tahu 1 bahasa aja dan 1 paradigma, tapi belajar paradima lain seperti functional programming.
Sesi ketiga adalah Windows HPC, atau Windows Compute Cluster Server untuk clustering beberapa nodes. Interesting, dan ini yg kita mau set-up di Universitas Indonesia, cuman hardwarenya lagi nyangkut di Singapore :)
Sesi keempat adalah tentang Interoperability, hmm ga ada yg terlalu menarik sih. Intinya kan bukan software-nya, tapi standard yg diikutin..
Sesi kelima tentang Windows Embedded, dibawakan oleh Scott Davis, PM Windows Embedded. Menarik sekali, karena dia bersedia travel untuk mengajarkan Windows Embedded ke dosen-dosen... sepertinya wajib diundang ke Indonesia sekaligus bawa beberapa eBox (http://www.embeddedpc.net/)
Sesi keenam tentang XNA, wohoo, my second favorite subject after compiler: Game Programming. Disini ada konversasi yg menarik:
Cyrus: "Kita udah bikin kurikulum XNA dalam DVD, tapi ada problem dengan scale karena orang-orang minta untuk di-streaming. Masalahnya semua video adalah kualitas DVD, sehingga untuk streaming video besar-besar ini akan sangat mahal dalam hal bandwidth cost. DVD tidak scalable untuk mengajarkan XNA"
Zeddy: "Bos, di negara kami nun jauh disana, justru kebalikannya. Bandwidth di user adalah yg mahal. Justru kita pengennya dalam bentuk DVD. Kalo ada DVD belajar XNA bagi-bagi donk."
Cyrus: "Ha? Kamu mau? Kalau gitu, besok aku bawa 1 box berisi 250 DVD. Kamu pikirkan cara distribusinya."
Dan akhirnya 1 box DVD berisi "Beginner's Guide to XNA" dibagikan untuk semua Academic Developer Evangelist Asia-Pacific, South Africa, dan Latin America.
Sesi keenam adalah tentang Windows Academic Program, my third favorite subject after compiler & game programming: Operating System. Ya intinya ngomongin Windows Research Kernel (http://www.microsoft.com/resources/sharedsource/Licensing/researchkernel.mspx) dan ProjectOZ (http://www.microsoft.com/resources/sharedsource/Licensing/ProjectOZ.mspx) untuk ngajarin Operating System Concepts. Arkady Retik, Program Manager Windows Academic Program juga nunjukin buku Tanenbaum terbaru "Modern Operating System" yang membahas Windows Research Kernel juga. Sayangnya, doi bukannya beliin buat kita-kita ADE, malah kita disuruh beli sendiri... yeeh Bapak, buku textbook Amerika itu kan mahal, mending beli 10 kaos oleh-oleh daripada dimusuhin keluarga.
Which reminds me... ini homework kedua-ku setelah yg pertama tadi (bikin kurikulum compiler): ngoprek Windows Research Kernel dan bikin kurikulum OS berbasis WRK. Kalo dulu Tanenbaum bikin Minix kemudian di-fork ama Torvalds jadi Linux, kenapa nggak Cimanggis Lab bikin Cimanggis-OS kemudian di-fork ama mahasiswa Y, terus jadi OS-Y?
Oh saya lupa, atau kita lebih fokus di i18n, menerjemahkan interface-interface software, menambahkan wallpaper & icon lokal, dan mempackage-nya menjadi OS kebanggaan? :)
Sesi ketujuh (terakhir, yay!) adalah tentang Microsoft Robotics Studio, dibawakan oleh bos besarnya sendiri, Tandy Trower, General Manager Robotics Studio, dan Stewart Tansley, Microsoft Research. Sayangnya, mereka tidak bawa robot, jadi ga ada demo-nya deh... (atau harusnya ketemu aku duluan, biar bisa nyuruh aku demo hehehe). Lebih ke history-nya sih presentasinya si bos.
Selesai kira-kira jam 7.30 malam... terus lari-lari ke sebuah mall, karena bayangin aja jam 8 malam Food Court udah pada beres-beres... (sebenarnya ada makan gratis di hotel, tapi makanan hotel terkenal nggak enak, dan lagi sapa yg mau makan Sandwich buat makan malam???) Akhirnya dapet juga tuh nasi goreng chinese dengan beef rendang. Seperti biasa porsi amerika segede gaban, tapi anehnya malam itu semuanya habis (ya iya lah, sarapan ama lunch pake sandwich dingin sapa kenyang).
Sayangnya karena terlalu asik dengerin sesi, dan kemudian fokus di makan malam, akhirnya jadi lupa foto-foto deh di hari pertama....