<?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"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Gurock Software Blog &#187; DelphiFeeds.com</title>
	<atom:link href="http://blog.gurock.com/postings/category/delphi/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.gurock.com</link>
	<description>Our products, programming &#38; business.</description>
	<lastBuildDate>Mon, 08 Feb 2010 14:51:41 +0000</lastBuildDate>
	
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Announcing TestRail 1.0</title>
		<link>http://blog.gurock.com/postings/announcing-testrail-1-0/1117/</link>
		<comments>http://blog.gurock.com/postings/announcing-testrail-1-0/1117/#comments</comments>
		<pubDate>Mon, 25 Jan 2010 13:42:44 +0000</pubDate>
		<dc:creator>Dennis Gurock</dc:creator>
				<category><![CDATA[DelphiFeeds.com]]></category>
		<category><![CDATA[Gurock Software]]></category>
		<category><![CDATA[TestRail]]></category>

		<guid isPermaLink="false">http://blog.gurock.com/?p=1117</guid>
		<description><![CDATA[We are really excited to announce the release of our new test case management tool TestRail. After working on TestRail for more than 18 months and running an extensive beta program, it&#8217;s great to finally release the product and get it out the door.
We also want to thank all testers who participated in TestRail&#8217;s beta [...]]]></description>
			<content:encoded><![CDATA[<p>We are really excited to announce the release of our new <a href="http://www.gurock.com/testrail/">test case management</a> tool TestRail. After working on <a href="http://www.gurock.com/testrail/">TestRail</a> for more than 18 months and running an extensive beta program, it&#8217;s great to finally release the product and get it out the door.</p>
<p>We also want to thank all testers who participated in TestRail&#8217;s beta test. Without your feature suggestions, ideas and bug reports, the 1.0 certainly wouldn&#8217;t be what it is today. We&#8217;ve got more than 350 beta signups during the beta and are really grateful for all the feedback and emails we&#8217;ve received. Thank you! If you participated in the beta test, please check your email inbox for a small TestRail launch present.</p>
<div class="framed-image" style="padding: 10px;">
<a href="http://www.gurock.com/testrail/tour/"><img src="http://blog.gurock.com/wp-content/uploads/2010/01/project.png" alt="" width="280" height="230" /></a><a  href="http://www.gurock.com/testrail/tour/"><img src="http://blog.gurock.com/wp-content/uploads/2010/01/run.png" alt="" width="280" height="230" style="margin-left: 10px" /></a>
</div>
<p>When we released the first beta versions of TestRail last August, we didn&#8217;t plan for such a long beta phase. We intended to release a few beta versions and release it in November 2009 at the latest. Based on the feedback we received during the beta, however, it became apparent that TestRail would benefit from a few critical enhancement that we wanted to add before the release (such as <a href="http://blog.gurock.com/postings/announcing-testrail-beta-1-0-2/745/">test plans and configurations</a>, <a href="http://blog.gurock.com/postings/testrail-beta-1-0-3-has-been-released/1031/">nested sections including drag&#038;drop</a>, <a href="http://blog.gurock.com/postings/testrail-beta-1-0-4-released/1087/">print support and importing/exporting</a>).</p>
<p>The feedback during the beta made us confident that a modern and fresh approach to test management is needed and it was great to see that it was so well received by beta testers. There are still a lot of things that didn&#8217;t make it into the 1.0 that we want to see in the future of course, but I believe we&#8217;ve created a strong foundation for future enhancements and improvements. </p>
<p>We&#8217;ve updated <a href="http://www.gurock.com/testrail/">TestRail&#8217;s website</a> with new screenshots and a product tour as well as pricing details and licensing information. To celebrate the release of TestRail we are offering special introductory prices, so make sure to evaluate TestRail soon if you are interested in the tool. You can download a free and fully-functional trial copy of TestRail from our website.</p>
<p>As usual, the change log and update instructions for this release can be found in <a href="http://www.gurock.com/support/forum/forum/4/announcements/">our forum</a>. If you have any question about TestRail or this release, just let us know!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.gurock.com/postings/announcing-testrail-1-0/1117/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Happy Holidays and New Year!</title>
		<link>http://blog.gurock.com/postings/happy-holidays-and-new-year-2/1097/</link>
		<comments>http://blog.gurock.com/postings/happy-holidays-and-new-year-2/1097/#comments</comments>
		<pubDate>Thu, 24 Dec 2009 10:00:03 +0000</pubDate>
		<dc:creator>Dennis Gurock</dc:creator>
				<category><![CDATA[DelphiFeeds.com]]></category>
		<category><![CDATA[Gurock Software]]></category>
		<category><![CDATA[SmartInspect]]></category>
		<category><![CDATA[TestRail]]></category>

		<guid isPermaLink="false">http://blog.gurock.com/?p=1097</guid>
		<description><![CDATA[
We wish all customers, friends and partners happy holidays and a successful new year 2010! We had a great year here at Gurock Software and reached some important milestones such as completing a critical customer project, launching our new website, improving SmartInspect, relaunching DelphiFeeds.com and releasing the first TestRail beta.
Next year will definitely be an [...]]]></description>
			<content:encoded><![CDATA[<p><img style="float: right" src="http://blog.gurock.com/images/postings/2008-12-24/tree.png" width="128" height="128" /></p>
<p>We wish all customers, friends and partners happy holidays and a successful new year 2010! We had a great year here at Gurock Software and reached some important milestones such as completing a critical customer project, launching <a href="http://www.gurock.com/">our new website</a>, improving <a href="http://www.gurock.com/smartinspect/">SmartInspect</a>, relaunching <a href="http://www.delphifeeds.com/">DelphiFeeds.com</a> and releasing the first <a href="http://www.gurock.com/testrail/">TestRail</a> beta.</p>
<p>Next year will definitely be an interesting (and busy!) one for us and we will start with releasing TestRail in January, moving to a new office (again) and relaunching our customer portal and online shop.</p>
<p>We are looking forward to working with you again next year!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.gurock.com/postings/happy-holidays-and-new-year-2/1097/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>EurekaLog exception reporting tool for .NET</title>
		<link>http://blog.gurock.com/postings/eurekalog-exception-reporting-tool-for-net/1014/</link>
		<comments>http://blog.gurock.com/postings/eurekalog-exception-reporting-tool-for-net/1014/#comments</comments>
		<pubDate>Fri, 20 Nov 2009 15:23:41 +0000</pubDate>
		<dc:creator>Dennis Gurock</dc:creator>
				<category><![CDATA[DelphiFeeds.com]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://blog.gurock.com/?p=1014</guid>
		<description><![CDATA[Our friends at EurekaLab recently released a new .NET edition of their exception reporting tool EurekaLog. While EurekaLog is a popular and well-known tool with Delphi developers, .NET developers haven&#8217;t been able to benefit from its powerful exception and bug reporting capabilities until recently. Now that the  new version of EurekaLog for .NET is [...]]]></description>
			<content:encoded><![CDATA[<p>Our friends at <a href="http://www.eurekalog.com/">EurekaLab</a> recently released a new .NET edition of their exception reporting tool EurekaLog. While EurekaLog is a popular and well-known tool with Delphi developers, .NET developers haven&#8217;t been able to benefit from its powerful exception and bug reporting capabilities until recently. Now that the  new version of EurekaLog for .NET is available (which I understand is a managed port of the Delphi version), I&#8217;m sure it will be as well received as the original Delphi tool. Please also note that you can easily <a href="http://www.gurock.com/smartinspect/integrating-smartinspect-and-eurekalog.a.html">integrate EurekaLog with SmartInspect</a>, allowing you to benefit from both tools.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.gurock.com/postings/eurekalog-exception-reporting-tool-for-net/1014/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Working with Delphi&#8217;s new Exception.StackTrace</title>
		<link>http://blog.gurock.com/postings/working-with-delphis-new-exception-stacktrace/730/</link>
		<comments>http://blog.gurock.com/postings/working-with-delphis-new-exception-stacktrace/730/#comments</comments>
		<pubDate>Mon, 12 Oct 2009 16:30:16 +0000</pubDate>
		<dc:creator>Tobias Gurock</dc:creator>
				<category><![CDATA[DelphiFeeds.com]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[SmartInspect]]></category>
		<category><![CDATA[si-article]]></category>

		<guid isPermaLink="false">http://blog.gurock.com/?p=730</guid>
		<description><![CDATA[One feature I often miss when using Delphi is the support for proper exception stack traces at run-time. You know, those useful stack traces that show you exactly where an exception occurred, ideally with the method name and line number of where the exception was raised. Both .NET and Java have excellent stack trace support [...]]]></description>
			<content:encoded><![CDATA[<p>One feature I often miss when using Delphi is the support for proper exception stack traces at run-time. You know, those useful stack traces that show you exactly where an exception occurred, ideally with the method name and line number of where the exception was raised. Both .NET and Java have excellent stack trace support built right into the framework and the Exception classes. You just call <a href="http://msdn.microsoft.com/en-us/library/system.exception.stacktrace.aspx">Exception.StackTrace</a> (.NET) or <a href="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Throwable.html#getStackTrace%28%29">Exception.getStackTrace</a> (Java) and get a detailed analysis of where the exception was thrown and how it got passed to your exception handler.</p>
<p>Unfortunately, Delphi never had good (built-in) run-time support for stack traces. The features for stack traces during debugging in the IDE are/were okay, but there were nothing in the language or framework which helped you to find out programmatically where an exception occurred at run-time and, more importantly, how it got passed to your exception handler (besides the original exception address, maybe). So, I was happy to see that Delphi 2009 finally introduced a new StackTrace property which, I hoped, would return a full-blown stack trace when you caught an exception.</p>
<p>The initial happiness soon wore off when I realized that the StackTrace property was really just a placeholder to <em>return a stack trace from a possible stack trace provider</em> rather than a real stack trace implementation. So, without such a provider (and there&#8217;s none that comes directly with Delphi), there is still no way to get a stack trace for your exceptions. Though a bit disappointing, the good thing is that there&#8217;s now finally a standardized way to get a stack trace, even if it&#8217;s not implemented by default.</p>
<p>Exception reporting tools such as <a href="http://www.eurekalog.com/">Eurekalog</a> or <a href="http://www.madshi.net/madExceptDescription.htm">madExcept</a> or debug helpers such as the <a href="http://sourceforge.net/projects/jcl/">JclDebug</a> unit can register themselves as providers and use their engines to return a stack trace when an exception is raised. I&#8217;ve built a small unit which demonstrates this with the Jcl in combination with our logging tool <a href="http://www.gurock.com/smartinspect/">SmartInspect</a> and I&#8217;ve heard Fabio of Eurekalog is working on a similar feature for his component:</p>
<pre class="brush: delphi;">
unit StackTrace;

interface

uses
  SysUtils, Classes, JclDebug;

implementation

function GetExceptionStackInfoProc(P: PExceptionRecord): Pointer;
var
  LLines: TStringList;
  LText: String;
  LResult: PChar;
begin
  LLines := TStringList.Create;
  try
    JclLastExceptStackListToStrings(LLines, True, True, True, True);
    LText := LLines.Text;
    LResult := StrAlloc(Length(LText));
    StrCopy(LResult, PChar(LText));
    Result := LResult;
  finally
    LLines.Free;
  end;
end;

function GetStackInfoStringProc(Info: Pointer): string;
begin
  Result := string(PChar(Info));
end;

procedure CleanUpStackInfoProc(Info: Pointer);
begin
  StrDispose(PChar(Info));
end;

initialization
  // Start the Jcl exception tracking and register our Exception
  // stack trace provider.
  if JclStartExceptionTracking then
  begin
    Exception.GetExceptionStackInfoProc := GetExceptionStackInfoProc;
    Exception.GetStackInfoStringProc := GetStackInfoStringProc;
    Exception.CleanUpStackInfoProc := CleanUpStackInfoProc;
  end;

finalization
  // Stop Jcl exception tracking and unregister our provider.
  if JclExceptionTrackingActive then
  begin
    Exception.GetExceptionStackInfoProc := nil;
    Exception.GetStackInfoStringProc := nil;
    Exception.CleanUpStackInfoProc := nil;
    JclStopExceptionTracking;
  end;
end.
</pre>
<p>The unit merely starts and stops the exception tracking of the Jcl, implements a minimal stack trace provider and registers for the Exception provider events. The GetExceptionStackInfoProc and CleanUpStackInfoProc functions are automatically called by the RTL to give the provider the opportunity to initialize and cleanup the stack trace after an exception occurred. GetStackInfoStringProc is called indirectly when you access the StackTrace property and is responsible for returning the actual stack trace. </p>
<p>So, how do you use this unit? Let&#8217;s have a look at the following example:</p>
<pre class="brush: delphi;">
...

uses
  ..., StackTrace;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    procedure SomeMethod;
  end;

implementation

procedure TForm1.Button1Click(Sender: TObject);
begin
  try
    SomeMethod;
  except
    // Log the exception: We use SmartInspect here because it has
    // built-in support for Exception.StackTrace but you could also
    // access the StackTrace property here directly.
    SiMain.LogException;
  end;
end;

procedure TForm1.SomeMethod;
begin
  raise Exception.Create('A test exception');
end;

...
</pre>
<p>As you can see, using this unit is just a matter of adding it to our uses clause. It won&#8217;t get any simpler than that. The unit will take care of registering/unregistering itself as a stack trace provider and when you now access the StackTrace property of an Exception object, you will get a detailed stack trace. To include the method names and line numbers in the stack trace, make sure to let the linker include debug symbols into your application and to enable the &#8216;Use debug .dcus&#8217; option in case you also want line numbers from the VCL and RTL methods.</p>
<div style="text-align: center">
<a href="/wp-content/uploads/2009/10/delphi-stacktrace.png"><br />
<img src="/wp-content/uploads/2009/10/delphi-stacktrace-small.png" alt="delphi-stacktrace-small" title="delphi-stacktrace-small" width="550" height="441" class="aligncenter size-full wp-image-787" /></a><br />
<em>The <a href="http://www.gurock.com/smartinspect/">SmartInspect Console</a> showing the stack trace of an exception</em>
</div>
<p>Now, when you use SmartInspect for logging and have a stack trace provider registered, all your logged exceptions automatically include the exception&#8217;s call stack. Pretty useful, isn&#8217;t it?</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.gurock.com/postings/working-with-delphis-new-exception-stacktrace/730/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>SmartInspect now supports Delphi 2010</title>
		<link>http://blog.gurock.com/postings/smartinspect-now-supports-delphi-2010/711/</link>
		<comments>http://blog.gurock.com/postings/smartinspect-now-supports-delphi-2010/711/#comments</comments>
		<pubDate>Thu, 03 Sep 2009 10:27:47 +0000</pubDate>
		<dc:creator>Dennis Gurock</dc:creator>
				<category><![CDATA[DelphiFeeds.com]]></category>
		<category><![CDATA[Gurock Software]]></category>
		<category><![CDATA[SmartInspect]]></category>

		<guid isPermaLink="false">http://blog.gurock.com/?p=711</guid>
		<description><![CDATA[We have just released a new version of our .NET, Java and Delphi logging tool SmartInspect that supports the new Delphi 2010. Embarcadero&#8217;s latest Delphi version looks like a very solid release and we have seen other people report that there are good chances that Delphi 2010 will become the new reference version for many [...]]]></description>
			<content:encoded><![CDATA[<p>We have just released a new version of our .NET, Java and <a href="http://www.gurock.com/smartinspect/">Delphi logging</a> tool SmartInspect that supports the new Delphi 2010. Embarcadero&#8217;s latest Delphi version looks like a very solid release and we have seen other people report that there are good chances that Delphi 2010 will become the new reference version for many years to come.</p>
<p>As usual, existing SmartInspect customers can download the new release from our <a href="http://www.gurock.com/my/">customer portal</a>. If you are interested in giving SmartInspect a try, please download the updated trial version with Delphi 2010 support <a href="http://www.gurock.com/smartinspect/trial/">from our website</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.gurock.com/postings/smartinspect-now-supports-delphi-2010/711/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>SQLite logging for Delphi with SmartInspect</title>
		<link>http://blog.gurock.com/postings/sqlite-logging-for-delphi-with-smartinspect/591/</link>
		<comments>http://blog.gurock.com/postings/sqlite-logging-for-delphi-with-smartinspect/591/#comments</comments>
		<pubDate>Tue, 16 Jun 2009 16:15:20 +0000</pubDate>
		<dc:creator>Dennis Gurock</dc:creator>
				<category><![CDATA[DelphiFeeds.com]]></category>
		<category><![CDATA[Gurock Software]]></category>
		<category><![CDATA[SmartInspect]]></category>
		<category><![CDATA[si-article]]></category>

		<guid isPermaLink="false">http://blog.gurock.com/?p=591</guid>
		<description><![CDATA[David Lambert was kind enough to send us his very nice SmartInspect SQLite logging protocol for Delphi and allowed us to make it available on our website. It can be used to write SmartInspect logging data to an SQLite database instead of typical log files, allowing for customized filtering and analysis with SQL tools. This [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.dmisoft.com/">David Lambert</a> was kind enough to send us his very nice SmartInspect SQLite logging protocol for Delphi and allowed us to make it available on our website. It can be used to write SmartInspect logging data to an SQLite database instead of typical log files, allowing for customized filtering and analysis with SQL tools. This SmartInspect protocol is licensed under the Creative Commons Attribution license and uses the DISQLite3 database library, which is available as a free personal edition or affordable professional version with additional features from <a href="http://www.yunqa.de/delphi/doku.php/products/sqlite3/index">Ralf Junker</a>.</p>
<p><a href="http://blog.gurock.com/wp-content/uploads/2009/06/sqlite-log.png"><img src="http://blog.gurock.com/wp-content/uploads/2009/06/sqlite-log-small.png" alt="" title="" width="540" height="332" class="alignright size-full wp-image-597" /></a><br />
<em>SmartInspect SQLite log viewed in <a href="http://www.yunqa.de/delphi/doku.php/products/sqlitespy/index">SQLiteSpy</a></em></p>
<p>The logging protocol automatically creates and initializes a new SQLite database on its first use, making it very easy to deploy application with it. All SmartInspect packets such as log entries, watches and process flow entries are supported and stored in the resulting SQLite database. <del datetime="2009-06-17T16:24:32+00:00">Please note that the protocol has been written for Delphi 2009, but there are only a few changes required if you want to use it with an older Delphi version.</del> <strong>Update:</strong> The protocol works with multiple Delphi versions out of the box, including Delphi 2007 and Delphi 2009.</p>
<p>Until our upcoming new website with a more useful SmartInspect resources section has been launched (scheduled for next month), you can download David&#8217;s protocol here:</p>
<p><strong><a href="http://www.gurock.com/downloads/smartinspect/smartinspect-sqlite.zip">Download</a></strong> (5 KB)</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.gurock.com/postings/sqlite-logging-for-delphi-with-smartinspect/591/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New DelphiFeeds.com launched</title>
		<link>http://blog.gurock.com/postings/new-delphifeedscom-launched/573/</link>
		<comments>http://blog.gurock.com/postings/new-delphifeedscom-launched/573/#comments</comments>
		<pubDate>Fri, 10 Apr 2009 15:55:30 +0000</pubDate>
		<dc:creator>Dennis Gurock</dc:creator>
				<category><![CDATA[DelphiFeeds.com]]></category>

		<guid isPermaLink="false">http://blog.gurock.com/?p=573</guid>
		<description><![CDATA[
We have just switched DelphiFeeds.com to the new website, after it has been tested by around 50 users in the past 2 weeks (all beta accounts and data have been moved to the new site, too, of course). Thanks to everyone who tested the new site and provided feedback! As a result of the feedback [...]]]></description>
			<content:encoded><![CDATA[<div style="float: right; margin-left: 1em"><a href="http://www.delphifeeds.com/" title="DelphiFeeds.com - All Delphi Blogs in one place."><img src="http://www.delphifeeds.com/sr/df1.png" alt="DelphiFeeds.com" width="115" height="30" /></a></div>
<p>We have just switched <a href="http://www.delphifeeds.com/">DelphiFeeds.com</a> to the new website, after it has been tested by around 50 users in the past 2 weeks (all beta accounts and data have been moved to the new site, too, of course). Thanks to everyone who tested the new site and provided feedback! As a result of the feedback we&#8217;ve received, we have added an additional option to hide the popular section on the start page, allowing you to see more postings at once without scrolling (see the <a href="http://www.delphifeeds.com/account/settings">My Settings</a> page for available options). So if you are a regular DelphiFeeds.com reader, make sure to <a href="http://www.delphifeeds.com/auth/register">create an account</a> and start voting!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.gurock.com/postings/new-delphifeedscom-launched/573/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>New DelphiFeeds.com Beta now online</title>
		<link>http://blog.gurock.com/postings/new-delphifeedscom-beta-now-online/529/</link>
		<comments>http://blog.gurock.com/postings/new-delphifeedscom-beta-now-online/529/#comments</comments>
		<pubDate>Sat, 04 Apr 2009 19:00:52 +0000</pubDate>
		<dc:creator>Dennis Gurock</dc:creator>
				<category><![CDATA[DelphiFeeds.com]]></category>

		<guid isPermaLink="false">http://blog.gurock.com/?p=529</guid>
		<description><![CDATA[We are very happy to announce a new beta of DelphiFeeds.com! We designed and developed the new site to be a mix of Digg, Stack Overflow and the old DelphiFeeds.com, allowing you to vote for postings, marking items off-topic and saving the best postings as favorites.

Popular postings, i.e. postings with many votes, are promoted to [...]]]></description>
			<content:encoded><![CDATA[<p>We are very happy to announce a <a href="http://beta.delphifeeds.com/">new beta of DelphiFeeds.com</a>! We designed and developed the new site to be a mix of Digg, Stack Overflow and the old DelphiFeeds.com, allowing you to vote for postings, marking items off-topic and saving the best postings as favorites.</p>
<div class="text-align: center"><a href="http://beta.delphifeeds.com/"><img src="http://blog.gurock.com/wp-content/uploads/2009/04/df.png" alt="df" width="500" height="405" /></a></div>
<p>Popular postings, i.e. postings with many votes, are promoted to the Popular section of the front-page of the new site and thus get more attention. Popular postings are also featured on the new <a href="http://beta.delphifeeds.com/popular">Popular</a> pages, which makes it easy to track the most popular postings over time.</p>
<p>The new sidebar and widgets allow you to configure which newsgroups and community resources you want to see, and in which order they are displayed. We will add additional newsgroup and feed widgets soon, so if you have any suggestion for additional feeds that should be included, please let us know.</p>
<p>You can now also stay up-to-date on Delphi news and Delphi blog postings via Twitter by following <a href="http://twitter.com/delphifeeds">@delphifeeds</a>. This isn&#8217;t really a new feature and the DF.com crawler has been twittering for a few months now, but we haven&#8217;t announced it yet. So if you missed this, make sure to follow @delphifeeds!</p>
<p>We also finally updated the <a href="http://www.delphifeeds.com/boty/">Blog of the Year award</a> and determined the winners. It took us (a lot!) longer than expected, but there were always more important things to do, so my apologies for the delay. Anyway, congratulations to the blog authors and winners of the prizes and thanks to the prize sponsors!</p>
<p>So if you haven&#8217;t yet, make sure to <a href="http://beta.delphifeeds.com/">check out the new site</a> and please <a href="http://delphifeeds.uservoice.com/">provide feedback</a>. If no major issues come up during the beta, we will switch to the new site next weekend.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.gurock.com/postings/new-delphifeedscom-beta-now-online/529/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>SmartInspect 3.2: new build available</title>
		<link>http://blog.gurock.com/postings/smartinspect-32-new-build-available/514/</link>
		<comments>http://blog.gurock.com/postings/smartinspect-32-new-build-available/514/#comments</comments>
		<pubDate>Wed, 25 Mar 2009 12:15:39 +0000</pubDate>
		<dc:creator>Tobias Gurock</dc:creator>
				<category><![CDATA[DelphiFeeds.com]]></category>
		<category><![CDATA[Gurock Software]]></category>
		<category><![CDATA[SmartInspect]]></category>

		<guid isPermaLink="false">http://blog.gurock.com/?p=514</guid>
		<description><![CDATA[I&#8217;ve just uploaded a new build of SmartInspect 3.2. The new build contains an important fix for a problem where the SmartInspect Console may become unresponsive/locked for a few seconds (while loading a log file or scrolling a view, for example). The exact version number of the new build is 3.2.0.8546. If you&#8217;ve already downloaded [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve just uploaded a new build of SmartInspect 3.2. The new build contains an important fix for a problem where the SmartInspect Console may become unresponsive/locked for a few seconds (while loading a log file or scrolling a view, for example). The exact version number of the new build is 3.2.0.8546. If you&#8217;ve already downloaded and installed the 3.2 earlier this week, please download and install the updated version. You can install the new version over your existing installation.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.gurock.com/postings/smartinspect-32-new-build-available/514/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Delphi 2009 and backwards compatibility</title>
		<link>http://blog.gurock.com/postings/delphi-2009-and-backwards-compatibility/471/</link>
		<comments>http://blog.gurock.com/postings/delphi-2009-and-backwards-compatibility/471/#comments</comments>
		<pubDate>Mon, 23 Mar 2009 17:57:51 +0000</pubDate>
		<dc:creator>Tobias Gurock</dc:creator>
				<category><![CDATA[DelphiFeeds.com]]></category>
		<category><![CDATA[SmartInspect]]></category>

		<guid isPermaLink="false">http://blog.gurock.com/?p=471</guid>
		<description><![CDATA[In a recent blog post I saw on DelphiFeeds.com, Babnik argues that Delphi 2009 should have been compatible with older Delphi versions by still treating String as an AnsiString and introducing a parallel VCL with UnicodeStrings (think TEdit vs. TEditW). I don&#8217;t think this would have been a good idea.
I understand that there are many [...]]]></description>
			<content:encoded><![CDATA[<p>In a recent blog post I saw on <a href="http://www.delphifeeds.com/">DelphiFeeds.com</a>, <a href="http://thedorictemple.blogspot.com/2009/03/breaking-existing-code.html">Babnik argues</a> that Delphi 2009 should have been compatible with older Delphi versions by still treating String as an AnsiString and introducing a parallel VCL with UnicodeStrings (think TEdit vs. TEditW). I don&#8217;t think this would have been a good idea.</p>
<p>I understand that there are many Delphi users who want to upgrade to Delphi 2009 to benefit from additional features but don&#8217;t care about the Unicode improvements (or already use a different technique to support Unicode such as the TNT Controls). Adding this compatibility mode would therefore be a great short-term solution for them but would result <a href="http://martinfowler.com/bliki/TechnicalDebt.html">in huge technical debt</a> for CodeGear.</p>
<p>For CodeGear, this would mean supporting two parallel versions of the VCL for at least the next few versions of Delphi. What a support and maintenance nightmare! Likewise, third-party vendors would have to ship two different versions of their products for Delphi 2009 and beyond. One compiled with Unicode support and one without. Again, a maintenance nightmare.</p>
<p>I admit that porting real-world applications to Delphi 2009 can be quite a bit of work. The <a href="http://blog.gurock.com/?p=460">just released version of SmartInspect</a> now uses Delphi 2009 for the SmartInspect Console. Previous versions were built against Delphi 2006 and I can say that the transition wasn&#8217;t as smooth as I hoped for. Like Babniks product, the SmartInspect Console already supported Unicode by using WideStrings and the TNT Controls, so there wasn&#8217;t a need to update to Delphi 2009 just because of Unicode. But we wanted to fix a few Vista related bugs and other glitches and Delphi 2009 includes fixes for most of them. So we decided to give Delphi 2009 a try.</p>
<p>It turned out that converting the Console itself wasn&#8217;t that big of a problem. The warning messages of the Delphi 2009 compiler are really helpful and we got most of the Console running within about two weeks. A bit more problematic were some no longer maintained third-party controls and it took two more weeks to get the Console to a really stable state. That&#8217;s more than I expected but still okay for such a one-time conversion (the Console has about 50K LoC + forms, the unmaintained third-party controls were about 10K I guess).</p>
<p>In retrospect, I think it was well-worth the time and Delphi 2009 feels like a good version. The IDE is much more stable than Delphi 2006 and the language and VCL finally got some much-needed improvements. We are also happy that we could throw away the WideString and TNT related code. Using Delphi 2009 makes the Console code much cleaner. It also got a bit faster because of the performance improvements of UnicodeString compared to WideString.</p>
<p>So, while I can understand that not everyone wants to invest the time for the Delphi 2009 conversion, I do not think that adding this compatibility mode would have been a good decision, especially not in the long run.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.gurock.com/postings/delphi-2009-and-backwards-compatibility/471/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
	</channel>
</rss>
