Social networking tidy-up


As promised my my "Goals and plans for 2013" post, I started doing some cleanup on my social networking. I'd actually started this in late November (2012) but didn't finish it, so I'm doing so now. This morning I changed all of the pages I'd "liked" on Facebook to not show updates in my timeline. More importantly, though, I un-friended 41 people on Facebook that I have other ways of communicating with; if you happen to be one of those 41 people please know that it wasn't because I don't appreciate our friendship, it's simply that I'm changing my Facebook usage to be a way of contacting my extended family and friends in Ireland.

Goals and plans for 2013

I didn't work out any goals for 2012, but I am going to for 2013 - we have a third child on the way and many things need to be done prior to that.

My overall goals for 2013 are:

  1. Improve my health.
  2. Become more productive.
  3. Do more with my family.
  4. Be happier.

Breaking these broad goals down into smaller pieces, I have the following more specific goals:

  1. Exercise at least three times per week - five times would be better, but I'd be happy with three to start with; we have a family membership to the YMCA that is only a mile away from our house, along with multiple exercise routines on DVD, so I have no excuse not to do this.
  2. Improve my diet by stopping eating high carb / calorie snacks at night, focus instead on more filling & nutritious foods, and get out of the instinct that I can randomly munch on things when I'm hungry rather than having a discrete snack.
  3. Drink more water, less tea.
  4. As a result of the above, fit my size 38 pants better by the summer, rather than feel like I should be looking to "upgrade" to size 40's. I'd really like to fit my size 36's again, but making the 38's fit correctly again would be a good start.
  5. Be in bed by 11pm every night - critical work-related or critical family-related things may bump this, but seriously aim to avoid being up past 11 when there's no good reason to.
  6. Reduce "wasteful" social networking, mainly Facebook and Twitter; with Facebook I've added far too many people that I can interact with via other means, thus creating duplicate content I feel a (albeit mild) compulsion to keep up with on, with Twitter I've a tendency to get into many conversations that I don't need to. Both of these lead to reduce productivity thus less family time. The first task for this is to reduce the number of Facebook contacts I have, the second task is to stop checking Twitter so often (will take some time to break the habit).
  7. Learn how to do minor maintenance on our car; I was able to change the brakes on our previous car, I can learn how to do the same with our current one, especially now that I picked up a repair manual for it. The first specific task for this will be to change the low-beam lights as one of them stopped working over the holidays.
  8. Have our (current) two children help more with "thing" maintenance, including the car and DIY tasks around the house - it'll mean spending more time with them and they'll learn how to do lots of day-to-day things.
  9. Stop whining & holding onto grudges, learn to let go.
  10. Blog more, tweet less.

It's going to be a busy six months until our third child is born, but I'm determined to become a better person, husband and father by then.

Drupal Search Engine Optimization (D7)

As anyone who builds websites will know, search engine optimization (SEO), i.e. optimizing your website & its content to be more readily searched & discovered via search engines, is both deceptively simple in nature yet takes a good deal of time to maintain correctly. Drupal, the CMS system that I have focused my career on over the past four & half years, has many features that give it a leg up in the SEO battle, though in the end the single most important way of improving a site's SEO is by having good content. That said, there are some tools to help improve a Drupal site's SEO capabilities and a new book from Packt Publishing aims to guide you through it. So, how good is it?

Disclaimer: I was given a free copy of this book in exchange for this review.

The book has just five chapters: an intro to what SEO is all about, how to configure Drupal's core functionality to improve SEO, contrib modules that can help, building an SEO strategy, and tips for maintaining & monitoring the site's progress. All of this comes in at roughly one hundred pages, which is pretty short compared to the previous Drupal 6 SEO book, written by self-made Drupal SEO expert Ben Finklea, which was over 250 pages.

As the maintainer/co-maintainer for two of Drupal's most commonly used SEO-focused modules (Nodewords for D6, Metatag for D7) I was hopeful to see the modules I've put much of my personal time into improving see some promotion, and I wasn't too disappointed in this regard.

The third chapter starts with a page explaining what contrib modules are how to search the Drupal website for them, which should indicate the audience this is written for. It then proceeds to briefly summarize the "Top SEO modules for Drupal", which includes SEO Tools, Facebook social plugins, Global Redirect, Metatag (booyah!), Page Title, Pathauto, Search 404, SEO Checklist, SEO UI, SEO Watcher, Sexy Bookmarks, TagClouds, XML Sitemap. So there's that. Once it finishes explaining what each of the modules is for it then goes into a brief summary of how to configure each module. And this is where I have a problem with the book.

