<?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>Chris Dzombak! &#187; Tech &amp; Science</title>
	<atom:link href="http://chris.dzombak.name/blog/category/tech-sci/feed/" rel="self" type="application/rss+xml" />
	<link>http://chris.dzombak.name</link>
	<description></description>
	<lastBuildDate>Fri, 23 Jul 2010 02:17:09 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Redirecting site visitors without affecting OpenID</title>
		<link>http://chris.dzombak.name/blog/2010/03/redirecting-site-visitors-without-affecting-openid/</link>
		<comments>http://chris.dzombak.name/blog/2010/03/redirecting-site-visitors-without-affecting-openid/#comments</comments>
		<pubDate>Mon, 15 Mar 2010 16:55:04 +0000</pubDate>
		<dc:creator>Chris Dzombak</dc:creator>
				<category><![CDATA[Tech & Science]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[openid]]></category>

		<guid isPermaLink="false">http://chris.dzombak.name/?p=356</guid>
		<description><![CDATA[I recently needed to redirect an old domain which was still running an OpenID endpoint.  Naturally, I didn&#8217;t want to redirect access to that endpoint. There&#8217;s no definitive way to tell whether a client is an OpenID client, but I&#8217;ve put together a set of .htaccess rules which do a pretty good job.  These rules [...]]]></description>
			<content:encoded><![CDATA[<p>I recently needed to redirect an old domain which was still running an OpenID endpoint.  Naturally, I didn&#8217;t want to redirect access to that endpoint.</p>
<p>There&#8217;s no definitive way to tell whether a client is an OpenID client, but I&#8217;ve put together a set of .htaccess rules which do a pretty good job.  These rules let you redirect human visitors (HTTP 301) but not affect OpenID clients looking for an endpoint.</p>
<p>These rules <a href="http://code.chrisdzombak.net/redirect_without_affecting_openid">can be found on my code site</a>, and any updates will be posted there as well.</p>
]]></content:encoded>
			<wfw:commentRss>http://chris.dzombak.name/blog/2010/03/redirecting-site-visitors-without-affecting-openid/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Building OpenSSL with Symbol Versioning</title>
		<link>http://chris.dzombak.name/blog/2010/03/building-openssl-with-symbol-versioning/</link>
		<comments>http://chris.dzombak.name/blog/2010/03/building-openssl-with-symbol-versioning/#comments</comments>
		<pubDate>Sun, 14 Mar 2010 23:11:39 +0000</pubDate>
		<dc:creator>Chris Dzombak</dc:creator>
				<category><![CDATA[Tech & Science]]></category>
		<category><![CDATA[dreamhost]]></category>
		<category><![CDATA[openssl]]></category>

		<guid isPermaLink="false">http://chris.dzombak.name/?p=350</guid>
		<description><![CDATA[I compiled OpenSSL on my Dreamhost account to support my local installation of Git, PHP, Rails, and Redmine, among other things.  However, whenever I ran git (or a few other programs which depended on OpenSSL), I got several messages like the following: 12git: /home/chris/local/lib/libcrypto.so.0.9.8: no version information available (required by git) git: /home/chris/local/lib/libssl.so.0.9.8: no version [...]]]></description>
			<content:encoded><![CDATA[<p>I compiled OpenSSL on my Dreamhost account to support my local installation of Git, PHP, Rails, and Redmine, among other things. </p>
<p>However, whenever I ran git (or a few other programs which depended on OpenSSL), I got several messages like the following:</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:490px;"><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">git: /home/chris/local/lib/libcrypto.so.0.9.8: no version information available (required by git)<br />
git: /home/chris/local/lib/libssl.so.0.9.8: no version information available (required by git)</div></td></tr></tbody></table></div>
<p>The worked properly, but the these messages were quite annoying, and it was clear that something wasn&#8217;t quite right.  I won&#8217;t go into the details of symbol versioning here.</p>
<p>Some research revealed that some people have had similar issues, but many solutions simply involved copying &#8220;working&#8221; versions of these libraries over the nonworking ones, which isn&#8217;t possible in this situation (and is a hackish solution at best).  The closest to a solution I found was <a href="http://lists.alioth.debian.org/pipermail/pkg-openssl-devel/2006-December/001021.html">this December 2006 post</a> on the Debian mailing list in which one of Debian&#8217;s OpenSSL maintainers mentions that you should add a line to Configure and that you need the file openssl.ld.</p>
<p>I&#8217;ve now figured out how to build OpenSSL 0.9.8l on Debian (specifically, in my home directory at Dreamhost) with symbol versioning.</p>
<p>The patch file mentioned below is very simple and changes a few lines in the Makefile and the Configure script; <a href="http://chris.dzombak.name/files/openssl/openssl-0.9.8l-symbolVersioning.diff">click here</a> to download the file and look at it yourself to see exactly what changes.  This patch file is not specific to Dreamhost&#8217;s environment; it should work wherever you want to build OpenSSL.</p>
<p>This procedure will install OpenSSL in your ~/local/lib.  You should create the directory tree ~/local/src if it doesn&#8217;t exist already.</p>
<div class="codecolorer-container bash default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:490px;"><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 /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #7a0874; font-weight: bold;">cd</span> ~<span style="color: #000000; font-weight: bold;">/</span>local<span style="color: #000000; font-weight: bold;">/</span>src<br />
<span style="color: #c20cb9; font-weight: bold;">wget</span> http:<span style="color: #000000; font-weight: bold;">//</span>www.openssl.org<span style="color: #000000; font-weight: bold;">/</span>source<span style="color: #000000; font-weight: bold;">/</span>openssl-0.9.8l.tar.gz<br />
<span style="color: #c20cb9; font-weight: bold;">tar</span> xzvf openssl-0.9.81.tar.gz<br />
<span style="color: #c20cb9; font-weight: bold;">wget</span> http:<span style="color: #000000; font-weight: bold;">//</span>chris.dzombak.name<span style="color: #000000; font-weight: bold;">/</span>files<span style="color: #000000; font-weight: bold;">/</span>openssl<span style="color: #000000; font-weight: bold;">/</span>openssl-0.9.8l-symbolVersioning.diff<br />
<span style="color: #c20cb9; font-weight: bold;">patch</span> <span style="color: #660033;">-p0</span> <span style="color: #000000; font-weight: bold;">&lt;</span> openssl-0.9.8l-symbolVersioning.diff<br />
<span style="color: #7a0874; font-weight: bold;">cd</span> openssl-0.9.81<br />
.<span style="color: #000000; font-weight: bold;">/</span>config shared zlib <span style="color: #660033;">--prefix</span>=<span style="color: #007800;">$HOME</span><span style="color: #000000; font-weight: bold;">/</span><span style="color: #7a0874; font-weight: bold;">local</span><br />
<span style="color: #c20cb9; font-weight: bold;">make</span><br />
<span style="color: #c20cb9; font-weight: bold;">make</span> <span style="color: #7a0874; font-weight: bold;">test</span><br />
<span style="color: #c20cb9; font-weight: bold;">make</span> <span style="color: #c20cb9; font-weight: bold;">install</span></div></td></tr></tbody></table></div>
<p>This solution seems to be working for me, and I&#8217;ve documented it here in the hopes that it&#8217;ll save someone the time it took me to figure it out.  The patch file should be pretty easily adapted to future versions of OpenSSL as well.</p>
<h3>Additional Links</h3>
<ul>
<li><a href="http://rt.openssl.org/Ticket/Display.html?id=1222&amp;user=guest&amp;pass=guest">OpenSSL bug #1222 (adding versioned symbols)</a></li>
<li><a href="http://packages.debian.org/lenny/openssl">Debian OpenSSL package</a> (Looking at the patch from here is how I eventually got this working.)</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://chris.dzombak.name/blog/2010/03/building-openssl-with-symbol-versioning/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Music Library Management</title>
		<link>http://chris.dzombak.name/blog/2010/03/music-library-management/</link>
		<comments>http://chris.dzombak.name/blog/2010/03/music-library-management/#comments</comments>
		<pubDate>Sun, 07 Mar 2010 17:27:25 +0000</pubDate>
		<dc:creator>Chris Dzombak</dc:creator>
				<category><![CDATA[Tech & Science]]></category>

		<guid isPermaLink="false">http://chris.dzombak.name/a/?p=345</guid>
		<description><![CDATA[Keeping your digital music library organized is important for several reasons, but it&#8217;s often overlooked because it takes time and most people don&#8217;t think it&#8217;s worth it.  I&#8217;m hoping this quick post on the organizational methods and tools I use can be helpful and can save you a lot of time in organizing your library. [...]]]></description>
			<content:encoded><![CDATA[<p>Keeping your digital music library organized is important for several reasons, but it&#8217;s often overlooked because it takes time and most people don&#8217;t think it&#8217;s worth it.  I&#8217;m hoping this quick post on the organizational methods and tools I use can be helpful and can save you a lot of time in organizing your library.</p>
<h3>Organization</h3>
<p>My music library is organized by folders in the format Music/Artist/Album. Pretty simple.  Filenames are in the format &lt;track&gt; &#8211; &lt;title&gt;.mp3.</p>
<p>For multiple-disc albums, I still only have one folder for the whole album, and then the files are named &lt;disc&gt;.&lt;track&gt; &#8211; &lt;title&gt;.mp3.  This makes more sense (to me, anyway) than having separate folders for each disc &#8211; it&#8217;s all the same album, anyway.</p>
<p>I still don&#8217;t have any good way to take care of Various Artists albums, though.</p>
<p>There&#8217;s also a Music/Soundtracks folder, which contains a folder for each soundtrack I own.  This seems like a more logical way to organize these than by artist.</p>
<h3>Tools</h3>
<p>For collection of music, I use either <a href="http://www.exactaudiocopy.de/">Exact Audio Copy</a> or <a href="http://www.amazon.com/MP3-Music-Download/b/ref=sa_menu_dmusic2?ie=UTF8&amp;node=163856011">Amazon MP3</a>. Exact Audio Copy rips CDs with the highest accuracy possible.  I usually rip to 256 or 320kbps MP3s.  Amazon MP3 is great because it provides 256kbps MP3s with no DRM (both advantages over iTunes).  Even better, it&#8217;s not too expensive and you&#8217;re still supporting the artists.</p>
<p>Once I&#8217;ve obtained MP3s via any avenue (except Amazon MP3), I run the album through <a href="http://musicbrainz.org/doc/PicardDownload">MusicBrainz Picard</a> to ensure that all the ID3 tags are accurate.  Sometimes, though, I need to resort to fixing parts of tags manually.  (I don&#8217;t do this with Amazon MP3s because files from that service are already accurately tagged.)</p>
<p>I use <a href="http://www.id3-tagit.de/">ID3-TagIT</a> to fix tags (especially adding the disc numbers to multi-disc albums) and rename files.  This program can rename files based on the ID3 tags, making renaming a bunch of music files super-easy. It can also organize files into a folder structure (like the one I described above) automatically based on the ID3 tags &#8211; great for taming an out-of-control music library.  This is a really great, powerful program, and I&#8217;m sad to see that it&#8217;s no longer being maintained&#8230;I&#8217;ll have to find a replacement eventually, I guess.  For now, though, it looks like it&#8217;s still available.</p>
<p>Before adding the files to my music player, one more step: I run them through <a href="http://mp3val.sourceforge.net/">mp3val</a> to make sure there are no issues with the files which could cause skipping, etc. This isn&#8217;t usually necessary with files from Exact Audio Copy or Amazon MP3, but it can&#8217;t hurt, and it&#8217;s invaluable for files from any other source. (mp3val is a command-line program, but there&#8217;s a graphical interface available for Windows at the Web site.)</p>
<p>Finally, you can add the files to your media player of choice. For iTunes, I use the free version of <a href="http://albumbrowser.klarita.net/itfw.html">iTunes Folder Watch</a>.</p>
<h3>A Note</h3>
<p>I know this looks like it would take a long time, but once you get the hang of it, it really only adds a minute or two to the process of importing each album &#8211; a small price to pay for a well-organized and maintained music library.</p>
]]></content:encoded>
			<wfw:commentRss>http://chris.dzombak.name/blog/2010/03/music-library-management/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Suggestions for a better Backblaze</title>
		<link>http://chris.dzombak.name/blog/2009/12/suggestions-for-a-better-backblaze/</link>
		<comments>http://chris.dzombak.name/blog/2009/12/suggestions-for-a-better-backblaze/#comments</comments>
		<pubDate>Sun, 27 Dec 2009 23:04:10 +0000</pubDate>
		<dc:creator>Chris Dzombak</dc:creator>
				<category><![CDATA[Tech & Science]]></category>

		<guid isPermaLink="false">http://chris.dzombak.name/a/?p=284</guid>
		<description><![CDATA[I&#8217;ve been using Backblaze for online backup for a few months, and I&#8217;ve thought of a few ways their service and software could be much improved.  This is (part of) an email which I sent them today which outlines several of my suggestions.  I&#8217;m posting it here for others to review and discuss. I&#8217;d like [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been using <a href="http://backblaze.com">Backblaze</a> for online backup for a few months, and I&#8217;ve thought of a few ways their service and software could be much improved.  This is (part of) an email which I sent them today which outlines several of my suggestions.  I&#8217;m posting it here for others to review and discuss.</p>
<ul>
<li>I&#8217;d like to be able to back up files greater than 4GB.  This would be especially useful for people (like me) who work with large video files and would like to back them up somehow.  I&#8217;d also be interested in knowing the reason for this restriction.</li>
<li>I&#8217;d like to be able to back up all types of files on my computer.  For example, if I master an ISO file of a DVD, I can&#8217;t back it up even if it&#8217;s under the 4GB limit.  Again, I&#8217;d also like to know why I can&#8217;t do this.</li>
<li>The interface of your software could be improved.  A few points in particular are listed below:
<ul>
<li>The &#8220;How long will my first backup take?&#8221; link should change to &#8220;How long will this backup take?&#8221; after the first backup has completed.  (Mine completed a long time ago, yet I still see this text.)  Additionally, the Web page which the link points to seems to think I&#8217;m still on my free trial.  (I&#8217;m not.)</li>
<li>In fact, why can&#8217;t you display an estimated time right in the application?  That would be best.</li>
<li>The &#8220;What is being backed up?&#8221; link should have an option where I can view lists of files which are being backed up, or more importantly, exactly which files aren&#8217;t being backed up.  Right now, the link is essentially pointless.  Telling me my files over 4GB aren&#8217;t backed up is useless.  Give me a list of files which I need to backup manually!  (My ISOs, files over 4GB, and anything else excluded from backup.)</li>
<li>Hidden options like Alt-clicking &#8220;Pause Backup&#8221; are too well-hidden.  There should also be buttons for these functions somewhere, perhaps in an &#8220;Advanced&#8221; tab under Settings.</li>
<li>Links in the interface should give some indication (like a little hand mouse pointer) that they&#8217;re clickable.  Just as you can&#8217;t expect your users to Alt-click on everything to see what it does, you can&#8217;t expect them to guess at what is and is not clickable.</li>
</ul>
</li>
</ul>
<p>I think these changes would make Backblaze&#8217;s service much better and much nicer to use.  I hope they implement at least some of these in the future.</p>
]]></content:encoded>
			<wfw:commentRss>http://chris.dzombak.name/blog/2009/12/suggestions-for-a-better-backblaze/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Avatar: Some Thoughts</title>
		<link>http://chris.dzombak.name/blog/2009/12/avatar-thoughts/</link>
		<comments>http://chris.dzombak.name/blog/2009/12/avatar-thoughts/#comments</comments>
		<pubDate>Wed, 23 Dec 2009 06:26:55 +0000</pubDate>
		<dc:creator>Chris Dzombak</dc:creator>
				<category><![CDATA[Entertainment]]></category>
		<category><![CDATA[Me]]></category>
		<category><![CDATA[Tech & Science]]></category>

		<guid isPermaLink="false">http://chris.dzombak.name/a/?p=276</guid>
		<description><![CDATA[Updated 2009-12-29: I think I may have been a little too hard on the film, even here.  To be absolutely clear, I loved the movie and recommend that you go see it.  There were just a few things which seemed a little implausible for me.  For more info on the science of Avatar (they got [...]]]></description>
			<content:encoded><![CDATA[<p><em>Updated 2009-12-29: I think I may have been a little too hard on the film, even here.  To be absolutely clear, I loved the movie and recommend that you go see it.  There were just a few things which seemed a little implausible for me.  For more info on the science of Avatar (they got a lot right!), <a href="http://www.aintitcool.com/node/43440">read this super-interesting article</a>.</em></p>
<p>I just saw Avatar last night, and I wanted to share some thoughts with the world.</p>
<p><strong>The short version:</strong> If you haven&#8217;t seen it yet, you should.  Just be ready for a little willing suspension of disbelief.</p>
<p><em><strong>Note: there are some spoilers in this post.</strong></em> Watch the movie first.</p>
<p>Visually, it was stunning.  I don&#8217;t know exactly how the 3D tech worked, but it worked very well.  It was very convincing and stunning, but it wasn&#8217;t overused or overemphasized, either.  The world the artists created seemed entirely realistic, the lighting and coloring was beautiful, and all the effects were very well done.  While you&#8217;re watching, you won&#8217;t even notice what&#8217;s CGI and what isn&#8217;t; the colors, textures, and especially the lighting and other environmental factors are perfectly blended together into an entirely convincing picture.</p>
<p>(While I&#8217;m on the subject, I&#8217;d like to point out that the movie must have taken an extraordinary amount of computational power to render, even by today&#8217;s movie-rendering standards.  The sheer amount of power they had to have used for that is, in itself, amazing.)</p>
<p>I&#8217;m glad the movie ended happily for (most of) our protagonists.  I was worried about that right up until the conclusion.  I wish Trudy (the pilot who helps Jake &amp; crew escape) had fared better, though.</p>
<p>I do, however, have some minor issues with the movie.  I&#8217;m entirely in favor of willing suspension of disbelief during a movie, but I still notice glaring logical/physical errors which would be problems even in the movie&#8217;s fictional setting.</p>
<p>You&#8217;ll note that the laws of physics changed between 2009 and 2154 (the year the movie takes place).  I&#8217;ll note just two of the physical problems that I remember (there were many, many more which I can&#8217;t remember offhand):</p>
<ul>
<li>Birds flying a few feet above a giant, spinning, helicopter-blade type thing <strong>will</strong> get sucked in, no question about it.  This was not the case in one of the first scenes in the movie.</li>
<li>For an atmosphere where there&#8217;s supposedly very little oxygen, there were some pretty big fires and fireballs.  Fireballs need a pretty decent amount of oxygen to happen.</li>
</ul>
<p>There were a few other issues which took away from the believability of the plot.</p>
<ul>
<li>At the end of the movie, when Jake is fighting the Colonel at the end of the battle, the Colonel made a major tactical error by chasing Jake around rather than just heading straight for the trailer.  Had he ignored Jake for just a little bit and begun attacking the trailer, he would have forced Jake into a defensive position rather than letting him take an offensive position and effectively control the battle.  A colonel with his experience would not have made that decision (he makes an intelligent choice in a similar situation earlier), and he could have won by choosing &#8220;correctly.&#8221;  Obviously, he had to lose the fight to move the story in the right direction, but perhaps Jake could have won it differently.</li>
<li>According to the speech at the beginning of the movie, you&#8217;d lose consciousness after being exposed to the atmosphere for 20 seconds.  I didn&#8217;t time exactly, but there were several instances where I think people managed to be outside for significantly longer than 20 seconds.</li>
</ul>
<p>Though the visuals were for the most part great, I did have a few problems, particularly with the first few scenes.  The shots in a white/gray spaceship, where everything was very evenly lit and there was plenty of depth of field (that is, everything was in focus), were very confusing pictures.  Your eye looks for visual cues when it&#8217;s deciding what to pay attention to.  These cues are things like brightness/darkness (contrast), color (or lack thereof), and selective focus (your eyes go to whatever&#8217;s in sharp focus).  Some shots at the beginning of the movie removed <em>all</em> these visual cues, and as a result viewers&#8217; eyes and brains get very confused, especially when they&#8217;re exploring a 3D space instead of a 2D picture.  I spent the first 5 or 10 minutes of the movie just being confused simply because all my brain was devoted to looking at everything in a big, 3D space in detail and processing it to try and find out what was important.</p>
<p><em>All in all, these small issues don&#8217;t detract much from the film; it&#8217;s a good story, and the visuals are stunning. Go watch it.</em></p>
<p>Oh,<em> </em>and one more thing: Papyrus? <em>Really?</em></p>
]]></content:encoded>
			<wfw:commentRss>http://chris.dzombak.name/blog/2009/12/avatar-thoughts/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Things I Don&#8217;t Like About iPod/iTunes</title>
		<link>http://chris.dzombak.name/blog/2009/11/things-i-dont-like-about-ipoditunes/</link>
		<comments>http://chris.dzombak.name/blog/2009/11/things-i-dont-like-about-ipoditunes/#comments</comments>
		<pubDate>Mon, 30 Nov 2009 04:08:25 +0000</pubDate>
		<dc:creator>Chris Dzombak</dc:creator>
				<category><![CDATA[Tech & Science]]></category>
		<category><![CDATA[ipod]]></category>
		<category><![CDATA[itunes]]></category>

		<guid isPermaLink="false">http://chris.dzombak.name/a/?p=268</guid>
		<description><![CDATA[My old faithful MP3 player&#8217;s built-in, nonreplaceable li-ion battery finally died after 5 or 6 years.  I was surprised to find that there&#8217;s basically no competition out there against the iPod Classic (at least, no competition for people who just need a basic MP3 player which holds a ton of music).  So I bought an [...]]]></description>
			<content:encoded><![CDATA[<p>My old faithful MP3 player&#8217;s built-in, nonreplaceable li-ion battery finally died after 5 or 6 years.  I was surprised to find that there&#8217;s basically no competition out there against the iPod Classic (at least, no competition for people who just need a basic MP3 player which holds a ton of music).  So I bought an iPod Classic 160GB which arrived the Wednesday before Thanksgiving.</p>
<p>Overall, it works pretty well.  There are several issues, though, which are quite annoying and which make me question the entire &#8220;Apple stuff just works&#8221; paradigm.</p>
<h3>iTunes &#8211; no useful log of sync issues</h3>
<p>iTunes will helpfully tell me that 66 of my tracks can&#8217;t be synced to my iPod because they can&#8217;t be found.  It will even list these tracks in a dialog box for me.  The problem is that it doesn&#8217;t let me save this list or even copy it for future reference.  For anything more than 2 or 3 songs (which you can feasibly write down or remember), this dialog box is completely useless.</p>
<h3>iTunes &#8211; no folder monitoring</h3>
<p>iTunes can&#8217;t monitor my Music folder for changes.  Seriously, Apple, this is 2009, and every other music player on the planet can do this.  Is it so hard for you to believe that I might obtain music via methods other than the iTunes store or ripping CDs with iTunes?  (I am a devotee of the Amazon MP3 store, for example.)</p>
<h3>Crashes while syncing</h3>
<p>I have synced my iPod probably eight or ten times now in total.  Two of those have resulted in my computer completely crashing; once to a gray screen which required me to press Reset and once to a black screen from which Windows automatically restarted.  Obviously, this is a huge issue; I lose everything I have open (usually, many applications) and risk corrupting both my hard disc drives and my iPod.</p>
<p>I&#8217;m using 64-bit Windows 7 and the latest version of iTunes 9.  I&#8217;m sure I&#8217;m not the only one using this combination.</p>
<h3>iPod skips songs</h3>
<p>I only noticed this with one of my albums, but I&#8217;d bet it happens with a few others I haven&#8217;t yet listened to as well.  My iPod will consistently skip several songs when I try to play them.  It happens with specific songs from one album.  I tried restoring the iPod, which didn&#8217;t work; the only solution was to re-rip the CD (using iTunes, of course).  iTunes could play these files, as could my old MP3 player and any other music player software I&#8217;ve ever used.  Really, Apple?</p>
<h3>iPod has no FM radio</h3>
<p>I knew this going in, but it would really be nice to have, and it&#8217;s not rocket science. Still, since I knew this going in I can&#8217;t really hold it against Apple.</p>
<h3>iPod has no custom EQ</h3>
<p>I did expect the iPod to let me create custom equalizer profiles.  I was disappointed to find that the only EQ the iPod provides are some preset profiles.  Apple really does adhere to their &#8220;you get what we think you should have and NOTHING more&#8221; philosophy, don&#8217;t they?</p>
<h3>And that&#8217;s basically it.</h3>
<p>There are some other, smaller things, but those are my main points.  All in all, I have to say that as a new Apple customer I have <strong>not</strong> been very impressed at all.</p>
<p>(This said, the iPod&#8217;s interface does work pretty nicely.  That&#8217;s one thing Apple seems to do well.)</p>
]]></content:encoded>
			<wfw:commentRss>http://chris.dzombak.name/blog/2009/11/things-i-dont-like-about-ipoditunes/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Perfect ViewVC On Dreamhost</title>
		<link>http://chris.dzombak.name/blog/2009/07/perfect-viewvc-on-dreamhost/</link>
		<comments>http://chris.dzombak.name/blog/2009/07/perfect-viewvc-on-dreamhost/#comments</comments>
		<pubDate>Wed, 08 Jul 2009 00:30:28 +0000</pubDate>
		<dc:creator>Chris Dzombak</dc:creator>
				<category><![CDATA[Tech & Science]]></category>

		<guid isPermaLink="false">http://chris.dzombak.name/a/?p=183</guid>
		<description><![CDATA[I recently set up an installation of ViewVC on my Dreamhost account.  I also found out how to implement a few useful features, and I&#8217;m going to share this process here in the hope that you find it useful and in the hope that I can find it when I want to do it again. [...]]]></description>
			<content:encoded><![CDATA[<p>I recently set up an installation of ViewVC on my Dreamhost account.  I also found out how to implement a few useful features, and I&#8217;m going to share this process here in the hope that you find it useful and in the hope that I can find it when I want to do it again.</p>
<p>This guide will require that you are comfortable doing basic things in the Linux shell (like creating directories, moving files, and basic text editing).  They assume that you are logged into the shell; that&#8217;s required for the installation.</p>
<h3>Part 1: Install ViewVC</h3>
<p>I recommend creating three folders, <code class="codecolorer text default"><span class="text">src</span></code>, <code class="codecolorer text default"><span class="text">bin</span></code>, and <code class="codecolorer text default"><span class="text">opt</span></code>, in your home directory.  Keep program sources and installation files in <code class="codecolorer text default"><span class="text">src</span></code>, installed programs in <code class="codecolorer text default"><span class="text">opt</span></code>, and program binaries in <code class="codecolorer text default"><span class="text">bin</span></code>.</p>
<p>Download ViewVC to your server (in your <code class="codecolorer text default"><span class="text">~/src</span></code> folder):</p>
<div class="codecolorer-container bash default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:490px;"><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="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #c20cb9; font-weight: bold;">wget</span> http:<span style="color: #000000; font-weight: bold;">//</span>viewvc.tigris.org<span style="color: #000000; font-weight: bold;">/</span>files<span style="color: #000000; font-weight: bold;">/</span>documents<span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">3330</span><span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">46029</span><span style="color: #000000; font-weight: bold;">/</span>viewvc-1.1.1.tar.gz</div></td></tr></tbody></table></div>
<p>Extract the archive, change to the new directory, and then run:</p>
<div class="codecolorer-container bash default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:490px;"><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="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">.<span style="color: #000000; font-weight: bold;">/</span>viewvc-install</div></td></tr></tbody></table></div>
<p>For the installation path, enter <code class="codecolorer text default"><span class="text">/home/username/opt/viewvc-1.1.1</span></code> or something like that.  Don&#8217;t enter anything for <code class="codecolorer text default"><span class="text">DESTDIR</span></code>.</p>
<p>To make ViewVC Web-accessible, first create the subdomain and parent folder where you want ViewVC to reside.</p>
<p>Note, though, that if you want <code class="codecolorer text default"><span class="text">example.com/browse</span></code> (for example) to be ViewVC, you don&#8217;t need to actually create a folder called <code class="codecolorer text default"><span class="text">browse</span></code> &#8211; that folder is sort of a virtual directory we&#8217;ll &#8220;create&#8221; in a few moments.  Also note that if you want ViewVC to be private, you need to create a (real) directory that will be password-protected (in Part 2).</p>
<p>Then, copy <code class="codecolorer text default"><span class="text">/home/username/opt/viewvc-1.1.1/bin/cgi/viewvc.cgi</span></code> to that Web-accessible directory.</p>
<h3>Part 2: Configuring ViewVC</h3>
<p>You can follow <a href="http://wiki.dreamhost.com/Password-protecting_directories">Dreamhost&#8217;s instructions on password-protecting directories</a> to password-protect the directory in which you just installed <code class="codecolorer text default"><span class="text">viewvc.cgi</span></code>.  Easy as pie.</p>
<p>Next, edit <code class="codecolorer text default"><span class="text">/home/username/opt/viewvc-1.1.1/viewvc.conf</span></code>.  The file is very well-documented; configure and customize as you see fit.</p>
<h3>Part 3: Pretty URLs</h3>
<p>There are two parts to pretty-URL setup.  First, go to the folder that contains viewvc.cgi and put this code into <code class="codecolorer text default"><span class="text">.htaccess</span></code>:</p>
<div class="codecolorer-container apache default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:490px;"><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 /></div></td><td><div class="apache codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #00007f;">RewriteEngine</span> <span style="color: #0000ff;">on</span><br />
<span style="color: #00007f;">RewriteRule</span> ^browse$ viewvc.cgi<br />
<span style="color: #00007f;">RewriteRule</span> ^browse/(.*)$ viewvc.cgi/$<span style="color: #ff0000;">1</span></div></td></tr></tbody></table></div>
<p>Second, you have to tell ViewVC what its new name is.  In the same directory, edit <code class="codecolorer text default"><span class="text">viewvc.cgi</span></code>.  Go down, almost to the bottom of the file, and just before the comment &#8220;<code class="codecolorer perl default"><span class="perl"><span style="color: #666666; font-style: italic;"># go do the work</span></span></code>&#8221; add:</p>
<div class="codecolorer-container perl default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:490px;"><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="perl codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">os<span style="color: #339933;">.</span>environ<span style="color: #009900;">&#91;</span><span style="color: #ff0000;">'SCRIPT_NAME'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #ff0000;">&quot;/browse&quot;</span></div></td></tr></tbody></table></div>
<h3>Part 4: Template Modifications</h3>
<p>This is entirely personal preference, but I wanted my name in ViewVC&#8217;s footer with my email address.  To do this, edit <code class="codecolorer text default"><span class="text">/home/username/opt/viewvc-1.1.1/templates/include/footer.ext</span></code>.</p>
<p>I also wanted to get rid of the huge ViewVC logo on each page.  To do this, I just edited it out of <code class="codecolorer text default"><span class="text">header.ext</span></code> in the same folder.</p>
<h3>Part 5: Pretty Code Colors</h3>
<p>ViewVC uses the Pygments module for code coloring.  Of course, Dreamhost doesn&#8217;t have this installed, but Python makes it easy to create a virtual environment and install &#8220;eggs&#8221; into it.</p>
<p>First, tell bash to look for binaries in your custom <code class="codecolorer text default"><span class="text">bin</span></code> directory:</p>
<div class="codecolorer-container bash default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:490px;"><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="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #7a0874; font-weight: bold;">export</span> <span style="color: #007800;">PATH</span>=<span style="color: #ff0000;">&quot;<span style="color: #007800;">${HOME}</span>/bin:<span style="color: #007800;">${PATH}</span>&quot;</span></div></td></tr></tbody></table></div>
<p>And add this line to <code class="codecolorer text default"><span class="text">~/.bash_profile</span></code>:</p>
<div class="codecolorer-container bash default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:490px;"><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="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #7a0874; font-weight: bold;">export</span> <span style="color: #007800;">PATH</span>=<span style="color: #ff0000;">&quot;<span style="color: #007800;">${HOME}</span>/bin:<span style="color: #007800;">${PATH}</span>&quot;</span></div></td></tr></tbody></table></div>
<p>Change to your ~/src directory and download virtualenv:</p>
<div class="codecolorer-container bash default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:490px;"><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="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #c20cb9; font-weight: bold;">wget</span> http:<span style="color: #000000; font-weight: bold;">//</span>pypi.python.org<span style="color: #000000; font-weight: bold;">/</span>packages<span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">2.4</span><span style="color: #000000; font-weight: bold;">/</span>v<span style="color: #000000; font-weight: bold;">/</span>virtualenv<span style="color: #000000; font-weight: bold;">/</span>virtualenv-1.3.3-py2.4.egg</div></td></tr></tbody></table></div>
<p>Create a new directory called virtualenv-1.3.3-py2.4 and move <code class="codecolorer text default"><span class="text">virtualenv-1.3.3-py2.4.egg</span></code> into it.  Change into the directory.  These commands will then set up virtual environments for Python 2.5 and Python 2.4.</p>
<div class="codecolorer-container bash default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:490px;"><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 /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #c20cb9; font-weight: bold;">unzip</span> virtualenv-1.3.3-py2.4.egg<br />
<span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span>python2.5 virtualenv.py <span style="color: #007800;">$HOME</span><br />
<span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span>python2.4 virtualenv.py <span style="color: #007800;">$HOME</span></div></td></tr></tbody></table></div>
<p>Python 2.5 at Dreamhost doesn&#8217;t have Subversion bindings; 2.4 does.  We&#8217;ll set up Pygments for 2.4:</p>
<div class="codecolorer-container bash default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:490px;"><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="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">easy_install-<span style="color: #000000;">2.4</span> Pygments</div></td></tr></tbody></table></div>
<p>Finally, change to the Web directory containing <code class="codecolorer text default"><span class="text">viewvc.cgi</span></code>.  Edit that file; change the top line to read:</p>
<div class="codecolorer-container perl default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:490px;"><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="perl codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #666666; font-style: italic;">#!/home/username/bin/python2.4</span></div></td></tr></tbody></table></div>
<p>And your pretty code colors magically happen.</p>
<h3>Part 6: Make It Faster</h3>
<p>You can make Apache serve static content like images and stylesheets; this is faster than letting <code class="codecolorer text default"><span class="text">viewvc.cgi</span></code> handle it.  Edit <code class="codecolorer text default"><span class="text">/home/username/opt/viewvc-1.1.1/viewvc.conf</span></code> and set the option <code class="codecolorer text default"><span class="text">docroot = /viewvc_static</span></code>.</p>
<p>In the Dreamhost control panel, go to Domains =&gt; Remap Sub-Dir and create a mapping from (your ViewVC domain/folder)<code class="codecolorer text default"><span class="text">/viewvc_static</span></code> to <code class="codecolorer text default"><span class="text">/home/username/opt/viewvc-1.1.1/templates/docroot</span></code>.</p>
<p>Enjoy.</p>
]]></content:encoded>
			<wfw:commentRss>http://chris.dzombak.name/blog/2009/07/perfect-viewvc-on-dreamhost/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Projects Update: Browse SVN Repos Online</title>
		<link>http://chris.dzombak.name/blog/2009/07/projects-update-browse-svn-repos-online/</link>
		<comments>http://chris.dzombak.name/blog/2009/07/projects-update-browse-svn-repos-online/#comments</comments>
		<pubDate>Wed, 08 Jul 2009 00:00:49 +0000</pubDate>
		<dc:creator>Chris Dzombak</dc:creator>
				<category><![CDATA[Geolocator-PHP]]></category>
		<category><![CDATA[Me]]></category>
		<category><![CDATA[Tech & Science]]></category>

		<guid isPermaLink="false">http://chris.dzombak.name/a/?p=177</guid>
		<description><![CDATA[This is sort of a small update, but a useful one.  I&#8217;ve installed ViewVC on projects.chrisdzombak.net, so now you can easily browse the Subversion repositories for any of my open-source projects.  The software is available at projects.chrisdzombak.net/browse &#8211; try it out! Right now, there are only two projects there, and one is barely more than [...]]]></description>
			<content:encoded><![CDATA[<p>This is sort of a small update, but a useful one.  I&#8217;ve installed <a title="ViewVC Project Page" href="http://www.viewvc.org">ViewVC</a> on projects.chrisdzombak.net, so now you can easily browse the Subversion repositories for any of my open-source projects.  The software is available at <a href="http://projects.chrisdzombak.net/browse">projects.chrisdzombak.net/browse</a> &#8211; try it out!</p>
<p>Right now, there are only two projects there, and one is barely more than a code snippet.  More will be added, however, in the next few months.  I&#8217;m working on a huge project now, for example, which will be released later this fall (hopefully).</p>
<p>I&#8217;m evaluating my options for bugtrackers and am planning to install one of those shortly.  I am also hoping to release version 1.0 of IPGeolocation PHP soon; stay tuned for that.</p>
<p><em>Updated: I have now imported <a href="http://projects.chrisdzombak.net/browse/TwitterOnAccess">TwitterOnAccess</a> into SVN.  Soon on the blog: a guide to installing ViewVC on Dreamhost.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://chris.dzombak.name/blog/2009/07/projects-update-browse-svn-repos-online/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Quick PHP Script Monday</title>
		<link>http://chris.dzombak.name/blog/2009/06/quick-php-script-monday/</link>
		<comments>http://chris.dzombak.name/blog/2009/06/quick-php-script-monday/#comments</comments>
		<pubDate>Mon, 29 Jun 2009 21:49:25 +0000</pubDate>
		<dc:creator>Chris Dzombak</dc:creator>
				<category><![CDATA[Tech & Science]]></category>

		<guid isPermaLink="false">http://chris.dzombak.name/a/?p=168</guid>
		<description><![CDATA[A while ago, I wrote a small PHP script to send a message to a dedicated Twitter account whenever a certain Web page was accessed.  The idea was inspired by a dinner conversation, and honestly it is a little boring, but it&#8217;s kind of cool. If you are interested, the script is now (over)documented and [...]]]></description>
			<content:encoded><![CDATA[<p>A while ago, I wrote a small PHP script to send a message to a dedicated Twitter account whenever a certain Web page was accessed.  The idea was inspired by a dinner conversation, and honestly it is a little boring, but it&#8217;s kind of cool.</p>
<p>If you are interested, the script is now (over)documented and available <a href="http://projects.chrisdzombak.net/twitteronaccess/">on my projects site</a>.  There&#8217;s also a link from there to a demo site!</p>
<p>Potentially more interesting, but still not groundbreaking, is the little IP address anonymization function I wrote for this project.</p>
]]></content:encoded>
			<wfw:commentRss>http://chris.dzombak.name/blog/2009/06/quick-php-script-monday/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Advantages of a Typewriter as Compared to a Computer (for Word Processing)</title>
		<link>http://chris.dzombak.name/blog/2009/05/advantages_of_a_typewriter/</link>
		<comments>http://chris.dzombak.name/blog/2009/05/advantages_of_a_typewriter/#comments</comments>
		<pubDate>Sat, 16 May 2009 04:35:53 +0000</pubDate>
		<dc:creator>Chris Dzombak</dc:creator>
				<category><![CDATA[Me]]></category>
		<category><![CDATA[Tech & Science]]></category>

		<guid isPermaLink="false">http://chris.dzombak.name/a/?p=94</guid>
		<description><![CDATA[I&#8217;m just sayin&#8217;&#8230; On a typewriter, you can type wherever you want on the page without much hassle. Typewriters work during power outages and can&#8217;t be damaged by nearby lightning. (Though if a typewriter were struck directly by lightning, it would not survive. A computer wouldn&#8217;t either, of course; I&#8217;m just stating this for completeness.) [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m just sayin&#8217;&#8230;</p>
<ul>
<li>On a typewriter, you can type wherever you want on the page without much hassle.</li>
<li>Typewriters work during power outages and can&#8217;t be damaged by nearby lightning. (Though if a typewriter were struck directly by lightning, it would not survive. A computer wouldn&#8217;t either, of course; I&#8217;m just stating this for completeness.)</li>
<li>Typewriters won&#8217;t run out of battery power.</li>
<li>Typewriters do not get viruses or spyware.</li>
<li>Typewriters don&#8217;t need or security updates.</li>
<li>You don&#8217;t have to boot a typewriter before using it.</li>
</ul>
<p>I recently got a typewriter, an old Underwood No. 5 which was manufactured in 1930. Photos can be found <a href="http://www.flickr.com/photos/chrisdzombak/sets/72157619398502124/">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://chris.dzombak.name/blog/2009/05/advantages_of_a_typewriter/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
