<!DOCTYPE html PUBLIC "'-//W3C//DTD XHTML 1.0 Transitional//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd'" "">
<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="CACHE-CONTROL" content="NO-CACHE"/><meta http-equiv="PRAGMAS" content="NO-CACHE"/><meta http-equiv="PRAGMA" content="NO-CACHE"/><meta http-equiv="EXPIRES" content="-1"/><meta name="keywords" content="delphi, marco, cantu, development, borland, programming, books, mastering delphi, xml, xslt"/><title>Marco's Tech World</title><link rel="stylesheet" media="all" href="/css/default.css" type="text/css">&#xA0;</link><script language="JavaScript1.2" src="/include/gscripts.js">&#xA0;</script><script language="JavaScript1.2" src="/include/sorttable_colored.js">
</script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/></head><body><div id="header"><table width="100%" cellspacing="0"><tr><td align="left"><br/><a href="http://blog.marcocantu.com/">blog.marcocantu.com</a>: marco's tech world
  <br/><br/></td></tr></table></div><div id="main-box"><div id="content-box"><div id="navigation"><div class="navigation-section"><div class="navigation-heading">This Site</div><div class="navigation-item"><a href="/">Home</a></div><div class="navigation-item"><a href="/author.html">Author</a></div><div class="navigation-item">
          Syndication: <br/>
            - <a href="/blog_rss.xmldata">RSS with summary</a><br/>
            - <a href="/blog_rss2.xmldata">RSS with content</a><br/>
            - <a href="/blog_atom.xmldata">Atom (with content)</a></div><div class="navigation-item">
            Posts: <b>606</b></div><div class="navigation-item"><a href="/blog_alltalkback.html">Comments List</a></div><div class="navigation-item"><a href="/myfeeds.html">NEW: My Feeds</a></div><div class="navigation-item"><a href="/bookstore.html"><b>Marco's Tech Books</b></a></div></div><div class="navigation-section"><div class="navigation-heading">Site Sponsors</div><div class="navigation-item"><a href="http://www.gurock.com/products/smartinspect/"><img border="0" src="/images/ads/smartinspect-logo.png" width="160" height="40"/></a></div><br/><div class="navigation-item"><a href="http://www.eurekalog.com/index.php"><img border="0" src="/images/ads/EurekaLog_logo_160.png" width="160" height="39"/></a></div><br/><div class="navigation-item"><a href="http://delphimentor.marcocantu.com"><b>Delphi Mentor @ marcocantu.com</b></a></div></div><div class="navigation-section"><div class="navigation-heading">Search the Blog</div><div class="navigation-item"><form method="get" action="http://www.google.com/custom" target="google_window"><input type="hidden" name="domains" value="blog.marcocantu.com"/><input type="text" name="q" size="16" maxlength="255" value=""/><input type="submit" name="sa" value="Google this Blog"/><input type="hidden" name="sitesearch" value="blog.marcocantu.com"/><input type="hidden" name="client" value="pub-4582210483229124"/><input type="hidden" name="forid" value="1"/><input type="hidden" name="ie" value="UTF-8"/><input type="hidden" name="oe" value="UTF-8"/><input type="hidden" name="flav" value="0000"/><input type="hidden" name="sig" value="g84tponbsjkf2X-7"/><input type="hidden" name="cof" value="GALT:#008000;GL:1;DIV:#336699;VLC:663399;AH:center;BGC:FFFFFF;LBGC:336699;ALC:0000FF;LC:0000FF;T:000000;GFNT:0000FF;GIMP:0000FF;LH:64;LW:100;L:http://delphi.newswhat.com/images/logo.gif;S:http://blog.marcocantu.com;LP:1;FORID:1;"/></form></div></div><div class="navigation-section"><div class="navigation-heading">Delphi Blogs</div><div class="navigation-item"><a href="http://www.delphifeeds.com/" target="_blank">Delphi Feeds</a></div><div class="navigation-item"><a href="http://blogs.codegear.com/davidi" target="_blank">David I</a></div><div class="navigation-item"><a href="http://blogs.codegear.com/abauer" target="_blank">Allen Bauer</a></div><div class="navigation-item"><a href="http://blogs.codegear.com/nickhodges" target="_blank">Nick Hodges</a></div><div class="navigation-item"><a href="http://hallvards.blogspot.com/" target="_blank">Hallvard Vassbotn</a></div><div class="navigation-item"><a href="http://www.stevetrefethen.com/blog/" target="_blank">Steve Trefethen</a></div><div class="navigation-item"><a href="http://blogs.codegear.com/" target="_blank">CodeGear Blogs</a></div></div><div class="navigation-section"><div class="navigation-heading">Delphi Sites</div><div class="navigation-item"><a href="http://delphi.newswhat.com" target="_blank">delphi.newswhat.com</a></div><div class="navigation-item"><a href="http://www.blaisepascal.eu/index.php/" target="_blank">Blaise Pascal Magazine</a></div><div class="navigation-item"><a href="http://www.thedelphisearch.com" target="_blank">The Delphi Search</a></div><div class="navigation-item"><a href="http://www.delphiedintorni.it" target="_blank">www.delphiedintorni.it</a></div></div><div><div class="navigation-heading">Communities</div><div><a href="http://www.linkedin.com/in/marcocantu"><img src="http://www.linkedin.com/img/webpromo/btn_myprofile_160x33.gif" width="160" height="33" border="0" alt="View Marco Cantu''s profile on LinkedIn"/></a></div></div><div class="navigation-section"><div class="navigation-heading">Sites by Marco</div><div class="navigation-item"><a href="http://www.marcocantu.com" target="_blank">www.marcocantu.com</a></div><div class="navigation-item"><a href="http://www.marcocantu.com/books/store.htm" target="_blank">Buy books online</a></div><div class="navigation-item"><a href="http://www.wintech-italia.it" target="_blank">My Training Company (Italian)</a></div><div class="navigation-item"><a href="http://www.marcocantu.it" target="_blank">www.marcocantu.it</a></div></div><div class="navigation-section"><div class="navigation-heading">Archives</div><div xmlns="" class="navigation-item"><a href="/blogarchive/2008-11.html">November,&#xA0;2008 (3)
    </a></div><div xmlns="" class="navigation-item"><a href="/blogarchive/2008-10.html">October,&#xA0;2008 (13)
    </a></div><div xmlns="" class="navigation-item"><a href="/blogarchive/2008-09.html">September,&#xA0;2008 (13)
    </a></div><div xmlns="" class="navigation-item"><a href="/blogarchive/2008-08.html">August,&#xA0;2008 (8)
    </a></div><div xmlns="" class="navigation-item"><a href="/blogarchive/2008-07.html">July,&#xA0;2008 (16)
    </a></div><div xmlns="" class="navigation-item"><a href="/blogarchive/2008-06.html">June,&#xA0;2008 (14)
    </a></div><div xmlns="" class="navigation-item"><a href="/blogarchive/2008-05.html">May,&#xA0;2008 (18)
    </a></div><div xmlns="" class="navigation-item"><a href="/blogarchive/2008-04.html">April,&#xA0;2008 (19)
    </a></div><div xmlns="" class="navigation-item"><a href="/blogarchive/2008-03.html">March,&#xA0;2008 (16)
    </a></div><div xmlns="" class="navigation-item"><a href="/blogarchive/2008-02.html">February,&#xA0;2008 (26)
    </a></div><div xmlns="" class="navigation-item"><a href="/blogarchive/2008-01.html">January,&#xA0;2008 (31)
    </a></div><div xmlns="" class="navigation-item"><a href="/blogarchive/2007-12.html">December,&#xA0;2007 (28)
    </a></div><div xmlns="" class="navigation-item"><a href="/blogarchive/2007-11.html">November,&#xA0;2007 (29)
    </a></div><div xmlns="" class="navigation-item"><a href="/blogarchive/2007-10.html">October,&#xA0;2007 (33)
    </a></div><div xmlns="" class="navigation-item"><a href="/blogarchive/2007-09.html">September,&#xA0;2007 (24)
    </a></div><div xmlns="" class="navigation-item"><a href="/blogarchive/2007-08.html">August,&#xA0;2007 (10)
    </a></div><div xmlns="" class="navigation-item"><a href="/blogarchive/2007-07.html">July,&#xA0;2007 (9)
    </a></div><div xmlns="" class="navigation-item"><a href="/blogarchive/2007-06.html">June,&#xA0;2007 (13)
    </a></div><div xmlns="" class="navigation-item"><a href="/blogarchive/2007-05.html">May,&#xA0;2007 (15)
    </a></div><div xmlns="" class="navigation-item"><a href="/blogarchive/2007-04.html">April,&#xA0;2007 (13)
    </a></div><div xmlns="" class="navigation-item"><a href="/blogarchive/2007-03.html">March,&#xA0;2007 (22)
    </a></div><div xmlns="" class="navigation-item"><a href="/blogarchive/2007-02.html">February,&#xA0;2007 (20)
    </a></div><div xmlns="" class="navigation-item"><a href="/blogarchive/2007-01.html">January,&#xA0;2007 (16)
    </a></div><div xmlns="" class="navigation-item"><a href="/blogarchive/2006-12.html">December,&#xA0;2006 (10)
    </a></div><div xmlns="" class="navigation-item"><a href="/blogarchive/2006-11.html">November,&#xA0;2006 (19)
    </a></div><div xmlns="" class="navigation-item"><a href="/blogarchive/2006-10.html">October,&#xA0;2006 (14)
    </a></div><div xmlns="" class="navigation-item"><a href="/blogarchive/2006-09.html">September,&#xA0;2006 (8)
    </a></div><div xmlns="" class="navigation-item"><a href="/blogarchive/2006-08.html">August,&#xA0;2006 (14)
    </a></div><div xmlns="" class="navigation-item"><a href="/blogarchive/2006-07.html">July,&#xA0;2006 (12)
    </a></div><div xmlns="" class="navigation-item"><a href="/blogarchive/2006-06.html">June,&#xA0;2006 (11)
    </a></div><div xmlns="" class="navigation-item"><a href="/blogarchive/2006-05.html">May,&#xA0;2006 (11)
    </a></div><div xmlns="" class="navigation-item"><a href="/blogarchive/2006-04.html">April,&#xA0;2006 (9)
    </a></div><div xmlns="" class="navigation-item"><a href="/blogarchive/2006-03.html">March,&#xA0;2006 (15)
    </a></div><div xmlns="" class="navigation-item"><a href="/blogarchive/2006-02.html">February,&#xA0;2006 (12)
    </a></div><div xmlns="" class="navigation-item"><a href="/blogarchive/2006-01.html">January,&#xA0;2006 (13)
    </a></div><div xmlns="" class="navigation-item"><a href="/blogarchive/2005-12.html">December,&#xA0;2005 (7)
    </a></div><div xmlns="" class="navigation-item"><a href="/blogarchive/2005-11.html">November,&#xA0;2005 (14)
    </a></div><div xmlns="" class="navigation-item"><a href="/blogarchive/2005-10.html">October,&#xA0;2005 (15)
    </a></div><div xmlns="" class="navigation-item"><a href="/blogarchive/2005-09.html">September,&#xA0;2005 (13)
    </a></div></div></div><div id="advertising"><div><a href="http://www.marcocantu.com/dh2007"><img src="/images/D2007Handbook_small.jpg" width="110" height="140" border="0" alt="Delphi 2007 Handbook"/></a></div><br/><br/><div><a href="http://www.marcocantu.com/epascal"><img src="/images/epascal_small.jpg" width="110" height="140" border="0" alt="Essential Pascal"/></a></div><br/><br/><div><a href="http://www.socialwebbook.com"><img alt="social web book" src="http://www.socialwebbook.com/images/thesocialweb_smallcover.jpg" height="140" width="110"/></a></div><br/><br/><div align="center"><script language="javascript" type="text/javascript" src="http://www.librarything.com/jswidget.php?reporton=MarcoCantu&amp;show=random&amp;header=&amp;num=9&amp;covers=small-fixed-width&amp;text=none&amp;onlycovers=1&amp;tag=alltags&amp;amazonassoc=marcocantusde-20&amp;css=1&amp;style=5&amp;version=1">
	    &#xA0;
          </script></div><div align="center"><a href="http://feeds.feedburner.com/marcocantublog"><img src="http://feeds.feedburner.com/~fc/marcocantublog?bg=99CCFF&amp;fg=444444&amp;anim=0" height="26" width="88" style="border:0" alt=""/></a></div><div align="center"><script type="text/javascript" src="http://embed.technorati.com/embed/7eqrc4crzu.js">&#xA0;</script></div><br/><br/><div><span><script type="text/javascript"><!--
