Archive for December, 2006

Protected: New Year’s Eve

This post is password protected. To view it please enter your password below:


Sunday, December 31st, 2006 Adventures Enter your password to view comments

WordPress Migration

Introduction

Originally, when I first started my job, I installed WordPress for the team that I worked on as a way to easily communicate and share ideas. The popularity of what I had done for the team quickly spread throughout the entire company. Before long, multiple WordPress blogs were popping up. Eventually, from a system administration standpoint, having multiple WordPress blogs became a complete nightmare for managing users, themes, plugins, etc. so I started converting the multiple WordPress blogs to WordPress MU blogs instead.

The following is an analysis of the database structure for WordPress and WordPress MU and the things learned while migrating WordPress blogs to WordPress MU. This assumes you have some familiarity with both WordPress and WordPress MU, otherwise you can following the links provided above or learn more in previous posts by searching this site (specifically the WordPress Usage Demo and WordPress MU Overview).

Getting Started

There are many ways to convert WordPress blogs to WordPress MU blogs but the easiest is to probably grab the WordPress Import/Export Plugin and install it in your existing WordPress blogs (as this comes default in WordPress MU). Once the plugin is installed, you can export the data from each WordPress blog to an XML file which you can then import into WordPress MU. This plugin, unfortunately, completes only part of the conversion process as it only imports/exports your posts, comments, and category data. The rest you will have to do manually. Read on.

Directory Structure

By default, all files uploaded for a post/page usually go the <WordPress root>/wp-content/uploads/ directory. This directory structure is further broken down by month and day sub-directories.

For WordPress MU, the directory structure looks slightly different: <WordPress MU root>/wp-content/blogs.dir/<blog ID>/files. As with WordPress, this directory structure is also broken down by month and day sub-directories. The <blog ID> is a number that varies depending on the order in which one of your WordPress MU blogs were created. For example, lets say that you have the following WordPress MU blogs (created in the order listed):

  1. My Blue Blog
  2. My Purple Blog
  3. My Red Blog

The IDs for each blog would be: blue = 1, purple = 2, and red = 3. The IDs of each blog can be easily found by logging into WordPress MU, clicking on the Site Admin --> Blogs menu, and looking at the IDs of each blog listed. These IDs will correspond to the directories associated with each blog.

With both directory structures understood, all you need to do is copy contents from the <WordPress root>/wp-content/uploads/ directory structure to the <WordPress MU root>/wp-content/blogs.dir/<blog ID>/files directory structure.

While this gets the data in the right place, this does not mean that your posts, pages, and comments are not linking to the data correctly. For that, you will have to manually go through and edit the URLs of each post, page, and comment. Alternatively, you might think about exporting the post and comment tables to an SQL file, doing a find and replace on the URL paths within the code of the SQL file, adjusting the paths for the new structure, and importing the updated SQL data back into the database.

Database Structure

The following is a structural view of the MySQL database used by WordPress MU. PHP My Admin was used to view each table of the database. As mentioned earlier, the same blog ID principals applied to the directories applies to the tables as well.

At this point, you probably do not need to be tweaking anything in the database. If you have used the plugin mentioned above and followed the steps for setting up the directories structures, then you can do the rest of the work within WordPress MU. However, there are some things that are done a little easier using the MySQL database directly. The following highlights the differences between WordPress MU and WordPress and provides a few tips for dealing with the various tables:

wp_<blog ID>_categories

WordPress MU Categories Table

Identical to the WordPress wp_categories table except for the additional fields highlighted in yellow: link_count, posts_private, and links_private.

When importing WordPress data into this table keep in mind that WordPress MU defaults the “Uncategorized” category to cat_ID=1 and the “Blogroll” category to cat_ID=2. This means that you will need to adjust the SQL code exported from your original WordPress table to use cat_IDs higher than a cat_ID of two to avoid conflicts.

wp_<blog ID>_comments

WordPress MU Comments Table

Identical to the WordPress wp_comments table.

wp_<blog ID>_link2cat

WordPress MU Link To Categories Table

Unique to WordPress MU only.

wp_<blog ID>_links

WordPress MU Links Table

Identical to the WordPress wp_links table.

wp_<blog ID>_options

WordPress MU Options Table

Identical to the WordPress wp_options table.

wp_<blog ID>_post2cat

WordPress MU Post To Category Table

Identical to the WordPress wp_post2cat table.

wp_<blog ID>_postmeta

WordPress MU Post Metadata Table

Identical to the WordPress wp_postmeta table. You might think about editing and updating the URL paths of the meta_value field.

wp_<blog ID>_posts

WordPress MU Posts Table

Identical to the WordPress wp_posts table except for the post_status field highlighted in yelllow. This field has two additional types: “inherit” and “future”. This will not cause any modifications to be made to your SQL code when importing data from WordPress into WordPress MU.

wp_blogs

WordPress MU Blogs Table

Unique to WordPress MU only.

wp_blog_versions

WordPress MU Blog Versions Table

