melanjutkan seri oprex saya, yang sebelum nya mulai dari centos, openvz, lalu xen. ingin mencoba tantangan baru, saya tergoda untuk compile kernel linux.
compile kernel menurut saya menurut saya merupakan operasi yang cukup scary, bukan karena ini "kernel" yang merupakan salah satu bagian terpenting dari OS, tapi karena saya belu pernah melakukannya :)
tentu saja saya tidak mau ambil resiko dengan pakai production server untuk compile kernel. untuk compile kernel ini saya gunakan Xen Virtualization dengan debian 4.0 sebagai host OS dan (juga) debian 4.0 sebagai guest OS pada Xen untuk kompilasi kernel
source code kernel linux terbaru (2.6.27.2) dapat anda download dari local mirror UI :
http://kambing.ui.edu/kernel-linux/v2.6/
untuk instruksi Compile kernet pada debian dapat dibaca :
http://www.howtoforge.com/kernel_compilation_debian_etch_p2
update:
Gagal -- hiks....
compile nya sih sukses, tapi gagal di load oleh guest OS nya Xen.
jangan compile kernel di atas Xen, karena Xen tidak me-load kernel dari filesystem-nya guest OS, namun kernel dari filesystemnya Host OS
See you next Deculture - S.A.
# wget http://bits.xensource.com/oss-xen/release/3.3.0/xen-3.3.0.tar.gz
# tar xzf xen-3.3.0.tar.gz
ah gagal compile kernel Xen..
kalau kemarin saya sempat membicarakan untuk mengoprex OpenVZ, sekarang saya bicarakan tentang Xen
seperti halnya openvz, Xen merupakan salah satu teknologi Virtualization di Linux yang free.
mengapa kok dari openVZ ke Xen ?
karena masalah Socket !
- server A yang saya manage di berada Di Texas ,
- server B berada di Texas namun berbeda datacenter dengan server A,
- server C berada di Utah.
masing-masing server ber-OS Linux , namun berbeda distro, dan semuanya terhubung dengan backbone internet US dengan speed 100Mbps (12 MBps)
pada Server A merupakan subject eksperimen Virtualiztion dengan lighttpd sebagai webserver untuk transfer file
cara eksperimennya saya, upload file sekitar 100MB ke server A yang nantinya didownload oleh server B dan server C
hasil percobaan
Server A dengan OpenVZ --> ke server B dan C max 6 MB/s
Server A dengan Xen --> ke server B dan C max 11 MB/s
saya tidak membenchmark hal lainnya selain socket writing dari masing-masing kernel virtualization diatas, sehingga tidak bisa dijadikan patokan mana dari mereka yang paling bagus
saya pernah menemukan artikel dimana ada Windows XP dapat diinstal diatas Xen kernel (tapi belum sempat coba), nampaknya akan jadi target selanjutnya
See you next Deculture - S.A.
karena baru dipinjamkan fresh dedicated server debian lagi, salah satu subjek yang sudah lama saya greget mau mainkan adalah OpenVZ
Sekedar info, OpenVZ merupakan salah satu teknologi virtualisasi yang terkenal di Linux selain Xen dan Virtuzzo (propertary)
"kabar buruk" yang saya dapatkan bahwa OpenVZ tidak secara resmi di-support oleh debian, sehingga saya harus meng-compile sendiri Kernel Debian yang di-patch supaya kompatibel dengan Debian (crossing my finger, hoping it will works)
mau coba juga ? follow these instruction :
http://wiki.openvz.org/Compiling_the_OpenVZ_kernel_%28the_Debian_way%29
http://wiki.openvz.org/Installation_on_Debian
well.. Goodluck for me :)
-- update
- Berhasil compile kernel OpenVZ
# uname -r
2.6.18-1-openvz
See you next Deculture - S.A.
this last one week I got problem compile C++ code from MSDN Library about winsock.
the code :
#include
#include "winsock2.h"
void main() {
//----------------------
// Initialize Winsock
WSADATA wsaData;
int iResult = WSAStartup(MAKEWORD(2,2), &wsaData);
if (iResult != NO_ERROR)
printf("Error at WSAStartup()\n");
//----------------------
// Create a SOCKET for connecting to server
SOCKET ConnectSocket;
ConnectSocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
if (ConnectSocket == INVALID_SOCKET) {
printf("Error at socket(): %ld\n", WSAGetLastError());
WSACleanup();
return;
}
//----------------------
// The sockaddr_in structure specifies the address family,
// IP address, and port of the server to be connected to.
sockaddr_in clientService;
clientService.sin_family = AF_INET;
clientService.sin_addr.s_addr = inet_addr( "127.0.0.1" );
clientService.sin_port = htons( 27015 );
//----------------------
// Connect to server.
if ( connect( ConnectSocket, (SOCKADDR*) &clientService, sizeof(clientService) ) == SOCKET_ERROR) {
printf( "Failed to connect.\n" );
WSACleanup();
return;
}
printf("Connected to server.\n");
WSACleanup();
return;
}
but when I compile it using Visual C++ 2008 express it give linker error :
1>------ Build started: Project: soketmenyoket, Configuration: Debug Win32 ------
1>Linking...
1>program.obj : error LNK2019: unresolved external symbol __imp__connect@12 referenced in function _main
1>program.obj : error LNK2019: unresolved external symbol __imp__htons@4 referenced in function _main
1>program.obj : error LNK2019: unresolved external symbol __imp__inet_addr@4 referenced in function _main
1>program.obj : error LNK2019: unresolved external symbol __imp__WSACleanup@0 referenced in function _main
1>program.obj : error LNK2019: unresolved external symbol __imp__WSAGetLastError@0 referenced in function _main
1>program.obj : error LNK2019: unresolved external symbol __imp__socket@12 referenced in function _main
1>program.obj : error LNK2019: unresolved external symbol __imp__WSAStartup@8 referenced in function _main
1>C:\Users\Sagi\Documents\Visual Studio 2008\Projects\soketmenyoket\Debug\soketmenyoket.exe : fatal error LNK1120: 7 unresolved externals
1>Build log was saved at "file://c:\Users\Sagi\Documents\Visual Studio 2008\Projects\soketmenyoket\soketmenyoket\Debug\BuildLog.htm"
1>soketmenyoket - 8 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
what should I do ?
first, you can scream out loud.... (just kidding)
* right click on project name in solution explorer and chose properties
* on Configuration Properties > C/C++ > Advance
at properies "Compile As" make sure it set as "Compile as C++ Code (/TP)" even when your code extension is .c
* on Configuration Properties > Linker > Input
at properties "Additional Depedencies", type "WS2_32.Lib" (without quotes)
what we do is it give reference to C++ linker to include WS2_32.lib in folder
C:\Program Files\Microsoft SDKs\Windows\v6.1\Lib
note : I using the latest windows SDK
*compile it..
1>------ Build started: Project: soketmenyoket, Configuration: Debug Win32 ------
1>Compiling...
1>program.c
1>Linking...
1>Embedding manifest...
1>Microsoft (R) Windows (R) Resource Compiler Version 6.0.5724.0
1>Copyright (C) Microsoft Corporation. All rights reserved.
1>Build log was saved at "file://c:\Users\Sagi\Documents\Visual Studio 2008\Projects\soketmenyoket\soketmenyoket\Debug\BuildLog.htm"
1>soketmenyoket - 0 error(s), 0 warning(s)
========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========
it's compile..
See you next Deculture
S.A.
Sabtu [3, Agustus 2008] kemarin, Microsoft Indonesia mengadakan acara "Heroes Gathering", untuk lengkap nya dapat dilihat di blog nya alex dan Album Fotonya Dondy
tapi yang perlu kita Highlight adalah momen pelepasan Mr.Z oleh para MSP (eh iya... gw bukan MVP maupun MSP lho)..
walaupun belum jadi MSP, gw paling menikmati "memutihkan" Zeddy :D
hasilnya, sedikit lagi, Zeddy akan mirip dengan Joker pada the Dark Knight
so.. Z goo luck with your new life
kalau dibandingkan dengan Fasilkom, Mahasiswa selesai sidang Tugas akhir langsung diseret keluar gedung, lalu diborgol di pohon, diceplokin telor, tepung dll...
See You Next Deculture Why so Serious ?
S.A.
"menyikapi" postingan pak Risman tentang php intelisense support pada Expression Web 2, saya tergoda untuk mecobanya sendiri.
memang suatu hal yang menarik pada Expression Web 2 adalaha adanya php intelisense support. bagi saya yang biasa coding php menggunakan Notepad++ saya menemukan fitur yang sama persis dan cukup membantu, yaitu code coloring. Bukan cuma itu, pada Expression Web 2 ini, suatu fitur yang sering saya temui pada Visual Studio juga ada di sini, yaitu Intelisense untuk php.
Namun berbeda dengan Intelisennse nya Visual Studio, dimana C# compile ditanam (diintegrasikan) dalam Visual Studio nya. pada Expression Web 2 ini, php tidak ditanam pada Expression Web 2 ini, nampaknya yang ada adalah intellisense untuk native php function. Hal ini dikarenakan tidak dilakukannya partial compile Interpret dengan php.exe oleh Expression Web 2 seperti hal nya yang dilakukan Visual Studio untuk men-generate Intelisense ada C#
Tampilan dari Expression Web 2 ini mirip dengan Sharepoint Designer yang juga memiliki fungsional yang hampir sama, yaitu HTML Editor, namun Expression Web 2 ini tidak mensupport Sharepoint tentunya :)
ScreenShots
intelisense pada php function
intelisense pada php reserved variable
php code coloring
See you next Deculture - S.A.
Cool event today at MIC UI is the first days of C++/Win32 training series
most of the trainee is From Physics Department Math and Science Faculty University of Indonesia, and some people from Kontinum and Win32.
today's topic is basic programming and concept of C++. not just to wrote some Hello world, but also some deep concept about how computers works, how memory works., etc.

