<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <title>Notes</title>
    <link rel="alternate" type="text/html" href="http://teichman.org/blog/" />
    <link rel="self" type="application/atom+xml" href="http://teichman.org/blog/atom.xml" />
    <id>tag:teichman.org,2007-10-08:/blog//1</id>
    <updated>2007-07-05T13:17:29Z</updated>
    
    <generator uri="http://www.sixapart.com/movabletype/">Movable Type Publishing Platform 4.01</generator>

<entry>
    <title>Exeunt</title>
    <link rel="alternate" type="text/html" href="http://teichman.org/blog/2007/05/exeunt.html" />
    <id>tag:teichman.org,2007:/blog//1.273</id>

    <published>2007-05-04T15:35:23Z</published>
    <updated>2007-07-05T13:17:29Z</updated>

    <summary> Exit Strategy Originally uploaded by Peter Teichman. For me, a fantastic seven-year ride is coming to an end. I have resigned my position, and today is my last day with the Ximian group at Novell. I&apos;ve been working for...</summary>
    <author>
        <name>peter</name>
        
    </author>
    
        <category term="Hula" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://teichman.org/blog/">
        <![CDATA[<div style="float: right; margin-left: 10px; margin-bottom: 10px;">
 <a href="http://www.flickr.com/photos/pteichman/473519930/" title="photo sharing"><img src="http://farm1.static.flickr.com/180/473519930_6e95db22a2_m.jpg" alt="" style="border: solid 2px #000000;" /></a>
 <br />
 <span style="font-size: 0.9em; margin-top: 0px;">
  <a href="http://www.flickr.com/photos/pteichman/473519930/">Exit Strategy</a>
  <br />
  Originally uploaded by <a href="http://www.flickr.com/people/pteichman/">Peter Teichman</a>.
 </span>
</div>

<p>For me, a fantastic seven-year ride is coming to an end.  I have resigned my position, and today is my last day with the Ximian group at Novell.  I've been working for Helix Code / Ximian / Novell since the last few days of 1999, and have enjoyed my time here immensely.</p>

<p>I've worked with awesome people on my projects, from Build Buddy and Red Carpet to ZENworks and Hula.  And throughout, I've always been within shouting distance of Mono and some of the best work happening on the Linux desktop.</p>

<p>It's time for me to move on, though.  Thanks to everyone who has been involved over the past years, and I wish everyone the best.</p>

<p><br clear="all" /></p>]]>
        
    </content>
</entry>

<entry>
    <title>Screen and ssh-agent</title>
    <link rel="alternate" type="text/html" href="http://teichman.org/blog/2006/02/screen_and_ssha.html" />
    <id>tag:teichman.org,2006:/blog//1.35</id>

    <published>2006-02-23T14:40:59Z</published>
    <updated>2007-07-05T13:17:29Z</updated>

    <summary> My Biggest Originally uploaded by Peter Teichman. I started using Screen on a daily basis, and quickly desired an ssh-agent tied to a long-lived screen session. The obvious solution (running &quot;ssh-agent screen&quot;) doesn&apos;t work - as soon as you...</summary>
    <author>
        <name>peter</name>
        
    </author>
    
    
    <content type="html" xml:lang="en" xml:base="http://teichman.org/blog/">
        <![CDATA[<div style="float: right; margin-left: 10px; margin-bottom: 10px;">
 <a href="http://www.flickr.com/photos/pteichman/87658397/" title="photo sharing"><img src="http://static.flickr.com/42/87658397_4eed2b6694_m.jpg" alt="" style="border: solid 2px #000000;" /></a>
 <br />
 <span style="font-size: 0.9em; margin-top: 0px;">
  <a href="http://www.flickr.com/photos/pteichman/87658397/">My Biggest</a>
  <br />
  Originally uploaded by <a href="http://www.flickr.com/people/pteichman/">Peter Teichman</a>.
 </span>
</div>

<p>I started using <a href="http://www.gnu.org/software/screen/">Screen</a> on a daily basis, and quickly desired an ssh-agent tied to a long-lived screen session.</p>

<p>The obvious solution (running "ssh-agent screen") doesn't work - as soon as you log out, screen drops into the background and you lose the agent.</p>

<p>People have solved this problem in various ways - a quick <a href="http://www.google.com/search?q=screen+ssh-agent">search</a> shows some of them.  I didn't like them.  They all rely on scripts external to screen for running the agent and maintaining its environment variables.</p>

<p>I spent a little time last night on a solution.  It's completely contained in your .screenrc, and produces an ssh-agent tied to screen's life cycle.</p>

<p>It's just two lines:<br />
<pre>setenv SSH_AUTH_SOCK $HOME/.screen-ssh-agent<br />
screen 10 ssh-agent -a $SSH_AUTH_SOCK $SHELL</pre></p>

<p>This creates a screen (number 10) that holds your ssh agent.  If you don't like 10, you can start the agent on any screen.  Things still work properly.  The agent will be available to all the screens in that session.  It also persists if you close the screen it was started on.</p>

<p>Make sure you run the setenv line early enough in your .screenrc that it will take effect before you open new screens.</p>

<p>The only problem I have with this setup is that all my screen sessions share the same agent - the one listening on $HOME/.screen-ssh-agent.  I'd like to make that one agent per screen session, using something like $HOME/.screen-ssh-agent.$$.  Unfortunately $$ is empty from within .screenrc - I can't find a real environment variable that uniquely identifies the current process.</p>

<p>Sorry for the digression, now back to your regularly scheduled (Semiannual?) Hula news.</p>

<p><br clear="all" /></p>]]>
        
    </content>
