Ronald Rajagukguk

My Journey in .NET World
See also: Other Geeks@INDC

March 2008 - Posts

Nice plugins : PowerCommands for Visual Studio 2008

Kemaren setelah usai diajak mengabdi kepada negara oleh bang naren, maka gua melakukan blogwalking di seputaran teknologi Microsoft. Hasilnya gua nemu link ke sebuah blog yang ngebahas cara-cara meningkatkan produktifitas coding dengan memanfaatkan fitur2x Visual Studio yang jarang dipake ato plugin tambahan, bisa dilihat disini blognya. Nah yang menarik adalah dalam blog itu dibahas sebuah plugin tambahan untuk VS 2008 dengan nama PowerCommands for Visual Studio 2008, nah plugin ini menambahkan beberapa fitur-fitur kecil ke dalam VS 2008. Ada beberapa fitur seperti Collapse Project, Copy & Paste Class, Copy & Paste Reference, dan lainnya. Tapi disini gua pengen bahas fitur2x yang menurut gua menarik dan berguna aja untuk kebutuhan coding gua sehari-hari. Okeh gua akan bahas tiga aja :

1. Extract Constant

Nah fitur ini menurut gua paling berguna. Biasanya kalau kita klik kanan pada sebuah nilai dan kemudian pilih "Refactor" akan muncul 2 buah pilihan yaitu "Rename" atau "Extract Method" kayak gambar dibawah ini :

image

dengan mengginstall PowerCommands maka akan ditambahkan satu lagi pilihan yaitu Extract Constant kayak dibawah ini :

image

fitur extract constant ini akan membuat nilai kita tersebut menjadi sebuah konstanta, sehingga kode dibawah ini :

public void inisialisasi()
{
    for (int i = 0; i < 100; i++)
    {
        tempIdea = i.ToString();
    }
}

jika kita terapkan Extract Constant di nilai angka 100 kayak gambar dibawah ini :

image

maka akan memunculkan jendela dibawah ini :

image

hingga akhirnya kode akan menjadi seperti dibawah ini :

private const short jumlah = 100;
public void inisialisasi()
{
    for (int i = 0; i < jumlah; i++)
    {
        tempIdea = i.ToString();
    }
}

 

he3x..fitur ini sangat membantu kerjaan sehari-hari gua, karena kalo maen2x bikin GUI, gua sering maen-maenin nilai sebuah variabel untuk kemudian dijadiin konstanta, dan kalo anda jeli maka plugin ini secara otomatis akan membuat sebuah variabel konstanta dengan tipe yang paling cocok, kalo dilihat diatas PowerCommands akan menghasilkan konstanta dengan tipe short (mengingat nilai 100 masih bisa ditampung oleh tipe data short) sedangkan juga anda masukkan nilai diatas 2 pangkat 16 maka pasti akan dibuatkan konstanta dengan tipe Int32.

2.Remove and Sort Using

fitur ini secara otomatis akan menghilangkan semua statement using yang gak dipakai isinya dalam semua file di project kita. Cukup membantu fitur ini dalam meringkaskan kode kita, mengingat Visual Studio suka menggenerate statement using yang gak perlu jika kita pertama kali membuat sebuah file, terutama jika file tersebut dihasilkan dari wizard.  selain menghilangkan yang gak perlu fitur ini juga mengurutkan statement using berdasarkan alphabet, so memudahkan untuk pembacaan. Contohnya untuk kode singkat dibawah ini :

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace konsol
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("check");
        }
    }
}

jelas terlihat bahwa kode diatas sebenernya gak perlu make kelas yang ada di 3 namepace (System.Collections.Generic, System.Linq, dan System.Text). nah kalo mau ngilanginnya gampang tinggal klik kanan di project dan pilih "Remove and Sort Usings" kayak dibawah :

image

dan Voila! hasilnya kode jadi agak ringkas kayak dibawah ini :

using System;

namespace konsol
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("check");
        }
    }
}

 

3.Open Command Prompt

okeh kalo yang ini mah gak terlalu ngaruh ke kode, intinya dia bakalan buka command prompt di lokasi yang sama dengan project kita. Tapi perlu dicatat bahwa command prompt yang dibuka  adalah yang telah tersetting dengan environment VS 2008, jadi bisa langsung kompile project pake csc/vbc/cl ato lainnya.

okeh tertarik untuk pake tools ini dan merasakan nikmatnya VS 2008? silahkah unduh di sini dan situs resminya di sini. Sebagai pesan tambahan nampaknya ini cuma bisa diinstall di VS yang pro atau Team System, soalnya gak keinstall di C# express 2008 gua, tapi gak tau juga ya kalo misalnya di PC tersebut cuma ada sering express.

 

cheers

