<?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>tannerjepsen.com</title>
	<atom:link href="http://www.tannerjepsen.com/feed" rel="self" type="application/rss+xml" />
	<link>http://www.tannerjepsen.com</link>
	<description>Wait a minute… do I know you?</description>
	<lastBuildDate>Tue, 08 May 2012 19:50:36 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>OnWander Final Scores of the Utterly Pointless Leaderboard</title>
		<link>http://www.tannerjepsen.com/posts/onwander-final-scores-of-the-utterly-pointless-leaderboard</link>
		<comments>http://www.tannerjepsen.com/posts/onwander-final-scores-of-the-utterly-pointless-leaderboard#comments</comments>
		<pubDate>Tue, 08 May 2012 19:49:30 +0000</pubDate>
		<dc:creator>Tanner</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.tannerjepsen.com/?p=347</guid>
		<description><![CDATA[That&#8217;s me at top What did it get me? Absolutely nothing&#8230; Love it.]]></description>
			<content:encoded><![CDATA[<p>That&#8217;s me at top <img src='http://www.tannerjepsen.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  What did it get me? Absolutely nothing&#8230; Love it.</p>
<p><a href="http://www.tannerjepsen.com/wp-content/uploads/2012/05/leaderboard.png"><img src="http://www.tannerjepsen.com/wp-content/uploads/2012/05/leaderboard-300x168.png" alt="" title="leaderboard" width="300" height="168" class="alignnone size-medium wp-image-348" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tannerjepsen.com/posts/onwander-final-scores-of-the-utterly-pointless-leaderboard/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ice Cream Sandwich on my G2x&#8230; Awesome!</title>
		<link>http://www.tannerjepsen.com/posts/ice-cream-sandwich-on-my-g2x-awesome</link>
		<comments>http://www.tannerjepsen.com/posts/ice-cream-sandwich-on-my-g2x-awesome#comments</comments>
		<pubDate>Fri, 24 Feb 2012 06:49:40 +0000</pubDate>
		<dc:creator>Tanner</dc:creator>
				<category><![CDATA[android]]></category>
		<category><![CDATA[google]]></category>

		<guid isPermaLink="false">http://www.tannerjepsen.com/?p=344</guid>
		<description><![CDATA[More info and download here.]]></description>
			<content:encoded><![CDATA[<p><img title="" class="alignnone" alt="image" src="http://www.tannerjepsen.com/wp-content/uploads/2012/02/wpid-Screenshot_2012-02-23-22-41-58.png" /></p>
<p><a href="http://rootzwiki.com/topic/18090-cyanogenmod9-for-o2x-and-g2x-selfkang3/">More info and download here.</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tannerjepsen.com/posts/ice-cream-sandwich-on-my-g2x-awesome/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How To: Use PHP to Change a Bluehost Email Account Password</title>
		<link>http://www.tannerjepsen.com/posts/how-to-use-php-to-change-a-bluehost-email-account-password</link>
		<comments>http://www.tannerjepsen.com/posts/how-to-use-php-to-change-a-bluehost-email-account-password#comments</comments>
		<pubDate>Thu, 29 Sep 2011 19:23:36 +0000</pubDate>
		<dc:creator>Tanner</dc:creator>
				<category><![CDATA[coding]]></category>
		<category><![CDATA[computers]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[technology]]></category>

		<guid isPermaLink="false">http://www.tannerjepsen.com/posts/how-to-use-php-to-change-a-bluehost-email-account-password</guid>
		<description><![CDATA[This is a PHP script I wrote that allows you to incorporate an email password update option into your own webpage styling. Normally, with Bluehost (and FastDomain and HostMonster), your users can only change their email account password by either having the admin login to their cpanel and changing it for them, or by accessing [...]]]></description>
			<content:encoded><![CDATA[<p>This is a PHP script I wrote that allows you to incorporate an email password update option into your own webpage styling. Normally, with Bluehost (and FastDomain and HostMonster), your users can only change their email account password by either having the admin login to their cpanel and changing it for them, or by accessing the Bluehost provided webmail interface. Neither are very inviting solutions, especially in a professional environment.</p>
<p>The script works by accessing the shadow file associated with the email account&#8217;s domain name. It looks for the username whose password is being changed in the shadow file and, if found, compares the password stored in the shadow file with the password that the user enters as their current password. If those passwords match, it then updates the shadow file with the users&#8217; new password. The password is stored in the shadow file as a Base64 encoded salted MD5 hash which is generated using either the PHP crypt function (if available) or the openssl command line.</p>
<p>This script will work out of the box, however, I recommend using it with the current visual theme of your website otherwise you&#8217;re defeating the purpose. The hidden input field named &#8220;domain&#8221; may be edited so that users only have to enter the name portion (ie: joesnuffy) of their email address without the domain portion. If left un-edited, your users will be required to enter in the domain portion of their email address along with the name portion (ie: joesnuffy@linuxr0ckz.com).</p>
<p>This script will work with Bluehost, FastDomain, HostMonster (all operated by Bluehost) and I&#8217;m guessing it will also work with any other host that uses cpanel (unverified).</p>
<pre class="brush: php; title: ; notranslate">
&lt;?php

$message = &quot;&quot;;
$found = $valid = false;

if (isset($_POST['username']) &amp;&amp; $_POST['username'] != &quot;&quot;) {
    $domain_pos = strpos($_POST['username'], &quot;@&quot;);
    if ($domain_pos === false) {
        $username = $_POST['username'];
        $domain = $_POST['domain'];
    } else {
        $username = substr($_POST['username'], 0, $domain_pos);
        $domain = substr($_POST['username'], $domain_pos + 1);
    }

    $current_password = $_POST['current_password'];
    $new_password1 = $_POST['new_password1'];
    $new_password2 = $_POST['new_password2'];

    $root = $_SERVER['DOCUMENT_ROOT'];
    $path_elements = explode('/', $root);
    $root = &quot;/{$path_elements[1]}/{$path_elements[2]}&quot;; // for bluehost, extracts homedir ex: /homeN/blueuser may work with other hosts?
    $shadow_file = &quot;$root/etc/$domain/shadow&quot;;

    // check if the shadow file exists. if not, either an invalid
    // domain was entered or this may not be a bluehost account...?
    if (file_exists($shadow_file)) {
        // compare the new passwords entered to ensure they match.
        if ($new_password1 == $new_password2) {
            if (trim($new_password1) != &quot;&quot;) {
                // get the contents of the shadow file.
                $shadow = file_get_contents($shadow_file);
                $lines = explode(&quot;\n&quot;, $shadow);

                // go through each line of shadow file, looking for username entered.
                for ($i = 0; $i &lt; count($lines); $i++) {
                    $elements = explode(&quot;:&quot;, $lines[$i]);
                    // found the user...
                    if ($elements[0] == $username) {
                        $found = true;
                        $passwd = explode(&quot;$&quot;, $elements[1]);
                        $salt = $passwd[2]; // get the salt currently used 

                        // crypt the &quot;Current Password&quot; entered by user. Can use either builtin
                        // php crypt function or command line openssl command.
                        if (CRYPT_MD5 == 1) { // indicates whether or not the crypt command supports MD5.
                            $current = crypt($current_password, '$1$'.$salt.'$');
                        } else {
                            $current = trim(`openssl passwd -1 -salt &quot;$salt&quot; &quot;$current_password&quot;`);
                        }
                        // check if the current password entered by the user
                        // matches the password in the shadow file.
                        $valid = ($current == $elements[1]);

                        if ($valid) {
                            // if they match then crypt the new password using the same salt
                            // and modify the line in the shadow file with the new hashed password
                            if (CRYPT_MD5 == 1) {
                                $new = crypt($new_password1, '$1$'.$salt.'$');
                            } else {
                                $new = trim(`openssl passwd -1 -salt &quot;$salt&quot; &quot;$new_password1&quot;`);
                            }
                            $elements[1] = $new;
                            $lines[$i] = implode(&quot;:&quot;, $elements);
                        }

                        break;
                    }
                }

                if (!$found) {
                    $message = &quot;The username you entered is not valid.&quot;;
                } else if (!$valid) {
                    $message = &quot;The password you entered is not valid.&quot;;
                } else {
                    // write the new contents of the shadow back to the shadow file.
                    $shadow = implode(&quot;\n&quot;, $lines);
                    file_put_contents($shadow_file, $shadow);
                    $message = 'Your password has been updated.';
                }
            } else {
                $message = &quot;Your password cannot be blank.&quot;;
            }
        } else {
            $message = &quot;Both new passwords must match.&quot;;
        }
    } else {
        $message = &quot;The domain you entered is not valid.&quot;;
    }
}

?&gt;&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&gt;
&lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;
    &lt;head&gt;
        &lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot; /&gt;
        &lt;title&gt;Change Password&lt;/title&gt;
    &lt;/head&gt;

    &lt;body&gt;
        &lt;?php
            if ($message != &quot;&quot;) {
                $color = $found &amp;&amp; $valid ? &quot;green&quot; : &quot;red&quot;;
                echo &quot;&lt;span style=\&quot;color:$color;\&quot;&gt;$message&lt;/span&gt;&quot;;
            }
        ?&gt;

        &lt;form action=&quot;&quot; method=&quot;post&quot;&gt;
            &lt;input type=&quot;hidden&quot; name=&quot;domain&quot; value=&quot;somebluehostdomain.com&quot; /&gt;
            &lt;table&gt;
                &lt;tbody&gt;
                    &lt;tr&gt;
                        &lt;td&gt;&lt;label for=&quot;username&quot;&gt;Username&lt;/label&gt;&lt;/td&gt;
                        &lt;td&gt;&lt;input name=&quot;username&quot; id=&quot;username&quot; type=&quot;text&quot; /&gt;&lt;/td&gt;
                    &lt;/tr&gt;
                    &lt;tr&gt;
                        &lt;td&gt;&lt;label for=&quot;current_password&quot;&gt;Current Password&lt;/label&gt;&lt;/td&gt;
                        &lt;td&gt;&lt;input name=&quot;current_password&quot; id=&quot;current_password&quot; type=&quot;password&quot; /&gt;&lt;/td&gt;
                    &lt;/tr&gt;
                    &lt;tr&gt;
                        &lt;td&gt;&lt;label for=&quot;new_password1&quot;&gt;New Password&lt;/label&gt;&lt;/td&gt;
                        &lt;td&gt;&lt;input name=&quot;new_password1&quot; id=&quot;new_password1&quot; type=&quot;password&quot; /&gt;&lt;/td&gt;
                    &lt;/tr&gt;
                    &lt;tr&gt;
                        &lt;td&gt;&lt;label for=&quot;new_password2&quot;&gt;New Password&lt;/label&gt;&lt;/td&gt;
                        &lt;td&gt;&lt;input name=&quot;new_password2&quot; id=&quot;new_password2&quot; type=&quot;password&quot; /&gt;&lt;/td&gt;
                    &lt;/tr&gt;
                    &lt;tr&gt;
                        &lt;td colspan=&quot;2&quot; style=&quot;text-align:center;&quot;&gt;
                            &lt;input type=&quot;submit&quot; value=&quot;Update Password&quot; /&gt;
                        &lt;/td&gt;
                    &lt;/tr&gt;
                &lt;/tbody&gt;
            &lt;/table&gt;
        &lt;/form&gt;
    &lt;/body&gt;
&lt;/html&gt;
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.tannerjepsen.com/posts/how-to-use-php-to-change-a-bluehost-email-account-password/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to: Merge Multiple Video Files Into One Using ffmpeg</title>
		<link>http://www.tannerjepsen.com/posts/how-to-merge-multiple-video-files-into-one-using-ffmpeg</link>
		<comments>http://www.tannerjepsen.com/posts/how-to-merge-multiple-video-files-into-one-using-ffmpeg#comments</comments>
		<pubDate>Tue, 27 Sep 2011 21:00:30 +0000</pubDate>
		<dc:creator>Tanner</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.tannerjepsen.com/posts/how-to-merge-multiple-video-files-into-one-using-ffmpeg</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<pre class="brush: bash; title: ; notranslate">ffmpeg –i video1.avi –sameq video1.mpg
ffmpeg –i video2.avi –sameq video2.mpg
ffmpeg –i video3.avi –sameq video3.mpg
# so on for every file to be merged
cat video1.mpg video2.mpg video3.mpg | ffmpeg –f mpeg –i - -sameq video.avi</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.tannerjepsen.com/posts/how-to-merge-multiple-video-files-into-one-using-ffmpeg/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Windows 7 as a Wi-Fi Access Point</title>
		<link>http://www.tannerjepsen.com/posts/windows-7-as-a-wi-fi-access-point</link>
		<comments>http://www.tannerjepsen.com/posts/windows-7-as-a-wi-fi-access-point#comments</comments>
		<pubDate>Fri, 23 Sep 2011 18:18:50 +0000</pubDate>
		<dc:creator>Tanner</dc:creator>
				<category><![CDATA[computers]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[technology]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://www.tannerjepsen.com/posts/windows-7-as-a-wi-fi-access-point</guid>
		<description><![CDATA[Ever needed a wireless router but didn&#8217;t have one handy? Ever use an ad-hoc wireless network with Internet Connection Sharing to get other devices connected quickly? What if you have say an Android phone with no cell network data connection but really need to connect it to the Internet but don&#8217;t have a wireless router [...]]]></description>
			<content:encoded><![CDATA[<p>Ever needed a wireless router but didn&#8217;t have one handy? Ever use an ad-hoc wireless network with Internet Connection Sharing to get other devices connected quickly? What if you have say an Android phone with no cell network data connection but really need to connect it to the Internet but don&#8217;t have a wireless router handy (Android won&#8217;t connect to an ad-hoc network without rooting the device)? Here&#8217;s how to setup Windows 7 to act as a Wi-Fi access point (aka infrastructure) for you and anyone else you want to allow to connect. <span style="color:#c00000"><strong>Note: This doesn&#8217;t work on Windows 7 Starter Edition as Internet Connection Sharing is not enabled.</strong></span>
	</p>
<ol>
<li>Open an elevated command prompt.
</li>
<li>Execute the following command, replacing &lt;some_ssid&gt; with an ssid of your choosing and &lt;some_passphrase&gt; with a wpa2 compatible passphrase. If either contain spaces, enclose that portion of the command in quotes:<br/>    <span style="font-family:Courier New">netsh wlan set hostednetwork mode=allow &lt;some_ssid&gt; &lt;some_passphrase&gt; persistent</span>
		</li>
<li>Enable Internet Connection Sharing. See <a href="http://windows.microsoft.com/en-US/windows-vista/Using-ICS-Internet-Connection-Sharing">Using ICS (Internet Connection Sharing) <img src="http://www.tannerjepsen.com/wp-content/uploads/2011/09/092311_1818_Windows7asa12.png" alt=""/></a>
		</li>
<li>Execute the following command, again using an elevated command prompt:<br/>    <span style="font-family:Courier New">netsh wlan start hostednetwork</span>
		</li>
<li>All done. Your other Wi-Fi devices should now see your wireless network and be able to connect to it.
</li>
</ol>
<p>Note: Using this method to connect an Android device, I could not get T-Mobile Wi-Fi Calling to connect to their service. I&#8217;m guessing the double-NAT would&#8217;ve caused an issue, although I have been able to connect through a double-NAT before.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tannerjepsen.com/posts/windows-7-as-a-wi-fi-access-point/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Grammar, Spelling and Numbers</title>
		<link>http://www.tannerjepsen.com/posts/grammar-spelling-and-numbers</link>
		<comments>http://www.tannerjepsen.com/posts/grammar-spelling-and-numbers#comments</comments>
		<pubDate>Wed, 06 Jul 2011 19:18:39 +0000</pubDate>
		<dc:creator>Tanner</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.tannerjepsen.com/posts/grammar-spelling-and-numbers</guid>
		<description><![CDATA[Here are some common mistakes people make when writing that bug the crap out of me. I don&#8217;t care what degrees you have or how much you think you know, when you make these simple mistakes no one is going to listen to you. I know there are mistakes that I make too, but the [...]]]></description>
			<content:encoded><![CDATA[<p>Here are some common mistakes people make when writing that bug the crap out of me. I don&#8217;t care what degrees you have or how much you think you know, when you make these simple mistakes no one is going to listen to you. I know there are mistakes that I make too, but the following are not them.
</p>
<ol>
<li>
<div>The difference between there, their and they&#8217;re:
</div>
<ol>
<li>there: a place. She is over there.
</li>
<li>their: shows possession of something to someone (the possessive form of they). I left the keys in their car (implies the car belongs to them).
</li>
<li>they&#8217;re: contraction of <em>they are</em>. They&#8217;re not here, they&#8217;re over there, in their car.
</li>
</ol>
</li>
<li>
<div>The difference between your and you&#8217;re:
</div>
<ol>
<li>your: the possessive form of you. It&#8217;s your house, the carpet belongs to you.
</li>
<li>you&#8217;re: contraction of <em>you are</em>. It&#8217;s your house, you&#8217;re responsible for clearing the sidewalk.
</li>
</ol>
</li>
<li>
<div>When to spell out numbers vs. when to write the number itself:
</div>
<ol>
<li>
<div>Spell out numbers that begin a sentence:
</div>
<ol>
<li>Correct: Seventy people went missing today.
</li>
<li>Incorrect: 6 pairs of shoes are better than five.
</li>
</ol>
</li>
<li>
<div>Spell out single digit numbers, not multi-digit numbers, except in the same category:
</div>
<ol>
<li>Correct: I bought five candy bars for my students.
</li>
<li>Correct: My 10 cats need to be spayed and neutered.
</li>
<li>Correct: I need five Snickers bars and four Mars bars.
</li>
<li>Incorrect: I want eight yellow buckets and 12 green buckets. (buckets are in the same category, spell out <em>twelve </em>or write <em>8</em>.)
</li>
</ol>
</li>
</ol>
</li>
<li>
<div>Format addresses correctly (use proper case). When on a resume do not use abbreviations:
</div>
<ol>
<li>Correct: 100 N 10<sup>th</sup> St., Tacoma, WA 98409
</li>
<li>Incorrect: 100 n 10 st., tacoma wa 98409
</li>
<li>Correct: 1715 E Main, Puyallup, WA 98372
</li>
<li>Incorrect: 1715 e Main St., Puyallup, WA 98372
</li>
<li>Correct: 1108 E 98<sup>th</sup> St Ct S, Tacoma, WA 98466
</li>
<li>Incorrect: 1108 e 98 st ct s, Tacoma, WA 98466
</li>
<li>Correct (on a resume): 1108 East 98<sup>th</sup> Street Court South, Tacoma, Washington 98466
</li>
<li>Incorrect (on a resume) 1108 E 98<sup>th</sup> St Ct S, Tacoma, WA 98466
</li>
</ol>
</li>
<li>
<div>Don&#8217;t use @ to refer to someone, either by name or handle, unless you&#8217;re on twitter:
</div>
<ol>
<li>Correct: SomeCleverHandle, you are exactly right!
</li>
<li>Incorrect: @SomeCleverHandle, you are completely wrong!</li>
</ol>
</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.tannerjepsen.com/posts/grammar-spelling-and-numbers/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bulk Convert DOCX to DOC</title>
		<link>http://www.tannerjepsen.com/posts/bulk-convert-docx-to-doc</link>
		<comments>http://www.tannerjepsen.com/posts/bulk-convert-docx-to-doc#comments</comments>
		<pubDate>Sun, 24 Apr 2011 16:44:54 +0000</pubDate>
		<dc:creator>Tanner</dc:creator>
				<category><![CDATA[computers]]></category>
		<category><![CDATA[data]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://www.tannerjepsen.com/?p=294</guid>
		<description><![CDATA[Someone requested a DOCX to DOC converter like the XLSX to XLS converter I posted previously, so here it is (download at bottom of post)! Click here to download the program. It requires that you have Microsoft Office 2007 or newer installed and the Microsoft .Net Framework 3.5.]]></description>
			<content:encoded><![CDATA[<p>Someone requested a DOCX to DOC converter like the XLSX to XLS converter I posted previously, so here it is (download at bottom of post)!<br />
<a href="http://www.tannerjepsen.com/wp-content/uploads/2011/04/docx2doc.png"><img class="alignnone size-full wp-image-295" title="docx2doc" src="http://www.tannerjepsen.com/wp-content/uploads/2011/04/docx2doc.png" alt="" width="403" height="381" /></a></p>
<p>Click <a href="http://www.tannerjepsen.com/wp-content/uploads/2011/04/docx2doc.zip">here</a> to download the program. It requires that you have Microsoft Office 2007 or newer installed and the <a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=333325FD-AE52-4E35-B531-508D977D32A6&amp;displaylang=en">Microsoft .Net Framework 3.5</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tannerjepsen.com/posts/bulk-convert-docx-to-doc/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Collage Generator</title>
		<link>http://www.tannerjepsen.com/posts/collage-generator</link>
		<comments>http://www.tannerjepsen.com/posts/collage-generator#comments</comments>
		<pubDate>Fri, 08 Apr 2011 15:49:19 +0000</pubDate>
		<dc:creator>Tanner</dc:creator>
				<category><![CDATA[algorithms]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[computers]]></category>

		<guid isPermaLink="false">http://www.tannerjepsen.com/?p=281</guid>
		<description><![CDATA[Working on a website for my wife, I needed to find images of money. I searched the Internet but couldn&#8217;t find anything that great or multiple images that were unique but in the same style. I decided to download images of bills from Wikipedia and write my own program to generate a few different collages. [...]]]></description>
			<content:encoded><![CDATA[<p>Working on a website for my wife, I needed to find images of money. I searched the Internet but couldn&#8217;t find anything that great or multiple images that were unique but in the same style. I decided to download images of bills from Wikipedia and write my own program to generate a few different collages. Check out the money collages at <a href="http://amcjudgmentrecovery.com">AMC Judgment Recovery</a> and below I&#8217;ve included some screen shots of example usages and their corresponding output. Scroll to the bottom of this post to download the program.</p>

<a href='http://www.tannerjepsen.com/posts/collage-generator/characters-command' title='Characters Command'><img width="150" height="150" src="http://www.tannerjepsen.com/wp-content/uploads/2011/04/Characters-Command-150x150.png" class="attachment-thumbnail" alt="Characters Command" title="Characters Command" /></a>
<a href='http://www.tannerjepsen.com/posts/collage-generator/characters' title='Characters'><img width="150" height="150" src="http://www.tannerjepsen.com/wp-content/uploads/2011/04/Characters-150x150.png" class="attachment-thumbnail" alt="Characters" title="Characters" /></a>
<a href='http://www.tannerjepsen.com/posts/collage-generator/las-vegas-command' title='Las Vegas Command'><img width="150" height="150" src="http://www.tannerjepsen.com/wp-content/uploads/2011/04/Las-Vegas-Command-150x150.png" class="attachment-thumbnail" alt="Las Vegas Command" title="Las Vegas Command" /></a>
<a href='http://www.tannerjepsen.com/posts/collage-generator/las-vegas' title='Las Vegas'><img width="150" height="150" src="http://www.tannerjepsen.com/wp-content/uploads/2011/04/Las-Vegas-150x150.png" class="attachment-thumbnail" alt="Las Vegas" title="Las Vegas" /></a>
<a href='http://www.tannerjepsen.com/posts/collage-generator/money-command' title='Money Command'><img width="150" height="150" src="http://www.tannerjepsen.com/wp-content/uploads/2011/04/Money-Command-150x150.png" class="attachment-thumbnail" alt="Money Command" title="Money Command" /></a>
<a href='http://www.tannerjepsen.com/posts/collage-generator/money' title='Money'><img width="150" height="150" src="http://www.tannerjepsen.com/wp-content/uploads/2011/04/Money-150x150.png" class="attachment-thumbnail" alt="Money" title="Money" /></a>
<a href='http://www.tannerjepsen.com/posts/collage-generator/us-command' title='Us Command'><img width="150" height="150" src="http://www.tannerjepsen.com/wp-content/uploads/2011/04/Us-Command-150x150.png" class="attachment-thumbnail" alt="Us Command" title="Us Command" /></a>
<a href='http://www.tannerjepsen.com/posts/collage-generator/us' title='Us'><img width="150" height="150" src="http://www.tannerjepsen.com/wp-content/uploads/2011/04/Us-150x150.png" class="attachment-thumbnail" alt="Us" title="Us" /></a>

<p><a href='http://www.tannerjepsen.com/wp-content/uploads/2011/04/CollageGenerator.exe'>Collage Generator v1.0.0 Copyright (c) 2011 Tanner Jepsen</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tannerjepsen.com/posts/collage-generator/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Identify This Cipher</title>
		<link>http://www.tannerjepsen.com/posts/identify-this-cipher</link>
		<comments>http://www.tannerjepsen.com/posts/identify-this-cipher#comments</comments>
		<pubDate>Sun, 13 Mar 2011 07:55:00 +0000</pubDate>
		<dc:creator>Tanner</dc:creator>
				<category><![CDATA[academic]]></category>
		<category><![CDATA[algorithms]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[computers]]></category>
		<category><![CDATA[data]]></category>

		<guid isPermaLink="false">http://www.tannerjepsen.com/?p=248</guid>
		<description><![CDATA[Using cryptographic analysis on a cipher produced by an existing software program, I was able to write my own compatible algorithm for re-producing the cipher. The only trouble is I have no idea which cipher it is. Perhaps combinations of different ciphers or maybe even a new cipher all together? No, I won&#8217;t say which [...]]]></description>
			<content:encoded><![CDATA[<p>Using cryptographic analysis on a cipher produced by an existing software program, I was able to write my own compatible algorithm for re-producing the cipher. The only trouble is I have no idea which cipher it is. Perhaps combinations of different ciphers or maybe even a new cipher all together? No, I won&#8217;t say which software program uses this cipher, but I wonder if anyone can identify and/or classify it. I believe it to be a symmetric key stream cipher&#8211;albeit, very weak and very easy to analyze.</p>
<p>Disclaimer: I invoke my right to free speech to post cryptographic source code. See <a href="http://en.wikipedia.org/wiki/Bernstein_v._United_States">Bernstein v. United States</a>.</p>
<p>Usage Examples:</p>
<pre class="brush: csharp; title: ; notranslate">
Console.WriteLine(Convert.ToBase64String(&quot;mypassword&quot;.Cipher(&quot;378518030611953&quot;)));
// or
Console.WriteLine(&quot;mypassword&quot;.Cipher(&quot;378518030611953&quot;).ToHexString());
// or
Console.WriteLine(&quot;mypassword&quot;.Cipher(ASCIIEncoding.ASCII.GetBytes(&quot;somekey&quot;)).ToHexString());
</pre>
<p>Corresponding Output Examples:</p>
<pre class="brush: csharp; title: ; notranslate">
// y8kJikhp6ItISg==
// or
// cbc9098a4869e88b484a
// or
// c5c4a58605c4c785a527
</pre>
<p>The Code:</p>
<pre class="brush: csharp; title: ; notranslate">
using System;
using System.Text;

namespace MyExtensions
{
    public static class Extensions
    {
        public static byte[] Cipher(this string password, string key)
        {
            byte[] cipher = System.Text.ASCIIEncoding.ASCII.GetBytes(password);
            return cipher.Cipher(key);
        }

        public static byte[] Cipher(this string password, byte[] key)
        {
            byte[] cipher = System.Text.ASCIIEncoding.ASCII.GetBytes(password);
            return cipher.Cipher(key);
        }

        public static byte[] Cipher(this byte[] password, string key)
        {
            try
            {
                byte[] k = key.ParseBytes();
                return password.Cipher(k);
            }
            catch (Exception e)
            {
                throw new Exception(&quot;The key can consist only of a string of numbers. No letters or special characters.&quot;, e);
            }
        }

        public static byte[] Cipher(this byte[] password, byte[] key)
        {
            byte[] cipher = password;
            for (int i = 0; i &lt; cipher.Length; i++)
            {
                int first = 0x09;
                int last = 0xE9;
                int rounds = cipher[i] ^ key[i % key.Length];

                for (int y = 0; y &lt;= rounds; y++)
                {
                    last += 32;
                    if (last &gt; 255) last = first = first + (y % 16 / 2) - 3;
                    if (last &lt; 0) last = first = 14;
                }
                cipher[i] = (byte)last;
            }
            return cipher;
        }

        public static byte[] ParseBytes(this string s)
        {
            return s.ToCharArray().ParseBytes();
        }

        public static byte[] ParseBytes(this char[] data)
        {
            byte[] p = new byte[data.Length];
            for (int i = 0; i &lt; data.Length; i++)
            {
                byte parsed;
                if (!byte.TryParse(data[i].ToString(), out parsed))
                    throw new Exception(&quot;The input can only consist of numbers. No letters or special characters.&quot;);
                p[i] = parsed;
            }
            return p;
        }

        public static string ToHexString(this byte[] data)
        {
            string s = string.Empty;
            for (int i = 0; i &lt; data.Length; i++)
            {
                s += data[i].ToHexString();
            }
            return s;
        }

        public static string ToHexString(this byte b)
        {
            return Convert.ToString(b, 16).PadLeft(2, &quot;0&quot;);
        }

        public static string PadLeft(this string s, int totalWidth, string padding)
        {
            return s.PadLeft(totalWidth, char.Parse(padding));
        }

        public static string PadRight(this string s, int totalWidth, string padding)
        {
            return s.PadRight(totalWidth, char.Parse(padding));
        }
    }
}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.tannerjepsen.com/posts/identify-this-cipher/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Interesting Error from Win 7</title>
		<link>http://www.tannerjepsen.com/posts/interesting-error-from-win-7</link>
		<comments>http://www.tannerjepsen.com/posts/interesting-error-from-win-7#comments</comments>
		<pubDate>Thu, 16 Dec 2010 22:14:10 +0000</pubDate>
		<dc:creator>Tanner</dc:creator>
				<category><![CDATA[computers]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://www.tannerjepsen.com/?p=222</guid>
		<description><![CDATA[I don&#8217;t know what I&#8217;d do with a 734 PB file.]]></description>
			<content:encoded><![CDATA[<p>I don&#8217;t know what I&#8217;d do with a 734 PB file.</p>
<p><img src="http://www.tannerjepsen.com/wp-content/uploads/2010/12/121610_2214_Interesting1.png" alt="" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tannerjepsen.com/posts/interesting-error-from-win-7/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

