<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>

<channel>
	<title>DaVinci Unlimited Software</title>
	<atom:link href="http://www.davinciunltd.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.davinciunltd.com</link>
	<description>Jim McKeeth's blog on creative and innovative Delphi programming.</description>
	<pubDate>Tue, 15 Jul 2008 05:41:43 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6</generator>
	<language>en</language>
			<item>
		<title>Genius Musicals</title>
		<link>http://www.davinciunltd.com/2008/07/genius-musicals/</link>
		<comments>http://www.davinciunltd.com/2008/07/genius-musicals/#comments</comments>
		<pubDate>Tue, 15 Jul 2008 05:41:43 +0000</pubDate>
		<dc:creator>Jim McKeeth</dc:creator>
		
		<category><![CDATA[uncategorized]]></category>

		<guid isPermaLink="false">http://www.davinciunltd.com/?p=73</guid>
		<description><![CDATA[Well more of an evil Genius, but a musical none the less.  Check out Dr. Horrible from the mind of Joss Wheaton.  It is free online for a limited time, be sure to check it out.

]]></description>
			<content:encoded><![CDATA[<p>Well more of an evil Genius, but a musical none the less.  Check out <a href="http://www.drhorrible.com/">Dr. Horrible</a> from the mind of <a href="http://whedonesque.com/">Joss Wheaton</a>.  It is free online for a limited time, be sure to check it out.</p>
<p><a href="http://www.drhorrible.com"><img src="http://www.drhorrible.com/images/banners/banner2.gif" border="0"></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.davinciunltd.com/2008/07/genius-musicals/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Order of Enum in Case Statement</title>
		<link>http://www.davinciunltd.com/2008/07/order-of-enum-in-case-statement/</link>
		<comments>http://www.davinciunltd.com/2008/07/order-of-enum-in-case-statement/#comments</comments>
		<pubDate>Sun, 13 Jul 2008 00:16:58 +0000</pubDate>
		<dc:creator>Jim McKeeth</dc:creator>
		
		<category><![CDATA[Delphi]]></category>

		<category><![CDATA[code]]></category>

		<category><![CDATA[Assembly]]></category>

		<category><![CDATA[disassembly]]></category>

		<category><![CDATA[Enumerations]]></category>

		<category><![CDATA[performance]]></category>

		<category><![CDATA[Win32]]></category>

		<guid isPermaLink="false">http://www.davinciunltd.com/2008/07/order-of-enum-in-case-statement/</guid>
		<description><![CDATA[A while back my manager asked me if the order of the enums in a Delphi case statement changed performance: i.e. Enums in order being faster then those not.&#160; I was pretty sure it didn&#8217;t, but thought it was worth checking out.&#160; Time for a test application and some disassembly . . . 

Here are [...]]]></description>
			<content:encoded><![CDATA[<p>A while back my manager asked me if the order of the enums in a Delphi case statement changed performance: i.e. Enums in order being faster then those not.&#160; I was pretty sure it didn&#8217;t, but thought it was worth checking out.&#160; Time for a test application and some disassembly . . . </p>
<p><span id="more-72"></span></p>
<p>Here are my types and variables, which are the same for both examples.</p>
<pre><code><strong>type</strong></code>
  TMyEnum = (my1, my2, my3, my4);</pre>
<pre><code class="keyword"><strong>var</strong></code>
  myEnum: TMyEnum;
  val: Char;</pre>
<p>Here are the two examples, side by side, with assembly code to follow.&#160; BTW, compiler optimization was turned <em>on</em>.</p>
<table cellspacing="0" cellpadding="2" width="400" border="0">
<tbody>
<tr>
<th width="49%" colspan="2">Case enum <em>in</em> order</th>
<th width="49%" colspan="2">Case enum <em>out of</em> order</th>
</tr>
<tr>
<td colspan="2">
<pre><code></code>  myEnum := my1;
  <code><strong>case</strong></code> myEnum <code><strong>of</strong></code>
    my1: val := <code class="quote">'1'</code>;
    my2: val := <code class="quote">'2'</code>;
    my3: val := <code class="quote">'3'</code>;
    my4: val := <code class="quote">'4'</code>;
  <code><strong>else</strong></code>
    val := <code class="quote">'?'</code>;
  <code><strong>end</strong></code>;</pre>
</td>
<td colspan="2">
<pre><code></code>  myEnum := my1;
  <code><strong>case</strong></code> myEnum <code><strong>of</strong></code>
    my3: val := <code class="quote">'3'</code>;
    my1: val := <code class="quote">'1'</code>;
    my4: val := <code class="quote">'4'</code>;
    my2: val := <code class="quote">'2'</code>;
  <code><strong>else</strong></code>
    val := <code class="quote">'?'</code>;
  <code><strong>end</strong></code>;</pre>
</td>
</tr>
<tr>
<th colspan="4"><em>&#8212;&#8211; Disassembly &#8212;&#8211;</em></th>
</tr>
<tr>
<td colspan="2"><em>case myEnum of</em></td>
<td colspan="2"><em>case myEnum of</em></td>
</tr>
<tr>
<td width="25%">BF9E</td>
<td width="24%">sub al,$01</td>
<td width="24%">C00A</td>
<td width="25%">sub al,$01</td>
</tr>
<tr>
<td>BFA0</td>
<td>jb $bfae</td>
<td>C00C</td>
<td>jb $c01e</td>
</tr>
<tr>
<td>BFA2</td>
<td>jz $bfb2</td>
<td>C00E</td>
<td>jz $c026</td>
</tr>
<tr>
<td>BFA4</td>
<td>dec al</td>
<td>C010</td>
<td>dec al</td>
</tr>
<tr>
<td>BFA6</td>
<td>jz $bfb6</td>
<td>C012</td>
<td>jz $c01a</td>
</tr>
<tr>
<td>BFA8</td>
<td>dec al</td>
<td>C014</td>
<td>dec al</td>
</tr>
<tr>
<td>BFAA</td>
<td>jz $bfba</td>
<td>C016</td>
<td>jz $c022</td>
</tr>
<tr>
<td>BFAC</td>
<td>jmp $bfbe</td>
<td>C018</td>
<td>jmp $c02a</td>
</tr>
<tr>
<td colspan="2"><em>my1: val := &#8216;1&#8242;;</em></td>
<td colspan="2"><em>my3: val := &#8216;3&#8242;;</em></td>
</tr>
<tr>
<td>BFAE</td>
<td>mov bl,$31</td>
<td>C01A</td>
<td>mov bl,$33</td>
</tr>
<tr>
<td>BFB0</td>
<td>jmp $bfc0</td>
<td>C01C</td>
<td>jmp $c02c</td>
</tr>
<tr>
<td colspan="2"><em>my2: val := &#8216;2&#8242;;</em></td>
<td colspan="2"><em>my1: val := &#8216;1&#8242;;</em></td>
</tr>
<tr>
<td>BFB2</td>
<td>mov bl,$32</td>
<td>C01E</td>
<td>mov bl,$31</td>
</tr>
<tr>
<td>BFB4</td>
<td>jmp $bfc0</td>
<td>C020</td>
<td>jmp $c02c</td>
</tr>
<tr>
<td colspan="2"><em>my3: val := &#8216;3&#8242;;</em></td>
<td colspan="2"><em>my4: val := &#8216;4&#8242;;</em></td>
</tr>
<tr>
<td>BFB6</td>
<td>mov bl,$33</td>
<td>C022</td>
<td>mov bl,$34</td>
</tr>
<tr>
<td>BFB8</td>
<td>jmp $bfc0</td>
<td>C024</td>
<td>jmp $c02c</td>
</tr>
<tr>
<td colspan="2"><em>my4: val := &#8216;4&#8242;;</em></td>
<td colspan="2"><em>my2: val := &#8216;2&#8242;;</em></td>
</tr>
<tr>
<td>BFBA</td>
<td>mov bl,$34</td>
<td>C026</td>
<td>mov bl,$32</td>
</tr>
<tr>
<td>BFBC</td>
<td>jmp $bfc0</td>
<td>C028</td>
<td>jmp $c02c</td>
</tr>
<tr>
<td colspan="2"><em>val := &#8216;?&#8217;;</em></td>
<td colspan="2"><em>val := &#8216;?&#8217;;</em></td>
</tr>
<tr>
<td>BFBE</td>
<td>mov bl,$20</td>
<td>C02A</td>
<td>mov bl,$20</td>
</tr>
</tbody>
</table>
<p>Same number of lines of assembly code. There may be some internal CPU optimization, but I don&#8217;t expect there is any. </p>
<p><strong>Conclusion: </strong>Order of the enum in the case statement does not change performance.&#160; Anyone else have any details I missed, or evidence to the contrary?&#160; I guess the next step is to test it in .NET and IL. . . . </p>
]]></content:encoded>
			<wfw:commentRss>http://www.davinciunltd.com/2008/07/order-of-enum-in-case-statement/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Beyond Compare 3 Beta</title>
		<link>http://www.davinciunltd.com/2008/07/beyond-compare-3-beta/</link>
		<comments>http://www.davinciunltd.com/2008/07/beyond-compare-3-beta/#comments</comments>
		<pubDate>Tue, 08 Jul 2008 07:24:51 +0000</pubDate>
		<dc:creator>Jim McKeeth</dc:creator>
		
		<category><![CDATA[Delphi]]></category>

		<category><![CDATA[tools]]></category>

		<category><![CDATA[kylix]]></category>

		<category><![CDATA[linux]]></category>

		<category><![CDATA[scc]]></category>

		<guid isPermaLink="false">http://www.davinciunltd.com/2008/07/beyond-compare-3-beta/</guid>
		<description><![CDATA[One of my favorite tools for software development beyond Delphi is Beyond Compare.  It is the best tool for comparing and merging files, directories, etc.  It is also written in Delphi.
They happen to have a Beta for version 3 available now.  Beyond a whole slew of new features for comparing and merging source files, they [...]]]></description>
			<content:encoded><![CDATA[<p>One of my favorite tools for software development beyond Delphi is Beyond Compare.  It is the best tool for comparing and merging files, directories, etc.  It is also written in Delphi.</p>
<p>They happen to have a <a href="http://scootersoftware.com/beta3">Beta for version 3 available now</a>.  Beyond a whole slew of new features for comparing and merging source files, they are also now running natively on Linux.  I sent them an email about the Linux support and they are using <strong><em>Kylix</em></strong> along with some GUI wrappers of their own to make development smoother.</p>
<p><a href="http://scootersoftware.com/beta3/moreinfo.php?zz=screenshot&amp;shot=TextMerge"><img src="http://scootersoftware.com/beta3/images/TextMerge2.jpg" border="0" alt="click for screenshot" align="right" /></a>They have a full list of the <a href="http://scootersoftware.com/beta3/moreinfo.php?zz=newfeatures">cool features in version 3</a>, along with <a href="http://scootersoftware.com/shop.php?c=upgrades">upgrade information</a>.  One of the really cool features I am looking forward to is the 3-way text merge.  I also really like the image comparison plug-in they offer.</p>
<p>I have found it is an indispensable tool when I am moving files between one computer to another.  If the process fails part way through do to network issues or whatever, Beyond Compare effectively lets me resume where I left off.  Additionally, I can quickly see if some of the files are out of date or corrupted.  A great way to trouble shoot system differences in testing software.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.davinciunltd.com/2008/07/beyond-compare-3-beta/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Embarcadero Keeps Coming Up</title>
		<link>http://www.davinciunltd.com/2008/07/embarcadero-keeps-coming-up/</link>
		<comments>http://www.davinciunltd.com/2008/07/embarcadero-keeps-coming-up/#comments</comments>
		<pubDate>Thu, 03 Jul 2008 07:08:41 +0000</pubDate>
		<dc:creator>Jim McKeeth</dc:creator>
		
		<category><![CDATA[CodeGear]]></category>

		<category><![CDATA[Delphi]]></category>

		<category><![CDATA[Embarcadero]]></category>

		<guid isPermaLink="false">http://www.davinciunltd.com/2008/07/embarcadero-keeps-coming-up/</guid>
		<description><![CDATA[


The building I work in is owned by Embarcadaro Capital Partners (See picture of the directory in the lobby.)
 Our company headquarters is moving to the corner of The Embarcadaro and Harrison in San Francisco, CA.
 The primary tool I use at work is Delphi, which was just purchased by Embarcadero Technologies.

Seems to be a [...]]]></description>
			<content:encoded><![CDATA[<div style="float: right; margin-left: 10px; margin-bottom: 10px;"><a title="photo sharing" href="http://www.flickr.com/photos/jimmckeeth/2632525451/"><img style="border: solid 2px #000000;" src="http://farm4.static.flickr.com/3158/2632525451_da64fbdda4_m.jpg" alt="" /></a><span style="font-size: 0.9em; margin-top: 0px;"><a href="http://www.flickr.com/people/jimmckeeth/"></a><br />
</span></div>
<ul>
<li>The building I work in is owned by Embarcadaro Capital Partners (See picture of the directory in the lobby.)</li>
<li> Our company headquarters is moving to the corner of <a href="http://maps.google.com/maps?f=q&amp;hl=en&amp;geocode=&amp;q=The+Embarcadero+%26+Harrison,+San+Francisco,+CA&amp;sll=37.789319,-122.389412&amp;sspn=0.006122,0.004882&amp;ie=UTF8&amp;z=16&amp;iwloc=addr">The Embarcadaro</a> and Harrison in San Francisco, CA.</li>
<li> The primary tool I use at work is <a href="http://www.codegear.com/products/delphi/win32">Delphi</a>, which was just purchased by <a href="http://www.embarcadero.com/">Embarcadero Technologies</a>.</li>
</ul>
<p>Seems to be a theme here. . . .</p>
]]></content:encoded>
			<wfw:commentRss>http://www.davinciunltd.com/2008/07/embarcadero-keeps-coming-up/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Good-bye Old Friends</title>
		<link>http://www.davinciunltd.com/2008/07/good-bye-old-friends/</link>
		<comments>http://www.davinciunltd.com/2008/07/good-bye-old-friends/#comments</comments>
		<pubDate>Tue, 01 Jul 2008 05:35:17 +0000</pubDate>
		<dc:creator>Jim McKeeth</dc:creator>
		
		<category><![CDATA[CodeGear]]></category>

		<category><![CDATA[blog]]></category>

		<category><![CDATA[boise]]></category>

		<category><![CDATA[borland]]></category>

		<category><![CDATA[Delphi]]></category>

		<category><![CDATA[Embarcadero]]></category>

		<category><![CDATA[Microsoft]]></category>

		<category><![CDATA[PDC]]></category>

		<guid isPermaLink="false">http://www.davinciunltd.com/?p=69</guid>
		<description><![CDATA[It appears I am saying my good-bye to two of my old friends.  I knew this was coming on both accounts, but the reality is finally here.  First of all, I good-bye to Borland, hello to Embarcadero.  The people and products will still be there, but it is a new company.  I expect this to [...]]]></description>
			<content:encoded><![CDATA[<p>It appears I am saying my good-bye to two of my old friends.  I knew this was coming on both accounts, but the reality is finally here.  First of all, I good-bye to Borland, hello to Embarcadero.  The people and products will still be there, but it is a new company.  I expect this to be a change for the best.  Now I need to figure out a way to re-brand all this Borland merchandise I own. . . .</p>
<p>My second old friend I bid farewell to is <a href="http://www.bsdg.org/" target="_blank">bsdg.org</a>.  I registered the doman name when I took over as president of the Boise Software Developers Group back in 2000.  In that time it also became my first blog site, which I found quite enjoyable.  At my high point I broke the news about PDC 2005 thanks to an email from the organizer, and that resulted in links from Robert Scoble as well as many others.</p>
<p>As of October 2007 I moved away from Boise, and Chris Brandsma took over as president of BSDG.  At one point I debated changing to to the Borland Software Developers Group and keeping the domain name, but Delphi was already dropping the Borland roots at that point.  All my old blog posts are still there someplace, but they are hidden behind a wall of cryptic 404 errors provided by the ASP.NET CMS that was recently installed.  Rather sad.  Maybe I will migrate some of the content here. . . . .</p>
]]></content:encoded>
			<wfw:commentRss>http://www.davinciunltd.com/2008/07/good-bye-old-friends/feed/</wfw:commentRss>
		</item>
		<item>
		<title>¡ʇǝʎ ǝpoɔıun ɹoɟ ǝsn ʇsǝq ǝɥʇ</title>
		<link>http://www.davinciunltd.com/2008/06/best-use-for-unicode/</link>
		<comments>http://www.davinciunltd.com/2008/06/best-use-for-unicode/#comments</comments>
		<pubDate>Fri, 20 Jun 2008 17:53:01 +0000</pubDate>
		<dc:creator>Jim McKeeth</dc:creator>
		
		<category><![CDATA[uncategorized]]></category>

		<category><![CDATA[Delphi]]></category>

		<category><![CDATA[Unicode]]></category>

		<guid isPermaLink="false">http://www.davinciunltd.com/?p=68</guid>
		<description><![CDATA[With all the talk about the next version of Delphi fully supporting Unicode, I was pretty excited to find:
¡ʇǝʎ ǝpoɔıun ɹoɟ ǝsn ʇsǝq ǝɥʇ
Well, maybe the best use for those of us who typically only need to use standard ASCII characters. . . .
]]></description>
			<content:encoded><![CDATA[<p>With all the talk about the next version of Delphi fully supporting Unicode, I was pretty excited to find:</p>
<blockquote><p><a title="Unicode text flipper" href="http://www.revfad.com/flip.html" target="_blank">¡ʇǝʎ ǝpoɔıun ɹoɟ ǝsn ʇsǝq ǝɥʇ</a></p></blockquote>
<p>Well, maybe the best use for those of us who typically only need to use standard ASCII characters. . . .</p>
]]></content:encoded>
			<wfw:commentRss>http://www.davinciunltd.com/2008/06/best-use-for-unicode/feed/</wfw:commentRss>
		</item>
		<item>
		<title>PasswordMaker</title>
		<link>http://www.davinciunltd.com/2008/06/passwordmaker/</link>
		<comments>http://www.davinciunltd.com/2008/06/passwordmaker/#comments</comments>
		<pubDate>Thu, 12 Jun 2008 01:17:43 +0000</pubDate>
		<dc:creator>Jim McKeeth</dc:creator>
		
		<category><![CDATA[free stuff]]></category>

		<category><![CDATA[tools]]></category>

		<category><![CDATA[cryptography]]></category>

		<category><![CDATA[open source]]></category>

		<category><![CDATA[passwords]]></category>

		<category><![CDATA[podcast]]></category>

		<guid isPermaLink="false">http://www.davinciunltd.com/?p=67</guid>
		<description><![CDATA[Ever since I discovered PasswordMaker.org, I&#8217;ve been recommending it, especially in my cryptography trainings.  What it does is take a hash of your super secret password with the url of current site and creates a password.  Your super secret password is never transmitted, and since the hash is secure, it cannot be reversed to your [...]]]></description>
			<content:encoded><![CDATA[<p>Ever since I discovered <a href="http://PasswordMaker.org" target="_blank">PasswordMaker.org</a>, I&#8217;ve been recommending it, especially in my cryptography trainings.  What it does is take a hash of your super secret password with the url of current site and creates a password.  Your super secret password is never transmitted, and since the hash is secure, it cannot be reversed to your password.  So each site has a different password, so if any one of them is compromised, then you only need to reset that one password.</p>
<p><a title="Joel Spolsky" href="http://www.joelonsoftware.com/" target="_blank">Joel</a> was looking for a solution to his password storage and syncronization issue over at <a href="http://blog.StackOverflow.com/" target="_blank">StackOverflow</a>. So I sent him an MP3 quote and they <a href="http://blog.stackoverflow.com/index.php/2008/06/podcast-9/#comment-1230" target="_blank">played it on their podcast</a>.  Joel liked the solution, <a href="http://www.codinghorror.com/">Jeff</a> not so much, but his solution is to just memorize a few passwords.</p>
<p>Their podcast is hosted by <a href="http://itc.conversationsnetwork.org/shows/detail3704.html" target="_blank">IT Conversations</a> now.  They played at <a title="Click to play clip . . ." href="http://www.conversationsnetwork.org/clip.php?showid=3704&amp;start=56:23&amp;stop=59:44" target="_blank">57:14</a> - The audio quality isn&#8217;t great.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.davinciunltd.com/2008/06/passwordmaker/feed/</wfw:commentRss>
<enclosure url="http://www.conversationsnetwork.org/clip.php?showid=3704&amp;amp" length="9601200" type="audio/mpeg" />
		</item>
		<item>
		<title>Updated Delphi Road Map</title>
		<link>http://www.davinciunltd.com/2008/04/updated-delphi-road-map/</link>
		<comments>http://www.davinciunltd.com/2008/04/updated-delphi-road-map/#comments</comments>
		<pubDate>Thu, 24 Apr 2008 01:05:05 +0000</pubDate>
		<dc:creator>Jim McKeeth</dc:creator>
		
		<category><![CDATA[CodeGear]]></category>

		<category><![CDATA[Delphi]]></category>

		<category><![CDATA[tools]]></category>

		<category><![CDATA[Anonymous Methods]]></category>

		<category><![CDATA[Generics]]></category>

		<category><![CDATA[Tiburon]]></category>

		<category><![CDATA[Unicode]]></category>

		<guid isPermaLink="false">http://www.davinciunltd.com/?p=66</guid>
		<description><![CDATA[Nick just posted an updated Delphi Road Map.  Check it out.  This looks to be one of the most significant Delphi releases in a long time.  This road map is just covers native code, not .NET - that will be in a future road map I guess.  Anonymous Methods, Generics and Unicode stand to be [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blogs.codegear.com/nickhodges/2008/04/23/39051">Nick</a> just posted an updated <a href="http://dn.codegear.com/article/36620">Delphi Road Map</a>.  Check it out.  This looks to be one of the most significant Delphi releases in a long time.  This road map is just covers native code, not .NET - that will be in a future road map I guess.  <span id="ArticleLabel">Anonymous Methods, </span>Generics and Unicode stand to be huge langauge and framework improvements.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.davinciunltd.com/2008/04/updated-delphi-road-map/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Scripting Engine Unit Template</title>
		<link>http://www.davinciunltd.com/2008/04/scripting-engine-unit-template/</link>
		<comments>http://www.davinciunltd.com/2008/04/scripting-engine-unit-template/#comments</comments>
		<pubDate>Thu, 10 Apr 2008 07:41:07 +0000</pubDate>
		<dc:creator>Jim McKeeth</dc:creator>
		
		<category><![CDATA[CodeGear]]></category>

		<category><![CDATA[Delphi]]></category>

		<category><![CDATA[library]]></category>

		<category><![CDATA[productivity]]></category>

		<category><![CDATA[tools]]></category>

		<category><![CDATA[live templates]]></category>

		<category><![CDATA[scripting]]></category>

		<guid isPermaLink="false">http://www.davinciunltd.com/?p=64</guid>
		<description><![CDATA[I must say, Delphi Live Templates and the Scripting Engines are REALLY amazing.  I wanted to make a new scripting engine, but then I got to thinking that my scripting engines had a lot of similar code, so I figured I would make a Live Template to create Scripting Engines.  I based it on Nick&#8217;s [...]]]></description>
			<content:encoded><![CDATA[<p>I must say, Delphi Live Templates and the Scripting Engines are REALLY amazing.  I wanted to make a new scripting engine, but then I got to thinking that my scripting engines had a lot of similar code, so I figured I would make a Live Template to create Scripting Engines.  I based it on Nick&#8217;s BaseScriptingEngine from his article on <a href="http://dn.codegear.com/article/37468">Creating a Live Templates Scripting Engine</a>.</p>
<p>I then created a <a href="http://blogs.codegear.com/pawelglowacki/2007/10/29/38498">Template Project</a> for the Scripting Engine Package.  So I can pop out a scripting engine now faster then you can say &#8220;Delphi Rocks&#8221;.</p>
<p>I thought I would share my Scripting Engine Unit Template.  You will probably want to make your own Scripting Engine Package Template Project, but if there is enough interest I will share mine out.  You will most likely want to modify this template to suite your own framework.</p>
<p>[<a href="http://www.davinciunltd.com/download/ScriptingEngineUnit.zip">Scripting Engine Unit Template</a>]</p>
<p><em><strong>Note</strong></em>: This references my general scripting engine to create a new GUID.  You will need to do that manually until I dress up my general scripting engine for public consumption.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.davinciunltd.com/2008/04/scripting-engine-unit-template/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Delphi Random Class Namer</title>
		<link>http://www.davinciunltd.com/2008/04/delphi-randomclass-namer/</link>
		<comments>http://www.davinciunltd.com/2008/04/delphi-randomclass-namer/#comments</comments>
		<pubDate>Wed, 09 Apr 2008 06:38:44 +0000</pubDate>
		<dc:creator>Jim McKeeth</dc:creator>
		
		<category><![CDATA[CodeGear]]></category>

		<category><![CDATA[Delphi]]></category>

		<category><![CDATA[funny]]></category>

		<category><![CDATA[tools]]></category>

		<category><![CDATA[live templates]]></category>

		<category><![CDATA[random]]></category>

		<category><![CDATA[scripting]]></category>

		<category><![CDATA[templates]]></category>

		<guid isPermaLink="false">http://www.davinciunltd.com/?p=63</guid>
		<description><![CDATA[Ever wonder what class to write next in Delphi?  Well, combine Delphi Live Templates (including a custom scripting engine) with www.ClassNamer.com and you never have to wonder again.

Although how to implement that class is another question.
If there is any interest in the code let me know and I will polish it up and post it.  [...]]]></description>
			<content:encoded><![CDATA[<p>Ever wonder what class to write next in Delphi?  Well, combine Delphi Live Templates (including a custom scripting engine) with <a href="http://www.ClassNamer.com/">www.ClassNamer.com</a> and you never have to wonder again.</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="582" height="553" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="play" value="true" /><param name="loop" value="true" /><param name="wmode" value="transparent" /><param name="quality" value="low" /><param name="src" value="http://www.davinciunltd.com/wp-content/uploads/2008/04/HttpRandomClassNamer.swf" /><embed type="application/x-shockwave-flash" width="582" height="553" src="http://www.davinciunltd.com/wp-content/uploads/2008/04/HttpRandomClassNamer.swf" quality="low" wmode="transparent" loop="true" play="true"></embed></object></p>
<p>Although how to implement that class is another question.</p>
<p>If there is any interest in the code let me know and I will polish it up and post it.  I created a random HTTP parser script engine and then the live template does the rest.  I figured this would be a fun way to get familiar with Live Templates and the custom scripting engine.  This is a really powerful feature of Delphi.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.davinciunltd.com/2008/04/delphi-randomclass-namer/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