Share this post: | | | |
Posted: Mar 31 2008, 10:19 AM by ronald | with no comments
Filed under: , ,
My First 20 minutes using Microsoft Parallel Extensions

Tadi malem karena gak bisa tidur jadi ya gua buka laptop. Ubek-ubek ternyata ada barang baru yang udah ampir 1 bulan yang lalu didonlot yaitu Paralel Extensions December 2007 CTP. Karena penasaran langsung aja install dan baca-baca dokumentasinya. Ternyata ini adalah SDK untuk maen-maen dengan eksekusi program yang bersifat paralel  dengan menggunakan .NET, ya cocok lah untuk era sekarang yang mana prosesor bukan maen di kecepatan lagi tapi udah maen di jumlah prosesor. okeh karena udah malem, tanpa banyak ambil pusing explorasi pun dimulai.

Karena bosen baca-baca tulisan doank ya udah konkrit aja lah, langsung buka VS 2008 dan mulai coding. pertama-tama coding LINQ dulu, penasaran pengen liat fitur paralel ini di linq. langsung aja tulis kode kayak gini :

var data2 = (new string[4]{"satu","dua","tiga","empat"}).AsParallel();
var hasil = ParallelEnumerable.Select(data2, p => p.Length > 2);
foreach (var res in hasil)
{
    Console.WriteLine(res + DateTime.Now.Millisecond.ToString());
}

ternyata hasil di konsol adalah :

image

mmm kalo liat dari hasil di konsol nampaknya proses looping ngak dibagi-bagi deh eksekusinya. tetep dieksekusi secara sequensial, soalnya tulisan milisecondnya bertambah terus dari tiap baris. mmm apakah ini pengaruh dari "Pararelism Blockers" ato gara-gara gua salah coding ya? maklum dah jam 2 pagi.

Okeh karena gak puas dengan LINQ dan masih belum ngantuk gua langsung cobain proses looping dengan API yang ada dari System.Threading (dll baru bawaan dari extension ini) tulis kode dibawah dan langsung eksekusi :

Parallel.For(0, 10, i =>
{
    Console.WriteLine("angka ke-"i.ToString() +" "+ DateTime.Now.Millisecond.ToString());
});

he3x disini mulai keliatan paralelnya kerja, soalnya di konsol tertulis kayak gini :

image

terlihat jelas bahwa urutan eksekusinya gak urut, kan harusnya abis tulisan "angka ke - 2" dilanjutkan dengan "angka ke - 3" tapi karena paralel dan kebetulan yang ke 8 beres duluan maka abis tulisan "angka ke - 2" dilanjutkan dengan tulisan "angka ke -8" lalu yang ke 9 dan setelah itu baru yang ke 3 beres dan dilanjutkan dengan 4,5, dst...

he3x menarik ya? dan sekali lagi ketika loopnya gua jadiin 1000000 kali maka CPU Usage laptop gua langsung jadi 100% (bisa diliat di gambar dibawah)dan kedua prosesornya langsung keliatan full 100%, lain kalo dengan loop biasa paling cuma jadi 50%-60% aja load prosesornya.

image

he3x menarik juga ini API fitur dual core laptop gua jadi bisa dipake maksimum deh, cuma sayang mata gua udah mulai berkunang-kunang , saatnya matiin komputer dan menarik selimut untuk tidur...

cheers

Share this post: | | | |
Posted: Mar 24 2008, 07:06 PM by ronald | with 3 comment(s)
Filed under: , ,
My Hello World at Windows Vista Sidebar

Demi mengikuti tradisi lama di dunia perkodingan, maka setiap kali belajar pasti diawali dengan bagaimana caranya membuat tulisan "hello world" di layar. He3x maka karena sekarang karena lagi ngoprek-ngoprek Windows Vista Sidebar dengan bermodalkan "buku" yang dikasih om reza,  jadi biar gak lupa gua bikin tutorial sederhana bagaimana membuat sebuah gadget yang menulis "hello world" di Vista Sidebar. Oh iya buat yang belum tau Vista Sidebar itu apa bisa lihat disini. Intinya kalo anda sudah biasa pake Konfabulator (buatan Yahoo!) atau Dashboard (di Mac) ya Sidebar ini gak jauh beda lah fungsinya. Kita bisa nambahin gadget-gadget dah bahkan kita bisa bikin gadgetnya sendiri. Bikin gadget untuk Vista Sidebar ini ternyata gak susah-susah amat, cukup dengan HTML+CSS+JavaScript kita udah bisa bikin sebuah gadget sederhana, ya kalo mo macem-macem bisa sih pake .NET Interop.

Okeh kita mulai aja tutorialnya. Untuk membuat sebuah Gadget "Hello World" maka kita hanya perlu membuat dua buah file yaitu :

