<?xml version="1.0" encoding="iso-8859-1"?>
<rss version="2.0" 
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
  xmlns:admin="http://webns.net/mvcb/"
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">

<channel>
<title>/* Rambling comments... */</title>
<link>http://www.lenholgate.com/</link>
<description>Len Holgate&apos;s thoughts on this and that...
Mainly test driven software development in C++ on Windows platforms... - Source Code</description>
<dc:language>en-us</dc:language>
<dc:creator>Len.Holgate@JetByte.com</dc:creator>
<dc:date>2008-08-12T12:44:19+00:00</dc:date>
<admin:generatorAgent rdf:resource="http://www.movabletype.org/?v=2.64" />
<sy:updatePeriod>hourly</sy:updatePeriod>
<sy:updateFrequency>1</sy:updateFrequency>
<sy:updateBase>2000-01-01T12:00+00:00</sy:updateBase>

<item>
<title>Practical Testing: 20 - Mind the gap</title>
<link>http://www.lenholgate.com/archives/000803.html</link>
<description>

Back in 2004, I wrote a series of articles called &quot;Practical Testing&quot; where I took a piece of complicated multi-threaded code and wrote tests for it. I then rebuild the code from scratch in a test driven development style to...

<![CDATA[<div class="posted">Posted by Len at <a href="http://www.lenholgate.com/archives/000803.html">12:44 PM</a>
		| <a href="http://www.lenholgate.com/mt/mt-comments-17.cgi?entry_id=803" >Comments (0)</a>
	
	
| Categories: <a href="http://www.lenholgate.com/archives/cat_socket_servers.html">Socket Servers</a>
, <a href="http://www.lenholgate.com/archives/cat_source_code.html">Source Code</a>
, <a href="http://www.lenholgate.com/archives/cat_testing.html">Testing</a>

	</div>]]>

</description>
<guid isPermaLink="false">803@http://www.lenholgate.com/</guid>
<dc:subject>Testing</dc:subject>
<dc:date>2008-08-12T12:44:19+00:00</dc:date>
</item>
<item>
<title>Practical Testing: 19 - Removing the duplicate code</title>
<link>http://www.lenholgate.com/archives/000796.html</link>
<description>

The code in the last two articles in the &quot;Practical Testing&quot; series have contained a considerable amount of duplication. This came about for a couple of reasons. Firstly part 17 was a bit rushed and secondly it was useful to...

<![CDATA[<div class="posted">Posted by Len at <a href="http://www.lenholgate.com/archives/000796.html">09:28 PM</a>
		| <a href="http://www.lenholgate.com/mt/mt-comments-17.cgi?entry_id=796" >Comments (5)</a>
	
	
| Categories: <a href="http://www.lenholgate.com/archives/cat_source_code.html">Source Code</a>
, <a href="http://www.lenholgate.com/archives/cat_testing.html">Testing</a>

	</div>]]>

</description>
<guid isPermaLink="false">796@http://www.lenholgate.com/</guid>
<dc:subject>Testing</dc:subject>
<dc:date>2008-08-03T21:28:14+00:00</dc:date>
</item>
<item>
<title>Practical Testing: 18 - Removing the potential to deadlock</title>
<link>http://www.lenholgate.com/archives/000795.html</link>
<description>

Back in 2004, I wrote a series of articles called &quot;Practical Testing&quot; where I took a piece of complicated multi-threaded code and wrote tests for it. I then rebuild the code from scratch in a test driven development style to...

<![CDATA[<div class="posted">Posted by Len at <a href="http://www.lenholgate.com/archives/000795.html">12:15 PM</a>
		| <a href="http://www.lenholgate.com/mt/mt-comments-17.cgi?entry_id=795" >Comments (0)</a>
	
	
| Categories: <a href="http://www.lenholgate.com/archives/cat_source_code.html">Source Code</a>
, <a href="http://www.lenholgate.com/archives/cat_testing.html">Testing</a>

	</div>]]>

</description>
<guid isPermaLink="false">795@http://www.lenholgate.com/</guid>
<dc:subject>Testing</dc:subject>
<dc:date>2008-08-02T12:15:23+00:00</dc:date>
</item>
<item>
<title>Practical Testing: 17 - A whole new approach</title>
<link>http://www.lenholgate.com/archives/000773.html</link>
<description>

