March 2007 - Posts

Algoritma Membuka Tutup Botol (A Computer Vision Approach to Learning)

Sudah dua minggu lalu, anak gw ke-1, Thariq (umur 1 tahun 2 bulan), kuajari mengenai algoritma membuka tutup botol. Kukumpulkan beberapa botol dengan berbagai macam model membuka tutup botolnya. Well, hal yang menarik dari Thariq adalah spirit untuk learning tinggi. Walaupun agak emosi ketika beberapa botol susah dibukanya, kadang kalanya dia buang botolnya tapi kemudian kukasihkan lagi rupanya dia mau coba lagi...

Kalau gw perhatikan ketika membuka tutup botol, mata Thariq selalu menatap tajam mengawasi gerak-gerik jari tangannya ketika membuka tutup botol. Seakan-akan mata Thariq merupakan data input kapan harus diputar tangannya kiri-kanan ataupun atas-bawah

Supervised and Unsupervised Learning Model
Gw sendiri juga saat ini sedang mendalami Artificial Intelligence dan doing research about this area. Gw banyak belajar tentang Artificial Intelligence dari tingkah pola anak gw. Assume anak kecil merupakan black box yang representatif dari Intelligent System Model. Apa yang menarik dari ini? well, gw demen bagaimana Thariq learning sesuai yang baru.

Supervised Learning Model adalah yang pertama kali gw terapkan ke Thariq dimana kuperkenalkan suatu system model baru. Kutunjukan cara pakainya, selanjutnya Thariq mencoba sendiri bagaimana doing as I do. Learning curve model ini sangat cepat dan efektif untuk suatu sistem yang baru dalam pattern recognition.

Unsupervised Learning Model adalah proses pembelajaran tanpa harus di guide caranya. Hal yang menarik disini adalah bagaimana Thariq menemukan pattern suatu object. Kesan pertama akan muncul dari mulutnya seperti "Huh. eehhh". Triger event disini terjadi setelah matanya melihat object tersebut (ini kalau didunia AI adalah Computer Vision atau ada yang bilang Machine vision atau didunia robotics merupakan Robot Vision). Rasa penasaranku menjadi mengebu, gw coba stimulate unkwon object tersebut untuk bereaksi, well, Thariq langsung merespon baik secara kinematika maupun linguistic Natural processing. Ini artinya sensor input datanya berasal dari mata kemudian object ini dikelola dengan suatu processor, otak, selanjutnya dilakukan pattern recognition. Hasil dari pattern recognition ini lah yang nantinya akan memberikan reaksi tertentu. Ini luar biasa.

That's why, gw memperdalam keilmuan dalam bidang Computer Vision sebagai akar pengembangan dari Artificial Intelligence. Ada banyak problemetika Computer Vision yang belum terungkap dari misteri kehidupan makhluk hidup. Geeked

Computer Vision
Definisi computer vision sendiri secara umum merupakan suatu ilmu dan teknologi bagaimana suatu machine/system melihat sesuatu. Let see, manusia sendiri kalau melihat sesuatu secara vision diotak diterima sebagai image yang terbalik ? kenapa harus terbalik image nya ? apakah kalau image nya gak terbalik otak kita gak mampu menghitung dan melakukan recognize ?. Computer vision sendiri banyak diterapkan seperti

  1. Controlling processes (e.g. an industrial robot or an autonomous vehicle).
  2. Detecting events (e.g. for visual surveillance)
  3. Organizing information (e.g. for indexing databases of images and image sequences),
  4. Modeling objects or environments (e.g. industrial inspection, medical image analysis or topographical modeling),
  5. Interaction (e.g. as the input to a device for computer-human interaction).

Computer Vision sendiri tidak berdiri sendiri, banyak cabang ilmu yang mendukung keilmuan ini seperti gambar dibawah ini(taken from wiki)



Banyak sekalian kajian dan khasanah ilmu dapat digali dibidang penelitian ini. Saya baru mendapat copy dari buku Computer Vision yang codong membahas model matematika dari Computer Vision itu sendiri, Handbook of Mathematical Models in Computer Vision, yang ditulis oleh Olivier Faugeras.



Ok, Thariq, Let's do research in computer vision Yes

Share this post: | | | |

Assign Contrat for Publishing my 3 Books

Dari tulisan saya [V], akhirnya saya jadi assign contract dengan pihak penerbit Dian Rakyat untuk mencetak 3 buku baru antara lain:

  • Konsep dan Implementasi Cryptography Dengan .NET
  • Pemrograman Active Directory Dengan .NET
  • Pemrograman Jaringan Internet Linux Dengan C/C++

