Posts Tagged ‘WordPress’

A Failed WordPress 3.2.1 Upgrade Due To GLACIAL Slowness

Monday, August 1st, 2011

Wordpressorg2011Well, my Friday evening didn’t work out as planned. I was all ready to get this whole blogs.voxeo.com site moved over to WordPress 3.2.1. I’ve been running WP 3.2.1 on some of my personal sites (and the VOIPSA blog) and it’s been working great. Given my positive experience, I expected there to be no problems and was looking forward to it “just working”.

FAIL!

Some four hours later after numerous restorations and reattempts at upgrading while making various changes in between, I had to finally give in and admit defeat. I’ve had to keep the site at the latest 3.1.x release.

Why?

Because post-3.2.1 upgrade, the site admin interface was completely unusable. The upgrade would appear to work perfectly fine – and the blog posts would display perfectly fine… but then when it would go back to the admin dashboard it was g… l… a… c… i… a… l… l… y…   … s… l… o… w….

So slow, in fact, that I never could really get to the “Upgrade Network” page to even finish the full installation.

I tried everything… I disabled plugins… I mucked around with themes… I made sure the base operating system was all set… I checked the master list of WordPress 3.2.1 problems… I spent a large block of time searching the WordPress forums for an answer…

… and in the end, it turns out I am not alone – a number of other people are reporting similar slowness. In fact, a good number of other people judging by the number of new forum posts featuring the words “3.2.1 slow”.

Judging from some of the posts, my guess at the moment is that perhaps there is some interaction between WordPress and the “Voxeo” theme we use on most of the blogs here. Our theme is, in fact, quite ancient in terms of WordPress… we developed it over 3.5 years ago based off of the old venerable Kubrick theme… and so perhaps that is causing problems. However, I have neither the time nor interest right now in coming up with a new theme… although maybe that will be the way forward. :-(

Meanwhile, I guess I’ll be waiting for a WordPress 3.2.2 to see if that will work better.


Want to learn how Voxeo can help unlock your communications and deliver a better customer experience? Please contact us!

If you found this post interesting or helpful, please consider either subscribing via RSS, becoming a fan on Facebook, or following us on Twitter.


One Post-WordPress-3.1 Plugin Upgrade – and The Challenge of “mu-plugins”

Wednesday, April 6th, 2011

Wordpressorg2011After the upgrade of the site to WordPress 3.1, a couple of users noticed one little detail… they couldn’t use the new YouTube embed codes – the ones that use the <iframe> tag so that the video can be viewed on different devices like the iPad and iPhone that don’t, well, support Flash. :-)

Now what was strange was that this had worked perfectly fine before. Two years ago I’d installed the Unfiltered MU plugin specifically to allow anyone with “Editor” access or above to be able to embed iframes or anything else they wanted.

Care to guess the problem?

Yep… I hadn’t updated the Unfiltered MU plugin since that first installation.

Oops.

A quick visit to the Unfiltered MU plugin site got me the latest version and very quickly our folks were back in action embedding iframes. Obviously something in WP 3.x broke whatever was in the old version of the Unfiltered Mu plugin I had installed.

The Problem With “mu-plugins”

And therein lies the problem with the mu-plugins directory inside of WordPress.

You have NO way of knowing when any plugins in that directory need updating.

To review, in a WordPress 3.x Multi-Site (formerly known as “WordPress MU”), there are TWO directories into which you can place plugins:

  • wp-content/plugins – where all regular plugins go. These get activated for each blog or now can be activated network wide… but through the WP admin interface.
  • wp-content/mu-plugins – where previously (in WPMU) all “network-wide” plugins went. There is no admin interface to activate these plugins… place a plugin in this directory and it is immediately activated.

The mu-plugins directory still works in WP 3.x Multi-Site and still does the same activation across all your blogs. Some plugins may still need to be placed there.

The challenge is, as I said, that you don’t see the update status of the plugins in mu-plugins in all the spiffy update/upgrade interfaces now in WordPress 3.x.

There are really two paths I can see:

  1. Someone adds a function to WordPress to treat mu-plugins like the regular plugins directory… perhaps just under the “Network Admin” tab.
  2. Plugin authors allow their code to move out of mu-plugins into the regular plugins directory and then be activated network/site-wide.

