<?xml version="1.0" encoding="UTF-8"?>

<rss version='2.0' 
     xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule"
     xmlns:doap="http://usefulinc.com/ns/doap#"
     xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">

    <channel>
        <!-- This XML Feed shows details for the page User:bartman 
             and everything recently tagged User:bartman -->
        <creativeCommons:license>http://creativecommons.org/licenses/by-sa/2.5/
          </creativeCommons:license>
        <title>User:bartman on SWiK</title>
        <doap:name>User:bartman</doap:name>
        <doap:description>&lt;p&gt;&lt;a href="http://www.jukie.net/~bart/sig"/&gt;More info about me.&lt;/a&gt;&lt;/p&gt;
</doap:description>
        <description>More info about me.
</description> 
	  <!-- see doap:description for full description -->
        <link>http://swik.net/User:bartman</link>
        <doap:homepage></doap:homepage>
                <category>linux</category>
        <category>Kernel</category>
        <category>Programming</category>
        <category>vim</category>
        <category>hacker</category>
        <category>git</category>

        <pubDate>Thu, 04 Jan 2007 12:25:20 -0800</pubDate>
        <lastBuildDate>Sat, 12 Apr 2008 08:21:12 -0700</lastBuildDate>
            
        <item>
            <title>printable OLS/2008 schedule</title>
            <link>http://swik.net/User:bartman/Bart%27s+Blog/printable+OLS%2F2008+schedule/cau9d</link>
            <description>
	 &lt;p&gt;I found the &lt;a href=&quot;http://www.linuxsymposium.org/2008/schedule.php&quot;&gt;official schedule&lt;/a&gt; really hard to print.
Here is a 1-page &lt;a href=&quot;http://www.jukie.net/~bart/tmp/schedule.pdf&quot;&gt;schedule.pdf&lt;/a&gt; and the original &lt;a href=&quot;http://www.jukie.net/~bart/tmp/schedule.ods&quot;&gt;OOo spreadsheet&lt;/a&gt;.&lt;/p&gt;

      </description>
            
            <pubDate>Sat, 19 Jul 2008 18:52:42 -0700</pubDate>
        </item>
            
        <item>
            <title>wmiirc-lua updates</title>
            <link>http://swik.net/User:bartman/Bart%27s+Blog/wmiirc-lua+updates/cafye</link>
            <description>
	 &lt;p&gt;I finally got around to &lt;a href=&quot;/~bart/blog/20070112131252&quot;&gt;porting a few old features&lt;/a&gt; to &lt;a href=&quot;/~bart/blog/tag/wmiirc-lua&quot;&gt;wmiirc-lua&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;There is now a &lt;a href=&quot;http://groups.google.ca/group/wmii-lua&quot;&gt;mailing list&lt;/a&gt; for wmiirc-lua.
Subscribe by emailing &lt;em&gt;wmii-lua-subscribe@googlegroups.com&lt;/em&gt;.&lt;/p&gt;


&lt;p&gt;&lt;a href=&quot;/~bart/blog/20080715214447&quot;&gt;[Read More]&lt;/a&gt;&lt;p&gt;
      </description>
            
            <pubDate>Tue, 15 Jul 2008 19:51:58 -0700</pubDate>
        </item>
            
        <item>
            <title>Git Screencast</title>
            <link>http://swik.net/User:bartman/Bart%27s+Blog/Git+Screencast/b956a</link>
            <description>
	 &lt;p&gt;&lt;a href=&quot;http://excess.org&quot;&gt;Ian Ward&lt;/a&gt; posted a &lt;a href=&quot;http://excess.org/article/2008/07/ogre-git-tutorial/&quot;&gt;screencast&lt;/a&gt; of my 
&lt;a href=&quot;http://www.jukie.net/~bart/blog/ogre-git-intro&quot;&gt;Git intro talk&lt;/a&gt;.  Thanks &lt;a href=&quot;tricolour.net/&quot;&gt;Richard&lt;/a&gt; for doing
the audio, Ian for doing the screencast and post production, and &lt;a href=&quot;http://infonium.ca/&quot;&gt;Jay&lt;/a&gt; for hosting us.&lt;/p&gt;

      </description>
            
            <pubDate>Sun, 13 Jul 2008 17:51:33 -0700</pubDate>
        </item>
            
        <item>
            <title>four steps to reproducible Debian installs</title>
            <link>http://swik.net/User:bartman/Bart%27s+Blog/four+steps+to+reproducible+Debian+installs/b9485</link>
            <description>
	 &lt;p&gt;For &lt;em&gt;ever&lt;/em&gt; now some friends and I have been talking about making &lt;em&gt;essential&lt;/em&gt; packages,
which would pull in all the tools that we often use on Debian.  So here goes...&lt;/p&gt;

&lt;p&gt;With the power of the &lt;em&gt;equivs&lt;/em&gt; package, this is actually a very short procedure.&lt;/p&gt;