The comments to my last practical testing entry got me thinking. The commenter who had located the bug in part 15, which was fixed in part 16, suggested a new approach to the problem and I&apos;ve been investigating it. The...

<![CDATA[<div class="posted">Posted by Len at <a href="http://www.lenholgate.com/archives/000773.html">06:54 PM</a>
		| <a href="http://www.lenholgate.com/mt/mt-comments-17.cgi?entry_id=773" >Comments (0)</a>
	
	
| Categories: <a href="http://www.lenholgate.com/archives/cat_source_code.html">Source Code</a>
, <a href="http://www.lenholgate.com/archives/cat_testing.html">Testing</a>

	</div>]]>

</description>
<guid isPermaLink="false">773@http://www.lenholgate.com/</guid>
<dc:subject>Testing</dc:subject>
<dc:date>2008-04-09T18:54:51+00:00</dc:date>
</item>
<item>
<title>Practical Testing: 16 - Fixing a timeout bug</title>
<link>http://www.lenholgate.com/archives/000771.html</link>
<description>

Back in 2004, I wrote a series of articles called &quot;Practical Testing&quot; where I took a piece of complicated multi-threaded code and wrote tests for it. I then rebuild the code from scratch in a test driven development style to...

<![CDATA[<div class="posted">Posted by Len at <a href="http://www.lenholgate.com/archives/000771.html">10:28 AM</a>
		| <a href="http://www.lenholgate.com/mt/mt-comments-17.cgi?entry_id=771" >Comments (5)</a>
	
	
| Categories: <a href="http://www.lenholgate.com/archives/cat_source_code.html">Source Code</a>
, <a href="http://www.lenholgate.com/archives/cat_testing.html">Testing</a>

	</div>]]>

</description>
<guid isPermaLink="false">771@http://www.lenholgate.com/</guid>
<dc:subject>Source Code</dc:subject>
<dc:date>2008-04-04T10:28:39+00:00</dc:date>
</item>
<item>
<title>Latest release of socket server code</title>
<link>http://www.lenholgate.com/archives/000637.html</link>
<description>

This is the latest release of the free version of my asynchronous, windows, IOCP based, socket server framework. The previous release is here. The latest release is really just a bug fix and compiler compatability release. The code now supports...

<![CDATA[<div class="posted">Posted by Len at <a href="http://www.lenholgate.com/archives/000637.html">08:40 AM</a>
		| <a href="http://www.lenholgate.com/mt/mt-comments-17.cgi?entry_id=637" >Comments (48)</a>
	
	
| Categories: <a href="http://www.lenholgate.com/archives/cat_socket_servers.html">Socket Servers</a>
, <a href="http://www.lenholgate.com/archives/cat_source_code.html">Source Code</a>

	</div>]]>

</description>
<guid isPermaLink="false">637@http://www.lenholgate.com/</guid>
<dc:subject>Socket Servers</dc:subject>
<dc:date>2006-02-14T08:40:48+00:00</dc:date>
</item>
<item>
<title>Practical Testing: 15 - Testing payback</title>
<link>http://www.lenholgate.com/archives/000566.html</link>
<description>

Last year I wrote a series of articles called &quot;Practical Testing&quot; where I took a piece of complicated multi-threaded code and wrote tests for it. I then rebuild the code from scratch in a test driven development style to show...

<![CDATA[<div class="posted">Posted by Len at <a href="http://www.lenholgate.com/archives/000566.html">12:50 PM</a>
		| <a href="http://www.lenholgate.com/mt/mt-comments-17.cgi?entry_id=566" >Comments (2)</a>
	
	
| Categories: <a href="http://www.lenholgate.com/archives/cat_source_code.html">Source Code</a>
, <a href="http://www.lenholgate.com/archives/cat_testing.html">Testing</a>

	</div>]]>

</description>
<guid isPermaLink="false">566@http://www.lenholgate.com/</guid>
<dc:subject>Testing</dc:subject>
<dc:date>2005-11-01T12:50:10+00:00</dc:date>
</item>
<item>
<title>Practical Testing: 14 - Bitten by the handle reuse problem</title>
<link>http://www.lenholgate.com/archives/000412.html</link>
<description>