Konsep dan Implementasi Cryptography Dengan .NET

Buku ini saya ingin mencoba menjembatani antara pandangan scientist dengan professional engineer  mengenai Cryptography. Disini saya tidak membahas bagaimana model matematika  yang komplek tetapi lebih mengarah high level model cryptography  philosophy. Disini lain, saya tidak banyak fokus mengenai .NET itu sendiri ataupun berbicara mengenai IDE untuk .NET tetapi saya akan menjelaskan bagaimana mengimplementasikan model matematika dari cryptography dengan menggunakan .NET dengan bahasa C# dan VB.NET.

Tujuan utama penulisan buku ini adalah saya ingin memberikan awareness mengenai security terutama di sisi aplikasi. Dengan tumbuhnya awareness ini diharapkan sense terhadap how to write secure code akan mengakar ketika membangun suatu aplikasi. Isi dari buku ini meliputi:

  • Konsep .NET Cryptography
  • Algoritma transformasi base 64
  • Algoritma random generator
  • Hash cryptography meliputi algoritma SHA1, SHA256, SHA384, SHA512 dan MD5
  • Mendeteksi Data Error Dengan Algoritma CRC
  • Private dan Public key cryptography
  • Symmetry cryptography meliputi algoritma Rijndael, RC2, DES,  dan TripleDES
  • Asymmetry cryptography meliputi  algoritma DSA dan RSA
  • Konsep dan penerapan Digital signature
  • Konsep dan penerapan Digital certificate
  • Manajemen cryptography key

Dengan dikuasai materi ini, saya berharap pembaca bisa mengimplementasi philosophy of security didalam  aplikasi .NET tanpa dibatasi dengan versi dari .NET Framework.

Pemrograman Active Directory Dengan .NET

Well, setiap orang yang berkecimpung didunia IT infrastructure terutama di Windows environment pastilah mengenal Active Directory. Didunia Windows Programmer juga pasti sudah mendengar apa itu .NET. Nah, buku ini mencoba menggabungkan pengetahuan IT infrastructure dan programming untuk mengupas habis mengenai Active Directory. Tujuan utama dari penulisan ini untuk memberikan bekal pengetahuan mengenai Active Directory dan cara memprogramnya dengan .NET sehingga diharapkan pembaca bisa mengoptimalkan penggunaan Active Directory (Customization). Isi dari buku ini meliputi:

  • Konsep dan arsitektur Active Directory
  • Instalasi dan konfigurasi Active Directory
  • ADSI .NET
  • Directory Service dan manipulasinya
  • Sistem Authentication melalui Active Directory
  • Manajemen User
  • Manajemen Group
  • Sistem sekuriti pada Active Directory

Disini saya akan menggunakan Active Directory dari OS Windows 2003 R2 Enterprise Edition dan .NET Framework 2.0 . Buku ini terbuka untuk IT Pro dan Developer dengan benefit yang didapatkan adalah kemampuan IT integrator.

Pemrograman Jaringan Internet Linux Dengan C/C++

Linux ?? Et..sabar, ini bukan barang haram seperti pandangan Windows follow.  Disini  saya mencoba untuk memberikan pandangan  mengenai Socket Programming  disisi Linux Environment.  Bagi C/C++ developer,  OS  Environment kadang menjadi kendala tersendiri padahal C/C++ dibangun dengan open standard sehingga  diharapkan gap antar OS bisa lebih kecil. Dibuku ini saya menunjukkan bagaimana mudahnya Socket Programming di OS Linux dengan C/C++ pada compiler GCC seperti halnya buku pertamaku yang berjudul "Pemrograman Jaringan Internet Dengan Visual C++" tahun 2001. Isi buku ini meliputi:

  • Konsep Jaringan Internet (IP)
  • Pengenalan Socket
  • Sistem Connection-Oriented Protocol
  • Sistem Connectionless-Oriented Protocol
  • Pemrograman Socket Untuk Protocol HTTP
  • Pemrograman Socket Untuk Protocol FTP
  • Pemrograman Socket Untuk Protocol SMTP
  • Pemrograman Socket Untuk Protocol POP3
  • Sistem Client-Server
  • Aplikasi Client-Server: Chatting

