Time Out Free: An App to Enforce Your Stretch Breaks

It’s hard to get up and stretch on a regular basis, especially when your computer allows you to keep working!

I will spend all day on my ass. That can’t be good. I have been dreaming about the perfect app that would force me to get up by blocking all access to what I was doing.

I found the app I’ve been looking for: it’s called Time Out Free.

Time Out Screenshot Time Out Free is a timer that kicks in every so often (you set the rules) and blocks your entire screen. You can set short breaks and long breaks, and you can override the breaks if you want to. Time Out Free makes it easy for me to remember to stand up, stretch my legs and move. It encourages me to stay hydrated and to fill up my empty water glasses.

It’s a developer’s best friend (and worst nagging enemy!).

It can be frustrating, but I know that it’s good for me, so I removed the option to skip breaks. The three options are:

  1. Take a break
  2. Delay the break by 1 minute
  3. Delay the break by 2 minutes

After three delays, I get annoyed and stretch. The app works!

Suggestion for improvement: move to the menu bar.

Given that it’s a free app, it’s already amazing. I believe an improvement would be to have the app in the menu bar and remove it from the dock. That way, it’s not taking up space in the app switcher. To get around this for now, I’m using Dock Dodger, which works well…except that the preferences are not easily accessible.

Create a Custom Error Page for "Error establishing a database connection"

Error establishing a database connection

Here’s how to make a custom database error page for WordPress.

If your site’s all set up and you see “Error establishing a database connection,” that’s an immediate “oh crap” situation.

Hostgator.com, the company that hosts this website, has had some issues recently, and I’ve seen that screen a little too often.

If you want to define a custom “Error establishing a database connection” screen, add a file to your /wp-content/ folder named db-error.php. That will be loaded instead of that stupid message. Check out SEODenver.com’s db-error.php.

A Good Idea for SEO

If you want to prevent search engines from indexing your site while it’s down, add <meta name="robots" content="noindex, nofollow" /> to your page’s `<head>`. You sure don’t want Google caching your error! Continue reading “Create a Custom Error Page for "Error establishing a database connection"”

Generate a Link to Activate a Plugin in WordPress

Here’s another specialized plugin development tip!

If you want to create a link to activate a plugin, you need to know the path of the plugin file. Let’s use Akismet for this example.

$path = 'akismet/akismet.php';
$link = wp_nonce_url(admin_url('plugins.php?action=activate&plugin='.$path), 'activate-plugin_'.$path);

The `$link` URL will be something like http://yoursite.com/wp-admin/plugins.php?action=activate&plugin=akismet%2Fakismet.php&_wpnonce=f97dabdf9

How to Hard-Code a UA String for the Google Analytics for WordPress Plugin

If you want to define a Google Analytics “UA String” while using Yoast Google Analytics plugin for WordPress.

Add the following to your theme’s `functions.php` file:

add_filter( 'option_Yoast_Google_Analytics', 'custom_ua_string_filter');

