Mazie's Kitchen

I got to play Super Dad today and put together Mazie’s christmas present. December 3rd? Sure – she’s 18 months old – it’s Christmas! π Tammy and I got her a “kitchen thing” for Christmas and have coordinated with her Grandparents, Aunts, Uncles and other relatives to get presents that go along with it.
The kitchen came in 4 boxes, with lots of assembly required. Just a bunch of peices of wood. Tammy suggested that she put it together while I was in NY last week. I thought about that for a moment, and I didn’t like it. Assembling the “assembly required” Christmas present is a Dad job for sure – and I didn’t want to be deprived of my fatherhood rights.
I got a bit frustrated at the beginning. Not too frustrated though, I’m pretty sure my language was clean the entire time. I put every joint together with added wood glue. This thing will be around for generations to come. She is having fun with it and it will be nice for her to get her pots and pans and other accessories to go with it.
Mac Pro in the House
About 2 months ago my primary workstation died. The machine was behaving very flaky, not posting from time to time and requiring my to jumper the Clear-CMOS on a routine basis. After a couple of times doing that it gave up the ghost and refused to post ever again. I’m fixing it, but it broke my back on home brew machines. I’m just not the kinda guy that wants to open my machines case on a regular basis. Particularly my primary machines that I depend on for a variety of applications and uses. It was time to ditch this thing and move on.
A faithful reader of my website would know that I’ve been on a string of Mac purchases lately. The most recent computers I got were a MacBook and before that an iMac G5. Why break the trend? I decided to get a Mac Pro.
It all started very benign. I just started looking for a new box and scoured Dell and a variety of other sites. I wanted something with serious power, lots of memory, big graphics and growth for the future. Regardless of how you feel about Apple, if you are looking for a great machine at the high-end you need to examine the Mac Pro.
Mac Pro

I placed the order and got the machine on Halloween. I ordered it with the 2.66Ghz CPUs, the upgraded ATI Radeon X1900 XT video card and the Bluetooth option so I could go wireless on keyboard, mouse and eventually headset for Skype. I got it with 1G of RAM installed (2 512MB FB DIMMs) and ordered another 2G of memory, totaling 3G.
The hardware is very impressive. Taking the side panel off (which is ridiculously easy, yet stable) shows a very well designed machine. The drive bays are elegantly arranged with no cable messes. I dropped 3 additional SATA drives in it to fill it up. The 16 (!!!) memory slots are on a daughter card that easily slides out for adding memory.
I powered the machine on and it is very quiet. The 10,000 RPM boot drive I have in it is the loudest thing in the machine. This is a machine that was completely thought through in all aspects. Two, big thumbs up.
I’m particularly pleased that I’m pretty future proof. I can take memory to 32G if I wanted to and it’s possible to upgrade the dual-core Xeon’s to quad-core and go 8-way with the existing motherboard. Yeah!
Cinema Display

An Apple Cinema Display was needed, and I decided to go all out with the 30" version (2,560 x 1,600 pixels). The real-estate on this thing is massive. Acreage! This is the largest monitor I’ve worked with and I really like having that much contiguous space. There is something to be said for having multiple monitors, I think it’s a necessity at work where Outlook lives permanently camped on one. At home however the ability to launch Lightroom or Final Cut Express on a huge single display is just amazing. I can view my digital photos at near 1:1 with this display.
Software
When I ordered the machine I was thinking I’d probably just Boot Camp it and run Windows Vista full time. I’m changing my mind. I’ve been enjoying Mac OS X a lot on my MacBook and while I’ve got a lot of software hurdles to get over, I’m going to give it a try full-time. Many applications I have will work in both, but I’ve had to rethink a lot of thins. There are also some applications that are either absent or notably better on Windows (Garmin Mapsource, Quicken) and I’ll either run those in Parallels or Boot Camp. I am going to put Boot Camp on it and Windows Vista just to have it for the occasional times.
I’m immensely happy with everything about this workstation. I recommend everyone, not just casual folks, check out these new workstations from Apple. As I take inventory in the house now, excluding the servers, Macs now outnumber Wintel boxes by 3 to 2. Pretty amazing.
Butter Bakery
Tammy and I checked out a new restaurant this weekend. Butter Bakery is in south Minneapolis and serves a brunch menu as well as traditional baked goods and coffee. We had lunch there on Saturday and the food was so good we returned for breakfast on Sunday.
The bakery items are all great. However, most notable was the pancakes. I have no idea what they do to their pancakes but they are amazing. They are gooey, and incredibly flavorful. Go there, and get some pancakes!
Mazie Conquers Stairs
Lately most of the news on the Mazie front has been about new words. Lot’s of new words. She can usually get her point across now, at least to Mom and Dad, and she’s picking up new words faster and faster.
However, a couple of days ago she made it down both flights of stairs in our house without any help. Obviously Mom and Dad are surrounding her with hands ready to grab her if she falls. She’s really careful, and braces herself to the wall but makes it pretty solidly down each stair – one step at a time.
She’s a long ways from navigating steps without help, but she sure does have fun walking down them. She gives a triumphant giggle when she finishes all the steps.
Dad Skill #138
Singing the A-B-C song backwards. (Wait for the 3rd verse…) Try it. It’s harder than you would think.
This skill courtesy Ralph’s World.
Wii Meets the Family
Releasing the Wii shortly before Thanksgiving was a brilliant move by Nintendo. I’m sure thousands of Wii’s accompanied their proud owners on Thanksgiving trips to relatives houses where they were quickly added to the wishlists of others.
I brought mine to the Olson family thanksgiving morning and 3 hours of game play quickly swept by. Kudos to Nintendo for making a game that people in their early 20s enjoy, as well as those in their early 60s. The Wii was a huge hit with everyone taking turns playing Wii Sports.
Prediction: The Wii is going to dominate the console market in units sold by a factor of 2 on it’s nearest rival.
Migrating .Text to WordPress
I recently bit the bullet and migrated my ancient DotText (.Text) blog to WordPress. It wasn’t painless, and involved writing some code, but I’m exceedingly happy with WordPress and finally feel like I’m on a modern blogging platform again.
I considered for months and months (years?) going to Community Server (CS), which is the natural descendant of DotText, but it just didn’t make sense. CS really serves a different purpose, and WordPress is so well designed for the task at hand.
Before starting on this adventure, you may want to take a moment to increase your script timeout value for PHP to something exceedingly long. Some of the import PHP scripts will run for a couple of minutes (if you have hundreds of posts) and you don’t want them killed in the middle. Change this in your php.ini.
Migrating Posts
This is actually pretty easy. There is no DotText importer for WordPress, so you have to resort to the lowest common denominator, RSS. WordPress has an importer that will take an RSS feed in a file and import the posts. The first step though is getting all of your posts in an RSS formatted XML file.
DotText obviously supports RSS, however it only outputs the last 10 or 20 posts in the RSS feed. You can get around this by altering DotText to output all posts in the RSS feed. You can find how to do this, along with some pre-compiled DLLs to alter the behavior at PinkJoint. Once you’ve dropped these DLL’s in when you hit your RSS feed it will return all posts. After that, save it to a file and you are ready to import using the RSS importer in WordPress.
I found it helpful to open the RSS/XML file up in a text editor and do some regular expression work to change the URL’s for referenced images to something more WordPress friendly. In my case, the path to images referenced in posts were all changing. It’s perfect to do this to the XML file before doing the import.
Now for an unfortunate item. RSS doesn’t have a means (in a standard way at least) to include things like categories. Importing your content via RSS means you lose all existing category associations. This didn’t bother me that much since I wasn’t happy with the existing comments. You can also get WordPress plug-ins that will allow you to assign categories in bulk mode making it easier to fix this after migrating.
Migrating Comments
Now that the posts are moved over, we need to deal with comments. At first I considered just starting fresh with no comments, but I have over 400 comments and that seemed like a lot of content to just throw away. The method below worked great for me. I purposefully focused on tools that I was comfortable with, this could be done many different ways. The basic approach is to export all the comments into a simple CSV file, then import them using a custom PHP import script for WordPress. The connection between the comment and the post is the post title, so it is critical that you do not edit the titles on any posts until you’ve imported your comments.
The simplest way to get the comments into a CSV file is to use the SQL Server DTS tool. I selected a CSV file as a destination and used this SQL query to get the relevant content.
SELECT posts.ID AS PostID,
posts.Title,
posts.DateAdded,
comment.ID AS CommentID,
comment.Title AS CommentTitle,
comment.DateAdded AS CommentDate,
comment.Author,
comment.Email,
comment.TitleUrl,
comment.Text
FROM blog_Content COMMENT
INNER JOIN blog_Content posts ON comment.ParentID = posts.ID
WHERE (comment.PostType = 3)
This will get us a simple file with all of our comments dumped into it. With this file in hand, we can now do the import.
<?php
class CommentsCSV_Import
{
var $file;
function header()
{
echo '<div class="wrap">';
echo '<h2>' . __('Import Comments from CSV') . '</h2>';
}
function footer()
{
echo '</div>';
}
function unhtmlentities($string)
{
// From php.net for < 4.3 compat
$trans_tbl = get_html_translation_table(HTML_ENTITIES);
$trans_tbl = array_flip($trans_tbl);
return strtr($string, $trans_tbl);
}
function greet()
{
echo '<p>' . __('Hello. This importer will load the comments from a previous blog that you have dumped to a CSV file into Wordpress. Find your special CSV file to upload and click Import.') . '</p>';
wp_import_upload_form("admin.php?import=commentscsv&step=1");
}
function import_comments()
{
global $wpdb;
/*
open up our file and loop through itβ¦
the CSV file is expected to have these columns
0 = Original Post ID
1 = Post Title
2 = Post Date
3 = Original Comment ID
4 = Comment Title
5 = Comment Date
6 = Comment Author
7 = Comment Email
8 = Comment Author Website
9 = Comment Text
*/
set_magic_quotes_runtime(0);
$row = 1;
$handle = fopen($this->file, "r");
while (($data = fgetcsv($handle, 10000, ",")) !== false) {
echo "<p> <strong>Reading row $row.</strong><br /></p>\n";
$data[1] = str_replace('\'', '\\\'', $data[1]);
echo "<p> Comment ID $data[3] ($data[4]) for Post ID $data[0] ($data[1]).<br /></p>\n";
// get the ID of the post this comment is for
$post_id = $wpdb->get_var("SELECT ID FROM $wpdb->posts WHERE post_title = '$data[1]'");
echo "<p> Found new ID of $post_id.<br /></p>\n";
//get the dates in the right format
echo "<p> Comment from $data[6] ($data[7], $data[8]) on $data[5].<br /></p>\n";
// cleanup the comment text
$data[9] = str_replace('\'', '\\\'', $data[9]);
$data[6] = str_replace('\'', '\\\'', $data[6]);
$data[9] = str_replace('<br>', '<br />', $data[9]);
$data[9] = str_replace('<hr>', '<hr />', $data[9]);
echo "<p> Comment:<br/>$data[9]<br /></p>\n";
// insert comment
$ret_id = wp_insert_comment([
'comment_post_ID' => $post_id,
'comment_author' => $data[6],
'comment_author_email' => $data[7],
'comment_author_url' => $data[8],
'comment_author_IP' => '0.0.0.0',
'comment_date' => $data[5],
'comment_content' => $data[9],
'comment_approved' => 1,
'user_id' => 0,
]);
// increment counter
$row++;
}
fclose($handle);
}
function import()
{
$file = wp_import_handle_upload();
if (isset($file['error'])) {
echo $file['error'];
return;
}
$this->file = $file['file'];
$this->import_comments();
wp_import_cleanup($file['id']);
echo '<h3>';
printf(__('All done. <a href="%s">Have fun!</a>'), get_option('home'));
echo '</h3>';
}
function dispatch()
{
if (empty($_GET['step'])) {
$step = 0;
} else {
$step = (int) $_GET['step'];
}
$this->header();
switch ($step) {
case 0:
$this->greet();
break;
case 1:
$this->import();
break;
}
$this->footer();
}
function CommentsCSV_Import()
{
// Nothing.
}
}
$commentscsv_import = new CommentsCSV_Import();
register_importer('commentscsv', __('CommentsCSV'), __('Import posts from an CSV file of comments'), [$commentscsv_import, 'dispatch']);
?>
Copy the above CommentsCSV importer and place it in the importer directory. Go to the import tab and you will see CommentsCSV listed. Upload the file and watch it do itβs magic.
Note that CommentsCSV does a minimal effort to make things XHTML compliant, but don’t expect pretty XHTML at the end.
What’s Left?
So we now have all of our posts (without their categories) and they have all the relevant comments attached to them. We are sitting pretty at this point, but, there are some gotchas.
Articles don’t get sent in the RSS feed for DotText so you will not have those imported. There really isn’t an equivalent of an article in WordPress, and most DotText users have a small number of articles. I’m just moving mine by hand doing a copy/paste of the HTML into WordPress.
I hope that others find this helpful in their migration to WordPress. Feel free to contribute your own experience in the comments.
I had my telescope out for about an hour tonight and sadly I still feel like a complete “noob” using it. I just did a quick Alt-Az mount, skipping “the wedge” but wasn’t able to get a good alignment.
It wasn’t a complete waste though. I got to do some great up close viewing of the moon.
Wii In The House!