google_ad_client = "pub-4582210483229124";
google_ad_width = 120;
google_ad_height = 600;
google_ad_format = "120x600_as"
google_ad_type = "text";
google_ad_channel ="0435658311";
google_color_border = "FF9851";
google_color_bg = "FFC891";
google_color_link = "AA002D";
google_color_url = "008000";
google_color_text = "000000";
--></script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js">&#xA0;</script></span></div></div><div id="content-main"><div xmlns="" class="mthead" align="right"><h2>Thursday, November&#xA0;6,&#xA0;2008</h2></div><div xmlns="" class="mtentry"><a href="/blog/coderageiii_talks.html"><h2>My CodeRage III Talks</h2></a><div class="mtsummary">Although the program is still not final, I'm supposed to give 4 talks at the coming online CodeRage III conference by CodeGear.</div><div class="mtbody snap_shots"><p xmlns:gxi="http://geode.it/gxi/2.0/">Although the program is still not final, I'm supposed to give 4 talks at the coming online <a target="_blank" href="http://conferences.codegear.com/coderage08">CodeRage III</a> (or CodeRage 2008) conference by CodeGear. These are the titles of the talks they've asked me to give:</p><ul xmlns:gxi="http://geode.it/gxi/2.0/">
      <li>Unicode in Delphi 2009</li>
      <li>Secrets of the Delphi 2009 RTL</li>
      <li>Fun Side of Delphi goes Unicode</li>
      <li>Generics &amp; Closures</li>
    </ul><p xmlns:gxi="http://geode.it/gxi/2.0/">Looks this is going to be an interesting event... like those in the past, and you can attend from your computer, no need to travel. Now I wish, <a target="_blank" href="http://blogs.codegear.com/davidi/2008/11/05/38966/">like DavidI</a>, we could have an holographic conference one day. <br/>
    </p><p xmlns:gxi="http://geode.it/gxi/2.0/">BTW, I'll launch my new Delphi 2009 book at the conference, and will probably have a discount for attendees. Stay tuned.</p></div><div class="mtposted">posted by 
    <a href="http://www.marcocantu.com" target="_blank">marcocantu</a> @ <a href="/blog/coderageiii_talks.html" title="permalink">12:36AM</a> | <a href="/blog/coderageiii_talks.html#FeedBack" title="comments">2 Comments
          [0 Pending]
        </a></div></div><br xmlns=""/><br xmlns=""/><div xmlns="" class="mtentry"><br/><div align="center"><a href="http://www.gurock.com/products/smartinspect/" target="_blank"><img border="0" src="/images/ads/si-blue-468x60.gif" height="60" width="468"/></a></div><br/></div><br xmlns=""/><div xmlns="" class="mthead" align="right"><h2>Wednesday, November&#xA0;5,&#xA0;2008</h2></div><div xmlns="" class="mtentry"><a href="/blog/delphi_native_code.html"><h2>Delphi Native Code: Fast or Reliable?</h2></a><div class="mtsummary">Delphi for Win32 is a tool focused on native code. Delphi compiled programs are fast... but does this really matter? In my view, reliability and stability are more important.</div><div class="mtbody snap_shots"><p xmlns:gxi="http://geode.it/gxi/2.0/">Delphi for Win32 is a tool focused on native code. Delphi compiled programs are fast... but does this really matter? There has been some debate over the last month, with CodeGear Product Manager Michael Swindell pushing Delphi for its fast compiled code, and Hadi Hariri and other bloggers disputing this idea. Truly, Microsoft .NET is not really slower than Delphi compiled code. So why does Delphi and its "traditional" Win32 support still matter, and matter quite a lot?</p><p xmlns:gxi="http://geode.it/gxi/2.0/">In my view, reliability and stability are key factors, more then speed. The fact is you can be sure your Delphi application of 5 years ago can be easily moved to Vista and Unicode support, without a total rewrite as in case of a VB application moving to VB.NET. Similarly, you might not be using the latest, smartest, and coolest technology if you create a Delphi database application today, but you can be pretty sure it will keep running for a few years. This means you can embark on a long term project with limited fears (now that Delphi has left Borland for a more solid company).<br/>
    </p><p xmlns:gxi="http://geode.it/gxi/2.0/">What about a .NET client/server application written today? Will you write traditional ADO.NET code, with no coolness factor? Will you use LINQ to SQL, which is being deprecated today? Will you use the Entity Framework, which looks great but is a brand new and far from stable technology? Will you wait for Oslo? And what about the user interface in case you don't care about the Internet? Will you use WinForms or the totally incompatible WPF? What will be around and kicking in five years time? That's very hard to know. <br/>
    </p><p xmlns:gxi="http://geode.it/gxi/2.0/">The same dilemma was there in the Java world in the early years, but after some time things got stable. Yes, they are slower to move than on the .NET platforms (or so it seems to me) but large corporations with long terms investments need stable technology, not ever-evolving-forever-beta cool architectures. <br/>
    </p><p xmlns:gxi="http://geode.it/gxi/2.0/">I keep thinking that if you can keep evolving a platform, adding new cool features, without disrupting existing investments you are doing your users base a huge favor.... Or am i getting too old to understand?</p></div><div class="mtposted">posted by 
    <a href="http://www.marcocantu.com" target="_blank">marcocantu</a> @ <a href="/blog/delphi_native_code.html" title="permalink">7:23PM</a> | <a href="/blog/delphi_native_code.html#FeedBack" title="comments">18 Comments
          [0 Pending]
        </a></div></div><div xmlns="" class="mthead" align="right"><h2>Monday, November&#xA0;3,&#xA0;2008</h2></div><div xmlns="" class="mtentry"><a href="/blog/d2009_update1_install.html"><h2>Installation Day: Delphi Update 1 and Open Office 3</h2></a><div class="mtsummary">I've installed the Delphi 2009 Update 1 using the internal utility. Fast and smooth, I have to say. And also installed the final release of Open Office 3, hoping to see an annoying bug fixed.</div><div class="mtbody snap_shots"><p xmlns:gxi="http://geode.it/gxi/2.0/">The first time, rather than downloading the Delphi 2009 Update 1 and installing it manually I decided to go for the automatic installation. All I have to do differently than the usual was to start the Delphi 2009 IDE on Vista with admin rights (or checking for updates would have simply failed, as usual). Soon after Delphi prompted me to download and install the update:</p><p xmlns:gxi="http://geode.it/gxi/2.0/" style="text-align: center;">
      <img height="406" width="521" src="/images/forblog/d2009_update_iderequest.jpg" alt=""/>
    </p><p xmlns:gxi="http://geode.it/gxi/2.0/">I clicked the Download button (as I had already read the notes), followed a couple of extra steps and everything was very smooth. Don't know how much time it took, as I could basically keep working in the IDE for most time, and was doing other non-computer-based tasks as well. But downlaod took a minute or less, and installation was very fast. After restarting, my about box clearly tells me I have the update installed (without having to check the build numbers):</p><p xmlns:gxi="http://geode.it/gxi/2.0/" style="text-align: center;">
      <img height="544" width="595" src="/images/forblog/d2009_update_about.jpg" alt=""/>
      <br/>
    </p><p xmlns:gxi="http://geode.it/gxi/2.0/">Nice job CodeGear. It is not only relevant to make updates available, but also to make it easy for everyone to update. <br/>
    </p><p xmlns:gxi="http://geode.it/gxi/2.0/">On a completely unrelated topic, I also installed Open Office 3, apparently a very nice and smooth version of the open source and extremely valuable alternative to Microsoft Office. I've used Open Office as my primary word processing and presentation software for a few years now, <span style="font-style: italic;">even if a currently own an Office license</span> (part of a deal, not paid separately). I find Open Office clean, powerful, and superior to Office in some areas. Its PDF (and SWF) support has been working for years. Using compressed XML files means I can have code that processes them. Multi-user editing is on par with Office. <br/>
    </p><p xmlns:gxi="http://geode.it/gxi/2.0/">I heard that the Microsoft version will gain extra power in the future by providing integration with its (still to come) online version. Nice to know. I've been enjoying the Google Docs integration plug in I can use to import and exports local documents to Google Apps directly to and from Open Office, at the click of a button. Seems Microsoft will clone that, too.</p><p xmlns:gxi="http://geode.it/gxi/2.0/">Anyway, I'm nos sure if the footnotes trimming bug is fixed. I haven't seen it today, but it is too early to tell. I'll have to work on my book for a few days to see if things improve in that area. Beside that, I've seen a slightly improved user interface, faster times on some operations, but I was quite happy with the current version, so I don't have huge expectations for the features. I'll let you know in some time.</p><p xmlns:gxi="http://geode.it/gxi/2.0/" style="text-align: center;">
      <img height="337" width="439" src="/images/forblog/openoffice3about.jpg" alt=""/>
      <br/>
    </p></div><div class="mtposted">posted by 
    <a href="http://www.marcocantu.com" target="_blank">marcocantu</a> @ <a href="/blog/d2009_update1_install.html" title="permalink">7:31PM</a> | <a href="/blog/d2009_update1_install.html#FeedBack" title="comments">1 Comments
          [0 Pending]
        </a></div></div><div xmlns="" class="mthead" align="right"><h2>Friday, October&#xA0;31,&#xA0;2008</h2></div><div xmlns="" class="mtentry"><a href="/blog/delphi_2009_update_1.html"><h2>Delphi 2009 Update 1</h2></a><div class="mtsummary">A first update to Delphi 2009, fixing a number of serious bugs, is hitting the road as I post this entry.</div><div class="mtbody snap_shots"><p xmlns:gxi="http://geode.it/gxi/2.0/">CodeGear has announced on Developer Network the <a target="_blank" href="http://dn.codegear.com/article/38868">availability of an Update 1 for Delphi 2009</a> and C++Builder 2009. The site hosts also the <a target="_blank" href="http://dn.codegear.com/article/38782">complete list of reported bugs that have been fixed</a>. Still it looks that the <a target="_blank" href="http://cc.codegear.com/reg/delphi">download for registered Delphi user</a> is still not there. Now it is too late, I'll probably run the auto update on Monday (have to remember to start Delphi as administrator on my Vista box).</p><p xmlns:gxi="http://geode.it/gxi/2.0/">Looking at the bugs list it seems the areas with most improvements (or with originally more bugs, depends on how you want to put it) are the Ribbon Control, the Modeling and Class Explorer, and some floating point formatting routines and TEncoding methods. A few fixes are for generics and anonymous methods (but I have to say I find them very stable, despite minor issues). On the other hand I'll be happy to go on with my Ribbon chapter now that I have a more stable Ribbon... it was taking some extra time!</p><p xmlns:gxi="http://geode.it/gxi/2.0/">Seems this will add to an already very stable release, despite the large number of new features, and some quite radical changes like for strings.<br/>
    </p></div><div class="mtposted">posted by 
    <a href="http://www.marcocantu.com" target="_blank">marcocantu</a> @ <a href="/blog/delphi_2009_update_1.html" title="permalink">11:48PM</a> | <a href="/blog/delphi_2009_update_1.html#FeedBack" title="comments">5 Comments
          [0 Pending]
        </a></div></div><div xmlns="" class="mthead" align="right"><h2>Thursday, October&#xA0;30,&#xA0;2008</h2></div><div xmlns="" class="mtentry"><a href="/blog/EKON12_Report.html"><h2>EKON 12 Conference Report</h2></a><div class="mtsummary">This is a summary of my three days in Mainz, Germany, for the EKON 12 conference, which is still taking place.</div><div class="mtbody snap_shots"><p xmlns:gxi="http://geode.it/gxi/2.0/">I spent the last few days in Mainz, Germany (a very nice city, with an astonishing ancient cathedral), at the 2008 edition of the <a href="http://it-republik.de/entwicklerkonferenz/" target="_blank">EKON conference</a>, that is EKON number 12. This was in the same location of a PHP event, running in parallel.</p><h3 xmlns:gxi="http://geode.it/gxi/2.0/">Monday</h3><p xmlns:gxi="http://geode.it/gxi/2.0/">On Monday I gave a full day tutorial on Unicode in Delphi. Too bad there were very few people. I think the topics is worth an in-depth look... and it takes several hours to delve in the changes to the string representation, UnicodeString, the new AnsiString type constructor, the UTF8 support, looking at Unicode Code Points, UTF formats, <em>graphemes</em>, new compiler warnings, new undocumented compiler settings, the RTL support for working with string made of several new classes, from TStringBuilder to TTextWriter, and all of the code porting techniques.</p><p xmlns:gxi="http://geode.it/gxi/2.0/">In the evening there was a speaker event, but after some time I decided to get to the (far away) hotel served by a phantom shuttle bus (for a reason or another I was never able to get the shuttle over 3 days). I figured out I had some flue, so went to bed early.</p><h3 xmlns:gxi="http://geode.it/gxi/2.0/">Tuesday</h3><p xmlns:gxi="http://geode.it/gxi/2.0/">On Tuesday the actual conference started. <a href="http://blogs.codegear.com/davidi/2008/10/28/38929" target="_blank">David I made an initial keynote</a> covering the &#x201C;status&#x201D; of Embarcadero Technologies and CodeGear, providing a broad overview and mentioning some of the new tools, like Delphi Prism. In the later technology keynote David I and a couple of &#x201C;techies&#x201D; showed Delphi 2009 Unicode support and DataSnap 2009 in actual demos, Interbase 2009 encryption features, an IntraWeb demo, a similar Delphi for PHP demo, and finally a very short demo of Delphi Prism, showing a simple application running on a Suse virtual machine with Mono installed.<br/>While these keynotes were interesting, there was little new to me. On the other hand I was really looking forward to hear <a href="http://barrkel.blogspot.com/" target="_blank">Barry Kelly</a> (one of the Delphi compiler developers) introduce new language features in a first session and provide in-depth implementation information (particularly of anonymous methods and the way the capture variables and parameters in the current context). These were not easy sessions for some, but I have to say I liked them a lot, and found out many things I was not aware of.</p><p xmlns:gxi="http://geode.it/gxi/2.0/">I also gave a REST framework talk, with a fair number of people, but not all of them were Web developers... so I'm not sure how effective the talk was. I still hope someone at CodeGear builds on the idea, but I'm not sure at all. I might try to open up this to others, will blog about it in the future. In the evening, despite not feeling much better, I stayed for the &#x201C;Casino evening&#x201D;, played a (short) round of poker, than had an astonishing round at the roulette. I started betting on a given number and that number come out twice in a row (and I had left many chips on it!). While I kept betting on it and surrounding numbers, it was the turn of surrounding numbers, with some good wins. I won also on other numbers, with direct bets. In the end I had to bet very heavily to finish the chips, and it wasn't easy as I kept winning back some. But it was not for real money and the person running the game had to leave...</p><h3 xmlns:gxi="http://geode.it/gxi/2.0/">Wednesday</h3><p xmlns:gxi="http://geode.it/gxi/2.0/">On Wednesday, I attended few talks, gave mine on generics and anonymous methods (with a good crowd of interested people, I hope explaining them using many examples helped), walked out of the convention center to reach (in a minute or so) the downtown shopping area, buy a couple of presents for my kids, made a short visit of the ancient cathedral, chat a little more with a few fellow speakers, try to make sense of a hacked Linux server, and go to the airport to catch a flight.</p><h3 xmlns:gxi="http://geode.it/gxi/2.0/" style="font-weight: bold;">Ketchup Considered Harmful</h3><p xmlns:gxi="http://geode.it/gxi/2.0/">Every time I have to leave something in the Frankfurt airport. Last time it was a food thermometer with a sharp point, this time a bottle of ketchup (a nice present from the conference organizers), so liquid to look like a dangerous weapon. It might as well be, in the hands of the wrong guy. Follow speakers, place yours in checked-in bags (I had none), or drink before leaving. At least last year in the Netherlands we drank my bottle of wine (another non-airline-friendly present) before leaving the conference.</p><h3 xmlns:gxi="http://geode.it/gxi/2.0/">Overall EKON 12<br/>
    </h3><p xmlns:gxi="http://geode.it/gxi/2.0/">It was a nice conference, with some very interesting talks and many above-average ones. Most of them where from German speakers, so I didn't attend those and I had to leave one day early for family reasons. However it was a conference with a reduced attendance. There are lots of new features in the recent versions of Delphi, but most people seems slow to catch up... or prefer using other events and online opportunities for learning about them. Maybe they'll be eager to buy new books. But I think conference make a lot of sense, also because they offer a great opportunity for mingling with fellow developers and some experts, and discuss features and trends at length and more openly then with other means. We'll see hope the coming online CodeRage conference does in terms of attendance. But what about a Delphi event in the US, would you (particularly those of you who live there) consider attending one?</p></div><div class="mtposted">posted by 
    <a href="http://www.marcocantu.com" target="_blank">marcocantu</a> @ <a href="/blog/EKON12_Report.html" title="permalink">4:49PM</a> | <a href="/blog/EKON12_Report.html#FeedBack" title="comments">0 Comments
          [0 Pending]
        </a></div></div><br xmlns=""/><br xmlns=""/><div xmlns="" class="mtentry"><br/><div align="center"><span><script type="text/javascript"><!--