Unique to WordPress MU only.

wp_registration_log

WordPress MU Registration Log Table

Unique to WordPress MU only.

wp_signups

WordPress MU Signups Table

Unique to WordPress MU only.

wp_site

WordPress MU Site Table

Unique to WordPress MU only.

wp_sitecategories

WordPress MU Site Categories Table

Unique to WordPress MU only.

wp_sitemeta

WordPress MU Site Metadata Table

Unique to WordPress MU only.

wp_usermeta

WordPress MU User Metadata Table

Identical to the WordPress wp_usermeta table.

wp_users

WordPress MU Users Table

Identical to the WordPress wp_users table except for the additional fields highlighted in yellow: “spam” and “deleted”. In my case, I exported the user data from all WordPress site as separate SQL statements, joined them together, and imported the combined data into this table. When joining the user data together, just make sure that all user IDs are unique.

Notes

  • The tables that are unique to WordPress MU means that the data they store are are common to all blogs being managed by WordPress MU. The blog specific data is always stored in a table that is identified by a unique number in the name. The number used is determined by the order in which the blog was created.
  • There is a table in WordPress called wp_linkcategories that is unique to WordPress and not found in WordPress MU. The data this table stores is used to categorize your blogrolls in WordPress. With WordPress MU, the usage has changed. You can still add links to your blogroll but you end up using the same categories as used for posts instead of having different categories for each.

Conclusion

Hopefully this has been helpful and will get you pointed in the right direction. Feel free to comment on anything discussed.

Tags:

Friday, December 29th, 2006 Software No Comments

Sake

Introduction

I subscribe to Grape Radio which is a wine enthusiast site. Recently, they did a show called All About Sake which was quite informative. If you do not know much about sake or wish to learn more then I suggest downloading and listening to the podcast (52 minutes, 24MB) as it will not be a waste of time. I enjoyed it enough to take a few notes below:

General Information

  • There are 300+ different varieties of rice. Only 30 (approximately) are used in the making of sake.
  • There is a specific rice, which is not edible, called sake rice. Sake rice is use to make premium sake while lower grade sake is created from the more edible table rice. About 75% of all sake produced today is made of table rice.
  • Sake pairs well with the following types of food: fish (obviously), chicken/pork, cheeses, and even fried foods.
  • Currently, only 5% of sake is exported to the United States due to low demand and lack of information.
  • Sake reached its peak of popularity in Japan around 1973 and since then has been declining as Western culture has been influencing Japanese youth to gain more interest in beer, wine, and spirits.

Production

  • Rice, water, yeast, and mold are the key ingredients to brewing sake.
  • The water used must not have any metallic elements in it.
  • Yeast is used to break down the sugars while mold is used to break down the starches.
  • The use of mold was introduced by the Japanese and is specific to sake production and not used by any other brewing process.
  • The specifics on what type of yeast and mold is used is proprietary and kept secret by each brewer.
  • Most rice grain is milled off after harvest so that only the core nodule is left. This nodule is about the size of a large cous cous perl. The rice grain that has been milled off is usually sold and used in as cooking ingredients and other uses.

Storage and Serving

  • Sake does not generally keep longer than a year and drinking it within the first six months of being produced is optimal.
  • Premium sake is typically served at 60 to 50 degrees Fahrenheit to almost freezing.
  • Sake can range from being very sweet to bone dry in taste and is very hard to tell what it will be like when buying it. There is generally no information about this on the bottle label. You’ll have to experiment through trial and error to find out what you like and do not like.
  • Contrary to popular belief, warming sake will destroy of the natural bouquet of flavors but, instead, hide imperfections in low grade sake. Premium sake will have more of a bouquet of flavor and exhibit fruit-like characteristics for something that does not include fruit as an ingredient.

Purchasing

  • There are five types of sake. Generally, you want to look for the Ginjo and Diaginjo mentioned on the bottle labels for premium sake. A good bottle of Ginjo sake can cost between $20 to $100 in the United States. Anything cheaper than that is made with table rice. Ginjo has 40% of the rice grain milled off while Diaginjo has 50% to 65% milled off.
  • Check out Vine Connection’s List of local stores for buying sake. You might find one that is near you.
  • The Wine Room has a list from which you can buy online.

Tags:

Wednesday, December 27th, 2006 Epicurean No Comments

Neosonik

An American startup called, Neosonik, has developed a way in which to broadcast video and sound wirelessly. You can read more about Neosonik by visiting their web site and reading their documentation and diagrams but here are a few key notes:

  • Supports up to 60MB/second throughput of uncompressed video and audio.
  • All transmission is digital which helps to preserve original source content (if digital to begin with).
  • They claim there is no interference from other wireless sources and the signal can be transmitted through walls up to 200 feet.
  • Complete synchronization of all output. In the case of and audio signal where you might have a 5.1 layout (i.e. left and right loudspeaker, center speaker, left and right surround sound speaker, and subwoofer) this means that the signal transmitted is received by all speakers at the same time.
  • Since each component in your setup is wireless the need for a centralized power amplifier goes away and is, instead, put in each component. This potentially means that you will need an electrical socket for each component or a lot of extension cords. This displacement of power could be good or bad depending on your environment.
  • The initial cost of the entire system is between $6,000 and $15,000 as they expect you to buy their controller, speakers, etc. all from them. On the other hand, a specification is being developed by many key players (like Sony and Toshiba) called WirelessHD which would allow other manufactures to be compatible with this technology.