This second path seems to be what the Unfiltered Mu folks now allow, per the installation page, which is probably what I’ll end up doing with this plugin in the long-term. This allows it to make use of the standard upgrade notification while also allowing it to be activated across the entire network of sites.

We’ll see what direction the WordPress community goes… in the meantime, if you ever installed “Unfiltered Mu” in the past… you probably want to see about upgrading if you haven’t already ;-)


Want to learn how Voxeo can help unlock your communications and deliver a better customer experience? Please contact us!

If you found this post interesting or helpful, please consider either subscribing via RSS, becoming a fan on Facebook, or following us on Twitter.


Blogs.voxeo.com Now Running WordPress 3.1 Multi-Site

Thursday, March 31st, 2011

Wordpressorg2011It’s taken quite a while, but I’m very pleased to say that the Voxeo blog portal is now running WordPress 3.1. This is actually the first move from “WordPress MU” to the merged “WordPress” as I skipped over WordPress 3.0 entirely and jumped from WordPress MU 2.9.2 to WordPress 3.1.

It took some time in large part because of the success of our nimble little “blog site” turning into a much larger ship. We now have 20+ blogs running on the site (some listed here)… with a few more in development… so I don’t want to just make sudden moves that might disrupt activities.

In this case, I did testing of WordPress 3.0 and 3.1 on some other external sites and on my own personal network of blogs. I tested out the plugins that we use. I made multiple copious backups. I keep all the configuration for the site in a git repository, so I had that, too, but you can never have too many backups.

When I was ready to do the cutover, I was equally ready to just move the old files back into place… but in the end, it all worked.

With WordPress 3.1, we’re now up to the latest code base in terms of both fixes and features. I’m already loving the “admin bar” and am looking forward to using the new cross-post linking features.

That’s the news… if you happen to see something looking funky or strange on the site, please do let me know. Meanwhile, I’m looking forward to seeing what else we can do with this new and improved site!


Want to learn how Voxeo can help unlock your communications and deliver a better customer experience? Please contact us!

If you found this post interesting or helpful, please consider either subscribing via RSS, becoming a fan on Facebook, or following us on Twitter.


WordPress for iPad Makes A Great Comment Command Center For A Blog Network

Thursday, March 24th, 2011

When running a site like the Voxeo blog portal that features a “network” of different Voxeo blogs one of the ongoing challenges is handling comments. Not whether or not to allow comments… we have a very clear comment policy and publish all comments that comply… but rather just dealing with all the comment spam and moderating those comments that get through. We pay for an Akismet subscription, and that catches the vast majority of spam that hits our blog comments, but I also run the blogs in the moderation mode that requires your first comment to be approved by an administrator prior. Subsequent comments then are posted without moderation. I do this primarily because even with Akismet I was still finding spam getting through.

But this means, of course, that I or another blog admin have to approve all the initial comments.

While I get the email notifications and can simply click on the link to approve a comment, I often don’t have time to do it right then or I can see that it’s an obvious (unpublished) spam comment to ignore, and so I wind up approving or spamming a whole bunch of comments at the same time. I will login to one blog… but then I need to go to the next… and the next… which I don’t find as easy to do in the WordPress web interface.

Enter WordPress for the iPad….

It turns out to have a really nice interface for going into each blog and looking at the comments:

Wordpressipadcomments 1

I can just tap back to the list of blogs, go into a new one, moderate comments, tap back and go into the next… all with the wonderfully intuitive and easy interface of the iPad. Simple and easy to do.

Now the caveat is that when I do this I generally don’t have a LOT of comments to approve or trash. If I had a lot, the bulk tools of the web interface would definitely be the way to go. But for just handling a few comments in each of the blogs, it works great.

If you have an iPad and haven’t tried out the free WordPress app for the iPad, give it a whirl… it’s rather cool!


Want to learn how Voxeo can help unlock your communications and deliver a better customer experience? Please contact us!

If you found this post interesting or helpful, please consider either subscribing via RSS, becoming a fan on Facebook, or following us on Twitter.


Using WordPress with Cassandra or other NoSQL databases?

Tuesday, January 4th, 2011