google_ad_client = "pub-4582210483229124";
google_ad_width = 468;
google_ad_height = 60;
google_ad_format = "468x60_as";
google_ad_type = "text_image";
google_ad_channel = "4862507681";
google_color_border = "FF9851";
google_color_bg = "FFC891";
google_color_link = "AA002D";
google_color_url = "008000";
google_color_text = "000000";
--></script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js">&#xA0;</script></span></div><br/></div><br xmlns=""/><div xmlns="" class="mthead" align="right"><h2>Monday, October&#xA0;27,&#xA0;2008</h2></div><div xmlns="" class="mtentry"><a href="/blog/light_on_delphi_prism_oxygene.html"><h2>Embarcadero Shines Light on Delphi Prism: it is Oxygene!</h2></a><div class="mtsummary">The Delphi Prism press release has hit the web. I guess this makes it an announcement, this time... and we have more details.</div><div class="mtbody snap_shots"><p xmlns:gxi="http://geode.it/gxi/2.0/">The Delphi Prism <a href="http://www.webwire.com/ViewPressRel.asp?aId=78294" target="_blank">press release</a> has hit the web. I guess this makes it an announcement, this time...Notice:</p><ul xmlns:gxi="http://geode.it/gxi/2.0/">
      <li>Delphi Prism development language... with new features compared to Delphi Win32</li>
      <li>Supports Mac OS X and Linux via Mono</li>
      <li>Integrated Blackfish</li>
      <li>DataSnap client creation</li>
    </ul><p xmlns:gxi="http://geode.it/gxi/2.0/">We also officially know where the technology comes from: <span style="font-weight: bold;">A key to Delphi Prism&#x2019;s multi-platform capabilities is the exclusive Oxygene technology licensed from RemObjects</span>. <br/>
    </p><p xmlns:gxi="http://geode.it/gxi/2.0/"> And also:   <span style="font-weight: bold;">Embarcadero has collaborated with RemObjects to develop Delphi Prism and is the exclusive licensee of Oxygene</span>. <br/>
    </p><p xmlns:gxi="http://geode.it/gxi/2.0/">I think this is a GREAT move... more about this later. <br/>
    </p><h3 xmlns:gxi="http://geode.it/gxi/2.0/">Update (1 hour later)</h3><p xmlns:gxi="http://geode.it/gxi/2.0/">There is now an official <a href="http://www.codegear.com/products/delphi/prism">Delphi Prism page at codegear.com</a> and a very nice <a target="_blank" href="http://www.bitwisemag.com/2/Delphi-Prism-Visual-Studio-Pascal">interview with REM Objects CEO Mark Hoffman</a> at bitwise magazine. This one is a very nice reading.<br/>
    </p></div><div class="mtposted">posted by 
    <a href="http://www.marcocantu.com" target="_blank">marcocantu</a> @ <a href="/blog/light_on_delphi_prism_oxygene.html" title="permalink">5:38PM</a> | <a href="/blog/light_on_delphi_prism_oxygene.html#FeedBack" title="comments">5 Comments
          [0 Pending]
        </a></div></div><div xmlns="" class="mthead" align="right"><h2>Friday, October&#xA0;24,&#xA0;2008</h2></div><div xmlns="" class="mtentry"><a href="/blog/6hidden_delphi2009.html"><h2>Six Hidden Features of Delphi 2009</h2></a><div class="mtsummary">You've heard about Unicode, generics, and the like... but there is way more in Delphi 2009, including a few hidden gems. Here is a random selection.</div><div class="mtbody snap_shots"><p xmlns:gxi="http://geode.it/gxi/2.0/">You've heard about Unicode, generics, and the like... but there is way more in Delphi 2009, including a few hidden (or not commonly mentioned) gems. Here is a random selection. I'm not 100% percent sure they are the 5 best, and all five hidden, but you get the idea. And they are not in any order:<br/>
    </p><ul xmlns:gxi="http://geode.it/gxi/2.0/">
      <li>
        <span style="font-weight: bold;">Exit </span>with a value (I know, this was blogged about, but worth repeating)</li>
      <li>
        <span style="font-weight: bold;">InnerException </span>(that is you raise an exception while handling one... and both exception objects are kept around)<br/>
      </li>
      <li>
        <span style="font-weight: bold;">TTextReader </span>interface for streams (and strings), this is so nice you won't care about StringBuilder<br/>
      </li>
      <li>You can change the <span style="font-weight: bold;">internal classes used by any DataSet</span> by changing a global variable holding a class (FieldDefs, IndexDefs, Params... and many more)</li>
      <li>
        <span style="font-weight: bold;">TObject.ToString</span> and the other new methods of the TObject class</li>
      <li>
        <span style="font-weight: bold;">commented deprecated</span> (that is, deprecated with a string indicating an extra compiler hint, too bad it is not used much by the VCL)</li>
    </ul><p xmlns:gxi="http://geode.it/gxi/2.0/">(this was hinted by me repeating there are many goodies in the product over the two days seminar on Delphi 2009 I just did.) I could easily add 5 more covering VCL controls (aligned edits, text hints, balloon help, buttons with images, grouping in listview) but they are not so "hidden". Anything else you want to share? I'm pretty sure this list is far from complete... and there are others I had to leave out but would be worth adding.<br/>
    </p></div><div class="mtposted">posted by 
    <a href="http://www.marcocantu.com" target="_blank">marcocantu</a> @ <a href="/blog/6hidden_delphi2009.html" title="permalink">7:35PM</a> | <a href="/blog/6hidden_delphi2009.html#FeedBack" title="comments">6 Comments
          [0 Pending]
        </a></div></div><div xmlns="" class="mthead" align="right"><h2>Wednesday, October&#xA0;22,&#xA0;2008</h2></div><div xmlns="" class="mtentry"><a href="/blog/vista_cleanup_overstated.html"><h2>Vista Cleanup Overstated</h2></a><div class="mtsummary">The other day I had to install a program and having a small primary hard driver decided to go for some cleanup...</div><div class="mtbody snap_shots"><p xmlns:gxi="http://geode.it/gxi/2.0/">The other day I had to install a program and having a small primary hard driver decided to go for some cleanup... After asking Vista for the amount of "wasted" space I was puzzled:</p><p xmlns:gxi="http://geode.it/gxi/2.0/" style="text-align: center;">
      <img height="346" width="407" src="http://blog.marcocantu.com/images/forblog/cleanup.before.jpg" alt=""/>
    </p><p xmlns:gxi="http://geode.it/gxi/2.0/" style="text-align: left;">Freeing 36.7 GB out of a 63.7 GB hard driver would have been great, but I was somewhat suspiciour to have collected 15 GB of reports and 21 of temporary files. In fact, after the cleanup, the system had the following status:</p><p xmlns:gxi="http://geode.it/gxi/2.0/" style="text-align: center;">
      <img src="/images/forblog/cleanup.after.jpg" alt=""/>
    </p><p xmlns:gxi="http://geode.it/gxi/2.0/" style="text-align: left;">So it did free a lot of space (9GB) but far less than Windows Vista computed. How could it be so wrong? The temp folder has so many file (and it takes Vista minutes to sum them)... it is unbelievable they did the wrong sum! Hope Windows 7 is really goign to fix all Vista bugs, that would have been good enough for me to upgrade. (Ballmer, Vista is a quite crappy and companies are not using it, this is the real world... your fantasy world mgiht be different, though.)</p></div><div class="mtposted">posted by 
    <a href="http://www.marcocantu.com" target="_blank">marcocantu</a> @ <a href="/blog/vista_cleanup_overstated.html" title="permalink">10:20AM</a> | <a href="/blog/vista_cleanup_overstated.html#FeedBack" title="comments">7 Comments
          [0 Pending]
        </a></div></div><div xmlns="" class="mthead" align="right"><h2>Tuesday, October&#xA0;21,&#xA0;2008</h2></div><div xmlns="" class="mtentry"><a href="/blog/podcast_roundtable_twitter.html"><h2>Podcast Roundtable and Twitter</h2></a><div class="mtsummary">I'm on Jim Mc Keeth new podcast, a roundtable, and got on Twitter on his push.</div><div class="mtbody snap_shots"><p xmlns:gxi="http://geode.it/gxi/2.0/">I'm on Jim Mc Keeth <a href="http://www.delphi.org/2008/10/episode-11-more-roundtable/" target="_blank">new podcast (11), a roundtable</a> with him, myself, <span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Tahoma; font-size: 13px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;">marc hoffman (lowercase!), and </span>
      <span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Tahoma; font-size: 13px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;">Roland Beenhakker. It was an interesting chat, on various topics related to Delphi. I think the flash mod idea has merit.</span>
    </p><p xmlns:gxi="http://geode.it/gxi/2.0/">
      <span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Tahoma; font-size: 13px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;">On a separate note, Jim kept mentioning Twitter, than send me an invitation, so I decided (after long resistance) to go for it. My page is at </span>
      <a href="http://twitter.com/marcocantu">ttp://twitter.com/marcocantu</a>. My idea is to use that more loosely than my blog. Quite often I have ideas for the blog, or link to other entries, but have no time to write an actual blog entry, even a short one. Twitter might be a better medium. Also, it will be more personal (and politics might surface as well), while I tend to be more focused on technology in my blog. <br/>
    </p><p xmlns:gxi="http://geode.it/gxi/2.0/">We'll see how thinks evolve. As soon as I ahve time I'll add the twitter feed to the blog home page... Jim has a Delphi twitter sumamry on <a href="http://www.delphi.org/twitter/">http://www.delphi.org/twitter/</a>.</p></div><div class="mtposted">posted by 
    <a href="http://www.marcocantu.com" target="_blank">marcocantu</a> @ <a href="/blog/podcast_roundtable_twitter.html" title="permalink">7:31PM</a> | <a href="/blog/podcast_roundtable_twitter.html#FeedBack" title="comments">1 Comments
          [0 Pending]
        </a></div></div><div xmlns="" class="mthead" align="right"><h2>Wednesday, October&#xA0;15,&#xA0;2008</h2></div><div xmlns="" class="mtentry"><a href="/blog/not_so_fast_tstringbuilder.html"><h2>Not so fast, TStringBuilder</h2></a><div class="mtsummary">Last week Olaf Monien posted a TStringBuilder benchmark that surprised me, because in my experience the TStringBuilder class isn't that fast. Here is why. </div><div class="mtbody snap_shots"><p xmlns:gxi="http://geode.it/gxi/2.0/">TStringBuilder is a new class of Delphi 2009 that mimicks the StringBuilder class of .NET. There have already been many reference in various blgos (from CodeGear developers) hinting at the idea that using the TStringBuilder class is faster than concatenating strings. Last week <a target="_blank" href="http://www.monien.net/blog/index.php/2008/10/delphi-2009-tstringbuilder/">Olaf Monien posted a TStringBuilder benchmark</a> along that same line, and that surprised me, because in my experience the TStringBuilder class isn't that fast. So who is right?</p><p xmlns:gxi="http://geode.it/gxi/2.0/">I think we are both right. In his code (you can download the project from his blog) he adds a single character to the string or TStringBuilder:</p><pre xmlns:gxi="http://geode.it/gxi/2.0/">SB.Append(' ');<br/>s := s + ' ';</pre><p xmlns:gxi="http://geode.it/gxi/2.0/">and the former is indeed faster. In my test: 3,151 for TStringBuilder vs. 3,837 for a plain concatenation. I was indeed surprised. Than I noticed there is a specific overload of the Append method that takes as parameter a Char and has specific optimized code. If you alter the original source code slightly, adding a new string that takes the single space as value, and append or concatenate the string, with the lines:</p><pre xmlns:gxi="http://geode.it/gxi/2.0/">s2 := ' ';<br/>SB.Append(s2);<br/>s := s + s2;</pre><p xmlns:gxi="http://geode.it/gxi/2.0/">The timing changes dramatically, with 11,170 for TStringBuilder vs. 3,791 for a plain concatenation (notice the latter does not change at all). And I've enabled the various string-processing optimizations Delphi 2009 provides (at least <span style="font-style: italic;">$StringChecks OFF</span>, which makes a minor but noticeable difference, cutting about 500 ticks).</p><p xmlns:gxi="http://geode.it/gxi/2.0/">In other words, this demo proves that concatenating characters to strings via TStringBuilder is slightly faster, concatenating actual strings is significantly slower. In a series of test with larger strings and more real-world situations I noticed a less noticeable differnce, but it seems that string concatenation invariably wins over using the TStringBuilder. So is this new class useless? Not at all. It lets you add various data types to a string, making the code much more readable, more .NET comaptible, you can concatenate operations, and the time penatly is generally negligible. But don't use this class because it is faster... until someone rewrites it in assembly!<br/>
    </p><p xmlns:gxi="http://geode.it/gxi/2.0/"/></div><div class="mtposted">posted by 
    <a href="http://www.marcocantu.com" target="_blank">marcocantu</a> @ <a href="/blog/not_so_fast_tstringbuilder.html" title="permalink">4:40PM</a> | <a href="/blog/not_so_fast_tstringbuilder.html#FeedBack" title="comments">6 Comments
          [0 Pending]
        </a></div></div></div></div></div><div id="footer">
      A blog about Delphi programming, CodeGear, XML lingos, Web 2.0, JavaScript, and anything else Marco is working on.<br/>
      Site Copyright Marco Cant&#xF9; 2005-2008. <span> Site powered by
      <a href="http://www.wintech-italia.it/servizi/default.htm" target="_blank">newszine</a>.</span></div></body><head><meta http-equiv="CACHE-CONTROL" content="NO-CACHE"/><meta http-equiv="PRAGMAS" content="NO-CACHE"/><meta http-equiv="PRAGMA" content="NO-CACHE"/><meta http-equiv="EXPIRES" content="-1"/></head></html>