A long time ago, on Practical Testing: I mentioned that there was a small chance that the way that ResetTimer() operated could mean that you could pass in a handle that you no longer owned and affect someone else&apos;s timer...

<![CDATA[<div class="posted">Posted by Len at <a href="http://www.lenholgate.com/archives/000412.html">01:53 PM</a>
		| <a href="http://www.lenholgate.com/mt/mt-comments-17.cgi?entry_id=412" >Comments (2)</a>
	
	
| Categories: <a href="http://www.lenholgate.com/archives/cat_source_code.html">Source Code</a>
, <a href="http://www.lenholgate.com/archives/cat_testing.html">Testing</a>

	</div>]]>

</description>
<guid isPermaLink="false">412@http://www.lenholgate.com/</guid>
<dc:subject>Testing</dc:subject>
<dc:date>2005-03-07T13:53:04+00:00</dc:date>
</item>
<item>
<title>Practical Testing: 13 - Missing functionality</title>
<link>http://www.lenholgate.com/archives/000389.html</link>
<description>

Previously, on Practical Testing: we added a multi-threaded version of our timer queue that manages timeouts automatically. This time we&apos;ll integrate our new timer queue into an application that uses the old version of the code and, along the way, discover some functionality that the original version requires but that the new version currently doesn&apos;t.

<![CDATA[<div class="posted">Posted by Len at <a href="http://www.lenholgate.com/archives/000389.html">08:54 AM</a>
		| <a href="http://www.lenholgate.com/mt/mt-comments-17.cgi?entry_id=389" >Comments (0)</a>
	
	
| Categories: <a href="http://www.lenholgate.com/archives/cat_source_code.html">Source Code</a>
, <a href="http://www.lenholgate.com/archives/cat_testing.html">Testing</a>

	</div>]]>

</description>
<guid isPermaLink="false">389@http://www.lenholgate.com/</guid>
<dc:subject>Testing</dc:subject>
<dc:date>2004-10-22T08:54:54+00:00</dc:date>
</item>
<item>
<title>Practical Testing: 12 - Threading is orthogonal</title>
<link>http://www.lenholgate.com/archives/000381.html</link>
<description>

Previously, on Practical Testing: we finished our reworking on the code we were left with a simpler timer queue that passed all of our tests, but was single threaded and needed manual intervention from client code to manage timeouts. Today we&apos;ll add back the multi-threaded functionality so that the queue manages timeouts automatically.

<![CDATA[<div class="posted">Posted by Len at <a href="http://www.lenholgate.com/archives/000381.html">10:51 PM</a>
		| <a href="http://www.lenholgate.com/mt/mt-comments-17.cgi?entry_id=381" >Comments (0)</a>
	
	
| Categories: <a href="http://www.lenholgate.com/archives/cat_source_code.html">Source Code</a>
, <a href="http://www.lenholgate.com/archives/cat_testing.html">Testing</a>

	</div>]]>

</description>
<guid isPermaLink="false">381@http://www.lenholgate.com/</guid>
<dc:subject>Testing</dc:subject>
<dc:date>2004-10-09T22:51:00+00:00</dc:date>
</item>
<item>
<title>Practical Testing: 11 - Moving away from the simplest thing</title>
<link>http://www.lenholgate.com/archives/000360.html</link>
<description>

Previously, on Practical Testing: having decided to rework the code from scratch in TDD style we fixed the tick count bug for the second time - this time the solution was cleaner and simpler. At the end of that episode we were left with a failing test. The test was for multiple timers and it failed because our TDD route was taking a &apos;simplest thing that could possibly work&apos; approach and that design only supported a single timer. Today we&apos;ll fix that problem by moving nearer to a real world solution.

<![CDATA[<div class="posted">Posted by Len at <a href="http://www.lenholgate.com/archives/000360.html">01:59 PM</a>
		| <a href="http://www.lenholgate.com/mt/mt-comments-17.cgi?entry_id=360" >Comments (0)</a>
	
	
| Categories: <a href="http://www.lenholgate.com/archives/cat_source_code.html">Source Code</a>
, <a href="http://www.lenholgate.com/archives/cat_testing.html">Testing</a>

	</div>]]>

