<?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>Kyle's Weblog &#187; Technology</title>
	<atom:link href="http://tacomafia.net/blog/category/technology/feed/" rel="self" type="application/rss+xml" />
	<link>http://tacomafia.net/blog</link>
	<description>Must Resist... Too Awesome...</description>
	<lastBuildDate>Wed, 17 Feb 2010 03:09:49 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Mythexport&#8230;Revisited</title>
		<link>http://tacomafia.net/blog/2008/mythexportrevisited/</link>
		<comments>http://tacomafia.net/blog/2008/mythexportrevisited/#comments</comments>
		<pubDate>Thu, 01 May 2008 06:28:27 +0000</pubDate>
		<dc:creator>Kyle Hill</dc:creator>
				<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://tacomafia.net/blog/?p=54</guid>
		<description><![CDATA[Thanks to darthanubis, I realized that I was hosting an out-of-date version of my Mythexport script.  I&#8217;ve not used it in quite some time, since I no longer maintain a MythTv box.  However, if some people are finding it to be useful, I&#8217;ll keep it around.
So, I hope this version works better for [...]]]></description>
			<content:encoded><![CDATA[<p>Thanks to darthanubis, I realized that I was hosting an out-of-date version of my Mythexport script.  I&#8217;ve not used it in quite some time, since I no longer maintain a MythTv box.  However, if some people are finding it to be useful, I&#8217;ll keep it around.</p>
<p>So, I hope this <a href="http://tacomafia.net/blog/files/scripts/mythexport.zip">version</a> works better for you.</p>
<p>Also, I guess someone decided to make a different Mythexport and include it in the Ubuntu repositories.  After a bit a research it looks like this is a GSoC project.  For the record: I am not affiliated with MythTV or Nuvexport.  This is just a simple shell script that I wrote a long time ago.  Sorry if I disappointed anyone.</p>
]]></content:encoded>
			<wfw:commentRss>http://tacomafia.net/blog/2008/mythexportrevisited/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>I&#8217;m Lovin&#8217; Gutsy</title>
		<link>http://tacomafia.net/blog/2007/im-lovin-gutsy/</link>
		<comments>http://tacomafia.net/blog/2007/im-lovin-gutsy/#comments</comments>
		<pubDate>Wed, 24 Oct 2007 03:30:58 +0000</pubDate>
		<dc:creator>Kyle Hill</dc:creator>
				<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://tacomafia.net/blog/2007/im-lovin-gutsy/</guid>
		<description><![CDATA[
I installed Ubuntu 7.10, &#8220;Gutsy Gibbon&#8221;, last week when it was officially released.  I have to say, that this is the most impressive Linux distro that I&#8217;ve ever worked with.  While it has its rough spots, like any OS, I have not booted back into Windows since the install.  I&#8217;ve been using [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://tacomafia.net/blog/pics/topics/software.png" alt="Software" height="64" width="64" /></p>
<p>I installed Ubuntu 7.10, &#8220;Gutsy Gibbon&#8221;, last week when it was officially released.  I have to say, that this is the most impressive Linux distro that I&#8217;ve ever worked with.  While it has its rough spots, like any OS, I have not booted back into Windows since the install.  I&#8217;ve been using Ubuntu off-and-on since Dapper Drake in mid-2005.  I would end up using it for a few days on my laptop, but then I&#8217;d simply end up booting back into Windows because something simply didn&#8217;t work the way I wanted.  Back then, I had a hard time getting WPA, Standby, Hibernation, and other power management features working properly.  However, with Gutsy, I&#8217;ve finally been able to solve my power management dilemmas and I&#8217;ve not looked back.</p>
<p>When I first booted to the live install CD and started the (very quick) install process, I was amazed at how much better WPA support was in Gutsy.  I was able to see my wireless network and connect: No problems.  So, during the 10 minute install process, I was able to browse Slashdot in Firefox.  I&#8217;m pretty sure your mind would explode if you tried to do something like that with the Windows installer.</p>
<p>My power management problems, however, were a little harder to take care of.  It turns out that my weird standby and hibernation issues could be traced to two things: the Nvidia binary driver, and my lack of a swap partition.  The Nvidia driver sucks when it comes to ACPI.  I found a few lines in /etc/default/acpi-defaults.conf that I had to comment out and&#8230;presto! Standby worked!  Ubuntu could finally be a viable Windows replacement.  Then, after trolling trough the Ubuntu forums for about an hour, I discovered that I was a little too quick to dismiss the installer&#8217;s dialog that insisted: &#8220;You NEED a swap partition, dummy!&#8221;  I thought, it&#8217;s 2007, I&#8217;ve got 2GB of RAM, why would I need a swap partition?  Oh, what&#8217;s that? That&#8217;s where your memory contents get dumped on hibernation? Oops, I can see why it didn&#8217;t work.  I simply created a new partition with Gpartd on the handy live CD, and upon reboot hibernation worked flawlessly.</p>
<p>I&#8217;m pretty happy about Ubuntu as my new OS, but I still have a few gripes:</p>
<ul>
<li>Battery life just isn&#8217;t as long.  After running powertop and disabling a whole bunch of services, I still can&#8217;t get the same battery life as I got in Windows.  Progress has been made, but my laptop is still a little fireball while running Linux.</li>
<li>I can&#8217;t seem to get Azureus to work.  I read some comments about having to use gcj instead of the Java JRE.  I&#8217;ll get it working, but it was just something that I wanted to work out of the box.</li>
</ul>
<ul>
<li>Copying files between to SMB servers using Gnome&#8217;s VFS is sloooooooow and it just eats CPU power.  I&#8217;m not sure why this is the case.</li>
</ul>
<p>Well, there&#8217;s my two cents.</p>
]]></content:encoded>
			<wfw:commentRss>http://tacomafia.net/blog/2007/im-lovin-gutsy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Why Digg Sucks</title>
		<link>http://tacomafia.net/blog/2007/why-digg-sucks/</link>
		<comments>http://tacomafia.net/blog/2007/why-digg-sucks/#comments</comments>
		<pubDate>Sat, 22 Sep 2007 15:46:42 +0000</pubDate>
		<dc:creator>Kyle Hill</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://tacomafia.net/blog/2007/why-digg-sucks/</guid>
		<description><![CDATA[
I used to like reading Digg.  However, as of late, whenever I peruse the site, all I see are a bunch of stories written by 13-year old kids about Global Warming and why the iPhone is the best invention ever.   So, instead, I opt to read the source of most of the [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://tacomafia.net/blog/pics/topics/mocha.png" title="Dr. Mocha Mix" alt="Dr. Mocha Mix" height="64" width="64" /></p>
<p>I used to like reading Digg.  However, as of late, whenever I peruse the site, all I see are a bunch of stories written by 13-year old kids about Global Warming and why the iPhone is the best invention ever.   So, instead, I opt to read the source of most of the interesting articles that end up on Digg: Slashdot, Ars Technica, Engadget, and others.</p>
<p>I&#8217;ve come up with a general rule-of-thumb for measuring the quality of a news source:  The quality of a new source is inversely proportional to the number of exclamation points that can be found on the front page.</p>
<p>For example, reading the front page of these sites nets the following number of exclamation points:</p>
<ul>
<li>Ars Technica: 1</li>
<li>Slashdot: 3</li>
<li>Google News: 0</li>
<li>BBC: 0</li>
<li>Digg: 24</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://tacomafia.net/blog/2007/why-digg-sucks/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Well That Was A Pain&#8230;</title>
		<link>http://tacomafia.net/blog/2007/well-that-was-a-pain/</link>
		<comments>http://tacomafia.net/blog/2007/well-that-was-a-pain/#comments</comments>
		<pubDate>Wed, 24 Jan 2007 02:01:47 +0000</pubDate>
		<dc:creator>Kyle Hill</dc:creator>
				<category><![CDATA[Site News]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://tacomafia.net/blog/2007/well-that-was-a-pain/</guid>
		<description><![CDATA[
I just upgraded to Wordpress 2.1.  That was a huge pain in the ass.  First, I decided it would be a good idea to start using the debian package to handle my wordpress updates.  Not a good idea.  There were bugs all over the place that I just now got fixed. [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://tacomafia.net/blog/pics/topics/mocha.png" height="64" width="64" /></p>
<p>I just upgraded to Wordpress 2.1.  That was a huge pain in the ass.  First, I decided it would be a good idea to start using the debian package to handle my wordpress updates.  Not a good idea.  There were bugs all over the place that I just now got fixed.  But, there was still another problem:  All of my custom pages were turned into categories and I had to manually go through and convert them back.</p>
<p>On the plus side, I like how everything feels a lot snappier.  I read through their changelog and it looks as though they had a SQL expert from MySQL look over and optimize all of their queries.  Kudos.</p>
]]></content:encoded>
			<wfw:commentRss>http://tacomafia.net/blog/2007/well-that-was-a-pain/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>nuvexport Bugs</title>
		<link>http://tacomafia.net/blog/2006/nuvexport-bugs/</link>
		<comments>http://tacomafia.net/blog/2006/nuvexport-bugs/#comments</comments>
		<pubDate>Sun, 12 Nov 2006 04:20:34 +0000</pubDate>
		<dc:creator>Kyle Hill</dc:creator>
				<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://tacomafia.net/blog/2006/nuvexport-bugs/</guid>
		<description><![CDATA[
It seems as though nuvexport development has slowed recently.  I&#8217;ve run into problems with ffmpeg throwing floating point exceptions when invoked from nuvexport.
After some discussion on the official nuvexport trac about the problem.  It seems that the following patch fixes the problem:
--- nuvinfo.pm.orig     2006-10-02 23:42:17.000000000 -0400
+++ nuvinfo.pm  2006-10-12 [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://tacomafia.net/blog/pics/topics/software.png" /></p>
<p>It seems as though nuvexport development has slowed recently.  I&#8217;ve run into problems with ffmpeg throwing floating point exceptions when invoked from nuvexport.</p>
<p>After some discussion on the official <a href="https://svn.forevermore.net/nuvexport/ticket/150">nuvexport trac</a> about the problem.  It seems that the following patch fixes the problem:</p>
<pre name="code" class="perl">--- nuvinfo.pm.orig     2006-10-02 23:42:17.000000000 -0400
+++ nuvinfo.pm  2006-10-12 16:58:12.000000000 -0400
@@ -184,10 +184,10 @@ package mythtv::nuvinfo;
($info{'width'})                 = $data =~ m/^ID_VIDEO_WIDTH=(d+)/m;
($info{'height'})                = $data =~ m/^ID_VIDEO_HEIGHT=(d+)/m;
($info{'fps'})                   = $data =~ m/^ID_VIDEO_FPS=(d+(?:.d*)?)/m;
-        ($info{'audio_sample_rate'})     = $data =~ m/^ID_AUDIO_RATE=(d+)/m;
-        ($info{'audio_bitrate'})         = $data =~ m/^ID_AUDIO_BITRATE=(d+)/m;
+        ($info{'audio_sample_rate'})     = $data =~ m/^ID_AUDIO_RATE=([1-9]d*)/m;
+        ($info{'audio_bitrate'})         = $data =~ m/^ID_AUDIO_BITRATE=([1-9]d*)/m;
($info{'audio_bits_per_sample'}) = $data =~ m/^AUDIO:.+?ch,s*[su](8|16)/mi;
-        ($info{'audio_channels'})        = $data =~ m/^ID_AUDIO_NCH=(d+)/m;
+        ($info{'audio_channels'})        = $data =~ m/^ID_AUDIO_NCH=([1-9]d*)/m;
($info{'fps'})                   = $data =~ m/^ID_VIDEO_FPS=(d+(?:.d*)?)/m;
($info{'aspect'})                = $data =~ m/^ID_VIDEO_ASPECT=(d+(?:[.,]d*)?)/m;
($info{'audio_type'})            = $data =~ m/^ID_AUDIO_CODEC=(d+(?:.d*)?)/m;</pre>
<p>I didn&#8217;t write this, but it solved a currently unresolved bug.  Here&#8217;s a link to the original <a href="https://svn.forevermore.net/nuvexport/ticket/149">author&#8217;s patch.</a></p>
]]></content:encoded>
			<wfw:commentRss>http://tacomafia.net/blog/2006/nuvexport-bugs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mythexport</title>
		<link>http://tacomafia.net/blog/2006/mythexport/</link>
		<comments>http://tacomafia.net/blog/2006/mythexport/#comments</comments>
		<pubDate>Sun, 12 Mar 2006 21:50:50 +0000</pubDate>
		<dc:creator>Kyle Hill</dc:creator>
				<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://tacomafia.net/blog/?p=30</guid>
		<description><![CDATA[
UPDATE:  I&#8217;ve posted a newer version of the script with better documentation
I&#8217;ve written a bash script that uses nuvexport in conjunction with my custom nuvexportrc file to automatically transcode my HUGE mythtv files after they are recorded. The only thing that this script doesn&#8217;t do is delete the source file after creation. I&#8217;m working [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://tacomafia.net/blog/pics/topics/browse.png" alt="Computers" /></p>
<p>UPDATE:  I&#8217;ve posted a newer version of the script with better documentation</p>
<p>I&#8217;ve written a bash script that uses nuvexport in conjunction with my custom nuvexportrc file to automatically transcode my HUGE mythtv files after they are recorded. The only thing that this script doesn&#8217;t do is delete the source file after creation. I&#8217;m working on getting a patch submitted to nuvexport to allow source file and the associate database entries to be deleted upon successful transcode. The easiest way to invoke this script is to create a user job in mythtv&#8217;s job queue. Anyway, included below is a copy of my script:</p>
<div class="synthi_code" style="display:none;" id ="plain_synthi_4c529b84511ea">
<div class="synthi_header" style="font-weight:bold;"> Bash <span  class="synthi_button"style="font-weight:lighter;font-size:smaller;">[<a href="#" onClick="javascript:document.getElementById('styled_synthi_4c529b84511ea').style.display='block';document.getElementById('plain_synthi_4c529b84511ea').style.display='none';return false">Show Styled Code</a>]:</span></div>
<pre style="width:100%;overflow:auto;">#!/bin/sh
#
# Transcodes and removes commercials from MythTV files.
# Requires nuvexport and a properly configured nuvexportrc file.
# See attached nuvexportrc for an example.
#
# Invoke from mythtv user job with the following line:
# /path/to/mythexport &#034;%FILE%&#034; &#034;%TITLE%&#034;
#
# USAGE: mythexport [infile] [title]
#

# User to run nuvexport as, should own both sharedir and outdir
user=mythtv

# Location of nuvexport
nuvexport=/usr/local/bin/nuvexport

# Directory where MythTV stores its .mpg files
indir=/shared/.mythtv/

# The temp location for use during transcoding
outdir=/shared/.mythtv/out/

# For my setup, the location to copy the finished .avi after transcoding
sharedir=/shared/video/TV/

# User must provide at least two arguments
if [ $# -lt 2 ]
then
	echo &#034;ERROR: Invalid arguments&#034;
	echo &#034;USAGE: mythexport [infile] [title]&#034;
	exit 1
fi

# The provided absolute path to the mythtv file.
infile=$1

# Get rid of the first parameter, the rest are the title of the show
shift

# Title of the show
title=$@

# If the mythtv file exists
if [ -r &#034;$indir$infile&#034; ]
then
	# The &#034;command&#034;
	sudo -u $user $nuvexport --infile &#034;$indir$infile&#034; --noconfirm > /dev/null

	# Create a directory for the show, if one doesn't exist
	if [ ! -d &#034;$sharedir$title/&#034; ]
	then
	  mkdir &#034;$sharedir$title/&#034;
	fi		

	# Move the transcoded file to the sharedir
	mv -f &#034;$outdir$title - &#034;*.avi  &#034;$sharedir$title/&#034;

else
	echo &#034;ERROR: Unable to open source file &#034; &#034;$indir$infile&#034;
	exit 2
fi

exit 0
</pre>
</div>
<div class="synthi_code" style="display:block;" id ="styled_synthi_4c529b84511ea">
<div class="synthi_header" style="font-weight:bold;"> Bash <span  class="synthi_button"style="font-weight:lighter;font-size:smaller;">[<a href="#" onClick="javascript:document.getElementById('plain_synthi_4c529b84511ea').style.display='block';document.getElementById('styled_synthi_4c529b84511ea').style.display='none';return false">Show Plain Code</a>]:</span></div>
<div class="bash" style="font-family: monospace;">
<ol>
<li style="font-weight: bold;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #808080; font-style: italic;">#!/bin/sh</span></div>
</li>
<li style="font-weight: bold;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #808080; font-style: italic;">#</span></div>
</li>
<li style="font-weight: bold;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #808080; font-style: italic;"># Transcodes and removes commercials from MythTV files.</span></div>
</li>
<li style="font-weight: bold;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #808080; font-style: italic;"># Requires nuvexport and a properly configured nuvexportrc <span style="color: #c20cb9; font-weight: bold;">file</span>.</span></div>
</li>
<li style="font-weight: bold;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #808080; font-style: italic;"># See attached nuvexportrc <span style="color: #000000; font-weight: bold;">for</span> an example.</span></div>
</li>
<li style="font-weight: bold;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #808080; font-style: italic;">#</span></div>
</li>
<li style="font-weight: bold;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #808080; font-style: italic;"># Invoke from mythtv user job with the following line:</span></div>
</li>
<li style="font-weight: bold;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #808080; font-style: italic;"># /path/to/mythexport </span><span style="color: #ff0000;">&quot;%FILE%&quot;</span> <span style="color: #ff0000;">&quot;%TITLE%&quot;</span></div>
</li>
<li style="font-weight: bold;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #808080; font-style: italic;">#</span></div>
</li>
<li style="font-weight: bold;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #808080; font-style: italic;"># USAGE: mythexport <span style="color: #7a0874; font-weight: bold;">&#91;</span>infile<span style="color: #7a0874; font-weight: bold;">&#93;</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span>title<span style="color: #7a0874; font-weight: bold;">&#93;</span></span></div>
</li>
<li style="font-weight: bold;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #808080; font-style: italic;">#</span></div>
</li>
<li style="font-weight: bold;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #808080; font-style: italic;"># User to run nuvexport <span style="color: #c20cb9; font-weight: bold;">as</span>, should own both sharedir and outdir</span></div>
</li>
<li style="font-weight: bold;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #007800;">user=</span>mythtv</div>
</li>
<li style="font-weight: bold;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #808080; font-style: italic;"># Location of nuvexport</span></div>
</li>
<li style="font-weight: bold;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #007800;">nuvexport=</span>/usr/<span style="color: #7a0874; font-weight: bold;">local</span>/bin/nuvexport</div>
</li>
<li style="font-weight: bold;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #808080; font-style: italic;"># Directory where MythTV stores its .mpg files</span></div>
</li>
<li style="font-weight: bold;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #007800;">indir=</span>/shared/.mythtv/</div>
</li>
<li style="font-weight: bold;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #808080; font-style: italic;"># The temp location <span style="color: #000000; font-weight: bold;">for</span> use during transcoding</span></div>
</li>
<li style="font-weight: bold;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #007800;">outdir=</span>/shared/.mythtv/out/</div>
</li>
<li style="font-weight: bold;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #808080; font-style: italic;"># For my setup, the location to copy the finished .avi after transcoding</span></div>
</li>
<li style="font-weight: bold;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #007800;">sharedir=</span>/shared/video/TV/</div>
</li>
<li style="font-weight: bold;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #808080; font-style: italic;"># User must provide at least two arguments</span></div>
</li>
<li style="font-weight: bold;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #007800;">$#</span> -lt <span style="color: #000000;">2</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span></div>
</li>
<li style="font-weight: bold;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000; font-weight: bold;">then</span></div>
</li>
<li style="font-weight: bold;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;ERROR: Invalid arguments&quot;</span></div>
</li>
<li style="font-weight: bold;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;USAGE: mythexport [infile] [title]&quot;</span></div>
</li>
<li style="font-weight: bold;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #7a0874; font-weight: bold;">exit</span> <span style="color: #000000;">1</span></div>
</li>
<li style="font-weight: bold;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000; font-weight: bold;">fi</span></div>
</li>
<li style="font-weight: bold;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #808080; font-style: italic;"># The provided absolute path to the mythtv <span style="color: #c20cb9; font-weight: bold;">file</span>.</span></div>
</li>
<li style="font-weight: bold;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #007800;">infile=</span>$<span style="color: #000000;">1</span></div>
</li>
<li style="font-weight: bold;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #808080; font-style: italic;"># Get rid of the first parameter, the rest are the title of the show</span></div>
</li>
<li style="font-weight: bold;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #7a0874; font-weight: bold;">shift</span></div>
</li>
<li style="font-weight: bold;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #808080; font-style: italic;"># Title of the show</span></div>
</li>
<li style="font-weight: bold;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #007800;">title=</span>$@</div>
</li>
<li style="font-weight: bold;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #808080; font-style: italic;"># If the mythtv <span style="color: #c20cb9; font-weight: bold;">file</span> exists</span></div>
</li>
<li style="font-weight: bold;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> -r <span style="color: #ff0000;">&quot;$indir$infile&quot;</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span></div>
</li>
<li style="font-weight: bold;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000; font-weight: bold;">then</span></div>
</li>
<li style="font-weight: bold;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #808080; font-style: italic;"># The </span><span style="color: #ff0000;">&quot;command&quot;</span></div>
</li>
<li style="font-weight: bold;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #c20cb9; font-weight: bold;">sudo</span> -u <span style="color: #007800;">$user</span> <span style="color: #007800;">$nuvexport</span> &#8211;infile <span style="color: #ff0000;">&quot;$indir$infile&quot;</span> &#8211;noconfirm &gt; /dev/null</div>
</li>
<li style="font-weight: bold;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; </div>
</li>
<li style="font-weight: bold;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #808080; font-style: italic;"># Create a directory <span style="color: #000000; font-weight: bold;">for</span> the show, <span style="color: #000000; font-weight: bold;">if</span> one doesn</span><span style="color: #ff0000;">&#8216;t exist</span></div>
</li>
<li style="font-weight: bold;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #ff0000;">&nbsp; &nbsp; &nbsp; &nbsp; if [ ! -d &quot;$sharedir$title/&quot; ]</span></div>
</li>
<li style="font-weight: bold;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #ff0000;">&nbsp; &nbsp; &nbsp; &nbsp; then</span></div>
</li>
<li style="font-weight: bold;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #ff0000;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; mkdir &quot;$sharedir$title/&quot;</span></div>
</li>
<li style="font-weight: bold;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #ff0000;">&nbsp; &nbsp; &nbsp; &nbsp; fi&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span></div>
</li>
<li style="font-weight: bold;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #ff0000;">&nbsp; &nbsp; &nbsp; &nbsp; </span></div>
</li>
<li style="font-weight: bold;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #ff0000;">&nbsp; &nbsp; &nbsp; &nbsp; # Move the transcoded file to the sharedir</span></div>
</li>
<li style="font-weight: bold;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #ff0000;">&nbsp; &nbsp; &nbsp; &nbsp; mv -f &quot;$outdir$title &#8211; &quot;*.avi &nbsp;&quot;$sharedir$title/&quot;</span></div>
</li>
<li style="font-weight: bold;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #ff0000;">else</span></div>
</li>
<li style="font-weight: bold;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #ff0000;">&nbsp; &nbsp; &nbsp; &nbsp; echo &quot;ERROR: Unable to open source file &quot; &quot;$indir$infile&quot;</span></div>
</li>
<li style="font-weight: bold;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #ff0000;">&nbsp; &nbsp; &nbsp; &nbsp; exit 2</span></div>
</li>
<li style="font-weight: bold;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #ff0000;">fi</span></div>
</li>
<li style="font-weight: bold;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #ff0000;">exit 0</span></div>
</li>
<li style="font-weight: bold;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #ff0000;"</span></div>
</li>
</ol>
</div>
</div>
<p>Here&#8217;s a link to my script: <a href="http://tacomafia.net/blog/files/scripts/mythexport.zip">mythexport.zip</a>. This file also contains a copy of my nuvexportrc file.</p>
<p>You must be sure to pass the filename to be transcoded, as well as the title of the show, from mythtv itself. This is easily accomplished by using appending %FILE% and %TITLE% to the user job description of the file.</p>
<p>Also, since these are impossible to find online, here are the custom arguments you can pass jobs from myth&#8217;s job queue:</p>
<div class="synthi_code" style="display:none;" id ="plain_synthi_4c529b84589eb">
<div class="synthi_header" style="font-weight:bold;"> Text <span  class="synthi_button"style="font-weight:lighter;font-size:smaller;">[<a href="#" onClick="javascript:document.getElementById('styled_synthi_4c529b84589eb').style.display='block';document.getElementById('plain_synthi_4c529b84589eb').style.display='none';return false">Show Styled Code</a>]:</span></div>
<pre style="width:100%;overflow:auto;">* %DIR% - the directory component of the recording's filename
* %FILE% - the filename component of the recording's filename
* %TITLE% - the title of the recording (e.g., name of the series)
* %SUBTITLE% - the subtitle of the recording (e.g., name of the episode)
* %DESCRIPTION% - description text for the recording (from guide data)
* %HOSTNAME% - the backend making the recording
* %CATEGORY% - the category of the recording (from guide data)
* %RECGROUP% - the recording group
* %CHANID% - the MythTV channel ID making the recording
* %STARTTIME% - the recording start time (YYYYMMDDhhmmss)
* %ENDTIME% - the recording end time (YYYYMMDDhhmmss)
* %STARTTIMEISO% - the recording start time in ISO 8601 format (YYYY-MM-DDTHH:MM:SS)
* %ENDTIMEISO% - the recording end time in ISO 8601 format
* %PROGSTART% - the recording's start time (from guide data; YYYYMMDDhhmmss)
* %PROGEND% - the recording's end time (from guide data)
* %PROGSTARTISO%, %PROGENDISO% - the recording's start and end time in ISO 8601 format.</pre>
</div>
<div class="synthi_code" style="display:block;" id ="styled_synthi_4c529b84589eb">
<div class="synthi_header" style="font-weight:bold;"> Text <span  class="synthi_button"style="font-weight:lighter;font-size:smaller;">[<a href="#" onClick="javascript:document.getElementById('plain_synthi_4c529b84589eb').style.display='block';document.getElementById('styled_synthi_4c529b84589eb').style.display='none';return false">Show Plain Code</a>]:</span></div>
<div class="text" style="font-family: monospace;">
<ol>
<li style="font-weight: bold;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">* %DIR% &#8211; the directory component of the recording&#8217;s filename</div>
</li>
<li style="font-weight: bold;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">* %FILE% &#8211; the filename component of the recording&#8217;s filename</div>
</li>
<li style="font-weight: bold;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">* %TITLE% &#8211; the title of the recording (e.g., name of the series)</div>
</li>
<li style="font-weight: bold;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">* %SUBTITLE% &#8211; the subtitle of the recording (e.g., name of the episode)</div>
</li>
<li style="font-weight: bold;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">* %DESCRIPTION% &#8211; description text for the recording (from guide data)</div>
</li>
<li style="font-weight: bold;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">* %HOSTNAME% &#8211; the backend making the recording</div>
</li>
<li style="font-weight: bold;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">* %CATEGORY% &#8211; the category of the recording (from guide data)</div>
</li>
<li style="font-weight: bold;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">* %RECGROUP% &#8211; the recording group</div>
</li>
<li style="font-weight: bold;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">* %CHANID% &#8211; the MythTV channel ID making the recording</div>
</li>
<li style="font-weight: bold;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">* %STARTTIME% &#8211; the recording start time (YYYYMMDDhhmmss)</div>
</li>
<li style="font-weight: bold;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">* %ENDTIME% &#8211; the recording end time (YYYYMMDDhhmmss)</div>
</li>
<li style="font-weight: bold;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">* %STARTTIMEISO% &#8211; the recording start time in ISO 8601 format (YYYY-MM-DDTHH:MM:SS)</div>
</li>
<li style="font-weight: bold;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">* %ENDTIMEISO% &#8211; the recording end time in ISO 8601 format</div>
</li>
<li style="font-weight: bold;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">* %PROGSTART% &#8211; the recording&#8217;s start time (from guide data; YYYYMMDDhhmmss)</div>
</li>
<li style="font-weight: bold;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">* %PROGEND% &#8211; the recording&#8217;s end time (from guide data)</div>
</li>
<li style="font-weight: bold;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">* %PROGSTARTISO%, %PROGENDISO% &#8211; the recording&#8217;s start and end time in ISO 8601 format.</div>
</li>
</ol>
</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://tacomafia.net/blog/2006/mythexport/feed/</wfw:commentRss>
		<slash:comments>23</slash:comments>
		</item>
		<item>
		<title>Bridging The Gap</title>
		<link>http://tacomafia.net/blog/2006/mind-the-gap/</link>
		<comments>http://tacomafia.net/blog/2006/mind-the-gap/#comments</comments>
		<pubDate>Tue, 03 Jan 2006 03:38:04 +0000</pubDate>
		<dc:creator>Kyle Hill</dc:creator>
				<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://tacomafia.net/blog/?p=27</guid>
		<description><![CDATA[
Trying to create a bridged wireless network can be a nightmare, as I have learned from first-hand experience today.  Trying to create a 400 m wireless link seems easy enough, right?  A few things to keep in mind in case I do this in the future:  The whole Client-Bridged Mode -> AP [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://tacomafia.net/blog/pics/topics/browse.png" alt="Technology" /></p>
<p>Trying to create a bridged wireless network can be a nightmare, as I have learned from first-hand experience today.  Trying to create a 400 m wireless link seems easy enough, right?  A few things to keep in mind in case I do this in the future:  The whole Client-Bridged Mode -> AP Mode paradigm sucks.  Don&#8217;t waste your time trying to get it to work out.  Simply use WDS and get on with your life.  Problems with traditional bridged mode include:  Only allowing the use of 3-addresses so that DHCP handshaking is impossible&#8230;..I&#8217;m sure there&#8217;s more, but this seems like a bit of an oversight!  Anyway, my firmware, DD-WRT v23 final, does not seem to handle WPA2 authentication very well either.  So, I&#8217;m stuck with a crappy ol&#8217; 128-bit WEP encryption scheme.  It&#8217;s OK&#8230;.but c&#8217;mon, I need 256-bit Temporal Keys.  I promise I do.</p>
]]></content:encoded>
			<wfw:commentRss>http://tacomafia.net/blog/2006/mind-the-gap/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>DD-WRT</title>
		<link>http://tacomafia.net/blog/2005/dd-wrt/</link>
		<comments>http://tacomafia.net/blog/2005/dd-wrt/#comments</comments>
		<pubDate>Mon, 24 Oct 2005 05:20:57 +0000</pubDate>
		<dc:creator>Kyle Hill</dc:creator>
				<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://tacomafia.net/blog/?p=20</guid>
		<description><![CDATA[
The udhcpc patch has finally been implemented.  Today my dhcp client patch was accepted into the DD-WRT router firmware project.  I tested it and it works.  All one has to do to circumvent RESnet&#8217;s block on NAT routers is to flash with this new firmware, go to the Administration -> Services page [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://tacomafia.net/blog/pics/topics/browse.png" alt="Technology" /></p>
<p>The udhcpc patch has finally been implemented.  Today my dhcp client patch was accepted into the DD-WRT router firmware project.  I tested it and it works.  All one has to do to circumvent RESnet&#8217;s block on NAT routers is to flash with this new firmware, go to the Administration -> Services page and type &#8220;MSFT 5.0&#8243; (without quotes) into the client options box at the very top of the screen.  </p>
<p>This patch is available in any build after 11/12/05.  Simply go to: http://www.dd-wrt.com and click on downloads.  Select v23 Beta2 and download the latest build.</p>
]]></content:encoded>
			<wfw:commentRss>http://tacomafia.net/blog/2005/dd-wrt/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Resnet Followup</title>
		<link>http://tacomafia.net/blog/2005/resnet-followup/</link>
		<comments>http://tacomafia.net/blog/2005/resnet-followup/#comments</comments>
		<pubDate>Tue, 20 Sep 2005 05:48:22 +0000</pubDate>
		<dc:creator>Kyle Hill</dc:creator>
				<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://tacomafia.net/blog/?p=18</guid>
		<description><![CDATA[
I&#8217;ve been working a lot on the router problem recently.  I&#8217;ve determined that it is indeed the DHCP vendor class identifier that is sent to resnet&#8217;s dhcp server that causes the routers to be blocked.  If I could change DHCP option 60, the &#8220;Vendor Class Identifier&#8221; from udhcpc&#8217;s default to the Windows default [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://tacomafia.net/blog/pics/topics/browse.png" alt="Technology" /></p>
<p>I&#8217;ve been working a lot on the router problem recently.  I&#8217;ve determined that it is indeed the DHCP vendor class identifier that is sent to resnet&#8217;s dhcp server that causes the routers to be blocked.  If I could change DHCP option 60, the &#8220;Vendor Class Identifier&#8221; from udhcpc&#8217;s default to the Windows default of &#8220;MSFT 5.0&#8243;  then resnet would be none the wiser.</p>
<p>I don&#8217;t seem to have the technical know how to do this though.  I&#8217;ve contacted the busybox guys and the DD-WRT guys to get some more info.</p>
<p>After talking with the busybox dev&#8217;s it appears that there is currently no way to specify the vendor class identifier from the command line.  I&#8217;m working with them now to patch it so that the option can be specified via command line argument.  If these patches go through I&#8217;ll have to work with the DD-WRT guys to get the new busybox implemented.  I&#8217;d also like to get a nice web interface for the arguments so that I can pass them without having to write my own custom scripts.</p>
]]></content:encoded>
			<wfw:commentRss>http://tacomafia.net/blog/2005/resnet-followup/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Beating Resnet</title>
		<link>http://tacomafia.net/blog/2005/beating-resnet/</link>
		<comments>http://tacomafia.net/blog/2005/beating-resnet/#comments</comments>
		<pubDate>Tue, 06 Sep 2005 07:03:58 +0000</pubDate>
		<dc:creator>Kyle Hill</dc:creator>
				<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://tacomafia.net/blog/?p=16</guid>
		<description><![CDATA[
I&#8217;m having trouble getting my Linksys WRT54G working in the K-state residence halls.  Resnet appears to be enforcing their No NAT routers policy more stringently this year than last.  Therefore I&#8217;ve had to come up with a way of getting around their policy.  I have to have my NAT box.  I [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://tacomafia.net/blog/pics/topics/browse.png" alt="Technology" /></p>
<p>I&#8217;m having trouble getting my Linksys WRT54G working in the K-state residence halls.  Resnet appears to be enforcing their No NAT routers policy more stringently this year than last.  Therefore I&#8217;ve had to come up with a way of getting around their policy.  I have to have my NAT box.  I loves it.  </p>
<p>The problem: KSU immediately can determine that I&#8217;ve connected my router and assign me a private IP (10.10.x.x)  and redirect me to a warning page, telling me I&#8217;ve violated their policy and that they will kill my firstborn if I don&#8217;t remove the router.</p>
<p>Now this seems odd to me.  How can they instantly tell that I&#8217;ve attached a router between myself and their network?  I&#8217;ve cloned the MAC address of my laptop to the WAN interface, so it should look the same on Layer 2.  The problem is, they seem to immediately be able to tell that it;s a router.  There&#8217;s no delay in detecting it or anything.  I can&#8217;t NMAP myself, so they aren&#8217;t going to succeed.  It could also be TTL, but I ruled that out by setting it to 129 so it would look like traffic from a normal windows host.  So the only other thing it could be is&#8230;&#8230;&#8230;.DHCP! tada!</p>
<p>DHCP that&#8217;s the ticket.  My client somehow identifies itself as Linksys, or sends it&#8217;s MAC address, or something.  I&#8217;m not sure which, I need to sniff the traffic between the NAT box and their DHCP server (10.10.0.220)  to exactly what it is.</p>
<p>In the mean time my only work-around is to request the IP with my laptop and then statically assign that IP to the WAN interface on the router.  The only problem with this is that the release expires every 24-hours, requiring me to renew the IP with my laptop once a day.  I&#8217;ll work on a way to automate this, but that&#8217;ll take some time.</p>
<p>I need to learn of the dhcp client on the WRT54GS works.  Namely the client included with DD-WRT #22.  It uses udhcpc 0.9.8, which is included in Busybox v1.0.  I&#8217;ve tried playing around with most of the options I&#8217;ve found in the man pages, but that doesn&#8217;t seem to help.</p>
<p>I&#8217;ve also tried using DHCPing on my Linux server to fake the DHCP request, however, their server is on a non-routable subnet, so I can only reach it by broadcast.  Those tricky bastards.</p>
]]></content:encoded>
			<wfw:commentRss>http://tacomafia.net/blog/2005/beating-resnet/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