cassandra.jpgHow do you scale a WordPress installation? Or more importantly, how do you make it so that your WordPress installation is always available? I asked this question about a year ago in a post, Suggestions for “clustering” WordPress MU servers? Or mirroring servers?, and I still don’t have a great answer. Sure, I have a system in place now that regularly syncs backups to a standby server that is just waiting there to be brought online. If anything happened to the main blog server we could be back online within a short time period.

But I don’t want to go through that process – I just want the content to be always available.

The big challenge with a multi-server WordPress installation is this:

how do you keep the database in sync between the servers?

I can set up multiple WP servers. Install the same WP software. Install the same plugins. I could even set up DNS to do a round-robin between the servers… but all that only works if the servers have the same database of posts, comments, etc.

Yes, we’ve drawn up a plan to set up a MySQL sync between two servers, etc., etc…. but I haven’t implemented that yet in part because I just haven’t made the time but more because it’s just uglier than I want.

What intrigues me instead is the idea of using Cassandra or another one of the so-called “NoSQL” databases (like MongoDB, CouchDB, SimpleDB, etc) as the underlying database. The main difference from MySQL is that Cassandra is a distributed database from the start. Forget the “master / slave” relationship you have to set up with MySQL… all Cassandra nodes are equal.

wpandnosql.jpg

In theory, subject to replication timing (which you could also force in Cassandra, requiring the writing to all replicas before the item is truly committed) this would give you the same database layer across multiple servers with WP installed.

Of course, in reality, this would be a decidedly non-trivial change.

WordPress is entirely written around the use of a relational database (and specifically MySQL) so moving the code to work on a NoSQL base would require a good bit of work. It’s good to see that there are suggestions into the WordPress team around this:

I was also pleased to see someone announced their intent to create a NoSQL fork of WordPress over on StackOverflow back in October… but it looks like that’s been put on hold until this coming summer.

I don’t personally have the cycles (nor really the NoSQL background) to work on a modification of WordPress like this, but if someone else is out there working on one, I’d sure be willing to help with some testing or other assistance. I think this would definitely be a great way to enable availability for WordPress sites.

What do you think? What do you do now for a multi-server WordPress install? Do you think a NoSQL alternative would be useful? Which NoSQL database do you think might work best?


P.S. For readers who aren’t aware of what the whole “NoSQL” world is about, this RWW post may be useful: Is the Relational Database Doomed?



Want to learn how Voxeo can help unlock your communications and deliver a better customer experience? Please contact us!

If you found this post interesting or helpful, please consider either subscribing via RSS, becoming a fan on Facebook, or following us on Twitter.


How can WordPress founder Matt Mullenweg balance open source and capitalism?

Thursday, October 21st, 2010

mattmullenweg.jpgWhat is the future of WordPress? What is the role of open source? Yesterday, Mashable published “WordPress Founder on the Key to Open Source Success,” a brief interview with Matt Mullenweg that had some useful points about “open source” as it relates to WordPress and to the greater market – and to how open source can coincide with commercial interests.

It intrigued me because I think WordPress is in an interesting spot in it’s evolution… it is really becoming the platform that people use for blogging – and also becoming a major platform used for just “regular” web sites.

WordPress has become another major layer in the open source software stack.

As Apache is to web servers … as Firefox is to web browsers (although it’s getting challenged by Chrome)… and as BIND at least was to DNS servers… WordPress is becoming for content management systems (CMS), and specifically for blog-style CMS systems. Some may dispute that… but I think the ecosystem around WordPress and the sheer volume of users attest to that.

So WordPress is in an interesting place… and I found a couple of Matt’s comments quite on target:

Twitter is the ultimate service for the mobile age — its simplification and constraint of the publishing medium to 140 characters is perfectly complementary to a mobile experience. People still need longer stuff, but they see the headline on Twitter or Facebook.

I added my emphasis to the last point, as it is the key. Twitter and Facebook are the way so many people get their “news”… and so headlines are an insanely important part of creating any blog post. You have literally seconds to attract someone’s attention – your headline had better hook them! (How did mine do on this post? ;-) )

The biggest challenge for Open Source is that as it enters the consumer market, as projects like WordPress and Firefox have done, you have to create a user experience that is on par or better than the proprietary alternatives.

User experience is critical! And Matt is absolutely right… for open source products to survive and thrive in the consumer world, they must pay attention to the user experience.