One of the reasons I collaborate with the prolific Dave Reid on the Metatag module is that it covers most of the metadata that pages need, and you don't really need any other modules to handle this functionality. Specific things it is able to handle are the page title (the normal HTML "title" tag), the canonical URL tag, Open Graph tags (used with Facebook), Twitter Card tags (used with Twitter), Dublin Core tags, etc, along with some of the more basic "description" and "keywords" meta tags. Our idea is to have all of this functionality (and more over time) bundled together so it can be easily customized via one location, rather than having to go to one module's page to change the canonical tags, another for the page title, somewhere else for Open Graph, etc.

Why do I bring this up? Well, as with every other Drupal 7 -focused SEO article I've read, the book promotes using the Page Title module for handling the title tag even though the Metatag module has always let you customize the page title (even Dave's first code in early 2011 had it!) thus making the Page Title module completely redundant. Secondly, while Drupal core outputs a canonical URL tag on its own, with Metatag you can actually control what is output and override it per page (if you really need to), but the book discusses using GlobalRedirect module for this and not Metatag; yes, GlobalRedirect can help with other things, but you sure don't need it to add the canonical URL tag.

Another aspect that would have improved the book is a good explanation of what tokens are and how to use them as many of the SEO modules use them extensively. For the uninitiated, tokens are the small strings found in e.g. Metatag's fields on node edit pages that are wrapped in square brackets that get converted into something more useful when the page is displayed, e.g. [site:url] will output the main URL for the site, [node:title] shows the title of the current node page, etc, and it definitely would have helped to cover these in detail.

The rest of the content is fairly good, I'm just a bit disappointed at the inaccuracies in its coverage of modules. Between that and the book's length, this is a book I'd only recommend if you really are new to SEO best practices, and even then expect to need to do a lot of additional research.

My Rating: 

Average: 3 (1 vote)




Tip: Avoid bugs with translation strings


I came across a small problem recently with translation strings and wanted to share how I resolved it. Due to how PHP handles strings that are quoted with single quotes (') and double quotes ("), you should always copy the exact string and the quotes signs from the original file when you're overriding a string rather than transposing it into your own coding format, that way you'll avoid subtle bugs and those late-night #facepalm moments.

Restarting the BlogAPI Alternative project


In Drupal 5 and 6 there was a module shipped with core called "BlogAPI" which provided the necessary plumbing to let you post content using desktop clients that supported a variety of APIs. Unfortunately the module languished and, while APIs improved, the module's support for them did not keep up. During 2009 my employer at the time, Bonnier Corporation, wanted a way for their editorial staff to post content while working remotely, so I created the BlogAPI Improved project to add improvements to the module. As often happens, Bonnier decided to postpone their mobile efforts and focused on their core (desktop) web experience instead; when this happened I let the module languish as I just didn't have time to commit to it.

In Drupal 7 the BlogAPI module was removed entirely from core and moved into a separate project which someone volunteered to maintain. After several years, after a ChipIn fundraiser met its goals and with dev versions available for two different branches, there's still nothing available for Drupal 7 that works.

While the whole BlogAPI platform was languishing, along came dedicated projects like Drupad, which used a combination of a contrib module and a customized application to post content, the hope being that by controlling both ends of the equation it should be more reliable & powerful than 10-year-old APIs. At the same time many of the iOS and OSX blogging tools disappeared, e.g. both Ecto and iBlogger were bought out and are currently unavailable, so the market for client software is questionable.

When I decided to upgrade my personal site to Drupal 7 one of my goals was to be able to post content using one of the various iOS clients available. Unfortunately my attempts at posting with Drupad failed, so I'm back to needing BlogAPI again.

Which brings me to the point of this post.

I've started development of the BlogAPI Improved module again, which I've renamed to the more appropriate BlogAPI Alternative as it more clearly speaks to my goals for it, and the first beta for Drupal 7 has been released. My sole aim for this project is to provide a temporary solution while the official project is finished; once there's a working version of the main BlogAPI project, with a working upgrade path, I'll be more than happy to retire BogAPI Alternative.

"Why didn't you just join the official BlogAPI project?" you may ask. Simply put, I don't have a lot of time to put into maintaining it, so slapping putty & duck-tape onto an existing module will take less of my time than learning the Services API and trawling my way through a new codebase; further, it means it'll take less time for me and other people to be able to start writing blog posts offline. Also, it provides some temporary relief from the official module's maintainer(s) so their issue queue isn't filled with people bitching that nothing has been released yet. Finally, it keeps a distinction between a project that has already been sponsored by several companies, versus my project which has not.

I'll see you in the issue queue!


Subscribe to Front page feed