<?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>Justin Talbot</title>
	<atom:link href="http://www.justintalbot.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.justintalbot.com</link>
	<description></description>
	<lastBuildDate>Wed, 07 Sep 2011 05:26:17 +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>CS148</title>
		<link>http://www.justintalbot.com/2011/09/cs148/</link>
		<comments>http://www.justintalbot.com/2011/09/cs148/#comments</comments>
		<pubDate>Wed, 07 Sep 2011 05:26:17 +0000</pubDate>
		<dc:creator>Justin Talbot</dc:creator>
				<category><![CDATA[rendering]]></category>

		<guid isPermaLink="false">http://www.justintalbot.com/?p=240</guid>
		<description><![CDATA[This summer I taught CS 148, the introduction to computer graphics course at Stanford. This was the first time I taught the class and, despite being incredibly time consuming, I really enjoyed it. I created all my own slides and new projects for the course. The final project was to combine a path traced object [...]]]></description>
			<content:encoded><![CDATA[<p>This summer I taught CS 148, the introduction to computer graphics course at Stanford. This was the first time I taught the class and, despite being incredibly time consuming, I really enjoyed it. I created all my own slides and new projects for the course.</p>
<p>The final project was to combine a path traced object with a real photograph&#8212;creating a &#8220;special effects&#8221; style image. I thought this was quite successful. The winning image was created by Zhan Fam Quek:</p>
<p><img src="https://graphics.stanford.edu/wikis/cs148-11-summer/Path_Tracer_II_Gallery?action=AttachFile&#038;do=get&#038;target=image015.png" alt="" /></p>
<p>This was created using a path tracer written by the students, using a HDR environment map and HDR background image captured by the students.</p>
<p>More images from the final project can be found in the <a href="https://graphics.stanford.edu/wikis/cs148-11-summer/Path_Tracer_II_Gallery">course gallery</a>. Slides and assignments can be found on the <a href="https://graphics.stanford.edu/wikis/cs148-11-summer/">course webpage</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.justintalbot.com/2011/09/cs148/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>LaTeX Hyphenation Mist-akes*</title>
		<link>http://www.justintalbot.com/2011/09/latex-hyphenation-mist-akes/</link>
		<comments>http://www.justintalbot.com/2011/09/latex-hyphenation-mist-akes/#comments</comments>
		<pubDate>Fri, 02 Sep 2011 22:14:08 +0000</pubDate>
		<dc:creator>Justin Talbot</dc:creator>
				<category><![CDATA[latex]]></category>

		<guid isPermaLink="false">http://www.justintalbot.com/?p=230</guid>
		<description><![CDATA[One of the great things about TeX is that it will automatically hyphenate words when doing so leads to better overall line breaks in a paragraph. This is somewhat difficult task because, when hyphenating words, it is not acceptable to insert the hyphen between just any pair of letters. Some hyphenations, such as &#8220;new-spaper&#8221; can [...]]]></description>
			<content:encoded><![CDATA[<p>One of the great things about TeX is that it will automatically hyphenate words when doing so leads to better overall line breaks in a paragraph. This is somewhat difficult task because, when hyphenating words, it is not acceptable to insert the hyphen between just any pair of letters. Some hyphenations, such as &#8220;new-spaper&#8221; can lead the reader &#8220;down a garden path.&#8221; That is, when reading the end of the line (&#8220;new-&#8221;), the reader guesses incorrectly that &#8220;new&#8221; is a complete stem within a compound word and is then completely confused when confronted with the unlikely terminating word &#8220;spaper&#8221;. A similar problem occurs when the hyphenation causes the reader to pronounce the head portion incorrectly, causing them to read nonsensical words (I&#8217;ll give an example in a second.)</p>
<p>To address this problem some automatic text layout systems rely on dictionaries in which acceptable hyphenation points have been marked by a human. While generally correct, such dictionary-based approaches require a very large data file to store the dictionary and fail when given new words. An alternate approach, taken in TeX, is to summarize hyphenation points into a small set of patterns which can then be applied to any word. The TeX method was described in Franklin Liang&#8217;s thesis <a href="http://www.tug.org/docs/liang/">Word Hy-phen-a-tion by Com-put-er</a>. Liang&#8217;s thesis claims that his pattern-based finds about 90% of the human marked hyphenation points and finds essentially no incorrect ones.</p>
<p>Unfortunately, essentially no incorrect ones is not the same as no incorrect ones. In the last two papers I&#8217;ve written, I&#8217;ve come across words that TeX&#8217;s method failed rather dramatically on. Fortunately, LaTeX provides an easy way to override the automatic hyphen selection through the <code>\hyphenation{}</code> command.</p>
<p><code>\hyphenation{white-space}</code> fixes TeX&#8217;s &#8220;whites-pace&#8221;, a somewhat racist rendering. Note that this incorrect hyphenation is the opposite of the &#8220;new-spaper&#8221; example, which came from Liang&#8217;s thesis, highlighting the problems facing a purely pattern-based approach.</p>
<p><code>\hyphenation{analy-sis}</code> fixes TeX&#8217;s &#8220;anal-ysis&#8221; which leads to a rather infelicitous mispronunciation of the first part of the word.</p>
<p>Despite doing a good job most of the time, TeX&#8217;s automatic hyphenation can and does go awry. Keep your eyes open when proof reading!</p>
<p><span style="color: #888888;">*I&#8217;m pretty sure TeX gets the hyphenation of &#8220;mistakes&#8221; correct.</span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.justintalbot.com/2011/09/latex-hyphenation-mist-akes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SIGGRAPH course on Importance Sampling</title>
		<link>http://www.justintalbot.com/2011/09/siggraph-course-on-importance-sampling/</link>
		<comments>http://www.justintalbot.com/2011/09/siggraph-course-on-importance-sampling/#comments</comments>
		<pubDate>Thu, 01 Sep 2011 21:14:53 +0000</pubDate>
		<dc:creator>Justin Talbot</dc:creator>
				<category><![CDATA[rendering]]></category>

		<guid isPermaLink="false">http://www.justintalbot.com/?p=213</guid>
		<description><![CDATA[I just noticed that my Masters work on Resampled Importance Sampling was included in a SIGGRAPH course last year. In standard importance sampling you have to draw samples from a distribution which can be sampled and which has a known scaling factor (so that the area under the pdf = 1). This is very limiting [...]]]></description>
			<content:encoded><![CDATA[<p>I just noticed that my <a href="http://research.justintalbot.org/papers/thesis.pdf">Masters work</a> on <a href="http://research.justintalbot.org/papers/resampling_egsr2005.pdf">Resampled Importance Sampling</a> was included in a <a href="https://sites.google.com/site/isrendering/">SIGGRAPH course</a> last year. </p>
<p>In standard importance sampling you have to draw samples from a distribution which can be sampled and which has a known scaling factor (so that the area under the pdf = 1). This is very limiting in some MC situations, such as sampling the incoming light direction in a path tracer. The function we want to sample from is the product of the BRDF and the incident light field. However, we can typically only sample from one component or the other, not both. In RIS, we create a sampled, discrete approximation to the desired distribution and then draw our samples from that. Since the approximation is discrete we can easily normalize it and draw samples from it. In my thesis, I showed that when weighted correctly, this results in an unbiased estimate.</p>
<p>RIS will beat IS when it is substantially cheaper to create the approximate distribution than it is to evaluate the true function. In the path tracing context, I did this by evaluating the BRDF and environment map lighting for the approximate distribution, but not the visibility (the ray tracing step). With this approach, the RIS image (on the right) has substantially lower variance than the IS image (left).</p>
<p><img src="http://www.justintalbot.com/wp-content/uploads/2011/09/ris.png" alt="IS vs. RIS" width=500/></p>
<p>As long as the visibility test accounts for a substantial fraction of the execution time, RIS will beat IS. However, this wasn&#8217;t particularly true when I wrote the thesis and is probably less true now. In my thesis, I concluded that, for current rendering tasks, RIS wasn&#8217;t a big win since the difference in evaluation cost between the approximate samples and the actual samples wasn&#8217;t very high. However, I think it could be quite useful in some MC applications where a relatively good and cheap discrete approximation can be found.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.justintalbot.com/2011/09/siggraph-course-on-importance-sampling/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Arc Length-based Aspect Ratio Selection</title>
		<link>http://www.justintalbot.com/2011/08/arc-length-based-aspect-ratio-selection/</link>
		<comments>http://www.justintalbot.com/2011/08/arc-length-based-aspect-ratio-selection/#comments</comments>
		<pubDate>Wed, 31 Aug 2011 20:15:43 +0000</pubDate>
		<dc:creator>Justin Talbot</dc:creator>
				<category><![CDATA[visualization]]></category>

		<guid isPermaLink="false">http://www.justintalbot.com/?p=205</guid>
		<description><![CDATA[Here&#8217;s a preprint of our paper on aspect ratio selection which will appear in InfoVis 2011. In it we propose a new criteria for banking data plots, building on previous ideas from Bill Cleveland and Jeff Heer and Maneesh Agrawala. We frame the aspect ratio selection problem as one of minimizing the length of the [...]]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s a <a href="http://vis.stanford.edu/papers/arclength-banking">preprint</a> of our paper on aspect ratio selection which will appear in InfoVis 2011. In it we propose a new criteria for banking data plots, building on previous ideas from Bill Cleveland and Jeff Heer and Maneesh Agrawala.</p>
<p>We frame the aspect ratio selection problem as one of minimizing the length of the data curve while keeping the area of the plot constant. This leads to a method that is substantially more robust than previous approaches. We&#8217;re also able to demonstrate empirically that the resulting aspect ratios are a compromise between those suggested by previous methods. As shown below, the arc length method can also effectively bank both standard line charts (in this case a loess regression line) as wells as contour charts.</p>
<p><img src="http://vis.stanford.edu/images/figures/arclength-banking.png" alt="Arc-length banking example" width=500/></p>
<p>Perhaps the most surprising result is that good aspect ratios can be selected without explicit reference to the slopes or orientations of the line segments within the plot.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.justintalbot.com/2011/08/arc-length-based-aspect-ratio-selection/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>C# code for labeling paper</title>
		<link>http://www.justintalbot.com/2011/07/c-code-for-labeling-paper/</link>
		<comments>http://www.justintalbot.com/2011/07/c-code-for-labeling-paper/#comments</comments>
		<pubDate>Sat, 23 Jul 2011 03:57:02 +0000</pubDate>
		<dc:creator>Justin Talbot</dc:creator>
				<category><![CDATA[visualization]]></category>

		<guid isPermaLink="false">http://www.justintalbot.com/?p=200</guid>
		<description><![CDATA[I&#8217;ve finally had time to pull the labeling algorithm out of my much larger visualization package. It&#8217;s now up on github: https://github.com/jtalbot/Labeling. This implements all parts of the labeling paper, including the formatting variations. Let me know if you run into any problems with it or have any suggestions for improvement.]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve finally had time to pull the labeling algorithm out of my much larger visualization package. It&#8217;s now up on github: <a href="https://github.com/jtalbot/Labeling">https://github.com/jtalbot/Labeling</a>. This implements all parts of the labeling paper, including the formatting variations.</p>
<p>Let me know if you run into any problems with it or have any suggestions for improvement.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.justintalbot.com/2011/07/c-code-for-labeling-paper/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>R labeling package released on CRAN</title>
		<link>http://www.justintalbot.com/2010/12/r-labeling-package-released-on-cran/</link>
		<comments>http://www.justintalbot.com/2010/12/r-labeling-package-released-on-cran/#comments</comments>
		<pubDate>Wed, 08 Dec 2010 18:23:46 +0000</pubDate>
		<dc:creator>Justin Talbot</dc:creator>
				<category><![CDATA[visualization]]></category>

		<guid isPermaLink="false">http://www.justintalbot.com/?p=192</guid>
		<description><![CDATA[Version 0.1 of the labeling package has been released on CRAN.]]></description>
			<content:encoded><![CDATA[<p>Version 0.1 of the labeling package has been released on <a href="http://cran.at.r-project.org/web/packages/labeling/index.html">CRAN</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.justintalbot.com/2010/12/r-labeling-package-released-on-cran/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>R code for our axis labeling algorithm</title>
		<link>http://www.justintalbot.com/2010/09/r-code-for-our-axis-labeling-algorithm/</link>
		<comments>http://www.justintalbot.com/2010/09/r-code-for-our-axis-labeling-algorithm/#comments</comments>
		<pubDate>Fri, 03 Sep 2010 03:52:00 +0000</pubDate>
		<dc:creator>Justin Talbot</dc:creator>
				<category><![CDATA[visualization]]></category>

		<guid isPermaLink="false">http://www.justintalbot.com/?p=178</guid>
		<description><![CDATA[The R version of our labeling code is now hosted at R-forge. You can get it here or install it from within R using install.packages("labeling", repos="http://R-Forge.R-project.org"). A few small bugs in the implementation of our algorithm have been fixed thanks to feedback from Ahmet Karahan who is working on a Java version. I have also [...]]]></description>
			<content:encoded><![CDATA[<p>The R version of our labeling code is now hosted at R-forge. You can get it <a href="https://r-forge.r-project.org/R/?group_id=872 ">here</a> or install it from within R using <code>install.packages("labeling",  repos="http://R-Forge.R-project.org")</code>.</p>
<p>A few small bugs in the implementation of our algorithm have been fixed thanks to feedback from Ahmet Karahan who is working on a Java version. I have also added a number of other labeling algorithms that have been proposed or used in the past, including those by Sparks, Thayer, and Nelder (from about 40 years ago), and adaptations of the matplotlib, gnuplot, and R&#8217;s pretty labeling functions.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.justintalbot.com/2010/09/r-code-for-our-axis-labeling-algorithm/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Monitoring Hadoop</title>
		<link>http://www.justintalbot.com/2010/08/monitoring-hadoop/</link>
		<comments>http://www.justintalbot.com/2010/08/monitoring-hadoop/#comments</comments>
		<pubDate>Tue, 24 Aug 2010 19:53:28 +0000</pubDate>
		<dc:creator>Justin Talbot</dc:creator>
				<category><![CDATA[visualization]]></category>

		<guid isPermaLink="false">http://www.justintalbot.com/?p=167</guid>
		<description><![CDATA[As a side project this summer, I implemented a simple visual interface for HOP, an extended version of Hadoop. This was used by the HOP creators in their demo of HOP at this summer&#8217;s SIGMOD. The graphical elements were produced using Protovis since I needed an excuse to play around with it. We ran into minor [...]]]></description>
			<content:encoded><![CDATA[<p>As a side project this summer, I implemented a simple visual interface for <a href="http://code.google.com/p/hop/">HOP</a>, an extended version of Hadoop. This was used by the HOP creators in their <a href="http://neilconway.org/docs/sigmod2010_hop_demo.pdf">demo of HOP</a> at this summer&#8217;s SIGMOD.</p>
<div id="attachment_168" class="wp-caption aligncenter" style="width: 304px"><a href="http://www.justintalbot.com/wp-content/uploads/2010/08/hop_screenshot.png"><img class="size-medium wp-image-168" title="hop_screenshot" src="http://www.justintalbot.com/wp-content/uploads/2010/08/hop_screenshot-294x300.png" alt="Screenshot of hop visual interface" width="294" height="300" /></a><p class="wp-caption-text">Hop visual interface</p></div>
<p>The graphical elements were produced using <a href="http://vis.stanford.edu/protovis/">Protovis</a> since I needed an excuse to play around with it. We ran into minor performance problems using Protovis for so many plots in a single page. In a production system it would be wiser to generate and cache the plots on the server side.</p>
<p><strong>Update</strong>: The screenshot shows a task scheduling imbalance bug that we found in HOP using the visual interface.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.justintalbot.com/2010/08/monitoring-hadoop/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>An Extension of Wilkinson’s Algorithm for Positioning Tick Labels on Axes</title>
		<link>http://www.justintalbot.com/2010/07/an-extension-of-wilkinson%e2%80%99s-algorithm-for-positioning-tick-labels-on-axes/</link>
		<comments>http://www.justintalbot.com/2010/07/an-extension-of-wilkinson%e2%80%99s-algorithm-for-positioning-tick-labels-on-axes/#comments</comments>
		<pubDate>Fri, 30 Jul 2010 21:55:01 +0000</pubDate>
		<dc:creator>Justin Talbot</dc:creator>
				<category><![CDATA[visualization]]></category>

		<guid isPermaLink="false">http://www.justintalbot.com/?p=157</guid>
		<description><![CDATA[Here&#8217;s a preprint of our paper on selecting tick labels for axes which will appear in this year&#8217;s InfoVis! Source code of the implementation will be made available before the conference. We&#8217;re hoping to get this implemented in a number of common plotting libraries. I already have a partial matplotlib version working. I would also [...]]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s a <a href="http://graphics.stanford.edu/vis/publications/2010/labeling-preprint.pdf">preprint</a> of our paper on selecting tick labels for axes which will appear in this year&#8217;s InfoVis! Source code of the implementation will be made available before the conference. We&#8217;re hoping to get this implemented in a number of common plotting libraries. I already have a partial matplotlib version working. I would also like to have one for ggplot. Other suggestions are welcome.</p>
<p>The abstract:</p>
<blockquote>
<div id="_mcePaste">The non-data components of a visualization, such as axes and legends, can often be just as important as the data itself. They provide contextual information essential to interpreting the data. In this paper, we describe an automated system for choosing positions and labels for axis tick marks. Our system extends Wilkinson’s optimization-based labeling approach to create a more robust, full-featured axis labeler. We define an expanded space of axis labelings by automatically generating additional nice numbers as needed and by permitting the extreme labels to occur inside the data range. These changes provide flexibility in problematic cases, without degrading quality elsewhere. We also propose an additional optimization criterion, legibility, which allows us to simultaneously optimize over label formatting, font size, and orientation. To solve this revised optimization problem, we describe the optimization function and an efficient search algorithm. Finally, we compare our method to previous work using both quantitative and qualitative metrics. This paper is a good example of how ideas from automated graphic design can be applied to information visualization.</div>
</blockquote>
<p><strong>Update</strong>: We&#8217;ve released a preliminary <a href="http://www.justintalbot.com/research/axis-labeling/">R package</a> implementing the three labeling algorithms we compared in the paper. Feedback is appreciated. The final version should be released by InfoVis (in October).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.justintalbot.com/2010/07/an-extension-of-wilkinson%e2%80%99s-algorithm-for-positioning-tick-labels-on-axes/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Masten Xombie rocket engine restart in flight</title>
		<link>http://www.justintalbot.com/2010/05/masten-xombie-rocket-engine-restart-in-flight/</link>
		<comments>http://www.justintalbot.com/2010/05/masten-xombie-rocket-engine-restart-in-flight/#comments</comments>
		<pubDate>Fri, 28 May 2010 18:58:36 +0000</pubDate>
		<dc:creator>Justin Talbot</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.justintalbot.com/?p=151</guid>
		<description><![CDATA[Very cool video. (HT Instapundit)]]></description>
			<content:encoded><![CDATA[<p><a href="http://masten-space.com/blog/?p=532">Very cool video.</a> (HT Instapundit)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.justintalbot.com/2010/05/masten-xombie-rocket-engine-restart-in-flight/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