1. manifest gadget ini yang mengandung info soal gadget kita dan juga link ke halaman HTML utama dari gadget ini (ya mirip dengan manifest yang ada di jar lah...), oh iya file ini harus dinamakan gadget.xml

2. sebuah halaman HTML yang mendeskripsikan tampilan dari gadget kita, dalam halaman HTML ini pun kita bisa menambahkan css dan juga javascriptnya.

okeh mari kita buat file yang pertama kasih nama gadget.xml dan silahkan ketikkan xml dibawah ini.

<?xml version="1.0" encoding="utf-8" ?>
<gadget>
    <name>Hello World by Ronald</name>
    <namespace>Example.You</namespace>
    <version>1.0.0.0</version>
    <author name="Ronald Rajagukguk">
        <info url="www.ronaldpenalosa.com" />
    </author>
    <copyright>&#169; 2008</copyright>
    <description>My Hello World gadget</description>
    <hosts>
        <host name="sidebar">
            <base type="HTML" apiVersion="1.0.0" src="HelloWorld.html" />
            <permissions>Full</permissions>
            <platform minPlatformVersion="1.0" />
        </host>
    </hosts>
</gadget>

Okeh, XML simple diatas intinya pengen ngasih tau ke si vista, nilai-nilai properti dari gadget kita. Kayak misalnya nama, versi, dan atribut lainnya. Kemudian untuk elemen host, itu adalah nilai standar yang harus diisi kalo develop gadget. Kalo udah bikin file gadget.xml sekarang saatnya kita buat sebuah file html dengan nama HelloWorld.html (nama ini bisa diganti jika anda mengganti atribut src pada element base didalam dokumen xml pada file gadget.xml diatas). Silahkan ketikkan kode HTML dan CSS sederhana dibawah ini pada HelloWorld.html

<html>
<body style="width:130px;height:100px;background-color:Navy;color:White">
Hello World by Ronald Rajagukguk
</body>
</html>

Sip, kalo udah bikin dua file ini maka silahkan kompres dua file ini dengan format zip (bisa pake winrar atau tools kompresi lainnya) kemudian setelah itu ganti nama extensi file .zip tersebut dengan .gadget. Contoh jika anda mengkompres dua file tersebut dan nama file hasil kompresinya adalah hallo.zip maka ganti sehingga menjadi hallo.gadget. setelah diganti maka icon dari file tersebut akan berubah menjadi seperti gambar dibawah ini :

image

Okeh, sekarang kita bisa klik dua kali pada file tersebut dan akan muncul prompt yang bertanya apakah kita akan menginstall sebuah gadget pada vista sidebar, pilih OK dan setelah itu jika kita membuka jendela penambahan gadget pada vista sidebar maka akan ada sebuah gadget dengan nama "Hello World by Ronald". Pilih gadget tersebut lalu pasang di sidebar vista anda. Sekarang di sidebar anda, tentunya ada sebuah gadget baru dengan latar belakang warna biru navy dan tulisan "Hello World by Ronald Rajagukguk". He3x simpel ya bikin aplikasi hello worldnya. Besok gua posting lagi deh cara bikin sidebar yang lebih menarik.

 

cheers and happy easter everyone.......

Share this post: | | | |
Posted: Mar 24 2008, 03:02 AM by ronald | with 1 comment(s)
Filed under: , ,
The Power of GDK and Microsoft Visual C++ Express Edition

Game Development merupakan sebuah topik yang lagi hot dibahas di MIC ITB, bahkan di sini beberapa kru sedang mengerjakan sebuah proyek game dengan code name "Twilight". Nah yang menarik adalah kemaren salah satu kru MIC sini dengan nama Inas Lutfie membuat sebuah tugas kuliah dengan menggunakan GDK (Framework untuk game gratis) dan Microsoft Visual C++ Express Edition (IDE gratis dari Microsoft). Tugas kuliah yang Inas buat adalah untuk menerapkan algoritma greedy dalam mengatur pergerakan sebuah robot untuk mengumpulkan koin di sebuah papan.

clip_image001

Jadi untuk contoh papan diatas robot akan bergerak dengan menggunakan algoritma greedy dalam mencari koin yang terdekat. Perlu diingat bahwa dalam tugas dasar ini robot hanya dapat bergerak ke kanan dan ke bawah, sehingga dalam sekali perjalanan tidak mungkin untuk mengambil semua koin. he3x tugas yang cukup simpel. (jadi inget kalau dulu tugas kuliah saya adalah menggunakan djikstra untuk mencari jarak terpendek.)

