<?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>Structure in the flow</title>
	<atom:link href="http://www.fsavard.com/flow/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.fsavard.com/flow</link>
	<description>Programming, personal knowledge management. Topics unstable.</description>
	<lastBuildDate>Sat, 10 Dec 2011 20:38:44 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Email charter, and small updates</title>
		<link>http://www.fsavard.com/flow/2011/07/email-charter-and-small-updates/</link>
		<comments>http://www.fsavard.com/flow/2011/07/email-charter-and-small-updates/#comments</comments>
		<pubDate>Fri, 29 Jul 2011 13:09:32 +0000</pubDate>
		<dc:creator>Francois</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.fsavard.com/flow/?p=663</guid>
		<description><![CDATA[As a theme of this blog is information overload, I need to point this out: an email charter, a set of principles for senders to respect to make email overload less of a problem. Here&#8217;s a blog post on its elaboration. The fact is, a lot of information overload could be dealt with at the [...]]]></description>
			<content:encoded><![CDATA[<p>As a theme of this blog is information overload, I need to point this out: an <a href="http://emailcharter.org/">email charter</a>, a set of principles for senders to respect to make email overload less of a problem. Here&#8217;s a <a href="http://tedchris.posterous.com/help-create-an-email-charter">blog post on its elaboration</a>.</p>
<p>The fact is, a lot of information overload could be dealt with at the source, if the sender/publisher had more care for the time of the recipient/audience. Conventions such as these, or as netiquette, need to be made explicit to get more adoption.</p>
<p>I&#8217;ve also made two small updates to pages:</p>
<ul>
<li>On the <a href="http://www.fsavard.com/flow/2010/03/google-reader-feed-maker/">page about monitoring pages for changes</a>, I now recommend using Firefox SiteDelta (or other locally installed software) as Google web page monitoring feature has been cancelled</li>
<li>For <a href="http://www.fsavard.com/flow/2008/11/organizing-code-snippets-and-programming-knowledge/">code snippet organization</a>, I now point to this <a href="http://stackoverflow.com/questions/4101/where-do-you-store-your-code-snippets">discussion at StackOverflow</a> which is a nice overview of the wide range of options people use</li>
</ul>
 <img src="http://www.fsavard.com/flow/wp-content/plugins/feed-statistics.php?view=1&post_id=663" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://www.fsavard.com/flow/2011/07/email-charter-and-small-updates/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Image stitching</title>
		<link>http://www.fsavard.com/flow/2011/06/image-stitching-assigment/</link>
		<comments>http://www.fsavard.com/flow/2011/06/image-stitching-assigment/#comments</comments>
		<pubDate>Fri, 10 Jun 2011 16:00:58 +0000</pubDate>
		<dc:creator>Francois</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[computer vision]]></category>
		<category><![CDATA[opencv]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://www.fsavard.com/flow/?p=646</guid>
		<description><![CDATA[As I said in the previous post, the first assignment in that computer vision course I took was to write an image stitching program. The basic idea is to take a series of pictures by rotating around the point where the camera is located. Then you find how each &#8220;maps&#8221; to the others and &#8220;stitch&#8221; [...]]]></description>
			<content:encoded><![CDATA[<p>As I said in the previous post, the first assignment in that computer vision course I took was to write an image stitching program. The basic idea is to take a series of pictures by rotating around the point where the camera is located. Then you find how each &#8220;maps&#8221; to the others and &#8220;stitch&#8221; them into a single coherent panorama.</p>
<p>At first I thought this couldn&#8217;t make sense for a first foray into CV algorithms and/or would take a gargantuan amount of time. Turns out only the second part was right, but mostly because I had to learn to use Mathematica and program in OpenCV along the way. And the hardest part was already done for us by either of these tools, anyway: finding correspondences between pictures.</p>
<p>The basic principle, as I said, is to find corresponding points between pictures. To do that you need to identify &#8220;keypoints&#8221;, basically points that look unique yet can be identified in another picture to find matches, even if in the other picture they&#8217;re slightly different. There&#8217;s a whole world of research on how to do that, but in our case it boiled down to either using SIFT or SURF features in Mathematica and OpenCV. Then some &#8220;distance&#8221; is used to find points that match between images. It measures how much the region around keypoints differ between potential matching points.</p>
<p>Once you&#8217;ve got these matches between pictures, supposing for the moment they&#8217;re all correct, if the pictures were taken &#8220;right&#8221; you can find a transform matrix H (an homography) such that, if x is the coordinate of a point in the first image, Hx gives the coordinate of the point in the second.</p>
<p>So, skipping some details about weeding out bad matches, what I did was find an homography between pairs of consecutive images, and bring everything back into the coordinates of the central image. Starting from these, say:</p>
<p style="text-align: center;"><img class="alignnone size-full wp-image-649" title="Thumbnails of pictures" src="http://www.fsavard.com/flow/wp-content/uploads/2011/06/gallery.png" alt="" width="508" height="480" /></p>
<p>I get this:</p>
<p style="text-align: center;"><img class="alignnone size-full wp-image-650" title="Original panorama" src="http://www.fsavard.com/flow/wp-content/uploads/2011/06/panorama_original_600.jpg" alt="" width="600" height="201" /></p>
<p>Cropping to keep only the central part:</p>
<p style="text-align: center;"><a href="http://www.fsavard.com/flow/wp-content/uploads/2011/06/panorama_cropped_fullsize.jpg"><img class="alignnone size-full wp-image-651" title="Only central part" src="http://www.fsavard.com/flow/wp-content/uploads/2011/06/panorama_cropped_600.jpg" alt="" width="600" height="120" /></a></p>
<p>Now I will concede my C program probably doesn&#8217;t have all the gizmos of other commercial options (notably if you look at the full size version above, you&#8217;ll see problems stemming from auto lighting on the camera), but hey, for a first assignment I was pretty impressed with the result. (And it turns out it was actually a pretty good first assignment, as those transformations and keypoint finding operations were fundamental for the rest of the course).</p>
<p>(As a last technical point: to filter out bad matches, we used RANSAC and other constraints on distances (in my case the first match must be much better than the second one).)</p>
 <img src="http://www.fsavard.com/flow/wp-content/plugins/feed-statistics.php?view=1&post_id=646" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://www.fsavard.com/flow/2011/06/image-stitching-assigment/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Computer vision project: overlaying 3D reconstruction from webcam on the original scene</title>
		<link>http://www.fsavard.com/flow/2011/06/computer-vision-course-project/</link>
		<comments>http://www.fsavard.com/flow/2011/06/computer-vision-course-project/#comments</comments>
		<pubDate>Wed, 08 Jun 2011 18:08:10 +0000</pubDate>
		<dc:creator>Francois</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[augmented reality]]></category>
		<category><![CDATA[computer vision]]></category>
		<category><![CDATA[opencv]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://www.fsavard.com/flow/?p=638</guid>
		<description><![CDATA[I&#8217;ve been taking a few graduate courses at Université de Montréal in the past two years, but the last one, the computer vision course, was by far the one with the most &#8220;showable&#8221; (mighty Google says that&#8217;s a word) projects. I&#8217;ll be posting later on the first project, a basic image stitching app. For now, [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been taking a few graduate courses at Université de Montréal in the past two years, but the last one, the computer vision course, was by far the one with the most &#8220;showable&#8221; (mighty Google says that&#8217;s a word) projects. I&#8217;ll be posting later on the first project, a basic image  stitching app. For now, I&#8217;ll just leave this here:</p>
<p><object style="height: 390px; width: 640px;"><param name="movie" value="http://www.youtube.com/v/moDzr2WTP68?version=3" /><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><embed type="application/x-shockwave-flash" width="640" height="390" src="http://www.youtube.com/v/moDzr2WTP68?version=3" allowfullscreen="true" allowscriptaccess="always"></embed></object></p>
<p>It&#8217;s an example result from my term project. In a nutshell, skipping the technical:</p>
<ul>
<li> I take a couple of pictures with a camera for which I know some parameters, notably focal length;</li>
<li>In the scene there&#8217;s this augmented reality tag which helps me find out where the camera is in each pose;</li>
<li>I find corresponding points between images to create a (sparse) 3D point cloud of the object;</li>
<li>I then use MeshLab to get a mesh (I only have points, I need triangles) and then find some &#8220;good enough&#8221; textures for the triangles;</li>
<li>I then use the 3D model that comes out of all this and overlay it on the original scene, so the model ends up being &#8230; well where it should be in the first place.</li>
</ul>
<p>I wrote this using ARToolkit+ and OpenCV. Reprojecting onto the original image is done with OpenGL.</p>
<p>Some technical details for those who are into this kind of thing:</p>
<ul>
<li>I pre-calibrate the camera model with OpenCV calibration routines and a &#8220;chessboard&#8221;;</li>
<li>Getting the camera position from the detected tag is simply decomposing an homography between the tag plane and its image, which happened to be something we did for another course work;</li>
<li>I find corresponding points with SURF, and filter correspondences with epipolar line constraints found from camera poses, among other filters;</li>
<li>I first find correspondences between image pairs, and then merge them correspondences from all pairs using an algorithm I cooked up;</li>
<li>Finding a texture for each triangle involves finding a &#8220;good&#8221; image to project the triangle onto, then building a huge map of the textures for OpenGL from the extracted bits of the original images.</li>
</ul>
<p>I know the tracking&#8217;s pretty bad (I had to hack ARTookit+ which would return false positives at times) and the model is far from the reconstruction quality you&#8217;d get with less sparse techniques (another student in the course tackled reconstruction with structured light, for example, and had ~2 million points&#8230; I get ~2000), but hey, it (kinda) works and uses only a webcam (for the example shown above).</p>
<p>Maybe at some point I&#8217;ll get around to making the tracking smoother, at least. And to posting a more detailed demo of the app itself. It shows a bunch of fun stuff about the reconstruction process, like epipolar lines and camera positions for each pose.</p>
 <img src="http://www.fsavard.com/flow/wp-content/plugins/feed-statistics.php?view=1&post_id=638" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://www.fsavard.com/flow/2011/06/computer-vision-course-project/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Converting to old-style &#8216;website&#8217;</title>
		<link>http://www.fsavard.com/flow/2010/07/converting-to-old-style-website/</link>
		<comments>http://www.fsavard.com/flow/2010/07/converting-to-old-style-website/#comments</comments>
		<pubDate>Thu, 29 Jul 2010 16:05:05 +0000</pubDate>
		<dc:creator>Francois</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Meta]]></category>

		<guid isPermaLink="false">http://www.fsavard.com/flow/?p=608</guid>
		<description><![CDATA[I&#8217;ve gone through many posts along the lines of &#8220;oh I haven&#8217;t got time for this blog&#8221;, here&#8217;s another. Well in fact it&#8217;s the last one, as I won&#8217;t see this as a &#8220;blog&#8221; anymore. Let&#8217;s call this a &#8220;website&#8221;, like in the good old days when everything was edited manually and the concept of [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve gone through many posts along the lines of &#8220;oh I haven&#8217;t got time for this blog&#8221;, here&#8217;s another. Well in fact it&#8217;s the last one, as I won&#8217;t see this as a &#8220;blog&#8221; anymore. Let&#8217;s call this a &#8220;website&#8221;, like in the good old days when everything was edited manually and the concept of &#8220;timeline&#8221; wasn&#8217;t as important (Why would content like this be ordered chronologically anyway? It was trendy, I guess&#8230;). I&#8217;ve thought about doing this for a while, found a few hours to do it this morning, so here we go!</p>
<p>I&#8217;m still using WordPress, as it&#8217;s a good content management system anyway. Also, it&#8217;ll still allow for changes to be tracked in the sidebar.</p>
<p>I also changed the theme to something slightly more traditional; I find it easier on the eyes. It&#8217;s my first blog&#8217;s theme, in fact.</p>
 <img src="http://www.fsavard.com/flow/wp-content/plugins/feed-statistics.php?view=1&post_id=608" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://www.fsavard.com/flow/2010/07/converting-to-old-style-website/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Small updates to Javascript speed reading app</title>
		<link>http://www.fsavard.com/flow/2010/04/small-updates-to-javascript-speed-reading-app/</link>
		<comments>http://www.fsavard.com/flow/2010/04/small-updates-to-javascript-speed-reading-app/#comments</comments>
		<pubDate>Fri, 02 Apr 2010 13:45:38 +0000</pubDate>
		<dc:creator>Francois</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[homebrew]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[reading]]></category>
		<category><![CDATA[tools]]></category>

		<guid isPermaLink="false">http://www.fsavard.com/flow/?p=592</guid>
		<description><![CDATA[Just a note concerning two small new features I added to my Javascript speed reading (RSVP) app: You can now change the speed using your keyboard&#8217;s up/down arrows keys Text and background colors may now be selected using a color picker (based on JsColor) These were features some users asked for either on the blog [...]]]></description>
			<content:encoded><![CDATA[<p>Just a note concerning two small new features I added to my <a href="http://fsavard.com/code/speedread/">Javascript speed reading (RSVP) app</a>:</p>
<ul>
<li>You can now change the speed using your keyboard&#8217;s up/down arrows keys</li>
<li>Text and background colors may now be selected using a color picker (based on <a href="http://www.jscolor.com">JsColor</a>)</li>
</ul>
<p>These were features some users asked for either on the blog or in the comment form in the app. Thanks for the feedback!</p>
 <img src="http://www.fsavard.com/flow/wp-content/plugins/feed-statistics.php?view=1&post_id=592" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://www.fsavard.com/flow/2010/04/small-updates-to-javascript-speed-reading-app/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google Reader feed maker</title>
		<link>http://www.fsavard.com/flow/2010/03/google-reader-feed-maker/</link>
		<comments>http://www.fsavard.com/flow/2010/03/google-reader-feed-maker/#comments</comments>
		<pubDate>Tue, 09 Mar 2010 00:45:22 +0000</pubDate>
		<dc:creator>Francois</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[pkm]]></category>
		<category><![CDATA[RSS]]></category>

		<guid isPermaLink="false">http://www.fsavard.com/flow/?p=586</guid>
		<description><![CDATA[UPDATE July 29, 2011: Google seems to have disabled this feature (a few months after it came out, actually). In any case, I find locally-installed extensions such as Firefox SiteDelta to be more reliable than online tools for this task, as you control the verification schedule  (e.g. I tried Page2RSS, but never got any updates [...]]]></description>
			<content:encoded><![CDATA[<p><strong>UPDATE July 29, 2011</strong>: <strong>Google seems to have <a href="http://googlesystem.blogspot.com/2010/09/google-readers-web-page-monitoring-to.html">disabled this feature</a></strong> (a few months after it came out, actually). In any case, I find locally-installed extensions such as <a href="https://addons.mozilla.org/en-US/firefox/addon/sitedelta/">Firefox SiteDelta</a> to be more reliable than online tools for this task, as you control the verification schedule  (e.g. I tried <a href="http://page2rss.com/">Page2RSS</a>, but never got any updates in the provided feed).</p>
<p><del>Just a quick post to underline a <strong>Google Reader feature</strong> which, though simple, may come in handy: <a href="http://googlereader.blogspot.com/2010/01/follow-changes-to-any-website.html">creating a <strong>feed for &#8220;feed-less&#8221; sites</strong></a>. It basically tracks updates on pages by <strong>periodically checking the pages you choose</strong>.</del></p>
<p><del>I need to mention that for <strong>table-based pages</strong> (or any page with recurring pattern but no feed) there are existing services such as <a href="http://www.dapper.net/open/">Dapper</a> which will allow you to create a more sophisticated and precise feed by creating a page scrapper on-the-fly.</del></p>
<p><del>It&#8217;s the kind of feature for which I tend to find more and more uses as  time goes on. One significant example I&#8217;m thinking of is <strong>personal homepages of friends and people</strong> who haven&#8217;t yet integrated a feed: it&#8217;d be nice to be alerted when they change.</del></p>
<p>(Via this <a href="http://lifehacker.com/5456657/google-reader-gets-smart-tracks-updates-on-feedless-web-sites">LifeHacker article</a>)</p>
<p><em><strong>Update the next day</strong>: there seems to be plenty other similar  services. <a href="http://www.changedetection.com/">ChangeDetection.com</a> is an old  one, sending updates via email. For others, just Google for &#8220;monitor  page changes&#8221;.</em></p>
<p>(To be perfectly honest, from a programmer&#8217;s point of view, I guess you could do the same by having a list of URLs and setting up a script to periodically check whether significant changes have been made (i.e. using a &#8220;diff&#8221;). Yet I never took the time to do it, and now that&#8217;s it&#8217;s easily available&#8230;)</p>
<p><del></del></p>
<p><del><br />
</del></p>
 <img src="http://www.fsavard.com/flow/wp-content/plugins/feed-statistics.php?view=1&post_id=586" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://www.fsavard.com/flow/2010/03/google-reader-feed-maker/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Simple Javascript memory game</title>
		<link>http://www.fsavard.com/flow/2010/02/simple-javascript-memory-game/</link>
		<comments>http://www.fsavard.com/flow/2010/02/simple-javascript-memory-game/#comments</comments>
		<pubDate>Sat, 20 Feb 2010 18:24:53 +0000</pubDate>
		<dc:creator>Francois</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Clusterify]]></category>
		<category><![CDATA[pkm]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://www.fsavard.com/flow/?p=582</guid>
		<description><![CDATA[Here&#8217;s a little memory game I just finished, using jQuery. It&#8217;s very bare bones, and I might add features to it, but it works, doesn&#8217;t have a bunch of ads floating around (like most do on the Web), and the board size can be changed (up to 60 total cards for the moment). For the [...]]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s a <a href="http://fsavard.com/code/pairsgame/">little memory game</a> I just finished, using jQuery. It&#8217;s very bare bones, and I might add features to it, but it works, doesn&#8217;t have a bunch of ads floating around (like most do on the Web), and the board size can be changed (up to 60 total cards for the moment).</p>
<p>For the context: when we launched <a href="http://clusterify.com/projects/">Clusterify</a>, one of the early projects I proposed was a <a href="http://clusterify.com/projects/list/fsavard/3/">simple &#8220;matching pairs&#8221; game</a>. Some almost-complete code I wrote up has been sitting on my computer ever since, just needing a few last fixes, and the addition of actual pictures. So I did those last fixes, adapted stock photos for it, and now <a href="http://fsavard.com/code/pairsgame/">here&#8217;s the game</a>.</p>
<h3>Changelog</h3>
<ul>
<li><strong>2010.02.22:</strong> as per a commenter&#8217;s (Jebadiah&#8217;s) suggestion, added a score and a timer. Also, images are now shuffled so the last ones (cats and birds) show up in the smaller grid.</li>
</ul>
 <img src="http://www.fsavard.com/flow/wp-content/plugins/feed-statistics.php?view=1&post_id=582" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://www.fsavard.com/flow/2010/02/simple-javascript-memory-game/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>A few useful augmented reality apps</title>
		<link>http://www.fsavard.com/flow/2010/02/a-few-useful-augmented-reality-apps/</link>
		<comments>http://www.fsavard.com/flow/2010/02/a-few-useful-augmented-reality-apps/#comments</comments>
		<pubDate>Sat, 20 Feb 2010 15:50:27 +0000</pubDate>
		<dc:creator>Francois</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[pkm]]></category>

		<guid isPermaLink="false">http://www.fsavard.com/flow/?p=576</guid>
		<description><![CDATA[Augmented reality is the concept of adding information to the stream your senses already provide about the surrounding scene. Concretely, these last few months, a lot of software has appeared for smartphones, taking advantage of the integration of a camera with a good-enough screen. Here are a few examples: The recent Google Goggles and Google [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://en.wikipedia.org/wiki/Augmented_reality">Augmented reality</a> is the concept of <strong>adding information to the stream your senses already provide about the surrounding scene</strong>. Concretely, these last few months, a lot of software has appeared for <strong>smartphones</strong>, taking advantage of the integration of a camera with a good-enough screen. Here are a few examples:</p>
<ul>
<li>The recent <a href="http://www.google.com/mobile/goggles/">Google Goggles</a> and <a href="http://www.google.com/mobile/shopper/">Google Shopper</a>. Goggles adds information to objects you take a picture of, or uses GPS to retrieve information about shops you walk by and add it to the picture (most AR apps I&#8217;ve seen focus on this). Shopper adds information about the current product.
<ul>
<li>Another feature of Goggles is the <a href="http://www.youtube.com/watch?v=ae01yz5z99E">instant translation of text in a picture</a>. This could be quite handy when travelling.</li>
</ul>
</li>
<li>There are <strong>augmented reality &#8220;browsers&#8221;</strong> which provide a platform to add features to. For example, <a href="http://www.youtube.com/watch?v=b64_16K2e08">Layar</a> lets you select <a href="http://layar.com/layers/">&#8220;Layers&#8221; of information</a> to add to the scene.
<ul>
<li>There&#8217;s also <a href="http://www.junaio.com/">Junaio</a>, a browser which allows the addition of 3D animations to the image, with lots of <a href="http://www.readwriteweb.com/start/2009/11/junaio-will-editable-3d-object.php">potential for entertainment apps</a>.</li>
</ul>
</li>
<li><a href="http://www.wikitude.org/">Wikitude</a> uses augmented reality to add traveller&#8217;s guide type information to the scene.</li>
<li><a href="http://www.youtube.com/watch?v=tb0pMeg1UN0">TAT augmented ID</a>: use the cam to get a good image of someone to identify, and this uses an online face recognition service to provide public information they want to share if they&#8217;ve set up their &#8220;public ID card&#8221; (Twitter profile etc.).</li>
</ul>
<p>Augmented reality appears a lot in science fiction. For the most part, though, it involves directly augmenting the field of view of a person. If you&#8217;ve ever seen Ghost in the shell (the movie, especially the second one), you&#8217;ll know what I mean. I remember being quite excited when I read about the possibility of added information through semi-transparent head-mounted displays (this <a href="http://www.youtube.com/watch?v=wJItdmumxYY">video demonstrates</a>, though in this case it&#8217;s not transparent at all, and obviously not something you&#8217;d walk with in your everyday life <img src='http://www.fsavard.com/flow/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' />  ). Cam-and-screen is more reachable for the moment, I guess, and a lot less cumbersome.</p>
 <img src="http://www.fsavard.com/flow/wp-content/plugins/feed-statistics.php?view=1&post_id=576" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://www.fsavard.com/flow/2010/02/a-few-useful-augmented-reality-apps/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Organizing documents for easy retrieval</title>
		<link>http://www.fsavard.com/flow/2010/02/organizing-documents-for-easy-retrieval/</link>
		<comments>http://www.fsavard.com/flow/2010/02/organizing-documents-for-easy-retrieval/#comments</comments>
		<pubDate>Fri, 12 Feb 2010 17:00:55 +0000</pubDate>
		<dc:creator>Francois</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[pkm]]></category>

		<guid isPermaLink="false">http://www.fsavard.com/flow/?p=569</guid>
		<description><![CDATA[Given the original topic of this blog (personal knowledge management), it&#8217;s been a while since I should have addressed the issue of filing documents for easier retrieval. I haven&#8217;t done it yet because the issue is just so large (many options). To solve this, I&#8217;ll just start small, with what I do personally, and grow [...]]]></description>
			<content:encoded><![CDATA[<p>Given the original topic of this blog (personal knowledge management), it&#8217;s been a while since I should have addressed the issue of filing documents for easier retrieval. I haven&#8217;t done it yet because the issue is just so large (many options). To solve this, I&#8217;ll just start small, with what I do personally, and grow the topic as time goes on.</p>
<p>By the way, the following are <strong>just simple tips</strong> I use. Some will seem <strong>obvious maybe, but they lay ground work</strong> for (potential) next posts.</p>
<h2>Motivation and (*ahem*) philosophical considerations</h2>
<p>Since I started graduate studies, I&#8217;ve been accumulating a lot of documents, mostly PDFs of research papers (which, btw, I annotate heavily with PDF XChange Viewer, see <a href="http://www.fsavard.com/flow/2009/03/pdf-annotation-under-linux-with-wine-and-pdf-xchange-viewer/">this post</a>). Yet it&#8217;s easy to forget where I&#8217;ve put one of them.</p>
<p>Now, for academic documents, there are dedicated solutions for document management, such as <a href="http://www.zotero.org/">Zotero</a>. These obviously offer lots of options for filing, searching (and citing).</p>
<p>Yet I have a <strong>tendency to prefer lightweight solutions</strong>, based on <strong>basic filesystem principles (filenames and directories)</strong>. This simplifies incremental backups, never becomes obsolete, and will always be cross-platform <img src='http://www.fsavard.com/flow/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Also, from a programmer perspective, it&#8217;s easy to use such a structure with scripts, too, if the need ever arises (e.g. for backup scripts).</p>
<h2>Using plain old filenames with &#8220;tags&#8221;</h2>
<p>My current system is simply a hierarchy of documents in directories (dah, but bear with me). Yet I&#8217;m careful in the way I name the documents. A <strong>basic problem with hierarchies</strong> is that a given <strong>document can often be placed in multiple places</strong>. In turn, a common solution is to place it somewhere that nevertheless makes sense, even though there might be other classification options, and then use tags (keywords) for those other options. Then you can <strong>list by tags (see Virtual folders) and get it in multiple places</strong>.</p>
<p>Concretely, <strong>I name my documents this way: &#8220;title, authors, date, tags .extension&#8221;</strong>. For example, &#8220;Learning representations by back-propagating errors, Rumelhart Hinton Williams, 1986, neural networks, machine learning.pdf&#8221;.</p>
<p>Yet hierarchies are also highly intuitive, so most of the time I can locate the document by browsing the filesystem, not searching. So, the final solution is: <strong>1) try hierarchy, if that doesn&#8217;t work, 2) search filenames</strong> for keywords, authors, dates, etc.</p>
<p>This might seem quite obvious, actually, but it requires planning. Notably, <strong>consistency is required for tags</strong>. If applicable, I try to use <strong>directory names as tags</strong>. For example, a document might be relevant to &#8220;signal processing&#8221; and &#8220;machine learning&#8221;. So I&#8217;d use the tag &#8220;digital signal processing&#8221; if I filed it under the &#8220;machine learning&#8221; directory.</p>
<h2>Virtual folders</h2>
<p>Now the <strong>fun part of being consistent in tags</strong> and naming: if you&#8217;re using this convention, you can then use <a href="http://en.wikipedia.org/wiki/Virtual_folder">the <strong>Virtual folder</strong> principle</a> to <strong>group documents</strong> by tags, <strong>as if they were in a real directory</strong>, which would otherwise be in <em>different</em> directories. That way, in my &#8220;signal processing&#8221; directory, I can create a saved search which will grab the document I put in the &#8220;machine learning&#8221; directory automatically.</p>
<p>Basically, instead of typing a query each time, you just save it like a file, and the results now behave like a new directory. This is available on all OSes, see this <a href="http://en.wikipedia.org/wiki/Virtual_folder">Wikipedia page</a>.</p>
<h2>Searching in the files themselves</h2>
<p>I use <strong>filename search because it&#8217;s fast</strong> and very easy, and makes &#8220;virtual folders&#8221; work real swift. It&#8217;s also possible to search inside the files, of course. I won&#8217;t say much about this, except mention the essential: <strong>for content search to be fast, files need to be indexed in advance</strong>.</p>
<p>There are many programs which can do this, and some of them <strong>now come integrated with operating systems</strong> (Explorer does it on Windows, Spotlight for Mac OS, and there are a variety of options for Linux, notably Beagle). For more advanced functionality and to handle more information sources (e.g. emails, IMs&#8230;), <a href="http://desktop.google.com/"><strong>Google Desktop</strong></a> must be mentioned.</p>
<h2>Musings and relation to other posts</h2>
<ul>
<li>The &#8220;lightweight&#8221; principle starts to come back often in my posts. It&#8217;s one <a href="http://www.fsavard.com/flow/2008/09/personal-wiki-wikidpad-from-a-programmers-point-of-view/">strength, to me, of Wikidpad</a>: wiki entries are plain text files.</li>
<li>The hierarchy-and-tags principle is the idea behind might <a href="http://www.fsavard.com/flow/2008/10/repetition-and-my-wikidpad-dynamic-search-extension/">Wikidpad &#8220;saved search&#8221; extension</a>.</li>
</ul>
 <img src="http://www.fsavard.com/flow/wp-content/plugins/feed-statistics.php?view=1&post_id=569" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://www.fsavard.com/flow/2010/02/organizing-documents-for-easy-retrieval/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Memorization software database, updates</title>
		<link>http://www.fsavard.com/flow/2010/02/memorization-software-database-updates/</link>
		<comments>http://www.fsavard.com/flow/2010/02/memorization-software-database-updates/#comments</comments>
		<pubDate>Tue, 09 Feb 2010 18:40:49 +0000</pubDate>
		<dc:creator>Francois</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[pkm]]></category>

		<guid isPermaLink="false">http://www.fsavard.com/flow/?p=563</guid>
		<description><![CDATA[A quick link to this very comprehensive flashcard/memorization software database, with very detailed reviews (see their rating criteria). I personally have been using Mnemosyne for a few months (to study a new language &#8212; spaced repetition is very well suited for the task). This really does seem to work on this timescale. I have yet [...]]]></description>
			<content:encoded><![CDATA[<p>A quick link to this very <a href="http://learn.how.to/">comprehensive flashcard/memorization software database</a>, with very detailed reviews (see their <a href="http://www.quingle.com/softarea/flash-cr.htm">rating criteria</a>).</p>
<p>I personally have been using Mnemosyne for a few months (to study a new language &#8212; spaced repetition is very well suited for the task). This really does seem to work on this timescale. I have yet to discover if after 5, 10&#8230; years the knowledge still sticks (if using only that schedule).</p>
<p>&#8212;</p>
<p>Also, following this <a href="http://lifehacker.com/5467037/add-universal-keyword-control-to-all-of-your-browsers-with-quix">Lifehacker article</a>, I updated the <a href="http://www.fsavard.com/flow/2010/01/quix-a-bookmarklet-and-toolbox-of-web-oriented-commands/">recent post on Quix</a>.</p>
 <img src="http://www.fsavard.com/flow/wp-content/plugins/feed-statistics.php?view=1&post_id=563" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://www.fsavard.com/flow/2010/02/memorization-software-database-updates/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