Pada awalnya saya menulis di FreeBSD tetapi seperti agak susah untuk pembaca dalam socket programming di area FreeBSD sehingga saya putuskan menggunakan Linux Ubuntu 6 untuk implementasi OS nya. Saya sendiri sudah mendapatkan copy DVD Linux Ubuntu dari mr. Kunto. Penulisan buku area ini adalah bagian idealis saya untuk meramaikan khasana teknologi Messaging di Indonesia.

 
Writing Schedule

Saya sudah plot untuk release buku ini dengan pihak penerbit

  • Bulan Mei untuk buku Cryptography
  • Bulan Juni untuk buku Active Directory
  • Bulan Juli untuk buku Jaringan Internet

Lumayan ketat memang tapi saya force myself untuk finishing buku ini. Ketatnya schedule ini saya pikir tidak separah seperti Apress yang dulu pernah saya submit. Saya worry tidak bisa commit schedule nya Sad

 

Share this post: | | | |

Object-Oriented Mathematics

Pada suatu waktu tertentu, salah satu my lecturer membawakan suatu topik mengenai object-oriented tetapi ini lain daripada yang lain dimana pembahasan object-oriented nya dalam kacamata analisa matematika bahkan ada salah satu jurnal ilmiah yang membahas mengenai kajian matematika dari object-oriented. Iseng-iseng nyari journal ilmiah dengan journal searching tool akhirnya saya mendapatkan satu jurnal ilmiah yang berjudul Object-Oriented Mathematics yang ditulis oleh Klaus Grue, anda bisa download disini [V] ..ok, happy reading Sleep

Share this post: | | | |

My Three New Books for You in Year 2007

Tahun 2007 ini, ada 4 buku yang akan saya tulis untuk penerbit di indonesia. Salah satu judul tersebut sebenarnya buku yang akan terbit di Elexmedia yaitu "Membangun Reporting dengan Crystal Report XI dan Visual Studio 2005". Sedangkan ada 3 buku lagi yang sedang saya tulis yaitu

  • Konsep dan Implementasi Cryptography dengan .NET
  • Pemrograman Active Directory dengan .NET
  • Pemrograman Jaringan Internet Linux dengan C/C++

Tiga buku masih sedang dianalisa oleh redaksi salah satu penerbit, rencananya selasa, 20 maret 2007 after hour office, gw mau ketemu dengan bos penerbit...I hope ini ketiga buku diatas bisa goal...Cool ..buku ini nantinya kupersembahkan untuk sang puteriku yang baru lahir...pinginku sih puteri bisa menjadi seorang penulis baik tingkat nasional maupun international dalam bidang yang digeluti Embarrassed

 

Share this post: | | | |

MPI and OpenMP for Parallel Computing

Parallel Computing merupakan salah bidang kajian dalam computer science yang memang memfokuskan diri dalam hal komputasi yang dilakukan secara bersamaan. Sudah lama gw pingin oprek2x "barang2x" yang berhubungan dengan parallel computing.

Untuk belajar mengenai parallel computing biasanya para peneliti maupun akademis memanfaatkan library MPI ataupun OpenMP untuk melakukan komputasi paralel. Kedua library ini menggunakan teknik parsing message ke suatu multi-processor atau multi-machine. Misalkan anda mempunyai sejumlah data katakanlah sekitar 1000000 dimana masing-masing data akan dilakukan suatu komputasi tertentu dan selanjutnya digabung diakhir komputer seperti gambar dibawah ini

Kalau ini dilakukan secara serial maka ini bisa spend time yang luar biasa apalagi ketika diharapkan hasilnya bisa real-time sehingga parallel computing menjadi solusi untuk problem ini.

Penerapan MPI & OpenMP pada OS Windows
Pada OS Windows kita dapat memanfaatkan MPI dan OpenMP. Untuk keperluan ini, kita bisa memanfaatkan Visual C++ yang satu package dengan Visual Studio.NET 2003 dan Visual Studio 2005.

Sedangkan bagian infrastructure kita bisa memafaatkan Windows Cluster (HPC). Sistem clustering yang disini secara arsitektur dari socket bisa kita lihat pada gambar dibawah ini:


 Sedangkan untuk struktur logical view bisa dilihat pada gambar dibawah ini

 

MPI dan Visual C++ 2005

MPI (Message Passing Interface) adalah suatu API yang memungkinkan kita passing suatu command ke suatu mutli processor untuk melakukan sesuatu. Ada dua MPI standard yang bisa kita pakai yaitu:

  • MPI 1.1 , cek http://www.mpi-forum.org/docs/mpi-11-html/mpi-report.html
  • MPI 2.0 , cek http://www.mpi-forum.org/docs/mpi-20-html/mpi2-report.html