Protected: Christmas Gifts

This post is password protected. To view it please enter your password below:


Monday, December 25th, 2006 Adventures Enter your password to view comments

Monarch Mountain

Due to the recent storm and since Kate had free tickets for Monarch Mountain, we loaded the jeep and headed off to the slopes for another enjoyable day in the snow. Here are few pictures from our adventure:

The Great DivideView Of Mirkwood BowlThe Main BowlThe So Called Advanced Lift

This was a first for both of us as we had never skied this mountain before. The drive was just a little longer than Winter Park at just over two hours but not really all that bad. None of the lifts have high speed chairs and the mountain isn’t all that big as most of the runs were rather short and not terribly complicated. Although, I did manage to find a really good tree run off the Breeze Way Lift.

This is a great mountain for those wishing to get away from the big crowds but I admit I do miss having faster lift chairs and longer runs.

Sunday, December 24th, 2006 Adventures No Comments

Protected: Cheyenne Mountain Zoo Lights

This post is password protected. To view it please enter your password below:


Saturday, December 23rd, 2006 Adventures Enter your password to view comments

Holiday Vacation

I have not taken a break since I started my new job and while these past couple months have been exciting, challenging, and fun I have had little time to catch up on other things. I have been looking forward to the time off so that I can relax, entertain family (who will soon be arriving), do some personal development (programming), read, drink, snowboard, etc. I have also been secretly wishing for it to snow as I have not had a white Christmas since I was much younger. Now that I live in an environment where that is much more of a possibility, I might just get my wish. In fact, maybe I should be careful what I wish for. Turns out that on my first day of vacation, we get hit by a blizzard. Here is a Doppler radar snapshot taken from the Weather Channel:

weather-channel-doppler-radar.png

Even the Gazette is reporting that we are being clobbered.

Here are a few pictures from where I am at:

Front DoorLooking NorthLooking SouthMail Boxes

I love it! Although, I’m sure there are some that will not share my enthusiasm.

Wednesday, December 20th, 2006 Announcements 2 Comments

Planet OTI

I discovered that a Planet OTI web site exists which is basically an aggregation of blog feeds from a handful of ex-OTI’ers. My guess is that Patrick Mueller was the wizard behind the curtain who brought this site to life. The site is being powered by Planet software.

OTI, stands for Object Technology Incorporated. It was a small software development company (approximately 300 people) that at one time spanned roughly five countries: Canada, United States, Switzerland, Australia, and the Netherlands. The company began it’s life by crafting Integrated Developer Environments (IDEs) for the SmallTalk programming language. Eventually it switched to the Java programming language and was later bought out by IBM and assimilated. OTI’s greatest claim to fame is probably the J9 technology which is now the IBM’s Java Virtual Machine (JVM) of choice.

While OTI no longer exists, it is nice being able to catch up on the activities of some of the people that I used to work with.

Wednesday, December 20th, 2006 Announcements 2 Comments

Winter Park

Kate and I kicked off the ski season by heading to Winter Park for the day to go snowboarding. Winter Park is about a two hour drive from Colorado Springs. Luckily the weather was good and traffic was light (especially considering that most schools are not in session for the holidays).

Kate had got a new snowboard, boots, and bindings for her birthday and was eager to break them in. It took us most of the morning to get things right. I had set both of her feet at ten degrees off center. Turns out she likes it more freestyle and so we adjusted the bindings to have her boots at zero degrees. That made a huge difference and reduced the pain she was feeling in her feet. In contrast, I keep both my feet at thirty degrees off center. I prefer more of a racing style than the free style.

We both have a four-pass to Winter Park which means that we can go four times out of the year on one ticket. A sweet deal for us locals.

Here are a few pictures from our day in the snow:

Super Gauge ExpressTop Of Mary JaneThe Mountains BeyondSnowboarder And SkiersKateAbove TimberlineBrooke

Later that evening we headed into a little town called Idaho Springs which is between Denver and Winter Park to stop for dinner. We ended up eating at Beau Jo’s Pizza. They pride themselves on making Mountain Pies which are not ordered by size but by pound. The reason is that they pile on the ingredients thick. Not only are there a lot of ingredients but the crust is thick as well. The idea is that you eat each slice of pizza and then save the crust for desert which you can pour honey over and eat. Everything was made fresh including the tomato sauce and dough. Great place to eat and great atmosphere too.

Monday, December 18th, 2006 Adventures No Comments

Search

 

Categories