The Mashable interview covered a few other points, including that Matt sees no issue with balancing open source and capitalism… he’s very positive about both.

P.S. As a photographer, I have to say that I really think that photo of him is great!


Want to learn how Voxeo can help unlock your communications and deliver a better customer experience? Please contact us!

If you found this post interesting or helpful, please consider either subscribing via RSS, becoming a fan on Facebook, or following us on Twitter.


Editorial Calendar – a great WordPress plugin to help you plan out your content

Tuesday, September 14th, 2010

Have you wanted to plan out a series of blog posts over a period of time?  Or have you wanted to see when a number of different authors plan to publish their blog posts?  Or have you just wanted to see visually when posts to your blog were published?

The Plugin

editorialcalendarsidebar.jpgBy way of Chris Brogan’s blog I learned of a great plugin for WordPress called “Editorial Calendar” that does exactly that.  Once installed, you have a new “Calendar” menu choice in the left sidebar (in your admin interface).

When you click on that Calendar link, you will now see a traditional calendar view (seen below) of a period of weeks that shows you all of your:

  • already published posts
  • scheduled posts that will be published
  • scheduled draft posts

The scheduled draft posts are interested because they will not be published unless you go in and then change them from “Draft” status. What’s nice about this is that you can go in and set up a whole series of draft blog posts and see them visually… but yet they won’t be published until you actually edit the text and schedule them.

What is also cool is that you can create new posts directly from this calendar interface. So if you decide that you want to have a series of three posts coming up on the next 3 Mondays, you can go in right from this calendar view and set up the posts for those days. You can enter complete posts – or simply create blank stub posts that are placeholders until you can enter the rest of the text.

You also can move posts from one day to another simply by dragging the scheduled posts around in the calendar interface.

By clicking on the “Screen Options” link toward the upper right of the page, you can also configure the plugin to display the author of a particular blog post. All in all it works rather well: editorialcalendarplugin-1.jpg

Using It With WordPress MU

I’ve installed the plugin here on blogs.voxeo.com and activated it across our various blogs. So far it is working great and I’ve seen no issues with it with our WPMU 2.9.2 install.

Now, it sets up a calendar for each individual blog. What would be a cool enhancement would be if it were available at the Site Admin level and could show you your posts scheduled across all blogs in a WordPress network of blogs.

The use case would be for a blog portal like this one. As the overall manager of the site, I would like to ensure that we have a new post coming out every day on at least one of our blogs. I’d love a plugin like this that would give me a macro view that could show me what is scheduled across all our blogs. I could then go into days when we don’t have content scheduled and create some new posts.

While that would be a cool enhancement for network sites, as it is alone it’s a great help and I’m very pleased to have found it. You, too, can install it from its plugin page if you would like to add this functionality to your site.

P.S. I also wrote about this plugin on my external Disruptive Conversations blog.


Want to learn how Voxeo can help unlock your communications and deliver a better customer experience? Please contact us!

If you found this post interesting or helpful, please consider either subscribing via RSS, becoming a fan on Facebook, or following us on Twitter.


The WordPress MU plugin I want: site-wide trends in blog posts, comments, etc. across ALL blogs

Tuesday, August 10th, 2010

If you are a WordPress developer looking for an interesting new project, or if you have an existing WordPress statistics plugin and are looking for ways to add more to it, here is the kind of plugin I would love to have available to me….

Last night I wanted to create a graph of the site-wide quarterly trend in the number of blog posts published across ALL blogs on our blogs.voxeo.com corporate blog portal. After looking through a great number of potential WordPress plugins (with special thanks to the always awesome Andrea_R for her pointers), I got rather frustrated because most of them seem to focus on either site-wide visitor stats, which I’m already tracking through Google Analytics, or provided some “activity” stats – but only for a single blog.  (And if I missed one that does what I outline below, I’d love to hear about it.)

I did finally get the kind of chart that I wanted… but through a kludgey use of SQL and Excel that I’ll describe below.  Here was my end goal:

blogposttrend.jpg


THE REASON

My purpose in this was somewhat simple – I wanted to see and chart the growth of our content creation efforts on the blog server.  I want to show trends in the amount of content we are publishing… and then potentially tie those in to other trends such as increased visits (which I track through Google Analytics) and increased sales inquiries (tracked through Google Analytics and SalesForce.com).

