Archive

Archive for December, 2005

BDS2006 Update 1

December 23, 2005 Leave a comment

Here we go, the first update for Borland Developer Studio 2006. The update completes the functionality of the Preview Technology for C++ and C in Borland Developer Studio 2006. For detailed changes, you can read its Release Notes.

You can download the update from the Borland site, on Download page. This update itself didnt published on the Borland site yet, I dont know the Borland’s reason not to publish yet, maybe the update is subject to change. lol. 😀

So, the original version of BDS is 10.0.2151.25345. You can verify it from About window, and in the registry area as shown below:

Version info for original version

Version info for original version through registry

The update 1 version of BDS is 10.0.2166.28377. You can verify it from About window, and in the registry area, The ProductVersion is 10.0.1, the RegMergeLevel is 0x00000002 and the UpdatedPackInstalled is 1, as shown below:

Version info for Update 1 version

Version info for Update 1 version through registry

Advertisement
Categories: News

Meningkatkan Proses Startup IDE

December 21, 2005 5 comments

Sudah menjadi pengetahuan umum, proses loading Delphi 2005 terkenal cukup lama, bahkan boleh dibilang ‘membosankan’ bagi sebagian orang, selain itu Delphi 2005 juga dikenal sangat berat dan membutuhkan banyak resource CPU dan memori. Nah pada kesempatan ini, saya akan coba memaparkan beberapa langkah untuk merampingkan Delphi 2005 sehingga proses loading menjadi lebih cepat dan tentu saja lebih menghemat resource CPU dan memori. Adapun versi Delphi 2005 yang saya gunakan adalah versi Architect. Untuk versi lainnya, silahkan Anda sesuaikan sendiri.

Mengapa sangat Lambat ?

Sebelum melakukan beberapa langkah optimalisasi, terlebih dahulu harus diketahui penyebab mengapa proses starup membutuhkan waktu yang tidak sedikit. Ada beberapa penyebab utama yaitu:

Multi-Languages IDE

IDE Delphi 2005 merupakan gabungan dari 3 bahasa pemrograman, yaitu Delphi untuk platform Win32, Delphi untuk platform Microsoft .NET dan C# untuk platform Microsoft .NET. Faktor penggabungan inilah yang menyumbang banyak pemborosan resource. Dapat Anda simak pada gambar 1, semua bahasa pemrograman ikut di-load pada saat startup.

Memory Manager yang Sudah Kuno

Sejak pertama kali diluncurkan hingga Delphi 2005, Memory Manager internal yang digunakan masih tetap sama yaitu BorlandMM atau DelphiMM. Memory Manager memegang peranan yang sangat penting dalam pengaturan memori bagi setiap aplikasi. Memory Manager mengatur pembagian resource memori suatu aplikasi secara dinamis dan efisien. Tanpa Memory Manager, sebuah aplikasi tidak dapat membuat list, menyimpan dan menampilkan data dengan ukuran yang besar misalnya.

Walaupun telah mengalami beberapa perbaikan namun kinerja Memory Manager internal dari Borland masih kurang memuaskan, terlebih dengan munculnya Memory Manager dari pihak ketiga yaitu FastMM yang lebih stabil, cepat dan gratis.

Rutin Internal yang Kurang Efisien

Pada saat proses startup, IDE akan me-load unit yang telah dipilih, namun sayangnya proses load ini didahulu dengan pengecekan terhadap status unit tersebut, apakah sudah di-load apa belom, untuk mencegah terjadinya duplikasi unit yang di-load. Proses pengecekan ini dilakukan dengan iterasi terhadap semua unit yang telah di-load sebelumnya, sehingga terjadi proses pengecekan yang berulang – ulang.

Versi (SKU) Delphi

Versi SKU Delphi yang digunakan ikut andil dalam menyukseskan lambatnya proses startup. Hal ini terjadi karena setiap versi membawa kelengkapan fitur yang belum tentu sama. Kelengkapan fitur versi personal tentu saja berbeda dengan versi Architect. Semakin tinggi versi SKU yang digunakan maka semakin banyak fitur kelengkapan yang disertakan, misalnya Enterprise Core Objects (ECO), integrasi dengan produk Borland StarTeam, Borland Together, Caliber IDE dan sebagainya. Semakin banyak fitur yang di-load maka semakin memboroskan resource.

VCL yang Aktif

Secara default, IDE akan me-load semua Visual Component Library (VCL) yang telah ter-instal pada saat startup, baik VCL internal Delphi maupun VCL dari pihak ketiga. Semakin banyak komponen yang di-instal, maka semakin besar pula resource yang dibutuhkan. Terlebih apabila Anda menginstal komponen sejenis suite, yaitu paket komponen yang menyertakan banyak sekali kontrol visual seperti JEDI, RxLib, Orpheus, LMDTools, Eldos, InfoPower, SDLSuite dan sebagainya.

Loading komponen pada saat startup
Gambar 1 : Loading komponen pada saat startup

Perlengkapan yang Harus Disiapkan

Setelah mengetahui penyebab lambatnya proses startup, maka kini Anda harus menyiapkan beberapa tool untuk mendukung optimalisasi proses startup, yaitu:

  • Delphi Update 1, Delphi Update 2 dan Delphi Update 3
  • Update Delphi secara resmi yang dikeluarkan oleh Borland. Anda dapat men-download-nya dari situs Borland, tentunya dengan user account pengguna Delphi 2005 yang telah terdaftar.

  • Delphi Unofficial Update
  • Update Delphi tidak resmi yang dikeluarkan oleh Allen Bauer, salah satu arsitek di Delphi. Anda dapat men-download-nya pada situs blog-nya di http://blogs.borland.com/abauer atau langsung ke alamat:
    http://homepages.borland.com/abauer/vclide90.zip
    http://homepages.borland.com/abauer/coreide90.zip
    http://homepages.borland.com/abauer/boreditu.zip

    Selengkapnya mengenai file yang diupdate adalah:
    boreditu.dll
    Borland.Studio.Vcl.Design.dll
    coreide90.bpl
    coreid90.jdbg
    designide90.bpl
    designide90.jdbg
    vclide90.bpl
    vclide90.jdbg

  • Delphi Patch Installer
  • Aplikasi kecil ini dibuat oleh Andreas Hausladen digunakan untuk mempermudah instalasi unofficial update. Anda dapat men-download-nya pada situsnya di http://andy.jgknet.de/misc/D2k5PatchInstaller.zip

  • FastMM 4
  • Fast Memory Manager merupakan memory manager alternative yang digunakan untuk menggantikan memory manager internal dari Borland. Anda dapat men-donwload-nya pada http://fastmm.sourceforge.net

  • PatchRTL
  • Digunakan untuk memangkas rutin internal Delphi yang kurang effisien sehingga dapat memangkas loading time Delphi Anda. Anda dapat men-download-nya pada bagian Example (CodeCentral) pada situs Borland.

  • Delphi Setting Manager
  • Aplikasi kecil ini dibuat oleh Erwin Saputra, digunakan untuk mengatur personalisasi Delphi Anda dengan menyeleksi fitur yang ikut di-load pada saat startup Delphi. Anda dapat men-download-nya pada blog-nya di http://blogs.slcdug.org/esaputra atau di http://www.codeline.net

Hacking Time

Nah setelah mengetahui penyebab dan perlengkapan yang dibutuhkan, kini saatnya beraksi. Its hacking time . Langkah – langkah berikut mutlak Anda lakukan dengan tertib dan benar agar Anda memperoleh hasil yang maksimal.

Tahap pertama adalah Anda harus meng-upgrade Delphi Anda dengan menggunakan update resmi yang dikeluarkan oleh Borland. Anda harus melakukannya dengan urut, dari Update 1, Update 2 dan terakhir Update 3.

Sekedar informasi, Anda dapat melihat versi Delphi sebelum di-upgrade melalui menu Help -> About seperti terlihat pada gambar berikut:

Versi Delphi 2005 tanpa upgrade
Gambar 2 : Versi Delphi 2005 tanpa upgrade

Upgrade dengan Official Update 1

Instalasi Update 1
Gambar 3: Instalasi Update 1

Jalankan file setup untuk update 1 seperti Anda meng-instal aplikasi lainnya. Untuk memastikan proses update berjalan dengan baik, Anda dapat memeriksanya pada jendela About dan registry.

Informasi versi Delphi 2005 setelah Update 1
Gambar 4: Informasi versi Delphi 2005 setelah Update 1

Pada registry, Anda dapat memeriksa pada key HKLM\Software\Borland\BDS\3.0. Pada entry ProductVersion, pastikan nilainya 9.0.1, kemudian entry RegMergeLevel bernilai 1 dan entry UpdatePackInstalled bernilai 1.

Informasi versi Delphi 2005 setelah Update 1 pada Registry
Gambar 5: Informasi versi Delphi 2005 setelah Update 1 pada Registry

