<?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>Eric Mason</title>
	<atom:link href="http://ericmason.net/feed/" rel="self" type="application/rss+xml" />
	<link>http://ericmason.net</link>
	<description>From Fort Lauderdale, Ruby, Linux, Photography, and Random Things</description>
	<lastBuildDate>Tue, 15 Nov 2011 20:22:02 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Asterisk: Automatically Update externip When Your IP Address Changes</title>
		<link>http://ericmason.net/2011/11/asterisk-automatically-update-externip-when-your-ip-address-changes/</link>
		<comments>http://ericmason.net/2011/11/asterisk-automatically-update-externip-when-your-ip-address-changes/#comments</comments>
		<pubDate>Tue, 15 Nov 2011 15:42:35 +0000</pubDate>
		<dc:creator>eric</dc:creator>
				<category><![CDATA[sysadmin]]></category>

		<guid isPermaLink="false">http://ericmason.net/?p=189</guid>
		<description><![CDATA[I got tired of updating Asterisk&#8217;s externip setting every time my IP address changed, so I wrote this quick script, saved as /usr/local/bin/asterisk_update_externip: #!/bin/bash ip_url="http://automation.whatismyip.com/n09230945.asp" oldip=`grep externip /etc/asterisk/sip.conf &#124;sed 's/;.*//' &#124;grep -v ^$ &#124;sed s/.*=\ *//` ip=`curl -s "$ip_url" &#124;head &#8230; <a href="http://ericmason.net/2011/11/asterisk-automatically-update-externip-when-your-ip-address-changes/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I got tired of updating Asterisk&#8217;s externip setting every time my IP address changed, so I wrote this quick script, saved as /usr/local/bin/asterisk_update_externip:</p>
<pre>#!/bin/bash

ip_url="http://automation.whatismyip.com/n09230945.asp"

oldip=`grep externip /etc/asterisk/sip.conf |sed 's/;.*//' |grep -v ^$ |sed s/.*=\ *//`
ip=`curl -s "$ip_url" |head -n 1`

if [ "$oldip" != "$ip" ]
then
        #echo "Updating IP"
        sed -i "s/externip = $oldip/externip = $ip/" /etc/asterisk/sip.conf
        asterisk -r -x "core reload"

fi</pre>
<p>I put it in /etc/cron.d/asterisk-externip as follows:</p>
<pre># Update Asterisk's SIP External IP
3,8,13,18,23,28,33,38,43,48,53,58 * * * * root asterisk_update_externip</pre>
<p>Enjoy!</p>
]]></content:encoded>
			<wfw:commentRss>http://ericmason.net/2011/11/asterisk-automatically-update-externip-when-your-ip-address-changes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>VOIP Routing for Non-US, 10-Digit NANPA Numbers in Asterisk</title>
		<link>http://ericmason.net/2011/07/voip-routing-for-non-us-10-digit-nanpa-numbers-in-asterisk/</link>
		<comments>http://ericmason.net/2011/07/voip-routing-for-non-us-10-digit-nanpa-numbers-in-asterisk/#comments</comments>
		<pubDate>Mon, 18 Jul 2011 16:08:10 +0000</pubDate>
		<dc:creator>eric</dc:creator>
				<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://ericmason.net/?p=182</guid>
		<description><![CDATA[I got my AT&#38;T bill this morning with $150 in long distance charges for calls to Canada. After cursing AT&#38;T under my breath I resolved not to let this happen again.  Knowing AT&#38;T charges exorbitant rates for international calls ($1.39/minute to Canada? &#8230; <a href="http://ericmason.net/2011/07/voip-routing-for-non-us-10-digit-nanpa-numbers-in-asterisk/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I got my AT&amp;T bill this morning with $150 in long distance charges for calls to Canada. After cursing AT&amp;T under my breath I resolved not to let this happen again.  Knowing AT&amp;T charges exorbitant rates for international calls ($1.39/minute to Canada? Really?) I have international calls set to route through a <a href="http://vitelity.net">VOIP provider</a> where I pay 1.39 CENTS to call Canada and the rest of the developed world.  As soon as you hit 011 on our phone system you&#8217;re automatically routed to VOIP.  The problem is, thanks to <a href="http://www.nanpa.com/">NANPA</a>, Canadian phone numbers, and some islands in the Caribbean, look just like US numbers, 1-XXX-XXX-XXXX, but charge like you&#8217;re calling Iran.  What to do?<span id="more-182"></span></p>
<p>There doesn&#8217;t seem to be any easy way to detect an international number within NANPA other than to make a list of the international area codes, so that&#8217;s what I did.  Based on <a href="http://www.allareacodes.com/canadian_area_codes.htm">this</a> and <a href="http://en.wikipedia.org/wiki/North_American_Numbering_Plan">this</a> I wrote a quick snippet of Ruby code to generate my dialplan rules:</p>
<pre class="brush: ruby; title: ; notranslate">
# Canada
codes = %w{204 250 289 306 403 416 418 450 506 514 519 604 613 647 705 709 778 780 807 819 867 902 905}
# Islands
codes += %w{809 441 787 939 340 670 671 684 599 721}
codes.each {|code| puts &quot;exten = _#{code}XXXXXXX,1,Macro(trunkdial,${Vitelity}/${EXTEN})\nexten = _1#{code}XXXXXXX,1,Macro(trunkdial,${Vitelity}/${EXTEN:1})&quot;};
</pre>
<p>I have my phone system set up to let me dial 10 digit numbers either with or without the initial 1, so there are two entries for each area code.  Here&#8217;s the result.</p>
<pre class="brush: plain; title: ; notranslate">
exten = _204XXXXXXX,1,Macro(trunkdial,${Vitelity}/${EXTEN})
exten = _1204XXXXXXX,1,Macro(trunkdial,${Vitelity}/${EXTEN:1})
exten = _250XXXXXXX,1,Macro(trunkdial,${Vitelity}/${EXTEN})
exten = _1250XXXXXXX,1,Macro(trunkdial,${Vitelity}/${EXTEN:1})
exten = _289XXXXXXX,1,Macro(trunkdial,${Vitelity}/${EXTEN})
exten = _1289XXXXXXX,1,Macro(trunkdial,${Vitelity}/${EXTEN:1})
exten = _306XXXXXXX,1,Macro(trunkdial,${Vitelity}/${EXTEN})
exten = _1306XXXXXXX,1,Macro(trunkdial,${Vitelity}/${EXTEN:1})
exten = _403XXXXXXX,1,Macro(trunkdial,${Vitelity}/${EXTEN})
exten = _1403XXXXXXX,1,Macro(trunkdial,${Vitelity}/${EXTEN:1})
exten = _416XXXXXXX,1,Macro(trunkdial,${Vitelity}/${EXTEN})
exten = _1416XXXXXXX,1,Macro(trunkdial,${Vitelity}/${EXTEN:1})
exten = _418XXXXXXX,1,Macro(trunkdial,${Vitelity}/${EXTEN})
exten = _1418XXXXXXX,1,Macro(trunkdial,${Vitelity}/${EXTEN:1})
exten = _450XXXXXXX,1,Macro(trunkdial,${Vitelity}/${EXTEN})
exten = _1450XXXXXXX,1,Macro(trunkdial,${Vitelity}/${EXTEN:1})
exten = _506XXXXXXX,1,Macro(trunkdial,${Vitelity}/${EXTEN})
exten = _1506XXXXXXX,1,Macro(trunkdial,${Vitelity}/${EXTEN:1})
exten = _514XXXXXXX,1,Macro(trunkdial,${Vitelity}/${EXTEN})
exten = _1514XXXXXXX,1,Macro(trunkdial,${Vitelity}/${EXTEN:1})
exten = _519XXXXXXX,1,Macro(trunkdial,${Vitelity}/${EXTEN})
exten = _1519XXXXXXX,1,Macro(trunkdial,${Vitelity}/${EXTEN:1})
exten = _604XXXXXXX,1,Macro(trunkdial,${Vitelity}/${EXTEN})
exten = _1604XXXXXXX,1,Macro(trunkdial,${Vitelity}/${EXTEN:1})
exten = _613XXXXXXX,1,Macro(trunkdial,${Vitelity}/${EXTEN})
exten = _1613XXXXXXX,1,Macro(trunkdial,${Vitelity}/${EXTEN:1})
exten = _647XXXXXXX,1,Macro(trunkdial,${Vitelity}/${EXTEN})
exten = _1647XXXXXXX,1,Macro(trunkdial,${Vitelity}/${EXTEN:1})
exten = _705XXXXXXX,1,Macro(trunkdial,${Vitelity}/${EXTEN})
exten = _1705XXXXXXX,1,Macro(trunkdial,${Vitelity}/${EXTEN:1})
exten = _709XXXXXXX,1,Macro(trunkdial,${Vitelity}/${EXTEN})
exten = _1709XXXXXXX,1,Macro(trunkdial,${Vitelity}/${EXTEN:1})
exten = _778XXXXXXX,1,Macro(trunkdial,${Vitelity}/${EXTEN})
exten = _1778XXXXXXX,1,Macro(trunkdial,${Vitelity}/${EXTEN:1})
exten = _780XXXXXXX,1,Macro(trunkdial,${Vitelity}/${EXTEN})
exten = _1780XXXXXXX,1,Macro(trunkdial,${Vitelity}/${EXTEN:1})
exten = _807XXXXXXX,1,Macro(trunkdial,${Vitelity}/${EXTEN})
exten = _1807XXXXXXX,1,Macro(trunkdial,${Vitelity}/${EXTEN:1})
exten = _819XXXXXXX,1,Macro(trunkdial,${Vitelity}/${EXTEN})
exten = _1819XXXXXXX,1,Macro(trunkdial,${Vitelity}/${EXTEN:1})
exten = _867XXXXXXX,1,Macro(trunkdial,${Vitelity}/${EXTEN})
exten = _1867XXXXXXX,1,Macro(trunkdial,${Vitelity}/${EXTEN:1})
exten = _902XXXXXXX,1,Macro(trunkdial,${Vitelity}/${EXTEN})
exten = _1902XXXXXXX,1,Macro(trunkdial,${Vitelity}/${EXTEN:1})
exten = _905XXXXXXX,1,Macro(trunkdial,${Vitelity}/${EXTEN})
exten = _1905XXXXXXX,1,Macro(trunkdial,${Vitelity}/${EXTEN:1})
exten = _809XXXXXXX,1,Macro(trunkdial,${Vitelity}/${EXTEN})
exten = _1809XXXXXXX,1,Macro(trunkdial,${Vitelity}/${EXTEN:1})
exten = _441XXXXXXX,1,Macro(trunkdial,${Vitelity}/${EXTEN})
exten = _1441XXXXXXX,1,Macro(trunkdial,${Vitelity}/${EXTEN:1})
exten = _787XXXXXXX,1,Macro(trunkdial,${Vitelity}/${EXTEN})
exten = _1787XXXXXXX,1,Macro(trunkdial,${Vitelity}/${EXTEN:1})
exten = _939XXXXXXX,1,Macro(trunkdial,${Vitelity}/${EXTEN})
exten = _1939XXXXXXX,1,Macro(trunkdial,${Vitelity}/${EXTEN:1})
exten = _340XXXXXXX,1,Macro(trunkdial,${Vitelity}/${EXTEN})
exten = _1340XXXXXXX,1,Macro(trunkdial,${Vitelity}/${EXTEN:1})
exten = _670XXXXXXX,1,Macro(trunkdial,${Vitelity}/${EXTEN})
exten = _1670XXXXXXX,1,Macro(trunkdial,${Vitelity}/${EXTEN:1})
exten = _671XXXXXXX,1,Macro(trunkdial,${Vitelity}/${EXTEN})
exten = _1671XXXXXXX,1,Macro(trunkdial,${Vitelity}/${EXTEN:1})
exten = _684XXXXXXX,1,Macro(trunkdial,${Vitelity}/${EXTEN})
exten = _1684XXXXXXX,1,Macro(trunkdial,${Vitelity}/${EXTEN:1})
exten = _599XXXXXXX,1,Macro(trunkdial,${Vitelity}/${EXTEN})
exten = _1599XXXXXXX,1,Macro(trunkdial,${Vitelity}/${EXTEN:1})
exten = _721XXXXXXX,1,Macro(trunkdial,${Vitelity}/${EXTEN})
exten = _1721XXXXXXX,1,Macro(trunkdial,${Vitelity}/${EXTEN:1})
</pre>
<p>Now my calls to Canada and the islands go through the VOIP provider <a href="http://www.vitelity.net/">Vitelity</a>, where I pay 1/100 as much as I did with AT&amp;T.  Decent savings for adding a few entries to extensions.conf.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://ericmason.net/2011/07/voip-routing-for-non-us-10-digit-nanpa-numbers-in-asterisk/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nagios Plugin to Check Memory</title>
		<link>http://ericmason.net/2011/01/nagios-plugin-to-check-memory/</link>
		<comments>http://ericmason.net/2011/01/nagios-plugin-to-check-memory/#comments</comments>
		<pubDate>Mon, 10 Jan 2011 22:41:44 +0000</pubDate>
		<dc:creator>eric</dc:creator>
				<category><![CDATA[sysadmin]]></category>

		<guid isPermaLink="false">http://ericmason.net/?p=169</guid>
		<description><![CDATA[After a search for a check_memory plugin for Nagios turned up only a Korn shell script, I quickly wrote the following in Ruby for Linux, which I hereby release into the public domain.   Why?  All my servers have Ruby, &#8230; <a href="http://ericmason.net/2011/01/nagios-plugin-to-check-memory/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>After a search for a check_memory plugin for Nagios turned up only a Korn shell script, I quickly wrote the following in Ruby for Linux, which I hereby release into the public domain.   Why?  All my servers have Ruby, but not Korn shell.</p>
<p><span id="more-169"></span></p>
<pre class="syntax ruby">#!/usr/bin/env ruby

require 'optparse'

options = {}
optparse = OptionParser.new do |opts|
  opts.banner = &quot;Usage: #{$0} [OPTIONS]&quot;

  opts.on('-w', '--warn PCT', 'Warn if memory usage goes over PCT') do |val|
    options[:warn_pct] = val.to_i
  end

  opts.on('-c', '--crit PCT', 'Critical if memory usage goes over PCT') do |val|
    options[:crit_pct] = val.to_i
  end

  opts.on('-h', '--help', 'Display this screen') do
    puts opts
    exit
  end
end
optparse.parse!

unless options[:crit_pct] &amp;amp;&amp;amp; options[:warn_pct]
  puts optparse.help
  exit
end

# Get the stats from /proc
mem = File.readlines(&quot;/proc/meminfo&quot;).inject({}) {|m,x| k,v = x.split(/:?\s+/); m[k] = v.to_i; m}
free = mem['MemFree'] + mem['Buffers'] + mem['Cached']
total = mem['MemTotal']
used = total - free
pct_used = used * 100 / total

if pct_used &amp;gt; options[:crit_pct]
  puts &quot;MEMORY CRTIICAL - #{pct_used}% used&quot;
  exit 2
elsif pct_used &amp;gt; options[:warn_pct]
  puts &quot;MEMORY WARNING -  #{pct_used}% used&quot;
  exit 1
else
  puts &quot;MEMORY OK - #{pct_used}% used&quot;
end</pre>
<p>This goes in /usr/lib/nagios/plugins/check_memory .  You can add it to nrpe.cfg like so:</p>
<pre class="syntax bash">command[check_memory]=/usr/lib/nagios/plugins/check_memory  -w 75 -c 85</pre>
<p>Update: Found a shell script <a href="http://www.matejunkie.com/memory-check-plugin-for-nagios/">here</a></p>
]]></content:encoded>
			<wfw:commentRss>http://ericmason.net/2011/01/nagios-plugin-to-check-memory/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Microsoft Word Template for Window Envelopes</title>
		<link>http://ericmason.net/2010/12/microsoft-word-template-for-window-envelopes/</link>
		<comments>http://ericmason.net/2010/12/microsoft-word-template-for-window-envelopes/#comments</comments>
		<pubDate>Tue, 07 Dec 2010 16:24:42 +0000</pubDate>
		<dc:creator>eric</dc:creator>
				<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://ericmason.net/?p=165</guid>
		<description><![CDATA[Here is a template for Word that will put the addresses in the right place when printed and placed in a #10 window envelope.  Here&#8217;s how to use it: Enter your return address and the recipient&#8217;s address in the boxes &#8230; <a href="http://ericmason.net/2010/12/microsoft-word-template-for-window-envelopes/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Here is a template for Word that will put the addresses in the right place when printed and placed in a #10 window envelope.  Here&#8217;s how to use it:</p>
<ol>
<li>Enter your return address and the recipient&#8217;s address in the boxes at the top of the page.  Be sure to keep the address within the boxes.</li>
<li>Write your letter and print it.</li>
<li>Fold the letter along the line on the right side of the first page.  This will make sure that the folded letter is large enough so it doesn&#8217;t slide around in the envelope and move the addresses out of the windows.</li>
</ol>
<p><a href="http://ericmason.net/files/Letter_No10_Envelope.dotx">Download the template for Word 2007</a></p>
<p>Update: <a href="http://ericmason.net/files/Letter_No10_Envelope.dot">Letter_No10_Envelope.dot</a> &#8211; Word 97-2003 version</p>
]]></content:encoded>
			<wfw:commentRss>http://ericmason.net/2010/12/microsoft-word-template-for-window-envelopes/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>FaceFeeder Turns Your Facebook News Feed Into an Atom Feed</title>
		<link>http://ericmason.net/2010/09/facefeeder-turns-your-facebook-news-feed-into-an-atom-feed/</link>
		<comments>http://ericmason.net/2010/09/facefeeder-turns-your-facebook-news-feed-into-an-atom-feed/#comments</comments>
		<pubDate>Sun, 19 Sep 2010 18:52:37 +0000</pubDate>
		<dc:creator>eric</dc:creator>
				<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://ericmason.net/?p=160</guid>
		<description><![CDATA[Here it is, my first Google App:  FaceFeeder.  I thought it would be nice to be able to see my Facebook news feed in Google Reader and there didn&#8217;t seem to be any way to do it, so I wrote &#8230; <a href="http://ericmason.net/2010/09/facefeeder-turns-your-facebook-news-feed-into-an-atom-feed/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Here it is, my first Google App:  FaceFeeder.  I thought it would be nice to be able to see my Facebook news feed in <a href="http://reader.google.com/">Google Reader</a> and there didn&#8217;t seem to be any way to do it, so I wrote a quick application called <a href="http://facefeeder.appspot.com/">FaceFeeder</a>.</p>
<p>FaceFeeder &#8211; <a href="http://facefeeder.appspot.com/">Turn your Facebook news feed into an Atom feed.</a></p>
]]></content:encoded>
			<wfw:commentRss>http://ericmason.net/2010/09/facefeeder-turns-your-facebook-news-feed-into-an-atom-feed/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Problem with eFax</title>
		<link>http://ericmason.net/2010/05/efax-is-crap/</link>
		<comments>http://ericmason.net/2010/05/efax-is-crap/#comments</comments>
		<pubDate>Thu, 13 May 2010 19:53:36 +0000</pubDate>
		<dc:creator>eric</dc:creator>
				<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://ericmason.net/?p=154</guid>
		<description><![CDATA[Maybe I&#8217;m the last person to find this out, but just in case you&#8217;re about to go through the hassle of signing up for eFax, let me save you the trouble.  eFax is crap! Here&#8217;s why: Faxes Forced to be &#8230; <a href="http://ericmason.net/2010/05/efax-is-crap/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Maybe I&#8217;m the last person to find this out, but just in case you&#8217;re about to go through the hassle of signing up for eFax, let me save you the trouble.  <strong>eFax is crap!</strong> Here&#8217;s why:</p>
<h3>Faxes Forced to be Included in Emails</h3>
<p>There&#8217;s no way to have eFax just notify you of an incoming fax.  They HAVE to send you the whole fax as an attachment.  What if you&#8217;re receiving a credit card number in a fax? Well tough luck, it&#8217;s getting sent unencrypted.</p>
<h3>Bad Customer Service</h3>
<p>eFax won&#8217;t help you with most customer service issues on the phone.  Instead, they expect you to use their online chat.  And the reps are very slow and unhelpful.  When you try to cancel your account, they make you go through a long survey and your account won&#8217;t be canceled until you fully answer all their questions.  And forget about getting a refund for unused service.  If your account just renewed for a year (with no notice) and you try to cancel, too bad, you&#8217;re not getting your money back.</p>
<h3>Can&#8217;t Keep Your Number</h3>
<p>You put your fax number on your business cards, on your website, in your email signature, maybe company letterhead, etc.   For whatever reason, maybe one the ones listed here, you decide to switch from eFax.  Get your credit card out, because you&#8217;re going to need new business cards.  eFax&#8217;s customer agreement says</p>
<blockquote><p>YOU FURTHER UNDERSTAND AND AGREE THAT <strong>YOU ARE NOT THE OWNER OF ANY eFAX NUMBER ASSIGNED TO YOU BY j2 GLOBAL</strong> &#8230;<strong> YOU ARE EXPRESSLY PROHIBITED</strong> FROM CAUSING OR ATTEMPTING TO CAUSE THE eFAX NUMBER ASSIGNED TO YOUR ACCOUNT TO BE TRANSFERRED TO ANY OTHER SERVICE PROVIDER, TELEPHONE CARRIER OR ANY OTHER PERSON OR ENTITY (ALSO SOMETIMES REFERRED TO AS “PORTING” THE TELEPHONE NUMBER). IN THE EVENT YOU ARE FOUND TO HAVE VIOLATED THIS PROHIBITION <strong>YOU AGREE TO IMMEDIATELY RETURN THE NUMBER TO j2 GLOBAL AND PAY TO j2 GLOBAL AN AMOUNT EQUAL TO $500 </strong>(OR THE EQUIVALENT IN LOCAL CURRENCY). YOU AUTHORIZE j2 GLOBAL TO CHARGE YOUR ACCOUNT CREDIT CARD OR TAKE ANY OTHER MEASURES REQUIRED TO COLLECT THIS PAYMENT.</p></blockquote>
<p>Other than that, eFax is OK.  :)</p>
]]></content:encoded>
			<wfw:commentRss>http://ericmason.net/2010/05/efax-is-crap/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Got my Canon Rebel T2i &#8211; and VigLink</title>
		<link>http://ericmason.net/2010/05/got-my-canon-rebel-t2i-and-viglink/</link>
		<comments>http://ericmason.net/2010/05/got-my-canon-rebel-t2i-and-viglink/#comments</comments>
		<pubDate>Thu, 13 May 2010 14:25:33 +0000</pubDate>
		<dc:creator>eric</dc:creator>
				<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://ericmason.net/?p=151</guid>
		<description><![CDATA[I caved and bought the Canon Rebel T2i with a 10% off coupon from Best Buy.  And I let them talk me into getting their 4 year accidental damage warranty for another $200.  Which actually seems like a pretty decent &#8230; <a href="http://ericmason.net/2010/05/got-my-canon-rebel-t2i-and-viglink/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I caved and bought the <a href="http://www.amazon.com/Canon-T2i-Digital-3-0-Inch-18-55mm/dp/B0035FZJHQ/ref=sr_1_1?ie=UTF8&amp;s=electronics&amp;qid=1273759922&amp;sr=1-1">Canon Rebel T2i</a> with a 10% off coupon from <a href="http://www.bestbuy.com/site/Canon+-+EOS+Rebel+T2i+18.0-Megapixel+Digital+SLR+Camera+-+Black/9778635.p?id=1218171770784&amp;skuId=9778635">Best Buy</a>.  And I let them talk me into getting their 4 year accidental damage warranty for another $200.  Which actually seems like a pretty decent deal.  Think they&#8217;ll cover whatever lens I have attached if it breaks?</p>
<div class="wp-caption alignnone" style="width: 510px"><a href="http://www.bhphotovideo.com/c/product/675617-REG/Canon_4462B001_Canon_EOS_Rebel_T2i.html"><img class=" " title="Canon Rebel T2i" src="http://farm5.static.flickr.com/4018/4345686051_caf59b120f.jpg" alt="" width="500" height="192" /></a><p class="wp-caption-text">credit: chris runoff (flickr)</p></div>
<p>So yes, this is kind of a random post, but it serves a purpose.  I&#8217;ve embedded links to Amazon, Best Buy, and <a href="http://www.bhphotovideo.com/">B&amp;H</a> to test out <a href="http://www.viglink.com/?vgref=2205">VigLink</a>, which is supposed to make all your links into affiliate links.  They take a 25% cut but claim they negotiate better affiliate commissions to make up for it.  Sounds like a win-win and maybe a better way for bloggers to make money, as long as they don&#8217;t start shamelessly promoting products with stealth affiliate links.</p>
]]></content:encoded>
			<wfw:commentRss>http://ericmason.net/2010/05/got-my-canon-rebel-t2i-and-viglink/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Crist creates oil spill recovery task force</title>
		<link>http://ericmason.net/2010/05/crist-creates-oil-spill-recovery-task-force/</link>
		<comments>http://ericmason.net/2010/05/crist-creates-oil-spill-recovery-task-force/#comments</comments>
		<pubDate>Tue, 11 May 2010 17:53:08 +0000</pubDate>
		<dc:creator>eric</dc:creator>
				<category><![CDATA[News]]></category>

		<guid isPermaLink="false">http://ericmason.net/?p=148</guid>
		<description><![CDATA[The South Florida Business Journal reports that Charlie Crist &#8220;has issued an executive order creating an economic recovery task force whose job will be to help Florida businesses and industries recover from losses associated with the Deepwater Horizon oil spill.&#8221; &#8230; <a href="http://ericmason.net/2010/05/crist-creates-oil-spill-recovery-task-force/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>The South Florida Business Journal <a href="http://www.bizjournals.com/southflorida/stories/2010/05/10/daily15.html?ana=from_rss&amp;utm_source=feedburner&amp;utm_medium=feed&amp;utm_campaign=Feed:+bizj_southflorida+(South+Florida+Business+Journal)">reports</a> that Charlie Crist &#8220;has issued an executive order creating an economic recovery task force whose job will be to help Florida businesses and industries recover from losses associated with the Deepwater Horizon oil spill.&#8221;</p>
<p>Sounds like a big government scheme that might just as easily have come from Charlie&#8217;s <a href="http://www.huffingtonpost.com/2009/10/25/crist-obama-hug-haunting-_n_332963.html">best buddy Barack Obama</a>.  Now that Governor Crist has left the Republican Party he is completely unrestrained.  Too bad he hasn&#8217;t resigned as governor to focus on his campaign.  (too much free publicity)</p>
<p>Read more: <a href="http://www.bizjournals.com/southflorida/stories/2010/05/10/daily15.html?ana=from_rss&amp;utm_source=feedburner&amp;utm_medium=feed&amp;utm_campaign=Feed%3A+bizj_southflorida+%28South+Florida+Business+Journal%29#ixzz0ne1NNGdC">Crist creates oil spill recovery task force &#8211; South Florida Business Journal:</a></p>
]]></content:encoded>
			<wfw:commentRss>http://ericmason.net/2010/05/crist-creates-oil-spill-recovery-task-force/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PuTTY SSH / Windows Clipboard Integration</title>
		<link>http://ericmason.net/2010/04/putty-ssh-windows-clipboard-integration/</link>
		<comments>http://ericmason.net/2010/04/putty-ssh-windows-clipboard-integration/#comments</comments>
		<pubDate>Fri, 23 Apr 2010 22:36:49 +0000</pubDate>
		<dc:creator>eric</dc:creator>
				<category><![CDATA[sysadmin]]></category>

		<guid isPermaLink="false">http://ericmason.net/?p=142</guid>
		<description><![CDATA[Getting text out of your SSH sessions can be annoying.  If it fits in a screen, I usually just select the text in PuTTY to copy it&#8211; no big deal.  Otherwise, I have to either email it to myself or &#8230; <a href="http://ericmason.net/2010/04/putty-ssh-windows-clipboard-integration/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Getting text out of your SSH sessions can be annoying.  If it fits in a screen, I usually just select the text in PuTTY to copy it&#8211; no big deal.  Otherwise, I have to either email it to myself or put it in a file, log in with WinSCP, and download the file.  Way too much trouble.</p>
<p>Today I started searching for a better solution and found a <a href="http://dmst.aueb.gr/dds/sw/windows/puttyclip/">patch for PuTTY</a> by <a href="http://dmst.aueb.gr/dds/" target="NEW">Diomidis Spinellis</a>.  Unfortunately it was for an old version of PuTTY.  However with a little effort I updated the patch to PuTTY 0.60.</p>
<p>Here&#8217;s how it works:<br />
<span id="more-142"></span></p>
<ol>
<li>Use the <a href="http://ericmason.net/putty/putty.exe">modified PuTTY</a></li>
<li>When connecting (or after) click on the Terminal setting, and under &#8220;Printer to send ANSI printer output to&#8221; select &#8220;Windows clipboard&#8221;</li>
<li>Add the following to your .bashrc (or the appropriate startup file for your shell)  To use it immediately, be sure to type &#8220;source .bashrc&#8221;
<pre class="syntax bash">
function wcl {
  echo -ne '\e''[5i'
  cat $*
  echo -ne '\e''[4i'
  echo &quot;Copied to Windows clipboard&quot; 1&gt;&amp;2
}
</pre>
<p><span style="font-family: Consolas, Monaco, 'Courier New', Courier, monospace; line-height: 18px; font-size: 12px; white-space: pre;">}</span></li>
<li>Now when you want some text out of SSH, just pipe it to wcl.   For instance, &#8220;ls -la |wcl&#8221; places the output of &#8220;ls -la&#8221; in your Windows clipboard.</li>
</ol>
<p><a href="http://ericmason.net/putty/putty.exe">Modified PuTTY 0.60 executable</a></p>
<p><a href="http://ericmason.net/putty/putty-0.60-clip.patch">Patch for PuTTY 0.60</a></p>
]]></content:encoded>
			<wfw:commentRss>http://ericmason.net/2010/04/putty-ssh-windows-clipboard-integration/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Converting iPhone 3GS Videos to play on Samsung Blu-ray Player</title>
		<link>http://ericmason.net/2009/10/converting-iphone-3gs-videos-to-play-on-samsung-blu-ray-player/</link>
		<comments>http://ericmason.net/2009/10/converting-iphone-3gs-videos-to-play-on-samsung-blu-ray-player/#comments</comments>
		<pubDate>Thu, 22 Oct 2009 01:21:10 +0000</pubDate>
		<dc:creator>eric</dc:creator>
				<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://ericmason.net/?p=135</guid>
		<description><![CDATA[Wow, the iPhone 3GS takes nice videos!  I recently made a quick video of Murphy at the dog park and noticed that it looks great even full-screen on my 20&#8243; monitor at work.  I was curious how it would look &#8230; <a href="http://ericmason.net/2009/10/converting-iphone-3gs-videos-to-play-on-samsung-blu-ray-player/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Wow, the iPhone 3GS takes nice videos!  I recently made a quick video of Murphy at the dog park and noticed that it looks great even full-screen on my 20&#8243; monitor at work.  I was curious how it would look on TV, but my Samsung BD-P3600 didn&#8217;t like the .mov file the iPhone created.  Here&#8217;s how I converted it:</p>
<pre>ffmpeg -i IMG_0270.MOV -vcodec libxvid -aspect 4:3 -b 4000k -ab 128k mdog.avi</pre>
<p>You will need <a href="http://oss.netfarm.it/mplayer-win32.php">ffmpeg for Windows</a>.  I used <a style="color: #00a9ff; text-decoration: none; background-color: inherit;" href="http://sourceforge.net/project/showfiles.php?group_id=205275&amp;package_id=248632&amp;release_id=689227">FFmpeg svn rev 19159</a></p>
<p>By the way, here&#8217;s the video:<br />
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="344" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/iE4g9HTMUFY&amp;hl=en&amp;fs=1" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="425" height="344" src="http://www.youtube.com/v/iE4g9HTMUFY&amp;hl=en&amp;fs=1" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://ericmason.net/2009/10/converting-iphone-3gs-videos-to-play-on-samsung-blu-ray-player/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

