<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Posts on Chris Irwin</title>
    <link>/posts/</link>
    <description>Recent content in Posts on Chris Irwin</description>
    <generator>Hugo -- 0.147.7</generator>
    <language>en-us</language>
    <lastBuildDate>Wed, 11 Mar 2026 01:36:19 -0400</lastBuildDate>
    <atom:link href="/posts/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Alt Tab With Ptyxis</title>
      <link>/posts/alt-tab-with-ptyxis/</link>
      <pubDate>Wed, 11 Mar 2026 01:36:19 -0400</pubDate>
      <guid>/posts/alt-tab-with-ptyxis/</guid>
      <description>&lt;p&gt;GNOME has a wonderful feature of grouping applications in the Alt+Tab menu. Pressing Alt+Tab lets you quickly switch from Terminal to Firefox, without having to iterate through each of your multiple Terminal or Firefox windows.&lt;/p&gt;
&lt;p&gt;The issue is that not all Terminal windows are equal. Perhaps you&amp;rsquo;ve got specific dev tools you want separated from other Terminals. In my case, I use &lt;code&gt;mutt&lt;/code&gt; for email, and I want to be able to quickly Alt+Tab to my email without having to sift through a half-dozen terminals I&amp;rsquo;m using for other things.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Where is my missing RAM in Linux? Your GPU stole it!</title>
      <link>/posts/where-is-my-ram/</link>
      <pubDate>Thu, 15 Jan 2026 00:00:00 +0000</pubDate>
      <guid>/posts/where-is-my-ram/</guid>
      <description>&lt;p&gt;I had firefox get OOM-killed today, which sent me down a rabbit hole of investigating &lt;em&gt;why&lt;/em&gt; it was killed.&lt;/p&gt;
&lt;p&gt;Obviously I was out of memory. But after firefox was killed, the system only went down to ~50% memory usage.&lt;/p&gt;
&lt;p&gt;This didn&amp;rsquo;t turn out to be a typical page cache issue.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Thoughts after a week with the 2024 MX-5 RF (ND3)</title>
      <link>/posts/2016-ND1-vs-2024-ND3/</link>
      <pubDate>Mon, 13 May 2024 00:57:57 -0400</pubDate>
      <guid>/posts/2016-ND1-vs-2024-ND3/</guid>
      <description>&lt;p&gt;I recently had the privilege to drive a 2024 MX-5 RF (&amp;ldquo;ND3&amp;rdquo;) for a week, thanks to Mazda Canada and my local Miata group: Miataphiles of London. It was an interesting opportunity to compare with my (slightly modified) 2016 MX-5 (&amp;ldquo;ND1&amp;rdquo;).&lt;/p&gt;</description>
    </item>
    <item>
      <title>Cloudflare Proxy with Unifi Firewall</title>
      <link>/posts/cloudflare-proxy-with-unifi-firewall/</link>
      <pubDate>Tue, 31 Jan 2023 20:39:40 -0500</pubDate>
      <guid>/posts/cloudflare-proxy-with-unifi-firewall/</guid>
      <description>&lt;p&gt;In addition to &lt;a href=&#34;cloudflare-pages-hugo&#34;&gt;moving this blog to cloudflare&lt;/a&gt;, I decided to take advantage of enabling Cloudflare&amp;rsquo;s proxy at the DNS level for my other (non-blog) services. Basically, this makes Cloudflare act as a reverse proxy.&lt;/p&gt;
&lt;p&gt;However, handling Firewall &amp;amp; Port Forwarding rules was a bit more complicated.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Home Assistant Notifications (with Sync in Dashboard and Mobile)</title>
      <link>/posts/homeassistant-notifications-sync-dashboard-mobile/</link>
      <pubDate>Thu, 26 Jan 2023 23:00:00 -0500</pubDate>
      <guid>/posts/homeassistant-notifications-sync-dashboard-mobile/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve been struggling with Home Assistant notifications. From some searching, it seems other people are also struggling.&lt;/p&gt;
&lt;p&gt;A lot of videos online cover basic &amp;ldquo;How to send a notification to your phone&amp;rdquo;, but I wanted a whole lot more life-cycle than that. I want to &lt;em&gt;clear&lt;/em&gt; them. And I don&amp;rsquo;t want to have to write a thousand action conditions, either.&lt;/p&gt;
&lt;p&gt;I sat down and spent far more time than I&amp;rsquo;d like to admit to tackling the problem. This might not fit every use-case for every person, but this was &lt;em&gt;exactly&lt;/em&gt; the functionality I needed.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Cloudflare Pages, Hugo, and You</title>
      <link>/posts/cloudflare-pages-hugo/</link>
      <pubDate>Wed, 25 Jan 2023 00:13:10 -0500</pubDate>
      <guid>/posts/cloudflare-pages-hugo/</guid>
      <description>&lt;p&gt;This is the first post after migrating this blog to cloudflare-pages hosted (pushed from gitlab.com). Why?&lt;/p&gt;</description>
    </item>
    <item>
      <title>Home Assistant Notifications in Dashboard</title>
      <link>/posts/homeassistant-notifications-in-dashboard/</link>
      <pubDate>Mon, 23 Jan 2023 22:41:01 -0500</pubDate>
      <guid>/posts/homeassistant-notifications-in-dashboard/</guid>
      <description>&lt;p&gt;A better, more complete (with dashboard + mobile automation sync) is available in a new article: &lt;a href=&#34;/posts/homeassistant-notifications-sync-dashboard-mobile&#34;&gt;Home Assistant Notifications (with Sync in Dashboard and Mobile)&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The original article is preserved below. I encourage you to use the new one, though.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Home Assistant and Lock Notifications</title>
      <link>/posts/homeassistant-lock-notifications/</link>
      <pubDate>Sun, 06 Dec 2020 05:38:14 -0500</pubDate>
      <guid>/posts/homeassistant-lock-notifications/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve recently been porting things from Samsung Smartthings to Home Assistant. Smartthings has a significantly lower learning curve, but suffered from a reliance on the cloud. While you have a local hub, any &amp;ldquo;custom&amp;rdquo; device handlers actually ran on the cloud on Samsung servers somewhere. Which means advanced functionality was often very, very slow.&lt;/p&gt;</description>
    </item>
    <item>
      <title>PS/2 Trackpoint Scrolling in Wayland</title>
      <link>/posts/ps2-trackpoint-scrolling-wayland/</link>
      <pubDate>Tue, 14 Jul 2020 16:40:12 -0400</pubDate>
      <guid>/posts/ps2-trackpoint-scrolling-wayland/</guid>
      <description>&lt;p&gt;A coworker graciously gave me an IBM RT3200! It&amp;rsquo;s a tenkeyless IBM keyboard with integrated trackpoint. However, I did have some issues getting scrolling working properly with a modern USB-based system running Wayland.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Isolate Work in Firefox</title>
      <link>/posts/isolate-work-in-firefox/</link>
      <pubDate>Wed, 18 Mar 2020 11:30:23 -0400</pubDate>
      <guid>/posts/isolate-work-in-firefox/</guid>
      <description>&lt;p&gt;Like a large number of people around the world right now, my place of work has closed the doors for safety concerns. I&amp;rsquo;m fortunate enough to be in a position to work from home via VPN, but I did want to keep some separation between my work and non-work environments.&lt;/p&gt;