and this is our trainer, Mr. Risman

in break time, of course it need some refreshment. some of us watching first episode of Code Geass using MIC's projector :)

See you next Deculture - S.A.
karena ada suatu wacana meng-open-source-kan Project Celestial Being di MIC UI, saya jadi memperdalam diri ke WCF :)
Salah Satu tantangan membangun aplikasi yang distributed adalah bagaimana antar aplikasi dapat berkomunikasi.
salah satu cara yang populer adalah menggunakan Web Services.
Cara ini cukup populer untuk mengkomunikasikan antar aplikasi di "Server" yang berbeda maupun antara client dan Web Service Server (Web Server).
namun bagaimana jika aplikasi yang akan kita buat berupa desktop application yang saling berkomunikasi ? kita tidak dapat menjamin (dengan kemungkinan 68%™) bahwa masing-masing client terinstall Web Server untuk menghost Web Service.
cara yang paling simple (dan makan tenaga) adalah membuat socket application (Socket Progamming) yang mengkomunikasikan satu client dan client lainnya. namun dengan cara ini sangat melelahkan karena kita harus mendefinisikan format, testing, dsb.
Solusi untuk masalah ini adalah Windows Communication Foundation (WCF)
beberapa tutorial tentang WCF, sudah dijelaskan panjang lebar oleh wely. namun pada konsep dasarnya adalah kita mengeneralkan sebuah aplikasi sebagai host untuk services
pada Web Service, Service berserta web contents di-host / di-handle oleh sebuah aplikasi web server
pada WCF, hampir sama dengan web services, Service hi-host / di-host pada WCF application kita.
melihat struktur yang hampir sama ?
ya. konsep dasar keduanya sama, Web Server maupun WCF Application memliki kesamaan bahwa mereka keduanya adalah aplikasi (executeable) dan keduanya meng-host services.
namun berbeda dengan Web services yang hanya bisa menggunakan transport HTTP, pada WCF kita bisa menggunakan transport lainnya, seperti MSMQ, tcp-net, dll.
jadi WCF ini sangat cocok sebagai API untuk client-to-client communication.
bersambung ke bagian 2 (contoh aplikasi)
See you next Deculture - S.A.
langkah-langkah yang perlu anda lakukan untuk mencoba live id quickstart :
1. Download XAMPP Lite
kita gunakan xampp karena aplikasi ini telah berisi paket lengkap yang kita butuhkan untuk menjalankan aplikasi ini (juga aplikasi php lainnya).
jangan lupa, anda butuh PHP versi 5.2 ke atas untuk menjalankan Live-ID PHP Quickstart
2. Download Windows Live Authentication SDK untuk PHP
http://download.microsoft.com/download/a/3/7/a37d5f8e-8c28-4c92-8d12-12beeb9845e6/webauth-php-1.1.tar.gz
3a. Install XAMPP-Lite dan Live ID for PHP SDK
untuk instalasi XAMPP cukup mudah, anda cukup mengekstract-nya di C:\
untuk instalasi Live ID for PHP SDK juga cukup extract ke C:\xampplite\htdocs\
untuk mempermudah akses, (nama foldernya tidak panjang) rename folder "webauth-php-1.1" menjadi "webauth"
3b. Konfigurasi PHP
jika anda menggunakan paket XAMPP-Lite terbaru (saat ini versi 1.6.6a), paket ini sudah termasuk PHP 5.2.5. namun anda perlu meng-enable beberapa plugin dari PHP yang secara default disabled.
buka xampp-lite php.ini yang terdapat pada C:\xampplite\apache\bin\php.ini
kemudian hapus comment (;) pada beberapa php-plugin berikut :
- extension=php_dba.dll
- extension=php_mcrypt.dll
- extension=php_mhash.dll
4. Register Aplikasi pada Windows Live
buka Live ID Application Page : https://msm.live.com/app/default.aspx
lalu pilih link "Register my Application"
isi Form tentang aplikasi anda (klik untuk memperbesar gamabr)
catatan : pada contoh ini saya menggunakan domain mic13.net dan QuickStart App terinstall pada direktori /webauth/sample
maka pada aplicaiton registration form, pada field "Return Url" diisi http://mic13.net:10000/webauth/sample/webauth-handler.php
setelah pengisian form, ada akan mendapatkan Application ID
catatan : pada contoh ini, application ID nya : 00163FFF80012E45
5. Konfigurasi Live ID for PHP SDK
buka C:\xampplite\htdocs\webauth\Application-Key.xml masukkan value sesuai dengan aplikasi anda. misalnya :
<windowslivelogin>
<appid>00163FFF80012E45</appid>
<secret>sagi-keren-sagi-ganteng</secret>
<securityalgorithm>wsignin1.0</securityalgorithm>
</windowslivelogin>
kemudian buat sebuah file text kosong data.txt pada folder sample. file ini akan menyimpan mapping antara user id dari windows live ke local user id.
kemudian edit setting.php pada variabel $USERDB menjadi $USERDB = './data.txt';
6. Test Aplikasi Anda