</description>
<guid isPermaLink="false">360@http://www.lenholgate.com/</guid>
<dc:subject>Testing</dc:subject>
<dc:date>2004-08-21T13:59:17+00:00</dc:date>
</item>
<item>
<title>Practical Testing: 10 - Fixing the tick count wrap bug, again</title>
<link>http://www.lenholgate.com/archives/000346.html</link>
<description>

Previously, on Practical Testing: having bolted on some tests to an existing piece of code we&apos;re now doing some &quot;agressive refactoring&quot; ;) and rewriting the code from scratch using the testing ideas we developed earlier. The whole point of this exercise was to fix a known bug, we did that in the existing code here, now we have a test that forces us to address the issue in the new code.

<![CDATA[<div class="posted">Posted by Len at <a href="http://www.lenholgate.com/archives/000346.html">08:24 AM</a>
		| <a href="http://www.lenholgate.com/mt/mt-comments-17.cgi?entry_id=346" >Comments (0)</a>
	
	
| Categories: <a href="http://www.lenholgate.com/archives/cat_source_code.html">Source Code</a>
, <a href="http://www.lenholgate.com/archives/cat_testing.html">Testing</a>

	</div>]]>

</description>
<guid isPermaLink="false">346@http://www.lenholgate.com/</guid>
<dc:subject>Testing</dc:subject>
<dc:date>2004-07-24T08:24:51+00:00</dc:date>
</item>
<item>
<title>Practical Testing: 9 - More tests, more development, notice the order?</title>
<link>http://www.lenholgate.com/archives/000344.html</link>
<description>

Previously, on Practical Testing: we fought through the pain of writing tests for hard to test code and then we decided to see what it could have been like if we&apos;d developed the code test first... Now we&apos;ll add some more tests and some more code, still keeping it all nice and simple...

<![CDATA[<div class="posted">Posted by Len at <a href="http://www.lenholgate.com/archives/000344.html">11:35 PM</a>
		| <a href="http://www.lenholgate.com/mt/mt-comments-17.cgi?entry_id=344" >Comments (0)</a>
	
	
| Categories: <a href="http://www.lenholgate.com/archives/cat_source_code.html">Source Code</a>
, <a href="http://www.lenholgate.com/archives/cat_testing.html">Testing</a>

	</div>]]>

</description>
<guid isPermaLink="false">344@http://www.lenholgate.com/</guid>
<dc:subject>Testing</dc:subject>
<dc:date>2004-07-21T23:35:40+00:00</dc:date>
</item>
<item>
<title>Practical Testing: 8 - Once more, with tests first</title>
<link>http://www.lenholgate.com/archives/000342.html</link>
<description>

I&apos;ve been writing some blog entries about a piece of code from my &apos;back catalogue&apos; that didn&apos;t have tests and that had a known bug that was reasonably hard to test for. Right at the start I commented that the code was a tad over complicated due to the way it had been developed using HITIW (Hack it till it works). The complexity in the code itself made writing tests for it harder than it should have been and, well, I wouldn&apos;t write code like that these days (honest). So, here we are in part 8 and I&apos;m about to throw the first version away and write a new version of the code and this time we&apos;ll do it test first and take a look at how the desire to be able to test the code shapes the design. I know you&apos;re probably thinking that this is just a bit contrived but I really did just sit down with an empty file and the tests that I had from last time and write the simplest thing that could work to pass the first test...

<![CDATA[<div class="posted">Posted by Len at <a href="http://www.lenholgate.com/archives/000342.html">09:58 PM</a>
		| <a href="http://www.lenholgate.com/mt/mt-comments-17.cgi?entry_id=342" >Comments (0)</a>
	
	
| Categories: <a href="http://www.lenholgate.com/archives/cat_source_code.html">Source Code</a>
, <a href="http://www.lenholgate.com/archives/cat_testing.html">Testing</a>

	</div>]]>

</description>
<guid isPermaLink="false">342@http://www.lenholgate.com/</guid>
<dc:subject>Testing</dc:subject>
<dc:date>2004-07-21T21:58:00+00:00</dc:date>
</item>
<item>
<title>Practical Testing: 7 - Fixing the tick count wrap bug</title>
<link>http://www.lenholgate.com/archives/000337.html</link>
<description>

