📄 temp.txt
字号:
<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’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 24, 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 22, 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 21, 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 15, 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ù 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>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -