<?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; tools</title>
	<atom:link href="http://www.fsavard.com/flow/tag/tools/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.fsavard.com/flow</link>
	<description>Programming, personal knowledge management. Topics unstable.</description>
	<lastBuildDate>Thu, 29 Jul 2010 16:05:26 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.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>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>0</slash:comments>
		</item>
		<item>
		<title>Firefox: creating a shortcut to ScrapBook highlight operations with the Keyconfig extension</title>
		<link>http://www.fsavard.com/flow/2008/07/firefox-creating-a-shortcut-to-scrapbook-highlight-operations-with-the-keyconfig-extension/</link>
		<comments>http://www.fsavard.com/flow/2008/07/firefox-creating-a-shortcut-to-scrapbook-highlight-operations-with-the-keyconfig-extension/#comments</comments>
		<pubDate>Fri, 04 Jul 2008 00:10:33 +0000</pubDate>
		<dc:creator>Francois</dc:creator>
				<category><![CDATA[Technical tips]]></category>
		<category><![CDATA[tip]]></category>
		<category><![CDATA[tools]]></category>

		<guid isPermaLink="false">http://www.fsavard.com/blog/?p=11</guid>
		<description><![CDATA[Summary: ScrapBook is a Firefox extension that allows one to save snippets from web pages locally, and to add notes and highlights to them. I wanted shortcuts to access the highlighting features. Using the Keyconfig extension, which allows you to create new keyboard shortcuts, I associated 4 keyboard commands to the 4 available highlight styles. [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Summary</strong>: <a href="https://addons.mozilla.org/en-US/firefox/addon/427" target="_blank">ScrapBook</a> is a Firefox extension that allows one to <strong>save snippets from web pages locally</strong>, and to <strong>add notes and highlights</strong> to them. I wanted shortcuts to access the highlighting features. Using the <strong>Keyconfig extension</strong>, which allows you to create new keyboard shortcuts, I associated 4 keyboard commands to the 4 available highlight styles.</p>
<p style="text-align: center;"><img class="aligncenter" src="http://www.fsavard.com/images/scrapbook_screenshot.jpg" alt="" width="500" height="318" /></p>
<h3>The bare steps</h3>
<p>(The following, of course, assumes having the ScrapBook extension installed.)</p>
<p>1. I installed the Keyconfig extension and restarted Firefox. It&#8217;s available <a href="http://mozilla.dorando.at/" target="_blank">here</a>, just click on <a href="http://mozilla.dorando.at/keyconfig.xpi" target="_blank">keyconfig.xpi</a>.</p>
<p>2. In Tools &gt; Keyconfig, I first selected the &#8220;Keyconfig&#8221; option in the dropdown list at the top of the window.</p>
<p style="text-align: center;"><img src="http://www.fsavard.com/images/keyconfig_screenshot.jpg" alt="" width="520" height="429" /></p>
<p>3. For each highlight operation (there are 4 possible styles), I created a new key with the titles you may see in the screenshot (&#8220;scrapbook highlight 1&#8243;). The code associated with each is:</p>
<pre>    sbPageEditor.highlight(1)</pre>
<p>and I replaced &#8220;1&#8243; by 2, 3 and 4 for the other operations. Also, I checked the &#8220;global&#8221; checkbox a the top of the &#8220;key editor&#8221; window.</p>
<p>4. After having defined that operation, I assigned it a keyboard shortcut , trying not to conflict with existing shortcuts for other operations.</p>
<p>5. I also configured two other operations which I find useful, &#8220;save&#8221; and &#8220;undo&#8221;, which are associated with the code</p>
<pre>    sbPageEditor.saveOrCapture()</pre>
<p>and</p>
<pre>    sbPageEditor.undo()</pre>
<p>respectively.</p>
<h3>The underlying explanations</h3>
<p>The &#8220;hard part&#8221; part (well, the non-obvious part) here was to find the code to activate the highlighting operations. That may be interesting to you if you want to repeat the process for other operations, perhaps in other extensions. There are many ways to go about doing this, <a href="http://kb.mozillazine.org/Keyconfig_extension#Finding_code_for_keys" target="_blank">one involving the DOM inspector in Firefox</a> which is faster than the one I used. Mine involves exploring the extension source code, which I find instructive.</p>
<p>Firefox has a very extensible architecture. One key ingredient in this extensibility is XUL, the language used to describe components in the user interface. It&#8217;s real simple to grasp the basic principles, especially if you know HTML and JavaScript. Basically, extensions are programmed in XUL and JavaScript.</p>
<p>Firefox extensions may usually be found in your user directory (under Linux, by default, it&#8217;s in .mozilla/firefox/&#8230;/extensions, in your home directory). Their source code is right there for you to look at. Each extension is in its own directory, usually named with easy-to-remember strings like &#8220;{53A03D43-5363-4669-8190-99061B2DEBA5}&#8221; (here the Scrapbook extension directory name).</p>
<p>The code for ScrapBook is in there, in a JAR file (chrome/scrapbook.jar), which is just another extension for a Zip file, so you may open it and uncompress it with an unzipping utility. The file that interests us here is in this JAR file; it&#8217;s content/scrapbook/overlay.xul. This is the file that describes the way ScrapBook attaches itself to the main Firefox window, I believe.</p>
<p>Amongst other elements described in overlay.xul, you&#8217;ll find the toolbar which displays the highlight buttons (and &#8220;undo&#8221;/&#8221;save&#8221;). To find the line, search for &#8220;ScrapBookHighlighter&#8221;. The code for the operations is in the &#8220;oncommand&#8221; attribute.</p>
<p>To find the line and file of interest, which might seem non trivial given the number of files in there, I used a global search on files for the term &#8220;highlighter&#8221;.</p>
 <img src="http://www.fsavard.com/flow/wp-content/plugins/feed-statistics.php?view=1&post_id=11" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://www.fsavard.com/flow/2008/07/firefox-creating-a-shortcut-to-scrapbook-highlight-operations-with-the-keyconfig-extension/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Using xsel, xbindkeys and xmacro to insert common strings (date, name, etc.) in Linux</title>
		<link>http://www.fsavard.com/flow/2008/06/using-xsel-xbindkeys-and-xmacro-to-insert-common-strings-date-name-etc-in-linux/</link>
		<comments>http://www.fsavard.com/flow/2008/06/using-xsel-xbindkeys-and-xmacro-to-insert-common-strings-date-name-etc-in-linux/#comments</comments>
		<pubDate>Sun, 29 Jun 2008 22:28:49 +0000</pubDate>
		<dc:creator>Francois</dc:creator>
				<category><![CDATA[Technical tips]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[tip]]></category>
		<category><![CDATA[tools]]></category>

		<guid isPermaLink="false">http://gator461.hostgator.com/~fsavard/blog/?p=10</guid>
		<description><![CDATA[Goal: insert a date string (e.g. &#8220;2008/06/29&#8243;) in almost whatever text area/graphical program I&#8217;m using currently with a single keyboard shortcut. Basic principle: copy the date string to the clipboard and emulate the Ctrl-V key combination, which activates the Paste operation in most programs. Limitations: The current program must support Ctrl-V as the Paste shortcut [...]]]></description>
			<content:encoded><![CDATA[<p><strong>G</strong><strong>oal</strong>: insert a date string (e.g. &#8220;2008/06/29&#8243;) in almost whatever text area/graphical program I&#8217;m using currently with a single keyboard shortcut.</p>
<p><strong>Basic principle</strong>: copy the date string to the clipboard and emulate the Ctrl-V key combination, which activates the Paste operation in most programs.</p>
<p><strong>Limitations</strong>:</p>
<ul>
<li>The current program must support Ctrl-V as the Paste shortcut (won&#8217;t work on the command line, for example).</li>
<li>The <strong>current clipboard data is erased</strong>, replaced by the string inserted.</li>
</ul>
<h3>The bare steps I took</h3>
<p>I&#8217;m using Ubuntu, but I guess this should work with most distributions, by adapting the installation instructions.</p>
<p>1. I installed the necessary utilities.</p>
<pre>    sudo apt-get install xsel xbindkeys xbindkeys-config xmacro</pre>
<p>2. I created a default xbindkeys configuration file.</p>
<pre>    xbindkeys --defaults &gt; ~/.xbindkeysrc</pre>
<p>3. I wrote this <a href="http://www.fsavard.com/files/insert_date.sh" target="_blank"><strong>shell script</strong></a>, which I saved on my local disk.</p>
<p>4. I configured xbindkeys using xbindkeys-config to launch the script when the Windows-D shortcut is pressed.</p>
<p style="padding-left: 30px;">a. I loaded &#8220;xbindkeys-config&#8221; by typing that on the command line.</p>
<p style="padding-left: 30px;">b. I created a new shortcut and associated it with the script.</p>
<p style="text-align: center;"><a href="http://www.fsavard.com/images/xbindkeys-config_screenshot.jpg" target="_blank"><img src="http://www.fsavard.com/images/xbindkeys-config_screenshot_tn.jpg" alt="" width="600" height="372" /></a></p>
<p style="padding-left: 30px;">c. I associated it with the Windows-D shortcut by pressing &#8220;Get Key&#8221; and then pressing Windows-D.</p>
<p style="padding-left: 30px;">d. I saved and exited.</p>
<p style="padding-left: 30px;">e. I arranged it so the &#8220;xbindkeys&#8221; command would run on every logon, which can be done by adding the line &#8220;xbindkeys&#8221; to a logon script (/home/&#8230;/.bash_profile, for example).</p>
<h3>The underlying explanations</h3>
<p>I often find it useful to insert the date in personal notes I take. So often, in fact, that it&#8217;s quite handy to automate the insertion. On Windows, there&#8217;s this handy app and scripting language called AutoIT which may be used to automate common tasks. But under Linux, quick googling doesn&#8217;t reveal any self-evident choice for an all-encompassing scripting language, so I went looking into more application-specific options.</p>
<p>The first key element to my solution, <strong>xsel</strong>, is a program that allows one to control the X selection and clipboard from the command line. The second utility, <strong>xbindkeys</strong> (and its configuration GUI, xbindkeys-config), as you guessed, allows you to associate keyboard shortcuts to commands. Finally, <strong>xmacro</strong> is a program that allows you to emulate specific keyboard key events, like key presses, and mouse events.</p>
<p>I therefore associated (using xbindkeys) a keyboard shortcut to a script that copies the date string to the clipboard (using xsel) and emulates the Paste keyboard shortcut (using xmacro). That&#8217;s a pretty complicated solution, but all in all it didn&#8217;t take so much time to set up. I commented the script so you may get a better understanding of the parameters used.</p>
<p>I could have used other shortcuts that Windows-D, but the Windows key isn&#8217;t used under Ubuntu, so this was a great occasion to capitalize on keyboard real estate.</p>
<p>As an <strong>alternative approach</strong>, which doesn&#8217;t replace the clipboard data, you can use xmacro to insert every single character in the date string, one at a time. I began by doing this, since it&#8217;s much simpler. The problem I ran into is instability: some programs need a delay between keypresses, otherwise they mix up the letters, and the insertion seems slow and sometimes misses letters. That limitation prompted me to try this solution.</p>
<p>If anyone has a suggestion as to how to improve this solution, feel free to post a comment about it.</p>
<h3>Further reading and references</h3>
<ul>
<li><a href="http://whynotwiki.com/GNU/Linux_/_Desktop">http://whynotwiki.com/GNU/Linux_/_Desktop</a>: useful information and examples on the use of xmacro, xbindkeys</li>
</ul>
 <img src="http://www.fsavard.com/flow/wp-content/plugins/feed-statistics.php?view=1&post_id=10" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://www.fsavard.com/flow/2008/06/using-xsel-xbindkeys-and-xmacro-to-insert-common-strings-date-name-etc-in-linux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