Previously on Practical Testing: After far too much work we finally got to the point where we had a test for the tick count wrap bug. Now that we have a failing test we can fix the bug.

<![CDATA[<div class="posted">Posted by Len at <a href="http://www.lenholgate.com/archives/000337.html">08:45 PM</a>
		| <a href="http://www.lenholgate.com/mt/mt-comments-17.cgi?entry_id=337" >Comments (2)</a>
	
	
| Categories: <a href="http://www.lenholgate.com/archives/cat_source_code.html">Source Code</a>
, <a href="http://www.lenholgate.com/archives/cat_testing.html">Testing</a>

	</div>]]>

</description>
<guid isPermaLink="false">337@http://www.lenholgate.com/</guid>
<dc:subject>Testing</dc:subject>
<dc:date>2004-07-21T20:45:00+00:00</dc:date>
</item>
<item>
<title>Practical Testing: 6 - Tests refactored</title>
<link>http://www.lenholgate.com/archives/000315.html</link>
<description>

Previously on Practical Testing: The last entry ended with us having two tests, both of which were in need to a good refactoring. The second test had uncovered an unexpected bug... This time around we&apos;ll refactor the tests, fix the bug and finally write the test for the tick count wrap bug...

<![CDATA[<div class="posted">Posted by Len at <a href="http://www.lenholgate.com/archives/000315.html">06:10 PM</a>
		| <a href="http://www.lenholgate.com/mt/mt-comments-17.cgi?entry_id=315" >Comments (0)</a>
	
	
| Categories: <a href="http://www.lenholgate.com/archives/cat_source_code.html">Source Code</a>
, <a href="http://www.lenholgate.com/archives/cat_testing.html">Testing</a>

	</div>]]>

</description>
<guid isPermaLink="false">315@http://www.lenholgate.com/</guid>
<dc:subject>Testing</dc:subject>
<dc:date>2004-05-25T18:10:00+00:00</dc:date>
</item>
<item>
<title>Practical Testing: 4 - Taking control of time</title>
<link>http://www.lenholgate.com/archives/000311.html</link>
<description>

I&apos;m writing some blog entries that show how to write tests for non trivial pieces of code. This is part 4.

<![CDATA[<div class="posted">Posted by Len at <a href="http://www.lenholgate.com/archives/000311.html">10:49 PM</a>
		| <a href="http://www.lenholgate.com/mt/mt-comments-17.cgi?entry_id=311" >Comments (5)</a>
	
	
| Categories: <a href="http://www.lenholgate.com/archives/cat_source_code.html">Source Code</a>
, <a href="http://www.lenholgate.com/archives/cat_testing.html">Testing</a>

	</div>]]>

</description>
<guid isPermaLink="false">311@http://www.lenholgate.com/</guid>
<dc:subject>Testing</dc:subject>
<dc:date>2004-05-19T22:49:09+00:00</dc:date>
</item>
<item>
<title>Practical Testing: 3 - Test 2, Enter The Mocks</title>
<link>http://www.lenholgate.com/archives/000310.html</link>
<description>

I&apos;m writing some blog entries that show how to write tests for non trivial pieces of code. This is part 3.

<![CDATA[<div class="posted">Posted by Len at <a href="http://www.lenholgate.com/archives/000310.html">11:30 PM</a>
		| <a href="http://www.lenholgate.com/mt/mt-comments-17.cgi?entry_id=310" >Comments (0)</a>
	
	
| Categories: <a href="http://www.lenholgate.com/archives/cat_source_code.html">Source Code</a>
, <a href="http://www.lenholgate.com/archives/cat_testing.html">Testing</a>

	</div>]]>

</description>
<guid isPermaLink="false">310@http://www.lenholgate.com/</guid>
<dc:subject>Testing</dc:subject>
<dc:date>2004-05-18T23:30:00+00:00</dc:date>
</item>
<item>
<title>Practical Testing: 2 - The first test</title>
<link>http://www.lenholgate.com/archives/000308.html</link>
<description>

I&apos;m writing some blog entries that show how to write tests for non trivial pieces of code. This is part 2.

<![CDATA[<div class="posted">Posted by Len at <a href="http://www.lenholgate.com/archives/000308.html">08:42 PM</a>
		| <a href="http://www.lenholgate.com/mt/mt-comments-17.cgi?entry_id=308" >Comments (0)</a>
	
	
| Categories: <a href="http://www.lenholgate.com/archives/cat_source_code.html">Source Code</a>
, <a href="http://www.lenholgate.com/archives/cat_testing.html">Testing</a>

	</div>]]>

</description>
<guid isPermaLink="false">308@http://www.lenholgate.com/</guid>
<dc:subject>Testing</dc:subject>
<dc:date>2004-05-17T20:42:36+00:00</dc:date>
</item>
<item>
<title>Practical Testing: 1 - Introduction</title>
<link>http://www.lenholgate.com/archives/000307.html</link>
<description>

I&apos;m writing some blog entries that show how to write tests for non trivial pieces of code. This is part 1.

<![CDATA[<div class="posted">Posted by Len at <a href="http://www.lenholgate.com/archives/000307.html">07:51 PM</a>
		| <a href="http://www.lenholgate.com/mt/mt-comments-17.cgi?entry_id=307" >Comments (2)</a>
	
	
| Categories: <a href="http://www.lenholgate.com/archives/cat_source_code.html">Source Code</a>
, <a href="http://www.lenholgate.com/archives/cat_testing.html">Testing</a>

	</div>]]>

</description>
<guid isPermaLink="false">307@http://www.lenholgate.com/</guid>
<dc:subject>Testing</dc:subject>
<dc:date>2004-05-17T19:51:08+00:00</dc:date>
</item>
<item>
<title>Bluetooth sockets</title>
<link>http://www.lenholgate.com/archives/000102.html</link>
<description>

 This morning I decided to investigate the Windows XP SP1 Bluetooth support. I played with the BluetoothXXXX API and quickly became disapointed. I then moved on to looking at how to access the Bluetooth hardware using Winsock and decided...

<![CDATA[<div class="posted">Posted by Len at <a href="http://www.lenholgate.com/archives/000102.html">08:34 PM</a>
		| <a href="http://www.lenholgate.com/mt/mt-comments-17.cgi?entry_id=102" >Comments (418)</a>
	
	
| Categories: <a href="http://www.lenholgate.com/archives/cat_geek_speak.html">Geek Speak</a>
, <a href="http://www.lenholgate.com/archives/cat_source_code.html">Source Code</a>

	</div>]]>

</description>
<guid isPermaLink="false">102@http://www.lenholgate.com/</guid>
<dc:subject>Geek Speak</dc:subject>
<dc:date>2003-06-22T20:34:21+00:00</dc:date>
</item>
<item>
<title>More socket server code updates</title>
<link>http://www.lenholgate.com/archives/000088.html</link>
<description>