&lt;p&gt;&lt;a href=&quot;/~bart/blog/private-essential-debs&quot;&gt;[Read More]&lt;/a&gt;&lt;p&gt;
      </description>
            
            <pubDate>Sun, 13 Jul 2008 11:52:30 -0700</pubDate>
        </item>
            
        <item>
            <title>USB2.0 enclosure benchmark</title>
            <link>http://swik.net/User:bartman/Bart%27s+Blog/USB2.0+enclosure+benchmark/b9bbp</link>
            <description>
	 &lt;p&gt;I&#039;ve noticed my laptop disk filling up...  particularly in &lt;code&gt;$HOME/work/*&lt;/code&gt;.  Lots 
of little contracts, each involving at least the linux kernel tree of one
vintage of another, are to blame.&lt;/p&gt;


&lt;p&gt;&lt;a href=&quot;/~bart/blog/usb2-enclosure-benchmark&quot;&gt;[Read More]&lt;/a&gt;&lt;p&gt;
      </description>
            
            <pubDate>Sat, 05 Jul 2008 17:49:19 -0700</pubDate>
        </item>
            
        <item>
            <title>Linux Kernel Walkthroughs posted</title>
            <link>http://swik.net/User:bartman/Bart%27s+Blog/Linux+Kernel+Walkthroughs+posted/b87xo</link>
            <description>
	 &lt;p&gt;Ian just posted the &lt;a href=&quot;http://excess.org/article/2008/07/oclug-june-kernel-walkthrough/&quot;&gt;screen casts&lt;/a&gt;
of the &lt;a href=&quot;/~bart/blog/linux-kernel-walkthroughs&quot;&gt;Linux Kernel Walkthroughs&lt;/a&gt; that I ran last week.&lt;/p&gt;

&lt;p&gt;Here is the same video on &lt;a href=&quot;http://video.google.com/videoplay?docid=-8849863414000120231&amp;amp;hl=en&quot;&gt;google/video&lt;/a&gt;...
it&#039;s a lot lower rez :(&lt;/p&gt;

      </description>
            
            <pubDate>Thu, 03 Jul 2008 20:51:34 -0700</pubDate>
        </item>
            
        <item>
            <title>Introducing the Ottawa Ruby folks to Git</title>
            <link>http://swik.net/User:bartman/Bart%27s+Blog/Introducing+the+Ottawa+Ruby+folks+to+Git/b80jm</link>
            <description>
	 &lt;p&gt;I am giving &lt;a href=&quot;/~bart/blog/into-to-git-talk-2&quot;&gt;another&lt;/a&gt; git talk for &lt;a href=&quot;http://groups.google.ca/group/ogre-list/browse_thread/thread/19e76fec11053b92&quot;&gt;The Ottawa Group of Ruby Enthusiasts!&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The talk is on July 9th at 7:00 PM, at &lt;a href=&quot;http://infonium.ca/&quot;&gt;Infonium&lt;/a&gt;.
I was told that they have room for 20 people.&lt;/p&gt;

&lt;p&gt;I will post my slides after the talk.&lt;/p&gt;

      </description>
            
            <pubDate>Wed, 02 Jul 2008 08:52:34 -0700</pubDate>
        </item>
            
        <item>
            <title>Authenticating Linux against OSX LDAP directory</title>
            <link>http://swik.net/User:bartman/Bart%27s+Blog/Authenticating+Linux+against+OSX+LDAP+directory/b8mxf</link>
            <description>
	 &lt;p&gt;I was recently asked by a colleague, and now also a &lt;a href=&quot;http://infonium.ca/&quot;&gt;client&lt;/a&gt;, to look over the &lt;a href=&quot;/~bart/blog/tag/ldap&quot;&gt;LDAP&lt;/a&gt; configuration on his Ubuntu boxen.  He was having
issues with the root account.  The problem turned out being that the Ubuntu box was trying to get the root authentication from LDAP.
It successfully found an LDAP account on the OSX LDAP server, but was unable to login since that account is disabled.  The solution
was to filter out the root account from the LDAP reply using the &lt;code&gt;pam_filter&lt;/code&gt; directive in &lt;code&gt;/etc/ldap.conf&lt;/code&gt;.  Jay was also kind enough
to document his &lt;a href=&quot;https://help.ubuntu.com/community/OSXLDAPClientAuthentication&quot;&gt;setup for others&lt;/a&gt; that are trying to accomplish a 
similar task.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;side note: Jay briefly showed me his OSX/Linux integration... looks pretty cool.  Particularly the LDAP directory and automount of OSX exported volumes for users.  OSX seems to make certain things really easy.&lt;/em&gt;&lt;/p&gt;

      </description>
            
            <pubDate>Sat, 28 Jun 2008 14:03:00 -0700</pubDate>
        </item>
            
        <item>
            <title>Canada Day Events 2008</title>
            <link>http://swik.net/User:bartman/Bart%27s+Blog/Canada+Day+Events+2008/b8klw</link>
            <description>
	 &lt;p&gt;Here is a list of Canada Day events for 2008 celebrations in Ottawa.&lt;/p&gt;


