<?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>Darkly Colored Felines of Fury &#187; code</title>
	<atom:link href="http://blackcat.ca/category/code/feed/" rel="self" type="application/rss+xml" />
	<link>http://blackcat.ca</link>
	<description>Personal site for Patrick Audley and Blackcat Systems.</description>
	<lastBuildDate>Mon, 31 Jan 2011 05:11:30 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
<atom:link rel="hub" href="http://pubsubhubbub.appspot.com" />
	<atom:link rel="hub" href="http://superfeedr.com/hubbub" />
			<item>
		<title>TSM Daily Reporting Script</title>
		<link>http://blackcat.ca/code/tsmdailyrep</link>
		<comments>http://blackcat.ca/code/tsmdailyrep#comments</comments>
		<pubDate>Mon, 13 Aug 2007 05:33:27 +0000</pubDate>
		<dc:creator>Patrick Audley</dc:creator>
				<category><![CDATA[administravia]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[lifelines]]></category>
		<category><![CDATA[career]]></category>
		<category><![CDATA[reporting]]></category>
		<category><![CDATA[scripting]]></category>
		<category><![CDATA[tape-backup]]></category>
		<category><![CDATA[tivoli-storage-manager]]></category>
		<category><![CDATA[tsm]]></category>
		<category><![CDATA[UNIX]]></category>

		<guid isPermaLink="false">http://blackcat.ca/code/tsmdailyrep</guid>
		<description><![CDATA[This program attempts to give a TSM administrator a daily report that contains all the things that need to be periodically looked at. ]]></description>
			<content:encoded><![CDATA[<div class="code event" id="paudley" language="perl" docs="http://blackcat.ca/svn/trunk/tsmdailyrep/docs/index.html" license="gpl" svn="http://blackcat.ca/svn/trunk/tsmdailyrep" download="http://blackcat.ca/svn/trunk/tsmdailyrep/tsm_daily_report">

<ul>
  <li>for <a href="http://www-306.ibm.com/software/tivoli/products/storage-mgr/" rel="nofollow" >Tivoli Storage Manager</a></li>
  <li>Documentation: <a href="http://blackcat.ca/svn/trunk/tsmdailyrep/docs/index.html">http://blackcat.ca/svn/trunk/tsmdailyrep/docs/index.html</a></li>
</ul>
 
See the <a href="http://blackcat.ca/svn/trunk/tsmdailyrep/tsm_report.txt">sample report</a> for an idea of that this program does.

TSM is a data management solution that is offered by IBM. It&rsquo;s a huge, sprawling, flexible monstrosity that work perfectly...  if you watch it and keep it fed and watered.  TSM is also very scriptable and extensible. 

This program attempts to give a TSM administrator a daily report that contains all the things that need to be periodically looked at.  Wherever possible it will offer advice on how to fix problems found or attempt to resolve them itself.  It will generate a nice email with the report and will modify the subject to flag and problems found so that you know when it&rsquo;s really important to have a peek inside the report.

If you know of anything that you&rsquo;d like added, you find a bug, or just can&rsquo;t get it to run for you, please email me at <a href="mailto:paudley@blackcat.ca" rel="nofollow" >paudley@blackcat.ca</a> and I&rsquo;ll see what I can do to help.  Please Note:  I no longer have regular access to a TSM system for testing, if you&rsquo;d like troubleshooting I can probably work something remotely.

Thanks to the many people that have passed along code or suggestions and to the <a href="http://www.wellcome.ac.uk/" rel="nofollow" >Wellcome Trust</a> for funding my time at the <a href="http://blackcat.ca/lifelines/bioinform001">University of Dundee</a>.

</div><hr /><small>Copyright &copy; 2008<br /> This feed is for personal, non-commercial use only. <br /> The use of this feed on other websites breaches copyright. If this content is not in your news reader, it makes the page you are viewing an infringement of the copyright.
<br />(Digital Fingerprint: cfff7e1e3e6e5c08c1a37419a1a77926)</small><h3>Related Posts</h3><ul class="related_post"><li><a href="http://blackcat.ca/curriculum_vitae/" title="Curriculum Vitae">Curriculum Vitae</a></li><li><a href="http://blackcat.ca/lifelines/yarr-or-boat" title="Yarr!">Yarr!</a></li><li><a href="http://blackcat.ca/lifelines/a-less-twisty-road" title="A Less Twisty Road">A Less Twisty Road</a></li><li><a href="http://blackcat.ca/lifelines/fall-is-the-season-of-change" title="Fall is the Season of Change">Fall is the Season of Change</a></li><li><a href="http://blackcat.ca/work/cogneto004" title="Leaving Cogneto">Leaving Cogneto</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://blackcat.ca/code/tsmdailyrep/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bench GCC</title>
		<link>http://blackcat.ca/code/benchgcc</link>
		<comments>http://blackcat.ca/code/benchgcc#comments</comments>
		<pubDate>Wed, 22 Sep 2004 22:22:49 +0000</pubDate>
		<dc:creator>Patrick Audley</dc:creator>
				<category><![CDATA[code]]></category>
		<category><![CDATA[benchmarking]]></category>
		<category><![CDATA[gcc]]></category>
		<category><![CDATA[shell-scripts]]></category>
		<category><![CDATA[utilities]]></category>

		<guid isPermaLink="false">http://blackcat.ca/code/benchgcc</guid>
		<description><![CDATA[Tired of guessing which compiler flags work best for your pet projects? bench_gcc allows you to test the effect of different compiler flag (and compilers if you wish) on your source using real world tests. All you need is a target program (with source) and a scriptable test case. Copyright &#169; 2008 This feed is [...]]]></description>
			<content:encoded><![CDATA[<div class="code event" id="paudley" language="perl" docs="http://blackcat.ca/svn/trunk/bench_gcc/docs/index.html" license="gpl" svn="http://blackcat.ca/svn/trunk/bench_gcc" download="http://blackcat.ca/svn/trunk/bench_gcc/bench_gcc">

Tired of guessing which compiler flags work best for your pet projects?

bench_gcc allows you to test the effect of different compiler flag (and compilers if you wish) on your source using real world tests.  All you need is a target program (with source) and a scriptable test case.

</div><hr /><small>Copyright &copy; 2008<br /> This feed is for personal, non-commercial use only. <br /> The use of this feed on other websites breaches copyright. If this content is not in your news reader, it makes the page you are viewing an infringement of the copyright.
<br />(Digital Fingerprint: cfff7e1e3e6e5c08c1a37419a1a77926)</small><h3>Related Posts</h3><ul class="related_post"><li><a href="http://blackcat.ca/code/unittest" title="C++ Unit Testing Macros">C++ Unit Testing Macros</a></li><li><a href="http://blackcat.ca/curriculum_vitae/" title="Curriculum Vitae">Curriculum Vitae</a></li><li><a href="http://blackcat.ca/code/lrucache" title="C++ LRU Cache Template">C++ LRU Cache Template</a></li><li><a href="http://blackcat.ca/code/vmalloc" title="Validating Malloc">Validating Malloc</a></li><li><a href="http://blackcat.ca/work/bioinform002" title="Bioinformatics Feb. 2003">Bioinformatics Feb. 2003</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://blackcat.ca/code/benchgcc/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>C++ Unit Testing Macros</title>
		<link>http://blackcat.ca/code/unittest</link>
		<comments>http://blackcat.ca/code/unittest#comments</comments>
		<pubDate>Sat, 17 Apr 2004 20:46:49 +0000</pubDate>
		<dc:creator>Patrick Audley</dc:creator>
				<category><![CDATA[code]]></category>
		<category><![CDATA[benchmarking]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[snippets]]></category>
		<category><![CDATA[unit-test]]></category>

		<guid isPermaLink="false">http://blackcat.ca/code/unittest</guid>
		<description><![CDATA[Simple framework for integrating unit tests into C++ source files. Also contains some benchmarking routines and documentation on how to integrate it with automake. This is just a refactoring of private code that I've used in several projects and have found useful &emdash; it's not a substitute for a larger framework like CppUnit. Copyright &#169; [...]]]></description>
			<content:encoded><![CDATA[<div class="code event" id="paudley" language="c++" docs="http://blackcat.ca/svn/trunk/unit_test/docs/" license="gpl" svn="http://blackcat.ca/svn/trunk/unit_test" download="http://blackcat.ca/svn/trunk/unit_test/unit_test.h">

Simple framework for integrating unit tests into C++ source files.  Also contains some benchmarking routines and documentation on how to integrate it with automake.

This is just a refactoring of private code that I've used in several projects and have found useful &emdash; it's not a substitute for a larger framework like <a href="http://cppunit.sourceforge.net/" rel="nofollow" >CppUnit</a>.

</div><hr /><small>Copyright &copy; 2008<br /> This feed is for personal, non-commercial use only. <br /> The use of this feed on other websites breaches copyright. If this content is not in your news reader, it makes the page you are viewing an infringement of the copyright.
<br />(Digital Fingerprint: cfff7e1e3e6e5c08c1a37419a1a77926)</small><h3>Related Posts</h3><ul class="related_post"><li><a href="http://blackcat.ca/curriculum_vitae/" title="Curriculum Vitae">Curriculum Vitae</a></li><li><a href="http://blackcat.ca/code/benchgcc" title="Bench GCC">Bench GCC</a></li><li><a href="http://blackcat.ca/code/lrucache" title="C++ LRU Cache Template">C++ LRU Cache Template</a></li><li><a href="http://blackcat.ca/code/vmalloc" title="Validating Malloc">Validating Malloc</a></li><li><a href="http://blackcat.ca/work/bioinform002" title="Bioinformatics Feb. 2003">Bioinformatics Feb. 2003</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://blackcat.ca/code/unittest/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>C++ LRU Cache Template</title>
		<link>http://blackcat.ca/code/lrucache</link>
		<comments>http://blackcat.ca/code/lrucache#comments</comments>
		<pubDate>Thu, 08 Apr 2004 14:57:57 +0000</pubDate>
		<dc:creator>Patrick Audley</dc:creator>
				<category><![CDATA[code]]></category>
		<category><![CDATA[lifelines]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[caching]]></category>
		<category><![CDATA[career]]></category>
		<category><![CDATA[least-recently-used]]></category>
		<category><![CDATA[stl]]></category>
		<category><![CDATA[templates]]></category>

		<guid isPermaLink="false">http://blackcat.ca/code/lrucache</guid>
		<description><![CDATA[Fast, thread safe C++ template with Least Recently Used (LRU) removal semantics. Complete with a comprehensive unit test suite. Threading features require the BOOST scientific library to be installed. Copyright &#169; 2008 This feed is for personal, non-commercial use only. The use of this feed on other websites breaches copyright. If this content is not [...]]]></description>
			<content:encoded><![CDATA[<div class="code event" id="paudley" language="c++" subtitle="Simple Caching Primitives" docs="http://blackcat.ca/svn/trunk/lrucache/docs/index.html" license="gpl" svn="http://blackcat.ca/svn/trunk/lrucache" download="http://blackcat.ca/downloads/lru_cache.tar.gz">

Fast, thread safe C++ template with Least Recently Used (LRU) removal semantics.  Complete with a comprehensive unit test suite.  Threading features require the BOOST scientific library to be installed.

</div><hr /><small>Copyright &copy; 2008<br /> This feed is for personal, non-commercial use only. <br /> The use of this feed on other websites breaches copyright. If this content is not in your news reader, it makes the page you are viewing an infringement of the copyright.
<br />(Digital Fingerprint: cfff7e1e3e6e5c08c1a37419a1a77926)</small><h3>Related Posts</h3><ul class="related_post"><li><a href="http://blackcat.ca/curriculum_vitae/" title="Curriculum Vitae">Curriculum Vitae</a></li><li><a href="http://blackcat.ca/code/unittest" title="C++ Unit Testing Macros">C++ Unit Testing Macros</a></li><li><a href="http://blackcat.ca/code/vmalloc" title="Validating Malloc">Validating Malloc</a></li><li><a href="http://blackcat.ca/work/bioinform002" title="Bioinformatics Feb. 2003">Bioinformatics Feb. 2003</a></li><li><a href="http://blackcat.ca/lifelines/yarr-or-boat" title="Yarr!">Yarr!</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://blackcat.ca/code/lrucache/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Validating Malloc</title>
		<link>http://blackcat.ca/code/vmalloc</link>
		<comments>http://blackcat.ca/code/vmalloc#comments</comments>
		<pubDate>Mon, 17 Nov 2003 21:23:50 +0000</pubDate>
		<dc:creator>Patrick Audley</dc:creator>
				<category><![CDATA[code]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[debugging]]></category>
		<category><![CDATA[libraries]]></category>
		<category><![CDATA[open-source]]></category>
		<category><![CDATA[validating-malloc]]></category>

		<guid isPermaLink="false">http://blackcat.ca/code/vmalloc</guid>
		<description><![CDATA[A validating malloc in less than 200 lines of code (excluding comments). It's written in C++ using the STL for efficiency but all function are declared using C linkage so you can use them from either C or C++ very easily. There are lots of debugging malloc implementations, why another? Most of the implementations that [...]]]></description>
			<content:encoded><![CDATA[<div class="code event" id="paudley" language="c++,c" subtitle="lightweight memory checking" docs="http://blackcat.ca/svn/trunk/vmalloc/docs/html/index.html" license="gpl" svn="http://blackcat.ca/svn/trunk/vmalloc" download="http://blackcat.ca/downloads/vmalloc_1.0.tar.gz">

A validating malloc in less than 200 lines of code (excluding comments).  It's written in C++ using the STL for efficiency but all function are declared using C linkage so you can use them from either C or C++ very easily.

There are lots of debugging malloc implementations, why another? Most of the implementations that I've found have been huge or not easy to understand and modify.  This implementation is simple and well documented.  It's easy to understand how it works and modify it's behaviour of you don't like something.

Currently it understands and tries to catch:

<ul>
<li>Freeing already freed memory.</li>
<li>Reallocing pointers not previously malloced.</li>
<li>Over and under runs on malloced regions.</li>
<li>Failure to free memory before program exit.</li>
</ul>

It also contains utility routines that:

<ul>
<li>Hexdump regions on memory.</li>
<li>Allow annotation of memory regions.</li>
</ul>

which are useful on their own.  Examples are provided of all the above in the "examples" directory of the distribution.

</div><hr /><small>Copyright &copy; 2008<br /> This feed is for personal, non-commercial use only. <br /> The use of this feed on other websites breaches copyright. If this content is not in your news reader, it makes the page you are viewing an infringement of the copyright.
<br />(Digital Fingerprint: cfff7e1e3e6e5c08c1a37419a1a77926)</small><h3>Related Posts</h3><ul class="related_post"><li><a href="http://blackcat.ca/curriculum_vitae/" title="Curriculum Vitae">Curriculum Vitae</a></li><li><a href="http://blackcat.ca/code/unittest" title="C++ Unit Testing Macros">C++ Unit Testing Macros</a></li><li><a href="http://blackcat.ca/code/lrucache" title="C++ LRU Cache Template">C++ LRU Cache Template</a></li><li><a href="http://blackcat.ca/code/benchgcc" title="Bench GCC">Bench GCC</a></li><li><a href="http://blackcat.ca/work/bioinform002" title="Bioinformatics Feb. 2003">Bioinformatics Feb. 2003</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://blackcat.ca/code/vmalloc/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