Upgrade dengan Official Update 2

Setelah instalasi Update 1 selesai, maka lanjutkanlah dengan instalasi Update 2. Proses instalasi sama seperti instalasi Update 1. Untuk memastikan proses update berjalan dengan baik, Anda dapat memeriksanya pada jendela About dan registry.

Informasi versi Delphi 2005 setelah Update 2
Gambar 6: Informasi versi Delphi 2005 setelah Update 2

Pada entry ProductVersion, pastikan nilainya 9.0.2, kemudian entry RegMergeLevel bernilai 2 dan entry UpdatePackInstalled bernilai 2.

Informasi versi Delphi 2005 setelah Update 2 pada Registry
Gambar 7: Informasi versi Delphi 2005 setelah Update 2 pada Registry

Upgrade dengan Official Update 3

Setelah instalasi Update 2 selesai, maka lanjutkanlah dengan instalasi Update 3. Proses instalasi sama seperti instalasi Update 1 dan 2. Untuk memastikan proses update berjalan dengan baik, Anda dapat memeriksanya pada jendela About dan registry.

Informasi versi Delphi 2005 setelah Update 3
Gambar 8: Informasi versi Delphi 2005 setelah Update 3

Pada entry ProductVersion, pastikan nilainya 9.0.3, kemudian entry RegMergeLevel bernilai 3 dan entry UpdatePackInstalled bernilai 3.

Informasi versi Delphi 2005 setelah Update 3 pada Registry
Gambar 9: Informasi versi Delphi 2005 setelah Update 3 pada Registry

Upgrade dengan Unofficial Update

Anda dapat melakukan upgrade Unofficial Update dengan dua cara, yaitu manual dan otomatis. Sebenarnya cara otomatis tidak sepenuhnya otomatis, ada beberapa langkah tambahan yang harus Anda lakukan untuk menyempurnakan upgrade, namun setidaknya dapat menghemat waktu Anda. Di sini saya akan menggunakan cara manual.

Jika Delphi 2005 masih berjalan, maka Delphi 2005 terlebih dahulu harus ditutup. Ekstrak file – file yang terdapat pada paket unofficial update ke folder bin pada folder Delphi 2005, pada kebanyakan kasus terletak pada C:\Program Files\Borland\BDS\3.0\Bin. Kemudian salin precompiled copy BorlandMM.dll dari arsip FastMM (FastMM427\Replacement BorlndMM DLL\Precompiled\for Delphi IDE\Performance) ke folder bin Delphi 2005.

Pada command prompt, arahkan prompt ke folder .NET SDK Anda, biasanya di C:\Program Files\Microsoft.NET\SDK\v1.1\Bin dan jalankan perintah di bawah ini:

sn -Vr Borland.Studio.Vcl.Design.dll

Sesuaikan path pada file Borland.Studio.Vcl.Design.dll sesuai dengan path Anda. Untuk lebih jelasnya simak gambar berikut:

Update assembly untuk platform .NET
Gambar10: Update assembly untuk platform .NET

Untuk memeriksa apakah upgrade ke unofiicial update berjalan dengan baik, Anda dapat memeriksanya melalui jendela About. Perhatikan bagian bawah jendela About, terdapat teks berwarna merah dengan label ‘Confidential Pre-release version’.

Informasi versi Delphi 2005 setelah unofficial update
Gambar 11: Informasi versi Delphi 2005 setelah unofficial update

Pangkas Rutin Internal

Hack berikutnya adalah memangkas rutin internal yang kurang efisien dengan menggunakan aplikasi kecil PatchRTL.exe. Seperti biasa, tutup Delphi 2005 Anda. Salin file RTL90.BPL dari folder system windows ke folder bin Delphi 2005. kemudian pada command prompt, jalankan perintah:

PatchRTL RTL90.bpl

Menggunakan PatchRTL
Gambar 12: Menggunakan PatchRTL

Personalisasi IDE Delphi

Hack berikutnya adalah melakukan personalisasi IDE Delphi 2005. personaliasi fitur IDE Delphi dan personalisasi paket komponen.

Personalisasi Fitur IDE

Personalisasi fitur IDE adalah memilih fitur – fitur IDE hanya yang dibutuhkan saja, dengan demikian fitur yang tidak dibutuhkan tidak ikut di-load sehingga dapat menghemat loading time dan resource memori. Untuk melakukannya, gunakan tool Delphi Setting Manager.

