<?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 &#187; homebrew</title>
	<atom:link href="http://www.fsavard.com/flow/tag/homebrew/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>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>Plyn: Yet another textfile-and-scripts based ToDo system</title>
		<link>http://www.fsavard.com/flow/2009/03/plyn-yet-another-textfile-and-scripts-based-todo-system/</link>
		<comments>http://www.fsavard.com/flow/2009/03/plyn-yet-another-textfile-and-scripts-based-todo-system/#comments</comments>
		<pubDate>Sat, 14 Mar 2009 20:44:24 +0000</pubDate>
		<dc:creator>Francois</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[homebrew]]></category>
		<category><![CDATA[pim]]></category>
		<category><![CDATA[pkm]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://www.fsavard.com/flow/?p=405</guid>
		<description><![CDATA[<strong>Warning</strong>: this post is
<ol>
	<li>out of the normal scope of this blog (it's about personal _information_ management, not personal _knowledge_ management).</li>
	<li><strong>mostly for geeks</strong>/programmers who will never be fully satisfied by any planning system, ever.</li>
</ol>
Over the years I've tried different ways of handling my<strong> ToDo, planning and work logging</strong>. This is my Xth iteration.]]></description>
			<content:encoded><![CDATA[<p><strong>Warning</strong>: this post is</p>
<ol>
<li>out of the normal scope of this blog (it&#8217;s about personal _information_ management, not personal _knowledge_ management).</li>
<li><strong>mostly for geeks</strong>/programmers who will never be fully satisfied by any planning system, ever.</li>
</ol>
<p>Over the years I&#8217;ve tried different ways of handling my<strong> ToDo, planning and work logging</strong>. This is my Xth iteration. I wonder if anyone but a programmer could use this, but hey, programmers are a non negligible fraction of society (which I happen to be part of)!</p>
<p>I&#8217;ve long wanted to create a program which would do <strong>precisely what I want in terms of planning</strong>, but was always put off by the &#8220;*knocks head on wall* the GUI is so long to code!&#8221; aspect. Well to hell with the GUI! Let&#8217;s deal with raw information, rarrr.</p>
<p>Err, sooo&#8230; <strong>Plyn</strong> (ie. this system) is inspired by <a href="http://ginatrapani.github.com/todo.txt-cli/">the todo.txt scripts of Gina Trapani</a> (LifeHacker author). Basically it allows you to have a very simple yet powerful todo.txt file, and the file is meant to be read directly (in contrast to other programs which use databases only the program can read). The difference is that my version:</p>
<ol>
<li>is written in <strong>Python</strong> (in contrast to Bash for Gina&#8217;s todo.txt)</li>
<li><strong>allows for hierarchy, empty lines, comment lines</strong>, etc. in the file, so the <strong>file can really be structured and read by itself</strong>, and a good deal of everyday tasks can be done without ever using the scripts</li>
<li>includes a <strong>work log aspect</strong>, ie. you can record how much time you spent on tasks to keep stats.</li>
<li>includes <strong>time estimates</strong>, but for the moment it&#8217;s not very developed.</li>
</ol>
<p>So I&#8217;d say it departs from the need to be simple, to be expandable and support other dimensions of planning&amp;logging.</p>
<p><strong>Google Code link for the project &amp; code: <a href="http://plyn.googlecode.com">http://plyn.googlecode.com</a></strong></p>
<p>The todo.txt format is pretty simple. Here&#8217;s an example of content:</p>
<pre>12 Elephant in refrigerator project ||| Yeah, I shouldn't try myself at humor.
	# Open refrigerator door
	# Put elephant in refrigerator
	# Close refrigerator door

	-- This line is just a comment</pre>
<p>A few observations:</p>
<ul>
<li>You see a <strong>task may be nested</strong> in another one (which you can see as a project), simply using tabs.</li>
<li>Each line begins either with an ID (number) or with #. The # is replaced by a proper ID by cleanchanges.py (more on this later).</li>
<li>The ID is followed by a title, then |||, which indicates the start of parameters/comments.</li>
<li>You can <strong>have blank lines, and comments lines (starting with &#8211;)</strong>.</li>
</ul>
<p>After the &#8216;|||&#8217; characters, you can place different <strong>parameters</strong>. In more detail, the format of a line is:</p>
<p>(INDENT) ID TITLE ||| {PRIORITY} &lt;MINUTES_DONE/MINUTES_TODO&gt; [START_DATETIME-ENDDATE_TIME] COMMENTS</p>
<p>As you can see, many more options may be specified (see the &#8220;format.txt&#8221; file for detailed information about each of these parameters), and of course this can be expanded (it all relies on a huge regex). But everything following ||| is optional.</p>
<p>So you can edit the todo.txt file manually, but there are, of course, <strong>helper scripts to automate </strong>certain tasks. The one you&#8217;d use the most is <strong>today.py</strong>. It gives you a list of all high-priority tasks, late/coming up tasks, and tasks awaiting feedback (&#8220;+feedback&#8221; tag in title). By editing the script you could add whatever other list you need.</p>
<p>You can also, of course, <strong>filter tasks by text using grep</strong>. So you could have <strong>tags</strong> or <strong>contexts</strong>, for example, if you&#8217;re into GTD.</p>
<p>The <strong>cleanchanges.py</strong> script will replace the # at the beginning of the line by an ID which can then be used to refer to the ToDo item in other scripts. cleanchanges.py will also transform dates, so you can write:</p>
<pre>-- Today is 2009/03/14
# Clean refrigerator ||| [-+15]</pre>
<p>and the item will be changed into</p>
<pre>15 Clean refrigerator ||| [-2009/03/29]</pre>
<p>ie. the date can be specified as the number of days in the future, which saves finger mana.</p>
<p>The work log is also simple. To say you&#8217;ve just spent the last 3 hours cleaning the refrigerator, you would do:</p>
<pre>./log.py 15 180 "Some comment to add to the log"</pre>
<p>(where 15 is the task ID and 180 is 3 hours expressed in minutes). This will add a line to the log.txt file, and will change the MINUTES_DONE field of the item in todo.txt.</p>
<p>Scripts are meant to be called from a command line you keep open somewhere in the scripts directory, so you can use autocompletion. Path for todo.txt and other files are configured in cfg.py.</p>
<p>And, of course, the whole thing can be extended as you please. My ultimate goal is to have a script with which I can truly estimate the free time I have, ie. to determine if I can engage in a new task or not.</p>
<p>If anyone ever uses this, be sure to let me know! I&#8217;m especially interested in hearing of other must-script-the-procrastination-away coders who expand this thing in whichever direction their urges take them.</p>
 <img src="http://www.fsavard.com/flow/wp-content/plugins/feed-statistics.php?view=1&post_id=405" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://www.fsavard.com/flow/2009/03/plyn-yet-another-textfile-and-scripts-based-todo-system/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Organizing code snippets and programming knowledge</title>
		<link>http://www.fsavard.com/flow/2008/11/organizing-code-snippets-and-programming-knowledge/</link>
		<comments>http://www.fsavard.com/flow/2008/11/organizing-code-snippets-and-programming-knowledge/#comments</comments>
		<pubDate>Fri, 07 Nov 2008 15:16:35 +0000</pubDate>
		<dc:creator>Francois</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[homebrew]]></category>
		<category><![CDATA[pkm]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[wiki]]></category>

		<guid isPermaLink="false">http://www.fsavard.com/flow/?p=334</guid>
		<description><![CDATA[(This post is geared towards programmers.)

This blog is about structuring your personal knowledge. Code snippets and, more generally, programming language information, are interesting in that <strong>everyone</strong> and their cubicle neighbour<strong> seem to have their own approach to organizing them</strong>. Here I survey some interesting software and approaches I've read about, their features, and present my own method based on my personal wiki.]]></description>
			<content:encoded><![CDATA[<p>(This post is geared towards programmers.)</p>
<p>This blog is about structuring your personal knowledge. Code snippets and, more generally, programming language information, are interesting in that <strong>everyone</strong> and their cubicle neighbor<strong> seem to have their own approach to organizing them</strong>. Here I survey some interesting software and approaches I&#8217;ve read about, their features, and present my own method based on my personal wiki.</p>
<p>UPDATE July 29, 2011: there&#8217;s a good discussion about the <a href="http://stackoverflow.com/questions/4101/where-do-you-store-your-code-snippets">wide range of options people use over at StackOverflow</a>.</p>
<p>This post is an example where wiki features come in handy (by opp. to a thorough survey of Code Snippet Management as, err, an academic field of study).</p>
<h3>Software and approaches</h3>
<p>A <strong>code snippet manager</strong> is a piece of software which allows you to<strong> organize short pieces of code to reuse </strong>later. Yet I&#8217;m also seeking the <strong>ability to integrate general information</strong> about the language (<strong>explanations</strong>, elements of theory, etc.): in my experience, snippets are often examples of a notion I&#8217;m learning.</p>
<p>In researching a bit on existing systems, I&#8217;ve found a few <strong>feature</strong> <strong>families</strong>:</p>
<ul>
<li>Code features
<ul>
<li>Syntax highlighting</li>
<li>Management of multiple files (a plus if you want to add entire libs to your snippet database)</li>
<li>More specific:
<ul>
<li>automatic indentation on insertion</li>
<li>dependency management</li>
<li>IDE integration</li>
<li>(other noteworthy?)</li>
</ul>
</li>
</ul>
</li>
<li>Organization and retrieval features
<ul>
<li>Hierarchical: by language, by functionality/algorithm</li>
<li>Tags
<ul>
<li>Tags are particularly useful here (vs pure hierarchical) because I&#8217;ll often stumble on situations like:
<ul>
<li>I need a snippet in whatever language for a quick sort algorithm.</li>
<li>I need a C++ snippet with an iterator loop.</li>
</ul>
</li>
</ul>
</li>
<li>Full-text/regular expression search
<ul>
<li>Regular expressions are especially useful since you often seek specific constructs and regular text indexing won&#8217;t cut it.</li>
</ul>
</li>
<li>Hyperlinks (well, hallmark of wikis here)</li>
<li>Date and other general fields</li>
</ul>
</li>
<li>Sharing</li>
</ul>
<p style="text-align: left;">There are lots of different approaches and systems. Specialized software exists that allows you to organize your snippet library in a standalone and dedicated manner. <a href="http://code.google.com/p/snippely/" target="_blank">Google Snippely</a> is an example:</p>
<p style="text-align: center;"><a href="http://code.google.com/p/snippely/" target="_blank"><img class="size-full wp-image-335 aligncenter" title="Screenshot of Google Snippely" src="http://www.fsavard.com/flow/wp-content/uploads/2008/11/snippely_screenshot_tn.gif" alt="" width="300" height="229" /><br />
Screenshot of Google Snippely</a></p>
<p>A <a href="http://www.filetransit.com/files.php?name=Code_Snippet_Manager" target="_blank">whole bunch of sharewares</a> exist that do similar jobs. Some IDEs come with a snippet manager integrated, as is <a href="http://msdn.microsoft.com/en-us/library/wy5tazc9(VS.80).aspx" target="_blank">the case with Visual Studio</a>. Most of these local programs offer a basic outline for organization with more or less search capabilities. If you&#8217;re looking for an online version with tagging, check out <a href="http://www.snipplr.com" target="_blank">Snipplr</a>, which, being online, also allows you to share and search others&#8217; submissions.</p>
<p style="text-align: center;"><a href="http://www.snipplr.com" target="_blank"><img class="alignnone size-full wp-image-338" title="Snipplr homepage screenshot" src="http://www.fsavard.com/flow/wp-content/uploads/2008/11/snipplr_screenshot_tn.gif" alt="" width="300" height="184" /><br />
Snipplr homepage screenshot</a></p>
<p>In the <strong>homebrew</strong> solution department, <a href="http://blogs.msdn.com/access/archive/2008/03/12/tell-us-about-how-you-organize-your-code-snippets.aspx" target="_blank">this thread</a> is interesting. Some people talk of <strong>filesystem based</strong> solutions. A few even use a <strong>custom database</strong>. Personal wikis (as I use, see bellow) and general outliner software clearly need mention too. For example, <a href="http://weblogs.asp.net/nannettethacker/archive/2008/02/12/microsoft-onenote-2007-for-organizing-clients-favorite-blogs-and-articles.aspx" target="_blank">this blogger</a> says she uses Microsoft OneNote to organize her snippets.</p>
<p>Getting a bit <strong>less personal</strong>, it should be noted a quite a few bloggers describe <strong>their blog as being a &#8220;repository</strong> for them to search later&#8221;. Therefore blogs and websites somehow count as personal snippet libraries (I did a bit of this with my old me-me-me blog <a href="http://www.fsavard.com/blog" target="_blank">over yonder</a>). These score high on<strong> integrating other information (ie. free-form formatted text)</strong> with the snippets, and of course on the sharing aspect. <strong>Community wikis</strong> (ie. not personal) are also a great way to organize and share snippets and knowledge (examples <a href="http://www.cocoadev.com/" target="_blank">here</a>, <a href="http://lua-users.org/wiki/SampleCode" target="_blank">here</a>).</p>
<p>As a side note, it&#8217;s pretty clear we won&#8217;t only rely on our own snippets when coding.<strong> &#8220;The Web + Google&#8221; </strong>describes my most often used &#8220;system&#8221; when searching for coding solutions. Yet there are specialized search engines for this job: <a href="http://www.google.com/codesearch" target="_blank">Google Code Search</a> (you can use regexps on the whole DB!), <a href="http://www.koders.com" target="_blank">Koders</a>, and <a href="http://www.plentyofcode.com/2007/07/top-10-source-code-search-engines.html" target="_blank">quite a few more</a>.</p>
<h3>My approach</h3>
<p>Given earlier posts, this doesn&#8217;t need a drum roll introduction: I<strong> use my personal wiki </strong>to organize my snippets and my programming language learning. Of course, this solution allows for inclusion of formatted text. I admit I have a strong tendency to use my snippets for learning more than for reuse, so that factor might weight more than usual in my choice.</p>
<p>A wiki will allow for <strong>many different types of retrieval</strong>. For example, using the right combination of plugins, with WikidPad I have hierarchical organization, tags/keywords, full text and regular expression search, and, of course, linking. Most popular wiki systems will have plugins to allow for syntax highlighting, and WikidPad is no exception.</p>
<p style="text-align: center;"><img class="alignnone size-full wp-image-337" title="Code snippet screenshot in WikidPad" src="http://www.fsavard.com/flow/wp-content/uploads/2008/11/code_snippets_screenshot1.gif" alt="" width="225" height="275" /><br />
Code snippet screenshot in WikidPad<br />
(using the PrettyCode extension)</p>
<p>Where <strong>that solution might be lacking</strong> is in the IDE integration department, and in the management of multiple files. In the last case, I have a separate personal code (file system) directory to which I may refer using file:// links.</p>
 <img src="http://www.fsavard.com/flow/wp-content/plugins/feed-statistics.php?view=1&post_id=334" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://www.fsavard.com/flow/2008/11/organizing-code-snippets-and-programming-knowledge/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Repetition and my WikidPad dynamic search extension</title>
		<link>http://www.fsavard.com/flow/2008/10/repetition-and-my-wikidpad-dynamic-search-extension/</link>
		<comments>http://www.fsavard.com/flow/2008/10/repetition-and-my-wikidpad-dynamic-search-extension/#comments</comments>
		<pubDate>Sat, 18 Oct 2008 23:34:08 +0000</pubDate>
		<dc:creator>Francois</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[for the curious]]></category>
		<category><![CDATA[homebrew]]></category>
		<category><![CDATA[pkm]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[wiki]]></category>

		<guid isPermaLink="false">http://www.fsavard.com/flow/?p=309</guid>
		<description><![CDATA[Herein I digress on repetition of information, its evil in regards to information overload, its upside and its causes. I also present and explain an extension I created that allows to dynamically grab search results from WikidPad pages to reduce manual duplication.]]></description>
			<content:encoded><![CDATA[<h3>Digression on repetition</h3>
<p><strong>Information overload</strong> has numerous <strong>causes</strong>, and one of them is plain old <strong>repetition</strong>, e.g.: two sources delivering the <strong>same information</strong>, with superficial differences. It&#8217;s natural to repeat information for various reasons.</p>
<p>As an example, when <strong>students take notes on a teacher&#8217;s lecture</strong>, they all <strong>duplicate basically the same information</strong>. If they all decide to put their notes online, bam, 30 new versions of &#8220;Notes on Heisenberg uncertainty principle&#8221;. Same goes for journals and bloggers reporting on a given event.</p>
<p>Of course there might be <strong>additional value to each version</strong>, different points being made, but for someone doing research on recent events, he still gets to read again and again the same basic facts.</p>
<p>Clearly there&#8217;s <strong>no simple solution</strong>. In fact I might mention here that discussion in the <strong>blogosphere does create repetition, but makes that information evolve</strong>. Something similar happens for students exchanging notes. In this light, <strong>repetition appears as a necessary evil</strong>.</p>
<p>If we really want to get philosophical, let&#8217;s just say repetition is unavoidable from the very start, as production of repetitive information is just the <strong>consequence of information flowing</strong> in the social graph and of <strong>different human beings going through similar experiences</strong> and train of thoughts. And clearly it&#8217;s not because one of them has eaten apple pie that humanity can move on and experience other stuff.</p>
<p style="text-align: center;"><img class="size-full wp-image-303 aligncenter" title="Apple pie" src="http://www.fsavard.com/flow/wp-content/uploads/2008/10/104285_yummy_pie_1.jpg" alt="" width="300" height="224" /><br />
Gratuitous picture of humanity&#8217;s bane (<a href="http://www.sxc.hu/photo/104285" target="_blank">source</a>)</p>
<p>(Ah, of course, the irony here is that this very article is just some remix of ideas told a zillion times over).</p>
<h3>My WikidPad extension</h3>
<p>Yet, being aware of the problem, you can at least work on <strong>making your own set of notes as repetition-free as possible</strong>. That&#8217;s another core reason why I love personal wikis. Instead of rewriting information on two pages, as you&#8217;d do in paper notes because you don&#8217;t have your old notebooks handy, you simply link to the other page and voilà! you just avoided adding a little more repetition to this world (why not add some grandiose here? <img src='http://www.fsavard.com/flow/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  ).</p>
<p>Yet there are cases where where linking is not enough. Say I&#8217;m taking notes on the differences between two programming languages, C# and Java. I have a page on C#, a page on Java. Where do I put the notes? I could create a page dedicated to that topic, but I don&#8217;t have enough material for the moment to justify that. So say I put them in the page about Java. Consequence: when on C# page I have to navigate to the other page to read the info.</p>
<p style="text-align: center;"><a href="http://www.fsavard.com/flow/wp-content/uploads/2008/10/dynsearch_diagram.gif" target="_blank"><img class="alignnone size-full wp-image-304" title="Diagram explaning the extension" src="http://www.fsavard.com/flow/wp-content/uploads/2008/10/dynsearch_diagram_tn.gif" alt="" width="400" height="242" /><br />
Diagram explaining the extension</a></p>
<p><strong>What <a href="http://www.fsavard.com/flow/wikidpad-dynamic-search-results/" target="_blank">my extension</a> does is grab the info on the Java page </strong>(and any other page)<strong> and dynamically bring the relevant sections in the C# page</strong>. Technically, you give the extension a keyword, and it will <strong>search your whole wiki</strong> to find pages that contain it. Then, in those pages, it searches for precisely the lines that contain your keyword and some context around it (&#8220;sections&#8221;). It then prints a list of those sections.</p>
<p>Now it doesn&#8217;t matter as much where I put the notes. As long as I label the sections correctly, I can <strong>centralize them in the relevant pages when needed</strong>, and I don&#8217;t need manual copy anymore.</p>
<p>Grab the code &amp; read details here: <a href="http://www.fsavard.com/flow/wikidpad-dynamic-search-results/" target="_blank">http://www.fsavard.com/flow/wikidpad-dynamic-search-results/</a></p>
 <img src="http://www.fsavard.com/flow/wp-content/plugins/feed-statistics.php?view=1&post_id=309" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://www.fsavard.com/flow/2008/10/repetition-and-my-wikidpad-dynamic-search-extension/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Speed reading and my RSVP web application</title>
		<link>http://www.fsavard.com/flow/2008/10/speed-reading-and-my-rsvp-web-application/</link>
		<comments>http://www.fsavard.com/flow/2008/10/speed-reading-and-my-rsvp-web-application/#comments</comments>
		<pubDate>Sun, 12 Oct 2008 19:18:18 +0000</pubDate>
		<dc:creator>Francois</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[homebrew]]></category>
		<category><![CDATA[pkm]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[reading]]></category>
		<category><![CDATA[tools]]></category>

		<guid isPermaLink="false">http://www.fsavard.com/flow/?p=251</guid>
		<description><![CDATA[A few days ago I published a <a href="http://www.fsavard.com/code/speedread/" target="_blank">JavaScript-based web program</a> which takes a text as input and flashes groups of words successively, which can be used in practicing speed reading. It's inspired by many other similar programs available on the Web, some free, some commercial. The technique is called <strong><a href="http://en.wikipedia.org/wiki/Rapid_Serial_Visual_Presentation" target="_blank">RSVP, for Rapid Serial Visual Presentation</a></strong>.

In the rest of the post I elaborate on similar software and the effectiveness of speed reading in general.]]></description>
			<content:encoded><![CDATA[<p>A few days ago I published a <a href="http://www.fsavard.com/code/speedread/" target="_blank">JavaScript-based web program</a>, which takes a text as input and flashes groups of words successively. It&#8217;s inspired by many other similar programs available on the Web, some free, some not. The technique is called <strong><a href="http://en.wikipedia.org/wiki/Rapid_Serial_Visual_Presentation" target="_blank">RSVP, for Rapid Serial Visual Presentation</a></strong>. I baptized the program &#8220;Faster!&#8221; (well, I had to pick a name <img src='http://www.fsavard.com/flow/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  )</p>
<p style="text-align: center;"><a href="http://www.fsavard.com/code/speedread/" target="_blank"><img class="size-full wp-image-256 alignnone" title="Screenshot of my Faster! program" src="http://www.fsavard.com/flow/wp-content/uploads/2008/10/faster_tn.jpg" alt="&lt;br /&gt;" width="300" height="225" /></a><a href="http://www.fsavard.com/code/speedread/" target="_blank"><br />
A screenshot of Faster!</a></p>
<p>Go ahead and try it out. Nothing to download, just click &#8220;Play that text&#8221;.</p>
<p>In the rest of the post I elaborate on similar software and the effectiveness of speed reading in general.</p>
<h3>Comparing it to other available software</h3>
<p>One (free &amp; open source) program which has <strong>similar features</strong>, but <strong>more options for rhythm</strong>, is <a href="http://dictator.kieranholland.com/dictator.html" target="_blank"><strong>Dictator</strong></a>. You must download it though. I created my script to have something approaching that functionality, but available through the web and easy to modify for people who know JavaScript (and, *hrm*, because it made a cute little programming project <img src='http://www.fsavard.com/flow/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' />  )</p>
<p style="text-align: center;"><a href="http://dictator.kieranholland.com" target="_blank"><img class="alignnone size-full wp-image-253" title="Screenshot of Dictator" src="http://www.fsavard.com/flow/wp-content/uploads/2008/10/dictator_tn.jpg" alt="" width="300" height="245" /><br />
Screenshot of Dictator</a></p>
<p><strong>Other Web versions</strong> (see <a href="http://www.spreeder.com" target="_blank">Spreeder</a> and <a href="http://www.zapreader.com" target="_blank">ZAPReader</a>) are nice but lack some features which make Dictator and commercial programs more appealing, notably following the position in the text. <a href="http://www.spreeder.com" target="_blank">Spreeder</a> does have some more advanced rhythm options, though.</p>
<p>There are many <strong>commercial programs</strong> which offer even more features, such as integration with Office programs. Instead of trying to list them all here, I&#8217;ll point you to <a href="http://www.minezone.org/wiki/Main/RSVPReaderComparison" target="_blank">this <strong>comparison table</strong></a> of free and commercial RSVP programs.</p>
<p>I also want to make my version available for integration in other sites (say, for readers to read your blog posts), but I&#8217;m waiting for a few interested webmasters to contact me before I take the time to do it.</p>
<h3>Why would one use RSVP? and the reality of speed reading</h3>
<p>As mentioned briefly in my last post, some people believe this <strong>can help increase your reading speed</strong>. The idea is to gradually increase the reading speed, the number of words you read in a group, etc. by tweaking parameters in the software as you progress.</p>
<p>Recently, RSVP was also proposed as an <a href="http://news.cnet.com/2100-1046_3-5785579.html" target="_blank">alternative way to read on small displays</a> such as cellphones. Some people seem to actually see RSVP as an alternative reading technique rather than simply a way to increase your &#8220;normal reading&#8221; speed.</p>
<p>My <strong>personal experience with the speed reading</strong> <strong>aspect</strong> is that in can indeed help you learn to <strong>focus more</strong> and <strong>reread back less</strong> of the text you read a line before. Also, it forces you to <strong>decrease <a href="http://en.wikipedia.org/wiki/Subvocalization" target="_blank">subvocalization</a></strong> &#8212; hear the text in your head, or even whisper it. I personally never ended the in-head habit completely, though. Phrasal blurbs seem to overlap rather than disappear, if you will.</p>
<p>All these improvements translate in an increased reading speed for some material. They&#8217;re basic goals of <strong>&#8220;classic&#8221; speed reading techniques</strong>. A <a href="http://en.wikibooks.org/wiki/Speed_reading" target="_blank">good reference for these techniques can be found at Wikibooks</a>.</p>
<p>Speed reading software also has critics; see the bottom of <a href="http://en.wikibooks.org/wiki/Speed_reading" target="_blank">the Wikibooks page</a>.</p>
<h3>Types of reading material</h3>
<p>If you&#8217;re reading some advanced math textbook, taking the time to understand what you&#8217;re reading, sentence by sentence, naturally decreases your reading speed. Basically, speed reading is definitely no panacea for Will Hunting your way through a textbook every 30 minutes.</p>
<p>Where it can really help, though, in my experience (and as <a href="http://en.wikibooks.org/wiki/Speed_reading" target="_blank">said by others</a>), is <strong>when reading familiar material</strong>, say when reading the daily news or reading multiple opinion pieces on a given event.</p>
<p>Speed reading is to be combined with, but not confused with, <strong>skimming</strong>. Skimming is about not reading at all some parts. Speed reading is about reading faster the whole thing.</p>
<hr />If any of you has comments on my application, bugs or suggestions, don&#8217;t hesitate to write to me.</p>
 <img src="http://www.fsavard.com/flow/wp-content/plugins/feed-statistics.php?view=1&post_id=251" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://www.fsavard.com/flow/2008/10/speed-reading-and-my-rsvp-web-application/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Small speed reading JavaScript app</title>
		<link>http://www.fsavard.com/flow/2008/10/small-speed-reading-javascript-app/</link>
		<comments>http://www.fsavard.com/flow/2008/10/small-speed-reading-javascript-app/#comments</comments>
		<pubDate>Fri, 10 Oct 2008 15:58:00 +0000</pubDate>
		<dc:creator>Francois</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[homebrew]]></category>
		<category><![CDATA[pkm]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[reading]]></category>
		<category><![CDATA[tools]]></category>

		<guid isPermaLink="false">http://www.fsavard.com/flow/?p=243</guid>
		<description><![CDATA[This is a work in progress, but I've developped a small speed reading application in JavaScript. It's definitely not the first of its kind, but I wanted web version with more options. I'm also planning to open source it, and I've yet to see an open source web app of this kind.

The app: <a href="http://www.fsavard.com/code/speedread/" target="_blank">http://www.fsavard.com/code/speedread/</a>]]></description>
			<content:encoded><![CDATA[<p>This is a work in progress, but I&#8217;ve developped a small speed reading application in JavaScript. It&#8217;s definitely not the first of its kind, but I wanted web version with more options. I&#8217;m also planning to open source it, and I&#8217;ve yet to see an open source web app of this kind.</p>
<p>The app: <a href="http://www.fsavard.com/code/speedread/" target="_blank">http://www.fsavard.com/code/speedread/</a></p>
<p>You simply click &#8220;Play that text&#8221; and you should grasp the principle real quick.</p>
<p>This is thought by some to increase your reading speed if used consistently. It teaches to not go back while reading, not &#8220;subvocalize&#8221; (ie. hear the words in your head, or even whisper them as you read) and by displaying more than one word at a time, to read more in one glance.</p>
<p>If you like it and want to come back to it, there&#8217;s a bookmarklet in the &#8220;About &amp; download&#8221; tab that will allow you to select text in any web page and use it as input. Or you can simply copy &amp; paste the text in the text area.</p>
<p>I&#8217;ll post something more lengthy on speed reading at some point.</p>
 <img src="http://www.fsavard.com/flow/wp-content/plugins/feed-statistics.php?view=1&post_id=243" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://www.fsavard.com/flow/2008/10/small-speed-reading-javascript-app/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>fSignatures, a JavaScript library to check argument types and object interfaces</title>
		<link>http://www.fsavard.com/flow/2008/08/fsignatures-a-javascript-library-to-check-argument-types-and-object-interfaces/</link>
		<comments>http://www.fsavard.com/flow/2008/08/fsignatures-a-javascript-library-to-check-argument-types-and-object-interfaces/#comments</comments>
		<pubDate>Fri, 29 Aug 2008 22:25:01 +0000</pubDate>
		<dc:creator>Francois</dc:creator>
				<category><![CDATA[fSignatures.js]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[homebrew]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://www.fsavard.com/blog/?p=12</guid>
		<description><![CDATA[I&#8217;ve just written a small JavaScript library that allows you to wrap a function in another one, which will check whether the parameters and return value are of the right type. It&#8217;s a functionality I miss from statically typed languages. It also allows you to check whether a set of functions, along with specified signatures, [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve just written a <a href="http://www.fsavard.com/code/fsignatures/">small JavaScript library</a> that allows you to wrap a function in another one, which will check whether the parameters and return value are of the right type. It&#8217;s a functionality I miss from statically typed languages. It also allows you to check whether a set of functions, along with specified signatures, are present in an object. This is similar to the concept of interface found in other languages, especially Java.</p>
<p>Some functionality may be missing. I&#8217;m trying to measure interest in the lib before investing more time in any particular direction.</p>
 <img src="http://www.fsavard.com/flow/wp-content/plugins/feed-statistics.php?view=1&post_id=12" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://www.fsavard.com/flow/2008/08/fsignatures-a-javascript-library-to-check-argument-types-and-object-interfaces/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

