<?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>Aaron &#187; Uncategorized</title>
	<atom:link href="http://aaron.boxofspoons.net/category/uncategorized/feed/" rel="self" type="application/rss+xml" />
	<link>http://aaron.boxofspoons.net</link>
	<description></description>
	<lastBuildDate>Thu, 13 Jan 2011 06:40:50 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	
		<item>
		<title>Block-level Inline Data Deduplication in ext3</title>
		<link>http://aaron.boxofspoons.net/2010/12/block-level-inline-data-deduplication-in-ext3/</link>
		<comments>http://aaron.boxofspoons.net/2010/12/block-level-inline-data-deduplication-in-ext3/#comments</comments>
		<pubDate>Mon, 20 Dec 2010 06:29:25 +0000</pubDate>
		<dc:creator>aaron</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[c]]></category>
		<category><![CDATA[kernel]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[operating systems]]></category>

		<guid isPermaLink="false">http://aaron.boxofspoons.net/?p=62</guid>
		<description><![CDATA[For our class project in advanced operating systems, Kris and I took our first foray into Linux kernel programing. We added block deduplication to ext3, a popular filesystem for Linux. The goal is to reduce the number of writes and to save space on the disk. This could be useful for Solid State Disks, where writes are slow [...]]]></description>
			<content:encoded><![CDATA[<p>For our class project in <a href="http://pages.cs.wisc.edu/~remzi/Classes/736/Fall2010/">advanced operating systems</a>, Kris and I took our first foray into Linux kernel programing. We <a href="http://pages.cs.wisc.edu/~kosmatka/dedupfs/">added block deduplication</a> to ext3, a popular filesystem for Linux. The goal is to reduce the number of writes and to save space on the disk. This could be useful for Solid State Disks, where writes are slow and disk space is expensive. Our code is a bit buggy, but the idea has potential.</p>
]]></content:encoded>
			<wfw:commentRss>http://aaron.boxofspoons.net/2010/12/block-level-inline-data-deduplication-in-ext3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Programming Contest: 2nd place in region</title>
		<link>http://aaron.boxofspoons.net/2010/11/programming-contest-2nd-place-in-region/</link>
		<comments>http://aaron.boxofspoons.net/2010/11/programming-contest-2nd-place-in-region/#comments</comments>
		<pubDate>Sat, 06 Nov 2010 06:10:42 +0000</pubDate>
		<dc:creator>aaron</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[acm]]></category>
		<category><![CDATA[icpc]]></category>

		<guid isPermaLink="false">http://aaron.boxofspoons.net/?p=59</guid>
		<description><![CDATA[My team placed 2nd in the North Central North America Region of the ACM International Collegiate Programing Competition! We&#8217;ve also advanced to the world finals on March 3rd  in Sharm El Sheikh, Egypt.]]></description>
			<content:encoded><![CDATA[<p>My team placed 2nd in the <a href="http://cm2prod.baylor.edu/public/worldMap/worldMap.icpc?contestId=643">North Central North America Region</a> of the ACM International Collegiate Programing Competition! We&#8217;ve also advanced to the <a href="http://cm.baylor.edu/local2011/schedule.html">world finals</a> on March 3rd  in Sharm El Sheikh, Egypt.</p>
]]></content:encoded>
			<wfw:commentRss>http://aaron.boxofspoons.net/2010/11/programming-contest-2nd-place-in-region/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Benchmarking Linux And Hardware</title>
		<link>http://aaron.boxofspoons.net/2010/10/benchmarking-linux-and-hardware/</link>
		<comments>http://aaron.boxofspoons.net/2010/10/benchmarking-linux-and-hardware/#comments</comments>
		<pubDate>Mon, 04 Oct 2010 00:36:05 +0000</pubDate>
		<dc:creator>aaron</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[benchmark]]></category>
		<category><![CDATA[c]]></category>
		<category><![CDATA[hardware]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[operating systems]]></category>

		<guid isPermaLink="false">http://aaron.boxofspoons.net/?p=40</guid>
		<description><![CDATA[Modern operating systems provide abstractions of hardware to make programming easier. However, it can be possible to learn some details about the hardware using simple benchmarks running in userspace. I wrote some of these benchmarks in C to measure these things on my computer: The cost of a context switch in Linux The size of [...]]]></description>
			<content:encoded><![CDATA[<p>Modern operating systems provide abstractions of hardware to make programming easier. However, it can be possible to learn some details about the hardware using simple benchmarks running in userspace. I wrote some of these benchmarks in C to measure these things on my computer:</p>
<ul>
<li>The cost of a context switch in Linux</li>
<li>The size of the TLB and the cost of a TLB miss</li>
<li>The seek time and rotational delay of a hard drive.</li>
</ul>
<p><span id="more-40"></span></p>
<h2>Context Switch</h2>
<p>For this test, I create several processes and have each one call sched_yield() 100000 times. Each call yields the processor and thus causes a context switch. If you compare this to the time needed to just create the processes, you can get a rough idea of how long a context switch takes. It&#8217;s about 1350ns on the test computer.</p>
<p><a href="http://aaron.boxofspoons.net/wp-content/uploads/2010/10/context-switch.png"><img class="alignnone size-medium wp-image-41" title="context-switch" src="http://aaron.boxofspoons.net/wp-content/uploads/2010/10/context-switch-300x181.png" alt="" width="300" height="181" /></a></p>
<h2>TLB</h2>
<p>Here I iteratively access more and more pages in each test until there is a jump in the average read time. On the test computer, it looks like the TLB has 64 entries and it takes about 4.5ns to handle a TLB miss.</p>
<p><a href="http://aaron.boxofspoons.net/wp-content/uploads/2010/10/tlb.png"><img class="alignnone size-medium wp-image-43" title="tlb" src="http://aaron.boxofspoons.net/wp-content/uploads/2010/10/tlb-300x191.png" alt="" width="300" height="191" /></a></p>
<h2>Hard Drive</h2>
<p>I found seek time and rotational delay by doing random reads across the disk, and recording the time and distance between reads. My disk is a 4200rpm, so rotational delay is about 14ms. Seek time ranges from 5ms to 20ms, depending on the distance between reads.</p>
<p><a href="http://aaron.boxofspoons.net/wp-content/uploads/2010/10/disk-random.png"><img class="alignnone size-medium wp-image-44" title="disk-random" src="http://aaron.boxofspoons.net/wp-content/uploads/2010/10/disk-random-300x181.png" alt="" width="300" height="181" /></a></p>
<p>If instead you do sequential reads across the disk, but increase the distance between reads by 1 block each time, you get more information.</p>
<p><a href="http://aaron.boxofspoons.net/wp-content/uploads/2010/10/disk-skip.png"><img class="alignnone size-medium wp-image-45" title="disk-skip" src="http://aaron.boxofspoons.net/wp-content/uploads/2010/10/disk-skip-300x184.png" alt="" width="300" height="184" /></a></p>
<p>You can read about the correct way to interpret these disk measurements in <a href="http://www.eecs.berkeley.edu/Pubs/TechRpts/1999/6275.html">Talagala, Arpaci-Dusseau, Patterson</a>.</p>
<h2>Links</h2>
<ul>
<li>My <a href="https://docs.google.com/present/view?id=dctzmtsn_94svj74t5d">original presentation</a></li>
<li>I think <a href="http://www.bitmover.com/lmbench/">lmbench </a>does some of these benchmarks, but I couldn&#8217;t get it to compile.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://aaron.boxofspoons.net/2010/10/benchmarking-linux-and-hardware/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Modern Algebra Notes</title>
		<link>http://aaron.boxofspoons.net/2010/05/modern-algebra-notes/</link>
		<comments>http://aaron.boxofspoons.net/2010/05/modern-algebra-notes/#comments</comments>
		<pubDate>Wed, 05 May 2010 00:30:15 +0000</pubDate>
		<dc:creator>aaron</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[algebra]]></category>
		<category><![CDATA[math]]></category>
		<category><![CDATA[notes]]></category>

		<guid isPermaLink="false">http://aaron.boxofspoons.net/?p=32</guid>
		<description><![CDATA[modern algebra notes (PDF) modern algebra notes (lyx) There are probably some errors. I used LyX to make this note sheet.]]></description>
			<content:encoded><![CDATA[<p><a href="http://aaron.boxofspoons.net/wp-content/uploads/2010/08/modern-algebra.pdf">modern algebra notes (PDF)</a><br />
<a href="http://aaron.boxofspoons.net/wp-content/uploads/2010/08/modern-algebra.lyx">modern algebra notes (lyx)</a></p>
<p>There are probably some errors. I used <a href="http://www.lyx.org/">LyX</a> to make this note sheet.</p>
]]></content:encoded>
			<wfw:commentRss>http://aaron.boxofspoons.net/2010/05/modern-algebra-notes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Image Epitomes</title>
		<link>http://aaron.boxofspoons.net/2010/04/image-epitomes/</link>
		<comments>http://aaron.boxofspoons.net/2010/04/image-epitomes/#comments</comments>
		<pubDate>Mon, 26 Apr 2010 20:27:07 +0000</pubDate>
		<dc:creator>aaron</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[image processing]]></category>
		<category><![CDATA[matlab]]></category>
		<category><![CDATA[photography]]></category>

		<guid isPermaLink="false">http://aaron.boxofspoons.net/?p=5</guid>
		<description><![CDATA[An image can be condensed into an epitome, which captures the essence and statistically significant features of the image.  I created some matlab code based on Vincent Cheung&#8217;s examples that can be used for super-resolution. Here is an example result: The epitome itself may not be very interesting, however, it can be used to reconstruct [...]]]></description>
			<content:encoded><![CDATA[<p>An image can be condensed into an epitome, which captures the essence and statistically significant features of the image.  I created some matlab code based on <a href="http://www.psi.toronto.edu/~vincent/videoepitome.html">Vincent Cheung&#8217;s examples</a> that can be used for super-resolution. Here is an example result:</p>
<div id="attachment_14" class="wp-caption alignnone" style="width: 138px"><a href="http://aaron.boxofspoons.net/wp-content/uploads/2010/07/doors-sample.png"><img class="size-full wp-image-14" title="doors-sample" src="http://aaron.boxofspoons.net/wp-content/uploads/2010/07/doors-sample.png" alt="" width="128" height="128" /></a><p class="wp-caption-text">High resolution sample image</p></div>
<div id="attachment_11" class="wp-caption alignnone" style="width: 160px"><a href="http://aaron.boxofspoons.net/wp-content/uploads/2010/07/doors-epitome.png"><img class="size-thumbnail wp-image-11" title="doors-epitome" src="http://aaron.boxofspoons.net/wp-content/uploads/2010/07/doors-epitome-150x150.png" alt="" width="150" height="150" /></a><p class="wp-caption-text">Epitome for sample image</p></div>
<p>The epitome itself may not be very interesting, however, it can be used to reconstruct details of a degraded image. <span id="more-5"></span></p>
<div id="attachment_12" class="wp-caption alignnone" style="width: 522px"><a href="http://aaron.boxofspoons.net/wp-content/uploads/2010/07/doors-lowres.png"><img class="size-full wp-image-12" title="doors-lowres" src="http://aaron.boxofspoons.net/wp-content/uploads/2010/07/doors-lowres.png" alt="" width="512" height="512" /></a><p class="wp-caption-text">Original low resolution image</p></div>
<div id="attachment_13" class="wp-caption alignnone" style="width: 522px"><a href="http://aaron.boxofspoons.net/wp-content/uploads/2010/07/doors-result.png"><img class="size-full wp-image-13" title="doors-result" src="http://aaron.boxofspoons.net/wp-content/uploads/2010/07/doors-result.png" alt="" width="512" height="512" /></a><p class="wp-caption-text">Image after being reconstructed with above epitome</p></div>
]]></content:encoded>
			<wfw:commentRss>http://aaron.boxofspoons.net/2010/04/image-epitomes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Programming Contest: 10th place in region</title>
		<link>http://aaron.boxofspoons.net/2009/10/programming-contest-10th-place-in-region/</link>
		<comments>http://aaron.boxofspoons.net/2009/10/programming-contest-10th-place-in-region/#comments</comments>
		<pubDate>Sat, 31 Oct 2009 03:09:49 +0000</pubDate>
		<dc:creator>aaron</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[acm]]></category>
		<category><![CDATA[contest]]></category>
		<category><![CDATA[icpc]]></category>

		<guid isPermaLink="false">http://aaron.boxofspoons.net/?p=38</guid>
		<description><![CDATA[My team placed 10th out of 201 in the North Central North America region for the ACM International Collegiate Programming Contest.]]></description>
			<content:encoded><![CDATA[<p>My team <a href="http://pages.cs.wisc.edu/~dieter/ICPC/hall-of-fame.html">placed 10th out of 201</a> in the North Central North America region for the <a href="http://cm.baylor.edu/welcome.icpc">ACM International Collegiate Programming Contest</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://aaron.boxofspoons.net/2009/10/programming-contest-10th-place-in-region/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Presentation Studio Theme Editor</title>
		<link>http://aaron.boxofspoons.net/2009/08/presentation-studio-theme-editor/</link>
		<comments>http://aaron.boxofspoons.net/2009/08/presentation-studio-theme-editor/#comments</comments>
		<pubDate>Sat, 29 Aug 2009 17:49:59 +0000</pubDate>
		<dc:creator>aaron</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[.net]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[wpf]]></category>

		<guid isPermaLink="false">http://aaron.boxofspoons.net/?p=21</guid>
		<description><![CDATA[Solidworks is a popular 3D CAD software suite.  An existing plugin for Solidworks allows users to export a 3D model as a 3D PDF document. However, there were only four templates available for the layout and style of the PDF. During my internship at Solidworks Labs, I created Presentation Studio Theme Editor, which allows users [...]]]></description>
			<content:encoded><![CDATA[<p>Solidworks is a popular 3D <abbr title="Computer Aided Design">CAD</abbr> software suite.  An existing plugin for Solidworks allows users to export a 3D model as a 3D PDF document. However, there were only four templates available for the layout and style of the PDF. During my internship at Solidworks Labs, I created <a href="http://labs.solidworks.com/Products/Product.aspx?name=pstudiothemeedit">Presentation Studio Theme Editor</a>, which allows users to create their own templates. Some of its features are:</p>
<ul>
<li>What you see is what you get</li>
<li>Drag and resize elements with snapping</li>
<li>Z-ordering</li>
<li>Context pop-up bars</li>
<li>Undo and redo</li>
<li>Drag and drop images and text</li>
</ul>
<p><a href="http://aaron.boxofspoons.net/wp-content/uploads/2009/08/default-Presentation-Studio-Theme-Editor_2010-07-29_13-48-27.png"><img class="alignnone size-medium wp-image-27" title="default - Presentation Studio Theme Editor_2010-07-29_13-48-27" src="http://aaron.boxofspoons.net/wp-content/uploads/2009/08/default-Presentation-Studio-Theme-Editor_2010-07-29_13-48-27-300x222.png" alt="" width="300" height="222" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://aaron.boxofspoons.net/2009/08/presentation-studio-theme-editor/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