&lt;p&gt;&lt;a href=&quot;/~bart/blog/canada-day-events-2008&quot;&gt;[Read More]&lt;/a&gt;&lt;p&gt;
      </description>
            
            <pubDate>Fri, 27 Jun 2008 12:06:25 -0700</pubDate>
        </item>
            
        <item>
            <title>Linux Kernel Walkthroughs</title>
            <link>http://swik.net/User:bartman/Bart%27s+Blog/Linux+Kernel+Walkthroughs/b7eoa</link>
            <description>
	 &lt;p&gt;I will be kicking off a new series of talks at &lt;a href=&quot;http://oclug.on.ca/&quot;&gt;OCLUG&lt;/a&gt; later this month.  The
idea is not mine, but a copy of a &lt;a href=&quot;http://www.youtube.com/results?search_query=%22Kernel+Walkthrough%22&amp;amp;search_type=&amp;amp;aq=f&quot;&gt;similar series&lt;/a&gt;
ran by &lt;a href=&quot;http://www.svlug.org/&quot;&gt;Silicon Valley Linux Users Group&lt;/a&gt;.  Kudos to them!&lt;/p&gt;

&lt;p&gt;Here is the info on the first &lt;a href=&quot;http://oclug.on.ca/meeting/32/&quot;&gt;Kernel Walkthrough: Source Tree Layout&lt;/a&gt;.
I will start off by covering the tree structure and talk a bit about the components, before handing 
control of the talk over to the audience and let them drive the types of things they would like to
explore.&lt;/p&gt;

&lt;p&gt;We are being hosted by the &lt;a href=&quot;http://thecodefactory.ca/&quot;&gt;TheCodeFactory&lt;/a&gt;, which is a very cool
concept.  From the website:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;&quot;TheCodeFactory is a collaborative work space located in downtown Ottawa at 246
  Queen Street, between Bank and Kent, above the Green Papaya Restaurant. 
  TheCodeFactory is a clubhouse or water cooler for the Start-up community in Ottawa.&quot;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;In short they are a place where startups can meet and collaborate way before they have
any office space of their own.  Ottawa being such a hotspot for startups, this is clearly
a good idea.&lt;/p&gt;

      </description>
            
            <pubDate>Fri, 13 Jun 2008 14:20:01 -0700</pubDate>
        </item>
            
        <item>
            <title>is my usb device connected to a fast port?</title>
            <link>http://swik.net/User:bartman/Bart%27s+Blog/is+my+usb+device+connected+to+a+fast+port%3F/b4xrm</link>
            <description>
	 &lt;p&gt;I started a transfer last night to copy a 700M file to my USB key.  It&#039;s still going.  I figured that it might have been OHCI vs EHCI issue.
I had to remind myself how to check.&lt;/p&gt;


&lt;p&gt;&lt;a href=&quot;/~bart/blog/slow-usb-key&quot;&gt;[Read More]&lt;/a&gt;&lt;p&gt;
      </description>
            
            <pubDate>Sat, 10 May 2008 06:16:12 -0700</pubDate>
        </item>
            
        <item>
            <title>show more git info on zsh prompt</title>
            <link>http://swik.net/User:bartman/Bart%27s+Blog/show+more+git+info+on+zsh+prompt/b4xcs</link>
            <description>
	 &lt;p&gt;This is my &lt;a href=&quot;/~bart/blog/zsh-git-branch&quot;&gt;third&lt;/a&gt; &lt;a href=&quot;/~bart/blog/zsh-git-branch2&quot;&gt;post&lt;/a&gt; on the topic.  I have &lt;em&gt;harshly&lt;/em&gt; assimulated
&lt;a href=&quot;http://blog.madism.org/index.php/2008/05/07/173-git-prompt&quot;&gt;MadCoder&#039;s&lt;/a&gt;
&lt;a href=&quot;http://madism.org/~madcoder/dotfiles/zsh/60_prompt&quot;&gt;configuration&lt;/a&gt;.  Here is my new zsh prompt:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/~bart/screenshots/zsh-git-prompt.png&quot; alt=&quot;zsh git prompt&quot; title=&quot;&quot;/&gt;&lt;/p&gt;


&lt;p&gt;&lt;a href=&quot;/~bart/blog/zsh-git-prompt&quot;&gt;[Read More]&lt;/a&gt;&lt;p&gt;
      </description>
            
            <pubDate>Fri, 09 May 2008 09:25:04 -0700</pubDate>
        </item>
            
        <item>
            <title>git-vim</title>
            <link>http://swik.net/User:bartman/Bart%27s+Blog/git-vim/b4rir</link>
            <description>
	 &lt;p&gt;I have had an item on my todo list to improve my vim/git integration for a while.  Today,
I found &lt;a href=&quot;http://github.com/motemen/git-vim/tree/master&quot;&gt;git-vim&lt;/a&gt; on github.  I was really
impressed.  So I forked it and hope to do some work on the project...&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;    git://tachyon.jukie.net/git-vim.git
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;First I will have to check if there is anything salvageable from &lt;a href=&quot;http://www.vim.org/account/profile.php?user_id=1186&quot;&gt;my current vim scripts&lt;/a&gt;.&lt;/p&gt;

      </description>
            
            <pubDate>Wed, 30 Apr 2008 08:14:35 -0700</pubDate>
        </item>
            
        <item>
            <title>color your word</title>
            <link>http://swik.net/User:bartman/Bart%27s+Blog/color+your+word/b3738</link>
            <description>
	 &lt;p&gt;I just discovered a &lt;a href=&quot;/~bart/blog/tag/git&quot;&gt;git&lt;/a&gt; feature that has eluded me since v1.4.3, when it was