Wii is in the house! Yeah!
Okay, so it only took about a week for me to turn into a total fanboy in regards to the Wii. Really, I became a bit obsessed with it. (This is when the folks that know me pretty good shake their heads back and forth.) Alright, enough about me, how about the Wii?
I played with it for a little bit today and the most impressive thing is the controller. The “free motion” moves are pretty amazing and bring you into the gameplay in a way that no other game system ever has. Tammy and I spent the first hour with the game just playing the included Wii Sports. Tennis, boxing, even bowling are pretty fun and the motions are life like.
Tonight I spent a bit of time with Madden 07 and again the motions of the controller made the gameplay so much cooler. To pass the ball, you throw your hand. To kick, you swing your arm. Very nice.
I got Zelda, Madden and Rayman with the unit. Haven’t played Zelda yet, saving that for when there is more time. First impression of the Wii – it’s a winner.
PS: The order that Tammy placed got canceled. They apparently didn’t have enough units.
The Kindness of Strangers
So, you don’t just walk into a store and get a Wii on the very day it comes out. This morning just before 8am Tammy suggested we should run to Target and check things out. We got there just after 8 and there was clearly a crowd present. Upon entering the store our hopes were dashed. There were well over 100 people in line and they had given out tickets to those that had been camped out all night.
No ticket, no Wii. There were 80 tickets, plus more people that didn’t have tickets and a miserly 60 Wii’s in stock to sell.
As we were standing at the end of the line, my hopes dashed, this scruffy dude said “You need a ticket?” “Yeah,” Tammy quickly replied. He handed over one of the tickets, and not just any ticket, it was ticket #9!
Moral Dilema
Now, here we are with Ticket #9. We didn’t do much of anything for this other than respond to a guy that obviously looked like he had spent the whole night outside. Dozens of people further ahead in line had just watched this guy walk buy and not responded to his query. He wasn’t being shy that he had an extra one. Do we take it and get a Wii?
You bet we do. :-) Wasn’t that hard to get over. We went right up to the front of the line and they were taking anyone with tickets less than 17. We inserted at the front with our stuff and were on our way, Wii in hand.
Thank you kind anonymous dude with an extra ticket. Wish I could have given him something, some cash or anything. I have no idea how he had an extra ticket. Perhaps a friend of his camped in line just for fun? Or maybe they forgot to take it from him? Who knows…
I’m curious – would you have done the same? Or would the boy scout in you kept you from getting such unearned gains?
PS3 and Wii Bananza
My friend Chad brought over his brand new Playstation 3 today and I got my first taste of the hardcore gamer dream machine. The graphics are stunning, particularly when paired with a nice high-end HDTV. The games were obviously first generation and I’m sure they will get progressively better over the coming months. However, not my kind of gaming system. Very focused on first-person shooter type games.
On the Wii front, Tammy decided that I had become enough of a “fanboy” over the Wii lately that she ordered me one. I’m hoping it will be here before Thanksgiving for some family fun waving the Wii controller around in the air.
Good Spam Filtering for Home
I’ve started to get deluged with spam again at home. The last time this happened I decided to switch my email address – a little “shake and bake” as it were with due credit to Talladega Nights. At work I’ve been using Postini for years now and I’m a huge fan. They do an amazing job of handling spam and viruses – both of which I had nothing to stop at home.
I would have loved to use Postini but they don’t offer individual accounts, boo! However, they do have resellers. Some quick searches and I found a Postini reseller that set me up for $2.50/month per address. They got me setup very quickly and now I’m a much happier email recipient.
Threat Level Orange
I just got home from another business trip. I seem to be in the middle of another spat of business travel with all the requisite fun of airports, flights, taxis, rental cars and hotels.
As I drove to the airport for this trip I noted the electronic sign at the entrance of the airport proclaiming:
Threat Level Orange
I have to ask, what good is this? What in the world is this supposed to do to make my life better? Really. Let’s think about this. My reaction to the blazing orange threat level was essentially as follows:
- Is orange bad? What is really bad? Orange sounds horrible. Does this mean my plane is going to explode?
- What caused the threat level to be orange? Is there a global terrorism plot targeting the Minneapolis airport on the day I’m flying? Did some high school kid threaten to explode football stadiums?
- At what threat level do I not fly? Seriously. If this is supposed to inform me and make me more educated, when do I turn around and go home. Maybe orange? I’m going home, I don’t want to die.
- This is stupid.
So I’m back to the beginning, what is the point? Other than making me feel nervous, slightly anxious, remind me that if I’m lucky enough to win the lottery I might have a terrorist incident in the airport. The only real impact this blazing “Threat Level Orange” had on me was to reinforce a low level of fear that is propogated by a variety of government and non-government agencies.