&lt;p&gt;The full-separation route would be creating a new user profile on my local machine. This would ensure complete separation. I didn&amp;rsquo;t go this route because I don&amp;rsquo;t need to keep &lt;em&gt;everything&lt;/em&gt; separate. A fair amount of my work is already isolated via RDP (to a Windows machine) or ssh (to my workstation and development servers). The biggest remaining concern was Firefox &amp;ndash; keeping all my work logins (Office 365, issue tracker, etc) from intermingling with my personal accounts.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Sharing Host Files With KVM</title>
      <link>/posts/sharing-host-files-with-kvm/</link>
      <pubDate>Tue, 10 Mar 2020 23:06:27 -0400</pubDate>
      <guid>/posts/sharing-host-files-with-kvm/</guid>
      <description>Adventures with sharing host files with a KVM VM using 9p and libvirt with SELinux.</description>
    </item>
    <item>
      <title>Discard (TRIM) with KVM Virtual Machines... in 2020!</title>
      <link>/posts/discard-with-kvm-2020/</link>
      <pubDate>Mon, 09 Mar 2020 18:10:33 -0400</pubDate>
      <guid>/posts/discard-with-kvm-2020/</guid>
      <description>&lt;p&gt;While checking out some logs and google search analytics, I found that my post about &lt;a href=&#34;/posts/discard-with-kvm/&#34;&gt;Discard (TRIM) with KVM Virtual Machines&lt;/a&gt; has been referenced far more than I expected it to be. I decided to take this opportitnity to fact-check and correct that article.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Fedora Encrypted Root With Automatic Key Unlocking</title>
      <link>/posts/fedora-encrypted-root-with-key/</link>
      <pubDate>Sat, 07 Mar 2020 01:02:09 -0500</pubDate>
      <guid>/posts/fedora-encrypted-root-with-key/</guid>
      <description>&lt;p&gt;Fedora&amp;rsquo;s installer will happily set up an encrypted install with root-on-lvm-on-luks (/boot is still unencrypted. Secure Boot might be handy here still). This is supported and works out of the box.&lt;/p&gt;
&lt;p&gt;However, while I&amp;rsquo;m present when I reboot this machine, it is also headless (no keyboard or monitor), so typing a passphrase at boot is problematic. But no problem, you can have up-to ten key slots for a LUKS partition, right? And you can use a keyfile for one of those slots, right? So it should just be a matter of updating the crypttab, right?&lt;/p&gt;</description>
    </item>
    <item>
      <title>Migrate From Ikiwiki to Hugo</title>
      <link>/posts/migrate-ikiwiki-to-hugo/</link>
      <pubDate>Thu, 05 Mar 2020 23:29:12 -0500</pubDate>
      <guid>/posts/migrate-ikiwiki-to-hugo/</guid>
      <description>&lt;p&gt;I recently decided to migrate this blog from IkiWiki to Hugo. I was expecting an ardous ordeal, but the entire task turned out to be fairly short painless.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Windows 10 Bootable USB from ISO on Linux</title>
      <link>/posts/windows10-iso-from-linux/</link>
      <pubDate>Sat, 05 Jan 2019 14:11:14 +0000</pubDate>
      <guid>/posts/windows10-iso-from-linux/</guid>
      <description>&lt;p&gt;Getting updated Windows media is certainly easier than it used to be. Back in the day, you&amp;rsquo;d have to slipstream updates into your installation media. It was a pain, and prone to cause problems (mainly because you could slipstream &lt;em&gt;other&lt;/em&gt; things in there, too).&lt;/p&gt;
&lt;p&gt;Microsoft has seen the light and provides &lt;a href=&#34;https://www.microsoft.com/en-ca/software-download/windows10ISO&#34;&gt;ISO downloads&lt;/a&gt; of the current version of Windows (Note: This is not a &amp;ldquo;free&amp;rdquo; Windows license &amp;ndash; you still need to pay for that, or install on a machine which has been previously licensed).&lt;/p&gt;</description>
    </item>
    <item>
      <title>DDPai M6 Plus Dashcam Review</title>
      <link>/posts/m6plus/</link>
      <pubDate>Sun, 11 Feb 2018 02:20:24 +0000</pubDate>
      <guid>/posts/m6plus/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve spent the better part of one and a half years with the DDPai M6 Plus. I bought it based on the &lt;a href=&#34;http://www.techmoan.com/blog/2016/6/23/dashcam-review-ddpai-m6-is-the-best-mini-cam-ive-used.html&#34;&gt;positive Techmoan review&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;tl;dr: I&amp;rsquo;m somewhat disappointed in the device. Something simpler like an A119S is a much better buy.&lt;/p&gt;
