Denny Depok IT Blog

Ngomongin Klorofil Project dan dunia IT, dari perkembangan, gosip sampe teori konspirasinya :D

Archive for the 'open source' Category

Pike, Scripting Rasa C/C++ Sesungguhnya

3 tahun lalu saya ngalamin namanya kebosanan bahasa pemrograman. Waktu itu saya sebagai programmer Enterpise Java (ngurusin EJB dan kawan-kawannya), tapi sampingan masih maen Delphi, VB, C++ (pake visual C++) dan belajar C#. Kebosanan terbesar saya adalah menghadapi proses kompilasi yang lama (java paling bertanggung jawab), library yang sulit dipakai (java dan C# bertanggung jawab), pengaturan pointer/object supaya tidak leak memory (delphi dan c++ bertanggung jawab) dan terakhir saya merasa bodoh untuk mengkompilasi program yang pada akhirnya akan di interpretasi (lagi-lagi java dan C# bertanggung jawab).

Akhirnya saya pada satu titik ingin pindah bahasa baru. Kriterianya adalah harus scripting ! (saya males ngompile lagi, trus pengen jalan di Linux/Unix, Windows dan kalo bisa MacOS — loh bukannya ini unix juga :P). Harus ada garbage collector (selamat tinggal pointer). Harus punya banyak library yang dibangun sama programmer (semantik cukup untuk profesor aja :D).

Beberapa bahasa scripting saya eksplorasi, mulai dari phyton, ruby, php dan terakhir pike. Walaupun akhirnya saya milih PHP + Javascript, Pike cukup menyita perhatian saya. Jadi apakah Pike itu ? Dari situs resminya pike adalah bahasa pemrograman scripting umum (maksudnya bisa buat apa aja, gak cuma web) yang sintaksnya mirip sekali dengan C/C++. Mendukung konsep OOP, punya garbage collector, loading time yang cepet dan lisensinya GPL, LGPL dan MPL (jadi jangan ragu untuk makenya).

Contoh hello world dengan menggunakan pike adalah :


int main()
{
write("Hello World\r\n");
return 0;
}

Terlihat familiar ? Tentu aja, soalnya lebih dari 95% sintaks Pike adalah sintaks C/C++. Contoh penggunaan kelas adalah :


class TestClass
{
void func1()
{
write("hello from func1");
}
void multiply(int a, int b)
{
return a * b;
}
}
int main()
{
TestClass obj1 = TestClass();
int a = 5;
int b = 10;
obj1->func1();
write(sprintf("Hasil dari %d x %d = %d", a, b, obj1->multiply(a, b)));
return 0;
}

Makin kelihatan miripnya kan ? Programmer C/C++ yang udah bosen maen sama pointer dan pemakaian string yang ribet tentu aja akan seneng untuk make Pike.

Permasalahan utama, untuk apa Pike kalo emang mirip banget sama C/C++ ? Kenapa gak pake C++ aja sekalian. Jawabannya adalah kalo pake C/C++ kan harus mikirin jalan hidupnya object dan pointer, nah dengan pike (tentu dikerjain garbage collectornya) hal tersebut sudah gak ada lagi. Pengaruhnya ? ya tentu aja mrogramnya jadi lebih mudah dan lebih cepet. Apalagi scripting, gak usah compile banyak-banyak lagi. Tinggal ubah script yang berubah trus jalanin lagi, beres… Apalagi operasi string yang gampang banget mirip-mirip javascript+PHP, udah gak usah akses lewat null terminated string deh.

Trus apa kelebihan Pike dibandingin Phyton ato Ruby ? Menurut saya (yang emang dari awal belajar mrogram pake C), pindah ke pike tuh kayak gak ada usaha untuk belajar, beda sama Phyton dan ruby yang agak beda konsepnya sama C/C++. Kalo dibanding PHP ? ya gimana ya, sebenernya saya fans berat PHP, tapi untuk aplikasi diluar web, PHP kayaknya gak ada apa-apanya. Eits jangan protes dulu, yang saya lihat adalah ketersediaan fungsi Threading (PHP masih maen process pake fork, php_thread dan 4 tahun gak ada kabar), ada lib SDL (emang sih PHP bisa di extend, tapi SDL kalo gak ada thread ?) ada lib OpenGL (sama, php bisa di extend openGL tapi nulis extentionnya susah + lagi-lagi gak ada thread… males). Trus ada lib GTK (walau saya gak suka sama control GTK yang gede-gede, tapi lumayan lah bisa cross platform).