</entry>

<entry>
    <title>Persecution Complex</title>
    <link rel="alternate" type="text/html" href="http://teichman.org/blog/2005/12/persecution_com.html" />
    <id>tag:teichman.org,2005:/blog//1.32</id>

    <published>2005-12-16T20:11:21Z</published>
    <updated>2007-07-05T13:17:29Z</updated>

    <summary> LA 8-BALL! Originally uploaded by Peter Teichman. If you are offended by discussion about Emacs, please stop reading now. Over the last few years, Dan Mills and I have been improving an Emacs configuration style we both enjoy using....</summary>
    <author>
        <name>peter</name>
        
    </author>
    
    
    <content type="html" xml:lang="en" xml:base="http://teichman.org/blog/">
        <![CDATA[<div style="float: right; margin-left: 10px; margin-bottom: 10px;">
 <a href="http://www.flickr.com/photos/pteichman/7354648/" title="photo sharing"><img src="http://static.flickr.com/5/7354648_4a2d4063c8_m.jpg" alt="" style="border: solid 2px #000000;" /></a>
 <br />
 <span style="font-size: 0.9em; margin-top: 0px;">
  <a href="http://www.flickr.com/photos/pteichman/7354648/">LA 8-BALL!</a>
  <br />
  Originally uploaded by <a href="http://www.flickr.com/people/pteichman/">Peter Teichman</a>.
 </span>
</div>

<p>If you are offended by discussion about Emacs, please stop reading now.</p>

<p>Over the last few years, <a href="http://vthunder.blogspot.com/">Dan Mills</a> and I have been improving an Emacs configuration style we both enjoy using.  There has recently been some interest in this setup internally, so I thought I'd pull some notes together and send it out into the world.</p>

<p>There were two original goals for this design:</p>

<ol>
<li>A good, clean configuration - none of the mess that usually clutters .emacs files.</li>
<li>Easy deployment of new elisp packages.</li>
</ol>

<p>I welcome you to continue reading.</p>

<p><br clear="all" /></p>]]>
        <![CDATA[<p>The configuration comes down to three things.</p>

<p>First, all the elisp files I "own", either packages I've downloaded or things I've written myself, should exist under one tree.  This eases maintenance, and allows me to keep everything in Subversion.</p>

<p>Second, all the relevant directories in that tree should be automatically added to the Emacs load-path, so I don't ever have to add anything manually when I want to try out something new.</p>

<p>Third, configuration files should be loaded automatically - I want to be able to drop settings in and not have to edit a file to get them to load.</p>

<p>Here is the result:</p>

<ul>
<li>All directories under ~/elisp that contain elisp files are added to my load path.</li>
<li>All *-settings.el files under ~/elisp/settings are loaded automatically on start.</li>
<li>Customized variables (M-x customize, that is) are saved in ~/elisp/custom.el.</li>
</ul>

<p>Whenever I download something new and nifty, I put it in ~/elisp/packages.  If it's a single file, I'll put it there directly.  If it comes as several files (or even a deep tree), I'll put it in its own subdirectory.  I add a settings file that loads that package, and off I go.</p>

<p>These settings files are often extremely short - all I want to do there is set the configuration variables I need to use the package.</p>

<p>I keep my .emacs file itself as simple as possible - it's not in the version controlled tree, and I tend to forget changes when I make them.  At the moment, it has one line - hopefully it's simple enough for me to remember if I lose it:</p>

<p>(load-file "~/elisp/<a href="http://teichman.org/~peter/init.el">init.el</a>")</p>

<p>A sample elisp tree containing that init.el file can be found <a href="http://teichman.org/~peter/elisp.tar.gz">here</a>.  There's a fair amount of documentation in the comments of init.el.</p>]]>
    </content>
</entry>

</feed>