&lt;h1 id=&#34;some-background-on-me-and-dashcams&#34;&gt;Some background on me and dashcams&lt;/h1&gt;
&lt;p&gt;I had a Mini 0805 in my last car, and have two Mini 0805&amp;rsquo;s (front+rear) in my second car (I just had the two cameras, and moved the front one into whichever vehicle I was driving). I was actually quite happy with the cameras, despite some complaints online (overheat, soft/blurry video, etc).&lt;/p&gt;</description>
    </item>
    <item>
      <title>Push It To the Limit #3</title>
      <link>/posts/pitl-17-3/</link>
      <pubDate>Sat, 24 Jun 2017 01:07:39 +0000</pubDate>
      <guid>/posts/pitl-17-3/</guid>
      <description>&lt;p&gt;If you&amp;rsquo;re considering trying out autocross, I say go for it. I&amp;rsquo;m very new, and have found people at the two events I&amp;rsquo;ve attended (WOSCA #1, and PITL #3) to be friendly and extremely helpful.&lt;/p&gt;
&lt;p&gt;Additionally, you can do it with your own car. You don&amp;rsquo;t need some sort of special race-spec track beast. Both events have also had loaner helmets available (although I spent $200 and bought my own helmet meeting the appropriate standards).&lt;/p&gt;</description>
    </item>
    <item>
      <title>Highlight Reel</title>
      <link>/posts/highlight-reel/</link>
      <pubDate>Tue, 18 Apr 2017 02:39:39 +0000</pubDate>
      <guid>/posts/highlight-reel/</guid>
      <description>&lt;h1 id=&#34;goal&#34;&gt;Goal&lt;/h1&gt;
&lt;p&gt;I want to combine a few clips together, with a 5-seconds of intro text on each one.&lt;/p&gt;
&lt;h1 id=&#34;create-overlay-text-in-gimp&#34;&gt;Create overlay text in GIMP&lt;/h1&gt;
&lt;p&gt;I created &lt;a href=&#34;overlay.xcf&#34;&gt;some overlay text in gimp&lt;/a&gt;, then exported to png files. An example (Note the transparancy, and drop shadow):&lt;/p&gt;
&lt;p&gt;&lt;img alt=&#34;&amp;ldquo;sample overlay png&amp;rdquo;&#34; loading=&#34;lazy&#34; src=&#34;/posts/highlight-reel/overlay.png&#34;&gt;&lt;/p&gt;
&lt;h1 id=&#34;trim-clips-to-length&#34;&gt;Trim clips to length&lt;/h1&gt;
&lt;p&gt;Using the methods I&amp;rsquo;ve described in previous ffmpeg posts, I trimmed the clips, ensuring that there is at least five seconds of lead-in on each clip for the text.&lt;/p&gt;</description>
    </item>
    <item>
      <title>ZigZag Volvo</title>
      <link>/posts/zigzag-volvo/</link>
      <pubDate>Mon, 17 Apr 2017 02:38:31 +0000</pubDate>
      <guid>/posts/zigzag-volvo/</guid>
      <description>&lt;p&gt;While driving through New York on my way to the Watkins Glen 2017 opening weekend, I encountered a &lt;a href=&#34;https://youtu.be/8KceTjkQdvw?t=90&#34;&gt;nut in a Volvo zig-zagging through highway traffic&lt;/a&gt;. I decided use ffmpeg yet again (I&amp;rsquo;m starting to wonder if OpenShot would actually bring anything to the table at this point, besides crashing)&lt;/p&gt;
&lt;h1 id=&#34;plan&#34;&gt;Plan&lt;/h1&gt;
&lt;p&gt;I want a video with the rear camera until the Volvo passes, then the front camera after. I want to use the front audio for the whole video.&lt;/p&gt;</description>
    </item>
    <item>
      <title>ffmpeg part three - No more Boogaloos to give</title>
      <link>/posts/ffmpeg-3/</link>
      <pubDate>Mon, 17 Apr 2017 02:26:05 +0000</pubDate>
      <guid>/posts/ffmpeg-3/</guid>
      <description>&lt;p&gt;Just like the &lt;a href=&#34;https://chrisirwin.ca/posts/video-assembly-with-ffmpeg/&#34;&gt;first&lt;/a&gt; &lt;a href=&#34;https://chrisirwin.ca/posts/ffmpeg-2/&#34;&gt;two&lt;/a&gt; times, I&amp;rsquo;m assembling my Watkins Glen 2017 track footage with ffmpeg.&lt;/p&gt;
&lt;p&gt;However, I encountered a small issue I didn&amp;rsquo;t last year, plus I decided to change things up a bit with codecs, and audio selection.&lt;/p&gt;
&lt;h1 id=&#34;ffmpeg-requires-protocol-whitelist-now&#34;&gt;ffmpeg requires protocol whitelist now&lt;/h1&gt;
&lt;p&gt;I&amp;rsquo;m using pretty much the same concatenation command as last year (filenames are a bit different):&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;$ for f in Front-*MOV; do echo file &amp;quot;$f&amp;quot;; done | ffmpeg -f concat -i - -c copy Front.MOV
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The error I got from ffmpeg looked like:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Using Metadoctor on HP/Palm WebOS Devices</title>
      <link>/posts/WebOS-metadoctor/</link>
      <pubDate>Thu, 15 Sep 2016 01:45:12 +0000</pubDate>
      <guid>/posts/WebOS-metadoctor/</guid>
      <description>&lt;h1 id=&#34;my-devices&#34;&gt;My Devices&lt;/h1&gt;
&lt;p&gt;&lt;img alt=&#34;&amp;ldquo;WebOS Devices closed&amp;rdquo;&#34; loading=&#34;lazy&#34; src=&#34;/posts/WebOS-metadoctor/devices-closed.jpg&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt=&#34;&amp;ldquo;WebOS Devices open&amp;rdquo;&#34; loading=&#34;lazy&#34; src=&#34;/posts/WebOS-metadoctor/devices-open.jpg&#34;&gt;&lt;/p&gt;
&lt;p&gt;I decided to update the 3/4 of my Palm WebOS devices. The Pre (not pictured) and Pre2 (middle) were my primary, daily-driver phones for over two years, from September 2009 through to spring 2012, when I acquired a Galaxy Nexus and made the jump to Android.&lt;/p&gt;
&lt;p&gt;The Pre3 (right) I also picked up on eBay. It came in box, with all accessories, and a spare battery.&lt;/p&gt;</description>
    </item>
    <item>
      <title>WebOS in 2016</title>
      <link>/posts/WebOS-in-2016/</link>
      <pubDate>Wed, 14 Sep 2016 21:52:46 +0000</pubDate>
      <guid>/posts/WebOS-in-2016/</guid>
      <description>&lt;p&gt;&lt;em&gt;Note: Yes, &lt;a href=&#34;http://www.techradar.com/news/television/6-best-smart-tv-platforms-in-the-world-today-1120795/4&#34;&gt;WebOS Technically still exists&lt;/a&gt;. However, this article isn&amp;rsquo;t talking about the TV OS version made by LG.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;While this article was actually written to discuss getting Palm devices usable, I felt some preamble was necessary.&lt;/p&gt;
&lt;h1 id=&#34;my-palm-history&#34;&gt;My Palm History&lt;/h1&gt;
&lt;p&gt;I&amp;rsquo;ve got a soft spot for Palm. My first PDA was the &lt;a href=&#34;https://en.wikipedia.org/wiki/Palm_Vx&#34;&gt;Palm Vx&lt;/a&gt;, possibly the greatest PDA ever made. Easily get days of battery from a device that can store all your calendar and contacts information, synchronizing periodically with your master copy on your computer.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Snapperd on Fedora with SELinux enabled</title>
      <link>/posts/snapperd_with_selinux/</link>
      <pubDate>Wed, 14 Sep 2016 21:46:01 +0000</pubDate>
      <guid>/posts/snapperd_with_selinux/</guid>
      <description>&lt;p&gt;Snapper is an excellent utility that provides hourly snapshots of btrfs subvolumes.&lt;/p&gt;
&lt;p&gt;Fedora ships with selinux enabled by default. This is excellent, and shouldn&amp;rsquo;t be disabled. To allow this, most software in Fedora has appropriate rules defined, including snapper.&lt;/p&gt;
&lt;p&gt;However, snappers rules only allow it to work on / and /home. If you wish to use it to snapshot /mnt/data, or /srv, or any other particular path, you&amp;rsquo;re going to have a &lt;strong&gt;very&lt;/strong&gt; bad time.&lt;/p&gt;</description>
    </item>
    <item>
      <title>ffmpeg part two - Electric Boogaloo</title>
      <link>/posts/ffmpeg-2/</link>
      <pubDate>Wed, 20 Apr 2016 00:34:27 +0000</pubDate>
      <guid>/posts/ffmpeg-2/</guid>
      <description>&lt;p&gt;I just attended the Watkins Glen opening day for the second year. It was, again, a blast.&lt;/p&gt;
&lt;p&gt;I made some slight adjustments to my &lt;a href=&#34;/posts/video-assembly-with-ffmpeg/&#34;&gt;ffmpeg assembly procedure from last year&lt;/a&gt;.&lt;/p&gt;
&lt;h1 id=&#34;dashcam-saves-video-in-5-minute-chunks&#34;&gt;Dashcam saves video in 5-minute chunks&lt;/h1&gt;
&lt;p&gt;Instead of creating .list files, I simply used a pipe as input:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;for fo in AMBA091*; do echo file &amp;quot;$fo&amp;quot;; done \
    | ffmpeg -f concat -i - -c copy Front-Track1.mov
&lt;/code&gt;&lt;/pre&gt;
&lt;h1 id=&#34;front-and-rear-videos-need-to-be-combined&#34;&gt;Front and Rear videos need to be combined&lt;/h1&gt;
&lt;p&gt;Much like last year, I made short samples to confirm if any offsets needed to be done. However, I decided to move the video to the bottom-right corner to cover the timestamps, since they were incorrect on some videos (well, correct. Just not for this time zone)&lt;/p&gt;</description>
    </item>
    <item>
      <title>Intel GPU Scaling mode</title>
      <link>/posts/scaling_mode/</link>
      <pubDate>Tue, 19 Apr 2016 01:04:12 +0000</pubDate>
      <guid>/posts/scaling_mode/</guid>
      <description>&lt;p&gt;I was attempting to run my laptop at a lower resolution than the laptop panel. However, by default the video is scaled to fill the panel. This causes the image to be distorted (fonts look bad, etc).&lt;/p&gt;
&lt;p&gt;On Linux (with Xorg, anyway), this behaviour can be tweaked with xrandr:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;$ xrandr --output LVDS1 --set &amp;quot;scaling mode&amp;quot; &amp;quot;Center&amp;quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This is not a persistent setting, which is fine for my purposes.&lt;/p&gt;</description>
    </item>
    <item>
      <title>My failed experiment with CalDAV/CardDAV</title>
      <link>/posts/my_failed_experiment_with_caldav/</link>
      <pubDate>Sun, 17 Jan 2016 02:57:23 +0000</pubDate>
      <guid>/posts/my_failed_experiment_with_caldav/</guid>
      <description>&lt;p&gt;In an ongoing quest to attempt to lessen my Google dependancy, I decided to self-host my Calendar and Contacts using &lt;a href=&#34;http://baikal-server.com/&#34;&gt;Baïkal&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Installing and configuring Baïkal is sufficiently documented elsewhere. This post is a 9somewhat short) account of why I&amp;rsquo;m giving up on self-hosted contacts and calendars.&lt;/p&gt;
&lt;h1 id=&#34;google&#34;&gt;Google&lt;/h1&gt;
&lt;p&gt;The problems can be summed up into these bullet points:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;It is assumed (and practically required) to use Google Play Store&lt;/li&gt;
&lt;li&gt;Google Play Store requires a Google Account&lt;/li&gt;
&lt;li&gt;Google Account means you have Mail, Calendar, and Contacts&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Simply adding your google account into your phone causes Mail, Calendar and Contacts to sync. Mail you can disable, and use an alternate client, as that data is housed internally to the gmail app, and not exposed system wide for other apps to use.&lt;/p&gt;</description>
    </item>
    <item>
      <title>AWStats from multiple hosts</title>
      <link>/posts/awstats_from_multiple_hosts/</link>
      <pubDate>Sun, 18 Oct 2015 13:49:06 +0000</pubDate>
      <guid>/posts/awstats_from_multiple_hosts/</guid>
      <description>&lt;p&gt;I decided I wanted some stats. There are a few options: Use a service (Google Analytics, etc) or parse your logs. Both have pros and cons. This article isn&amp;rsquo;t supposed to help you decide.&lt;/p&gt;
&lt;p&gt;I just wanted simple stats based on logs: It&amp;rsquo;s non-intrusive to visitors, doesn&amp;rsquo;t send their browsing habits to third parties (other than what they send themselves), and uses the apache log data I&amp;rsquo;ve already got for the entire year.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Discard (TRIM) with KVM Virtual Machines</title>
      <link>/posts/discard-with-kvm/</link>
      <pubDate>Sat, 17 Oct 2015 20:19:56 +0000</pubDate>
      <guid>/posts/discard-with-kvm/</guid>
      <description>&lt;h1 id=&#34;update---march-09-2020&#34;&gt;Update - March 09 2020&lt;/h1&gt;
&lt;p&gt;Since writing this article, I&amp;rsquo;ve made a few observations:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;More people read this than expected&lt;/li&gt;
&lt;li&gt;QEMU has since added discard support to the standard virtio disk, avoiding the need to use virtio-scsi&lt;/li&gt;
&lt;li&gt;It kinda sorta works out of the box.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I&amp;rsquo;ve written a brief followup: &lt;a href=&#34;/posts/discard-with-kvm-2020/&#34;&gt;Discard (TRIM) with KVM Virtual Machines&amp;hellip; in 2020!&lt;/a&gt;&lt;/p&gt;
&lt;h1 id=&#34;original-article&#34;&gt;Original Article&lt;/h1&gt;
&lt;p&gt;I&amp;rsquo;ve got a bunch of KVM virtual machines running at home. They all use sparse qcow2 files as storage, which is nice and space efficient &amp;ndash; at least at the beginning.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Multiple Instances of Gnome Terminal</title>
      <link>/posts/multiple-instances-of-gnome-terminal/</link>
      <pubDate>Tue, 06 Oct 2015 12:00:05 +0000</pubDate>
      <guid>/posts/multiple-instances-of-gnome-terminal/</guid>
      <description>&lt;p&gt;Gnome 3 introduced a very handy feature, grouping multiple application windows (whether they be separate instances or not) into a single desktop icon. This means when &amp;lt;alt+Tab&amp;gt;ing through your windows, you can skip over the dozen firefox windows, then dive into just your terminal windows. Generally, this works great, and I think most users don&amp;rsquo;t have any issues.&lt;/p&gt;
&lt;p&gt;However, some people (myself included) use a &lt;em&gt;lot&lt;/em&gt; of terminals. Some are temporary short-lived generic terminals. Others are long-lived running mail (mutt), or a main development session. Unfortunately, trying to switch to my email terminal can be cumbersome as I squint at thumbnails of 10+ other terminals.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Video assembly with ffmpeg</title>
      <link>/posts/video-assembly-with-ffmpeg/</link>
      <pubDate>Thu, 23 Apr 2015 01:19:00 +0000</pubDate>
      <guid>/posts/video-assembly-with-ffmpeg/</guid>
      <description>&lt;p&gt;I recently took my car to a racetrack, covered with cameras. I wanted to post these on youtube, but encountered a few issues:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Dashcam saves video in 5-minute chunks&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Front and Rear videos need to be combined&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;I don&amp;rsquo;t know anything about video editing&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;I didn&amp;rsquo;t have a working video editor&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Fedora doesn&amp;rsquo;t seem to ship ffmpeg, and rpmfusion doesn&amp;rsquo;t support Fedora 22 yet&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The last point was somewhat resolved by a &lt;a href=&#34;http://johnvansickle.com/ffmpeg/&#34;&gt;binary build of ffmpeg&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Living with BTRFS</title>
      <link>/posts/btrfs-presentation/</link>
      <pubDate>Mon, 13 Apr 2015 23:56:00 +0000</pubDate>
      <guid>/posts/btrfs-presentation/</guid>
      <description>&lt;p&gt;This is the contents of a presentation I gave to KWLug in April 2015, roughly converted to blog format. The &lt;a href=&#34;btrfs-slides.pdf&#34;&gt;slides are available&lt;/a&gt;. &lt;del&gt;I&amp;rsquo;ll update this post with a link to the &lt;a href=&#34;http://kwlug.org&#34;&gt;kwlug.org&lt;/a&gt; podcast when it goes online.&lt;/del&gt; &lt;a href=&#34;https://kwlug.org/node/956&#34;&gt;Audio and Video available via kwlug.org&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I didn&amp;rsquo;t get through all of the points, I barely touched on snapshots (and didn&amp;rsquo;t cover any utilities). I&amp;rsquo;ll post a follow-up with my filesystem corruption demonstration instructions.&lt;/p&gt;
&lt;p&gt;Note that I am not a filesystem developer, just a user who isn&amp;rsquo;t afraid to experiment and share the lessons learned. If there are any comments/corrections, email me at chris -at- chrisirwin.ca&lt;/p&gt;</description>
    </item>
    <item>
      <title>Adding a dependency into upstream-supplied systemd units</title>
      <link>/posts/add-dependancy-to-systemd/</link>
      <pubDate>Mon, 09 Mar 2015 01:14:39 +0000</pubDate>
      <guid>/posts/add-dependancy-to-systemd/</guid>
      <description>&lt;p&gt;I recently restarted all my VMs at once and found that several managed to start services before they finished mounting their NFS shares. These shares back apache virtualhosts, mysql databases, and ultimately left several services in non-functional states. Systemd has the ability to depend on services (Requires=, and others) as well as filesystems (RequiresMountsFor=). However, I don&amp;rsquo;t want to modify or replace the .service files installed from the package. I&amp;rsquo;d have to manually reconcile changes during updates, and it just generally isn&amp;rsquo;t nice.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Recovering a deleted file (on btrfs)</title>
      <link>/posts/recovering-a-deleted-file-on-btrfs/</link>
      <pubDate>Fri, 16 Jan 2015 04:35:09 +0000</pubDate>
      <guid>/posts/recovering-a-deleted-file-on-btrfs/</guid>
      <description>&lt;p&gt;So you might find yourself saying this one day:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;HELP! I just deleted a file on my btrfs!
It wasn&amp;rsquo;t old enough to be in a backup, snapshot, or git
It was old enough that I don&amp;rsquo;t want to retype it.
How do I get it back?
Also, my btrfs is on an SSD, and it might kick off a garbage collection routine at any time!&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;Well, as luck would have it, I just did that to &lt;a href=&#34;/posts/fedora-cloud-image-on-linode&#34;&gt;a blog post I&amp;rsquo;ve spent all evening writing&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Fedora Cloud Image on Linode</title>
      <link>/posts/fedora-cloud-image-on-linode/</link>
      <pubDate>Fri, 16 Jan 2015 04:08:46 +0000</pubDate>
      <guid>/posts/fedora-cloud-image-on-linode/</guid>
      <description>&lt;p&gt;Linode offers pre-assembled Fedora VMs, but their environment doesn&amp;rsquo;t support SELINUX. You also don&amp;rsquo;t get any notification on when you should reboot for new kernels, etc.&lt;/p&gt;
&lt;p&gt;I decided to attempt to adapt Fedora&amp;rsquo;s stock cloud image on Linode. It was not without it&amp;rsquo;s own effort, but ultimately I think it&amp;rsquo;s a better solution than attempting to retro-fit the linode image for booting. Also, I&amp;rsquo;m using the fedora cloud image on all my other VMs, so I&amp;rsquo;m familiar with how it&amp;rsquo;s set up (and can easily spool up a local copy for testing).&lt;/p&gt;</description>
    </item>
    <item>
      <title>SELinux and apache (httpd)</title>
      <link>/posts/selinux-and-apache-httpd/</link>
      <pubDate>Thu, 15 Jan 2015 03:54:27 +0000</pubDate>
      <guid>/posts/selinux-and-apache-httpd/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve just built a new web server vm, basically identical to my &lt;a href=&#34;/posts/selinux-and-mariadb-mysql&#34;&gt;mariadb one&lt;/a&gt;, and the &lt;a href=&#34;/posts/fedora-cloud-for-mere-mortals&#34;&gt;fedora cloud image&lt;/a&gt;. This is documentation on how I configured it, as well as the ttrss update daemon.&lt;/p&gt;
&lt;p&gt;To get nfs to work, install &lt;code&gt;nfs-utils&lt;/code&gt;. I need some packages also for ttrss.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;$ yum install nfs-utils httpd php php-mysql php-mbstring php-xml
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;I&amp;rsquo;m putting the web root on an nfs mount from my nas. I have multiple virtualhosts.&lt;/p&gt;</description>
    </item>
    <item>
      <title>SELinux and mariadb (mysql)</title>
      <link>/posts/selinux-and-mariadb-mysql/</link>
      <pubDate>Thu, 15 Jan 2015 03:28:41 +0000</pubDate>
      <guid>/posts/selinux-and-mariadb-mysql/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve just built a new mysql server vm, using the instructions I &lt;a href=&#34;/posts/fedora-cloud-for-mere-mortals&#34;&gt;posted previously&lt;/a&gt;. This is documentation on how I configured it.&lt;/p&gt;
&lt;p&gt;To get nfs to work, install &lt;code&gt;nfs-utils&lt;/code&gt;.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;$ yum install nfs-utils httpd mariadb mariadb-server
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;I&amp;rsquo;m putting the database on an nfs mount from my nas. Socket files can&amp;rsquo;t exist on nfs. It&amp;rsquo;s easier to move the data than the socket file (I think I hit an selinux issue with socket access).&lt;/p&gt;</description>
    </item>
    <item>
      <title>Fedora cloud for mere mortals</title>
      <link>/posts/fedora-cloud-for-mere-mortals/</link>
      <pubDate>Thu, 15 Jan 2015 03:05:56 +0000</pubDate>
      <guid>/posts/fedora-cloud-for-mere-mortals/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve come across a post by Marek Goldmann detailing the basics of &lt;a href=&#34;https://goldmann.pl/blog/2014/01/16/running-fedora-cloud-images-on-kvm/&#34;&gt;running Fedora cloud images on kvm&lt;/a&gt;. I found it was a massive help, but only got me part-way toward what I wanted.&lt;/p&gt;
&lt;p&gt;The documentation for cloud-init is sub-par from what I can find, so I thought I&amp;rsquo;d post this with my own modifications.&lt;/p&gt;
&lt;p&gt;My requirements were:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Easy scriptable deployment (Marek&amp;rsquo;s script got me 100% of this goal)&lt;/li&gt;
&lt;li&gt;Static (sequential) IP assignments instead of DHCP&lt;/li&gt;
&lt;li&gt;hostname != KVM domain name, making system replacements easier&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Additionally, I changed some logic&lt;/p&gt;</description>
    </item>
    <item>
      <title>Offlineimap repeatedly deleting All Mail</title>
      <link>/posts/offlineimap-deletes-everything/</link>
      <pubDate>Thu, 28 Feb 2013 01:58:00 +0000</pubDate>
      <guid>/posts/offlineimap-deletes-everything/</guid>
      <description>&lt;p&gt;or &amp;ldquo;That&amp;rsquo;s why you read changelogs&amp;rdquo;&lt;/p&gt;
&lt;p&gt;I was having some significant difficulties with offlineimap after upgrading to 6.5.4 (I&amp;rsquo;m using Ubuntu currently, so I upgraded straight from 6.3.4).&lt;/p&gt;
&lt;p&gt;The original issue was a FolderValidity error, which is covered by the &lt;a href=&#34;http://docs.offlineimap.org/en/latest/FAQ.html#what-is-the-uid-validity-problem-for-folder&#34;&gt;offlineimap FAQ&lt;/a&gt;. This affected my &amp;ldquo;All Mail&amp;rdquo; folder (It also affected my &amp;ldquo;Sent Mail&amp;rdquo;, but it got lost in the noise of the 67964 messages in All Mail). The recovery process is simply to remove that folder (and it&amp;rsquo;s sync history), and start over. Unfortunate, but fine. That&amp;rsquo;s why I&amp;rsquo;ve got a 28Mbit connection, after all.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Workaround for conflict between gnome-shell and vmware-player</title>
      <link>/posts/workaround-for-conflict-between-gnome-shell-a/</link>
      <pubDate>Tue, 07 Feb 2012 11:37:00 -0800</pubDate>
      <guid>/posts/workaround-for-conflict-between-gnome-shell-a/</guid>
      <description>&lt;p&gt;I recently got a new machine for work, with lots of fancy memory and everything. First thing to do was install a friendly operating system with gnome-shell, and set up a VM for my windows/office requirements at work.&lt;/p&gt;
&lt;p&gt;Normally I would favour Virt-Manager+kvm, but since we&amp;rsquo;re now using vmware-server (and soon vsphere hypervisor) I thought it would be better to keep compatible. Luckilly, vmware has a free player that works pretty well for my basic needs.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Update for maildir-indicator</title>
      <link>/posts/update-for-maildir-indicator/</link>
      <pubDate>Mon, 08 Aug 2011 23:27:00 -0700</pubDate>
      <guid>/posts/update-for-maildir-indicator/</guid>
      <description>&lt;p&gt;Follow-up to my post about using &lt;a href=&#34;/posts/maildir-with-ubuntus-messaging-menu&#34;&gt;Maildirs with Ubuntu&amp;rsquo;s messaging menu&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Brad, the original author, has indicated that he considered his code to be essentially WTFPL. I feel the same about my bits,  and have added a COPYING file specifically indicating this license instead of the previous GPL3 license.&lt;/p&gt;
&lt;p&gt;I have made some other changes since that last version:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The configuration values (frequency, directories) are now loaded from separate files. Default values are in /etc/maildir-indicator.conf, user-specific in $XDG_CONFIG_HOME/maildir-indicator.conf (or more likely, $HOME/.config/maildir-indicator.conf). This allows it to be installed system-wide and have users configure their own notifications.&lt;/li&gt;
&lt;li&gt;The .desktop file has been cleaned up, and is now advertising &amp;ldquo;Maildir Indicator&amp;rdquo; instead of mutt. This is what will be read in the menu as well (though of course, clicking it runs whatever mail agent you want).&lt;/li&gt;
&lt;li&gt;Cleaned up some debug messages to make the output a little easier to read&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Changed &amp;lsquo;path&amp;rsquo; to no longer have a trailing slash&lt;/strong&gt;. I&amp;rsquo;m not sure what happens if you have a trailing slash on your paths, I didn&amp;rsquo;t test it.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The program can still be used by grabbing the source from the &lt;a href=&#34;https://gitorious.org/chrisirwin-utils/maildir-indicator/&#34;&gt;Maildir-Indicator repository on Gitorious&lt;/a&gt; and running &lt;code&gt;./maildir-indicator&lt;/code&gt; in the directory you get. However, it also supports being installed system-wide, which can be done easily by installing it from the &lt;a href=&#34;https://launchpad.net/~chrisirwin/+archive/maildir-indicator&#34;&gt;maildir-indicator PPA&lt;/a&gt;. Installing from the PPA will also set it to run automatically at login.&lt;/p&gt;</description>
    </item>
    <item>
      <title>My own Firefox Addon Collection</title>
      <link>/posts/my-own-firefox-addon-collection/</link>
      <pubDate>Mon, 08 Aug 2011 08:46:00 -0700</pubDate>
      <guid>/posts/my-own-firefox-addon-collection/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve created a Firefox addon collection. This is mostly for my own use (Since firefox can&amp;rsquo;t sync addons, a single list of addons I use helps bring up machines), but I thought I&amp;rsquo;d throw it out there if anybody else was curious.&lt;/p&gt;
&lt;p&gt;[Chris&amp;rsquo; Addons](&lt;a href=&#34;https://addons.mozilla.org/en-US/firefox/collections/chrisirwin/chris-a/&#34;&gt;https://addons.mozilla.org/en-US/firefox/collections/chrisirwin/chris-a/&lt;/a&gt; Chris&amp;rsquo; Addons collection at addons.mozilla.org)&lt;/p&gt;</description>
    </item>
    <item>
      <title>Maildir with Ubuntu&#39;s Messaging Menu</title>
      <link>/posts/maildir-with-ubuntus-messaging-menu/</link>
      <pubDate>Thu, 28 Jul 2011 18:13:00 -0700</pubDate>
      <guid>/posts/maildir-with-ubuntus-messaging-menu/</guid>
      <description>&lt;p&gt;I was pretty sure I wasn&amp;rsquo;t the only mutt user who missed having mail notifications in the indicator area. From a quick google search, it turns out I was in good company. Even better, a fellow by the name of &lt;a href=&#34;http://bradmont.net/&#34;&gt;Brad Mont&lt;/a&gt; actually wrote a basic python script to create an &lt;a href=&#34;http://bradmont.net/post/unity-indicator-applet-maildir-check&#34;&gt;appindicator that would monitor a maildir&lt;/a&gt;. It was about 90% of what I was looking for.&lt;/p&gt;
&lt;p&gt;Unfortunately, I didn&amp;rsquo;t want another icon crowding the panel, so I adapted his script to use the messaging menu, so it shows up with chat (and any other communications programs). I made a few other changes along the way (notifications). Thanks to the folks who wrote gm-notify for being such an easy to read example of both notification and the messaging menu.&lt;/p&gt;</description>
    </item>
    <item>
      <title>I&#39;m Internet Famous!</title>
      <link>/posts/im-internet-famous/</link>
      <pubDate>Mon, 21 Mar 2011 09:26:00 -0700</pubDate>
      <guid>/posts/im-internet-famous/</guid>
      <description>&lt;p&gt;Assuming you&amp;rsquo;re doing a Google Image Search for a specific unicomp keyboard.&lt;/p&gt;
&lt;p&gt;&lt;img alt=&#34;&amp;ldquo;screenshot&amp;rdquo;&#34; loading=&#34;lazy&#34; src=&#34;/posts/im-internet-famous/screenshot.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;ZOMG!&lt;/p&gt;</description>
    </item>
    <item>
      <title>Review: Logitech Trackman Wheel Optical</title>
      <link>/posts/logitech-trackman-wheel-optical/</link>
      <pubDate>Sat, 18 Dec 2010 23:55:00 -0800</pubDate>
      <guid>/posts/logitech-trackman-wheel-optical/</guid>
      <description>&lt;p&gt;As well as my previously mentioned &lt;a href=&#34;/posts/unicomp-customizer-104&#34;&gt;Unicomp keyboard&lt;/a&gt;, I also decided to purchase a &lt;a href=&#34;http://www.amazon.com/Logitech-Trackman-Wheel-Optical-Silver/dp/B00005NIMJ&#34;&gt;Logitech Trackman Wheel Optical&lt;/a&gt;.  It&amp;rsquo;s basically a thumb-oriented trackball that resembles a standard mouse (with regards to clicking, scrolling, etc).&lt;/p&gt;
&lt;p&gt;Adjusting to using the trackball was extremely easy. I have one at work and one at home. I haven&amp;rsquo;t been able to use it for games yet, so I&amp;rsquo;ve still got a second mouse around for that (more on that in a bit…)&lt;/p&gt;</description>
    </item>
    <item>
      <title>Review: Unicomp Customizer 104</title>
      <link>/posts/unicomp-customizer-104/</link>
      <pubDate>Sat, 18 Dec 2010 23:05:00 -0800</pubDate>
      <guid>/posts/unicomp-customizer-104/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve recently purchased a &lt;a href=&#34;http://pckeyboards.stores.yahoo.net/customizer.html&#34;&gt;Unicomp Customizer 104&lt;/a&gt;. It is essentially a modern version of the old IBM Model M mechanical keyboards. I do a fair amount of typing, so I thought it would be worthwhile to invest in a better keyboard.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve decided not to post photos since there seems to be no shortage of those on &lt;a href=&#34;http://www.google.ca/images?q=unicomp+customizer+104&#34;&gt;teh interwebs&lt;/a&gt; already.&lt;/p&gt;
&lt;p&gt;The feel is very nice. It reminds me of the Model M I used to have, but unfortunately, that model is long gone and I can&amp;rsquo;t do a direct comparison. The keys are very loud, which was expected from this type of mechanism (&lt;a href=&#34;http://en.wikipedia.org/wiki/Buckling_spring&#34;&gt;Buckling Spring&lt;/a&gt;). I expected the actual mechanism to buckle roughly 50-75% of the way down so that an experienced typist can stop their finger motion before they hit the backplate. It appears that these keys require almost 95% motion, at least by my rough estimate. I consider it impossible to type without moving the key completely down. Unfortunate, but no worse than any other keyboard.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Using devtodo with multiple projects</title>
      <link>/posts/using-devtodo-with-multiple-projects/</link>
      <pubDate>Mon, 12 Jul 2010 15:34:29 -0700</pubDate>
      <guid>/posts/using-devtodo-with-multiple-projects/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve tried (and failed) to use many different pieces of software
designed to manage todo lists. The main reasons I&amp;rsquo;ve failed is because
the software either has a high learning curve, bad documentation, or it
is cumbersome to use.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve finally struck gold with devtodo. Out of the box, it is almost
perfect, but there are a few little issues:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;It expects .todo in the current directory&lt;/li&gt;
&lt;li&gt;It has no ability to track what you are working on.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I&amp;rsquo;ve managed to work around both of those with some extra functions in
my .bash_profile.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Reverse Find</title>
      <link>/posts/reverse-find/</link>
      <pubDate>Mon, 12 Jul 2010 14:54:00 -0700</pubDate>
      <guid>/posts/reverse-find/</guid>
      <description>&lt;p&gt;I recently had need to do a reverse find, and couldn&amp;rsquo;t discover any programs that offer this functionality. I decided to work around the issue using a bash function, loops, and &lt;code&gt;find&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;This function can be stuffed into your ~/.bash_profile, and referenced wherever you need it.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;rfind()
{
    rfind_path=&amp;amp;quot;${PWD}&amp;amp;quot;
    while [[ &amp;amp;quot;${rfind_path}&amp;amp;quot; != &amp;amp;quot;/&amp;amp;quot; ]]; do
        rfind_search_paths=&amp;amp;quot;${rfind_search_paths} ${rfind_path}&amp;amp;quot;
        rfind_path=$(dirname &amp;amp;quot;${rfind_path}&amp;amp;quot;)
    done
    
    find ${rfind_search_paths} / -maxdepth 1 $@ -print -quit
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;As an example, let&amp;rsquo;s say I&amp;rsquo;m in /home/user/docs, and I execute &lt;code&gt;rfind somefile.txt&lt;/code&gt;. rfind will actually build a command and execute the following:&lt;/p&gt;</description>
    </item>
    <item>
      <title>the iPad letdown</title>
      <link>/posts/the-ipad-letdown/</link>
      <pubDate>Thu, 28 Jan 2010 22:58:27 -0800</pubDate>
      <guid>/posts/the-ipad-letdown/</guid>
      <description>&lt;p&gt;Okay, so the ipad is just a big ipod touch, and filling the &amp;ldquo;device too large to always have on you but too limited to do lots with&amp;rdquo; between a handy with-you smartphone and a real computer.&lt;/p&gt;
&lt;p&gt;If it was an accessory to a computer, THEN it would be interesting. Put it on the dock and it acts like a second screen. If you&amp;rsquo;re reading a PDF or web page, you can send it to the ipad for display, grab the ipad and continue having your reference material up. How about an example:&lt;/p&gt;</description>
    </item>
    <item>
      <title>For Twits and bookfacers</title>
      <link>/posts/for-twits-and-bookfacers/</link>
      <pubDate>Thu, 24 Dec 2009 15:06:54 -0800</pubDate>
      <guid>/posts/for-twits-and-bookfacers/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve linked my blog to [Twitter](&lt;a href=&#34;http://twitter.com&#34;&gt;http://twitter.com&lt;/a&gt; Twitter), [Identi.ca](&lt;a href=&#34;http://identi.ca&#34;&gt;http://identi.ca&lt;/a&gt; identi.ca), and [Facebook](&lt;a href=&#34;http://facebook.com&#34;&gt;http://facebook.com&lt;/a&gt; Facebook) via [ping.fm](&lt;a href=&#34;http://ping.fm&#34;&gt;http://ping.fm&lt;/a&gt; ping dot fm) via [CR Post2Pingfm](&lt;a href=&#34;http://wordpress.org/extend/plugins/cr-post2pingfm/&#34;&gt;http://wordpress.org/extend/plugins/cr-post2pingfm/&lt;/a&gt; CR Post to Ping fm) [Twitterfeed](&lt;a href=&#34;http://twitterfeed.com/&#34;&gt;http://twitterfeed.com/&lt;/a&gt; Twitter Feed dot com). Whew.&lt;/p&gt;
&lt;p&gt;Hopefully this means that I will update my blog more often as there is a slight, remote chance that somebody might actually see it.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve got two LUG presentations coming up: DIY debian packaging for [LOLUG](&lt;a href=&#34;http://groups.google.ca/group/lolug&#34;&gt;http://groups.google.ca/group/lolug&lt;/a&gt; London Ontario Linux Users Group) and KVM+libvirt for [KWLUG](&lt;a href=&#34;http://kwlug.org/&#34;&gt;http://kwlug.org/&lt;/a&gt; Kitchener-Waterloo Linux Users Group). I&amp;rsquo;ll post slides when I present.&lt;/p&gt;</description>
    </item>
    <item>
      <title>imagecompare</title>
      <link>/posts/imagecompare/</link>
      <pubDate>Thu, 15 Oct 2009 19:58:54 -0700</pubDate>
      <guid>/posts/imagecompare/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve created a new project called imagecompare. The purpose is to detect and merge duplicate images, particularly where EXIF information may differ.&lt;/p&gt;
&lt;p&gt;There is more information on &lt;a href=&#34;/blog/projects/imagecompare/&#34;&gt;the project page&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Git</title>
      <link>/posts/git-316/</link>
      <pubDate>Wed, 30 Sep 2009 20:13:04 -0700</pubDate>
      <guid>/posts/git-316/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve recently switched over to using git for revision control for my personal projects. This has made doing packaging and development substantially easier.&lt;/p&gt;
&lt;p&gt;I also decided to use git for my resume. I&amp;rsquo;ve redone my resume in LyX (a LaTeX front end)&lt;/p&gt;</description>
    </item>
    <item>
      <title>My Ubuntu PPA packages</title>
      <link>/posts/my-ubuntu-ppa-packages/</link>
      <pubDate>Thu, 19 Feb 2009 05:35:26 -0800</pubDate>
      <guid>/posts/my-ubuntu-ppa-packages/</guid>
      <description>&lt;p&gt;I have a [PPA on Launchpad.net](&lt;a href=&#34;https://edge.launchpad.net/~chrisirwin/+archive/ppa&#34;&gt;https://edge.launchpad.net/~chrisirwin/+archive/ppa&lt;/a&gt; Chris Irwin&amp;rsquo;s PPA) now. I&amp;rsquo;ve found it substantially easier than managing my own repository. Apparently some other folks use it, so I will be posting here when I do notable updates and additions. Here is a breakdown of what is on there now:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;cwi-meta&lt;/strong&gt; and the cwi-* packages it builds. These are packages that provide PPA repository information and package dependencies for me setting up new (virtual) machines. One apt-get and I have my expected environment.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;libvirt&lt;/strong&gt;, &lt;strong&gt;virt-manager&lt;/strong&gt;, and associated packages. I&amp;rsquo;m keeping these up to date for Intrepid as I am using them with kvm/qemu.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;cwi-vm-builder&lt;/strong&gt;. A wrapper around ubuntu-vm-builder. When compined with an apt proxy/cache, it can bootstrap a VM in about 2 minutes. This is my standard vm template so I can build a new VM in a single command.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;task&lt;/strong&gt; &amp;amp; &lt;strong&gt;yagtd&lt;/strong&gt;. Two unrelated gtd-style task managers. I reccommend trying them out.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you use my PPA, feel free to contact me with suggestions and issues. I can&amp;rsquo;t fix anything I don&amp;rsquo;t know about. Also, launchpad does not give any statistics on PPA useage, or download history. It would be nice to get a rough count of the number of users using my packages.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Bulk Import</title>
      <link>/posts/bulk-import/</link>
      <pubDate>Sat, 14 Feb 2009 07:13:55 -0800</pubDate>
      <guid>/posts/bulk-import/</guid>
      <description>&lt;p&gt;I have imported content from my previous Wordpress blog (It was MIA for a bit). Pretty much everything older than this post is obsolete.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Things to remember</title>
      <link>/posts/things-to-remember-63/</link>
      <pubDate>Mon, 05 Feb 2007 23:30:02 -0800</pubDate>
      <guid>/posts/things-to-remember-63/</guid>
      <description>&lt;p&gt;Here are some interesting links to keep handy. I do not think these are easy enough to come across, so I&amp;rsquo;m linking to them from here.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;http://discussions.apple.com/message.jspa?messageID=2378251#2378251&#34;&gt;How to get windows to use a hardware clock set to GMT&lt;/a&gt;. You know, like the rest of the world.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;http://ubuntuforums.org/showthread.php?t=225621&#34;&gt;How to grab the i-sight firmware for use with Linux&lt;/a&gt;. Note that the kernel in Ubuntu Feisty already has the driver part.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;http://www.murrayc.com/blog/permalink/2006/09/19/installing-an-email-server-on-ubuntu/&#34;&gt;Some Ubuntu email server tips&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Some &amp;quot;Free to a good home&amp;quot; stuff</title>
      <link>/posts/some-free-to-a-good-home-stuff/</link>
      <pubDate>Fri, 01 Dec 2006 01:45:42 -0800</pubDate>
      <guid>/posts/some-free-to-a-good-home-stuff/</guid>
      <description>&lt;p&gt;I have various pieces of computer equipment that I am looking to get rid of. I would much prefer to give them to somebody who can put them to a useful purpose rather than throw them out. Please contact me if you are interested.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;m listing all components separately. While several are currently attached (motherboards + cpus) I am willing to divide up this stuff however necessary.&lt;/p&gt;
&lt;h2 id=&#34;free-stuff&#34;&gt;Free Stuff&lt;/h2&gt;
&lt;h3 id=&#34;motherboards--cpus&#34;&gt;Motherboards + CPUs&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;2 - 1.2GHz AMD Athlon (Thunderbird) CPUs&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Need heatsinks, probably around $20 nowadays.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Ubuntu packages</title>
      <link>/posts/ubuntu-packages/</link>
      <pubDate>Sat, 04 Nov 2006 02:26:42 -0800</pubDate>
      <guid>/posts/ubuntu-packages/</guid>
      <description>&lt;p&gt;I was just building some statistics of users, and apparently there are 82 unique IPs that access my &lt;a href=&#34;http://packages.cidesign.ca&#34;&gt;package repository&lt;/a&gt;. This excludes my workstations. I had no idea anybody else was even using them, so &amp;ldquo;Rock On&amp;rdquo; as it were.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ll be creating an RSS feed soon to keep users appraised of future changes to the repository. Also, I apologize for the reorganization that happened a few weeks ago, as it probably had caused some headaches.&lt;/p&gt;</description>
    </item>
    <item>
      <title>The Revolution will not be Televised</title>
      <link>/posts/the-revolution-will-not-be-televised-9/</link>
      <pubDate>Fri, 22 Sep 2006 01:07:22 -0700</pubDate>
      <guid>/posts/the-revolution-will-not-be-televised-9/</guid>
      <description>&lt;p&gt;There is a rather interesting documentary about Hugo Chavez of Venezuala.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;http://video.google.com/videoplay?docid=5832390545689805144&amp;amp;q=the+revolution+will+not+be+televised&#34;&gt;The Revolution will not be Televised&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>WTF Yahoo</title>
      <link>/posts/wtf-yahoo/</link>
      <pubDate>Sun, 17 Sep 2006 18:00:39 -0700</pubDate>
      <guid>/posts/wtf-yahoo/</guid>
      <description>&lt;pre&gt;&lt;code&gt;[ zaphod ] ~ $ ping -c 1 yahoo.com
PING yahoo.com (66.94.234.13) 56(84) bytes of data.
64 bytes from **fifaworldcup**.yahoo.net (66.94.234.13): icmp_seq=1 ttl=52 time=83.8 ms

--- yahoo.com ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 83.859/83.859/83.859/0.000 ms
&lt;/code&gt;&lt;/pre&gt;</description>
    </item>
    <item>
      <title>Breaky Breaky</title>
      <link>/posts/breaky-breaky/</link>
      <pubDate>Tue, 12 Sep 2006 18:18:50 -0700</pubDate>
      <guid>/posts/breaky-breaky/</guid>
      <description>&lt;p&gt;So I sent my MacBook in for repairs. The fn key seems to have come right off, which is unfortunately not only a useful key, but perhaps the most heavily-trafficked key on the entire board (being a pre-requisite of such auspicious keys such as Page-Up, and Home). Luckily, the guy at the store thinks it may be ready tomorrow &amp;ndash; assuming they can diagnose the missing key and quickly order a replacement keyboard. I forgot to mention the wonky trackpad issue &amp;ndash; perhaps a service ticket for another day.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Motorola e815 and Palm T3 with iSync</title>
      <link>/posts/motorola-e815-and-palm-t3-with-isync/</link>
      <pubDate>Fri, 08 Sep 2006 04:16:10 -0700</pubDate>
      <guid>/posts/motorola-e815-and-palm-t3-with-isync/</guid>
      <description>&lt;p&gt;My old Phone sucked. It was a small Kyocera slider that had consistently horrible reception and call quality. I was able to opt for a hardware update today, and decided to jump for it. I got a &lt;a href=&#34;http://www.phonescoop.com/phones/phone.php?p=663&#34;&gt;Motorola e815&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;It seems to have excellent call quality and reception, though I&amp;rsquo;ve only had it a few hours, so this may be rather subjective. The website linked above seems to indicate the phone does not have Java, but mine apparently does. This may be a bell mobility thing, however. I also seem to be able to transfer photos to and from the camera itself via the Apple Bluetooth tools, as well as use isync with it.&lt;/p&gt;</description>
    </item>
    <item>
      <title>libpam-encfs</title>
      <link>/posts/libpam-encfs/</link>
      <pubDate>Sun, 27 Aug 2006 23:12:33 -0700</pubDate>
      <guid>/posts/libpam-encfs/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve spent the time since my last post playing with encfs and libpam-encfs. It is actually rather easy to have working, and I haven&amp;rsquo;t noticed much of a slow-down for regular system use yet.&lt;/p&gt;</description>
    </item>
    <item>
      <title>PAM Modules</title>
      <link>/posts/pam-modules/</link>
      <pubDate>Sun, 27 Aug 2006 20:41:52 -0700</pubDate>
      <guid>/posts/pam-modules/</guid>
      <description>&lt;p&gt;Playing around with PAM modules lately, I have discovered libpam-ssh and pam-keyring. Both require some mucking about in /etc/pam.d/, but provide some worthwhile benefits.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;libpam-ssh&lt;/strong&gt; provides automatic spawning of ssh-agent, and populating ssh keys as required. This is handier than the keychain package as you do not have to enter passwords for each key, or even at all other than the initial login. The downside, of course, is that your ssh key passphrases must be the same as your system password.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Package Changes</title>
      <link>/posts/package-changes/</link>
      <pubDate>Sun, 27 Aug 2006 20:16:03 -0700</pubDate>
      <guid>/posts/package-changes/</guid>
      <description>&lt;p&gt;I have changed packages.cidesign.ca again. It is now i386 only, as I do not really use ppc since I got the macbook, and I can not maintain it.&lt;/p&gt;
&lt;p&gt;I have added updated packages for dosbox 0.65, as well as scummvm 0.9.0. I have modified scummvm to install the modern theme, and to search a system-wide path for themes (/usr/share/scummvm/themes). It seems to work alright, and looks a whole lot nicer.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Welcome to the 21st Century</title>
      <link>/posts/welcome-to-the-21st-century-3/</link>
      <pubDate>Wed, 14 Jun 2006 06:16:35 -0700</pubDate>
      <guid>/posts/welcome-to-the-21st-century-3/</guid>
      <description>&lt;p&gt;So I purchased a Macbook. I waited until I had it for a bit before posting about it. I&amp;rsquo;ve only had it for two days, but am really enjoying it thus far. I will post photos later.&lt;/p&gt;
&lt;p&gt;This is not a review. There are enough of those already.&lt;/p&gt;
&lt;p&gt;The screen is excellent, the keyboard only takes a few minutes to get used to, the touch-pad is very natural, and the heat issues are&amp;hellip; intermittent, and very dependent on ambient-temperature. During the day, my machine tends to idle anywhere from 50 - 60 Celsius. Night tends to drop a few degrees to 45 - 52.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Listing only Directories</title>
      <link>/posts/listing-only-directories/</link>
      <pubDate>Sat, 13 May 2006 22:18:25 -0700</pubDate>
      <guid>/posts/listing-only-directories/</guid>
      <description>&lt;p&gt;So as part of this little repository I made for myself, I&amp;rsquo;ve built a script to regenerate the the required apt files.&lt;/p&gt;
&lt;p&gt;But here is the issue: I&amp;rsquo;ve got a symlink called &amp;ldquo;6.06&amp;rdquo; pointing to the &amp;ldquo;dapper&amp;rdquo; directory. I don&amp;rsquo;t wish to regenerate both, as they are identical contents, and &lt;code&gt;ls -d */&lt;/code&gt; returns the symlink as a directory. I&amp;rsquo;ve resorted to using some command-line kung-fu to get around this, but if anybody happens to know of a better way, please let me know:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Ubuntu Packaging goodness</title>
      <link>/posts/ubuntu-packaging-goodness/</link>
      <pubDate>Sun, 07 May 2006 22:40:58 -0700</pubDate>
      <guid>/posts/ubuntu-packaging-goodness/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve been reading up on debian packages since I&amp;rsquo;m now an Ubuntu user (Ubuntu being derived from Debian). I was previously building packages, copying them around, and manually installing and pinning versions. Today, I decided to simplify this process by creating my own package repository.&lt;/p&gt;
&lt;p&gt;Behold, [http://packages.cidesign.ca/](&lt;a href=&#34;http://packages.cidesign.ca/&#34;&gt;http://packages.cidesign.ca/&lt;/a&gt; packages.cidesign.ca).&lt;/p&gt;
&lt;p&gt;The following lines in /etc/apt/sources.list will add this repository:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;## cidesign packages
deb http://packages.cidesign.ca/ubuntu/ dapper main
deb-src http://packages.cidesign.ca/ubuntu/ dapper main
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Most of the packages are from using checkinstall, so dependancies are not mapped at all. I&amp;rsquo;ll be going about doing these packages properly at some point in the future (likely when new versions are released).&lt;/p&gt;</description>
    </item>
    <item>
      <title>Linux on the iBook updates</title>
      <link>/posts/linux-on-the-ibook-updates/</link>
      <pubDate>Fri, 05 May 2006 04:50:01 -0700</pubDate>
      <guid>/posts/linux-on-the-ibook-updates/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve replaced the slow Hitachi 4200rpm 2MB cache hard disk in my iBook. Unfortunately the new Samsung 40GB 5400rpm 8MB cache drive seems to have horrible power management features, and gets quite hot. Though it is a very noticable upgrade, system performance is much better now.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve taken this opportunity to perform a fresh install of both OSX and Ubuntu Dapper (using Beta 2 media). I&amp;rsquo;m creating a how-to page detailing special steps needed during or after install.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Birthday</title>
      <link>/posts/birthday-2033/</link>
      <pubDate>Fri, 05 May 2006 03:48:14 -0700</pubDate>
      <guid>/posts/birthday-2033/</guid>
      <description>&lt;p&gt;I&amp;rsquo;m pretty bad for doing updates.&lt;/p&gt;
&lt;p&gt;I just turned 23 on Tuesday to much fanfare and celebrations (I had dinner at Spageddy Eddy&amp;rsquo;s with Alexis ;)&lt;/p&gt;
&lt;p&gt;Me and Chris K are having a joint birthday celebration at the Elephant &amp;amp; Castle, located on King and Wellington, just inside Galleria Mall. Saturday May 06 2006, about 10:00PM (I&amp;rsquo;ll be there a bit earlier to eat though). Feel free to show up, and bring whomever you would like.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Wordpress and Dapper</title>
      <link>/posts/wordpress-and-dapper/</link>
      <pubDate>Mon, 17 Apr 2006 01:48:14 -0700</pubDate>
      <guid>/posts/wordpress-and-dapper/</guid>
      <description>&lt;p&gt;Well, I&amp;rsquo;ve gone back to wordpress. No real reason why, however. Typo is some very good software as well.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;m also running Ubuntu 6.06 &amp;ldquo;Dapper Drake&amp;rdquo; on my server. &amp;ldquo;Oh cool&amp;rdquo; you may say before you realize that it is only 6.04 right now. Let me answer a few questions&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&amp;ldquo;Why Dapper?&amp;rdquo;&lt;/strong&gt; I wanted to have some neat things like Avahi, a newer mono, and a few other nicities installed. This was looking to be too troublesome with 5.10 &amp;ldquo;breezy&amp;rdquo;.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
