1.8.08

Incremental Link

I saw someone at dotnet forum asking for a help on building a very simple application.

He said that when he built the project, he encountered an error on something that has to be related with msvcr90d.dll.

And then the story continues to Incremental Link...

 

I think it's better for me to explain a bit about incremental link (/INCREMENTAL).

This option has nothing to do with the run-time library. It's just a smart mechanism to aid us as a programmer.

Before that it's also important to know the "flow" in order to produce the EXE. Basically there're 2 steps, compiling and linking.

When you compile a source file (C source file for example), you're going to generate an object file. That object file(s) will be linked together, and voila.. you have your EXE.

You see, compile -> link -> exe.

Imagine you have a huge project (ballistic missile control project) that contains hundreds (or maybe thousand) of source file. When you change 1 source file you have to build the whole project. Compiling and then linking those hundreds object files. What this means?

Total waste of time.

 

And this is how incremental link works. You don't have to build the whole project, and waste your precious time.

When you activate this option, you'll see an ilk file. I would say this is a database which contains information about your project. For example timestamps of every object file you generated before. So when you change one file, and you generate object file, that (only) changed object file will be "patched" to a previously exe.

 

Let's experiment this, and compare the time needed to build the project. See the difference?

But, yes there's a but :)

1. Your application will be fatter (in my case 1.78 MB vs 1.43 MB)

2. May contain jump thunks*

 

Also, there's an important note from the MSDN:

To ensure that your final release build does not contain padding or thunks, link your program nonincrementally.

 

If you want to know more about code and data padding or thunks, check this website:

http://msdn.microsoft.com/en-us/library/4khtbfyf(VS.80).aspx

or this:

http://docs.sun.com/source/806-3567/ild.html

 

Back to the problem with our very simple application problem. I would say the problem is in the run-time library. He needs to make sure which library he wants to link. When he said there's an error with msvcr90d.dll. He must have linked the application with msvcrtd.lib. And this is the multithreaded and dynamic link (debug) version.

Make sure this with project's settings.

1.  C/C++ -> Code Generation -> Runtime Library

2. Linker -> Input

28.7.08

(kinda) Addicted to Andrew

I don't know why, but i guess i'm kind of addicted to this shoes.
In fact yesterday was the 3rd buy.
My first impression with this shoes (as i wrote down on their customer satisfaction survey form) is comfort. I gotta admit their shoes is (until now) the most comfortable shoes i have ever owned.
Not to mention its durability. (this shoes has helped me a lot during Jakarta's yearly flood)

They used to give goodies for every purchase (i have a mug and an umbrella), but sadly they just stop this giveaway. Yesterday they gave me a 100k voucher. (but, yes it's a but) You can only use that voucher to buy kids shoes, and not only that.. the voucher itself, will be expired this august. Sad.

21.7.08

Win32 Programming Training

Hari sabtu kemarin, saya bawakan materi Basic of Win32 Programming (part of C++/Win32 at MIC University of Indonesia event)
Materinya sendiri masih seputar how Windows application works, how Windows interacts with our application, etc

Untuk beberapa orang, programming dengan mengakses langsung Win32 API dengan language seperti C akan sangat mengerikan. Ambil contoh saja untuk menampilkan Hello World's window dibutuhkan sampai lebih dari 50 baris kode!
Untuk apa menyusahkan diri?
Jawaban.

Semoga tidak membuat patah semangat para peserta training ini. Semoga :)

9.7.08

Setelah Sekian Lama "Idle"

Memang 2 bulan ini campur aduk aktifitas. Banyak waktu habis di jalan juga.
Tapi senang juga, karena berada dalam tempo yang tinggi.
Persiapan menuju "big day" lumayan juga. Mungkin tinggal beberapa hal - hal kecil.
Yang terpenting malah persiapan mental.
Kadang aneh juga lihat orang yang seluruh perhatiannya ditumpahkan "hanya" untuk 1 hari itu. Sepenting itukah 1 hari itu? (Ya, memang orang bisa ber-argumentasi itu khan once in a lifetime)
Bahkan semua yang kita lakukan prinsipnya "once in a lifetime". Consider this.
Makanya saya mau menjalani hidup saya seperti besok saya akan mati.
Ya, sesuai banget dengan kata - kata manis dari papan kayu nisan di rawaseneng.
Me today, you tomorrow. (Saya benar - benar mengagumi kedalaman kata - kata ini)

Anyway, saya coba manfaatkan waktu saya yang campur aduk tadi untuk membuat software baru. (Masih berurusan dengan SMS, lha wong saya cuma ngerti ini :) )
Tantangan terbesar bagi saya untuk membuat software ini adalah masalah kompatibilitas dengan Vista. Contoh kecil: fungsi fopen vs fopen_s, masalah UNICODE, dst..