Ya menurut saya sih Pike bagus banget dipake untuk rapid prototyping untuk ngetes algoritma/aplikasi yang emang mo ditulis pake C/C++. Trus untuk penulisan program game kayaknya menjanjikan juga. Aplikasi yang cross paltform pake Pike mungkin banget (Pike jalan di Linux, Windows dan Darwin -> unixnya MacOS). Distributed aplication (lib protokolnya lumayan lengkap). Btw, pembuat aslinya make Pike untuk buat Roxen Web Server. Trus Opera juga make Pike untuk bagian server dari Opera Mini.

Kelemahannya ? tentu aja dokumentasi yang enggak banget, dikit banget maksudnya. Tutorial juga hampir gak ada. Komunitas kurang banget. Tapi lewat posting ini, saya mo ngajak pembentukan komunitas Pike di Indonesia :D Siapa tau banyak yang berminat. Malahan saya ngusulin, diuniversitas gak usah ngajar C/C++ lagi, tapi ke Pike aja. Lebih modern dan lebih mudah dipakai :D

9 comments

[Tutorial 1] Instalasi Purefect Desktop

Setelah dirilisnya source code Purefect Desktop, banyak yang mengalami kesulitan dalm instalasi code yang memang ditujukan untuk review awal. Oleh karena itu, saya menulis tutorial penggunaan fasilitas dasar Purefect Desktop mulai dari instalasi, pemakaian sampai pembangunan aplikasi diatas Purefect Desktop. Jadi terus pantau blog ini untuk perkembangannya (he..he..he.. jadi ngiklan gini…)

INSTALASI DIATAS XAMPP

Berikut ini saya tampilkan langkah-langkah menginstall Purefect Desktop diatas XAMPP. Pertimbangan saya, banyka developer PHP yang menggunakan paket ini. Tapi Bukan berarti paket yang lain gak bisa ya, tapi cuma perlu penyesuaian dikit.

Langkah pertama, tentu anda perlu install XAMPPnya dulu, bisa anda dapatkan di http://www.apachefriends.org/en/xampp.html. Untuk tutorial ini saya menginstall XAMPP ke “c:\xampp”. Jadi kalo anda mengintal ke folder lain harap menyesuaikan. Setelah anda menginstall XAMPP maka kalau anda buka older “c:\xampp\htdocs” maka akan terlihat seperti :

awal2.png

Kemudian download Early Access Code di sini (ambil yang compressed source untuk instalasi)
Kalau anda ekstract zip Early Access, maka akan berisi beberapa file dan sebuah folder yang bernama “www”. Kopi isi folder www ke folder “c:\xampp\htdocs” sehingga isi folder anda akan terlihat seperti :

step1.png

Langkah selanjutnya adalah buka file “c:\xampp\htdocs\klorofil\conf\klorofil_purefect_Setting.conf”, ubah isinya sehingga terlihat seperti :

step2.png

Kemudian buka file “C:\xampp\apache\bin\php.ini”, kemudian pastikan baris dibawah ini di uncomment, sebab secara default Purefect Desktop memakai PDO dengan SQLlite.

step3.png

Setelah itu restart XAMPP khususnya apache. Kemudian buka browser (FireFox ato IE), dan buka ke “http://localhost”. Maka seharusnya anda akan melihat :

step4.png

Masukkan user/password standar yaitu

User : admin

Pass : admin

Maka anda akan masuk ke Purefect Desktop sebagai berikut :

step5.png

Demikian langkah instalasi singkat Purefect Desktop. Kalau ada pertanyaan bisa dikirim ke

denny[at]korofil.org

atau YM ke

denny_depok

7 comments

Early Access Purefect Desktop

ie_awal.png

Setelah pembangunan (dan banyak restrukturisasi ulang), Klorofil Project memulai fase pembangunan terbuka Purefect Desktop. Untuk tahap awal ini tim Klorofil membuka kesempatan untuk developer dan user Indonesia yang tertarik untuk mencoba dan mereview awal aplikasi dan kode Purefect Desktop. Untuk mendownload silakan klik disini. Sedangkan untuk rilis resmi, version control dan teknis lainnya sedang dipersiapkan oleh Reza Iqbal
Sebagai perkenalan bagi yang baru mengenal Purefect Desktop, berikut data-data Purefect Desktop.

1. Apakah Purefect Desktop Itu ?