Tampilan muka Delphi Setting Manager
Gambar 13: Tampilan muka Delphi Setting Manager

Untuk membuat personalisasi baru berikut langkahnya:

-Pilih tab Delphi 2005;
-Klik tombol New;

Tampilan pembuatan personalisasi
Gambar 14: Tampilan pembuatan personalisasi

-Masukkan nama personalisasi pada kolom Setting Name;
-Pilih fitur yang ingin di-load pada saat startup pada kolom Templates dengan memberikan tanda cek pada kotak masing – masing fitur;
-Klik Ok untuk menyimpan personalisasi;

Personalisasi tersimpan
Gambar 15: Personalisasi tersimpan

Untuk menerapkan personalisasi yang telah dibuat, Anda harus menjalan Delphi melalui Delphi Setting Manager dengan meng-klik tombol Run Delphi. Jika Anda menjalankan Delphi langsung dari Start Menu, maka personalisasi yang telah dibuat tidak akan dijalankan.

Perhatikan pada saat proses startup Delphi yang telah dipersonalisasi dan bandingkan dengan proses startup Delphi tanpa personalisasi, Anda akan memperoleh perbedaan dalam hal status loading, kecepatan proses loading dan struktur menu pada IDE.

Hanya fitur yang diperlukan saja yang di-load
Gambar 16: Hanya fitur yang diperlukan saja yang di-load

Personalisasi Paket Komponen

Hack selanjutnya adalah memilih paket komponen yang di-load pada saat startup. Untuk itu Anda harus menyimpan setting-nya pada Default Options. Langkah – langkahnya adalah sebagai berikut:

-Pada IDE Delphi, tutup semua project yang ada (File -> Close All);
-Pilih menu Project -> Default Options;
-Pilih personalisasi platform yang Anda inginkan, untuk win32 pilih Delphi for Win32, untuk .NET pilih Delphi for .NET;
-Pada jendela Default Project Options, pilih Packages;
-Perhatikan kolom Design packages, di dalam nya termuat paket – paket yang di-load pada IDE;
Daftar komponen yang di-load pada IDE
Gambar 17: Daftar komponen yang di-load pada IDE

-Kemudian pilih hanya komponen yang sering Anda gunakan dengan cara memberikan tanda cek komponen tersebut dan melepas komponen yang jarang Anda gunakan dengan menghilangkan tanda cek pada komponen tersebut;

Pilih hanya paket yang sering Anda gunakan
Gambar 18: Pilih hanya paket yang sering Anda gunakan

-Klik Ok untuk menyimpan perubahan.

Ketika Anda membuat project baru, maka package yg di-load adalah setting default yang telah Anda tetapkan sebelumnya. Nah ketika Anda membutuhkan komponen yang tidak ada pada daftar, maka Anda tinggal mengaktifkan package yang sesuai melalui jendela Package pada menu Project -> Option.

Anda juga bisa memodifikasi package option pada project yang telah Anda buat, jadi Anda dapat mengurangi load time project Anda. Jangan lupa untuk menyimpan konfigurasi yang telah Anda ubah sebelumnya pada file project Anda (file .dpr atau .bdsproj atau .bdsgroup).

Penutup

Dengan menerapkan semua teknik – teknik yang telah dipaparkan di atas, maka proses startup IDE dapat dipangkas secara signifikan. Pada sistem yang saya gunakan, saya dapat mereduksi proses load time hingga kurang dari setengah menit saja. Semoga juga berlaku bagi Anda. Sampai jumpa di Hacking Delphi edisi lainnya.

Categories: Delphi, Hacking Delphi

My First Experience on Delphi2006 Migration

December 20, 2005 Leave a comment

Well, after has been frustating for several months of using the unstable Delphi2005, I decided to use Delphi2006 (Borland Developer Studio 2006). So here my first experience day of using Delphi2006.

First of all, I decided not to uninstall my Delphi2005 because of both technical and non-technical reasons. I’m developing some projects which havent finished yet with Delphi2005, so if I uninstall it and I faced something wrong with Delphi2006, I will have serious problems. Besides, all of my components must be migrated to Delphi2006, its Ok if the migration succeed, but what will be happen if it fail? I must spend lot of time to restoring system and environment to Delphi2005 again!

Then, I backed up all of my projects and components, including the compiled forms such as dcu, tlb, dll, exe and bpl.