Semoga sebelum "big day" itu, saya sempat release software ini.
Semoga.

Win32 (Works with Windows Vista)

30.4.08

Membelah Macet Demi Rupiah



Hidup adalah perjuangan tanpa henti, Yeah! :)
Btw, saran dari pak Krishnamurti benar - benar mujarab untuk memerangi stress di jalan. Thanks a lot pak!

25.4.08

Kiriman Dari Microsoft

Kemarin dapat kejutan :)
Pulang dari kantor ada seonggok paket, ternyata dari Microsoft.
Isinya benar - benar berharga, harta karun!
Terima kasih Microsoft!


* i'm still thinking about VS6

21.4.08

Aston Villa.. Another Outstanding Performance

BIRMINGHAM, MINGGU - Aston Villa tampil luar biasa dalam derby lawan Birmingham City, Minggu (20/4). Ashley Young menjadi inspirator tim yang membawa Villa menang besar, 5-1, sekaligus membenamkan Birmingham di zona degradasi.

Dengan kemenangan itu, untuk sementara Aston Villa naik setingkat ke urutan 6, menggeser Portsmouth. Sebaliknya, Birmingham harus menerima kenyataan berada di zona degradasi.

Derby Birmingham ke-115 ini tak seperti yang diharapkan. Villa terlalu dominan, sebaliknya Birmingham terkesan kesulitan mengembangkan permainannya.

Disaksikan pelatih timnas Inggris, Fabio Capello, Ashley Young bermain keranjingan. Dia seolah ingin menunjukkan bahwa dirinya pantas menghuni skuad Three Lions. Sejak awal, dia terus merepotkan pertahanan Birmingham, bahkan membuat serangan Villa terasa begitu mudah.

Dia pula yang membuka kemenangan Villa pada menit ke-28. Dia juga mencetak gol kedua pada menit ke-63. Sementara striker asal Norwegia, John Carew juga membukukan dua gol pada menit ke-42 dan 53. Satu gol lagi disumbangkan Agbonlahor menit ke-78. Satu-satunya gol Birmingham dibuat Mikael Foresell menit ke-67.

Ashley Younglah bintang pertandingan itu. Selain mencetak dua gol, dia juga ikut membidani gol John Carew dan Agbonlahor.

Hasil itu menegaskan permainan Birmingham memang memburuk. Dalam 10 pertandingan terakhir, mereka hanya mampu mendulang dua poin. Sebaliknya, Villa menunjukkan diri semakin memesona. Mereka mampu mencetak 14 gol dalam tiga kemenangan terakhir.

Ini membuat keyakinan diri Villa semakin membesar untuk menghadapi Everton di pekan mendatang. Partai itu bakal ketat dan panas, karena bakal menentukan siapa yang layak berada di urutan kelima. Villa hanya tertinggal tiga poin dari Everton yang sementara menduduki urutan kelima. (BBC)

Taken from http://www.kompas.co.id/bola.php/read/xml/2008/04/20/20560344/villa.benamkan.birmingham.5-1

11.3.08

Pencapaian Hari Ini

Hari ini selesai juga proses prototyping untuk produk baru.
Ada beberapa hal yang menjadi perhatian di bagian akhir proses prototyping ini.
Dan yang paling utama adalah, harus berinterfacing lagi dengan OLE.
Ya sebenarnya ndak terlalu masalah juga, cuma tambah sedikit gembrot saja kode programnya.
Karena bahasa pemrograman yang digunakan C, seluruh method yang diakses (ugh, i hate that OO thingy!) harus mengakses VTable. Contoh:

hr = m_lpAdrBook->lpVtbl->GetPAB(m_lpAdrBook, &lpcbEID, &lpEID);

Bagian yang mana, yang sedikit membuat gembrot? Itu tuh..
Pada C, "object" yang mengakses method (pada contoh di atas: GetPAB) harus dilewatkan secara manual. Berbeda dengan C++ yang melakukan hal ini secara otomatis.

Ah, tapi ini yang bikin tambah cinta dengan C . Ku tahu yang ku mau, dan ku tahu apa yang ku lakukan itu kemauan ku itu :)

Oh ya, selain menyelesaikan prototyping.. malam ini saya beli buku karangan Bentley & Whitten lagi. Semoga buku yang ini sama bagusnya dengan buku - buku karya Bentley & Whitten lainnya (contoh: System Analysis & Design Method)
Ada 2 buku lain lagi yang harusnya malam ini dibeli, tapi karena sudah kemaleman..
Yo wis.. besok lagi..

10.3.08

Sunderland 0 - 1 Everton

Selesai sudah. Peluang Aston Villa masuk ke 5 besar sudah tidak ada lagi (sebenarnya masih ada, tetapi dengan bantuan mukzizat)
Memang harus diakui musim ini Everton jauh lebih stabil dibanding Aston Villa, dan itu yang paling utama. Sayang sekali Aston Villa yang awal - awal baik, di tengah - tengah lengah..

Sisa pertandingan:

12 Maret 2008 vs Middlesbrough di kandang
15 Maret 2008 vs Portsmouth bertandang
22 Maret 2008 vs Sunderland di kandang
30 Maret 2008 vs MU bertandang
5 April 2008 vs Bolton di kandang
12 April 2008 vs Derby bertandang
20 April 2008 vs Birmingham di kandang
27 April 2008 vs Everton bertandang
3 Mei 2008 vs Wigan di kandang
11 Mei 2008 vs West Ham bertandang

Yang bold itu saya pikir partai yang beresiko.. atau mungkin hasil maksimal adalah 1 point. Sedangkan yang italic, saatnya tempur :)
Ndak masuk 5 besar tidak apa - apa, tetapi Everton harus dikalahkan. (walaupun di kandang Everton)

Secara teknis partai sisa untuk Everton, jauh lebih berat.
Setidaknya ada 3 partai besar untuk Everton. Vs Arsenal, Liverpool, Chelsea.

Ntahlah, semoga saja prediksi tentang peluang Aston Villa ini salah.

25.2.08

Perbaikan Pada MySQL

Setelah sekian lama saya "meninggalkan" MySQL. Beberapa hari belakangan ini saya coba versi terbaru MySQL.
Ada beberapa hal yang telah diperbaiki:
  1. Panjang maksimum query yang dapat diterima pada mysql client sudah tidak dibatasi lagi.
  2. Kasus data (lebih tepatnya table form) yang corrupt pada saat data dishare antara MySQL server dan embedded sudah tidak ada.
  3. Interrupt signal sekarang sudah benar - benar mematikan thread, bukan sekedar mematikan mysql client namun thread masih berjalan.
3 hal ini sangat membantu :)

23.2.08

Update SMSbox

Minggu ini selesai juga update website SMSbox. Harapannya website baru SMSbox ini lebih informatif & easy to navigate.

Alamat barunya:
http://www.iSMSbox.com

Oh ya, saat ini karena target pengguna SMSbox lebih dititikberatkan untuk pengguna lokal (Indonesia), maka tempat hosting dipilih yang lokal juga.

18.2.08

4 Hari vs 5 Menit

Setelah 4 hari mencoba men-subclass kan edit control, hari ini saya malah menghasilkan solusi dengan pendekatan lain. Cukup 5 menit untuk ini.
Ada kalanya imaginasi + trik lebih ampuh daripada pendekatan teknis :)

17.1.08

Sun acquires MySQL

1 lagi, pemain besar mreteli pemain kecil.
Setelah Oracle mengakuisisi BerkeleyDB, sekarang giliran MySQL diakuisisi Sun.
Kita lihat saja kelanjutannya.
1 tahun ke depan ketahuan kok..


