<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>bartman&#39;s blog</title>
    <link>http://www.jukie.net/~bart/</link>
    <description>Recent content on bartman&#39;s blog</description>
    <generator>Hugo</generator>
    <language>en</language>
    <lastBuildDate>Tue, 31 Mar 2026 10:14:56 -0400</lastBuildDate>
    <atom:link href="http://www.jukie.net/~bart/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Nix Neovim Overlay</title>
      <link>http://www.jukie.net/~bart/blog/nix-neovim-overlay/</link>
      <pubDate>Tue, 31 Mar 2026 10:14:56 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/nix-neovim-overlay/</guid>
      <description>&lt;h2 class=&#34;heading&#34; id=&#34;title&#34;&gt;&#xA;  title&lt;span class=&#34;heading__anchor&#34;&gt; &lt;a href=&#34;#title&#34;&gt;#&lt;/a&gt;&lt;/span&gt;&#xA;&lt;/h2&gt;&lt;p&gt;I run NixOS, my configuration is quite conservative (stable release), but I do occasionally install from unstable.&lt;/p&gt;&#xA;&lt;p&gt;Neovim v0.12 just dropped and I wanted to switch to it.  NixOS has not yet updated v0.12 (not even in unstable).&lt;/p&gt;&#xA;&lt;p&gt;I wanted to build my own Neovim v0.12 using overlays&amp;hellip;&lt;/p&gt;</description>
    </item>
    <item>
      <title>git-wip C&#43;&#43; rewrite — over a decade later</title>
      <link>http://www.jukie.net/~bart/blog/git-wip-cpp-rewrite/</link>
      <pubDate>Tue, 16 Dec 2025 17:14:36 -0500</pubDate>
      <guid>http://www.jukie.net/~bart/blog/git-wip-cpp-rewrite/</guid>
      <description>&lt;p&gt;Many many years ago I wrote about &lt;a href=&#34;http://www.jukie.net/bart/blog/save-everything-with-git-wip&#34;&gt;git-wip&lt;/a&gt;, a tool I created to automatically snapshot your working tree on every file save.  The original was a bash script, written over a few weekends in 2009.  It served me well for over a decade, but it had accumulated technical debt: the bash script had issues with whitespace in filenames, it used external tools like &lt;code&gt;git-sh-setup&lt;/code&gt;, it was getting harder to extend, slow on large repos, and so on.&lt;/p&gt;&#xA;&lt;p&gt;A decade and a half of GitHub issues had piled up.  Some were feature requests.  Others were bugs.  Many were just things that didn&amp;rsquo;t work on platforms that weren&amp;rsquo;t my own.  I had ignored most of them — the script was good enough for me, and I didn&amp;rsquo;t really have to pull to work on it in my free time.  Sorry.&lt;/p&gt;&#xA;&lt;p&gt;That changed recently.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Overcoming Windows 11 Installation Resets on Ryzen 7</title>
      <link>http://www.jukie.net/~bart/blog/install-win11-on-asrock-b550m/</link>
      <pubDate>Tue, 16 Dec 2025 17:14:36 -0500</pubDate>
      <guid>http://www.jukie.net/~bart/blog/install-win11-on-asrock-b550m/</guid>
      <description>&lt;p&gt;I was hitting Windows 11 installer resets on an ASRock B550M Steel Legend motherboard with a AMD Ryzen 7 5700G processor. The system ran Linux stable for months and BIOS was perfectly stable also, but Windows installers (both 10 and 11) triggered resets, even while idle. It looked like a Windows-specific power management issue, likely related to CPU C-states.&lt;/p&gt;</description>
    </item>
    <item>
      <title>NixOS molly-guard</title>
      <link>http://www.jukie.net/~bart/blog/nixos-molly-guard/</link>
      <pubDate>Sun, 05 Oct 2025 10:20:57 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/nixos-molly-guard/</guid>
      <description>&lt;p&gt;I accidentally ran &lt;code&gt;sudo reboot&lt;/code&gt; on my local desktop, thinking the shell was connected to a remote server over ssh. This rebooted the wrong system&amp;hellip; Oops.&lt;/p&gt;&#xA;&lt;p&gt;On Debian for years, I used a package &lt;a href=&#34;https://packages.debian.org/sid/molly-guard&#34;&gt;molly-guard&lt;/a&gt;, and I had installed &lt;a href=&#34;https://github.com/NixOS/nixpkgs/blob/nixos-unstable/pkgs/by-name/mo/molly-guard/package.nix#L35&#34;&gt;molly-guard&lt;/a&gt; on my NixOS desktop, but apparently I didn&amp;rsquo;t configure it correctly.&lt;/p&gt;</description>
    </item>
    <item>
      <title>multi user vncserver</title>
      <link>http://www.jukie.net/~bart/blog/vncserver/</link>
      <pubDate>Sat, 04 Oct 2025 12:49:54 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/vncserver/</guid>
      <description>&lt;p&gt;Let&amp;rsquo;s setup an Ubuntu 24.04 Server and give multiple users to it using VNC.&lt;/p&gt;&#xA;&lt;p&gt;So, I have an Ubuntu 24.04 server in the lab, and I need to get multiple users&#xA;to VNC in.  Not my favourite way to use a UNIX system, but all the hardware&#xA;tools are graphical, and this is the way design is done.&lt;/p&gt;&#xA;&lt;p&gt;To keep things light, we will use &lt;code&gt;lightdm&lt;/code&gt; greeter and &lt;code&gt;xfce4&lt;/code&gt; desktop.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Resume</title>
      <link>http://www.jukie.net/~bart/resume/</link>
      <pubDate>Wed, 23 Jul 2025 16:54:29 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/resume/</guid>
      <description>&lt;h1 class=&#34;heading&#34; id=&#34;bart-trojanowski&#34;&gt;&#xA;  Bart Trojanowski&lt;span class=&#34;heading__anchor&#34;&gt; &lt;a href=&#34;#bart-trojanowski&#34;&gt;#&lt;/a&gt;&lt;/span&gt;&#xA;&lt;/h1&gt;&lt;p&gt;247 Scout St.&lt;br/&gt;&#xA;Ottawa, ON K2C 4E6&lt;br/&gt;&#xA;Canada&lt;/p&gt;&#xA;&lt;p&gt;Phone: 613/282-7102&lt;/br&gt;&#xA;Email: &lt;a href=&#34;mailto:bart@jukie.net&#34;&gt;bart@jukie.net&lt;/a&gt;&lt;/br&gt;&#xA;&lt;a href=&#34;http://www.jukie.net/~bart/&#34;&gt;http://www.jukie.net/~bart/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h1 class=&#34;heading&#34; id=&#34;professional-objective&#34;&gt;&#xA;  Professional Objective&lt;span class=&#34;heading__anchor&#34;&gt; &lt;a href=&#34;#professional-objective&#34;&gt;#&lt;/a&gt;&lt;/span&gt;&#xA;&lt;/h1&gt;&lt;p&gt;Qualified programmer, architect, and consultant.&#xA;25+ years of Linux development experience, 20+ years driver and kernel work.&#xA;Specialties: Linux kernel, drivers, multi-platform, security, memory, storage, optimization.&lt;/p&gt;&#xA;&lt;h1 class=&#34;heading&#34; id=&#34;employment-history&#34;&gt;&#xA;  Employment History&lt;span class=&#34;heading__anchor&#34;&gt; &lt;a href=&#34;#employment-history&#34;&gt;#&lt;/a&gt;&lt;/span&gt;&#xA;&lt;/h1&gt;&lt;h2 class=&#34;heading&#34; id=&#34;thikra-technologies&#34;&gt;&#xA;  Thikra Technologies&lt;span class=&#34;heading__anchor&#34;&gt; &lt;a href=&#34;#thikra-technologies&#34;&gt;#&lt;/a&gt;&lt;/span&gt;&#xA;&lt;/h2&gt;&lt;ul&gt;&#xA;&lt;li&gt;Chief Software Architect&lt;/li&gt;&#xA;&lt;li&gt;2018 – Present&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Conducted research, prototyping, development, and optimization of custom&#xA;virtual memory paging software in a Linux kernel module. Using Linux Kernel,&#xA;TCP/IP, Valgrind, DynamoRIO, page tables, custom virtual memory management&#xA;driver, disassembly, virtual memory, memory management, PMEM, PMDK, RocksDB,&#xA;dynamic library preload.&lt;/p&gt;</description>
    </item>
    <item>
      <title>nixos custom ppd printer</title>
      <link>http://www.jukie.net/~bart/blog/nixos-ppd-printer/</link>
      <pubDate>Wed, 25 Jun 2025 10:48:10 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/nixos-ppd-printer/</guid>
      <description>&lt;p&gt;I have bought a &lt;a href=&#34;https://www.brother.ca/en/p/MFCL3780CDW&#34;&gt;Brother MFC-L3780CDW&lt;/a&gt; printer, and needed to get it working on NixOS.&lt;/p&gt;&#xA;&lt;p&gt;While NixOS supports many Brother printers out of the box, I was unable to get the colour &amp;amp; duplex printing working together with any of the ones I tried.&lt;/p&gt;&#xA;&lt;p&gt;In the past I&amp;rsquo;ve used a Brother supplied &lt;code&gt;.deb&lt;/code&gt; package on Debian based systems.&lt;/p&gt;&#xA;&lt;p&gt;This post describes how to install a PPD driver for this printer, but you can use this procedure with other printers.&lt;/p&gt;</description>
    </item>
    <item>
      <title>nixos Fooocus</title>
      <link>http://www.jukie.net/~bart/blog/nixos-fooocus/</link>
      <pubDate>Mon, 23 Jun 2025 12:01:33 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/nixos-fooocus/</guid>
      <description>&lt;p&gt;I had &lt;a href=&#34;https://github.com/lllyasviel/Fooocus&#34;&gt;Fooocus&lt;/a&gt; running on Debian, and I recall it was not trivial to setup.&lt;/p&gt;&#xA;&lt;p&gt;I am now running NixOS, and wanted to run it again to enhance some images.&lt;/p&gt;&#xA;&lt;p&gt;Here is how to run dockerized Fooocus app on NixOS (or anywhere, really).&lt;/p&gt;</description>
    </item>
    <item>
      <title>nixos package overlay</title>
      <link>http://www.jukie.net/~bart/blog/nixos-package-overlay/</link>
      <pubDate>Mon, 23 Jun 2025 10:35:26 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/nixos-package-overlay/</guid>
      <description>&lt;p&gt;I&amp;rsquo;m running NixOS as my desktop, and I want to include a package,&#xA;that is now newer in &lt;code&gt;git&lt;/code&gt; than what&amp;rsquo;s published with the stable&#xA;release of NixOS (25.04).&lt;/p&gt;&#xA;&lt;p&gt;This can be done with overlays.&lt;/p&gt;</description>
    </item>
    <item>
      <title>mtr braille graph</title>
      <link>http://www.jukie.net/~bart/blog/mtr-braille-graph/</link>
      <pubDate>Mon, 23 Jun 2025 08:34:19 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/mtr-braille-graph/</guid>
      <description>&lt;p&gt;I often monitor network stability with &lt;code&gt;mtr&lt;/code&gt;, which can show a time series&#xA;of how the network is doing at different hops between two endpoints.  I recently&#xA;made an improvement to &lt;code&gt;mtr&lt;/code&gt; that shows the time series as a graph using braille&#xA;characters.&lt;/p&gt;</description>
    </item>
    <item>
      <title>blogging reborn</title>
      <link>http://www.jukie.net/~bart/blog/blogging-reborn/</link>
      <pubDate>Tue, 03 Jun 2025 11:27:57 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/blogging-reborn/</guid>
      <description>&lt;h2 class=&#34;heading&#34; id=&#34;again&#34;&gt;&#xA;  again&lt;span class=&#34;heading__anchor&#34;&gt; &lt;a href=&#34;#again&#34;&gt;#&lt;/a&gt;&lt;/span&gt;&#xA;&lt;/h2&gt;&lt;p&gt;This seems to happen often.  I go through a consistent burst of blogging, then I get&#xA;distracted by work, and stop.&lt;/p&gt;&#xA;&lt;p&gt;Well here is another attempt at blogging.  This time with hugo.&lt;/p&gt;</description>
    </item>
    <item>
      <title>generating ssh keys in 2025</title>
      <link>http://www.jukie.net/~bart/blog/generating-ssh-keys-in-2025/</link>
      <pubDate>Wed, 28 May 2025 20:10:00 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/generating-ssh-keys-in-2025/</guid>
      <description>&lt;p&gt;I&amp;rsquo;m setting up a new system, and I always create a new key when I bulid a new desktop&amp;hellip;&#xA;Having not done it in a few years, I wanted to see what the recomended ssh key looks like these days.&lt;/p&gt;</description>
    </item>
    <item>
      <title>new git learnings</title>
      <link>http://www.jukie.net/~bart/blog/new-git-learnings/</link>
      <pubDate>Wed, 14 Feb 2024 13:21:02 -0500</pubDate>
      <guid>http://www.jukie.net/~bart/blog/new-git-learnings/</guid>
      <description>&lt;p&gt;watching the founder of github talk about git.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://www.youtube.com/watch?v=aolI_Rz0ZqY&#34;&gt;https://www.youtube.com/watch?v=aolI_Rz0ZqY&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;here is what I learned:&lt;/p&gt;</description>
    </item>
    <item>
      <title>new vim config</title>
      <link>http://www.jukie.net/~bart/blog/new-vim-config/</link>
      <pubDate>Sat, 03 Feb 2024 16:44:50 -0500</pubDate>
      <guid>http://www.jukie.net/~bart/blog/new-vim-config/</guid>
      <description>&lt;p&gt;I started from scratch and built up a new Neovim config.&lt;/p&gt;&#xA;&lt;p&gt;Based on this video series:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.youtube.com/watch?v=zHTeCSVAFNY&#34;&gt;video&lt;/a&gt; by &lt;code&gt;typecraft&lt;/code&gt; (thank you)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Pushed to github here:&#xA;&lt;a href=&#34;https://github.com/bartman/nvim-config&#34;&gt;https://github.com/bartman/nvim-config&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>improving find -exec efficiency</title>
      <link>http://www.jukie.net/~bart/blog/improving-find--exec-efficiency/</link>
      <pubDate>Wed, 12 Dec 2018 14:51:29 -0500</pubDate>
      <guid>http://www.jukie.net/~bart/blog/improving-find--exec-efficiency/</guid>
      <description>&lt;p&gt;So today I learned about &lt;code&gt;find -exec ... +&lt;/code&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>automount mmcblk devices</title>
      <link>http://www.jukie.net/~bart/blog/automount-mmcblk/</link>
      <pubDate>Tue, 09 Apr 2013 09:27:58 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/automount-mmcblk/</guid>
      <description>&lt;p&gt;I put my camera SD/HC card into my laptop (running Debian/testing) and it&#xA;didn&amp;rsquo;t mount.  Usually I would just run the &lt;code&gt;mount&lt;/code&gt; command to get it going:&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;    dmesg | tail&#xA;    mount /dev/mmcblk0p1 /mnt&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;That unfortunately has some annoyances and I decided to solve this finally.&lt;/p&gt;</description>
    </item>
    <item>
      <title>tunnelbroker vs IRC</title>
      <link>http://www.jukie.net/~bart/blog/tunnelbroker-irc/</link>
      <pubDate>Sat, 16 Mar 2013 19:05:07 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/tunnelbroker-irc/</guid>
      <description>&lt;p&gt;&lt;em&gt;IRC not working over HE.net 6in4 tunnel? read on&amp;hellip;&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;I recently switched VPS&amp;rsquo;s (to &lt;a href=&#34;https://www.digitalocean.com/&#34;&gt;Digital Ocean&lt;/a&gt;)&#xA;and because my new co-location provider does not come&#xA;with native IPv6, I had to use a tunnel.  Naturally I chose tunnelbroker.net.&#xA;However, after reestablishing all important services, I noticed that TCP ports&#xA;in the range 6666-6669 don&amp;rsquo;t work &amp;ndash; not on IPv6 anyways.  These are usually&#xA;used by IRC servers.&lt;/p&gt;&#xA;&lt;p&gt;I did a bit of detective work on trying to figure out what was going on.&#xA;Initially looking for solutions on the internet, but all I found were other&#xA;people having this same problem with tunnelbroker.net tunnels.&lt;/p&gt;</description>
    </item>
    <item>
      <title>HDD -&gt; SDD</title>
      <link>http://www.jukie.net/~bart/blog/hdd-to-ssd/</link>
      <pubDate>Thu, 16 Jun 2011 18:02:55 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/hdd-to-ssd/</guid>
      <description>&lt;p&gt;After reading and hearing everyone raving about SSDs for a couple of years it was hard to resists the upgrade.&lt;/p&gt;&#xA;&lt;p&gt;So I got an &lt;a href=&#34;http://www.techspot.com/review/387-intel-510-ssd/page4.html&#34;&gt;Intel SSD 510 120GB&lt;/a&gt; to replace my Seagate 2.5&amp;quot; laptop HDD.&lt;/p&gt;&#xA;&lt;p&gt;The prices in the ~120GB SSD category are pretty close.  I chose the Intel based on reading that they have a low failure rate (I was unable to find the soruce when writing this up).&lt;/p&gt;&#xA;&lt;p&gt;The Thinkpad X61 only has SATA-II; the drive supposedly has better performance on SATA3.&lt;/p&gt;&#xA;&lt;p&gt;&lt;i&gt;UPDATE:&lt;/i&gt; &lt;a href=&#34;http://samat.org/&#34;&gt;Samat K Jain&lt;/a&gt; points out that &amp;ldquo;&lt;i&gt;the ThinkPad X61 is limited to 1.5 Gbps, even with SATA-II (Lenovo&amp;rsquo;s excuse: power saving, by keeping bus clocks down)&lt;/i&gt;&amp;rdquo;.  Lots of discussion about that &lt;a href=&#34;http://www.google.com/search?q=ThinkPad&amp;#43;X61&amp;#43;SATA&#34;&gt;on the net&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>how to manually create a 6in4 tunnel</title>
      <link>http://www.jukie.net/~bart/blog/6in4-tunnel-script/</link>
      <pubDate>Tue, 17 May 2011 20:46:17 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/6in4-tunnel-script/</guid>
      <description>&lt;p&gt;I&amp;rsquo;m doing some IPv6 codig for a client and needed to setup a bunch of &lt;a href=&#34;http://en.wikipedia.org/wiki/6in4&#34;&gt;6in4&lt;/a&gt; tunnels.&lt;/p&gt;&#xA;&lt;p&gt;Thre are many ways to do this through distribution init scripts (&lt;a href=&#34;http://wiki.debian.org/DebianIPv6&#34;&gt;Debian&lt;/a&gt;, &lt;a href=&#34;http://dice.neko-san.net/2011/03/fedora-sysconfig-for-6in4-tunnel-router/&#34;&gt;Fedora&lt;/a&gt;), but I wanted something less permanent and more dynamic for testing.&lt;/p&gt;&#xA;&lt;p&gt;The procedure can be summarized in these steps:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;create a tunnel &lt;code&gt;mytun&lt;/code&gt; between local &lt;code&gt;1.1.1.1&lt;/code&gt; and remote &lt;code&gt;2.2.2.2&lt;/code&gt;&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;  ip tunnel add mytun mode sit local 1.1.1.1 \&#xA;                  remote 2.2.2.2 ttl 64 dev eth0&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;give the local end an address&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;  ip addr add dev mytun f8c0::1.1.1.1/64&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;bring up the tunnel&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;  ip link set dev mytun up&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>Presentation slides published!</title>
      <link>http://www.jukie.net/~bart/blog/presentation-slides-published/</link>
      <pubDate>Sun, 01 May 2011 20:29:15 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/presentation-slides-published/</guid>
      <description>&lt;p&gt;What a busy week!&lt;/p&gt;&#xA;&lt;p&gt;As the dust of the (extremely) well attended &lt;a href=&#34;http://ipv6summit.ca&#34;&gt;Ottawa IPv6 Summit&lt;/a&gt; settles, we are&#xA;working through some post conference tasks.&lt;/p&gt;&#xA;&lt;p&gt;I&amp;rsquo;ve just updated the presentation page on the site to include the slide decks&#xA;of most of the presentations. I am still waiting for files from few speakers.&#xA;You view the ones which are available on &lt;a href=&#34;http://ipv6summit.ca/index.php/v6/2011/schedConf/presentations&#34;&gt;the presentation page&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;As you may have noticed &amp;ndash; if you were lucky to get in before we sold out &amp;ndash;&#xA;the talks were recorded. The results of the recordings will go up on our&#xA;website within a few weeks.&lt;/p&gt;</description>
    </item>
    <item>
      <title>What is IPv6, and why should I care?</title>
      <link>http://www.jukie.net/~bart/blog/ipv6-why/</link>
      <pubDate>Sun, 20 Mar 2011 19:04:58 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/ipv6-why/</guid>
      <description>&lt;p&gt;[ NOTE: this article began as the front page of the &lt;a href=&#34;http://ipv6summit.ca&#34;&gt;IPv6 Summit.ca&lt;/a&gt; website ]&lt;/p&gt;&#xA;&lt;p&gt;Whenever you use the Internet, you are using an Internet Protocol (IP) - a set of rules for communication between computers. Internet Protocol Version 6 (or IPv6 for short) is an upgrade to the most widely available Internet Protocol (version 4, or IPv4).  These Internet Protocols are used to assign each computer with an address (called an IP address) that uniquely identifies it on the Web and allows other computers to communicate with it.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Ottawa IPv6 Summit 2011</title>
      <link>http://www.jukie.net/~bart/blog/ipv6summit.ca/</link>
      <pubDate>Wed, 09 Mar 2011 23:01:06 -0500</pubDate>
      <guid>http://www.jukie.net/~bart/blog/ipv6summit.ca/</guid>
      <description>&lt;p&gt;In the summer of 2010 a half dozen &lt;a href=&#34;http://oclug.on.ca&#34;&gt;OCLUG&lt;/a&gt; members decided it would be a good idea&#xA;to put on an IPv6 conference for Ottawa.  I was one of those people!&lt;/p&gt;&#xA;&lt;p&gt;At the time IANA still had lots of IPv4 addresses, but it was projected to run out in May of 2011.&#xA;It seemed that no one in Canada was doing anything about it, and people needed to be educated.&lt;/p&gt;&#xA;&lt;p&gt;And so, the &lt;a href=&#34;http://ipv6summit.ca&#34;&gt;IPv6summit.ca&lt;/a&gt; was born.&lt;/p&gt;</description>
    </item>
    <item>
      <title>I am now an IPv6 Sage</title>
      <link>http://www.jukie.net/~bart/blog/ipv6-sage/</link>
      <pubDate>Wed, 09 Mar 2011 22:51:49 -0500</pubDate>
      <guid>http://www.jukie.net/~bart/blog/ipv6-sage/</guid>
      <description>&lt;p&gt;Long time no blog&amp;hellip; I&amp;rsquo;ve been realy busy getting the &lt;a href=&#34;http://ipv6summit.ca&#34;&gt;Ottawa IPv6 Summit&lt;/a&gt; off the&#xA;ground (along with &lt;a href=&#34;http://ipv6summit.ca/index.php/v6/2011/about/organizingTeam&#34;&gt;several other people&lt;/a&gt;&#xA;from &lt;a href=&#34;http://oclug.on.ca&#34;&gt;OCLUG&lt;/a&gt;).  I&amp;rsquo;ll have to blog about that soon.&lt;/p&gt;&#xA;&lt;p&gt;Anyway&amp;hellip; I&amp;rsquo;ve also been learning a lot more about IPv6.  Which reminded me that I never&#xA;finished my &lt;a href=&#34;http://ipv6.he.net/certification/cert-main.php&#34;&gt;IPv6 Certification&lt;/a&gt; from&#xA;&lt;a href=&#34;http://he.net/&#34;&gt;Hurricane Electric&lt;/a&gt;.  I stopped at the &lt;i&gt;Guri&lt;/i&gt; level because getting&#xA;&lt;i&gt;Sage&lt;/i&gt; (the top level) meant that I would have had to have a&#xA;&lt;a href=&#34;http://www.jukie.net/~bart/blog/20100908173402&#34;&gt;sane domain name registrar&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>It&#39;s a Holiday Miracle</title>
      <link>http://www.jukie.net/~bart/blog/its-a-holiday-miracle/</link>
      <pubDate>Tue, 14 Dec 2010 14:55:58 -0500</pubDate>
      <guid>http://www.jukie.net/~bart/blog/its-a-holiday-miracle/</guid>
      <description>&lt;p&gt;I just switched to the &lt;em&gt;Holiday Miracle Plan&lt;/em&gt; from&#xA;&lt;a href=&#34;http://windmobile.ca&#34;&gt;WindMobile.ca&lt;/a&gt;.  I thought I&amp;rsquo;d mention it since it&amp;rsquo;s not&#xA;advertised, but a fantastic deal.  You have to sign up by December 26th, but you get&#xA;to keep this rate for as long as you are a customer.&lt;/p&gt;&#xA;&lt;p&gt;In short: it&amp;rsquo;s unlimited-everything for $40/month.  It&amp;rsquo;s Wind, so there are no contracts, hidden fees, or strings attached.&lt;/p&gt;</description>
    </item>
    <item>
      <title>ipv6 on your desktop in 2 steps</title>
      <link>http://www.jukie.net/~bart/blog/ipv6-for-the-lazy/</link>
      <pubDate>Wed, 03 Nov 2010 09:51:30 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/ipv6-for-the-lazy/</guid>
      <description>&lt;p&gt;Some people have been telling me that they &amp;ldquo;have no time&amp;rdquo; or &amp;ldquo;are too lazy&amp;rdquo; to setup IPv6 on their desktop, but would like to.&lt;/p&gt;&#xA;&lt;p&gt;Below are 2 easy steps to get IPv6 running on your Debian Linux sytem (shoudl be identical on Ubuntu, and similar distros).&lt;/p&gt;&#xA;&lt;p&gt;If you&amp;rsquo;re not running Linux, check out these pages instead: &lt;a href=&#34;http://www.deepdarc.com/miredo-osx/&#34;&gt;MacOS X&lt;/a&gt;, &lt;a href=&#34;http://pugio.net/2007/07/howto-enable-ipv6-the-teredo-w.html&#34;&gt;Windows&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>growing a live LVM volume</title>
      <link>http://www.jukie.net/~bart/blog/resize-lvm/</link>
      <pubDate>Wed, 20 Oct 2010 11:30:26 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/resize-lvm/</guid>
      <description>&lt;p&gt;I have an LVM volume, with xfs on it, that is almost full:&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;$ df /scratch -h&#xA;Filesystem                Size  Used Avail Use% Mounted on&#xA;/dev/mapper/vg-scratch    180G  175G  5.4G  98% /scratch&#xA;&#xA;$ sudo lvdisplay /dev/mapper/vg-scratch&#xA;...&#xA;  LV Size                180.00 GB&#xA;...&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;But I have some more space in the physical volume.  Let&amp;rsquo;s grow the logical volume.&lt;/p&gt;</description>
    </item>
    <item>
      <title>distributing DNS list through radvd</title>
      <link>http://www.jukie.net/~bart/blog/distributing-dns-list-through-radvd/</link>
      <pubDate>Wed, 15 Sep 2010 17:56:49 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/distributing-dns-list-through-radvd/</guid>
      <description>&lt;p&gt;If you have an IPv6 Linux network at home, you probably have a Linux host on the&#xA;perimeter that&amp;rsquo;s running &lt;a href=&#34;http://www.litech.org/radvd/&#34;&gt;radvd&lt;/a&gt; &amp;ndash; this is the&#xA;server that responds to IPv6 neighbour discovery (ND) requests, distributes&#xA;the &lt;em&gt;default route&lt;/em&gt; to all your hosts, and tells your hosts how to auto&#xA;configure themselves.&lt;/p&gt;&#xA;&lt;p&gt;All these tasks were handled by the &lt;em&gt;DHCP&lt;/em&gt; server, albeit a lot differently, in&#xA;the good old days.  The one other thing that &lt;code&gt;dhcpd&lt;/code&gt; did for us was to tell&#xA;all the hosts where the DNS servers were.&lt;/p&gt;&#xA;&lt;p&gt;So, do I need to run the IPv6 version of &lt;code&gt;dhcpd&lt;/code&gt; AND &lt;code&gt;radvd&lt;/code&gt;?&lt;/p&gt;</description>
    </item>
    <item>
      <title>Canadian ipv6 drought</title>
      <link>http://www.jukie.net/~bart/blog/canadian-ipv6-drought/</link>
      <pubDate>Wed, 08 Sep 2010 17:34:02 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/canadian-ipv6-drought/</guid>
      <description>&lt;p&gt;Apparently there is a huge shortage of Canadian registrars that can provide full ipv6 support.  The only one&#xA;I was able to find is &lt;a href=&#34;http://baremetal.ca/&#34;&gt;BareMeta.com&lt;/a&gt;, which despite it&amp;rsquo;s TLD operates out of&#xA;Victoria, BC.  I haven&amp;rsquo;t switched yet, because while they support ipv6 glue records for &lt;em&gt;.ca&lt;/em&gt;, they don&amp;rsquo;t&#xA;for &lt;em&gt;.net&lt;/em&gt; yet.&lt;/p&gt;&#xA;&lt;p&gt;Here is the discussion on dslreports.com where it &lt;a href=&#34;http://www.dslreports.com/forum/r24181473-TekSavvy-DNS-servers-and-IPv6?r=0.730862192615074&#34;&gt;was mentioned&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>ipv6 certification</title>
      <link>http://www.jukie.net/~bart/blog/ipv6-certification/</link>
      <pubDate>Fri, 03 Sep 2010 19:06:23 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/ipv6-certification/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve finally gotten onto the IPv6 bandwagon and went through the process of converting my network to IPv6.  Ya know,&#xA;&lt;a href=&#34;http://en.wikipedia.org/wiki/IPv4_address_exhaustion&#34;&gt;the end&lt;/a&gt; &lt;a href=&#34;http://ipv6.he.net/statistics/&#34;&gt;is near&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;I am using an &lt;a href=&#34;http://he.net&#34;&gt;he.net&lt;/a&gt; tunnel, and am almost done going through their &lt;a href=&#34;http://ipv6.he.net/certification&#34;&gt;certification process&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;http://ipv6.he.net/certification/scoresheet.php?pass_name=bartman&#34; target=&#34;_blank&#34;&gt;&lt;img src=&#34;http://ipv6.he.net/certification/create_badge.php?pass_name=bartman&amp;badge=2&#34; width=250 height=194 border=0 alt=&#34;IPv6 Certification Badge for bartman&#34;&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>m4a to mp3</title>
      <link>http://www.jukie.net/~bart/blog/m4a-to-mp3/</link>
      <pubDate>Fri, 23 Jul 2010 19:22:59 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/m4a-to-mp3/</guid>
      <description>&lt;p&gt;I was at &lt;a href=&#34;http://www.bridgehead.ca/&#34;&gt;Bridgehead&lt;/a&gt; earlier today and heard a cool tune.  I asked the staff&#xA;what it was, and they told me that it was &lt;a href=&#34;http://www.last.fm/music/Low&amp;#43;Strung&#34;&gt;Low Strung&lt;/a&gt;.  After coming home&#xA;I wanted to get the CD, but was unable to find it anywhere but &lt;a href=&#34;http://itunes.apple.com/album/low-strung/id260115183?ign-mpt=uo%3D5&#34;&gt;iTunes&lt;/a&gt;.  I don&amp;rsquo;t do iTunes, because Apple doesn&amp;rsquo;t do Linux&amp;hellip; but fortunately my wife&#xA;has a Mac.&lt;/p&gt;&#xA;&lt;p&gt;So, after getting the album I had to convert it from &lt;code&gt;.m4a&lt;/code&gt; to &lt;code&gt;.mp3&lt;/code&gt;.  I figured I&amp;rsquo;d share my script&amp;hellip;&#xA;&lt;a href=&#34;http://git.jukie.net/snippets.git/tree/m4a-to-mp3/convert-m4a-to-mp3&#34;&gt;convert-m4a-to-mp3&lt;/a&gt;.  You&amp;rsquo;ll need&#xA;to grab a few packages to use it: &lt;code&gt;apt-get install zsh faad id3v2 twolame toolame&lt;/code&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>git 1.7.2 is out</title>
      <link>http://www.jukie.net/~bart/blog/git-1.7.2-is-out/</link>
      <pubDate>Fri, 23 Jul 2010 13:45:22 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/git-1.7.2-is-out/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;http://gitlog.wordpress.com/2010/07/22/git-1-7-2/&#34;&gt;Just announced&lt;/a&gt; is release of &lt;a href=&#34;http://git.kernel.org/?p=git/git.git;a=tag;h=refs/tags/v1.7.2&#34;&gt;Git version 1.7.2&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Scanning through the &lt;a href=&#34;http://git.kernel.org/?p=git/git.git;a=blob;f=Documentation/RelNotes-1.7.2.txt;h=15cf01178c1f653230c8f718ef7024b147ecacf9;hb=64fdc08dac6694d1e754580e7acb82dfa4988bb9&#34;&gt;ReleaseNotes&lt;/a&gt; the following look interesting:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;git -c var=val&lt;/code&gt; will override config&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;git show :/pattern&lt;/code&gt; now uses regex&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;git&lt;/code&gt; no longer squelches if it doesn&amp;rsquo;t find .git (useful when using in PS1)&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;git checkout --orphan name&lt;/code&gt; makes a new root branch (no parent)&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;git cherry-pick&lt;/code&gt; can now be given a list of refs&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;git log --decorate&lt;/code&gt; learned to colour more things&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>console=ttyS0 with grub2</title>
      <link>http://www.jukie.net/~bart/blog/consolettys0-with-grub2/</link>
      <pubDate>Sun, 23 May 2010 09:20:01 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/consolettys0-with-grub2/</guid>
      <description>&lt;p&gt;Just a quick note so I don&amp;rsquo;t forget now to enable console logging on systems running &lt;code&gt;grub2&lt;/code&gt; (like Ubuntu 10.04, Lucid).&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;edit &lt;code&gt;/etc/default/grub&lt;/code&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;set &lt;code&gt;GRUB_CMDLINE_LINUX&lt;/code&gt; to &lt;code&gt;&amp;quot;console=ttyS0,115200n8 console=tty0&amp;quot;&lt;/code&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;run &lt;code&gt;update-grub&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;reboot&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;( more info &lt;a href=&#34;https://wiki.ubuntu.com/Grub2&#34;&gt;can be found here&lt;/a&gt; )&lt;/p&gt;</description>
    </item>
    <item>
      <title>How many times is my function used within an executable?</title>
      <link>http://www.jukie.net/~bart/blog/how-many-times-is-my-function-used-within-an-executable/</link>
      <pubDate>Mon, 26 Apr 2010 16:26:44 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/how-many-times-is-my-function-used-within-an-executable/</guid>
      <description>&lt;p&gt;I am working on a large kernel module which had just come out of a large (and fruitful)&#xA;internal API refactoring exercise.  I now want to go through and cull the unused functions.&lt;/p&gt;&#xA;&lt;p&gt;It turns out, all that is needed is the &lt;code&gt;readelf&lt;/code&gt; utility (part of &lt;code&gt;binutils&lt;/code&gt; package).&lt;/p&gt;</description>
    </item>
    <item>
      <title>vmlinux on Ubuntu</title>
      <link>http://www.jukie.net/~bart/blog/vmlinux-on-ubuntu/</link>
      <pubDate>Mon, 12 Apr 2010 10:01:35 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/vmlinux-on-ubuntu/</guid>
      <description>&lt;p&gt;If you&amp;rsquo;re trying to do post-mortem analysis on a crashed river, or trying to find kernel-level&#xA;bottlenecks with oprofile, you need the decompressed kernel w/ debug symbols.  This comes in a&#xA;form of a &lt;code&gt;vmlinux&lt;/code&gt; file.  Some distributions ship debuginfo packages, namely RHEL.  On Ubuntu&#xA;this seems lacking.&lt;/p&gt;</description>
    </item>
    <item>
      <title>where your WIND coverage ends</title>
      <link>http://www.jukie.net/~bart/blog/where-your-wind-coverage-ends/</link>
      <pubDate>Sun, 28 Mar 2010 15:29:51 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/where-your-wind-coverage-ends/</guid>
      <description>&lt;p&gt;I got a SIM card from WIND on Friday, [the opening day]{nexus-on-wind-in-ottawa},&#xA;and put it into my Nexus One.  All of a sudden everyone I know wants me to drop&#xA;by their house to test the service there.  Guys, it&amp;rsquo;s only $15 for a month of testing&amp;hellip; &lt;code&gt;:D&lt;/code&gt;&lt;/p&gt;&#xA;&lt;p&gt;So far, in my neighbourhood (Central Park), and the surrounding area (drove down Merivale,&#xA;Baseline, Carling, and Kirkwood), I get 3-4 bars (out of 4).  I am well covered here, it seems.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Nexus One live in Ottawa on WIND Mobile</title>
      <link>http://www.jukie.net/~bart/blog/nexus-on-wind-in-ottawa/</link>
      <pubDate>Fri, 26 Mar 2010 11:33:54 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/nexus-on-wind-in-ottawa/</guid>
      <description>&lt;p&gt;I visited the &lt;a href=&#34;http://windmobile.ca&#34;&gt;WIND Mobile&lt;/a&gt; store at Westgate Mall this morning and &lt;a href=&#34;http://www.windmobile.ca/community/WIND-news/detail/happy-launch-day-ottawa/&#34;&gt;signed up for WIND service&lt;/a&gt;.&#xA;(I was the first geek there&amp;hellip; yeay!) I am using my Nexus One and getting 3..4 bars for voice (out of 4), and decent data throughput.&lt;/p&gt;</description>
    </item>
    <item>
      <title>the WIND excitement</title>
      <link>http://www.jukie.net/~bart/blog/wind-in-ottawa/</link>
      <pubDate>Thu, 11 Mar 2010 13:34:11 -0500</pubDate>
      <guid>http://www.jukie.net/~bart/blog/wind-in-ottawa/</guid>
      <description>&lt;p&gt;I heard that WIND stores were actually open in Ottawa, but they are not authorized to sell anything yet.&lt;/p&gt;&#xA;&lt;p&gt;One such store is 5 minutes from my house, at the Westgate mall, so I dropped by on my lunch break.&lt;/p&gt;</description>
    </item>
    <item>
      <title>sata hotswap pico-HOWTO</title>
      <link>http://www.jukie.net/~bart/blog/sata-hotswap-howto/</link>
      <pubDate>Tue, 02 Mar 2010 16:07:43 -0500</pubDate>
      <guid>http://www.jukie.net/~bart/blog/sata-hotswap-howto/</guid>
      <description>&lt;p&gt;I had been unpleasantly informed by mdadm that &lt;em&gt;sdc&lt;/em&gt; has been failing.  &lt;em&gt;Yey, another one&lt;/em&gt; &amp;ndash; I thought.&#xA;Not wanting to disrupt most of my day, I decided to try hot swapping the disk.&lt;/p&gt;</description>
    </item>
    <item>
      <title>serving http content out of a git repo</title>
      <link>http://www.jukie.net/~bart/blog/http-out-of-git/</link>
      <pubDate>Sat, 27 Feb 2010 09:34:35 -0500</pubDate>
      <guid>http://www.jukie.net/~bart/blog/http-out-of-git/</guid>
      <description>&lt;p&gt;While preparing for my [Git]{tag/git} Workshop for &lt;a href=&#34;http://flourishconf.com/&#34;&gt;Flourish Conf&lt;/a&gt;,&#xA;I thought about serving files over http directly out of a git repo.&lt;/p&gt;&#xA;&lt;p&gt;Here is a short shell script that I came up with: &lt;a href=&#34;http://git.jukie.net/snippets.git/tree/git-serv-sh/git-serv.cgi&#34;&gt;git-serv.cgi&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;It takes request URLs like &lt;code&gt;http://domain/examples/dir/file&lt;/code&gt; and looks up the&#xA;objects in a bare git repository in &lt;code&gt;/home/git/examples.git&lt;/code&gt;.  It looks only on&#xA;the &lt;em&gt;master&lt;/em&gt; branch, and nothing is ever checked out.  If it finds a &lt;em&gt;tree&lt;/em&gt;&#xA;object, it prints the file listing at that point in the tree.  If the object is&#xA;a &lt;em&gt;blog&lt;/em&gt;, it dumps the contents.  Otherwise some error is reported.&lt;/p&gt;</description>
    </item>
    <item>
      <title>pimped out zsh prompt</title>
      <link>http://www.jukie.net/~bart/blog/pimping-out-zsh-prompt/</link>
      <pubDate>Thu, 25 Feb 2010 10:40:49 -0500</pubDate>
      <guid>http://www.jukie.net/~bart/blog/pimping-out-zsh-prompt/</guid>
      <description>&lt;p&gt;Here is [yet another]{zsh-git-prompt} update to the series.  I&amp;rsquo;ve updated my git prompt again,&#xA;now using the &lt;em&gt;zsh 4.3.7&lt;/em&gt; built in &lt;code&gt;vcs_info&lt;/code&gt; module.  This time the motivation came&#xA;from &lt;a href=&#34;http://kriener.org/articles/2009/06/04/zsh-prompt-magic&#34;&gt;Zsh Prompt Magic&lt;/a&gt; article.&#xA;Here is what it looks like now:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;http://www.jukie.net/~bart/screenshots/zsh-git-prompt2.png&#34; alt=&#34;zsh git prompt&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Everything is now self contained in one file: &lt;a href=&#34;http://www.jukie.net/~bart/conf/zsh/rc/S60_prompt&#34;&gt;S60_prompt&lt;/a&gt;.  Grab it and source&#xA;it into your zsh config.&lt;/p&gt;&#xA;&lt;p&gt;The features are:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;name of current branch,&lt;/li&gt;&#xA;&lt;li&gt;git repo state (&lt;code&gt;rebase&lt;/code&gt;, &lt;code&gt;am&lt;/code&gt;, &lt;code&gt;bisect&lt;/code&gt;, &lt;code&gt;merge&lt;/code&gt;, etc),&lt;/li&gt;&#xA;&lt;li&gt;markers indicating staged/unstaged changes,&#xA;&lt;ul&gt;&#xA;&lt;li&gt;little &lt;code&gt;1&lt;/code&gt; after branch name indicates dirty working tree,&lt;/li&gt;&#xA;&lt;li&gt;little &lt;code&gt;2&lt;/code&gt; after branch name indicates staged changes,&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;highlight depth decended into the repository on the right,&lt;/li&gt;&#xA;&lt;li&gt;show failure of commands via prompt background change,&lt;/li&gt;&#xA;&lt;li&gt;show command/insert mode when using vi mode (&lt;code&gt;set -o vi&lt;/code&gt;).&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>live termcasting of your terminal over telnet</title>
      <link>http://www.jukie.net/~bart/blog/live-termcast/</link>
      <pubDate>Sun, 21 Feb 2010 18:41:26 -0500</pubDate>
      <guid>http://www.jukie.net/~bart/blog/live-termcast/</guid>
      <description>&lt;p&gt;I mentioned [earlier]{ubifs-on-sheeva} that I will be giving a talk&#xA;at &lt;a href=&#34;http://flourishconf.com/&#34;&gt;Flourish Conf&lt;/a&gt; next month.  While preparing for the talk&#xA;I decided to I wanted to share my terminal with the participants of the Workshop&#xA;via telnet.  The more popular alternative would be to use &lt;a href=&#34;http://en.wikipedia.org/wiki/GNU_Screen&#34;&gt;screen&lt;/a&gt;&#xA;built in sharing, or maybe &lt;a href=&#34;http://en.wikipedia.org/wiki/Vnc&#34;&gt;vnc&lt;/a&gt;, which would&#xA;require more memory and CPU overhead&amp;hellip;  and additional accounts using the former method.&#xA;I only have a &lt;a href=&#34;http://en.wikipedia.org/wiki/SheevaPlug&#34;&gt;SheevaPlug&lt;/a&gt; to work with, so&#xA;I am trying to be as conservative as possible.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Debian on UBIFS upgrade on SheevaPlug</title>
      <link>http://www.jukie.net/~bart/blog/ubifs-on-sheeva/</link>
      <pubDate>Mon, 15 Feb 2010 08:37:25 -0500</pubDate>
      <guid>http://www.jukie.net/~bart/blog/ubifs-on-sheeva/</guid>
      <description>&lt;p&gt;I picked up a &lt;a href=&#34;http://en.wikipedia.org/wiki/SheevaPlug&#34;&gt;SheevaPlug&lt;/a&gt; recently.  In a few weeks&#xA;I&amp;rsquo;ll try to use it as a &lt;em&gt;git server&lt;/em&gt; in a classroom setting at &lt;a href=&#34;http://flourishconf.com/&#34;&gt;Flourish Conf&lt;/a&gt;,&#xA;where I will be speaking about [Git]{tags/git}.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;../../img/marvell_sheevaplug_1-240x213.jpg&#34; alt=&#34;marvell_sheevaplug_1&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;This platform consists of a 1.2 GHz ARM processor (&lt;em&gt;Feroceon 88FR131 rev 1 (v5l)&lt;/em&gt;),&#xA;512M of SDRAM, 512M of NAND flash, 1Gbit ethernet, USB, SD card reader, and &amp;hellip; well, that&amp;rsquo;s it.&lt;/p&gt;</description>
    </item>
    <item>
      <title>nexus one</title>
      <link>http://www.jukie.net/~bart/blog/nexus-one/</link>
      <pubDate>Sun, 14 Feb 2010 20:55:32 -0500</pubDate>
      <guid>http://www.jukie.net/~bart/blog/nexus-one/</guid>
      <description>&lt;p&gt;Some people have asked me to review my experience with Nexus One as a user in Canada.&lt;/p&gt;&#xA;&lt;p&gt;Here be my first impressions.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;../../img/google-nexus-one-s.jpg&#34; alt=&#34;google-nexus-one-s&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>skype on Debian Linux (64bit)</title>
      <link>http://www.jukie.net/~bart/blog/skype-on-64bit-lenny/</link>
      <pubDate>Sat, 30 Jan 2010 15:05:27 -0500</pubDate>
      <guid>http://www.jukie.net/~bart/blog/skype-on-64bit-lenny/</guid>
      <description>&lt;p&gt;My aunt asked that I get my mom hooked up on skype for my mom&amp;rsquo;s B-day.  That involved getting a webcam and hooking it up on my parents&amp;rsquo; Ubuntu system.&#xA;Since I&amp;rsquo;ve never done anything with webcams, I didn&amp;rsquo;t know where to start.  This blog entry is about trying skype and the webcam going on my Debian&#xA;Sqeeze laptop.&lt;/p&gt;</description>
    </item>
    <item>
      <title>I am so peeved at Rogers</title>
      <link>http://www.jukie.net/~bart/blog/rogers-killed-my-dream/</link>
      <pubDate>Mon, 25 Jan 2010 19:10:21 -0500</pubDate>
      <guid>http://www.jukie.net/~bart/blog/rogers-killed-my-dream/</guid>
      <description>&lt;p&gt;&lt;b&gt;See the updates below if you want to keep your root.&lt;/b&gt;&lt;/p&gt;&#xA;&lt;p&gt;I just received the following text from Rogers, and as it claims my data&#xA;access has been disabled.  Since I am running &lt;a href=&#34;http://www.cyanogenmod.com/&#34;&gt;CyanogenMod&lt;/a&gt;&#xA;I never had the 911 issues that the stock Rogrers firmware experienced.&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;    Rogers/Fido Safety Message: URGENT Reminder 911 Calls HTC Dream&#xA;    software update: Mandatory software update is now available to help&#xA;    ensure 911 calls are completed from your phone. Please go immediately&#xA;    to rogers.com/dreamsoftwareupdate on your PC to download.&#xA;&#xA;    In order to help ensure 911 calls are completed internet access was&#xA;    temporarily disabled on your phone at 01/24/10 6:00AM EST. To&#xA;    reactivate internet service, please complete your software update&#xA;    immediately. Upon completion, internet access will be re enabled&#xA;    within 24 hours.&#xA;&#xA;    For users of Macintosh and Windows 7, please call 1-&#xA;    888-764-3771(1-888-ROGERS1) for update instructions.&#xA;&#xA;    We apologize for the inconvenience but we prioritize customer safety&#xA;    above all.&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;So I called rogers to get it straightened out and get my data access back.&#xA;However since everyone in the country that has a Dream or Magic got&#xA;their service cut&amp;hellip; you can imagine I wasn&amp;rsquo;t the first one to call and&#xA;complain.  When the automated system told me that I would have to wait for 30&#xA;minutes I hung up.  My time is a bit more important than that.&lt;/p&gt;&#xA;&lt;p&gt;Ben Selinger &lt;a href=&#34;http://forum.xda-developers.com/showpost.php?p=5437987&amp;amp;postcount=5&#34;&gt;wrote about his experiences&lt;/a&gt;&#xA;and it seems to me that Rogers doesn&amp;rsquo;t want people with phones they don&amp;rsquo;t control as customers.&lt;/p&gt;&#xA;&lt;p&gt;Well, this is one more strike for Rogers, and one more reason to leave.  Let&amp;rsquo;s&#xA;hope &lt;a href=&#34;http://www.windmobile.ca/&#34;&gt;WIND&lt;/a&gt; is all that it&amp;rsquo;s cracked up to be.&lt;/p&gt;</description>
    </item>
    <item>
      <title>running really nice</title>
      <link>http://www.jukie.net/~bart/blog/running-really-nice/</link>
      <pubDate>Sat, 05 Dec 2009 13:04:55 -0500</pubDate>
      <guid>http://www.jukie.net/~bart/blog/running-really-nice/</guid>
      <description>&lt;p&gt;Everyone that uses the shell eventually learns about &lt;code&gt;nice&lt;/code&gt; &amp;ndash; the tool that runs a process at a reduced priority.&#xA;Well, there is also &lt;code&gt;ionice&lt;/code&gt; that allows you to tweak processes from taking over all disk IO.&lt;/p&gt;&#xA;&lt;p&gt;I added a &lt;code&gt;vnice()&lt;/code&gt; function into my ZSH config so I can run or mark processes for lower priority for&#xA;both &lt;code&gt;nice&lt;/code&gt; and &lt;code&gt;ionice&lt;/code&gt; levels.&lt;/p&gt;</description>
    </item>
    <item>
      <title>notmuch for vim</title>
      <link>http://www.jukie.net/~bart/blog/notmuch.vim/</link>
      <pubDate>Fri, 20 Nov 2009 22:59:02 -0500</pubDate>
      <guid>http://www.jukie.net/~bart/blog/notmuch.vim/</guid>
      <description>&lt;p&gt;Quite some time ago now, I tried &lt;a href=&#34;http://sup.rubyforge.org/&#34;&gt;sup&lt;/a&gt; but&#xA;found it&amp;rsquo;s indexing latencies unacceptable for my workflow.  I also found the user&#xA;interface a bit foreign and hard to get into.&lt;/p&gt;&#xA;&lt;p&gt;More recently I&amp;rsquo;ve found &lt;a href=&#34;http://notmuchmail.org/&#34;&gt;notmuch&lt;/a&gt;, a project that started as&#xA;a C rewrite of the core bits of sup.  Basically, it&amp;rsquo;s a program that indexes and&#xA;searches through your existing mail.&lt;/p&gt;&#xA;&lt;p&gt;I had two issues with it.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;it had an emacs interface, and&lt;/li&gt;&#xA;&lt;li&gt;it uses maildir instead of mailbox.&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>squid and apt</title>
      <link>http://www.jukie.net/~bart/blog/squid-and-apt/</link>
      <pubDate>Fri, 13 Nov 2009 10:22:21 -0500</pubDate>
      <guid>http://www.jukie.net/~bart/blog/squid-and-apt/</guid>
      <description>&lt;p&gt;In the past few months &lt;code&gt;apt-get update&lt;/code&gt; started failing when using a &lt;em&gt;squid3&lt;/em&gt; web cache.&lt;/p&gt;&#xA;&lt;p&gt;It woudl give errors like these&amp;hellip;&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;404 Not Found [IP: 149.20.20.135 80]&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;The HTTP server sent an invalid reply header [IP: 130.89.149.227 80]&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;Failed to fetch .../Packages 404 Not Found [IP: 149.20.20.135 80]&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;Failed to fetch .../Sources 404 Not Found [IP: 149.20.20.135 80]&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;etc&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>using WIP branches to save every edit</title>
      <link>http://www.jukie.net/~bart/blog/save-everything-with-git-wip/</link>
      <pubDate>Wed, 04 Nov 2009 19:53:44 -0500</pubDate>
      <guid>http://www.jukie.net/~bart/blog/save-everything-with-git-wip/</guid>
      <description>&lt;p&gt;I am experimenting with a new workflow to help solve the problem of lost work&#xA;between commits.  As described [in my previous post]{20091104194146}, there&#xA;are already several ways to deal with keeping track of frequent edits.  The&#xA;only problem is that they all involve dedication and extra effort.&lt;/p&gt;</description>
    </item>
    <item>
      <title>using git workflows to avoid loosing intermediate changes</title>
      <link>http://www.jukie.net/~bart/blog/using-git-workflows-to-avoid-loosing-intermediate-changes/</link>
      <pubDate>Wed, 04 Nov 2009 19:41:46 -0500</pubDate>
      <guid>http://www.jukie.net/~bart/blog/using-git-workflows-to-avoid-loosing-intermediate-changes/</guid>
      <description>&lt;p&gt;A few days ago a buddy, &lt;a href=&#34;http://geemoo.ca/&#34;&gt;Jean&lt;/a&gt;, had stumbled into a problem caused by&#xA;infrequent committing to his git repository.  Committing after the feature is implemented&#xA;is common when working with tools like SVN&amp;hellip; but we have multiple workflows available&#xA;to us under git to manage frequent commits.&lt;/p&gt;</description>
    </item>
    <item>
      <title>reflections on ACM Reflections</title>
      <link>http://www.jukie.net/~bart/blog/acm-reflections-2009/</link>
      <pubDate>Mon, 19 Oct 2009 18:35:03 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/acm-reflections-2009/</guid>
      <description>&lt;p&gt;I returned from the &lt;a href=&#34;http://www.acm.uiuc.edu/conference/2009/index.html&#34;&gt;2009 annual ACM Reflections | Projections&lt;/a&gt; conference held at the &lt;a href=&#34;http://illinois.edu/&#34;&gt;University of Illinois at Urbana-Champaign&lt;/a&gt;.&#xA;I was asked to speak at the conference about Git.&lt;/p&gt;&#xA;&lt;p&gt;I really enjoyed attending the conference, and not just because I learned how to play &lt;a href=&#34;http://en.wikipedia.org/wiki/Beer_pong&#34;&gt;Beer Pong&lt;/a&gt; at the staff party.  The organizers&#xA;did a really good job of putting on a great event &amp;ndash; even if the line ups for food were a bit long, but it was free food for starving students, so what would you expect.&#xA;I got to meet awesome people like Bram Moolenaar, the author of Vim, Alexis Ohanian, of reddit fame, and Ryan North, the guy behind Dinosaur Comics.  I was also in awe&#xA;of the facilities the CS people have at UIUC.&lt;/p&gt;</description>
    </item>
    <item>
      <title>bacula rejected Hello command</title>
      <link>http://www.jukie.net/~bart/blog/bacula-rejected-hello-command/</link>
      <pubDate>Tue, 13 Oct 2009 17:42:48 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/bacula-rejected-hello-command/</guid>
      <description>&lt;p&gt;I added a new host to bacula today.  That resulted in:&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;    13-Oct 16:58 bacula-dir JobId 1026: Fatal error: File daemon at &amp;quot;oxygen:9102&amp;quot; rejected Hello command&#xA;    13-Oct 16:58 bacula-dir JobId 1026: Error: Bacula bacula-dir 2.4.4 (28Dec08): 13-Oct-2009 16:58:39&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;After looking around on the web and coming up with nothing, I noticed the version difference.&#xA;The new host happened to run version 3.x.y of bacula-fd, unlike my director that runs 2.4.y.&#xA;Apparently bacula doesn&amp;rsquo;t support the director being an older version than the client.&lt;/p&gt;</description>
    </item>
    <item>
      <title>pimping out git log</title>
      <link>http://www.jukie.net/~bart/blog/pimping-out-git-log/</link>
      <pubDate>Wed, 07 Oct 2009 23:50:46 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/pimping-out-git-log/</guid>
      <description>&lt;p&gt;I got playing with &lt;code&gt;git log&lt;/code&gt; and ended up creating this alias:&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;[alias]&#xA;    lg = log --graph --pretty=format:&#39;%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr)%Creset&#39; --abbrev-commit --date=relative&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;Which adds a &lt;code&gt;git lg&lt;/code&gt; command that is a prettier version of &lt;code&gt;git log --oneline&lt;/code&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>virtualization primer</title>
      <link>http://www.jukie.net/~bart/blog/virt-primer/</link>
      <pubDate>Fri, 02 Oct 2009 09:44:00 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/virt-primer/</guid>
      <description>&lt;p&gt;I participated in the &lt;a href=&#34;http://oclug.on.ca/meeting/48/&#34;&gt;virtualization panel&lt;/a&gt; at last night&amp;rsquo;s meeting of my local &lt;a href=&#34;http://oclug.on.ca/&#34;&gt;Linux Users Group&lt;/a&gt;.  Pictures&#xA;from last night are up on &lt;a href=&#34;http://tricolour.net/photos/2009/10/01/oclug.html&#34;&gt;Richard Guy Briggs&amp;rsquo;&lt;/a&gt; website.&lt;/p&gt;&#xA;&lt;p&gt;I&amp;rsquo;ve put up the slides for the &lt;a href=&#34;http://www.jukie.net/~bart/slides/virt-intro/&#34;&gt;virtualization primer&lt;/a&gt; talk, and also the &lt;a href=&#34;http://gitweb.jukie.net/virt-intro.git&#34;&gt;source document&lt;/a&gt;&#xA;(created in &lt;a href=&#34;http://www.inkscape.org/&#34;&gt;Inkscape&lt;/a&gt;) if you wish to &lt;a href=&#34;http://creativecommons.org/licenses/by-nc-sa/3.0/&#34;&gt;use the slides for something&lt;/a&gt;.&#xA;I use &lt;a href=&#34;http://github.com/bartman/negative&#34;&gt;negative&lt;/a&gt; to convert the &lt;code&gt;.svg&lt;/code&gt; image to &lt;code&gt;.png&lt;/code&gt; and &lt;code&gt;.pdf&lt;/code&gt; files.&lt;/p&gt;</description>
    </item>
    <item>
      <title>adding an external encrypted volume under Debian</title>
      <link>http://www.jukie.net/~bart/blog/encrypted-usb-disk/</link>
      <pubDate>Tue, 22 Sep 2009 11:07:56 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/encrypted-usb-disk/</guid>
      <description>&lt;p&gt;One of my old(er) USB-connected disks started to make a noise.  So, it&amp;rsquo;s time to replace it.&lt;/p&gt;&#xA;&lt;p&gt;Here are the steps I took to create an encrypted USB volume that I can attach to my laptop.&lt;/p&gt;</description>
    </item>
    <item>
      <title>the dreaded process of rooting Rogers Dream</title>
      <link>http://www.jukie.net/~bart/blog/rooting-rogers-dream/</link>
      <pubDate>Sat, 05 Sep 2009 11:25:29 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/rooting-rogers-dream/</guid>
      <description>&lt;p&gt;This is not as smooth as [rooting the G1]{rooting-g1}, and comes no where close as [my second attempt at rooting the G1]{simple-rooting-g1} (ie the easy way).&lt;/p&gt;&#xA;&lt;p&gt;&lt;b&gt;WARNING:&lt;/b&gt; I&amp;rsquo;ve said it before, but this time I want to stress it&amp;hellip;  &lt;font color=red&gt;this may brick your phone!&lt;/font&gt;  Until I figured things out and found the right pages I had a non-booting phone.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Cyanogen&#39;s recipe for Cupcake/Donut-like pastry</title>
      <link>http://www.jukie.net/~bart/blog/building-cyanogen-based-image/</link>
      <pubDate>Sun, 30 Aug 2009 17:45:51 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/building-cyanogen-based-image/</guid>
      <description>&lt;p&gt;I finally got my [Cupcake to build]{baking-cupcake}.  The next step is to try to build something far tastier&amp;hellip; naturally that&#xA;something has to be the Cyanogen Cupcake/Donut blend.&lt;/p&gt;&#xA;&lt;p&gt;Grab a coffee, sit back, and read on to find out how to build your own CyanogenMod Android ROM from Cyanogen&amp;rsquo;s Git repositories&amp;hellip;&lt;/p&gt;</description>
    </item>
    <item>
      <title>simpler android rooting</title>
      <link>http://www.jukie.net/~bart/blog/simple-rooting-g1/</link>
      <pubDate>Thu, 27 Aug 2009 10:02:32 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/simple-rooting-g1/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve previously written about [how to root an android phone]{rooting-g1}, and mentioned that &lt;a href=&#34;http://androidandme.com/2009/08/news/root-a-t-mobile-mytouch-3g-or-g1-in-6-minutes-and-flash-cyanogens-rom-with-donut-crumbs/&#34;&gt;there was a better way&lt;/a&gt;&#xA;which I had not tried yet.  Well, I did try it today.&lt;/p&gt;&#xA;&lt;p&gt;The procedure written by &lt;a href=&#34;http://zenthought.org/content/project/flashrec&#34;&gt;Zinx&lt;/a&gt; from &lt;a href=&#34;http://zenthought.org/&#34;&gt;ZenThought&lt;/a&gt; exploits a recently found bug in the Linux kernel (see &lt;a href=&#34;http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2009-2692&#34;&gt;CVE-2009-2692&lt;/a&gt;).&lt;/p&gt;</description>
    </item>
    <item>
      <title>androids don&#39;t like water</title>
      <link>http://www.jukie.net/~bart/blog/wet-android/</link>
      <pubDate>Fri, 21 Aug 2009 09:54:27 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/wet-android/</guid>
      <description>&lt;p&gt;We were hanging out by the pool on my daughter&amp;rsquo;s birthday.  I thought I would be an ever-so-funny-guy and&#xA;push my wife into the pool.  She thought she would be equally funny and pull me in with her.  So far so good,&#xA;all fun and games.&lt;/p&gt;&#xA;&lt;p&gt;As soon as I landed in the water, and remembered that I had my [G1]{tag/g1} in my pocket, I instantly felt 100% less funny.&lt;/p&gt;&#xA;&lt;p&gt;This story has a good ending, as I was able to get the phone back into perfectly working condition&amp;hellip;&lt;/p&gt;</description>
    </item>
    <item>
      <title>prettier function tracing</title>
      <link>http://www.jukie.net/~bart/blog/prettier-function-tracing/</link>
      <pubDate>Thu, 20 Aug 2009 21:53:58 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/prettier-function-tracing/</guid>
      <description>&lt;p&gt;This is a follow up to my [pretty function tracing]{pretty-function-tracing} article.  I base this work on the code presented there.&lt;/p&gt;&#xA;&lt;p&gt;Some one asked me how to get the gcc &lt;code&gt;-finstrument-functions&lt;/code&gt; feature working.  If you don&amp;rsquo;t know this&#xA;flag will modify the entry and exit to/from each function to make a call out to a special set of functions used&#xA;for tracing.&lt;/p&gt;&#xA;&lt;p&gt;While I&amp;rsquo;ve read about this feature, I never actually tried it.  So here is what I learned&amp;hellip;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Baking a cupcake</title>
      <link>http://www.jukie.net/~bart/blog/baking-cupcake/</link>
      <pubDate>Sun, 16 Aug 2009 15:18:54 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/baking-cupcake/</guid>
      <description>&lt;p&gt;Today I wanted to see if I could build a bootable image for my Tmobile G1.&lt;/p&gt;&#xA;&lt;p&gt;This post has been updated a few times.  I had a hard time building the &lt;code&gt;master&lt;/code&gt; branch.&#xA;The &lt;code&gt;cupcake&lt;/code&gt; branch built, but failed to run.  Next I tried &lt;code&gt;android-sdk-1.5_r3&lt;/code&gt;, this&#xA;seems to boot but the phone is not really functional.  Next attempt was to build &lt;code&gt;cupcake&lt;/code&gt;&#xA;and not change the kernel.  Duh!&lt;/p&gt;</description>
    </item>
    <item>
      <title>Hello Android!</title>
      <link>http://www.jukie.net/~bart/blog/android-hello-world/</link>
      <pubDate>Fri, 14 Aug 2009 13:15:59 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/android-hello-world/</guid>
      <description>&lt;p&gt;I now [have]{into-android} a [sim-unlocked]{sim-unlocking-g1} [rooted]{rooting-g1} T-mobile G1 phone running Android.  I&amp;rsquo;ve installed&#xA;the &lt;a href=&#34;http://forum.xda-developers.com/showthread.php?t=537204&#34;&gt;Cyanogen v3.6.8.1 firmware&lt;/a&gt; on it, and upgraded the recovery image&#xA;to &lt;a href=&#34;http://forum.xda-developers.com/showthread.php?p=3915123&#34;&gt;Cyanogen&amp;rsquo;s pimped out version&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;I am really impressed with the cell phone and MID aspects of the device.  But I bought it so I could do some hacking.&lt;/p&gt;&#xA;&lt;p&gt;All right&amp;hellip; so what else can I do with this thing?  It sounds logical that I now write a &lt;code&gt;Hello world&lt;/code&gt; application.&lt;/p&gt;</description>
    </item>
    <item>
      <title>sim unlocking a G1</title>
      <link>http://www.jukie.net/~bart/blog/sim-unlocking-g1/</link>
      <pubDate>Thu, 13 Aug 2009 10:00:25 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/sim-unlocking-g1/</guid>
      <description>&lt;p&gt;One of the phones I picked up on eBay was SIM-locked (see my [previous post]{into-android}) and I had to go through the&#xA;process of unlocking it so I could use it on my local cell network.&lt;/p&gt;&#xA;&lt;p&gt;&lt;b&gt;WARNING:&lt;/b&gt; It worked for me, but it may not for you.  &lt;font color=red&gt;This may very well brick your phone!&lt;/font&gt;  In some cases you will only&#xA;have 3 chances (in others 10) to unlock, failing to do so can damage your SIM card or the phone.&lt;/p&gt;&#xA;&lt;p&gt;Still here?  Let&amp;rsquo;s get started&amp;hellip;&lt;/p&gt;</description>
    </item>
    <item>
      <title>rooting the droid</title>
      <link>http://www.jukie.net/~bart/blog/rooting-g1/</link>
      <pubDate>Fri, 31 Jul 2009 18:55:22 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/rooting-g1/</guid>
      <description>&lt;p&gt;In my continued quest to learn more and start hacking on the Android phones,&#xA;I&amp;rsquo;ve recently rooted my Android based HTC Dream (aka Tmobile G1) phones.&lt;/p&gt;&#xA;&lt;p&gt;I&amp;rsquo;ll start by explain the terminology.  There are two ways in which the phones can be unlocked:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;so called &lt;em&gt;rooting&lt;/em&gt;, which I describe in this post, involves replacing the bootloader so that the phone can use&#xA;community generated firmware images, aka &lt;em&gt;ROM&lt;/em&gt;&amp;rsquo;s.&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;there is also &lt;em&gt;unjailing&lt;/em&gt; or &lt;em&gt;unlocking&lt;/em&gt; the phone so that it can be used with any SIM card on any GSM network;&#xA;and I&amp;rsquo;ll talk about that in due time.&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>getting into android</title>
      <link>http://www.jukie.net/~bart/blog/into-android/</link>
      <pubDate>Mon, 27 Jul 2009 21:03:07 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/into-android/</guid>
      <description>&lt;p&gt;I am a late comer to the Android craze.  I got to play with one recently at the &lt;a href=&#34;http://linuxsymposium.org&#34;&gt;Linux Symposium&lt;/a&gt;&#xA;in Montreal, and I decided I have to get one.  I ended up picking up a pair from ebay &amp;ndash; one to hack on, and one to carry&#xA;in my pocket.&lt;/p&gt;&#xA;&lt;p&gt;I&amp;rsquo;d like to work on the core platform and not so much the apps.&lt;/p&gt;&#xA;&lt;p&gt;Anyway, my storey is boring so far.&lt;/p&gt;&#xA;&lt;p&gt;Below are the interesting links I found so far while researching the platform.&lt;/p&gt;</description>
    </item>
    <item>
      <title>importing an old project into git</title>
      <link>http://www.jukie.net/~bart/blog/importing-an-old-project-into-git/</link>
      <pubDate>Tue, 14 Jul 2009 09:43:40 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/importing-an-old-project-into-git/</guid>
      <description>&lt;p&gt;I have recently been asked to revive an &lt;a href=&#34;http://www.jukie.net/~bart/elfpgp/&#34;&gt;old project&lt;/a&gt;.  Way back when&#xA;I used to use bk for tracking changes.  But today, I don&amp;rsquo;t even have a working bk tree.&lt;/p&gt;&#xA;&lt;p&gt;Moving the history to git is easiest done by taking the tarballs I&amp;rsquo;ve published and creating a commit per tarball.&lt;/p&gt;&#xA;&lt;p&gt;Below is a simple script that will do just that.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Why pick Git?</title>
      <link>http://www.jukie.net/~bart/blog/why-pick-git/</link>
      <pubDate>Thu, 02 Jul 2009 11:32:22 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/why-pick-git/</guid>
      <description>&lt;p&gt;Someone on the Git LinkedIn group asked &amp;ldquo;why pick Git?&amp;rdquo;.  I started writing a&#xA;response on LinkedIn but quickly realized I had more to say on the topic than I&amp;rsquo;d&#xA;care to leave behind closed doors of LinkedIn.&lt;/p&gt;&#xA;&lt;p&gt;If you already use Git, none of the stuff I talk about below will surprise you.&#xA;But if this sparks your interest see my &lt;a href=&#34;http://excess.org/article/2008/07/ogre-git-tutorial/&#34;&gt;Git talk&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>select loop for X events</title>
      <link>http://www.jukie.net/~bart/blog/select-loop-for-x-events/</link>
      <pubDate>Sun, 28 Jun 2009 13:12:55 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/select-loop-for-x-events/</guid>
      <description>&lt;p&gt;I am not a huge fan of threading when it can be avoided.  I always thought that it was OK for GUI programs to be threaded.&#xA;I just discovered that you can &lt;a href=&#34;http://www.linuxquestions.org/questions/programming-9/xnextevent-select-409355/#post2431345&#34;&gt;handle X events from a select loop&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;    dis = XOpenDisplay(DISPLAY);&#xA;    fd = ConnectionNumber(dis);&#xA;&#xA;    FD_SET(fd, &amp;amp;in_fds);&#xA;&#xA;    select(fd+1, &amp;amp;in_fds, NULL, NULL, NULL);&#xA;&#xA;    ...&#xA;&lt;/code&gt;&lt;/pre&gt;</description>
    </item>
    <item>
      <title>portable printf</title>
      <link>http://www.jukie.net/~bart/blog/portable-printf/</link>
      <pubDate>Thu, 25 Jun 2009 18:13:15 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/portable-printf/</guid>
      <description>&lt;p&gt;I was squashing some warnings in [uzbl]{tags/uzbl} code:&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;    printf(&amp;quot;set %s = %d\n&amp;quot;, (char *)k, (int)*c-&amp;gt;ptr);&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;Ignoring the fact that, at first glance, it&amp;rsquo;s weird to cast a pointer to int&#xA;(&lt;code&gt;ptr&lt;/code&gt; is defined as &lt;code&gt;void**&lt;/code&gt;), compiling this code on 64bit would warn you&#xA;that you were casting a pointer to an int.  That&amp;rsquo;s because a pointer is 64bit&#xA;and an int is 32bit.&lt;/p&gt;</description>
    </item>
    <item>
      <title>switching to uzbl</title>
      <link>http://www.jukie.net/~bart/blog/switching-to-uzbl/</link>
      <pubDate>Tue, 23 Jun 2009 22:58:00 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/switching-to-uzbl/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve been using &lt;a href=&#34;http://vimperator.org/trac/wiki/Vimperator&#34;&gt;vimperator&lt;/a&gt; for a long time now.  I love this firefox plugin, but firefox is pretty slow at times.&lt;/p&gt;&#xA;&lt;p&gt;Today I decided to more seriously look at &lt;a href=&#34;http://www.uzbl.org/&#34;&gt;uzbl&lt;/a&gt;.  I am surprised how much I like it.&lt;/p&gt;&#xA;&lt;p&gt;I&amp;rsquo;ve put up my &lt;a href=&#34;http://github.com/bartman/dot-uzbl/tree/master&#34;&gt;configuration&lt;/a&gt; on github and will try to blog about it again as I convert more of my usage to uzbl.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Linux Symposium</title>
      <link>http://www.jukie.net/~bart/blog/linux-symposium/</link>
      <pubDate>Mon, 22 Jun 2009 22:31:47 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/linux-symposium/</guid>
      <description>&lt;p&gt;I will be attending the &lt;a href=&#34;http://www.linuxsymposium.org/2009/&#34;&gt;Linux Symposium/2009&lt;/a&gt; in Montreal in under a month.&#xA;It&amp;rsquo;s been for for 11 years now, and I am looking forward to the break from work.&lt;/p&gt;&#xA;&lt;p&gt;I hear that the conference is not yet sold out&amp;hellip; so &lt;em&gt;you&lt;/em&gt; can still attend.&lt;/p&gt;</description>
    </item>
    <item>
      <title>bringing git-format-patch to bzr</title>
      <link>http://www.jukie.net/~bart/blog/bringing-git-format-patch-to-bzr/</link>
      <pubDate>Mon, 22 Jun 2009 21:40:23 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/bringing-git-format-patch-to-bzr/</guid>
      <description>&lt;p&gt;It should be of no surprise to readers of this blog that I am a fan of Git.  If you know me, you will&#xA;also know that I am no fan of Bzr.&lt;/p&gt;&#xA;&lt;p&gt;I was working on something today and wanted to export a patch&amp;hellip; you know, like &lt;code&gt;git format-patch&lt;/code&gt; does.&#xA;Well, bzr does not seem to have an equivalent.&lt;/p&gt;</description>
    </item>
    <item>
      <title>nfs local caching with fscache and cachefilesd on Lenny</title>
      <link>http://www.jukie.net/~bart/blog/nfs-local-caching-with-fscache-and-cachefilesd-on-lenny/</link>
      <pubDate>Fri, 12 Jun 2009 21:56:38 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/nfs-local-caching-with-fscache-and-cachefilesd-on-lenny/</guid>
      <description>&lt;p&gt;The idea is to put a &lt;a href=&#34;http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=tree;f=Documentation/filesystems/caching/fscache.txt;h=HEAD;hb=HEAD&#34;&gt;caching layer&lt;/a&gt;&#xA;between filesystems, that tend to be slow, and the user, who is impatient.  This is accomplished by the &lt;em&gt;fscache&lt;/em&gt; kernel module, and the &lt;em&gt;cachefilesd&lt;/em&gt; user space daemon.&#xA;The kernel module intercepts what would be disk/network access and redirects it to the daemon.  The daemon uses local media, which supposedly is faster, to cache recent data.&lt;/p&gt;&#xA;&lt;p&gt;The new Linux native implementation is very generic, and can be used to accelerate anything like floppies and CD-ROMs.  I am interested in this because I find NFS slow.&lt;/p&gt;&#xA;&lt;p&gt;Read more about it at &lt;a href=&#34;http://www.linux-mag.com/id/7378/&#34;&gt;Linux Magazine&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Scott Chacon smacks git around</title>
      <link>http://www.jukie.net/~bart/blog/scott-chacon-smacks-git-around/</link>
      <pubDate>Wed, 10 Jun 2009 20:20:41 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/scott-chacon-smacks-git-around/</guid>
      <description>&lt;p&gt;I came across &lt;a href=&#34;http://en.oreilly.com/rails2009/public/schedule/detail/7367&#34;&gt;a RailsConf talk&lt;/a&gt; given&#xA;by &lt;a href=&#34;http://jointheconversation.org/&#34;&gt;Scott Chacon&lt;/a&gt; last month.  As previously, his git work is really good.&#xA;His presentation style has also guided my &lt;a href=&#34;http://excess.org/article/2008/07/ogre-git-tutorial/&#34;&gt;Git the basics&lt;/a&gt;&#xA;talk which I gave about a year ago.&lt;/p&gt;&#xA;&lt;p&gt;Anyway, I want to summarize what I learned from Scott&amp;rsquo;s presentation&amp;hellip;&lt;/p&gt;</description>
    </item>
    <item>
      <title>how would you read a file into an array of lines</title>
      <link>http://www.jukie.net/~bart/blog/how-would-you-read-a-file-into-an-array-of-lines/</link>
      <pubDate>Wed, 10 Jun 2009 15:00:39 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/how-would-you-read-a-file-into-an-array-of-lines/</guid>
      <description>&lt;p&gt;I was working on a shell script that needed to look at some lines in a bunch of files and perform&#xA;some data mining.  I started it in bash, so I am writing it in bash even though &lt;a href=&#34;http://www.dmo.ca&#34;&gt;dave0&lt;/a&gt;&#xA;notes that I should have started in in perl.  Point taken&amp;hellip; I suffer for my mistake.&lt;/p&gt;&#xA;&lt;p&gt;After a quick google I learned that a nice way to do what the topic of this post describes can&#xA;be done using&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;    IFS=&#39;&#xA;    &#39;&#xA;    declare -a foo=( $(cat $file) )&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;Which is great! Right?&lt;/p&gt;</description>
    </item>
    <item>
      <title>libguestfs</title>
      <link>http://www.jukie.net/~bart/blog/libguestfs/</link>
      <pubDate>Tue, 09 Jun 2009 21:51:41 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/libguestfs/</guid>
      <description>&lt;p&gt;I came across a cool post on the &lt;a href=&#34;http://www.linux-kvm.com/content/libguestfs-management-guest-images&#34;&gt;kvm blog&lt;/a&gt; today&#xA;about &lt;a href=&#34;http://libguestfs.org/&#34;&gt;libguestfs&lt;/a&gt; and it&amp;rsquo;s &lt;a href=&#34;http://libguestfs.org/recipes.html&#34;&gt;various uses&lt;/a&gt; that I wanted to&#xA;share.  If you are using virtualization and have images sitting around, this is a great tool to create, inspect, and modify&#xA;them&amp;hellip; should you have the need.&lt;/p&gt;</description>
    </item>
    <item>
      <title>tiding up the PATH</title>
      <link>http://www.jukie.net/~bart/blog/tiding-up-the-path/</link>
      <pubDate>Tue, 09 Jun 2009 00:02:08 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/tiding-up-the-path/</guid>
      <description>&lt;p&gt;I have previously noticed that loading up the list of application available in &lt;code&gt;$PATH&lt;/code&gt; took a long&#xA;time in [wmii-lua]{tag/wmiirc-lua}.  I recently found out that it was related to me having multiple&#xA;duplicates in my [zsh]{tag/zsh} environment.&lt;/p&gt;&#xA;&lt;p&gt;To clean this up I &lt;a href=&#34;http://www.jukie.net/~bart/conf/zsh.d/S99_tidy&#34;&gt;added the following&lt;/a&gt; to my&#xA;zsh configuration:&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;    typeset -U path cdpath manpath fpath&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;This removes duplicates from the &lt;code&gt;PATH&lt;/code&gt;, &lt;code&gt;CDPATH&lt;/code&gt;, &lt;code&gt;MANPATH&lt;/code&gt;, and &lt;code&gt;FPATH&lt;/code&gt; environment variables.&lt;/p&gt;&#xA;&lt;p&gt;Well, technically it removes duplicates from the &lt;code&gt;path&lt;/code&gt;, &lt;code&gt;cdpath&lt;/code&gt;, &lt;code&gt;manpath&lt;/code&gt;, and &lt;code&gt;fpath&lt;/code&gt; arrays;&#xA;but these are treated special and updating them automatically generates their respective &lt;code&gt;:&lt;/code&gt;-delimited&#xA;environment variables.&lt;/p&gt;</description>
    </item>
    <item>
      <title>only showing relevant messages in mutt by default</title>
      <link>http://www.jukie.net/~bart/blog/only-showing-relevant-messages-in-mutt-by-default/</link>
      <pubDate>Mon, 08 Jun 2009 23:25:31 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/only-showing-relevant-messages-in-mutt-by-default/</guid>
      <description>&lt;p&gt;Following &lt;a href=&#34;http://blog.steve.org.uk/that_s_really_one_of_the_saddest_things_i_ve_ever_heard_.html&#34;&gt;Steve Kemp&amp;rsquo;s blog&lt;/a&gt;, I&amp;rsquo;ve&#xA;made a small but very cool improvement to my &lt;a href=&#34;http://www.jukie.net/~bart/conf/muttrc&#34;&gt;mutt setup&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Here are the new lines:&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;    macro index     .i      &amp;quot;l((~N|~O|~F)!~D)|(~d&amp;lt;1w!~Q)\n&amp;quot;&#xA;    macro index     .n      &amp;quot;l~N\n&amp;quot;&#xA;    macro index     .o      &amp;quot;l(~N|~O)\n&amp;quot;&#xA;    macro index     .a      &amp;quot;l~A\n&amp;quot;&#xA;    macro index     .t      &amp;quot;l~d&amp;lt;1d\n&amp;quot;&#xA;    macro index     .y      &amp;quot;l~d&amp;lt;2d ~d&amp;gt;1d\n&amp;quot;&#xA;&#xA;    folder-hook     .       push &#39;.i&#39;&#xA;&lt;/code&gt;&lt;/pre&gt;</description>
    </item>
    <item>
      <title>git-vim hacking</title>
      <link>http://www.jukie.net/~bart/blog/git-vim-hacking/</link>
      <pubDate>Mon, 08 Jun 2009 01:04:05 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/git-vim-hacking/</guid>
      <description>&lt;p&gt;I did some hacking on &lt;a href=&#34;http://github.com/bartman/git-vim/tree&#34;&gt;my fork&lt;/a&gt; on&#xA;&lt;a href=&#34;http://github.com/motemen/git-vim/tree&#34;&gt;git-vim&lt;/a&gt;.  I am impressed how well&#xA;&lt;a href=&#34;http://www.osnews.com/story/21556/Using_Git_with_Vim&#34;&gt;things work&lt;/a&gt;.&#xA;&lt;em&gt;motemen&lt;/em&gt;, the upstream author, did a really great job setting things up.&lt;/p&gt;&#xA;&lt;p&gt;I&amp;rsquo;ve been mostly tyoing with command handling and completion this evening.&#xA;I want to make that I could type &lt;code&gt;:git diff ma&amp;lt;tab&amp;gt;&lt;/code&gt; and have it do the&#xA;rigth thing&amp;hellip; it seems to work.&lt;/p&gt;&#xA;&lt;p&gt;Next, I need to integrate my &lt;a href=&#34;http://www.vim.org/scripts/script.php?script_id=1846&#34;&gt;other&lt;/a&gt;&#xA;&lt;a href=&#34;http://www.vim.org/scripts/script.php?script_id=2185&#34;&gt;git&lt;/a&gt; &lt;a href=&#34;http://www.jukie.net/~bart/conf/vim/plugin/&#34;&gt;hacks&lt;/a&gt;&#xA;and also &lt;a href=&#34;http://consttype.org/cgi/gitweb.cgi?p=githistorybrowser.git;a=summary&#34;&gt;others&lt;/a&gt; that seem interesting.&#xA;I should also see if I can get the upstream author to consider including any of it.&lt;/p&gt;</description>
    </item>
    <item>
      <title>mark-yank-urls: fix bug allowing shell to interpret the url</title>
      <link>http://www.jukie.net/~bart/blog/mark-yank-urls-fix-bug-allowing-shell-to-interpret-the-url/</link>
      <pubDate>Sat, 30 May 2009 22:38:01 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/mark-yank-urls-fix-bug-allowing-shell-to-interpret-the-url/</guid>
      <description>&lt;p&gt;I committed a fix for an annoying bug in the urxvt [mark-yank-urls]{urxvt-url-yank} script.&lt;/p&gt;&#xA;&lt;p&gt;This has been reported by several people.  I have &lt;em&gt;finally&lt;/em&gt;&#xA;&lt;a href=&#34;http://gitweb.jukie.net/urxvt.git?a=commitdiff;h=9b5dc7b01fd993b55098d29e85a7bd41b9a66d2a;hp=d445476b6c0eca2472564c447400f28081b8799b&#34;&gt;fixed it&lt;/a&gt;, but the credit should go to Hans Dieter Pearcey, Daniel Danner&#xA;and Olof Johansson for reporting it.&lt;/p&gt;</description>
    </item>
    <item>
      <title>wmiirc-lua v0.2.8 release</title>
      <link>http://www.jukie.net/~bart/blog/wmiirc-lua-v0.2.8/</link>
      <pubDate>Sat, 09 May 2009 21:26:48 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/wmiirc-lua-v0.2.8/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve packaged up the recent changes made to [wmiirc-lua]{tag/wmiirc-lua}&#xA;and released a new version.&lt;/p&gt;&#xA;&lt;p&gt;This release is mostly about bug fixes, and moving things around.  Particularly, I&amp;rsquo;ve&#xA;[moved the project to github]{wmiirc-lua-github}, and also the new configuration&#xA;files live in &lt;code&gt;~/.wmii-lua&lt;/code&gt; not &lt;code&gt;~/.wmii-3.5&lt;/code&gt; (which clearly didn&amp;rsquo;t make sense).&lt;/p&gt;&#xA;&lt;p&gt;There are many fixes to the packaging and startup scripts to make things more robust.  I&amp;rsquo;ve&#xA;also revisited and fixed building Debian packages (at least for Debian/Lenny).&lt;/p&gt;&#xA;&lt;p&gt;If you&amp;rsquo;ve used the [kitchen sink]{wmiirc-lua-kitchen-sink} repository you should note that&#xA;this repository is being deprecated in favour of storing the &lt;em&gt;wmii&lt;/em&gt; and &lt;em&gt;libixp&lt;/em&gt; repositories&#xA;as submodules of wmii-lua &amp;ndash; so no need for a container repo like the kitchen sink.&lt;/p&gt;</description>
    </item>
    <item>
      <title>wmiirc-lua moving to github</title>
      <link>http://www.jukie.net/~bart/blog/wmiirc-lua-github/</link>
      <pubDate>Sat, 09 May 2009 11:31:25 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/wmiirc-lua-github/</guid>
      <description>&lt;p&gt;I had as surge of new interest in wmii-lua in the last couple of months.  I thought it&#xA;would be good to officially state here that&#xA;I&amp;rsquo;ve &lt;a href=&#34;http://groups.google.ca/group/wmii-lua/browse_thread/thread/aaaf9b23a5aa7c85&#34;&gt;been moving&lt;/a&gt;&#xA;the wmii-lua git repositories to github.&lt;/p&gt;</description>
    </item>
    <item>
      <title>two terminals one PWD</title>
      <link>http://www.jukie.net/~bart/blog/xpwd&#43;xcd/</link>
      <pubDate>Mon, 04 May 2009 10:16:05 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/xpwd&#43;xcd/</guid>
      <description>&lt;p&gt;I often find myself needing multiple terminals (&lt;em&gt;urxvt&lt;/em&gt;) with shells (&lt;em&gt;zsh&lt;/em&gt;) in the same directory.  The step of entering that&#xA;directory is teadieous, especially if there are many terminals involved.  I have a few tricks that I use to&#xA;make this faster.&lt;/p&gt;</description>
    </item>
    <item>
      <title>splitting files out of a commit</title>
      <link>http://www.jukie.net/~bart/blog/splitting-files-out-of-a-commit/</link>
      <pubDate>Fri, 01 May 2009 17:26:45 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/splitting-files-out-of-a-commit/</guid>
      <description>&lt;p&gt;I previously wrote on [splitting patches with git]{20081112150409}.  This is very similar&#xA;but deals with removing a file from a commit.&lt;/p&gt;</description>
    </item>
    <item>
      <title>git workflow: git amend</title>
      <link>http://www.jukie.net/~bart/blog/git-amend/</link>
      <pubDate>Thu, 09 Apr 2009 15:59:05 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/git-amend/</guid>
      <description>&lt;p&gt;In my workflow I try to use the index (&lt;em&gt;staging area&lt;/em&gt;) and last commit efficiently.  Very often I will commit something partially working&#xA;with a &lt;em&gt;&amp;ldquo;work in progress&amp;rdquo;&lt;/em&gt; commit message to tell myself that I am not done.  As I work I will &lt;code&gt;git commit --amend&lt;/code&gt; to that commit.&lt;/p&gt;</description>
    </item>
    <item>
      <title>how old are these files in git?</title>
      <link>http://www.jukie.net/~bart/blog/git-file-blame/</link>
      <pubDate>Wed, 01 Apr 2009 11:20:30 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/git-file-blame/</guid>
      <description>&lt;p&gt;A freind asked me how he could check the age of a file in his git repository.  I came up with this:&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;    % git ls-files | xargs -n1 -i{} git log -1 --pretty=format:&amp;quot;%ci {}&amp;quot; -- {}&#xA;    2007-04-11 11:39:31 -0400 .gitignore&#xA;    2008-10-18 10:52:27 -0400 Xdefaults&#xA;    ...&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;It walks through all the files tracked by git and prints the time stamp of the last commit that&#xA;modified that file.&lt;/p&gt;&#xA;&lt;p&gt;Git rocks!&lt;/p&gt;</description>
    </item>
    <item>
      <title>sles 11 on kvm</title>
      <link>http://www.jukie.net/~bart/blog/sles11-on-kvm/</link>
      <pubDate>Mon, 30 Mar 2009 18:11:38 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/sles11-on-kvm/</guid>
      <description>&lt;p&gt;I need a SLES 11 system for porting some software for a client.  I got the DVD and tried to install in [kvm]{tag/kvm}.&lt;/p&gt;&#xA;&lt;p&gt;First, I was pleasantly surprised that, like [Debian]{tag/debian}, [SuSE]{tag/suse} now supports virtio&#xA;disks (&lt;code&gt;/dev/vda&lt;/code&gt;) right from the installer.  So far so good.&lt;/p&gt;&#xA;&lt;p&gt;However, both SLES 11 and OpenSuse 11 fail to install because grub crashes.  I tried booting the SuSE cd&#xA;into &amp;ldquo;rescue&amp;rdquo; mode and tries to install grub manually using the chroot trick.  Same thing, grub seg faults.&lt;/p&gt;</description>
    </item>
    <item>
      <title>android true type font</title>
      <link>http://www.jukie.net/~bart/blog/ttf-droid/</link>
      <pubDate>Mon, 23 Mar 2009 19:49:42 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/ttf-droid/</guid>
      <description>&lt;p&gt;Following a random tweet on &lt;a href=&#34;http://identi.ca/barttrojanowski&#34;&gt;identi.ca&lt;/a&gt; I upgraded&#xA;my proprotional fonts on Debian/Sqeeze&#xA;to &lt;a href=&#34;http://www.stefanoforenza.com/get-androids-fonts-on-ubuntu-how-to/&#34;&gt;ttf-droid&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;I expect that some day this font will be packaged by Debian, but for now I had to:&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;    wget &#39;http://launchpadlibrarian.net/21202254/ttf-droid_1.00%7Eb112%2Bdfsg-0ubuntu1_all.deb&#39;&#xA;    sudo dpkg -i ttf-droid_1.00\~b112+dfsg-0ubuntu1_all.deb&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;Because I am a big console junkie I don&amp;rsquo;t use proprtional fonts much, but they do look nice&#xA;on the web.&lt;/p&gt;</description>
    </item>
    <item>
      <title>popen with stdin, stdout, and stderr</title>
      <link>http://www.jukie.net/~bart/blog/popenrwe/</link>
      <pubDate>Sun, 22 Mar 2009 20:39:39 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/popenrwe/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve look around for an open source implementation of &lt;code&gt;popen()&lt;/code&gt; that can handle redirection of&#xA;&lt;em&gt;stdin&lt;/em&gt;, &lt;em&gt;stdout&lt;/em&gt;, and &lt;em&gt;stderr&lt;/em&gt; of the program executed.  I was unable to find one, so I wrote&#xA;my own.&lt;/p&gt;&#xA;&lt;p&gt;If you need to fork a helper process and maintain bidirectional communication wtih it, then you can&#xA;use my &lt;a href=&#34;http://www.jukie.net/~bart/snippets/popenRWE/popenRWE.c.html&#34;&gt;popenRWE()&lt;/a&gt; (source: &lt;a href=&#34;http://www.jukie.net/~bart/snippets/popenRWE/popenRWE.c&#34;&gt;popenRWE.c&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Here is an example of how it might be used:&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;    int pipe[3];&#xA;    int pid;&#xA;    const char *const args[] = {&#xA;            &amp;quot;cat&amp;quot;,&#xA;            &amp;quot;-n&amp;quot;,&#xA;            NULL&#xA;    };&#xA;&#xA;    pid = popenRWE(pipe, args[0], args);&#xA;&#xA;    // write to pipe[0] - input to cat&#xA;    // read from pipe[1] - output from cat&#xA;    // read from pipe[2] - errors from cat&#xA;&#xA;    pcloseRWE(pid, pipe);&#xA;&lt;/code&gt;&lt;/pre&gt;</description>
    </item>
    <item>
      <title>shrinking URLs</title>
      <link>http://www.jukie.net/~bart/blog/shorturl/</link>
      <pubDate>Fri, 20 Mar 2009 21:42:28 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/shorturl/</guid>
      <description>&lt;p&gt;I wrote a &lt;a href=&#34;http://www.jukie.net/~bart/scripts//shorturl/shorturl&#34;&gt;short script&lt;/a&gt; to shrink URLs:&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;    % shorturl http://www.jukie.net/~bart/shorturl&#xA;    http://2tu.us/ce8&#xA;&#xA;    % shorturl&#xA;    Type in some urls and I&#39;ll try to shrink them for you...&#xA;    http://www.jukie.net/~bart/shorturl&#xA;    http://2tu.us/ce8&#xA;    http://www.jukie.net/~bart/20090320214228&#xA;    http://2tu.us/ce9&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;I am doing this as part of my new &lt;a href=&#34;http://identi.ca/barttrojanowski&#34;&gt;identi.ca&lt;/a&gt; addiction&lt;code&gt;^W&lt;/code&gt;&#xA;usage and extending GregKH&amp;rsquo;s &lt;a href=&#34;http://github.com/bartman/bti/commits/master&#34;&gt;command line micro blogging tool&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;em&gt;UPDATE:&lt;/em&gt; also picked up by &lt;a href=&#34;http://identi.ca/notice/21908233&#34;&gt;@vando for use with mcabber&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>readlater</title>
      <link>http://www.jukie.net/~bart/blog/readlater/</link>
      <pubDate>Wed, 04 Mar 2009 00:47:44 -0500</pubDate>
      <guid>http://www.jukie.net/~bart/blog/readlater/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;http://www.instapaper.com/&#34;&gt;Instapaper&lt;/a&gt; is a quick way to stash things to read later.  Here is a script that lets you post from the command line: &lt;a href=&#34;http://www.jukie.net/~bart/scripts/instapaper/readlater&#34;&gt;readlater&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;    $ readlater http://www.jukie.net/&#xA;    This URL has been successfully added to this Instapaper account.&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;Don&amp;rsquo;t forget to fill in the &lt;code&gt;USER&lt;/code&gt; and &lt;code&gt;PASS&lt;/code&gt; fields in the script :)&lt;/p&gt;&#xA;&lt;p&gt;Next, I wanted to call on this from vimperator.  I wrote this &lt;a href=&#34;http://www.jukie.net/~bart/scripts/instapaper/readlater.js&#34;&gt;vimpeator plugin&lt;/a&gt; to do that.&lt;/p&gt;</description>
    </item>
    <item>
      <title>splitting patches with git</title>
      <link>http://www.jukie.net/~bart/blog/splitting-patches-with-git/</link>
      <pubDate>Wed, 12 Nov 2008 15:04:09 -0500</pubDate>
      <guid>http://www.jukie.net/~bart/blog/splitting-patches-with-git/</guid>
      <description>&lt;p&gt;Here is a really cool workflow using git&amp;hellip;&lt;/p&gt;&#xA;&lt;p&gt;Say you have several commits (you can think of them as patches for this exercise) in your current repository and want to split one into multiple parts.&#xA;There could be various reaons like upstream request, only want to release part of it, remove debug code, etc.&lt;/p&gt;&#xA;&lt;p&gt;Anyway, there is one commit in your &lt;strong&gt;unpublished&lt;/strong&gt; history that needs to be split.&lt;/p&gt;</description>
    </item>
    <item>
      <title>creating busybox symlinks</title>
      <link>http://www.jukie.net/~bart/blog/creating-busybox-symlinks/</link>
      <pubDate>Sat, 11 Oct 2008 08:16:38 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/creating-busybox-symlinks/</guid>
      <description>&lt;p&gt;Busybox should have a &lt;code&gt;--create-symlinks-in=/sbin&lt;/code&gt; feature, but for now&amp;hellip;&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;    ./busybox --help | grep &#39;Currently defined functions:&#39; -A30 | grep &#39;^\s.*,&#39; | tr , &#39;\n&#39; | xargs -n1 -i{} ln -s busybox {}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;&lt;em&gt;update on 2012/03/22&lt;/em&gt;:&#xA;Shawn Hicks points out that this works better (unverified by me):&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;    ./busybox --help | busybox grep &#39;Currently defined functions:&#39; -A30 | busybox grep -v &#39;Currently defined functions:&#39;|busybox tr , &#39;\n&#39;|busybox tr -d &#39;\n\t&#39;|busybox tr &#39; &#39; &#39;\n&#39;|busybox xargs -n 1 ln -s busybox&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;&lt;em&gt;update on 2012/10/07&lt;/em&gt;:&#xA;Nicholas Fearnley further updates the recipe to this:&lt;/p&gt;</description>
    </item>
    <item>
      <title>wmiirc-lua v0.2.5 release</title>
      <link>http://www.jukie.net/~bart/blog/wmiirc-lua-v0.2.5/</link>
      <pubDate>Thu, 02 Oct 2008 21:51:21 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/wmiirc-lua-v0.2.5/</guid>
      <description>&lt;p&gt;A kind [wmiirc-lua]{tag/wmiirc-lua} user, Sytse Wielinga (sytse on irc), had&#xA;debugged an old issue in luaixp code I had written for wmiirc-lua.&lt;/p&gt;&#xA;&lt;p&gt;While this bug directly addresses &lt;em&gt;raw mode&lt;/em&gt; (Mod4-space), I belive that this will fix&#xA;a bunch of weird issues so I released v0.2.5.  Since v0.2.4 there was also a small&#xA;bug in the battery plugin that was fixed.&lt;/p&gt;</description>
    </item>
    <item>
      <title>git-svn strangeness</title>
      <link>http://www.jukie.net/~bart/blog/git-svn-strangeness/</link>
      <pubDate>Tue, 16 Sep 2008 15:51:13 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/git-svn-strangeness/</guid>
      <description>&lt;p&gt;As awesome as &lt;code&gt;git-svn&lt;/code&gt; is, I had it fail today with this message:&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;    Last fetched revision of refs/remotes/branches/foo was r19307, but we are about to fetch: r19307!&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;To which I said: &amp;ldquo;WTF?&amp;rdquo;.  I still don&amp;rsquo;t know what it means, but I can share with you how I recovered it.&lt;/p&gt;&#xA;&lt;p&gt;It turns out that git-svn is quite capable of recovering from this.  You just have to remove its meta-data&#xA;for the offending branch, and resync with SVN.&lt;/p&gt;</description>
    </item>
    <item>
      <title>installing git man pages quickly</title>
      <link>http://www.jukie.net/~bart/blog/git-man-install/</link>
      <pubDate>Mon, 15 Sep 2008 11:29:59 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/git-man-install/</guid>
      <description>&lt;p&gt;I just upgraded git to get a fix &lt;a href=&#34;http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2008-3546&#34;&gt;for a diff buffer overflow&lt;/a&gt;.&#xA;I built the git binaries, but this box is too slow to rebuild the man pages.&lt;/p&gt;&#xA;&lt;p&gt;Fortunately those are already prebuilt in a separate branch.  One way to install them without rebuilding them locally is to:&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;    # in a clone of git://git.kernel.org/pub/scm/git/git.git&#xA;    &#xA;    git archive --format=tar origin/man | sudo tar -x -C /usr/share/man/ -vf -&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;&amp;hellip; with which I don&amp;rsquo;t have to rebuild man pages locally.  Git rocks!&lt;/p&gt;</description>
    </item>
    <item>
      <title>wmiirc-lua v0.2.4 release</title>
      <link>http://www.jukie.net/~bart/blog/wmiirc-lua-v0.2.4/</link>
      <pubDate>Sat, 13 Sep 2008 11:23:45 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/wmiirc-lua-v0.2.4/</guid>
      <description>&lt;p&gt;I packaged up the latest modules and bug fixes of [wmiirc-lua]{tag/wmiirc-lua} and&#xA;made a v0.2.4 release.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Kernel Walkthroughs - booting</title>
      <link>http://www.jukie.net/~bart/blog/kernel-walkthroughs---booting/</link>
      <pubDate>Mon, 25 Aug 2008 10:04:54 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/kernel-walkthroughs---booting/</guid>
      <description>&lt;p&gt;Ian just posted the &lt;a href=&#34;http://excess.org/article/2008/08/oclug-august-kernel-walkthrough-boot-process/&#34;&gt;screen casts&lt;/a&gt;&#xA;of the &lt;a href=&#34;http://oclug.on.ca/KernelWalk&#34;&gt;Linux Kernel Walkthroughs&lt;/a&gt; that I ran last week.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Linux Kernel Booting</title>
      <link>http://www.jukie.net/~bart/blog/linux-kernel-walkthroughs-2/</link>
      <pubDate>Wed, 13 Aug 2008 21:02:05 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/linux-kernel-walkthroughs-2/</guid>
      <description>&lt;p&gt;I will be running [another]{linux-kernel-walkthroughs} &lt;a href=&#34;http://oclug.on.ca/meeting/35/&#34;&gt;Linux Kernel Walkthrough&lt;/a&gt;&#xA;for &lt;a href=&#34;http://oclug.on.ca/&#34;&gt;OCLUG&lt;/a&gt; at &lt;a href=&#34;http://thecodefactory.ca/&#34;&gt;TheCodeFactory&lt;/a&gt; next week.  This time the topic is &amp;ldquo;booting&amp;rdquo;.&lt;/p&gt;&#xA;&lt;p&gt;I am frantically preparing slides using (slightly modified) Rusty&amp;rsquo;s &lt;a href=&#34;http://ozlabs.org/~rusty/index.cgi/2006&#34;&gt;svg to png&lt;/a&gt;&#xA;presentation scripts.  The svg&amp;rsquo;s are naturally created in Inkscape, and the png&amp;rsquo;s are useful because I can display them in&#xA;a regular image viewer like gqview.  I&amp;rsquo;ll write more on this later.&lt;/p&gt;</description>
    </item>
    <item>
      <title>printable OLS/2008 schedule</title>
      <link>http://www.jukie.net/~bart/blog/printable-ols-2008-schedule/</link>
      <pubDate>Sat, 19 Jul 2008 21:13:29 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/printable-ols-2008-schedule/</guid>
      <description>&lt;p&gt;I found the &lt;a href=&#34;http://www.linuxsymposium.org/2008/schedule.php&#34;&gt;official schedule&lt;/a&gt; really hard to print.&#xA;Here is a 1-page &lt;a href=&#34;http://www.jukie.net/~bart/tmp/schedule.pdf&#34;&gt;schedule.pdf&lt;/a&gt; and the original &lt;a href=&#34;http://www.jukie.net/~bart/tmp/schedule.ods&#34;&gt;OOo spreadsheet&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>wmiirc-lua updates</title>
      <link>http://www.jukie.net/~bart/blog/wmiirc-lua-updates/</link>
      <pubDate>Tue, 15 Jul 2008 21:44:47 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/wmiirc-lua-updates/</guid>
      <description>&lt;p&gt;I finally got around to [porting a few old features]{20070112131252} to [wmiirc-lua]{tag/wmiirc-lua}.&lt;/p&gt;&#xA;&lt;p&gt;There is now a &lt;a href=&#34;http://groups.google.ca/group/wmii-lua&#34;&gt;mailing list&lt;/a&gt; for wmiirc-lua.&#xA;Subscribe by emailing &lt;em&gt;&lt;a href=&#34;mailto:wmii-lua-subscribe@googlegroups.com&#34;&gt;wmii-lua-subscribe@googlegroups.com&lt;/a&gt;&lt;/em&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Git Screencast</title>
      <link>http://www.jukie.net/~bart/blog/ogre-git-screencast/</link>
      <pubDate>Sun, 13 Jul 2008 19:47:04 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/ogre-git-screencast/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;http://excess.org&#34;&gt;Ian Ward&lt;/a&gt; posted a &lt;a href=&#34;http://excess.org/article/2008/07/ogre-git-tutorial/&#34;&gt;screencast&lt;/a&gt; of my&#xA;&lt;a href=&#34;http://www.jukie.net/~bart/blog/ogre-git-intro&#34;&gt;Git intro talk&lt;/a&gt;.  Thanks &lt;a href=&#34;tricolour.net/&#34;&gt;Richard&lt;/a&gt; for doing&#xA;the audio, Ian for doing the screencast and post production, and &lt;a href=&#34;http://infonium.ca/&#34;&gt;Jay&lt;/a&gt; for hosting us.&lt;/p&gt;&#xA;&lt;p&gt;&lt;em&gt;Update:&lt;/em&gt; Richard took &lt;a href=&#34;http://tricolour.net/photos/2008/07/09/oclug.html&#34;&gt;some photos of the OGRE meeting&lt;/a&gt;.  Thanks.&lt;/p&gt;</description>
    </item>
    <item>
      <title>four steps to reproducible Debian installs</title>
      <link>http://www.jukie.net/~bart/blog/private-essential-debs/</link>
      <pubDate>Sun, 13 Jul 2008 14:34:29 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/private-essential-debs/</guid>
      <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,&#xA;which would pull in all the tools that we often use on Debian.  So here goes&amp;hellip;&lt;/p&gt;&#xA;&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;</description>
    </item>
    <item>
      <title>USB2.0 enclosure benchmark</title>
      <link>http://www.jukie.net/~bart/blog/usb2-enclosure-benchmark/</link>
      <pubDate>Sat, 05 Jul 2008 15:06:51 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/usb2-enclosure-benchmark/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve noticed my laptop disk filling up&amp;hellip;  particularly in &lt;code&gt;$HOME/work/*&lt;/code&gt;.  Lots&#xA;of little contracts, each involving at least the linux kernel tree of one&#xA;vintage of another, are to blame.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;http://www.jukie.net/~bart/pic/coolmax-sata-2.5-enclosure.jpg&#34; alt=&#34;CoolMax 2.5&amp;#34; Aluminim External Enclosure&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;To solve this, I decided to pickup an external drive.  I am using USB 2.0, because my laptop,&#xA;Thinkpad x41, has no eSATA or even firewire.  So I cannot compare the performance over another&#xA;connection, but I can have a look at which filesystem (xfs or ext3) will perform my workloads best.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Linux Kernel Walkthroughs posted</title>
      <link>http://www.jukie.net/~bart/blog/linux-kernel-walkthroughs-posted/</link>
      <pubDate>Thu, 03 Jul 2008 23:09:24 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/linux-kernel-walkthroughs-posted/</guid>
      <description>&lt;p&gt;Ian just posted the &lt;a href=&#34;http://excess.org/article/2008/07/oclug-june-kernel-walkthrough/&#34;&gt;screen casts&lt;/a&gt;&#xA;of the [Linux Kernel Walkthroughs]{linux-kernel-walkthroughs} that I ran last week.&lt;/p&gt;&#xA;&lt;p&gt;Here is the same video on &lt;a href=&#34;http://video.google.com/videoplay?docid=-8849863414000120231&amp;amp;hl=en&#34;&gt;google/video&lt;/a&gt;&amp;hellip;&#xA;it&amp;rsquo;s a lot lower rez :(&lt;/p&gt;</description>
    </item>
    <item>
      <title>Introducing the Ottawa Ruby folks to Git</title>
      <link>http://www.jukie.net/~bart/blog/ogre-git-intro/</link>
      <pubDate>Wed, 02 Jul 2008 11:36:02 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/ogre-git-intro/</guid>
      <description>&lt;p&gt;I am giving [another]{into-to-git-talk-2} git talk for &lt;a href=&#34;http://groups.google.ca/group/ogre-list/browse_thread/thread/19e76fec11053b92&#34;&gt;The Ottawa Group of Ruby Enthusiasts!&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;The talk is on July 9th at 7:00 PM, at &lt;a href=&#34;http://infonium.ca/&#34;&gt;Infonium&lt;/a&gt;.&#xA;I was told that they have room for 20 people.&lt;/p&gt;&#xA;&lt;p&gt;I will post my slides after the talk.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Authenticating Linux against OSX LDAP directory</title>
      <link>http://www.jukie.net/~bart/blog/osx-ldap-authentication/</link>
      <pubDate>Sat, 28 Jun 2008 16:07:32 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/osx-ldap-authentication/</guid>
      <description>&lt;p&gt;I was recently asked by a colleague, and now also a &lt;a href=&#34;http://infonium.ca/&#34;&gt;client&lt;/a&gt;, to look over the [LDAP]{tag/ldap} configuration on his Ubuntu boxen.  He was having&#xA;issues with the root account.  The problem turned out being that the Ubuntu box was trying to get the root authentication from LDAP.&#xA;It successfully found an LDAP account on the OSX LDAP server, but was unable to login since that account is disabled.  The solution&#xA;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&#xA;to document his &lt;a href=&#34;https://help.ubuntu.com/community/OSXLDAPClientAuthentication&#34;&gt;setup for others&lt;/a&gt; that are trying to accomplish a&#xA;similar task.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Canada Day Events 2008</title>
      <link>http://www.jukie.net/~bart/blog/canada-day-events-2008/</link>
      <pubDate>Fri, 27 Jun 2008 14:21:23 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/canada-day-events-2008/</guid>
      <description>&lt;p&gt;Here is a list of Canada Day events for 2008 celebrations in Ottawa.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Linux Kernel Walkthroughs</title>
      <link>http://www.jukie.net/~bart/blog/linux-kernel-walkthroughs/</link>
      <pubDate>Fri, 13 Jun 2008 16:25:41 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/linux-kernel-walkthroughs/</guid>
      <description>&lt;p&gt;I will be kicking off a new series of talks at &lt;a href=&#34;http://oclug.on.ca/&#34;&gt;OCLUG&lt;/a&gt; later this month.  The&#xA;idea is not mine, but a copy of a &lt;a href=&#34;http://www.youtube.com/results?search_query=%22Kernel&amp;#43;Walkthrough%22&amp;amp;search_type=&amp;amp;aq=f&#34;&gt;similar series&lt;/a&gt;&#xA;ran by &lt;a href=&#34;http://www.svlug.org/&#34;&gt;Silicon Valley Linux Users Group&lt;/a&gt;.  Kudos to them!&lt;/p&gt;&#xA;&lt;p&gt;Here is the info on the first &lt;a href=&#34;http://oclug.on.ca/meeting/32/&#34;&gt;Kernel Walkthrough: Source Tree Layout&lt;/a&gt;.&#xA;I will start off by covering the tree structure and talk a bit about the components, before handing&#xA;control of the talk over to the audience and let them drive the types of things they would like to&#xA;explore.&lt;/p&gt;</description>
    </item>
    <item>
      <title>is my usb device connected to a fast port?</title>
      <link>http://www.jukie.net/~bart/blog/slow-usb-key/</link>
      <pubDate>Sat, 10 May 2008 08:38:28 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/slow-usb-key/</guid>
      <description>&lt;p&gt;I started a transfer last night to copy a 700M file to my USB key.  It&amp;rsquo;s still going.  I figured that it might have been OHCI vs EHCI issue.&#xA;I had to remind myself how to check.&lt;/p&gt;</description>
    </item>
    <item>
      <title>show more git info on zsh prompt</title>
      <link>http://www.jukie.net/~bart/blog/zsh-git-prompt/</link>
      <pubDate>Fri, 09 May 2008 11:15:34 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/zsh-git-prompt/</guid>
      <description>&lt;p&gt;UPDATE: This post was [updated]{pimping-out-zsh-prompt} (yet again).&lt;/p&gt;&#xA;&lt;p&gt;This is my [third]{zsh-git-branch} [post]{zsh-git-branch2} on the topic.  I have &lt;em&gt;harshly&lt;/em&gt; assimulated&#xA;&lt;a href=&#34;http://blog.madism.org/index.php/2008/05/07/173-git-prompt&#34;&gt;MadCoder&amp;rsquo;s&lt;/a&gt;&#xA;&lt;a href=&#34;http://madism.org/~madcoder/dotfiles/zsh/60_prompt&#34;&gt;configuration&lt;/a&gt;.  Here is my new zsh prompt:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;http://www.jukie.net/~bart/screenshots/zsh-git-prompt.png&#34; alt=&#34;zsh git prompt&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;UPDATE:&lt;/strong&gt; I&amp;rsquo;ve [updated my prompt again]{pimping-out-zsh-prompt}.&lt;/p&gt;</description>
    </item>
    <item>
      <title>git-vim</title>
      <link>http://www.jukie.net/~bart/blog/git-vim/</link>
      <pubDate>Wed, 30 Apr 2008 10:42:02 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/git-vim/</guid>
      <description>&lt;p&gt;I have had an item on my todo list to improve my [vim/git]{tag/vimgit} integration for a while.  Today,&#xA;I found &lt;a href=&#34;http://github.com/motemen/git-vim/tree/master&#34;&gt;git-vim&lt;/a&gt; on github.  I was really&#xA;impressed.  So I forked it and hope to do some work on the project&amp;hellip;&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;    git://git.jukie.net/git-vim.git&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;First I will have to check if there is anything salvageable from &lt;a href=&#34;http://www.vim.org/account/profile.php?user_id=1186&#34;&gt;my current vim scripts&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>color your word</title>
      <link>http://www.jukie.net/~bart/blog/color-your-word/</link>
      <pubDate>Sat, 12 Apr 2008 10:03:37 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/color-your-word/</guid>
      <description>&lt;p&gt;I just discovered a [git]{tag/git} feature that has eluded me since v1.4.3, when it was&#xA;introduced.  It&amp;rsquo;s a way to colour differing words in &lt;code&gt;git diff&lt;/code&gt; output.  Maybe you don&amp;rsquo;t&#xA;know about it either&amp;hellip; allow me demonstrate:&lt;/p&gt;</description>
    </item>
    <item>
      <title>show current git branch on zsh prompt (2)</title>
      <link>http://www.jukie.net/~bart/blog/zsh-git-branch2/</link>
      <pubDate>Fri, 04 Apr 2008 10:56:20 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/zsh-git-branch2/</guid>
      <description>&lt;p&gt;&lt;strong&gt;NOTE:&lt;/strong&gt; This post has been [updated]{zsh-git-prompt} (again).&lt;/p&gt;&#xA;&lt;p&gt;I previously wrote about [showing the git branch name on the  zsh prompt]{zsh-git-branch}.  Caio Marcelo pointed out that&#xA;it didn&amp;rsquo;t work very well because the git branch was being queried before the command was executed, and it should&#xA;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;&#xA;&lt;p&gt;He was right, here is a repost.&lt;/p&gt;</description>
    </item>
    <item>
      <title>how to track multiple svn branches in git</title>
      <link>http://www.jukie.net/~bart/blog/svn-branches-in-git/</link>
      <pubDate>Mon, 03 Mar 2008 20:03:59 -0500</pubDate>
      <guid>http://www.jukie.net/~bart/blog/svn-branches-in-git/</guid>
      <description>&lt;p&gt;I must say that I am no fan of [SVN]{tag/svn}, but SVN and I get a long a lot better since I started&#xA;using &lt;a href=&#34;&#34;&gt;git-svn&lt;/a&gt;.  Long ago a good friend of mine, Dave O&amp;rsquo;Neill, taught me how to handle&#xA;&lt;a href=&#34;http://www.dmo.ca/blog/20070608113513&#34;&gt;multiple branches using git-svn&lt;/a&gt;.  I had used that&#xA;technique until Dave taught me how to do it better.&lt;/p&gt;&#xA;&lt;p&gt;Recently I saw this &lt;a href=&#34;http://blog.teksol.info/2008/2/29/how-to-handle-multiple-branches-from-subversion-using-git&#34;&gt;blog post&lt;/a&gt;&#xA;which referenced Dave&amp;rsquo;s article talking about the first method.  I guess Dave never got around to&#xA;updating his blog with the &lt;em&gt;better way&lt;/em&gt;.  So I am going to do that here:&lt;/p&gt;</description>
    </item>
    <item>
      <title>fixing X for GeodeLX</title>
      <link>http://www.jukie.net/~bart/blog/fixing-x-for-geode-lx/</link>
      <pubDate>Sat, 01 Mar 2008 13:42:20 -0500</pubDate>
      <guid>http://www.jukie.net/~bart/blog/fixing-x-for-geode-lx/</guid>
      <description>&lt;p&gt;Recently I have been doign a bit of contract work for &lt;a href=&#34;http://www.thesymbiont.com/&#34;&gt;Symbio Technologies&lt;/a&gt;.  They have had&#xA;me do various little projects part time.  Most recently I got a chance to work on &lt;a href=&#34;http://x.org&#34;&gt;X.org&lt;/a&gt; video drivers for&#xA;the &lt;a href=&#34;http://www.x.org/wiki/AMDGeodeDriver&#34;&gt;Geode family&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Here is the progress&amp;hellip;&lt;/p&gt;</description>
    </item>
    <item>
      <title>kvm nfs hang</title>
      <link>http://www.jukie.net/~bart/blog/kvm-nfs-hang/</link>
      <pubDate>Tue, 08 Jan 2008 00:25:40 -0500</pubDate>
      <guid>http://www.jukie.net/~bart/blog/kvm-nfs-hang/</guid>
      <description>&lt;p&gt;I ran into a strange NFS + KVM issue.  Every so often under heavy NFS load my KVM client&#xA;would hang retrying the nfs server.  On the console the client was showing:&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;    nfs: server host not responding, still trying&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;I found &lt;a href=&#34;https://sourceforge.net/tracker/?func=detail&amp;amp;atid=893831&amp;amp;aid=1771262&amp;amp;group_id=180599&#34;&gt;this bug post&lt;/a&gt;&#xA;which does not seem to have been resolved in 2.6.24.&lt;/p&gt;&#xA;&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>
    </item>
    <item>
      <title>screen -c relative path bug</title>
      <link>http://www.jukie.net/~bart/blog/screen-relative-path-bug/</link>
      <pubDate>Mon, 07 Jan 2008 16:08:36 -0500</pubDate>
      <guid>http://www.jukie.net/~bart/blog/screen-relative-path-bug/</guid>
      <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&#xA;so that the windows started inside would have a PWD I wanted them to.  As soon as I tried&#xA;to reconnect the screen session would die.&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;    screen -x&#xA;    Unable to open &amp;quot;screenrc&amp;quot;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;I was able to find the &lt;a href=&#34;http://savannah.gnu.org/bugs/?18890&#34;&gt;bug on savannah&lt;/a&gt; that described&#xA;the symptom quite well.&lt;/p&gt;&#xA;&lt;p&gt;I then wrote a &lt;a href=&#34;http://www.jukie.net/~bart/conf/zsh.d/S51_screen&#34;&gt;wrapper zsh function&lt;/a&gt; which fixes&#xA;the problem:&lt;/p&gt;</description>
    </item>
    <item>
      <title>WeeChat spell suggestions</title>
      <link>http://www.jukie.net/~bart/blog/weechat-spell-suggestions/</link>
      <pubDate>Sat, 05 Jan 2008 13:28:54 -0500</pubDate>
      <guid>http://www.jukie.net/~bart/blog/weechat-spell-suggestions/</guid>
      <description>&lt;p&gt;I recently decided to give &lt;a href=&#34;http://weechat.flashtux.org/index.php&#34;&gt;WeeChat&lt;/a&gt; a try.  I found that&#xA;it had a nice new feel and less complicated windowing structure then irssi &amp;ndash; at least more&#xA;intuitive to a vim user.&lt;/p&gt;&#xA;&lt;p&gt;Here is my weechat &lt;a href=&#34;http://www.jukie.net/~bart/conf/weechat/weechat.rc&#34;&gt;config&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;On debian you can install it with&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;    apt-get install weechat-curses weechat-scripts weechat-plugins&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;I really liked the spell-checking plugin which uses aspell to highlight misspelled words as&#xA;I type them.  One thing I missed was the ability to tab complete words from the&#xA;&lt;code&gt;/usr/share/words&lt;/code&gt; list.  So I wrote a &lt;a href=&#34;https://github.com/bartman/snippets/blob/master/weechat/smarttab.lua&#34;&gt;short lua script&lt;/a&gt; to do it&amp;hellip;&lt;/p&gt;</description>
    </item>
    <item>
      <title>show current git branch in zsh</title>
      <link>http://www.jukie.net/~bart/blog/zsh-git-branch/</link>
      <pubDate>Wed, 19 Dec 2007 22:13:58 -0500</pubDate>
      <guid>http://www.jukie.net/~bart/blog/zsh-git-branch/</guid>
      <description>&lt;p&gt;&lt;strong&gt;NOTE&lt;/strong&gt;: This post has been [updated]{zsh-git-branch2}.&lt;/p&gt;&#xA;&lt;p&gt;Earlier today I saw a blog post titled &amp;ldquo;&lt;a href=&#34;http://acts.as.streeteasy.com/archives/2007/12/19/git_in_your_prompt/&#34;&gt;Git in your prompt&lt;/a&gt;&amp;rdquo;&#xA;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&#xA;having &lt;code&gt;$HOME&lt;/code&gt; on NFS or having big git repos or maybe not enough ram.&lt;/p&gt;&#xA;&lt;p&gt;Anyway, after looking at some zsh docs &lt;a href=&#34;http://xanana.ucsc.edu/~wgscott/wordpress_new/wordpress/?p=12&#34;&gt;and blog posts&lt;/a&gt;, I had&#xA;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;</description>
    </item>
    <item>
      <title>wmiirc-lua kitchen sink repository</title>
      <link>http://www.jukie.net/~bart/blog/wmiirc-lua-kitchen-sink/</link>
      <pubDate>Mon, 17 Dec 2007 14:10:37 -0500</pubDate>
      <guid>http://www.jukie.net/~bart/blog/wmiirc-lua-kitchen-sink/</guid>
      <description>&lt;p&gt;[wmiirc-lua]{tag/wmiirc-lua} is a replacement for sh-based wmiirc that ships with&#xA;the &lt;a href=&#34;http://www.suckless.org/wiki/wmii&#34;&gt;wmii&lt;/a&gt; window manager.&lt;/p&gt;&#xA;&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&#xA;the fact that libixp (and wmii use of the library) changes often but do not have any way to detect subtle changes&#xA;in the API from the sources.&lt;/p&gt;&#xA;&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&#xA;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;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;libixp &lt;em&gt;imported from mercurial&lt;/em&gt;&lt;/li&gt;&#xA;&lt;li&gt;wmii &lt;em&gt;imported from mercurial&lt;/em&gt;&lt;/li&gt;&#xA;&lt;li&gt;wmiirc-lua&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;This of course uses magic [git]{tag/git} powers; or more specifically git submodules.  To follow along you will need&#xA;git 1.5.3 or newer.&lt;/p&gt;</description>
    </item>
    <item>
      <title>protecting sshd from OOM killer</title>
      <link>http://www.jukie.net/~bart/blog/deoom-sshd/</link>
      <pubDate>Wed, 12 Dec 2007 10:03:16 -0500</pubDate>
      <guid>http://www.jukie.net/~bart/blog/deoom-sshd/</guid>
      <description>&lt;p&gt;When Linux runs low on memory it tries to kill off applications that may be responsible for&#xA;the high memory usage.  It sometimes gets is all wrong, so the kernel has a way to tell it&#xA;which processes are to be treated differently by the OOM killer.&lt;/p&gt;&#xA;&lt;p&gt;I am using ssh to run some stress tests.  Occasionally they cause memory to run out, and when I&#xA;am not paying attention sshd is killed off&amp;hellip; which means I cannot turn off the tests.&lt;/p&gt;</description>
    </item>
    <item>
      <title>wmiirc-lua v0.2.1 remembers a bit more</title>
      <link>http://www.jukie.net/~bart/blog/wmiirc-lua-v0.2.1/</link>
      <pubDate>Tue, 04 Dec 2007 23:42:32 -0500</pubDate>
      <guid>http://www.jukie.net/~bart/blog/wmiirc-lua-v0.2.1/</guid>
      <description>&lt;p&gt;[wmiirc-lua]{tags/wmiirc-lua} is a replacement for sh-based wmiirc that ships with&#xA;the &lt;a href=&#34;http://www.suckless.org/wiki/wmii&#34;&gt;wmii&lt;/a&gt; window manager.&lt;/p&gt;&#xA;&lt;p&gt;In version 0.2.1 wmii will remember the last few programs that have been ran and the last few actions&#xA;taken.  It will put those entries at the beginning of the completion list.  Frequent items can thus be selected&#xA;with arrow keys and pushing &lt;em&gt;enter&lt;/em&gt;.&lt;/p&gt;&#xA;&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&#xA;that letter, but rather the &lt;em&gt;most recently used&lt;/em&gt; view that starts with the letter.&lt;/p&gt;&#xA;&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&#xA;before looking in system directories.  That will solve the problem of someone using &lt;code&gt;make install-user&lt;/code&gt; while having&#xA;an older &lt;em&gt;.deb&lt;/em&gt; installed.&lt;/p&gt;</description>
    </item>
    <item>
      <title>wmiirc-lua v0.2 has suspend and raw modes</title>
      <link>http://www.jukie.net/~bart/blog/wmiirc-in-lua-v0.2/</link>
      <pubDate>Sat, 13 Oct 2007 20:53:36 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/wmiirc-in-lua-v0.2/</guid>
      <description>&lt;p&gt;[wmiirc-lua]{tags/wmiirc-lua} is a replacement for sh-based wmiirc that ships with&#xA;the &lt;a href=&#34;http://www.suckless.org/wiki/wmii&#34;&gt;wmii&lt;/a&gt; window manager.&lt;/p&gt;&#xA;&lt;p&gt;The big improvement in version 0.2 is the client tracking support; this enables&#xA;&lt;em&gt;raw&lt;/em&gt; and &lt;em&gt;suspend&lt;/em&gt; &lt;a href=&#34;http://repo.or.cz/w/wmiirc-lua.git?a=blob;f=doc/client-modes;h=767ad744ef04bf5197348c45488038546764c07a;hb=4487bd2747261ff06cf0c65ceccff8e66fb411ee&#34;&gt;modes&lt;/a&gt;&amp;hellip;&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;in &lt;em&gt;raw&lt;/em&gt; mode the wmii &lt;a href=&#34;http://repo.or.cz/w/wmiirc-lua.git?a=blob;f=doc/key-bindings;h=e8ca905130d0f4e283e0ab9eb968173f0fae0b6d;hb=4487bd2747261ff06cf0c65ceccff8e66fb411ee&#34;&gt;key-bindings&lt;/a&gt;&#xA;are ignored and all input is passed to the application.&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&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.&#xA;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;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;There were also several bug fixes in this release.  You will still need to build libixp and wmii from hg [as detained here]{wmiirc-in-lua-v0.1.1}.&lt;/p&gt;</description>
    </item>
    <item>
      <title>wmiirc-lua debianization</title>
      <link>http://www.jukie.net/~bart/blog/wmiirc-lua-debianization/</link>
      <pubDate>Sat, 29 Sep 2007 11:23:45 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/wmiirc-lua-debianization/</guid>
      <description>&lt;p&gt;I just fixed the install scripts for &lt;a href=&#34;http://repo.or.cz/w/wmiirc-lua.git&#34;&gt;wmiirc-lua&lt;/a&gt;.  It is now possible&#xA;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&#xA;the display managers (kdm, gdm, etc).&lt;/p&gt;&#xA;&lt;p&gt;The new and improved way to install wmiirc-lua is to [get libixp and wmii from hg]{wmiirc-in-lua-v0.1.1} and then&amp;hellip;&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;    sudo apt-get install lua5.1 liblua5.1-0-dev liblua5.1-posix0 git-core&#xA;    &#xA;    git clone git://repo.or.cz/wmiirc-lua.git/&#xA;    &#xA;    cd wmiirc-lua&#xA;    git checkout debian&#xA;    make deb&#xA;    &#xA;    sudo debi&#xA;    &#xA;    install-wmiirc-lua&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;&amp;hellip; restart X, and select &lt;em&gt;Wmii-lua&lt;/em&gt; as your login session.&lt;/p&gt;</description>
    </item>
    <item>
      <title>zsh tip of the day - global aliases</title>
      <link>http://www.jukie.net/~bart/blog/zsh-global-alilases/</link>
      <pubDate>Mon, 24 Sep 2007 10:41:40 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/zsh-global-alilases/</guid>
      <description>&lt;p&gt;Most shells have aliases.  Last week I started using a new (to me) feature in zsh aliases.  Zsh&#xA;lets you create arbitrary substitutions for the command line, not just the executable.&lt;/p&gt;&#xA;&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;&#xA;&lt;pre&gt;&lt;code&gt;    alias ll=&#39;ls -l&#39;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&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&#xA;shell.  You can alias it like so:&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;    alias -g TT10=&#39;| tail -n10&amp;quot;&#xA;    history TT10&#xA;    (10 lines follow)&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&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;&#xA;&lt;pre&gt;&lt;code&gt;    alias -g TT=&#39;| tail -n&#39;&#xA;    history TT 10&#xA;    (10 lines follow)&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;Of course you need to pick alias names that will not conflict with normal usage.&lt;/p&gt;</description>
    </item>
    <item>
      <title>wmiirc-lua v0.1.1</title>
      <link>http://www.jukie.net/~bart/blog/wmiirc-in-lua-v0.1.1/</link>
      <pubDate>Sat, 15 Sep 2007 09:42:13 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/wmiirc-in-lua-v0.1.1/</guid>
      <description>&lt;p&gt;Last night, just before midnight, I released v0.1 of &lt;a href=&#34;http://repo.or.cz/w/wmiirc-lua.git&#34;&gt;wmiirc-lua&lt;/a&gt;.  And then a few&#xA;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;&#xA;&lt;p&gt;So what do you get in v0.1.1?&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;a very fast and lean implementation of an event loop for &lt;a href=&#34;http://www.suckless.org/wiki/wmii&#34;&gt;wmii-3.5&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;all keyboard shortcuts from the (shell) wmiirc that ships with wmii-3.5&lt;/li&gt;&#xA;&lt;li&gt;some ideas taken from &lt;a href=&#34;http://eigenclass.org/hiki.rb?wmii&amp;#43;ruby&#34;&gt;wmii+ruby&lt;/a&gt; like more advanced keyboard shortcuts and plugins&lt;/li&gt;&#xA;&lt;li&gt;a clock plugin, a load plugin&lt;/li&gt;&#xA;&lt;li&gt;and most importantly a huge community of 3 users!&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Why would you want to use wmiirc-lua over the default, or even over the fabulous wmii+ruby?&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;unlike wmii+ruby, wmiirc-lua can run with wmii-3.5&#xA;&lt;ul&gt;&#xA;&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;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;wmiirc-lua is faster then the shell version because it doesn&amp;rsquo;t have to exec things on event processing&#xA;&lt;ul&gt;&#xA;&lt;li&gt;we communicate with wmii over an IXP socket directly&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;wmiirc-lua will not eat your laptop&amp;rsquo;s battery life like ruby threading can&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;http://www.linuxpowertop.org/&#34;&gt;powertop&lt;/a&gt; used to show ruby as the #1 source of CPU wakeups&lt;/li&gt;&#xA;&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;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>comparing two directories</title>
      <link>http://www.jukie.net/~bart/blog/comparing-two-directories/</link>
      <pubDate>Thu, 13 Sep 2007 13:08:38 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/comparing-two-directories/</guid>
      <description>&lt;p&gt;In one of the project I am working on we have the build environment tarred up and stored&#xA;in tgz files and committed in SVN.  To avoid updating the same 300M tarball we decided to&#xA;added incremental tarballs each time that we add new software to the build environment.&#xA;But that&amp;rsquo;s not the important bit&amp;hellip;&lt;/p&gt;&#xA;&lt;p&gt;I wanted to figure out what software was installed since the last tarballs were extracted.  To&#xA;do this I need to compare two directories and create a new tarball with all the new files.  How&#xA;do you diff two directories pro grammatically?&lt;/p&gt;</description>
    </item>
    <item>
      <title>git-rebase --interactive</title>
      <link>http://www.jukie.net/~bart/blog/git-rebase-interactive/</link>
      <pubDate>Sun, 09 Sep 2007 20:41:25 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/git-rebase-interactive/</guid>
      <description>&lt;p&gt;MadCoder wrote today about &lt;a href=&#34;http://blog.madism.org/index.php/2007/09/09/138-git-awsome-ness-git-rebase-interactive-?cos=1&#34;&gt;git-rebase &amp;ndash;interactive&lt;/a&gt;&#xA;which is a new feature in git that allows you to easily reorder, or fix patches already applied to the&#xA;current branch by editing a file&amp;hellip; very neat.&lt;/p&gt;</description>
    </item>
    <item>
      <title>zsh tab completion awesomeness</title>
      <link>http://www.jukie.net/~bart/blog/zsh-tab-completion/</link>
      <pubDate>Sat, 08 Sep 2007 11:59:05 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/zsh-tab-completion/</guid>
      <description>&lt;p&gt;I have been using [zsh]{tag/zsh} for a few months.  I love it.  The best part of zsh is the tab completion.&lt;/p&gt;&#xA;&lt;p&gt;Here are a few examples (note that you don&amp;rsquo;t actually type in the &lt;code&gt;&amp;lt;tab&amp;gt;&lt;/code&gt;):&lt;/p&gt;</description>
    </item>
    <item>
      <title>wmiirc in lua</title>
      <link>http://www.jukie.net/~bart/blog/wmiirc-in-lua/</link>
      <pubDate>Sun, 02 Sep 2007 00:07:36 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/wmiirc-in-lua/</guid>
      <description>&lt;p&gt;I have been running &lt;a href=&#34;http://www.suckless.org/wiki/wmii&#34;&gt;wmii&lt;/a&gt; window manager for almost a&#xA;year, and &lt;a href=&#34;http://www.jukie.net/~bart/blog/wmii-with-ruby&#34;&gt;since the beginning&lt;/a&gt; I have been&#xA;using the &lt;a href=&#34;http://eigenclass.org/hiki.rb?wmii&amp;#43;ruby&#34;&gt;ruby wmiirc&lt;/a&gt; script.&lt;/p&gt;&#xA;&lt;p&gt;In wmii all events are handled by the &lt;em&gt;wmiirc&lt;/em&gt; script, while wmii handles the display&#xA;of windows.  The &lt;em&gt;wmiirc&lt;/em&gt; should thus do nothing until a user event (or a program&#xA;event) occurs.  Well, it turns out that updating the clock and status widgets requires&#xA;that a thread be ran to write the new text to the screen.&lt;/p&gt;&#xA;&lt;p&gt;So far, that&amp;rsquo;s not so bad.  We could schedule updates to occur infrequently.  The bad part&#xA;comes from the ruby implementation of threads.  Threads in ruby 1.x seem to require that&#xA;the interpreter do a busy wait at an interval of 10ms&amp;hellip; this does not make me very happy&#xA;as it chews up a ton of battery life according to &lt;a href=&#34;http://www.linuxpowertop.org/&#34;&gt;powertop&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;I wanted to rewrite a &lt;em&gt;wmiirc&lt;/em&gt; in something else.  That something&#xA;else, I decided, would be [lua]{tag/lua}.  I chose lua because of the small footprint,&#xA;use of coroutines and iterators to avoid threading, and the fact that I can plug things&#xA;in using C.&lt;/p&gt;</description>
    </item>
    <item>
      <title>debugging with -dbg libraries</title>
      <link>http://www.jukie.net/~bart/blog/debugging-wtih-dbg-deb/</link>
      <pubDate>Fri, 31 Aug 2007 15:03:06 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/debugging-wtih-dbg-deb/</guid>
      <description>&lt;p&gt;I am having a problem getting openssl to verify a signature that I generated from a smartcard.  I decided to step through the&#xA;openssl code to see what it&amp;rsquo;s actually doing when I call &lt;code&gt;RSA_verify()&lt;/code&gt;&amp;hellip; but I didn&amp;rsquo;t feel like rebuilding openssl.&lt;/p&gt;</description>
    </item>
    <item>
      <title>svn status like output in git</title>
      <link>http://www.jukie.net/~bart/blog/parsing-git-status/</link>
      <pubDate>Fri, 31 Aug 2007 14:26:46 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/parsing-git-status/</guid>
      <description>&lt;p&gt;Today &lt;a href=&#34;http://www.dmo.ca/blog&#34;&gt;Dave&lt;/a&gt; asked me how to get a script-friendly list of untracked files,&#xA;and modified files&amp;hellip; like &lt;code&gt;svn status&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;First I suggested that he look at &lt;code&gt;--diff-filter&lt;/code&gt; and &lt;code&gt;--name-status&lt;/code&gt; options for &lt;code&gt;git-diff&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;    git diff --name-status --diff-filter=M&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;While &lt;code&gt;git-diff&lt;/code&gt; can actually report a lot of cool stuff (see the &lt;code&gt;git-diff-files&lt;/code&gt; man page for&#xA;more details), it did not solve all the problems.  The above worked for getting the list of&#xA;modified files, but not for untracked files.  We scratched our heads and were unable to get anywhere.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Git Cheat Sheet</title>
      <link>http://www.jukie.net/~bart/blog/git-cheat-sheet/</link>
      <pubDate>Wed, 29 Aug 2007 14:18:47 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/git-cheat-sheet/</guid>
      <description>&lt;p&gt;Zack Rusin &amp;ldquo;&lt;a href=&#34;http://article.gmane.org/gmane.comp.version-control.git/56904&#34;&gt;took a break from being insanely handsome&lt;/a&gt;&amp;rdquo;&#xA;and created a stunning &lt;a href=&#34;http://ktown.kde.org/~zrusin/git/&#34;&gt;Git Cheat Sheet&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;There are three formats:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;http://ktown.kde.org/~zrusin/git/git-cheat-sheet-medium.png&#34;&gt;medium sized png&lt;/a&gt;,&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;http://ktown.kde.org/~zrusin/git/git-cheat-sheet-large.png&#34;&gt;large sized png&lt;/a&gt;, and&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;http://ktown.kde.org/~zrusin/git/git-cheat-sheet.svg&#34;&gt;original svg&lt;/a&gt;.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;&lt;em&gt;(these are distributed under the &lt;a href=&#34;http://ktown.kde.org/~zrusin/git/license.html&#34;&gt;Creative Commons License&lt;/a&gt;)&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;Now I have to figure out how I can print it in colour.&lt;/p&gt;</description>
    </item>
    <item>
      <title>switching to abiword</title>
      <link>http://www.jukie.net/~bart/blog/abiword-and-vi/</link>
      <pubDate>Tue, 21 Aug 2007 14:20:38 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/abiword-and-vi/</guid>
      <description>&lt;p&gt;Someone on the &lt;a href=&#34;http://oclug.on.ca&#34;&gt;#oclug&lt;/a&gt; channel said today:&lt;/p&gt;&#xA;&lt;p&gt;&lt;em&gt;Mind you, and vim-keybindings add-on for OOo would be nice.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;So I did the natural thing I googled for it.  I am already using vi-bindings&#xA;in firefox (vimperator) and in zsh.&lt;/p&gt;&#xA;&lt;p&gt;I came accords a link on &lt;a href=&#34;http://linuxmafia.com/faq/Apps/abiword-vi-mode.html&#34;&gt;using vi shortcuts in abiword&lt;/a&gt;, which&#xA;was instantly interesting to me.  I tried the procedure and it didn&amp;rsquo;t work.  However,&#xA;making the following change did work&amp;hellip;&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;    --- .AbiSuite/AbiWord.Profile-original&#x9;2007-08-21 14:18:02.278538328 -0400&#xA;    +++ .AbiSuite/AbiWord.Profile&#x9;2007-08-21 14:20:52.738536739 -0400&#xA;    @@ -98,10 +98,8 @@&#xA;     &#xA;            &amp;lt;Scheme&#xA;                    name=&amp;quot;_custom_&amp;quot;&#xA;    +               KeyBindings=&amp;quot;viEdit&amp;quot;&#xA;                    /&amp;gt;&#xA;     &#xA;            &amp;lt;Recent&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;And now I have modal editing support in an office suite.  I still have to play with it to see if&#xA;I find it useful&amp;hellip; but initially it looks great.&lt;/p&gt;</description>
    </item>
    <item>
      <title>forwarding ssh and X through screen</title>
      <link>http://www.jukie.net/~bart/blog/screen-with-ssh-and-x/</link>
      <pubDate>Sat, 11 Aug 2007 10:57:46 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/screen-with-ssh-and-x/</guid>
      <description>&lt;p&gt;I have an update to my [previous article]{screen-ssh-agent} on forwarding [ssh-agent]{tag/ssh}&#xA;through [screen]{tag/screen}.  I&amp;rsquo;ve since switched to [zsh]{tag/zsh} and am now forwarding&#xA;the X &lt;code&gt;DISPLAY&lt;/code&gt; environment variable through to the screen shell.&lt;/p&gt;&#xA;&lt;p&gt;You can grab my &lt;a href=&#34;http://www.jukie.net/~bart/conf/zsh/rc/S51_screen&#34;&gt;~/.zsh.d/S51_screen&lt;/a&gt;,&#xA;&lt;a href=&#34;http://www.jukie.net/~bart/conf/zsh/rc/S60_prompt&#34;&gt;~/.zsh.d/S60_prompt&lt;/a&gt;, and&#xA;&lt;a href=&#34;http://www.jukie.net/~bart/conf/screenrc&#34;&gt;~/.screenrc&lt;/a&gt; or&#xA;read below.&lt;/p&gt;</description>
    </item>
    <item>
      <title>git-svnup</title>
      <link>http://www.jukie.net/~bart/blog/git-svnup/</link>
      <pubDate>Tue, 07 Aug 2007 11:25:31 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/git-svnup/</guid>
      <description>&lt;p&gt;My employer (or client, since I am a &lt;a href=&#34;http://www.jukie.net/~bart/consulting/&#34;&gt;contractor&lt;/a&gt; there) uses [svn]{tag/svn}.  I prefer to&#xA;use [git]{tag/git}.&lt;/p&gt;&#xA;&lt;p&gt;This following git allows me to update all tracked svn branches in my git-svn repository:&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;    git config --get alias.svnup&#xA;    !git-config --get-regexp &#39;svn-remote.*url&#39; | cut -d . -f 2 | xargs -n1 git-svn fetch&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;The way to invoke it is to run:&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;    git svnup&#xA;    git-svn rebase some-remote-snv-branch&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;You need to put that into your &lt;code&gt;~/.gitconfig&lt;/code&gt; like so:&lt;/p&gt;</description>
    </item>
    <item>
      <title>reducing power consumption</title>
      <link>http://www.jukie.net/~bart/blog/reducing-power-consumption/</link>
      <pubDate>Tue, 24 Jul 2007 08:23:55 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/reducing-power-consumption/</guid>
      <description>&lt;p&gt;I was recently talking to &lt;a href=&#34;http://geemoo.ca/&#34;&gt;Jean&lt;/a&gt; about lowering power consumption.  One of&#xA;the things I do is to purge all modules when I go to battery power.  Here is the script I&#xA;use to remove unwanted modules.&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;    lsmod | awk &#39;/0 *$/ {print $1}&#39; | xargs -n1 sudo rmmod&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;Building things as modules makes this more successful.  And you have to run it a few times to&#xA;get all the unused modules out.  Maybe something like this would work&amp;hellip;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Makefile template</title>
      <link>http://www.jukie.net/~bart/blog/makefile-template/</link>
      <pubDate>Sun, 22 Jul 2007 12:37:34 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/makefile-template/</guid>
      <description>&lt;p&gt;Someone on &lt;code&gt;#oclug&lt;/code&gt; was asking about building C programs with make.  I wrote up this &lt;em&gt;simple&lt;/em&gt; Makefile for him.&lt;/p&gt;</description>
    </item>
    <item>
      <title>less, colourful</title>
      <link>http://www.jukie.net/~bart/blog/less-colours/</link>
      <pubDate>Sun, 22 Jul 2007 00:26:49 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/less-colours/</guid>
      <description>&lt;p&gt;Make your &lt;strong&gt;less&lt;/strong&gt; more pretty with these environment variables&amp;hellip;&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;    export LESS_TERMCAP_mb=$&#39;\E[01;31m&#39;&#xA;    export LESS_TERMCAP_md=$&#39;\E[01;31m&#39;&#xA;    export LESS_TERMCAP_me=$&#39;\E[0m&#39;&#xA;    export LESS_TERMCAP_se=$&#39;\E[0m&#39;&#xA;    export LESS_TERMCAP_so=$&#39;\E[01;44;33m&#39;&#xA;    export LESS_TERMCAP_ue=$&#39;\E[0m&#39;&#xA;    export LESS_TERMCAP_us=$&#39;\E[01;32m&#39;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;You can put these in your &lt;code&gt;.zshrc&lt;/code&gt; or &lt;code&gt;.bashrc&lt;/code&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>irssi docs</title>
      <link>http://www.jukie.net/~bart/blog/irssi-docs/</link>
      <pubDate>Thu, 19 Jul 2007 16:23:59 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/irssi-docs/</guid>
      <description>&lt;p&gt;I was indirectly pointed to these docs on [irssi]{tag/irssi}&amp;hellip;&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;http://f0rked.com/articles/irssidoc&#34;&gt;Irssi Documentation and Resources&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;http://f0rked.com/articles/irssi&#34;&gt;How to Efficiently Use Irssi and Screen&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;http://f0rked.com/articles/irssisplit&#34;&gt;An Illustrated Guide to Split Windows in Irssi&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>qemu eats up /dev/shm</title>
      <link>http://www.jukie.net/~bart/blog/qmeu-shm/</link>
      <pubDate>Mon, 16 Jul 2007 11:45:53 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/qmeu-shm/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve been using qemu ([with kqemu]{kqemu-install}) to run my client&amp;rsquo;s windows software,&#xA;which talks to the linux driver/daemon that I &lt;strong&gt;am&lt;/strong&gt; working on.  Having multiple qemu&#xA;instances really chews into the shared memory&amp;hellip; and the amount available depend on how /dev/shm&#xA;is mounted.&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;    # df /dev/shm&#xA;    Filesystem            Size  Used Avail Use% Mounted on&#xA;    none                  2.0G  713M  1.4G  35% /dev/shm&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;On Debian you can control this via &lt;code&gt;/etc/default/tmpfs&lt;/code&gt; SHM_SIZE variable&amp;hellip;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>git-clean in svn land</title>
      <link>http://www.jukie.net/~bart/blog/svn-clean/</link>
      <pubDate>Tue, 10 Jul 2007 21:45:12 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/svn-clean/</guid>
      <description>&lt;p&gt;Some things are easier in [git]{tag/git}.  For example to nuke all changes and only keep files that are&#xA;tracked by git I would run:&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;    git-clean -d -x&#xA;    git-checkout -f&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;In [svn]{tag/svn} it&amp;rsquo;s a bit more involved, but not impossible:&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;    svn status --no-ignore | awk &#39;{print $2}&#39; | xargs rm -rf&#xA;    svn revert -R .&#xA;    svn update&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;For extra &lt;em&gt;fun&lt;/em&gt;&amp;hellip; the &lt;code&gt;svn revert -R&lt;/code&gt; will actually stop on any symlinks to directories.  Fun!&lt;/p&gt;</description>
    </item>
    <item>
      <title>ipw2200 not working</title>
      <link>http://www.jukie.net/~bart/blog/ipw2200-firmware/</link>
      <pubDate>Thu, 05 Jul 2007 11:31:39 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/ipw2200-firmware/</guid>
      <description>&lt;p&gt;Err!  I recently nuked and paved over my X41, with debian/lenny.  When I wanted to use the wireless I was greeted by:&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;    ipw2200: Intel(R) PRO/Wireless 2200/2915 Network Driver, 1.2.0kmprq&#xA;    ipw2200: Copyright(c) 2003-2006 Intel Corporation&#xA;    ACPI: PCI Interrupt 0000:04:02.0[A] -&amp;gt; GSI 21 (level, low) -&amp;gt; IRQ 23&#xA;    ipw2200: Detected Intel PRO/Wireless 2200BG Network Connection&#xA;    ipw2200: ipw2200-bss.fw request_firmware failed: Reason -2&#xA;    ipw2200: Unable to load firmware: -2&#xA;    ipw2200: failed to register network device&#xA;    ACPI: PCI interrupt for device 0000:04:02.0 disabled&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;It turns out that I have not done any wireless twiddling recently and forgotten that I had to&#xA;get the firmware before things started working again.&lt;/p&gt;</description>
    </item>
    <item>
      <title>git slides updated</title>
      <link>http://www.jukie.net/~bart/blog/into-to-git-talk-2/</link>
      <pubDate>Wed, 27 Jun 2007 19:19:16 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/into-to-git-talk-2/</guid>
      <description>&lt;p&gt;I recently gave my [git talk]{20070329011735} for a client.  I had about 3.5 hours,&#xA;and found that was quite adequate to relay all the information.  My&#xA;&lt;a href=&#34;http://www.jukie.net/~bart/slides&#34;&gt;slides&lt;/a&gt; are available in&#xA;&lt;a href=&#34;http://www.jukie.net/~bart/slides/intro-to-git/intro-to-git.pdf&#34;&gt;PDF&lt;/a&gt; and the&#xA;&lt;a href=&#34;http://www.jukie.net/~bart/slides/intro-to-git/intro-to-git.tgz&#34;&gt;magicpoint source&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>unpopular debian packages on my system</title>
      <link>http://www.jukie.net/~bart/blog/unpopular-packages/</link>
      <pubDate>Mon, 18 Jun 2007 22:06:49 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/unpopular-packages/</guid>
      <description>&lt;p&gt;Using the &lt;a href=&#34;http://www.enricozini.org//2007/tips/conversation-starter.html&#34;&gt;ept-cache&lt;/a&gt; utility&#xA;advertised on &lt;a href=&#34;http://kitenet.net/~joey/blog/entry/night_venue__47__ept/&#34;&gt;joey&amp;rsquo;s blog&lt;/a&gt; I was able to have a look&#xA;at some packages on my site that are likely not on your system.&lt;/p&gt;&#xA;&lt;p&gt;To get packages of inverse popularity which you have installed run:&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;    ept-cache search -t clean -s t- | less&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;Of interest are the following.&lt;/p&gt;</description>
    </item>
    <item>
      <title>git-svn with multiple branches</title>
      <link>http://www.jukie.net/~bart/blog/git-svn-with-multiple-branches/</link>
      <pubDate>Mon, 11 Jun 2007 12:58:52 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/git-svn-with-multiple-branches/</guid>
      <description>&lt;p&gt;Dave recently wrote about &lt;a href=&#34;http://www.dmo.ca/blog/20070608113513&#34;&gt;git-svn with multiple branches&lt;/a&gt;.  Worth a read if you want to use &lt;strong&gt;git&lt;/strong&gt; in a hostile&#xA;&lt;strong&gt;svn&lt;/strong&gt; environment.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Linus on Git at Google</title>
      <link>http://www.jukie.net/~bart/blog/linus-on-git-at-google/</link>
      <pubDate>Thu, 17 May 2007 08:53:21 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/linus-on-git-at-google/</guid>
      <description>&lt;p&gt;YouTube has a good talk by Linus Torvalds on &lt;a href=&#34;http://www.youtube.com/watch?v=4XpnKHJAok8&#34;&gt;why you would want to use git&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;I think a few points he sold very well, and a few were very Linus-centric.  It&amp;rsquo;s worth a watch.&lt;/p&gt;</description>
    </item>
    <item>
      <title>vim modelines insecure</title>
      <link>http://www.jukie.net/~bart/blog/vim-modelines-insecure/</link>
      <pubDate>Thu, 10 May 2007 13:45:51 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/vim-modelines-insecure/</guid>
      <description>&lt;p&gt;I have previously disabled &lt;code&gt;modelines&lt;/code&gt; in my &lt;a href=&#34;http://www.jukie.net/~bart/conf/vimrc&#34;&gt;vimrc&lt;/a&gt;, but had turned them on recently&#xA;only to learn today that they are subject to another &lt;a href=&#34;http://secunia.com/advisories/25182/&#34;&gt;vulnerability&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;I&amp;rsquo;ve seen &lt;a href=&#34;http://www.guninski.com/vim1.html&#34;&gt;this before&lt;/a&gt;.  Enough is enough. :)&lt;/p&gt;&#xA;&lt;p&gt;Fortunately, this &lt;a href=&#34;http://marc.info/?l=vim-dev&amp;amp;m=117762581821298&amp;amp;w=2&#34;&gt;sparked a debate&lt;/a&gt; on vim-dev mailing list.  One of&#xA;the &lt;a href=&#34;http://marc.info/?l=vim-dev&amp;amp;m=117828819017137&amp;amp;w=2&#34;&gt;outcomes&lt;/a&gt; is a &lt;a href=&#34;http://www.vim.org/scripts/script.php?script_id=1876&#34;&gt;vim script&lt;/a&gt;&#xA;that &lt;a href=&#34;http://ciaranm.org/tag/securemodelines&#34;&gt;replaces the modeline parser&lt;/a&gt; in vim.  It is said to be a&#xA;lot more strict about what it permits as valid modeline components and allows the user to control that in the vimrc.&lt;/p&gt;</description>
    </item>
    <item>
      <title>bios disassembler</title>
      <link>http://www.jukie.net/~bart/blog/bios-disassembler/</link>
      <pubDate>Fri, 04 May 2007 20:50:42 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/bios-disassembler/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve been having some issues setting up a x86 environment from scratch in order to get the&#xA;BIOS to work once returning to real mode.&lt;/p&gt;&#xA;&lt;p&gt;I decided to figure out why.  I know that the BIOS has the code to setup the processor and&#xA;the peripherals to make things work&amp;hellip; how does it do this?&lt;/p&gt;</description>
    </item>
    <item>
      <title>dd hex arguments</title>
      <link>http://www.jukie.net/~bart/blog/shelllinuxdebian/</link>
      <pubDate>Fri, 04 May 2007 12:41:24 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/shelllinuxdebian/</guid>
      <description>&lt;p&gt;It sure would be nice to to not have to convert hex numbers manually&#xA;when using dd&amp;hellip;&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;    # dd bs=0x200&#xA;    dd: invalid number `0x200&#39;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;This was a really &lt;a href=&#34;http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=422275&#34;&gt;easy fix&lt;/a&gt;.  Here is&#xA;&lt;a href=&#34;http://www.jukie.net/~bart/patches/coreutils/20070504/0001-support-0x-prefix-on-number-arguments-passed-to-dd.patch&#34;&gt;the patch&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>urxvt mouseless url yanking</title>
      <link>http://www.jukie.net/~bart/blog/urxvt-url-yank/</link>
      <pubDate>Thu, 03 May 2007 01:35:55 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/urxvt-url-yank/</guid>
      <description>&lt;p&gt;In the quest for a completely mouse free desktop, I wanted to be able to yank URLs from the termial&#xA;without using the mouse.  This happens often enough in IRC when I would want to grab the most recent&#xA;URL and run it in firefox.&lt;/p&gt;&#xA;&lt;p&gt;I talked to the author of &lt;a href=&#34;http://vimperator.mozdev.org&#34;&gt;vimperator&lt;/a&gt; and he suggested that&#xA;I look at urxvt (packaged as rxvt-unicode).  So I did.&lt;/p&gt;&#xA;&lt;p&gt;A few hours later and I have a perl plug-in for urxvt that does just want I wanted.&lt;/p&gt;</description>
    </item>
    <item>
      <title>gitdiff.vba v2</title>
      <link>http://www.jukie.net/~bart/blog/vimscript-gitdiff-v2/</link>
      <pubDate>Wed, 02 May 2007 21:19:41 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/vimscript-gitdiff-v2/</guid>
      <description>&lt;p&gt;I released version 2 of my &lt;a href=&#34;http://www.vim.org/scripts/script.php?script_id=1846&#34;&gt;gitdiff.vba&lt;/a&gt;&#xA;vim script.&lt;/p&gt;&#xA;&lt;p&gt;It now supports two features:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;code&gt;:GITDiff [commitish]&lt;/code&gt;&lt;/p&gt;&#xA;&lt;p&gt;Split the vim window vertically, display the HEAD, or some other changeset, version of the file in the split, then diff them.&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;code&gt;:GITChanges [commitish]&lt;/code&gt;&lt;/p&gt;&#xA;&lt;p&gt;Highlight lines that were changed since the HEAD or some other changeset.&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;I also started using the &lt;a href=&#34;http://www.vim.org/scripts/script.php?script_id=1502&#34;&gt;VimBall&lt;/a&gt; script, which is a package format&#xA;for vim scripts.  So to install it, you need to first have the vimball extension.  Further, if you have the&#xA;&lt;a href=&#34;http://www.vim.org/scripts/script.php?script_id=642&#34;&gt;GetLatestVimScripts&lt;/a&gt; you can use the &lt;code&gt;:GLVS&lt;/code&gt; commands to&#xA;automatically upgrade your packages.&lt;/p&gt;</description>
    </item>
    <item>
      <title>india</title>
      <link>http://www.jukie.net/~bart/blog/india/</link>
      <pubDate>Thu, 19 Apr 2007 23:43:50 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/india/</guid>
      <description>&lt;p&gt;I got some obfuscated code from a buddy (of Indian origin coincidentally) that draws the map of India.&lt;/p&gt;&#xA;&lt;p&gt;It&amp;rsquo;s obfuscated code, but it&amp;rsquo;s not perl.&lt;/p&gt;</description>
    </item>
    <item>
      <title>zsh fun</title>
      <link>http://www.jukie.net/~bart/blog/zsh-fun/</link>
      <pubDate>Wed, 18 Apr 2007 15:58:57 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/zsh-fun/</guid>
      <description>&lt;p&gt;I have been playing with zsh a bit today.  Here is the outcome:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;use vim to view man pages; this requires &lt;a href=&#34;http://www.vim.org/scripts/script.php?script_id=489&#34;&gt;manpageview.vim&lt;/a&gt;&#xA;vim plugin.&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt; function vman() { vim -c &amp;quot;:RMan ${*}&amp;quot; ; }&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;these function store the current directory in X clipboard and then restore the path from the clipboard, which&#xA;is handy when you want to restore the path in another xterm&amp;hellip;&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt; function xpwd () { pwd | xclip -i ; xclip -o ; }&#xA; function xcd () { cd `xclip -o` ; }&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>pipe to pastey.net</title>
      <link>http://www.jukie.net/~bart/blog/pipe-to-pastey.net/</link>
      <pubDate>Wed, 18 Apr 2007 14:36:32 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/pipe-to-pastey.net/</guid>
      <description>&lt;p&gt;Here is a little script that lets me post to &lt;a href=&#34;http://pastey.net&#34;&gt;pastey.net&lt;/a&gt; from a shell prompt&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;    #!/bin/bash&#xA;    set -e&#xA;&#xA;    AUTHOR=bartman&#xA;    SUBJECT=pipe&#xA;    LANGUAGE=c&#xA;&#xA;    w3m -post &amp;lt;( echo -n -e &amp;quot;language=$LANGUAGE&amp;amp;author=$AUTHOR&amp;amp;subject=$SUBJECT&amp;amp;tabstop=4&amp;amp;text=&amp;quot; ; sed &#39;s/%/%25/g&#39; | sed &#39;s/&amp;amp;/%26/g&#39; ) \&#xA;    -dump http://pastey.net/submit.php&#xA;&lt;/code&gt;&lt;/pre&gt;</description>
    </item>
    <item>
      <title>vimgrep alias</title>
      <link>http://www.jukie.net/~bart/blog/vimgrep-alias/</link>
      <pubDate>Wed, 18 Apr 2007 09:41:51 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/vimgrep-alias/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve been using Solaris recently&amp;hellip; since yesterday.  First reactions: &lt;em&gt;How can anyone use their command line tools!?&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;Fortunately the system I was on had zsh and vim.&lt;/p&gt;&#xA;&lt;p&gt;Here is a macro I use to avoid Solaris grep:&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;    function vimgrep () { tmp=&amp;quot;$@&amp;quot; ; vim -c &amp;quot;vimgrep $tmp | copen&amp;quot; ; }&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;(I could not figure out a way to do it w/o the &lt;code&gt;tmp&lt;/code&gt; variable)&lt;/p&gt;&#xA;&lt;p&gt;Now you can do things like:&lt;/p&gt;</description>
    </item>
    <item>
      <title>mouse-free</title>
      <link>http://www.jukie.net/~bart/blog/vimperator/</link>
      <pubDate>Mon, 16 Apr 2007 20:25:45 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/vimperator/</guid>
      <description>&lt;p&gt;&lt;em&gt;First there was a Navigator, then there was an Explorer. Later it was time for a Konqueror. Now it&amp;rsquo;s time for an Imperator, the VIMperator :)&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;http://vimperator.mozdev.net/index.html&#34;&gt;VIMperator&lt;/a&gt; is a mozilla/firefox plugin from &lt;em&gt;Martin Stubenschrott&lt;/em&gt;.  It completely redefines the firefox&#xA;interface to mimic the beloved &lt;a href=&#34;http://vim.org&#34;&gt;VIM&lt;/a&gt; editor.&lt;/p&gt;&#xA;&lt;p&gt;If you love vim, you are likely to love VIMperator.  If not&amp;hellip; well, your loss.&lt;/p&gt;</description>
    </item>
    <item>
      <title>ATA messages via SCSI layer</title>
      <link>http://www.jukie.net/~bart/blog/ata-via-scsi/</link>
      <pubDate>Fri, 06 Apr 2007 14:18:50 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/ata-via-scsi/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve been working on a contract for &lt;a href=&#34;http://www.thesymbiont.com/&#34;&gt;Symbio Technologies&lt;/a&gt; for the last month.  They&#xA;are makers of a few thin client terminals.&lt;/p&gt;&#xA;&lt;p&gt;My work for Symbio involves talking to a SATA hard disk using ATA command set.  What makes this a bit more&#xA;interesting is that &lt;code&gt;/dev/hda&lt;/code&gt; is the way of the past.  New devices are covered by &lt;a href=&#34;http://linux-ata.org/faq.html&#34;&gt;libata&lt;/a&gt;&#xA;drives which fit into the SCSI subsystem.&lt;/p&gt;&#xA;&lt;p&gt;So, the challenge for me was how to send raw ATA messages using the SCSI layer to the SATA drive.  Besides the fact&#xA;that the interface is sparsely documented, it was pretty easy.&lt;/p&gt;</description>
    </item>
    <item>
      <title>GITDiff vim plugin</title>
      <link>http://www.jukie.net/~bart/blog/vim-gitdiff/</link>
      <pubDate>Fri, 30 Mar 2007 22:10:19 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/vim-gitdiff/</guid>
      <description>&lt;p&gt;Taking a TODO item off my list, I am adding a plugin to vim that splits the current&#xA;window and presents a diff between the current file and any revision of that file in&#xA;the current git repository.&lt;/p&gt;</description>
    </item>
    <item>
      <title>git presentation for OCLUG</title>
      <link>http://www.jukie.net/~bart/blog/intro-to-git-talk/</link>
      <pubDate>Thu, 29 Mar 2007 01:17:35 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/intro-to-git-talk/</guid>
      <description>&lt;p&gt;I am giving a &lt;em&gt;intro to git&lt;/em&gt; tutorial for &lt;a href=&#34;http://oclug.on.ca/&#34;&gt;oclug&lt;/a&gt; tomorrow.&lt;/p&gt;&#xA;&lt;p&gt;Here are the slides in &lt;a href=&#34;http://www.jukie.net/~bart/slides/intro-to-git/intro-to-git.pdf&#34;&gt;PDF format&lt;/a&gt;.  If&#xA;you are one of the lucky ones and magic point works for you, you can also&#xA;grab &lt;a href=&#34;http://www.jukie.net/~bart/slides/intro-to-git/intro-to-git.tgz&#34;&gt;the source tarball&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>fixing vim&#39;s [[ and ]] for bad code</title>
      <link>http://www.jukie.net/~bart/blog/find-functions-in-vim/</link>
      <pubDate>Wed, 28 Mar 2007 12:36:31 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/find-functions-in-vim/</guid>
      <description>&lt;p&gt;I just added something to my &lt;a href=&#34;http://www.jukie.net/~bart/conf/vim/c.vim&#34;&gt;.vim/c.vim&lt;/a&gt;&#xA;to make &lt;code&gt;[[&lt;/code&gt; and &lt;code&gt;]]&lt;/code&gt; work even if the code does not have &lt;code&gt;{&lt;/code&gt; on new lines.&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;    function! FindFunctionDefinition(dir)&#xA;            let l:lastpattern = @/&#xA;            if a:dir==-1&#xA;                    ?^\(\a.*(\_[^\)]*) *\)\{,1\}{&#xA;            elseif a:dir==1&#xA;                    /^\(\a.*(\_[^\)]*) *\)\{,1\}{&#xA;            endif &#xA;            let @/ = l:lastpattern&#xA;    endfunction&#xA;&#xA;    nmap [[ :call FindFunctionDefinition(-1)&amp;lt;CR&amp;gt;&#xA;    nmap ]] :call FindFunctionDefinition(1)&amp;lt;CR&amp;gt;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;This will make &lt;code&gt;[[&lt;/code&gt; and &lt;code&gt;]]&lt;/code&gt; find the next and previous function even if the first &lt;code&gt;{&lt;/code&gt; is not in the first column.&lt;/p&gt;</description>
    </item>
    <item>
      <title>pxeboot and nfsroot with debian</title>
      <link>http://www.jukie.net/~bart/blog/nfsroot-on-debian/</link>
      <pubDate>Fri, 16 Mar 2007 09:22:36 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/nfsroot-on-debian/</guid>
      <description>&lt;p&gt;I have two boxes (i386 and amd64) in the &lt;em&gt;lab&lt;/em&gt; that I use for testing of drivers I work on.  Recently &lt;strong&gt;another&lt;/strong&gt; Maxtor&#xA;hard disk died on me, and I decided to get network booting working.  I already have a file server from&#xA;which I host my &lt;code&gt;$HOME&lt;/code&gt; directories and do all backups from.  It sounded like a win.&lt;/p&gt;&#xA;&lt;p&gt;I&amp;rsquo;ve never done this before, so it took me a few hours to get the first host going, the second took 10 minutes&#xA;plus the amount of time to build the kernel for it.&lt;/p&gt;&#xA;&lt;p&gt;Below, I describe steps I took to get pxe-enabled hardware to boot a debian image, from a debian &lt;em&gt;DHCP&lt;/em&gt;,&#xA;&lt;em&gt;TFTP&lt;/em&gt; and &lt;em&gt;NFS&lt;/em&gt; servers.&lt;/p&gt;</description>
    </item>
    <item>
      <title>etc snapshots with git</title>
      <link>http://www.jukie.net/~bart/blog/etc-snapshots-with-git/</link>
      <pubDate>Mon, 12 Mar 2007 13:47:06 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/etc-snapshots-with-git/</guid>
      <description>&lt;p&gt;I got this idea from a blog posting a few months back.  I think the guy was using &lt;em&gt;darcs&lt;/em&gt;.  Unfortunately, I&#xA;was unable to find the reference to link to him.&lt;/p&gt;&#xA;&lt;p&gt;Anyway, here is how you can track your &lt;code&gt;/etc&lt;/code&gt; directory with &lt;em&gt;git&lt;/em&gt;, and have &lt;em&gt;apt&lt;/em&gt; update it&#xA;automatically each time a package is installed.&lt;/p&gt;</description>
    </item>
    <item>
      <title>remote power switch</title>
      <link>http://www.jukie.net/~bart/blog/remote-power-switch/</link>
      <pubDate>Wed, 07 Mar 2007 00:40:41 -0500</pubDate>
      <guid>http://www.jukie.net/~bart/blog/remote-power-switch/</guid>
      <description>&lt;p&gt;I just got a &lt;a href=&#34;http://www.digital-loggers.com/lpc.html&#34;&gt;Web Power Switch&lt;/a&gt;, and hooked it up to the&#xA;&lt;em&gt;lab&lt;/em&gt; machines in the basement.  I can now reset them with a web page&amp;hellip; which is going to get scripted&#xA;really soon.&lt;/p&gt;</description>
    </item>
    <item>
      <title>klips-less openswan git tree</title>
      <link>http://www.jukie.net/~bart/blog/openswan-klipsless/</link>
      <pubDate>Thu, 22 Feb 2007 21:53:55 -0500</pubDate>
      <guid>http://www.jukie.net/~bart/blog/openswan-klipsless/</guid>
      <description>&lt;p&gt;Recently Martin merged &lt;em&gt;openswan/pfkeyv2.h&lt;/em&gt; with &lt;em&gt;linux/pfkeyv2.h&lt;/em&gt;.  Sparks flew.&#xA;Michael Richardson and I have tried this before and decided to postpone it.&lt;/p&gt;&#xA;&lt;p&gt;I merged it into my tree, so it seems that we have to do the hard thing and&#xA;divorce klips from openswan.git.  This basically requires that we create an openswan tree&#xA;that builds against pfkey definitions in another tree.&lt;/p&gt;&#xA;&lt;p&gt;Michael suggested that Martin and I start with the #unstable branch of openswan.git.&lt;/p&gt;&#xA;&lt;p&gt;What I see happening eventually is this &lt;code&gt;include/linux/pfkeyv2.h&lt;/code&gt; defining all the&#xA;pfkey RFC bits, and &lt;code&gt;include/klips/pfkeyv2.h&lt;/code&gt; including that and adding it&amp;rsquo;s&#xA;extensions.  For now we will be happy if we can get pluto talking to the new&#xA;&lt;em&gt;franken-klips&lt;/em&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>git caching for v1.5.x</title>
      <link>http://www.jukie.net/~bart/blog/git-1.5-caching/</link>
      <pubDate>Wed, 21 Feb 2007 04:13:16 -0500</pubDate>
      <guid>http://www.jukie.net/~bart/blog/git-1.5-caching/</guid>
      <description>&lt;p&gt;I wrote about [git caching]{git-caching} several months back.  The term, &lt;em&gt;git caching&lt;/em&gt;, was something I&#xA;had given a local repository that can be used as a reference for multiple projects.  New features in the&#xA;recently released git 1.5.x requires that I blog again about this great tool.&lt;/p&gt;&#xA;&lt;p&gt;Recap: I am working on a linux patch &amp;ndash; [klips]{tags/openswan} to be specific.  I have more repositories&#xA;then I know what to do with.  Git has this cool feature where it can point to another directory to&#xA;find it&amp;rsquo;s object files, this is called &lt;em&gt;alternate&lt;/em&gt; or &lt;em&gt;reference&lt;/em&gt; repository.&lt;/p&gt;</description>
    </item>
    <item>
      <title>klips loses zlib</title>
      <link>http://www.jukie.net/~bart/blog/klips-loses-zlib/</link>
      <pubDate>Sun, 18 Feb 2007 00:22:14 -0500</pubDate>
      <guid>http://www.jukie.net/~bart/blog/klips-loses-zlib/</guid>
      <description>&lt;p&gt;Last time I [wrote about openswan]{leaner-meaner-openswan} I commented how Martin and I chopped off&#xA;18 thousand lines from KLIPS.&lt;/p&gt;&#xA;&lt;p&gt;Most recently I finished rewriting IPCOMP handling to use CryptoAPI&amp;rsquo;s api to zlib, and Martin was able&#xA;to remove the zlib that was duplicated in KLIPS.  Here are the updated stats:&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;    $ git diff origin/public HEAD -- include/openswan net/ipsec/ | diffstat | tail -n1&#xA;     135 files changed, 14549 insertions(+), 39839 deletions(-)&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;That, along with other cleanup, bumped us up to &lt;strong&gt;25k&lt;/strong&gt; lines less then the #public branch of openswan.&lt;/p&gt;</description>
    </item>
    <item>
      <title>vim and linux CodingStyle</title>
      <link>http://www.jukie.net/~bart/blog/vim-and-linux-coding-style/</link>
      <pubDate>Fri, 09 Feb 2007 17:26:06 -0500</pubDate>
      <guid>http://www.jukie.net/~bart/blog/vim-and-linux-coding-style/</guid>
      <description>&lt;p&gt;It would seem that either no one that codes for the &lt;a href=&#34;http://www.kernel.org/&#34;&gt;Linux kernel&lt;/a&gt;&#xA;does so under &lt;a href=&#34;http://www.vim.org&#34;&gt;vim&lt;/a&gt;, or if they do they don&amp;rsquo;t have the time to share&#xA;their vim configuration that doesn&amp;rsquo;t conflict with the&#xA;kernel&amp;rsquo;s &lt;a href=&#34;http://lxr.linux.no/source/Documentation/CodingStyle&#34;&gt;CodingStyle&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Below I will discuss some changes I had to make to my &lt;a href=&#34;http://www.jukie.net/~bart/conf/vimrc&#34;&gt;.vimrc&lt;/a&gt; and&#xA;&lt;a href=&#34;http://www.jukie.net/~bart/conf/vim/c.vim&#34;&gt;.vim/c.vim&lt;/a&gt; to work with C efficiently.&lt;/p&gt;</description>
    </item>
    <item>
      <title>my kqemu install</title>
      <link>http://www.jukie.net/~bart/blog/kqemu-install/</link>
      <pubDate>Wed, 07 Feb 2007 20:54:27 -0500</pubDate>
      <guid>http://www.jukie.net/~bart/blog/kqemu-install/</guid>
      <description>&lt;p&gt;I found out earlier today that &lt;a href=&#34;http://fabrice.bellard.free.fr/qemu/&#34;&gt;kqemu&lt;/a&gt; is now GPLed.  I think this has&#xA;the potential of helping out the KVM team by (hopefully) taking some of the tricks that helps kqemu get almost&#xA;as good performance (on some benchmarks) as KVM w/ the hardware vitualization extensions.&lt;/p&gt;&#xA;&lt;p&gt;Here I am running Ubuntu (aside: next time I pave over I am going back to &lt;em&gt;Debian&lt;/em&gt;), and I want to have kqemu&#xA;running WinXP and Suse 10.  But really&amp;hellip; I just wanted to try kqemu on my poor desktop that lacks the virtualization&#xA;extensions.&lt;/p&gt;</description>
    </item>
    <item>
      <title>leaner meaner openswan</title>
      <link>http://www.jukie.net/~bart/blog/leaner-meaner-openswan/</link>
      <pubDate>Sun, 04 Feb 2007 10:01:00 -0500</pubDate>
      <guid>http://www.jukie.net/~bart/blog/leaner-meaner-openswan/</guid>
      <description>&lt;p&gt;I started working for &lt;a href=&#34;http://www.xelerance.com&#34;&gt;Xelerance&lt;/a&gt; in April of 2006,&#xA;and the &lt;a href=&#34;http://biz.yahoo.com/prnews/070205/sfm078.html?.v=77&#34;&gt;contract&lt;/a&gt; ended in&#xA;December.  Since then I&amp;rsquo;ve been working on a KLIPS-ng, of sorts.  The idea was&#xA;to remove all the crypto code from KLIPS and convert it to use CryptoAPI&#xA;already in the Linux kernel.&lt;/p&gt;&#xA;&lt;p&gt;Last objective of my work was to add OCF support to KLIPS, so that we could take advantage of&#xA;the asynchronous crypto facilities provided there, as well as several OCF hardware drivers.  The BSD&#xA;kernels have been using OCF, &lt;a href=&#34;http://ocf-linux.sourceforge.net/&#34;&gt;Open Cryptographic Framework&lt;/a&gt;,&#xA;for some time and more recently it was ported to Linux.&lt;/p&gt;</description>
    </item>
    <item>
      <title>wmii&#43;ruby xlock action</title>
      <link>http://www.jukie.net/~bart/blog/wmii-xlock-action/</link>
      <pubDate>Mon, 15 Jan 2007 11:19:17 -0500</pubDate>
      <guid>http://www.jukie.net/~bart/blog/wmii-xlock-action/</guid>
      <description>&lt;p&gt;I use &lt;em&gt;xscreensaver&lt;/em&gt; and like to lock my display when I leave my computer.  Here&#xA;is a snippet from my &lt;code&gt;wmiirc-config.rb&lt;/code&gt; file that adds an &lt;code&gt;xlock&lt;/code&gt; action to the&#xA;&lt;code&gt;Alt-a&lt;/code&gt; action menu.&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;    plugin_config[&amp;quot;standard:actions&amp;quot;][&amp;quot;internal&amp;quot;].update({&#xA;      &#39;xlock&#39; =&amp;gt; lambda do |wmii, *args|&#xA;            system(&amp;quot;xscreensaver-command --lock&amp;quot;)&#xA;      end&#xA;    })&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;I start my &lt;em&gt;xscreensaver&lt;/em&gt; in the &lt;code&gt;.xsession&lt;/code&gt; file:&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;    /usr/bin/xscreensaver -nosplash &amp;amp;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;&amp;hellip; before launching wmii.&lt;/p&gt;</description>
    </item>
    <item>
      <title>cloning xterms in wmii&#43;ruby</title>
      <link>http://www.jukie.net/~bart/blog/cloning-xterms-in-wmii&#43;ruby/</link>
      <pubDate>Fri, 12 Jan 2007 13:12:52 -0500</pubDate>
      <guid>http://www.jukie.net/~bart/blog/cloning-xterms-in-wmii&#43;ruby/</guid>
      <description>&lt;p&gt;I have recently added a few things to by &lt;a href=&#34;http://eigenclass.org/hiki.rb?wmii&amp;#43;ruby&#34;&gt;wmii+ruby&lt;/a&gt; &lt;a href=&#34;http://www.jukie.net/~bart/conf/wmii-3/wmiirc-config.rb&#34;&gt;configuration&lt;/a&gt; that I wanted to share.  These are:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;start a program in a given view from bash prompt (authored by &lt;a href=&#34;http://www.dmo.ca/blog/20070111010218&#34;&gt;Dave O&amp;rsquo;Neill&lt;/a&gt;)&lt;/li&gt;&#xA;&lt;li&gt;start a program in a given view using &lt;code&gt;Alt-Shift-p&lt;/code&gt; (authored by &lt;a href=&#34;http://geemoo.ca/&#34;&gt;Jean Richard&lt;/a&gt;)&lt;/li&gt;&#xA;&lt;li&gt;start an xterm in a given view using &lt;code&gt;Alt-Shift-Return&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;cache directory changes in a view, start an xterm in the view&amp;rsquo;s last directory using &lt;code&gt;Alt-Apostrophe&lt;/code&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>wmii&#43;ruby talk for OCLUG</title>
      <link>http://www.jukie.net/~bart/blog/wmii&#43;ruby&#43;oclug/</link>
      <pubDate>Tue, 02 Jan 2007 01:05:51 -0500</pubDate>
      <guid>http://www.jukie.net/~bart/blog/wmii&#43;ruby&#43;oclug/</guid>
      <description>&lt;p&gt;I am giving a quick overview of wmii+ruby later today.&lt;/p&gt;&#xA;&lt;p&gt;In case anyone is interested here are the relevant links:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;my presentation &lt;a href=&#34;http://www.jukie.net/~bart/slides/intro-to-wmii&amp;#43;ruby/intro-to-wmii&amp;#43;ruby.pdf&#34;&gt;pdf&lt;/a&gt;, &lt;a href=&#34;http://www.jukie.net/~bart/slides/intro-to-wmii&amp;#43;ruby/intro-to-wmii&amp;#43;ruby.tgz&#34;&gt;magic point&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;my &lt;a href=&#34;http://www.jukie.net/~bart/conf/wmii-3&#34;&gt;wmiirc config&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Links from presentation:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;http://wmii.suckless.org/&#34;&gt;wmii official site&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;http://eigenclass.org/hiki.rb?wmii&amp;#43;ruby&#34;&gt;wmii+ruby official site&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;[my blog entries on wmii]{tag/wmii}&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>dump and restore</title>
      <link>http://www.jukie.net/~bart/blog/dump-and-restore/</link>
      <pubDate>Thu, 28 Dec 2006 22:06:41 -0500</pubDate>
      <guid>http://www.jukie.net/~bart/blog/dump-and-restore/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve heard many people talk about backups via dump and restore.  I&amp;rsquo;ve never really tried it, although it looks like I should&#xA;have been using it all along.&lt;/p&gt;&#xA;&lt;p&gt;I am rebuilding my firewall, which is based on a &lt;a href=&#34;http://www.pcengines.ch/wrap.htm&#34;&gt;WRAP&lt;/a&gt;&#xA;&lt;a href=&#34;http://www.pcengines.ch/pic/wrap1c2.jpg&#34;&gt;1C-2&lt;/a&gt; [sbc]{tag/sbc}.  I want to use two such boxes, one to connect to&#xA;my two ISPs (both cheap) and the other to create a DMZ network.&lt;/p&gt;&#xA;&lt;p&gt;I just finished building one of them (similar as the steps in [this article]{sbc-bootstrap-with-debian}).  Now I want to clone&#xA;the image, because the systems will be almost identical. So I stick in the CF card into my card reader, and run&lt;/p&gt;</description>
    </item>
    <item>
      <title>C style</title>
      <link>http://www.jukie.net/~bart/blog/c-style/</link>
      <pubDate>Mon, 18 Dec 2006 10:02:19 -0500</pubDate>
      <guid>http://www.jukie.net/~bart/blog/c-style/</guid>
      <description>&lt;p&gt;A new comer to my place of work was asking me how he can improve his&#xA;code style.  Here are some suggestions I had for him.&lt;/p&gt;</description>
    </item>
    <item>
      <title>fetching all git branches from remote</title>
      <link>http://www.jukie.net/~bart/blog/fetch-all-git-branches/</link>
      <pubDate>Wed, 01 Nov 2006 00:20:27 -0500</pubDate>
      <guid>http://www.jukie.net/~bart/blog/fetch-all-git-branches/</guid>
      <description>&lt;p&gt;When you clone a new git repository, using a recent git release, by default git&#xA;will create a &lt;code&gt;.git/remotes/origin&lt;/code&gt; with all remote branches.  This file lists&#xA;all remote branches that are to be updated on a fetch.&lt;/p&gt;&#xA;&lt;p&gt;Over time the remote may get more branches, and it may be necessary to update the&#xA;remote branch list.  The way to find out what is available at a remote is to&#xA;call &lt;code&gt;git-ls-remote origin&lt;/code&gt;, then pick out the branches of interest, and add them&#xA;to the &lt;code&gt;.git/remotes/origin&lt;/code&gt; file.&lt;/p&gt;</description>
    </item>
    <item>
      <title>local caching for git repos</title>
      <link>http://www.jukie.net/~bart/blog/git-caching/</link>
      <pubDate>Sat, 28 Oct 2006 11:16:07 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/git-caching/</guid>
      <description>&lt;p&gt;I try to minimize the amount of data I pull from git repositories.  To do this I have a&#xA;directory on my file server that has a bunch of clones of git (and hg and previously bk)&#xA;repositories.  All of these are exported and mounted on my other machines in &lt;code&gt;/site/scm/&lt;/code&gt;.&#xA;I will refer to this as &lt;em&gt;cache&lt;/em&gt; :)&lt;/p&gt;&#xA;&lt;p&gt;Next, I have a cron job that regularly updates those trees from the their upstream&#xA;counterparts.  All my working copies are cloned from those repositories using the&#xA;&lt;code&gt;--local --shared&lt;/code&gt; mode, or using &lt;code&gt;--reference&lt;/code&gt; if I think I will be committing&#xA;upstream any time soon.&lt;/p&gt;</description>
    </item>
    <item>
      <title>automatic version creation with git</title>
      <link>http://www.jukie.net/~bart/blog/auto-git-versioning/</link>
      <pubDate>Fri, 20 Oct 2006 14:54:37 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/auto-git-versioning/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;http://www.openswan.org/&#34;&gt;openswan&lt;/a&gt; is going through a process of redefining what their versions numbers will mean&amp;hellip; what&amp;rsquo;s&#xA;stable, what&amp;rsquo;s testing, what&amp;rsquo;s devel, etc.&lt;/p&gt;&#xA;&lt;p&gt;I participated in the discovery of how to do this &lt;em&gt;automagically&lt;/em&gt; from git release tags.  Patrick was so happy with the results&#xA;that the conversation ended with &amp;hellip;&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;    14:49 &amp;lt;patlap&amp;gt; C&#39;mon bart, blog it :-)&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;&amp;hellip; and how can I tell the CEO of &lt;a href=&#34;http://www.xelerance.com/&#34;&gt;Xelerance&lt;/a&gt; &amp;ldquo;no&amp;rdquo;  :)&lt;/p&gt;</description>
    </item>
    <item>
      <title>wmii w/ ruby wmiirc</title>
      <link>http://www.jukie.net/~bart/blog/wmii-with-ruby/</link>
      <pubDate>Wed, 18 Oct 2006 21:33:06 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/wmii-with-ruby/</guid>
      <description>&lt;p&gt;My window managers have changed a few times over the years.  I started off with&#xA;&lt;a href=&#34;http://en.wikipedia.org/wiki/Openstep&#34;&gt;OpenSTEP&lt;/a&gt; at Carleton, used that for a year.&#xA;Then switched to &lt;a href=&#34;http://en.wikipedia.org/wiki/Afterstep&#34;&gt;Afterstep&lt;/a&gt;, which I used for&#xA;about 3 years.  Next I switched to &lt;a href=&#34;http://en.wikipedia.org/wiki/Sawfish&#34;&gt;sawfish/sawmill&lt;/a&gt;,&#xA;and used it for about 4 years.  Recently I went through a crisis as sawfish stopped&#xA;working for me in testing on amd64.  I found [ion3]{tag/ion3} to be a nice replacement.  I&#xA;was a happy ion3 user for almost a year and then someone suggested that I try [wmii-3]{tag/wmii}.&lt;/p&gt;</description>
    </item>
    <item>
      <title>small fonts</title>
      <link>http://www.jukie.net/~bart/blog/small-fonts/</link>
      <pubDate>Wed, 18 Oct 2006 20:19:07 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/small-fonts/</guid>
      <description>&lt;p&gt;I don&amp;rsquo;t use a lot of X applications.  The one that I use most often is &lt;code&gt;xterm&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;I like small fonts, and I find that I have no problem reading a small font on an LCD monitor.&#xA;Recently someone mentioned the &lt;em&gt;Terminus&lt;/em&gt; font.  I tried it and it quickly became my favored&#xA;&lt;code&gt;xterm&lt;/code&gt; font&amp;hellip; it&amp;rsquo;s so tiny and clean!  Here are the important bits of my &lt;code&gt;.Xdefaults&lt;/code&gt; file&amp;hellip;&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;    XTerm*renderFont:        false&#xA;    XTerm*font:              -xos4-terminus-medium-r-normal-*-12-*-*-*-*-*-*-*&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;I also grabbed a few tiny fonts from &lt;a href=&#34;http://www.proggyfonts.com&#34;&gt;Proggy Fonts&lt;/a&gt; and my new &lt;code&gt;wmii&lt;/code&gt; font is&#xA;ProggyTiny.  Here is the bit from my &lt;code&gt;.wmii-3/wmiirc-config.rb&lt;/code&gt; file&amp;hellip;&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;    font        &#39;-windows-proggytiny-medium-r-normal--10-80-96-96-c-60-iso8859-1&#39;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;The above font site also taught me how to import fonts into X font server w/o a restart and how to&#xA;keep fonts in my home directory.  Check out this &lt;a href=&#34;http://www.proggyfonts.com/XWindowsFontInstall.txt&#34;&gt;short HOWTO&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>google-codesearch from vim</title>
      <link>http://www.jukie.net/~bart/blog/codesearch-from-vim/</link>
      <pubDate>Sat, 07 Oct 2006 15:18:02 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/codesearch-from-vim/</guid>
      <description>&lt;p&gt;I just saw &lt;a href=&#34;http://www.vim.org/tips/tip.php?tip_id=1354&#34;&gt;vim hint 1354&lt;/a&gt; pop up in&#xA;my RSS feed.  It&amp;rsquo;s a neat idea&amp;hellip; but it&amp;rsquo;s hard to decide what documentation should&#xA;be looked up.  Simply using the file type is insufficient.&lt;/p&gt;&#xA;&lt;p&gt;It turns out that it&amp;rsquo;s a lot more awesome to do &lt;a href=&#34;http://www.google.com/codesearch&#34;&gt;google codesearch&lt;/a&gt;&#xA;lookup on it.&lt;/p&gt;</description>
    </item>
    <item>
      <title>shell commands</title>
      <link>http://www.jukie.net/~bart/blog/shell-commands/</link>
      <pubDate>Thu, 28 Sep 2006 02:08:13 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/shell-commands/</guid>
      <description>&lt;p&gt;I saw &lt;a href=&#34;http://perldition.org/blog/post/450&#34;&gt;this blog post&lt;/a&gt; by Debian&amp;rsquo;s Florian Ragwitz, and ran my own list of most commonly used shell commands.  Here they are&amp;hellip;&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;    history |awk &#39;{print $2}&#39;|awk &#39;BEGIN {FS=&amp;quot;|&amp;quot;} {print $1}&#39; | sort | uniq -c | sort -r | head -15&#xA;        627 git&#xA;        266 vim&#xA;         98 cd&#xA;         76 grep&#xA;         69 ls&#xA;         63 gitk&#xA;         60 ssh&#xA;         51 sudo&#xA;         47 vv&#xA;         47 apt-cache&#xA;         40 cat&#xA;         34 make&#xA;         33 patch&#xA;         30 rm&#xA;         25 man&#xA;&lt;/code&gt;&lt;/pre&gt;</description>
    </item>
    <item>
      <title>letting screen apps use the ssh-agent</title>
      <link>http://www.jukie.net/~bart/blog/screen-ssh-agent/</link>
      <pubDate>Wed, 20 Sep 2006 09:39:57 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/screen-ssh-agent/</guid>
      <description>&lt;p&gt;I have been wondering for a while how to do this&amp;hellip; &lt;em&gt;How to pass the ssh-agent variables to screen clients&lt;/em&gt;.  After doing a&#xA;google search on it I found a couple of solutions:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;http://www.deadman.org/sshscreen.html&#34;&gt;grabssh/fixssh&lt;/a&gt; - two scripts that save the ssh agent environment variables and restore them;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;http://screen.frogcircus.org/ssh-agent&#34;&gt;screen_agent&lt;/a&gt; - this just executes an ssh-agent that is used by the screen session;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;http://saikat.guha.cc/code.php?id=1&#34;&gt;fixx&lt;/a&gt; - ok, this actually fixes X forwarding not ssh-agent and is a variation on the first;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Then I came across &lt;a href=&#34;http://www.2701.org/archive/200406150000.html&#34;&gt;Alexander Neumann&amp;rsquo;s blog entry&lt;/a&gt; which is the perfect solution.  He&#xA;simply redefines the &lt;code&gt;SSH_AUTH_SOCK&lt;/code&gt; variable and makes it point to a symlink that he creates when he logs in.  This means that this&#xA;method works when you&amp;rsquo;re sshing into a machine running screen.  I will just have to overwrite this symlink when screen is being launched.&lt;/p&gt;</description>
    </item>
    <item>
      <title>mpdscribble stream support</title>
      <link>http://www.jukie.net/~bart/blog/mpdscribble-stream-patch/</link>
      <pubDate>Fri, 08 Sep 2006 22:36:13 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/mpdscribble-stream-patch/</guid>
      <description>&lt;p&gt;I am using &lt;a href=&#34;http://www.gnump3d.org/&#34;&gt;gnump3d&lt;/a&gt; to get my tracks to my laptop, which is&#xA;using &lt;a href=&#34;http://www.MusicPD.org&#34;&gt;mpd&lt;/a&gt; to play tracks. I noticed that none&#xA;of the streamed tracks were &lt;a href=&#34;http://www.last.fm/user/BartTrojanowski/&#34;&gt;getting to last.fm&lt;/a&gt;. I investigated and&#xA;discovered that mpdscribble was not getting told of the track length by&#xA;mpd &amp;ndash; understandably so &amp;ndash; and was not reporting it to last.fm.&lt;/p&gt;&#xA;&lt;p&gt;I &lt;a href=&#34;http://www.jukie.net/~bart/patches/mpdscribble-0.2.10&amp;#43;streamable.patch&#34;&gt;patched the mpdscribble&lt;/a&gt;&#xA;utility and &lt;a href=&#34;http://www.last.fm/group/mpd/forum/16122/_/166600#f1928624&#34;&gt;posted about it&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Updated&amp;hellip;&lt;/strong&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>glGo on ubuntu/dapper amd64</title>
      <link>http://www.jukie.net/~bart/blog/glgo-on-dapper-amd64/</link>
      <pubDate>Thu, 07 Sep 2006 12:51:49 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/glgo-on-dapper-amd64/</guid>
      <description>&lt;p&gt;I started &lt;a href=&#34;http://www.pandanet.co.jp/English/&#34;&gt;playing go&lt;/a&gt;.  I tried cgoban and gtkgo.  Both&#xA;crashed a lot.  Then I tried &lt;a href=&#34;http://www.pandanet.co.jp/English/glgo/screenshots.html&#34;&gt;glGo&lt;/a&gt;&amp;hellip; it&amp;rsquo;s much better.&lt;/p&gt;</description>
    </item>
    <item>
      <title>lbdb and mutt</title>
      <link>http://www.jukie.net/~bart/blog/lbdb-and-mutt/</link>
      <pubDate>Wed, 06 Sep 2006 16:32:40 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/lbdb-and-mutt/</guid>
      <description>&lt;p&gt;I recently added an outgoing mail filter to capture the email addresses of people I write email to.  This saves me time on adding them to my address book manually.&lt;/p&gt;&#xA;&lt;p&gt;I ran into &lt;a href=&#34;http://mark.stosberg.com/Tech/mutt.html&#34;&gt;Mark&amp;rsquo;s Mutt Fan and Tip page&lt;/a&gt; and was pleased by the description of &lt;em&gt;lbdb&lt;/em&gt;.  I then found a way to write an &lt;a href=&#34;http://marc.10east.com/?l=mutt-users&amp;amp;m=101982014805783&amp;amp;w=2&#34;&gt;outgoing filter&lt;/a&gt; to capture email addresses as I send mail&amp;hellip; I wasn&amp;rsquo;t really interested in lbdb holding the forged SPAM addresses.&lt;/p&gt;</description>
    </item>
    <item>
      <title>vim tutorial</title>
      <link>http://www.jukie.net/~bart/blog/vim-tutorial/</link>
      <pubDate>Sat, 02 Sep 2006 14:56:43 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/vim-tutorial/</guid>
      <description>&lt;p&gt;I just joined the &lt;em&gt;#vim&lt;/em&gt; irc channel on freenode.  In the topic is suggested visiting &lt;a href=&#34;http://vi-improved.org/&#34;&gt;Vi-Improved.org&lt;/a&gt;.  This&#xA;site in turn had a pretty good tutorial, here are a couple related links:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;a href=&#34;http://vi-improved.org/tutorial.php&#34;&gt;Vim-Tutorial&lt;/a&gt;&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;http://www.geocities.com/volontir/&#34;&gt;Vim Regular Expressions&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;a href=&#34;http://amix.dk/blog/viewLabelPosts/5&#34;&gt;VIM Editor&lt;/a&gt; posts by Amir Salihefendic&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;http://amix.dk/blog/viewEntry/130&#34;&gt;Vim 7 - the graphical introduction&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;http://amix.dk/blog/viewEntry/159&#34;&gt;Workspace efficiency - Vim tip 1 of 3&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;http://amix.dk/blog/viewEntry/160&#34;&gt;Search don&amp;rsquo;t scroll - Vim tip 2 of 3&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;http://amix.dk/blog/viewEntry/162&#34;&gt;Taming your Vim config - Vim tip 3 of 3&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>fixing your terminal</title>
      <link>http://www.jukie.net/~bart/blog/stty-save/</link>
      <pubDate>Sat, 02 Sep 2006 13:57:22 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/stty-save/</guid>
      <description>&lt;p&gt;I sometimes get into an odd state in screen.  I am not sure what causes it, but it usually happens after I ctrl-C out of a console tool that&#xA;wanted to do something odd with termcap.  In this odd state the terminal no longer responds to the &lt;em&gt;default&lt;/em&gt; control characters, like ctrl-H for&#xA;erase.&lt;/p&gt;&#xA;&lt;p&gt;Usually running &lt;code&gt;reset&lt;/code&gt; does the trick and restores the terminal configuration.  Well in screen, I found, this does not always work.  I googled a bit&#xA;and found a pretty neat article titled &lt;a href=&#34;http://open.itworld.com/5040/nls_unix_usingsetty_060223/page_1.html&#34;&gt;Unix Tip: Using stty to Your Advantage&lt;/a&gt;,&#xA;which shows how to save the current state of the terminal and restore it later.&lt;/p&gt;</description>
    </item>
    <item>
      <title>apt-get pdiffs</title>
      <link>http://www.jukie.net/~bart/blog/apt-get-pdiffs/</link>
      <pubDate>Mon, 28 Aug 2006 12:47:13 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/apt-get-pdiffs/</guid>
      <description>&lt;p&gt;Debian/unstable apt-get has this feature called pdiff files (or pdiffs).  It downloads only the diffs between the previous day&amp;rsquo;s Packages and Sources indexes,&#xA;which claims to improve downloads for regular use.&lt;/p&gt;&#xA;&lt;p&gt;When you don&amp;rsquo;t update often you will find that your updates could take 30 minutes, plus.&lt;/p&gt;&#xA;&lt;p&gt;You can &lt;a href=&#34;http://nixdoc.net/files/forum/about167050-These-new-diffs-are-great--but.html&#34;&gt;disable use of pdiff files&lt;/a&gt; by running:&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;apt-get update -o Acquire::PDiffs=false&#xA;&lt;/code&gt;&lt;/pre&gt;</description>
    </item>
    <item>
      <title>256 colour xterms</title>
      <link>http://www.jukie.net/~bart/blog/256-colour-xterm/</link>
      <pubDate>Thu, 24 Aug 2006 22:48:42 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/256-colour-xterm/</guid>
      <description>&lt;p&gt;&lt;em&gt;Welcome to the 90&amp;rsquo;s!  256 colours are here!&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;It&amp;rsquo;s pretty sad.  I got really excited today when I read the &lt;a href=&#34;http://www.vim.org/tips/tip.php?tip_id=1312&#34;&gt;Tip #1312: 256 colors in vim&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;I quickly installed the few colour schemes listed in the &lt;em&gt;tip&lt;/em&gt; and was really impressed with the &lt;a href=&#34;http://www.vim.org/scripts/script.php?script_id=1143&#34;&gt;inkpot&lt;/a&gt;&#xA;scheme&amp;hellip; it&amp;rsquo;s pretty.&lt;/p&gt;</description>
    </item>
    <item>
      <title>dynamic IPcomp</title>
      <link>http://www.jukie.net/~bart/blog/dynamic-ipcomp/</link>
      <pubDate>Thu, 24 Aug 2006 15:26:58 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/dynamic-ipcomp/</guid>
      <description>&lt;p&gt;I just had a thought while reading over the KLIPS code and creating beautiful inkscape&#xA;diagrams from it ([see previous post]{20060824145428})&amp;hellip;&lt;/p&gt;&#xA;&lt;p&gt;Wouldn&amp;rsquo;t it be great if we had IPcomp that worked for all connections?  Your cpu is always&#xA;faster then the internet connection &amp;ndash; or at least it has been my case for the last decade&#xA;and a bit.&lt;/p&gt;&#xA;&lt;p&gt;So my idea was&amp;hellip; why not have IPcomp on all the time.  Assume the other host you want&#xA;to talk to has IPcomp enabled for TCP and UDP.  On the first packet we send, if they&#xA;don&amp;rsquo;t understand it, they will &lt;em&gt;hopefully&lt;/em&gt; send back an ICMP error and then we retransmit&#xA;the packet uncompressed.  For TCP that would be pretty trival, because TCP already&#xA;retransmits.  For UDP we would have to remember the IPs that we tried and have a way&#xA;to hold the packets before the verdict is known.&lt;/p&gt;</description>
    </item>
    <item>
      <title>inkscape&#43;&#43;</title>
      <link>http://www.jukie.net/~bart/blog/inkscape-plus-plus/</link>
      <pubDate>Thu, 24 Aug 2006 14:54:28 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/inkscape-plus-plus/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve never had to do any illustration work, so I never tried inkscape, even though it&amp;rsquo;s&#xA;been around for quite some time.&lt;/p&gt;&#xA;&lt;p&gt;Today, I decided that I should make my flowchart in svg.  It&amp;rsquo;s pretty easy to view and&#xA;supposed to be supported by most browsers.  Inkscape seemed the logical choice for doing&#xA;svg images&amp;hellip; even though I&amp;rsquo;ve never really used it, or any alternatives.&lt;/p&gt;&#xA;&lt;p&gt;My first impression was: &lt;strong&gt;wow someone actually thought about the users&lt;/strong&gt;.  Everything in&#xA;inkscape is accessible via keyboard shortcuts&amp;hellip; well, everything I tried to use so far.&lt;/p&gt;</description>
    </item>
    <item>
      <title>tags/cscope for system headers</title>
      <link>http://www.jukie.net/~bart/blog/usr-include-tags/</link>
      <pubDate>Fri, 18 Aug 2006 15:05:16 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/usr-include-tags/</guid>
      <description>&lt;p&gt;I love tags files for in coding, and enjoy using the tag feature in [vim]{tag/vim} as well as the derived&#xA;tag-based completion.  I do a lot of my development in the kernel, so all I usually have to do is&#xA;put /usr/src/linux into my vim tags configuration.&lt;/p&gt;&#xA;&lt;p&gt;Sometimes I have to do some user space hacking too, and I often forget all the names of &lt;em&gt;glib&lt;/em&gt; and &lt;em&gt;pthread&lt;/em&gt; library&#xA;functions.  Having a system wide tags file is very very useful.  Below is a Makefile that I carry around with me&#xA;and place in /usr/include to keep my system tags in sync.&lt;/p&gt;</description>
    </item>
    <item>
      <title>opteron 170, part 4</title>
      <link>http://www.jukie.net/~bart/blog/opteron-170-p4/</link>
      <pubDate>Sat, 05 Aug 2006 13:15:57 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/opteron-170-p4/</guid>
      <description>&lt;p&gt;I am getting [sick]{20060805101941} [of]{20060803233234} [this]{20060802210126}.  It froze again.&lt;/p&gt;&#xA;&lt;p&gt;So to date I have disabled swapped out the motherboard (but still have the same NForce4 chipset),&#xA;enabled all sorts of &lt;em&gt;debug&lt;/em&gt; features in the kernek, removed the Nforce4 network card (based on&#xA;a hint on a web forum), and put in a PCI NIC.  It&amp;rsquo;s still unstable.&lt;/p&gt;&#xA;&lt;p&gt;I had noticed that it never froze under console, just under X.  The next attempt is to disable&#xA;&lt;em&gt;DRM&lt;/em&gt;.  I did this through the xorg.conf&amp;hellip; let&amp;rsquo;s see what happens next.  I am no longer optimistic.&lt;/p&gt;</description>
    </item>
    <item>
      <title>opteron 170, part 3</title>
      <link>http://www.jukie.net/~bart/blog/opteron-170-p3/</link>
      <pubDate>Sat, 05 Aug 2006 10:19:41 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/opteron-170-p3/</guid>
      <description>&lt;p&gt;Over the last [few]{20060802210126} [days]{20060803233234}, I have been experiencing odd crashes.  I have been able to&#xA;narrow it down to network activity.  Most of the time this has been triggered with NFS access; I assume that&#xA;it has something to do with large UDP fragments; my MTU is 1500.&lt;/p&gt;&#xA;&lt;p&gt;The last couple of days I have had a serial console connected to the machine, and my laptop standing by waiting for&#xA;another crash.  It occurred, but something really bad happened because on the console I only got:&lt;/p&gt;</description>
    </item>
    <item>
      <title>opteron 170, part 2</title>
      <link>http://www.jukie.net/~bart/blog/opteron-170-p2/</link>
      <pubDate>Thu, 03 Aug 2006 23:32:34 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/opteron-170-p2/</guid>
      <description>&lt;p&gt;[Yesterday]{20060802210126}, I wrote about how my Opteron 170 was crashing at random times.  Today I have a working&#xA;system.&lt;/p&gt;</description>
    </item>
    <item>
      <title>opteron 170</title>
      <link>http://www.jukie.net/~bart/blog/opteron-170/</link>
      <pubDate>Wed, 02 Aug 2006 21:01:26 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/opteron-170/</guid>
      <description>&lt;p&gt;My new shiny Opteron 170 just came in.  I used to say that &lt;em&gt;Opteron 1xx&lt;/em&gt; line was a waste of money because it was basically the Athlon64&#xA;but more expensive because of the Opteron branding.  Recently AMD made the choice easier by dropping dual-core Athlon64 processors with&#xA;2M of L2 cache.  The last line of Athlon64 S939 will have a 512k L2 cache.  That&amp;rsquo;s a mere 256k per core.  And isn&amp;rsquo;t that only twice the&#xA;size of the L1 cache?  yuck!&lt;/p&gt;&#xA;&lt;p&gt;So, I blew the extra $300 on the extra 1.5M of L2 cache.&lt;/p&gt;</description>
    </item>
    <item>
      <title>OLS keysigning / 2006</title>
      <link>http://www.jukie.net/~bart/blog/ols-keysigning-2006/</link>
      <pubDate>Sat, 29 Jul 2006 14:41:29 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/ols-keysigning-2006/</guid>
      <description>&lt;p&gt;I think this year&amp;rsquo;s key post-&lt;em&gt;keysigning-party&lt;/em&gt; work was the least effort ever.  I wanted to write down the procedure for anyone interested.&lt;/p&gt;&#xA;&lt;p&gt;First a few assumptions:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;you have been given a file that contains the fingerprints and names of everyone that attended the keysigning party,&lt;/li&gt;&#xA;&lt;li&gt;you verified the file&amp;rsquo;s sha1 sum at the event,&lt;/li&gt;&#xA;&lt;li&gt;this file&amp;rsquo;s sha1 sum was verified at the event by everyone whose keys you want to sign,&lt;/li&gt;&#xA;&lt;li&gt;you trust that the people whose keys you are signing did not lie about checking the sha1 sum of the file.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;A tool that make sthings easier is &lt;a href=&#34;http://pgp-tools.alioth.debian.org/&#34;&gt;caff&lt;/a&gt; and &lt;a href=&#34;http://gnupg.org/&#34;&gt;gpg-agent&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>git-find findings</title>
      <link>http://www.jukie.net/~bart/blog/git-find-findings/</link>
      <pubDate>Fri, 28 Jul 2006 10:55:00 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/git-find-findings/</guid>
      <description>&lt;p&gt;So I have a simple &lt;a href=&#34;http://gitweb.jukie.net/git-find.git&#34;&gt;git-find&lt;/a&gt; working, and now I want to use&#xA;it to rip out some patches I am interested in.  The repository I am working on has a lot of uninteresting deltas&#xA;in it that I don&amp;rsquo;t care about.  I am actually only interesting in backporting an interface change in one file&#xA;from the &lt;code&gt;klipsng&lt;/code&gt; branch:&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;    $ git-find klipsng --file linux/net/ipsec/ipsec_sa.c&#xA;    ...&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;This works as advertised, I get a list of revisions that altered that file.  The current git command line parsing&#xA;does not allow me to do much with this however.&lt;/p&gt;</description>
    </item>
    <item>
      <title>starting on git-find</title>
      <link>http://www.jukie.net/~bart/blog/starting-git-find/</link>
      <pubDate>Thu, 27 Jul 2006 16:29:41 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/starting-git-find/</guid>
      <description>&lt;p&gt;So I am giving myself some time to write a &lt;code&gt;git-find&lt;/code&gt; script that I can use to feed&#xA;commits to another tool, like &lt;code&gt;git-graft&lt;/code&gt; (or &lt;code&gt;git-cherry-pick&lt;/code&gt;).&lt;/p&gt;&#xA;&lt;p&gt;I don&amp;rsquo;t really know what I am doing yet, so I want to survey what is available in&#xA;&lt;code&gt;git-*&lt;/code&gt; tools and reuse as much of the available features.&lt;/p&gt;</description>
    </item>
    <item>
      <title>git-graft and git-find brainstorm</title>
      <link>http://www.jukie.net/~bart/blog/git-graft-brainstorm/</link>
      <pubDate>Thu, 27 Jul 2006 11:36:32 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/git-graft-brainstorm/</guid>
      <description>&lt;p&gt;I want to be able to take a bunch of patches that were applied to one &lt;em&gt;semi-related&lt;/em&gt;&#xA;branch and appened them to the current branch, or better yet a new branch of the&#xA;current.  The &lt;em&gt;bunch of patches&lt;/em&gt; will be selected by what they change; I should&#xA;be able to graft all patches that modify some file, or modify some regular expression.&lt;/p&gt;&#xA;&lt;p&gt;Here is what I mean:&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt; ,-----X---X---X---X--- ... ---             &amp;quot;historical&amp;quot; branch&#xA;o&#xA; `--------------------Y                     &amp;quot;current&amp;quot; branch&#xA;                       \&#xA;                        `---Z---Z---...     &amp;quot;working&amp;quot; branch&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;You start off at &lt;code&gt;current&lt;/code&gt; branch and run something like:&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;git-find historical --file some_file.c --or --re &#39;some pattern&#39; \&#xA;| git-graft --new-branch working -&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;This will let me take the interesting subset of &lt;code&gt;X&lt;/code&gt; commits and apply them at some&#xA;point &lt;code&gt;Y&lt;/code&gt;.  Should the patches &lt;code&gt;X&lt;/code&gt; cause conflicts with the &lt;code&gt;current&lt;/code&gt; branch, then&#xA;&lt;code&gt;git-graft&lt;/code&gt; needs to let the user resolve those conflicts a patch at a time.  The&#xA;default is to apply onto the &lt;code&gt;current&lt;/code&gt; branch, however if desired it should be&#xA;possible to create the changes on a new, &lt;code&gt;working&lt;/code&gt;, branch.  The result is a new&#xA;set of &lt;code&gt;Z&lt;/code&gt; commits, as shown above.&lt;/p&gt;</description>
    </item>
    <item>
      <title>pretty function tracing</title>
      <link>http://www.jukie.net/~bart/blog/pretty-function-tracing/</link>
      <pubDate>Wed, 26 Jul 2006 22:45:31 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/pretty-function-tracing/</guid>
      <description>&lt;p&gt;I wanted to see how different functions got used in a block of code that I was new to&amp;hellip; and was having a hard time understanding.  My UML instance was acting flaky and didn&amp;rsquo;t&#xA;cooperate with gdb, so I could not single step the code.&lt;/p&gt;&#xA;&lt;p&gt;I added a small chunk of C code to generate pretty tracing that looks like this:&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;    ,-&amp;lt; ipsec_sa_wipe:946&#xA;    | ,-&amp;lt; ipsec_sa_put:549&#xA;    | `-&amp;gt; ipsec_sa_put:561 = 0&#xA;    `-&amp;gt; ipsec_sa_wipe:1054 = 0&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;Functions can nest upto 25 times (arbitrary max) and after that it stops indenting nicely.  The code has to be modified so that at the entry of each block there is a call to the&#xA;&lt;code&gt;IN&lt;/code&gt; macro, and on the exit to the  &lt;code&gt;OUT&lt;/code&gt; macro.  Here is an example:&lt;/p&gt;</description>
    </item>
    <item>
      <title>uml and multiple network segments</title>
      <link>http://www.jukie.net/~bart/blog/uml-multiple-segments/</link>
      <pubDate>Thu, 13 Jul 2006 17:47:23 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/uml-multiple-segments/</guid>
      <description>&lt;p&gt;I am doing a lot of network testing and require multiple virtual networks&#xA;created for my UML&amp;rsquo;s.  Debian&amp;rsquo;s uml-utilities package does not currently support&#xA;bringing up multiple network segments, although the uml_switch daemon can&#xA;be ran multiple times.  In such a setup each uml_switch is associated with&#xA;it&amp;rsquo;s own tapX device and maintains one network segment.&lt;/p&gt;&#xA;&lt;p&gt;I modified two files:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;http://www.jukie.net/~bart/debian/uml/utilities/init.d-uml-utilities&#34;&gt;/etc/init.d/uml-utilities&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;http://www.jukie.net/~bart/debian/uml/utilities/default-uml-utilities&#34;&gt;/etc/default/uml-utilities&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;And filed bug &lt;a href=&#34;http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=378166&#34;&gt;378166&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>lastfm artist and title to clipboard</title>
      <link>http://www.jukie.net/~bart/blog/lastfm-xclip-ion3/</link>
      <pubDate>Fri, 07 Jul 2006 18:22:36 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/lastfm-xclip-ion3/</guid>
      <description>&lt;p&gt;Sharing your current [last.fm]{tag/lastfm} track on irc in realtime is very important.  :)  Here is a ion3 binding that will use &lt;code&gt;xclip&lt;/code&gt; to&#xA;copy the current track info into the X clipboard.&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;    defbindings(&amp;quot;WScreen&amp;quot;, {&#xA;            kpress(&amp;quot;Mod4+grave&amp;quot;, &amp;quot;ioncore.exec(&#39;echo player/currentlyPlaying | nc localhost 32213 | xclip -i&#39;)&amp;quot;),&#xA;    })&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;Put it in &lt;code&gt;~/.ion3/cfg_user.lua&lt;/code&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>reverting a git changeset</title>
      <link>http://www.jukie.net/~bart/blog/manual-git-revert/</link>
      <pubDate>Thu, 06 Jul 2006 16:22:56 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/manual-git-revert/</guid>
      <description>&lt;p&gt;I accidentally committed a changeset without a description and wanted to fix it.  As I was pushing enter I&#xA;realized that I didn&amp;rsquo;t want to commit yet.  I have not pushed anywhere &amp;ndash; an important requirement for this kind of revert.&lt;/p&gt;&#xA;&lt;p&gt;I basically want to do a &lt;code&gt;bk fix -c&lt;/code&gt; (if I recall my &lt;em&gt;bk&lt;/em&gt; correctly).&lt;/p&gt;&#xA;&lt;p&gt;Since &lt;code&gt;git revert&lt;/code&gt; pollutes the history, it is not the right thing to do here since the &lt;em&gt;bad&lt;/em&gt; changeset was not pushed.&#xA;But it would be the right thing to do had I pushed my change.&lt;/p&gt;</description>
    </item>
    <item>
      <title>user #3</title>
      <link>http://www.jukie.net/~bart/blog/vimblog-user-number-3/</link>
      <pubDate>Thu, 29 Jun 2006 21:20:03 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/vimblog-user-number-3/</guid>
      <description>&lt;p&gt;Wow! vimblog has a &lt;a href=&#34;http://www.anomalistic.org/blog/&#34;&gt;new user&lt;/a&gt;.  Welcome, Eugene, to the world of [vimblog]{tag/meta} :)&lt;/p&gt;</description>
    </item>
    <item>
      <title>firefox crashes with form input</title>
      <link>http://www.jukie.net/~bart/blog/firefox-crashes-with-form-input/</link>
      <pubDate>Wed, 28 Jun 2006 08:34:56 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/firefox-crashes-with-form-input/</guid>
      <description>&lt;p&gt;I ran into a strange bug with firefox locking up each time I pushed a form submit button.  When I ran it from the console I had an endless stream of:&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;    mork warning: unexpected byte in ReadContent()&#xA;    mork warning: unexpected byte in ReadContent()&#xA;    mork warning: unexpected byte in ReadContent()&#xA;    mork warning: unexpected byte in ReadContent()&#xA;    mork warning: unexpected byte in ReadContent()&#xA;    mork warning: unexpected byte in ReadContent()&#xA;    mork warning: unexpected byte in ReadContent()&#xA;    mork warning: unexpected byte in ReadContent()&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;Googling for it revealed an &lt;a href=&#34;http://lists.freebsd.org/pipermail/freebsd-ports/2005-January/019341.html&#34;&gt;intresting thread&lt;/a&gt; which dates this bug to firefox 1.0.  Grr.&lt;/p&gt;</description>
    </item>
    <item>
      <title>git vs hg</title>
      <link>http://www.jukie.net/~bart/blog/git-vs-hg/</link>
      <pubDate>Wed, 21 Jun 2006 15:14:02 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/git-vs-hg/</guid>
      <description>&lt;p&gt;After working almost exclusively with &lt;a href=&#34;http://git.or.cz/&#34;&gt;git&lt;/a&gt; for a few months, I had to do some work&#xA;on a freebsd kernel.  The freebsd kernel is maintained in &lt;a href=&#34;http://www.selenic.com/mercurial&#34;&gt;mercurial&lt;/a&gt;. I&#xA;noticed right away a few features that I have started to take for granted with git.&lt;/p&gt;</description>
    </item>
    <item>
      <title>ldap account management</title>
      <link>http://www.jukie.net/~bart/blog/filter-ldap-accounts-by-host/</link>
      <pubDate>Mon, 12 Jun 2006 22:22:04 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/filter-ldap-accounts-by-host/</guid>
      <description>&lt;p&gt;Ok, so in [last eppisode]{ldap-upgrade-to-2.3.23-brakage} we looked at how my Debian/testing upgrade of &lt;code&gt;slapd&lt;/code&gt; killed my&#xA;slapd install because I was using two incompatible schemas.&lt;/p&gt;&#xA;&lt;p&gt;Now, I will show you how to limit what accounts are accessible to pam_ldap module on each host.&lt;/p&gt;</description>
    </item>
    <item>
      <title>stupid ldap</title>
      <link>http://www.jukie.net/~bart/blog/ldap-upgrade-to-2.3.23-brakage/</link>
      <pubDate>Mon, 12 Jun 2006 19:45:23 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/ldap-upgrade-to-2.3.23-brakage/</guid>
      <description>&lt;p&gt;For some very stupid reason I decided to upgrade my fileserver, which happens to run my ldap database as well.&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;Setting up slapd (2.3.23-1) ...&#xA;  Backing up /etc/ldap/slapd.conf in /var/backups/slapd-2.2.26-5... done.&#xA;  Moving old database directories to /var/backups:&#xA;&#xA;  Backup path /var/backups/dc=jukie-2.2.26-5.ldapdb exists. Giving up...&#xA;dpkg: error processing slapd (--configure):&#xA; subprocess post-installation script returned error exit status 1&#xA;Errors were encountered while processing:&#xA; slapd&#xA;E: Sub-process /usr/bin/dpkg returned an error code (1)&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;&lt;em&gt;Frig!&lt;/em&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>rpm hell is right</title>
      <link>http://www.jukie.net/~bart/blog/rpm-hell-is-right/</link>
      <pubDate>Thu, 08 Jun 2006 09:21:57 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/rpm-hell-is-right/</guid>
      <description>&lt;p&gt;Joey Hess &lt;a href=&#34;http://kitenet.net/~joey/blog/entry/rpm_hell.html&#34;&gt;blogs&lt;/a&gt; about &lt;a href=&#34;https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=119185&#34;&gt;bug 119185&lt;/a&gt; in the Red Hat bugzilla.&lt;/p&gt;&#xA;&lt;p&gt;Wow!  Talk about screwing your users.  I am not sure if &lt;em&gt;Jeff Johnson&lt;/em&gt; speaks for Red Hat.  If he does, why would anyone want to use a Red Hat (or Red Hat based) distro.&lt;/p&gt;&#xA;&lt;p&gt;The rpm bug is one thing, but treating your client this poorly is awful.  I am surprised how patient &lt;em&gt;Tethys&lt;/em&gt;, the poster, was about the whole process.  It is clear that he feels more strongly about the quality of the product then the vendor does.&lt;/p&gt;</description>
    </item>
    <item>
      <title>OpenSSH VPNs</title>
      <link>http://www.jukie.net/~bart/blog/openssh-vpn/</link>
      <pubDate>Mon, 05 Jun 2006 09:57:26 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/openssh-vpn/</guid>
      <description>&lt;p&gt;Long time ago, I wrote a brief howto on &lt;a href=&#34;http://www.jukie.net/~bart/security/vpn/&#34;&gt;SSH + PPP = VPN&lt;/a&gt; (don&amp;rsquo;t use it).  Today I found out that as of version 3.4 &lt;a href=&#34;http://www.openbsd.org/cgi-bin/man.cgi?query=ssh&#34;&gt;OpenSSH&lt;/a&gt; supports VPN features.  That is, you can &lt;a href=&#34;http://marc2.theaimsgroup.com/?l=secure-shell&amp;amp;m=114467685608028&amp;amp;w=2&#34;&gt;create a tun device and route packets through your ssh connection&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;That&amp;rsquo;s pretty neat if you only have ssh to go with.  But pretty crappy because you need root on both ends, and if you have root on both ends you can gowith IPSEC or OpenVPN/tinc/cipe/etc.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Lenovo lost a customer</title>
      <link>http://www.jukie.net/~bart/blog/lenovo-drops-linux/</link>
      <pubDate>Sun, 04 Jun 2006 11:43:17 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/lenovo-drops-linux/</guid>
      <description>&lt;p&gt;After reading that &lt;a href=&#34;http://www.crn.com/sections/infrastructure/infrastructure.jhtml?articleId=188701277&#34;&gt;Lenovo will not install or support the Linux operating system&lt;/a&gt;&#xA;on &lt;a href=&#34;http://hardware.slashdot.org/article.pl?sid=06/06/04/0415221&amp;amp;from=rss&#34;&gt;Slashdot&lt;/a&gt; I decided&#xA;that chances are good my next laptop will not be a black one.&lt;/p&gt;</description>
    </item>
    <item>
      <title>generating html colourized sourcecode</title>
      <link>http://www.jukie.net/~bart/blog/generating-colourized-source-html/</link>
      <pubDate>Thu, 01 Jun 2006 23:40:10 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/generating-colourized-source-html/</guid>
      <description>&lt;p&gt;I wanted to have vim colouring of source files in html format.  There is&#xA;&lt;a href=&#34;http://search.cpan.org/~geoffr/Text-VimColor/lib/Text/VimColor.pm&#34;&gt;Text::VimColor&lt;/a&gt;&#xA;perl module, but it&amp;rsquo;s not in Debian.&lt;/p&gt;&#xA;&lt;p&gt;Vim has a &lt;code&gt;:TOhtml&lt;/code&gt; command (see &lt;a href=&#34;http://www.vim.org/htmldoc/syntax.html&#34;&gt;:h syntax&lt;/a&gt;). I wrote a &lt;a href=&#34;http://www.jukie.net/~bart/scripts/tohtml/&#34;&gt;tohtml&lt;/a&gt; shell script to solve the problem using &lt;code&gt;:TOhtml&lt;/code&gt;.  And yes, the html was generated with itself.&lt;/p&gt;</description>
    </item>
    <item>
      <title>ion3 greatness and acting on X selections</title>
      <link>http://www.jukie.net/~bart/blog/ion3-selection/</link>
      <pubDate>Thu, 01 Jun 2006 21:17:16 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/ion3-selection/</guid>
      <description>&lt;p&gt;So it turns out that I have not blogged about [ion3]{tag/ion3} yet.  I&amp;rsquo;ve been using ion3 as my window manager for about half a year, and I still love it.  It&amp;rsquo;s fast, does not requrie a mouse for most tasks, and has very powerful scripting and keyboard binding capabilities.  But enough about the greatness of ion3&amp;hellip; and onto the rest of the story&amp;hellip;&lt;/p&gt;&#xA;&lt;p&gt;For some time I wanted to have a magic key binding that would do &lt;em&gt;something&lt;/em&gt; &amp;ndash; &lt;strong&gt;anything&lt;/strong&gt; &amp;ndash; with my X selection.  Say, I highlight a URL and push this magic key, it should display it in a new browser tab.  If I highlight what looks to be a valid file, it should launch gvim on it, etc.  I previously tried with sawfish, but I suffer from a serious condition that causes me to vomit when I look at lisp-like languages &amp;ndash; one of the reasons I abandoned emacs years ago.&lt;/p&gt;&#xA;&lt;p&gt;It was pretty easy in ion.  Below is my [lua]{tag/lua} code to implement what I described&amp;hellip;&lt;/p&gt;</description>
    </item>
    <item>
      <title>software RAID10 performance</title>
      <link>http://www.jukie.net/~bart/blog/raid10-performance/</link>
      <pubDate>Fri, 26 May 2006 08:56:44 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/raid10-performance/</guid>
      <description>&lt;p&gt;A buddy of mine works at IBM, he has a big ass SCSI raid array (DS300) on which he runs RAID5 (which is bad, BTW).  He wanted to know what the overhead of running software &lt;a href=&#34;http://en.wikipedia.org/wiki/Redundant_array_of_independent_disks#RAID_10&#34;&gt;RAID10&lt;/a&gt; (aka RAID1+0) on this system would be.  &lt;a href=&#34;http://phobos.ca/mediawiki/index.php/Disc_Performance_Benchmark&#34;&gt;His numbers are here&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>learning to love git</title>
      <link>http://www.jukie.net/~bart/blog/learning-to-love-git/</link>
      <pubDate>Thu, 25 May 2006 23:41:48 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/learning-to-love-git/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve been working for &lt;a href=&#34;http://www.xelerance.com/&#34;&gt;Xelerance&lt;/a&gt;, &lt;a href=&#34;http://www.sandelman.ca/mcr/&#34;&gt;mcr&lt;/a&gt;&amp;rsquo;s company, for a couple of weeks now.  The project I am working on is mostly bringing KLIPS, &lt;a href=&#34;http://www.openswan.org/&#34;&gt;openswan&lt;/a&gt; ipsec kernel module, into the 21st centry.  Since KLIPS is a patch against the &lt;a href=&#34;http://kernel.org/git/&#34;&gt;Linux kernel&lt;/a&gt;, it makes sense to keep it in &lt;a href=&#34;http://git.or.cz/&#34;&gt;git&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>recent vim7 articles</title>
      <link>http://www.jukie.net/~bart/blog/recent-vim7-articles/</link>
      <pubDate>Wed, 24 May 2006 12:16:38 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/recent-vim7-articles/</guid>
      <description>&lt;p&gt;Vim7 was recently released, and there have been several very nice articles by &lt;a href=&#34;http://www.dissociatedpress.net/&#34;&gt;Joe &amp;lsquo;Zonker&amp;rsquo; Brockmeier&lt;/a&gt;.  Here is the listing:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;http://applications.linux.com/article.pl?sid=06/05/01/2235242&amp;amp;tid=13&#34;&gt;First look at Vim 7&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;http://applications.linux.com/article.pl?sid=06/05/04/1544258&amp;amp;tid=13&#34;&gt;Vim tips: Using viewports&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;http://applications.linux.com/article.pl?sid=06/05/04/1648245&amp;amp;tid=13&#34;&gt;Vim tips: Moving around using marks and jumps&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;http://applications.linux.com/article.pl?sid=06/05/18/1915233&amp;amp;tid=13&#34;&gt;Vim tips: Folding fun&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;If you want to see more on vim, read the &lt;a href=&#34;http://www.vim.org/tips/index.php&#34;&gt;vim tips&lt;/a&gt; on &lt;a href=&#34;http://www.vim.org/&#34;&gt;vim.org&lt;/a&gt; site.&lt;/p&gt;</description>
    </item>
    <item>
      <title>bootstrapping debian on my sbc</title>
      <link>http://www.jukie.net/~bart/blog/sbc-bootstrap-with-debian/</link>
      <pubDate>Tue, 16 May 2006 09:57:48 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/sbc-bootstrap-with-debian/</guid>
      <description>&lt;p&gt;So my [sbc]{tag/sbc} of choice these days is the&#xA;&lt;a href=&#34;http://www.pcengines.ch/wrap.htm&#34;&gt;WRAP&lt;/a&gt;&#xA;&lt;a href=&#34;http://www.pcengines.ch/pic/wrap1c2.jpg&#34;&gt;1C-2&lt;/a&gt;.  This model is powered by a&#xA;266Mhz Geode and has 128M of RAM, a CF reader, 1 mini-PCI slot, a serial console&#xA;and 3 10/100 Mbit NICs.  I get mine (I have three now) from&#xA;&lt;a href=&#34;http://www.xagyl.com/&#34;&gt;Xagyl Communications&lt;/a&gt;.  Each was about $200.&lt;/p&gt;&#xA;&lt;p&gt;This entry talks about bootstrapping debian onto a CF card.&lt;/p&gt;</description>
    </item>
    <item>
      <title>entropy injection</title>
      <link>http://www.jukie.net/~bart/blog/entropy-injection-driver/</link>
      <pubDate>Fri, 28 Apr 2006 14:51:40 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/entropy-injection-driver/</guid>
      <description>&lt;p&gt;I was installing openswan on my [sbc]{tag/sbc} router box.  The sbc doesn&amp;rsquo;t have much hardware on it, and what it does&#xA;have did not contribute to the entropy pool.&lt;/p&gt;&#xA;&lt;p&gt;I have a few boxes around with relatively good entropy (keyboard/mouse input), but there was no way to pass&#xA;that entropy to the router for RSA key generation.  I had to write some code to fix it.  Be warned, it&amp;rsquo;s&#xA;pretty &lt;strong&gt;EVIL&lt;/strong&gt;&amp;hellip;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;UPDATE:&lt;/strong&gt; see below about &lt;em&gt;rng-tools&lt;/em&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Adam</title>
      <link>http://www.jukie.net/~bart/blog/adam-is-born/</link>
      <pubDate>Sun, 23 Apr 2006 14:06:28 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/adam-is-born/</guid>
      <description>&lt;p&gt;Jen gave birth to our baby boy at 1:09 PM April 19th, 2006.  Adam was born&#xA;weighing 8 lb 13 oz (4 kg) and is 22 in (55 cm) long.  It was an&#xA;unexpectedly quick delivery, which was most welcomed by the mom.&lt;/p&gt;&#xA;&lt;p&gt;After spending just over a day at the Civic Hospital, we returned home&#xA;and are getting to know our Adam.  &lt;a href=&#34;http://gallery.jukie.net/adam&#34;&gt;Adam&amp;rsquo;s gallery page&lt;/a&gt;&#xA;is where you will find some of the first few pictures of Adam&amp;hellip; there will be many more to come.&#xA;As you can see Kelly is thrilled of her new role as the big sister.&lt;/p&gt;</description>
    </item>
    <item>
      <title>converting mp3s to CD</title>
      <link>http://www.jukie.net/~bart/blog/converting-mp3s-to-cd/</link>
      <pubDate>Fri, 14 Apr 2006 20:25:07 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/converting-mp3s-to-cd/</guid>
      <description>&lt;p&gt;How to convert 22kHz mp3 to a CD playable in a CD player.  Not the most spectacular&#xA;task, but I had to do some digging to figure it out.  And I might as well write it down&#xA;for the next time :)&lt;/p&gt;</description>
    </item>
    <item>
      <title>secure apt-get</title>
      <link>http://www.jukie.net/~bart/blog/secure-apt-get/</link>
      <pubDate>Thu, 13 Apr 2006 23:28:36 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/secure-apt-get/</guid>
      <description>&lt;p&gt;Debiean-heads might find it interesting that &lt;a href=&#34;http://kitenet.net/~joey&#34;&gt;Joey Hess&lt;/a&gt; has produced a&#xA;detailed &lt;a href=&#34;http://wiki.debian.org/SecureApt&#34;&gt;SecureApt&lt;/a&gt; article on how to use security features&#xA;of &lt;em&gt;apt-get&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;p&gt;The particularly interesting bits are:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;details about the security levels put into packages&lt;/li&gt;&#xA;&lt;li&gt;examples of how &lt;em&gt;apt-key&lt;/em&gt; aught to be used&lt;/li&gt;&#xA;&lt;li&gt;timeline that the debian pgp keys will adhere to&lt;/li&gt;&#xA;&lt;li&gt;problems to be avoided and symptoms you will see if you have &amp;rsquo;em&lt;/li&gt;&#xA;&lt;li&gt;links to relevant documentation&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>xen domain0 on debian</title>
      <link>http://www.jukie.net/~bart/blog/debian-xen-dom0/</link>
      <pubDate>Wed, 12 Apr 2006 19:44:23 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/debian-xen-dom0/</guid>
      <description>&lt;p&gt;This is part of my [xen box setup]{rtag/xen-box-setup} &amp;ldquo;series&amp;rdquo;.&lt;/p&gt;&#xA;&lt;p&gt;Xen domain 0 (or &lt;em&gt;dom0&lt;/em&gt;) is special. It starts up all the other xen hosts and, be it&#xA;by a rule or simply by convention, it tends to run all the drivers.&lt;/p&gt;&#xA;&lt;p&gt;I have already covered how I [partitioned my disk]{lvm2-on-raid1}.&#xA;Let&amp;rsquo;s now start with this fresh install of debian/testing and get a xen &lt;em&gt;dom0&lt;/em&gt; running&#xA;on top of it.  The following steps assume that the system:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;is a 32bit x86 box running debian/testing&lt;/li&gt;&#xA;&lt;li&gt;has RAID1 devices configured as per my [LVM2 on RAID1]{lvm2-on-raid1} writeup&lt;/li&gt;&#xA;&lt;li&gt;uses grub for a bootloader&lt;/li&gt;&#xA;&lt;li&gt;was booting a recent 2.6.x kernel&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>LVM2 on RAID1 mirror</title>
      <link>http://www.jukie.net/~bart/blog/lvm2-on-raid1/</link>
      <pubDate>Mon, 10 Apr 2006 22:05:25 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/lvm2-on-raid1/</guid>
      <description>&lt;p&gt;This is part of my [xen box setup]{rtag/xen-box-setup} &amp;ldquo;series&amp;rdquo;. :)&lt;/p&gt;&#xA;&lt;p&gt;I&amp;rsquo;ve installed debian on a RAID1 device, &lt;code&gt;/dev/md0&lt;/code&gt;.  This takes up a fraction of the disk,&#xA;and my plan is to create a large LVM2 group on another RAID1 that I can use to dynamically&#xA;create devices for my xen domains.&lt;/p&gt;</description>
    </item>
    <item>
      <title>building a RHEL4 kernel with kdb support</title>
      <link>http://www.jukie.net/~bart/blog/building-a-rhel4-kernel-with-kdb-support/</link>
      <pubDate>Mon, 10 Apr 2006 10:28:24 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/building-a-rhel4-kernel-with-kdb-support/</guid>
      <description>&lt;p&gt;Sometimes I have a need to reproduce bugs on other platforms.  When that platform uses a heavily patched kernel, it makes it hard to debug.  Below are some notes I took while building a RHEL4 kernel with &lt;a href=&#34;http://oss.sgi.com/projects/kdb/faq.html&#34;&gt;kdb support&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>xen on debian</title>
      <link>http://www.jukie.net/~bart/blog/xen-on-debian/</link>
      <pubDate>Fri, 07 Apr 2006 23:09:39 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/xen-on-debian/</guid>
      <description>&lt;p&gt;I decided to try out xen on my development / test box.  I will write a bit more about what I did, but first here are some links:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Upgraded look</title>
      <link>http://www.jukie.net/~bart/blog/upgraded-look/</link>
      <pubDate>Fri, 07 Apr 2006 23:08:18 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/upgraded-look/</guid>
      <description>&lt;p&gt;I switched to Dave&amp;rsquo;s perl version of my blog.  The old blog is still &lt;a href=&#34;http://www.jukie.net/~bart/blog-old/&#34;&gt;available here&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;One of the cool additions from his &lt;a href=&#34;http://www.dmo.ca/hg/hgwebdir.cgi/vimblog&#34;&gt;mercurial tree&lt;/a&gt; was support for&#xA;&lt;a href=&#34;http://daringfireball.net/projects/markdown/syntax&#34;&gt;Markdown&lt;/a&gt;.  Which makes generating html easier.&lt;/p&gt;&#xA;&lt;p&gt;When I make changes to the source, I will publish my changes in &lt;a href=&#34;http://www.jukie.net/~bart/hg/hgwebdir.cgi/vimblog&#34;&gt;my mercurial tree&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Thanks Dave!&lt;/p&gt;</description>
    </item>
    <item>
      <title>Flattered by a copy</title>
      <link>http://www.jukie.net/~bart/blog/flattered-by-a-copy/</link>
      <pubDate>Thu, 30 Mar 2006 13:13:34 -0500</pubDate>
      <guid>http://www.jukie.net/~bart/blog/flattered-by-a-copy/</guid>
      <description>&lt;p&gt;&#xA;&lt;a href=http://www.dmo.ca/&gt;Dave&lt;/a&gt; had recently rewritten my PHP blog in&#xA;&#34;&lt;a href=http://www.dmo.ca/blog/20060330075857&gt;a real language&lt;/a&gt;&#34; (perl).&#xA;&lt;/p&gt;&#xA;&lt;p&gt;&#xA;I think I will be switching to his version soon.  Still waiting on him to&#xA;&lt;a href=http://www.dmo.ca/hg/hgwebdir.cgi&gt;export the HG tree&lt;/a&gt;&#xA;&lt;/p&gt;</description>
    </item>
    <item>
      <title>vim7 from source</title>
      <link>http://www.jukie.net/~bart/blog/vim7-from-source/</link>
      <pubDate>Tue, 28 Mar 2006 16:51:53 -0500</pubDate>
      <guid>http://www.jukie.net/~bart/blog/vim7-from-source/</guid>
      <description>&lt;p&gt;I found a bug in vim6.4 (my comment block was too big and the line after the comment block was not left-justified) and wanted to see if vim7 had a fix.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Perl, Catalyst, CPAN, and Debian</title>
      <link>http://www.jukie.net/~bart/blog/perl-catalyst-cpan-and-debian/</link>
      <pubDate>Wed, 08 Mar 2006 12:35:39 -0500</pubDate>
      <guid>http://www.jukie.net/~bart/blog/perl-catalyst-cpan-and-debian/</guid>
      <description>&lt;p&gt;I&#39;ve decided to give &lt;a href=http://catalyst.perl.org/&gt;Catalyst&lt;/a&gt; a try.  I am not a big web-head, but occasionally I want to put stuff up on my site... and would like most of the work to be done for me, but not so much of the work that I cannot control what is happening.  I was not ready for a new scripting language so Ruby on Rails and Turbo Gears were out.&lt;/p&gt;&#xA;&lt;p&gt;Catalyst is available from CPAN -- the real reason why anyone would be crazy enough to use perl.  But running CPAN stuff on Debian is a pain in the ass, more so then Debian taught me is an acceptable level of ass pain, because perl stuff in Debian tends to lag behind CPAN; even in testing.&lt;/p&gt;</description>
    </item>
    <item>
      <title>last.fm</title>
      <link>http://www.jukie.net/~bart/blog/last.fm/</link>
      <pubDate>Wed, 08 Mar 2006 12:33:02 -0500</pubDate>
      <guid>http://www.jukie.net/~bart/blog/last.fm/</guid>
      <description>&lt;p&gt;I just *&lt;b&gt;heart&lt;/b&gt;* &lt;a href=http://www.last.fm/user/BartTrojanowski/&gt;last.fm&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;It really is the LAST radio station you will need to tune into... well, unless you&#39;re in the car or on a bus or something silly like that.&lt;/p&gt;&#xA;&lt;p&gt;Last.fm is a streaming internet radio station that learns to what you listen to.  It also allows you to listen to stations tailored to other people, or listen to particular types of music, or artists similar to the ones you like, etc, etc etc.&lt;/p&gt;</description>
    </item>
    <item>
      <title>carcassonne and zombies</title>
      <link>http://www.jukie.net/~bart/blog/carcassonne-and-zombies/</link>
      <pubDate>Sat, 28 Jan 2006 12:48:41 -0500</pubDate>
      <guid>http://www.jukie.net/~bart/blog/carcassonne-and-zombies/</guid>
      <description>&lt;p&gt;&#xA;So, did you hear?  &lt;a href=http://www.boardgamegeek.com/game/822&gt;Carcassonne&lt;/a&gt; was invaded by &lt;a href=http://www.boardgamegeek.com/game/2471&gt;Zombies!&lt;/a&gt;&#xA;&lt;/p&gt;&#xA;&lt;p&gt;&#xA;My group of &lt;a href=http://www.boardgamegeek.com/&gt;board game geeks&lt;/a&gt; have been playing &lt;i&gt;Carcassonne&lt;/i&gt; for a while, and recently have started playing &lt;i&gt;Zombies!&lt;/i&gt;.  Jean, aka &lt;i&gt;Strogg&lt;/i&gt;, and I have brainstormed how &lt;i&gt;Zombies!&lt;/i&gt; could work in &lt;i&gt;Carcassonne&lt;/i&gt;.  See that &lt;a href=http://pastebin.com/527575&gt;here&lt;/a&gt;.&#xA;&lt;/p&gt;&#xA;&lt;p&gt;&#xA;In a bit more detail, here are the rule changes to &lt;i&gt;Carcassonne&lt;/i&gt;:&#xA;&lt;blockquote&gt;&#xA;  &lt;ol&gt;&#xA;    &lt;li&gt;&lt;a href=http://www.boardgamegeek.com/game/15158&gt;the dragon&lt;/a&gt; is removed from the game.  it is replaced by a &lt;a href=http://www.thegameshop.ca/bagozombies.html&gt;bag of zombies&lt;/a&gt;;&#xA;    &lt;li&gt;each time a volcano is placed it is occupied by a new zombie;&#xA;    &lt;li&gt;when a dragon tile comes out, starting with the player that placed the dragon tile, players in clock-wise order move 1 zombie each until 6 movements were made (a zombie can be moved multiple times);&#xA;    &lt;li&gt;when a zombie enters a tile with a follower, the follower is returned to the player and a new zombie is added on that tile; while the zombie that infected the meeple can move again, the new zombie will not move until next turn;&#xA;    &lt;li&gt;zombies may not enter a tile with a fairy, any tile surrounding a cloister, the city of Carcassonne, or a tile visited/occupied by a zombie this turn;&#xA;    &lt;li&gt;if at the end of any turn, there are more zombies then followers in any city or on any road, all followers in that feature are returned to their owner (they flee!); note that &lt;i&gt;deeple&lt;/i&gt; (double meeple) count as two as usual and builders count as one;&#xA;    &lt;li&gt;if a road or city is completed with a zombie on it, that city is worth one less point for each zombie; this road or city also does not cause an exchange of the thief or king card;&#xA;    &lt;li&gt;zombies also reduce the points scored on a farm, but for each zombie on a farm the player scores one less city;&#xA;    &lt;li&gt;a player that scores on a cloister may elect to remove any zombie from the board, up to 8, at the cost of a point being scored by the cloister; this can also be done at the end, with uncompleted cloisters, for helping farmers; except for the end game, the last zombie may not be removed in this way;&#xA;    &lt;li&gt;a player can chose to return an monk on an unfinished cloister, and return a zombie to the bag; this can be done at any time, even before scoring occurs on another player&#39;s turn;&#xA;  &lt;/ol&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Election Humour</title>
      <link>http://www.jukie.net/~bart/blog/election-humour/</link>
      <pubDate>Fri, 20 Jan 2006 13:59:31 -0500</pubDate>
      <guid>http://www.jukie.net/~bart/blog/election-humour/</guid>
      <description>&lt;p&gt;Martin, Harper and Layton are flying on the Executive Airbus to a gathering &#xA;in British Columbia when Martin turns to Harper and says, chuckling, &#34;&lt;i&gt;You &#xA;know, I could throw a $1000 bill out the window right now and make someone &#xA;very happy.&lt;/i&gt;&#34; &#xA;&lt;/p&gt;&#xA;&lt;p&gt; Harper shrugs and replies, &#34;&lt;i&gt;Well, I could throw ten $100 bills out the &#xA;window and make ten people happy.&lt;/i&gt;&#34; &#xA;&lt;/p&gt;&#xA;&lt;p&gt;Not to be outdone, Layton says, &#34;&lt;i&gt;Well I could throw a hundred $10 bills out &#xA;the window and make a hundred people happy.&lt;/i&gt;&#34; &#xA;&lt;/p&gt;</description>
    </item>
    <item>
      <title>ldap on debian</title>
      <link>http://www.jukie.net/~bart/blog/ldap-on-debian/</link>
      <pubDate>Sun, 25 Sep 2005 13:00:02 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/ldap-on-debian/</guid>
      <description>&lt;p&gt;&#xA;I&#39;ve started writing a debian authentication from ldap tutorial.  Here&#xA;is the unfinished text:&#xA;&lt;/p&gt;&#xA;&lt;li&gt;&lt;a href=http://www.jukie.net/~bart/ldap/ldap-authentication-on-debian/index.html&gt;Ldap Authentication on Debian&lt;/a&gt;&#xA;&lt;p&gt;&#xA;I&#39;ve seen a much more ass kicking one on Planet Debian recently from Edd Dumbill.  Here is a link:&#xA;&lt;/p&gt;&#xA;&lt;li&gt;&lt;a href=http://usefulinc.com/edd/blog/contents/2005/09/25-ldap/read&gt;Turn your world LDAP-tastic&lt;/a&gt;, and&#xA;&lt;li&gt;&lt;a href=http://usefulinc.com/edd/blog/contents/2005/09/28-ldap/read&gt;Visual LDAP administration tools&lt;/a&gt; - &lt;i&gt;a recent fallowup&lt;/i&gt;</description>
    </item>
    <item>
      <title>Error while mapping shared library sections</title>
      <link>http://www.jukie.net/~bart/blog/error-while-mapping-shared-library-sections/</link>
      <pubDate>Sat, 28 May 2005 19:00:34 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/error-while-mapping-shared-library-sections/</guid>
      <description>&lt;p&gt;&#xA;It irks me when I am searching for a solution to a problem I have, get a &#xA;few dozen hits on google, but all I get are people stating the same problem.&#xA;Here is my attempt at improving the scoring of solutions.&#xA;&lt;/p&gt;&#xA;&lt;p&gt;&#xA;In gdb 6.0 there is a frequently seen problem where the debugger complains&#xA;about &#34;&lt;b&gt;Error while mapping shared library sections&lt;/b&gt;&#34;.  I was unable &#xA;to find the real cause of this, but &#xA;&lt;a href=http://www.linuxquestions.org/questions/showthread.php?postid=975227&gt;&#xA;this link&lt;/a&gt; stated that an upgrade to gdb 6.1 fixes the problem.  There is also a link to a &#xA;&lt;a href=https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=127274&gt;related redhat bugzilla bug entry&lt;/a&gt;.&#xA;&lt;/p&gt;</description>
    </item>
    <item>
      <title>IRC over email gateway</title>
      <link>http://www.jukie.net/~bart/blog/irc-over-email-gateway/</link>
      <pubDate>Mon, 24 Jan 2005 13:01:58 -0500</pubDate>
      <guid>http://www.jukie.net/~bart/blog/irc-over-email-gateway/</guid>
      <description>&lt;p&gt;12:47 &amp;lt;@  bartman&amp;gt; hey, you know what would be cool&amp;hellip; if you could ahve an&#xA;email-to-irc proxy&#xA;12:48 &amp;lt;     muffy&amp;gt; bartman: Please explain why that would be cool.&#xA;12:48 &amp;lt;@  bartman&amp;gt; then people, like Tyler, who have opprisive French overlords                    could use irc by just emailing a bot&#xA;12:48 &amp;lt;@  bartman&amp;gt; ofcourse IP-over-email sould be even cooler&lt;br&gt;&#xA;12:49 &amp;lt;     muffy&amp;gt; But how would Tyler receive messages?  One email per message                    would be too much I would think.&#xA;12:59 &amp;lt;     steve&amp;gt; the bot could send (digest) messages to respective users&#xA;when their username appears in the line&#xA;12:59 &amp;lt;@  bartman&amp;gt; nod&lt;br&gt;&#xA;13:00 &amp;lt;@  bartman&amp;gt; queue up for a few seconds/minutes and then purge in one&#xA;email&#xA;13:00 &amp;lt;@  bartman&amp;gt; even private conversations could be maintained bu using the&#xA;Reply-To: tag&#xA;13:00 &amp;lt;     muffy&amp;gt; I suppose.  But that takes them out of the general&#xA;conversations.  I would think queueing up and sending every&#xA;few minutes might be better.&#xA;13:01 &amp;lt;     steve&amp;gt; i still like my way, send iff their username appears in the&#xA;line&#xA;13:01 &amp;lt;     steve&amp;gt; so long as everyone &amp;ldquo;plays nice&amp;rdquo; and addresses it to them,&#xA;they get messages important to them&#xA;13:02 &amp;lt;     dave0&amp;gt; Would be simple to take the evil at&#xA;&lt;a href=&#34;http://www.dmo.ca/projects/hacks/IRC/ircnotify&#34;&gt;http://www.dmo.ca/projects/hacks/IRC/ircnotify&lt;/a&gt; and put it in                    a .procmailrc&#xA;13:02 &amp;lt;     muffy&amp;gt; Well, we could always give them the option of whether they&#xA;want just messages addressed to them or global ones.&#xA;13:02 &amp;lt;     dave0&amp;gt; but mailing of digests is a little more painful&#xA;13:03 &amp;lt;@  bartman&amp;gt; steve: note that you didn&amp;rsquo;t &amp;ldquo;play nice&amp;rdquo;&#xA;13:03 &amp;lt;     steve&amp;gt; i never do&#xA;13:04 &amp;lt;@  bartman&amp;gt; getting only the addressed messages would be pointless&#xA;13:04 &amp;lt;     steve&amp;gt; oops, that should have been                                  13:04              steve never does&#xA;13:04 &amp;lt;@  bartman&amp;gt; you would get only 1% of the conversation&#xA;13:04 &amp;lt;@  bartman&amp;gt; and no context&#xA;13:04 &amp;lt;     steve&amp;gt; i meant for the name to  be a &amp;ldquo;trigger&amp;rdquo;, which would then&#xA;send the digest from the last trigger to now&#xA;13:05 &amp;lt;@  bartman&amp;gt; a trigger, not filter&amp;hellip; gotcha&lt;br&gt;&#xA;13:05 &amp;lt;@  bartman&amp;gt; there would have to be a timed trigger too&lt;br&gt;&#xA;&amp;hellip;&lt;/p&gt;</description>
    </item>
    <item>
      <title>brute force attacks sshd?</title>
      <link>http://www.jukie.net/~bart/blog/brute-force-attacks-sshd/</link>
      <pubDate>Mon, 10 Jan 2005 22:55:22 -0500</pubDate>
      <guid>http://www.jukie.net/~bart/blog/brute-force-attacks-sshd/</guid>
      <description>&lt;p&gt;This will show you the IP addresses that have failed to login as well&#xA;as the number of attempts that failed.&lt;/p&gt;&#xA;&lt;p&gt;grep &amp;lsquo;Failed password &amp;rsquo; /var/log/auth.log | sed &amp;rsquo;s/^.* ([0-9]+.[0-9]+.[0-9]+.[0-9]+) .*$/\1/&amp;rsquo; | sort  | uniq -c | sort -n | tail -n 10&lt;/p&gt;&#xA;&lt;p&gt;You can safely ignore a few failed attempts, but I was getting close to&#xA;3000 over the last week from one IP.  I decided that warranted some&#xA;action. :)&lt;/p&gt;</description>
    </item>
    <item>
      <title>LDAP authentication (part 1)</title>
      <link>http://www.jukie.net/~bart/blog/ldap-authentication-part-1/</link>
      <pubDate>Sat, 08 Jan 2005 09:50:26 -0500</pubDate>
      <guid>http://www.jukie.net/~bart/blog/ldap-authentication-part-1/</guid>
      <description>&lt;p&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Wasted some time this week converting my server to LDAP directories and&#xA;renumbering UIDs/GIDs to the &amp;ldquo;Debian numbering ranges&amp;rdquo; from the RedHat&#xA;ranges that I have lived with for 7 years &amp;ndash; I have a lot of data to&#xA;migrate over to the new IDs&amp;hellip; data is intact.&lt;/p&gt;&#xA;&lt;p&gt;LDAP is so ugly after you used SQL, and is a bitch to setup, but after a&#xA;few hours I managed to get it working with PAM and NSS.  I will have to&#xA;document my steps because I had to read ~10 documents on the web to&#xA;finally get things working &amp;ndash; the Debian packages do not do all the work&#xA;for you in this case.&lt;/p&gt;</description>
    </item>
    <item>
      <title>sawfish workspace themes</title>
      <link>http://www.jukie.net/~bart/blog/sawfish-workspace-themes/</link>
      <pubDate>Wed, 24 Nov 2004 13:01:46 -0500</pubDate>
      <guid>http://www.jukie.net/~bart/blog/sawfish-workspace-themes/</guid>
      <description>&lt;p&gt;&#xA;(&lt;i&gt;Don&#39;t get too excited... it may not be what you think&lt;/i&gt;)&#xA;&lt;/p&gt;&#xA;&lt;p&gt;&#xA;I have been using &lt;a href=http://sawmill.sourceforge.net/&gt;sawfish&lt;/a&gt; for &#xA;many years now, and &lt;a href=http://www.jukie.net/~bart/sawfish/&gt; written &#xA;a few custom hacks for it&lt;/a&gt;.  My current theme is Tlines.  I&#39;ve tried &lt;a &#xA;href=http://www.jukie.net/~bart/conf/xsession&gt;most&lt;/a&gt; the other window &#xA;managers and come back to sawfish every time I get adventurous, because &#xA;sawfish is so bloody configurable.&#xA;&lt;/p&gt;&#xA;&lt;p&gt;&#xA;Recently I started using the following settings, as a very cool time &#xA;saver:&#xA;&lt;ul&gt;&#xA; &lt;li&gt; focus = enter-only&#xA; &lt;li&gt; root-window binding &#39;button1-click2&#39; locks my screen&#xA; &lt;li&gt; root-window binding &#39;w&#39; start galeon&#xA; &lt;li&gt; root-window binding &#39;t&#39; start 3 vertical non-overlapping terminals&#xA; &lt;li&gt; root-window binding &#39;g&#39; start gimp + gqview (also non-overlapping)&#xA;&lt;/ul&gt;&#xA;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Mini-DV to divx using mencoder</title>
      <link>http://www.jukie.net/~bart/blog/mini-dv-to-divx-using-mencoder/</link>
      <pubDate>Sat, 13 Nov 2004 08:26:51 -0500</pubDate>
      <guid>http://www.jukie.net/~bart/blog/mini-dv-to-divx-using-mencoder/</guid>
      <description>&lt;p&gt;&#xA;I occasionally have footage to take off my MiniDV camera and need to convert it&#xA;to a format that I can easily burn and archive.  I am not much into mastering &#xA;DVDs, just being able to play the file on my computer is good enough for now.&#xA;&lt;/p&gt;&#xA;&lt;p&gt;&#xA;I&#39;ve been using kino to do this job before, but that is hard to script.&#xA;So I decided to play a bit with mencoder.  I have no idea what I am doing, &#xA;so I tried to encode at the highest possible bitrate/quality I could &#xA;get out of the DivX (mpeg4) encoder.&#xA;&lt;/p&gt;</description>
    </item>
    <item>
      <title>notes on vserver</title>
      <link>http://www.jukie.net/~bart/blog/notes-on-vserver/</link>
      <pubDate>Mon, 04 Oct 2004 08:45:25 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/notes-on-vserver/</guid>
      <description>&lt;p&gt;&lt;font color=gray&gt;&lt;i&gt;[ this entry will be updated as I think of more stuff to add ]&lt;/i&gt;&lt;/font&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;b&gt;ssh &amp;amp; X forwarding&lt;/b&gt;&lt;/p&gt;&#xA;&lt;p&gt;For a while I was having issues with ssh X forwarding to my vserver.&#xA;Finally found the problem.  The problem is actually with X authentication &#xA;against localhost, and setting localhost to the IP address of the machine&#xA;in &lt;i&gt;/etc/hosts&lt;/i&gt; solved that.&lt;/p&gt;&#xA;&lt;p&gt;Also someone &lt;a href=http://list.linux-vserver.org/archive/vserver/msg00982.html&gt;recommended&lt;/a&gt; putting &amp;quot;&lt;i&gt;X11UseLocalhost no&lt;/i&gt;&amp;quot; in &lt;i&gt;/etc/ssh/sshd_config&lt;/i&gt;.&lt;/p&gt;&#xA;&lt;br&gt;&#xA;&lt;hr width=100&gt;&#xA;&lt;br&gt;&#xA;&lt;p&gt;&lt;b&gt;raw access to block devices&lt;/b&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>fast kernel logging</title>
      <link>http://www.jukie.net/~bart/blog/fast-kernel-logging/</link>
      <pubDate>Wed, 22 Sep 2004 10:43:34 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/fast-kernel-logging/</guid>
      <description>&lt;p&gt;As part of some driver work for a client I looked at some fast logging methods since logging via printk() to syslog sucks.&lt;/p&gt;&#xA;&lt;p&gt; Here are the hits I got:&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=http://gnumonks.org/projects/project_details?p_id=1&gt;ULOG&lt;/a&gt; - it&#39;s what netfilter uses for logging packets.  It relies on netlink for transport and a ulogd in user space to treat the logs.  Apparently ULOG2 is in the works.&#xA;&lt;li&gt;&lt;a href=http://dbus.freedesktop.org/&gt;DBUS&lt;/a&gt; - patch from &lt;a href=http://tech9.net/rml/log/&gt;Robert Love&lt;/a&gt; that adds a fast event notification mechanism to the kernel.  It too relies on netlink for transport.  It&#39;s mostly meant for &lt;a href=http://www-106.ibm.com/developerworks/linux/library/l-dbus.html?ca=dgr-lnxw82D-Bus&gt;events&lt;/a&gt; like &amp;quot;Your CPU is overheating&amp;quot;, not packet logging.&#xA;&lt;li&gt;&lt;a href=http://www.opersys.com/relayfs&gt;relayfs&lt;/a&gt; - a patch that adds a flexible buffering scheme for logging.  Seems like the most flexible of the bunch.&#xA;&lt;/ul&gt;&#xA;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Digital Rebel for sale... GONE</title>
      <link>http://www.jukie.net/~bart/blog/digital-rebel-for-sale...-gone/</link>
      <pubDate>Tue, 03 Aug 2004 10:41:22 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/digital-rebel-for-sale...-gone/</guid>
      <description>&lt;p&gt;&#xA;I sold my 3 month old Canon &#34;Digital Rebel&#34; 300D.  Upgraded to a Nikon &#xA;D70...  and what a huge difference that was.  &#xA;&lt;/p&gt;&#xA;&lt;p&gt;&#xA;I do find the pictures that are produced with the D70 sensor not as high&#xA;in detail under some conditions, however I must say that overall they are&#xA;at par.  The &amp;quot;big difference&amp;quot; comes in the rest of the camera.&#xA;&lt;/p&gt;&#xA;&lt;p&gt;&#xA;The interface makes it far quicker to access control options and the&#xA;camera itself is faster to react -- no more missing shots because my&#xA;daughter wont sit still -- and I can just shoot freely without checking&#xA;if the memory buffer is full (my Rebel sometimes became unoperational &#xA;when it was saving data to compact flash).&#xA;&lt;/p&gt;</description>
    </item>
    <item>
      <title>OpenOffice resources</title>
      <link>http://www.jukie.net/~bart/blog/openoffice-resources/</link>
      <pubDate>Wed, 14 Jul 2004 20:29:12 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/openoffice-resources/</guid>
      <description>&lt;p&gt;&#xA;Today I wasted 2 hours at work trying to figure out how to convert a word &#xA;document to OpenOffice and preserve the numbering in the document sections.  &#xA;Actually, the corporate template I was using had the first 3 section styles &#xA;defined with numbering (Heading 1, Heading 2, etc), but the 4th heading did&#xA;not have a number preceding it.  OOo and I had words, in the end I gave up.&#xA;&lt;/p&gt;</description>
    </item>
    <item>
      <title>photo editing</title>
      <link>http://www.jukie.net/~bart/blog/photo-editing/</link>
      <pubDate>Thu, 03 Jun 2004 17:57:46 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/photo-editing/</guid>
      <description>&lt;p&gt;I&#39;ve been taking digital images for over a year (maybe), but using Gimp for&#xA;many years for just about any image manipulation.  It&#39;s a fantastic program...&#xA;possibly the best piece of (desktop) software on Linux.&#xA;&lt;/p&gt;&#xA;&lt;p&gt;Anyway the point of this entry was to point you to this page:&lt;br&gt;&#xA;&lt;a href=http://www.linuxartist.org/&gt;LinuxArtist&#39;s&lt;/a&gt;&#xA;&lt;a href=http://www.linuxartist.org/2d.php&gt;2d application list&lt;/a&gt;&lt;br&gt;&#xA;which has a list of several other nice image related software packages.&#xA;&lt;/p&gt;</description>
    </item>
    <item>
      <title>WRT54G</title>
      <link>http://www.jukie.net/~bart/blog/wrt54g/</link>
      <pubDate>Tue, 01 Jun 2004 08:28:17 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/wrt54g/</guid>
      <description>&lt;p&gt;The Linksys WRT54G (and WRT54GS) make for very nice firewall since you can &#xA;install any (Linux) software you wish on them.  The platform consists of a MIPS&#xA;processor running at 200MHz, 16M (or 24M) of RAM, and 4M (or 8M) of flash.&#xA;&lt;/p&gt;&#xA;&lt;p&gt;Here are some articles:&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=http://www.pbs.org/cringely/pulpit/pulpit20040527.html&gt;The Little Engine That Could&lt;/a&gt; by Robert X. Cringely&#xA;&lt;li&gt;&lt;a href=http://slashdot.org/articles/04/06/01/0640250.shtml?tid=126&amp;tid=137&amp;tid=193&amp;tid=215&amp;tid=95&gt;Hacking the Linksys WRT54G&lt;/a&gt; - a slashdot article&#xA;&lt;/ul&gt;&#xA;&lt;/p&gt;&#xA;&lt;p&gt;Here are more technical links:&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=http://www.seattlewireless.net/index.cgi/LinksysWrt54g&gt;LinksysWrt54g&lt;/a&gt; at SeattleWireless&#xA;&lt;li&gt;&lt;a href=http://www.linksys.com/products/product.asp?prid=508&amp;scid=35&gt;WRT54G&lt;/a&gt; - LinkSys site&#xA;&lt;li&gt;&lt;a href=http://www.batbox.org/wrt54g-linux.html&gt;Linux on the WRT54G&lt;/a&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Digital Rebel</title>
      <link>http://www.jukie.net/~bart/blog/digital-rebel/</link>
      <pubDate>Mon, 03 May 2004 20:52:27 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/digital-rebel/</guid>
      <description>&lt;p&gt;About a year ago I put my SLR away since I very much enjoyed the quick&#xA;feedback of the Canon A70 digicam... what I missed was the control and lens &#xA;variety that come with an SLR.  I got a Canon Digital Rebel (aka EOS-300D) &#xA;for birthday this year.  Before I decided on it I read a plethora of reviews &#xA;on line.  Here are a few good ones:&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=http://www.dpreview.com/reviews/canoneos300d/&gt;Digital Photography Review&lt;/a&gt;&#xA;&lt;li&gt;&lt;a href=http://www.dcresource.com/reviews/canon/eos_300d-review/index.shtml&gt;Digital Camera Review&lt;/a&gt;&#xA;&lt;li&gt;&lt;a href=http://www.steves-digicams.com/2003_reviews/300d.html&gt;Steve&#39;s Digicams&lt;/a&gt;&#xA;&lt;li&gt;&lt;a href=http://www.imaging-resource.com/PRODS/EDR/EDRA.HTM&gt;Imaging Resource&lt;/a&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Open Office templates</title>
      <link>http://www.jukie.net/~bart/blog/open-office-templates/</link>
      <pubDate>Tue, 20 Apr 2004 20:01:36 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/open-office-templates/</guid>
      <description>&lt;p&gt;I got frustrated with Open Office today.  I was going to write a document and peeked for the first time into the templates that open office came with.  Well, was I disappointed to find a whole 2 templates. :)&lt;/p&gt;&#xA;&lt;p&gt;But it turns out that my third google search found the answer; a few of them at that...&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=http://www.getopenoffice.org/templates.html&gt;GetOpenOffice.org&lt;/a&gt; - OpenOffice.org Templates&#xA;&lt;li&gt;&lt;a href=http://ooextras.sourceforge.net/&gt;OO Extras&lt;/a&gt; - Extras for OpenOffice.org&#xA;&lt;li&gt;&lt;a href=http://www.ooodocs.org/&gt;OOo Docs&lt;/a&gt; - The OpenOffice Documentation Project&#xA;&lt;/ul&gt;&#xA;&lt;/p&gt;</description>
    </item>
    <item>
      <title>bash vi editing mode</title>
      <link>http://www.jukie.net/~bart/blog/bash-vi-editing-mode/</link>
      <pubDate>Fri, 26 Mar 2004 08:26:02 -0500</pubDate>
      <guid>http://www.jukie.net/~bart/blog/bash-vi-editing-mode/</guid>
      <description>&lt;p&gt;&lt;b&gt; bash comand line &lt;/b&gt;&lt;/p&gt;&#xA;&lt;p&gt; For a few years now I&#39;ve been using vi editing mode for bash and anything that uses readline.  Here is how I&#39;ve set things up.&#xA;&lt;/p&gt;&#xA;&lt;p&gt;In .bashrc I use the following to enable vi editing mode:&#xA;&lt;pre&gt;        set -o vi&lt;/pre&gt;&#xA;This allows me to type as usual and use &lt;i&gt;ESC&lt;/i&gt; to get into vi command mode.&#xA;Since &lt;i&gt;ESC&lt;/i&gt; is so far away I frequently use &lt;i&gt;control-[&lt;/i&gt;... unless I &#xA;feel I need the exercise.&#xA;&lt;/p&gt;</description>
    </item>
    <item>
      <title>debian install CDs</title>
      <link>http://www.jukie.net/~bart/blog/debian-install-cds/</link>
      <pubDate>Mon, 15 Mar 2004 20:41:42 -0500</pubDate>
      <guid>http://www.jukie.net/~bart/blog/debian-install-cds/</guid>
      <description>&lt;p&gt;I&#39;ve just realized that I never have to burn another stinking Debian&#xA;installer CD.&lt;/p&gt;&#xA;&lt;p&gt;Why bother, if I can just boot into Knoppix and run debootstrap.&lt;/p&gt;&#xA;&lt;p&gt;Just look how easy the process is:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt; boot into knoppix.&#xA;&lt;li&gt; mkdir /1&#xA;&lt;li&gt; mke2fs -j /dev/sda1&#xA;&lt;li&gt; mount /dev/sda1 /1&#xA;&lt;li&gt; debootstrap sarge /1 http://ftp.debian.org/debian&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;Of course this will not boot, so I will have to build the kernel.  But &#xA;I would do that anyways right after I rebooted the first time into any &#xA;install anyway.&lt;/p&gt;</description>
    </item>
    <item>
      <title>change of jobs</title>
      <link>http://www.jukie.net/~bart/blog/change-of-jobs/</link>
      <pubDate>Fri, 12 Mar 2004 15:55:42 -0500</pubDate>
      <guid>http://www.jukie.net/~bart/blog/change-of-jobs/</guid>
      <description>&lt;p&gt;&#xA;I am leaving my employer of two years, &lt;a href=http://somanetworks.com&gt;SOMA &#xA;Networks&lt;/a&gt;, for new opportunities at &lt;a href=http://fortinet.com&gt;Fortinet&lt;/a&gt;.&#xA;I have a lot of mixed feelings, but I recall feeling this way when I left my &#xA;last job.&#xA;&lt;/p&gt;&#xA;&lt;p&gt;&#xA;Fortinet Technologies has recently been features in an Ottawa Citizen &lt;a href=http://www.canada.com/ottawa/ottawacitizen/news/business/story.html?id=0b98fffd-1678-4479-b051-63e12c3f960f&gt;article&lt;/a&gt;.  Seems like a big change to work for a company with &lt;u&gt;real&lt;/u&gt; clients and &lt;u&gt;real&lt;/u&gt; products. :)&#xA;&lt;/p&gt;&#xA;&lt;p&gt;&#xA;Here are a few resources I found useful while I was searching for work:&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=http://dir.groups.yahoo.com/group/ottswjobs&gt;Yahoo! Ottawa S/W Jobs&lt;/a&gt;&#xA;&lt;li&gt;&lt;a href=http://www.teledyn.com/help/linux/Jobs/&gt;teledyn Linux jobs&lt;/a&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/p&gt;</description>
    </item>
    <item>
      <title>spamassasin extras</title>
      <link>http://www.jukie.net/~bart/blog/spamassasin-extras/</link>
      <pubDate>Mon, 08 Mar 2004 09:15:54 -0500</pubDate>
      <guid>http://www.jukie.net/~bart/blog/spamassasin-extras/</guid>
      <description>&lt;p&gt;&#xA;Here are a couple of interesting spamassasin rule sets:&#xA;&lt;/p&gt;&#xA;&lt;p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;        &lt;a href=http://www.emtinc.net/spamhammers.htm#Download%20the%20sets...&gt;Jennifer&#39;s Sets&lt;/a&gt;&#xA;&lt;li&gt;&#xA;        &lt;a href=http://www.exit0.us/index.php/RulesDuJourRuleSets&gt;Rules Du Jour Rule Sets&lt;/a&gt;&#xA;&lt;li&gt;&#xA;        &lt;a href=http://www.rulesemporium.com/&gt;Rules Emporium&lt;/a&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/p&gt;&#xA;&lt;p&gt;&#xA;Here is some related help...&#xA;&lt;/p&gt;&#xA;&lt;p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;&#xA;        &amp;quot;&lt;a href=http://www.koivi.com/exim4-config/&gt;Installing and configuring Exim 4 on Debian&lt;/a&gt;&amp;quot; - Nice step by step how-to.&#xA;        &lt;/p&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/p&gt;&#xA;&lt;p&gt;&#xA;Here is something that made a huge difference on my spam set:&#xA;&lt;/p&gt;&#xA;&lt;p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;p&gt;&#xA;        &lt;a href=http://www.surbl.org/&gt;SURBL&lt;/a&gt; - Spam URI Realtime Blocklists&#xA;        &lt;/p&gt;&#xA;        &lt;p&gt;&#xA;        This is similar to an RBL, but instead of looking at an email source it looks at URIs found in the email body.&#xA;        &lt;/p&gt;</description>
    </item>
    <item>
      <title>cool debian tools</title>
      <link>http://www.jukie.net/~bart/blog/cool-debian-tools/</link>
      <pubDate>Fri, 05 Mar 2004 16:32:16 -0500</pubDate>
      <guid>http://www.jukie.net/~bart/blog/cool-debian-tools/</guid>
      <description>&lt;p&gt;A few of us, Debian veterans, started naming off cool tools and tricks on IRC&#xA;for the benefit of a newbie.  One person suggested to put this list up &#xA;somewhere...  so here goes:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;apt-file - APT package searching utility -- command-line interface&#xA;&lt;li&gt;auto-apt - package search by file and on-demand package installation tool&#xA;&lt;li&gt;apt-show-versions - Lists available package versions with distribution&#xA;&lt;li&gt;cron-apt - Automatic update of packages using apt&#xA;&lt;li&gt;deborphan - Find orphaned libraries&#xA;&lt;li&gt;apt-listchanges - Display new Debian changelog entries from .deb archives&#xA;&lt;li&gt;apt-spy - writes a sources.list file based on bandwidth tests&#xA;&lt;li&gt;dpkg-repack - generates a .deb from an installed package&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Tools for keeners and developers:&lt;/p&gt;</description>
    </item>
    <item>
      <title>first post!</title>
      <link>http://www.jukie.net/~bart/blog/first-post/</link>
      <pubDate>Fri, 05 Mar 2004 15:57:08 -0500</pubDate>
      <guid>http://www.jukie.net/~bart/blog/first-post/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve just finished coding up this blog script.&lt;/p&gt;&#xA;&lt;p&gt;I wanted something that did not use a database backend, and most importantly could be added to from the command line.&lt;/p&gt;&#xA;&lt;p&gt;The implementation is in PHP and I add entries using vim.&lt;/p&gt;&#xA;&lt;p&gt;The &lt;a href=http://www.php.net/manual/en/index.php&gt;PHP Manual&lt;/a&gt; came in very handy.&lt;/p&gt;&#xA;&lt;p&gt;B.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Contact info</title>
      <link>http://www.jukie.net/~bart/sig/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>http://www.jukie.net/~bart/sig/</guid>
      <description>&lt;h1 class=&#34;heading&#34; id=&#34;email&#34;&gt;&#xA;  email&lt;span class=&#34;heading__anchor&#34;&gt; &lt;a href=&#34;#email&#34;&gt;#&lt;/a&gt;&lt;/span&gt;&#xA;&lt;/h1&gt;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;mailto:bart@jukie.net&#34;&gt;bart@jukie.net&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;mailto:bart.trojanowski@gmail.com&#34;&gt;bart.trojanowski@gmail.com&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h1 class=&#34;heading&#34; id=&#34;keys&#34;&gt;&#xA;  keys&lt;span class=&#34;heading__anchor&#34;&gt; &lt;a href=&#34;#keys&#34;&gt;#&lt;/a&gt;&lt;/span&gt;&#xA;&lt;/h1&gt;&#xA;&#xA;&#xA;&lt;script&gt;&#xA;&#x9;$(document).ready(function() {&#xA;&#x9;&#x9;$(&#39;#datatable2&#39;).dataTable( { &#34;ordering&#34;: false, &#34;order&#34;: [], } );&#xA;&#x9;&#x9;$(&#39;#datatable2_length select&#39;).val(&#39;50&#39;).change();&#xA;&#x9;});&#xA;&lt;/script&gt;&#xA;&#xA;&lt;div class=&#34;table-responsive&#34;&gt;&#xA;&#xA;&#x9;&lt;table id=&#34;datatable2&#34;&#xA;&#x9;&#x9;   class=&#34;table table-bordered nobottommargin&#34;&#xA;&#x9;&#x9;   cellspacing=&#34;0&#34;&gt;&#xA;&#x9;&#x9;&lt;thead&gt;&#xA;&#x9;&#x9;&#x9;&lt;th&gt;File:&lt;/th&gt;&#xA;&#x9;&#x9;&#x9;&lt;th&gt;Bytes:&lt;/th&gt;&#xA;&#x9;&#x9;&lt;/thead&gt;&#xA;&#xA;&#x9;&#x9;&lt;tbody&gt;&#xA;            &#xA;&#xA;            &#xA;&#xA;                &#xA;                &#xA;                &#xA;                &#xA;                    &lt;tr&gt;&#xA;                        &lt;td&gt;&#xA;                            &lt;a href=&#34;../keys/bart-trojanowski-public-gpg-key-106A5FF6E7A6ACAD2C1286F8C95B9938B206D41B.asc&#34; &#xA;                               class=&#34;hover-animate-from-left&#34;&gt;&#xA;                                bart-trojanowski-public-gpg-key-106A5FF6E7A6ACAD2C1286F8C95B9938B206D41B.asc&#xA;                            &lt;/a&gt;&#xA;                        &lt;/td&gt;&#xA;                        &lt;td style=&#34;color:DarkGrey;&#34;&gt;3874&lt;/td&gt;&#xA;                    &lt;/tr&gt;&#xA;                &#xA;            &#xA;&#xA;                &#xA;                &#xA;                &#xA;                &#xA;                    &lt;tr&gt;&#xA;                        &lt;td&gt;&#xA;                            &lt;a href=&#34;../keys/bart-trojanowski-public-ssh-key-argon-ed25519.asc&#34; &#xA;                               class=&#34;hover-animate-from-left&#34;&gt;&#xA;                                bart-trojanowski-public-ssh-key-argon-ed25519.asc&#xA;                            &lt;/a&gt;&#xA;                        &lt;/td&gt;&#xA;                        &lt;td style=&#34;color:DarkGrey;&#34;&gt;97&lt;/td&gt;&#xA;                    &lt;/tr&gt;&#xA;                &#xA;            &#xA;&#xA;                &#xA;                &#xA;                &#xA;                &#xA;                    &lt;tr&gt;&#xA;                        &lt;td&gt;&#xA;                            &lt;a href=&#34;../keys/bart-trojanowski-public-ssh-key-neon-dsa.asc&#34; &#xA;                               class=&#34;hover-animate-from-left&#34;&gt;&#xA;                                bart-trojanowski-public-ssh-key-neon-dsa.asc&#xA;                            &lt;/a&gt;&#xA;                        &lt;/td&gt;&#xA;                        &lt;td style=&#34;color:DarkGrey;&#34;&gt;609&lt;/td&gt;&#xA;                    &lt;/tr&gt;&#xA;                &#xA;            &#xA;&#xA;                &#xA;                &#xA;                &#xA;                &#xA;                    &lt;tr&gt;&#xA;                        &lt;td&gt;&#xA;                            &lt;a href=&#34;../keys/bart-trojanowski-public-ssh-key-neon-rsa.asc&#34; &#xA;                               class=&#34;hover-animate-from-left&#34;&gt;&#xA;                                bart-trojanowski-public-ssh-key-neon-rsa.asc&#xA;                            &lt;/a&gt;&#xA;                        &lt;/td&gt;&#xA;                        &lt;td style=&#34;color:DarkGrey;&#34;&gt;745&lt;/td&gt;&#xA;                    &lt;/tr&gt;&#xA;                &#xA;            &#xA;&#x9;&#x9;&lt;/tbody&gt;&#xA;&#x9;&lt;/table&gt;&#xA;&#xA;&lt;/div&gt;&#xA;&#xA;&#xA;&lt;h1 class=&#34;heading&#34; id=&#34;pages&#34;&gt;&#xA;  pages&lt;span class=&#34;heading__anchor&#34;&gt; &lt;a href=&#34;#pages&#34;&gt;#&lt;/a&gt;&lt;/span&gt;&#xA;&lt;/h1&gt;&lt;ul&gt;&#xA;&lt;li&gt;Home page:    &lt;a href=&#34;https://www.jukie.net/~bart&#34;&gt;https://www.jukie.net/~bart&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Resume:       &lt;a href=&#34;https://www.jukie.net/~bart/resume&#34;&gt;https://www.jukie.net/~bart/resume&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Blog:         &lt;a href=&#34;https://www.jukie.net/~bart/blog&#34;&gt;https://www.jukie.net/~bart/blog&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Github:       &lt;a href=&#34;https://github.com/bartman&#34;&gt;https://github.com/bartman&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;LinkedIn:     &lt;a href=&#34;https://www.linkedin.com/in/barttrojanowski/&#34;&gt;https://www.linkedin.com/in/barttrojanowski/&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Facebook:     &lt;a href=&#34;https://www.facebook.com/bart.trojanowski&#34;&gt;https://www.facebook.com/bart.trojanowski&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Instagram:    &lt;a href=&#34;https://www.instagram.com/bart.trojanowski/&#34;&gt;https://www.instagram.com/bart.trojanowski/&lt;/a&gt; &lt;a href=&#34;https://www.instagram.com/ketobart/&#34;&gt;https://www.instagram.com/ketobart/&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;WeightXreps:  &lt;a href=&#34;https://weightxreps.net/journal/bartman&#34;&gt;https://weightxreps.net/journal/bartman&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Google search: &lt;a href=&#34;http://www.google.com/search?q=bart&amp;#43;trojanowski&#34;&gt;http://www.google.com/search?q=bart+trojanowski&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h1 class=&#34;heading&#34; id=&#34;brief-bio&#34;&gt;&#xA;  brief bio&lt;span class=&#34;heading__anchor&#34;&gt; &lt;a href=&#34;#brief-bio&#34;&gt;#&lt;/a&gt;&lt;/span&gt;&#xA;&lt;/h1&gt;&lt;p&gt;Bart Trojanowski is a Linux kernel hacker currently self employed working for clients seeking Linux development and consulting services (&lt;a href=&#34;https://www.jukie.net&#34;&gt;www.jukie.net&lt;/a&gt;). When not hacking Linux drivers and embedded systems, he enjoys playing with his two young kids.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Jukie Networks</title>
      <link>http://www.jukie.net/~bart/consulting/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>http://www.jukie.net/~bart/consulting/</guid>
      <description>&lt;h1 class=&#34;heading&#34; id=&#34;hello&#34;&gt;&#xA;  Hello,&lt;span class=&#34;heading__anchor&#34;&gt; &lt;a href=&#34;#hello&#34;&gt;#&lt;/a&gt;&lt;/span&gt;&#xA;&lt;/h1&gt;&lt;p&gt;I am a qualified contract programmer and consultant, operating under Jukie Networks. I am seeking Linux software development contracts, as well those which require cross- platform software for UNIX or embedded applications. I am most interested in contracts which would permit me to work from my office (Ottawa, Canada) and commute in as needed for source-code integration and design meetings.&#xA;Operating systems:&lt;/p&gt;&#xA;&lt;p&gt;I have been using Linux since 1994. In 1998 I landed my first job involving Linux. Since 2000 I have been working on embedded and kernel projects. I don&amp;rsquo;t run Windows, but I have developed for it, ported from it to UNIX.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