Next, I install the Delphi2006, with complete installation option, except for CaliberRM SDK, because I didnt need it yet. After a couple of hours (I must install the prerequisites first), the installation was completed. I really impressed with the personality of Delphi2006. The load time of DeveloperStudio and Win32 personalities are relatively fast.

Then, I deleted all of bpl on BorlandStudioProjects folder, because it contains bpl from my Delphi2005 components. Next I recompile my components. First of all, I installed my favourite components. It seem the migration didnt fit my expectation. There are some changes to be done.

Although JEDI is included into the Borland Partner DVD, the JCL could not be installed by using automatic installer as its provided, I must install it manualy as I treat it like any other components installation. The JVCL itself could be installed without any problems.

The second component I installed is Woll2Woll Infopower4000 Pro. Uhh. I must change the code several times. I must add Delphi RTL version to VER180 manualy on the conditional compilation directive in order to be recognized by compiler. There are some type-name changes from DBTables.pas unit: TButtonSet become TNavButtonSet and split the TKeyIndex to different unit: DBCommonTypes.pas.

Then I tried to load and compile one of my project which used the two components above. The IDE seem stable and fast and good looking. And viola my project compiled successfully.

So, thats all about my first day experience with Delphi2006.

Categories: Ngoprek

Error: Cannot Make a Visible Window Modal

December 19, 2005 Leave a comment

One of my projects utilize the power of MDI (multiple documents interface), but for some reasons, some forms need to be converted from MDIChild to ordinary form. But the compiled application produced the error: Cannot Make a Visible Window Modal. So how to fix it?

The first step I ensure was the FormStyle must be the right value. For MDIChild, it has fsMDIChild while ordinary form must be fsNormal, yes it has. But in order to make the conversion works perfectly, you must set the [b]Visible[/b] property to [b]False[/b]. That is, and the problem resolved. 🙂

Categories: Ngoprek

Danny Thorpe left from Borland

December 16, 2005 1 comment

As posted on Allen’s Recap One of the visioners Borland, the man behind Delphi, has left to google.. 😦 Lets read his open letter on borland.public.delphi.non-technical newsgroup:

Members of the Delphi Community,

As you’ve no doubt read in other threads in this newsgroup, I have left
Borland to seek new opportunities at Google.

This was not a sudden action. I have tried my best to ensure a smooth
transition for the Delphi team, starting with transition plan
discussions with Borland management more than nine months ago.

Delphi is built by a team, not by any individual. Far greater talent
than mine has come and gone from the team, and Delphi presses on. More
importantly, far greater talent remains in the team, some of it as yet
untapped.

As you may know, my philosphy is that teams should be built to
anticipate, tolerate, and support the comings and goings of individuals
on the team. Everyone will eventually leave the team – either by
choice, or by pine box. To ignore this is childish.

I have full confidence in the Delphi team to continue to deliver the
right stuff to keep Delphi current, innovative, and competitive for
years to come. Though there have been some difficult spots between
myself and Borland corporate management, the internal changes in
attitude and messaging in recent months from Borland corporate toward
Delphi have turned my faith in Borland supporting Delphi back toward
the positive. I’m sure that will only get better as Todd Neilsen
steps in as the new CEO.

I’m also pleased that in some small measure my departure is creating
opportunities for advancement within the Delphi team, and that Borland
management (Boz and Steve Todd) was very supportive of “redrawing the
map” under the guidance of Allen, Michael, Eli, and myself. Several
individuals on the team have been promoted in title and/or in pay as a
result of this change. Many of those have not seen promotion or pay
raises for as long as 5 years. Borland has also committed to opening up
several new positions in the Delphi group in Scotts Valley, which may
be filled with entry or mid level engineering talent. This alone is a
significant reversal of the “No new hires in Scotts Valley” edict
earlier this year by then-CEO Dale Fuller.

I was not snatched away from Borland, and I am not leaving Borland for
lack of money. I sought out Google, and I’ll be making at Google
exactly what I made at Borland, which is nicely comfortable but not
excessive. There were other suitors (including the obvious one) but,
quite frankly, Google outmaneuvered them.

Could Borland have bought me back? No, because I didn’t leave for
money. Why, then? Opportunity. I’m going to Google to pursue ideas
and opportunities that are simply beyond Borland. I love Delphi, I
know it inside out, but there’s a lot more in me than just Delphi.

After 15 exciting years doing a wide variety of things at Borland, it’s
time for me to do something /completely/ different.

This is not goodbye. This is just changing channels.

-Danny Thorpe
Engineer, Google.

Happy change your channels Danny…

Categories: News