<?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"
	>

<channel>
	<title>/dev/klog &#187; Apple</title>
	<atom:link href="http://www.devklog.net/category/apple/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.devklog.net</link>
	<description>You better pipe that through your mind</description>
	<pubDate>Thu, 26 Jun 2008 17:11:21 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5.1</generator>
	<language>en</language>
			<item>
		<title>Rob Pardo on the &#8220;web game market&#8221; and seemingly PC gaming in general</title>
		<link>http://www.devklog.net/2008/06/26/rob-pardo-on-the-web-game-market-and-seemingly-pc-gaming-in-general/</link>
		<comments>http://www.devklog.net/2008/06/26/rob-pardo-on-the-web-game-market-and-seemingly-pc-gaming-in-general/#comments</comments>
		<pubDate>Thu, 26 Jun 2008 17:04:48 +0000</pubDate>
		<dc:creator>Jean-François Roy</dc:creator>
		
		<category><![CDATA[Apple]]></category>

		<category><![CDATA[blizzard]]></category>

		<category><![CDATA[gaming]]></category>

		<guid isPermaLink="false">http://www.devklog.net/?p=150</guid>
		<description><![CDATA[The following is quoted from Gamasutra&#8217;s Paris GDC interview with Rob Pardo:
Finally, Jamil asked an extremely relevant question, given the state of the web game market - is it possible to get an &#8216;AAA game experience&#8217; through the web interface?
Pardo was blunt: &#8220;I dunno, not until Microsoft, Intel, and Apple get their shit together. There&#8217;s [...]]]></description>
			<content:encoded><![CDATA[<p>The following is quoted from <a href="http://www.gamasutra.com/php-bin/news_index.php?story=19163" onclick="javascript:pageTracker._trackPageview ('/outbound/www.gamasutra.com');">Gamasutra&#8217;s Paris GDC interview with Rob Pardo</a>:</p>
<blockquote><p>Finally, Jamil asked an extremely relevant question, given the state of the web game market - is it possible to get an &#8216;AAA game experience&#8217; through the web interface?</p>
<p>Pardo was blunt: &#8220;I dunno, not until Microsoft, Intel, and Apple get their shit together. There&#8217;s such a dichotomy with hardware these days. With Microsoft, I think they have a bit of lip service with PC gaming. They have their own game system now, so I don’t think it’s really in their best interest to support [PC].”</p>
<p>However, he noted: “There’s been some Apple resurgence, so maybe Dell and Apple will get together and make a consumer box that has a decent graphics card in it, who knows? I do think it’s going to happen, but I wouldn’t be surprised if it doesn’t happen with Microsoft.&#8221;</p></blockquote>
<p><a href="http://www.devklog.net/2008/04/02/not-going-to-be-talking-about-apple-anymore/">Without commenting at all about Apple</a>&#8217;s stance on this, it is obvious to me that if Apple continues to increase their market share as current public data indicates, there&#8217;s going to be a shift of mentality in game studios still interested in developing for the PC platform. They&#8217;re going to seriously start looking at those millions of Mac customers who may have an available budget for the games they make. Of course, part of those customers are already buying those games thanks to Boot Camp, but there is an economic and psychological argument to be made that Mac versions of those games would get you an even larger share of that growing market.</p>
<p>It&#8217;s also interesting to note that Apple&#8217;s market is closer to that of consoles, in the sense that hardware diversity is much lower and there is greater integration between the OS, the software that runs on that OS and the hardware on which those two run, while retaining some of the advantages of the PC, such as less control from the hardware manufacturer (which Pardo cites as a problem for WoW content patches), the ubiquity of a pointing device and keyboard, more storage space, more mature development tools and the ability to develop and test on the same hardware.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.devklog.net/2008/06/26/rob-pardo-on-the-web-game-market-and-seemingly-pc-gaming-in-general/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Generating SSL certificates that will make Firefox 3 happy</title>
		<link>http://www.devklog.net/2008/05/25/generating-ssl-certificates-that-will-make-firefox-3-happy/</link>
		<comments>http://www.devklog.net/2008/05/25/generating-ssl-certificates-that-will-make-firefox-3-happy/#comments</comments>
		<pubDate>Sun, 25 May 2008 13:07:20 +0000</pubDate>
		<dc:creator>Jean-François Roy</dc:creator>
		
		<category><![CDATA[Mac OS X]]></category>

		<category><![CDATA[firefox]]></category>

		<category><![CDATA[keychain]]></category>

		<category><![CDATA[security]]></category>

		<guid isPermaLink="false">http://www.devklog.net/?p=116</guid>
		<description><![CDATA[Firefox 3 is annoyingly picky about SSL certificates, which has been an issue for people trying to access my Trac wiki or Subversion repository. I finally had enough and decided to nail the problem. So here are clear steps for generating SSL certificates that will make Firefox 3 happy.  I will be using Leopard&#8217;s [...]]]></description>
			<content:encoded><![CDATA[<p>Firefox 3 is annoyingly picky about SSL certificates, which has been an issue for people trying to access my Trac wiki or Subversion repository. I finally had enough and decided to nail the problem. So here are clear steps for generating SSL certificates that will make Firefox 3 happy.  I will be using Leopard&#8217;s Certificate Assistant for most of the certificate work, with a bit of openssl at the end. The primary source of information I used to determine the requirements for SSL server certificates and signing certificates up in the chain is Mozilla&#8217;s <a href="http://www.mozilla.org/projects/security/pki/nss/tech-notes/tn3.html" title="All About Certificate Extensions" onclick="javascript:pageTracker._trackPageview ('/outbound/www.mozilla.org');">All About Certificate Extensions</a> technote.</p>
<p><span id="more-116"></span></p>
<h4>Creating a certificate authority</h4>
<p>Although I haven&#8217;t tested a self-signed CA certificate as the SSL server&#8217;s certifiate, reading around the web suggests it will not make Firefox 3 happy. Since it doesn&#8217;t cost all that much time to do it, let&#8217;s generate a certificate authority.</p>
<ol>
<li>Open Keychain Access</li>
<li>I&#8217;ve had issues with Certificate Assistant using my login keychain, so to avoid any problems, create a new keychain for certificates.</li>
<li><a href="http://www.devklog.net/wordpress/wp-content/uploads/2008/05/menus_1.png" rel="lightbox" title="Create a Certificate Authority..."><img class="alignnone size-medium wp-image-117" style="vertical-align: top;" title="Create a Certificate Authority..." src="http://www.devklog.net/wordpress/wp-content/uploads/2008/05/menus_1-300x107.png" alt="Create a Certificate Authority..." width="300" height="107" /></a><br />
Use the <em>Create a Certificate Authority&#8230;</em> command from the <em>Keychain Access</em> &gt; <em>Certificate Assistant </em>menu.</li>
<li><a href="http://www.devklog.net/wordpress/wp-content/uploads/2008/05/ca1.png" rel="lightbox" title="Create Your Certificate Authority"><img class="alignnone size-full wp-image-118" style="vertical-align: top;" title="Create Your Certificate Authority" src="http://www.devklog.net/wordpress/wp-content/uploads/2008/05/ca1.png" alt="Create Your Certificate Authority" width="499" height="370" /></a><br />
Enter the name of the CA certificate, select <em>Self Signed Root CA</em> as the type and make sure the <em>Let me override defaults</em> checkbox is checked.</li>
<li><a href="http://www.devklog.net/wordpress/wp-content/uploads/2008/05/picture-1.png" rel="lightbox" title="Certificate Information Part 1"><img class="alignnone size-full wp-image-119" style="vertical-align: top;" title="Certificate Information Part 1" src="http://www.devklog.net/wordpress/wp-content/uploads/2008/05/picture-1.png" alt="Certificate Information Part 1" width="499" height="370" /></a><br />
Enter the desired serial number and validity period. Firefox 3 will actually remember certificate serial numbers and reject a new certificate with the same serial number as a previous certificate (coming from the same authority, that is), so make sure you&#8217;re keeping track of serial numbers.      </p>
<p>The <em>User Certificate Type</em> must be set to <em>SSL Server</em>.</p>
<p>The other settings are for generating a pretty CA web page to let people make certificate requests for your new authority (you may want to use that), and to sign your certificate invitation.</li>
<li><a href="http://www.devklog.net/wordpress/wp-content/uploads/2008/05/picture-2.png" rel="lightbox" title="Certificate Information Part 2"><img class="alignnone size-full wp-image-120" style="vertical-align: top;" title="Certificate Information Part 2" src="http://www.devklog.net/wordpress/wp-content/uploads/2008/05/picture-2.png" alt="Certificate Information Part 2" width="499" height="370" /></a><br />
Enter the basic contact information for the CA certificate. The <em>Name (Common Name)</em> field doesn&#8217;t have to be a valid domain name, since the CA certificate won&#8217;t be used by any server.</li>
<li><a href="http://www.devklog.net/wordpress/wp-content/uploads/2008/05/picture-3.png" rel="lightbox" title="Key Pair Information For This CA "><img class="alignnone size-full wp-image-121" style="vertical-align: top;" title="Key Pair Information For This CA " src="http://www.devklog.net/wordpress/wp-content/uploads/2008/05/picture-3.png" alt="Key Pair Information For This CA " width="499" height="370" /></a><br />
The default values for this step are fine.</li>
<li><a href="http://www.devklog.net/wordpress/wp-content/uploads/2008/05/picture-4.png" rel="lightbox" title="Specify Key Pair Information For Users of This CA"><img class="alignnone size-full wp-image-122" style="vertical-align: top;" title="Specify Key Pair Information For Users of This CA" src="http://www.devklog.net/wordpress/wp-content/uploads/2008/05/picture-4.png" alt="Specify Key Pair Information For Users of This CA" width="499" height="370" /></a><br />
This step allows to specify default key pair settings for any leaf certificate you create with the CA certificate as the root. The default values are fine.</li>
<li><a href="http://www.devklog.net/wordpress/wp-content/uploads/2008/05/picture-5.png" rel="lightbox" title="Key Usage Extension For This CA"><img class="alignnone size-full wp-image-123" style="vertical-align: top;" title="Key Usage Extension For This CA" src="http://www.devklog.net/wordpress/wp-content/uploads/2008/05/picture-5.png" alt="Key Usage Extension For This CA" width="499" height="370" /></a><br />
The CA certificate must have a Key Usage Extension with at least the <em>Signature</em> and <em>Certificate Signing</em> capability bits set. If either one of those capabilities are not specified, Firefox 3 will reject any child certificate of the CA certificate.</li>
<li><a href="http://www.devklog.net/wordpress/wp-content/uploads/2008/05/picture-6.png" rel="lightbox" title="Key Usage Extension For Users of This CA"><img class="alignnone size-full wp-image-124" style="vertical-align: top;" title="Key Usage Extension For Users of This CA" src="http://www.devklog.net/wordpress/wp-content/uploads/2008/05/picture-6.png" alt="Key Usage Extension For Users of This CA" width="499" height="370" /></a><br />
This step allows to specify default key usage extension settings for any leaf certificate created with the CA certificate as the root. SSL server certificates must have at least the <em>Key Encipherment</em> and <em>Key Agreement</em> capability bits set. If either one of those capabilities are not specified, Firefox 3 will reject the certificate.</li>
<li><a href="http://www.devklog.net/wordpress/wp-content/uploads/2008/05/picture-7.png" rel="lightbox" title="Extended Key Usage Extension For This CA"><img class="alignnone size-full wp-image-125" style="vertical-align: top;" title="Extended Key Usage Extension For This CA" src="http://www.devklog.net/wordpress/wp-content/uploads/2008/05/picture-7.png" alt="Extended Key Usage Extension For This CA" width="499" height="370" /></a><br />
Although documentation suggests this may not be necessary, giving the CA certificate an extended key usage extension with at least the <em>SSL Server Authentication</em> capability bit set has no serious consequences and provides additional insurance that Firefox 3 will be happy. Note that the default value is <em>All</em>, which should include <em>SSL Server Authentication</em>, but again no harm done in being pedantic.</li>
<li><a href="http://www.devklog.net/wordpress/wp-content/uploads/2008/05/picture-8.png" rel="lightbox" title="Extended Key Usage Extension For Users of This CA"><img class="alignnone size-full wp-image-126" style="vertical-align: top;" title="Extended Key Usage Extension For Users of This CA" src="http://www.devklog.net/wordpress/wp-content/uploads/2008/05/picture-8.png" alt="Extended Key Usage Extension For Users of This CA" width="499" height="370" /></a><br />
This step allows to specify default extended key usage extension settings for any leaf certificate created with the CA certificate as the root. SSL server certificates must have at least the <em>SSL Server Authentication</em> capability bit set. If that capability is not specified, Firefox 3 will reject the certificate.</li>
<li><a href="http://www.devklog.net/wordpress/wp-content/uploads/2008/05/picture-9.png" rel="lightbox" title="Basic Constraints Extension For This CA"><img class="alignnone size-full wp-image-127" style="vertical-align: top;" title="Basic Constraints Extension For This CA" src="http://www.devklog.net/wordpress/wp-content/uploads/2008/05/picture-9.png" alt="Basic Constraints Extension For This CA" width="499" height="370" /></a><br />
The CA certificate must have a basic constraints extension with at least the <em>Use this certificate as a certificate authority</em> option specified. If it is not, Firefox 3 will reject  any child certificate of the CA certificate.</li>
<li><a href="http://www.devklog.net/wordpress/wp-content/uploads/2008/05/picture-10.png" rel="lightbox" title="Basic Constraints Extension For Users of This CA"><img class="alignnone size-full wp-image-128" style="vertical-align: top;" title="Basic Constraints Extension For Users of This CA" src="http://www.devklog.net/wordpress/wp-content/uploads/2008/05/picture-10.png" alt="Basic Constraints Extension For Users of This CA" width="499" height="370" /></a><br />
This step allows to specify default basic constraints extension settings for any leaf certificate created with the CA certificate as the root. SSL server certificates must not have the <em>Use this certificate as a certificate authority</em> option specified (while having a basic constraints extension). If the extension is missing or that option is specified, Firefox 3 will reject the certificate.</li>
<li><a href="http://www.devklog.net/wordpress/wp-content/uploads/2008/05/picture-11.png" rel="lightbox" title="Subject Alternate Name Extension For This CA"><img class="alignnone size-full wp-image-129" style="vertical-align: top;" title="Subject Alternate Name Extension For This CA" src="http://www.devklog.net/wordpress/wp-content/uploads/2008/05/picture-11.png" alt="Subject Alternate Name Extension For This CA" width="499" height="370" /></a><br />
Any certificate with the <em>SSL Server</em> type must have a subject alternate name extension specifying either the <em>dNSName</em> field or the <em>iPAddress</em> field. Obviously there are no special constraints on the value of either of those fields for the CA certificate.</li>
<li><a href="http://www.devklog.net/wordpress/wp-content/uploads/2008/05/picture-12.png" rel="lightbox" title="Subject Alternate Name Extension For Users of This CA"><img class="alignnone size-full wp-image-130" style="vertical-align: top;" title="Subject Alternate Name Extension For Users of This CA" src="http://www.devklog.net/wordpress/wp-content/uploads/2008/05/picture-12.png" alt="Subject Alternate Name Extension For Users of This CA" width="499" height="370" /></a><br />
Again, any certificate with the <em>SSL Server</em> type must have a subject alternate name extension specifying either the <em>dNSName</em> field or the <em>iPAddress</em> field. The value of those fields must match the domain name or IP address which clients will use to contact SSL servers using any child certificate of the CA certificate. Obviously, we will have to override this value when creating each such child certificate unless we&#8217;re creating them for the same server all the time. Nevertheless, Certificate Assistant requires a value to be specified to continue, so provide a reasonable default.</li>
<li><a href="http://www.devklog.net/wordpress/wp-content/uploads/2008/05/picture-13.png" rel="lightbox" title="Specify a Location For The Certificate"><img class="alignnone size-full wp-image-131" style="vertical-align: top;" title="Specify a Location For The Certificate" src="http://www.devklog.net/wordpress/wp-content/uploads/2008/05/picture-13.png" alt="Specify a Location For The Certificate" width="499" height="370" /></a><br />
Select the keychain in which the CA certificate will be stored. If you want browsers using Keychain Services to accept child certificates of the CA certificate, check the <em>On this machine, trust certificates signed by this CA</em> checkbox. Note that, as the label implies, this will affect the trust setting for the CA certificate for the entire machine, not just your specific system user. Consider the consequences of that choice carefully. It is possible to change trust settings on a per-user basis.</li>
<li><a href="http://www.devklog.net/wordpress/wp-content/uploads/2008/05/picture-14.png" rel="lightbox" title="Conclusion"><img class="alignnone size-full wp-image-132" style="vertical-align: top;" title="Conclusion" src="http://www.devklog.net/wordpress/wp-content/uploads/2008/05/picture-14.png" alt="Conclusion" width="499" height="370" /></a><br />
Success!</li>
</ol>
<p>We can finally appreciate the fruit of our labour. Double-clicking the CA certificate in Keychain Access will allow you to confirm that all the required settings, options and capabilities are properly configured. It should look like this:</p>
<p style="text-align: center;"><a href="http://www.devklog.net/wordpress/wp-content/uploads/2008/05/picture-15.png" rel="lightbox" title="The CA certificate"><img class="alignnone size-full wp-image-133" title="The CA certificate" src="http://www.devklog.net/wordpress/wp-content/uploads/2008/05/picture-15.png" alt="The CA certificate" width="499" height="1004" /></a></p>
<h4>Creating a SSL server leaf certificate</h4>
<p>I will not repeat the entire sequence of operation presented for the CA certificate, but rather focus on the steps that are specific to the creation of a SSL server leaf certificate. Make sure to keep in mind the various restrictions mentioned above concerned leaf certificates, since we have to override the default values we specified during the creation of the CA certificate and Certificate Assistant is not nice enough to fill in those defaults  <img src='http://www.devklog.net/wordpress/wp-includes/images/smilies/icon_neutral.gif' alt=':-|' class='wp-smiley' /> .</p>
<ol>
<li><a href="http://www.devklog.net/wordpress/wp-content/uploads/2008/05/menu2.png" rel="lightbox" title="Create a Certificate..."><img class="alignnone size-full wp-image-134" style="vertical-align: top; margin: 5px;" title="Create a Certificate..." src="http://www.devklog.net/wordpress/wp-content/uploads/2008/05/menu2.png" alt="Create a Certificate..." width="500" height="178" /></a><br />
Use the <em>Create a Certificate&#8230;</em> command from the <em>Keychain Access</em> &gt; <em>Certificate Assistant</em> menu.</li>
<li><a href="http://www.devklog.net/wordpress/wp-content/uploads/2008/05/picture-16.png" rel="lightbox" title="Create Your Certificate"><img class="alignnone size-full wp-image-135" style="vertical-align: top;" title="Create Your Certificate" src="http://www.devklog.net/wordpress/wp-content/uploads/2008/05/picture-16.png" alt="Create Your Certificate" width="499" height="370" /></a><br />
Enter the domain name that clients will be using to access the SSL server as the certificate&#8217;s name, and choose <em>Leaf</em> as the certificate type. Make sure to check <em>Let me override defaults</em> since we need to edit some of the certificate&#8217;s settings from the defaults we specified earlier.</li>
<li><a href="http://www.devklog.net/wordpress/wp-content/uploads/2008/05/picture-21.png" rel="lightbox" title="Certificate Information Part 1"><img class="alignnone size-full wp-image-136" style="vertical-align: top;" title="Certificate Information Part 1" src="http://www.devklog.net/wordpress/wp-content/uploads/2008/05/picture-21.png" alt="Certificate Information Part 1" width="499" height="370" /></a><br />
Enter a serial number different than that of the CA certificate and different than that of any other leaf certificate you have already created, even if they were for the same domain. Firefox 3 checks and keeps track of certificate serial numbers and will reject a certificate re-using a serial number. Also make sure that the certificate type is set to <em>SSL Server</em>, otherwise Firefox 3 will reject the certificate.</li>
<li><a href="http://www.devklog.net/wordpress/wp-content/uploads/2008/05/picture-31.png" rel="lightbox" title="Certificate Information Part 2"><img class="alignnone size-full wp-image-137" style="vertical-align: top;" title="Certificate Information Part 2" src="http://www.devklog.net/wordpress/wp-content/uploads/2008/05/picture-31.png" alt="Certificate Information Part 2" width="499" height="370" /></a><br />
The <em>Name (Common Name)</em> field must match the domain clients will use to connect to the SSL server, otherwise Firefox 3 will reject the certificate.</li>
<li><a href="http://www.devklog.net/wordpress/wp-content/uploads/2008/05/picture-81.png" rel="lightbox" title="Choose An Issuer"><img class="alignnone size-full wp-image-142" style="vertical-align: top;" title="Choose An Issuer" src="http://www.devklog.net/wordpress/wp-content/uploads/2008/05/picture-81.png" alt="Choose An Issuer" width="499" height="370" /></a><br />
Select the CA certificate created earlier.</li>
<li><a href="http://www.devklog.net/wordpress/wp-content/uploads/2008/05/picture-41.png" rel="lightbox" title="Key Usage Extension"><img class="alignnone size-full wp-image-138" style="vertical-align: top;" title="Key Usage Extension" src="http://www.devklog.net/wordpress/wp-content/uploads/2008/05/picture-41.png" alt="Key Usage Extension" width="499" height="370" /></a><br />
SSL server certificates must have a key usage extension with the <em>Key Encipherment</em> and <em>Key Agreement</em> bits set. If they are not, Firefox 3 will reject the certificate.</li>
<li><a href="http://www.devklog.net/wordpress/wp-content/uploads/2008/05/picture-51.png" rel="lightbox" title="Extended Key Usage Extension"><img class="alignnone size-full wp-image-139" style="vertical-align: top;" title="Extended Key Usage Extension" src="http://www.devklog.net/wordpress/wp-content/uploads/2008/05/picture-51.png" alt="Extended Key Usage Extension" width="499" height="370" /></a><br />
SSL server certificates must have an extended key usage extension with the <em>SSL Server Authentication</em> bit set. If it is not, Firefox 3 will reject the certificate.</li>
<li><a href="http://www.devklog.net/wordpress/wp-content/uploads/2008/05/picture-61.png" rel="lightbox" title="Basic Constraints Extension"><img class="alignnone size-full wp-image-140" style="vertical-align: top;" title="Basic Constraints Extension" src="http://www.devklog.net/wordpress/wp-content/uploads/2008/05/picture-61.png" alt="Basic Constraints Extension" width="499" height="370" /></a><br />
SSL server certificates must have a basic constraints extension with the <em>Use this certificate as a certificate authority</em> option disabled.</li>
<li><a href="http://www.devklog.net/wordpress/wp-content/uploads/2008/05/picture-71.png" rel="lightbox" title="Subject Alternate Name Extension"><img class="alignnone size-full wp-image-141" style="vertical-align: top;" title="Subject Alternate Name Extension" src="http://www.devklog.net/wordpress/wp-content/uploads/2008/05/picture-71.png" alt="Subject Alternate Name Extension" width="499" height="370" /></a><br />
SSL server certificates must have a subject alternate name extension with either the <em>dNSName</em> field or the <em>iPAddress</em> field specified. The values for those fields should match what clients will use to connect to the SSL server. In order words, the value for the <em>dNSName</em> field should match the value of the <em>Name (Common Name)</em> field of the certificate (specified in step 4) and the value <em>iPAddress</em> field should match the IP address to which the <em>dNSName</em> domain resolves.</li>
<li><a href="http://www.devklog.net/wordpress/wp-content/uploads/2008/05/picture-91.png" rel="lightbox" title="Conclusion"><img class="alignnone size-full wp-image-143" style="vertical-align: top;" title="Conclusion" src="http://www.devklog.net/wordpress/wp-content/uploads/2008/05/picture-91.png" alt="Conclusion" width="499" height="370" /></a><br />
Success again!</li>
</ol>
<p>We can once more appreciate the fruit of our labour. Double-clicking the certificate in Keychain Access will allow you to confirm that all the required settings, options and capabilities are properly configured. It should look like this:</p>
<p style="text-align: center;"><a href="http://www.devklog.net/wordpress/wp-content/uploads/2008/05/picture-101.png" rel="lightbox" title="The certificate"><img class="alignnone size-full wp-image-144" title="The certificate" src="http://www.devklog.net/wordpress/wp-content/uploads/2008/05/picture-101.png" alt="The certificate" width="499" height="1004" /></a></p>
<h4>Going from the keychain to Apache</h4>
<p>As a common scenario, here&#8217;s the straightforward way to export certificates stored in a keychain in a format suitable for Apache&#8217;s mod_ssl.</p>
<ol>
<li>Select the desired certificate from the <em>Certificates</em> or <em>My Certificates</em> category in Keychain Access (with the containing keychain selected, of course). The certificate item should have a disclosure triangle which once expanded will reveal the certificate&#8217;s private key. Indeed, we need to export both the certificate and its private key.</li>
<li>Use the <em>File</em> &gt; <em>Export Items&#8230;</em> command.</li>
<li><a href="http://www.devklog.net/wordpress/wp-content/uploads/2008/05/exporting.png" rel="lightbox" title="Navigation Services dialog for exporting a certificate"><img class="alignnone size-full wp-image-145" style="vertical-align: top;" title="Navigation Services dialog for exporting a certificate" src="http://www.devklog.net/wordpress/wp-content/uploads/2008/05/exporting.png" alt="Navigation Services dialog for exporting a certificate" width="500" height="446" /></a><br />
Use the <em>Personal Information Exchange (.p12)</em> format to export the certificate.</li>
<li><a href="http://www.devklog.net/wordpress/wp-content/uploads/2008/05/nopassword.png" rel="lightbox" title="No password"><img class="alignnone size-full wp-image-146" style="vertical-align: top;" title="No password" src="http://www.devklog.net/wordpress/wp-content/uploads/2008/05/nopassword.png" alt="No password" width="500" height="350" /></a><br />
Although you provide a password with which to encrypt the private key, since Apache requires it to be unencrypted in order to start automatically, simply don&#8217;t provide any password. You may want, however, to choose a secure export location, such as a private temporary folder that doesn&#8217;t get backed up by Time Machine or an encrypted disk image.</li>
<li>Open Terminal.</li>
<li>Run the following commands to export the certificate and the private key (unencrypted) to OpenSSL&#8217;s PEM format which mod_ssl requires.
<pre>openssl pkcs12 -in example.com.p12 -nokeys -nodes -out example.com.crt
openssl pkcs12 -in example.com.p12 -nocerts -nodes -out example.com.crtkey</pre>
</li>
</ol>
<p>All that&#8217;s left to do is ship out the .crt and .crtkey files to your SSL server and to securely delete all 3 files (.p12, .crt and .crtkey) from your local computer.</p>
<h4>Loose ends because Firefox 3 can&#8217;t bother to fully support Mac OS X</h4>
<p>When you connect with Firefox 3 to your SSL server with its shiny new certificates, Firefox 3 is still going to give you one of its famous gray error pages, stating that the certificate authority that signed the server&#8217;s certificate is not trusted. This is because, unlike <em>every other browser</em> for Mac OS X, Firefox can&#8217;t bother to use Keychain Services to verify certificate trust and therefore doesn&#8217;t know anything about the CA certificate stored in one of your keychains.</p>
<p>However this is a simple matter to fix. In the same error page, click on the <em>Or you can add an exception&#8230;</em> link, then on the <em>Add Exception</em> button. In the dialog that follows, first click on the <em>Get Certificate</em> button, make sure the <em>Permanently store this exception</em> checkbox is checked and finally click on the <em>Confirm Security Exception</em> button.</p>
<p>I&#8217;ll take this time to mention that that dialog is so poorly designed, with the <em>Cancel</em> button on the <em>right</em> of the dialog and of the &#8220;confirm action&#8221; button, contrary to Mac OS X HIG guidelines, not to mention the default button is that <em>Get Certificate</em> button which itself shouldn&#8217;t even be there – Firefox 3 should clearly fetch the certificate automatically. End of design commentary  <img src='http://www.devklog.net/wordpress/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> .</p>
<p>After that, Firefox 3 will trust the certificate and you should be good to go. You could also export the CA certificate and add it to Firefox 3&#8217;s list of trusted roots, an exercise I leave to the reader.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.devklog.net/2008/05/25/generating-ssl-certificates-that-will-make-firefox-3-happy/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Xcode 3.1 preview included in the iPhone SDK</title>
		<link>http://www.devklog.net/2008/03/06/xcode-31-preview-included-in-the-iphone-sdk/</link>
		<comments>http://www.devklog.net/2008/03/06/xcode-31-preview-included-in-the-iphone-sdk/#comments</comments>
		<pubDate>Fri, 07 Mar 2008 03:03:11 +0000</pubDate>
		<dc:creator>Jean-François Roy</dc:creator>
		
		<category><![CDATA[Mac OS X]]></category>

		<category><![CDATA[Apple]]></category>

		<category><![CDATA[macosx]]></category>

		<category><![CDATA[xcode]]></category>

		<guid isPermaLink="false">http://www.devklog.net/2008/03/06/xcode-31-preview-included-in-the-iphone-sdk/</guid>
		<description><![CDATA[Update: I initially had stated that LLVM was the future of Apple compiler technologies. This is the case in-so-far as I believe LLVM is the future of the gcc compiler backend. This is a personal blog and I&#8217;m obviously not speaking for anyone but myself.
While watching the iPhone SDK announcement video, I noticed some odd things [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Update:</strong> I initially had stated that LLVM was the future of Apple compiler technologies. This is the case in-so-far as I believe LLVM is the future of the gcc compiler backend. This is a personal blog and I&#8217;m obviously not speaking for anyone but myself.</p>
<p>While watching the iPhone SDK announcement video, I noticed some odd things in my beloved Xcode. Some UI elements were looking different. And indeed, the iPhone SDK includes a new version of Xcode (and many other dev tools) which may be of interest for anyone doing Mac OS X development. Some of the highlights:</p>
<ul>
<li>Brand-new &#8220;New Project&#8221; and &#8220;New File&#8221; dialogs. I really like them, and the new templates make more sense.</li>
<li>Multi-platform support. Each platform can provide its own set of tools and SDKs. This was obviously added to support the iPhone. So the big picture now is Platforms &gt; SDKs &gt; Architectures.</li>
<li>Preview of gcc-4.2 and llvm-gcc-4.2. I am really excited to check this two out, particularly the <a href="http://llvm.org/" title="LLVM" onclick="javascript:pageTracker._trackPageview ('/outbound/llvm.org');">LLVM</a> powered compiler, which brings to Mac OS X developers modern link-time optimization that Microsoft Visual Studio and Intel CC customers have enjoyed for many years now. LLVM is the future of gcc compiler technologies, and it&#8217;s great to start seeing that get out into a lot of people&#8217;s hands.</li>
<li>Improved support for conditional build settings (AKA per-architecture build settings).</li>
</ul>
<p>I hope to see the final version of Xcode 3.1 to be released at this year&#8217;s WWDC, if not some manner of new beta release.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.devklog.net/2008/03/06/xcode-31-preview-included-in-the-iphone-sdk/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Apple Developer Connection DDOSed by iPhone SDK</title>
		<link>http://www.devklog.net/2008/03/06/apple-developer-connection-ddosed-by-iphone-sdk/</link>
		<comments>http://www.devklog.net/2008/03/06/apple-developer-connection-ddosed-by-iphone-sdk/#comments</comments>
		<pubDate>Fri, 07 Mar 2008 00:56:13 +0000</pubDate>
		<dc:creator>Jean-François Roy</dc:creator>
		
		<category><![CDATA[Apple]]></category>

		<category><![CDATA[iphone]]></category>

		<guid isPermaLink="false">http://www.devklog.net/2008/03/06/apple-developer-connection-ddosed-by-iphone-sdk/</guid>
		<description><![CDATA[Apparently, a lot of people wanted the iPhone SDK, and for the first time that I can remember in the past 10 years, developer.apple.com died. I think it&#8217;s mostly a good thing, but it sure is making programming a little bit more tedious this evening. At least there&#8217;s the built-in documentation.

]]></description>
			<content:encoded><![CDATA[<p>Apparently, a lot of people wanted the iPhone SDK, and for the first time that I can remember in the past 10 years, developer.apple.com died. I think it&#8217;s mostly a good thing, but it sure is making programming a little bit more tedious this evening. At least there&#8217;s the built-in documentation.</p>
<p><a href="http://www.devklog.net/wordpress/wp-content/uploads/2008/03/adc_dead.png" title='404 on ADC' rel='lightbox'><img src='http://www.devklog.net/wordpress/wp-content/uploads/2008/03/adc_dead.png' alt='404 on ADC' /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.devklog.net/2008/03/06/apple-developer-connection-ddosed-by-iphone-sdk/feed/</wfw:commentRss>
		</item>
		<item>
		<title>CUDA for Mac OS X</title>
		<link>http://www.devklog.net/2008/02/13/cuda-for-mac-os-x/</link>
		<comments>http://www.devklog.net/2008/02/13/cuda-for-mac-os-x/#comments</comments>
		<pubDate>Wed, 13 Feb 2008 14:49:38 +0000</pubDate>
		<dc:creator>Jean-François Roy</dc:creator>
		
		<category><![CDATA[Mac OS X]]></category>

		<category><![CDATA[Apple]]></category>

		<category><![CDATA[gpgpu]]></category>

		<category><![CDATA[nvidia]]></category>

		<guid isPermaLink="false">http://www.devklog.net/2008/02/13/cuda-for-mac-os-x/</guid>
		<description><![CDATA[CUDA is NVIDIA&#8217;s architecture and API for GPGPU – general purpose GPU programming. The fact is, those graphic cards are hugely powerful parallel computing units, and everyone stands to benefit by exploiting them to do far more than just outputting images to a screen.
Well today, NVIDIA made CUDA available for Mac OS X. This is [...]]]></description>
			<content:encoded><![CDATA[<p>CUDA is NVIDIA&#8217;s architecture and API for GPGPU – general purpose GPU programming. The fact is, those graphic cards are hugely powerful parallel computing units, and everyone stands to benefit by exploiting them to do far more than just outputting images to a screen.</p>
<p>Well today, <a href="http://www.nvidia.com/object/cuda_get.html#macos" onclick="javascript:pageTracker._trackPageview ('/outbound/www.nvidia.com');">NVIDIA made CUDA available for Mac OS X</a>. This is a sign that times are changing for Apple when they start to make such a kind of inroad. And of course, everyone in the (probably small) Mac HPC business and in the scientific community is probably very happy about this.</p>
<p>So if you own NVIDIA hardware, go grab it and give it a try!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.devklog.net/2008/02/13/cuda-for-mac-os-x/feed/</wfw:commentRss>
		</item>
		<item>
		<title>One of the best Mac OS X application has just gotten better</title>
		<link>http://www.devklog.net/2007/11/30/one-of-the-best-mac-os-x-application-has-just-gotten-better/</link>
		<comments>http://www.devklog.net/2007/11/30/one-of-the-best-mac-os-x-application-has-just-gotten-better/#comments</comments>
		<pubDate>Sat, 01 Dec 2007 00:24:39 +0000</pubDate>
		<dc:creator>Jean-François Roy</dc:creator>
		
		<category><![CDATA[Mac OS X]]></category>

		<category><![CDATA[applications]]></category>

		<guid isPermaLink="false">http://www.devklog.net/2007/11/30/one-of-the-best-mac-os-x-application-has-just-gotten-better/</guid>
		<description><![CDATA[Omni released the first public beta of OmniGraffle Pro today. Version 5 boasts an impressive list of new features and refinements, such as GraphViz powered diagram layout, tables, bezier curves and better Visio and PDF import and export.
Give it a try. As far as I&#8217;m concerned, my only deception so far is not being able [...]]]></description>
			<content:encoded><![CDATA[<p>Omni released the first public beta of <a href="http://www.omnigroup.com/applications/omnigraffle/beta/" title="OmniGraffle 5 Beta" onclick="javascript:pageTracker._trackPageview ('/outbound/www.omnigroup.com');">OmniGraffle Pro</a> today. Version 5 boasts an impressive list of new features and refinements, such as <a href="http://www.graphviz.org" title="GraphViz" onclick="javascript:pageTracker._trackPageview ('/outbound/www.graphviz.org');">GraphViz</a> powered diagram layout, tables, bezier curves and better Visio and PDF import and export.</p>
<p>Give it a try. As far as I&#8217;m concerned, my only deception so far is not being able to buy a license already.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.devklog.net/2007/11/30/one-of-the-best-mac-os-x-application-has-just-gotten-better/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Mac OS X doesn&#8217;t have a BSOD</title>
		<link>http://www.devklog.net/2007/10/31/mac-os-x-doesnt-have-a-bsod/</link>
		<comments>http://www.devklog.net/2007/10/31/mac-os-x-doesnt-have-a-bsod/#comments</comments>
		<pubDate>Thu, 01 Nov 2007 01:37:10 +0000</pubDate>
		<dc:creator>Jean-François Roy</dc:creator>
		
		<category><![CDATA[Apple]]></category>

		<category><![CDATA[leopard]]></category>

		<guid isPermaLink="false">http://www.devklog.net/2007/10/31/mac-os-x-doesnt-have-a-bsod/</guid>
		<description><![CDATA[So the outdated APE and Leopard issue has promoted the idea that it leads to a &#8220;Leopard BSOD&#8221;. While I understand the potential confusion, please remember that a BSOD is a full fledged kernel panic when referring to Window&#8217;s famous blue screen. The blue you see when Leopard boots is actually drawn by the window [...]]]></description>
			<content:encoded><![CDATA[<p>So the outdated APE and Leopard issue has promoted the idea that it leads to a &#8220;Leopard BSOD&#8221;. While I understand the potential confusion, please remember that a BSOD is a full fledged kernel panic when referring to Window&#8217;s famous blue screen. The blue you see when Leopard boots is actually drawn by the window server, before loginwindow finishes to start, at which point it will either log you in or draw the login panel and the default background picture.</p>
<p>Because of the way APE works, it&#8217;s most likely it&#8217;s simply preventing loginwindow from properly starting. Under the covers, the Mac OS X kernel is still &#8220;happily&#8221; humming along. So it&#8217;s not a BSOD as it is generally understood &#8212; just a coincidence.</p>
<p><b>Edit: </b> Mac OS X certainly can kernel panic. But its death screen is not an intimidating blue screen. It&#8217;s a nice message telling you to reboot your computer (or a not-too-helpful dump if you passed the kernel certain debug boot flags).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.devklog.net/2007/10/31/mac-os-x-doesnt-have-a-bsod/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Quick word</title>
		<link>http://www.devklog.net/2007/08/12/quick-word/</link>
		<comments>http://www.devklog.net/2007/08/12/quick-word/#comments</comments>
		<pubDate>Sun, 12 Aug 2007 18:41:42 +0000</pubDate>
		<dc:creator>Jean-François Roy</dc:creator>
		
		<category><![CDATA[Apple]]></category>

		<category><![CDATA[Projects]]></category>

		<category><![CDATA[Real Life]]></category>

		<guid isPermaLink="false">http://www.devklog.net/2007/08/12/quick-word/</guid>
		<description><![CDATA[Just a quick word on what is currently going on.

My internship at Apple is soon coming to an end. It was an absolutely fantastic experience, which I will surely talk about some more in future entries, NDA permitting :p
There will be a new MPQKit release sometime by the end of August. It will likely be [...]]]></description>
			<content:encoded><![CDATA[<p>Just a quick word on what is currently going on.</p>
<ul>
<li>My internship at Apple is soon coming to an end. It was an absolutely fantastic experience, which I will surely talk about some more in future entries, NDA permitting :p</li>
<li>There will be a new MPQKit release sometime by the end of August. It will likely be the last beta release before the release candidate for 1.0, which will happen sometime in September.</li>
<li>I have started intensive work on Riven X again, and there is a lot more to come for that project as well. There will also be a new binary release by the end of August. I plan on finishing this project before next summer (for real this time).</li>
<li>StarCraft II will be awesome.</li>
<li>OpenGL 3 (codenamed Longs Peak) will go final sometime in September or October. This is fantastic news for OpenGL, as LP brings some much needed fresh air to the API, particularly in the realm of object model and data / state transfer efficiency. It will be a while before we see LP implementations ship to customers, but at least the spec will be out there.</li>
</ul>
<p>Much more coming in a week.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.devklog.net/2007/08/12/quick-word/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Congratulations Panic and Blizzard!</title>
		<link>http://www.devklog.net/2007/06/12/congratulations-panic-and-blizzard/</link>
		<comments>http://www.devklog.net/2007/06/12/congratulations-panic-and-blizzard/#comments</comments>
		<pubDate>Wed, 13 Jun 2007 03:42:04 +0000</pubDate>
		<dc:creator>Jean-François Roy</dc:creator>
		
		<category><![CDATA[Apple]]></category>

		<guid isPermaLink="false">http://www.devklog.net/2007/06/12/congratulations-panic-and-blizzard/</guid>
		<description><![CDATA[The Apple Design Awards reward applications that stand out, that define the Mac OS X experience and that make the Mac the best operating system by virtue of the quality of the applications that run on it. I would like to congratulate Panic for winning Best Mac OS X User Experience with Coda and Blizzard [...]]]></description>
			<content:encoded><![CDATA[<p>The Apple Design Awards reward applications that stand out, that define the Mac OS X experience and that make the Mac the best operating system by virtue of the quality of the applications that run on it. I would like to congratulate <a href="http://www.panic.com" title="Panic" onclick="javascript:pageTracker._trackPageview ('/outbound/www.panic.com');">Panic</a> for winning Best Mac OS X User Experience with <a href="http://www.panic.com/coda" title="Coda" onclick="javascript:pageTracker._trackPageview ('/outbound/www.panic.com');">Coda</a> and <a href="http://www.blizzard.com" title="Blizzard" onclick="javascript:pageTracker._trackPageview ('/outbound/www.blizzard.com');">Blizzard</a> for Best Game with <a href="http://www.worldofwarcraft.com" title="World of Warcraft: The Burning Crusade" onclick="javascript:pageTracker._trackPageview ('/outbound/www.worldofwarcraft.com');">World of Warcraft: The Burning Crusade</a>. Both of these applications are outstanding at what they do, push the limits of Mac OS X technologies and drive us at Apple to continually improve Mac OS X.</p>
<p>Of course Blizzard is closer to my heart, so I invite Mac users that play and enjoy Blizzard games to congratulate them for their exceptional work. Blizzard has kept Mac gaming alive through the difficult years and are now driving the development of OpenGL, not only on Mac OS X by constantly pushing the stack to its limits and helping us improve OpenGL, but also by actively participating in the OpenGL ARB. They have my utmost respect and they totally deserve this award. Congratulations again.</p>
<p>Check out all the winners at the <a href="http://developer.apple.com/wwdc/ada/" title="Apple Design Awards 2007" onclick="javascript:pageTracker._trackPageview ('/outbound/developer.apple.com');">Apple Design Awards 2007</a> page.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.devklog.net/2007/06/12/congratulations-panic-and-blizzard/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Live from Montréal-Pierre Elliott Trudeau International Airport</title>
		<link>http://www.devklog.net/2006/08/05/live-from-montreal-pierre-elliott-trudeau-international-airport/</link>
		<comments>http://www.devklog.net/2006/08/05/live-from-montreal-pierre-elliott-trudeau-international-airport/#comments</comments>
		<pubDate>Sat, 05 Aug 2006 06:31:16 +0000</pubDate>
		<dc:creator>Jean-François Roy</dc:creator>
		
		<category><![CDATA[Apple]]></category>

		<category><![CDATA[Projects]]></category>

		<category><![CDATA[Real Life]]></category>

		<guid isPermaLink="false">http://www.devklog.net/?p=52</guid>
		<description><![CDATA[Let's fix that, shall we?*Ahem* This is Jean-Francois Roy, live from Montréal-Pierre Elliott Trudeau International Airport.  Tonight we have a special program, with exciting news about my various projects, and more!Airport?That's right, I am leaving tomorrow today for beautiful San Francisco to assist Apple's yearly Worldwide Developers Conference.  In short, this is the most exciting week of the year for all Mac developers, with probably over 3000 of us converging on Moscone West convention center for sessions, labs, thematic lunches and evening fun in downtown clubs.I thought it would be entertaining to post some pictures of where I currently am.]]></description>
			<content:encoded><![CDATA[<p>Whoa, it sure has been long since I wrote on this blog. Let&#8217;s fix that, shall we?</p>
<p>*Ahem* This is Jean-Francois Roy, live from <a href="http://en.wikipedia.org/wiki/Pierre_Elliott_Trudeau_International_Airport" title="Montréal-Pierre Elliott Trudeau International Airport on Wikipedia" onclick="javascript:pageTracker._trackPageview ('/outbound/en.wikipedia.org');">Montréal-Pierre Elliott Trudeau International Airport</a>. Tonight we have a special program, with exciting news about my various projects, and more! For a recap of what my summer projects are, have a look at <a href="http://www.devklog.net/2006/05/13/summer-game-plan/" title="Summer game plan">Summer game plan</a>.</p>
<p><strong>Airport?</strong></p>
<p>That&#8217;s right, I am leaving <span style="text-decoration:line-through;">tomorrow</span> today for beautiful San Francisco to assist Apple&#8217;s yearly Worldwide Developers Conference. In short, this is the most exciting week of the year for all Mac developers, with probably over 3000 of us converging on <a href="http://en.wikipedia.org/wiki/Moscone_West_Convention_Center" title="Moscone West" onclick="javascript:pageTracker._trackPageview ('/outbound/en.wikipedia.org');">Moscone West</a> convention center for sessions, labs, thematic lunches and evening fun in downtown clubs.</p>
<p>I thought it would be entertaining to post some pictures of where I currently am. After all, I am showing my <em>geekiness</em> by doing an all-night pre-WWDC coding marathon. Unfortunately, I only have my <a href="http://en.wikipedia.org/wiki/Treo_650" title="Treo 650 on Wikipedia" onclick="javascript:pageTracker._trackPageview ('/outbound/en.wikipedia.org');">cell phone</a>&#8217;s digital camera at my disposal, so these won&#8217;t  be the greatest pictures ever. In any case and without further ado:</p>
<p><a href="http://www.devklog.net/wordpress/wp-content/Photo_080506_001-1.jpg" rel="lightbox" title="World of Warcraft, everywhere."><img src="http://www.devklog.net/wordpress/wp-content/Photo_080506_001-1-small.jpg" height="100" width="133" align="middle" border="0" hspace="4" vspace="4" alt="World of Warcraft, everywhere." title="World of Warcraft, everywhere." longdesc="" /></a><br />
<em>Cindy travels with me.</em></p>
<p><a href="http://www.devklog.net/wordpress/wp-content/Photo_080506_002.jpg" rel="lightbox" title="Laptop, drink, caffeine."><img src="http://www.devklog.net/wordpress/wp-content/Photo_080506_002-small.jpg" height="100" width="133" align="middle" border="0" hspace="4" vspace="4" alt="Laptop, drink, caffeine." title="Laptop, drink, caffeine." longdesc="" /></a><br />
<em>A table, some power, energy drinks. What else can you ask for?</em></p>
<p><a href="http://www.devklog.net/wordpress/wp-content/Photo_080506_003.jpg" rel="lightbox" title="Trudeau Airport, 1 of 3."><img src="http://www.devklog.net/wordpress/wp-content/Photo_080506_003-small.jpg" height="100" width="133" align="middle" border="0" hspace="4" vspace="4" alt="Trudeau Airport, 1 of 3." title="Trudeau Airport, 1 of 3." longdesc="" /></a><br />
<em>Where I am.</em></p>
<p><a href="http://www.devklog.net/wordpress/wp-content/Photo_080506_004.jpg" rel="lightbox" title="The bar."><img src="http://www.devklog.net/wordpress/wp-content/Photo_080506_004-small.jpg" height="100" width="133" align="middle" border="0" hspace="4" vspace="4" alt="The bar." title="The bar." longdesc="" /></a><br />
<em>Drinks are served all night!</em></p>
<p><a href="http://www.devklog.net/wordpress/wp-content/Photo_080506_005-1.jpg" rel="lightbox" title="Trudeau Airport, 2 of 3."><img src="http://www.devklog.net/wordpress/wp-content/Photo_080506_005-1-small.jpg" height="100" width="133" align="middle" border="0" hspace="4" vspace="4" alt="Trudeau Airport, 2 of 3." title="Trudeau Airport, 2 of 3." longdesc="" /></a><br />
<em>Some of the airport.</em></p>
<p><a href="http://www.devklog.net/wordpress/wp-content/Photo_080506_006.jpg" rel="lightbox" title="Trudeau Airport, 3 of 3."><img src="http://www.devklog.net/wordpress/wp-content/Photo_080506_006-small.jpg" height="100" width="133" align="middle" border="0" hspace="4" vspace="4" alt="Trudeau Airport, 3 of 3." title="Trudeau Airport, 3 of 3." longdesc="" /></a><br />
<em>And some more of it.</em></p>
<p><strong>Riven X</strong></p>
<p>Truth be told, I have neglected Riven X these past 2 months. Between <a href="http://www.worldofwarcraft.com" title="World of Warcraft" onclick="javascript:pageTracker._trackPageview ('/outbound/www.worldofwarcraft.com');">World of Warcraft</a>, <a href="httphttp://zohar.dyndns.org:47805/projects/longinus" title="Longinus Trac Wiki" onclick="javascript:pageTracker._trackPageview ('/outbound/zohar.dyndns.org:47805');">Longinus</a> (the name of my World of Warcraft DKP and raid statistics system) and my summer internship at <a href="http://www.crchul.ulaval.ca/" title="CHUL" onclick="javascript:pageTracker._trackPageview ('/outbound/www.crchul.ulaval.ca');">CHUL</a>, I simply have not had the time to work on it seriously.</p>
<p>However, Riven X will be my priority at WWDC, as far as my projects are concerned. There are several components in my engine that need improvement, and I will take full advantage of Apple&#8217;s engineers in the various labs to address known issues. Stay tuned for more!</p>
<p><strong>Longinus</strong></p>
<p>Ah, so much to say about this. The project has become a lot bigger than I originally anticipated. Its objective is now to be a generic raid statistics tracking system as well as a generic (meaning extensible) item distribution system. An IDS is basically a method by which a guild distributes items that drop during raids to participating members. <a href="http://www.alexstraza.net" title="Alexstraza Dragon Riders" onclick="javascript:pageTracker._trackPageview ('/outbound/www.alexstraza.net');">Alexstraza Dragon Riders</a> uses slightly modified English auctions for example, while <a href="http://trinity-dmaw.com/guild/" title="Trinity" onclick="javascript:pageTracker._trackPageview ('/outbound/trinity-dmaw.com');">Trinity</a> uses a zero-sum-based system.</p>
<p>There are two major components to Longinus.</p>
<p>The first is a World of Warcraft interface AddOn (thus written in <a href="http://www.lua.org/" title="Lua" onclick="javascript:pageTracker._trackPageview ('/outbound/www.lua.org');">Lua</a> and XML) which handles gathering data during raids (such as player deaths, connection and disconnect events, joined raid and left raid events, boss fights (duration, outcome)) and in-game IDS functionality (for example, running an auction in the case of my guild).</p>
<p>The second is a <a href="http://www.djangoproject.com/" title="Django" onclick="javascript:pageTracker._trackPageview ('/outbound/www.djangoproject.com');">Django</a>-powered Python web application. Right now it only handles basic administrative functionality (officer checkout and commit), but I will eventually add public views to browser and consult raid statistics and all that good stuff.</p>
<p>The basic cycle of operation is as follows: an officer makes a data checkout. This essentially exports data the in-game AddOn required to function properly  from the online database to a Lua file World of Warcraft will load (in WoW jargon, a saved variables Lua file). That checkout exists in the database and has a UUID, checkout timestamp, checkout officer, commit timestamp and commit officer (the latter two are of course initially NULL). There is no limit on the number of concurrent checkouts.</p>
<p>The officer then uses the in-game AddOn during raids for as long as he or she wants. However, after 3 days, Longinus will remind the officer, at most once per day, to commit back the data to the online database. When the officer does so, essentially by submitting his checkout saved variables file in a simple web form, the web application merges and updates the data in the database with the information from the saved variables file.</p>
<p>I&#8217;d like to finish by point (again) at the <a href="http://trac.edgewall.org/" title="Trac" onclick="javascript:pageTracker._trackPageview ('/outbound/trac.edgewall.org');">Trac</a> wiki for <a href="http://zohar.dyndns.org:47805/projects/longinus" title="Longinus Trac wiki" onclick="javascript:pageTracker._trackPageview ('/outbound/zohar.dyndns.org:47805');">Longinus</a>. It&#8217;s got some interesting stuff, particularly the <a href="http://zohar.dyndns.org:47805/projects/longinus/browser/web/longinus/utils/wowsv.py" title="wowsv" onclick="javascript:pageTracker._trackPageview ('/outbound/zohar.dyndns.org:47805');">wowsv</a> Python module, which not only loads Lua files (or Lua code as string data), but also serializes Python collections back to Lua code.</p>
<p><strong>Wrapping up</strong></p>
<p>Because Andrew is tired, I am going to wrap this entry now. Besides, I don&#8217;t have much else to report at this time. This was Jean-Francois Roy, for /dev/klog, in Montréal-Pierre Elliott Trudeau International Airport.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.devklog.net/2006/08/05/live-from-montreal-pierre-elliott-trudeau-international-airport/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>

<!-- Dynamic Page Served (once) in 0.706 seconds -->