Okeh kita kembali ke masalah teknis program. Dalam Visualisasi tugas ini Inas menggambarkan robot tadi menjadi sebuah ninja dan koin menjadi sebuah anjing. Sehigga ketika ninja tadi menemui anjing tersebut ninja tersebut akan melakukan jurus2x untuk membunuh anjing tersebut. cuplikan layarnya adalah seperti berikut :

ingame3 []front [] ingame5 [] ingame4 []

Keren ya? full 3D, menurut pengakuan inas dia hanya mengerjakannya dalam waktu 2 hari, yup benar 2 hari dengan menggunakan GDK dan VC++ 2008 seorang inas telah berhasil mengembangkan sebuah game 3D. He3x nampaknya kedepannya kru-kru MIC akan lebih banyak lagi berkiprah dalam dunia pengembangan game, mungkin untuk tugas-tugas kuliah selanjutnya XNA bisa mulai digunakan...

 

cheers...

Share this post: | | | |
Posted: Mar 17 2008, 10:31 AM by ronald | with 4 comment(s)
Filed under: ,
Finally I got my Bachelor Degree.....

Akhirnya....

setelah 4,5 tahun menuntut ilmu coding di kampus dewa gajah duduk, saya bisa memperoleh gelar ST. he3x..... jadi deh sekarang gua menambah tingginya angka pengangguran di Indonesia. Yang menarik adalah pada hari kelulusan gua ada salah seorang pegawai microsoft yang menyempatkan diri untuk hadir. Nih beberapa  fotonya :

IMG_0103 IMG_0077 IMG_0076

okeh dengan lulusnya gua, berarti sekarang ada satu slot MSP kosong nih untuk ITB, he3x ada yang tertarik untuk gantiin? mmm udah lulus ngapain ya? jadi developer j*va aja kali ya.... :D

Share this post: | | | |
Posted: Mar 11 2008, 04:27 PM by ronald | with 18 comment(s)
Filed under:
Learning Materials under My Desk

image

dibawah meja saya sekarang ada dua buah materi yang kudu diexplorasi untuk mengisi waktu seorang pengangguran kayak saya sampai akhir bulan maret, yang pertama yaitu buku "Training Kit: .NET FRAMEWORK 2.0 Application Development Foundation" setebal 1000 halaman lebih-lebih dikit dan satu lagi yaitu DVD  "Beginners Guide To : XNA Game Studio Express" oleh-oleh om Zeddy dari US. Untuk buku yang memang rada aneh ya saya baca lagi, soalnya ampir 1,5 tahun yang lalu saya sudah lulus ujian dengan kode ujian 70-536 ini, tapi ya karena dapet kiriman buku dari om Ari Fadyl gak ada salahnya baca-baca lagi ini buku toh waktu itu juga lulusnya pas-pasan, dan meskipun .NET sekarang udah 3.5 tapi dasar-dasar 2.0 tetap akan dipakai. Kalo untuk XNA ya ini merupakan dunia yang baru dan menarik, saya sama sekali belum pernah bikin game 3D, kalo aplikasi 3D pake WPF sih dah pernah. mmmmm kalo ada yang bagus dari hasil explorasi dua barang ini pasti deh saya tulis di blog ini......

Share this post: | | | |
Posted: Mar 05 2008, 01:59 AM by ronald | with 2 comment(s)
Filed under:
My First Ebook Cover

coverbukuronald LINQ res

Gambar diatas merupakan kover dari ebook pertama saya yang berjudul "Perjalanan ke desa LINQ", judul yang aneh ya? pada intinya buku ini akan mengulas secara singkat bagaimana penggunaan LINQ ketika sedang berurusan dengan data yang berupa objek, XML dan juga basis data relasional (contoh kasus SQL Server 2005). Sesuai dengan judulnya maka dalam buku ini para pembaca akan dibawa untuk mengeksplorasi penggunaan LINQ yang diumpamakan sebagai perjalanan mengelilingi desa LINQ yang mana ada 3 tempat pemberhentian yaitu pada Objek, XML dan terakhir basis data relasional. Kemudian saya pun mengumpamakan C# (bahasa yang digunakan dalam buku ini) sebagai dokar yang akan dipakai untuk mengelilingi desa LINQ, hal ini terinspirasi dari dokar yang sering ada di depan kampus dewa gajah duduk tempat saya telah menghabiskan waktu 4,5 tahun menuntut ilmu coding. Mmmm mungkin kalo ada waktu pengen coba juga sih ngarang yang versi VB, mengingat VB punya XML Literal yang oke punya kalo untuk urusan XML.

He3x.... buku setipis 127 halaman dengan ukuran hanya 4.83 MB dalam format PDF ini belum resmi direalease sih, masih nunggu komando dari bapak Narenda Wicaksono, btw kover buku diatas dibuat oleh salah satu kru MIC - ITB yaitu Ume Fadilah.

Share this post: | | | |