introduced.  It&#039;s a way to colour differing words in &lt;code&gt;git diff&lt;/code&gt; output.  Maybe you don&#039;t
know about it either... allow me demonstrate:&lt;/p&gt;


&lt;p&gt;&lt;a href=&quot;/~bart/blog/color-your-word&quot;&gt;[Read More]&lt;/a&gt;&lt;p&gt;
      </description>
            
            <pubDate>Sat, 12 Apr 2008 07:57:16 -0700</pubDate>
        </item>
            
        <item>
            <title>show current git branch on zsh prompt (2)</title>
            <link>http://swik.net/User:bartman/Bart%27s+Blog/show+current+git+branch+on+zsh+prompt+%282%29/b33b6</link>
            <description>
	 &lt;p&gt;&lt;strong&gt;NOTE:&lt;/strong&gt; This post has been &lt;a href=&quot;/~bart/blog/zsh-git-prompt&quot;&gt;updated&lt;/a&gt; (again).&lt;/p&gt;

&lt;p&gt;I previously wrote about &lt;a href=&quot;/~bart/blog/zsh-git-branch&quot;&gt;showing the git branch name on the  zsh prompt&lt;/a&gt;.  Caio Marcelo pointed out that
it didn&#039;t work very well because the git branch was being queried before the command was executed, and it should
be after to catch git commands that change the branch, like &lt;code&gt;git branch&lt;/code&gt; and &lt;code&gt;git checkout&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;He was right, here is a repost.&lt;/p&gt;


&lt;p&gt;&lt;a href=&quot;/~bart/blog/zsh-git-branch2&quot;&gt;[Read More]&lt;/a&gt;&lt;p&gt;
      </description>
            
            <pubDate>Fri, 04 Apr 2008 08:56:18 -0700</pubDate>
        </item>
            
        <item>
            <title>how to track multiple svn branches in git</title>
            <link>http://swik.net/User:bartman/Bart%27s+Blog/how+to+track+multiple+svn+branches+in+git/b3f2h</link>
            <description>
	 &lt;p&gt;I must say that I am no fan &lt;a href=&quot;/~bart/blog/tag/svn&quot;&gt;SVN&lt;/a&gt;, but SVN and I get a long a lot better since I started
using &lt;a href=&quot;&quot;&gt;git-svn&lt;/a&gt;.  Long ago a good friend of mine, Dave O&#039;Neill, taught me how to handle
&lt;a href=&quot;http://www.dmo.ca/blog/20070608113513&quot;&gt;multiple branches using git-svn&lt;/a&gt;.  I had used that
technique until Dave taught me how to do it better.&lt;/p&gt;

&lt;p&gt;Recently I saw this &lt;a href=&quot;http://blog.teksol.info/2008/2/29/how-to-handle-multiple-branches-from-subversion-using-git&quot;&gt;blog post&lt;/a&gt;
which referenced Dave&#039;s article talking about the first method.  I guess Dave never got around to
updating his blog with the &lt;em&gt;better way&lt;/em&gt;.  So I am going to do that here:&lt;/p&gt;


&lt;p&gt;&lt;a href=&quot;/~bart/blog/svn-branches-in-git&quot;&gt;[Read More]&lt;/a&gt;&lt;p&gt;
      </description>
            
            <pubDate>Mon, 03 Mar 2008 18:48:06 -0800</pubDate>
        </item>
            
        <item>
            <title>fixing X for GeodeLX</title>
            <link>http://swik.net/User:bartman/Bart%27s+Blog/fixing+X+for+GeodeLX/b3dux</link>
            <description>
	 &lt;p&gt;Recently I have been doign a bit of contract work for &lt;a href=&quot;http://www.thesymbiont.com/&quot;&gt;Symbio Technologies&lt;/a&gt;.  They have had
me do various little projects part time.  Most recently I got a chance to work on &lt;a href=&quot;http://x.org&quot;&gt;X.org&lt;/a&gt; video drivers for
the &lt;a href=&quot;http://www.x.org/wiki/AMDGeodeDriver&quot;&gt;Geode family&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Here is the progress...&lt;/p&gt;


&lt;p&gt;&lt;a href=&quot;/~bart/blog/fixing-x-for-geode-lx&quot;&gt;[Read More]&lt;/a&gt;&lt;p&gt;
      </description>
            
            <pubDate>Sat, 01 Mar 2008 11:47:18 -0800</pubDate>
        </item>
            
        <item>
            <title>screen -c relative path bug</title>
            <link>http://swik.net/User:bartman/Bart%27s+Blog/screen+-c+relative+path+bug/bzwb7</link>
            <description>
	 &lt;p&gt;I must have recently upgraded to a new screen.  My screenrc file was using the &lt;code&gt;chdir&lt;/code&gt; directive
so that the windows started inside would have a PWD I wanted them to.  As soon as I tried
to reconnect the screen session would die.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;    screen -x
    Unable to open &quot;screenrc&quot;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;I was able to find the &lt;a href=&quot;http://savannah.gnu.org/bugs/?18890&quot;&gt;bug on savannah&lt;/a&gt; that described