Untuk menghibur diri, klik di sini

28.12.07

Gammu - Nokia 1600

Malam ini sepertinya upaya untuk "porting" gammu ke Nokia 1600 harus distop terlebih dahulu.
Waktu yang terbuang sudah terlalu banyak, dan hasilnya minim.
Yang benar - benar menyedihkan dari gammu ini adalah kurangnya dokumentasi, satu - satunya yang bisa diandalkan cuma dokumentasi singkat API.
Struktur dari kode programnya juga cukup mengagumkan.. 1 source file bisa sampai 2500 baris (contoh: 6510file.c)

Anyway, status terakhir untuk Nokia 1600 adalah:
Information, Phonebook, Call

13.12.07

iPOD Software Update


Perhatikan screenshot iTunes yang saya ambil siang ini. Estimasi file size yang tidak sesuai, progress bar yang overlapped dengan kontrol di belakangnya.
Ntah sampai kapan downloadnya selesai (saat saya menulis, size sudah 70 M)
Aneh.

21.11.07

Kenangan Lagi, Duh!

Pagi ini pas ndak sengaja klik link di Yahoo! Mail, ketemu signature jaman baheula.
Ini kalau tidak salah dari tahun 1998/1999
Nyaris 10 tahun..
Memang benar kata orang.. kita semua ber-evolusi.
Apa yang kita pikir atau kita yakini saat ini benar belum tentu 1 jam, 1 hari, 1 tahun, 10 tahun lagi benar..

Menyadari sari dari pikiran adalah
menjadi bebas dari kelahiran, dan
begitu masalah ini terselesaikan,
pertanyaan tentang kesementaraan,
juga tak ada lagi

25.10.07

Promosi, Customer Service Melalui SMS

SMSbox, Software Pengelola SMS
Sangat cocok untuk:
  • Customer Servicing
  • Marketing/Promotion
  • Internal Communication
  • Alert & Notification
  • Office & Home Surveillance
  • Value Added Service (Quiz, Voting, etc)
  • Etc

Keunggulan software SMSbox:
  • Simple & Intuitive User Interface
  • Outstanding Performance
  • Highly Reliable
  • Customizeable
  • Most Affordable SMS Management Solution

Sending Bulk SMSes

Popup notifies incoming SMS


Untuk informasi lebih lanjut silahkan klik:
www.win32.or.id

atau e-mail:
SMSbox@win32.or.id

19.9.07

Update FitnessFirst

Baru saja ditelpon dengan perwakilan FitnessFirst MTA.
Sinta (atau santi?) bertanya mengapa mau terminate membership?
Saya jelaskan kronologisnya, kemudian dia mencoba memberikan klarifikasi.
"Yeah, i know", simple like that, saya jawab klarifikasi beliau. Dengan mencoba memberikan klarifikasi, saya pikir dia belum juga mengerti duduk permasalahannya. And that's not good! (untuk apa coba menghubungi orang tetapi belum mengerti duduk masalahnya)
Permasalahannya adalah bukan pada terms and conditions promo FitnessFirst pada tanggal 15/16 September kemarin, I completely have no problem with it!
Tetapi cara staff FitnessFirst melayani member dan calon member.

Ada yang aneh juga, dia bilang:
"Pak, bagaimana kalau saya minta maaf, dan bapak batalkan niat untuk men-terminate membership"
Aneh ini.. minta maaf kok ndak tulus?

Saya tutup simply by saying no! enough is enough!
Enough is Enough

Hari selasa kemarin, saya terminate keanggotaan di FitnessFirst MTA.
Nyaris 5 tahun berenang di kolam renang di tempat ini, sekarang selesai.
Fasilitas dan pelayanannya sudah tidak sesuai lagi dengan harga yang harus saya bayarkan setiap bulan.
Kejadian hari minggu kemarin menjadi puncaknya. I simply can't tolerate it!

Jauuuuhh lebih baik sewaktu masih TAHC (sebelum diambil alih FitnessFirst).
Fasilitas dan terutama pelayanannya superb! Sekarang??? 1/2 aja ndak sampai!
Bener - bener sayang sekali.

