h1

Sounds familiar in my daily programming

9 June, 2009

Recently I listen podcast from dotnetrock. The topic was about how can you be a better geeks. Saran yang paling mengena adalah always keep in touch with community. Mengenal setiap orang yang ada di komunitas sesuai spesialisasinya dan lebih bagus jika add ID YM, IM, atau FB mereka. Because if there’s a problem that you can’t handle it, you don’t have to looking everywhere. Just ask their opinion. Or maybe if you lucky enough you may solve the problem. That’s fast direction. Satu lagi yang sebenarnya pernah saya dengar. Yaitu tentang buku Code Complete. Guys from dotnetrock mention it to motivate geek’s skill into higher level. Well, itu buku memang bikin penasaran. Dan saya pun akhirnya mendapatkannya.

Disini saya highlight pada dua header.

Pertama tentang bagaimana memecahkan masalah yang kita pikir sangat kompleks dan anda merasa stuck pada saat tertentu karena belum bisa mendefinisikan major classnya. Well, jawabannya sangat sederhana.

One of the most effective guidelines is not to get stuck on a single approach. If diagramming the design in UML isn’t working, write it in English. Write a short test program. Try a completely different approach. Think of a brute-force solution. Keep outlining and sketching with your pencil, and your brain will follow. If all else fails, walk away from the problem. Literally go for a walk, or think about something else before returning to the problem. If you’ve given it your best and are getting nowhere, putting it out of your mind for a time often produces results more quickly than sheer persistence can. You don’t have to solve the whole design problem at once. If you get stuck, remember that a point needs to be decided but recognize that you don’t yet have enough information to resolve that specific issue. Why fight your way through the last 20 percent of the design when it will drop into place easily the next time through? Why make bad decisions based on limited experience with the design when you can make good decisions based on more experience with it later? Some people are uncomfortable if they don’t come to closure after a design cycle, but after you have created a few designs without resolving issues prematurely, it will seem natural to leave issues unresolved until you have more information (Zahniser 1992, Beck 2000).

Next is about Experimental Prototyping.

Prototyping works poorly when developers aren’t disciplined about writing the absolute minimum of code needed to answer a question. Suppose the design question is, “Can the database framework we’ve selected support the transaction volume we need?” You don’t need to write any production code to answer that question. You don’t even need to know the database specifics. You just need to know enough to approximate the problem space—number of tables, number of entries in the tables, and so on. You can then write very simple prototyping code that uses tables with names like Table1, Table2, and Column1, and Column2, populate the tables with junk data, and do your performance testing.

Prototyping also works poorly when the design question is not specific enough. A design question like “Will this database framework work?” does not provide enough direction for prototyping. A design question like “Will this database framework support 1,000 transactions per second under assumptions X, Y, and Z?” provides a more solid basis for prototyping.

A final risk of prototyping arises when developers do not treat the code as throwaway code. I have found that it is not possible for people to write the absolute minimum amount of code to answer a question if they believe that the code will eventually end up in the production system. They end up implementing the system instead of prototyping. By adopting the attitude that once the question is answered the code will be thrown away, you can minimize this risk. One way to avoid this problem is to create prototypes in a different technology than the production code. You could prototype a Java design in Python or mock up a user interface in Microsoft PowerPoint. If you do create prototypes using the production technology, a practical standard that can help is requiring that class names or package names for prototype code be prefixed with prototype. That at least makes a programmer think twice before trying to extend prototype code (Stephens 2003).

Code Complete, Second Edition By Steve McConnell

h1

Implementasi EMap @ Bali

4 April, 2009

Assalamu’alaikum kawans,

Sudah 1 bulan ini saya ‘dipaksa’ jadi implementator aplikasi GIS PLN di Bali. First it feels hard karena kebiasaan kerja di kantor dan ga pernah ketemu klien. Tapi lama-lama saya harus menyesuaikan dengan dinamika ‘orang lapangan’.

Banyak kendala dalam implementasi program yang telah dibuat bersama tim. Pertama dari sisi aplikasi kita sendiri, dari data, SDM yang kita punya dan yang klien punya, batasan minimal spesifikasi hardware klien dan server. Kemudian bandwith LAN.

Untuk hari pertama saya perlu belajar lebih mendalami flow proses bisnis aplikasi.
Kemudian berkenalan dengan klien, cek semua penunjang aplikasi dan akhirnya baru berjalan operasional.

