Archive

Archive for July, 2010

Good Publisher for Me

July 31, 2010 1 comment

Baca ebooks itu menyenangkan untukku selain gratis. karena bisa didonlot di internet tinggal masalah niat mencari aja. Semua ebooks rata2 tersebar di internet. *sepertinya aku jadi pendukung pembajakan. Tapi mw gimanalagi. Semua buku mahalnya bukan main. Tunggu banyak duit dululah. Pasti aku beli buku hardcopy langsung.

Nah aku skarng mw bahas buku2 terbitan yg bagus menurutku.

The Head First Series

Buku2 yang ada disini benar2 cocok buat pemula. Dari yang pengetahuannnya dasar ato nol bisa sampe dibuat ngerti. Emang cara menjelaskannya benar2 sederhana. Konsep2 yang sulit dibuat jadi mudah. Banyak gambarnya. Banyak exercisenya. Meskipun bahasa2nya sederhana tapi konsep2 yang ditawarkan di situ juga gak semuanya mudah. Ada juga konsep2 yang sebenarnya klo dibaca dibuku2 software engineering lain bikin sakit kepala. Jadi klo gak mw repot2 dan cape2 sakit kepala belajar, baca aja buku ini ya. Sangat menyenangkan sekali.

The Pragmatic Bookshelf

Buku ini bahasa sederhana dan juga practical. Jadi gak banyak teori2 yg rumit. Teori yang rumit2 juga dipersimple. Practice2 yang bagus juga banyak diterbitkan oleh buku ini. Pokoknya recommendedlah. Alur bahasanya biasanya seperti conversation juga sih. Jadi bisa cepat dimengerti. Kontennya juga bervariasi dari yg mudah ke yang sulit.
Read more…

Programming to Interface

July 18, 2010 2 comments

Baru saja selesai skimming buku Interface Oriented Design. Buku ini menuntas habis mengenai cara kita membuat sistem dengan interface.

Introduction

Di awal buku ini ada contoh mengenai Pizza Ordering. Skenarionya adalah kira2 sebagai berikut.

Kejadiannya ini karena malam2 lapar trus pengen pesan pizza favourite.
Nelepon deh..

Pizza guy : Yapz
Aku : Aku mw pesan pizza jumbo
Pizza : Toppings?
Aku : Pepperoni dan Mushrooms
PIzza : Alamat?
Aku : 1 Oak street
Pizza : 30 menit lagi akan diantar.

Nah.. kita coba bangun interface untuk PizzaOrdering tersebut. Hampir di setiap pemesanan pizza akan mendapati model percakapan seperti itu. Pemesanan pizza memiliki interface yg sama tetapi hanya implementasinya saja yg berbeda. Misalkan kita menelpon pizza yg lain maka yg kita hadapi kemungkinan besar adalah percakapan di atas.


public interface PizzaOrdering 
{
      void SetSize(Size size);
      void SetToppings(Toppings toppings);
      void SetAddress(Address address);
      DateTime GetTimeDelivered();
}

Nah.. sekarang kita udh punya interfacenya.. Trus bagaimana kita mendapatkan implementasi dari interface tersebut ? Kita tentu saja butuh Finder. Kita cari di buku telepon atau buku informasi mengenai toko pizza. Dari situ kita akan dapat memilih mana toko pizza yg akan kita hubungi. And then dial the number… Cara kita meng-order pizza tersebut sama tetapi perlakuan toko terhadap proses tersebut kemungkinan besar berbeda. Interfacenya sama tetapi implementasinya berbeda.
Read more…

Getting started with ActiveMQ

July 12, 2010 Leave a comment

Setelah nyaman menggunakan NServiceBus sebagai ESB saya kemudian berpikir apakah MSMQ tersebut dapat digantikan dengan transport yang lain? Selama ini saya hanya menggunakan NServiceBus dengan MSMQ bawaan dari windows. Bagaimana jika kita ingin running aplikasi tersebut di Linux. Hal itu tentu bakalan menjadi masalah. Padahal aku udh kecantol sekali dengan NServiceBus ini.

Ternyata pembuat NServiceBus tersebut sudah memperhitungkan hal tersebut. Di dalam Roadmap dijelaskan bahwa langkah selanjutnya adalah improved pluggability.
Read more…

Categories: Messaging, NServiceBus

ASP .NET MVC, Razor and WebMatrix

July 11, 2010 1 comment

ASP .NET MVC merupakan web programming model yang baru dari Microsoft. Dibandingkan ASP .NET banyak kelebihan dan juga kekurangan. Tapi saya lebih memilih model programming dengan ASP .NET MVC karena lebih nature terhadap aplikasi web yg stateless.

Ketika aku mencoba ASP .NET MVC ada sedikit perasaaan tak nyaman dengan model programming di View. Hal tersebut adalah pasangan tag yg harus mengapit code2.

<ul id="products">
	<% foreach(var p in products) {%>
		<li><%=p.Name%> ($<%=p.Price%>)</li>
	<% } %>
</ul>

Dengan new view templating engine Razor kita dapat menulis view dengan cara berikut

<ul id="products">
	@foreach(var p in products) {
		<li>@p.Name ($@p.Price)</li>
	}
</ul>

Perhatikan bahwa tag2 pengapit code tersebut dihilangkan. Lebih simple kan? Source untuk razor salah satunya adalah

Razor in InfoQ
Introducing Razor by Scott Gu

Berita baik tidak hanya berhenti pada Razor saja. WebMatrix juga membawa satu kemudahan lagi. Yah WebMatrix menyediakan kemudahan development web dari awal sampai akhir. Dari building web page, code logic, debuging, test, db management n deployment.

Source untuk WebMatrix :

WebMatrix in InfoQ
ASP .NET WebPage using Razor Syntax
WebMatrix How To
Create WebSite from Gallery Application

Enjoy It….

Categories: .NET, ASP .NET MVC

Ajax – Comet – Push Client Browser

July 10, 2010 Leave a comment

Ajax pada dasarnya hanya dapat melakukan request ke Server. Bagaimana jika Server pengen kirim sesuatu ke client… Apakah itu mungkin? Ke browser? dari Server kirim ke browser? Heh?

Contoh dari push client tersebut diterapkan oleh facebook (untuk notifikasi n chat) dan gmail untuk web chat.

Comet adalah solusinya….

Sebenarnya gak ada yg istimewa sekali atau benar2 baru dari model ini. Yg dimanfaatkan hanyalah spesifikasi HTTP tersebut. Koneksi http tersebut ditahan untuk beberapa waktu sehingga response dapat dikirim melalui koneksi yg terbuka tersebut.

Untuk lebih memahami model dengan menggunakan comet ini berikut adalah resource untuk belajarnya :

Comet Programming

New Approach to Ajax Application

Comet server framework

Responsive Ajax App With Comet

Comet n PHP

Comet dengan PHP n CodeIgniter

Comet with DWR and Jetty

Comet and Reverse Ajax: The Next-Generation Ajax 2.0 (Firstpress)

Selain dengan menggunakan comet ada teknik2 lain seperti dengan BOSH. Model BOSH ini sering digunakan dengan XMPP server (chat server). HTML5 juga bakal mendukung hal ini yaitu dengan Web Socket.

Categories: Ajax, Web Tags: , ,