<?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; video</title>
	<atom:link href="http://tdistler.com/tag/video/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>Live555: Compiling with VS2008</title>
		<link>http://tdistler.com/2011/05/14/live555-compiling-with-vs2008</link>
		<comments>http://tdistler.com/2011/05/14/live555-compiling-with-vs2008#comments</comments>
		<pubDate>Sat, 14 May 2011 18:30:49 +0000</pubDate>
		<dc:creator>Tom</dc:creator>
				<category><![CDATA[Code Monkey]]></category>
		<category><![CDATA[live555]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[video]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://tdistler.com/?p=959</guid>
		<description><![CDATA[4 easy steps to compile Live555 using VS2008. Fixes link error: LNK1181: cannot open input file 'msvcirt.lib'.]]></description>
			<content:encoded><![CDATA[<p><a href="http://tdistler.com/wp-content/uploads/2011/02/network.jpg"><img class="alignright size-thumbnail wp-image-795" title="network" src="http://tdistler.com/wp-content/uploads/2011/02/network-150x150.jpg" alt="" width="100" height="100" /></a>Compiling <a title="Live555 Streaming Media" href="http://www.live555.com/liveMedia/" target="_blank">Live555 Streaming Media</a> with Visual Studio 2008 isn&#8217;t obvious. Using Cygwin or MinGW is just a pain and frankly unnecessary. There is no built-in support for VS solution files, because Windows support is a low priority for the Live555 community. This is evidenced by <a title="Live555 Forum" href="http://lists.live555.com/pipermail/live-devel/2008-January/008022.html" target="_blank">this forum response</a> from Ross Finlayson:</p>
<blockquote><p><em>&gt;4.  Is it possible to include a Visual Studio solution in the</em><br />
<em> &gt;distrubution to make it more convenient for Windows developers to</em><br />
<em> &gt;use live555?</em><br />
<em> &gt;5.  Is it possible for live555 to generate adequate makefiles for</em><br />
<em> &gt;Windows systems with development environments newer than Visual</em><br />
<em> &gt;Studio 2003?</em></p>
<p><strong>I have no current plans to change this.  (These days, fewer and fewer</strong> <strong>people seem to be using Windows for development of system software.)</strong></p></blockquote>
<p>Regardless, Live555 works fine on Windows and is actually quite easy to build. Simply do the following:</p>
<ol>
<li>Open the &#8216;win32config&#8217; file and change the <code>TOOLS32=... </code>variable to your VS2008 install directory. For me, it&#8217;s <code>TOOLS32=C:\Program Files\Microsoft Visual Studio 9.0\VC</code></li>
<li>In &#8216;win32config&#8217;, modify the <code>LINK_OPTS_0=...</code> line from <code>msvcirt.lib</code> to <code>msvcrt.lib</code>. This fixes the link error:<br />
<code>LINK : fatal error LNK1181: cannot open input file 'msvcirt.lib'</code></li>
<li>Open the Visual Studio command prompt.</li>
<li>From the &#8216;live&#8217; source directory, run <code>genWindowsMakefiles</code></li>
<li>Now you&#8217;re ready to build. Simply run the following commands:
<pre><code>cd liveMedia
nmake /B -f liveMedia.mak
cd ..\groupsock
nmake /B -f groupsock.mak
cd ..\UsageEnvironment
nmake /B -f UsageEnvironment.mak
cd ..\BasicUsageEnvironment
nmake /B -f BasicUsageEnvironment.mak
cd ..\testProgs
nmake /B -f testProgs.mak
cd ..\mediaServer
nmake /B -f mediaServer.mak</code></pre>
</li>
</ol>
<p>That&#8217;s it. You should be good to go.</p>
]]></content:encoded>
			<wfw:commentRss>http://tdistler.com/2011/05/14/live555-compiling-with-vs2008/feed</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Rendering Video with GDI (Example)</title>
		<link>http://tdistler.com/2011/04/20/rendering-video-with-gdi-example</link>
		<comments>http://tdistler.com/2011/04/20/rendering-video-with-gdi-example#comments</comments>
		<pubDate>Wed, 20 Apr 2011 18:04:25 +0000</pubDate>
		<dc:creator>Tom</dc:creator>
				<category><![CDATA[Code Monkey]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[video]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://tdistler.com/?p=932</guid>
		<description><![CDATA[Example C++ GDI video window class with text overlay.]]></description>
			<content:encoded><![CDATA[<p><a href="http://tdistler.com/wp-content/uploads/2011/04/video-icon.jpg"><img class="alignright size-thumbnail wp-image-948" title="video-icon" src="http://tdistler.com/wp-content/uploads/2011/04/video-icon-150x150.jpg" alt="" width="150" height="150" /></a>In this post, I outline a basic GDI video window class. GDI is inefficient for rendering video, but it&#8217;s also very convinient when writing simple tools on Windows. I find myself doing it often enough that it makes sense to do a brain-dump here. This is only an outline, but it should get you over the biggest hurdles.</p>
<h4>Outline</h4>
<ol>
<li>Video Window Class Definition</li>
<li>Creating and Destroying the Window</li>
<li>The Window Thread</li>
<li>The Message Pump</li>
<li>Rendering a Video Frame</li>
</ol>
<p>Things to note:</p>
<ul>
<li>You will need a thread in your window class to &#8220;pump&#8221; window events.</li>
<li>GDI does NOT do any color conversion, so you will need to convert each frame into the same format as the display (always RGB, usually 24 or 32 bits).</li>
</ul>
<h4>Video Window Class Definition</h4>
<pre><code>class VideoWindow
{
public:
    ...
private:
    static DWORD _ThreadMain(void*);
    static LRESULT WINAPI _MsgProc(HWND, UINT, WPARAM, LPARAM);

    CRITICAL_SECTION _lok;
    HANDLE _thread;
    HWND _hWnd;
    HDC _hDC;
    HDC _hFrameDC;
    HFONT _hFont;
    int _bpp;   // bit depth
    volatile bool _exit;
    int _x, _y, _w, _h; // Window dimensions
    int _imgWidth, _imgHeight, _imgLength; // Frame dimensions
    unsigned char *_imgBits;
};

</code></pre>
<h4>Creating and Destroying the Window</h4>
<pre><code>void VideoWindow::Create(int x, int y, int w, int h)
{
    EnterCriticalSection(&amp;_lok);
    _x = x;
    _y = y;
    _w = w;
    _h = h;
    _hWnd = 0;
    _exit = false;
    _thread = CreateThread( NULL, NULL, (LPTHREAD_START_ROUTINE)_ThreadMain,
        this, NULL, 0 );
    LeaveCriticalSection(&amp;_lok);

    // Wait for window to be created. Cheap, but it works.
    while (!_hWnd) {
        ::Sleep(100);
    }
}
<span id="more-932"></span>
void VideoWindow::Destroy()
{
    // Safe to call from the destructor.

    EnterCriticalSection(&amp;_lok);
    if(_hWnd)
    {
        _exit = true;
        LeaveCriticalSection(&amp;_lok);
        WaitForSingleObject( _thread, INFINITE );
        CloseHandle(_thread);
        EnterCriticalSection(&amp;_lok);
        DestroyWindow(_hWnd);
        _hWnd = 0;
    }
    if (_hFont) ::DeleteObject(_hFont);
    if (_hFrameDC) ::DeleteDC(_hFrameDC);
    if (_hDC) ::DeleteDC(_hDC);
    LeaveCriticalSection(&amp;_lok);
}

</code></pre>
<h4>The Window Thread</h4>
<pre><code>DWORD VideoWindow::_ThreadMain(void* ctx)
{
    VideoWindow *p = (VideoWindow*)ctx;
    EnterCriticalSection(&amp;p-&gt;_lok);

    LPCSTR className = "VideoWndClass";
    LPCSTR windowName = "MyWindowText";
    WNDCLASSEX wcex = {
        sizeof(WNDCLASSEX),
        CS_OWNDC | CS_HREDRAW | CS_VREDRAW,
        _MsgProc,
        0L,
        0L,
        NULL,
        NULL,
        NULL,
        (HBRUSH)GetStockObject(BLACK_BRUSH),
        NULL,
        className,
        NULL
    };

    RegisterClassEx(&amp;wcex);   

    p-&gt;_hWnd = CreateWindow(className, windowName, WS_OVERLAPPEDWINDOW,
        p-&gt;_x, p-&gt;_y, p-&gt;_w, p-&gt;_h, ::GetDesktopWindow(), NULL, NULL, NULL);

    p-&gt;_hDC = ::GetDC(p-&gt;_hWnd);
    p-&gt;_bpp = ::GetDeviceCaps(p-&gt;_hDC, BITSPIXEL);
    p-&gt;_hFrameDC = ::CreateCompatibleDC(p-&gt;_hDC);

    p-&gt;_hFont = ::CreateFont(18, 0, 0, 0, FW_BOLD, FALSE, FALSE, FALSE,
        ANSI_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS,
        ANTIALIASED_QUALITY, DEFAULT_PITCH | FF_DONTCARE, "Arial");

    ShowWindow(p-&gt;_hWnd,SW_SHOW);
    UpdateWindow(p-&gt;_hWnd);

    while( !p-&gt;_exit )
    {
        MSG msg;
        if(PeekMessage(&amp;msg,p-&gt;_hWnd,0,0,PM_REMOVE))
        {
            TranslateMessage(&amp;msg);
            DispatchMessage(&amp;msg);
        }

        LeaveCriticalSection(&amp;p-&gt;_lok);
        Sleep(50); // A better way to do this is to use a message
        EnterCriticalSection(&amp;p-&gt;_lok);
    }
    LeaveCriticalSection(&amp;p-&gt;_lok);
    return 0;
}

</code></pre>
<h4>The Message Pump</h4>
<pre><code>LRESULT WINAPI VideoWindow::_MsgProc(HWND hWnd, UINT msg, WPARAM w, LPARAM l)
{
    if (msg == WM_PAINT &amp;&amp; l)
    {
        VideoWindow *p = (VideoWindow*)l;
        EnterCriticalSection(&amp;p-&gt;_lok);

        HGDIOBJ  oldFont  = ::SelectObject(p-&gt;_hDC, p-&gt;_hFont);
        COLORREF oldFtColor = ::SetTextColor(p-&gt;_hDC, RGB(255,255,255));
        COLORREF oldBkColor = ::SetBkColor(p-&gt;_hDC, RGB(64,64,64));

        // Render image
        //
        // NOTE: This assumes you've already coverted the image to the proper
        // RGB bit-depth (_bpp) and copied the data into _imageBits.
        //
        HBITMAP hBMP = ::CreateCompatibleBitmap(p-&gt;_hDC, p-&gt;_imgWidth,
            p-&gt;_imgHeight);
        ::SetBitmapBits(hBMP, p-&gt;_imgLength, p-&gt;_imgBits);
        HGDIOBJ oldBMP = ::SelectObject(p-&gt;_hFrameDC, hBMP);
        ::BitBlt(p-&gt;_hDC, 0, 0, p-&gt;_imgWidth, p-&gt;_imgHeight, p-&gt;_hFrameDC,
            0, 0, SRCCOPY);
        ::SelectObject(p-&gt;_hFrameDC, oldBMP);

        // Draw some text over the image
        RECT rect;
        ::SetRectEmpty(&amp;rect);
        ::DrawText(p-&gt;_hDC, p-&gt;_imageText, -1, &amp;rect, DT_CALCRECT);
        ::DrawText(p-&gt;_hDC, p-&gt;_imageText, -1, &amp;rect, DT_CENTER | DT_VCENTER);

        if (hBMP) ::DeleteObject(hBMP);

        LeaveCriticalSection(&amp;p-&gt;_lok);
    }
    return DefWindowProc(hWnd, msg, w, l);
}

</code></pre>
<p><strong>Rendering a Video Frame</strong></p>
<pre><code>
void VideoWindow::Render(const unsigned char* frame, int w, int h, int stride)
{
    // Convert frame to the proper RGB bit depth to match _bpp and copy it
    // into _imgBits buffer. Update _imgWidth, _imgHeight, and _imgLength as
    // necessary.

    ::PostMessage(_hWnd, WM_PAINT, 0, (LPARAM)this);
}

</code></pre>
]]></content:encoded>
			<wfw:commentRss>http://tdistler.com/2011/04/20/rendering-video-with-gdi-example/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>Audio Resampling Using FFMpeg (avcodec)</title>
		<link>http://tdistler.com/2010/07/22/audio-resampling-using-ffmpeg-avcodec</link>
		<comments>http://tdistler.com/2010/07/22/audio-resampling-using-ffmpeg-avcodec#comments</comments>
		<pubDate>Thu, 22 Jul 2010 19:01:38 +0000</pubDate>
		<dc:creator>Tom</dc:creator>
				<category><![CDATA[Code Monkey]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://tdistler.com/?p=427</guid>
		<description><![CDATA[FFMpeg provides many powerful features for processing audio and video. One cool thing it can do is resample an audio stream. This allows you to convert, say, a 44.1kHz audio stream down to 8kHz, or up to 48kHz. What&#8217;s more, FFMpeg can do the conversion to any arbitrary sample rate. This allows you to do [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://tdistler.com/wp-content/uploads/2010/07/ffmpeg_logo.jpg"><img class="alignright size-full wp-image-433" title="ffmpeg_logo" src="http://tdistler.com/wp-content/uploads/2010/07/ffmpeg_logo.jpg" alt="" width="150" height="37" /></a><a title="FFMpeg" href="http://www.ffmpeg.org/" target="_blank">FFMpeg</a> provides many powerful features for processing audio and video. One cool thing it can do is resample an audio stream. This allows you to convert, say, a 44.1kHz audio stream down to 8kHz, or up to 48kHz. What&#8217;s more, FFMpeg can do the conversion to any arbitrary sample rate. This allows you to do cool things like smoothly changing the audio playback speed over time (see sample code below).</p>
<p>There are many pages describing how to resample audio using the ffmpeg command line application, but what about doing resampling in your own program? To do that, you need to use the avcodec library (<code>libavcodec.so</code> on Linux and <code>avcodec.dll</code> on Windows).</p>
<ol>
<li>Include <code>avcodec.h</code></li>
<li>Call <code>avcodec_init()</code> to initialize the FFMpeg library.</li>
<li>Create a resampling context using <code>av_resample_init()</code> that describes how you want the resampling done.</li>
<li>Call <code>av_resample()</code> to do the actual resampling on your audio buffer.</li>
<li>When you&#8217;re done with the resampling context, delete it with <code>av_resample_close()</code>.</li>
<li>Finally, link your application against <code>avcodec</code>, <code>avutil</code>, and <code><a title="zlib Library" href="http://www.zlib.net/" target="_blank">zlib</a></code> (it won&#8217;t work on Linux without this one).</li>
</ol>
<p>Here it is in pseudocode:</p>
<blockquote><p><code>#include "libavcodec/avcodec.h"</code></p>
<p><code>avcodec_init();</code></p>
<p><code>struct AVResampleContext* ctx = av_resample_init( ... );</code></p>
<p><code>av_resample( ctx, ... );</code></p>
<p><code> </code></p>
<p><code>av_resample_close( ctx );</code></p></blockquote>
<p>That&#8217;s it&#8230; seriously!</p>
<p><strong>Sample Code (Linux):</strong></p>
<p>Here&#8217;s a sample program I wrote that takes a raw 44.1kHz/16bit/mono audio file and plays it back using the <a title="Pulse Audio" href="http://pulseaudio.org/" target="_blank">pulseaudio</a> API. The catch is that it allows you to specify a &#8220;skew&#8221; parameter which will cause the audio to dynamically speed up and slow down (via resampling). The amount of resampling is controlled by a sine wave, which is what drives the speed changes.</p>
<p>Download:<strong> </strong><a title="Resample tar ball" href="http://www.tdistler.com/media/code/resample.tar.bz" target="_blank"><strong>resample.tar.bz</strong></a></p>
<p>To unpack and build, type:</p>
<blockquote><p><code>$ tar -xjvf resample.tar.bz<br />
$ make</code></p></blockquote>
<p>First, run the sample with no skew:</p>
<blockquote><p><code>$ ./resample audio_16b_44k_mono_pcm_raw 0</code></p></blockquote>
<p>Now, try it with a heavy skew:</p>
<blockquote><p><code>$ ./resample audio_16b_44k_mono_pcm_raw -10000</code></p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://tdistler.com/2010/07/22/audio-resampling-using-ffmpeg-avcodec/feed</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Video Tearing, V-Sync, and Triple-Buffering</title>
		<link>http://tdistler.com/2010/07/18/video-tearing-v-sync-and-triple-buffering</link>
		<comments>http://tdistler.com/2010/07/18/video-tearing-v-sync-and-triple-buffering#comments</comments>
		<pubDate>Sun, 18 Jul 2010 20:45:26 +0000</pubDate>
		<dc:creator>Tom</dc:creator>
				<category><![CDATA[Code Monkey]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://tdistler.com/?p=416</guid>
		<description><![CDATA[When rendering graphics or video to the screen, it&#8217;s important to understand the display process; in particular, vertical sync (v-sync). A common problem when starting out is an issue called &#8220;tearing&#8221;&#8230; where the video appears to be torn horizontally down the middle (see picture). I&#8217;ve been looking for a good explanation to share about why [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://tdistler.com/wp-content/uploads/2010/07/v_sync.jpg"><img class="alignright size-full wp-image-419" title="v_sync" src="http://tdistler.com/wp-content/uploads/2010/07/v_sync.jpg" alt="" width="150" height="113" /></a>When rendering graphics or video to the screen, it&#8217;s important to understand the display process; in particular, vertical sync (v-sync). A common problem when starting out is an issue called &#8220;tearing&#8221;&#8230; where the video appears to be torn horizontally down the middle (see picture). I&#8217;ve been looking for a good explanation to share about why video tearing occurs and how to solve it (from a technical perspective). I found the following thread over at <a title="Hard Forum" href="http://hardforum.com" target="_blank">[H]ard|Forum</a>, which I think does a pretty good job.</p>
<p>For the thread &#8220;<a title="How VSync works, and why people loathe it" href="http://hardforum.com/showthread.php?s=9eb741eaa733ffb028c860e9805c04f5&amp;t=928593" target="_blank">How </a><a title="How VSync works, and why people loathe it" href="http://hardforum.com/showthread.php?s=9eb741eaa733ffb028c860e9805c04f5&amp;t=928593" target="_blank">VSync</a><a title="How VSync works, and why people loathe it" href="http://hardforum.com/showthread.php?s=9eb741eaa733ffb028c860e9805c04f5&amp;t=928593" target="_blank"> works, and why people loathe it</a>&#8220;:</p>
<blockquote><p>There is a technique called triple-buffering that solves this VSync problem. Lets go back to our 50FPS, 75Hz example. Frame 1 is in the frame buffer, and 2/3 of frame 2 are drawn in the back buffer. The refresh happens and frame 1 is grabbed for the first time. The last third of frame 2 are drawn in the back buffer, and the first third of frame 3 is drawn in the second back buffer (hence the term triple-buffering). The refresh happens, frame 1 is grabbed for the second time, and frame 2 is copied into the frame buffer and the first part of frame 3 into the back buffer. The last 2/3 of frame 3 are drawn in the back buffer, the refresh happens, frame 2 is grabbed for the first time, and frame 3 is copied to the frame buffer. The process starts over. This time we still got 2 frames, but in only 3 refresh cycles. That&#8217;s 2/3 of the refresh rate, which is 50FPS, exactly what we would have gotten without it. Triple-buffering essentially gives the video card someplace to keep doing work while it waits to transfer the back buffer to the frame buffer, so it doesn&#8217;t have to waste time. Unfortunately, triple-buffering isn&#8217;t available in every game, and in fact it isn&#8217;t too common. It also can cost a little performance to utilize, as it requires extra VRAM for the buffers, and time spent copying all of them around. However, triplebuffered VSync really is the key to the best experience as you eliminate tearing without the downsides of normal VSync (unless you consider the fact that your FPS is capped a downside&#8230; which is silly because you can&#8217;t see an FPS higher than your refresh anyway).</p></blockquote>
<p>If the thread is ever unavailable, you can download a PDF version <a title="PDF: How VSync works, and why people loathe it" href="http://tdistler.com/wp-content/uploads/2010/07/How-VSync-works-and-why-people-loathe-it.pdf" target="_blank">HERE</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://tdistler.com/2010/07/18/video-tearing-v-sync-and-triple-buffering/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Video: &#8220;Swagger Wagon&#8221; Toyota Commercial</title>
		<link>http://tdistler.com/2010/06/26/video-swagger-wagon-toyota-commercial</link>
		<comments>http://tdistler.com/2010/06/26/video-swagger-wagon-toyota-commercial#comments</comments>
		<pubDate>Sun, 27 Jun 2010 04:50:01 +0000</pubDate>
		<dc:creator>Tom</dc:creator>
				<category><![CDATA[Oh So Random]]></category>
		<category><![CDATA[funny]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://tdistler.com/?p=361</guid>
		<description><![CDATA[Being a parent now, I found this commercial pretty funny.]]></description>
			<content:encoded><![CDATA[<p>Being a parent now, I found this commercial pretty funny.</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.com/v/ql-N3F1FhW4&amp;color1=0xb1b1b1&amp;color2=0xd0d0d0&amp;hl=en_US&amp;feature=player_detailpage&amp;fs=1" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="640" height="385" src="http://www.youtube.com/v/ql-N3F1FhW4&amp;color1=0xb1b1b1&amp;color2=0xd0d0d0&amp;hl=en_US&amp;feature=player_detailpage&amp;fs=1" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://tdistler.com/2010/06/26/video-swagger-wagon-toyota-commercial/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Visualizing Obama&#8217;s $100 million Budget Cuts</title>
		<link>http://tdistler.com/2009/04/28/visualizing-obamas-100-million-budget-cuts</link>
		<comments>http://tdistler.com/2009/04/28/visualizing-obamas-100-million-budget-cuts#comments</comments>
		<pubDate>Tue, 28 Apr 2009 23:51:26 +0000</pubDate>
		<dc:creator>Tom</dc:creator>
				<category><![CDATA[Did you know?]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://tdistler.com/?p=245</guid>
		<description><![CDATA[My friend Nick brought this video to my attention. It shows how small $100 million dollars is compared to the entire US budget. What really stood out to me was how much of the budget is dominated by welfare handouts&#8230; looks like over 80%. I guess we are &#8220;all socialists now.&#8221; (requires Adobe Flash plugin&#8230; [...]]]></description>
			<content:encoded><![CDATA[<p>My friend Nick brought this video to my attention. It shows how small $100 million dollars is compared to the entire US budget. What really stood out to me was how much of the budget is dominated by welfare handouts&#8230; looks like over 80%. I guess we are &#8220;all socialists now.&#8221;</p>
<p style="text-align: center;"><object type="application/x-shockwave-flash" data="http://www.youtube.com/v/cWt8hTayupE&amp;hl=en" width="425" height="355"><param name="movie" value="http://www.youtube.com/v/cWt8hTayupE&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=cWt8hTayupE" target="_blank">HERE</a> to watch it on YouTube)</p>
]]></content:encoded>
			<wfw:commentRss>http://tdistler.com/2009/04/28/visualizing-obamas-100-million-budget-cuts/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Video: Charlie Hunter &#8211; Recess</title>
		<link>http://tdistler.com/2009/04/28/video-charlie-hunter-recess</link>
		<comments>http://tdistler.com/2009/04/28/video-charlie-hunter-recess#comments</comments>
		<pubDate>Tue, 28 Apr 2009 20:58:50 +0000</pubDate>
		<dc:creator>Tom</dc:creator>
				<category><![CDATA[Tunes and Grooves]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://tdistler.com/?p=239</guid>
		<description><![CDATA[I found my Charlie Hunter CD recently and I&#8217;ve been enjoying listening to him again. He&#8217;s an amazing musician apart from the fact that he plays the bass and guitar simultaneously. YouTube didn&#8217;t exist when I first got into him, and it&#8217;s nice now to be able to watch him play. Enjoy! (requires Adobe Flash [...]]]></description>
			<content:encoded><![CDATA[<p>I found my Charlie Hunter CD recently and I&#8217;ve been enjoying listening to him again. He&#8217;s an amazing musician apart from the fact that he plays the bass and guitar simultaneously. YouTube didn&#8217;t exist when I first got into him, and it&#8217;s nice now to be able to watch him play. Enjoy!</p>
<p style="text-align: center;"><object type="application/x-shockwave-flash" data="http://www.youtube.com/v/-B7btsk6ASE&amp;hl=en" width="425" height="355"><param name="movie" value="http://www.youtube.com/v/-B7btsk6ASE&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=-B7btsk6ASE" target="_blank">HERE</a> to watch it on YouTube)</p>
<p>If this video ever gets deleted from YouTube, you can download it <a href="/media/videos/CharlieHunterRecess.mp4" target="_blank">HERE</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://tdistler.com/2009/04/28/video-charlie-hunter-recess/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Video: Mr T World Of Warcraft Ad</title>
		<link>http://tdistler.com/2009/04/14/video-mr-t-world-of-warcraft-ad</link>
		<comments>http://tdistler.com/2009/04/14/video-mr-t-world-of-warcraft-ad#comments</comments>
		<pubDate>Tue, 14 Apr 2009 15:00:49 +0000</pubDate>
		<dc:creator>Tom</dc:creator>
				<category><![CDATA[Oh So Random]]></category>
		<category><![CDATA[funny]]></category>
		<category><![CDATA[Mr. T]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://tdistler.com/?p=210</guid>
		<description><![CDATA[I&#8217;m sorry, but this is too funny not to post&#8230; (requires Adobe Flash plugin&#8230; click HERE to watch it on YouTube) If this video ever gets deleted from YouTube, you can download it HERE.]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m sorry, but this is too funny not to post&#8230;</p>
<p style="text-align: center;"><object type="application/x-shockwave-flash" data="http://www.youtube.com/v/AGBhnYA2h40&amp;hl=en" width="425" height="355"><param name="movie" value="http://www.youtube.com/v/AGBhnYA2h40&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=AGBhnYA2h40" target="_blank">HERE</a> to watch it on YouTube)</p>
<p>If this video ever gets deleted from YouTube, you can download it <a href="/media/videos/MrTWOWAd.mp4" target="_blank">HERE</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://tdistler.com/2009/04/14/video-mr-t-world-of-warcraft-ad/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Marcus Miller: Live at Paradiso 2007</title>
		<link>http://tdistler.com/2009/02/16/marcus-miller-live-at-paradiso-2007</link>
		<comments>http://tdistler.com/2009/02/16/marcus-miller-live-at-paradiso-2007#comments</comments>
		<pubDate>Mon, 16 Feb 2009 17:11:34 +0000</pubDate>
		<dc:creator>Tom</dc:creator>
				<category><![CDATA[Tunes and Grooves]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://tdistler.com/?p=152</guid>
		<description><![CDATA[I finally found the full Marcus Miller concert that includes the song &#8220;Blast&#8221; which I linked to earlier. Unfortunately, the video has been removed from YouTube. Here it is from FabChannel. UPDATE 3-17-2009: FabChannel is no longer around Click HERE to download a clip from another concert (*.mp4 file playable in QuickTime). Click HERE to [...]]]></description>
			<content:encoded><![CDATA[<p>I finally found the full Marcus Miller concert that includes the song &#8220;Blast&#8221; which I <a title="tdistler.com: Marcus Miller Blast" href="http://tdistler.com/2008/07/08/marcus-miller-blast" target="_blank">linked to earlier</a>. Unfortunately, the video has been removed from YouTube. Here it is from <a title="FabChannel" href="http://www.fabchannel.com" target="_blank">FabChannel</a>.</p>
<p><strong>UPDATE 3-17-2009:</strong> FabChannel is no longer around <img src='http://tdistler.com/wp-includes/images/smilies/icon_sad.gif' alt=':-(' class='wp-smiley' />  Click <a href="http://www.tdistler.com/media/videos/MarcusMillerBlast.mp4" target="_blank">HERE</a> to download a clip from another concert (*.mp4 file playable in QuickTime).</p>
<p style="text-align: center;"><img style="vertical-align: middle;" src="/media/images/MarcusMiller01.jpg" alt="Marcus Miller" /></p>
<p>Click <a title="Marcus Miller" href="http://marcusmiller.com" target="_blank">HERE</a> to visit Marcus Miller&#8217;s website.</p>
]]></content:encoded>
			<wfw:commentRss>http://tdistler.com/2009/02/16/marcus-miller-live-at-paradiso-2007/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://www.tdistler.com/media/videos/MarcusMillerBlast.mp4" length="47219731" type="audio/mp4" />
		</item>
		<item>
		<title>Making the Definition of Life and Death Consistent</title>
		<link>http://tdistler.com/2009/01/04/making-the-definition-of-life-and-death-consistent</link>
		<comments>http://tdistler.com/2009/01/04/making-the-definition-of-life-and-death-consistent#comments</comments>
		<pubDate>Sun, 04 Jan 2009 07:37:28 +0000</pubDate>
		<dc:creator>Tom</dc:creator>
				<category><![CDATA[Carrying the Cross]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://tdistler.com/?p=151</guid>
		<description><![CDATA[I like things that make sense. I&#8217;m definitely a pragmatist. Regardless of the principles behind the abortion debate, I&#8217;ve always had a problem with the inconsistent definitions of life and death. So I put this question to a friend (and fellow musician) who happens to work for Central California Right To Life. Josh, An important [...]]]></description>
			<content:encoded><![CDATA[<p>I like things that make sense. I&#8217;m definitely a pragmatist. Regardless of the principles behind the abortion debate, I&#8217;ve always had a problem with the inconsistent definitions of life and death. So I put this question to a friend (and fellow musician) who happens to work for <a title="Right To Life Central California" href="http://www.rtlcc.org/fresno-madera/" target="_blank">Central California Right To Life</a>.</p>
<blockquote><p>Josh,</p>
<p>An important issue in the abortion debate is the argument over when life begins; at conception, at birth, or somewhere in between? I&#8217;ve heard many opinions over the years, but one (from a fellow engineer) has always struck me as a possible solution. The logic of the argument goes like this: &#8216;life&#8217; and &#8216;death&#8217; are inverse states of existence. Therefore, the set of criteria that define &#8216;life&#8217; and &#8216;death&#8217; should also be inverse quantities. Thus, we should define &#8216;life&#8217; by the inverse of the criteria we use for &#8216;death&#8217;, since those criteria are pretty well accepted both legally and morally (of course there are always edge-cases). For example: if someone is pronounced dead when their heart and brain consciousness stop, then life is defined as conscious brain function and a heart beat (over-simplified of course).</p>
<p>This is a very pragmatic argument. It view&#8217;s the woman&#8217;s body as analogous to a life-support system, thus rendering null the argument that life begins when the baby can exist outside the mother&#8217;s womb. This is an important step, because technology renders this a moving target&#8230; at some point, an artificial womb may be able to carry an embryo to full term. I&#8217;d be interested to get your thoughts on this.</p>
<p>-Tom</p></blockquote>
<p>Josh responded to my question on his video podcast <a title="Life Report on YouTube" href="http://www.youtube.com/user/LifeReport" target="_blank">LifeReport</a>.</p>
<p>Thanks Josh for the response, but you are too gracious with the praise! <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/XIr4wg2FbFI&amp;hl=en" width="425" height="355"><param name="movie" value="http://www.youtube.com/v/XIr4wg2FbFI&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=XIr4wg2FbFI" target="_blank">HERE</a> to watch it on YouTube)</p>
]]></content:encoded>
			<wfw:commentRss>http://tdistler.com/2009/01/04/making-the-definition-of-life-and-death-consistent/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Stanley Clarke: Upright Bass Solo</title>
		<link>http://tdistler.com/2008/10/30/stanley-clarke-upright-bass-solo</link>
		<comments>http://tdistler.com/2008/10/30/stanley-clarke-upright-bass-solo#comments</comments>
		<pubDate>Thu, 30 Oct 2008 17:51:12 +0000</pubDate>
		<dc:creator>Tom</dc:creator>
				<category><![CDATA[Tunes and Grooves]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://tdistler.com/?p=142</guid>
		<description><![CDATA[I&#8217;ve been meaning to post this video for awhile (been busy). Stanley Clarke is one of the most amazing bass players I&#8217;ve seen. He really explores the instrument and is not afraid to push it to new sounds. This upright bass solo is just awesome! (requires Adobe Flash plugin&#8230; click HERE to watch it on [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been meaning to post this video for awhile (been busy). Stanley Clarke is one of the most amazing bass players I&#8217;ve seen. He really explores the instrument and is not afraid to push it to new sounds. This upright bass solo is just awesome!</p>
<p style="text-align: center;"><object type="application/x-shockwave-flash" data="http://www.youtube.com/v/Py3jT0uaZw0&amp;hl=en" width="425" height="355"><param name="movie" value="http://www.youtube.com/v/Py3jT0uaZw0&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=Py3jT0uaZw0" target="_blank">HERE</a> to watch it on YouTube)</p>
]]></content:encoded>
			<wfw:commentRss>http://tdistler.com/2008/10/30/stanley-clarke-upright-bass-solo/feed</wfw:commentRss>
		<slash:comments>0</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>Video: Tickle-Me-Emo</title>
		<link>http://tdistler.com/2008/09/22/video-tickle-me-emo</link>
		<comments>http://tdistler.com/2008/09/22/video-tickle-me-emo#comments</comments>
		<pubDate>Tue, 23 Sep 2008 00:26:58 +0000</pubDate>
		<dc:creator>Tom</dc:creator>
				<category><![CDATA[Oh So Random]]></category>
		<category><![CDATA[funny]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://tdistler.com/?p=136</guid>
		<description><![CDATA[Okay, this is classic&#8230; a parody on Tickle-Me-Elmo. It&#8217;s hilarious if you&#8217;re familiar with the Emo movement. Enjoy! (requires Adobe Flash plugin&#8230; click HERE to watch it on YouTube)]]></description>
			<content:encoded><![CDATA[<p>Okay, this is classic&#8230; a parody on Tickle-Me-Elmo. It&#8217;s hilarious if you&#8217;re familiar with the <a title="WikiPedia: Emo" href="http://en.wikipedia.org/wiki/Emo_(slang)" target="_blank">Emo</a> movement. Enjoy!</p>
<p style="text-align: center;"><object type="application/x-shockwave-flash" data="http://www.youtube.com/v/vAt329otj6Y&amp;hl=en" width="425" height="355"><param name="movie" value="http://www.youtube.com/v/vAt329otj6Y&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=vAt329otj6Y" target="_blank">HERE</a> to watch it on YouTube)</p>
]]></content:encoded>
			<wfw:commentRss>http://tdistler.com/2008/09/22/video-tickle-me-emo/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Why You Should Never Talk To The Police</title>
		<link>http://tdistler.com/2008/08/16/why-you-should-never-talk-to-the-police</link>
		<comments>http://tdistler.com/2008/08/16/why-you-should-never-talk-to-the-police#comments</comments>
		<pubDate>Sat, 16 Aug 2008 22:47:21 +0000</pubDate>
		<dc:creator>Tom</dc:creator>
				<category><![CDATA[Did you know?]]></category>
		<category><![CDATA[Government]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://tdistler.com/?p=133</guid>
		<description><![CDATA[James Duane, a professor at Regent University School of Law, gave an excellent talk in May about why you should never, under any circumstances, talk to the police&#8230; even if you are innocent. It sounds counter-intuitive at first, but it really does make sense. In summary: Everything you tell the police can be used AGAINST [...]]]></description>
			<content:encoded><![CDATA[<p><a title="Professor James Duane" href="http://www.regent.edu/acad/schlaw/faculty_staff/duane.cfm" target="_blank">James Duane</a>, a professor at Regent University School of Law, gave an excellent talk in May about why you should <em>never</em>, under <em>any</em> circumstances, talk to the police&#8230; even if you are innocent. It sounds counter-intuitive at first, but it really does make sense.</p>
<p> In summary:</p>
<ul>
<li>Everything you tell the police can be used <em>AGAINST</em> you, but it can <em>NEVER</em> be used to help you (because it&#8217;s hear-say at that point).</li>
<li>There is no way talking to the police can help you.</li>
<li>You may admit guilt (even if innocent) with no benefit in return.</li>
<li>Even if you are innocent, it is easy to get carried away and tell a small lie, which can destroy your credibility.</li>
<li>Even if you are innocent, and only tell the truth, you will always give the police information that can help convict you.</li>
<li>Even if you are innocent, only tell the truth, and say nothing incriminating, the police may not recall the conversation with 100% accuracy.</li>
<li>Even if you are innocent, and only tell the truth, mistakes in your answers can incriminate you (either by misspeaking or drawing simple conclusions).</li>
<li>Even truthful answers can be contradicted by mistaken or unreliable evidence, destroying you credibility.</li>
</ul>
<p style="text-align: center;"><object type="application/x-shockwave-flash" data="http://www.youtube.com/v/i8z7NC5sgik&amp;hl=en" width="425" height="355"><param name="movie" value="http://www.youtube.com/v/i8z7NC5sgik&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=i8z7NC5sgik" target="_blank">HERE</a> to watch it on YouTube)</p>
<p>I found the second part of the lecture especially interesting, where a veteran detective (George Bruch) backs up Duane&#8217;s arguments. Definitely recommend this one to friends.</p>
<p style="text-align: center;"><object type="application/x-shockwave-flash" data="http://www.youtube.com/v/08fZQWjDVKE&amp;hl=en" width="425" height="355"><param name="movie" value="http://www.youtube.com/v/08fZQWjDVKE&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=08fZQWjDVKE" target="_blank">HERE</a> to watch it on YouTube)</p>
]]></content:encoded>
			<wfw:commentRss>http://tdistler.com/2008/08/16/why-you-should-never-talk-to-the-police/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Video: OnStar Parody</title>
		<link>http://tdistler.com/2008/08/08/video-onstar-parody</link>
		<comments>http://tdistler.com/2008/08/08/video-onstar-parody#comments</comments>
		<pubDate>Fri, 08 Aug 2008 22:25:54 +0000</pubDate>
		<dc:creator>Tom</dc:creator>
				<category><![CDATA[Oh So Random]]></category>
		<category><![CDATA[funny]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://tdistler.com/?p=131</guid>
		<description><![CDATA[We recently went and looked at the new Chevy Tahoes&#8230; of course with OnStar. Rob was nice enough to point out this video parody called BlondeStar (requires Adobe Flash plugin&#8230; click HERE to watch it on YouTube)]]></description>
			<content:encoded><![CDATA[<p>We recently went and looked at the new <a title="Chevy: Tahoe" href="http://www.chevrolet.com/tahoe/" target="_blank">Chevy Tahoes</a>&#8230; of course with <a title="OnStar" href="http://www.onstar.com" target="_blank">OnStar</a>. <a title="Rob Fahrni" href="http://rob.crabapples.net/" target="_blank">Rob</a> was nice enough to point out this video parody called BlondeStar <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/B3UGhRjPry4&amp;hl=en" width="425" height="355"><param name="movie" value="http://www.youtube.com/v/B3UGhRjPry4&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=B3UGhRjPry4" target="_blank">HERE</a> to watch it on YouTube)</p>
]]></content:encoded>
			<wfw:commentRss>http://tdistler.com/2008/08/08/video-onstar-parody/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Video: Man Sucked Into Jet Engine</title>
		<link>http://tdistler.com/2008/08/01/video-man-sucked-into-jet-engine</link>
		<comments>http://tdistler.com/2008/08/01/video-man-sucked-into-jet-engine#comments</comments>
		<pubDate>Fri, 01 Aug 2008 14:29:16 +0000</pubDate>
		<dc:creator>Tom</dc:creator>
				<category><![CDATA[Oh So Random]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://tdistler.com/?p=130</guid>
		<description><![CDATA[On February 20th, 1991, during Operation Desert Storm, the aircraft carrier USS Theodore Roosevelt was conducting flight operations in the Persian Gulf. Early that morning, the crew was preparing to launch an A-6 Intruder off the flight deck when things went terribly wrong for petty officer J.D. Bridges. That morning, Mr. Bridges was training a [...]]]></description>
			<content:encoded><![CDATA[<p>On February 20th, 1991, during Operation Desert Storm, the aircraft carrier USS Theodore Roosevelt was conducting flight operations in the Persian Gulf. Early that morning, the crew was preparing to launch an A-6 Intruder off the flight deck when things went terribly wrong for petty officer J.D. Bridges.</p>
<p>That morning, Mr. Bridges was training a new recruit. The recruit successfully secured the plane&#8217;s front landing gear to the catapult, and Mr. Bridges went in to verify the recruits work. However, in a momentary lapse in judgement, he got too close to the jet intake and was sucked inside. Luckily, he put his arm up which helped get him wedged into the intake for a few seconds&#8230; those few vital seconds it took for his helmet to damage the turbine blades after it was sucked off his head. His helmet caused the blades to slow down and lessen the pressure inside the intake long enough for the pilot to shut the engines down. Miraculously, he crawled out under his own power.</p>
<p>I&#8217;ve embedded 3 videos of the incident (in the following order): a quick clip of what happened, a longer segment from Spike TV, and a much more detailed segment from the History Channel. Enjoy!</p>
<p style="text-align: center;"><object type="application/x-shockwave-flash" data="http://www.youtube.com/v/L_gpPbpONK4&amp;hl=en" width="425" height="355"><param name="movie" value="http://www.youtube.com/v/L_gpPbpONK4&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=L_gpPbpONK4" target="_blank">HERE</a> to watch it on YouTube)</p>
<p style="text-align: center;"><object type="application/x-shockwave-flash" data="http://www.youtube.com/v/YJf1okwb-5Y&amp;hl=en" width="425" height="355"><param name="movie" value="http://www.youtube.com/v/YJf1okwb-5Y&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=YJf1okwb-5Y" target="_blank">HERE</a> to watch it on YouTube)</p>
<p>This last video requires you to wait a few seconds for the person to change the channel <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/GF3Iz7b95-8&amp;hl=en" width="425" height="355"><param name="movie" value="http://www.youtube.com/v/GF3Iz7b95-8&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=GF3Iz7b95-8" target="_blank">HERE</a> to watch it on YouTube)</p>
]]></content:encoded>
			<wfw:commentRss>http://tdistler.com/2008/08/01/video-man-sucked-into-jet-engine/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Death Star Attack: An Inside Job?</title>
		<link>http://tdistler.com/2008/07/31/the-death-star-attack-an-inside-job</link>
		<comments>http://tdistler.com/2008/07/31/the-death-star-attack-an-inside-job#comments</comments>
		<pubDate>Thu, 31 Jul 2008 14:30:54 +0000</pubDate>
		<dc:creator>Tom</dc:creator>
				<category><![CDATA[Oh So Random]]></category>
		<category><![CDATA[funny]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://tdistler.com/?p=129</guid>
		<description><![CDATA[For every major event in the news, there&#8217;s someone who believes it&#8217;s a conspiracy&#8230; so why would the attack on the Death Star be any different? The guys over at Debunking911 have a great satiracal piece about this monumental Star Wars event; it was an inside job.  It&#8217;s funniest if you (a) actually remember Star [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright" style="float: right;" src="/media/images/DeathStar1.jpg" alt="Death Star" width="150" height="181" />For every major event in the news, there&#8217;s someone who believes it&#8217;s a conspiracy&#8230; so why would the attack on the Death Star be any different? The guys over at <a title="Debunking 9/11" href="http://www.debunking911.com" target="_blank">Debunking911</a> have a great satiracal piece about this monumental Star Wars event; it was an inside job.  It&#8217;s funniest if you (a) actually remember Star Wars, (b) are kind of a nerd, and (c) are familiar with &#8220;real&#8221; conspiracy theories (like the ones surrounding 9/11&#8230; video: <a title="YouTube: 9/11 Conspiracy Part 1" href="http://www.youtube.com/watch?v=CNskClIyGfY" target="_blank">1</a>, <a title="YouTube: 9/11 Conspiracy Part 2" href="http://www.youtube.com/watch?v=HG4TzCtljHQ" target="_blank">2</a>, <a title="YouTube: 9/11 Conspiracy Part 3" href="http://www.youtube.com/watch?v=5qNouhEo4V0" target="_blank">3</a>, <a title="YouTube: 9/11 Conspiracy Part 4" href="http://www.youtube.com/watch?v=iB0uxfnwgm0" target="_blank">4</a>).</p>
<p>And so the Death Star conspiracy goes:</p>
<blockquote><p>We’ve all heard the “official conspiracy theory” of the Death Star attack. We  all know about Luke Skywalker and his ragtag bunch of rebels, how they mounted a  foolhardy attack on the most powerful, well-defended battle station ever built.  And we’ve all seen the video over, and over, and over, of the one-in-a-million  shot that resulted in a massive chain reaction that not just damaged, but  completely obliterated that massive technological wonder.</p>
<p>Like many, I was fed this story when I was growing up. But as I  watched the video, I began to realize that all was not as it seemed. And the  more I questioned the official story, the deeper into the rabbit hole I  went.</p></blockquote>
<p>Read the full story <a title="Debunking 9/11: Was the Death Star Attach An Inside Job?" href="http://www.debunking911.com/questions.htm" target="_blank">HERE</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://tdistler.com/2008/07/31/the-death-star-attack-an-inside-job/feed</wfw:commentRss>
		<slash:comments>2</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>
	</channel>
</rss>