Hambatan pasti ada tapi yang bisa saya lakukan adalah tetap tenang-walau di hari pertama lebih sering telpon sana-sini untuk mengetahui solusi error” yang muncul-dan mencatat semua hambatan.

Fiuh kurang 1 bulan lagi rek, semoga lancar.

h1

lama tak kutulis+belajar buat web using asp.net 2.0

10 January, 2009

Hampir lebih dari 1 bulan ini tak pernah nulis lagi. Pelit nulis?he he iya mungkin.

Apa yang sudah saya lakukan ya selama ini?.

Pertama bikin web app. Baru kali ini saya bikin web serius dari 0! using asp.net 2.0.
Selama ini suka ngikutin teknologinya tp ga pernah bikin.

Ok, yang pertama saya pikirkan adalah template ASP.NET. Udah dapet dari MSDN, tapi ternyata ga cocok designnya dengan kebutuhan aplikasi saya.
Biar sesuai dengan keinginan, saya tahu harus belajar css. Duh kok jadi web designer ya?. Tapi gpp, untuk design saya dibantu mas rufus tukang design.
Design sudah mendekati requirement (saya masih pusing dengan perilaku div), tiba saatnya untuk koding. Kali ini saya tidak mau reinvent the wheel. Saya pake contoh nhibernate best practice using asp.net dari codeproject.com. Contoh yang satu ini keren karena uda pake DI atau IoC yang bertugas membuat instance class dao atau data di webpage.

Lama saya pelajari dan berusaha saya terapkan nhibernate ternyata nihil dan makan waktu. Padahal keburu deadline nih. Akhirnya untuk urusan data saya serahkan pada microsoft pattern practices. Lebih easy going :) .
Kemudian masalah security dan membership. ASP.NET sudah punya solusinya. Saya tinggal inherit base class membership.

Ok, sampai sini dulu. Maaf masih belum ada link. Maklum masih belajar nulis posting ini dari my symbian uiq 3.

h1

Contoh sederhana SPRING.NET:Learn from IoC QuickStart Sample

16 November, 2008

It’s spring bed?. No.

It’s spring time?. No..not yet, it’s rainy out there.

It’s spring.net framework.

Dari belajar dikit-dikit mengenai DI (Dependency Injection) saya bisa tahu ide dasarnya adalah selalu berkomunikasi dengan object melalui Interface.

Dengan menggunakan Spring.NET, saya bisa lebih leluasa lagi mengisi sebuah interface dengan beberapa object yang mengimplementasikan interface yang sama cukup dengan mengubah konfigurasi XML. No hardcode needed. Nice :) .

Saya mengambil contoh MovieFinder sample. Dimana sebuah View (UI, dalam contoh adalah sebuah console application) mengambil data yang disediakan Model (namespace MySpring.Model) melalui Presenter (namespace MySpring.Presenter). Yup, I try a little MVP application right here, but failed at implementation :) . Malah mirip MVC framework.

solution

Rangkuman dari semua code dan apa yang ingin disampaikan oleh Spring.NET adalah ada di code ini.

magic

Object lister diisi oleh spring (ctx object) sesuai konfigurasi XML di app.config. Berikut konfigurasinya :

config

Kita bisa merubah apakah ref di property movieFinder di object MyMovieLister diisi oleh objek MyMovieFinder atau AnotherMovieFinder.

See.. no hardcode needed to implement an Interface. Cukup mengubah XML saja.

Untuk beginner mungkin sedikit bingung, but learning by doing is always a great teacher.

h1

Optimasi Build banyak project di Visual Studio 2005

12 November, 2008

Berawal dari proses Build solution yang mempunyai 21 project!. Karena beberapa project bekerja dengan assembly ArcGIS so pasti beratnya minta ampun. Akhirnya diputuskan untuk removing beberapa project dan dijadikan library, dan juga menambah memori komputer menjadi 2 Gb.

Masih belum cukup.

Ok, saya lanjutkan bersih-bersihnya. Senjatanya adalah di Tools-Options dan cek Show all settings.

Dimulai dari menu paling atas. Environment.
Uncheck Animate environment tools.

Kemudian menu Project and Solutions.
Uncheck Always show Error …
Uncheck Track Active Item …
Di menu Build and Run
Isi maximum number of parallel .. = 2 (sebenarnya ini tergantung dari prosesor komputer)
Check Only build startup …
Pilih combo MSBuild : Quiet

