<?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>Sarel, a Pragmatic Programmer &#187; Programming</title>
	<atom:link href="http://blog.botha.us/sarel/category/programming/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.botha.us/sarel</link>
	<description></description>
	<lastBuildDate>Thu, 14 Jan 2021 12:46:10 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.2.38</generator>
	<item>
		<title>Java Code Signing Cert as Authenticode Cert</title>
		<link>http://blog.botha.us/sarel/java-code-signing-cert-as-authenticode-cert/</link>
		<comments>http://blog.botha.us/sarel/java-code-signing-cert-as-authenticode-cert/#comments</comments>
		<pubDate>Fri, 09 May 2008 19:24:11 +0000</pubDate>
		<dc:creator><![CDATA[sarel]]></dc:creator>
				<category><![CDATA[Cryptography]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[authenticode]]></category>
		<category><![CDATA[certificate]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[globalsign]]></category>
		<category><![CDATA[sign]]></category>

		<guid isPermaLink="false">http://blog.botha.us/sarel/?p=21</guid>
		<description><![CDATA[Hasn&#8217;t it always just seemed wrong that you have to buy both an Authenticode and a Java Code Signing certificate? That might just be a thing of the past. There&#8217;s a very thorough guide here that describes how you can convert a Java cert to an Authenticode cert. http://tjworld.net/software/codesigning/ The link to download the needed [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Hasn&#8217;t it always just seemed wrong that you have to buy both an Authenticode and a Java Code Signing certificate? That might just be a thing of the past.</p>
<p>There&#8217;s a very thorough guide here that describes how you can convert a Java cert to an Authenticode cert.</p>
<p><a title="http://tjworld.net/software/codesigning/" href="http://tjworld.net/software/codesigning/" target="_blank">http://tjworld.net/software/codesigning/</a></p>
<p>The link to download the needed tools is broken, but I found it somewhere else:</p>
<p><a title="http://www.myssl.cn/download/jks2pfx.zip" href="http://www.myssl.cn/download/jks2pfx.zip" target="_blank">http://www.myssl.cn/download/jks2pfx.zip</a></p>
<p>This procedure worked for me and produced an Authentocde certificate, but my certificate was not immediately trusted by Windows. My certificate was obtained from GlobalSign and they used an intermediary certificate to sign this certificate. To make Windows trust this certificate the intermediary certificate must be included in the PKCS12 file as well.</p>
<p>To do this you can download a copy of the intermediary certificate from here: <a title="http://secure.globalsign.net/cacert/sureobject.crt" href="http://secure.globalsign.net/cacert/sureobject.crt" target="_blank">http://secure.globalsign.net/cacert/sureobject.crt</a></p>
<p>The file is in the binary form, so convert it to X509 like this: openssl x509 -inform der -in sureobject.crt -out sureobject.pem</p>
<p>Then edit the jks2pfx.bat file and on the line that starts &#8220;openssl pkcs12&#8243; add to the end: -certfile sureobject.pem</p>
<p>Run jks2pfx.bat again with the necessary arguments, enter the password you want to use, then open the PFX file to import the certificate and private key into your Windows certificate store.</p>
<p>You should be ready to start signing.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.botha.us/sarel/java-code-signing-cert-as-authenticode-cert/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>RMI over HTTP via CGI</title>
		<link>http://blog.botha.us/sarel/rmi-over-http-via-cgi/</link>
		<comments>http://blog.botha.us/sarel/rmi-over-http-via-cgi/#comments</comments>
		<pubDate>Thu, 11 Oct 2007 04:05:00 +0000</pubDate>
		<dc:creator><![CDATA[sarel]]></dc:creator>
				<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://blog.botha.us/sarel/?p=15</guid>
		<description><![CDATA[I saw quite a few posts about people looking for the source code for the class RMIHttpToCGISocketFactory for varying different reasons. A favorite request is to change the path to the CGI script it requests which is by default: /cgi-bin/java-rmi.cgi. Anyway, it&#8217;s available from the openjdk project. You have to sign up for a free [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>I saw quite a few posts about people looking for the source code for the class RMIHttpToCGISocketFactory for varying different reasons. A favorite request is to change the path to the CGI script it requests which is by default: /cgi-bin/java-rmi.cgi.</p>
<p>Anyway, it&#8217;s available from the openjdk project. You have to sign up for a free java.net account, then you can check it out using subversion (I use tortoisesvn on windows) from here: https://openjdk.dev.java.net/svn/openjdk/jdk/trunk/j2se/src/share/classes/sun/rmi/transport/proxy</p>
<p>Hope this helps someone.</p>
<p>Update: More to come on this. It wasn&#8217;t quite over after the last post.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.botha.us/sarel/rmi-over-http-via-cgi/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Teddy Bear</title>
		<link>http://blog.botha.us/sarel/teddy-bear/</link>
		<comments>http://blog.botha.us/sarel/teddy-bear/#comments</comments>
		<pubDate>Wed, 10 Oct 2007 04:23:52 +0000</pubDate>
		<dc:creator><![CDATA[sarel]]></dc:creator>
				<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://blog.botha.us/sarel/?p=14</guid>
		<description><![CDATA[Somebody told me once about a computer science professor that would not help his students solve a programming problem until they have explained their problem to The Teddy Bear and they still did not have their answer. You might think that The Teddy Bear was code-speak for something, but it was actually just that: a [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Somebody told me once about a computer science professor that would not help his students solve a programming problem until they have explained their problem to The Teddy Bear and they still did not have their answer. You might think that The Teddy Bear was code-speak for something, but it was actually just that: a fuzzy toy which inhabited the classroom.</p>
<p>You may think that this is just silly, but there really is something to it. See, when you explain something to somebody else a few things must happen in your mind to allow you to relay the problem to somebody else. Firstly, you must take a step back and look at the whole thing, because you are about to explain the whole thing to somebody else. Secondly, to explain it you must re-arrange the components into a logical order in your head. Lastly, you must describe in detail each part of your problem.<br />
All this forced regurgitating and rumination causes you to re-check everything you&#8217;ve done up to that point and many times you&#8217;ll spot the problem without your listener even uttering a word.<br />
Following is a lengthy discussion on the concept. Apparently, even Plato liked this idea.<br />
<a title="The Teddy Bear" target="_blank" href="http://www.geocities.com/softwarepeoplenet/resteddybear.html">http://www.geocities.com/softwarepeoplenet/resteddybear.html</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.botha.us/sarel/teddy-bear/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