setelah login pertama kali, anda akan diminta untuk local username untuk dimapping ke local username
mapping account Live ID dan local username ini tersimpan pada data.txt
referensi :
see you next Deculture - S.A.
ikut-ikutan Wely untuk mempublish hasil submission untuk Developer Idol, dengan ini dipublish submission Developer Idol versi sagi.
nama project ini terinspirasi dari nama salah satu fraksi di Gundam 00, yaitu Celetial Being
Problem Definition
Salah satu masalah yang sering kita temui ketika kita ke sebuah perpustakaan adalah buku yang kita cari tidak terdapat pada perpustakaan itu. dan akan merepotkan bagi kita untuk memeriksa satu-persatu perpustakaan terdekat.
mengapa tidak kita buat saja sebuah aplikasi yang menghubungkan antar perpustakaan agar apabila seorang pengunjung yang datang ke sebuah perpustakaan dan tidak menemukan buku yang dia cari, petugas perpustakaan dapat merekomendasikan si pengunjung untuk datang ke perpustakaan lain yang memiliki buku yang dia cari.
di lain pihak ada kalanya kita sebagai personal dimana memiliki misalnya 10 buku, apabila kita mendefinisikan perpustakaan sebagai pihak yang miliki buku, maka kita juga bisa dianggap sebagai perpustakaan. apalagi jika kita memiliki koleksi buku-buku yang dicari-cari orang.
Solution
berangkat dari problem diatas, Celestial Being (CB) hadir sebagai aplikasi yang me-resolve problem diatas.
terinspirasi oleh bittorent sebagai peer-to-peer information (file) sharing, CB menggunakan arsitektur yang mirip dengan bittorent protokol, namun yang di-share bukan file, tapi merupakan informasi kepemilikan buku oleh sebuah perpustakaan.
aplikasi CB ini akan menemukan buku yang anda cari pada network perpustakaan Celestial Being
Arsitektur