Cukup di Tools.

Sekarang saya coba build menggunakan MSBuild.Exe dari Visual Studio 2005 Command Prompt.
Perintahnya seperti ini :
MSBUILD “D:\proyek\GIS\Solution\SPerencanaan\SPerencanaan.sln” /t:build /p:Configuration=Debug

Dan hasilnya … lumayan. Dengan perintah MSBuild ini juga saya bisa mengetahui blackbox dari proses build. Dan saya juga bisa tahu waktu keseluruhan proses Build.

Ada tambahan dari kawan-kawan?

h1

compare canon ixus 80 IS dan my powershot 7mp a570 IS

9 November, 2008

Kemaren baru dapet pesenan temen dari plat ‘AE ‘ buat beli camdig. Setelah compare sana-sini dia akhirnya memilih Canon Ixus 80 IS (bersaing ketat dengan Lumix).

Saya pun segera membanding-bandingkan dengan camdig milik saya yaitu Canon Powershot A570 IS. Tapi hanya physicly saja, yang dapat saya lihat.

This what I like ’bout Ixus :

 

  1. Ixus lebih ramping. Setengahnya my P’shot. Jelas…dia pake batere lithium
  2. Lebih rapi dan simple. Tombol putar (biasanya ada di atas) yang ada di my P’shot seperti night mode, dan mode-mode lainnya sudah diringkas Ixus dalam tombol Function Set.
  3. 8 mega pixel, my P’shot still 7.1 mp.
  4. Walaupun processornya sama (Digic III) tapi saya rasa lebih cepat Ixus dalam memproses gambar dengan kapasitas 1-5 mb. Begitu juga dengan zoom-nya.
  5. Lebih silent. Pengoperasian lensa di my P’shot setelah beberapa waktu pemakaian (1 tahun) terasa agak berisik sekarang.
  6. Harga terjangkau lah. Rp. 2.355.000 di Centralindo, Delta Surabaya (harga saat tulisan ini dibuat dengan dolar yang membumbung tinggi). Sudah free memori 2 Gb.

What I like in my P’shot compare with Ixus 8.0 :

 

  1. Lampu blitz yang lebih gede.
  2. Lensa bisa dibongkar pasang. Atau conversion lenses (Ini yang bikin keren, tapi kurang di-explore oleh user. Dan tidak ada di Ixus.). Berikut jenis conversion lenses yang bisa digunakan :
    • Tele-converter 1.75x TC-DC52A
    • Wide Converter 0.7x WC-DC52
    • Close-up Lens 250D (52mm)
    • Conversion Lens Adapter LA-DC52G
  3. Easy to use. Bagi sebagian orang ada yang lebih familiar dengan tombal putar scene mode seperti Night mode, Kid pets, dan lain-lain.
  4. Harga lebih murah (mungkin karena masih memakai baterai AA). Selisih beberapa ratus ribu dengan Ixus.

*gambar diambil dari www.trustedreviews.com

h1

Unofficial motorcycle parking place at Darmo Trade Centre

5 November, 2008

Untuk pertama kalinya di Surabaya setelah 3 tahun lebih saya ke DTC. Jika bukan karena ingin mencari koleksi batik murah saya mungkin tidak akan pernah kesana. Dan kebetulan libur pemilu gubernur (Saya bagian dari 45% yang golput :) ).

OK parkiran motornya itu ada di belakang. Saya memilih parkir di emperan yang sangat sibuk. Banyak sekali tukang parkirnya dan lalu lalang mengeluarkan dan merapikan parkiran. Scorpio saya salah satu yang dirapikan. Sempat terbersit khawatir ilang juga.

Setelah naik dari emperan menuju pintu masuk dan naik ke lantai 2 saya baru sadar ada tempat parkir yang lebih baik dan yang penting resmi, ya di lantai 2 itu. Ahh nevermind, udah kadung diparkir.

Setelah beberapa jam jogging dan membeli beberapa batik saya pun berniat pulang. Tapi apa daya di luar hujan deras sekali. OK, let’s see for a few minute…well, maybe hour.

