<?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>tdistler.com &#187; Tech and Security</title>
	<atom:link href="http://tdistler.com/category/tech-and-security/feed" rel="self" type="application/rss+xml" />
	<link>http://tdistler.com</link>
	<description>&#34;To err is human, but to really foul things up you need a computer.”</description>
	<lastBuildDate>Wed, 16 May 2012 03:00:31 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>First Digitally Rendered Film by Ed Catmull (1972)</title>
		<link>http://tdistler.com/2011/10/21/first-digitally-rendered-film-by-ed-catmull-1972</link>
		<comments>http://tdistler.com/2011/10/21/first-digitally-rendered-film-by-ed-catmull-1972#comments</comments>
		<pubDate>Fri, 21 Oct 2011 15:00:55 +0000</pubDate>
		<dc:creator>Tom</dc:creator>
				<category><![CDATA[Tech and Security]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://tdistler.com/?p=1057</guid>
		<description><![CDATA[Here&#8217;s a video done by Ed Catmull (founder of Pixar) in 1972 while at the University of Utah. It&#8217;s purported to be the first digitally rendered film. It&#8217;s just amazing how far we&#8217;ve come since these early pioneering days. The math that we take for granted for rendering 3D was being invented, real time, to create this [...]]]></description>
			<content:encoded><![CDATA[<p><a title="First Digital 3D Rendered Film (from 1972) and My Visit to Pixar" href="http://nerdplusart.com/first-3d-rendered-film-from-1972-and-my-visit-to-pixar" target="_blank">Here&#8217;s a video</a> done by Ed Catmull (founder of <a title="Pixar" href="http://www.pixar.com/" target="_blank">Pixar</a>) in 1972 while at the University of Utah. It&#8217;s purported to be the first digitally rendered film. It&#8217;s just amazing how far we&#8217;ve come since these early pioneering days.</p>
<blockquote><p>The math that we take for granted for rendering 3D was being invented, real time, to create this video. (Ed’s credited for having working out that math to handle things like texture mapping, 3D anti-aliasing and z-buffering.)</p></blockquote>
<p>The story behind the video and how it was found recently is pretty cool too. Props to <a title="Robby Ingebretsen" href="http://nerdplusart.com/about" target="_blank">Robby Ingebretsen</a> for sharing this!<br />
<br/><br />
<iframe src="http://player.vimeo.com/video/16292363?title=0&amp;byline=0&amp;portrait=0" frameborder="0" width="400" height="225"></iframe></p>
<p><a href="http://vimeo.com/16292363">40 Year Old 3D Computer Graphics (Pixar, 1972)</a> from <a href="http://vimeo.com/nerdplusart">Robby Ingebretsen</a> on <a href="http://vimeo.com">Vimeo</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://tdistler.com/2011/10/21/first-digitally-rendered-film-by-ed-catmull-1972/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Inside the .NET CLR Garbage Collector</title>
		<link>http://tdistler.com/2011/09/09/inside-the-net-clr-garbage-collector</link>
		<comments>http://tdistler.com/2011/09/09/inside-the-net-clr-garbage-collector#comments</comments>
		<pubDate>Fri, 09 Sep 2011 15:00:29 +0000</pubDate>
		<dc:creator>Tom</dc:creator>
				<category><![CDATA[Code Monkey]]></category>
		<category><![CDATA[Tech and Security]]></category>
		<category><![CDATA[architecture]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://tdistler.com/?p=1049</guid>
		<description><![CDATA[Here&#8217;s a great interview with Microsoft Technical Fellow and author of the CLR garbage collector, Patrick Dussud. How does GC, work, generally? Why is it important? The GC inside of the CLR is of a specfic type &#8211; ephemeral, concurrent (the server version has always been concuurent and now with Background GC on the client [...]]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s a great interview with Microsoft Technical Fellow and author of the CLR garbage collector, <a title="Profile: Patrick Dussud" href="http://www.microsoft.com/presspass/exec/techfellow/dussud/default.mspx" target="_blank">Patrick Dussud</a>.</p>
<blockquote><p>How does GC, work, generally? Why is it important? The GC inside of the CLR is of a specfic type &#8211; ephemeral, concurrent (the server version has always been concuurent and now with Background GC on the client in CLR 4, GC is concurrent on the client as well, but there are differences&#8230;)</p></blockquote>
<p><iframe style="height: 288px; width: 512px;" src="http://channel9.msdn.com/Shows/Going+Deep/E2E-Erik-Meijer-and-Patrick-Dussud-Inside-Garbage-Collection/player?w=512&amp;h=288" frameborder="0" scrolling="no" width="320" height="240"></iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://tdistler.com/2011/09/09/inside-the-net-clr-garbage-collector/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to connect Linux to a Cisco VPN using a PCF file</title>
		<link>http://tdistler.com/2011/07/07/how-to-connect-linux-to-a-cisco-vpn-using-a-pcf-file</link>
		<comments>http://tdistler.com/2011/07/07/how-to-connect-linux-to-a-cisco-vpn-using-a-pcf-file#comments</comments>
		<pubDate>Thu, 07 Jul 2011 15:10:19 +0000</pubDate>
		<dc:creator>Tom</dc:creator>
				<category><![CDATA[Code Monkey]]></category>
		<category><![CDATA[Tech and Security]]></category>

		<guid isPermaLink="false">http://tdistler.com/?p=1007</guid>
		<description><![CDATA[Connecting Linux to a Cisco VPN server using a PCF file is easy (even from within a VirtualBox virtual machine). First, I wouldn&#8217;t bother with Cisco&#8217;s Linux client&#8230; especially if you are running 64bit. You have to patch a source file and mod the Makefile. Using VPNC is so much easier. NOTE: I only had [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://tdistler.com/wp-content/uploads/2011/11/tux_cisco.jpg"><img class="alignright size-thumbnail wp-image-1011" title="tux_cisco" src="http://tdistler.com/wp-content/uploads/2011/11/tux_cisco-150x150.jpg" alt="" width="150" height="150" /></a>Connecting Linux to a Cisco VPN server using a PCF file is easy (even from within a <a title="VirtualBox" href="https://www.virtualbox.org/" target="_blank">VirtualBox</a> virtual machine). First, I wouldn&#8217;t bother with Cisco&#8217;s Linux client&#8230; especially if you are running 64bit. You have to patch a source file and mod the Makefile. Using <a title="VPNC" href="http://www.unix-ag.uni-kl.de/~massar/vpnc/" target="_blank">VPNC</a> is so much easier.</p>
<p><em>NOTE: I only had the PCF file provided by work, and the group password was encrypted. If you know your group password, then you can just run VPNC directly or write a conf file yourself.</em></p>
<p>My setup:</p>
<ul>
<li>Fedora 12 x86_64</li>
<li>Running in VirtualBox 4.1.6 with <em><strong>bridged networking</strong></em> (I didn&#8217;t try it with NAT)</li>
<li>Connecting to a Cisco VPN server at work</li>
</ul>
<p>Connecting:</p>
<ol>
<li>Install VPNC (`<code>sudo yum install vpnc</code>` in Fedora)</li>
<li>Download the <a title="pcf2vpnc" href="http://svn.unix-ag.uni-kl.de/vpnc/trunk/pcf2vpnc" target="_blank">pcf2vpnc</a> Perl script (<a title="cached pcf2vpnc" href="http://www.tdistler.com/media/code/pcf2vpnc" target="_blank">cached</a>)</li>
<li>Convert your Cisco PCF file to VPNC conf format: `<code>perl pcf2vpnc company.pcf vpnc.conf</code>`</li>
<li>Connect to the VPN server: `<code>sudo vpnc ./vpnc.conf</code>` (you will be prompted for you username and password)</li>
<li>(optional) Run <code>`ifconfig</code>` to see the tunnel interface that was created</li>
</ol>
<blockquote>
<pre><code>eth0     Link encap:Ethernet  HWaddr 08:00:DE:AD:BE:EF
         inet addr:192.168.1.10  Bcast:192.168.1.255  Mask:255.255.255.0
         ...

lo       Link encap:Local Loopback
         inet addr:127.0.0.1  Mask:255.0.0.0
         ...

<strong>tun0     Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
         inet addr:10.200.100.1  P-t-P:10.220.116.219  Mask:255.255.255.255</strong>
         ...</code></pre>
</blockquote>
<p>Disconnecting:</p>
<ol>
<li>Run `<code>sudo vpnc-disconnect</code>` (don&#8217;t forget the `<code>sudo</code>`)</li>
</ol>
<p>That&#8217;s it. Cheers!</p>
]]></content:encoded>
			<wfw:commentRss>http://tdistler.com/2011/07/07/how-to-connect-linux-to-a-cisco-vpn-using-a-pcf-file/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Netem WAN Emulation: How to Setup a Netem Box</title>
		<link>http://tdistler.com/2011/06/10/netem-wan-emulation-how-to-setup-a-netem-box</link>
		<comments>http://tdistler.com/2011/06/10/netem-wan-emulation-how-to-setup-a-netem-box#comments</comments>
		<pubDate>Sat, 11 Jun 2011 00:33:43 +0000</pubDate>
		<dc:creator>Tom</dc:creator>
				<category><![CDATA[Tech and Security]]></category>
		<category><![CDATA[network]]></category>

		<guid isPermaLink="false">http://tdistler.com/?p=973</guid>
		<description><![CDATA[Instructions for building and configuring a Netem box to simulate a WAN connection using Fedora 14.]]></description>
			<content:encoded><![CDATA[<p><a title="Netem" href="http://www.linuxfoundation.org/collaborate/workgroups/networking/netem" target="_blank">Netem</a> is a great tool for simulating a WAN connection, with all the expected latency, jitter, packet loss, duplication, and bandwidth limitations. These instructions walk you through setting up a machine that sits between your server and client that emulates the behavior of a WAN connection. I use <a title="Fedora Linux Project" href="http://fedoraproject.org/" target="_blank">Fedora 14</a>, so your distro may be a little different, but hopefully this post gets you pointed in the right direction.</p>
<p>The picture below shows the 2 most common configurations for a Netem box:</p>
<p><a href="http://tdistler.com/wp-content/uploads/2011/06/netem_setup.jpg"><img class="aligncenter size-full wp-image-975" title="netem_setup" src="http://tdistler.com/wp-content/uploads/2011/06/netem_setup.jpg" alt="Netem Box Setup" width="449" height="295" /></a></p>
<p>I&#8217;ve always used the first configuration, but it doesn&#8217;t really matter.</p>
<h2>1. Find a Suitable System</h2>
<ul>
<li>Any &#8220;reasonable&#8221; machine that can run Fedora 14 (I use an old Pentium 4 box since I don&#8217;t need to simulate a high-speed link)</li>
<li>It must have 2 network interfaces</li>
<li>It&#8217;s nice to use a smaller box if you want it to be portable</li>
</ul>
<h2>2. Install <code>bridge-utils</code></h2>
<p>Make sure you are <code>root</code>, and run:</p>
<p><code>brctl</code></p>
<p>to see if <code>bridge-utils</code> is installed. If it isn&#8217;t, run:</p>
<p><code>yum install bridge-utils</code>.<span id="more-973"></span></p>
<h2>3. Bridge the 2 Network Interfaces</h2>
<p>First make sure to clear the network configuration for your interfaces:</p>
<p><code>ifconfig eth0 0.0.0.0<br />
ifconfig eth1 0.0.0.0</code></p>
<p>Then create the bridge and bring it up:</p>
<p><code>brctl addbr br0<br />
brctl setfd br0 0<br />
brctl addif br0 eth0<br />
brctl addif br0 eth1<br />
ifconfig br0 up</code></p>
<p>Note that we disable the forwarding delay (&#8216;setfd&#8217;). This makes the bridge pass traffic through it immediately instead of the configured delay time.</p>
<p>One final set I had to perform is disabling kernel-level filtering on the bridge. This is done by writing <code>0</code> to the bridge nodes under proc:</p>
<p><code>for f in /proc/sys/net/bridge-*; do echo 0 &gt; $f; done</code></p>
<p>Note: If for some reason none of this works for you, check out <a title="Linux Foundation: Network Bridging" href="http://www.linuxfoundation.org/collaborate/workgroups/networking/bridge" target="_blank">the Linux Foundation page on network bridging</a>.</p>
<h2>4. Configure Netem</h2>
<p>Netem is actually used in conjunction with the Traffic Control application, <code>tc</code>. I&#8217;m not going to go into detail here, but suffice it to say that <code>tc</code> allows you to do packet shaping and adjust packet scheduling. <a title="Traffic Control man page" href="http://linux.die.net/man/8/tc" target="_blank">Check out the <code>tc</code> man page for more information</a>.</p>
<p><code>tc</code> allows you to specify the &#8220;queueing discipline&#8221; (or &#8220;qdisc&#8221; for short) used for sending <strong>outbound</strong> packets on an interface (the fact that it operates on outbound packets only is important to remember). Basically, a qdisc defines how outbound packets are ordered and sent. To view the current qdisc setup on your box, type:</p>
<p><code>tc qdisc</code></p>
<p>The default qdisc is pfifo_fast. We&#8217;re going to change this to use a combination of Netem and <a title="Token Bucket Filter" href="http://linux.die.net/man/8/tc-tbf" target="_blank">Token Bucket Filter</a>.</p>
<p><strong>Note:</strong> For the following examples, I assume <code>eth0</code> is connected to the network (client-side), and <code>eth1</code> is <em>directly</em> connected to the server.</p>
<h3>Limiting Bandwidth</h3>
<p>The <a title="Token Bucket Filter" href="http://linux.die.net/man/8/tc-tbf" target="_blank">Token Bucket Filter</a> (tbf) is used to limit how much data can exit the network interface per second&#8230; perfect for simulating WAN bandwidth limitations. Let&#8217;s assume we want to emulate a client-side WAN connection of 768kbps down and 128kbps up. Assuming the server is connected to <code>eth1</code>, the <code>eth1</code> interface receives inbound traffic from the server and <code>eth0</code> sends that traffic outbound to the client. Since we know the a qdisc works on outbound traffic only, we need to limit <code>eth0</code> for our download speed of 768kbps. Conversely, we configure <code>eth1</code> for our upload speed of 128kbps.</p>
<p><code>tc qdisc replace dev eth0 root handle 1:0 tbf rate 768kbit burst 2048 latency 100ms</code></p>
<p><code>tc qdisc replace dev eth1 root handle 2:0 tbf rate 128kbit burst 2048 latency 100ms</code></p>
<p>We use the &#8216;replace&#8217; command to overwrite any qdisc setting that&#8217;s there (you can use the &#8216;del&#8217; command to simple remove qdiscs). We set the qdisc as the &#8216;<code>root</code>&#8216; of the tree, and configure the tbf &#8216;<code>rate</code>&#8216; accordingly. The &#8216;<code>burst</code>&#8216; and &#8216;<code>latency</code>&#8216; parameters control the initial number of tokens in the bucket and how long queued packet can hang around before being dropped, respectively.</p>
<h3>Adding Latency</h3>
<p>We can append qdiscs that will allows us to use different tools to control how our simulated WAN behaves. In this example, I&#8217;ll use Netem to artifically add 57ms of latency to the download connection with a random variantion of +/- 13ms:</p>
<p><code>tc qdisc add dev eth0 parent 1:1 handle 10: netem delay 57ms 13ms</code></p>
<h3>And So Much More&#8230;</h3>
<p>The <a title="Netem Examples" href="http://www.linuxfoundation.org/collaborate/workgroups/networking/netem" target="_blank">Netem page on the Linux Foundation website</a> has many other great examples, so there&#8217;s no point in me copying them here. If you&#8217;ve made it this far and are still interested, I highly encourage you to check out their page.</p>
]]></content:encoded>
			<wfw:commentRss>http://tdistler.com/2011/06/10/netem-wan-emulation-how-to-setup-a-netem-box/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>xkcd: IPv6</title>
		<link>http://tdistler.com/2011/03/04/xkcd-ipv6</link>
		<comments>http://tdistler.com/2011/03/04/xkcd-ipv6#comments</comments>
		<pubDate>Fri, 04 Mar 2011 18:52:53 +0000</pubDate>
		<dc:creator>Tom</dc:creator>
				<category><![CDATA[Oh So Random]]></category>
		<category><![CDATA[Tech and Security]]></category>
		<category><![CDATA[funny]]></category>
		<category><![CDATA[IPv6]]></category>
		<category><![CDATA[network]]></category>

		<guid isPermaLink="false">http://tdistler.com/?p=819</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><a href="http://xkcd.com/865/"><img class="aligncenter" src="http://imgs.xkcd.com/comics/nanobots.png" alt="xkcd: Nanobots" width="592" height="201" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://tdistler.com/2011/03/04/xkcd-ipv6/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ILM and GPU Programming</title>
		<link>http://tdistler.com/2010/10/07/ilm-and-gpu-programming</link>
		<comments>http://tdistler.com/2010/10/07/ilm-and-gpu-programming#comments</comments>
		<pubDate>Thu, 07 Oct 2010 16:15:49 +0000</pubDate>
		<dc:creator>Tom</dc:creator>
				<category><![CDATA[Code Monkey]]></category>
		<category><![CDATA[Tech and Security]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://tdistler.com/?p=503</guid>
		<description><![CDATA[Some artists from Industrial Light &#38; Magic (ILM) gave the closing keynote at the GPU Technology Conference (GTC) in 2009&#8230; it&#8217; s well worth watching by itself (watch here). At GTC 2010, they presented a video talking about how the GPU and CUDA are helping to render effects faster. It&#8217;s a short video with lots [...]]]></description>
			<content:encoded><![CDATA[<p>Some artists from <a title="Industrial Light and Magic" href="http://www.ilm.com/" target="_blank">Industrial Light &amp; Magic</a> (ILM) gave the closing keynote at the <a title="GPU Technology Conference" href="http://www.nvidia.com/object/gpu_technology_conference.html" target="_blank">GPU Technology Conference</a> (GTC) in 2009&#8230; it&#8217; s well worth watching by itself (<a title="ILM Keynote at GTC 2009" href="http://us.download.nvidia.com/downloads/GTC%20videos/Day3%20Keynote/1200_nv_keynote_091002.mp4" target="_blank">watch here</a>). At GTC 2010, they presented a video talking about how the GPU and CUDA are helping to render effects faster. It&#8217;s a short video with lots of cool effects.</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="640" height="385" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube-nocookie.com/v/8ZIL98Uhhcg?fs=1&amp;hl=en_US&amp;rel=0" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="640" height="385" src="http://www.youtube-nocookie.com/v/8ZIL98Uhhcg?fs=1&amp;hl=en_US&amp;rel=0" allowscriptaccess="always" allowfullscreen="true"></embed></object>ct&gt;</p>
<p><a title="ILM Promo GTC 2010" href="http://www.tdistler.com/media/videos/GTC_2010_ILM.3gp">Here&#8217;s</a> a copy of the video if it is ever removed (13MB, 3gp).</p>
]]></content:encoded>
			<wfw:commentRss>http://tdistler.com/2010/10/07/ilm-and-gpu-programming/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://us.download.nvidia.com/downloads/GTC%20videos/Day3%20Keynote/1200_nv_keynote_091002.mp4" length="504306567" type="video/mp4" />
		</item>
		<item>
		<title>Light Field Photography</title>
		<link>http://tdistler.com/2010/09/29/light-field-photography</link>
		<comments>http://tdistler.com/2010/09/29/light-field-photography#comments</comments>
		<pubDate>Thu, 30 Sep 2010 04:02:28 +0000</pubDate>
		<dc:creator>Tom</dc:creator>
				<category><![CDATA[Tech and Security]]></category>

		<guid isPermaLink="false">http://tdistler.com/?p=492</guid>
		<description><![CDATA[Here&#8217;s an interesting paper that came out of Stanford in 2005 about plenoptic lenses and light field photography. The techniques in the paper describe how using micro-lenses coupled with a standard lens, the full 4D light field can be captured on a digital image sensor (as opposed to the standard 2D light field of using [...]]]></description>
			<content:encoded><![CDATA[<p><a title="Light Field Photography with a Hand-held Plenoptic Camera" href="http://graphics.stanford.edu/papers/lfcamera/lfcamera-150dpi.pdf" target="_blank">Here&#8217;s an interesting paper</a> that came out of Stanford in 2005 about <a href="http://graphics.stanford.edu/papers/lfcamera/" target="_blank">plenoptic lenses and light field photography</a>. The techniques in the paper describe how using micro-lenses coupled with a standard lens, the full 4D light field can be captured on a digital image sensor (as opposed to the standard 2D light field of using a standard lens alone). With the full 4D field, ray-tracing techniques can be applied to map the incoming light rays and manipulate the image is ways that are usually only possible at the time the photo is taken.</p>
<p>For example, here&#8217;s what the raw image looks like with the micro-lens:</p>
<p><a href="http://tdistler.com/wp-content/uploads/2010/09/plenoptic_full.jpg"><img class="aligncenter size-full wp-image-493" title="plenoptic_full" src="http://tdistler.com/wp-content/uploads/2010/09/plenoptic_full.jpg" alt="" width="468" height="468" /></a></p>
<p>If you zoom in, you can see the tiny micro-images:</p>
<p><a href="http://tdistler.com/wp-content/uploads/2010/09/plenoptic_zoom.jpg"><img class="aligncenter size-full wp-image-494" title="plenoptic_zoom" src="http://tdistler.com/wp-content/uploads/2010/09/plenoptic_zoom.jpg" alt="" width="229" height="229" /></a></p>
<p>Using the micro-images, one can calculate the ray vectors for the incoming light rays. This allows software to change the depth-of-field or the focal point of the image. The 2 pictures below show the processed image with different planes in focus:</p>
<p><a href="http://tdistler.com/wp-content/uploads/2010/09/plenoptic1.jpg"><img class="aligncenter size-full wp-image-497" title="plenoptic1" src="http://tdistler.com/wp-content/uploads/2010/09/plenoptic1.jpg" alt="" width="146" height="146" /></a><a href="http://tdistler.com/wp-content/uploads/2010/09/plenoptic2.jpg"><img class="aligncenter size-full wp-image-498" title="plenoptic2" src="http://tdistler.com/wp-content/uploads/2010/09/plenoptic2.jpg" alt="" width="146" height="146" /></a></p>
<p>This is pretty powerful stuff, especially when coupled with the GPU and CUDA. Adobe did a cool demo at <a title="GTC 2010 Keynote" href="http://livesmooth.istreamplanet.com/nvidia100921/" target="_blank">GTC 2010 during the keynote</a> where they do the image manipulation in real-time using the GPU&#8230; worth watching if you&#8217;re interested.</p>
<p><a href="http://www.tdistler.com/media/docs/PlenopticCamera2005.pdf" target="_blank">Here&#8217;s a copy of the research paper (PDF)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://tdistler.com/2010/09/29/light-field-photography/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Security Fallacy</title>
		<link>http://tdistler.com/2010/07/01/security-fallacy</link>
		<comments>http://tdistler.com/2010/07/01/security-fallacy#comments</comments>
		<pubDate>Thu, 01 Jul 2010 20:21:20 +0000</pubDate>
		<dc:creator>Tom</dc:creator>
				<category><![CDATA[Tech and Security]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://tdistler.com/?p=384</guid>
		<description><![CDATA[&#8220;Cryptography can be used to secure my data. Therefore, if I use cryptography my data is secure.&#8221; Wrong. I think Bruce Schneier described it best (paraphrased): Cryptography is like having a really strong front door on your house&#8230; 2 foot thick steal, blast proof, the whole 9 yards. A thief isn&#8217;t going to try and [...]]]></description>
			<content:encoded><![CDATA[<p><em>&#8220;Cryptography can be used to secure my data. Therefore, if I use cryptography my data is secure.&#8221;</em></p>
<p>Wrong.</p>
<p>I think <a title="Bruce Schneier's Blog" href="http://www.schneier.com/" target="_blank">Bruce Schneier</a> described it best (paraphrased): Cryptography is like having a really strong front door on your house&#8230; 2 foot thick steal, blast proof, the whole 9 yards. A thief isn&#8217;t going to try and break through your front door&#8230; they&#8217;ll just climb through a window!</p>
<p>Security is about the whole system; not just the crypto. <a title="xkcd" href="http://xkcd.com" target="_blank">xkcd</a> summed it up nicely:</p>
<p><a href="http://tdistler.com/wp-content/uploads/2010/07/xkcd_security.jpg"><img class="aligncenter size-full wp-image-385" title="xkcd_security" src="http://tdistler.com/wp-content/uploads/2010/07/xkcd_security.jpg" alt="xkcd: Security" width="448" height="274" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://tdistler.com/2010/07/01/security-fallacy/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>IBM&#8217;s &#8220;Watson&#8221; Beats Contestants at Jeopardy</title>
		<link>http://tdistler.com/2010/06/17/ibms-watson-beats-contestants-at-jeopardy</link>
		<comments>http://tdistler.com/2010/06/17/ibms-watson-beats-contestants-at-jeopardy#comments</comments>
		<pubDate>Thu, 17 Jun 2010 19:00:06 +0000</pubDate>
		<dc:creator>Tom</dc:creator>
				<category><![CDATA[Tech and Security]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://tdistler.com/?p=306</guid>
		<description><![CDATA[The New York Times has a great article on a new system developed by IBM named &#8220;Watson&#8221;. It&#8217;s a computer system that&#8217;s scraped 10&#8242;s of millions of documents from the Internet and compiled a massive database of knowledge. It used natural language parsing to interpret questions and generate answers. The cool thing is that it [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://tdistler.com/wp-content/uploads/2010/06/ibm_watson_jeopardy.jpg"><img class="alignright size-thumbnail wp-image-309" title="ibm_watson_jeopardy" src="http://tdistler.com/wp-content/uploads/2010/06/ibm_watson_jeopardy-150x150.jpg" alt="IBM Watson" width="150" height="150" /></a>The New York Times has a <a title="New York Times: What Is I.B.M.’s Watson?" href="http://www.nytimes.com/2010/06/20/magazine/20Computer-t.html" target="_blank">great article</a> on a new system developed by IBM named &#8220;Watson&#8221;. It&#8217;s a computer system that&#8217;s scraped 10&#8242;s of millions of documents from the Internet and compiled a massive database of knowledge. It used natural language parsing to interpret questions and generate answers. The cool thing is that it beat former Jeopardy contestants 4 out of 6 times in mock Jeopardy session. Here are some quotes from the article I found interesting:</p>
<blockquote><p>It displayed remarkable facility with cultural trivia (“This action flick starring Roy Scheider in a high-tech police helicopter was also briefly a TV series” — “What is ‘Blue Thunder’?”), science (“The greyhound originated more than 5,000 years ago in this African country, where it was used to hunt gazelles” — “What is Egypt?”) and sophisticated wordplay (“Classic candy bar that’s a female <a title="More articles about the U.S. Supreme Court." href="http://topics.nytimes.com/top/reference/timestopics/organizations/s/supreme_court/index.html?inline=nyt-org">Supreme Court</a> justice” — “What is Baby Ruth Ginsburg?”).</p></blockquote>
<blockquote><p>Software firms and university scientists have produced question-answering systems for years, but these have mostly been limited to simply phrased questions. Nobody ever tackled “Jeopardy!” because experts assumed that even for the latest artificial intelligence, the game was simply too hard: the clues are too puzzling and allusive, and the breadth of trivia is too wide.</p>
<p>With Watson, I.B.M. claims it has cracked the problem — and aims to prove as much on national TV. <strong><em>The producers of “Jeopardy!” have agreed to pit Watson against some of the game’s best former players as early as this fall</em><span style="font-weight: normal;"> (emphasis mine)</span></strong>. To test Watson’s capabilities against actual humans, I.B.M.’s scientists began holding live matches last winter.</p></blockquote>
<p>I&#8217;d definitely watch that episode&#8230; especially if Watson was pitted against <a title="Wikipedia: Ken Jennings" href="http://en.wikipedia.org/wiki/Ken_Jennings" target="_blank">Ken Jennings</a>.</p>
<p>Under the hood:</p>
<blockquote><p>[IBM's] main breakthrough was not the design of any single, brilliant new technique for analyzing language. Indeed, many of the statistical techniques Watson employs were already well known by computer scientists. One important thing that makes Watson so different is its enormous speed and memory. Taking advantage of I.B.M.’s supercomputing heft, Ferrucci’s team input millions of documents into Watson to build up its knowledge base — including, he says, “books, reference material, any sort of dictionary, thesauri, folksonomies, taxonomies, encyclopedias, any kind of reference material you can imagine getting your hands on or licensing. Novels, bibles, plays.”</p></blockquote>
<p>The full article is worth the read.</p>
]]></content:encoded>
			<wfw:commentRss>http://tdistler.com/2010/06/17/ibms-watson-beats-contestants-at-jeopardy/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Snipers vs. Somali Pirates</title>
		<link>http://tdistler.com/2009/04/15/snipers-vs-somali-pirates</link>
		<comments>http://tdistler.com/2009/04/15/snipers-vs-somali-pirates#comments</comments>
		<pubDate>Wed, 15 Apr 2009 21:06:39 +0000</pubDate>
		<dc:creator>Tom</dc:creator>
				<category><![CDATA[Government]]></category>
		<category><![CDATA[Tech and Security]]></category>

		<guid isPermaLink="false">http://tdistler.com/?p=214</guid>
		<description><![CDATA[I heard several people now tell me how amazing it is that the snipers landed 3 kills with 3 shots from a boat. Having known a sniper and seen him hit skeet one-handed with a 9mm, I can tell you that this doesn&#8217;t surprise me at all. I&#8217;m actually more surprised at the public&#8217;s reaction. [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright" style="float: right;" src="/media/images/SEAL_snipers_01.jpg" alt="SEAL Snipers" />I heard several people now tell me how amazing it is that the snipers landed 3 kills with 3 shots from a boat. Having known a sniper and seen him hit skeet one-handed with a 9mm, I can tell you that this doesn&#8217;t surprise me at all. I&#8217;m actually more surprised at the public&#8217;s reaction. Here&#8217;s a great excerpt from a <a href="http://www.defensetech.org/archives/004799.html" target="_blank">DefenseTech article</a> I read on the incident:</p>
<blockquote><p>A shot of 80-90 feet &#8212; even at night and in rolling seas &#8212; is a cakewalk for DevGru SEALs.</p>
<p>&#8220;These guys can put three rounds onto the head of a quarter at that range,&#8221; Allen told me.</p>
<p>&#8230;A multi-thousand ton destroyer is a pretty stable platform in any but the most tumultuous sea states and makes dialing in a shot on an admittedly tossing life raft more doable &#8212; a smart platform for the Team to operate from. &#8230;</p></blockquote>
<p>I think the American public doesn&#8217;t fully appreciate the talent of these teams. Props to SEAL Team VI!</p>
]]></content:encoded>
			<wfw:commentRss>http://tdistler.com/2009/04/15/snipers-vs-somali-pirates/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>The &#8220;Analogy&#8221; Screensaver</title>
		<link>http://tdistler.com/2009/04/09/the-analogy-screensaver</link>
		<comments>http://tdistler.com/2009/04/09/the-analogy-screensaver#comments</comments>
		<pubDate>Thu, 09 Apr 2009 18:14:45 +0000</pubDate>
		<dc:creator>Tom</dc:creator>
				<category><![CDATA[Oh So Random]]></category>
		<category><![CDATA[Tech and Security]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://tdistler.com/?p=176</guid>
		<description><![CDATA[I&#8217;ve been jealous of Rob&#8217;s screensaver for awhile now. I thought it was Mac only until I asked him about it&#8230; nope. I installed the Windows version today. What a beautiful piece of art! The creator, Jesson Yip, describes it like this: Analogy is a typographic clock which fuses the immediacy of digital with the [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been jealous of <a href="http://rob.crabapples.net/" target="_blank">Rob&#8217;s</a> screensaver for awhile now. I thought it was Mac only until I asked him about it&#8230; nope. I installed the Windows version today. What a beautiful piece of art! The creator, <a href="http://www.jessonyip.com/analogy/" target="_blank">Jesson Yip</a>, describes it like this:</p>
<blockquote><p>Analogy is a typographic clock which fuses the immediacy of digital with the visual-spatial quality of analogue into a hybrid format. It presents an everyday object with a fresh twist.</p></blockquote>
<p>Click on the image below to visit his site and download it. Enjoy!</p>
<p style="text-align: center;"><a href="http://www.jessonyip.com/analogy/" target="_blank"><img src="/media/images/analogy_screensaver.jpg" alt="Analogy Screensaver" width="400" height="400" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://tdistler.com/2009/04/09/the-analogy-screensaver/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Image: Powered By GNU/Linux</title>
		<link>http://tdistler.com/2008/11/14/image-powered-by-gnulinux</link>
		<comments>http://tdistler.com/2008/11/14/image-powered-by-gnulinux#comments</comments>
		<pubDate>Fri, 14 Nov 2008 19:46:17 +0000</pubDate>
		<dc:creator>Tom</dc:creator>
				<category><![CDATA[Code Monkey]]></category>
		<category><![CDATA[Oh So Random]]></category>
		<category><![CDATA[Tech and Security]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://tdistler.com/?p=147</guid>
		<description><![CDATA[I saw a Linux logo I liked on Google Images a while back, but all instances of it have been removed. I got tired of searching, so last night I hacked around in Photoshop and recreated it. 500 x 750 JPEG 500 x 750 PNG]]></description>
			<content:encoded><![CDATA[<p>I saw a Linux logo I liked on Google Images a while back, but all instances of it have been removed. I got tired of searching, so last night I hacked around in Photoshop and recreated it.</p>
<p style="text-align: center;"><img style="vertical-align: middle;" src="/media/images/PoweredByGNULinuxSmall.jpg" alt="Powered By GNU/Linux thumbnail" /></p>
<ul>
<li><a title="Powered By GNU/Linux JPEG" href="/media/images/PoweredByGNULinux.jpg" target="_blank">500 x 750 JPEG</a></li>
<li><a title="Powered By GNU/Linux PNG" href="/media/images/PoweredByGNULinux.png" target="_blank">500 x 750 PNG</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://tdistler.com/2008/11/14/image-powered-by-gnulinux/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Enabling X Server Remote Connections on Fedora 9</title>
		<link>http://tdistler.com/2008/11/11/enabling-x-server-remote-connections-on-fedora-9</link>
		<comments>http://tdistler.com/2008/11/11/enabling-x-server-remote-connections-on-fedora-9#comments</comments>
		<pubDate>Tue, 11 Nov 2008 21:38:26 +0000</pubDate>
		<dc:creator>Tom</dc:creator>
				<category><![CDATA[Code Monkey]]></category>
		<category><![CDATA[Tech and Security]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://tdistler.com/?p=145</guid>
		<description><![CDATA[Recently, I was trying to run a GUI front-end to Valgrind (Valkyrie) from within a chroot&#8217;d environment on Fedora 9. It failed to run, and after some searching I figured out the problem. Here&#8217;s the story. First, I made sure to disable access control from outside the chroot (warning: make sure you understand the security [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright" style="float: right;" src="/media/images/Fedora_Logo.gif" alt="Fedora Logo" />Recently, I was trying to run a GUI front-end to <a title="Valgrind" href="http://valgrind.org/" target="_blank">Valgrind</a> (<a title="Valkyrie" href="http://www.open-works.net/projects/valkyrie.html" target="_blank">Valkyrie</a>) from within a chroot&#8217;d environment on <a title="Fedora" href="http://fedoraproject.org/" target="_blank">Fedora</a> 9. It failed to run, and after some searching I figured out the problem. Here&#8217;s the story.</p>
<p>First, I made sure to disable access control from outside the chroot (warning: make sure you understand the security implications of this!):</p>
<p class="codeblock">[dev]$ xhost + localhost<br />
localhost being added to access control list</p>
<p>Next, I entered the chroot&#8217;d environment and attempted to run the application, but it failed with the following error:</p>
<p class="codeblock">[chroot]$ valkyrie<br />
valkyrie: cannot connect to X server 127.0.0.1:0.0</p>
<p>The problem is that the X server is configured by default NOT to listen for remote connections (usually on port 6000). I verified that this was the problem by leaving the chroot and trying to connect via telnet:</p>
<p class="codeblock">[dev]$ telnet 127.0.0.1 6000<br />
Trying 127.0.0.1&#8230;<br />
telnet: connect to address 127.0.0.1: Connection refused</p>
<p>The way to fix this on previous Fedora installations was to use gdmsetup. However, this is no longer available. Hunting through the KDE config files I found the solution: change the arguments passed to the X server after login in the kdmrc file. </p>
<p><b>NOTE</b>: I&#8217;m using <a title="fluxbox" href="http://fluxbox.org/" target="_blank">fluxbox</a> as my desktop environment&#8230; KDE is used for the Fedora login screen, which is why we are messing with its config files.</p>
<p class="codeblock">[dev]$ sudo su<br />
[root]# cd /etc/kde/kdm<br />
[root]# cp kdmrc kdmrc.old<br />
[root]# vi kdmrc</p>
<p>On my system, the problem was this line:</p>
<p class="codeblock">ServerArgsLocal=-br -nolisten tcp</p>
<p>I simply changed it to:</p>
<p class="codeblock">ServerArgLocal=-br</p>
<p>I restarted my X server and tried to connect with telnet again (this time with success):</p>
<p class="codeblock">[dev]$ telnet 127.0.0.1 6000<br />
Trying 127.0.0.1&#8230;<br />
Connected to 127.0.0.1.<br />
Escape character is &#8216;^]&#8217;.</p>
<p>Then, I once again disabled X access control (`xhost + localhost`) and everything worked fine. Hope this helps!</p>
<p><b>EDITED 11/17/2008:</b> Changed &#8216;xhost +&#8217; to &#8216;xhost + localhost&#8217;</p>
]]></content:encoded>
			<wfw:commentRss>http://tdistler.com/2008/11/11/enabling-x-server-remote-connections-on-fedora-9/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Windows 7 Development Guide</title>
		<link>http://tdistler.com/2008/11/04/windows-7-development-guide</link>
		<comments>http://tdistler.com/2008/11/04/windows-7-development-guide#comments</comments>
		<pubDate>Tue, 04 Nov 2008 18:39:40 +0000</pubDate>
		<dc:creator>Tom</dc:creator>
				<category><![CDATA[Code Monkey]]></category>
		<category><![CDATA[Tech and Security]]></category>
		<category><![CDATA[DirectX]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://tdistler.com/?p=144</guid>
		<description><![CDATA[Microsoft has started to release developer information for Windows 7 (the follow-on to Windows Vista). Of particular interest to me is the Windows 7 Developer Guide. It discusses many of the new features that will be available when this new version of Windows is released. Of particular interest to me are the changes to DirectX [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright" style="float: right;" src="/media/images/windows-7-construction.jpg" alt="Windows 7: Under Construction" />Microsoft has started to release developer information for Windows 7 (the follow-on to Windows Vista). Of particular interest to me is the <a title="MSDN: Windows 7 Developer Guide" href="http://code.msdn.microsoft.com/Win7DeveloperGuide" target="_blank">Windows 7 Developer Guide</a>. It discusses many of the new features that will be available when this new version of Windows is released.</p>
<p>Of particular interest to me are the changes to DirectX 10, Media Foundation, and the new DirectX 11. Here are some highlights.</p>
<p>DirectX 11:</p>
<ul>
<li>&#8220;&#8230;resource creation and management has been optimized for multithreaded use, enabling more efficient dynamic texture management for streaming.&#8221;</li>
<li>Several improvements have been made to the high-level shading language (HLSL), such as a limited form of dynamic linkage in shaders to improve specialization complexity, and object-oriented programming constructs like classes and interfaces.&#8221;</li>
</ul>
<p>DirectX 10 improvements:</p>
<ul>
<li>&#8220;The pipeline also introduces the geometry shader stage, which offloads work entirely from the CPU to the GPU. This new stage enables you to create geometry, stream the data to memory, and render the geometry with no CPU interaction.&#8221;</li>
<li>Predicated rendering performs occlusion culling to reduce the amount of geometry that is rendered. Instancing APIs can dramatically reduce the amount of geometry that needs to be transferred to the GPU by drawing multiple-instances of similar objects. Texture arrays enable the GPU to do texture swapping without CPU intervention.&#8221;</li>
</ul>
<p>Media Foundation improvements:</p>
<ul>
<li>&#8220;&#8230;Media Foundation has been enhanced to provide better format support, including MPEG-4, as well as support for video capture devices and hardware codecs.&#8221;</li>
<li>&#8220;In Windows 7, Media Foundation provides extensive format support that includes codecs for H.264 video, MJPEG, and MP3; new sources for MP4, 3GP, MPEG2-TS, and AVI; and new file sinks for MP4, 3GP, and MP3.&#8221;</li>
<li>&#8220;In Windows Vista, Media Foundation exposed a relatively low-level set of APIs. These APIs are flexible, but may not be appropriate for performing tasks. Windows 7 adds new high-level APIs that make it simpler to write media applications in C++.&#8221;</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://tdistler.com/2008/11/04/windows-7-development-guide/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>ASCII Video Rendering</title>
		<link>http://tdistler.com/2008/10/03/ascii-video-rendering</link>
		<comments>http://tdistler.com/2008/10/03/ascii-video-rendering#comments</comments>
		<pubDate>Sat, 04 Oct 2008 00:32:44 +0000</pubDate>
		<dc:creator>Tom</dc:creator>
				<category><![CDATA[Oh So Random]]></category>
		<category><![CDATA[Tech and Security]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://tdistler.com/?p=140</guid>
		<description><![CDATA[So, we&#8217;ve been developing a slick cross-platform media framework to standardize or products on (proprietry, of course), and I couldn&#8217;t resist building an ASCII text renderer. It was surprisingly easy using our SDK and a free library called libcaca&#8230; seriously, that&#8217;s it&#8217;s name. It looks okay small, but of course it breaks down as you [...]]]></description>
			<content:encoded><![CDATA[<p>So, we&#8217;ve been developing a slick cross-platform media framework to standardize or products on (proprietry, of course), and I couldn&#8217;t resist building an ASCII text renderer. It was surprisingly easy using our SDK and a free library called <a title="Caca Labs: libcaca" href="http://caca.zoy.org/wiki/libcaca" target="_blank">libcaca</a>&#8230; seriously, that&#8217;s it&#8217;s name. It looks okay small, but of course it breaks down as you scale up. Anyways, now we can watch video using xterm via ssh&#8230; use case? Who cares!&#8230; it&#8217;s ASCII video <img src='http://tdistler.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p style="text-align: center;"><img src="/media/images/PelcoReferenceRendererSmall.jpg" alt="Pelco Reference Renderer - Small" width="100" height="75" /> <img src="/media/images/PelcoASCIIRendererSmall.jpg" alt="Pelco ASCII Renderer - Small" width="100" height="84" /></p>
<p style="text-align: left;">Okay, now the large size (video source: D1 MPEG-4 30 fps):</p>
<p style="text-align: center;"><img src="/media/images/PelcoReferenceRenderer.jpg" alt="Pelco Reference Renderer" width="500" height="374" /></p>
<p style="text-align: center;"><img src="/media/images/PelcoASCIIRenderer.jpg" alt="Pelco ASCII Renderer" width="500" height="421" /></p>
]]></content:encoded>
			<wfw:commentRss>http://tdistler.com/2008/10/03/ascii-video-rendering/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Clark&#8217;s Three Laws and Other Great Quotes</title>
		<link>http://tdistler.com/2008/09/03/clarks-three-laws-and-other-great-quotes</link>
		<comments>http://tdistler.com/2008/09/03/clarks-three-laws-and-other-great-quotes#comments</comments>
		<pubDate>Wed, 03 Sep 2008 19:35:41 +0000</pubDate>
		<dc:creator>Tom</dc:creator>
				<category><![CDATA[Oh So Random]]></category>
		<category><![CDATA[Tech and Security]]></category>
		<category><![CDATA[NASA]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://tdistler.com/?p=134</guid>
		<description><![CDATA[I recently ran across a few quotes that I feel worth mentioning here. The first 3 relate to technology, and are noteworthy. The remaining ones deal with stupidity. They may seen overly negative to some, but they are intended to be read with an bit of humor. Arthur C. Clark&#8217;s three &#8220;laws&#8221; of prediction: When [...]]]></description>
			<content:encoded><![CDATA[<p>I recently ran across a few quotes that I feel worth mentioning here. The first 3 relate to technology, and are noteworthy. The remaining ones deal with stupidity. They may seen overly negative to some, but they are intended to be read with an bit of humor.</p>
<p>Arthur C. Clark&#8217;s three &#8220;laws&#8221; of prediction:</p>
<blockquote>
<ol>
<li>When a distinguished but elderly scientist states that something is  possible, he is almost certainly right. When he states that something is  impossible, he is very probably wrong.</li>
<li>The only way of discovering the limits of the possible is to venture a  little way past them into the impossible.</li>
<li>Any sufficiently advanced technology is indistinguishable from magic.</li>
</ol>
</blockquote>
<p>The 3rd law was rephrased by NASA&#8217;s J. Porter Clark into one of my favorite quotes:</p>
<blockquote><p>&#8220;Sufficiently advanced incompetence is indistinguishable from malice.&#8221;</p></blockquote>
<p>A corollary to this is called Hanlon&#8217;s razor:</p>
<blockquote><p>&#8220;Never attribute to malice that which can be adequately explained by stupidity.&#8221;</p></blockquote>
<p>And while I&#8217;m on the subject, here&#8217;s a great quote from Albert Einstein:</p>
<blockquote><p>&#8220;Only two things are infinite, the universe and human stupidity, and I&#8217;m not sure about the universe.&#8221;</p></blockquote>
<p>Finally, German General Kurt von Hammerstein-Equord (what a name) shared these observations about the risks of human stupidity:</p>
<blockquote><p>&#8220;I divide my officers into four classes; the clever, the lazy, the industrious,  and the stupid. Each officer possesses at least two of these qualities. Those  who are clever and industrious are fitted for the highest staff appointments.  Use can be made of those who are stupid and lazy. The man who is clever and lazy  however is for the very highest command; he has the temperament and nerves to  deal with all situations. But whoever is stupid and industrious is a menace and  must be removed immediately!&#8221;</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://tdistler.com/2008/09/03/clarks-three-laws-and-other-great-quotes/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Microsoft&#8217;s Midori OS</title>
		<link>http://tdistler.com/2008/07/30/microsofts-midori-os</link>
		<comments>http://tdistler.com/2008/07/30/microsofts-midori-os#comments</comments>
		<pubDate>Wed, 30 Jul 2008 16:49:33 +0000</pubDate>
		<dc:creator>Tom</dc:creator>
				<category><![CDATA[Tech and Security]]></category>
		<category><![CDATA[architecture]]></category>
		<category><![CDATA[kernel]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://tdistler.com/?p=128</guid>
		<description><![CDATA[The SDTimes has an article up about a new operating system Microsoft is working on called &#8220;Midori&#8221;. It is based on their &#8220;Singularity&#8221; OS, with everything being written in managed code then natively compiled.  Rumor has it that this is the follow-on to the Windows platform&#8230; we&#8217;ll see if it ever materializes commercially. SDTimes bases [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright" style="float: right;" src="/media/images/MicrosoftLogo.jpg" alt="Microsoft" width="150" height="41" />The <a title="SDTimes" href="http://www.sdtimes.com" target="_blank">SDTimes</a> has an <a title="SDTimes: Microsoft's plans for post-Windows OS revealed" href="http://www.sdtimes.com/MICROSOFT_S_PLANS_FOR_POST_WINDOWS_OS_REVEALED/About_CLOUDCOMPUTING_and_MOBILEDEVELOPMENT_and_NET_and_SOASAAS_and_SOFTWAREDEVELOPMENT_and_WINDOWS_and_MICROSOFT/32627" target="_blank">article</a> up about a new operating system Microsoft is working on called &#8220;Midori&#8221;. It is based on their &#8220;<a title="Microsoft Research: Singularity" href="http://research.microsoft.com/os/Singularity/" target="_blank">Singularity</a>&#8221; OS, with everything being written in managed code then natively compiled.  Rumor has it that this is the follow-on to the Windows platform&#8230; we&#8217;ll see if it ever materializes commercially. SDTimes bases the article on some internal documents they got access to, which may be why we haven&#8217;t seen this level of detail before (<a title="Wikipedia: Midori Operating System" href="http://en.wikipedia.org/wiki/Midori_(operating_system)" target="_blank">see the entry in Wikipedia</a>). From the article:</p>
<blockquote><p>According to the documentation, Midori will be built with an asynchronous-only  architecture that is built for task concurrency and parallel use of local and  distributed resources, with a distributed component-based and data-driven  application model, and dynamic management of power and other resources.</p></blockquote>
<blockquote><p>The Midori documents foresee applications running across a multitude of  topologies, ranging from client-server and multi-tier deployments to  peer-to-peer at the edge, and in the cloud data center. Those topologies form a  heterogeneous mesh where capabilities can exist at separate places.</p>
<p>In  order to efficiently distribute applications across nodes, Midori will introduce  a higher-level application model that abstracts the details of physical machines  and processors. The model will be consistent for both the distributed and local  concurrency layers, and it is internally known as Asynchronous Promise  Architecture.</p></blockquote>
<blockquote><p>&#8230;operating system services, such as storage, would either be provided to the  applications by the OS or be discovered across a trusted distributed  environment.</p></blockquote>
<p><span id="more-128"></span>The programming model and API are also changing to help developers develop in the new model (goodbye Win32):</p>
<blockquote><p>The Midori documents indicate that the proposed OS would have a non-blocking  object-oriented framework API. This would have strong notions of immutability—in  the sense of objects that cannot be modified once created—and strive to foster  application correctness through deep verifiability by using .NET programming  languages.</p></blockquote>
<blockquote><p>The Midori programming model will tackle state management, which Microsoft  admits in its documentation is a challenge in Windows, by migrating APIs,  applications and developers to a constrained model.</p>
<p>Other objectives are  eliminating dynamic loading and in-process extensions; developing a failure  model based on reliable transactions, so the system understands exactly which  processes are impacted by a cascading failure and how to restart the  computation; and having a standard way of dealing with latency, asynchronous  behavior and cancellation, throughout the stack.</p></blockquote>
<p>To provide better modularity (and to support mobile devices), Midori will be a micro-kernel:</p>
<blockquote><p>Unlike Windows, Microsoft intends for Midori to be componentized from the  beginning to achieve performance and security benefits. It will have strong  isolation boundaries and enforced contracts between components, to ensure that  servicing one component will not cause others to fail, while keeping overhead  minimal.</p>
<p>At its lowest level, Midori has two separate kernel layers: a  microkernel comprised of unmanaged code that controls hardware and environment  abstracts, and higher-level managed kernel services that provide the full set of  operating system functionality.</p></blockquote>
<p>There are a lot more gems in the article&#8230; definitely worth a read. Click <a title="SDTimes: Microsoft's plans for post-Windows OS revealed" href="http://www.sdtimes.com/MICROSOFT_S_PLANS_FOR_POST_WINDOWS_OS_REVEALED/About_CLOUDCOMPUTING_and_MOBILEDEVELOPMENT_and_NET_and_SOASAAS_and_SOFTWAREDEVELOPMENT_and_WINDOWS_and_MICROSOFT/32627" target="_blank">HERE</a> to read it.</p>
]]></content:encoded>
			<wfw:commentRss>http://tdistler.com/2008/07/30/microsofts-midori-os/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>YouTube&#8217;s Architecture and Scalability</title>
		<link>http://tdistler.com/2008/07/23/youtubes-architecture-and-scalability</link>
		<comments>http://tdistler.com/2008/07/23/youtubes-architecture-and-scalability#comments</comments>
		<pubDate>Wed, 23 Jul 2008 14:36:54 +0000</pubDate>
		<dc:creator>Tom</dc:creator>
				<category><![CDATA[Tech and Security]]></category>
		<category><![CDATA[architecture]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://tdistler.com/?p=127</guid>
		<description><![CDATA[High Scalability has a great link to a video TechTalk with Cuong Do, YouTube&#8217;s engineering manager. He talks about the challenges YouTube faces (past and present) to meet it&#8217;s skyrocketing user demand, as well as the infrastructure that allows them to scale. I enjoyed the anecdotes: especially the frantic email sent at 2am alerting the [...]]]></description>
			<content:encoded><![CDATA[<p><a title="High Scalability" href="http://highscalability.com" target="_blank">High Scalability</a> has a great link to a video <a title="YouTube: Google Tech Talks" href="http://youtube.com/user/googletechtalks" target="_blank">TechTalk</a> with Cuong Do, <a title="YouTube" href="http://youtube.com/" target="_blank">YouTube&#8217;s</a> engineering manager. He talks about the challenges YouTube faces (past and present) to meet it&#8217;s skyrocketing user demand, as well as the infrastructure that allows them to scale. I enjoyed the anecdotes: especially the frantic email sent at 2am alerting the dev team that they only had 3 days of storage left&#8230; I always thought Google/YouTube would be immune to emergencies like that&#8230; ignorance on my part <img src='http://tdistler.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  </p>
<p style="text-align: center;"><object type="application/x-shockwave-flash" data="http://www.youtube.com/v/ZW5_eEKEC28&amp;hl=en" width="425" height="355"><param name="movie" value="http://www.youtube.com/v/ZW5_eEKEC28&amp;hl=en" /><param name="FlashVars" value="playerMode=embedded" /><param name="wmode" value="transparent" /></object></p>
<p style="text-align: center;">(requires <a href="http://www.adobe.com/products/flashplayer/" target="_blank">Adobe Flash</a> plugin&#8230; click <a href="http://www.youtube.com/watch?v=ZW5_eEKEC28" target="_blank">HERE</a> to watch it on YouTube)</p>
<p>I found this information interesting:</p>
<ul>
<li>The application code is written mostly in <a title="Python" href="http://www.python.org/" target="_blank">Python</a> (the web app is not the bottleneck&#8230; the database RPC is)</li>
<li>They use <a title="Apache Webserver" href="http://httpd.apache.org/" target="_blank">Apache</a> for page content and <a title="lighttpd Webserver" href="http://www.lighttpd.net/" target="_blank">lighttpd</a> for serving video</li>
<li>Thumbnails are now served by <a title="Wikipedia: Google BitTable" href="http://en.wikipedia.org/wiki/BigTable" target="_blank">Google&#8217;s BigTable</a></li>
<li>They&#8217;re running <a title="SuSE Linux" href="http://www.novell.com/linux/" target="_blank">SuSE</a> Linux with <a title="MySQL" href="http://www.mysql.com/" target="_blank">MySQL</a></li>
<li>HW <a title="Wikipedia: RAID" href="http://en.wikipedia.org/wiki/Redundant_array_of_independent_disks" target="_blank">RAID</a>-10 across multiple disks was too slow. HW RAID-1 with SW RAID-0 was faster because the Linux I/O scheduler could see the multiple volumes and would therefore schedule more I/O</li>
</ul>
<p>You can read a good summary of the talk <a title="High Scalability: YouTube Architecture" href="http://highscalability.com/youtube-architecture" target="_blank">HERE</a> from the High Scalability website.</p>
<p><a title="Tech Crunch: YouTube: The Platform" href="http://www.techcrunch.com/2008/03/12/youtube-the-platform/" target="_blank">TechCruch</a> has a good article of the <a title="YouTube" href="http://youtube.com/" target="_blank">YouTube</a> API.</p>
]]></content:encoded>
			<wfw:commentRss>http://tdistler.com/2008/07/23/youtubes-architecture-and-scalability/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Interview with Mastercard&#8217;s Rob Reeg</title>
		<link>http://tdistler.com/2008/07/20/interview-with-mastercards-rob-reeg</link>
		<comments>http://tdistler.com/2008/07/20/interview-with-mastercards-rob-reeg#comments</comments>
		<pubDate>Sun, 20 Jul 2008 22:10:52 +0000</pubDate>
		<dc:creator>Tom</dc:creator>
				<category><![CDATA[Tech and Security]]></category>
		<category><![CDATA[architecture]]></category>
		<category><![CDATA[network]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://tdistler.com/?p=125</guid>
		<description><![CDATA[CIO has a good interview with Rob Reeg, president of Mastercard&#8217;s Global Technology and Operations. He discusses their infrastructure and processing architecture. Definitely worth looking at if you&#8217;re interested in how credit card transactions are processed. Interviewer: How big of an infrastructure do you have to support and maintain? It must be huge. Reeg: Actually [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright" style="float: right;" src="/media/images/MastercardLogo.jpg" alt="Mastercard Logo" width="136" height="84" /><a title="CIO" href="http://www.cio.com" target="_blank">CIO</a> has a good interview with Rob Reeg, president of Mastercard&#8217;s Global Technology and Operations. He discusses their infrastructure and processing architecture. Definitely worth looking at if you&#8217;re interested in how credit card transactions are processed.</p>
<blockquote><p><strong>Interviewer:</strong> How big of an infrastructure do you have to support and maintain? It  must be huge.</p>
<p><strong>Reeg:</strong> Actually from a pure server footprint standpoint&#8230; we probably have fewer actual footprint servers because of  techniques like virtualization that help us leverage one box to do multiple  things.</p>
<p>Where it gets interesting is philosophically: We try to put [transaction]  processing as close to our customers, the banks, as possible. When we talk about  the global network, we have small servers that sit with the bank customers that  connect to our network. What it does is it gives us intelligence there at the  end of the network. So as a transaction comes through, we can take a look at  that transaction and decide how do we best process that transaction for the  benefit of all those four parties in the model.</p>
<p>As to processing, the majority of transactions we&#8217;re looking at relate to how  do we process them as fast as possible in the most accurate way. The way to do  that is by peer to peer: If you&#8217;re using your card in Europe, in London, say,  and you swipe your card as you check out of hotel, we can route that transaction  to the hotel&#8217;s acquiring bank in London directly to your issuing bank and get  that message back for approval without ever going through St. Louis or some big  data center in the middle of all that.</p></blockquote>
<p>You can read the full article <a title="CIO: The Man Behind Mastercard's 100 Terabyte Data Warehouse" href="http://www.cio.com/article/438138/The_Man_Behind_MasterCard_s_Terabyte_Data_Warehouse" target="_blank">HERE</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://tdistler.com/2008/07/20/interview-with-mastercards-rob-reeg/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>San Francisco city officials locked out of computer network</title>
		<link>http://tdistler.com/2008/07/15/san-francisco-city-officials-locked-out-of-computer-network</link>
		<comments>http://tdistler.com/2008/07/15/san-francisco-city-officials-locked-out-of-computer-network#comments</comments>
		<pubDate>Tue, 15 Jul 2008 15:49:32 +0000</pubDate>
		<dc:creator>Tom</dc:creator>
				<category><![CDATA[Tech and Security]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://tdistler.com/?p=115</guid>
		<description><![CDATA[Update 7/22/2008: The issue may be more complex than it first looks (of course, the media always over-simplifies things). Click HERE to read an insider&#8217;s account of the situation. &#8212; Okay, THIS is funny because of the glaring security mistakes made by San Francisco&#8217;s Department of Technology (or Department of Ignorance, after this one). From [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright" style="float: right;" src="/media/images/SFLocked.jpg" alt="San Francisco: Locked" width="143" height="107" /><strong>Update 7/22/2008:</strong> The issue may be more complex than it first looks (of course, the media always over-simplifies things). Click <a title="CIO: Why San Francisco's Network Admin Went Rogue" href="http://www.cio.com/article/438636/Why_San_Francisco_s_Network_Admin_Went_Rogue_" target="_blank">HERE</a> to read an insider&#8217;s account of the situation.</p>
<p>&#8212;</p>
<p>Okay, <a title="New York Times: SF officials locked out of computer network" href="http://www.sfgate.com/cgi-bin/article.cgi?f=/c/a/2008/07/14/BAOS11P1M5.DTL" target="_blank">THIS</a> is funny because of the glaring security mistakes made by San Francisco&#8217;s Department of Technology (or Department of Ignorance, after this one). From the New York Times:</p>
<blockquote><p>A disgruntled city computer engineer has virtually commandeered San Francisco&#8217;s  new multimillion-dollar computer network, altering it to deny access to top  administrators even as he sits in jail&#8230;</p></blockquote>
<blockquote><p>Prosecutors say Childs, who works in the Department of Technology&#8230; tampered with the city&#8217;s new FiberWAN (Wide Area  Network), where records such as officials&#8217; e-mails, city payroll files,  confidential law enforcement documents and jail inmates&#8217; bookings are stored.</p></blockquote>
<blockquote><p>Officials also said they feared that although Childs is in jail, he may have  enabled a third party to access the system by telephone or other electronic  device and order the destruction of hundreds of thousands of sensitive  documents.</p></blockquote>
<p>This is like security 101&#8230; you never give this much power to any single person. On critical systems like this, you always have check-and-balances, outside security code reviews, and strict audits. The S.F. DoT was basically driving around without insurance and got in an accident&#8230; I don&#8217;t feel sorry for them. It&#8217;s really sad how ignorant the world is about security (sigh).</p>
]]></content:encoded>
			<wfw:commentRss>http://tdistler.com/2008/07/15/san-francisco-city-officials-locked-out-of-computer-network/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