the symptom quite well.&lt;/p&gt;

&lt;p&gt;I then wrote a &lt;a href=&quot;http://www.jukie.net/~bart/conf/zsh.d/S51_screen&quot;&gt;wrapper zsh function&lt;/a&gt; which fixes
the problem:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;    REAL_SCREEN=$(which screen)

    # convert the path passed via the -c parameter to an absolute one
    screen() {
            local max=$((${#argv}-1))
            for (( x=1 ; x&amp;lt;=$max ; x++ )) ; do
                    local flag=&quot;${argv[$x]}&quot;
                    if [[ &quot;x$flag&quot; = &quot;x-c&quot; ]] ; then
                            local y=$(($x+1))
                            local word=&quot;${argv[$y]}&quot;
                            if [[ &quot;x${word[1]}&quot; != &#039;x/&#039; ]] ; then
                                    argv[$y]=&quot;$PWD/$word&quot;
                            fi
                    fi
            done

            echo ${REAL_SCREEN} ${1+&quot;$argv&quot;}
            ${REAL_SCREEN} ${1+&quot;$@&quot;}
    }
&lt;/code&gt;&lt;/pre&gt;

      </description>
            
            <pubDate>Tue, 08 Jan 2008 11:36:23 -0800</pubDate>
        </item>
            
        <item>
            <title>kvm nfs hang</title>
            <link>http://swik.net/User:bartman/Bart%27s+Blog/kvm+nfs+hang/bzwb6</link>
            <description>
	 &lt;p&gt;I ran into a strange NFS + KVM issue.  Every so often under heavy NFS load my KVM client
would hang retrying the nfs server.  On the console the client was showing:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;    nfs: server host not responding, still trying
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;I found &lt;a href=&quot;https://sourceforge.net/tracker/?func=detail&amp;amp;atid=893831&amp;amp;aid=1771262&amp;amp;group_id=180599&quot;&gt;this bug post&lt;/a&gt;
which does not seem to have been resolved in 2.6.24.&lt;/p&gt;

&lt;p&gt;Using the kvm flag &lt;code&gt;-net nic,model=rtl8139&lt;/code&gt; fixed the problem for me.&lt;/p&gt;

      </description>
            
            <pubDate>Tue, 08 Jan 2008 11:36:22 -0800</pubDate>
        </item>
            
        <item>
            <title>WeeChat spell suggestions</title>
            <link>http://swik.net/User:bartman/Bart%27s+Blog/WeeChat+spell+suggestions/bzqbm</link>
            <description>
	 &lt;p&gt;I recently decided to give &lt;a href=&quot;http://weechat.flashtux.org/index.php&quot;&gt;WeeChat&lt;/a&gt; a try.  I found that
it had a nice new feel and less complicated windowing structure then irssi -- at least more 
intuitive to a vim user.&lt;/p&gt;

&lt;p&gt;Here is my weechat &lt;a href=&quot;http://www.jukie.net/~bart/conf/weechat/weechat.rc&quot;&gt;config&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;On debian you can install it with&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;    apt-get install weechat-curses weechat-scripts weechat-plugins
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;I really liked the spell-checking plugin which uses aspell to highlight misspelled words as 
I type them.  One thing I missed was the ability to tab complete words from the 
&lt;code&gt;/usr/share/words&lt;/code&gt; list.  So I wrote a short lua script to do it...&lt;/p&gt;


&lt;p&gt;&lt;a href=&quot;/~bart/blog/weechat-spell-suggestions&quot;&gt;[Read More]&lt;/a&gt;&lt;p&gt;
      </description>
            
            <pubDate>Sat, 05 Jan 2008 10:26:41 -0800</pubDate>
        </item>
            
        <item>
            <title>show current git branch in zsh</title>
            <link>http://swik.net/User:bartman/Bart%27s+Blog/show+current+git+branch+in+zsh/bx0cd</link>
            <description>
	 &lt;p&gt;&lt;strong&gt;NOTE&lt;/strong&gt;: This post has been &lt;a href=&quot;/~bart/blog/zsh-git-branch2&quot;&gt;updated&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Earlier today I saw a blog post titled &quot;&lt;a href=&quot;http://acts.as.streeteasy.com/archives/2007/12/19/git_in_your_prompt/&quot;&gt;Git in your prompt&lt;/a&gt;&quot;
which showed how to get the current git branch to display in zsh and bash.  I tried it on my setup and found it really slow, probably due
having &lt;code&gt;$HOME&lt;/code&gt; on NFS or having big git repos or maybe not enough ram.&lt;/p&gt;

&lt;p&gt;Anyway, after looking at some zsh docs &lt;a href=&quot;http://xanana.ucsc.edu/~wgscott/wordpress_new/wordpress/?p=12&quot;&gt;and blog posts&lt;/a&gt;, I had 
added caching to the idea.  Now the git-branch is only queried on a directory change or on a command that matches &lt;code&gt;*git*&lt;/code&gt;.&lt;/p&gt;


&lt;p&gt;&lt;a href=&quot;/~bart/blog/zsh-git-branch&quot;&gt;[Read More]&lt;/a&gt;&lt;p&gt;
      </description>
            
            <pubDate>Wed, 19 Dec 2007 20:06:42 -0800</pubDate>
        </item>
            
        <item>
            <title>wmiirc-lua kitchen sink repository</title>
            <link>http://swik.net/User:bartman/Bart%27s+Blog/wmiirc-lua+kitchen+sink+repository/bxodp</link>
            <description>
	 &lt;p&gt;&lt;a href=&quot;/~bart/blog/tag/wmiirc-lua&quot;&gt;wmiirc-lua&lt;/a&gt; is a replacement for sh-based wmiirc that ships with
the &lt;a href=&quot;http://www.suckless.org/wiki/wmii&quot;&gt;wmii&lt;/a&gt; window manager.&lt;/p&gt;

&lt;p&gt;I have had some issues with the &lt;em&gt;libixp&lt;/em&gt; and &lt;em&gt;wmii&lt;/em&gt; packages under Debian.  Particularly the problem is caused by
the fact that libixp (and wmii use of the library) changes often but do not have any way to detect subtle changes
in the API from the sources.&lt;/p&gt;

&lt;p&gt;I decided to track everything in a &lt;em&gt;kitchen sink&lt;/em&gt; repository that will include all the sources that need to be
versioned and released together.  That way what &lt;em&gt;you&lt;/em&gt; try is the same thing I tried.  Currently this includes&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;libixp &lt;em&gt;imported from mercurial&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;wmii &lt;em&gt;imported from mercurial&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;wmiirc-lua&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This of course uses magic &lt;a href=&quot;/~bart/blog/tag/git&quot;&gt;git&lt;/a&gt; powers; or more specifically git submodules.  To follow along you will need
git 1.5.3 or newer.&lt;/p&gt;


&lt;p&gt;&lt;a href=&quot;/~bart/blog/wmiirc-lua-kitchen-sink&quot;&gt;[Read More]&lt;/a&gt;&lt;p&gt;
      </description>
            
            <pubDate>Mon, 17 Dec 2007 11:24:24 -0800</pubDate>
        </item>
            
        <item>
            <title>protecting sshd from OOM killer</title>
            <link>http://swik.net/User:bartman/Bart%27s+Blog/protecting+sshd+from+OOM+killer/bw2f3</link>
            <description>
	 &lt;p&gt;When Linux runs low on memory it tries to kill off applications that may be responsible for 
the high memory usage.  It sometimes gets is all wrong, so the kernel has a way to tell it
which processes are to be treated differently by the OOM killer.&lt;/p&gt;

&lt;p&gt;I am using ssh to run some stress tests.  Occasionally they cause memory to run out, and when I
am not paying attention sshd is killed off... which means I cannot turn off the tests.&lt;/p&gt;

&lt;p&gt;Here is a script that makes sshd immune to OOM killer.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;    for pid in $(pidof sshd) ; do
            echo &quot;disabling oom on pid $pid&quot;
            echo -17 | sudo tee /proc/$pid/oom_adj &amp;gt; /dev/null
    done
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;em&gt;NOTE&lt;/em&gt;: the &lt;code&gt;sudo tee&lt;/code&gt; is a useful trick when you want to write to a file as root w/o spawning a subshell.&lt;/p&gt;

      </description>
            
            <pubDate>Wed, 12 Dec 2007 07:50:28 -0800</pubDate>
        </item>
            
        <item>
            <title>wmiirc-lua v0.2.1 remembers a bit more</title>
            <link>http://swik.net/User:bartman/Bart%27s+Blog/wmiirc-lua+v0.2.1+remembers+a+bit+more/bv4eu</link>
            <description>
	 &lt;p&gt;&lt;a href=&quot;/~bart/blog/tags/wmiirc-lua&quot;&gt;wmiirc-lua&lt;/a&gt; is a replacement for sh-based wmiirc that ships with
the &lt;a href=&quot;http://www.suckless.org/wiki/wmii&quot;&gt;wmii&lt;/a&gt; window manager.&lt;/p&gt;

&lt;p&gt;In version 0.2.1 wmii will remember the last few programs that have been ran and the last few actions
taken.  It will put those entries at the beginning of the completion list.  Frequent items can thus be selected
with arrow keys and pushing &lt;em&gt;enter&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;In this release selecting works spaces with &lt;code&gt;Mod4-[a-z]&lt;/code&gt; will not select the &lt;em&gt;first&lt;/em&gt; view that starts with 
that letter, but rather the &lt;em&gt;most recently used&lt;/em&gt; view that starts with the letter.&lt;/p&gt;

&lt;p&gt;There have also been a few bug fixes, notably the core will now look in &lt;code&gt;~/.wmii-3.5&lt;/code&gt; for plugins and core libraries
before looking in system directories.  That will solve the problem of someone using &lt;code&gt;make install-user&lt;/code&gt; while having 
an older &lt;em&gt;.deb&lt;/em&gt; installed.&lt;/p&gt;


&lt;p&gt;&lt;a href=&quot;/~bart/blog/wmiirc-lua-v0.2.1&quot;&gt;[Read More]&lt;/a&gt;&lt;p&gt;
      </description>
            
            <pubDate>Tue, 04 Dec 2007 20:42:44 -0800</pubDate>
        </item>
            
        <item>
            <title>wmiirc-lua v0.2 has suspend and raw modes</title>
            <link>http://swik.net/User:bartman/Bart%27s+Blog/wmiirc-lua+v0.2+has+suspend+and+raw+modes/bqcku</link>
            <description>
	 &lt;p&gt;&lt;a href=&quot;/~bart/blog/tags/wmiirc-lua&quot;&gt;wmiirc-lua&lt;/a&gt; is a replacement for sh-based wmiirc that ships with
the &lt;a href=&quot;http://www.suckless.org/wiki/wmii&quot;&gt;wmii&lt;/a&gt; window manager.&lt;/p&gt;

&lt;p&gt;The big improvement in version 0.2 is the client tracking support; this enables
&lt;em&gt;raw&lt;/em&gt; and &lt;em&gt;suspend&lt;/em&gt; &lt;a href=&quot;http://repo.or.cz/w/wmiirc-lua.git?a=blob;f=doc/client-modes;h=767ad744ef04bf5197348c45488038546764c07a;hb=4487bd2747261ff06cf0c65ceccff8e66fb411ee&quot;&gt;modes&lt;/a&gt;...&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;in &lt;em&gt;raw&lt;/em&gt; mode the wmii &lt;a href=&quot;http://repo.or.cz/w/wmiirc-lua.git?a=blob;f=doc/key-bindings;h=e8ca905130d0f4e283e0ab9eb968173f0fae0b6d;hb=4487bd2747261ff06cf0c65ceccff8e66fb411ee&quot;&gt;key-bindings&lt;/a&gt;
are ignored and all input is passed to the application.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;in &lt;em&gt;suspend&lt;/em&gt; mode, the process that created a particular window will be sent the &lt;code&gt;STOP&lt;/code&gt; signal when the window is not in focus.
I wrote this with firefox in mind; even when idle and off-screen my firefox gets woken up 100 times per second.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;There were also several bug fixes in this release.  You will still need to build libixp and wmii from hg &lt;a href=&quot;/~bart/blog/wmiirc-in-lua-v0.1.1&quot;&gt;as detained here&lt;/a&gt;.&lt;/p&gt;


&lt;p&gt;&lt;a href=&quot;/~bart/blog/wmiirc-in-lua-v0.2&quot;&gt;[Read More]&lt;/a&gt;&lt;p&gt;
      </description>
            
            <pubDate>Sat, 13 Oct 2007 18:15:53 -0700</pubDate>
        </item>
            
        <item>
            <title>wmiirc-lua debianization</title>
            <link>http://swik.net/User:bartman/Bart%27s+Blog/wmiirc-lua+debianization/bol1o</link>
            <description>
	 &lt;p&gt;I just fixed the install scripts for &lt;a href=&quot;http://repo.or.cz/w/wmiirc-lua.git&quot;&gt;wmiirc-lua&lt;/a&gt;.  It is now possible
to install wmiirc-lua in system directories and run from there.  There is also a &lt;em&gt;Wmii-lua&lt;/em&gt; session for 
the display managers (kdm, gdm, etc).&lt;/p&gt;

&lt;p&gt;The new and improved way to install wmiirc-lua is to &lt;a href=&quot;/~bart/blog/wmiirc-in-lua-v0.1.1&quot;&gt;get libixp and wmii from hg&lt;/a&gt; and then...&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;    sudo apt-get install lua5.1 liblua5.1-0-dev liblua5.1-posix0 git-core

    git clone git://repo.or.cz/wmiirc-lua.git/

    cd wmiirc-lua
    git checkout debian
    make deb

    sudo debi

    install-wmiirc-lua
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;... restart X, and select &lt;em&gt;Wmii-lua&lt;/em&gt; as your login session.&lt;/p&gt;


&lt;p&gt;&lt;a href=&quot;/~bart/blog/wmiirc-lua-debianization&quot;&gt;[Read More]&lt;/a&gt;&lt;p&gt;
      </description>
            
            <pubDate>Mon, 01 Oct 2007 14:20:56 -0700</pubDate>
        </item>
            
        <item>
            <title>zsh tip of the day - global aliases</title>
            <link>http://swik.net/User:bartman/Bart%27s+Blog/zsh+tip+of+the+day+-+global+aliases/bn02q</link>
            <description>
	 &lt;p&gt;Most shells have aliases.  Last week I started using a new (to me) feature in zsh aliases.  Zsh
lets you create arbitrary substitutions for the command line, not just the executable.&lt;/p&gt;

&lt;p&gt;The simple example of a alias would create a new command that acts like another with some parameters added to it:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;    alias ll=&#039;ls -l&#039;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;You can also alias other common patterns in zsh.  Say, you noticed that you used &lt;code&gt;| tail -n10&lt;/code&gt; a lot in your
shell.  You can alias it like so:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;    alias -g TT10=&#039;| tail -n10&quot;
    history TT10
    (10 lines follow)
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;You can also make this tail macro a bit more useful by not fixing it to use 10 lines:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;    alias -g TT=&#039;| tail -n&#039;
    history TT 10
    (10 lines follow)
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Of course you need to pick alias names that will not conflict with normal usage.&lt;/p&gt;


&lt;p&gt;&lt;a href=&quot;/~bart/blog/zsh-global-alilases&quot;&gt;[Read More]&lt;/a&gt;&lt;p&gt;
      </description>
            
            <pubDate>Tue, 25 Sep 2007 12:47:12 -0700</pubDate>
        </item>
            
        <item>
            <title>wmiirc-lua v0.1.1</title>
            <link>http://swik.net/User:bartman/Bart%27s+Blog/wmiirc-lua+v0.1.1/bncrx</link>
            <description>
	 &lt;p&gt;Last night, just before midnight, I released v0.1 of &lt;a href=&quot;http://repo.or.cz/w/wmiirc-lua.git&quot;&gt;wmiirc-lua&lt;/a&gt;.  And then a few
minutes later I had to release v0.1.1.  Let this be a lesson to me, midnight is way too late to make releases.&lt;/p&gt;

&lt;p&gt;So what do you get in v0.1.1?&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;a very fast and lean implementation of an event loop for &lt;a href=&quot;http://www.suckless.org/wiki/wmii&quot;&gt;wmii-3.5&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;all keyboard shortcuts from the (shell) wmiirc that ships with wmii-3.5&lt;/li&gt;
&lt;li&gt;some ideas taken from &lt;a href=&quot;http://eigenclass.org/hiki.rb?wmii+ruby&quot;&gt;wmii+ruby&lt;/a&gt; like more advanced keyboard shortcuts and plugins&lt;/li&gt;
&lt;li&gt;a clock plugin, a load plugin&lt;/li&gt;
&lt;li&gt;and most importantly a huge community of 3 users!&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Why would you want to use wmiirc-lua over the default, or even over the fabulous wmii+ruby?&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;unlike wmii+ruby, wmiirc-lua can run with wmii-3.5
&lt;ul&gt;
&lt;li&gt;debian/testing no longer has wmii-3.1 and according to the wmii website: &lt;em&gt;wmii-3.1 is deprecated&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;wmiirc-lua is faster then the shell version because it doesn&#039;t have to exec things on event processing
&lt;ul&gt;
&lt;li&gt;we communicate with wmii over an IXP socket directly&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;wmiirc-lua will not eat your laptop&#039;s battery life like ruby threading can
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.linuxpowertop.org/&quot;&gt;powertop&lt;/a&gt; used to show ruby as the #1 source of CPU wakeups&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;300 wakeups/s with wmii+ruby and 1 wakeup/s with wmiirc-lua&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;&lt;a href=&quot;/~bart/blog/wmiirc-in-lua-v0.1.1&quot;&gt;[Read More]&lt;/a&gt;&lt;p&gt;
      </description>
            
            <pubDate>Sat, 15 Sep 2007 07:51:01 -0700</pubDate>
        </item>
            
        <item>
            <title>comparing two directories</title>
            <link>http://swik.net/User:bartman/Bart%27s+Blog/comparing+two+directories/bm3u6</link>
            <description>
	 &lt;p&gt;In one of the project I am working on we have the build environment tarred up and stored 
in tgz files and committed in SVN.  To avoid updating the same 300M tarball we decided to
added incremental tarballs each time that we add new software to the build environment.
But that&#039;s not the important bit...&lt;/p&gt;

&lt;p&gt;I wanted to figure out what software was installed since the last tarballs were extracted.  To
do this I need to compare two directories and create a new tarball with all the new files.  How
do you diff two directories pro grammatically?&lt;/p&gt;

&lt;p&gt;I came up with this...&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;    cp -ax orig-dir new-dir

    ... do whatever in new-dir ...

    diff -u &amp;lt;(find orig-dir -printf &quot;%p %t\n&quot; | cut -d / -f 2-) \
            &amp;lt;(find new-dir -printf &quot;%p %t\n&quot; | cut -d / -f 2-) \
    | grep -v &#039;^[+-]&#039;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;And then I found out that I can do it with rsync...&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;    rsync -a orig-dir/ new-dir/

    ... do whatever in new-dir ...

    rsync -av --dry-run orig-dir/ new-dir/
&lt;/code&gt;&lt;/pre&gt;

      </description>
            
            <pubDate>Thu, 13 Sep 2007 10:35:16 -0700</pubDate>
        </item>
            
        <item>
            <title>git-rebase --interactive</title>
            <link>http://swik.net/User:bartman/Bart%27s+Blog/git-rebase+--interactive/bmjd3</link>
            <description>
	 &lt;p&gt;MadCoder wrote today about &lt;a href=&quot;http://blog.madism.org/index.php/2007/09/09/138-git-awsome-ness-git-rebase-interactive-?cos=1&quot;&gt;git-rebase --interactive&lt;/a&gt;
which is a new feature in git that allows you to easily reorder, or fix patches already applied to the 
current branch by editing a file... very neat.&lt;/p&gt;

      </description>
            
            <pubDate>Sun, 09 Sep 2007 18:39:45 -0700</pubDate>
        </item>
                </channel>
</rss>