Dan akhirnya reda.Saya-pun mengambil motor (posisi motor sudah berubah sejak awal saya parkir) dan mengeluarkan uang Rp.1000,- pada tukang parkir (padahal di karcisnya cuma Rp.500,-). Tetapi beberapa saat kemudian ada tukang parkir lain yang menanyakan pada tukang parkir yang pertama tadi berapa saya membayar. “sewu (seribu) Pak,” jawabnya. Dia lalu menodong saya “tambah sewu Dek, suwi sampeyan (tambah seribu Dek, lama kamu-parkirnya)”. Ok tidak apa-apa saya mengeluarkan Rp.1000,- lagi.

Saya tidak mempermasalahkan penambahan Rp.1000,- tetapi saya tidak akan parkir disitu lagi. Yaa sambil ber-khusnudzon mungkin tukang parkirnya minta jasa mindah-mindah motor saya yang berat itu sambil hujan-hujanan.

h1

PhotoBlog : Ngebel Lake, Ponorogo [October 2008]

29 October, 2008

IMG 1536

 

 

 

 

 

 

 

 

 

 

IMG 1544

IMG 1553

 

 

 

 

 

 

IMG 1546

 

 

 

 

 

 

 

 

 

 

IMG 1539IMG 1537

 

 

 

 

 

 

It’s a really cool lake. Still natural. Quiet, no crowd (well..a little if it’s holiday). Only 1 boat you can try to sail.
And I’m getting impressed with that root of the trees.

Well, there’s no picture of me as usual :) .

And for my friends Ardi, do you want me to post your pics?. It’s a cool pics…really.

h1

Post test from scribefire

21 October, 2008

First post using scribefire. Usually i wrote what inside my head using blogdesk
Well, my interest is scribefire Quick Ads. But I’m still learn this UI. Hope I get more familiar.

Oops where can I insert WP tag like blogdesk?, but it’s OK..bungkus.

Tags:

h1

Fenomena di bulan Ramadhan

3 September, 2008

Telah diketahui bersama jika memasuki bulan penuh berkah dan rahmat ini, yaitu bulan Ramadhan, masjid-masjid akan mengadakan ta’jil atau berbuka bersama. Tidak hanya orang yang membutuhkan buka puasa, tapi juga orang-orang yang sudah dimasakkan makanan – makanan yang lezat di rumah-rumah mereka. Oleh Ibunya, atau istrinya, atau sanak saudaranya, tapi mereka malah lebih senang berbuka di masjid.

Memang tidak mengapa jika untuk membatalkan puasa dengan seteguk air atau sejumlah korma, tapi setelah shalat maghrib alangkah baiknya jika kita memakan makanan yang telah dimasak anggota keluarga kita.

Akan sangat disayangkan jika kita tidak memilih siapa yang akan mendapat pahala yang sama dengan puasa kita. Oh ya, tentu saya akan pilih memakan masakan Ibu saya agar Ibu saya InsyaAllah mendapat pahala yang sama dengan saya yang berpuasa.

Ingat, tangan di atas selalu lebih baik daripada tangan dibawah. Lebih baik kita menjadi orang yang menyumbang ke masjid tersebut makanan, kurma, nasi bungkus, minuman segar, atau buah-buahan.

Rasulullah Shalallahu’alaihi wasallam bersabda. “Artinya : Barangsiapa yang memberi buka orang yang puasa akan mendapatkan pahala seperti pahalanya orang yang berpuasa tanpa mengurangi pahalanya sedikitpun” [Hadits Riwayat Ahmad (4/144,115,116,5/192) Tirmidzi (804), ibnu Majah (1746), Ibnu Hibban (895), dishahihkan oleh Tirmidzi.]

Dan seringkali kita lupa, cuek, atau malah tidak bersyukur kepada Allah. Kita lupa untuk mendoakan orang yang memberi kita makan untuk berbuka. Kita bisa mendoakan mereka dengan doa-doa yang diajarkan Nabi Shalallahu’alaihi wasallam.

Artinya : Ya Allah, berilah makan orang yang memberiku makan, berilah minum orang yang memberiku minum” [Hadits Riwayat Muslim 2055 dari Miqdad]

Artinya : Ya Allah, ampunilah mereka dan rahmatilah, berilah barakah pada seluruh rizki yang Engkau berikan” [Hadits Riwayat Muslim 2042 dari Abdullah bin Busrin]

Tulisan ini terutama saya tulis sebagai penyemangat bagi diri pribadi dan kita sekalian muslimin muslimat untuk berbagi kepada sesama.