Purefect desktop adalah lingkungan desktop yang berjalan diatas web. Tujuan dari web desktop ini adalah menyediakan lingkungan yang lengkap sehingga pembangunan aplikasi web menjadi lebih mudah, cepat, bagus dan menyenangkan. Selain itu Purefect Desktop menyediakan fasilitas-fasilitas advance sehingga aplikasi web bisa kaya seperti layaknya aplikasi desktop, tapi tentu saja dengan semua kelebihan yang dimiliki oleh aplikasi web.

Obsesi utama dari pembangunan Purefect Desktop adalah menyediakan desktop online sehingga semua orang dapat mengakses aplikasi dan data yang dimilikinya dimana saja, kapan saja dan dari komputer (dan peralatan lain) mana saja selama masih terhubung ke jaringan. The Net is The Computer, dan komputer kita hanya jendela kecil untuk fasilitas lengkap dalam jaringan.

2. Berapa Harga Purefect Desktop ?

Free, jadi enjoy :D.

Purefect Desktop di lisensi berdasarkan Common Public License v1.0. Lihat file LICENSE.TXT untuk lisensi secara lengkap atau kunjungi http://www.klorofil.org/legal/cpl-v10.html

3. Kenapa Purefect Desktop Di-Open Source-kan ?

Karena kami menganggap software dasar yang dipakai banyak orang seperti Purefect Desktop (dan OS, Database, WebBrowser dan Office Suite) tidak seharusnya ditutup kodenya. Karena seharusnya kita bersama sebagai pengguna bisa mengembangkan bersama-sama untuk kemajuan bersama dan kesejahteraan bersama.

4. Apakah Klorofil Project Itu ?

Klorofil Project adalah project open source yang bertujuan menyediakan framework pembangunan perangkat lunak terbuka yang feasible untuk dipakai dalam lingkungan Enterprise. Maksudnya dari feasible adalah mudah dipergunakan dan berperformansi tinggi untuk dipergunakan dalam lingkungan yang terdistribusi dan mempergunakan data yang relatif besar.

5. Apa Hubungan Saltanera dan Klorofil Project ?