I have other reasons, too. We have set up a number of different blogs on different topics. I would like to be able to see which of the blogs we are writing in more often than others… and which might need some attention – or potentially archiving.  I’d like a chart like the one above for each individual blog over time… or perhaps with the ability to graph multiple blogs on the same chart as a comparison.  You could see this being interesting data in a larger organization with different teams creating different blogs… to see which teams are creating the most online content.

To that point, it would be interesting to see which users are generating the most content… conceivably across all blogs.  In part from a individual performance point-of-view, and in part from a site-wide “health” point-of-view.  Our blog portal used to only have posts written by me. Now there are a good number of writers and to me that is the sign of a healthy content creation environment. As the one responsible for the overall site, I’d like to be able to see how the contributions are across the site.

I’d also like to be able to see the trend in comments.  How many comments?  How many track/pingbacks?

I’d like this data available in a quarterly basis, as I’ve shown here, and perhaps also in a monthly or weekly basis. Maybe even yearly if the site has been around for a bit.


THE IDEAL PLUGIN

In my mind, the ideal plugin would be something that is a panel in my WordPress admin interface where I go to generate these reports.  For performance, I wouldn’t want this hitting the database and running all the time – but just there to generate on-demand reports.  Some of the ideas I would like to see:

  • Allow me to set a date range
  • Choose from weekly, monthly, quarterly and yearly  (perhaps daily needs to be in there, too)
  • Allow me to choose which of the blogs I want to get trends on (some of our blogs are experimental or, like our Events blog, have pages only and no posts)
  • Choose whether to get trends on only public blogs or also private blogs
  • Choose whether to aggregate all data together or to graph blogs separately
  • Graph different types of data:
    • Count of posts by blog (or in aggregate)
    • Blog posts by user
    • Comments by blog (or in aggregate)
  • Allow some modification of the title, legend, etc.
  • Or… alternatively… just create a CSV file with all the data that could be brought into Excel

There’s probably more, like overall word count and stats like that… but that’s a start.  If you are reading this, what would you like to add?


THE KLUDGE

To get the chart I wanted, I had to sweep away some of the cobwebs on the SQL knowledge in my brain and play around at the MySQL command line.  I logged into the blog server, launched “mysql“, connected to the “wordpress” database and started playing around with “select” statements.  There is a table, wp_blogs, that lists all of your blogs and, most importantly, shows the “blog_id” for each blog.  For each blog, there is then a table named “wp_<blog_ID>_posts“, as in “wp_4_posts” which contains the info about the posts, dates, authors, etc.  I found that I could get the data I wanted by doing this:

 select ID, post_title, post_date from wp_4_posts where post_type = 'post' and post_status='publish';

Now, I didn’t include “post_author” in my work last night, but I wish I did because it would have let me gather the author stats I want.  Anyway, I continued mucking around until I eventually came up with a SQL statement that gave me a pipe-delimited text file that I could easily import into Excel on my Mac. (I couldn’t use commas because some of my post titles have commas!)  Naturally I then had to automate the process so I hacked up a very quick python script to create the relevant SQL statement and then send that to MySQL.

import os

for i in [4,7,8,11,12,13,15,16,19,22,24]:   # This is a list of the blog_ids of the blogs I care about

    target = "select ID, post_title, post_date from wp_"+str(i)+\    "_posts where post_type = 'post' and post_status='publish' ORDER BY post_date INTO OUTFILE '/tmp/b"+\    str(i)+ ".txt' FIELDS TERMINATED BY '|';"
    os.system('mysql wordpress -e "'+target+'"')

Like I said… a total kludge.

The end result was a series of pipe-delimited text files that I could import into Excel, combine together, and do some kludging there to get me the quarterly data which I could then chart.

If I knew how to use the various MySQL modules for python, I’m sure it could have been done much more elegantly. (And yes, I know that the python “os” module is deprecated in newer python versions and “subprocess” should be used instead… I’m old school and this was a quick late-night hack.) Or if my SQL knowledge weren’t so rusty, there’s probably some big SELECT statement that could join this all together and give me a nice unified output, perhaps even with the counts I want.


