Protecting Your Image


Well, not so much your image as protecting yourself from images. Where do you get the images for your website?

If you just grab them from other sites, you could wind up with a nasty Cease and Desist letter with an hefty invoice attached.  When you get images, make sure you have a license to use them.

Here are some generally safe places to find images:

  1. Wikimedia Commons
  2. Free Stock Photos
  3. Kaboom Pics
  4. Open Clip Art
  5. UnSplash
  6. ISO Republic
  7. Stock Snap

Be sure to read the terms and conditions for each site carefully. If attribution is required, be sure to do so.

If you grab images from Flikr, understand that not all images carry the “use it for free, dude” license. Read the terms for each image.


Sweet Home (Page, that is)

web-search-greyWhat should be the on front page of your website?

If your focus is your blog, then make the blog the front page. If, however, you’re not posting regularly and frequently, go for a “static” front page. It doesn’t make much of a difference, SEO-wise, but when people visit your site and see an 6 month old post as the first thing on the home page, they will probably just bounce off — unless you have incredibly compelling content.

People get all wrapped up in Search Engine Optimization. How can I get to be #1 on Google? (Hint: You can’t.)  How do I “own” a keyword across the internet?

Focusing on SEO is the wrong place to start.  Good content is the basis of a good website. Focus on what it takes to attract an audience and use SEO to reinforce that.

Call The Grammar Cop

1 Comment

badgeIt’s a harsh and judgmental world out there.  When you’re making your presence known on the web, people have little to judge you by other than the quality of your writing.  Punctuation counts. Spelling counts. Using the right word (not just a correctly spelled one) counts.  Remember, the Grammar Cops are out there waiting to pounce.

Rules of posting:

  1. Spell check.
  2. Check your punctuation.
  3. Check that you used the right words.
  4. Look for missing words.
  5. It’s vs. its; they’re vs. there vs. their.  Pay attention to that.
  6. When in doubt, check a style guide like Strunk & White, the AP Style Guide, or the Chicago Manual of Style.

You will be judged.

Wordfence: Block Bad Logins

There are dozens of computers trying to login to this site over the course of a day. It’s not an important site, not a site that’s chock full of credit card information, and not a site that matters to anyone but me. (Yes, I put out my lower lip while typing that last one.) Nonetheless, the login attempts continue.

The attempts are coming from bots… computers that are infected with malware that puts them under the direction of various command and control servers. They scan, look for WordPress sites, and try to login. If they succeed, they let someone upstream know, and then push malware onto the system.

I have blogged about this before. I’m using WordFence as one of the defense layers for this system. It locks out anyone who tries to login with incorrect information. The login settings are:


lick to enlarge

Converting a Drupal site to WordPress


I recently converted this site from Drupal 7 to WordPress. Here’s how.

1. Move data from Drupal’s database into a WordPress database.

Liran Tal has posted a PHP script on Github that does the heavy lifting. Read the instructions carefully. I probably should have read them a couple more times.

wp-drupal-logos2. Validate the data conversion

Almost all of the content of the Drupal site was converted into the page type on the WordPress site. I used a bit of SQL to switch them to posts, then hand fixed the 5 or 6 that really should have been pages.

The SQL is

update wp_posts set post_type='post' where post_type='page';

3. Get the images and other media

This part involved several steps.

First, I copied all media files from “/sites/default/files” on the Drupal site into “/wp-content/uploads/” on the WordPress site.

Second, I ran a script to go through all posts and replace all occurrences of “/sites/default/files” with “/wp-content/uploads/”. Searchreplacedb2.php is handy script for search/replace tasks like this. When this was done, the posts displayed images, but the media library was empty, at least according to the media button on the WordPress dashboard.

Third, I used a WordPress plugin, Add To Server, to tell WordPress about all those files I dropped into the uploads folder. Here’s a handy “how to” on that.

Update 1:  I installed the Simple 301 Redirect plugin to handle any changes I missed and to deal with all the links that Google already had it its index.  I redirect “/sites/default/files/*” to “/wp-content/uploads/*” and added a few more redirections handle a few cases where I changed the names of posts and pages.

4. Housekeeping

I set the theme to TwentyFourteen just to get things going. I had to create the main navigation menu using the menu editor, set a home page and a blog page, and do the other usual stuff that comes with creating a WordPress site.

One of the frustrations is that Drupal’s editor (CKeditor) handles character sets differently that WordPress’ editor, TinyMCE. The symptom of this is that the page looks OK when viewing normally, but is truncated in when viewing.* Typically, there’s an invisible character that TinyMCE abhors. My short term solution is to flip the editor into HTML mode, copy, and paste it into a text editor. I then do a search on the first character that TinyMCE doesn’t like and replace it with a blank. Copy and paste back into TinyMCE, click Preview, and see if it fixes it. If not, find the next place and continue.

The long run solution is to make a list of all of the characters, some invsible, some not, and write a bit of SQL to convert each into its proper relacement.

Update 2: I hosed something in the database.  I’m not sure what. When I did the conversion again, I didn’t have this problem.  Moral:  Be prepared to do things two or there times until  you get it right.

5. Theming

I wanted a minimal theme that would get a responsive result with the least effort. I’ve been using underscores (_s) for a long time and wanted to use bootsrap for responsiveness. Luckily, Themekraft developed a started theme called _tk_master, that mashes together (in a very appropriate fashion) bootstrap and underscores.

6. To Do

So, about six hours after starting, I have a working website with a reasonably readable theme. There’s still a lot to do.

  • Build a visual gallery of developed sites.
  • Change the footer to three column footer.
  • Working with IrisB to develop a non-grayscale color pallette.

Call via VOIP and save your minutes

If you’re like me (and, really, who isn’t?), you push the limits of your mobile minutes every month. Wouldn’t it be nice to be able to get around that?  Google can be your friend.

If you use Google Voice, you can make and receive calls for free through your WiFi only devices (e.g., iPad, Kindle Fire) using the Google Hangout app. On an iPhone, calling from the Google Voice app makes a call through your carrier, using minutes, but making a call through the Hangout app uses VOIP, so it’s just data (and therefore, minute free).

If your computer has a microphone and speaker, you can make and receive calls directly from the computer when you have hangouts enabled.  Yeah, you can do multiple-party video calls in Hangouts, but sometimes all you need is POTS*.

*Plain Old Telephone Service

8 Simple Tips for WordPress SEO

Eight simple SEO tips:

(1) Use a good SEO Plugin like

(2) When dropping images onto a page, make sure you use alt and title tags and make them actually useful information.

(3) Post and page titles should contain the really relevant keywords.

(4) Use permalinks so the page title is reflected in the URL.

(5) If your page is organized in a hierarchy of ideas, use H2 for the first main idea, H3 for the details of that idea, etc.  Keywords are important here, too.

(6) Make your content relevant and try to keep pages/posts centered around just a couple of ideas

(7) Check your snippet and override if necessary. Use the Yoast plugin for this.

(8) Cross link the pages on your site and use the linked text to provide additional keywords. Never use “click here” as the link.