Lebih jauh, kalau melihat persaingan dengan GoldGym (benar ndak ejaannya?) yang ada di Citralen, (2 minggu yang lalu kalau tidak salah saya sempat lihat mereka ada fasilitas "keren" seperti Nintendo Wii) kayanya posisi FitnessFirst tidak terlalu bagus.
Jadi inget kata - kata Pa Ingalls, apa yang dimulai dengan baik akan berakhir dengan baik.
Kalau terus begini, ntah bagaimana akhir dari FitnessFirst MTA.
Terjemahin saja sendiri.

15.9.07

Tahun - Tahun Terbaik

Malam ini acara ngobrol bareng. 
Yang paling berkesan adalah saat melihat koleksi foto - foto.
Melihat kembali 15 tahun ke belakang rasanya aneh sekaligus bikin kangen.

Jadi inget sekitar tahun 80-an akhir sampai 90-an awal. Bener - bener tahun - tahun terbaik.
SD sok sibuk jadi ketua pramuka, dulu nama kelompoknya Kelelawar Hitam. Seram!
Sebenernya ndak seram, lha wong isinya cuma orang - orang gila.
Pesta Kelelawar Hitam ini adalah kalau lagi kemping bareng. Kerjaannya ya itu, cuma seputar wanita. Ada yang manis.. sambil malu - malu ketemuan sama idolanya, tapi ada juga yang vulgar.. NGINTIP!
Dulu pernah ada acara jurit malam. Dasar kumpulan orang gila.. bukannya ketakutan karena ditakut - takutin sama kakak pembina (kesannya OK banget ya?!), eh malah `ngetawain mereka. Yang paling jelas itu waktu ada ibu guru (ibu Diah?) yang sok mau jadi hantu - hantuan.. malah rame - rame kita teriakin itu khan si ibu Diah! abis itu sambil nunjuk muka ibu Diah.. `ngetawain rame - rame. Bener - bener kumpulan orang aneh.

Selain pramuka, dulu inget pernah ada acara masak - masak.. masak nasi goreng tapi pakai minyak tanah, sempet nyicipin sih.. lumayan juga kok (lumayan menjijikan.. hehe)

Oh ya, ada juga yang berkesan. Sepeda teman nyaris hilang di laut. Kok bisa?
Ya bisa lah, khan orang aneh. Kita dulu mau mencoba bagaimana rasanya menggenjot sepeda BMX di laut. Alhasil, cuma beberapa beberapa kali mencoba, sepeda sudah tenggelam.. tambah ke dalam, tambah ke dalam.
Yang empunya sepeda mulai panik! "Gimana kalau ketemu emak gue? Bisa habis gue digebukin!"
Ya pastilah habis digebukin, soalnya mau kasih alasan apa kalau sepeda hilang? hilang di laut?
cuma orang yang ndak waras yang percaya sepeda dengan manis tiba - tiba tenggelam di laut.
Untung sepedanya ketemu. (kalau ndak salah kita sempat "diving" 15 menit an sampai ketemu)

Kalau acara main ke laut itu insidentil, yang rutin adalah main ding dong tiap hari.
Ada temen yang "keren" habis! Setiap selesai main ding dong (entah menang atau kalah dan cuma `ngabisin koin), layar ding dong pasti diludahin!
Nah kalau yang ini mungkin sedikit ada faktor kejiwaan. Mungkin.
Ada yang sedikit lebih baik.. beliau ini main ding dong bukan untuk murni permainan, tetapi untuk menyalurkan hobi merusak barang. 
Artinya dia ini ndak benar - benar bermain, cuma seneng `matahin joystick ding dong.
Main ding dong mahyong kok meja ding dong digebrak - gebrak? Aneh.
Tapi ndak semuanya aneh juga sih. Masih ada yang waras juga, dan `lihay mainnya. Dia punya prinsip 1 koin sampai tamat. Ini baru keren.

Ah, banyak bener yang bisa diingat lagi. Semakin diingat, semakin kangen.
Tahun 80 an memang benar - benar tahun terbaik!