<?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>matthew-jones.com</title>
	<atom:link href="http://matthew-jones.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://matthew-jones.com</link>
	<description>Ramblings from a developer</description>
	<lastBuildDate>Thu, 25 Mar 2010 12:24:14 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Ban the iPad!</title>
		<link>http://matthew-jones.com/ban-the-ipad/</link>
		<comments>http://matthew-jones.com/ban-the-ipad/#comments</comments>
		<pubDate>Thu, 11 Feb 2010 13:17:30 +0000</pubDate>
		<dc:creator>Matthew</dc:creator>
				<category><![CDATA[Off-topic]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[iPad]]></category>
		<category><![CDATA[Sci-Fi]]></category>

		<guid isPermaLink="false">http://test.matthew-jones.com/?p=61</guid>
		<description><![CDATA[I think Apple should be banned from making the iPad. And tablet PCs generally should be banned. Think about how kids will grow up having tablets in the house as common items. They will watch TV programmes like Star Trek &#8230; <a href="http://matthew-jones.com/ban-the-ipad/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I think Apple should be banned from making the iPad. And tablet PCs<br />
generally should be banned.</p>
<p>Think about how kids will grow up having tablets in the house as common items. They will watch TV programmes like Star Trek and see them using the PADD that was ahead of its time, and the kids will think it is just normal! <em>No people</em>, such things are the future! The Star Trek communicator already looks old fashioned, and what is going to be left for kids to think are not normal but futuristic?</p>
<p>Ban them now!</p>
<div id="_mcePaste">Edit: I&#8217;ve been to see Avatar, and the world is set to right again. Clear &#8220;glass&#8221; pads and lovely 3D visualisers. It will be a year or two before Apple or anyone brings out devices like that. The future is safe.</div>


<div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center">
<ul class="socials">
		<li class="shr-comfeed">
			<a href="http://matthew-jones.com/ban-the-ipad/feed" rel="nofollow" class="external" title="Subscribe to the comments for this post?">Subscribe to the comments for this post?</a>
		</li>
		<li class="shr-delicious">
			<a href="http://delicious.com/post?url=http://matthew-jones.com/ban-the-ipad/&amp;title=Ban+the+iPad%21" rel="nofollow" class="external" title="Share this on del.icio.us">Share this on del.icio.us</a>
		</li>
		<li class="shr-digg">
			<a href="http://digg.com/submit?phase=2&amp;url=http://matthew-jones.com/ban-the-ipad/&amp;title=Ban+the+iPad%21" rel="nofollow" class="external" title="Digg this!">Digg this!</a>
		</li>
		<li class="shr-diigo">
			<a href="http://www.diigo.com/post?url=http://matthew-jones.com/ban-the-ipad/&amp;title=Ban+the+iPad%21&amp;desc=I%20think%20Apple%20should%20be%20banned%20from%20making%20the%20iPad.%20And%20tablet%20PCs%0D%0Agenerally%20should%20be%20banned.%0D%0A%0D%0AThink%20about%20how%20kids%20will%20grow%20up%20having%20tablets%20in%20the%20house%20as%20common%20items.%20They%20will%20watch%20TV%20programmes%20like%20Star%20Trek%20and%20see%20them%20using%20the%20PADD%20that%20was%20ahead%20of%20its%20time%2C%20and%20the%20kids%20will%20th" rel="nofollow" class="external" title="Post this on Diigo">Post this on Diigo</a>
		</li>
		<li class="shr-facebook">
			<a href="http://www.facebook.com/share.php?v=4&amp;src=bm&amp;u=http://matthew-jones.com/ban-the-ipad/&amp;t=Ban+the+iPad%21" rel="nofollow" class="external" title="Share this on Facebook">Share this on Facebook</a>
		</li>
		<li class="shr-googlebuzz">
			<a href="http://www.google.com/buzz/post?url=http://matthew-jones.com/ban-the-ipad/&amp;imageurl=" rel="nofollow" class="external" title="Post on Google Buzz">Post on Google Buzz</a>
		</li>
		<li class="shr-mixx">
			<a href="http://www.mixx.com/submit?page_url=http://matthew-jones.com/ban-the-ipad/&amp;title=Ban+the+iPad%21" rel="nofollow" class="external" title="Share this on Mixx">Share this on Mixx</a>
		</li>
		<li class="shr-reddit">
			<a href="http://reddit.com/submit?url=http://matthew-jones.com/ban-the-ipad/&amp;title=Ban+the+iPad%21" rel="nofollow" class="external" title="Share this on Reddit">Share this on Reddit</a>
		</li>
		<li class="shr-stumbleupon">
			<a href="http://www.stumbleupon.com/submit?url=http://matthew-jones.com/ban-the-ipad/&amp;title=Ban+the+iPad%21" rel="nofollow" class="external" title="Stumble upon something good? Share it on StumbleUpon">Stumble upon something good? Share it on StumbleUpon</a>
		</li>
		<li class="shr-technorati">
			<a href="http://technorati.com/faves?add=http://matthew-jones.com/ban-the-ipad/" rel="nofollow" class="external" title="Share this on Technorati">Share this on Technorati</a>
		</li>
		<li class="shr-twitter">
			<a href="http://twitter.com/home?status=Ban+the+iPad%21+-+http://b2l.me/4ndnw&amp;source=shareaholic" rel="nofollow" class="external" title="Tweet This!">Tweet This!</a>
		</li>
</ul>
<div style="clear:both;"></div>
</div>

]]></content:encoded>
			<wfw:commentRss>http://matthew-jones.com/ban-the-ipad/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>EnTabFile &#8211; a Windows tool to EnTab a source file</title>
		<link>http://matthew-jones.com/entabfile-a-windows-tool-to-entab-a-source-file/</link>
		<comments>http://matthew-jones.com/entabfile-a-windows-tool-to-entab-a-source-file/#comments</comments>
		<pubDate>Mon, 07 Dec 2009 19:56:40 +0000</pubDate>
		<dc:creator>Matthew</dc:creator>
				<category><![CDATA[Downloads]]></category>
		<category><![CDATA[Delphi]]></category>
		<category><![CDATA[Tabs]]></category>

		<guid isPermaLink="false">http://test.matthew-jones.com/?p=27</guid>
		<description><![CDATA[EnTabFile is a tool to convert the spaces at the start of each line in a file to tabs. This allows them to work better in editors that support proper tabs. It is primarily designed to be used as a &#8230; <a href="http://matthew-jones.com/entabfile-a-windows-tool-to-entab-a-source-file/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>EnTabFile is a tool to convert the spaces at the start of each line in a       file to tabs. This allows them to work better in editors that support proper       tabs. It is primarily designed to be used as a command line tool, but supports       manual operation too.</p>
<h2>How EnTab works</h2>
<p>This tool is quite simple &#8211; it just removes spaces at the start of each         line of an ANSI text file and replaces them with tab characters. It does         not replace any spaces anywhere else in the line &#8211; it stops once it find         anything that isn&#8217;t a space.</p>
<p>The number of spaces used for each tab is settable in the user interfaace,       but the tool is really designed to be used from the command line as part       of a bigger process &#8211; perhaps source code reformatting using something       like DelForExp. Set DelForExp to output 4 spaces for each tab, and then       use EnTabFile to convert every 4 spaces into a tab.</p>
<p>Note that if an incomplete set of spaces is found, a tab will still be       output. Thus if there are 6 spaces and the tab setting is 4, then 2 tabs       will be output. No spaces are ever left at the start of a line.</p>
<p>For safety, it will save an original copy with the extension &#8220;.pretab&#8221; that       you can use to compare. If it already exists, no copy is made so that the       entab can be done multiple times and the original is still there.</p>
<h2>Manual use:</h2>
<p>Run the application, and type in the name of the file you wish to entab.         You can click the &#8216;&#8230;&#8217; button to use a browser.</p>
<p>Select the number of spaces per tab.</p>
<p>Click &#8220;Entab&#8221; and it will be loaded, converted, and saved. A       progress bar shows the activity.</p>
<h2>Command line use:</h2>
<p>Run the application with the filepath for the file you want converted.       The full path should be specified for proper operation of the backup.</p>
<p>Only a single file can be specified on the command line.</p>
<p>You can specify the tab size using the command line switch /1, /2 /3 /4       /5 /6 /7 or /8.</p>
<p>With a command line, the app will convert the file (if it exists!) and       then close immediately.</p>
<h2>Delphi Integration:</h2>
<p>For use within Delphi, you can add it to the Tools menu. The following       are suggestions:</p>
<p>Title: EnTab this file<br />
Program: [PATH TO FILE]\EnTabFile.exe<br />
Working Directory: [PATH TO FILE]<br />
Parameters: $SAVE $EDNAME</p>
<p>Note that if run after DelForExp, you will have to save before it can       convert. After Entabbing, Delphi will say the file has changed and do you       want to reload. The answer should always be yes or the tabs will not be       loaded!</p>
<p><img src="http://www.matthew-jones.com/images/entab-delphi.gif" alt="" width="432" height="191" /></p>
<h2>Download</h2>
<p>A zip file with these basic instructions and the self-contained application       are available via the link: <a href="http://www.matthew-jones.com/download/EnTab.zip">EnTab for Windows</a>.       No installer is needed &#8211; just put the file in a suitable location, unzip       it, and start using it.</p>


<div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center">
<ul class="socials">
		<li class="shr-comfeed">
			<a href="http://matthew-jones.com/entabfile-a-windows-tool-to-entab-a-source-file/feed" rel="nofollow" class="external" title="Subscribe to the comments for this post?">Subscribe to the comments for this post?</a>
		</li>
		<li class="shr-delicious">
			<a href="http://delicious.com/post?url=http://matthew-jones.com/entabfile-a-windows-tool-to-entab-a-source-file/&amp;title=EnTabFile+-+a+Windows+tool+to+EnTab+a+source+file" rel="nofollow" class="external" title="Share this on del.icio.us">Share this on del.icio.us</a>
		</li>
		<li class="shr-digg">
			<a href="http://digg.com/submit?phase=2&amp;url=http://matthew-jones.com/entabfile-a-windows-tool-to-entab-a-source-file/&amp;title=EnTabFile+-+a+Windows+tool+to+EnTab+a+source+file" rel="nofollow" class="external" title="Digg this!">Digg this!</a>
		</li>
		<li class="shr-diigo">
			<a href="http://www.diigo.com/post?url=http://matthew-jones.com/entabfile-a-windows-tool-to-entab-a-source-file/&amp;title=EnTabFile+-+a+Windows+tool+to+EnTab+a+source+file&amp;desc=EnTabFile%20is%20a%20tool%20to%20convert%20the%20spaces%20at%20the%20start%20of%20each%20line%20in%20a%20%20%20%20%20%20%20file%20to%20tabs.%20This%20allows%20them%20to%20work%20better%20in%20editors%20that%20support%20proper%20%20%20%20%20%20%20tabs.%20It%20is%20primarily%20designed%20to%20be%20used%20as%20a%20command%20line%20tool%2C%20but%20supports%20%20%20%20%20%20%20manual%20operation%20too.%0D%0AHow%20EnTab%20works%0D%0AThis%20tool%20is%20" rel="nofollow" class="external" title="Post this on Diigo">Post this on Diigo</a>
		</li>
		<li class="shr-facebook">
			<a href="http://www.facebook.com/share.php?v=4&amp;src=bm&amp;u=http://matthew-jones.com/entabfile-a-windows-tool-to-entab-a-source-file/&amp;t=EnTabFile+-+a+Windows+tool+to+EnTab+a+source+file" rel="nofollow" class="external" title="Share this on Facebook">Share this on Facebook</a>
		</li>
		<li class="shr-googlebuzz">
			<a href="http://www.google.com/buzz/post?url=http://matthew-jones.com/entabfile-a-windows-tool-to-entab-a-source-file/&amp;imageurl=" rel="nofollow" class="external" title="Post on Google Buzz">Post on Google Buzz</a>
		</li>
		<li class="shr-mixx">
			<a href="http://www.mixx.com/submit?page_url=http://matthew-jones.com/entabfile-a-windows-tool-to-entab-a-source-file/&amp;title=EnTabFile+-+a+Windows+tool+to+EnTab+a+source+file" rel="nofollow" class="external" title="Share this on Mixx">Share this on Mixx</a>
		</li>
		<li class="shr-reddit">
			<a href="http://reddit.com/submit?url=http://matthew-jones.com/entabfile-a-windows-tool-to-entab-a-source-file/&amp;title=EnTabFile+-+a+Windows+tool+to+EnTab+a+source+file" rel="nofollow" class="external" title="Share this on Reddit">Share this on Reddit</a>
		</li>
		<li class="shr-stumbleupon">
			<a href="http://www.stumbleupon.com/submit?url=http://matthew-jones.com/entabfile-a-windows-tool-to-entab-a-source-file/&amp;title=EnTabFile+-+a+Windows+tool+to+EnTab+a+source+file" rel="nofollow" class="external" title="Stumble upon something good? Share it on StumbleUpon">Stumble upon something good? Share it on StumbleUpon</a>
		</li>
		<li class="shr-technorati">
			<a href="http://technorati.com/faves?add=http://matthew-jones.com/entabfile-a-windows-tool-to-entab-a-source-file/" rel="nofollow" class="external" title="Share this on Technorati">Share this on Technorati</a>
		</li>
		<li class="shr-twitter">
			<a href="http://twitter.com/home?status=EnTabFile+-+a+Windows+tool+to+EnTab+a+source+file+-+http://b2l.me/4uw4g&amp;source=shareaholic" rel="nofollow" class="external" title="Tweet This!">Tweet This!</a>
		</li>
</ul>
<div style="clear:both;"></div>
</div>

]]></content:encoded>
			<wfw:commentRss>http://matthew-jones.com/entabfile-a-windows-tool-to-entab-a-source-file/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Transport Integrity Checker</title>
		<link>http://matthew-jones.com/91/</link>
		<comments>http://matthew-jones.com/91/#comments</comments>
		<pubDate>Wed, 18 Feb 2009 13:37:04 +0000</pubDate>
		<dc:creator>Matthew</dc:creator>
				<category><![CDATA[Downloads]]></category>

		<guid isPermaLink="false">http://matthew-jones.com/91/</guid>
		<description><![CDATA[This integrity checker is designed to work data transport and storage systems, such as network connections and disk storage (particularly removable media). This is done by writing sequences of numbers repeatedly and then reading them back again. There should never &#8230; <a href="http://matthew-jones.com/91/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>This integrity checker is designed to work data transport and storage systems, such as network connections and disk storage (particularly removable media). This is done by writing sequences of numbers repeatedly and then reading them back again. There should never be any difference, but sometimes a bad device driver or media causes corruption &#8211; this application will help you check if this is happening. It doesn&#8217;t provide any cures, but it can help prove that you have a problem, and where it is.</p>
<p>For really thorough testing, use both of the checkers included in the app over the same transport simultaneously &#8211; the application is truly multi-threaded so they will each go full speed and work the transport hard.</p>
<p>There is no cost for this application &#8211; it is provided as-is for free. But if you are looking for some custom development work done, you might like to consider me as a candidate &#8211; see my contracting page.</p>
<p>Note: This file is a pre-release version, but based on stable code used in a DOS based version. If you see any issues, please let me know.</p>
<p><a href="http://test.matthew-jones.com/downloads/integritychecker.zip">Download IntegrityChecker.zip now</a> &#8211; updated 02 Apr 2002</p>


<div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center">
<ul class="socials">
		<li class="shr-comfeed">
			<a href="http://matthew-jones.com/91/feed" rel="nofollow" class="external" title="Subscribe to the comments for this post?">Subscribe to the comments for this post?</a>
		</li>
		<li class="shr-delicious">
			<a href="http://delicious.com/post?url=http://matthew-jones.com/91/&amp;title=Transport+Integrity+Checker" rel="nofollow" class="external" title="Share this on del.icio.us">Share this on del.icio.us</a>
		</li>
		<li class="shr-digg">
			<a href="http://digg.com/submit?phase=2&amp;url=http://matthew-jones.com/91/&amp;title=Transport+Integrity+Checker" rel="nofollow" class="external" title="Digg this!">Digg this!</a>
		</li>
		<li class="shr-diigo">
			<a href="http://www.diigo.com/post?url=http://matthew-jones.com/91/&amp;title=Transport+Integrity+Checker&amp;desc=This%20integrity%20checker%20is%20designed%20to%20work%20data%20transport%20and%20storage%20systems%2C%20such%20as%20network%20connections%20and%20disk%20storage%20%28particularly%20removable%20media%29.%20This%20is%20done%20by%20writing%20sequences%20of%20numbers%20repeatedly%20and%20then%20reading%20them%20back%20again.%20There%20should%20never%20be%20any%20difference%2C%20but%20sometimes%20a%20" rel="nofollow" class="external" title="Post this on Diigo">Post this on Diigo</a>
		</li>
		<li class="shr-facebook">
			<a href="http://www.facebook.com/share.php?v=4&amp;src=bm&amp;u=http://matthew-jones.com/91/&amp;t=Transport+Integrity+Checker" rel="nofollow" class="external" title="Share this on Facebook">Share this on Facebook</a>
		</li>
		<li class="shr-googlebuzz">
			<a href="http://www.google.com/buzz/post?url=http://matthew-jones.com/91/&amp;imageurl=" rel="nofollow" class="external" title="Post on Google Buzz">Post on Google Buzz</a>
		</li>
		<li class="shr-mixx">
			<a href="http://www.mixx.com/submit?page_url=http://matthew-jones.com/91/&amp;title=Transport+Integrity+Checker" rel="nofollow" class="external" title="Share this on Mixx">Share this on Mixx</a>
		</li>
		<li class="shr-reddit">
			<a href="http://reddit.com/submit?url=http://matthew-jones.com/91/&amp;title=Transport+Integrity+Checker" rel="nofollow" class="external" title="Share this on Reddit">Share this on Reddit</a>
		</li>
		<li class="shr-stumbleupon">
			<a href="http://www.stumbleupon.com/submit?url=http://matthew-jones.com/91/&amp;title=Transport+Integrity+Checker" rel="nofollow" class="external" title="Stumble upon something good? Share it on StumbleUpon">Stumble upon something good? Share it on StumbleUpon</a>
		</li>
		<li class="shr-technorati">
			<a href="http://technorati.com/faves?add=http://matthew-jones.com/91/" rel="nofollow" class="external" title="Share this on Technorati">Share this on Technorati</a>
		</li>
		<li class="shr-twitter">
			<a href="http://twitter.com/home?status=Transport+Integrity+Checker+-+http://b2l.me/4uw3w&amp;source=shareaholic" rel="nofollow" class="external" title="Tweet This!">Tweet This!</a>
		</li>
</ul>
<div style="clear:both;"></div>
</div>

]]></content:encoded>
			<wfw:commentRss>http://matthew-jones.com/91/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Getting code signed</title>
		<link>http://matthew-jones.com/getting-code-signed/</link>
		<comments>http://matthew-jones.com/getting-code-signed/#comments</comments>
		<pubDate>Wed, 01 Nov 2006 19:54:54 +0000</pubDate>
		<dc:creator>Matthew</dc:creator>
				<category><![CDATA[Developer]]></category>
		<category><![CDATA[Code-signing]]></category>

		<guid isPermaLink="false">http://test.matthew-jones.com/?p=25</guid>
		<description><![CDATA[Something that has bothered me for a while is the hassle in putting together all the pieces to sign my download files. I finally got around to looking it all up, and it isn&#8217;t easy as you have to piece &#8230; <a href="http://matthew-jones.com/getting-code-signed/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Something that has bothered me for a while is the hassle in putting together all the pieces to sign my download files. I finally got around to looking it all up, and it isn&#8217;t easy as you have to piece all the things together. I hope that this will give you an insight into how it can really work, since I managed to actually achieve what I wanted and sign my code. This article is a list of the steps I had to take, and you will probably need to review the commands yourself if you have problems.</p>
<table border="0" width="100%" bgcolor="#ccffff">
<tbody>
<tr>
<td>
<h1>Update 2006:</h1>
<p>How things change. Since I wrote this original article, things in             the codesigning world have become a lot easier. I&#8217;ve even renewed             the two year certificate I bought &#8211; but watch out that you get the             renewal from the expiry of the first one or you could lose many days!</p>
<p>The main change though is that Microsoft made the signcode executable             very hard to find, if not impossible. The good news is that there             is a much better option available and, although it isn&#8217;t free, it             is more comprehensive and offers a GUI mode for your initial testing             and a command line option (signcode compatible) for your development             script. The best improvement is that you can specify the password             for the certificate, which means you don&#8217;t have to have the password             dialog pop up all the time. Full details, and links to certificate             suppliers and a step-by-step guide are available from the <span style="font-family: Arial; font-size: x-small;"><a href="http://www.x2net.com/signcode/index.htm" target="_blank">X2Net             SignCode</a></span> web page.</p>
<p>I&#8217;ve left the original article below as it is still a good summary             of the tools that might be useful to people, and how to transform           things.</td>
</tr>
</tbody>
</table>
<h2>The process</h2>
<p>Get a certificate from http://www.ascertia.com/onlineCA/Issuer/CerIssue.aspx who will do a free code signing certificate. Obviously any alternative is good, but this will prove the concept for you, and you can go buy another from them or elsewhere later. The email address is included in the certificate, so use a sensible one you are happy for the world to see. Accept the installation of the certificate into the browser as it won&#8217;t be emailed even though they say it will. Make sure you chose exportable.</p>
<p>Then get the Microsoft code signing stuff (codesigningx86.exe) from the MSDN web site (google will find its current location).</p>
<p>Use the certmgr to view your certificate and export it. Export it as a certificate (.cer file), and with the key (.pvk) file.</p>
<p>Use cert2spc to convert the cer file into an spc file. That&#8217;s the first half of the process done. Now you need a key file compatible with the signcode application.</p>
<p>From http://support.globalsign.net/en/objectsign/transform.cfm:</p>
<table border="0" cellpadding="5" width="100%" bgcolor="#ffffcc">
<tbody>
<tr>
<td>How to transform your certificate to a pvk + spc combination.</p>
<p>Export your certificate to a pfx file <strong>(be sure             to check &#8220;Include all certificates in the certification path             if possible&#8221;)</strong>. (The latter will help ensure it is accepted             by more systems.</p>
<p>Install openssl. You can find compiled binaries on www.openssl.org (but get the Windows build from http://www.shininglightpro.com/ http://www.shininglightpro.com/download/Win32OpenSSL-v0.9.7d.exe)</p>
<p>Extract your private key from the pfx file.</p>
<p>-&gt;openssl pkcs12 -in &lt;pfx-file&gt; -nocerts -nodes -out &lt;pem-key-file&gt;</p>
<p>The pfx password will be asked.</p>
<p>Download the pvk transform utility. This file can be found at http://support.globalsign.net/en/objectsign/PVK.zip.</p>
<p>-&gt; pvk -in &lt;pem-key-file&gt; -topvk -out &lt;pvk-file&gt;</p>
<p>Extract your certificates from the pfx file.</p>
<p>openssl pkcs12 -in &lt;pfx-file&gt; -nokeys -out &lt;pem-certs-file&gt;</p>
<p>The pfx password will be asked.</p>
<p>Transform your pem file to a spc file</p>
<p>-&gt;openssl crl2pkcs7 -nocrl -certfile &lt;pem-certs-file&gt; -outform DER -out &lt;spc-file&gt;</td>
</tr>
</tbody>
</table>
<p>I didn&#8217;t do that last bit &#8211; already did that stage. Note that you are transforming into a PEM file as an intermediate step. I got that bit wrong first time round.</p>
<p>Okay, so now you have all the right bits. You now can just run signcode.exe and use the wizard to check it all works. Select the advanced mode so you can use files, and all should go well. You&#8217;ll have to enter the password at various points. If it all worked, then we are nearly there.</p>
<p>To actually sign the code, and I used <a href="http://www.atozedsoftware.com/finalbuilder/">FinalBuilder</a> to make sure it is done each time and every time reliably, you need the following command.</p>
<table border="0" cellpadding="5" width="100%" bgcolor="#ffffcc">
<tbody>
<tr>
<td>c:\codesigning\signcode -spc &#8220;c:\codesigning\myAscertiaSPC.spc&#8221; -v &#8220;c:\codesigning\myascertiakey.pvk&#8221; -a md5 -i &#8220;www.yourdomain.com&#8221; -n &#8220;Application install file&#8221; &#8220;C:\Build\Installer\yourinstaller.exe&#8221;</td>
</tr>
</tbody>
</table>
<p>If it fails, then you probably got a path wrong or a missing file or something silly. Took me ages to spot that I&#8217;d got an extra letter in a path. Grr.</p>
<p>The only fly in the ointment is that you need to type the password for each file. It&#8217;s not hard to write an app to do the typing for you, but the security of your password is obviously at risk.</p>
<p>An update: Thanks to Hugo Logmans who also provided the script additions to allow <a href="http://www.atozedsoftware.com/finalbuilder/">FinalBuilder</a> to check that it worked okay, which ensures that you don&#8217;t think you signed it.</p>
<table border="0" cellpadding="5" width="100%" bgcolor="#ffffcc">
<tbody>
<tr>
<td>BeforeAction:<br />
CodeSignFailure = true</p>
<p>AfterAction:<br />
ActionResult = NOT CodeSignFailure<br />
Continue = NOT CodeSignFailure</p>
<p>OnStatusMessage:<br />
if InStr(StatusMessage.MessageText,&#8221;Succeeded&#8221;) &gt; 0 then<br />
CodeSignFailure = false<br />
end if</p>
<p>I have this script to sign the program executable AND singlefile<br />
installer-executables. Works very fast and efficient. This way you can be sure the file is always signed.</td>
</tr>
</tbody>
</table>
<p>Update: After some issues that someone identified with the ascertia certificate       on their machine (which I couldn&#8217;t replicate), I bought a two year certificate       from <a href="http://www.instantssl.com/code-signing/">http://www.instantssl.com/code-signing/</a> which       is from a fairly new certificate authority, but is cheap therefore and       is in the XP SP2 root certificates and thus answers the issues.</p>
<p>Update: The codesign executable is a moving target, and is becoming harder       to find. So forget the Microsoft codesign executable, and use one that       is much easier to use and not only command line compatible but more comprehensive.       Give <span style="font-family: Arial; font-size: x-small;"><a href="http://www.x2net.com/signcode/index.htm" target="_blank">X2Net SignCode</a></span> a whirl &#8211; both GUI and       command line options available.</p>
<p><em>Matthew Jones</em></p>


<div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center">
<ul class="socials">
		<li class="shr-comfeed">
			<a href="http://matthew-jones.com/getting-code-signed/feed" rel="nofollow" class="external" title="Subscribe to the comments for this post?">Subscribe to the comments for this post?</a>
		</li>
		<li class="shr-delicious">
			<a href="http://delicious.com/post?url=http://matthew-jones.com/getting-code-signed/&amp;title=Getting+code+signed" rel="nofollow" class="external" title="Share this on del.icio.us">Share this on del.icio.us</a>
		</li>
		<li class="shr-digg">
			<a href="http://digg.com/submit?phase=2&amp;url=http://matthew-jones.com/getting-code-signed/&amp;title=Getting+code+signed" rel="nofollow" class="external" title="Digg this!">Digg this!</a>
		</li>
		<li class="shr-diigo">
			<a href="http://www.diigo.com/post?url=http://matthew-jones.com/getting-code-signed/&amp;title=Getting+code+signed&amp;desc=Something%20that%20has%20bothered%20me%20for%20a%20while%20is%20the%20hassle%20in%20putting%20together%20all%20the%20pieces%20to%20sign%20my%20download%20files.%20I%20finally%20got%20around%20to%20looking%20it%20all%20up%2C%20and%20it%20isn%27t%20easy%20as%20you%20have%20to%20piece%20all%20the%20things%20together.%20I%20hope%20that%20this%20will%20give%20you%20an%20insight%20into%20how%20it%20can%20really%20work%2C%20sin" rel="nofollow" class="external" title="Post this on Diigo">Post this on Diigo</a>
		</li>
		<li class="shr-facebook">
			<a href="http://www.facebook.com/share.php?v=4&amp;src=bm&amp;u=http://matthew-jones.com/getting-code-signed/&amp;t=Getting+code+signed" rel="nofollow" class="external" title="Share this on Facebook">Share this on Facebook</a>
		</li>
		<li class="shr-googlebuzz">
			<a href="http://www.google.com/buzz/post?url=http://matthew-jones.com/getting-code-signed/&amp;imageurl=" rel="nofollow" class="external" title="Post on Google Buzz">Post on Google Buzz</a>
		</li>
		<li class="shr-mixx">
			<a href="http://www.mixx.com/submit?page_url=http://matthew-jones.com/getting-code-signed/&amp;title=Getting+code+signed" rel="nofollow" class="external" title="Share this on Mixx">Share this on Mixx</a>
		</li>
		<li class="shr-reddit">
			<a href="http://reddit.com/submit?url=http://matthew-jones.com/getting-code-signed/&amp;title=Getting+code+signed" rel="nofollow" class="external" title="Share this on Reddit">Share this on Reddit</a>
		</li>
		<li class="shr-stumbleupon">
			<a href="http://www.stumbleupon.com/submit?url=http://matthew-jones.com/getting-code-signed/&amp;title=Getting+code+signed" rel="nofollow" class="external" title="Stumble upon something good? Share it on StumbleUpon">Stumble upon something good? Share it on StumbleUpon</a>
		</li>
		<li class="shr-technorati">
			<a href="http://technorati.com/faves?add=http://matthew-jones.com/getting-code-signed/" rel="nofollow" class="external" title="Share this on Technorati">Share this on Technorati</a>
		</li>
		<li class="shr-twitter">
			<a href="http://twitter.com/home?status=Getting+code+signed+-+http://b2l.me/4uxeh&amp;source=shareaholic" rel="nofollow" class="external" title="Tweet This!">Tweet This!</a>
		</li>
</ul>
<div style="clear:both;"></div>
</div>

]]></content:encoded>
			<wfw:commentRss>http://matthew-jones.com/getting-code-signed/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Raize Components 3</title>
		<link>http://matthew-jones.com/raize-components-3/</link>
		<comments>http://matthew-jones.com/raize-components-3/#comments</comments>
		<pubDate>Wed, 21 Dec 2005 20:03:00 +0000</pubDate>
		<dc:creator>Matthew</dc:creator>
				<category><![CDATA[Reviews]]></category>
		<category><![CDATA[Delphi]]></category>

		<guid isPermaLink="false">http://test.matthew-jones.com/?p=33</guid>
		<description><![CDATA[One of the great things about Delphi is that there is a good supply of third-party components available. As a long term user of Delphi my palette has grown in size and I now have over 80 pages to choose &#8230; <a href="http://matthew-jones.com/raize-components-3/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>One of the great things about Delphi is that there is a good supply of third-party components available. As a long term user of Delphi my palette has grown in size and I now have over 80 pages to choose from. So any component set has to have something special to get me excited about it, particularly in the general user interface category where there is a lot of competition. Raize Components 3 (RC3 from now on) has a lot that is special, and the main thing it provides is â€œpolishâ€.</p>
<p>[This review was first published in The Borland User Group Newsletter.]</p>
<p>For me, polish is what distinguishes great apps from okay apps. It is the detail that is put into things that make life easier for the user, that extra time spent making sure things are â€˜just rightâ€™. RC3 provides this on two levels. First, the components look great, and allow you to provide a good end-user experience with little effort. But most importantly, they make the developers life a great deal easier. This is not just a set of components to sit on the palette, but it includes a suite of property and component editors, and context sensitive menus all of which are well designed, and make life a lot easier.</p>
<p>To show a simple example, letâ€™s take a panel. How often do you drop a panel on a form and then clear the caption property, followed by setting its alignment to top, or client? And then of course remove the border so it doesnâ€™t stand out. With the basic Raize panel, the caption starts blank, and right clicking gives menu items to set the alignment, to remove the border, and also to edit the panel visually. This saves a lot of time playing hunt the property in the object inspector. And this is just the simple panel &#8211; things go up from here! Take the GroupBar component as another example. This is an outlook style bar that can display in either the classic style, a task list style, or as an XP category style. Menu items to set the image lists and alignment exist, but here you can edit the bar contents â€œliveâ€ which is more natural than a separate property editor, and allows you to see it exactly as it will appear. In design time, the component even says â€œAdd groups by selecting â€˜Add groupâ€™ from the context menuâ€ so you donâ€™t waste time working out how to use it. That is polish. So you add a group, and right clicking on the group gives more context-sensitive items. This is a nice component, and it has been made very easy to use.</p>
<p>The installation of RC3 gives you seven palette pages with 117 components, 22 of which are data aware and 9 of which are deprecated (components that are replaced by better components). The pages are labelled Panels, Edits, Lists, Buttons, Display, Shell, and Widgets but they contain more than they imply. The shell components are licensed from Plasmatech, so they have a good pedigree, and provide both the raw controls, and smart dialogs using them. The panels include the Panel and GroupBar mentioned previously, as well as a page control that can be used to replace the Win32 version, but which provides a wide variety of tab styles. These include XP themed versions, but allow for a lot of customisation of both the tabs and the border frames. XP theme support is provided using the now-standard Mike Lischke code, but RC3 components can automatically use XP themes, or emulate them if not on XP. Most of the components can use a â€œframe controllerâ€ that can set the framing options quickly for a set of components, or you can customise the components individually. All this really means that you can have your app look as you want it to, and add some polish yourself.</p>
<p>I shall skip over the splitters, status bars, group and radio boxes and mention the CheckGroup which is like a radio group but of checkboxes, so you get automatic alignment quickly and easily. All the groups have a variety of outline styles to choose from. Likewise Iâ€™ll do great injustice and skip the edits page &#8211; all of which provide the custom framing, and things like buttons in edit boxes so you can click to get a date-picker (or a custom edit with one or two custom buttons of your own if you want).</p>
<p>The Lists page is where more of the polish shows. Raize components 2 was the first component set I bought which had a list box with check boxes for each item, and a tabbed list box. RC3 improves these by allowing category titles in the check-list with a very smart faded background on each, along with an design-time editor to make it easy to fill. The tabbed list has a Cells property so that you can access the individual parts of the tabbed items &#8211; again making life easier for developers. Speaking of which, there are two variations provided &#8211; an EditList which allows the user to press F2 to edit an item in-situ, and a RankingList which allows the user to drag the items up and down. These are things that you can write yourself, but they are fiddly to get right, and here you just drop them on your form and move on. If I had one niggle about these, it is that there are derived from the basic List and not all available as a single mega-list with tabs, checkboxes, ranking, and editing. But I guess such a need would be rare. Other lists and combos include fonts, images (with indents and labels), MRU, treeviews, check-trees and listviews.</p>
<p>The buttons in RC3 include a wide variety of image compatible, shaped, toolbar and menu buttons. For those supporting glyphs, there is a nice image selector, with modern looking images that will do for many basic tasks. Of particular note is the DialogButtons component. Drop one of these on your form and you instantly have OK and Cancel buttons properly aligned on a panel at the bottom of your form. You can also show a Help button, and add other items there if you want. For a quick dialog, this has always been nice, but one of the most amazing facilities that RC3 gives is in the context menu for the standard Delphi form. Items added allow for adding a groupbar, toolbar, status bar, splitter, panel, image list, frame controller, and form state component. Additionally, there is â€˜Create dialogâ€™ and â€˜Create options dialogâ€™ which both put a dialog buttons component on the form, change the form settings to dialog borders, and for the options dialog creates a page control with two tabs ready and waiting. These all make the developer task easier, and save having to go find things on the palette. Of course it doesnâ€™t eliminate all the work, but many of the things that you usually want to do are made a lot easier.</p>
<p>The Display page contains a variety of time-saving components as well as some nice implementations of the basics. The label allows rotation and different fonts, and the status pane is a label with border, but includes things like blinking. Derivations of this include scrolling, key status, and most interestingly a version info which makes it possible to show version information from your executable without any effort. This is why I buy components, and it all helps to meet user expectations of modern apps. There is also a background gradient/image component here, which along with the transparent option in virtually all the other components means that you can create great looking forms. Further display components include a URL label, border, arrowed-line and shaded separators, progress bars, scrolling LED panel, and a bitmap animator.</p>
<p>The Widgets page provides a miscellaneous set of items. Visually, there are comprehensive date, time and colour pickers each customisable with properties and events. You can set your form shape according to the outline of a bitmap, add a tray icon, make your tooltips into much friendlier balloons, save your forms state at runtime, send MAPI email and launch other apps.</p>
<p>I think I have shown that RC3 provides more than just a nice looking set of user interface components. The extras that are provided are what makes the Raize components the first I consider when building apps, and RC3 has added a great deal that will make my life easier. For existing users, an upgrade is an easy decision. For new users, it is well worth a good evaluation as a truly professional component set that will save you time and give your development and your apps â€œpolishâ€.</p>


<div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center">
<ul class="socials">
		<li class="shr-comfeed">
			<a href="http://matthew-jones.com/raize-components-3/feed" rel="nofollow" class="external" title="Subscribe to the comments for this post?">Subscribe to the comments for this post?</a>
		</li>
		<li class="shr-delicious">
			<a href="http://delicious.com/post?url=http://matthew-jones.com/raize-components-3/&amp;title=Raize+Components+3" rel="nofollow" class="external" title="Share this on del.icio.us">Share this on del.icio.us</a>
		</li>
		<li class="shr-digg">
			<a href="http://digg.com/submit?phase=2&amp;url=http://matthew-jones.com/raize-components-3/&amp;title=Raize+Components+3" rel="nofollow" class="external" title="Digg this!">Digg this!</a>
		</li>
		<li class="shr-diigo">
			<a href="http://www.diigo.com/post?url=http://matthew-jones.com/raize-components-3/&amp;title=Raize+Components+3&amp;desc=One%20of%20the%20great%20things%20about%20Delphi%20is%20that%20there%20is%20a%20good%20supply%20of%20third-party%20components%20available.%20As%20a%20long%20term%20user%20of%20Delphi%20my%20palette%20has%20grown%20in%20size%20and%20I%20now%20have%20over%2080%20pages%20to%20choose%20from.%20So%20any%20component%20set%20has%20to%20have%20something%20special%20to%20get%20me%20excited%20about%20it%2C%20particularly" rel="nofollow" class="external" title="Post this on Diigo">Post this on Diigo</a>
		</li>
		<li class="shr-facebook">
			<a href="http://www.facebook.com/share.php?v=4&amp;src=bm&amp;u=http://matthew-jones.com/raize-components-3/&amp;t=Raize+Components+3" rel="nofollow" class="external" title="Share this on Facebook">Share this on Facebook</a>
		</li>
		<li class="shr-googlebuzz">
			<a href="http://www.google.com/buzz/post?url=http://matthew-jones.com/raize-components-3/&amp;imageurl=" rel="nofollow" class="external" title="Post on Google Buzz">Post on Google Buzz</a>
		</li>
		<li class="shr-mixx">
			<a href="http://www.mixx.com/submit?page_url=http://matthew-jones.com/raize-components-3/&amp;title=Raize+Components+3" rel="nofollow" class="external" title="Share this on Mixx">Share this on Mixx</a>
		</li>
		<li class="shr-reddit">
			<a href="http://reddit.com/submit?url=http://matthew-jones.com/raize-components-3/&amp;title=Raize+Components+3" rel="nofollow" class="external" title="Share this on Reddit">Share this on Reddit</a>
		</li>
		<li class="shr-stumbleupon">
			<a href="http://www.stumbleupon.com/submit?url=http://matthew-jones.com/raize-components-3/&amp;title=Raize+Components+3" rel="nofollow" class="external" title="Stumble upon something good? Share it on StumbleUpon">Stumble upon something good? Share it on StumbleUpon</a>
		</li>
		<li class="shr-technorati">
			<a href="http://technorati.com/faves?add=http://matthew-jones.com/raize-components-3/" rel="nofollow" class="external" title="Share this on Technorati">Share this on Technorati</a>
		</li>
		<li class="shr-twitter">
			<a href="http://twitter.com/home?status=Raize+Components+3+-+http://b2l.me/4ux2n&amp;source=shareaholic" rel="nofollow" class="external" title="Tweet This!">Tweet This!</a>
		</li>
</ul>
<div style="clear:both;"></div>
</div>

]]></content:encoded>
			<wfw:commentRss>http://matthew-jones.com/raize-components-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Email sender identity proof — could this work?</title>
		<link>http://matthew-jones.com/29/</link>
		<comments>http://matthew-jones.com/29/#comments</comments>
		<pubDate>Wed, 07 Dec 2005 19:57:19 +0000</pubDate>
		<dc:creator>Matthew</dc:creator>
				<category><![CDATA[Ideas]]></category>
		<category><![CDATA[email]]></category>
		<category><![CDATA[SPF]]></category>

		<guid isPermaLink="false">http://test.matthew-jones.com/29/</guid>
		<description><![CDATA[As someone who has been victim to a spammer forging our email &#8220;from&#8221; address, and thus getting over 10,000 bounce emails a day for nearly ten days, I have a personal interest in making sure it doesn&#8217;t happen again. The &#8230; <a href="http://matthew-jones.com/29/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<table border="0" cellspacing="0" cellpadding="0" width="100%">
<tbody>
<tr>
<td>As someone who has been victim to a spammer forging our email &#8220;from&#8221; address,               and thus getting over 10,000 bounce emails a day for nearly ten days, I have a personal interest in making sure it doesn&#8217;t happen               again. The likes of the SPF (Sender Permitted From) therefore look               interesting. But why can&#8217;t it be much simpler?</td>
</tr>
</tbody>
</table>
<table border="0" cellspacing="0" cellpadding="0" width="100%">
<tbody>
<tr>
<td>One of the interesting thoughts I got from reading PC Pro (UK magazine), which said that there were three or four competing systems, one of which uses server keys, is why we can&#8217;t just sign the emails? That is, make a header like:</p>
<p>X-SignText: 2004-04-22 <a href="mailto:name@matthew-jones.com?subject=" target="{target}">name@matthew-jones.com</a> 1942939<br />
X-SignValid: KSKFKSJFLSKJSLKFSLKJFSLKJ</p>
<p>Now, to check this was valid, you&#8217;d get a text record from the domain server which would contain a public key. You&#8217;d then decrypt the SignValid part and match the SignText item. If it didn&#8217;t match, then you&#8217;d just bin it. By including the date you stop people catching one header and forging forever and can ensure it is within a few days of sending. The random number keeps the encryption on its toes to ensure it can&#8217;t be cracked.</p>
<p>Why wouldn&#8217;t this work? It doesn&#8217;t depend on sender IP numbers at all. It of course needs an email client to encrypt a line, but code for that is commonplace, and is certainly less work than lots of lookups as needed by SPF and the like.</p>
<p>Publishing date: 14.06.2004 14:21</p>
<p>I&#8217;ll declare an interest in that I write the Epanoopy spam filter for VPOP3. (now defunct since this article was written)</td>
</tr>
</tbody>
</table>


<div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center">
<ul class="socials">
		<li class="shr-comfeed">
			<a href="http://matthew-jones.com/29/feed" rel="nofollow" class="external" title="Subscribe to the comments for this post?">Subscribe to the comments for this post?</a>
		</li>
		<li class="shr-delicious">
			<a href="http://delicious.com/post?url=http://matthew-jones.com/29/&amp;title=Email+sender+identity+proof+%E2%80%94+could+this+work%3F" rel="nofollow" class="external" title="Share this on del.icio.us">Share this on del.icio.us</a>
		</li>
		<li class="shr-digg">
			<a href="http://digg.com/submit?phase=2&amp;url=http://matthew-jones.com/29/&amp;title=Email+sender+identity+proof+%E2%80%94+could+this+work%3F" rel="nofollow" class="external" title="Digg this!">Digg this!</a>
		</li>
		<li class="shr-diigo">
			<a href="http://www.diigo.com/post?url=http://matthew-jones.com/29/&amp;title=Email+sender+identity+proof+%E2%80%94+could+this+work%3F&amp;desc=%0D%0A%0D%0A%0D%0AAs%20someone%20who%20has%20been%20victim%20to%20a%20spammer%20forging%20our%20email%20%22from%22%20address%2C%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20and%20thus%20getting%20over%2010%2C000%20bounce%20emails%20a%20day%20for%20nearly%20ten%20days%2C%20I%20have%20a%20personal%20interest%20in%20making%20sure%20it%20doesn%27t%20happen%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20again.%20The%20likes%20of%20the%20SPF%20%28Sender%20Permitted%20From%29%20theref" rel="nofollow" class="external" title="Post this on Diigo">Post this on Diigo</a>
		</li>
		<li class="shr-facebook">
			<a href="http://www.facebook.com/share.php?v=4&amp;src=bm&amp;u=http://matthew-jones.com/29/&amp;t=Email+sender+identity+proof+%E2%80%94+could+this+work%3F" rel="nofollow" class="external" title="Share this on Facebook">Share this on Facebook</a>
		</li>
		<li class="shr-googlebuzz">
			<a href="http://www.google.com/buzz/post?url=http://matthew-jones.com/29/&amp;imageurl=" rel="nofollow" class="external" title="Post on Google Buzz">Post on Google Buzz</a>
		</li>
		<li class="shr-mixx">
			<a href="http://www.mixx.com/submit?page_url=http://matthew-jones.com/29/&amp;title=Email+sender+identity+proof+%E2%80%94+could+this+work%3F" rel="nofollow" class="external" title="Share this on Mixx">Share this on Mixx</a>
		</li>
		<li class="shr-reddit">
			<a href="http://reddit.com/submit?url=http://matthew-jones.com/29/&amp;title=Email+sender+identity+proof+%E2%80%94+could+this+work%3F" rel="nofollow" class="external" title="Share this on Reddit">Share this on Reddit</a>
		</li>
		<li class="shr-stumbleupon">
			<a href="http://www.stumbleupon.com/submit?url=http://matthew-jones.com/29/&amp;title=Email+sender+identity+proof+%E2%80%94+could+this+work%3F" rel="nofollow" class="external" title="Stumble upon something good? Share it on StumbleUpon">Stumble upon something good? Share it on StumbleUpon</a>
		</li>
		<li class="shr-technorati">
			<a href="http://technorati.com/faves?add=http://matthew-jones.com/29/" rel="nofollow" class="external" title="Share this on Technorati">Share this on Technorati</a>
		</li>
		<li class="shr-twitter">
			<a href="http://twitter.com/home?status=Email+sender+identity+proof+%E2%80%94+could+this+work%3F+-+http://b2l.me/4wtqp&amp;source=shareaholic" rel="nofollow" class="external" title="Tweet This!">Tweet This!</a>
		</li>
</ul>
<div style="clear:both;"></div>
</div>

]]></content:encoded>
			<wfw:commentRss>http://matthew-jones.com/29/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