PT. Saltanera (http://www.saltanera.com) adalah sponsor utama dari Klorofil Project. Sementara ini seluruh anggota Klorofil Project adalah staff dari PT. Saltanera.

6. Bagaimanakah Saya Mendapatkan Support ?

Untuk sementara bisa mengunjungi :

- Website Utama Klorofil Project, http://www.klorofil.org
- Blog Denny Depok, http://denny.klorofil.org

Atau mengajukan pertanyaan lewat email ke :
- Denny Depok (denny[at]klorofil.org)

7. Bagaimanakah Saya Bisa Ikut Berkontribusi ?

Untuk sementara bisa mengirimkan saran, permintaan atau bug report ke :
- Denny Depok (denny[at]klorofil.org)

Beberapa ScreenShot Purefect Desktop :

Login Form

Login
Purefect Desktop di FireFox
FireFox Desktop
Purefect Desktop di Internet Explorer

ie.png
TaskBar Model Baru

taskbar.png

clock.png

startmenu.png

FlazTalk Messenger (dengan conference)
chat.png
Desktop Setting
desktopsetting.png
Control Panel
controlpanel.png
User Managment
usermanagement.png
groupmanagement.png
Program Managment

programmanagement.png
Logout
logout.png

7 comments

Ternyata Kita Semua Pengguna Open Source

Kalau kita mau memperluas pandangan kita, ternyata kita tidak hidup sesimpel yang kita kira.
awal.png

Setelah zoom out beberapa ratus kali :
zoomout2.png

(klik di image untuk liat versi yang lebih besar)

18 comments

[ IDE ] Paralax : Parallel Computing Over Ajax

Paralax, parallel computing over ajax

Sebenernya ide ini dah lama, mungkin 2 ato 3 tahun lalu dah kepikiran. Sempet jadi kandidat tesis saya tapi abis itu dilupain gara-gara asik maen workflow :D. Trus daripada sia-sia, saya publish disini, siapa tau ada yang mo implement ato mo ngembangin lebih lanjut.

Ide awal gini, kan sekarang jumlah komputer yang terhubung ke internet dah banyak banget, buktinya IPV4 sampe habis. Nah kebanyakan, komputer yang terhubung ke internet itu keseringan idle, terutama komputer client yang cuma dipake untuk browsing, chatting ato nyari gambar dan video ****** (edited -red). Nah komputer-komputer client yang idle itu, walaupun disebt client, tapi rata-rata punya prosessor yang keren-keren, apalagi sekarang jamannya core duo ato lebih. Kan sayang banget daya komputasi yang tersedia berlimpah itu terbuang percuma.

Nah ide dari Paralax ini adalah gimana caranya orang-orang yang punya resource terbuang sia-sia tadi bisa nyumbangin resource komputasinya untuk kegiatan yang lebih berguna. Jadi diminta untuk ngejalanin program yang berguna, tapi gak terlalu menganggu kegiatan dia. Pasti dah pada mikir “Bukannya udah ada parallel computing dari dulu ?“. He..he..he.. emang sih udah ada, bahkan kayaknya udah mature banget. Tapi saya mo nekanin karakteristik dari pengguna-pengguna tadi yaitu :

1. Koneknya gak dedicated
Maksudnya kadang konek, kadang enggak. Ya tergantung maunya di user aja. Jadi sistem paralax ini harus bersikap pesimis, maksudnya gak berharap banget komputer client bakal konek terus. Trus juga harus clientnya yang minta duluan (ini programnya aja, bukan usernya ngelakuin manual), soalnya server kan gak tau kapan client mo online ato enggak.

2. Susah disuruh nginstall program

Maunya gak usah download-download langsung jalan aja. Jadi model paralel komputing lama yang mengharuskan user untuk download program host program paralel susah diimplementasiin sekarang.

3. Susah disuruh update program
Disuruh install aja susah, apalagi disuruh update program kalo misalnya ada perubahan perhitungan/algoritma. Makanya model paralel computing baru perlu diciptain.

Trus gimana cara kerjanya ? Langkah-langkahnya seperti ini :1. Programmer ngebuat 3 bagian program

Pertama program inisialisasi, yaitu program yang menggenerate job kecil-kecil yang nanti dikerjain sama client.
Kedua adalah program worker yang nanti didownload dan dijalankan sama client
Ketiga adalah program handler yang menangani event, seperti job selesai ato job gagal (timeout)
2. Programmer install program di Paralax server dan menjalankan program inisialisasi, maka job akan dicreate dan ditaro di stack job
3. User membuka alamat server Paralax menggunakan browser, misalnya ke http://paralax.org/chain_reaction.php
4. Page yang dibuka user mengandung script untuk mendownload program paralel computing trus juga minta job yang bisa dikerjain sama dia.5. Browser client jalanin script job dia, dan kalo udah selesai ngelapor ke Paralax servernya lewat ajax6. Paralax server trus manggil program event handler ngasih tau kalo ada job yang selesai7. Client trus bisa meminta job yang lain

Jadi intinya nanti user yang mo nyumbang resource komputasinya tinggal ngebuka web browser dan menuju ke alamat tertentu. Bisa juga scriptnya diembed ke page lain dengan menggunakan iframe. Dengan berjalan di web browser, kan user gak perlu install apapun, kan hampir semua OS ada browsernya. Lagian dengan teknik Ajax, bisa dibuat kalo misal ada update algoritma di modul worker, bisa update otomatis tanpa campur tangan user.

Tapi yang jadi masalah mungkin javascript kan lambat, ya emang sih, tapi namanya juga nyumbang :D (walau yang ini keren banget, nyumbang resource komputasi). Trus javascript kan ada timeout eksekusi script ? Tenang…. ini bisa diakalin dengan memotong script kalo udah beberapa waktu untuk interval sesaat dan dipanggil lagi pake settimeout. Tapi yang saya suka dari web browser kan kerjanya kayak sandbox, jadi dari segi keamanan gak masalah, gak kayak program paralel komputing lain yang harus diinstal, masalah keamanan pasti jadi perhatian banget.
Mungkin yang perlu dipikirin gimana cara mrogram yang enak, misal pake bahasa yang biasa aja, trus ada kompiler yang bisa ngebuat kode yang siap dijalanin di server (php/jsp/ato yang lain) dan di client (java script)

Aplikasi yang kepikiran sama saya :

1. Simulasi reaksi kimia dan obat
2. Simulasi cuaca

3. Ngecrack kode keamanan

4. Pemetaan genetik

5. Ngegambar film 3D

Ato apa lagi deh yang perlu komputasi amat banyak tapi kalo dari segi waktu emang gak harus cepet-cepet banget. Sebenernya semua sisi udah kepikiran sama saya, tapi emang dari segi waktu saya gak punya. Tapi kalo ada yang mo ngembangin dipersilakkan :D :D :D

5 comments

Next Page »