I decided to visit the Department of Homeland Security website and find out what these levels really were. The image to the right is from the DHS website. I love the names. I’ve never, ever, seen green. That really makes sense after all, when are you ever safe. Someone may be stalking you right now, and yes, your plane may blow up. Be afraid, very afraid. Guarded is great. Blue doesn’t make intuitive sense to me on this scale, but I’ll leave that for now. Be guarded, don’t trust those strangers. Then there is the issue of the scale as a whole, is it really linear with these equal bands? It would seem to me that the way a scale like this should work, if it should even exist, is that from 0 to 60 it’s low. In essence, the vast majority of the time. And 61 to 80 is guarded. An exponential, not linear, scale.
Since I cannot determine any value provided to me from this wonderful service other than fear it just strikes me as very Orwellian. What better way to keep people under control than constantly remind them of things that are statistically irrelevant.
Update!
I just went to the DHS website and it looks like the threat level may now be yellow!

Or not? I love this graphic. The top says the threat level is ELEVATED (note the all caps, it’s important) and the yellow bar is highlighted. Then the text says it is HIGH. Turns out that they are just telling us that there is a “significant risk of terrorist attacks” in general, and that in the airlines there is a “high risk of terrorist attacks”. It’s confusing to say the least, but make sure you stay scared.
Watch out!
Smaller Than a Redwood
Tammy has launched her website, Smaller Than a Redwood. You should check it out. Her website is finding it’s groove right now. She’s got some early content on it. She doesn’t intend it to be “diary based” like this site. You won’t see what we did when and where on it, but instead different thoughts and comments that she wants to put up. She is also looking to put content from her friends on it as well.
The name of the site came from a conversation Tammy was having with Ann as she was preparing for a trip to San Francisco and the Redwood Forest. She has an assignment to write something for the site while sitting under the Redwoods.
Her site is pretty fun!
Wii Obsession?
I’m
not a gamer.
Starting a post titled “Wii Obsession?” with a statement like “I’m not a gamer” may seem like denial, but it really isn’t. If I’m looking for a fun time at my computer I’m most likely going to play around with some new software, do something on one of my websites, or blather on my blog. I don’t even follow the console gaming world with the exception of information that I get just by being around people I know.
However, I’m really fascinated with the soon to be released Nintendo Wii. I love that Nintendo is zigging, while Sony and Microsoft zag. Instead of going for more, bigger, faster, better Nintendo is focusing on game play and quality entertainment. The crazy remote that the Wii comes with is a big departure, and I think it will pay off. I read about the radical departure of the Wii in the Economist of all places.
Tammy and I got a Nintendo DS a number of months ago and we have had a lot of fun with it. A big part of the fun is different games enabled by a stylus and built-in mic. The Wii’s controllers enable tennis and boxing games where you actually swing your arms around. How fun! The Wii will also pair wireless with the existing DS which could create some interesting gaming options as well.
I’ve made it clear that a Wii would be a welcome Christmas present, however they will not be trivial to get. Who knows, I may yet go back on the promise I made myself years ago – no more consoles!
The last three weeks have been a backyard fire extravaganza! We’ve had three great evenings burning stuff with a variety of friends on late fall evenings. The air is brisk, and the fire is toasty. The best of all worlds.
I recently caught up to this new episode of Nova called the Monster of the Milky Way. I like Nova, but this is one of the better ones I’ve seen and if you have the opportunity to watch it in full high-definition wonder the computer graphics are stunning. It’s also just incredibly interesting stuff.
Perhaps the Geekiest Thing Possible?
So when your wife is upstairs on her computer, and you are downstairs on your computer, how do you communicate? Why not video chat? π
New Site Up!
After wasting a lot of time messing with the routing options on my Zywall 10 I think I finally got the port-forwarding configuration setup right so that the new website is up and running! Yeah! Hint for anyone trying to configure that on the Zywall, go to the manual, and jump to the example configurations at the end. It was the only way I found the voodoo required to make it work.
Let me know what you think of the new site. There are a ton of features on it, and I’m planning on enabling some more stuff and filling out the corners over the next few days.
Regular visitors will notice that the photo galleries are gone. I’m looking for a solution for that that will work well with WordPress.
New Website Coming!
This post is a heads up that a new thingelstad.com is on the way! I’ve finally made the push to get things into a new blogging package (WordPress) and am just finalizing things now. The new site will be up by the end of the week.
I’m going to try to redirect as many links as possible, particularly the RSS feeds, but if you haven’t heard anything from this blog in a few days you should check your feed links.
The new site is going to be GREAT!