June 2008 - Posts
Mengikuti jejak bang Welly dan bang Sagi, maka saya pun mempost project yang saya kirimkan ke kompetisi ini. Sedikit foreplay sebenarnya saya udah ngirimkan project ini sejak tanggal 20 Mei 2008 dan saya pun baru sadar kalo kompetisi diperpanjang sekitar 1 minggu yang lalu. Jadi ya kepaksa deh gak sempet memperbaharui programnya. Tapi gak apa-apa lah, mudah-mudahan project ini bisa berbicara banyak di kompetisi, meskipun hanya dikerjakan 2 hari menjelang deadline tanggal 20 mei 2008.
Okeh cukup foreplaynya, sekarang mari kita masuk ke deskripsi project. Nama project ini adalah Project Anonymous CTP. Satu hal yang menarik adalah adanya kata CTP. Mengapa saya menggunakan kata CTP, karena dalam membangun project ini saya banyak menggukan teknologi-teknologi yang masih CTP ketika project ini berjalan. Teknologi yang saya gunakan adalah :
1. .NET Framework 3..0 (Windows Presentation Foundation,Windows Communication Foundation)
2. ADO .NET Data Services December 2007 CTP
3. .NET Framework 3.5 (LINQ to SQL)
4. Silverlight 1.0
5. ASP .NET AJAX
6. SQL Server 2008 (February CTP)
Arsitektur dari aplikasi ini cukup singkat, bahkan masih mengikuti format dasar dari buku yang menjadi bonus dari PCMedia. Hanya ada dua bagian presentasi yaitu untuk web dan juga untuk desktop. Namun ada beberapa yang saya tambahkan/modifikasi:
1. Sisi Desktop
jika pada contoh buku menggunakan Win Form biasa maka pada Project Anonymous CTP tampilan telah dipercantik dengan menggunakan WPF. pada gambar dibawah saya menggunakan tampilan coverflow ala mac agar tampilan terkesan lebih futuristik.
kemudian saya pun menambahkan sebuah pie chart agar admin dari perpustakaan tersebut mengetahui keadaan dari perpustakaannya.

untuk fungsi2x lainnya pun telah saya ubah ke WPF semua, seperti gambar dibawah ini
2. Sisi Web
Sama seperti Desktop pada sisi web saya pun menggunakan Silverlight sebagai pemanis dari tampilan. contohnya model carousel yang telah melegendaris seperti dibawah ini.
3. Sisi Services
pada bagian ini saya menggunakan REST dengan memanfaatkan ADO .NET Data Services yang December CTP. sehingga diharapkan dengan adanya service data yang mudah diakses dengan menggunakan URL, orang lain dapat pula mengembangkan aplikasi peminjaman sendiri dengan data yang dikeluarkan oleh perpustakan ini.
baiklah demikian saja penjelasan saya tentang aplikasi sederhana yang telah saya kembangkan ini. Semoga berkenan di hati dewan juri...
cheers....
Photosynth adalah sebuah aplikasi riset di Microsoft Research. Sebenarnya riset ini udah berjalan cukup lama dan berasal dari Photo Tourism. Saya pertama kali liat membaca tentang riset ini ketika mencari-cari ide untuk ikut Imagine Cup 2007. Namun ketika itu hasil dari riset ini belum bisa dicoba. Dalam halaman web-nya hanya ditunjukkan video tentang ide dari riset ini dah contoh hasilnya. Jadi ketika itu saya tidak dapat mengekplorasi/menggunakan teknologi ini sebagai bagian dari aplikasi yang akan saya ikutkan di Imagine Cup 2007.
Namun kemarin ketika saya sedang browsing-browsing, saya menemukan bahwa ternyata aplikasi Photosynth telah memiliki versi CTP. Tanpa basa-basi saya langsung menuju ke TKP disini dan mengunduh installernya. Ternyata Photosynth harus dijalankan lewat browser dan ternyata ada satu lagi masalah. Ternyata dia belum mendukung Firefox 3.0, ya wajar lah mengingat Firefox 3.0 baru dirilis minggu ini. Jadi ya terpaksa saya menjalankannya lewat Internet Explorer 7.0.
Mungkin banyak yang udah penasaran tentang apa itu Photosynth dan bagaimana Photosynth in action. Oke saya akan mulai mendeskripsikan PhotoSynth, PhotoSynth adalah sebuah cara baru dalam penyajian sebuah koleksi foto. Dengan menggunakan Photosynth maka koleksi foto2x anda akan disajikan dalam model 3 Dimensi. maksud dari 3 Dimensi adalah foto anda akan benar-benar disajikan dalam 3 Dimensi sesuai dengan model 3 Dimensi dari tempat anda mengambil foto. Contohnya adalah seperti gambar dibawah ini :