terdapat 3 entity :
- Book Encyclopedia Service
- Library Tracker
- Celestial Being Desktop-Client
- Celestial Being Web-Client (on-plan)
How it works ?
- Secara default sebuah aplikasi Cb bekerja secara offline sebagai aplikasi management perpustakaan dari skala level personal maupun perpustaakaan besar.
- ada option untuk menshare data detail tentang suatu buku (isbn, judul, author, dll) pada sebuah server yang kita sebut "Book Encyclopedia Service" (BES). salah satu keuntungan adanya BES ini adalah setiap aplikasi CB yang terhubung dengannya dapat berkolaborasi untuk melengkapi "stub datail" dari suatu buku
- BES juga berguna untuk memberikan detail informasi tentang seuatu buku (GlobalID, isbn, judul, author, dll)
- Salah Satu entity lagi pada Celestial Being Network (CBN) adalah "Library Tracker Service" (LTS)
- LTS berguna mentrack siapa saja yang terhubung pada CBN dan buku-buku yang dimiliki oleh masing-masing perpustakaan
- sebuah perpustakaan dapat mencari sebuah buku terdapat di perpustakaan mana yang tehubung melalui Celestial being Netowork melalui Library Tracker
- Terakhir, setelah sebuah aplikasi CB mendapatkan informasi adanya buku pada suatu pepustakaan lain pada CB Network, kedua entity dapat saling berkomunikasi secara peer-to-peer untuk menayakan availability suatu buku pada perpustakaan yang dimaksud
Celestial Being dibangun menggunakan teknologi
- Microsoft Visual Studio 2008
VS 2008 ini merupakan tools utama yang digunakan untuk development WCF Apllicaiton (book detail service & library tracker), Windows Form (CB Client) dan Web From (CB Web-Client).
WCF ini merupakan teknologin inti dari Celestial Being System. WCF digunakan pada komunikasi antara client ke tracker juga komunikasi antar client (peer-to-peer)
- Microsoft .NET Framework 3.5
- C# 3.0 : baik client maupun server diprogram menggunakan bahasa pemograman C# 3.0 yang sudah mensupport Linq
- Linq : implentasi linq dilakukan sebagai untuk pemetaan object to realtional database
- SQL Server 2005 / SQL Express
Sebagai database, di server (book detail service) kita gunakan SQL Server 2005 minimal versi Standard. sedangkan pada client yang tidak memiliki traffice telalu banyak kita gunakan SQL Express
- ASP.NET 3.5 (Web-Client menggunakan ASPNET Ajax, dsb)
salah satu rencana kedepan adalah membeuat Web-Based Client dari aplikasi celestial being ini. Web-App ini bekerja layaknya desktop app, karena mengimplementasikan WCF dengan contract yang sama dengan desktop client.
Bisnis Proses
Celestial Being Network berjalan 24-7, dengan jumlah client yang keluar-masuk network celestial being yang bervariasi.
hal ini dikarenakan bervariasinya jam operasional masing-masing perpustakaan juga para volunteer yang membuka perpustakaan pribadi dengan cara menggunakan CB Client yang connect ke Celestial being network ini, juga memiliki variasi jam online
Jenis-Jenis Perpustakan bisa terbagi menjadi
- Perpustakaan Besar : Perpustakaan yang memiliki sangat banyak buku, biasanya ini merupakan perpustakaan lokal tingkat kabupaten sampai nasional (dan sejenisnya)
- Perpustakaan Sedang : Perpustakaan yang miliki cukup banyak buku, namun ruang lingkup costumer nya terbatas, misalnya perpustakaan tingakt Fakultas di UI
- Perpustakaan Kecil / Personal : merupakan kompulan volunteer maupun study group yang memiliki koleksi buku tidak banyak (sekitar dibawah 100 koleksi) namun bersedia meminjamkan bukunya ke orang lain yang membutuhkan, misalanya : MIC UI, koleksi buku Bpk. Zeddy.. dsb.
untuk keanggotaan, setap perpustakaan memiliki membership sistem yang bediri sendiri. seorang pengunjung dapat dengan mudah menjadi member dari suatu perpustakaan terdekat dengan rumahnya hanya dengan menunjukkan kartu identias (KTP, SIM, dsb). data membership disimpan oleh masing-masing perpustakaan pada database dan tidak dishare pada CB Network.
Book Encyclopedia Service (BES) merupakan suatu entiry bukan client pada CB Network. BES ini bekerja seperti halnya service pada Amazon.com dimana BES ini menyediakan service (WCF) yang memberikan detail data suatu buku yang akan di-counsume oleh CB client.
Library Tracker Service (LTS) bertindak mengindex kepemilikan buku juga memantau status online dari setiap perpustakaan. hal ini dilakukan dengan cara setiap beberapa detik, client mengirim message status ke LTS Server, client yang terlalu lama idle dianggap sudah offline (seperti bittorent kan ?)
ScreenShots
List buku yang dimiliki suatu perpustakaan
Profile buku
Book Loan System
'
User Management System
Resource
See you next Deculture - S.A.
Bersamaan dengan adanya Event GCoE pada MIC UI, kami para anggota EALab alias "dedemit" MIC UI membuka kembali oprekan Unified Communication. kalau dulu kami cuma main localhost dan komunikasi cuma antara PC dengan Virtual PC, sekarang kami sudah ada sebuah dedicated server untuk UC stuff.
salah satu yang kami banggakan adalah Office Communication. beberapa fitur yang sudah jalan diantaranya
1. Video Conference
2. PC to PC calling
3. Chatting
cool...
S.A.
inspired by Mr Risman's Article about WSS 3.0 in Vista, tonight I try to install MOSS 2007 in Vista... it works
to Install MOSS on Vista you'll need :
remember to patch your MOSS 2007 with SP1, follow this instruction :
http://mindsharpblogs.com/ben/archive/2007/12/16/3837.aspx
Here’s how you install it.
Extract Setup Helper, and run WssVista.msi
create directory C:\moss2007
copy "x86" directory from your MOSS 2007 setup CD into C:\moss2007
Extract the SharePoint Server 2007 service pack by executing
'C:\officeserver2007sp1-kb936984-x86-fullfile-en-us.exe /extract:c:\moss2007\x86\Updates'
Agree to the license terms, and the service pack will unpack.
open
C:\Program Files\WssOnVista\Setup
execute SetupLauncher.exe
it will prompt to select Sharepoint Instalation file,
point it to C:\moss2007\x86\setup.exe
After the files have been extracted the WSS setup program will be started.
The current version only supports the advanced installation option so select that one.
follow similar for Sharepoint Setup at
http://community.bamboosolutions.com/blogs/bambooteamblog/archive/2008/05/21/how-to-install-windows-sharepoint-services-3-0-sp1-on-vista-x64-x86.aspx
and look...
MOSS 2007 in my Vista Box

untuk peserta GCoE jakarta (UI) saya sudah upload ebook tentang ASP.NET Membership
http://ealab.net/runes/ASP.NET/ASPNET_Membership.doc
semoga berguna
best regards,
S.A.
Untuk Instalasi IIS di Windows 2008 :
1. klik start -> Server Manager
2. Pada Server Manager, klik roles -> Add Roles
3. Pada Add Server Wizard, klik Next
4. Pada Layar Select Server Roles, plih Web Server (IIS)
Apabila anda menginstall IIS pada windows yang masih Fresh, adakalanya akan muncul pesan beikut :
klik Add Required Feature
kemudian klik next
5. klik next hingga anda sampai pada layar Select Service Roles
6. (optional) pada layar Slect Role Service Pilih
- HTTP Redirection
- Management Service
- ASP.NET
- .NET Extesibitlity
- CGI
- ISAPI Filter
- ISAPI Extensions
- Basic Authentication
- Windows Authentication
7. Pada Confirm Instalation Selection, klik Install
tunggu hingga matang :)
More Posts
Next page »