<?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>Curtis Summers &#187; software</title>
	<atom:link href="http://csummers.com/category/software/feed/" rel="self" type="application/rss+xml" />
	<link>http://csummers.com</link>
	<description>%w{life code ruby}.map { &#124;i&#124; "#{i} is awesome" }</description>
	<lastBuildDate>Sat, 31 Mar 2012 19:54:03 +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>productivity tools: screen</title>
		<link>http://csummers.com/2006/04/07/productivity-tools-screen/</link>
		<comments>http://csummers.com/2006/04/07/productivity-tools-screen/#comments</comments>
		<pubDate>Fri, 07 Apr 2006 12:43:52 +0000</pubDate>
		<dc:creator>Curt</dc:creator>
				<category><![CDATA[software]]></category>
		<category><![CDATA[tech tips]]></category>

		<guid isPermaLink="false">http://www.csummers.org/index.php/2006/04/07/productivity-tools-screen/</guid>
		<description><![CDATA[In my last post, I wrote about setting up ssh-agent to streamline your connectivity to SSH remote hosts. In this post, I&#8217;ll introduce screen, which I use in conjunction with ssh &#038; ssh-agent to further improve my connectivity productivity. screen is a console window manager that multiplexes between multiple terminals. If multiplexing was it&#8217;s only [...]]]></description>
			<content:encoded><![CDATA[<p>In my <a href="http://www.csummers.org/index.php/2006/04/05/productivity-tools-ssh-agent/" title="productivity tools: ssh-agent">last post</a>, I wrote about setting up ssh-agent to streamline your connectivity to SSH remote hosts.  In this post, I&#8217;ll introduce <a href="http://www.gnu.org/software/screen/" title="GNU screen's home page">screen</a>, which I use in conjunction with ssh &#038; ssh-agent to further improve my connectivity productivity.</p>
<p><b>screen</b> is a console window manager that multiplexes between multiple terminals.  If multiplexing was it&#8217;s only feature, then it would not be anymore useful than any existing multiple-tab terminals available in a GUI environment.  What really sets screen apart is its ability to open a screen session, detach that session from your connection, and then reattach it later on.  In other words, if I&#8217;m using screen, I can completely lose my SSH connection, reconnect, and then reattach to the screen session&#8211;putting me right back to where I was previously working before the connection dropped.</p>
<p>You can read more in-depth at <a href="http://jmcpherson.org/screen.html">Jonathon McPherson&#8217;s article on screen</a>, but here&#8217;s a quick run down of GNU Screen commands to get started:<br />
<code><br />
$screen #start screen<br />
$screen -r #reattach to an existing screen process<br />
$screen -R #reattach if possible, or start new session<br />
</code><code><br />
#within screen:<br />
Ctrl+a, c  #create a new window<br />
Ctrl+a, n  #switch to next window<br />
Ctrl+a, p  #switch to previous window<br />
Ctrl+a, N  #switch to Nth window (0-9)<br />
Ctrl+a, "   #list windows, choose with arrow keys and Enter<br />
</code></p>
<p>In my <a href="http://www.csummers.org/index.php/2006/04/05/productivity-tools-ssh-agent/" title="productivity tools: ssh-agent">previous post</a>, I setup a launch script for each remote SSH connection so that I could ensure that my ID had been added to the ssh-agent.  I&#8217;m now going to tweak this script to launch screen upon connection to save me the trouble of typing &#8220;screen -R&#8221; everytime I reconnect:<br />
<code><br />
#!/bin/bash<br />
# ~/bin/sv1<br />
ssh-id-check<br />
ssh -t user@remotemachine.com "screen -R"<br />
</code></p>
<p>I&#8217;ve added two items to the script:</p>
<ol>
<li>the ssh -t option is necessary to force the correct terminal type.  The excerpt from the GNU screen manual page:<br />
<blockquote><p>
-t      Force pseudo-tty allocation.  This can be used to execute arbitrary screen-based programs on a remote machine, which can be very useful, e.g., when implementing menu services.  Multiple -t options force tty allocation, even if ssh has no local tty.
</p></blockquote>
</li>
<li>the &#8220;screen -R&#8221; command is appended to the ssh command and will execute on the remote machine after connection.  The -R option will connect to any existing screen session if possible or open a new one if not.</li>
</ol>
<p>Now when I lose my SSH connection, I need only type the two or three-letters for my launch script and I&#8217;m put right back to where I was before the connection dropped.  Nifty!</p>
<p><em>One additional tip:</em><br />
If you use xterm and your scrollbar is not working, then put this into your ~/.screenrc file on each of remote machines you&#8217;re using screen with:<br />
<code><br />
termcapinfo xterm ti@:te@<br />
</code><br />
<a href="http://www4.informatik.uni-erlangen.de/~jnweiger/screen-faq.html">see this info from the Screen FAQ</a></p>
]]></content:encoded>
			<wfw:commentRss>http://csummers.com/2006/04/07/productivity-tools-screen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>productivity tools: ssh-agent</title>
		<link>http://csummers.com/2006/04/05/productivity-tools-ssh-agent/</link>
		<comments>http://csummers.com/2006/04/05/productivity-tools-ssh-agent/#comments</comments>
		<pubDate>Wed, 05 Apr 2006 18:33:41 +0000</pubDate>
		<dc:creator>Curt</dc:creator>
				<category><![CDATA[software]]></category>
		<category><![CDATA[tech tips]]></category>

		<guid isPermaLink="false">http://www.csummers.org/index.php/2006/04/05/productivity-tools-ssh-agent/</guid>
		<description><![CDATA[I spend pretty much all day connected to remote machines via ssh. It&#8217;s key to my work and losing that connection for any reason is a big productivity vacuum. Lately I&#8217;ve been having some connection problems, which has prompted me to streamline how I connect to my remote machines. ssh-agent and screen are great tools [...]]]></description>
			<content:encoded><![CDATA[<p>I spend pretty much all day connected to remote machines via ssh.  It&#8217;s key to my work and losing that connection for any reason is a big productivity vacuum.  Lately I&#8217;ve been <a href="http://www.csummers.org/index.php/2006/03/31/wrt54g-version-5-is-junk/">having some connection problems</a>, which has prompted me to streamline how I connect to my remote machines.  ssh-agent and screen are great tools for improving my connectivity productivity.  I&#8217;ll talk about ssh-agent in this post, and screen in the <a href="http://www.csummers.org/index.php/2006/04/07/productivity-tools-screen/" title="productivity tools: screen">next one</a>.</p>
<p><b>ssh-agent</b> enables almost-password-free* logins to your remote machines.  This is accomplished via SSH keys.  You basically generate an encryption key pair on your local machine and then copy your public key out to each user on each remote machine.  ssh-agent runs in the background on your local machine.  You add your identity to the ssh-agent and supply a passphrase.  As long as you keep your session (X session/login session) open and ssh-agent running, you won&#8217;t need to enter a password when ssh&#8217;ing to a remote machine.  This can significantly reduce your password typing during a day.  Here&#8217;s how I set it up:<br />
<code><br />
$ssh-keygen -t rsa<br />
</code></p>
<p>Enter a passphrase when asked and remember it.  Two key files are generated: your private key and your public key.<br />
<code><br />
#key files generated on your local machine:<br />
/home/username/.ssh/id_rsa<br />
/home/username/.ssh/id_rsa.pub<br />
</code></p>
<p>You will need to copy the <em>contents</em> of your public key file (id_rsa.pub) to each remote user&#8217;s authorized_keys file.  If this file doesn&#8217;t exist, create it.<br />
<code><br />
#on each remote machine, copy your public key into this file:<br />
/home/username/.ssh/authorized_keys<br />
</code></p>
<p>Now make sure that ssh-agent is running on your local machine.  You want to run ssh-agent for your login or X session.  I&#8217;m using Gnome and GDM on Gentoo, and ssh-agent is already setup for each session.  If you need to add it manually, see this page: <a href="http://www.phy.bnl.gov/computing/gateway/ssh-agent.html">http://www.phy.bnl.gov/computing/gateway/ssh-agent.html</a></p>
<p>Now add your ID to the running ssh-agent:<br />
<code><br />
$ssh-add<br />
Enter passphrase for /home/username/.ssh/id_rsa:<br />
Identity added: /home/username/.ssh/id_rsa (/home/username/.ssh/id_rsa)<br />
</code></p>
<p>You can now SSH into your remote machines without having to enter a password.  Try it!</p>
<p>*So, the only password you must enter is the passphrase for the identity you&#8217;ve created for ssh-agent.  You will need to re-add this identity everytime ssh-agent is restarted (e.g., when you close your session).</p>
<p>In order to further streamline the password-entering, this script checks whether or not the ID has already been added and runs ssh-add if not:<br />
<code><br />
#!/bin/sh<br />
# ~/bin/ssh-id-check<br />
# If no ID has been added to ssh-agent, then run ssh-add.<br />
if [ -n "`ssh-add -l | grep has\ no\ identities`" ]; then<br />
  ssh-add<br />
fi<br />
</code></p>
<p>Then, each of my SSH connections gets its own launch script that looks like this:<br />
<code><br />
#!/bin/bash<br />
# ~/bin/sv1<br />
ssh-id-check<br />
ssh user@remotemachine.com<br />
</code></p>
<p>I got the ID-checking script from here:<br />
<a href="http://forums.gentoo.org/viewtopic-t-407440.html">http://forums.gentoo.org/viewtopic-t-407440.html</a></p>
<p>Also read my post about how I use <a href="http://www.csummers.org/index.php/2006/04/07/productivity-tools-screen/" title="productivity tools: screen">GNU screen</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://csummers.com/2006/04/05/productivity-tools-ssh-agent/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>vim tips</title>
		<link>http://csummers.com/2006/01/30/vim-tips/</link>
		<comments>http://csummers.com/2006/01/30/vim-tips/#comments</comments>
		<pubDate>Mon, 30 Jan 2006 16:52:09 +0000</pubDate>
		<dc:creator>Curt</dc:creator>
				<category><![CDATA[programming]]></category>
		<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://www.csummers.org/index.php/2006/01/30/vim-tips/</guid>
		<description><![CDATA[I&#8217;m using Vim more and more these days for coding. Below are some useful Vim links: The official Vim site Seven habits of effective text editing Best of VIM Tips, gVIM&#8217;s Key Features Vim Cookbook &#160;]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m using Vim more and more these days for coding.  Below are some useful Vim links:</p>
<ul>
<li><a href="http://www.vim.org/">The official Vim site</a></li>
<li><a href="http://www.moolenaar.net/habits.html">Seven habits of effective text editing</a></li>
<li><a href="http://www.rayninfo.co.uk/vimtips.html">Best of VIM Tips, gVIM&#8217;s Key Features</a></li>
<li><a href="http://www.oualline.com/vim-cook.html">Vim Cookbook</a></li>
</ul>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://csummers.com/2006/01/30/vim-tips/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Oracle and PHP</title>
		<link>http://csummers.com/2005/06/28/oracle-and-php/</link>
		<comments>http://csummers.com/2005/06/28/oracle-and-php/#comments</comments>
		<pubDate>Tue, 28 Jun 2005 10:36:36 +0000</pubDate>
		<dc:creator>Curt</dc:creator>
				<category><![CDATA[programming]]></category>
		<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://www.csummers.org/?p=18</guid>
		<description><![CDATA[It&#8217;s nice to see Oracle tipping it&#8217;s hat to PHP over the last year or so. PHP is very good at meeting specific web needs in the enterprise, and Oracle acknowledges this by including it in their Oracle HTTP Server (Apache, really) package. See the PHP Developer Center for more Oracle/PHP goodness.]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s nice to see <a href="http://www.oracle.com">Oracle</a> tipping it&#8217;s hat to <a href="http://www.php.net">PHP</a> over the last year or so.  PHP is very good at meeting specific web needs in the enterprise, and Oracle acknowledges this by including it in their Oracle HTTP Server (Apache, really) package.  See the <a href="http://www.oracle.com/technology/tech/php/index.html">PHP Developer Center</a> for more Oracle/PHP goodness.</p>
]]></content:encoded>
			<wfw:commentRss>http://csummers.com/2005/06/28/oracle-and-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Windows Update Grrr!</title>
		<link>http://csummers.com/2005/06/20/windows-update-grrr/</link>
		<comments>http://csummers.com/2005/06/20/windows-update-grrr/#comments</comments>
		<pubDate>Mon, 20 Jun 2005 17:01:53 +0000</pubDate>
		<dc:creator>Curt</dc:creator>
				<category><![CDATA[software]]></category>
		<category><![CDATA[tech tips]]></category>

		<guid isPermaLink="false">http://www.csummers.org/?p=14</guid>
		<description><![CDATA[For about a week now Windows Update on my work machine has failed to download or install the latest security patches. I&#8217;ve tried Automatic Updates and going directly to the windowsupdate.microsoft.com site, but both methods start to download and then fail with no error messages. Perfect. So, I did some digging and found that the [...]]]></description>
			<content:encoded><![CDATA[<p>For about a week now Windows Update on my work machine has failed to download or install the latest security patches.  I&#8217;ve tried Automatic Updates and going directly to the windowsupdate.microsoft.com site, but both methods start to download and then fail with no error messages.  <em>Perfect.</em></p>
<p>So, I did some digging and found that the update log lives here (in default XP Pro): C:\Windows\SoftwareDistribution\ReportingEvents.log</p>
<p>Scrolling down through this text file I find the 9th column over to show the error number: 80264005</p>
<p>Google then brings up Ali&#8217;s helpful blog entry: <a href="http://www.alibutt.com/?p=195">Windows update gives a 80246005 error</a></p>
<p>Basic rundown: Stop the Automatic Updates service, delete the contents of C:\Windows\SoftwareDistribution\DataStore, restart the Automatic Update service and try the download/install of updates again.</p>
<p>Worked for me.  Thanks, Ali.</p>
]]></content:encoded>
			<wfw:commentRss>http://csummers.com/2005/06/20/windows-update-grrr/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Audacity</title>
		<link>http://csummers.com/2005/06/14/audacity/</link>
		<comments>http://csummers.com/2005/06/14/audacity/#comments</comments>
		<pubDate>Tue, 14 Jun 2005 17:10:12 +0000</pubDate>
		<dc:creator>Curt</dc:creator>
				<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://www.csummers.org/?p=8</guid>
		<description><![CDATA[My interests in music, guitars, and technology collide together on the computer. I&#8217;m also a big fan of free software, so this program is tops on my list for great free software. Audacity is a free multi-track sound editor that features recording during playback, a host of built-in tools, and a long list of audio [...]]]></description>
			<content:encoded><![CDATA[<p>My interests in music, guitars, and technology collide together on the computer.  I&#8217;m also a big fan of free software, so this program is tops on my list for great free software.</p>
<p><a href="http://audacity.sourceforge.net">Audacity</a> is a free multi-track sound editor that features recording during playback, a host of built-in tools, and a long list of audio effects.</p>
<p><a href="http://www.csummers.org/wp-content/images/audacity_lg.jpg"><br />
<img src="http://www.csummers.org/wp-content/images/audacity_sm.jpg" alt="Audacity screenshot" width="350"/></a></p>
<p>I currently use Audacity to record <a href="http://www.gracea2.org">my church</a>&#8216;s sermon tapes, clean them up, and then export them to MP3 for download from the website.  I&#8217;ve also recently used it to record guitar tracks that were later imported onto a hard disk recorder for vocal tracks to be added.</p>
<p>Audacity is available for Windows, Linux, and Mac.  <a href="http://audacity.sourceforge.net">Check it out</a>, and <a href="http://audacity.sourceforge.net/help/">read the help</a> to get started.</p>
]]></content:encoded>
			<wfw:commentRss>http://csummers.com/2005/06/14/audacity/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

