<?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>systemBash &#187; Software</title>
	<atom:link href="http://systembash.com/tags/software/feed/" rel="self" type="application/rss+xml" />
	<link>http://systembash.com</link>
	<description>Technology and System Administration</description>
	<lastBuildDate>Sat, 12 May 2012 13:13:12 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Xbox 360 Windows Media Center Extender Demo</title>
		<link>http://systembash.com/content/xbox-360-windows-media-center-extender-demo/</link>
		<comments>http://systembash.com/content/xbox-360-windows-media-center-extender-demo/#comments</comments>
		<pubDate>Fri, 13 Jan 2012 03:18:25 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[Gaming]]></category>
		<category><![CDATA[Other Technology]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Television]]></category>
		<category><![CDATA[demo]]></category>
		<category><![CDATA[htpc]]></category>
		<category><![CDATA[Windows Media Center]]></category>
		<category><![CDATA[Windows Media Center Extender]]></category>
		<category><![CDATA[xbox]]></category>
		<category><![CDATA[xbox 360]]></category>

		<guid isPermaLink="false">http://systembash.com/?p=1192</guid>
		<description><![CDATA[After I ditched cable TV, I used both Snapstream's BeyondTV and SageTV to sate my and my family's television needs. After almost 2 years we ended up turning cable back on. Win one for the cable company! 

But that did not end my search for the perfect home television system. Our cable box, well, works; but the hard drive is limited and you have to pay 15.99/mo for it. 

For the full video demo... continue to the full post!]]></description>
			<content:encoded><![CDATA[<p>After I ditched cable TV, I used both <a href="http://www.snapstream.com/products/beyondtv/">Snapstream&#8217;s BeyondTV</a> and <a href="http://www.sagetv.com/index.html">SageTV</a> (now owned by Google) to sate my and my family&#8217;s television needs. After almost 2 years we ended up turning cable back on. Win one for the cable company! </p>
<p>But that did not end my search for the perfect home television system. Our cable box, well, works; but the hard drive is limited, you have to pay $15.99/mo for it, and the recordings are only on one device. </p>
<p>Luckily I found the <a href="http://www.hauppauge.com/site/products/data_dcr2650.html">DCR-2650</a> (currently $122 at <a href="http://www.amazon.com/gp/product/B005FPT38A/ref=as_li_ss_tl?ie=UTF8&#038;tag=systembash-20&#038;linkCode=as2&#038;camp=1789&#038;creative=390957&#038;creativeASIN=B005FPT38A">amazon</a>) which allows you to rent a <a href="http://en.wikipedia.org/wiki/CableCARD">CableCARD</a> from the cable company (I&#8217;m paying $3.99/mo from Verizon) and get all of the premium cable channels on your PC &#8211; the drawback is that you must use Windows Media Center due to the DRM (there is a hack for SageTV &#8211; more on that later). </p>
<p>We recently got an Xbox 360 for Christmas, and I&#8217;ve been wanting to try the <a href="http://windows.microsoft.com/en-US/windows7/Set-up-a-Windows-Media-Center-Extender">Media Center Extender</a> functionality on it. I&#8217;m happy to report it works really well! Here is a video with a quick walkthrough of the Media Center Extender experience on the Xbox 360.</p>
<p><iframe width="870" height="620" src="http://www.youtube.com/embed/aV0kJTYrvyg" frameborder="0" allowfullscreen></iframe></p>
<p>Some notes on the setup:</p>
<ul>
<li>My Media Center PC &#038; Xbox are both connected via gigabit wired network</li>
<li>Live TV, Guide and DVR functionality work perfectly</li>
<li>Have had issues with Movie playback. This is because the Xbox is limited in what codecs it can decode. Apparently the Windows Media Center Extender app does not use the same codecs as the Xbox media player app.</li>
<li>You could use as many Xboxes as you want, so essentially you have a free number of DVRs in your home</li>
<li>The <a href="http://www.amazon.com/gp/product/B005FPT38A/ref=as_li_ss_tl?ie=UTF8&#038;tag=systembash-20&#038;linkCode=as2&#038;camp=1789&#038;creative=390957&#038;creativeASIN=B005FPT38A">DCR-2650</a> uses a single cable card but has 2 tuners. This means you are limited to 2 channels at a time of live TV or recording shows. You could easily continue to add tuners if you would like more.</li>
<li>The Windows Media Center app is available directly on the main Xbox menu that pops up when you hit the Xbox button on your controller/remote</li>
</ul>
<p>The quality of the video coming from the Media Center Extender is significantly better compared to the &#8220;LiveTV&#8221; streamed over the internet &#8211; also from Verizon. </p>
<p><strong>If Microsoft and Verizon is serious about making their streaming live TV app commonplace in consumer&#8217;s homes, they will need to both up the quality of the video and also add DVR functionality to the system.</strong> </p>
<p>Between how well it works and the fact that you can get a <a href="http://www.amazon.com/gp/product/B005FMLZQQ/ref=as_li_ss_tl?ie=UTF8&#038;tag=systembash-20&#038;linkCode=as2&#038;camp=1789&#038;creative=390957&#038;creativeASIN=B005FMLZQQ">remote for the Xbox</a>, it really makes an <strong>ideal replacement for your cable box</strong>. </p>
]]></content:encoded>
			<wfw:commentRss>http://systembash.com/content/xbox-360-windows-media-center-extender-demo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Experimenting with Pascal on Ubuntu</title>
		<link>http://systembash.com/content/experimenting-with-pascal-on-ubuntu/</link>
		<comments>http://systembash.com/content/experimenting-with-pascal-on-ubuntu/#comments</comments>
		<pubDate>Tue, 22 Feb 2011 02:35:44 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[Code Samples]]></category>
		<category><![CDATA[Other Code]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[pascal]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://systembash.com/?p=884</guid>
		<description><![CDATA[I&#8217;ve been busy lately on a number of projects, one of which is a programming class I am currently taking. The class itself is interesting, we are learning about the different types of programming languages. For our latest project, we were tasked with writing a simple program in Pascal. Pascal isn&#8217;t used too much any [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been busy lately on a number of projects, one of which is a programming class I am currently taking. The class itself is interesting, we are learning about the different types of programming languages. For our latest project, we were tasked with writing a simple program in <a href="http://en.wikipedia.org/wiki/Pascal_%28programming_language%29">Pascal</a>. Pascal isn&#8217;t used too much any more since it lacks some of the features that most modern languages have, but it is good to know at least a little bit about it in case you ever run across some old Pascal programs in the wild.</p>
<p>The syntax for pascal is a bit verbose, that is the main complaint about it. There are a number of others, but that is beyond the scope of this howto.</p>
<h2>Installing The Pascal Compiler on Ubuntu</h2>
<p>Installing Pascal in modern Ubuntu is a cinch. The <a href="http://www.freepascal.org/">Free Pascal Compiler</a>, or <a href="http://manpages.ubuntu.com/manpages/intrepid/man1/fpc.1.html">fpc</a>, is all that you need to get started. It works great on 32-bit or 64-bit systems. Install with:</p>
<div class="codecolorer-container text mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">sudo apt-get install fpc</div></td></tr></tbody></table></div>
<p>Any prerequisites will automatically download and install along with fpc. </p>
<h2>Getting Started in Pascal</h2>
<p>To test the compiler let&#8217;s start with a simple Hello World program. Open up hello.pas and enter:</p>
<div class="codecolorer-container pascal mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br /></div></td><td><div class="pascal codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000000; font-weight: bold;">program</span> Hello;<br />
<br />
<span style="color: #000000; font-weight: bold;">begin</span><br />
<br />
<span style="color: #000066;">Writeln</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">'Hello World'</span><span style="color: #009900;">&#41;</span>;<br />
<br />
<span style="color: #000000; font-weight: bold;">end</span>.</div></td></tr></tbody></table></div>
<p>Compile with <code class="codecolorer text mac-classic"><span class="text">fpc hello.pas</span></code> and run:</p>
<div class="codecolorer-container text mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br /></div></td><td><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">dave@cerberus:~/Pascal$ ./hello <br />
Hello World</div></td></tr></tbody></table></div>
<h2>Selection Sort in Pascal</h2>
<p>Now that we&#8217;ve verified it is running, I&#8217;m going to show you the code that I wrote for my program. Basically we were asked to Selection Sort two arrays of varying length. Apparently one of the (bad) features of Pascal originally was that you needed to declare the length of the array which made it a pain to work with them. </p>
<p>In this situation it is just two arrays so it isn&#8217;t too bad. Enter your array by creating two text files arrayA.txt and arrayB.txt. One number per line. The source code for sort.pas is:</p>
<div class="codecolorer-container pascal mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;height:400px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br />36<br />37<br />38<br />39<br />40<br />41<br />42<br />43<br />44<br />45<br />46<br />47<br />48<br />49<br />50<br />51<br />52<br />53<br />54<br />55<br />56<br />57<br />58<br />59<br />60<br />61<br />62<br />63<br />64<br />65<br />66<br />67<br />68<br />69<br />70<br />71<br />72<br />73<br /></div></td><td><div class="pascal codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000000; font-weight: bold;">program</span> Sort;<br />
<br />
<span style="color: #000000; font-weight: bold;">var</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; A<span style="color: #339933;">:</span> <span style="color: #000066; font-weight: bold;">array</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span>..<span style="color: #cc66cc;">10</span><span style="color: #009900;">&#93;</span> <span style="color: #000000; font-weight: bold;">of</span> <span style="color: #000066; font-weight: bold;">Integer</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; B<span style="color: #339933;">:</span> <span style="color: #000066; font-weight: bold;">array</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span>..<span style="color: #cc66cc;">20</span><span style="color: #009900;">&#93;</span> <span style="color: #000000; font-weight: bold;">of</span> <span style="color: #000066; font-weight: bold;">Integer</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; F<span style="color: #339933;">:</span> Text;<br />
&nbsp; &nbsp; &nbsp; &nbsp; i<span style="color: #339933;">,</span>j<span style="color: #339933;">,</span>k<span style="color: #339933;">,</span>l<span style="color: #339933;">,</span>m<span style="color: #339933;">,</span>temp<span style="color: #339933;">:</span> <span style="color: #000066; font-weight: bold;">Integer</span>;<br />
<br />
<span style="color: #000000; font-weight: bold;">begin</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #666666; font-style: italic;">{Read in array A}</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; Assign<span style="color: #009900;">&#40;</span>F<span style="color: #339933;">,</span> <span style="color: #ff0000;">'arrayA.txt'</span><span style="color: #009900;">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; Reset<span style="color: #009900;">&#40;</span>F<span style="color: #009900;">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; i<span style="color: #339933;">:=</span> <span style="color: #cc66cc;">0</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">while</span> <span style="color: #000000; font-weight: bold;">not</span> <span style="color: #000066;">EOF</span><span style="color: #009900;">&#40;</span>F<span style="color: #009900;">&#41;</span> <span style="color: #000000; font-weight: bold;">do</span> <span style="color: #000000; font-weight: bold;">begin</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Inc<span style="color: #009900;">&#40;</span>i<span style="color: #009900;">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066;">Read</span><span style="color: #009900;">&#40;</span>F<span style="color: #339933;">,</span> A<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">end</span>;<br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #666666; font-style: italic;">{Read in array B}</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; Assign<span style="color: #009900;">&#40;</span>F<span style="color: #339933;">,</span> <span style="color: #ff0000;">'arrayB.txt'</span><span style="color: #009900;">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; Reset<span style="color: #009900;">&#40;</span>F<span style="color: #009900;">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; j<span style="color: #339933;">:=</span> <span style="color: #cc66cc;">0</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">while</span> <span style="color: #000000; font-weight: bold;">not</span> <span style="color: #000066;">EOF</span><span style="color: #009900;">&#40;</span>F<span style="color: #009900;">&#41;</span> <span style="color: #000000; font-weight: bold;">do</span> <span style="color: #000000; font-weight: bold;">begin</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Inc<span style="color: #009900;">&#40;</span>j<span style="color: #009900;">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066;">Read</span><span style="color: #009900;">&#40;</span>F<span style="color: #339933;">,</span> B<span style="color: #009900;">&#91;</span>j<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">end</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; i<span style="color: #339933;">:=</span><span style="color: #cc66cc;">10</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; j<span style="color: #339933;">:=</span><span style="color: #cc66cc;">20</span>;<br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #666666; font-style: italic;">{Print out the unsorted arrays}</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066;">WriteLn</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">'Unsorted Arrays:'</span><span style="color: #009900;">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066;">WriteLn</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">'Array A:'</span><span style="color: #009900;">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">for</span> k<span style="color: #339933;">:=</span><span style="color: #cc66cc;">1</span> <span style="color: #000000; font-weight: bold;">to</span> i <span style="color: #000000; font-weight: bold;">do</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066;">Write</span><span style="color: #009900;">&#40;</span>A<span style="color: #009900;">&#91;</span>k<span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">' '</span><span style="color: #009900;">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066;">WriteLn</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066;">WriteLn</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">'Array B:'</span><span style="color: #009900;">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">for</span> k<span style="color: #339933;">:=</span><span style="color: #cc66cc;">1</span> <span style="color: #000000; font-weight: bold;">to</span> j <span style="color: #000000; font-weight: bold;">do</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066;">Write</span><span style="color: #009900;">&#40;</span>B<span style="color: #009900;">&#91;</span>k<span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">' '</span><span style="color: #009900;">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066;">WriteLn</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066;">WriteLn</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">'========================='</span><span style="color: #009900;">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066;">WriteLn</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">'Sorting Arrays...'</span><span style="color: #009900;">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066;">WriteLn</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">'========================='</span><span style="color: #009900;">&#41;</span>;<br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #666666; font-style: italic;">{Selection Sort Array A}</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">for</span> l <span style="color: #339933;">:=</span> <span style="color: #cc66cc;">1</span> <span style="color: #000000; font-weight: bold;">to</span> i <span style="color: #000000; font-weight: bold;">do</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">for</span> m <span style="color: #339933;">:=</span> l <span style="color: #339933;">+</span> <span style="color: #cc66cc;">1</span> <span style="color: #000000; font-weight: bold;">to</span> i <span style="color: #000000; font-weight: bold;">do</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">if</span> A<span style="color: #009900;">&#91;</span>l<span style="color: #009900;">&#93;</span> &gt; A<span style="color: #009900;">&#91;</span>m<span style="color: #009900;">&#93;</span> <span style="color: #000000; font-weight: bold;">then</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">begin</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; temp <span style="color: #339933;">:=</span> A<span style="color: #009900;">&#91;</span>l<span style="color: #009900;">&#93;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; A<span style="color: #009900;">&#91;</span>l<span style="color: #009900;">&#93;</span> <span style="color: #339933;">:=</span> A<span style="color: #009900;">&#91;</span>m<span style="color: #009900;">&#93;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; A<span style="color: #009900;">&#91;</span>m<span style="color: #009900;">&#93;</span> <span style="color: #339933;">:=</span> temp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">end</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #666666; font-style: italic;">{Selection Sort Array B}</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">for</span> l <span style="color: #339933;">:=</span> <span style="color: #cc66cc;">1</span> <span style="color: #000000; font-weight: bold;">to</span> j <span style="color: #000000; font-weight: bold;">do</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">for</span> m <span style="color: #339933;">:=</span> l <span style="color: #339933;">+</span> <span style="color: #cc66cc;">1</span> <span style="color: #000000; font-weight: bold;">to</span> j <span style="color: #000000; font-weight: bold;">do</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">if</span> B<span style="color: #009900;">&#91;</span>l<span style="color: #009900;">&#93;</span> &gt; B<span style="color: #009900;">&#91;</span>m<span style="color: #009900;">&#93;</span> <span style="color: #000000; font-weight: bold;">then</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">begin</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; temp <span style="color: #339933;">:=</span> B<span style="color: #009900;">&#91;</span>l<span style="color: #009900;">&#93;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; B<span style="color: #009900;">&#91;</span>l<span style="color: #009900;">&#93;</span> <span style="color: #339933;">:=</span> B<span style="color: #009900;">&#91;</span>m<span style="color: #009900;">&#93;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; B<span style="color: #009900;">&#91;</span>m<span style="color: #009900;">&#93;</span> <span style="color: #339933;">:=</span> temp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">end</span>;<br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #666666; font-style: italic;">{Print out the sorted arrays}</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066;">WriteLn</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">'Selection Sorted Arrays:'</span><span style="color: #009900;">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066;">WriteLn</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">'Array A: '</span><span style="color: #009900;">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">for</span> k<span style="color: #339933;">:=</span><span style="color: #cc66cc;">1</span> <span style="color: #000000; font-weight: bold;">to</span> i <span style="color: #000000; font-weight: bold;">do</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066;">Write</span><span style="color: #009900;">&#40;</span>A<span style="color: #009900;">&#91;</span>k<span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">' '</span><span style="color: #009900;">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066;">WriteLn</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066;">WriteLn</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">'Array B: '</span><span style="color: #009900;">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">for</span> k<span style="color: #339933;">:=</span><span style="color: #cc66cc;">1</span> <span style="color: #000000; font-weight: bold;">to</span> j <span style="color: #000000; font-weight: bold;">do</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066;">Write</span><span style="color: #009900;">&#40;</span>B<span style="color: #009900;">&#91;</span>k<span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">' '</span><span style="color: #009900;">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066;">WriteLn</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>;<br />
<span style="color: #000000; font-weight: bold;">end</span>.</div></td></tr></tbody></table></div>
<p>Compile and run (ok to ignore the compile-time errors)</p>
<div class="codecolorer-container text mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;height:400px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br /></div></td><td><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">dave@cerberus:~/Pascal$ fpc sort.pas <br />
Free Pascal Compiler version 2.4.0-2 [2010/03/06] for x86_64<br />
Copyright (c) 1993-2009 by Florian Klaempfl<br />
Target OS: Linux for x86-64<br />
Compiling sort.pas<br />
Linking sort<br />
/usr/bin/ld: warning: link.res contains output sections; did you forget -T?<br />
73 lines compiled, 0.1 sec <br />
dave@cerberus:~/Pascal$ ./sort <br />
Unsorted Arrays:<br />
Array A:<br />
28 24 85 55 43 6 23 13 59 71 <br />
Array B:<br />
13 37 36 53 24 83 27 42 62 71 9 92 1 41 6 3 88 77 65 67 <br />
=========================<br />
Sorting Arrays...<br />
=========================<br />
Selection Sorted Arrays:<br />
Array A: <br />
6 13 23 24 28 43 55 59 71 85 <br />
Array B: <br />
1 3 6 9 13 24 27 36 37 41 42 53 62 65 67 71 77 83 88 92 <br />
dave@cerberus:~/Pascal$</div></td></tr></tbody></table></div>
<p>And there you have it. Compiling Pascal program on Ubuntu is an easy way to get your feet wet in programming. Pascal is a great beginner&#8217;s programming language, but if you want to learn more there are a number of great resources available for <a href="http://www.learn-programming.za.net/learn_pascal_programming.html">learning Pascal</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://systembash.com/content/experimenting-with-pascal-on-ubuntu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Ultimate Guide to DVD Encoding with Handbrake</title>
		<link>http://systembash.com/content/the-ultimate-guide-to-dvd-encoding-with-handbrake/</link>
		<comments>http://systembash.com/content/the-ultimate-guide-to-dvd-encoding-with-handbrake/#comments</comments>
		<pubDate>Thu, 23 Sep 2010 02:28:16 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[dvd]]></category>
		<category><![CDATA[encoding]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://systembash.com/?p=723</guid>
		<description><![CDATA[It's no secret that I'm a huge fan of <a href="http://handbrake.fr/">Handbrake</a>. After committing to copying my DVD collection to my storage array, I've tried and tested just about all software out there for converting video to H.264 with an emphasis on quality and speed. Many software packages have problems with quality or desynchronized audio, Handbrake is my <strong>hands-down favorite</strong> when it comes down to converting video -- and that includes both free and commercial software. 

One of the complaints I hear about Handbrake is that there are too many options. Well, the good news for someone looking for simplicity is that the built-in presets mostly take care of them for you. And for anyone who likes to dive into the nitty gritty of video compression, it also allows for a lot of tweaking to get the most out of your movie while maintaining small file sizes and high quality. 

Read on for my full guide to Handbrake features.]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s no secret that I&#8217;m a huge fan of <a href="http://handbrake.fr/">Handbrake</a>. After committing to copying my DVD collection to my storage array, I&#8217;ve tried and tested just about all software out there for converting video to H.264 with an emphasis on quality and speed. Many software packages have problems with quality or desynchronized audio, Handbrake is my <strong>hands-down favorite</strong> when it comes down to converting video &#8212; and that includes both free and commercial software. </p>
<p>One of the complaints I hear about Handbrake is that there are too many options. Well, the good news for someone looking for simplicity is that the built-in presets mostly take care of them for you. And for anyone who likes to dive into the nitty gritty of video compression, it also allows for a lot of tweaking to get the most out of your movie while maintaining small file sizes and high quality. </p>
<p>This guide was done on the Windows version but the other versions are all very similar. Also it assumes that there is no copy protection on the disc. If you have copy protection and it is legal in your country to remove it, you can use <a href="http://www.dvd43.com/">DVD43</a> (free), <a href="http://www.slysoft.com/en/anydvd.html">AnyDVD</a> (paid), or other software to do so. If you have a particular question regarding Handbrake, be sure to ask in the comments below and I will get back to you as soon as possible. Thanks to the developers of Handbrake for the great piece of software they have put together! Many of the answers I am supplying below are available via the <a href="http://trac.handbrake.fr/wiki/HandBrakeGuide">Handbrake wiki</a>, which is also where you should go if you are looking for more detailed information on a particular item. On to the list!</p>
<h2>The Main Menu</h2>
<p><img src="http://systembash.com/wp-content/uploads/2010/09/handbrake1.png" alt="" title="handbrake1" width="550" height="35" class="aligncenter size-full wp-image-54487" /></p>
<p>You will mainly use 2 buttons here &#8211; Source and Start. Source lets you select the DVD you wish to rip from, which is either the disc directly, or the &#8220;video_ts&#8221; folder if it is stored on your drive. Start begins the encoding process. If you want to run more than one at once, you would Start the first one, then &#8220;Add to Queue&#8221; to add it to the list of encodings it will do next. The Show Queue button allows you to reorganize or delete upcoming encodings.</p>
<h2>Source Information</h2>
<p><img src="http://systembash.com/wp-content/uploads/2010/09/handbrake2.png" alt="" title="handbrake2" width="550" height="39" class="aligncenter size-full wp-image-54488" /></p>
<p>This area shows you information about your current disc. It will automatically select the largest title and most movies have only one angle. If you only want to encode a certain chapter or section of the disc, this is where you would select it.</p>
<h2>Output File</h2>
<p><img src="http://systembash.com/wp-content/uploads/2010/09/handbrake3.png" alt="" title="handbrake3" width="550" height="34" class="aligncenter size-full wp-image-54489" /></p>
<p>Select where you would like to send the file when done, easy enough!</p>
<h2>Output Settings</h2>
<p><img src="http://systembash.com/wp-content/uploads/2010/09/handbrake4.png" alt="" title="handbrake4" width="501" height="50" class="aligncenter size-full wp-image-54490" /></p>
<p>Container: MP4 or MKV. This depends on where you want to play the file &#8211; MP4 is usually more compatible but MKV can have more flexibility.<br />
Large File Size: This mainly seems to be depreciated but you used to have problems playing files larger than 4GB on some devices if this is not checked.<br />
Web Optimized: Assists with streaming via web &#8211; if you do not plan on hosting the video online it is safe to keep this off.<br />
iPod 5G support: Only useful if you plan on playing video on a 5th Generation iPod.</p>
<h2>Presets</h2>
<p><img src="http://systembash.com/wp-content/uploads/2010/09/handbrake12.png" alt="" title="handbrake12" width="246" height="482" class="aligncenter size-full wp-image-54498" /></p>
<p>Presets are the easiest way to <strong>get encoding fast</strong>. The Regular->Normal setting seems to work best both on my local PC and my HTPC. For movies with a lot of special effects where I am looking for higher quality (sacrificing longer encoding times and more hard drive usage) I will move to High Profile. If you are planning on making the movie portable, select the device which closest matches the one you have. It should shrink it down to whatever size you need.</p>
<p>You can also save new presets. If you like to encode a movie a certain way or for a certain device, feel free to change the settings and then &#8216;Add&#8217; a new profile.</p>
<h2>Picture</h2>
<p><img src="http://systembash.com/wp-content/uploads/2010/09/handbrake5.png" alt="" title="handbrake5" width="550" height="196" class="aligncenter size-full wp-image-54499" /></p>
<p>Source: Resolution of the original video.<br />
Aspect ratio: Whether the original should be &#8220;stretched&#8221; and how much.<br />
Anamorphic: How much the original should retain its resultion. I keep this on &#8220;Strict&#8221; most of the time. If you move it to different settings, you may need to specify the resolution, but in general it is best to keep the resolution the same.<br />
Cropping: Best left to automatic &#8211; will remove any black bars on the top, bottom or sides of the video. If you find it missed the, select custom and then how much you want to chop off. </p>
<h2>Video Filters</h2>
<p><img src="http://systembash.com/wp-content/uploads/2010/09/handbrake6.png" alt="" title="handbrake6" width="378" height="241" class="aligncenter size-full wp-image-54492" /></p>
<p>Detelecine: This has to do with how the video is interlaced when framerates are changed around. See <a href="http://trac.handbrake.fr/wiki/Telecine">Handbrake&#8217;s wiki</a> for a technical explanation.<br />
Decomb: Similar to Detelecine, this looks at every pixel. While having better results, it will slow down your encode. <a href="http://trac.handbrake.fr/wiki/Decomb">See more details</a>.<br />
Deinterlace: Deinterlaces every frame an can result in some loss of quality to the video. Removes the lines you sometimes see when anything is moving quickly across the screen.<br />
Denoise: This will filter out noise and film grain from the video.<br />
Deblock: This will remove blocky video due to compression or low quality.<br />
Grayscale Encoding: Your movie will be in black &#038; white.</p>
<p>Generally speaking I leave these options off as they slow down video and also alter the video from what is on the DVD. If you want to keep original quality, keep them off, otherwise feel free to customize to your needs. There is a great <a href="http://trac.handbrake.fr/wiki/PictureSettings">Handbrake wiki settings page</a> which explain them further in technical detail.</p>
<h2>Video</h2>
<p><img src="http://systembash.com/wp-content/uploads/2010/09/handbrake7.png" alt="" title="handbrake7" width="550" height="163" class="aligncenter size-full wp-image-54493" /></p>
<p>Video codec: H.264 or MPEG-4 via ffmpeg. In most situations H.264 is superior as the video codec.<br />
Framerate: <em>Highly</em> recommend keeping this <strong>same as source</strong>. Otherwise your audio and video might get desynchronized.<br />
Quality: I usually go for Constant quality anywhere from <strong>60 to 75</strong>. Target size is good if you are trying to fit it on a CD or DVD, and Avg Bitrate is used on some older devices.</p>
<h2>Audio</h2>
<p><img src="http://systembash.com/wp-content/uploads/2010/09/handbrake8.png" alt="" title="handbrake8" width="550" height="176" class="aligncenter size-full wp-image-54500" /></p>
<p>If you want to encode the video only with English then it is usually OK to leave this area alone. You can add other audio tracks to your movie by clicking &#8220;Add track&#8221; and then selecting the source. Mixdown if you don&#8217;t expect to play the movie on a full-speaker system, but keep the bitrate at 160 or more. DRC stands for Dynamic Range Compression &#8211; setting this higher will help reduce the differences between the soft and loud moments in the movie.</p>
<h2>Subtitles</h2>
<p><img src="http://systembash.com/wp-content/uploads/2010/09/handbrake9.png" alt="" title="handbrake9" width="550" height="183" class="aligncenter size-full wp-image-54495" /></p>
<p>MakeUseOf covered <a href="http://www.makeuseof.com/tag/how-to-use-handbrake-to-attach-subtitles-to-a-movie-file/">Subtitles on Handbrake</a> last year, you can review it on that article. </p>
<h2>Chapters</h2>
<p><img src="http://systembash.com/wp-content/uploads/2010/09/handbrake10.png" alt="" title="handbrake10" width="550" height="250" class="aligncenter size-full wp-image-54496" /></p>
<p>Some software will allow you to fast forward or rewind based on the chapters in the file. Handbrake will automatically convert your DVD chapters into the file, tweak them here as needed.</p>
<h2>Advanced</h2>
<p><img src="http://systembash.com/wp-content/uploads/2010/09/handbrake11.png" alt="" title="handbrake11" width="550" height="250" class="aligncenter size-full wp-image-54502" /></p>
<p>Handbrake allows you to change all sorts of settings within the h.264 encoder. These are for advanced users, but below is a summary of the settings just in case you find a need to tweak them for a movie you are encoding.<br />
<center></p>
<table border=0>
<tr>
<td>Reference Frames</td>
<td>B-Frames</td>
</tr>
<tr>
<td>Adaptive B-Frames</td>
<td>Direct Prediction</td>
</tr>
<tr>
<td>Weighted B-Frames</td>
<td>Pyramidal B-Frames</td>
</tr>
<tr>
<td>Motion Estimation Method</td>
<td>Subpixel Motion Estimation</td>
</tr>
<tr>
<td>Analysis</td>
<td>8&#215;8 DCT</td>
</tr>
<tr>
<td>CABAC Entropy Coding</td>
<td>No Fast-P-Skip</td>
</tr>
<tr>
<td>No DCT-Decimate</td>
<td>Deblocking</td>
</tr>
</table>
<p></center></p>
<p>Instead of rehashing what is already over on the Handbrake wiki article H.264 options, you can just <a href="http://trac.handbrake.fr/wiki/x264Options">head over there</a> for the gory details. These are tweaks which control how the video is compressed. The only reason to change them is if you are trying to encode a video and are not getting the quality or compression results you are expecting.</p>
<h2>Get Encoding!</h2>
<p>Hopefully this guide will help you to understand Handbrake and all that it is capable of. This is one of the most important tools in the savvy media connoisseur&#8217;s toolbox, and I hope you have found it as useful as I have. Let us know if you have any questions in the comments area below. </p>
]]></content:encoded>
			<wfw:commentRss>http://systembash.com/content/the-ultimate-guide-to-dvd-encoding-with-handbrake/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Google Adds Two-Factor Authentication To Google Apps (For Real, This Time)</title>
		<link>http://systembash.com/content/google-adds-two-factor-authentication-to-google-apps-for-real-this-time/</link>
		<comments>http://systembash.com/content/google-adds-two-factor-authentication-to-google-apps-for-real-this-time/#comments</comments>
		<pubDate>Mon, 20 Sep 2010 16:21:00 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[Google]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[authentication]]></category>

		<guid isPermaLink="false">http://systembash.com/content/google-adds-two-factor-authentication-to-google-apps-for-real-this-time/</guid>
		<description><![CDATA[I&#8217;m not trying to say I had anything to do with Google adding two-factor authentication to Google Apps. I&#8217;m really not. But on September 9th, MakeUseOf published an article named How To Secure Your Google Apps Account with Two Factor Authentication. In this article, I wrote: All of this brings up the question: why doesn&#8217;t [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m not trying to say I had anything to do with Google adding two-factor authentication to Google Apps. I&#8217;m really not. But on September 9th, <a href="http://www.makeuseof.com">MakeUseOf</a> published an article named <a href="http://www.makeuseof.com/tag/secure-google-apps-account-factor-authentication/">How To Secure Your Google Apps Account with Two Factor Authentication</a>. In this article, I wrote:</p>
<blockquote><p>All of this brings up the question: why doesn&rsquo;t Google enable a direct way to use two factor authentication with their Gmail, Calendar and other services? Many folks such as myself use Google services for all too many things in their lives, and that login is potentially the most important one of their online life. I would suggest that Google gets onto the security boat and enables this as an option for everyday folks.</p></blockquote>
<p>Today, 11 days later, Google released their own <a href="http://googleenterprise.blogspot.com/2010/09/more-secure-cloud-for-millions-of.html">Two-Factor authentication scheme for Google Apps</a> account (Premier, Education and Government). An example of accurate prognostication? Or just dumb luck? Either way, great job Google!</p>
<p>If you are a Google Apps user, your Administrator will need to enable the feature for your account. Standard edition users will have this feature available shortly. Highly recommended for password and data security if you store your data in the Google cloud.</p>
]]></content:encoded>
			<wfw:commentRss>http://systembash.com/content/google-adds-two-factor-authentication-to-google-apps-for-real-this-time/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A phpBB 3 iPhone Style Theme With Option to Disable</title>
		<link>http://systembash.com/content/phpbb-3-iphone-style-theme-option-to-disable/</link>
		<comments>http://systembash.com/content/phpbb-3-iphone-style-theme-option-to-disable/#comments</comments>
		<pubDate>Mon, 16 Aug 2010 12:34:37 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[Code Samples]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[phpbb]]></category>
		<category><![CDATA[theme]]></category>

		<guid isPermaLink="false">http://systembash.com/?p=707</guid>
		<description><![CDATA[A forum that I am an adminstrator for has been clamoring for an iPhone theme (style) for a long time now. In the past, I hadn't seen any usable iPhone template for phpBB3, until now.

View this entire post to view my modifications to a theme switcher for mobile devices, so that the end user can disable a mobile theme for their login if they should choose to do so. ]]></description>
			<content:encoded><![CDATA[<p><img src="http://systembash.com/wp-content/uploads/2010/08/photo-200x300.png" alt="phpBB iPhone theme style" title="PHPBB iPhone Theme" width="200" height="300" class="alignright size-medium wp-image-711" />A forum that I am an adminstrator for has been clamoring for an iPhone theme (style) for a long time now. In the past, I hadn&#8217;t seen any usable iPhone template for phpBB3, until now.</p>
<p>The theme is hosted on Google code and is named <a href="http://code.google.com/p/phpbb-iphone-style/">phpbb-iphone-style</a>. It is downloadable <a href="http://code.google.com/p/phpbb-iphone-style/downloads/list">here</a> and was last updated June 18th, as of today.</p>
<p>The theme works wonderfully on the iPhone. However, the issue that I ran into is automatically displaying it for mobile browsers, such as the iPhone, Android and other platforms.</p>
<p>Fortunately there is a modification you can make to the phpbb code which is effectively a theme switcher for mobile browsers. The how to is located within the download file for the theme above.</p>
<h3>What if a user wants to turn off the mobile style?</h3>
<p>I modified the code to allow a user to set an option on their profile to permentently disable the theme when logged in on a mobile browser.</p>
<p>First, install the style as described above. As part of the switcher, you need to find out the theme ID. You can do so, after installing the style, by hovering over the &#8216;Detail&#8217; tab in the ACP (Administrator Control Panel) and looking for the &#8216;id&#8217; variable. In the example below it is &#8217;6&#8242;.</p>
<p>Once the theme is installed, move over to the &#8220;Users and Groups&#8221; tab, and then the &#8220;Custom Profile Fields&#8221; area. At the bottom of this page there is a box to add a new profile field. Type &#8216;disable_mobile&#8217; as the name, and Boolean (Yes/No) as the type and click add.</p>
<p>For the options, I selected:</p>
<ul>
<li>Publicly display profile field: No</li>
<li>Display in user control panel: Checked</li>
<li>Display on registration screen: Unchecked</li>
<li>Display on viewtopic screen: Unchecked</li>
<li>Required field: Unchecked</li>
<li>Hide profile field: Unchecked</li>
<li>Field name/title presented to the user: Disable Mobile Browser</li>
<li>Field description: When viewing on a mobile device (iPhone, Android, etc), clicking &#8216;yes&#8217; will disable the mobile browser.</li>
<li>Entries: First option: Yes, Second option: No</li>
</ul>
<p>On the second screen select the following items:</p>
<ul>
<li>Field type: Radio Buttons</li>
<li>Default value: no</li>
</ul>
<p>Save your custom profile field.</p>
<p>It will end up looking like this in the profile control panel of the end user:</p>
<p><center><img src="http://systembash.com/wp-content/uploads/2010/08/phpbb-style-disable.png" alt="phpbb iphone style disabler" title="phpbb-style-disable" width="500" height="107" class="size-full wp-image-710" /></center></p>
<p>Now the fun part, adding the code to your install to select which mobile browser to use automatically.</p>
<p>Back up, then open install dir/includes/session.php</p>
<p>Around line 1468 in the function setup</p>
<div class="codecolorer-container text mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1468<br />1469<br />1470<br />1471<br />1472<br /></div></td><td><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&nbsp; &nbsp; &nbsp; &nbsp; /**<br />
&nbsp; &nbsp; &nbsp; &nbsp; * Setup basic user-specific items (style, language, ...)<br />
&nbsp; &nbsp; &nbsp; &nbsp; */<br />
&nbsp; &nbsp; &nbsp; &nbsp; function setup($lang_set = false, $style = false)<br />
&nbsp; &nbsp; &nbsp; &nbsp; {</div></td></tr></tbody></table></div>
<p>Replace</p>
<div class="codecolorer-container php mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000000; font-weight: bold;">global</span> <span style="color: #000088;">$db</span><span style="color: #339933;">,</span> <span style="color: #000088;">$template</span><span style="color: #339933;">,</span> <span style="color: #000088;">$config</span><span style="color: #339933;">,</span> <span style="color: #000088;">$auth</span><span style="color: #339933;">,</span> <span style="color: #000088;">$phpEx</span><span style="color: #339933;">,</span> <span style="color: #000088;">$phpbb_root_path</span><span style="color: #339933;">,</span> <span style="color: #000088;">$cache</span><span style="color: #339933;">;</span></div></td></tr></tbody></table></div>
<p>with</p>
<div class="codecolorer-container php mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;height:400px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000000; font-weight: bold;">global</span> <span style="color: #000088;">$db</span><span style="color: #339933;">,</span> <span style="color: #000088;">$template</span><span style="color: #339933;">,</span> <span style="color: #000088;">$config</span><span style="color: #339933;">,</span> <span style="color: #000088;">$auth</span><span style="color: #339933;">,</span> <span style="color: #000088;">$phpEx</span><span style="color: #339933;">,</span> <span style="color: #000088;">$phpbb_root_path</span><span style="color: #339933;">,</span> <span style="color: #000088;">$cache</span><span style="color: #339933;">,</span> <span style="color: #000088;">$user</span><span style="color: #339933;">;</span><br />
<br />
<br />
<span style="color: #666666; font-style: italic;">//-----Begin phone detection &amp; redirection code-----</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$user</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">get_profile_fields</span><span style="color: #009900;">&#40;</span> <span style="color: #000088;">$user</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">data</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'user_id'</span><span style="color: #009900;">&#93;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$user_fields</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$user</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">profile_fields</span><span style="color: #339933;">;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #666666; font-style: italic;">// if (!($user_fields['pf_disable_mobile'] == 1)) { &nbsp;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #666666; font-style: italic;">// Thanks to Chris Dembek for this code fix</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">isset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$user_fields</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'pf_disable_mobile'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #339933;">!</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$user_fields</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'pf_disable_mobile'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">==</span> <span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #666666; font-style: italic;">//id of the iphone/mobile theme - SELECT THIS FROM YOUR STYLES </span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$mobilestyleid</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">6</span><span style="color: #339933;">;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #666666; font-style: italic;">//Fetch the users browser</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$user_browser</span> <span style="color: #339933;">=</span> <span style="color: #990000;">strtolower</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">browser</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #666666; font-style: italic;">//List of mobile user-agent keywords</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$browsers_array</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'240x320'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'320x240'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'blackberry'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'iemobile'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'minimobile'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'mobile'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'opera mini'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'pda'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'phone'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'pocket'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'psp'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'symbian'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'t-shark'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'wireless'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #666666; font-style: italic;">//Check for the user-agent in the list of mobile user-agents</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$browsers_array</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$ua_match</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">strpos</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$user_browser</span><span style="color: #339933;">,</span> <span style="color: #000088;">$ua_match</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">!==</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> &nbsp;<span style="color: #666666; font-style: italic;">//a match</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$style</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$mobilestyleid</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">data</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'is_mobile'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">break</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #666666; font-style: italic;">//-----End phone detection/redirection code-----</span></div></td></tr></tbody></table></div>
<p><strong>Make sure to replace $mobilestyleid = 6 with your style id number!</strong></p>
<p>Save your file. Test out the modifications on your phone, you should be presented with the mobile version on reload (make sure to purge any cache if you don&#8217;t see it right away). </p>
<p>Finally go into your profile and select the &#8216;disable mobile browser&#8217; option and make sure it reverts back to your regular default theme. </p>
<p>Let me know if you have any problems implementing this but it has worked great for this phpbb forum!</p>
]]></content:encoded>
			<wfw:commentRss>http://systembash.com/content/phpbb-3-iphone-style-theme-option-to-disable/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
		<item>
		<title>HBO GO Online Streaming Video Review and Screenshots</title>
		<link>http://systembash.com/content/hbo-go-online-streaming-video-review-and-screenshots/</link>
		<comments>http://systembash.com/content/hbo-go-online-streaming-video-review-and-screenshots/#comments</comments>
		<pubDate>Sat, 20 Feb 2010 02:55:35 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[Reviews]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Television]]></category>
		<category><![CDATA[newmedia]]></category>
		<category><![CDATA[review]]></category>

		<guid isPermaLink="false">http://systembash.com/?p=625</guid>
		<description><![CDATA[HBO GO has been in the works for a while now, and is an indication of what some networks are trying to do to add value to their subscription rate. Offering video for streaming online is definitely a benefit to a premium channel like HBO. And it is a glimpse as to what the future [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.hbogo.com">HBO GO</a> has been in the works for a while now, and is an indication of what some networks are trying to do to add value to their subscription rate. Offering video for streaming online is definitely a benefit to a premium channel like HBO. And it is a glimpse as to what the future of online video will hold.</p>
<p><img class="aligncenter size-full wp-image-628" title="HBO GO" src="http://systembash.com/wp-content/uploads/2010/02/hbo-go.png" alt="" width="500" height="300" /></p>
<p>I recently got rid of my cable box and implemented a <a href="http://systembash.com/content/replacing-the-cable-box-boxee-and-live-hd-tv-via-acer-revo-3610/">do-it-yourself solution</a>. Since HBO is a premium channel and encrypted, they force you to either buy a cable box via subscription or also a cable-card (which they also charge for). This actually gives me a unique perspective on the service: would I pay for HBO to receive the HBO GO online only offering?<span id="more-625"></span></p>
<p>Starting with the online interface, I was actually very impressed with it. It is done entirely in flash and is simple to use. To receive access to HBO GO at this point, you must be a <a href="http://www.verizon.com/fiostv">Verizon FiOS TV</a> subscriber and also be signed up to receive HBO. HBO will eventually be offering this to other cable providers in the future as part of the <a href="http://www.tvanywhere.org/">TV Anywhere</a> initiative. Once you log in you are presented with an image-rich user interface. You filter by TV show, movies and categories and everything was very intuitive. Information is available on shows and movies, including any extra available content. There is a &#8216;watchlist&#8217; where you can add your content into a queue which will play through automatically.</p>
<p><img class="size-full wp-image-627 alignleft" title="HBO GO Watchlist" src="http://systembash.com/wp-content/uploads/2010/02/hbogo-watchlist.png" alt="" width="321" height="271" /></p>
<p>By default, video will play in &#8220;SD&#8221; or Standard Definition. The quality is what you would expect, some graininess and compression is visible. However, there is a small switch named &#8220;Watch in HD&#8221;. <strong>The video looks simply spectacular in HD</strong>. If I had to guess I would say that it is in 720p resolution, which isn&#8217;t too bad for streaming video which has a very small buffer time.</p>
<p>The main drawback I saw was that the selection isn&#8217;t great, but it does give you a sample of the premium content available on HBO. It does offer HBO-only shows such as True Blood, The Sopranos, The Wire and a few more. Each category holds a dozen or so shows, and not the entire HBO library. However next to Netflix the movie selection is extremely sparse. As the service stands, I would not see it being valuable as a movie-streaming service. HBO really needs to up the ante and offer the majority of their content on their website if subscribers are paying for it. Curb Your Enthusiasm is a notable missing series.</p>
<p><a href="http://labs.adobe.com/technologies/flashplayer10/"><img class="alignright size-full wp-image-629" title="Adobe Labs" src="http://systembash.com/wp-content/uploads/2010/02/adobelabs.png" alt="" width="206" height="129" /></a>Another technical detail I wish to touch on is how they chose to use Adobe Flash for the technology for streaming video. I have a somewhat older CPU and Machine (Athlon X2 4200 CPU) and on Adobe 10.0 I did see some significant frame dropping, especially in HD mode. Having learned about Flash 10.1 beta coming out of <a href="http://labs.adobe.com/technologies/flashplayer10/">Adobe Labs</a>, and knowing that it is optimized to use your GPU to play flash video, I tried upgrading and it significantly improved the video performance. Windowed performance was a little shaky but Full-Screen framerate was great. If you are running an older system, <a href="http://labs.adobe.com/downloads/flashplayer10.html">consider upgrading to the latest Flash versions</a> for the best video performance.</p>
<p>There has been some talk about HBO possibly offering the HBO GO site to non-cable subscribers for a monthly fee. If they are going to be successful at offering an online-only offering, they will need to offer ALL, or at least a majority, of their shows and a larger movie library which equals their cable offerings. Without that, they are offering a restricted service which is basically just placating the growing demand for on-demand video from content providers and not setting the proper tone as a premium content provider.</p>
<p>The images below are screenshots from the service, to give you an idea as to how beautiful the interface is:</p>

<a href='http://systembash.com/content/hbo-go-online-streaming-video-review-and-screenshots/hbogo1/' title='HBO Go Homescreen '><img width="150" height="150" src="http://systembash.com/wp-content/uploads/2010/02/hbogo1-150x150.png" class="attachment-thumbnail" alt="The HBO GO Home Screen" title="HBO Go Homescreen" /></a>
<a href='http://systembash.com/content/hbo-go-online-streaming-video-review-and-screenshots/hbogo2/' title='HBO Go Video'><img width="150" height="150" src="http://systembash.com/wp-content/uploads/2010/02/hbogo2-150x150.png" class="attachment-thumbnail" alt="Video Playback Windowed" title="HBO Go Video" /></a>
<a href='http://systembash.com/content/hbo-go-online-streaming-video-review-and-screenshots/hbogo3/' title='HBO Go UI'><img width="150" height="150" src="http://systembash.com/wp-content/uploads/2010/02/hbogo3-150x150.png" class="attachment-thumbnail" alt="UI For HBO Go Windowed" title="HBO Go UI" /></a>
<a href='http://systembash.com/content/hbo-go-online-streaming-video-review-and-screenshots/hbogo4/' title='HBO Go Playback'><img width="150" height="150" src="http://systembash.com/wp-content/uploads/2010/02/hbogo4-150x150.png" class="attachment-thumbnail" alt="Playback" title="HBO Go Playback" /></a>
<a href='http://systembash.com/content/hbo-go-online-streaming-video-review-and-screenshots/hbogo5/' title='Movie Information'><img width="150" height="150" src="http://systembash.com/wp-content/uploads/2010/02/hbogo5-150x150.png" class="attachment-thumbnail" alt="HBO Go Movie Information" title="Movie Information" /></a>
<a href='http://systembash.com/content/hbo-go-online-streaming-video-review-and-screenshots/hbogo6/' title='Movie Menu'><img width="150" height="150" src="http://systembash.com/wp-content/uploads/2010/02/hbogo6-150x150.png" class="attachment-thumbnail" alt="Movie Menu" title="Movie Menu" /></a>
<a href='http://systembash.com/content/hbo-go-online-streaming-video-review-and-screenshots/hbogo7/' title='HBO Go Fullscreen'><img width="150" height="150" src="http://systembash.com/wp-content/uploads/2010/02/hbogo7-150x150.png" class="attachment-thumbnail" alt="HBO Go Fullscreen HD Video Screenshot" title="HBO Go Fullscreen" /></a>
<a href='http://systembash.com/content/hbo-go-online-streaming-video-review-and-screenshots/hbogo8/' title='HBO Go Shows'><img width="150" height="150" src="http://systembash.com/wp-content/uploads/2010/02/hbogo8-150x150.png" class="attachment-thumbnail" alt="HBO Go Show List" title="HBO Go Shows" /></a>
<a href='http://systembash.com/content/hbo-go-online-streaming-video-review-and-screenshots/hbogo9/' title='HBO Go Menu'><img width="150" height="150" src="http://systembash.com/wp-content/uploads/2010/02/hbogo9-150x150.png" class="attachment-thumbnail" alt="HBO Go Menu" title="HBO Go Menu" /></a>

<p>In summary, the HBO GO online on-demand video streaming service from HBO is a delight to use and the quality and performance is spectacular. However, the lack of content is obvious and if they wish to really attract subscribers they are going to have to offer much more. Otherwise it is just one of those extra services that might gain a few followers but isn&#8217;t going to drive users to the service in droves. I applaud HBO for dipping their toes into the online video streaming world &#8211; now they need to embrace it and lead us into the future of premium video content online.</p>
]]></content:encoded>
			<wfw:commentRss>http://systembash.com/content/hbo-go-online-streaming-video-review-and-screenshots/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>UbunTOS &#8211; Ubuntu 9.10 + TinyOS 2.x VirtualBox Image</title>
		<link>http://systembash.com/content/ubuntos-ubuntu-9-10-tinyos-2-x-virtualbox-image/</link>
		<comments>http://systembash.com/content/ubuntos-ubuntu-9-10-tinyos-2-x-virtualbox-image/#comments</comments>
		<pubDate>Tue, 09 Feb 2010 01:05:56 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[Programs]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[tinyos]]></category>
		<category><![CDATA[ubuntos]]></category>
		<category><![CDATA[virtualbox]]></category>

		<guid isPermaLink="false">http://systembash.com/?p=601</guid>
		<description><![CDATA[This is my admittedly minor but I hope useful contribution to the TinyOS development community. TinyOS is an Operating System and development framework for Wireless Sensor Networks and other platforms which has a small footprint and is very energy conscious. The TinyOS source code is available for free online for many operating systems, however it takes [...]]]></description>
			<content:encoded><![CDATA[<p>This is my admittedly minor but I hope useful contribution to the TinyOS development community. <a href="http://tinyos.net/">TinyOS</a> is an Operating System and development framework for Wireless Sensor Networks and other platforms which has a small footprint and is very energy conscious.</p>
<p>The TinyOS source code is available for free online for many operating systems, however it takes a long time to get the environment set up and it is not portable at all. I came across <a href="http://toilers.mines.edu/Public/XubunTOS">XubunTOS</a> but it did not seem to be in active development anymore, so I endeavored to install TinyOS 2.1 and 2.x from source into a regular Ubuntu image. The most help came from <a href="http://www.keally.org/2008/11/11/installing-tinyos-2x-on-ubuntu-with-iris-support/">Matt Keally&#8217;s Blog</a>. While doing this, I thought it might be useful to many others who wish to develop in the TinyOS framework but might not have the skills necessary to install it. Therefore, I developed this <a href="http://www.virtualbox.org/">VirtualBox</a> image so that you can install it on any system for which VirtualBox is available and supports USB passthrough for the programming of the motes. I&#8217;ve tested on Windows 7, Windows XP and it should work on any other host OS, but I would love to hear your feedback. All <a href="http://www.arsgeek.com/2007/05/10/exclusive-canonical-ltd-and-ubuntu-founder-mark-shuttleworth-announce-ubuntos/">funny business</a> aside, I present to the world UbunTOS:<span id="more-601"></span></p>
<p><a href="http://systembash.com/wp-content/uploads/2010/02/vboxubuntos.png"><img class="aligncenter size-full wp-image-605" title="vboxubuntos" src="http://systembash.com/wp-content/uploads/2010/02/vboxubuntos.png" alt="" width="453" height="230" /></a></p>
<h3>Features</h3>
<ul>
<li>Ubuntu 9.10 OS (patched through 2/5/2010)</li>
<li>Complete TinyOS development environment</li>
<li>TinyOS 2.1 Installed</li>
<li>TinyOS 2.x CVS Installed (default environment)</li>
<li>Portable for development in a variety of host environments</li>
<li>Patched motelist for MIB520 programming board</li>
</ul>
<h3>Directions</h3>
<ol>
<li>Unzip the file and import into VirtualBox. I recommend at least 768M RAM</li>
<li>Boot system</li>
<li>Enable USB passthrough for the programming board. Check off the USB device in the menu as shown:<br />
<img class="aligncenter size-full wp-image-606" title="vboxusb" src="http://systembash.com/wp-content/uploads/2010/02/vboxusb.png" alt="VirtualBox USB Passthrough" width="381" height="132" /></li>
<li>Check &#8216;motelist&#8217; to see which port it has been assigned to (motelist has been patched to see MIB520 programming board)</li>
<li>Program away! TinyOS resides in /opt/</li>
</ol>
<h3><span style="text-decoration: underline;">Download</span></h3>
<p>MD5 sum:    <strong>9a27ba7902337139c2eae0121ec6ca4e</strong></p>
<p>Download UbuntuTOS_Ubuntu-9.10_TinyOS-2.x.zip [2/8/2010]:    [ <a href="/devel/UbuntuTOS_Ubuntu-9.10_TinyOS-2.x.zip.torrent"><strong>torrent</strong></a> | <a href="http://systembash.com/UbuntuTOS_Ubuntu-9.10_TinyOS-2.x.zip"><strong>http</strong></a> ]</p>
<p>If you happen to have spare bandwidth, please <a href="http://systembash.com/contact/">send me a note</a> and I will link to the file via http or ftp.</p>
<h3>Notes</h3>
<ul>
<li>The default username is wcu and password is <strong>nosecurity</strong></li>
<li>The hostname is wcu-desktop, in honor of <a href="http://www.wcupa.edu">West Chester University</a> which is sponsoring my research into Wireless Sensor Networks.</li>
<li>To switch between the TinyOS 2.x and 2.1 environment, run the shell script /opt/tinyos-2.1.0/tinyos.sh or /opt/tinyos-2.x/tinyos-2.x.sh. By default the 2.x environment is loaded via ~/.bashrc/.</li>
<li>To update TinyOS 2.x with latest CVS Code:<br />
cd /opt; cvs -z3 -d:pserver:anonymous@tinyos.cvs.sourceforge.net:/cvsroot/tinyos co -P tinyos-2.x</li>
<li>I&#8217;ve testing this using <em>Mica2 </em>and<em> Micaz</em>. Let me know if you have success with other combinations as I just do not have the hardware to test.</li>
<li>Usually the programming port and the data port are on consecutive ports. In the example above, the programming device is /dev/ttyUSB0 and the data port, for serialforwarder, is /dev/ttyUSB1</li>
</ul>
<h3>Known Bugs?</h3>
<p>If you have issues while enabling USB Passthrough, such as an error like:</p>
<p>Version:1.0 StartHTML:0000000105 EndHTML:0000001970 StartFragment:0000000127 EndFragment:0000001952</p>
<p><!--StartFragment--></p>
<table border="0" cellspacing="0" cellpadding="0" width="100%" bgcolor="#eeeeee">
<tbody>
<tr>
<td>Result Code:</td>
<td>E_INVALIDARG (0&#215;80070057)</td>
</tr>
<tr>
<td>Component:</td>
<td>HostUSBDevice</td>
</tr>
<tr>
<td>Interface:</td>
<td>IHostUSBDevice {173b4b44-d268-4334-a00d-b6521c9a740a}</td>
</tr>
<tr>
<td>Callee:</td>
<td>IConsole {6375231a-c17c-464b-92cb-ae9e128d71c3}</td>
</tr>
</tbody>
</table>
<p>Reboot your host system. I believe this happens while reinstalling the passthrough driver for the USB device for the first time. Rebooting seems to fix this problem, and after the initial setup this problem seems to disappear.</p>
<p>If you have any other problems (or compliments!) please leave a message via the form below.</p>
]]></content:encoded>
			<wfw:commentRss>http://systembash.com/content/ubuntos-ubuntu-9-10-tinyos-2-x-virtualbox-image/feed/</wfw:commentRss>
		<slash:comments>63</slash:comments>
		</item>
		<item>
		<title>Replacing the Cable Box &#8211; Boxee and Live HD TV with the Acer Revo 3610</title>
		<link>http://systembash.com/content/replacing-the-cable-box-boxee-and-live-hd-tv-via-acer-revo-3610/</link>
		<comments>http://systembash.com/content/replacing-the-cable-box-boxee-and-live-hd-tv-via-acer-revo-3610/#comments</comments>
		<pubDate>Thu, 21 Jan 2010 17:17:44 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Other Technology]]></category>
		<category><![CDATA[Reviews]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Television]]></category>
		<category><![CDATA[acer-revo]]></category>
		<category><![CDATA[boxee]]></category>
		<category><![CDATA[cable]]></category>
		<category><![CDATA[home-theater]]></category>
		<category><![CDATA[htpc]]></category>

		<guid isPermaLink="false">http://systembash.com/?p=551</guid>
		<description><![CDATA[Gone is my 500+ channel television subscription along with the required boxes necessary to decode all of that content. The DVR, which has been a mainstay of my family's television viewing habits, has been ousted. In it's place is a kick-ass system that keeps the DVR functionality for many of the TV shows that we usually watch, brings in much new content, and also saves me a few bucks each month.

Let's face it, you don't want all of the content that your cable provider offers. Cable providers have fought a-la-carte programming tooth and nail for this very reason. Much of it is specialty programming, and though I admit it is nice to know it was there, my family and I rarely watched any of it. My new setup brings many new sources as well as a CHOICE to what you want to view. I am very happy with the results so far.]]></description>
			<content:encoded><![CDATA[<p>Gone is my 500+ channel television subscription along with the required boxes necessary to decode all of that content. The DVR, which has been a mainstay of my family&#8217;s television viewing habits, has been ousted. In it&#8217;s place is a kick-ass system that keeps the DVR functionality for many of the TV shows that we usually watch, brings in much new content, and also saves me a few bucks each month.</p>
<p>Let&#8217;s face it, you don&#8217;t want all of the content that your cable provider offers. Cable providers have fought a-la-carte programming tooth and nail for this very reason. Much of it is specialty programming, and though I admit it is nice to know it was there, my family and I rarely watched any of it. My new setup brings many new sources as well as a CHOICE to what you want to view. I am very happy with the results so far.<span id="more-551"></span></p>
<h2>My Requirements</h2>
<p>There are a few requirements I had made for myself when deciding to go this route:</p>
<ul>
<li><strong>Live Broadcast TV in HD</strong> must still be possible. Bonus for being able to DVR television shows. </li>
<li><strong>Ease of Use</strong> &#8211; must be usable by my family. I don&#8217;t expect it to be as &#8216;simple&#8217; as a vanilla cable box, but I want it to be close</li>
<li><strong>Access to Local Media</strong> &#8211; I want to be able to stream my backed-up movies, photos, and music</li>
</ul>
<h2>Backend Systems</h2>
<p>I have an existing network infrastructure in my house, which I admit most non-geeks would not have set up. This is necessary for the &#8220;Live TV&#8221; portion of my setup as it includes the HD Tuner cards which do not fit into my new system as well as the muscle to compress these recordings. My current setup includes:</p>
<ul>
<li>10/100/1000 Gigbit router with Wireless-N</li>
<li>File server with 1.5TB of RAID storage space to store movies, music and other files</li>
<li>External &#8220;Computer&#8221; acting as a server for BeyondTV. This computer includes a tuner card which handles unencrypted QAM streams</li>
</ul>
<h2>The Hardware</h2>
<p><a href="http://systembash.com/wp-content/uploads/2010/01/20100104_202311__86371.jpg"><img src="http://systembash.com/wp-content/uploads/2010/01/20100104_202311__86371-300x200.jpg" alt="" title="Inside the Box" width="300" height="200" class="alignright size-medium wp-image-563" /></a></p>
<p>The system is actually very simple on the hardware side. Besides the TV, only 2 pieces of hardware are needed.</p>
<h3><a href="http://us.acer.com/acer/productv.do?LanguageISOCtxParam=en&#038;kcond61e.c2att101=68797&#038;sp=page16e&#038;ctx2.c2att1=25&#038;link=ln438e&#038;CountryISOCtxParam=US&#038;ctx1g.c2att92=450&#038;ctx1.att21k=1&#038;CRC=694780094">Acer Aspire Revo Computer (3610)</a></h3>
<p>This is a dual-core Intel Atom computer running at 1.6Ghz. My specific system included 2GB of RAM and a 320GB hard drive. It has built in Wifi-N network connectivity, a card reader, multiple USB ports, optical audio, HDMI port, VGA port and analog audio jacks.</p>
<p>I picked this system not only because of its low cost (~$300) but because of the <a href="http://www.nvidia.com/object/sff_ion.html">Nvidia ION</a> chipset running under it&#8217;s hood. This chipset is optimized to handle 1080p HDTV video along with high def audio. In includes the Nvidia CUDA accellerations and is optimized to work with Windows 7. This chipset is also capable of handing HD video using Flash 10.1 (currently in open beta). This means that it can handle the HD Flash video since the main Intel Atom CPU is not doing the heavy lifting on the decoding of this content.</p>
<h3><a href="http://www.snapstream.com/Products/Firefly/">Snapstream Firefly Remote</a></h3>
<p>This is a RF Remote which is customizable via XML configuration profiles. There is a <a href="http://www.geektonic.com/2009/09/control-boxee-with-snapstream-firefly.html">profile available for both Boxee</a> and Snapstream BeyondTV.</p>
<h2>The Software</h2>
<p>I decided to run Windows 7 for the OS. Windows 7 Home Premium runs great on this system and the drivers that are currently published work very well on it. It includes Windows Media for as a possible frontend but I have decided to use Boxee due to the plethora of content available and the active development of the platform.</p>
<h3><a href="http://www.snapstream.com/products/beyondtvlink/">BeyondTV Link</a></h3>
<p>This software connects via the <del datetime="2010-01-12T18:03:29+00:00">wireless</del> wired network to the BeyondTV server in my house which actually has the tuner cards. This offsets some tasks handled by the server such as heavy disk I/O required for recording HD video streams and compressing them into smaller video files. </p>
<p>I did have some problem with High Definition video at first. When I used wireless-N, which should have plenty of bandwidth to handle even HD video, I had very stuttery playback. After going through a lot of testing, it seems that even though the bandwidth is plenty, the BeyondTV software suffers from a lack of flexibility when it comes to any sort of network latency. Therefore any sort of wireless connection does not appear to support streaming HD video. 100/1000 seems to be the only way to go if you are going to view live HD video on this machine.</p>
<p>After a show is recorded, is is re-encoded (they call it &#8220;ShowSqueeze&#8221;) using the H.264 codec. You save about 80% of the space of a normal HD TV show and the quality if very good. The default decoder that BeyondTV uses seemed to do fine, but I also installed CoreAVC codec which is CUDA optimized for handling H.264 video decoding. CoreAVC uses nVidia CUDA optimization which the system supports.</p>
<h3><a href="http://www.boxee.tv">Boxee</a></h3>
<p>Boxee handles everything from internet streamed video content to local content playback. The full capabilities of the Boxee interface is beyond the scope of this post, but it has numerous features:</p>
<ul>
<li>Streams Hulu, Fancast, Netflix and Pandora (to mention just the big players)</li>
<li>Custom &#8220;Apps&#8221; to handle many other video sources</li>
<li>Local Media handles streaming from a mapped network drive. Plays many codecs and containers including: MKV, AVI, DivX, Xvid, WMV, MP3, etc.</li>
<li>Social Media Connectivity</li>
<li>Refined &#8217;10 foot&#8217; UI</li>
</ul>
<p>Boxee is slick. Using it with the remote is a joy and you can really stream a LOT of video and audio from MANY different sources. This also might be its downfall. Along with the big name streams there are 100s of other ones available that would not be suitable for someone used to cable TV content. Also it seems to require a lot of clicking. Television is a different beast &#8211; you set a channel and can leave it on 24/7. With Boxee you need to select your content &#8211; which is both good and bad. It is good in that you get to watch what content you want, but bad in that you are not introduced to new content in a way a television station will.</p>
<p>Boxee Beta works well for most content but I did find issues with online content from several different sources such as ABC and the WB. The software is in active development so if you find this issues make sure to report them to the developers. </p>
<p>Here is a gallery of shots of the Acer Revo 3610, BeyondTV and Boxee Beta</p>

<a href='http://systembash.com/content/replacing-the-cable-box-boxee-and-live-hd-tv-via-acer-revo-3610/htpcthumb/' title='Acer Revo 3610 &amp; Boxee'><img width="150" height="150" src="http://systembash.com/wp-content/uploads/2010/01/htpcthumb-150x150.jpg" class="attachment-thumbnail" alt="Acer Revo 3610 &amp; Boxee" title="Acer Revo 3610 &amp; Boxee" /></a>
<a href='http://systembash.com/content/replacing-the-cable-box-boxee-and-live-hd-tv-via-acer-revo-3610/2010-01-11_2233/' title='Running BeyondTV Link, no CPU problems here'><img width="150" height="150" src="http://systembash.com/wp-content/uploads/2010/01/2010-01-11_2233-150x150.png" class="attachment-thumbnail" alt="Running BeyondTV Link, no CPU problems here" title="Running BeyondTV Link, no CPU problems here" /></a>
<a href='http://systembash.com/content/replacing-the-cable-box-boxee-and-live-hd-tv-via-acer-revo-3610/2010-01-11_2232/' title='HD Screenshot from BeyondTV Link'><img width="150" height="150" src="http://systembash.com/wp-content/uploads/2010/01/2010-01-11_2232-150x150.png" class="attachment-thumbnail" alt="HD Screenshot from BeyondTV Link" title="HD Screenshot from BeyondTV Link" /></a>
<a href='http://systembash.com/content/replacing-the-cable-box-boxee-and-live-hd-tv-via-acer-revo-3610/20100104_202054__86370/' title='The packaging for Acer Revo 3610'><img width="150" height="150" src="http://systembash.com/wp-content/uploads/2010/01/20100104_202054__86370-150x150.jpg" class="attachment-thumbnail" alt="The packaging for Acer Revo 3610" title="The packaging for Acer Revo 3610" /></a>
<a href='http://systembash.com/content/replacing-the-cable-box-boxee-and-live-hd-tv-via-acer-revo-3610/20100104_202311__86371/' title='Inside the Box'><img width="150" height="150" src="http://systembash.com/wp-content/uploads/2010/01/20100104_202311__86371-150x150.jpg" class="attachment-thumbnail" alt="Inside the Box" title="Inside the Box" /></a>
<a href='http://systembash.com/content/replacing-the-cable-box-boxee-and-live-hd-tv-via-acer-revo-3610/20100104_203331__86372/' title='The original OS'><img width="150" height="150" src="http://systembash.com/wp-content/uploads/2010/01/20100104_203331__86372-150x150.jpg" class="attachment-thumbnail" alt="The original OS" title="The original OS" /></a>
<a href='http://systembash.com/content/replacing-the-cable-box-boxee-and-live-hd-tv-via-acer-revo-3610/20100111_230155__86379/' title='Acer Revo 3610 Running Boxee Beta'><img width="150" height="150" src="http://systembash.com/wp-content/uploads/2010/01/20100111_230155__86379-150x150.jpg" class="attachment-thumbnail" alt="Acer Revo 3610 Running Boxee Beta" title="Acer Revo 3610 Running Boxee Beta" /></a>
<a href='http://systembash.com/content/replacing-the-cable-box-boxee-and-live-hd-tv-via-acer-revo-3610/20100111_230225__86380/' title='Another view of the Acer Revo 3610'><img width="150" height="150" src="http://systembash.com/wp-content/uploads/2010/01/20100111_230225__86380-150x150.jpg" class="attachment-thumbnail" alt="Another view of the Acer Revo 3610" title="Another view of the Acer Revo 3610" /></a>
<a href='http://systembash.com/content/replacing-the-cable-box-boxee-and-live-hd-tv-via-acer-revo-3610/20100111_230248__86381/' title='Running Boxee Beta, no problems!'><img width="150" height="150" src="http://systembash.com/wp-content/uploads/2010/01/20100111_230248__86381-150x150.jpg" class="attachment-thumbnail" alt="Running Boxee Beta, no problems!" title="Running Boxee Beta, no problems!" /></a>

<h2>The Initial Results</h2>
<p>All being said and done, some not-too-obvious strengths and weaknesses appeared from using this setup. Media companies &#8211; please pay attention to these so you can improve your offerings!</p>
<h3>Strengths</h3>
<p>All Boxee content is on demand. All of your media is now available on your television and in your living room. LiveTV via this method retains the all-important DVR but is a fraction of the cost, which is the real monetary benefit to moving to this system from a proprietary cable system solution. </p>
<p>Running BeyondTV not only gives you the ability to watch TV on any PC throughout the home (with BeyondTV Link), but allows you to stream it online &#8211; so for example if you are at work you can watch any recorded shows or live TV. </p>
<p>You no longer live on the timetable of the major television stations but can feel free to view content when you are ready. Content on Boxee usually appears the day after it is on live TV, but I find more and more this is how I prefer to watch TV anyway.</p>
<h3>Weaknesses</h3>
<p>BeyondTV development seems to have been all but abandonded by the Snapstream team, who are now focused on enterprise markets. Although it is a capable system (still) it has not been in active development for 2 or more years. The age is starting to show, and I hope Snapstream comes around and continues development. As far as alternatives go, MythTV and SageTV are both out there but I was never a fan of either. I am investigating switching to the Windows Media Center platform for television but don&#8217;t have any results of that so far.</p>
<p>Boxee is still in Beta status and does have some bugs. Some random crashing and the inability to stream some content it told me was available is frustrating. The wide variety of content available via a &#8217;10-foot&#8217; interface more than makes up for this drawback.</p>
<p>The lack of premium television stations is also notable. The whole Cablecard debacle of the past 8 years shows the resistance from the industry to modernize our television systems. With more premium content available on Amazon Video on Demand and iTunes, this becomes less of an issue. Since this is actually a PC, you can play this content albeit not via the Boxee interface.</p>
<h3>The Future</h3>
<p>So what will the future bring? The market is prime for a Boxee app which is basically a streaming television provider. Like a traditional cable company (or FiOS), you will install this app and pay a monthly fee for television program which is streamed over the internet. Premium channels are available a-la-cart finally as well as the traditional packages. Although due to licensing restrictions it won&#8217;t be free, you will be able to save 20-30% over traditional cable provider&#8217;s television programming. It may be offered for about $40-50 a month.</p>
<p>Paid, on-demand video is also lacking. If Boxee got on board with Amazon Video on Demand, it would be a powerful combination. This would allow you to both &#8220;rent&#8221; and &#8220;own&#8221; movies and television from Amazon&#8217;s streaming service. <a href="http://blog.boxee.tv/2010/01/20/coming-soon-boxee-payments/">Boxee recently announced</a> that it is developing Boxee Payments which will allow payments from the content consumers, to the content providers. I am looking forward to what this will bring the platform.</p>
<p>I may have jumped the gun a bit since the Boxee Box is soon to be available but my system does handle a few tasks that would not be possible on a streaming media box, namely live TV with DVR. If you are happy with you current cable situation, you would not likely see a lot of benefit moving to my setup. However if you want control of your media and are tired of the big named cable companies dictating how and when you get your entertainment, then you would definitely enjoy the freedom this setup provides.</p>
]]></content:encoded>
			<wfw:commentRss>http://systembash.com/content/replacing-the-cable-box-boxee-and-live-hd-tv-via-acer-revo-3610/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Operation Replace Cable Programming and HD DVR Box &#8211; Part 1 &#8211; The Plan</title>
		<link>http://systembash.com/content/operation-replace-cable-programming-and-hd-dvr-box-part-1-the-plan/</link>
		<comments>http://systembash.com/content/operation-replace-cable-programming-and-hd-dvr-box-part-1-the-plan/#comments</comments>
		<pubDate>Sun, 27 Dec 2009 04:16:30 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Other Technology]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Television]]></category>
		<category><![CDATA[boxee]]></category>
		<category><![CDATA[replace-cable]]></category>

		<guid isPermaLink="false">http://systembash.com/?p=523</guid>
		<description><![CDATA[I&#8217;ve decided to replace my cable plan and DVR box with something a little more&#8230; functional. Sure we get a ton of channels from Verizon FiOS, but we hardly ever watch them. Our television viewing habits mainly consist of a few programs that my wife watches and a few programs that I watch, but we [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve decided to replace my cable plan and DVR box with something a little more&#8230; functional.</p>
<p>Sure we get a ton of channels from Verizon FiOS, but we hardly ever watch them. Our television viewing habits mainly consist of a few programs that my wife watches and a few programs that I watch, but we almost never watch them live. We typically DVR them and then watch them on our own time. For the few instances where we would like to watch live TV, for example when a Penn State game is on, we would like to be able to watch that. Normally the games are on ABC/NBC/Fox so premium cable channels such as ESPN aren&#8217;t necessarily needed. There will be some instances where a game may only be available on the Big 10 network or some other premium channel, but honestly I am not that big into sports and the times that this might occur will be few and far between, maybe 1 or 2 times a year, which I can deal with.<span id="more-523"></span></p>
<p>Of course the other thing I have to consider which kicking out the cable box is the &#8220;Wife Acceptance Factor&#8221; or WAF. I believe my solution has a very high WAF ratio and I am hoping she will agree.</p>
<p>The other main &#8220;Audience&#8221; of our TV is our kids. They shouldn&#8217;t be watching it much anyway, but let&#8217;s be honest here. They like their kids programs, but they are all DVRed and watched time-shifted anyway. For the programs they enjoy, we can either catch them on the public channels, or we can buy the DVDs and watch them that way.</p>
<p>The current setup:</p>
<ul>
<li>Verizon FiOS Premier TV Plan</li>
<li>LG TV 37&#8243;</li>
<li>2-tuner HD DVR Box</li>
</ul>
<p style="text-align: left;"><a href="http://systembash.com/wp-content/uploads/2009/12/329774_g1.jpg"><img class="aligncenter size-full wp-image-526" style="float: right;" title="Acer Revo 3610" src="http://systembash.com/wp-content/uploads/2009/12/329774_g1.jpg" alt="" width="275" height="207" /></a>So here is the tentative planned system:</p>
<ul>
<li>Eliminating our cable package and going with the &#8220;Local&#8221; plan at $12.99 a month. This should give us the local OTA in an Uncrypted QAM format that at a minimum our TV can decode using it&#8217;s tuner, and at best via our media streaming server. We could go with an antenna and pick them up but we are pretty far from the broadcast sources and it is questionable whether we would be able to pull them in. (~-$60/mo)</li>
<li><a href="http://us.acer.com/acer/seu30e.do?kcond61e.c2att101=68797&amp;LanguageISOCtxParam=en&amp;link=ln400e&amp;CountryISOCtxParam=US&amp;acond125e=68797&amp;sp=page18e&amp;ctx1g.c2att92=450&amp;ctx2.c2att1=25&amp;ctx1.att21k=1&amp;CRC=3511398799">Acer Aspire Revo 3610</a> Dual-Core Intel Atom machine with  Nvidia Ion Graphics. This will allow me to run the applications which I will explain further below. ($295 w/o OS, +$50 for Windows 7 [I already have a copy of Win7 to install])</li>
<li><a href="http://www.snapstream.com/">BeyondTV</a> will be running on my main desktop system. I have a tuner card which receives QAM content. BeyondTV link, from reports, will run on this Revo system and allow me to stream HD TV to it as well as play any DVRed content. ($99 + $30)</li>
<li><a href="http://www.hauppauge.com/site/products/prods_hvr_internal.html">Hauppage WinTV</a> tuner card. I currently have a single tuner card but if this works out will likely upgrade to a dual tuner card for more recording sources and the ability to watch a channel while recording another. (~$100)</li>
<li><a href="http://www.snapstream.com/Products/Firefly/">Snapstream FireFly</a> remote to control the system. ($50)</li>
<li><a href="http://www.boxee.tv/">Boxee</a> as the main non-TV user interface. ($0)</li>
<li>Upgrade network to Wireless-n. Currently running B/G and I could run a physical network drop to the TV but I think just for future purposes upgrading the wireless network will be the best way to go.</li>
</ul>
<p>The Acer Aspire Revo 3610 system is the core of the system besides the desktop which will do some of the heavy lifting with the TV tuner. It is a dual-core Intel Atom (1.6 ghz) system with the highly vaulted Nvidia Ion graphics chipset. This will allow much of the video processing to be sent to the graphics chip, which lets this little system handle 1080p video without problem, from the disk at least. One thing that is hanging out there is the question of will I be able to stream the video from my file server &#8211; so this is definitely a concern I have. From report&#8217;s I&#8217;ve seen from others, it can handle the workload but honestly until I see it working I will be skeptical. It was also recommended by the Boxee team as being a system to use and which will be supported in development in the future.</p>
<p>Television, both live and recorded, will be handled by Snapstream BeyondTV. My main PC upstairs contains the tuner card, and this system essentially acts as the interface for it. Anything non-television will be handled by Boxee which has a stellar interface. The Snapstream Firefly remote works with both BeyondTV and Boxee, allowing for one remote for all content.</p>
<p>So how do I plan on using the system:</p>
<h1>1. Television</h1>
<p style="text-align: left;"><img class="aligncenter size-medium wp-image-527" style="float: left; margin: 10px 15px 15px 0px;" title="Snapstream Firefly" src="http://systembash.com/wp-content/uploads/2009/12/firefly-202x300.jpg" alt="" width="202" height="300" />Using BeyondTV and BeyondTV Link, I will be able to watch Live, High Def television. Also will be able to time-shift content and have the ability to archive programs for watching later.</p>
<p>This beats Verizon&#8217;s HD DVR box in several ways. First of all, it is limited to 120GB which only holds several hours of HD content. We often find ourselves up against this limit. I&#8217;ve tried contacting them via multiple channels to inquire about expanding this with the built in USB/Firewire ports but they are not interested in having customers do this. Their loss.</p>
<p>For &#8216;archived&#8217; television programs, I will be able to manually or automatically convert the programs into a higher compression format for indefinite storage. BeyondTV even includes &#8220;StreamSnip&#8221; which can cut out the commercials from your content. The alternative is doing this manually or just skipping commercials while they are playing.</p>
<p>For television programs that are not available via broadcast network television there are several options which this setup will supports.</p>
<p><strong>Hulu</strong></p>
<p>Many CBS, Fox, ABC and MTV shows are on Hulu with other networks signing up all of the time.</p>
<p><strong>Fancast</strong></p>
<p>This is another website, sponsored by Comcast, which includes shows from Hulu but also from other sources. There is a Boxee app which allows you to view these shows via the interface. Fancast is mainly an index of shows available online in streaming format.</p>
<p><strong>iTunes/Amazon</strong></p>
<p>For the remaining shows that aren&#8217;t available for free you can usually find them online in the iTunes or Amazon library. While you won&#8217;t be able to see them as they broadcast, they are usually available on the sites a day or 2 after they air. I will admit that my main holdup for switching over will be how I will not be able to see Mad Men as it airs, as it is one of my favorite shows currently airing and is only available on AMC, which doesn&#8217;t stream for free.</p>
<p>On the flip side, only AMC in standard definition was available via Verizon FiOS. Through the <a href="http://www.amazon.com/gp/product/B002OB7BO6/ref=atv_dp_series?ie=UTF8">Mad Men subscription via Amazon</a> or iTunes, the high def version will be available and also you get to keep it, without risk of &#8216;running out of room&#8217; on your DVR device.</p>
<p><strong>Other</strong></p>
<p>You could either buy the season DVDs or acquire them through other means [torrent] if the above all fails. For some specific content, options are available online for purchasing a season or some type of other streaming pass, such as the <a href="http://video.bigtennetwork.com/index">Big10 Network</a>.</p>
<h1>2. Movies</h1>
<p>We have an extensive DVD and Blu-ray collection and I am planning on ripping these for both backup purposes and to be able to access them on-demand using the media server. Boxee has a great interface for watching these movies, for example it automatically adds the disk covers.</p>
<p>Boxee also includes an app to allow you to stream Netflix movies to the device. If you are just looking for this feature there are several devices out there that will do it, such as Popcorn Hour, a Netflix-connected Blu-ray player, PS3/Xbox or the upcoming Boxee box. But I thought that having a machine to handle this will allow you to do other things as well.</p>
<p>Eventually I am hoping that <a href="http://getsatisfaction.com/boxee/topics/boxee_should_support_amazon_video_on_demand">Boxee will add an app to allow viewing of Amazon Video On Demand</a>. While not currently available, this essentially gives any Boxee machine ability to view movies &#8220;On Demand&#8221; much like a cable box does. It would also allow the viewing of &#8220;Season Passes&#8221; for television shows. This is where the future is at &#8211; so I hope both Amazon and Boxee are on board with getting together on this.</p>
<p>I am going to keep the Blu-ray player we currently have attached, but I am hoping in the future to eliminate it either by ripping the movies to storage or by attacking a blu-ray drive to the machine.</p>
<h1>3. Music/Audio</h1>
<p>We did occasionally use Verizon&#8217;s music channels, but lets be honest, there are a lot of better options out there. I am a Pandora One subscriber and there is a Boxee app to connect into Pandora. There are a ton of other choices out there, and in the long run even a subscription to something like Rhapsody might be worth-while if we find outselves listening to a lot of music.</p>
<p>Boxee will also allow us to stream all of our downloaded music and stored MP3s, something that Verizon boxes can do but they charge $20 for their &#8220;Media Manager&#8221; package. While their setup might work for those who don&#8217;t know how to set something like this up, I thought it was a bit of a rip at $20 monthly for something you already own.</p>
<p>Boxee also has a great podcasting interface, and although I don&#8217;t think that I would use this feature for someone who is into podcasts this could be a neat function.</p>
<h1>4. Other content</h1>
<p>This is beyond the scope of this post, but via the Boxee interface there is a ton of content out there that is available for free. Everything from YouTube to OpenCourseWare to any type of video RSS feed. Developers are adding more content daily. A lot of it is niche content and not everyone will want to be navigating around the interface looking for things, but there is  TON of information that is available via the Boxee software. After I get this set up, I plan on writing a post about how my family actually uses the setup.</p>
<h2>In Conclusion</h2>
<p>In summary, the above is my plan for the great switchover. With the savings from not paying for Cable TV and all of those channels that I never use, I am hoping the up-front investment will pay for itself in about 6 months. I&#8217;m sure there will be some items which I forgot to include and will be last moment purchases but I think since I&#8217;ve thought this through pretty thoroughly they will keep to a mimimum.</p>
<p><em>Up front costs: $600 (personally defrayed 50% since I have most of the required software and hardware)<br />
<span style="font-style: normal;"><em>Monthly savings: $60</em></span></em></p>
<p>Let me know if you have any thoughts about my solutions or recommendations on anything you think I will need to add to the system. I&#8217;ll be writing  series of posts on the hardware and my progress in getting the system set up. I plan on documenting the setup, and the speedbumps, to assist others in setting up a similar system. You can also follow my progress via <a href="http://twitter.com/ddrager">@ddrager</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://systembash.com/content/operation-replace-cable-programming-and-hd-dvr-box-part-1-the-plan/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Tweaking TCP for Fast (100mbps+) Connections and Transfers on Linux</title>
		<link>http://systembash.com/content/tweaking-tcp-for-fast-100mbps-connections-and-transfers-on-linux/</link>
		<comments>http://systembash.com/content/tweaking-tcp-for-fast-100mbps-connections-and-transfers-on-linux/#comments</comments>
		<pubDate>Thu, 24 Dec 2009 01:26:24 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[System Administration]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[Ethernet]]></category>
		<category><![CDATA[kernel]]></category>
		<category><![CDATA[network]]></category>
		<category><![CDATA[speed]]></category>
		<category><![CDATA[tcp/ip]]></category>

		<guid isPermaLink="false">http://systembash.com/?p=516</guid>
		<description><![CDATA[We recently did some speed testing on a few of the servers on our network, and we were not receiving the speeds expected considering they were sitting on a physical 100mbps ethernet port. The servers were indeed on physical 100mbps connection, however wget (TCP/IP, HTTP Port 80) download tests showed only a max of about 1.5MB/sec (note the 8bit/byte conversion, so this translates to about 12mbits).]]></description>
			<content:encoded><![CDATA[<p>We recently did some speed testing on a few of the servers on our network, and we were not receiving the speeds expected considering they were sitting on a physical 100mbps ethernet port. The servers were indeed on physical 100mbps connection, however wget (TCP/IP, HTTP Port 80) download tests showed only a max of about 1.5MB/sec (note the 8bit/byte conversion, so this translates to about 12mbits).</p>
<p><a href="http://systembash.com/wp-content/uploads/2009/12/fastnetwork.png"><img class="aligncenter size-full wp-image-519" title="fastnetwork" src="http://systembash.com/wp-content/uploads/2009/12/fastnetwork.png" alt="" width="531" height="203" /></a></p>
<p>This is due to how TCP frames data packets and optimizes them for connections. I believe by default TCP on most systems assumes about a 10mbit max capable transfer rate, so it does not show performance gains on a larger pipe without modification to the kernel options which govern TCP/IP frame size and features. Some distributions may make this change for you automatically however many will not.</p>
<p>To keep things short and sweet, we took the following advice from <a href="http://www.speedguide.net/">Speedguide.net</a> on tweaking TCP parameters on linux kernel systems. This will cover Linux 2.1 and above &#8211; which means CentOS, RedHat, Ubuntu, Debian and many more distributions.</p>
<p>The TCP Parameters we will change are:</p>
<ul>
<li>/proc/sys/net/core/rmem_max - Maximum TCP Receive Window</li>
<li>/proc/sys/net/core/wmem_max &#8211; Maximum TCP Send Window</li>
<li>/proc/sys/net/ipv4/tcp_timestamps - (<a href="http://www.ietf.org/rfc/rfc1323.txt">RFC 1323</a>) timestamps add 12 bytes to the TCP header&#8230;</li>
<li>/proc/sys/net/ipv4/tcp_sack &#8211; tcp selective acknowledgements.</li>
<li>/proc/sys/net/ipv4/tcp_window_scaling &#8211; support for large TCP Windows (<a href="http://www.ietf.org/rfc/rfc1323.txt">RFC 1323</a>). Needs to be set to 1 if the Max TCP Window is over 65535.</li>
</ul>
<p>If you recall /proc/ is the volatile portion of kernel configuration, you can change it on the fly but it will be reset on reboot unless settings are changed via an init file or setting the options in /etc/sysctl.conf. To change the settings once (to test):</p>
<pre class="prettyprint">echo 256960 > /proc/sys/net/core/rmem_default
echo 256960 > /proc/sys/net/core/rmem_max
echo 256960 > /proc/sys/net/core/wmem_default
echo 256960 > /proc/sys/net/core/wmem_max
echo 0 > /proc/sys/net/ipv4/tcp_timestamps
echo 1 > /proc/sys/net/ipv4/tcp_sack
echo 1 > /proc/sys/net/ipv4/tcp_window_scaling</pre>
<p>And to apply them for good, add the following lines to /etc/sysctl.conf:</p>
<pre class="prettyprint">net.core.rmem_default = 256960
net.core.rmem_max = 256960
net.core.wmem_default = 256960
net.core.wmem_max = 256960
net.ipv4.tcp_timestamps = 0
net.ipv4.tcp_sack = 1
net.ipv4.tcp_window_scaling = 1</pre>
<p>Use &#8216;sysctl -p&#8217; to apply the changes in this file to your running Linux instance. Feel free to experiment with these numbers to see how they impact your transfers, it depends a lot on how many and how large the files are that you transferring. These changes must be made on the SERVER side, any change on the client side would not impact the download speed from the server.</p>
<p>There are several other variables to consider, and these all depend on your application so change them if you know what you are attempting to do. After changing these settings, you will see speeds of about 10MB/sec (80mbps) on a 100mbps connection. The other 20mbps are lost in TCP and other network layer overhead, which is unavoidable.</p>
]]></content:encoded>
			<wfw:commentRss>http://systembash.com/content/tweaking-tcp-for-fast-100mbps-connections-and-transfers-on-linux/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Page Caching using disk: enhanced
Database Caching 9/26 queries in 0.022 seconds using disk: basic

Served from: systembash.com @ 2012-05-23 23:31:39 -->
