<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/rss2full.xsl" type="text/xsl" media="screen"?><?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/itemcontent.css" type="text/css" media="screen"?><!-- generator="wordpress/2.3.1" --><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>blog.dknowles.org</title>
	<link>http://blog.dknowles.org</link>
	<description>A man, a city, a keyboard, a dream</description>
	<pubDate>Sun, 28 Dec 2008 01:48:39 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.3.1</generator>
	<language>en</language>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/dknowles" type="application/rss+xml" /><item>
		<title>mythbuntu, ltsp and home directories</title>
		<link>http://feeds.feedburner.com/~r/dknowles/~3/497948322/</link>
		<comments>http://blog.dknowles.org/2008/12/27/mythbuntu-ltsp-and-home-directories/#comments</comments>
		<pubDate>Sun, 28 Dec 2008 01:48:39 +0000</pubDate>
		<dc:creator>dknowles</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[mythtv]]></category>

		<category><![CDATA[nerdiness]]></category>

		<guid isPermaLink="false">http://blog.dknowles.org/2008/12/27/mythbuntu-ltsp-and-home-directories/</guid>
		<description><![CDATA[Since I just spent about an hour trying to find this again, mythbuntu diskless clients have an &#8220;overlay&#8221; where the home directories and some other files specific to each instance are stored.  On the server, you can find these in /var/cache/mythbuntu-diskless/overlay/[mac_address]/
]]></description>
			<content:encoded><![CDATA[<p>Since I just spent about an hour trying to find this again, mythbuntu diskless clients have an &#8220;overlay&#8221; where the home directories and some other files specific to each instance are stored.  On the server, you can find these in /var/cache/mythbuntu-diskless/overlay/[mac_address]/</p>
<img src="http://feeds.feedburner.com/~r/dknowles/~4/497948322" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.dknowles.org/2008/12/27/mythbuntu-ltsp-and-home-directories/feed/</wfw:commentRss>
		<feedburner:origLink>http://blog.dknowles.org/2008/12/27/mythbuntu-ltsp-and-home-directories/</feedburner:origLink></item>
		<item>
		<title>Linux software raid notes</title>
		<link>http://feeds.feedburner.com/~r/dknowles/~3/274729773/</link>
		<comments>http://blog.dknowles.org/2008/04/21/linux-software-raid-notes/#comments</comments>
		<pubDate>Mon, 21 Apr 2008 14:17:30 +0000</pubDate>
		<dc:creator>dknowles</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[nerdiness]]></category>

		<guid isPermaLink="false">http://blog.dknowles.org/2008/04/21/linux-software-raid-notes/</guid>
		<description><![CDATA[This is mostly for my own reference, but someone else may find it useful.
I currently have two raid volumes in my home server.  They&#8217;re running on four disks, which are partitioned thusly:

root@bender:~# fdisk -l /dev/sd[abcd]

Disk /dev/sda: 400.0 GB, 400088457216 bytes
255 heads, 63 sectors/track, 48641 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk [...]]]></description>
			<content:encoded><![CDATA[<p>This is mostly for my own reference, but someone else may find it useful.</p>
<p>I currently have two raid volumes in my home server.  They&#8217;re running on four disks, which are partitioned thusly:</p>
<pre class="code">
root@bender:~# fdisk -l /dev/sd[abcd]

Disk /dev/sda: 400.0 GB, 400088457216 bytes
255 heads, 63 sectors/track, 48641 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x00000000

Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1       48641   390708801   83  Linux

Disk /dev/sdb: 400.0 GB, 400088457216 bytes
255 heads, 63 sectors/track, 48641 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x00000000

Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1       48641   390708801   83  Linux

Disk /dev/sdc: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x00000000

Device Boot      Start         End      Blocks   Id  System
/dev/sdc1               1       48641   390708801   83  Linux
/dev/sdc2           48642       60801    97675200   83  Linux

Disk /dev/sdd: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0xb7e306eb

Device Boot      Start         End      Blocks   Id  System
/dev/sdd1               1       48641   390708832   83  Linux
/dev/sdd2           48642       60801    97675200   83  Linux</pre>
<p>Using the partitions as raid targets, I end up with two raid volumes:</p>
<pre class="code">
md0 : active raid5 sdd1[3] sda1[0] sdc1[2] sdb1[1]
md1 : active raid1 sdd2[1] sdc2[0]</pre>
<p>On top of these raid volumes, I&#8217;m running an LVM so that they can be easily resized:</p>
<pre class="code">
root@bender:~# pvdisplay
--- Physical volume ---
PV Name               /dev/md1
VG Name               vgraid1
PV Size               93.15 GB / not usable 9.88 MB
Allocatable           yes (but full)
PE Size (KByte)       16384
Total PE              5961
Free PE               0
Allocated PE          5961
PV UUID               NX3sku-sNGU-yqyw-3peE-Bd8W-KjBo-xsUol8
--- Physical volume ---
PV Name               /dev/md0
VG Name               vgraid
PV Size               1.09 TB / not usable 14.31 MB
Allocatable           yes (but full)
PE Size (KByte)       16384
Total PE              71540
Free PE               0
Allocated PE          71540
PV UUID               wtYFqQ-499L-BbuB-zaRb-EV16-Y5sT-ZcG65b</pre>
<p>And now, the fun stuff.  Here&#8217;s how the original raid5 volume was made (which was originally missing a 500G disk, because it died on me when I first got it):</p>
<pre class="code">
root@bender:~# mdadm --create --verbose /dev/md0 --chunk=128 \
  --level=5 --raid-devices=3 /dev/sda1 /dev/sdb1 /dev/sdc1

root@bender:~# pvcreate /dev/md0

root@bender:~# vgcreate -s 16M vgraid /dev/md0

root@bender:~# lvcreate -l 47693 vgraid -n bigdisk

root@bender:~# mkfs.xfs /dev/vgraid/bigdisk</pre>
<p>[note: this was done a while back, so i&#8221;ve lost the output. for output example see below when i create my raid1 array]</p>
<p>I finally received my new 500G drive from RMA, so I had to resize the raid5 to include the new disk.  Here&#8217;s how it&#8217;s done.</p>
<p>First, create the new partitions to match the size on the other drive. (see above) Then, resize the raid array (takes a while&#8230;I started it then went to sleep, then it was magically done when I woke up this morning)</p>
<pre class="code">
root@bender:~# mdadm --add /dev/md0 /dev/sdd1
mdadm: added /dev/sdd1

root@bender:~# mdadm --detail /dev/md0
/dev/md0:
Version : 00.90.03
Creation Time : Fri Mar 21 09:52:31 2008
Raid Level : raid5
Array Size : 781417472 (745.22 GiB 800.17 GB)
Used Dev Size : 390708736 (372.61 GiB 400.09 GB)
Raid Devices : 3
Total Devices : 4
Preferred Minor : 0
Persistence : Superblock is persistent

Update Time : Sun Apr 20 23:28:58 2008
State : clean
Active Devices : 3
Working Devices : 4
Failed Devices : 0
Spare Devices : 1

Layout : left-symmetric
Chunk Size : 64K

UUID : 2621450e:bb4f9269:a0a0eea7:e933aaa5 (local to host bender)
Events : 0.17564

Number   Major   Minor   RaidDevice State
0       8        1        0      active sync   /dev/sda1
1       8       17        1      active sync   /dev/sdb1
2       8       33        2      active sync   /dev/sdc1

3       8       49        -      spare   /dev/sdd1

root@bender:~# mdadm --grow /dev/md0 --raid-devices=4
mdadm: Need to backup 384K of critical section..
mdadm: ... critical section passed.

root@bender:~# mdadm --detail /dev/md0
/dev/md0:
Version : 00.91.03
Creation Time : Fri Mar 21 09:52:31 2008
Raid Level : raid5
Array Size : 781417472 (745.22 GiB 800.17 GB)
Used Dev Size : 390708736 (372.61 GiB 400.09 GB)
Raid Devices : 4
Total Devices : 4
Preferred Minor : 0
Persistence : Superblock is persistent

Update Time : Sun Apr 20 23:29:48 2008
State : clean, recovering
Active Devices : 4
Working Devices : 4
Failed Devices : 0
Spare Devices : 0

Layout : left-symmetric
Chunk Size : 64K

Reshape Status : 0% complete
Delta Devices : 1, (3-&gt;4)

UUID : 2621450e:bb4f9269:a0a0eea7:e933aaa5 (local to host bender)
Events : 0.17680

Number   Major   Minor   RaidDevice State
0       8        1        0      active sync   /dev/sda1
1       8       17        1      active sync   /dev/sdb1
2       8       33        2      active sync   /dev/sdc1
3       8       49        3      active sync   /dev/sdd1

root@bender:~# mdadm --detail /dev/md0
/dev/md0:
Version : 00.90.03
Creation Time : Fri Mar 21 09:52:31 2008
Raid Level : raid5
Array Size : 1172126208 (1117.83 GiB 1200.26 GB)
Used Dev Size : 390708736 (372.61 GiB 400.09 GB)
Raid Devices : 4
Total Devices : 4
Preferred Minor : 0
Persistence : Superblock is persistent

Update Time : Mon Apr 21 09:15:38 2008
State : clean
Active Devices : 4
Working Devices : 4
Failed Devices : 0
Spare Devices : 0

Layout : left-symmetric
Chunk Size : 64K

UUID : 2621450e:bb4f9269:a0a0eea7:e933aaa5 (local to host bender)
Events : 0.277372

Number   Major   Minor   RaidDevice State
0       8        1        0      active sync   /dev/sda1
1       8       17        1      active sync   /dev/sdb1
2       8       33        2      active sync   /dev/sdc1
3       8       49        3      active sync   /dev/sdd1

root@bender:~# pvresize /dev/md0
Physical volume "/dev/md0" changed
1 physical volume(s) resized / 0 physical volume(s) not resized

root@bender:~# vgdisplay
--- Volume group ---
VG Name               vgraid
System ID
Format                lvm2
Metadata Areas        1
Metadata Sequence No  3
VG Access             read/write
VG Status             resizable
MAX LV                0
Cur LV                1
Open LV               0
Max PV                0
Cur PV                1
Act PV                1
VG Size               1.09 TB
PE Size               16.00 MB
Total PE              71540
Alloc PE / Size       47693 / 745.20 GB
Free  PE / Size       23847 / 372.61 GB
VG UUID               JPEInC-5bNp-f0iC-3611-qIIn-Drhd-A3xInG

root@bender:~# lvextend -l +23847 /dev/vgraid/bigdisk
Extending logical volume bigdisk to 1.09 TB
Logical volume bigdisk successfully resized

root@bender:~# xfs_growfs /dev/vgraid/bigdisk
meta-data=/dev/mapper/vgraid-bigdisk isize=256    agcount=32, agsize=6104704 blks
=                       sectsz=512   attr=0
data     =                       bsize=4096   blocks=195350528, imaxpct=25
=                       sunit=0      swidth=0 blks, unwritten=1
naming   =version 2              bsize=4096
log      =internal               bsize=4096   blocks=32768, version=1
=                       sectsz=512   sunit=0 blks, lazy-count=0
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 195350528 to 293027840

root@bender:~# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/hda1              73G   63G  6.2G  91% /
varrun                1.9G  264K  1.9G   1% /var/run
varlock               1.9G     0  1.9G   0% /var/lock
udev                  1.9G  120K  1.9G   1% /dev
devshm                1.9G     0  1.9G   0% /dev/shm
/dev/sde1             280G  271G  8.6G  97% /export/myth
/dev/mapper/vgraid-bigdisk
1.1T  453G  665G  41% /export/archive</pre>
<p>Since I now have my two 500G disks, I have an extra 100G on each (since I made all the partitions match to raid5 with the 400G disks) so I can raid1 those for a wonderfully redundant backup array.</p>
<pre class="code">
root@bender:~# mdadm --create --verbose /dev/md1 --chunk=128 \
  --level=1 --raid-devices=2 /dev/sdc2 /dev/sdd2
mdadm: chunk size ignored for this level
mdadm: size set to 97675136K
mdadm: array /dev/md1 started.

root@bender:~# pvcreate /dev/md1
Physical volume "/dev/md1" successfully created

root@bender:~# vgcreate -s 16M vgraid1 /dev/md1
Volume group "vgraid1" successfully created

root@bender:~# vgdisplay
--- Volume group ---
VG Name               vgraid1
System ID
Format                lvm2
Metadata Areas        1
Metadata Sequence No  1
VG Access             read/write
VG Status             resizable
MAX LV                0
Cur LV                0
Open LV               0
Max PV                0
Cur PV                1
Act PV                1
VG Size               93.14 GB
PE Size               16.00 MB
Total PE              5961
Alloc PE / Size       0 / 0
Free  PE / Size       5961 / 93.14 GB
VG UUID               Cxrf05-HaUJ-sPHx-Ai9P-eRYL-Ofoz-mnIsFx

--- Volume group ---
VG Name               vgraid
System ID
Format                lvm2
Metadata Areas        1
Metadata Sequence No  4
VG Access             read/write
VG Status             resizable
MAX LV                0
Cur LV                1
Open LV               1
Max PV                0
Cur PV                1
Act PV                1
VG Size               1.09 TB
PE Size               16.00 MB
Total PE              71540
Alloc PE / Size       71540 / 1.09 TB
Free  PE / Size       0 / 0
VG UUID               JPEInC-5bNp-f0iC-3611-qIIn-Drhd-A3xInG

root@bender:~# lvcreate -l 5961 vgraid1 -n backup
Logical volume "backup" created

root@bender:~# mkfs.xfs /dev/vgraid1/backup
meta-data=/dev/vgraid1/backup    isize=256    agcount=16, agsize=1526016 blks
=                       sectsz=512   attr=0
data     =                       bsize=4096   blocks=24416256, imaxpct=25
=                       sunit=0      swidth=0 blks, unwritten=1
naming   =version 2              bsize=4096
log      =internal log           bsize=4096   blocks=11922, version=1
=                       sectsz=512   sunit=0 blks, lazy-count=0
realtime =none                   extsz=4096   blocks=0, rtextents=0

root@bender:~# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/hda1              73G   63G  6.2G  91% /
varrun                1.9G  264K  1.9G   1% /var/run
varlock               1.9G     0  1.9G   0% /var/lock
udev                  1.9G  128K  1.9G   1% /dev
devshm                1.9G     0  1.9G   0% /dev/shm
/dev/sde1             280G  271G  8.6G  97% /export/myth
/dev/mapper/vgraid-bigdisk
1.1T  453G  665G  41% /export/archive
/dev/mapper/vgraid1-backup
94G  544K   94G   1% /export/backup</pre>
<p>Huzzah!  Less likeliness of lost data due to my stupidity!  Now to write some scripts to do automatic backups. :)</p>
<img src="http://feeds.feedburner.com/~r/dknowles/~4/274729773" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.dknowles.org/2008/04/21/linux-software-raid-notes/feed/</wfw:commentRss>
		<feedburner:origLink>http://blog.dknowles.org/2008/04/21/linux-software-raid-notes/</feedburner:origLink></item>
		<item>
		<title>Re: What I Want</title>
		<link>http://feeds.feedburner.com/~r/dknowles/~3/240685335/</link>
		<comments>http://blog.dknowles.org/2008/02/25/re-what-i-want/#comments</comments>
		<pubDate>Mon, 25 Feb 2008 05:08:23 +0000</pubDate>
		<dc:creator>dknowles</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[blogging]]></category>

		<category><![CDATA[greasemonkey]]></category>

		<category><![CDATA[javascript]]></category>

		<category><![CDATA[lazyweb]]></category>

		<category><![CDATA[nerdiness]]></category>

		<guid isPermaLink="false">http://blog.dknowles.org/2008/02/25/re-what-i-want/</guid>
		<description><![CDATA[A while back, I posted about a google reader function that I wanted&#8211;the ability to seamlessly share things from google reader to my blog.  Lazyweb wasn&#8217;t much help, so I rolled out a quick-and-dirty greasemonkey script to do it.  You can find it here: http://www.dknowles.org/other/google-reader-cross-share.user.js 
Right now, it works by clicking on the [...]]]></description>
			<content:encoded><![CDATA[<p>A while back, I <a href="http://blog.dknowles.org/2007/12/24/what-i-want/">posted</a> about a google reader function that I wanted&#8211;the ability to seamlessly share things from google reader to my blog.  Lazyweb wasn&#8217;t much help, so I rolled out a quick-and-dirty greasemonkey script to do it.  You can find it here: <a href="http://www.dknowles.org/other/google-reader-cross-share.user.js">http://www.dknowles.org/other/google-reader-cross-share.user.js </a></p>
<p>Right now, it works by clicking on the share icon below a reader entry.  I&#8217;m not catching keyboard shortcuts, so it requires a physical click.  (fine with me, as I&#8217;m a keyboard junkie and can&#8217;t be bothered with constant naggings about sharing on my blog)</p>
<p>The regular &#8220;use-at-own-risk-may-break-at-any-time&#8221; disclaimer applies.  Ideally, I&#8217;d eventually like this to make a greader-styled popup that asks for your blog entry, but that requires more work than I&#8217;m willing to put into this.  Plus, this works as-is.   If there&#8217;s interest in this, I can put it in SVN somewhere so people can give back and extend it and stuff.</p>
<img src="http://feeds.feedburner.com/~r/dknowles/~4/240685335" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.dknowles.org/2008/02/25/re-what-i-want/feed/</wfw:commentRss>
		<feedburner:origLink>http://blog.dknowles.org/2008/02/25/re-what-i-want/</feedburner:origLink></item>
		<item>
		<title>Intellectual property &amp; t-shirts</title>
		<link>http://feeds.feedburner.com/~r/dknowles/~3/225687905/</link>
		<comments>http://blog.dknowles.org/2008/01/29/intellectual-property-t-shirts/#comments</comments>
		<pubDate>Wed, 30 Jan 2008 04:52:10 +0000</pubDate>
		<dc:creator>dknowles</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[copyrights]]></category>

		<category><![CDATA[politics]]></category>

		<guid isPermaLink="false">http://blog.dknowles.org/2008/01/29/intellectual-property-t-shirts/</guid>
		<description><![CDATA[My awesome obama shirt wasn&#8217;t even up for a whole 24 hours before it got flagged by the people at cafepress.  I sent a nice email back asking for a specific reason for why my shirt was taken down, and I actually received a human response outlining everything.
While I don&#8217;t agree with the auto-flagging of [...]]]></description>
			<content:encoded><![CDATA[<p>My awesome <a href="http://dknowles.org/other/obama-rly.jpg">obama shirt</a> wasn&#8217;t even up for a whole 24 hours before it got flagged by the people at <a href="http://cafepress.com">cafepress</a>.  I sent a nice email back asking for a specific reason for why my shirt was taken down, and I actually received a human response outlining everything.</p>
<p>While I don&#8217;t agree with the auto-flagging of copyrighted material, I do appreciate the human response, and I understand why they won&#8217;t sell the shirt.  My problem with this is that it&#8217;s typically the copyright holder&#8217;s burden to flag infringements, and it feels icky for a company to take the task off the hands of the copyright holder.  Of course, these days it&#8217;s nearly impossible for a copyright holder to find every infringement.  And it&#8217;s also possible that the Obama campaign has already had some sort of agreement with cafepress regarding what is fair use and what isn&#8217;t.  I&#8217;ll just cover my eyes and ears and hope that&#8217;s the case.</p>
<p>So maybe it&#8217;s my mistake for using such a large company.  Maybe I&#8217;ll have better luck infringing copyrights with a smaller company (<a href="http://www.printfection.com/">printfection</a>, maybe?).  Not that infringing copyrights was my end-goal, but it&#8217;s something to keep in mind nonetheless.</p>
<p>On the upside, I did get a shipping confirmation from cafepress today.  So maybe I&#8217;ll still get the two shirts I ordered.  That&#8217;s all I wanted anyway&#8211;a cool shirt to wear on super Tuesday to Manuel&#8217;s.</p>
<img src="http://feeds.feedburner.com/~r/dknowles/~4/225687905" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.dknowles.org/2008/01/29/intellectual-property-t-shirts/feed/</wfw:commentRss>
		<feedburner:origLink>http://blog.dknowles.org/2008/01/29/intellectual-property-t-shirts/</feedburner:origLink></item>
		<item>
		<title>Randall Munroe endorses Obama</title>
		<link>http://feeds.feedburner.com/~r/dknowles/~3/224630118/</link>
		<comments>http://blog.dknowles.org/2008/01/28/randall-munroe-endorses-obama/#comments</comments>
		<pubDate>Mon, 28 Jan 2008 15:07:42 +0000</pubDate>
		<dc:creator>dknowles</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[nerdiness]]></category>

		<category><![CDATA[politics]]></category>

		<guid isPermaLink="false">http://blog.dknowles.org/2008/01/28/randall-munroe-endorses-obama/</guid>
		<description><![CDATA[O RLY? YA RLY.
This is an interesting endorsement.  Munroe (of xkcd fame) is typically not very political on his webcomic.  I think this just comes to show how important this election is.  Maybe this will at least get some of the young, tech-savvy (read: nerdy) vote to reconsider.  I get the impression we&#8217;ve lost a [...]]]></description>
			<content:encoded><![CDATA[<p>O RLY? <a href="http://blag.xkcd.com/2008/01/28/obama/">YA RLY</a>.</p>
<p>This is an interesting endorsement.  Munroe (of <a href="http://www.xkcd.com">xkcd</a> fame) is typically not very political on his webcomic.  I think this just comes to show how important this election is.  Maybe this will at least get some of the young, tech-savvy (read: nerdy) vote to reconsider.  I get the impression we&#8217;ve lost a lot of this demographic to Ron Paul, which is a shame.</p>
<p>Vote!</p>
<img src="http://feeds.feedburner.com/~r/dknowles/~4/224630118" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.dknowles.org/2008/01/28/randall-munroe-endorses-obama/feed/</wfw:commentRss>
		<feedburner:origLink>http://blog.dknowles.org/2008/01/28/randall-munroe-endorses-obama/</feedburner:origLink></item>
		<item>
		<title>NO WAI</title>
		<link>http://feeds.feedburner.com/~r/dknowles/~3/224415823/</link>
		<comments>http://blog.dknowles.org/2008/01/28/no-wai/#comments</comments>
		<pubDate>Mon, 28 Jan 2008 07:56:15 +0000</pubDate>
		<dc:creator>dknowles</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[politics]]></category>

		<guid isPermaLink="false">http://blog.dknowles.org/2008/01/28/no-wai/</guid>
		<description><![CDATA[I had this awesome idea for a t-shirt the other day.  Luckily I have moderately okay photoshop skills and cafepress at my disposal.  So, now I can actually have the shirt.  Huzzah!
http://www.cafepress.com/dknowles2.219891180
Oh&#8211;and make sure to vote this year, kids.
]]></description>
			<content:encoded><![CDATA[<p>I had this awesome idea for a t-shirt the other day.  Luckily I have moderately okay photoshop skills and cafepress at my disposal.  So, now I can actually have the shirt.  Huzzah!</p>
<p><a href="http://www.cafepress.com/dknowles2.219891180">http://www.cafepress.com/dknowles2.219891180</a></p>
<p>Oh&#8211;and make sure to vote this year, kids.</p>
<img src="http://feeds.feedburner.com/~r/dknowles/~4/224415823" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.dknowles.org/2008/01/28/no-wai/feed/</wfw:commentRss>
		<feedburner:origLink>http://blog.dknowles.org/2008/01/28/no-wai/</feedburner:origLink></item>
		<item>
		<title>What I Want</title>
		<link>http://feeds.feedburner.com/~r/dknowles/~3/205489153/</link>
		<comments>http://blog.dknowles.org/2007/12/24/what-i-want/#comments</comments>
		<pubDate>Mon, 24 Dec 2007 07:08:51 +0000</pubDate>
		<dc:creator>dknowles</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[blogging]]></category>

		<category><![CDATA[lazyweb]]></category>

		<guid isPermaLink="false">http://blog.dknowles.org/2007/12/24/what-i-want/</guid>
		<description><![CDATA[
A seamless google reader / wordpress integration.   


I want to be able to pull up the links I&#8217;ve shared in my google reader and write comments about them to post directly into my blog.  Most of the time, I read articles directly in reader so it&#8217;s a pain to have to click the links copy [...]]]></description>
			<content:encoded><![CDATA[<p>
A seamless google reader / wordpress integration.   
</p>
<p>
I want to be able to pull up the links I&#8217;ve shared in my google reader and write comments about them to post directly into my blog.  Most of the time, I read articles directly in reader so it&#8217;s a pain to have to click the links copy them, then paste them here to comment on them. I&#8217;m thinking either a greasemonkey script, or maybe a way of making a daily digest.   
</p>
<p>Anyone in the lazyweb want to make that happen for me? :) </p>
<img src="http://feeds.feedburner.com/~r/dknowles/~4/205489153" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.dknowles.org/2007/12/24/what-i-want/feed/</wfw:commentRss>
		<feedburner:origLink>http://blog.dknowles.org/2007/12/24/what-i-want/</feedburner:origLink></item>
		<item>
		<title>link of the day</title>
		<link>http://feeds.feedburner.com/~r/dknowles/~3/205487078/</link>
		<comments>http://blog.dknowles.org/2007/12/24/link-of-the-day/#comments</comments>
		<pubDate>Mon, 24 Dec 2007 07:06:21 +0000</pubDate>
		<dc:creator>dknowles</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[blogging]]></category>

		<category><![CDATA[nerdiness]]></category>

		<guid isPermaLink="false">http://blog.dknowles.org/2007/12/24/link-of-the-day/</guid>
		<description><![CDATA[24 people who mattered in 2007
A nice list of people who mattered (in the technological world) this year.  There&#8217;s a number of people on that list whose work I follow pretty closely, and a few more that I&#8217;ve heard of before.  Good stuff.
]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.broadbandmechanics.com/2007/12/25-who-mattered-in-2007">24 people who mattered in 2007</a></p>
<p>A nice list of people who mattered (in the technological world) this year.  There&#8217;s a number of people on that list whose work I follow pretty closely, and a few more that I&#8217;ve heard of before.  Good stuff.</p>
<img src="http://feeds.feedburner.com/~r/dknowles/~4/205487078" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.dknowles.org/2007/12/24/link-of-the-day/feed/</wfw:commentRss>
		<feedburner:origLink>http://blog.dknowles.org/2007/12/24/link-of-the-day/</feedburner:origLink></item>
		<item>
		<title>Link post</title>
		<link>http://feeds.feedburner.com/~r/dknowles/~3/201087483/</link>
		<comments>http://blog.dknowles.org/2007/12/16/link-post/#comments</comments>
		<pubDate>Sun, 16 Dec 2007 08:06:00 +0000</pubDate>
		<dc:creator>dknowles</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[django]]></category>

		<category><![CDATA[javascript]]></category>

		<category><![CDATA[nerdiness]]></category>

		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://blog.dknowles.org/2007/12/16/link-post/</guid>
		<description><![CDATA[
From a coworker, a great article on how django processes a request.  I&#8217;d actually figured most of this out from digging through the django codebase in the past.  Would&#8217;ve been nice to have this reference then. :) 
A good primer on javascript keyboard events in different browsers.  I&#8217;ve been fighting with this one at work recently.  Not fun.
An interesting javascript [...]]]></description>
			<content:encoded><![CDATA[<ul>
<li>From a coworker, a great article on <a href="http://www.b-list.org/weblog/2006/jun/13/how-django-processes-request/">how django processes a request</a>.  I&#8217;d actually figured most of this out from digging through the django codebase in the past.  Would&#8217;ve been nice to have this reference then. :) </li>
<li>A good primer on <a href="http://unixpapa.com/js/key.html">javascript keyboard events</a> in different browsers.  I&#8217;ve been fighting with this one at work recently.  Not fun.</li>
<li>An interesting <a href="http://yuiblog.com/blog/2007/06/12/module-pattern/">javascript pattern</a> for handling real public/private variables.</li>
<li><a href="http://icant.co.uk/articles/seven-rules-of-unobtrusive-javascript/">Seven rules of unobtrusive javascript</a>.</li>
<li>Seven is a popular number:  <a href="http://www.digital-web.com/articles/seven_javascript_techniques/">Seven javascript techniques you should be using today</a><br />
 </li>
</ul>
<img src="http://feeds.feedburner.com/~r/dknowles/~4/201087483" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.dknowles.org/2007/12/16/link-post/feed/</wfw:commentRss>
		<feedburner:origLink>http://blog.dknowles.org/2007/12/16/link-post/</feedburner:origLink></item>
		<item>
		<title>Duplicate entires be gone!</title>
		<link>http://feeds.feedburner.com/~r/dknowles/~3/199376327/</link>
		<comments>http://blog.dknowles.org/2007/12/12/duplicate-entires-be-gone/#comments</comments>
		<pubDate>Wed, 12 Dec 2007 08:44:39 +0000</pubDate>
		<dc:creator>dknowles</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[mythtv]]></category>

		<category><![CDATA[nerdiness]]></category>

		<category><![CDATA[sql]]></category>

		<guid isPermaLink="false">http://blog.dknowles.org/2007/12/12/duplicate-entires-be-gone/</guid>
		<description><![CDATA[I&#8217;ve got a bug in one of my scripts somewhere that&#8217;s saving multiple entries for video files in mythtv&#8217;s videometadata table.  Here&#8217;s a quick hacky SQL query to find them:

SELECT intid, filename, coverfile
FROM videometadata
WHERE filename IN
  (SELECT filename FROM
    (SELECT filename, COUNT(*) AS ttl FROM videometadata
     [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve got a bug in one of my scripts somewhere that&#8217;s saving multiple entries for video files in mythtv&#8217;s videometadata table.  Here&#8217;s a quick hacky SQL query to find them:</p>
<pre line="1" lang="sql">
SELECT intid, filename, coverfile
FROM videometadata
WHERE filename IN
  (SELECT filename FROM
    (SELECT filename, COUNT(*) AS ttl FROM videometadata
     GROUP BY filename HAVING ttl &gt; 1
    ) AS tmpfoo
  ) ORDER BY filename
</pre>
<img src="http://feeds.feedburner.com/~r/dknowles/~4/199376327" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.dknowles.org/2007/12/12/duplicate-entires-be-gone/feed/</wfw:commentRss>
		<feedburner:origLink>http://blog.dknowles.org/2007/12/12/duplicate-entires-be-gone/</feedburner:origLink></item>
	</channel>
</rss>