I&apos;ve updated the code for two more of the socket server articles. More merging, project file updating, and testing... [NOTE: This code leaks when adjusted to build with Visual Studio 2005. This seems to be due to a bug in...

<![CDATA[<div class="posted">Posted by Len at <a href="http://www.lenholgate.com/archives/000088.html">12:21 AM</a>
		| <a href="http://www.lenholgate.com/mt/mt-comments-17.cgi?entry_id=88" >Comments (49)</a>
	
	
| Categories: <a href="http://www.lenholgate.com/archives/cat_socket_servers.html">Socket Servers</a>
, <a href="http://www.lenholgate.com/archives/cat_source_code.html">Source Code</a>

	</div>]]>

</description>
<guid isPermaLink="false">88@http://www.lenholgate.com/</guid>
<dc:subject>Socket Servers</dc:subject>
<dc:date>2003-06-15T00:21:09+00:00</dc:date>
</item>
<item>
<title>Socket Server code updates</title>
<link>http://www.lenholgate.com/archives/000082.html</link>
<description>

For some time I&apos;ve been promising to update the socket server articles to use the latest version of my code. Today I finally updated the code for the first article. I&apos;m going to update the article itself soon, but in...

<![CDATA[<div class="posted">Posted by Len at <a href="http://www.lenholgate.com/archives/000082.html">03:08 PM</a>
		| <a href="http://www.lenholgate.com/mt/mt-comments-17.cgi?entry_id=82" >Comments (102)</a>
	
	
| Categories: <a href="http://www.lenholgate.com/archives/cat_socket_servers.html">Socket Servers</a>
, <a href="http://www.lenholgate.com/archives/cat_source_code.html">Source Code</a>

	</div>]]>

</description>
<guid isPermaLink="false">82@http://www.lenholgate.com/</guid>
<dc:subject>Socket Servers</dc:subject>
<dc:date>2003-06-13T15:08:06+00:00</dc:date>
</item>
<item>
<title>Using OpenSSL with Asynchronous Sockets</title>
<link>http://www.lenholgate.com/archives/000456.html</link>
<description>

OpenSSL is an open source implementation of the SSL and TLS protocols. Unfortunately it doesn&apos;t play well with windows style asynchronous sockets. This article - previously published in Windows Developer Magazine - provides a simple connector that enables you to...

<![CDATA[<div class="posted">Posted by Len at <a href="http://www.lenholgate.com/archives/000456.html">01:08 PM</a>
		| <a href="http://www.lenholgate.com/mt/mt-comments-17.cgi?entry_id=456" >Comments (16)</a>
	
	
| Categories: <a href="http://www.lenholgate.com/archives/cat_reprints.html">Reprints</a>
, <a href="http://www.lenholgate.com/archives/cat_source_code.html">Source Code</a>

	</div>]]>

</description>
<guid isPermaLink="false">456@http://www.lenholgate.com/</guid>
<dc:subject>Reprints</dc:subject>
<dc:date>2002-11-04T13:08:58+00:00</dc:date>
</item>
<item>
<title>Sinking connection points in C++ objects.</title>
<link>http://www.lenholgate.com/archives/000513.html</link>
<description>

Sometimes it would be nice to be able to use a simple C++ object as a sink for Connection Point notifications. This article shows you how....

<![CDATA[<div class="posted">Posted by Len at <a href="http://www.lenholgate.com/archives/000513.html">01:00 AM</a>
		| <a href="http://www.lenholgate.com/mt/mt-comments-17.cgi?entry_id=513" >Comments (2)</a>
	
	
| Categories: <a href="http://www.lenholgate.com/archives/cat_reprints.html">Reprints</a>
, <a href="http://www.lenholgate.com/archives/cat_source_code.html">Source Code</a>
, <a href="http://www.lenholgate.com/archives/cat_way_back.html">Way back</a>

	</div>]]>

</description>
<guid isPermaLink="false">513@http://www.lenholgate.com/</guid>
<dc:subject>Reprints</dc:subject>
<dc:date>2002-05-30T01:00:00+00:00</dc:date>
</item>
<item>
<title>Designing asynchonous COM components for VB </title>
<link>http://www.lenholgate.com/archives/000514.html</link>
<description>

This example COM component provides three COM objects for using the Win32 Mailslot IPC mechanism. The component may be useful if you need to communicate from VB using Mailslots. However, the reason I wrote it was to demonstrate creating a...

<![CDATA[<div class="posted">Posted by Len at <a href="http://www.lenholgate.com/archives/000514.html">01:00 AM</a>
		| <a href="http://www.lenholgate.com/mt/mt-comments-17.cgi?entry_id=514" >Comments (0)</a>
	
	
| Categories: <a href="http://www.lenholgate.com/archives/cat_reprints.html">Reprints</a>
, <a href="http://www.lenholgate.com/archives/cat_source_code.html">Source Code</a>
, <a href="http://www.lenholgate.com/archives/cat_way_back.html">Way back</a>

	</div>]]>

</description>
<guid isPermaLink="false">514@http://www.lenholgate.com/</guid>
<dc:subject>Reprints</dc:subject>
<dc:date>2002-04-11T01:00:00+00:00</dc:date>
</item>
<item>
<title>AVL Tree</title>
<link>http://www.lenholgate.com/archives/000460.html</link>
<description>

A &quot;generic&quot; AVL Tree, from the dark days before templates... The code here is some of my first C++. Back in 1991 C++ was still pretty new. Looking back at my early C++ is better than looking back at my...

<![CDATA[<div class="posted">Posted by Len at <a href="http://www.lenholgate.com/archives/000460.html">11:31 AM</a>
		| <a href="http://www.lenholgate.com/mt/mt-comments-17.cgi?entry_id=460" >Comments (2)</a>
	
	
| Categories: <a href="http://www.lenholgate.com/archives/cat_reprints.html">Reprints</a>
, <a href="http://www.lenholgate.com/archives/cat_source_code.html">Source Code</a>
, <a href="http://www.lenholgate.com/archives/cat_way_back.html">Way back</a>

	</div>]]>

</description>
<guid isPermaLink="false">460@http://www.lenholgate.com/</guid>
<dc:subject>Reprints</dc:subject>
<dc:date>2001-08-07T11:31:56+00:00</dc:date>
</item>
<item>
<title>Rooms 1.7</title>
<link>http://www.lenholgate.com/archives/000459.html</link>
<description>

In 1989 I taught myself C to write an adventure game, the code&apos;s fairly bad, but 10 year&apos;s later, the game&apos;s still quite cool!...

<![CDATA[<div class="posted">Posted by Len at <a href="http://www.lenholgate.com/archives/000459.html">11:25 AM</a>
		| <a href="http://www.lenholgate.com/mt/mt-comments-17.cgi?entry_id=459" >Comments (0)</a>
	
	
| Categories: <a href="http://www.lenholgate.com/archives/cat_reprints.html">Reprints</a>
, <a href="http://www.lenholgate.com/archives/cat_source_code.html">Source Code</a>
, <a href="http://www.lenholgate.com/archives/cat_way_back.html">Way back</a>

	</div>]]>

</description>
<guid isPermaLink="false">459@http://www.lenholgate.com/</guid>
<dc:subject>Reprints</dc:subject>
<dc:date>2001-08-02T11:25:01+00:00</dc:date>
</item>
<item>
<title>Java caches in the middle tier</title>
<link>http://www.lenholgate.com/archives/000335.html</link>
<description>

A common way to improve the performance of Java code is to cache objects rather than repeatedly create and destroy them. This is especially true when you&apos;re writing middle tier servers that service client requests and return results objects. Implementing a flexible caching scheme in Java is relatively easy, but there are a few things to watch for.

<![CDATA[<div class="posted">Posted by Len at <a href="http://www.lenholgate.com/archives/000335.html">08:18 PM</a>
		| <a href="http://www.lenholgate.com/mt/mt-comments-17.cgi?entry_id=335" >Comments (5)</a>
	
	
| Categories: <a href="http://www.lenholgate.com/archives/cat_reprints.html">Reprints</a>
, <a href="http://www.lenholgate.com/archives/cat_source_code.html">Source Code</a>
, <a href="http://www.lenholgate.com/archives/cat_way_back.html">Way back</a>

	</div>]]>

</description>
<guid isPermaLink="false">335@http://www.lenholgate.com/</guid>
<dc:subject>Way back</dc:subject>
<dc:date>2001-07-26T20:18:27+00:00</dc:date>
</item>
<item>
<title>The CORBA Evictor Pattern in Java</title>
<link>http://www.lenholgate.com/archives/000478.html</link>
<description>

When a CORBA server allows its clients to create and destroy objects one of the recommended ways to handle the object lifetime issues is using the Evictor Pattern. In The Evictor Pattern we solved the problem for C++ servers, here...

<![CDATA[<div class="posted">Posted by Len at <a href="http://www.lenholgate.com/archives/000478.html">01:00 AM</a>
		| <a href="http://www.lenholgate.com/mt/mt-comments-17.cgi?entry_id=478" >Comments (0)</a>
	
	
| Categories: <a href="http://www.lenholgate.com/archives/cat_reprints.html">Reprints</a>
, <a href="http://www.lenholgate.com/archives/cat_source_code.html">Source Code</a>
, <a href="http://www.lenholgate.com/archives/cat_way_back.html">Way back</a>

	</div>]]>

</description>
<guid isPermaLink="false">478@http://www.lenholgate.com/</guid>
<dc:subject>Reprints</dc:subject>
<dc:date>2001-07-23T01:00:00+00:00</dc:date>
</item>


</channel>
</rss>