Sedangkan untuk implementasi MPI dengan Visual C++ kita bisa memanfaatkan yaitu MPICH dan MPICH2, download SDK dari MPICH dan MPICH2

  • MPICH , download: http://www-unix.mcs.anl.gov/mpi/mpich1/download.html
  • MPICH2 , download: http://www-unix.mcs.anl.gov/mpi/mpich2  

Selain itu dengan Visual C++ 2005 kita bisa melakukan debugging MPI pada mesin cluster dengan mensetting project configuration dibagian debugging seperti gambar dibawah ini



OpenMP dan Visual C++ 2005
Cara lain untuk parallel computing adalah dengan menggunakan OpenMP yang merupakan open standard. Secara umum kontruksi dari OpenMP dapat dilihat pada gambar dibawah ini

Informasi lengkap mengenai open standard dari OpenMP, kita dapat mendownload spesifikasi OpenMP versi 2.5 di http://www.openmp.org/drupal/mp-documents/spec25.pdf . Sedangkan untuk mengaktifkan OpenMP pada Visual C++ bisa di setting di konfigurasi project dibagian C/C++ --> Language seperti gambar dibawah ini

Pada code C/C++ cukup menambahkan library omp.h pada code tersebut. Untuk lebih dalam mempelajari MPI dan OpenMP dengan bahasa C , anda bisa membaca buku "Parallel Programming in C with MPI and OpenMP" yang ditulis oleh Michael J. Quinn, bukunya bisa dicek disini http://www.amazon.com/Parallel-Programming-C-MPI-OpenMP/dp/0072822562

MPI & OpenMP di Algorythmus Lab

Well, guys..topik ini sangat menarik, saya kepikiran bagaimana kalau topik ini masuk ke training center Algorythmus, ntar saya coba propose Om Risman....atau ada komentar yang lain ? 

Share this post: | | | |

Otak Project Returns (Knowledge is Free)

Setelah sekian lama project otak vacum akibat dari kesibukan member inti project otak maka saat ini, detik ini...project otak returns!! Geeked .....Dengan semangat "Knowledge is Free", project otak mencoba menjembati antara knowledge dan media mengakibatkan knowledge menjadi mahal Party!!!.

Kali ini project otak akan membuat buku dengan teknologi yang sedang berkembang atau akan berkembang. Berikut ini buku-buku yang akan dibuat

  • Pengenalan AJAX ASP.NET (level 100)
  • Pengenalan .NET Framework 3.0 (level 100)
  • Pengenalan Windows Vista (level 100)

Walaupun hanya tiga buku yang ditulis tetapi tidak menutup kemungkinan nantinya akan ditambah buku yang akan ditulis. Oleh karena itu, bagi rekan-rekan yang ingin bergabung dengan team project otak maka menghubungi saya atau maya [V]. Khusus untuk Pengenalan AJAX ASP.NET team developer ASTRA bergabung untuk membuat buku AJAX ini...thank my friends!!..

Jika tertarik untuk menulis buku, kirim email ke agusk2007 [at] gmail.com . Ingat! untuk bergabung di project otak ini, anda tidak perlu mahir menguasai teknologi didalamnya, justru dengan anda bergabung didalam project otak, hormon andrenalin anda akan dipacu untuk belajar teknologi tersebut...ok, ditunggu partisipasinya.

Website project otak: http://otak.csharpindonesia.net

Share this post: | | | |
Posted by Agus Kurniawan | with no comments
Filed under: ,

Indhiang Project (Web Log Analyzer)

What is Indhiang Project ?

Indhiang project is a web log analyzer tool. It's support for IIS and Apache (Windows and Linux). It also can analyze web log on real-time and offline. Here are some features of Indhiang project

  • Web log file viewer
  • Support for IIS and Apache
  • Support web log query
  • Web log analysis
  • Web log reporting
  • Web log real-time monitoring and analyzing

I created a project schedule so you can monitor and catch-up with development. I devided project  into 4 phases.

Development

In Indhiang project development, I use .NET Framework 2.0 with C# 2.0 as programming language. For web log agent, I will use C++ (VC++ and GCC compiler). Indhiang also uses Log Parser COM API for web log query. It's bundled into a web log query GUI tool.

This project is developed and maintained by People Enterprise. Source control under CodeFlex. Project web on http://www.codeplex.com/indhiang

Feature Request and Question

If you have feature request or question for this project, let me know. You can contact me via this blog or drop your email into aguskur [at] hotmail.com

Share this post: | | | |