okeh gambar diatas adalah contoh dari PhotoSynth "in action". Kita dapat liat bahwa koleksi foto akan disajikan dalam nuansa 3 dimensi. Gambar pertama adalah gambar sebuah menara sedangkan gambar kedua adalah gambar dari tembok yang ada di sebelah kanan dari menara tersebut. Sehingga ketika kita berpindah dari foto menara ke foto tembok ada sebuah animasi bernuansa 3 Dimensi yang ditampilkan (anda dapat lihat pada gambar 2).
Bosan dengan tampilan 3 dimensinya? anda pun masih dapat membrowse koleksi foto dalam 2 dimensi seperti gambar dibawah ini :
Cukup menarik bukan? jika anda ingin mengetahui lebih dalam tentang teknologi dibelakangnya mungkin anda dapat membaca paper ini. Dari yang saya tangkap adalah bahwa Photosynth ini melakukan serangkaian algoritma terhadap sebuah foto untuk mencari sudut-sudut dalam sebuah foto untuk kemudian dicocokan dengan model 3D yang ada. Pada edisi CTP ini kita belum dapat menggunakan foto yang kita foto sendiri, alasannya adalah karena waktu yang diperlukan untuk memproses setiap image cukup lama. Ya memang kalau udah baca papernya pasti kita akan mengerti mengapa lama :D. teknologi Sea Dragon yang ada dalam Deep Zoom seperti yang dibahas oleh bapak Zeddy pun turut digunakan dalam PhotoSynth.
he3x... teknologi riset yang cukup menarik, saya gak sabar untuk melihat bagaimana hasil dari teknologi ini ketika sudah mulai memasuki tahap produksi. Jadi mungkin nanti teknologi ini akan dapat digunakan oleh om roy suryo untuk menampilkan koleksi foto artis/anggota DPR - nya dalam 3 dimensi sehungga menambah keakuratan analisisnya.
cheers...
Jika 3 minggu yang lalu saya memberikan sedikit tips tentang fitur Remote Management dalam IIS 7.0, maka sekarang saya ingin memberikan sedikit tips yang ditujukan untuk para developer tentang bagaimana kita dapat mengontrol IIS 7.0 dengan menggunakan code. Yap dengan menggunakan code, bukan dengan menggunakan script lagi. Caranya cukup mudah kita hanya tinggal menggunakan API yang ada dalam namespace Microsoft.Web.Administration. Namespace tersebut telah ada sejak .NET 3.0.
Okeh langsung aja saya akan kasih sedikit code yang dapat anda gunakan untuk membuat sebuah program kecil yang akan membuat sebuah website dan application pool baru di dalam sebuah IIS 7.0. Program ini berbasiskan command prompt dan akan menerima 5 masukan berupa string. contoh penggunaannya :
WebController.exe <nama situs> <nomor port> <nama host> <alamat virtual directory> <nama application pool>
baiklah mari sekarang kita mulai membuka visual studio 2008 kita, sebagai catatan saya menggunakan edisi express dan OS Vista Ultimate (biar ada IIS 7.0).
1. Buat sebuah project bertipe Console Application dengan nama WebController
2. Silahkan ketikkan code untuk melakukan authentifikasi seperti dibawah ini
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Security.Principal;
using System.Runtime.InteropServices;
namespace WebController
{
class Program
{
const int LOGON32_PROVIDER_DEFAULT = 0;
const int LOGON32_LOGON_INTERACTIVE = 2;
const int LOGON32_IMPERSONATION_LEVEL = 2;
[DllImport("advapi32.dll", SetLastError = true)]
public static extern bool LogonUser(string pszUsername, string pszDomain, string pszPassword,
int dwLogonType, int dwLogonProvider, ref IntPtr phToken);
[DllImport("kernel32.dll", CharSet = CharSet.Auto)]
public extern static bool CloseHandle(IntPtr handle);
[DllImport("advapi32.dll", CharSet = CharSet.Auto, SetLastError = true)]
public extern static bool DuplicateToken(IntPtr ExistingTokenHandle,
int SECURITY_IMPERSONATION_LEVEL, ref IntPtr DuplicateTokenHandle);
public static WindowsImpersonationContext ElevatePermission(string userName, string password)
{
var Domain = System.Environment.MachineName;
IntPtr pExistingTokenHandler = new IntPtr(0);
IntPtr pDuplicateTokenHandler = new IntPtr(0);
var coba = LogonUser(userName, Domain, password, LOGON32_LOGON_INTERACTIVE, LOGON32_PROVIDER_DEFAULT, ref pExistingTokenHandler);
var duplikasi = DuplicateToken(pExistingTokenHandler, LOGON32_IMPERSONATION_LEVEL, ref pDuplicateTokenHandler);
Console.WriteLine(coba.ToString());
WindowsIdentity newID = new WindowsIdentity(pDuplicateTokenHandler);
return newID.Impersonate();
}
static void Main(string[] args)
{
}
}
}
3. kode diatas adalah kode yang akan kita pakai untuk melakukan impersonation. impersonation menurut bahasa saya adalah cara agar kode kita dieksekusi dengan hak seorang user. Kita perlu menggunakan impersonation karena untuk melakukan akses ke IIS 7.0 kita memerlukan login sebagai administrator.
4. Sekarang kita akan membuat code untuk menambahkan sebuah website, Namun sebelum itu kita perlu menambahkan sebuah referensi ke DLL Microsoft.Web.Administration. silahkan cari di C:/Windows/System32/inetsrv.
5. Setelah dll tersebut ditambahkan maka sekarang kita bisa bermain-main dengan kelas yang namanya ServerManager, dengan menggunakan kelas ini kita akan dapat mengontrol IIS kita. silahkan ketikkan kode dibawah ini untuk membuat aplikasi kita dapat menambahkan sebuah web site kedalam IIS 7.0
WindowsImpersonationContext imper = ElevatePermission("nimda", "lontong");
using (ServerManager serverManager = new ServerManager())
{
ApplicationPool p = serverManager.ApplicationPools.Add(args[4]);
p.ManagedRuntimeVersion = "v2.0";
p.ManagedPipelineMode = ManagedPipelineMode.Classic;
Site newSite = serverManager.Sites.Add(args[0], "http", "*:" + args[1] + ":" + args[2], args[3]);
newSite.Applications[0].ApplicationPoolName = args[4];
serverManager.CommitChanges();
}
imper.Undo();
6. silahkan build project anda dan eksekusi hasil exenya seperti berikut :
WebController.exe NamaWeb 8080 NamaHost D: NamaAplikasi
7. Ketika anda telah mengeksekusinya silahkan buka IIS Manager anda, kemudan perhatikan bahwa pada tree Sites telah ada sebuah situs baru dengan nama "NamaWeb"
, kemudian pada application pool telah ada sebuah aplikasi baru dengan nama "NamaAplikasi"
Cukup mudah bukan mengatur IIS 7.0 lewat .NET, kelas-kelas dalam namespace Microsoft.Web.Administration pun akan memberikan anda keleluasaan yang lebih dalam mengatur IIS 7.0 mulai dari konsumsi bandwith per website, pengaturan applicatioon pool, Web site, virtual directory dan banyak opsi2x lainnya. bagi anda yang tertarik untuk membuat panel seperti Cpanel atau Plesk maka anda dapat mengekplore namespace ini.
cheers....
Baiklah dalam post kali ini saya pingin ngasih sedikit tips. Tipsnya adalah tentang bagaimana caranya kita dapat mengimport/dump database kita di SQL server menjadi query sql yang bisa disimpan ke file text. Karena sering kali tentunya kita ingin melakukan dump baik data maupun schema table-table yang ada di database kita ke dalam sebuah file text. File text tersebut tentunya dapat digunakan untuk berbagai macam keperluan semisal anda ingin mengupload data/schema di database lokal anda ke sebuah server hostingan.
Caranya cukup mudah, yang kita perlukan hanya sebuah Visual Studio 2008, bahkan versi Express pun bisa anda gunakan. Cara menggunakannya cukup mudah, silahkan ikuti langkah2x dibawah ini:
1. Buka Visual Studio 2008 anda dan silahkan buka server explorer
2. Pilih database yang akan anda dump ke dalam text file.
3. Lalu klik kanan dan perhatikan bahwa sekarang telah ada sebuah pilihan yaitu Publish to provider..., silahkan pilih opsi tersebut.
4. Jendela Welcome dari Database Publishing Wizard akan segera tersaji, klik Next
5. Pilih database yang akan anda dump, lalu klik Next.
6. pada bagian ini anda dapat memilih apakah akan melakukan dump isi database anda ke sebuah file atau ke sebuah shared hosting provider. Karena kita akan melakukan dump ke text file maka silahkan pilih Script to file dan isikan nama file yang anda inginkan.
7. Klik Next untuk maju ke langkah selanjutnya.
8. Sekarang anda akan menemukan wizard dengan judul Select Publishing Options. Dalam bagian ini anda dapat mengatur 4 hal yaitu :
1. Drop existing objects in script
jika opsi ini nilainya true maka akan dihasilkan script yang menghapus tabel-tabel dengan nama yang sama dengan tabel-tabel yang ada dalm database yang akan didump.
2. Schema Qualify
Jika opsi ini true maka nama sebuah objek akan dituliskan komplit dengan nama schemanya.
3. Script for Target database
opsi ini untuk menentukan versi SQL Server yang akan menjadi target dari dump file.
4. Types of data to publish
opsi ini menentukan isi dari dump file anda, apakah hanya berisikan data saja, skema saja atau bahkan kedua-duanya.
9 . Pada langkah 9 silahkan pilih setiap opsi sesuai kebutuhan lalu klik Next.
10. Jendela konfirmasi akan muncul, pastikan bahwa setiap pilihan telah sesuai dengan kebutuhan anda. Silahkan klik Finish jika anda telah memastikan bahwa semua aturan benar, atau tekan Back jika ada aturan yang salah.
11. setelah anda menekan tombol Finish maka sebuah jendela yang menampilkan kemajuan dari operasi akan muncul dan ketika selesai tampilannya adalah sebagai berikut.
Baiklah itu saja tips singkat dari saya tentang bagaimana menghasilkan sebuah file dump dari SQL Server 2005 dengan menggunakan database publishing wizard yang telah ada dalam Visual Studio 2008. Cukup mudah bukan? sehingga dengan kemudahan ini diharapkan anda dapat dengan mudah melakukan dump database anda kedalam sebuah file text. Semoga bermanfaat....
cheers....
he3x ini sedikit oleh2x dari GCOE minggu pertama di MIC - ITB, kebetulan pada minggu pertama ini saya menjadi trainer dalam pelatihan berjudul Infrastuktur dan Arsitektur Web. Jadi dalam pelatihan ini saya membawakan materi singkat seputar Windows Server 2008, IIS 7.0 dan juga ASP .NET MVC. Presentasi dan Hands-On-Labnya gak berat-berat amat sih. Karena sifat pelatihan yang cuma pengenalan dan waktu yang singkat (3 sesi, 1 jam per sesi).
Okeh jadi pada blog posting ini pingin membagi sedikit pengetahuan tentang salah satu fitur IIS 7.0 yang menurut saya paling menarik. Kalau misalnya rekan2x pembaca belum punya IIS 7.0 tapi punya vista edisi business atau ultimate bisa lihat tutorialnya yang ditulis oleh rekan saya dari UI di sini. Remote Management seperti terlihat dari namanya adalah sebuah fitur dalam IIS 7.0 yang memungkinkan kita untuk melakukan management IIS 7.0 dari PC lain. Yup, saya ulangi dari PC lain. Okeh mungkin ada yang nanya gini :
Q: apa bedanya dengan pake remote desktop dan jalanin Inetmgr di server.
A: okeh bedanya adalah Remote Management menggunakan port 443 sedangkan remote desktop pake 3389. Jadi artinya remote management pake port yang sama dengan https, so harusnya port ini firewall friendly. sebagai info port 3389 itu diblok oleh kebanyakan firewall. bahkan di ITB aja diblok :D
Q : okeh, kalo mo pake Remote Management perlu apa aja di server.
A : pertama tentunya kita perlu Windows Server 2008/ Vista dengan IIS 7.0 yang telah terinstall, kemudian mengaktifkan IIS Management Servicesnya seperti gambar dibawah ini :
pastikan bahwa IIS Management Service anda terinstall, jika belum silahkan aktifkan dahulu fitur ini pada Windows Features (saya menggunakan Vista pada gambar diatas)
Q : okeh, kalo udah aktif terus di sisi server apa lagi yang perlu dilakukan?
A : Setelah fitur IIS Management Service telah aktif maka ada beberapa konfigurasi yang perlu dilakukan pada sisi server. langkahnya cukup mudah seperti dibawah ini :
1. Aktifkan Management Service untuk website anda. Caranya pilih fitur Management Service pada root web utama anda
2. Klik dan anda akan dihadapkan pada sebuah jendela pengaturan Management Service. pastikan bahwa checkbox Enable remote connection ada dalam keadaan tercentang. jika belum tercentang maka lakukan langkah dibawah ini
1. pastikan bahwa Management Service dalam keadaan stop, karena jika tidak stop pasti kita tidak akan dapat mencentang. Namun jika telah dalam keadaan stop silahkan lanjutkan ke langkah kedua. Jika belum tekan tombol Stop yang ada pada panel Action di sebelah kiri layar anda.
2. centang checkbox Enable remote connection kemudian anda dapat memilih cara authentifikasi pengguna yang dapat melakukan koneksi ke server web anda. Dalam kasus ini saya memilih Windows credentials or IIS Manager Credentials, alasannya apa? karena saya ingin melakukan koneksi dari luar kampus, jadi tinggal kasih username dan password aja. tapi kalo misalnya anda hanya ingin orang2x di lokal organisasi anda saja yang login (dikawinkan dengan AD) maka bisa aja sih pilih opsi Windows credentials.
3. tekan tombol Start untuk mengaktifkan kembali fitur ini.
3. Setelah fitur Management Service aktif kita perlu menambahkan seorang pengguna yang berhak melakukan remote management ke IIS kita. caranya cukup mudah silahkan ikuti langkah dibawah
1. masih pada bagian web utama pilih IIS Manager Users.
2. lakukan klik kanan dan pilih add users.
3. jendela penambahan nama user baru dan password akan muncul. Silahkan tambahkan nama dan password sesuai selera kemudian tekan OK.
4. Baiklah, sampai tahap ini kita telah memiliki pengguna dan fitur Management Service telah aktif, langkah selanjutnya adalah menambahkan pengguna tersebut ke daftar pengguna yang boleh melakukan koneksi di web kita. caranya cukup mudah silahkan ikuti panduan berikut :
1. PIlih site yang anda akan jadikan target dari Remote Management.
2. Cari ikon dengan judul IIS Manager Permission, dan klik ganda
3. Sekarang pada bagian tengah akan muncul sebuah daerah tempat anda dapat menambahkan pengguna, lakuka klik kanan dan pilih Allow User
4. Pilih IIS Manager kemudian tekan select dan pilih nama pengguna yang anda inginkan, lalu klik OK.
5. ketika anda telah sampai pada tahap ini maka anda telah berhasil mengkonfigurasi server.
Q : kalo udah beres diserver terus di client harus install apa?
A : okeh, saya berasumsi bahwa client menggunakan Vista SP1/ XP/ Server 2003, untuk dapat mengunakan remote Manager maka kita perlu mengunduh yang namanya IIS 7.0 Manager for Windows XP and Vista SP1 di sini
Q: kalo udah install IIS 7.0 Manager terus ngapain?
A : oke pada prinsipnya instalasi IIS 7.0 Manager akan memperbaharui IIS Manager komputer anda, jadi kalau anda jalankan inetmgr dari run maka perhatikan bahwa tampilannya telah berubah. Tampilan pasti akan relatif sama dengan IIS Manager yang ada pada Windows Server 2008. Nah sekarang adalah saatnya kita untuk melakukan koneksi ke IIS 7.0 di Windows Server 2008 tadi. silahkan ikuti langkah-langkah dibawah ini :
1. Dibawah Connection pilih tombol Create New Connection.
2. Karena kita hanya ingin koneksi ke sebuah website maka pilih Connect to a Site, sebenarnya anda pun dapat memilih apakah akan melakukan koneksi ke website, seluruh server atau ke application saja.
3. Setelah anda memilih Connect to a Site jendela Connect to Site akan muncul. isikan nama server anda dan nama situs yang telah anda aktifkan penggunanya. Setelah selesai mengisi silahkan pencet Next
4. isikan username dan password anda lalu klik Next.
5. Jika tidak ada masalah maka sekarang koneksi telah terbuat dan pada langkah wizard ini anda dapat memberikan nama koneksi ini. Silahkan ini nama koneksi ini sesuai selera. Setelah selesai klik Finish.
baiklah jika anda telah sukses mengikuti 5 langkah ini maka selamat anda telah dapat melakukan Remote Management pada IIS 7.0 anda.
Semoga tutorial ini cukup bermanfaat.
Seperti yang telah banyak diketahui bahwa sekarang di UI dan ITB sedang berjalan sebuah program pelatihan teknologi gratis untuk semua aparat negara. Pelatihan ini dibrand dengan title GCOE (Goverment Center Of Excellence). Jadi kalo sagi udah melaporkan beberapa perkembangannya di UI disini dan disana. maka sekarang saya pun ingin membagikan sedikit foto2x hasil kegiatan ini. kegiatan yang dilangsungkan ada 3 kegiatan minggu ini yaitu :
1. Pembukaan GCOE (dihadiri oleh Dekan, Kepala Bidang II Bapisitelda, MIC Advisor, DPE Team dan 87 peserta)
2. Training Infrastuktur dan Arsitektur Web Bacth II (trainernya saya dan Naren)
3. Training Infrastuktur dan Arsitektur Web (trainernya saya dan Naren)




mudah-mudahan training minggu ini bisa berjalan lancar. Topik minggu ini seputar pengenalan ke SQL 2005 dan beberapa kapabilitasnya seperti Reporting Services dan Analysis Services. Oh iya dalam setiap pelatihan pun saya tidak lupa untuk mengenalkan tentang web site komunitas khusus untuk rekan-rekan di kalangan pemerintahan yaitu gcoe.netindonesia.net , moga-moga komunitas tersebut dapat berkembang seperti INDC dan WSS-ID yang telah ada sebelumnya..
cheers..