THE FUTURE

And if someone out there is handy with SQL or already has a WordPress plugin that does some or all of this… it would be great to see!  Given that my usage of WordPress MU (yes, I’m still on 2.9.2, but will be moving to 3.0 soon) is for a corporate blog portal, these are the kinds of statistics and trends that are of interest.  I would think that even if someone were running a more open site, these kind of trends would be helpful to know and understand.

Hopefully there’s just some plugin out there that I’ve missed! :-)

What do you think?  What would you want in a plugin like this?


Want to learn how Voxeo can help unlock your communications and deliver a better customer experience? Please contact us!

If you found this post interesting or helpful, please consider either subscribing via RSS, becoming a fan on Facebook, or following us on Twitter.


Suggestion for a WordPress plugin to publish posts to a Facebook Page?

Thursday, July 15th, 2010

facebooklogo-2-1-1.jpgDo you use a WordPress plugin to publish your posts to a Facebook Page? If so, which one?

I’m looking for a new solution to link this site to our Facebook Page at www.facebook.com/voxeo. Right now I’m using Facebook’s ability to import a RSS feed to pull in all blog posts from the entire blogs.voxeo.com site into our Facebook page. I’m just pulling in our “All Blogs” feed.

Here’s the problem – Facebook is incredibly inconsistent with pulling in the RSS feed. Sometimes a post here gets pulled into Facebook quickly… other times it might be hours after posting… sometimes days later! Sometimes no articles get posted to the Facebook page and then a whole batch of posts gets posted all at once.

It’s rather frustrating.

So what I want to do is reverse the process. Instead of waiting for Facebook to pull our posts from the RSS feed, I want to push our posts over to Facebook right after they are published here. Essentially the same kind of thing we are doing to our Twitter account.

In looking at all the various WordPress plugins related to Facebook, it looks like this plugin might do the trick:

Simple Facebook Connect

The description includes this line:

  • Automatically Publish new posts to Facebook Profile or Fan Page

Which sounds like what I want.

Anyone use this plugin today? Do you use another plugin to publish to Facebook?


Want to learn how Voxeo can help unlock your communications and deliver a better customer experience? Please contact us!

If you found this post interesting or helpful, please consider either subscribing via RSS, becoming a fan on Facebook, or following us on Twitter.


Looking forward to WordPress 3.0 and the merge of WPMU

Monday, April 5th, 2010

wordpressmulogo.jpgI was delighted to see over the weekend that WordPress 3.0 Beta 1 is now available as this release promises to solve one of the biggest headaches for a WordPress MU administrator – staying in sync with the main WordPress stream – with “the merge“.

Yes, indeed, with WordPress 3.0 the separate “WordPress MU” will go away and “WPMU” will simply become another mode of the main WordPress stream. Per the beta instructions on configuring multi-site capability, it appears that all we’ll have to do is set a WP config variable:

define (‘WP_ALLOW_MULTISITE’, true ) ;

I say “it appears” because I’m admittedly too chicken to try out the WP 3.0 Beta 1 on this production site. After all, the blog post is very clear that 3.0 Beta 1 is an “early” beta. However, I may certainly try it out on one of my staging/testing servers. I’m looking forward to continuing to watch the evolution and to eventually running it here.


P.S. Since this “Behind The Blog” site seems to often be read by people investigating WPMU, let me explain the issue a bit more. Right now, WordPress MU is a separate installation from regular, plain-old WordPress. However the main development and evolution of WordPress happens on the regular WordPress code base and then is ported over to the WPMU code base. As a result, when a new version of regular WP is released there is a time delay before when the corresponding version of WPMU is available. Sometimes this isn’t a big deal… but sometimes you might want a specific WP fix or feature in WPMU sooner than the team is able to port it. Also, there are two places to report bugs (WP and WPMU) and also submit fixes, etc.

With WordPress 3.0, the two code bases will be merged so that there is only one stream of code going forward. This should make it much simpler for site administrators overall – and ensure that WPMU sites can always be up-to-date with the latest “regular” WP fixes and features.


Want to learn how Voxeo can help unlock your communications and deliver a better customer experience? Please contact us!

If you found this post interesting or helpful, please consider either subscribing via RSS, becoming a fan on Facebook, or following us on Twitter.