function custom_ua_string_filter($options = array()) {
	$options['uastring'] = 'UA-########-#';
	$options['manual_uastring'] = true;
	return $options;

For users of WordPress Multisite, this will allow you to pre-configure new blogs with the same UA string.

Enable Shortcodes for Gravity Forms Field Descriptions

To enable shortcodes inside your Gravity Forms form description, field labels and descriptions, you need to add the following code to your theme’s functions.php file:

add_filter('gform_pre_render', 'walker_do_shortcode_gform_description', 10, 2);

function do_shortcode_gform_description(&$item, $key) {
    $item = do_shortcode($item);

function walker_do_shortcode_gform_description($form, $ajax) {

    $form['description'] = do_shortcode($form['description']);
    array_walk_recursive($form['fields'], 'do_shortcode_gform_description');

    return $form;

Merge Settings Into an Array in WordPress

Arrays Merging

I found people are coming to this site (to an unrelated article) looking for a way to merge settings into an array.

You’re looking for `wp_parse_args()`

The main function for WordPress to do this is `wp_parse_args()`. You likely want this function.

Learn more about `wp_parse_args()`

Also consider `shortcode_atts()`

This is used for parsing shortcode options. It only supports defined arguments.

Learn more about `shortcode_atts()`

Mitt Romney's Compressed Images

Mitt, don’t skimp on image optimization

I just visited Mitt Romney’s website for the first time and noticed right away that his site looked cheap because his button images had been so compressed for load time.


For comparison, here are some similar boxes on BarackObama.com


Look for yourself

I don’t think the affect of the bad quality comes across in these pictures. I encourage you to compare and contrast.

Simple Way to Get Plugin Status in WordPress

Active plugin volcano.

I have previously written on how to determine if a widget is active. This is helpful for widgets, but not for plugins.

WordPress has a couple of different functions that help you determine plugin status. They are both located in wp-includes/plugin.php

  • `validate_plugin()` spits out an error if the plugin file does not  exist or has an invalid header. This lets you know that the file is there.
  • `is_plugin_inactive()` lets you know if the plugin is not active (using the `is_plugin_active()` function)

A function to get plugin status

Using these two functions, I put together a one-size-fits-all function `get_plugin_status()`. Continue reading “Simple Way to Get Plugin Status in WordPress”

A WordPress Developer's Tips for Using Panic Coda

Panic CodaI use Panic Coda for coding. I like its Mac-style interface and it “fits” me well. There are some items that are frustrating, including a lack of auto-complete for functions you’ve already used in your code. Here are three tips to improve your coding experience. Continue reading “A WordPress Developer's Tips for Using Panic Coda”

Introducing IDX+, WordPress Real Estate & IDX Done Right

I’m happy to release IDX+, the best WordPress IDX solution.

Enhance dsIDXpressIDX+ is a project I’ve been working on for months. It was born came out of necessity: a client told me “there is no perfect solution for WordPress real estate websites.” After looking into it, I realized he was right.

IDX+ is the solution to your real estate website’s problems. Continue reading “Introducing IDX+, WordPress Real Estate & IDX Done Right”

Selling BoulderSEO.com

A great domain goes up for sale on GoDaddy.

BoulderSEO.comI have put the BoulderSEO.com domain up for auction: with the upcoming release of the top-secret WordPress real estate plugin, I have chosen to sell this prime property.

The BoulderSEO.com auction will be ending in 18 hours, so if you’re into Colorado, Denver, Loveland, or Boulder SEO (you get the idea!), check out this auction.

You will instantly rank well with this great domain.

Currently priced at only $660 – it’s a great deal! With literally no work done on the site since April, 2009, I still get 1-2 leads/month from this site. This domain will pay for itself in a month.

Go to the auction.

WordPress Real Estate Plugin: Stay Tuned…

You may have noticed this blog has gone un-updated. That’s because I’ve been working on an awesome new plugin.

WordPress + Real Estate + User Data + SEO

In the past, I’ve written posts about how to optimize your WordPress real estate website for SEO and I’ve created a Trulia plugin for WordPress.

This WordPress real estate plugin changes the game of what you can do with your WordPress website — and for how much money. No longer do you need to pay tens of thousands of dollars for an indexed IDX solution.

Next week I will release a beta version, so stay tuned for the formal announcement.

Easy Content Deployment for WordPress: RAMP

RAMP allows you to make all the changes you need in your staging environment, then selectively push these changes to your production site. You can set up a new section of your site, upload some images to fill out a nice carousel for it, and add a link to it on your home page. Once this content has been reviewed and approved, you can go to your RAMP page, select these content changes, and push them to your production site.

via Easy Content Deployment for WordPress: RAMP.

This would be really handy for larger WordPress sites.

Yourls Google Analytics Link Tagging

In my last post, I wrote about the benefits of using YOURLS, a self-hosted link-shortening service. I’m finding that YOURLS is great, but it’s not perfect. Some of the issues I have experience are part of what you get using most URL shortener services.

Some of the downsides of using link shorteners are:

  1. Google Analytics doesn’t always capture the original referrer (and I have no clue how they do the rest of the time!).
  2. When generating links using the bookmarklet (or in this case, also the Yourls installation), there’s no easy way to add campaign, source, medium, content, and term tags for Google Analytics to track.
  3. Yourls doesn’t allow query strings on URLs by default, making overriding existing campaign tags difficult/impossible. For example: `http://katz.si/t?utm_source=2300`

I’m not the only one who wanted these things, so I’ve created a plugin that adds Google Analytics tracking to Yourls. It’s very cool.

Continue reading “Yourls Google Analytics Link Tagging”

YOURLS URL Shortener

YOURLS LogoI was having trouble finding the right URL shortening service. My requests for shortening were not too picky. I wanted two simple features:

  • Good statistics that are visible only to administrators
  • Edit the long URLs after generating shortened links

…but not one service has both features:

  • http://sn.im has editable URLs, a bookmarklet, but no stats. Oh, and they kept on deleting my links.
  • http://bit.ly has great stats, name recognition, but the links aren’t editable and the stats are public.
  • http://goo.gl is the fastest service (so they claim), they have good stats (maybe the best, since they include OS & browser information), but they don’t have editable links or private stats.

Other smaller offerings may have had both features, but they also seem unreliable. I wanted control of my links. Continue reading “YOURLS URL Shortener”

The Google +1 Sprite Animation

How the +1 Button Works

Google +1 Button The +1 Button uses an advanced sprite technique to simulate an animated `gif`. The animation occurs when hovering over search results with +1 enabled, and the shine moves across the button. (The image to the right is an animated `gif` I made…)

The +1 Button is not an animated `gif`, however. It’s a sprite image that moves a background image across the “window” of the button using Javascript. The code, if you care, goes something like this:


The sprite image Google uses for the +1 button is below:

Google +1 Sprite

Pretty neat, huh?

Yeah, the +1 Button animation is pretty neat…
…now turn it off!

Oh goodness gracious, the animation is annoying. After hovering over one search result, it’s obvious how awful the animation is and I want to claw my eyes out with a rusty nail. I wanted to find a way to disable the animation. Continue reading “The Google +1 Sprite Animation”

Trulia Plugin for WordPress

Easily add TruliaMaps to your website!
Add a Trulia maps widget showing homes in your area, without touching any HTML or code. This plugin allows you to configure tons of options; check it out today!

The Trulia real estate plugin includes options for:

  • Map size
  • Map, Satellite or Hybrid map type
  • Slideshow – automatically cycle through houses. Choose how quickly the slideshow displays, or to turn it off.
  • Map Background and Text colors

Easily add a real estate map to your page or post using “shortcodes”:

`[trulia city=”Bethesda” state=”MD”]`
will show a map for Bethesda, MD real estate.

`[trulia zip=90210 rotate=10 size=panorama]`

will show a wide map of the 90210 real estate for sale, and will rotate showing listings every 10 seconds.


[trulia title=”Boston Real Estate” align=right city=Boston state=MA background=”#cccccc” color=”#333333″ size=large rotate=10 logo_color=gry]  The following shortcode produces the map seen on the right:

`[trulia title=”Boston Real Estate” align=right city=Boston state=MA background=”#cccccc” color=”#333333″ size=large rotate=10]`

The plugin has shortcode support with the following setting options:

  • `size` – Choose between `large` (default), `small`, and `panoramic` map sizes.
  • `title` – Modify the text of the map heading.
  • `zip` – Standard ZIP code
  • `city` – Name of the city.
  • `state` – Two-letter state abbreviation.
  • `rotate` – How quickly, in seconds, do you want the listings to auto-rotate. Defaults to `0` (off).
  • `map_view` – Choose between Map (`map`), Satellite (`sat`), or Hybrid (`hyb`) views for the map images.
  • `align` – Align the map to the `left`, `right`, `center`, or `none`
    Note: uses WordPress CSS classes to achieve aligning; some themes may not support this.
  • `color` – HEX value for map heading text color (`#efefef`, for example)
  • `bg` – HEX value for map background color (`#cccc33`, for example)

Please leave support questions/issues and comments below!

This WordPress real estate plugin was made possible with the support of the Koitz Group, Bethesda, MD real estate experts.

Recent Projects & Lessons Learned

There’s been a lull here on the SEODenver.com website. That doesn’t mean I’ve been standing still. What have I been up to?

I’m going to tell you a bit about these projects and something I’ve learned from each of them. Continue reading “Recent Projects & Lessons Learned”