<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss'><id>tag:blogger.com,1999:blog-3424573095170790819</id><updated>2010-03-08T23:04:11.116-08:00</updated><title type='text'>plek blog</title><subtitle type='html'>Kelp's blog of semi-interesting stuff.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://blog.plek.org/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3424573095170790819/posts/default'/><link rel='alternate' type='text/html' href='http://blog.plek.org/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/3424573095170790819/posts/default?start-index=26&amp;max-results=25'/><author><name>kelp</name><uri>http://www.blogger.com/profile/12987277534758618878</uri><email>noreply@blogger.com</email></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>155</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3424573095170790819.post-1557464950316719973</id><published>2008-09-07T12:40:00.000-07:00</published><updated>2008-09-07T12:55:29.108-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='blogging'/><title type='text'>Moved back to plek.org</title><content type='html'>I've decided to run my own blog software again, so I'm moving from blogger back to &lt;a href="http://plek.org/"&gt;plek.org&lt;/a&gt;. Any new content will be posted there. I've pointed feedburner at the new site, so the handful of people subscribing that way will just pickup the new site. This site will remain since some pages do get a few hits every now and then. I may import all my content into my new site, but that will take some work.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I intend to post more, but intentions mean nothign without actions. We'll see if how it really turns out. :)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The new site runs on my &lt;a href="http://www.slicehost.com/"&gt;Slicehost&lt;/a&gt; slice, using &lt;a href="http://www.chyrp.net/"&gt;Chyrp&lt;/a&gt;, a fairly new and lightweight blog engine. So far I'm quite happy with out. I still have a bunch of layout tweaks to do, so there will be subtle weirdness along the way. It's not like I actually get real traffic, so I just edit the live sites templates and CSS.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3424573095170790819-1557464950316719973?l=blog.plek.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3424573095170790819&amp;postID=1557464950316719973' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3424573095170790819/posts/default/1557464950316719973'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3424573095170790819/posts/default/1557464950316719973'/><link rel='alternate' type='text/html' href='http://blog.plek.org/2008/09/moved-back-to-plekorg.html' title='Moved back to plek.org'/><author><name>kelp</name><uri>http://www.blogger.com/profile/12987277534758618878</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03265934751349644154'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3424573095170790819.post-6926227993200329522</id><published>2008-06-01T22:27:00.000-07:00</published><updated>2008-06-01T22:53:32.629-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='religion'/><title type='text'>Sam Harris' Letter to a Christian Nation</title><content type='html'>I'd bought Sam Harris' &lt;a type="amzn" asin="0307278778"&gt;Letter to a Christian Nation&lt;/a&gt; a while ago, Late October 1996 according to Amazon, and I finally read it. It's a very short book, and shouldn't take more than an hour or two to read. I hightly recommend it as a concise argument against religion. It's by no means comprehensive, and it's bevity leaves much unsaid, but it's well worth the hour or two.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3424573095170790819-6926227993200329522?l=blog.plek.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3424573095170790819&amp;postID=6926227993200329522' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3424573095170790819/posts/default/6926227993200329522'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3424573095170790819/posts/default/6926227993200329522'/><link rel='alternate' type='text/html' href='http://blog.plek.org/2008/06/sam-harris-letter-to-christian-nation.html' title='Sam Harris&apos; Letter to a Christian Nation'/><author><name>Travis Cole</name><uri>http://www.blogger.com/profile/00481926398384832043</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03202420834112607112'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3424573095170790819.post-7701491395902436954</id><published>2008-04-26T21:58:00.000-07:00</published><updated>2008-04-26T21:59:12.745-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='howto'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>Multiple Monitors with an Nvidia Graphics Card on Ubuntu 8.04 Hardy.</title><content type='html'>Since Hardy's out, I made a fresh install on my desktop PC. I have an EVGA GeForce 8800GTS driving two Dell monitors, a 2407WFPHC at 1920x1200 and a 2004FPW at 1680x1050. The default install detected both monitors fine but ran only in cloned mode. That's really not ideal, especially since I run differently sized monitors. The Monitor Resolution Settings wasn't of any help, and I didn't want to dig into the xorg.conf, but I found an pretty easy fix.&lt;br /&gt;&lt;br /&gt;If you're lucky Ubuntu will let you know there are &lt;span style="font-weight: bold;"&gt;Restricted Drivers Available&lt;/span&gt; which will get this working better.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_DPRpWaKQ8NQ/SBQASTNq1jI/AAAAAAAAAF0/wrf64tqT0co/s1600-h/drivers.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp1.blogger.com/_DPRpWaKQ8NQ/SBQASTNq1jI/AAAAAAAAAF0/wrf64tqT0co/s400/drivers.png" alt="" id="BLOGGER_PHOTO_ID_5193776584660276786" border="0" /&gt;&lt;/a&gt;Click the little graphics card icon and install the&lt;span style="font-weight: bold;"&gt; NVIDIA accelerated graphics driver&lt;/span&gt; by checking the box under &lt;span style="font-weight: bold;"&gt;Enabled&lt;/span&gt;. That will install the driver and ask you to reboot, so reboot. In my case rebooting disabled my second monitor.&lt;br /&gt;&lt;br /&gt;Now we need to install the &lt;span style="font-weight: bold;"&gt;NVIDIA X Se&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;rver Settings&lt;/span&gt; tool. You can search for &lt;span style="font-weight: bold;"&gt;nvidia-settings&lt;/span&gt; in Synaptic to install it, or just open up a terminal and run:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;sudo apt-get install nvidia-settings&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Then from a terminal run:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;sudo nvidia-settings&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Click &lt;span style="font-weight: bold;"&gt;X Server Display Configuration&lt;/span&gt; and you should see this:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_DPRpWaKQ8NQ/SBQEzTNq1kI/AAAAAAAAAF8/Ve84LvN7cdQ/s1600-h/disabled_display.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp1.blogger.com/_DPRpWaKQ8NQ/SBQEzTNq1kI/AAAAAAAAAF8/Ve84LvN7cdQ/s400/disabled_display.png" alt="" id="BLOGGER_PHOTO_ID_5193781549642470978" border="0" /&gt;&lt;/a&gt;Click &lt;span style="font-weight: bold;"&gt;Configure&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;and enable &lt;span style="font-weight: bold;"&gt;TwinView&lt;/span&gt;, then arrange the displays as you'd like them. I ended up with this:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_DPRpWaKQ8NQ/SBQFljNq1lI/AAAAAAAAAGE/DCLWuNRJduI/s1600-h/arange_displays.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp2.blogger.com/_DPRpWaKQ8NQ/SBQFljNq1lI/AAAAAAAAAGE/DCLWuNRJduI/s400/arange_displays.png" alt="" id="BLOGGER_PHOTO_ID_5193782412930897490" border="0" /&gt;&lt;/a&gt;You'll notice I checked &lt;span style="font-weight: bold;"&gt;Make this the primary display for the X screen&lt;/span&gt; in the settings for my larger monitor. This will determin which monitor most things run in, like the login screen and the panel. Click &lt;span style="font-weight: bold;"&gt;Apply&lt;/span&gt;, make sure it looks good, then &lt;span style="font-weight: bold;"&gt;Save to X Configuration File&lt;/span&gt; and finally &lt;span style="font-weight: bold;"&gt;Quit&lt;/span&gt;. At this point it's working but a few things look janky, like your panel runs across both monitors, some screens show up half in one monitor, half in the other, stuff like that. Just loging out and back in clears that up.&lt;br /&gt;&lt;br /&gt;Enjoy!&lt;br /&gt;&lt;br /&gt;Of note, you may later find &lt;span style="font-weight: bold;"&gt;System -&gt; Administration -&gt; NVIDIA X Server Settings&lt;/span&gt;, but that won't really work since it needs permission to write out your new xorg.conf. You can fix this under &lt;span style="font-weight: bold;"&gt;System -&gt; Preferences -&gt; Main Menu&lt;/span&gt;. Click &lt;span style="font-weight: bold;"&gt;Administration&lt;/span&gt;, right click on &lt;span style="font-weight: bold;"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;NVIDIA&lt;/span&gt; X Server Settings&lt;/span&gt;&lt;span&gt; and select &lt;span style="font-weight: bold;"&gt;Properties.&lt;/span&gt; Add &lt;span style="font-weight: bold;"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;gksu&lt;/span&gt;&lt;/span&gt; to the start of &lt;span style="font-weight: bold;"&gt;Command&lt;/span&gt;, click &lt;span style="font-weight: bold;"&gt;Close&lt;/span&gt;, and you're set. Next time you run &lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;NVIDIA&lt;/span&gt; X Server Settings&lt;/span&gt;&lt;span&gt; there will be a password prompt and it will be able to write out the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;configs&lt;/span&gt; for you.&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3424573095170790819-7701491395902436954?l=blog.plek.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3424573095170790819&amp;postID=7701491395902436954' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3424573095170790819/posts/default/7701491395902436954'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3424573095170790819/posts/default/7701491395902436954'/><link rel='alternate' type='text/html' href='http://blog.plek.org/2008/04/multiple-monitors-with-nvidia-graphics.html' title='Multiple Monitors with an Nvidia Graphics Card on Ubuntu 8.04 Hardy.'/><author><name>kelp</name><uri>http://www.blogger.com/profile/12987277534758618878</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03265934751349644154'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp1.blogger.com/_DPRpWaKQ8NQ/SBQASTNq1jI/AAAAAAAAAF0/wrf64tqT0co/s72-c/drivers.png' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3424573095170790819.post-3848494824249103906</id><published>2007-12-21T12:05:00.000-08:00</published><updated>2007-12-31T10:22:34.432-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='email'/><category scheme='http://www.blogger.com/atom/ns#' term='social networks'/><title type='text'>Popular Social Networking Sites Fail at Email Validation</title><content type='html'>Back in the olden days, when I enjoyed things like running my own mail server, I used qmail's virtual domain support and .qmail files to create a unique email address for every website that asked for an email. This was handy for figuring out who let me address get into the hands of spammers, or just blocking sites that didn't unsubscribe me. I created these in the format sitename@plek.org. It worked out pretty well.&lt;br /&gt;&lt;br /&gt;I'll get to my real point here in a second, so please stick with me. I've since outgrown any desire to run my own mail server. It's a pain, especially with the never ending fight to keep spam filters trained and updated. Thankfully Google stepped in an created a very usable solution in Google Apps. Some time ago I switched plek.org email over there (and this blog to blogger) and things work well. Since moving to Google Apps, I have a slightly different way to handle things. I don't want to make my primary address a catchall for @plek.org since the spam volume is way too intense. I ran that way for a while and I didn't enjoy the hundreds of spams per day, even though Googles filters work quite well, if there is ever a false positive, it's gone for ever in the sea of trash.&lt;br /&gt;&lt;br /&gt;Thankfully Google has a nice solution. myaddress+sitename@plek.org works really well. If my address were spammy@plek.org, I could just tell Bebo to send all their mail to spammy+bebo@plek.org and all is good.&lt;br /&gt;&lt;br /&gt;Here's the rub. Someone at Facebook, and someone at Hi5 decided they really needed to be extra serious about email address validation. Those handy myaddress+sitename@plek.org fail the validation. They don't accept them at all. Bebo does, MySpace does. iLike does (if we didn't I'd complain and make sure we fixed it). Facebook and Hi5 really need to fix this. It's stupid to even try validating email addresses like that. The only thing that really works is to send a mail to the user.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3424573095170790819-3848494824249103906?l=blog.plek.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3424573095170790819&amp;postID=3848494824249103906' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3424573095170790819/posts/default/3848494824249103906'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3424573095170790819/posts/default/3848494824249103906'/><link rel='alternate' type='text/html' href='http://blog.plek.org/2007/12/popular-social-networking-sites-fail-at.html' title='Popular Social Networking Sites Fail at Email Validation'/><author><name>kelp</name><uri>http://www.blogger.com/profile/12987277534758618878</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03265934751349644154'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3424573095170790819.post-296965466990653139</id><published>2007-10-04T21:20:00.000-07:00</published><updated>2008-02-13T19:27:55.939-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='alix'/><category scheme='http://www.blogger.com/atom/ns#' term='network'/><category scheme='http://www.blogger.com/atom/ns#' term='wrap'/><title type='text'>ADSL2 and my WRAP router.</title><content type='html'>Today I got upgraded to 10Mbps ADSL2. So far so good. Too bad Speakeasy was bought by BestBuy, but so far, the inevitable suckage hasn't started. I'll leave when it does. For now things are solid.&lt;br /&gt;&lt;br /&gt;It's pretty fast, and latency is good.&lt;br /&gt;&lt;br /&gt;For the last couple of years I've a ran &lt;a href="http://m0n0.ch/wall/"&gt;m0n0wall&lt;/a&gt;, or currently, &lt;a href="http://pfsense.com/"&gt;pfSense&lt;/a&gt; on a &lt;a href="http://www.pcengines.ch/wrap.htm"&gt;PC Engines WRAP&lt;/a&gt; for my router. They are great little single board computers. Sadly the ADSL2 proves too much for the WRAP. It's now the limit of my network connection. Various network speed tests max out just under 6Mbps. When I connect my PC directly to the DSL modem I get over 8Mbps.&lt;br /&gt;&lt;br /&gt;So it looks like a &lt;a href="http://www.pcengines.ch/alix.htm"&gt;PC Engines ALIX&lt;/a&gt; is in my future. Looks like the ones I want ship in the next couple of weeks and pfSense 1.2 will be out soon too.&lt;br /&gt;&lt;br /&gt;Long over due &lt;span style="font-weight:bold;"&gt;EDIT:&lt;/span&gt; As you can see from the comments, I was just stupid and didn't update my traffic shaping rules. The WRAP does 10Mbps just fine.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3424573095170790819-296965466990653139?l=blog.plek.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3424573095170790819&amp;postID=296965466990653139' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3424573095170790819/posts/default/296965466990653139'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3424573095170790819/posts/default/296965466990653139'/><link rel='alternate' type='text/html' href='http://blog.plek.org/2007/10/adsl2-and-my-wrap-router.html' title='ADSL2 and my WRAP router.'/><author><name>kelp</name><uri>http://www.blogger.com/profile/12987277534758618878</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03265934751349644154'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3424573095170790819.post-6894937277974428349</id><published>2007-08-30T01:26:00.000-07:00</published><updated>2007-08-30T01:29:57.356-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='iphone'/><title type='text'>My iPhone Just Got a LOT Cooler</title><content type='html'>&lt;a href="http://iphone.nullriver.com/beta/"&gt;Installer.app&lt;/a&gt; is awesome! Download the software, plug your iPhone in, and let it go. It adds a package manager to your iPhone that downloads software from the internet.&lt;br /&gt;&lt;br /&gt;This is so cool. I have a real Unix command line on my iPhone without all the pain the previous methods brought. Nice.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3424573095170790819-6894937277974428349?l=blog.plek.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3424573095170790819&amp;postID=6894937277974428349' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3424573095170790819/posts/default/6894937277974428349'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3424573095170790819/posts/default/6894937277974428349'/><link rel='alternate' type='text/html' href='http://blog.plek.org/2007/08/my-iphone-just-got-lot-cooler.html' title='My iPhone Just Got a LOT Cooler'/><author><name>kelp</name><uri>http://www.blogger.com/profile/12987277534758618878</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03265934751349644154'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3424573095170790819.post-4000917483154269657</id><published>2007-07-13T15:46:00.001-07:00</published><updated>2007-07-13T18:08:21.834-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='iphone'/><category scheme='http://www.blogger.com/atom/ns#' term='apple'/><title type='text'>Why the iPhone Doesn't Have 3G: Battery Life</title><content type='html'>Anandtech has a pretty good set of tests showing the compromises Apple had to make with the iPhone. Steve said it was due to size and battery life. These tests show that pretty clearly. The iPhone may have only 3 hours of talk time if it used 3G. That just wouldn't be acceptable.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3424573095170790819-4000917483154269657?l=blog.plek.org' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.anandtech.com/gadgets/showdoc.aspx?i=3036&amp;p=7' title='Why the iPhone Doesn&apos;t Have 3G: Battery Life'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3424573095170790819&amp;postID=4000917483154269657' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3424573095170790819/posts/default/4000917483154269657'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3424573095170790819/posts/default/4000917483154269657'/><link rel='alternate' type='text/html' href='http://blog.plek.org/2007/07/why-iphone-doesnt-have-3g-battery-life.html' title='Why the iPhone Doesn&apos;t Have 3G: Battery Life'/><author><name>kelp</name><uri>http://www.blogger.com/profile/12987277534758618878</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03265934751349644154'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3424573095170790819.post-326137440169977929</id><published>2007-07-11T12:41:00.001-07:00</published><updated>2007-07-11T13:10:57.423-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='hosting'/><category scheme='http://www.blogger.com/atom/ns#' term='plantsix'/><title type='text'>Bye PlantSix</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_DPRpWaKQ8NQ/RpUynf-4UoI/AAAAAAAAAC4/Qef56Av7fQY/s1600-h/plantsix.png"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://bp0.blogger.com/_DPRpWaKQ8NQ/RpUynf-4UoI/AAAAAAAAAC4/Qef56Av7fQY/s400/plantsix.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5086027008366367362" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I started PlantSix some time in 2002 when I was working at InfoSpace and very bored. These were the days before Xen, when if you had to pay several hundred dollars a month for real dedicated hardware if you wanted root. I figured we could spread the cost, I'd buy a 1U server, ship it to California and get it collocated. I signed up a few people I knew, and we got it going with some handy paypal subscriptions to help cover my costs.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.he.net/"&gt;Hurricane Electric&lt;/a&gt; had a pretty decent colo deal (at least for the time) letting me put in just a single 1U server. I picked up a Supermicro 1U server with 1GB of RAM, 2 120GB SATA drives, and a 2.4Ghz P4. I loaded up FreeBSD 4.8 or something from that era, and mirrored the disks with Vinum. It's ran without a hitch for 5 years. Running PHP, Java, perl, and even Rails apps later on.&lt;br /&gt;&lt;br /&gt;In the end I got sick of making sure I was getting payed, too lazy to do any tech support, and with my new job, just too busy to deal. So I moved my own stuff to &lt;a href="http://www.slicehost.com"&gt;Slicehost&lt;/a&gt; and let everyone know they should start looking elsewhere.&lt;br /&gt;&lt;br /&gt;Today I ended a 2.6 year uptime. The server will be packed and shipped back to me, so it can live in a closet, powered off.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3424573095170790819-326137440169977929?l=blog.plek.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3424573095170790819&amp;postID=326137440169977929' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3424573095170790819/posts/default/326137440169977929'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3424573095170790819/posts/default/326137440169977929'/><link rel='alternate' type='text/html' href='http://blog.plek.org/2007/07/bye-plantsix.html' title='Bye PlantSix'/><author><name>kelp</name><uri>http://www.blogger.com/profile/12987277534758618878</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03265934751349644154'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp0.blogger.com/_DPRpWaKQ8NQ/RpUynf-4UoI/AAAAAAAAAC4/Qef56Av7fQY/s72-c/plantsix.png' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3424573095170790819.post-5776627073198226402</id><published>2007-07-06T15:07:00.000-07:00</published><updated>2007-07-06T15:10:21.389-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='att'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><category scheme='http://www.blogger.com/atom/ns#' term='iphone'/><title type='text'>AT&amp;T Caller ID Voice Mail Security</title><content type='html'>Ohh &lt;a href="http://www.oreillynet.com/onlamp/blog/2007/06/iphone_users_att_cingular_voic.html"&gt;look&lt;/a&gt;, AT&amp;T *still* uses Caller ID for Voice Mail security.&lt;br /&gt;&lt;br /&gt;It's too bad that Caller ID provides NO SECURITY AT ALL. The caller ID info you see is sent by the callers phone system. Their system can tell you what ever the hell they want, and your system will show it to you. In this case, if they send your phone number, and you don't pickup, they just get right into your voice mail.  Wonderful.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3424573095170790819-5776627073198226402?l=blog.plek.org' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.oreillynet.com/onlamp/blog/2007/06/iphone_users_att_cingular_voic.html' title='AT&amp;T Caller ID Voice Mail Security'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3424573095170790819&amp;postID=5776627073198226402' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3424573095170790819/posts/default/5776627073198226402'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3424573095170790819/posts/default/5776627073198226402'/><link rel='alternate' type='text/html' href='http://blog.plek.org/2007/07/at-caller-id-voice-mail-security.html' title='AT&amp;T Caller ID Voice Mail Security'/><author><name>kelp</name><uri>http://www.blogger.com/profile/12987277534758618878</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03265934751349644154'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3424573095170790819.post-2238673933049297320</id><published>2007-07-05T16:39:00.001-07:00</published><updated>2007-07-05T16:42:18.378-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><title type='text'>Nero or Microsoft English, Nice.</title><content type='html'>I'm not sure who's responsible, either Nero or Microsoft, but I went to update my Nero 7 install and got this fun box along the way:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_DPRpWaKQ8NQ/Ro2BrP-4UnI/AAAAAAAAACw/iBb7NQsA1eQ/s1600-h/english.PNG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp3.blogger.com/_DPRpWaKQ8NQ/Ro2BrP-4UnI/AAAAAAAAACw/iBb7NQsA1eQ/s400/english.PNG" alt="" id="BLOGGER_PHOTO_ID_5083862134395785842" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3424573095170790819-2238673933049297320?l=blog.plek.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3424573095170790819&amp;postID=2238673933049297320' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3424573095170790819/posts/default/2238673933049297320'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3424573095170790819/posts/default/2238673933049297320'/><link rel='alternate' type='text/html' href='http://blog.plek.org/2007/07/nero-or-microsoft-english-nice.html' title='Nero or Microsoft English, Nice.'/><author><name>kelp</name><uri>http://www.blogger.com/profile/12987277534758618878</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03265934751349644154'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp3.blogger.com/_DPRpWaKQ8NQ/Ro2BrP-4UnI/AAAAAAAAACw/iBb7NQsA1eQ/s72-c/english.PNG' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3424573095170790819.post-7757016428839198195</id><published>2007-06-07T13:16:00.000-07:00</published><updated>2007-06-07T13:21:31.405-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Debian'/><category scheme='http://www.blogger.com/atom/ns#' term='Redhat'/><title type='text'>Upgrading CentOS 4.4 to 5, Why Is It So Hard?</title><content type='html'>I've been doing live upgrades on Debian (and now Ubuntu) systems since, well, 1997. It's always pretty easy and straight forward.&lt;br /&gt;&lt;br /&gt;Why, 10 years later, do the RPM based distributions still recommend you boot from CD/DVD to do an upgrade?&lt;br /&gt;&lt;br /&gt;I've upgraded hundreds of Debian and Ubuntu boxes with very few problems. Apt, Deselect and DPKG just take care of most of the details, and now Ubuntu has packages to make it even easier. What the hell makes this so hard for the RedHat's of the world? They still even suggest a full reinstall is the best option.&lt;br /&gt;&lt;br /&gt;Just when I've gotten used to the suckyness of yum, setup my package building infrastructure and about happy with CentOS, this has to rear it's ugly head again. Yeah, I could try to contribute something to fix this, sure. Or wait for some of the new RPM projects to make it better. Or, I could go use a deb based distribution and have this shit just work, like it has for the last 10 years.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3424573095170790819-7757016428839198195?l=blog.plek.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3424573095170790819&amp;postID=7757016428839198195' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3424573095170790819/posts/default/7757016428839198195'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3424573095170790819/posts/default/7757016428839198195'/><link rel='alternate' type='text/html' href='http://blog.plek.org/2007/06/upgrading-centos-44-to-5-why-is-it-so.html' title='Upgrading CentOS 4.4 to 5, Why Is It So Hard?'/><author><name>kelp</name><uri>http://www.blogger.com/profile/12987277534758618878</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03265934751349644154'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3424573095170790819.post-965913065857741959</id><published>2007-05-10T11:45:00.000-07:00</published><updated>2007-05-10T12:16:08.715-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='politics'/><title type='text'>Tony Blair Resigning</title><content type='html'>&lt;blockquote&gt;Tony Blair said Thursday he would step down as prime minister on June 27, closing a decade of power in which he fostered peace in Northern Ireland and followed the United States to a war in Iraq that cost him much of his popularity.&lt;/blockquote&gt;It's about time. Under Blair the UK has slipped further into a police state, a watched society with cameras literally on every corner. They followed the US into a pointless war at huge cost, and alienation for much of the world. In their "War on Terror" they've done a great job at creating outrage in much of the world, and providing even more reason to join a terrorist organization. Just proving we really are what "they" say we are.&lt;br /&gt;&lt;br /&gt;To Blair's credit, I do believe he acted with good intentions, and did what he thought was right for his country. Unlike the Bush administration, who I believed coldly calculated (though still bungled) what they thought was best for them selves and their close personal allies, ignoring the cost to the country or the rest of the world.&lt;br /&gt;&lt;br /&gt;Before the war I liked and respected Tony Blair. He seemed a good leader heading in the right direction, but his choices since 2001 have been very poor. It was a sad turn for what could have been such a great legacy.&lt;br /&gt;&lt;br /&gt;Hopefully Britain can put it's self back on track, and stop blindly following the destructive lead of the US.&lt;br /&gt;&lt;br /&gt;Now we just need Bush to do that same. As if that would ever happen.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3424573095170790819-965913065857741959?l=blog.plek.org' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.newsvine.com/_news/2007/05/10/711499-britains-blair-says-he-is-resigning' title='Tony Blair Resigning'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3424573095170790819&amp;postID=965913065857741959' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3424573095170790819/posts/default/965913065857741959'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3424573095170790819/posts/default/965913065857741959'/><link rel='alternate' type='text/html' href='http://blog.plek.org/2007/05/tony-blair-resigning.html' title='Tony Blair Resigning'/><author><name>kelp</name><uri>http://www.blogger.com/profile/12987277534758618878</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03265934751349644154'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3424573095170790819.post-284098959776164622</id><published>2007-05-01T10:55:00.000-07:00</published><updated>2007-05-01T10:57:05.669-07:00</updated><title type='text'>News Corp trying to buy Dow Jones</title><content type='html'>&lt;blockquote&gt;&lt;/blockquote&gt;&lt;blockquote&gt;The News Corporation, owner of the Fox News Channel and The New York Post, has made an unsolicited $5 billion takeover bid for Dow Jones, publisher of The Wall Street Journal.&lt;/blockquote&gt;Yikes, I really hope this doesn't happen. I don't want to see any more media in the hands of Rupert Murdoch.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3424573095170790819-284098959776164622?l=blog.plek.org' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.nytimes.com/2007/05/02/business/media/02dowjones-web.html?_r=1&amp;hp&amp;oref=slogin' title='News Corp trying to buy Dow Jones'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3424573095170790819&amp;postID=284098959776164622' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3424573095170790819/posts/default/284098959776164622'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3424573095170790819/posts/default/284098959776164622'/><link rel='alternate' type='text/html' href='http://blog.plek.org/2007/05/news-corp-trying-to-buy-dow-jones.html' title='News Corp trying to buy Dow Jones'/><author><name>kelp</name><uri>http://www.blogger.com/profile/12987277534758618878</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03265934751349644154'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3424573095170790819.post-7348405833558422960</id><published>2007-04-23T17:59:00.000-07:00</published><updated>2007-04-23T18:00:47.749-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='coda'/><category scheme='http://www.blogger.com/atom/ns#' term='software'/><category scheme='http://www.blogger.com/atom/ns#' term='mac'/><category scheme='http://www.blogger.com/atom/ns#' term='panic'/><title type='text'>Panic Releases Coda</title><content type='html'>In my little bit of playing with it, it's a really cool integration of an sftp/ftp client, a text editor, css editor, reference library and ssh client/terminal. And they seem to have pulled it off.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3424573095170790819-7348405833558422960?l=blog.plek.org' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://stevenf.com/2007/04/announcing_coda_10.php' title='Panic Releases Coda'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3424573095170790819&amp;postID=7348405833558422960' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3424573095170790819/posts/default/7348405833558422960'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3424573095170790819/posts/default/7348405833558422960'/><link rel='alternate' type='text/html' href='http://blog.plek.org/2007/04/panic-releases-coda.html' title='Panic Releases Coda'/><author><name>kelp</name><uri>http://www.blogger.com/profile/12987277534758618878</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03265934751349644154'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3424573095170790819.post-7779733184022786259</id><published>2007-04-14T16:56:00.000-07:00</published><updated>2007-04-14T17:48:48.517-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='internet'/><category scheme='http://www.blogger.com/atom/ns#' term='hosting'/><category scheme='http://www.blogger.com/atom/ns#' term='slicehost'/><title type='text'>Moved to Slicehost</title><content type='html'>I'm still hosting this on blogger obviously, and my mail still lives on Google Apps. I just don't feel that need for control any more, so convenience  wins. The big news is the impending shutdown of &lt;a href="http://plantsix.com/"&gt;PlantSix&lt;/a&gt;. I've been running my own hosting server since 2002, and the damn thing has run without a reboot for nearly 2 and 1/2 years.  Sadly I got sick of the expense, and don't have the energy for even the most infrequent customer support.&lt;br /&gt;&lt;br /&gt;So I signed up with &lt;a href="http://www.slicehost.com/"&gt;Slicehost&lt;/a&gt; and fired up an Ubuntu slice. Their product is good, fast, and reliable. They have a simple and concise control panel for starting and restarting slices, DNS, billing, and even a cool AJAX serial console. You can provision new slices with a few clicks and for an extra $5/month you can even snapshot existing ones at will, with automatic scheduled backups. I moved my limited static file serving over there. Most of my images are long since on flickr, but I still have some old junk to keep online. I need various places on the internet to run traceroute, nmap and other such network investigation tools. I've also decided to run a &lt;a href="http://tor.eff.org/"&gt;Tor&lt;/a&gt; node. Wow has that made &lt;a href="http://www.snort.org/"&gt;Snort&lt;/a&gt; go crazy.&lt;br /&gt;&lt;br /&gt;If only I could get FreeBSD on there, I would probably sign up for a second small slice just to have that for playing with. I hear it runs on Xen now, I just have no idea how well.&lt;br /&gt;&lt;span style="text-decoration: underline;"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3424573095170790819-7779733184022786259?l=blog.plek.org' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.slicehost.com/' title='Moved to Slicehost'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3424573095170790819&amp;postID=7779733184022786259' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3424573095170790819/posts/default/7779733184022786259'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3424573095170790819/posts/default/7779733184022786259'/><link rel='alternate' type='text/html' href='http://blog.plek.org/2007/04/moved-to-slicehost.html' title='Moved to Slicehost'/><author><name>kelp</name><uri>http://www.blogger.com/profile/12987277534758618878</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03265934751349644154'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3424573095170790819.post-5776143907755467219</id><published>2007-04-12T00:25:00.001-07:00</published><updated>2007-04-12T00:25:28.422-07:00</updated><title type='text'>Techdirt: It's Not China's Poor Copyright Laws That Fuel Piracy There</title><content type='html'>&lt;a href="http://techdirt.com/articles/20070409/105456.shtml"&gt;Techdirt: It's Not China's Poor Copyright Laws That Fuel Piracy There&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;A great example of how broken thinking is about copyright. The Chinese government severely restricts what movies can be show there, so in general people have very limited legitimate ways to get that content. Yet, the movie industry lobbies the US government to push China for tighter copyright controls. It's not the lack of copyright that's causing the rampant piracy. It's the strict government controls.&lt;br /&gt;&lt;!-- technorati tags start --&gt;&lt;p style="text-align:right;font-size:10px;"&gt;Technorati Tags: &lt;a href="http://www.technorati.com/tag/politics" rel="tag"&gt;politics&lt;/a&gt;&lt;/p&gt;&lt;!-- technorati tags end --&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3424573095170790819-5776143907755467219?l=blog.plek.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3424573095170790819&amp;postID=5776143907755467219' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3424573095170790819/posts/default/5776143907755467219'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3424573095170790819/posts/default/5776143907755467219'/><link rel='alternate' type='text/html' href='http://blog.plek.org/2007/04/techdirt-it-not-china-poor-copyright.html' title='Techdirt: It&amp;#39;s Not China&amp;#39;s Poor Copyright Laws That Fuel Piracy There'/><author><name>kelp</name><uri>http://www.blogger.com/profile/12987277534758618878</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03265934751349644154'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3424573095170790819.post-5634157366392462000</id><published>2007-03-28T23:12:00.001-07:00</published><updated>2007-03-28T23:12:35.119-07:00</updated><title type='text'>Why to Not Not Start a Startup</title><content type='html'>&lt;a href="http://www.paulgraham.com/notnot.html"&gt;Why to Not Not Start a Startup&lt;/a&gt;:&lt;br /&gt;&lt;blockquote&gt;If you don't think you're smart enough to start a startup doing something technically difficult, just write enterprise software. Enterprise software companies aren't technology companies, they're sales companies, and sales depends mostly on effort.&lt;/blockquote&gt;A great quote from Paul Graham. It clearly calls out the major problem with enterprise hardware and software. The primary concern is not a good product. It's a product you can sell. I don't trust sales people to design and write good software. Just like I don't trust my self to perform surgery. When your primary focus is on sales, and your organization is run by sales people, you don't end up with quality products. Especially when your trying to sell to managers who won't actually be getting into the details of implementing what ever it is your selling.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3424573095170790819-5634157366392462000?l=blog.plek.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3424573095170790819&amp;postID=5634157366392462000' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3424573095170790819/posts/default/5634157366392462000'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3424573095170790819/posts/default/5634157366392462000'/><link rel='alternate' type='text/html' href='http://blog.plek.org/2007/03/why-to-not-not-start-startup.html' title='Why to Not Not Start a Startup'/><author><name>kelp</name><uri>http://www.blogger.com/profile/12987277534758618878</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03265934751349644154'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3424573095170790819.post-4094348588270876603</id><published>2007-03-16T14:56:00.000-07:00</published><updated>2007-03-16T14:57:45.289-07:00</updated><title type='text'>Internet radio may be driven out of business within weeks...</title><content type='html'>&lt;a href="http://www.savethestreams.org/"&gt;Internet radio may be driven out of business within weeks by a Copyright Royalty Board decision that gives record companies a royalty rate that exceeds 100% of most webcasters' total revenues...&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Big music wants to piss of their customers even more by killing useful services that act as great publicity for their artists.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3424573095170790819-4094348588270876603?l=blog.plek.org' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.savethestreams.org/' title='Internet radio may be driven out of business within weeks...'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3424573095170790819&amp;postID=4094348588270876603' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3424573095170790819/posts/default/4094348588270876603'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3424573095170790819/posts/default/4094348588270876603'/><link rel='alternate' type='text/html' href='http://blog.plek.org/2007/03/internet-radio-may-be-driven-out-of.html' title='Internet radio may be driven out of business within weeks...'/><author><name>kelp</name><uri>http://www.blogger.com/profile/12987277534758618878</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03265934751349644154'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3424573095170790819.post-8053460762165258940</id><published>2007-03-14T19:42:00.001-07:00</published><updated>2007-03-14T19:42:48.923-07:00</updated><title type='text'>Global warming gap among evangelicals widens - CNN.com</title><content type='html'>&lt;a href="http://www.cnn.com/2007/POLITICS/03/14/evangelical.rift/index.html?eref=rss_latest"&gt;Global warming gap among evangelicals widens - CNN.com&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;Why do we even listen to these people?&lt;br /&gt;&lt;blockquote&gt;"We have observed that Cizik and others are using the global warming controversy to shift the emphasis away from the great moral issues of our time, notably the sanctity of human life, the integrity of marriage and the teaching of sexual abstinence and morality to our children," said the letter, which was signed by prominent religious conservatives such as James Dobson, Don Wildmon, Paul Weyrich and Gary Bauer.&lt;/blockquote&gt;These people make decisions believing &lt;a href="http://en.wikipedia.org/wiki/Rapture"&gt;The Rapture&lt;/a&gt; is nearly upon us. Thankfully the decision makers in this story chose the right path. But so much in the above article just defies logic. Abstinence only education &lt;a href="http://www.advocatesforyouth.org/publications/factsheet/fssexcur.htm"&gt;does&lt;/a&gt; &lt;a href="http://www.apa.org/releases/sexeducation.html"&gt;not&lt;/a&gt; &lt;a href="http://oversight.house.gov/features/politics_and_science/example_abstinence.htm"&gt;work&lt;/a&gt;. The part that really bugs me is that anything about evangelicals makes the news. I don't care what kind of internal debate they are having. These people don't consider reality when it comes to policy. They should not be listened to.&lt;br /&gt;&lt;!-- technorati tags start --&gt;&lt;p style="text-align:right;font-size:10px;"&gt;Technorati Tags: &lt;a href="http://www.technorati.com/tag/bullshit" rel="tag"&gt;bullshit&lt;/a&gt;, &lt;a href="http://www.technorati.com/tag/politics" rel="tag"&gt;politics&lt;/a&gt;, &lt;a href="http://www.technorati.com/tag/religion" rel="tag"&gt;religion&lt;/a&gt;&lt;/p&gt;&lt;!-- technorati tags end --&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3424573095170790819-8053460762165258940?l=blog.plek.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3424573095170790819&amp;postID=8053460762165258940' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3424573095170790819/posts/default/8053460762165258940'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3424573095170790819/posts/default/8053460762165258940'/><link rel='alternate' type='text/html' href='http://blog.plek.org/2007/03/global-warming-gap-among-evangelicals.html' title='Global warming gap among evangelicals widens - CNN.com'/><author><name>kelp</name><uri>http://www.blogger.com/profile/12987277534758618878</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03265934751349644154'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3424573095170790819.post-7463568370378245906</id><published>2007-03-06T21:07:00.001-08:00</published><updated>2007-03-06T21:07:22.343-08:00</updated><title type='text'>Why DRM drives piracy</title><content type='html'>I won't normally cite BoingBoing link this, since I think everyone who reads here also reads there, but this is to good, and relates to closely to my last post.&lt;br /&gt;&lt;br /&gt;DRM leads people to illegal copies. Currently, with TV, the best copies of most shows I can get are from the torrent sites. Full HD versions of every show, sometimes before they even air in my area, or even in the US at all. They are better than what one can get from any other source. What's the incentive to pay money for a worse copy?&lt;br /&gt;&lt;br /&gt;Anyway, from BoingBoing:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://feeds.feedburner.com/~r/boingboing/iBag/~3/96467942/why_drm_drives_pirac.html"&gt;Why DRM drives piracy&lt;/a&gt;:&lt;br /&gt;&lt;blockquote&gt;&lt;strong&gt;Cory Doctorow&lt;/strong&gt;:&lt;br /&gt;&lt;br /&gt;Eric Flint, the copyfighting progenitor of the Baen Free Library, has a sterling editorial up on why DRM drives piracy, instead of preventing it.&lt;br /&gt;&lt;br /&gt;Yes, it's irritating to authors to see their work posted up on the internet without their permission, especially when the deed is accompanied by a virtual raspberry from a super-annuated juvenile delinquent bragging about it. But the fact remains that the material damage done to authors by such activity is so minimal that it can barely be distinguished from zero&amp;#38;mdash;if there's any material damage at all, which I doubt...&lt;br /&gt;&lt;br /&gt;Pirates rob bullion ships, they don't rob grain ships. Electronic copyright infringement is something that can only become an "economic epidemic" under certain conditions. Any one of the following:&lt;br /&gt;1) The product they want&amp;#38;mdash;electronic texts&amp;#38;mdash;are hard to find, and thus valuable.&lt;br /&gt;2) The products they want are high-priced, so there's a fair amount of money to be saved by stealing them.&lt;br /&gt;3) The legal products come with so many added-on nuisances that the illegal version is better to begin with.&lt;br /&gt;Those are the three conditions that will create widespread electronic copyright infringement, especially in combination. Why? Because they're the same three general conditions that create all large-scale smuggling enterprises.&lt;br /&gt;And . . .&lt;br /&gt;Guess what? It's precisely those three conditions that DRM creates in the first place. So far from being an impediment to so-called "online piracy," it's DRM itself that keeps fueling it and driving it forward.&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3424573095170790819-7463568370378245906?l=blog.plek.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3424573095170790819&amp;postID=7463568370378245906' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3424573095170790819/posts/default/7463568370378245906'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3424573095170790819/posts/default/7463568370378245906'/><link rel='alternate' type='text/html' href='http://blog.plek.org/2007/03/why-drm-drives-piracy.html' title='Why DRM drives piracy'/><author><name>kelp</name><uri>http://www.blogger.com/profile/12987277534758618878</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03265934751349644154'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3424573095170790819.post-6330233739916169529</id><published>2007-03-03T23:46:00.001-08:00</published><updated>2007-03-03T23:46:15.189-08:00</updated><title type='text'>Techdirt: The Economics Of Abundance Is Not A Moral Issue</title><content type='html'>&lt;a href="http://www.techdirt.com/articles/20061115/020157.shtml"&gt;Techdirt: The Economics Of Abundance Is Not A Moral Issue&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Economics is not a moral issue. It doesn't care about anyone's "right" to make money from their creative output... and neither should you. The idea that anyone automatically has a right to make money from their creative output is wrong. Everyone has the right to try to make money out of their creative output, but if the market isn't there, then there's no money to be made. &lt;/blockquote&gt;I often hear people talking about "stealing" ideas, software, music or movies, but it just doesn't make sense to me. For years the software industry has regularly published info about money lost due to piracy. When really, it was money they didn't gain, and since people were able to get that software without paying, obviously the economic value of those copies was at or near zero.&lt;br /&gt;&lt;br /&gt;The real selling point for me with things like music downloads would be convenience and quality. I've stopped buying music from iTunes because of one too many annoyances with the DRM. It killed the value for me, and Jobs does have it right. iTunes is competing with piracy. The reason people buy from them is the convenience. People may be able to get the music free, but their time isn't free. It takes time to find those pirated copies and who knows about the quality and the pain to download them. I'm willing to pay to save time. Sadly with iTunes the DRM kind of kills it for me. So I abstain until that one is worked out.&lt;br /&gt;&lt;br /&gt;The same can go for movie downloads. I won't pay $15 to download a movie. And if I have to use some crappy special software with built in DRM and media expiration, it's probably going to be less convenient that just pirating the damn thing. But, if I could pay like $5 for the ease of finding it, the consistent quality and fast downloads, I would do it.&lt;br /&gt;&lt;br /&gt;The question is, why should I feel any moral obligation to pay more than something is actually worth, especially when no one is losing anything they already had? People will gravitate towards the best deal for them. Right now the content industry's distribution model isn't the best deal for a lot of people. So they go elsewhere.&lt;br /&gt;&lt;br /&gt;The content industry needs to accept that it's not morally wrong for people to seek out the best deal they can. The content industry needs to add new value in the face of declining scarcity.&lt;br /&gt;&lt;!-- technorati tags start --&gt;&lt;p style="text-align:right;font-size:10px;"&gt;Technorati Tags: &lt;a href="http://www.technorati.com/tag/money" rel="tag"&gt;money&lt;/a&gt;, &lt;a href="http://www.technorati.com/tag/politics" rel="tag"&gt;politics&lt;/a&gt;&lt;/p&gt;&lt;!-- technorati tags end --&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3424573095170790819-6330233739916169529?l=blog.plek.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3424573095170790819&amp;postID=6330233739916169529' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3424573095170790819/posts/default/6330233739916169529'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3424573095170790819/posts/default/6330233739916169529'/><link rel='alternate' type='text/html' href='http://blog.plek.org/2007/03/techdirt-economics-of-abundance-is-not.html' title='Techdirt: The Economics Of Abundance Is Not A Moral Issue'/><author><name>kelp</name><uri>http://www.blogger.com/profile/12987277534758618878</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03265934751349644154'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3424573095170790819.post-6408221047167457008</id><published>2007-02-28T19:02:00.000-08:00</published><updated>2007-02-28T22:52:41.919-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='plastic surgery'/><title type='text'>Why Jenna? Why?</title><content type='html'>Ohh what happened to Jenna Jameson? I won't usually post about things like this, but I'm just so astounded. She was one of my favorites because she was just so cute, in a real (besides the breasts) sort of way. But something went sadly wrong.&lt;br /&gt;&lt;br /&gt;Before, the beautiful Jenna:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://bp1.blogger.com/_DPRpWaKQ8NQ/ReZFtNYVy_I/AAAAAAAAABQ/eIKeeHdiRhI/s1600-h/jenna_jameson_club_2_big.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp1.blogger.com/_DPRpWaKQ8NQ/ReZFtNYVy_I/AAAAAAAAABQ/eIKeeHdiRhI/s400/jenna_jameson_club_2_big.jpg" alt="" id="BLOGGER_PHOTO_ID_5036789876248660978" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;And now:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://bp1.blogger.com/_DPRpWaKQ8NQ/ReZFjNYVy-I/AAAAAAAAABI/24XlMeXF4DE/s1600-h/jenna_jameson_after.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp1.blogger.com/_DPRpWaKQ8NQ/ReZFjNYVy-I/AAAAAAAAABI/24XlMeXF4DE/s400/jenna_jameson_after.jpg" alt="" id="BLOGGER_PHOTO_ID_5036789704449969122" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;I believe these pictures are not much over a year apart.&lt;br /&gt;&lt;br /&gt;For more see &lt;a href="http://www.hollywoodtuna.com/?cat=27"&gt;Hollywoodtuna&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3424573095170790819-6408221047167457008?l=blog.plek.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3424573095170790819&amp;postID=6408221047167457008' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3424573095170790819/posts/default/6408221047167457008'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3424573095170790819/posts/default/6408221047167457008'/><link rel='alternate' type='text/html' href='http://blog.plek.org/2007/02/why-jenna-why.html' title='Why Jenna? Why?'/><author><name>kelp</name><uri>http://www.blogger.com/profile/12987277534758618878</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03265934751349644154'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp1.blogger.com/_DPRpWaKQ8NQ/ReZFtNYVy_I/AAAAAAAAABQ/eIKeeHdiRhI/s72-c/jenna_jameson_club_2_big.jpg' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3424573095170790819.post-3454726232189499558</id><published>2007-02-27T00:31:00.001-08:00</published><updated>2007-02-27T02:34:58.010-08:00</updated><title type='text'>Drive A Drunk</title><content type='html'>This is a service I really think should exist. Every major city should have a "Drive a Drunk" line you can call. They will drop someone off, via cab or something, who will get in your car and drive you and it home.&lt;br /&gt;&lt;br /&gt;You know you've been at the bar a little too late. You drank a little too much. You could either take a cab, leave your car there, and that would suck, plus you have to get it back some how. That's another cab ride back later and maybe all sorts of parking fees and our car broken into downtown. It just sucks. Or you can drive your drunk ass home. If you're lucky, you are fine, or maybe you wreck your car, get a DUI, or even kill someone. That's no good.&lt;br /&gt;&lt;br /&gt;So, you can "Drive a Drunk". They send someone out who drives your car home with you in it. They park your car, you pay them something like cab fare plus what ever it took for them to get to where you were and back to their base. Sure, it's more than a cab, but hey, you should have taken a cab anyway, and it's better than running into a light post.&lt;br /&gt;&lt;br /&gt;"Drive a Drunk" Someone, start this business. I will use it.&lt;br /&gt;&lt;!-- technorati tags start --&gt;&lt;p style="text-align:right;font-size:10px;"&gt;Technorati Tags: &lt;a href="http://www.technorati.com/tag/idea" rel="tag"&gt;idea&lt;/a&gt;&lt;/p&gt;&lt;!-- technorati tags end --&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3424573095170790819-3454726232189499558?l=blog.plek.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3424573095170790819&amp;postID=3454726232189499558' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3424573095170790819/posts/default/3454726232189499558'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3424573095170790819/posts/default/3454726232189499558'/><link rel='alternate' type='text/html' href='http://blog.plek.org/2007/02/drive-drunk.html' title='Drive A Drunk'/><author><name>kelp</name><uri>http://www.blogger.com/profile/12987277534758618878</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03265934751349644154'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3424573095170790819.post-4186679683074881048</id><published>2007-02-26T16:30:00.000-08:00</published><updated>2007-02-26T16:42:40.370-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='blogging'/><title type='text'>No More Feed Resets, I Hope</title><content type='html'>Now that everything is imported I shouldn't have my Atom feed reseting any more. So apologies to any of my 3 subscribers who had a bunch of old posts shoved into their feed reader.&lt;br /&gt;&lt;br /&gt;And now I have a fancy &lt;a href="http://www.ilike.com/"&gt;iLike&lt;/a&gt; widget over on the side. That's a shameless plug by the way.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3424573095170790819-4186679683074881048?l=blog.plek.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3424573095170790819&amp;postID=4186679683074881048' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3424573095170790819/posts/default/4186679683074881048'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3424573095170790819/posts/default/4186679683074881048'/><link rel='alternate' type='text/html' href='http://blog.plek.org/2007/02/no-more-feed-resets-i-hope.html' title='No More Feed Resets, I Hope'/><author><name>kelp</name><uri>http://www.blogger.com/profile/12987277534758618878</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03265934751349644154'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3424573095170790819.post-91300502922502396</id><published>2007-02-25T22:10:00.001-08:00</published><updated>2007-02-26T14:18:25.382-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='blogging'/><title type='text'>HOWTO: Migrate From Textpattern to Blogger</title><content type='html'>I just migrated all my posts from &lt;a href="http://www.textpattern.com/"&gt;Textpattern&lt;/a&gt; to &lt;a href="http://www.blogger.com/"&gt;Blogger&lt;/a&gt; with a bit of ruby. This should actually work for any MetaWeblog enabled blog.&lt;br /&gt;&lt;br /&gt;First I grabbed some code from &lt;a href="http://crafterm.net/blog/articles/2006/09/22/blog-content-migration-from-movabletype-to-typo-using-xml-rpc"&gt;Marcus Crafter&lt;/a&gt; that I found after many many Google searches. Since that didn't really do what I needed, but was a really good start, I hacked it up to use the &lt;a href="http://code.google.com/p/ruby-blogger/"&gt;ruby-blogger&lt;/a&gt; client library. It saved me a TON of work. I did have to apply this small patch:&lt;br /&gt;&lt;blockquote&gt;&lt;pre&gt;&lt;span class="punct"&gt;---&lt;/span&gt; &lt;span class="ident"&gt;client&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;rb&lt;/span&gt; &lt;span class="punct"&gt;(&lt;/span&gt;&lt;span class="ident"&gt;revision&lt;/span&gt; &lt;span class="number"&gt;24&lt;/span&gt;&lt;span class="punct"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span class="punct"&gt;+++&lt;/span&gt; &lt;span class="ident"&gt;client&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;rb&lt;/span&gt; &lt;span class="punct"&gt;(&lt;/span&gt;&lt;span class="ident"&gt;working&lt;/span&gt; &lt;span class="ident"&gt;copy&lt;/span&gt;&lt;span class="punct"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span class="attribute"&gt;@@&lt;/span&gt; &lt;span class="punct"&gt;-&lt;/span&gt;&lt;span class="number"&gt;147&lt;/span&gt;&lt;span class="punct"&gt;,&lt;/span&gt;&lt;span class="number"&gt;6&lt;/span&gt; &lt;span class="punct"&gt;+&lt;/span&gt;&lt;span class="number"&gt;147&lt;/span&gt;&lt;span class="punct"&gt;,&lt;/span&gt;&lt;span class="number"&gt;7&lt;/span&gt; &lt;span class="attribute"&gt;@@&lt;/span&gt;&lt;br /&gt;&lt;span class="ident"&gt;xmlFragment&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;instruct!&lt;/span&gt;&lt;br /&gt;&lt;span class="ident"&gt;xmlFragment&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;tag!&lt;/span&gt;&lt;span class="punct"&gt;("&lt;/span&gt;&lt;span class="string"&gt;entry&lt;/span&gt;&lt;span class="punct"&gt;","&lt;/span&gt;&lt;span class="string"&gt;xmlns&lt;/span&gt;&lt;span class="punct"&gt;"=&gt;"&lt;/span&gt;&lt;span class="string"&gt;http://www.w3.org/2005/Atom&lt;/span&gt;&lt;span class="punct"&gt;","&lt;/span&gt;&lt;span class="string"&gt;xmlns:app&lt;/span&gt;&lt;span class="punct"&gt;"=&gt;'&lt;/span&gt;&lt;span class="string"&gt;http://purl.org/atom/app#&lt;/span&gt;&lt;span class="punct"&gt;')&lt;/span&gt; &lt;span class="keyword"&gt;do&lt;/span&gt; &lt;span class="punct"&gt;|&lt;/span&gt; &lt;span class="ident"&gt;doc&lt;/span&gt; &lt;span class="punct"&gt;|&lt;/span&gt;&lt;br /&gt;&lt;span class="ident"&gt;doc&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;title&lt;/span&gt;&lt;span class="punct"&gt;(&lt;/span&gt;&lt;span class="attribute"&gt;@title&lt;/span&gt;&lt;span class="punct"&gt;,&lt;/span&gt;&lt;span class="symbol"&gt;:type=&lt;/span&gt;&lt;span class="punct"&gt;&gt;'&lt;/span&gt;&lt;span class="string"&gt;text&lt;/span&gt;&lt;span class="punct"&gt;')&lt;/span&gt;&lt;br /&gt;&lt;span class="punct"&gt;+&lt;/span&gt; &lt;span class="ident"&gt;doc&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;published&lt;/span&gt;&lt;span class="punct"&gt;(&lt;/span&gt;&lt;span class="attribute"&gt;@published&lt;/span&gt;&lt;span class="punct"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span class="ident"&gt;doc&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;content&lt;/span&gt;&lt;span class="punct"&gt;(&lt;/span&gt;&lt;span class="attribute"&gt;@content&lt;/span&gt;&lt;span class="punct"&gt;,&lt;/span&gt;&lt;span class="symbol"&gt;:type=&lt;/span&gt;&lt;span class="punct"&gt;&gt;'&lt;/span&gt;&lt;span class="string"&gt;html&lt;/span&gt;&lt;span class="punct"&gt;')&lt;/span&gt;&lt;br /&gt;&lt;span class="ident"&gt;doc&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;tag!&lt;/span&gt;&lt;span class="punct"&gt;("&lt;/span&gt;&lt;span class="string"&gt;author&lt;/span&gt;&lt;span class="punct"&gt;")&lt;/span&gt; &lt;span class="keyword"&gt;do&lt;/span&gt; &lt;span class="punct"&gt;|&lt;/span&gt; &lt;span class="ident"&gt;author&lt;/span&gt; &lt;span class="punct"&gt;|&lt;/span&gt;&lt;br /&gt;&lt;span class="ident"&gt;author&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;email&lt;/span&gt; &lt;span class="attribute"&gt;@author_email&lt;/span&gt;&lt;br /&gt;&lt;span class="attribute"&gt;@@&lt;/span&gt; &lt;span class="punct"&gt;-&lt;/span&gt;&lt;span class="number"&gt;242&lt;/span&gt;&lt;span class="punct"&gt;,&lt;/span&gt;&lt;span class="number"&gt;7&lt;/span&gt; &lt;span class="punct"&gt;+&lt;/span&gt;&lt;span class="number"&gt;243&lt;/span&gt;&lt;span class="punct"&gt;,&lt;/span&gt;&lt;span class="number"&gt;7&lt;/span&gt; &lt;span class="attribute"&gt;@@&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="comment"&gt;#if no links are specified, then return an error!&lt;/span&gt;&lt;br /&gt;&lt;span class="keyword"&gt;if&lt;/span&gt; &lt;span class="ident"&gt;links&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;nil?&lt;/span&gt;&lt;br /&gt;&lt;span class="punct"&gt;-&lt;/span&gt; &lt;span class="keyword"&gt;raise&lt;/span&gt; &lt;span class="constant"&gt;ArgumentError&lt;/span&gt; &lt;span class="punct"&gt;"&lt;/span&gt;&lt;span class="string"&gt;links parameter is required!&lt;/span&gt;&lt;span class="punct"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;span class="punct"&gt;+&lt;/span&gt; &lt;span class="keyword"&gt;raise&lt;/span&gt; &lt;span class="constant"&gt;ArgumentError&lt;/span&gt;&lt;span class="punct"&gt;("&lt;/span&gt;&lt;span class="string"&gt;links parameter is required!&lt;/span&gt;&lt;span class="punct"&gt;")&lt;/span&gt;&lt;br /&gt;&lt;span class="keyword"&gt;end&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="comment"&gt;#look for the 'service.post' value&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;/blockquote&gt;Then I ended up with this script:&lt;br /&gt;&lt;blockquote&gt;&lt;pre&gt;&lt;span class="comment"&gt;#!/usr/bin/env ruby&lt;/span&gt;&lt;br /&gt;&lt;span class="comment"&gt;#&lt;/span&gt;&lt;br /&gt;&lt;span class="comment"&gt;# Migrate from a MetaWeblog enabled blog to blogger&lt;/span&gt;&lt;br /&gt;&lt;span class="comment"&gt;#&lt;/span&gt;&lt;br /&gt;&lt;span class="ident"&gt;require&lt;/span&gt; &lt;span class="punct"&gt;'&lt;/span&gt;&lt;span class="string"&gt;xmlrpc/client&lt;/span&gt;&lt;span class="punct"&gt;'&lt;/span&gt;&lt;br /&gt;&lt;span class="ident"&gt;require&lt;/span&gt; &lt;span class="punct"&gt;'&lt;/span&gt;&lt;span class="string"&gt;rexml/document&lt;/span&gt;&lt;span class="punct"&gt;'&lt;/span&gt;&lt;br /&gt;&lt;span class="ident"&gt;require&lt;/span&gt; &lt;span class="punct"&gt;'&lt;/span&gt;&lt;span class="string"&gt;rexml/xpath&lt;/span&gt;&lt;span class="punct"&gt;'&lt;/span&gt;&lt;br /&gt;&lt;span class="ident"&gt;require&lt;/span&gt; &lt;span class="punct"&gt;'&lt;/span&gt;&lt;span class="string"&gt;time&lt;/span&gt;&lt;span class="punct"&gt;'&lt;/span&gt;&lt;br /&gt;&lt;span class="ident"&gt;require&lt;/span&gt; &lt;span class="punct"&gt;'&lt;/span&gt;&lt;span class="string"&gt;rubygems&lt;/span&gt;&lt;span class="punct"&gt;'&lt;/span&gt;&lt;br /&gt;&lt;span class="ident"&gt;require&lt;/span&gt; &lt;span class="punct"&gt;'&lt;/span&gt;&lt;span class="string"&gt;RedCloth&lt;/span&gt;&lt;span class="punct"&gt;'&lt;/span&gt;&lt;br /&gt;&lt;span class="comment"&gt;# Checkout http://code.google.com/p/ruby-blogger/ and point to it here&lt;/span&gt;&lt;br /&gt;&lt;span class="ident"&gt;require&lt;/span&gt; &lt;span class="punct"&gt;'&lt;/span&gt;&lt;span class="string"&gt;/Users/kelp/checkouts/ruby-blogger/lib/client.rb&lt;/span&gt;&lt;span class="punct"&gt;'&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="comment"&gt;# Find this in the  of your blogger page source&lt;/span&gt;&lt;br /&gt;&lt;span class="constant"&gt;POST_URI&lt;/span&gt; &lt;span class="punct"&gt;=&lt;/span&gt; &lt;span class="punct"&gt;'&lt;/span&gt;&lt;span class="string"&gt;http://www.blogger.com/feeds/&lt;blogid&gt;/posts/default&lt;/blogid&gt;&lt;/span&gt;&lt;span class="punct"&gt;'&lt;/span&gt;&lt;br /&gt;&lt;span class="constant"&gt;EMAIL&lt;/span&gt; &lt;span class="punct"&gt;=&lt;/span&gt; &lt;span class="punct"&gt;'username@gmail.com&lt;/span&gt;&lt;span class="string"&gt;&lt;gmail address=""&gt;&lt;/gmail&gt;&lt;/span&gt;&lt;span class="punct"&gt;'&lt;/span&gt;&lt;br /&gt;&lt;span class="constant"&gt;PASSWORD&lt;/span&gt;&lt;span class="punct"&gt;=&lt;/span&gt; &lt;span class="punct"&gt;'&lt;/span&gt;&lt;span class="string"&gt;&lt;gmail password=""&gt;&lt;/gmail&gt;&lt;/span&gt;&lt;span class="punct"&gt;password'&lt;/span&gt;&lt;br /&gt;&lt;span class="comment"&gt;# What ever user name you post as on blogger&lt;/span&gt;&lt;br /&gt;&lt;span class="constant"&gt;USER&lt;/span&gt; &lt;span class="punct"&gt;=&lt;/span&gt; &lt;span class="punct"&gt;'&lt;/span&gt;&lt;span class="string"&gt;&lt;username&gt;&lt;/username&gt;&lt;/span&gt;&lt;span class="punct"&gt;username'&lt;/span&gt;&lt;br /&gt;&lt;span class="constant"&gt;OLD_BLOG_URL&lt;/span&gt; &lt;span class="punct"&gt;=&lt;/span&gt; &lt;span class="punct"&gt;"&lt;/span&gt;&lt;span class="string"&gt;http://example.com/&lt;/span&gt;&lt;span class="punct"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;span class="constant"&gt;OLD_BLOG_URI&lt;/span&gt; &lt;span class="punct"&gt;=&lt;/span&gt; &lt;span class="punct"&gt;"&lt;/span&gt;&lt;span class="string"&gt;/rpc/&lt;/span&gt;&lt;span class="punct"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;span class="constant"&gt;OLD_BLOG_USER&lt;/span&gt; &lt;span class="punct"&gt;=&lt;/span&gt; &lt;span class="punct"&gt;'&lt;/span&gt;&lt;span class="string"&gt;&lt;username&gt;&lt;/username&gt;&lt;/span&gt;&lt;span class="punct"&gt;&lt;username&gt;username'&lt;/username&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="constant"&gt;OLD_BLOG_PASS&lt;/span&gt; &lt;span class="punct"&gt;=&lt;/span&gt; &lt;span class="punct"&gt;'&lt;password&gt;&lt;/password&gt;&lt;/span&gt;&lt;span class="string"&gt;&lt;password&gt;&lt;/password&gt;&lt;/span&gt;&lt;span class="punct"&gt;password'&lt;/span&gt;&lt;br /&gt;&lt;span class="constant"&gt;OLD_BLOG_ID&lt;/span&gt; &lt;span class="punct"&gt;=&lt;/span&gt; blogid&lt;blogid&gt;&lt;br /&gt;&lt;span class="comment"&gt;# Number of posts to migrate&lt;/span&gt;&lt;br /&gt;&lt;span class="constant"&gt;POSTS&lt;/span&gt; &lt;span class="punct"&gt;=&lt;/span&gt; &lt;span class="ident"&gt;number&lt;/span&gt; &lt;span class="ident"&gt;of&lt;/span&gt; &lt;span class="ident"&gt;posts&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="keyword"&gt;class &lt;/span&gt;&lt;span class="class"&gt;Blog&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="keyword"&gt;def &lt;/span&gt;&lt;span class="method"&gt;initialize&lt;/span&gt;&lt;span class="punct"&gt;(&lt;/span&gt;&lt;span class="ident"&gt;host&lt;/span&gt;&lt;span class="punct"&gt;,&lt;/span&gt; &lt;span class="ident"&gt;path&lt;/span&gt;&lt;span class="punct"&gt;,&lt;/span&gt; &lt;span class="ident"&gt;username&lt;/span&gt;&lt;span class="punct"&gt;,&lt;/span&gt; &lt;span class="ident"&gt;password&lt;/span&gt;&lt;span class="punct"&gt;,&lt;/span&gt; &lt;span class="ident"&gt;blog_id&lt;/span&gt; &lt;span class="punct"&gt;=&lt;/span&gt; &lt;span class="number"&gt;1&lt;/span&gt;&lt;span class="punct"&gt;,&lt;/span&gt; &lt;span class="ident"&gt;port&lt;/span&gt; &lt;span class="punct"&gt;=&lt;/span&gt; &lt;span class="number"&gt;80&lt;/span&gt;&lt;span class="punct"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span class="attribute"&gt;@server&lt;/span&gt; &lt;span class="punct"&gt;=&lt;/span&gt; &lt;span class="constant"&gt;XMLRPC&lt;/span&gt;&lt;span class="punct"&gt;::&lt;/span&gt;&lt;span class="constant"&gt;Client&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;new&lt;/span&gt;&lt;span class="punct"&gt;(&lt;/span&gt;&lt;span class="ident"&gt;host&lt;/span&gt;&lt;span class="punct"&gt;,&lt;/span&gt; &lt;span class="ident"&gt;path&lt;/span&gt;&lt;span class="punct"&gt;,&lt;/span&gt; &lt;span class="ident"&gt;port&lt;/span&gt;&lt;span class="punct"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span class="attribute"&gt;@blog_id&lt;/span&gt; &lt;span class="punct"&gt;=&lt;/span&gt; &lt;span class="ident"&gt;blog_id&lt;/span&gt;&lt;br /&gt;&lt;span class="attribute"&gt;@username&lt;/span&gt; &lt;span class="punct"&gt;=&lt;/span&gt; &lt;span class="ident"&gt;username&lt;/span&gt;&lt;br /&gt;&lt;span class="attribute"&gt;@password&lt;/span&gt; &lt;span class="punct"&gt;=&lt;/span&gt; &lt;span class="ident"&gt;password&lt;/span&gt;&lt;br /&gt;&lt;span class="keyword"&gt;end&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="keyword"&gt;def &lt;/span&gt;&lt;span class="method"&gt;posts&lt;/span&gt;&lt;span class="punct"&gt;(&lt;/span&gt;&lt;span class="ident"&gt;count&lt;/span&gt; &lt;span class="punct"&gt;=&lt;/span&gt; &lt;span class="number"&gt;5&lt;/span&gt;&lt;span class="punct"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span class="ident"&gt;puts&lt;/span&gt; &lt;span class="punct"&gt;"&lt;/span&gt;&lt;span class="string"&gt;Getting Posts&lt;/span&gt;&lt;span class="punct"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;span class="attribute"&gt;@server&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;call&lt;/span&gt;&lt;span class="punct"&gt;('&lt;/span&gt;&lt;span class="string"&gt;metaWeblog.getRecentPosts&lt;/span&gt;&lt;span class="punct"&gt;',&lt;/span&gt; &lt;span class="attribute"&gt;@blog_id&lt;/span&gt;&lt;span class="punct"&gt;,&lt;/span&gt; &lt;span class="attribute"&gt;@username&lt;/span&gt;&lt;span class="punct"&gt;,&lt;/span&gt; &lt;span class="attribute"&gt;@password&lt;/span&gt;&lt;span class="punct"&gt;,&lt;/span&gt; &lt;span class="ident"&gt;count&lt;/span&gt;&lt;span class="punct"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span class="keyword"&gt;end&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="keyword"&gt;end&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="comment"&gt;# These should be: old blog URL, old blog URI, old blog username, old blog password, old blog id&lt;/span&gt;&lt;br /&gt;&lt;span class="ident"&gt;oldblog&lt;/span&gt; &lt;span class="punct"&gt;=&lt;/span&gt; &lt;span class="constant"&gt;Blog&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;new&lt;/span&gt;&lt;span class="punct"&gt;(&lt;/span&gt;&lt;span class="constant"&gt;OLD_BLOG_URL&lt;/span&gt;&lt;span class="punct"&gt;,&lt;/span&gt; &lt;span class="constant"&gt;OLD_BLOG_URI&lt;/span&gt;&lt;span class="punct"&gt;,&lt;/span&gt; &lt;span class="constant"&gt;OLD_BLOG_USER&lt;/span&gt;&lt;span class="punct"&gt;,&lt;/span&gt; &lt;span class="constant"&gt;OLD_BLOG_PASS&lt;/span&gt;&lt;span class="punct"&gt;,&lt;/span&gt; &lt;span class="constant"&gt;OLD_BLOG_ID&lt;/span&gt;&lt;span class="punct"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="comment"&gt;# replace 135 with the number of posts you intend to migrate&lt;/span&gt;&lt;br /&gt;&lt;span class="ident"&gt;oldblog&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;posts&lt;/span&gt;&lt;span class="punct"&gt;(&lt;/span&gt;&lt;span class="constant"&gt;POSTS&lt;/span&gt;&lt;span class="punct"&gt;).&lt;/span&gt;&lt;span class="ident"&gt;reverse&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;each_with_index&lt;/span&gt; &lt;span class="keyword"&gt;do&lt;/span&gt; &lt;span class="punct"&gt;|&lt;/span&gt;&lt;span class="ident"&gt;post&lt;/span&gt;&lt;span class="punct"&gt;,&lt;/span&gt; &lt;span class="ident"&gt;index&lt;/span&gt;&lt;span class="punct"&gt;|&lt;/span&gt;&lt;br /&gt;&lt;span class="ident"&gt;blogger_post&lt;/span&gt; &lt;span class="punct"&gt;=&lt;/span&gt; &lt;span class="constant"&gt;GData&lt;/span&gt;&lt;span class="punct"&gt;::&lt;/span&gt;&lt;span class="constant"&gt;Post&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;new&lt;/span&gt;&lt;br /&gt;&lt;span class="ident"&gt;puts&lt;/span&gt; &lt;span class="punct"&gt;"&lt;/span&gt;&lt;span class="string"&gt;&lt;span class="expr"&gt;#{index}&lt;/span&gt;: migrating post: &lt;span class="expr"&gt;#{post['title']}&lt;/span&gt;&lt;/span&gt;&lt;span class="punct"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;span class="ident"&gt;puts&lt;/span&gt; &lt;span class="punct"&gt;"&lt;/span&gt;&lt;span class="string"&gt;&lt;/span&gt;&lt;span class="punct"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;span class="ident"&gt;time&lt;/span&gt; &lt;span class="punct"&gt;=&lt;/span&gt; &lt;span class="ident"&gt;post&lt;/span&gt;&lt;span class="punct"&gt;["&lt;/span&gt;&lt;span class="string"&gt;dateCreated&lt;/span&gt;&lt;span class="punct"&gt;"].&lt;/span&gt;&lt;span class="ident"&gt;to_time&lt;/span&gt;&lt;br /&gt;&lt;span class="ident"&gt;blogger_post&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;published&lt;/span&gt; &lt;span class="punct"&gt;=&lt;/span&gt; &lt;span class="constant"&gt;Time&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;parse&lt;/span&gt;&lt;span class="punct"&gt;(&lt;/span&gt;&lt;span class="ident"&gt;time&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;to_s&lt;/span&gt;&lt;span class="punct"&gt;).&lt;/span&gt;&lt;span class="ident"&gt;xmlschema&lt;/span&gt;&lt;br /&gt;&lt;span class="ident"&gt;blogger_post&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;title&lt;/span&gt; &lt;span class="punct"&gt;=&lt;/span&gt; &lt;span class="ident"&gt;post&lt;/span&gt;&lt;span class="punct"&gt;["&lt;/span&gt;&lt;span class="string"&gt;title&lt;/span&gt;&lt;span class="punct"&gt;"]&lt;/span&gt;&lt;br /&gt;&lt;span class="ident"&gt;body&lt;/span&gt; &lt;span class="punct"&gt;=&lt;/span&gt; &lt;span class="constant"&gt;RedCloth&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;new&lt;/span&gt;&lt;span class="punct"&gt;(&lt;/span&gt;&lt;span class="ident"&gt;post&lt;/span&gt;&lt;span class="punct"&gt;["&lt;/span&gt;&lt;span class="string"&gt;description&lt;/span&gt;&lt;span class="punct"&gt;"]).&lt;/span&gt;&lt;span class="ident"&gt;to_html&lt;/span&gt;&lt;br /&gt;&lt;span class="ident"&gt;blogger_post&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;body&lt;/span&gt; &lt;span class="punct"&gt;=&lt;/span&gt; &lt;span class="ident"&gt;body&lt;/span&gt;&lt;br /&gt;&lt;span class="ident"&gt;blogger_post&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;author_name&lt;/span&gt; &lt;span class="punct"&gt;=&lt;/span&gt; &lt;span class="constant"&gt;USER&lt;/span&gt;&lt;br /&gt;&lt;span class="ident"&gt;blogger_post&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;author_email&lt;/span&gt; &lt;span class="punct"&gt;=&lt;/span&gt; &lt;span class="constant"&gt;EMAIL&lt;/span&gt;&lt;br /&gt;&lt;span class="constant"&gt;GData&lt;/span&gt;&lt;span class="punct"&gt;::&lt;/span&gt;&lt;span class="constant"&gt;Client&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;logger&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;level&lt;/span&gt; &lt;span class="punct"&gt;=&lt;/span&gt; &lt;span class="constant"&gt;Logger&lt;/span&gt;&lt;span class="punct"&gt;::&lt;/span&gt;&lt;span class="constant"&gt;DEBUG&lt;/span&gt;&lt;br /&gt;&lt;span class="ident"&gt;client&lt;/span&gt; &lt;span class="punct"&gt;=&lt;/span&gt; &lt;span class="constant"&gt;GData&lt;/span&gt;&lt;span class="punct"&gt;::&lt;/span&gt;&lt;span class="constant"&gt;Client&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;new&lt;/span&gt;&lt;span class="punct"&gt;(&lt;/span&gt;&lt;span class="constant"&gt;EMAIL&lt;/span&gt;&lt;span class="punct"&gt;,&lt;/span&gt;&lt;span class="constant"&gt;PASSWORD&lt;/span&gt;&lt;span class="punct"&gt;,{"&lt;/span&gt;&lt;span class="string"&gt;service.post&lt;/span&gt;&lt;span class="punct"&gt;"=&gt;&lt;/span&gt;&lt;span class="constant"&gt;POST_URI&lt;/span&gt;&lt;span class="punct"&gt;})&lt;/span&gt;&lt;br /&gt;&lt;span class="ident"&gt;client&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;save&lt;/span&gt;&lt;span class="punct"&gt;(&lt;/span&gt;&lt;span class="ident"&gt;blogger_post&lt;/span&gt;&lt;span class="punct"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span class="keyword"&gt;end&lt;/span&gt;&lt;br /&gt;&lt;/blogid&gt;&lt;/pre&gt;&lt;/blockquote&gt;Several constants have to be set at the start of the script. Then it should go through and pull the posts out of your old blog and dump them into blogger. It does assume the old blog used &lt;a href="http://www.textism.com/tools/textile/"&gt;Textile&lt;/a&gt; for formating and converts every post body to html. Also it doesn't migrate any comments or post tags. Maybe I will get to that later. Thanks to &lt;a href="http://www.rubyinside.com/advent2006/7-coloring.html"&gt;this&lt;/a&gt; handy page, I have a nice way to syntax highlight the code.&lt;br /&gt;&lt;p style="text-align: right; font-size: 10px;"&gt;Technorati Tags: &lt;a href="http://www.technorati.com/tag/blogging" rel="tag"&gt;blogging&lt;/a&gt;, &lt;a href="http://www.technorati.com/tag/ruby" rel="tag"&gt;ruby&lt;/a&gt;&lt;/p&gt;&lt;!-- technorati tags end --&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3424573095170790819-91300502922502396?l=blog.plek.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3424573095170790819&amp;postID=91300502922502396' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3424573095170790819/posts/default/91300502922502396'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3424573095170790819/posts/default/91300502922502396'/><link rel='alternate' type='text/html' href='http://blog.plek.org/2007/02/howto-migrate-from-textpattern-to.html' title='HOWTO: Migrate From Textpattern to Blogger'/><author><name>kelp</name><uri>http://www.blogger.com/profile/12987277534758618878</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03265934751349644154'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry></feed>