<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-6412021</id><updated>2010-04-30T13:23:53.241-03:00</updated><title type='text'>Ryan's Rambling</title><subtitle type='html'>My attempt to stumble into the Blog world.</subtitle><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6412021/posts/default'/><link rel='alternate' type='text/html' href='http://www.run-time-systems.com/blog/index.htm'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/6412021/posts/default?start-index=26&amp;max-results=25'/><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://www.run-time-systems.com/blog/atom.xml'/><author><name>Ryan</name><uri>http://www.blogger.com/profile/01806420279298335207</uri><email>noreply@blogger.com</email></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>66</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6412021.post-4038316441632850429</id><published>2007-12-01T16:04:00.001-04:00</published><updated>2007-12-01T16:14:48.544-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Delphi'/><category scheme='http://www.blogger.com/atom/ns#' term='Borland'/><title type='text'>Chris Bensen: Upgrading Delphi</title><content type='html'>&lt;p&gt;It is always interesting (frustrating)&amp;nbsp;following the upgrade/stick/switch turmoil that goes along with any consideration of moving from a &lt;a title="Delphi 6 (wayback)" href="http://web.archive.org/web/20020124082814/www.borland.com/delphi/"&gt;stable devil you know tool&lt;/a&gt; versus the &lt;a title="CodeGear RAD Studio 2007" href="http://www.codegear.com/products/radstudio"&gt;shiny new thing&lt;/a&gt;. Often the implicit upgrade cycle you would hope to happen&amp;nbsp;is hindered by a slow release cycle on the tool of choice or lack of compelling features. These items have been beaten to death by others but I thought some personal insights from similar struggles I have seen may as well be added.&lt;/p&gt; &lt;p&gt;In any upgrade it is generally the "little things" that surface to haunt you so anyone that has been through a prior upgrade always entertains the idea that there are many of those gremlins just waiting for a chance to laugh at you publicly after you have deployed to your clients.&lt;/p&gt; &lt;p&gt;I participate in two significant products, one based on Delphi 6 and another still on Delphi 5. In both cases the volume of code, testing capacity, and potential re-platforming as are always cited as significant barriers to attacking the upgrade cycle. Due to 3rd party dependencies the latter project has an extremely high bar for upgrading. In both cases the problem is firmly rooted in not carrying out a natural and continuous upgrade cycle with robust testing. Until you have the "must have" in the new version you can't really afford to make the move. The business case simply does not exist and diminishes the further you get from the tip release of you development tool.&lt;/p&gt; &lt;p&gt;Rather than suggest you should not upgrade I think a pragmatic approach that I have found moderately successful is worth highlighting. For much of the server components of one of the&amp;nbsp;products&amp;nbsp;the&amp;nbsp;code has been&amp;nbsp;maintained in each new release of the Borland/CodeGear toolset but always back-compiled and tested using Delphi 6. So, all along the code was maintained in Delphi 7, BDS 2005, BDS 2006, and finally in RAD Studio 2007. That is great, after getting over the the initial hate for some of the IDE changes (SDI)&amp;nbsp;you start to rely heavily on the new features like live templates, refactoring, code metrics, and models. Still nothing new is needed for the product that goes out the door though so&amp;nbsp;upgrade sell is weak based on a "&lt;a title="RAD Studio 2007 Feature Matrix" href="http://www.codegear.com/article/36898/images/36898/radstudio-fm.pdf"&gt;feature case&lt;/a&gt;."&lt;/p&gt; &lt;p&gt;But there are definitely reasons to upgrade. Recently, we were doing capacity testing and were a bit disappointed with our numbers and needed a quick hit. Without a single change to compiler options, code base, etc.&amp;nbsp;we performed the same capacity testing with the application suite complied under RAD Studio 2007. &lt;strong&gt;We immediately saw a consistent 25-30% capacity volume increase.&lt;/strong&gt; The majority of this is easily related directly to the the new memory manager (&lt;a href="http://blogs.codegear.com/abauer/2005/09/28/21433"&gt;FastMM&lt;/a&gt;) and &lt;a href="http://dn.codegear.com/article/33050#6Functionandprocedureinlining"&gt;better inlining&lt;/a&gt; of key functions. Most of these items we could get if we were willing to alter the system to include or use 3rd party tools but the whole point was OOTB improvement. Since it was server-side code VCL changes really were not a factor.&lt;/p&gt; &lt;p&gt;We did not need the increased capacity immediately so we simply tucked it away in the "good to know" column. Had we needed it&amp;nbsp;I am sure an upgrade on the server components would have happened right then (not a strong enough business case). We are now taking steps to assess a full upgrade on the client and server components and work out a process that will not leave us hung on an older version as we are now. What is the biggest hang up? Proper coverage for the testing. You can never have enough and dealing with tool related problems is never a good sell. An upgrade advisor tool that can run on a project would certainly be nice to have.&lt;/p&gt; &lt;p&gt;Over time though there has been a persistent set of issues that never quite seem to be addressed when you are trying to push a particular upgrade. Don't get me wrong, I am fully in the "upgrade often and stay upgraded" column but this list contains the items that most often leave me hesitant:&lt;/p&gt; &lt;ol&gt; &lt;li&gt;&lt;a href="http://www.google.com/search?hl=en&amp;amp;rls=com.microsoft%3Aen-US&amp;amp;q=CodeGear+install+issues"&gt;Install Experience&lt;/a&gt; - &lt;strong&gt;What you get after you finish the install is great...&lt;/strong&gt; but getting there is appalling and there is no amount of counter argument that can ever suggest it is acceptable. Most persons that have installed any recent BDS/RAD Studio have most likely installed other products that are equally complex. I can get through OS + Service Packs often faster than I can do the same for RAD Studio. Suggestions that this is an MSI (Windows Installer) problem only serve to alienate those who actually know that it isn't MSI, rather it is how it is being used. MSI may not be fun but it is often a necessary evil.  &lt;li&gt;&lt;a href="http://support.codegear.com/annual"&gt;Software Assurance&lt;/a&gt; vs Upgrade Cost&amp;nbsp;- Upgrade costs always factor. The problem is they shouldn't, CodeGear has a fabulous subscription service called Software Assurance. While&amp;nbsp;information about Software Assurance is more readily available these days&amp;nbsp;it is still difficult to get your head around it and why it makes so much sense.&amp;nbsp;Make subscriptions the only sales model and show clearly how your frequent release cycle makes&amp;nbsp;this a&amp;nbsp;cost benefit. There are blogs and even calculators out there that demonstrate this but &lt;em&gt;"direct from CodeGear"&lt;/em&gt; means something.  &lt;li&gt;Difficultly in&amp;nbsp;showing the big benefits - The integration of &lt;a href="http://www.stevetrefethen.com/blog/AreYouUsingDUnitToTestYourDelphiApplications.aspx"&gt;dUnit&lt;/a&gt;, &lt;a href="http://dn.codegear.com/article/33278"&gt;nUnit&lt;/a&gt;, &lt;a href="http://msdn2.microsoft.com/en-us/library/0k6kkbsd.aspx"&gt;MS Build&lt;/a&gt; (hmmm, wanted &lt;a href="http://nant.sourceforge.net/"&gt;NAnt&lt;/a&gt; myself), FastMM, &lt;a href="http://dn.codegear.com/article/33050#5Forindoloop"&gt;for each looping&lt;/a&gt;, &lt;a href="http://dn.codegear.com/article/33400#4AuditsandMetrics"&gt;code metrics&lt;/a&gt;, &lt;a href="http://www.drbob42.com/examines/examin67.htm"&gt;refactoring&lt;/a&gt;, &lt;a href="http://dn.codegear.com/article/37089"&gt;generics&lt;/a&gt;, &lt;a href="http://blogs.codegear.com/michaelswindell/2007/05/18/34656"&gt;live templates&lt;/a&gt;... the list goes on and anyone following along with the upgrades is inherently aware of them and enjoying them but each of these is small by itself and information on them is more often found in blogs or secondary sources. These factors all play into quality and effort reduction improvements&amp;nbsp;in our own projects in terms of quality, defect rates, and performance. The leading question is how do you turn that into a strong business case. The sales pitch "&lt;strong&gt;have less defects, more developer time, and a faster more robust product&lt;/strong&gt;" may exist on the CodeGear site but I haven't seen it.  &lt;li&gt;&lt;a href="http://blogs.codegear.com/deeelling"&gt;Documentation&lt;/a&gt; - Having used Delphi for so long I can't really appreciate the documentation woes that exist but on the occasions I find myself hunting for something in the help I realize just how difficult it can be for an OOTB experience. The help has been improving in first-use and correctness with each release but in some ways is still not on par with Delphi 7 and earlier releases (the language guide is still hard for me to locate to this day). The "little things" kill you here. Try finding the list of VERxxx compiler defines... (tell me if you find it).  &lt;li&gt;Features only beneficial on new projects - ECO... everything I have seen and played with suggests this is a great addition to Delphi but the fact remains it is similar to re-platforming when it comes to making use of it. Give me &lt;a href="http://blog.marcocantu.com/blog/my_take_new_delphi_roadmap.html"&gt;MAC's, 64-bit, Unicode and even CF&lt;/a&gt;. These are core improvements I can use on products that have hundreds of man-years invested.&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;In the end the Delphi product is targeted at developers but the install process is so burdensome that it is difficult for a business application developer to potentially have to spend time on assessing and using the tool when the install experience takes up valuable time and leaves the wrong taste in the mouth and leaves little for a concrete experience in the software.&lt;/p&gt; &lt;p&gt;After all the non-positive comments above I still have to say that the upgrades are well worth the effort but that is more from the fact that I know the benefits are in there from constant exposure to them as opposed to looking at any given &lt;/p&gt; &lt;p&gt;information on the CodeGear site and going "Wow". So, if you have been hedging on upgrading I strongly encourage you to get past the OOTB experience and get used to the product. &lt;a href="http://blogs.codegear.com/nickhodges/index.php?p=26687"&gt;The benefits are there and your productivity will actually increase&lt;/a&gt;. You may even like the SDI interface after some time ;-).&lt;/p&gt; &lt;p&gt;&lt;a href="http://chrisbensen.blogspot.com/2007/11/upgrading-delphi.html#c1282425506259403306"&gt;Chris Bensen: Upgrading Delphi&lt;/a&gt; &lt;br&gt;&lt;a title="Why aren't you upgrading Delphi- Reasons and myths" href="http://blog.marcocantu.com/blog/why_upgrading_delphi.html"&gt;Why aren't you upgrading Delphi- Reasons and myths&lt;/a&gt;&lt;/p&gt; &lt;div class="wlWriterSmartContent" id="0767317B-992E-4b12-91E0-4F059A8CECA8:08707cca-b3cd-4628-97cf-24e16e0d5b10" contenteditable="false" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Labels: &lt;a href="http://www.run-time-systems.com/blog/labels/Borland.htm" rel="tag"&gt;Borland&lt;/a&gt;, &lt;a href="http://www.run-time-systems.com/blog/labels/Delphi.htm" rel="tag"&gt;Delphi&lt;/a&gt;&lt;/div&gt; &lt;p&gt;&lt;/p&gt; &lt;div class="wlWriterSmartContent" id="d7bf807d-7bb0-458a-811f-90c51817d5c2:51ddd7c1-1571-4cdb-80e1-ffc878d39005" contenteditable="false" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;&lt;p&gt;&lt;span class="TagSite"&gt;Technorati:&lt;/span&gt; &lt;a href="http://technorati.com/tag/Borland" rel="tag" class="tag"&gt;Borland&lt;/a&gt;, &lt;a href="http://technorati.com/tag/CodeGear" rel="tag" class="tag"&gt;CodeGear&lt;/a&gt;, &lt;a href="http://technorati.com/tag/Delphi" rel="tag" class="tag"&gt;Delphi&lt;/a&gt;&lt;br /&gt;&lt;!-- StartInsertedTags: Borland,CodeGear,Delphi :EndInsertedTags --&gt;&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6412021-4038316441632850429?l=www.run-time-systems.com%2Fblog%2Findex.htm' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/6412021/4038316441632850429/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=6412021&amp;postID=4038316441632850429' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6412021/posts/default/4038316441632850429'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6412021/posts/default/4038316441632850429'/><link rel='alternate' type='text/html' href='http://www.run-time-systems.com/blog/2007/12/chris-bensen-upgrading-delphi.htm' title='Chris Bensen: Upgrading Delphi'/><author><name>Ryan</name><uri>http://www.blogger.com/profile/01806420279298335207</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='09055343590157600853'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6412021.post-2122806524960178192</id><published>2007-09-17T08:12:00.001-03:00</published><updated>2007-09-17T08:12:04.776-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Delphi'/><category scheme='http://www.blogger.com/atom/ns#' term='Borland'/><title type='text'>MSN Desktop Search Delphi code</title><content type='html'>&lt;p&gt;It was quite some time ago that I &lt;a href="http://www.run-time-systems.com/blog/2005/03/delphi-uses-ifilter-and-msn-desktop.htm"&gt;discussed&lt;/a&gt;&amp;nbsp;an IFilter implementation using Delphi code. Here is the code for that blog post.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;a href="http://www.run-time-systems.com/download/PascalSourceIndexFilter_src_20070917.zip"&gt;Source download link (v2.1)&lt;/a&gt;&lt;/p&gt; &lt;div class="wlWriterSmartContent" id="d7bf807d-7bb0-458a-811f-90c51817d5c2:8e214589-4a82-48b1-b351-249575fa2eb2" contenteditable="false" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;&lt;p&gt;&lt;span class="TagSite"&gt;Technorati:&lt;/span&gt; &lt;a href="http://technorati.com/tag/Borland" rel="tag" class="tag"&gt;Borland&lt;/a&gt;, &lt;a href="http://technorati.com/tag/Delphi" rel="tag" class="tag"&gt;Delphi&lt;/a&gt;&lt;br /&gt;&lt;!-- StartInsertedTags: Borland, Delphi :EndInsertedTags --&gt;&lt;/p&gt;&lt;/div&gt;&lt;br&gt; &lt;div class="wlWriterSmartContent" id="0767317B-992E-4b12-91E0-4F059A8CECA8:ebbf7371-1cb0-47bb-a899-e19998064ab2" contenteditable="false" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Labels: &lt;a href="http://www.run-time-systems.com/blog/labels/Borland.htm" rel="tag"&gt;Borland&lt;/a&gt;, &lt;a href="http://www.run-time-systems.com/blog/labels/Delphi.htm" rel="tag"&gt;Delphi&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6412021-2122806524960178192?l=www.run-time-systems.com%2Fblog%2Findex.htm' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/6412021/2122806524960178192/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=6412021&amp;postID=2122806524960178192' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6412021/posts/default/2122806524960178192'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6412021/posts/default/2122806524960178192'/><link rel='alternate' type='text/html' href='http://www.run-time-systems.com/blog/2007/09/msn-desktop-search-delphi-code.htm' title='MSN Desktop Search Delphi code'/><author><name>Ryan</name><uri>http://www.blogger.com/profile/01806420279298335207</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='09055343590157600853'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6412021.post-7201036837791192554</id><published>2007-01-07T13:44:00.001-04:00</published><updated>2007-01-07T21:09:37.926-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web'/><title type='text'>OpenSSL and OpenSearch</title><content type='html'>&lt;p&gt;Some of the development I have been doing lately has had me searching through the &lt;a title="http://www.openssl.org/" href="http://www.openssl.org/"&gt;OpenSSL&lt;/a&gt; online documentation quite frequently. While most times the &lt;a title="http://www.openssl.org/" href="http://www.openssl.org/"&gt;OpenSSL&lt;/a&gt; site pops up first in the &lt;a title="Google" href="http://www.google.com/"&gt;google&lt;/a&gt; results it is not always the case. Google allows you to constrain the search to a particular site by adding a site:site-name expression to the search. This is great but more typing than I care to do repeatedly. My solution was to add an &lt;a title="OpenSearch" href="http://www.opensearch.org/"&gt;OpenSearch&lt;/a&gt; to the &lt;a title="http://www.microsoft.com/ie/" href="http://www.microsoft.com/ie/"&gt;IE7&lt;/a&gt; search.&lt;/p&gt;&lt;p&gt;The great thing is that this works in both IE and &lt;a title="FireFox" href="http://www.mozilla.com/en-US/firefox/"&gt;FireFox&lt;/a&gt; through the simple inclusion of a &amp;lt;link/&amp;gt; HTML element. If you check your search drop down you should see that OpenSSL Search Provider is availabe for using to search. &lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&lt;span class="xml1-processinginstruction"&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="xml1-symbol"&gt;&amp;lt;&lt;/span&gt;&lt;span class="xml1-elementname"&gt;OpenSearchDescription&lt;/span&gt;&lt;span class="xml1-whitespace"&gt; &lt;/span&gt;&lt;span class="xml1-namespaceattributename"&gt;xmlns&lt;/span&gt;&lt;span class="xml1-symbol"&gt;=&amp;quot;&lt;/span&gt;&lt;span class="xml1-namespaceattributevalue"&gt;http://a9.com/-/spec/opensearch/1.1/&lt;/span&gt;&lt;span class="xml1-symbol"&gt;&amp;quot;&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="xml1-text"&gt;  &lt;/span&gt;&lt;span class="xml1-symbol"&gt;&amp;lt;&lt;/span&gt;&lt;span class="xml1-elementname"&gt;ShortName&lt;/span&gt;&lt;span class="xml1-symbol"&gt;&amp;gt;&lt;/span&gt;&lt;span class="xml1-text"&gt;OpenSSL&lt;/span&gt;&lt;span class="xml1-symbol"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="xml1-elementname"&gt;ShortName&lt;/span&gt;&lt;span class="xml1-symbol"&gt;&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="xml1-text"&gt;  &lt;/span&gt;&lt;span class="xml1-symbol"&gt;&amp;lt;&lt;/span&gt;&lt;span class="xml1-elementname"&gt;Description&lt;/span&gt;&lt;span class="xml1-symbol"&gt;&amp;gt;&lt;/span&gt;&lt;span class="xml1-text"&gt;OpenSSL constrained search using Google&lt;/span&gt;&lt;span class="xml1-symbol"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="xml1-elementname"&gt;Description&lt;/span&gt;&lt;span class="xml1-symbol"&gt;&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="xml1-text"&gt;  &lt;/span&gt;&lt;span class="xml1-symbol"&gt;&amp;lt;&lt;/span&gt;&lt;span class="xml1-elementname"&gt;Tags&lt;/span&gt;&lt;span class="xml1-symbol"&gt;&amp;gt;&lt;/span&gt;&lt;span class="xml1-text"&gt;OpenSSL SSL TLS&lt;/span&gt;&lt;span class="xml1-symbol"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="xml1-elementname"&gt;Tags&lt;/span&gt;&lt;span class="xml1-symbol"&gt;&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="xml1-text"&gt;  &lt;/span&gt;&lt;span class="xml1-symbol"&gt;&amp;lt;&lt;/span&gt;&lt;span class="xml1-elementname"&gt;InputEncoding&lt;/span&gt;&lt;span class="xml1-symbol"&gt;&amp;gt;&lt;/span&gt;&lt;span class="xml1-text"&gt;UTF-8&lt;/span&gt;&lt;span class="xml1-symbol"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="xml1-elementname"&gt;InputEncoding&lt;/span&gt;&lt;span class="xml1-symbol"&gt;&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="xml1-text"&gt;  &lt;/span&gt;&lt;span class="xml1-symbol"&gt;&amp;lt;&lt;/span&gt;&lt;span class="xml1-elementname"&gt;Url&lt;br /&gt;&lt;/span&gt;&lt;span class="xml1-whitespace"&gt;      &lt;/span&gt;&lt;span class="xml1-attributename"&gt;type&lt;/span&gt;&lt;span class="xml1-symbol"&gt;=&amp;quot;&lt;/span&gt;&lt;span class="xml1-attributevalue"&gt;text/html&lt;/span&gt;&lt;span class="xml1-symbol"&gt;&amp;quot;&lt;br /&gt;&lt;/span&gt;&lt;span class="xml1-whitespace"&gt;      &lt;/span&gt;&lt;span class="xml1-attributename"&gt;template&lt;/span&gt;&lt;span class="xml1-symbol"&gt;=&amp;quot;&lt;/span&gt;&lt;span class="xml1-attributevalue"&gt;http://www.google.com/search?hl=en&lt;/span&gt;&lt;span class="xml1-entityreference"&gt;&amp;amp;amp;&lt;/span&gt;&lt;span class="xml1-attributevalue"&gt;q=site%3Awww.openssl.org+{searchTerms}&lt;/span&gt;&lt;span class="xml1-symbol"&gt;&amp;quot;&lt;br /&gt;&lt;/span&gt;&lt;span class="xml1-whitespace"&gt;      &lt;/span&gt;&lt;span class="xml1-attributename"&gt;&lt;/span&gt;&lt;span class="xml1-symbol"&gt;/&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="xml1-text"&gt;  &lt;/span&gt;&lt;span class="xml1-symbol"&gt;&amp;lt;&lt;/span&gt;&lt;span class="xml1-elementname"&gt;Query&lt;/span&gt;&lt;span class="xml1-whitespace"&gt; &lt;/span&gt;&lt;span class="xml1-attributename"&gt;role&lt;/span&gt;&lt;span class="xml1-symbol"&gt;=&amp;quot;&lt;/span&gt;&lt;span class="xml1-attributevalue"&gt;example&lt;/span&gt;&lt;span class="xml1-symbol"&gt;&amp;quot;&lt;/span&gt;&lt;span class="xml1-whitespace"&gt; &lt;/span&gt;&lt;span class="xml1-attributename"&gt;searchTerms&lt;/span&gt;&lt;span class="xml1-symbol"&gt;=&amp;quot;&lt;/span&gt;&lt;span class="xml1-attributevalue"&gt;SSL_new&lt;/span&gt;&lt;span class="xml1-symbol"&gt;&amp;quot;&lt;/span&gt;&lt;span class="xml1-attributename"&gt;&lt;/span&gt;&lt;span class="xml1-symbol"&gt;/&amp;gt;&lt;br /&gt;&amp;lt;/&lt;/span&gt;&lt;span class="xml1-elementname"&gt;OpenSearchDescription&lt;/span&gt;&lt;span class="xml1-symbol"&gt;&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;This &amp;lt;link&amp;gt; should really be in the &amp;lt;head&amp;gt; section of the HTML document but luckily both browsers will pick it up even when it is embedded in the body.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&lt;span class="xml1-symbol"&gt;&amp;lt;&lt;/span&gt;&lt;span class="xml1-elementname"&gt;link&lt;br /&gt;&lt;/span&gt;&lt;span class="xml1-whitespace"&gt;    &lt;/span&gt;&lt;span class="xml1-attributename"&gt;title&lt;/span&gt;&lt;span class="xml1-symbol"&gt;=&amp;quot;&lt;/span&gt;&lt;span class="xml1-attributevalue"&gt;OpenSSL Search Provider&lt;/span&gt;&lt;span class="xml1-symbol"&gt;&amp;quot;&lt;br /&gt;&lt;/span&gt;&lt;span class="xml1-whitespace"&gt;    &lt;/span&gt;&lt;span class="xml1-attributename"&gt;href&lt;/span&gt;&lt;span class="xml1-symbol"&gt;=&amp;quot;&lt;/span&gt;&lt;span class="xml1-attributevalue"&gt;http://www.run-time-systems.com/blog/openssl-search-provider.xml&lt;/span&gt;&lt;span class="xml1-symbol"&gt;&amp;quot;&lt;br /&gt;&lt;/span&gt;&lt;span class="xml1-whitespace"&gt;    &lt;/span&gt;&lt;span class="xml1-attributename"&gt;type&lt;/span&gt;&lt;span class="xml1-symbol"&gt;=&amp;quot;&lt;/span&gt;&lt;span class="xml1-attributevalue"&gt;application/opensearchdescription+xml&lt;/span&gt;&lt;span class="xml1-symbol"&gt;&amp;quot;&lt;br /&gt;&lt;/span&gt;&lt;span class="xml1-whitespace"&gt;    &lt;/span&gt;&lt;span class="xml1-attributename"&gt;rel&lt;/span&gt;&lt;span class="xml1-symbol"&gt;=&amp;quot;&lt;/span&gt;&lt;span class="xml1-attributevalue"&gt;search&lt;/span&gt;&lt;span class="xml1-symbol"&gt;&amp;quot;&lt;br /&gt;&lt;/span&gt;&lt;span class="xml1-whitespace"&gt;    &lt;/span&gt;&lt;span class="xml1-attributename"&gt;&lt;/span&gt;&lt;span class="xml1-symbol"&gt;/&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6412021-7201036837791192554?l=www.run-time-systems.com%2Fblog%2Findex.htm' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/6412021/7201036837791192554/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=6412021&amp;postID=7201036837791192554' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6412021/posts/default/7201036837791192554'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6412021/posts/default/7201036837791192554'/><link rel='alternate' type='text/html' href='http://www.run-time-systems.com/blog/2007/01/openssl-and-opensearch.htm' title='OpenSSL and OpenSearch'/><author><name>Ryan</name><uri>http://www.blogger.com/profile/01806420279298335207</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='09055343590157600853'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6412021.post-116290609384839193</id><published>2006-11-07T09:28:00.000-04:00</published><updated>2006-11-07T09:28:53.566-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Delphi'/><category scheme='http://www.blogger.com/atom/ns#' term='Borland'/><title type='text'>Borland Drops StarTeam Standard and Web Editions</title><content type='html'>&lt;p&gt;Well it looks like Borland will continue the pattern of introducing version control sub-systems that I like and then removing them from the line up after two or three years. It appears the Standard Edition of StarTeam does not meet with the Borland ALM direction so anyone using it can either move up to the Enterprise licensing or somewhere else. The notice indicates that version control is a commodity so I would expect they believe that anyone who thought that the standard SKU was satisfactory will transition to sub-version or some other free tool.&lt;/p&gt; &lt;p&gt;This is twice now that Borland has provided a version control solution with the Delphi license and then&amp;nbsp;go on to&amp;nbsp;drop support. Both times I was quite happy with the solutions and happily moved to them. TeamSource was a great small shop tool and I really liked the model and integration. I didn't mind switching to StarTeam either and&amp;nbsp;had become rather attached to the great linking support and build tagging.&lt;/p&gt; &lt;p&gt;The problem with this announcement is that the it leaves StarTeam in an all or nothing (planned it would seem) position and if you already have the rest of the change request/ticketing/project management bits taken care of outside of the Borland suite of tools. So, the upgrade scheme isn't really going to fly with me :-(.&lt;/p&gt; &lt;p&gt;The documents that are linked below make no references to the status of StarTeam&amp;nbsp;within the DevCo/DTG but I am sure something will pop up shortly.&lt;/p&gt; &lt;p&gt;Further reading:&lt;/p&gt; &lt;p&gt;&lt;a href="http://support.borland.com/servlet/KbServlet/download/5302-102-643/Borland%20Support%20Newsletter%20Oct%202006.pdf" target="_blank"&gt;Borland Support Newsletter October 2006&lt;/a&gt;&lt;br&gt;&lt;a href="http://support.borland.com/servlet/KbServlet/download/5171-102-639/corp_starteam_standard_edition_sunset_ww_faq.pdf" target="_blank"&gt;Borland StarTeam Standard Edition CR-only Sunset FAQ&lt;/a&gt;&lt;br&gt;&lt;a href="http://support.borland.com/servlet/KbServlet/download/5171-102-638/corp_starteam_standard_edition_sunset_ww_customer_notification.pdf" target="_blank"&gt;Borland StarTeam Edition Sunset Customer Notification&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6412021-116290609384839193?l=www.run-time-systems.com%2Fblog%2Findex.htm' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/6412021/116290609384839193/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=6412021&amp;postID=116290609384839193' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6412021/posts/default/116290609384839193'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6412021/posts/default/116290609384839193'/><link rel='alternate' type='text/html' href='http://www.run-time-systems.com/blog/2006/11/borland-drops-starteam-standard-and.htm' title='Borland Drops StarTeam Standard and Web Editions'/><author><name>Ryan</name><uri>http://www.blogger.com/profile/01806420279298335207</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='09055343590157600853'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6412021.post-115615816512569797</id><published>2006-08-21T08:02:00.000-03:00</published><updated>2006-08-21T08:02:45.133-03:00</updated><title type='text'>Sample post using Windows Live Writer</title><content type='html'>&lt;p&gt;This is just a quick post to confirm the install and use of the beta&amp;nbsp;&lt;a href="http://windowslivewriter.spaces.live.com/blog/cns!D85741BB5E0BE8AA!174.entry" target="_blank"&gt;Windows Live Writer&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;If this works it is pretty simple to install and get working.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6412021-115615816512569797?l=www.run-time-systems.com%2Fblog%2Findex.htm' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/6412021/115615816512569797/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=6412021&amp;postID=115615816512569797' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6412021/posts/default/115615816512569797'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6412021/posts/default/115615816512569797'/><link rel='alternate' type='text/html' href='http://www.run-time-systems.com/blog/2006/08/sample-post-using-windows-live-writer.htm' title='Sample post using Windows Live Writer'/><author><name>Ryan</name><uri>http://www.blogger.com/profile/01806420279298335207</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='09055343590157600853'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6412021.post-112679741106679027</id><published>2005-09-15T12:16:00.000-03:00</published><updated>2005-09-15T12:16:51.100-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Delphi'/><category scheme='http://www.blogger.com/atom/ns#' term='Borland'/><title type='text'>Delphi 2005 Rollup Update</title><content type='html'>&lt;a href="http://blogs.borland.com/abauer/"&gt;Allen Bauer&lt;/a&gt; has &lt;a href="http://blogs.borland.com/abauer/archive/2005/09/13/21124.aspx"&gt;posted a rollup&lt;/a&gt; of his recent Delphi 2005 fixes. It is really good to see Borland rolling out these informal (read pre-beta) patches as they are being corrected in the next major release.&lt;br/&gt;&lt;br/&gt;You should also head over to the Borland site to pick up the preview release of the compact framework support (compiler only). This is just what many of us were asking for and it is a great thing to see them deliver. I haven’t had much time to play with it myself yet but it is definitely on the list and I will be converting a smallish golf related applet over to it as soon as I can.&lt;br/&gt;&lt;br/&gt;Kudos to the Delphi team for their devotion.&lt;br/&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6412021-112679741106679027?l=www.run-time-systems.com%2Fblog%2Findex.htm' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/6412021/112679741106679027/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=6412021&amp;postID=112679741106679027' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6412021/posts/default/112679741106679027'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6412021/posts/default/112679741106679027'/><link rel='alternate' type='text/html' href='http://www.run-time-systems.com/blog/2005/09/delphi-2005-rollup-update.htm' title='Delphi 2005 Rollup Update'/><author><name>Ryan</name><uri>http://www.blogger.com/profile/01806420279298335207</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='09055343590157600853'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6412021.post-111750485366308302</id><published>2005-05-30T22:45:00.000-03:00</published><updated>2005-05-30T23:00:53.666-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Delphi'/><category scheme='http://www.blogger.com/atom/ns#' term='Mobile'/><category scheme='http://www.blogger.com/atom/ns#' term='Borland'/><title type='text'>Delphi and the Compact Framework, Real Soon Now?</title><content type='html'>&lt;a href="http://blogs.borland.com/davidi/archive/2005/05/30/4621.aspx"&gt;David I&lt;/a&gt; posts about a preview they are showing at the SDC sessions. From the blog post it appears that we may very well see a preview compiler targeting the .NET Compact Framework prior to the next major release of &lt;a href="http://www.borland.com/delphi/"&gt;Delphi&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;While details are sketchy it is extremely positive to hear about the compiler showing up prior to the next major release. Hopefully we can do our bit and flush out any major platform issues as part of a preview so the next major release can have something robust and workable.&lt;br /&gt;&lt;br /&gt;Some background materials:&lt;br /&gt;&lt;a href="http://www.run-time-systems.com/blog/2005/03/delphinet-and-compact-framework.htm"&gt;My point of view&lt;/a&gt;&lt;br /&gt;&lt;a href="http://blogs.borland.com/dcc/archive/2005/03/18/3214.aspx"&gt;Danny's preview of Delphi on CF&lt;/a&gt;&lt;br /&gt;&lt;a href="http://blogs.borland.com/abauer/archive/2005/03/21/3320.aspx"&gt;Allen's follow up on VCL/WinForms positioning&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Kudos to the Delphi team for pushing it out the door :).&lt;br /&gt;&lt;br /&gt;This is probably a good time for you to pick up &lt;a href="http://support.borland.com/entry.jspa?externalID=12#SA"&gt;Software Assurance&lt;/a&gt; if you haven't already. After you figure out what it is it doesn't make sense to not have it if you are using any Borland Tools.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6412021-111750485366308302?l=www.run-time-systems.com%2Fblog%2Findex.htm' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/6412021/111750485366308302/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=6412021&amp;postID=111750485366308302' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6412021/posts/default/111750485366308302'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6412021/posts/default/111750485366308302'/><link rel='alternate' type='text/html' href='http://www.run-time-systems.com/blog/2005/05/delphi-and-compact-framework-real-soon.htm' title='Delphi and the Compact Framework, Real Soon Now?'/><author><name>Ryan</name><uri>http://www.blogger.com/profile/01806420279298335207</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='09055343590157600853'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6412021.post-111731725362372264</id><published>2005-05-28T18:44:00.000-03:00</published><updated>2005-05-28T18:54:13.626-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Delphi'/><category scheme='http://www.blogger.com/atom/ns#' term='Borland'/><title type='text'>Delphi and CaliberRM, getting an error</title><content type='html'>I was delighted to see the &lt;a href="http://bdn.borland.com/article/0,1410,33077,00.html"&gt;CaliberRM 2005 plugin&lt;/a&gt; being released (preview at least). However I had already downloaded and fiddled with the 5.1 SDK so I was left with a wonderful &lt;strong&gt;Unable to load Java VM specified in C:\Program Files\Borland\CaliberRM SDK 7.0\lib\CaliberRMSDK70.ini&lt;/strong&gt; error message each time I tried to install the package. Pretty much the same thing I got when I wanted to try CaliberRM after having installed Delphi 2005. In my prior attempt I simply gave up. I continued on with my review of CaliberRM and must say that I really do like it (or anything like it). I tried it on a small project and the additional process and breakdown resulted in some extremely clear requirements being pumped out the other end. So, even within integration into the Delphi IDE I am impressed with the tool as a whole.&lt;br /&gt;&lt;br /&gt;I figured the updated plugin would fix my problems... all it did was change the error message from the 5.1 SDK message to the 7.0 SDK message :(. Since my eval period is coming to a close I really did want to see it working in the environment. I tried reinstalling the SDK (well, a repair install on Caliber anyway) but that didn't resolve the problem. Since the SDK seems to be merged with the StarTeam SDK I figured I would start searching on that for some tips... &lt;a href="http://support.borland.com/entry.jspa?externalID=16921&amp;categoryID=64"&gt;StarTeam Support Entry&lt;/a&gt; solves the problem very nicely.&lt;br /&gt;&lt;br /&gt;Now I can finally see if the integration is of any benefit :).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6412021-111731725362372264?l=www.run-time-systems.com%2Fblog%2Findex.htm' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/6412021/111731725362372264/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=6412021&amp;postID=111731725362372264' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6412021/posts/default/111731725362372264'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6412021/posts/default/111731725362372264'/><link rel='alternate' type='text/html' href='http://www.run-time-systems.com/blog/2005/05/delphi-and-caliberrm-getting-error.htm' title='Delphi and CaliberRM, getting an error'/><author><name>Ryan</name><uri>http://www.blogger.com/profile/01806420279298335207</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='09055343590157600853'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6412021.post-111633216540229333</id><published>2005-05-17T09:10:00.000-03:00</published><updated>2005-05-17T09:34:01.093-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Delphi'/><title type='text'>Free Pascal 2.0 Released</title><content type='html'>For those interested in moderately compatible alternatives to &lt;a href="http://www.borland.com/delphi/"&gt;Delphi&lt;/a&gt; you should definitely check out &lt;a href="http://www.freepascal.org/"&gt;FreePascal 2.0 release&lt;/a&gt;. The compiler core has been rewritten and the beta versions I have played with seemed to work quite well. I was hoping to see Itanium support though :(.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6412021-111633216540229333?l=www.run-time-systems.com%2Fblog%2Findex.htm' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.freepascal.org/' title='Free Pascal 2.0 Released'/><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/6412021/111633216540229333/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=6412021&amp;postID=111633216540229333' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6412021/posts/default/111633216540229333'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6412021/posts/default/111633216540229333'/><link rel='alternate' type='text/html' href='http://www.run-time-systems.com/blog/2005/05/free-pascal-20-released.htm' title='Free Pascal 2.0 Released'/><author><name>Ryan</name><uri>http://www.blogger.com/profile/01806420279298335207</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='09055343590157600853'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6412021.post-111524374547494849</id><published>2005-05-04T18:51:00.000-03:00</published><updated>2005-05-04T21:05:30.180-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Delphi'/><title type='text'>Cyclomatic Complexity for Delphi</title><content type='html'>I am releasing an internal tool for determining Cyclomatic Complexity of Delphi (or Pascal) source code. Cyclomatic complexity is a great way to determine the level of unit testing required on different methods in a class or module. It is an integrated tool in the Delphi IDE and supports Delphi 6, 7, and 2005. The wizard integration is something new so there might be a glitch or two - let me know.&lt;br /&gt;&lt;br /&gt;Anyway, you can find out more on the &lt;a href="http://www.run-time-systems.com/ccp/"&gt;CCP page&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Update: There was a bug when exiting Delphi if you had any ccp messages in the message view. An updated 0.9.1.2006 build and source are on the site now for anyone that downloaded the software already. You can confirm the version by right clicking on the bpl and choosing properties.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6412021-111524374547494849?l=www.run-time-systems.com%2Fblog%2Findex.htm' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.run-time-systems.com/ccp/' title='Cyclomatic Complexity for Delphi'/><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/6412021/111524374547494849/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=6412021&amp;postID=111524374547494849' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6412021/posts/default/111524374547494849'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6412021/posts/default/111524374547494849'/><link rel='alternate' type='text/html' href='http://www.run-time-systems.com/blog/2005/05/cyclomatic-complexity-for-delphi.htm' title='Cyclomatic Complexity for Delphi'/><author><name>Ryan</name><uri>http://www.blogger.com/profile/01806420279298335207</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='09055343590157600853'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6412021.post-111263921706712156</id><published>2005-04-04T15:19:00.000-03:00</published><updated>2005-04-04T15:28:59.676-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web'/><title type='text'>Finally started updating the site</title><content type='html'>&lt;a href="/index.htm"&gt;Main site&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I have really ignored my company site for the last five years. It was time for a logo change so I took the opportunity to clean up the site a bit. No content changes were made and all the existing (old) downloads are still available. I am going to make a concerted effort to get updated examples, programs, and libraries up on the site with some supporting documentation. I have been keeping everything up to date and using most of the stuff day to day but simply have not had the time to get around to it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6412021-111263921706712156?l=www.run-time-systems.com%2Fblog%2Findex.htm' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.run-time-systems.com' title='Finally started updating the site'/><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/6412021/111263921706712156/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=6412021&amp;postID=111263921706712156' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6412021/posts/default/111263921706712156'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6412021/posts/default/111263921706712156'/><link rel='alternate' type='text/html' href='http://www.run-time-systems.com/blog/2005/04/finally-started-updating-site.htm' title='Finally started updating the site'/><author><name>Ryan</name><uri>http://www.blogger.com/profile/01806420279298335207</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='09055343590157600853'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6412021.post-111247388780689118</id><published>2005-04-02T16:20:00.000-04:00</published><updated>2005-04-02T16:31:27.810-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Delphi'/><title type='text'>Quickly jump to Quality Central Items with MSN Desktop Search</title><content type='html'>In your MSN Desktop Search type the following into the search bar (without the quotes) "&lt;code&gt;@qc,http://qc.borland.com/wc/qcmain.aspx?d=$w&lt;/code&gt;". You will get a message that the shortcut has been added. From that point on you can simply type "&lt;code&gt;qc ####&lt;/code&gt;" into your search bar and it will faithfully open up a new browser window to that QC report.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6412021-111247388780689118?l=www.run-time-systems.com%2Fblog%2Findex.htm' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/6412021/111247388780689118/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=6412021&amp;postID=111247388780689118' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6412021/posts/default/111247388780689118'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6412021/posts/default/111247388780689118'/><link rel='alternate' type='text/html' href='http://www.run-time-systems.com/blog/2005/04/quickly-jump-to-quality-central-items.htm' title='Quickly jump to Quality Central Items with MSN Desktop Search'/><author><name>Ryan</name><uri>http://www.blogger.com/profile/01806420279298335207</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='09055343590157600853'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6412021.post-111238764772806148</id><published>2005-04-01T16:33:00.000-04:00</published><updated>2005-04-01T16:36:18.013-04:00</updated><title type='text'>A Good Chuckle</title><content type='html'>:^) &lt;a href="http://www.theserverside.net/news/thread.tss?thread_id=33023"&gt;TheServerSide&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6412021-111238764772806148?l=www.run-time-systems.com%2Fblog%2Findex.htm' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.theserverside.net/news/thread.tss?thread_id=33023' title='A Good Chuckle'/><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/6412021/111238764772806148/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=6412021&amp;postID=111238764772806148' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6412021/posts/default/111238764772806148'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6412021/posts/default/111238764772806148'/><link rel='alternate' type='text/html' href='http://www.run-time-systems.com/blog/2005/04/good-chuckle.htm' title='A Good Chuckle'/><author><name>Ryan</name><uri>http://www.blogger.com/profile/01806420279298335207</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='09055343590157600853'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6412021.post-111204205557091795</id><published>2005-03-28T16:30:00.000-04:00</published><updated>2005-03-28T16:34:15.573-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Delphi'/><category scheme='http://www.blogger.com/atom/ns#' term='Borland'/><title type='text'>Delphi2005 and tlibimp</title><content type='html'>It appears the new type library import wizard is broken (or inconsistent). If you want to ensure you don't get component wrappers generated for a particular type library you should open up a console (dos box) and execute the following command "..\bin\tlibimp.exe -Ha- -Hr- -Hs- msxml4.dll" after having changed in the "\bds\3.0\imports\" folder. Change the library name and path(s) as required for your case.&lt;br /&gt;&lt;br /&gt;As usual, you can edit the uses clause to remove the extra units that are automatically inserted (normally leaving only Windows and ActiveX are sufficient). This can be a benefit depending on your intended use as the compiled binary will have less dependencies and you can have a significant benefit on your binaries size.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6412021-111204205557091795?l=www.run-time-systems.com%2Fblog%2Findex.htm' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/6412021/111204205557091795/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=6412021&amp;postID=111204205557091795' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6412021/posts/default/111204205557091795'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6412021/posts/default/111204205557091795'/><link rel='alternate' type='text/html' href='http://www.run-time-systems.com/blog/2005/03/delphi2005-and-tlibimp.htm' title='Delphi2005 and tlibimp'/><author><name>Ryan</name><uri>http://www.blogger.com/profile/01806420279298335207</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='09055343590157600853'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6412021.post-111124722918592940</id><published>2005-03-19T11:12:00.000-04:00</published><updated>2005-03-19T11:48:34.086-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Delphi'/><category scheme='http://www.blogger.com/atom/ns#' term='Mobile'/><category scheme='http://www.blogger.com/atom/ns#' term='Borland'/><title type='text'>Delphi.NET and the Compact Framework</title><content type='html'>&lt;a href="http://blogs.borland.com/dcc/"&gt;Danny&lt;/a&gt; has provided an update on &lt;a href="http://blogs.borland.com/dcc/archive/2005/03/18/3214.aspx"&gt;Delphi support of the Compact Framework&lt;/a&gt;. It all sounds very promising &lt;strong&gt;but...&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;For myself, and I would guess many others, we are being faced with a new challenge where PDA/Phone devices are much more prevalent to our solutions. In the past I have been very blessed by the hard work of the &lt;a href="http://www.borland.com"&gt;Delphi&lt;/a&gt; team to provide not only a top of the line visual tool for both client and server components but a complete tool that can be used for absolutely every need no matter how low level (only missing out on driver development but thank the gods I haven't had to do that). I enjoyed being able to easily contrast Delphi against VB, C++, and Java. If you wanted fast development, good maintainability, and robust software you choose Delphi. When it came to micro devices, in days gone past, it was easy to explain why alternate tools were required for Windows and Palm devices however with the broad availability of &lt;a href="http://java.sun.com/j2me/download.html"&gt;J2ME&lt;/a&gt; and &lt;a href="http://msdn.microsoft.com/smartclient/understanding/netcf/"&gt;.NET CF&lt;/a&gt; it is becoming much more difficult to continue to &lt;strong&gt;suggest&lt;/strong&gt; that two skillsets are required to develop and deploy against these devices.&lt;br /&gt;&lt;br /&gt;Without even marginal support for the Compact Framework Borland has, not intentionally, reduced Delphi to the position VB once owned for Win32 development. While VB has been available on micro devices for some time prior to CF.NET it was really a weak contender with extremely limited capabilities to actually &lt;strong&gt;use&lt;/strong&gt; the platform. Using and supporting CF.NET gives Borland a clear chance to provide a &lt;strong&gt;viable&lt;/strong&gt; alternative for long standing Delphi fans that are not greatly interested in a full scale switch over to C# or Java. If someone wants to suggest we don't have to consider the benefits of having only a single language their developers can support then they simply don't understand the cost savings and risk mitigation that are achieved when &lt;strong&gt;everyone&lt;/strong&gt; in a dev shop can be tasked with code changes. The days when it was acceptable to keep a couple resources around for the C++/Java bits done on compact devices are gone.&lt;br /&gt;&lt;br /&gt;What I am looking for from Borland is the ability to create and deploy applications to these devices. What I am &lt;strong&gt;not looking for&lt;/strong&gt; are things like VCL.NET, advanced debugging support, and designer support. I would certainly take those features if they were offered but they are definitely &lt;strong&gt;not high on my list of needs&lt;/strong&gt;. Having done development for Palm, Embedded VB, Embedded C++, and some recent CF.NET work I know that the most important capability I value is quite simply the ability to &lt;strong&gt;make it work on the platform&lt;/strong&gt;.&lt;br /&gt;&lt;br /&gt;Application servers, web clients, and full rich clients are still my bread and butter. Micro devices, while increasing in importance, still remains the candy to be offered as value adds to those primary services. The only thing I &lt;strong&gt;need right now&lt;/strong&gt; is being able to target the CF.NET platform in if the methods are primitive.&lt;br /&gt;&lt;br /&gt;So, if you want Borland to let you in the playground, rather than watching from outside the fence then head over to &lt;a href="http://blogs.borland.com/dcc/archive/2005/03/18/3214.aspx"&gt;Danny's most recent blog on CF&lt;/a&gt; and let him know the things that you require &lt;strong&gt;most&lt;/strong&gt; and that we need it &lt;strong&gt;sooner&lt;/strong&gt; rather than later.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6412021-111124722918592940?l=www.run-time-systems.com%2Fblog%2Findex.htm' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/6412021/111124722918592940/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=6412021&amp;postID=111124722918592940' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6412021/posts/default/111124722918592940'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6412021/posts/default/111124722918592940'/><link rel='alternate' type='text/html' href='http://www.run-time-systems.com/blog/2005/03/delphinet-and-compact-framework.htm' title='Delphi.NET and the Compact Framework'/><author><name>Ryan</name><uri>http://www.blogger.com/profile/01806420279298335207</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='09055343590157600853'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6412021.post-111116432602876017</id><published>2005-03-18T12:37:00.000-04:00</published><updated>2005-03-18T12:45:26.103-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web'/><title type='text'>Google Maps and Google Code</title><content type='html'>&lt;a href="http://www.google.com"&gt;Google&lt;/a&gt; has recently announced and released two very cool new offerings. &lt;a href="http://maps.google.com"&gt;Google Maps&lt;/a&gt; has got to be one of the coolest web/script only applications that offers that particular type of functionality. It is incredibly fast and I definitely enjoyed having my region there in all it's glory. You definitely have to check it out. It is still just a beta but I really hope to see the ability to link to it for directions (which is pulls off flawlessly) and perhaps some developer API's. I know from past experience with &lt;a href="http://www.esri.com"&gt;ESRI&lt;/a&gt; this web based interface seems like a real charm.&lt;br /&gt;&lt;br /&gt;Along with the maps they have yet another site, &lt;a href="http://code.google.com"&gt;Google Code&lt;/a&gt; that has some decent code and API documentation. Since the old &lt;a href="http://www.blogger.com"&gt;BLogger&lt;/a&gt; API appears to be malfunctioning a bit I was glad to see the &lt;a href="http://code.blogspot.com/archives/atom-docs.html"&gt;Atom API documentation&lt;/a&gt; listed there. I need to update my blogging tool to use it so I can get rid of those pesky error messages.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6412021-111116432602876017?l=www.run-time-systems.com%2Fblog%2Findex.htm' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/6412021/111116432602876017/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=6412021&amp;postID=111116432602876017' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6412021/posts/default/111116432602876017'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6412021/posts/default/111116432602876017'/><link rel='alternate' type='text/html' href='http://www.run-time-systems.com/blog/2005/03/google-maps-and-google-code.htm' title='Google Maps and Google Code'/><author><name>Ryan</name><uri>http://www.blogger.com/profile/01806420279298335207</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='09055343590157600853'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6412021.post-111057087815692344</id><published>2005-03-11T17:00:00.000-04:00</published><updated>2005-03-11T16:28:10.273-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Delphi'/><category scheme='http://www.blogger.com/atom/ns#' term='Borland'/><title type='text'>Delphi, Uses, IFilter, and MSN Desktop Search</title><content type='html'>It has been ages since I have posted anything and I have not gotten around to posting on some of the items I had in the queue but that will happen eventually.&lt;br /&gt;&lt;br /&gt;I am sure many people are aware that the desktop search choices are coming out fast and furious. I have about 500K files/items on my local computer and I am definitely in the habit of misplacing a particular file often enough.&lt;br /&gt;&lt;br /&gt;I hadn't bothered with the first &lt;a href="http://desktop.google.com/"&gt;Google Desktop Search (GDS)&lt;/a&gt; as it would not index content outside of a pretty refined set of file types. The recently released version corrects that problem and is a pretty small download. It does a much better job in what it will index and is extensible with some programming (using &lt;a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/automat/htm/chap5_78v9.asp"&gt;IDispatch&lt;/a&gt; based interfaces, tsk tsk). I am sure it will be a decent tool but I don't really have a high degree of trust in letting it into my &lt;a href="http://office.microsoft.com/en-ca/FX010857931033.aspx"&gt;Outlook&lt;/a&gt; data just yet. I have it installed on a &lt;a href="http://www.microsoft.com/windows/virtualpc/default.mspx"&gt;Virtual PC&lt;/a&gt; to give it a test and play around with it. Since I use &lt;a href="http://www.google.com"&gt;google&lt;/a&gt; as my mainstay web search it isn't a stretch to doing it on my desktop as well.&lt;br /&gt;&lt;br /&gt;I have had the &lt;a href="http://toolbar.msn.com"&gt;MSN Desktop Search&lt;/a&gt; beta installed since it was released. I simply couldn't pass on an opportunity to quickly search through my Outlook e-mail. The packrat in me has led me to having an archive policy set to six months and over the years I am up around 3GB of archived e-mail. Searching into those archives in a reasonable fashion is a dream come true. &lt;strong&gt;MSN Desktop Search does it both quickly and reliably.&lt;/strong&gt; Searches against Outlook are incredibly fast and it hasn't let me down on a single search yet.&lt;br /&gt;&lt;br /&gt;A secondary, although more often used, search need is grepping through the volumes of the source code (predominately &lt;a href="http://www.borland.com/delphi"&gt;Delphi&lt;/a&gt;). Typically I have stuck with the dos based grep and/or the Delphi editor supplied version. This works for many cases but the search speed certainly doesn't compare to what you find from either of the two search engines I have tried thus far. For code and html documentation libaries you simply can't lose by installing one of these search engines.&lt;br /&gt;&lt;br /&gt;But... I want more. The MSN Desktop Search takes advantage of the IFilter interface that was designed for other Microsoft Search technologies such as Index Server and SharePoint (I am not convinced that the new search is anything other then a new face on an already pre-existing and robust technology). Using the &lt;a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/indexsrv/html/ixrefint_9sfm.asp"&gt;IFilter&lt;/a&gt; interface permits you to use any existing filters that may exist such as the PDF filter that is linked on the beta download page. But, more importantly, it allows the addition of new filters that you can develop yourself for custom formats or specialized needs.&lt;br /&gt;&lt;br /&gt;This was my first step into filter development so I started with something simple that would be of potential benefit to myself. I have many shared modules between many projects so a change in a particular module can have far reaching impacts. These projects can be old mothballed projects, up and coming work, and large efforts with many external dependencies that I need to watch for. Before, or more likely while, making some changes it is definitely an asset to initiate a light impact analysis to see any dependencies that should be watched for. So, to this end I figured a &lt;strong&gt;uses&lt;/strong&gt; filter extension would be just up my alley. Since it involves parsing the Delphi source it also permits extending the search patterns to include searching for where classes and functions are used versus defined. Part of this is about just having some fun doing it versus building up an impact tool... good for helping with first guess estimates.&lt;br /&gt;&lt;br /&gt;The uses filter parses Delphi source files, establishing the list of used units. Additional custom properties are added with the list as well as setting the standard &lt;strong&gt;keywords&lt;/strong&gt; property with that list. This means I can execute a search such as "&lt;strong&gt;keywords:unit_name&lt;/strong&gt;" and I am then presented with a list of Delphi source files that use that particular unit. This helps keep the search results short and usable since the words are not scanned in every e-mail, document, and text file floating around your local machine.&lt;br /&gt;&lt;br /&gt;The picture belows shows a search that shows modules using two units at the same time. You will note that the named units are in the keywords properties (this also means we don't find units where the unit may have been historically used and may have been commented out, etc).&lt;br /&gt;&lt;img src="http://www.run-time-systems.com/blog/msn_search_delphi_keywords.png"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Delphi, of course, is the tool I used. After stumbling around for a while I ended up building up a filter interface file with the relevant declarations for constants, types, and interfaces. I then created a new ActiveX project and created the basic framework code with support for the necessary interfaces and stub implementations. Be an appropriately lazy developer, I decided to implement the filter as an extension/aggregate of the stock text filter the desktop search was using and simply tag my extra bits on afterwards. This means I wasn't losing any basic text search capabilities either. To this end, I was able to get the filter up and running pretty quickly with the help of the filter test tools from the MS SDK. Using Martin Waldenburg's excellent mwPasLex source code made accurately extracting the uses from the source files a breeze. After setting a few registry entries (see the MSDN IFilter for details) I was up and running with a working copy pretty quickly aside from the long re-index times required for good testing. &lt;em&gt;The moral of that story is don't test on a machine with 500K files; thank heavens for virtual PC.&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I am still testing and tweaking the code otherwise I would make it available on the site. If you happen to be interested in having the code (for any purpose) just leave a comment with a suitably spam-proofed e-mail and I will forward along the current version. I want to figure out how I can get the desktop search to respect my new properties for both display and searching. I didn't want to use the keywords property but all my initial attempts to get the search engine to use my "uses:" prefix simply failed. If someone knows how that works (not on SharePoint or Index Server) I would be quite interested since I think is where the real power resides.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6412021-111057087815692344?l=www.run-time-systems.com%2Fblog%2Findex.htm' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/6412021/111057087815692344/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=6412021&amp;postID=111057087815692344' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6412021/posts/default/111057087815692344'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6412021/posts/default/111057087815692344'/><link rel='alternate' type='text/html' href='http://www.run-time-systems.com/blog/2005/03/delphi-uses-ifilter-and-msn-desktop.htm' title='Delphi, Uses, IFilter, and MSN Desktop Search'/><author><name>Ryan</name><uri>http://www.blogger.com/profile/01806420279298335207</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='09055343590157600853'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6412021.post-110380633790466762</id><published>2004-12-23T08:52:00.000-04:00</published><updated>2004-12-23T08:52:17.903-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Delphi'/><category scheme='http://www.blogger.com/atom/ns#' term='Borland'/><title type='text'>Delphi 8 Update #3 - Fixes for .NET 1.1 SP</title><content type='html'>Well, it has definitely been too long in coming although I can understand they had other things to keep them busy ;-).&lt;br /&gt;&lt;br /&gt;I am downloading it now. If you try to download I suggest you use the list files and then download the file contained in the zip. My attempts to download it through the download link just left me in a cicle of re-agreeing to the licensing agreement :-(.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://bdn.borland.com/article/0,1410,32873,00.html"&gt;Here is the link&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6412021-110380633790466762?l=www.run-time-systems.com%2Fblog%2Findex.htm' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/6412021/110380633790466762/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=6412021&amp;postID=110380633790466762' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6412021/posts/default/110380633790466762'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6412021/posts/default/110380633790466762'/><link rel='alternate' type='text/html' href='http://www.run-time-systems.com/blog/2004/12/delphi-8-update-3-fixes-for-net-11-sp.htm' title='Delphi 8 Update #3 - Fixes for .NET 1.1 SP'/><author><name>Ryan</name><uri>http://www.blogger.com/profile/01806420279298335207</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='09055343590157600853'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6412021.post-110372123044549603</id><published>2004-12-22T09:13:00.000-04:00</published><updated>2004-12-22T09:16:58.203-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web'/><title type='text'>Reality Check for FireFox</title><content type='html'>&lt;a href="http://blogs.msdn.com/ptorr/archive/2004/12/20/327511.aspx"&gt;Peter Torr'sarticle&lt;/a&gt; on his initial reaction to installing and using FireFox is certainly interesting and reminds you just how easily you forget some basic tenants of installing software these days. Microsoft has had years to tweak the useability of the user's interaction with the browser and it is nice to be reminded about the attention to detail. I am sure we will see some of the concerns he raised get addressed in future releases of FireFox.&lt;br /&gt;&lt;br /&gt;For myself,my initial foray into FireFox was quite pleasant but I am still using IE as my stock browser of choice (without any particular reason). In all honesty, my hope is that FireFox will drive IE to become a better and more standards compliant browser rather than choosing it as my browser of choice.&lt;br /&gt;&lt;br /&gt;It is great to have choices again ;-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6412021-110372123044549603?l=www.run-time-systems.com%2Fblog%2Findex.htm' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/6412021/110372123044549603/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=6412021&amp;postID=110372123044549603' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6412021/posts/default/110372123044549603'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6412021/posts/default/110372123044549603'/><link rel='alternate' type='text/html' href='http://www.run-time-systems.com/blog/2004/12/reality-check-for-firefox.htm' title='Reality Check for FireFox'/><author><name>Ryan</name><uri>http://www.blogger.com/profile/01806420279298335207</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='09055343590157600853'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6412021.post-110226819823405339</id><published>2004-12-05T13:36:00.000-04:00</published><updated>2004-12-05T13:36:38.233-04:00</updated><title type='text'>CMD.EXE keyboard short-cuts (from the past)</title><content type='html'> I accidentally stumbled across a shortcut to present the list of commands in your command line history. Most likely from hitting the key while I thought the focus was in another window.&lt;br /&gt;&lt;br /&gt;It took a bit of hunting but I was able to find out a few keys that may be of some help (and bring back some good old DOS memories ;-)).&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;F7&lt;/strong&gt;&lt;br /&gt;pops up a dialog listing your prior commands and you can choose one. Note: selecting the entry and hitting enter actually &lt;strong&gt;executes&lt;/strong&gt; the command. If you want to edit it before running it then use the &lt;strong&gt;right arrow&lt;/strong&gt; to select the command.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Alt+F7&lt;/strong&gt;&lt;br /&gt;Will clear your command history. Now that is really worthwhile.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;F9&lt;/strong&gt;&lt;br /&gt;Will present a dialog for you to enter a command number to select and execute. If you can remember the order of your command history you are a better cmd user then I.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6412021-110226819823405339?l=www.run-time-systems.com%2Fblog%2Findex.htm' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/6412021/110226819823405339/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=6412021&amp;postID=110226819823405339' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6412021/posts/default/110226819823405339'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6412021/posts/default/110226819823405339'/><link rel='alternate' type='text/html' href='http://www.run-time-systems.com/blog/2004/12/cmdexe-keyboard-short-cuts-from-past.htm' title='CMD.EXE keyboard short-cuts (from the past)'/><author><name>Ryan</name><uri>http://www.blogger.com/profile/01806420279298335207</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='09055343590157600853'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6412021.post-109907200098989263</id><published>2004-10-29T14:46:00.000-03:00</published><updated>2004-10-29T14:46:40.990-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Borland'/><title type='text'>A Great Support call between Borland and Microsoft</title><content type='html'>&lt;a href="http://blogs.borland.com/abauer/archive/2004/10/29/1698.aspx"&gt;Allen's blog entry&lt;/a&gt; should ensure you smile at least once today. I am sure we have all then there to one degree or another. Thanks for the post Allen.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6412021-109907200098989263?l=www.run-time-systems.com%2Fblog%2Findex.htm' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/6412021/109907200098989263/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=6412021&amp;postID=109907200098989263' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6412021/posts/default/109907200098989263'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6412021/posts/default/109907200098989263'/><link rel='alternate' type='text/html' href='http://www.run-time-systems.com/blog/2004/10/great-support-call-between-borland-and.htm' title='A Great Support call between Borland and Microsoft'/><author><name>Ryan</name><uri>http://www.blogger.com/profile/01806420279298335207</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='09055343590157600853'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6412021.post-109617465254229151</id><published>2004-09-26T01:57:00.000-03:00</published><updated>2004-09-26T01:58:44.906-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Mobile'/><title type='text'>Byte Alignment Bites</title><content type='html'>We are so spoiled when developing for the Windows platform. It is polite enough to allow us to access mis-aligned data (data which is not aligned on machine word boundaries). I have been tinkering around with some ActiveSync code on a Compaq Aero and just finished getting a fresh reminder that non-aligned data can and does result in worse than sub-optimal performance.&lt;br /&gt;&lt;br /&gt;In particular, the data exchange occurs within the GetPacket and SetPacket methods of the IReplObjHandler interface. This interface is implemented on both the desktop and the device. I have written the desktop bits in Delphi and the device bits are in Embedded Visual C++ 3.0. Normal thought processes suggest minizing the volume of data passing over the link (especially when it is serial 19200-56000). So, as is typical,I immediately packed the structures for all text content. Basically it is just a fixed header with a variable portion followed by one or more variable length property entities. This format permits me to send just about anything and is relatively robust except for the overhead associated with the property names travelling in each packet exchange. But that is getting a bit off topic (as I am permitted to at this time of night).&lt;br /&gt;&lt;br /&gt;All was fine with marshalling the data on the desktop (where you can debug, have a good tool, etc.) but the ActiveSync connection would literally drop and there was nothing logged as to the failure other than a NAK (obscure at best). With some heavy injection of file based debug statements in the code in question I found that the system simply stopped when trying to access the second property header. For whatever reason as soon as I saw what was happening it just sort of turned on a light bulb for me (gotta love that on those rare instances). So, now the marshalling code does four byte alignment on strings that it passes along. It was quite easy since the data lengths were already being used so I was pretty lucky in terms of length of time to finding the bug and fixing it. Now I can get on with the rest of the tinkering.&lt;br /&gt;&lt;br /&gt;So, the lesson, remember that all platforms are not created equal and you still need to know something about what is underneath. Happy coding.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6412021-109617465254229151?l=www.run-time-systems.com%2Fblog%2Findex.htm' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/6412021/109617465254229151/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=6412021&amp;postID=109617465254229151' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6412021/posts/default/109617465254229151'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6412021/posts/default/109617465254229151'/><link rel='alternate' type='text/html' href='http://www.run-time-systems.com/blog/2004/09/byte-alignment-bites.htm' title='Byte Alignment Bites'/><author><name>Ryan</name><uri>http://www.blogger.com/profile/01806420279298335207</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='09055343590157600853'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6412021.post-109603879386567019</id><published>2004-09-24T12:13:00.000-03:00</published><updated>2004-09-24T12:17:54.720-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Mobile'/><title type='text'>Some more links for ActiveSync</title><content type='html'>Well, I am back at poking about some Windows ActiveSync code again. The hunt for &lt;em&gt;real-life-problem-solutions&lt;/em&gt; relating to ActiveSync are pretty hard to come by for some reason so anyone looking atdoing it really is starting from scratch (or nearly anyway). I have located another set of pages outlining in a very understandableformat,some insights on handing the ObjectNotify device function. Here is the &lt;a href="http://daycounter.com/LabBook/ActiveSync-Provider-Development-FAQ.phtml"&gt;relevant page&lt;/a&gt; and a link to the &lt;a href="http://www.daycounter.com/SiteMap.phtml"&gt;site map&lt;/a&gt; which has some more worthwhile information.&lt;br /&gt;&lt;br /&gt;Here is another &lt;a href="http://www.eldos.org/docs/activesync_faq.html"&gt;link&lt;/a&gt; but it is a bit more thin.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6412021-109603879386567019?l=www.run-time-systems.com%2Fblog%2Findex.htm' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/6412021/109603879386567019/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=6412021&amp;postID=109603879386567019' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6412021/posts/default/109603879386567019'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6412021/posts/default/109603879386567019'/><link rel='alternate' type='text/html' href='http://www.run-time-systems.com/blog/2004/09/some-more-links-for-activesync.htm' title='Some more links for ActiveSync'/><author><name>Ryan</name><uri>http://www.blogger.com/profile/01806420279298335207</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='09055343590157600853'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6412021.post-109576912820519753</id><published>2004-09-21T09:18:00.000-03:00</published><updated>2004-09-21T09:18:48.206-03:00</updated><title type='text'>Sun, Microsoft, and alliance in the same sentence</title><content type='html'>&lt;a href="http://news.com.com/Sun%27s+fighting+chance/2010-1010_3-5374570.html?part=rss&amp;amp;tag=5374570&amp;amp;subj=news.1010.20"&gt;CNET news item&lt;/a&gt; successfully put all three together in a single sentence without including &lt;em&gt;breach of contract&lt;/em&gt;. Who would have thought that could be a reasonable idea just a couple of years ago?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6412021-109576912820519753?l=www.run-time-systems.com%2Fblog%2Findex.htm' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/6412021/109576912820519753/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=6412021&amp;postID=109576912820519753' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6412021/posts/default/109576912820519753'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6412021/posts/default/109576912820519753'/><link rel='alternate' type='text/html' href='http://www.run-time-systems.com/blog/2004/09/sun-microsoft-and-alliance-in-same.htm' title='Sun, Microsoft, and alliance in the same sentence'/><author><name>Ryan</name><uri>http://www.blogger.com/profile/01806420279298335207</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='09055343590157600853'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6412021.post-109516293990314191</id><published>2004-09-14T08:55:00.000-03:00</published><updated>2004-09-14T08:56:20.850-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Delphi'/><category scheme='http://www.blogger.com/atom/ns#' term='Borland'/><title type='text'>DiamondBack really moves some markers</title><content type='html'>The guys at &lt;a href="http://www.borland.com"&gt;Borland&lt;/a&gt; seem to have pulled out all the stops and implemented some of my most sought after capabilities. Specifically we have &lt;a href="http://homepages.borland.com/dthorpe/blog/delphi/2004_08_01_archive.php#109211211041479238"&gt;&lt;strong&gt;for ... in&lt;/strong&gt;&lt;/a&gt; syntax (&lt;a href="http://qc.borland.com/wc/wc.exe/details?ReportID=6922"&gt;qc #6922&lt;/a&gt;), Multi-unit namespaces (i.e. real namespace support as we expect it) [&lt;a href="http://blogs.borland.com/abauer/archive/2004/04/21/335.aspx"&gt;Allen&lt;/a&gt;], and finally we will have function inlining support as well.&lt;br /&gt;&lt;br /&gt;  It does appear that Generics and.NET 2.0 support will be a post-release concern. Hopefully when the release comes out we will all remember that lots of positive movement has been achieved before we start complaining out the "&lt;em&gt;other&lt;/em&gt;" new stuff we all wanted.&lt;br /&gt;&lt;br /&gt;Thanks to &lt;a href="http://peakxml.com/archive/2004/09/13/556.aspx"&gt;Robert Love&lt;/a&gt; for blogging on these new features from BorCon.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6412021-109516293990314191?l=www.run-time-systems.com%2Fblog%2Findex.htm' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/6412021/109516293990314191/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=6412021&amp;postID=109516293990314191' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6412021/posts/default/109516293990314191'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6412021/posts/default/109516293990314191'/><link rel='alternate' type='text/html' href='http://www.run-time-systems.com/blog/2004/09/diamondback-really-moves-some-markers.htm' title='DiamondBack really moves some markers'/><author><name>Ryan</name><uri>http://www.blogger.com/profile/01806420279298335207</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='09055343590157600853'/></author><thr:total>0</thr:total></entry></feed>
