<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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/"
		>
<channel>
	<title>Comments on: Writing a face recognition library interface is hard. Really hard.</title>
	<atom:link href="http://lbrandy.com/blog/2009/06/writing-a-face-recognition-library-interface-is-hard/feed/" rel="self" type="application/rss+xml" />
	<link>http://lbrandy.com/blog/2009/06/writing-a-face-recognition-library-interface-is-hard/</link>
	<description>{ on programming and the internets, every monday }</description>
	<lastBuildDate>Mon, 23 Aug 2010 09:39:45 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: tangential</title>
		<link>http://lbrandy.com/blog/2009/06/writing-a-face-recognition-library-interface-is-hard/comment-page-1/#comment-10412</link>
		<dc:creator>tangential</dc:creator>
		<pubDate>Wed, 10 Jun 2009 03:33:00 +0000</pubDate>
		<guid isPermaLink="false">http://lbrandy.com/blog/?p=817#comment-10412</guid>
		<description>As a Qt developer, thankyou ;) It feels good to be appreciated, and we&#039;re also all pretty passionate here about writing good libraries.

May I reccommend some mandatory reading for anyone working here at Qt ;) http://chaos.troll.no/~shausman/api-design/api-design.pdf (If that link fails, google &quot;The Little Manual of API Design&quot; by Jasmine Blanchette).</description>
		<content:encoded><![CDATA[<p>As a Qt developer, thankyou <img src='http://lbrandy.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  It feels good to be appreciated, and we&#8217;re also all pretty passionate here about writing good libraries.</p>
<p>May I reccommend some mandatory reading for anyone working here at Qt <img src='http://lbrandy.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  <a href="http://chaos.troll.no/~shausman/api-design/api-design.pdf" rel="nofollow">http://chaos.troll.no/~shausman/api-design/api-design.pdf</a> (If that link fails, google &#8220;The Little Manual of API Design&#8221; by Jasmine Blanchette).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Anonymous</title>
		<link>http://lbrandy.com/blog/2009/06/writing-a-face-recognition-library-interface-is-hard/comment-page-1/#comment-10388</link>
		<dc:creator>Anonymous</dc:creator>
		<pubDate>Tue, 09 Jun 2009 13:59:55 +0000</pubDate>
		<guid isPermaLink="false">http://lbrandy.com/blog/?p=817#comment-10388</guid>
		<description>How fun that while I was reading the summary my thoughts immediately went to Qt before you mentioned it :) Kudos to all Qt fans.</description>
		<content:encoded><![CDATA[<p>How fun that while I was reading the summary my thoughts immediately went to Qt before you mentioned it <img src='http://lbrandy.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Kudos to all Qt fans.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Monkeyget</title>
		<link>http://lbrandy.com/blog/2009/06/writing-a-face-recognition-library-interface-is-hard/comment-page-1/#comment-10385</link>
		<dc:creator>Monkeyget</dc:creator>
		<pubDate>Tue, 09 Jun 2009 11:03:40 +0000</pubDate>
		<guid isPermaLink="false">http://lbrandy.com/blog/?p=817#comment-10385</guid>
		<description>There is a nice presentation which put the emphasis on the various levels of integration of an API. Designing and Evaluating Reusable Components : http://mollyrocket.com/9438</description>
		<content:encoded><![CDATA[<p>There is a nice presentation which put the emphasis on the various levels of integration of an API. Designing and Evaluating Reusable Components : <a href="http://mollyrocket.com/9438" rel="nofollow">http://mollyrocket.com/9438</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ollie Saunders</title>
		<link>http://lbrandy.com/blog/2009/06/writing-a-face-recognition-library-interface-is-hard/comment-page-1/#comment-10374</link>
		<dc:creator>Ollie Saunders</dc:creator>
		<pubDate>Tue, 09 Jun 2009 01:36:44 +0000</pubDate>
		<guid isPermaLink="false">http://lbrandy.com/blog/?p=817#comment-10374</guid>
		<description>Continuously and consistently apply your solution back to the problem domain. In short, test your API early and often in the most diverse and real-world ways you can.</description>
		<content:encoded><![CDATA[<p>Continuously and consistently apply your solution back to the problem domain. In short, test your API early and often in the most diverse and real-world ways you can.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Michael</title>
		<link>http://lbrandy.com/blog/2009/06/writing-a-face-recognition-library-interface-is-hard/comment-page-1/#comment-10368</link>
		<dc:creator>Michael</dc:creator>
		<pubDate>Mon, 08 Jun 2009 22:24:33 +0000</pubDate>
		<guid isPermaLink="false">http://lbrandy.com/blog/?p=817#comment-10368</guid>
		<description>Also there&#039;s a one hour Google Tech Talk on YouTube titled &quot;How To Design A Good API and Why it Matters&quot;: http://www.youtube.com/watch?v=aAb7hSCtvGw</description>
		<content:encoded><![CDATA[<p>Also there&#8217;s a one hour Google Tech Talk on YouTube titled &#8220;How To Design A Good API and Why it Matters&#8221;: <a href="http://www.youtube.com/watch?v=aAb7hSCtvGw" rel="nofollow">http://www.youtube.com/watch?v=aAb7hSCtvGw</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Michael</title>
		<link>http://lbrandy.com/blog/2009/06/writing-a-face-recognition-library-interface-is-hard/comment-page-1/#comment-10367</link>
		<dc:creator>Michael</dc:creator>
		<pubDate>Mon, 08 Jun 2009 22:16:45 +0000</pubDate>
		<guid isPermaLink="false">http://lbrandy.com/blog/?p=817#comment-10367</guid>
		<description>I really liked this post. I was a little surprised when you said that the face-face scoring was low-level. To me that seems pretty high level!

A key aspect of programming is breaking down problems into manageable chunks. The Unix philosophy was to combine a lot of little programs that perform their little tasks really well, rather than writing a few programs that did everything which would end up being mediocre. Your API could be implemented in several layers/components, each with a specific purpose, and the user can choose what level of abstraction he wants to work at.

It seems to me that use cases are very important for this--they lead to real-world test applications, as Tony mentioned. If you were to expose only the minimal functionality to achieve your use cases, I wonder where that would take you...</description>
		<content:encoded><![CDATA[<p>I really liked this post. I was a little surprised when you said that the face-face scoring was low-level. To me that seems pretty high level!</p>
<p>A key aspect of programming is breaking down problems into manageable chunks. The Unix philosophy was to combine a lot of little programs that perform their little tasks really well, rather than writing a few programs that did everything which would end up being mediocre. Your API could be implemented in several layers/components, each with a specific purpose, and the user can choose what level of abstraction he wants to work at.</p>
<p>It seems to me that use cases are very important for this&#8211;they lead to real-world test applications, as Tony mentioned. If you were to expose only the minimal functionality to achieve your use cases, I wonder where that would take you&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Tony Arkles</title>
		<link>http://lbrandy.com/blog/2009/06/writing-a-face-recognition-library-interface-is-hard/comment-page-1/#comment-10362</link>
		<dc:creator>Tony Arkles</dc:creator>
		<pubDate>Mon, 08 Jun 2009 18:43:14 +0000</pubDate>
		<guid isPermaLink="false">http://lbrandy.com/blog/?p=817#comment-10362</guid>
		<description>Another good way to hammer out a good API is to make a first cut at it, and then spend a few days writing sample applications (beyond &quot;hello world&quot;) with the library.  Get them to report back the parts that were awkward to work with.  Iterate, fix the biggest few complaints, and do it again.  You should hit a pretty decent API within a few goes at it.</description>
		<content:encoded><![CDATA[<p>Another good way to hammer out a good API is to make a first cut at it, and then spend a few days writing sample applications (beyond &#8220;hello world&#8221;) with the library.  Get them to report back the parts that were awkward to work with.  Iterate, fix the biggest few complaints, and do it again.  You should hit a pretty decent API within a few goes at it.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
