Local Production Environment Choices for WordPress: DesktopServer

Photo of Man at Computer


This product is essentially a WAMP / MAMP application that has been extended to include some additional WordPress oriented functionality.

In its free version the customizations that stood out to me are

  • its inclusion of Xdebug,
  • support for Domain Name Mapping,
  • auto-creation of Apache Virtual Hosts,
  • and its auto-install of WP.

I was surprised to note that they list PHP 5.5 as being included but no mention of PHP 7.

When one moves up to their premium product ($100) one receives

  • a trace utility for PHP debugging (which one?),
  • LAN sharing for mobile testing,
  • a few plugins (bypass login, airplane mode, enhanced Coda2 preview, Adobe Dreamweaver),
  • “blueprints for automated WordPress configurations”,
  • the ability to direct deploy to a live server,
  • and the ability to import (from BackupBuddy, Duplicator, BackWP Up, BackUp WordPress, InfiniteWP, ManageWP), export, and archive sites.

I didn’t spend a ton of time with it, as at the time I was looking for something that was virtualized – e.g., using Vagrant or Docker.

I’d want the premium version –  but $100 is quite pricey, imho, especially when much of the product consists of open source components.

Don’t get me wrong, I understand this has had some significant time and effort put into it, but I’ll blog about a few other solutions available that are free and open source and you’ll see how they can stand shoulder to shoulder with DesktopServer.

Dave Enjoys Gets An Upgrade.

I sometimes go AWOL from posting on Dave Enjoys, so I’m sure no one has been wondering why I haven’t posted in the last two days or so…but there is a real reason why – upgrades.

I got really tired of Bluehost having downtime, running slow, and so on. I hope they get their problems straightened out – but DigitalOcean is offering sweet deals on virtual private servers (VPS) at prices lower than Bluehost offers shared hosting. So, I’m in the slow process of moving sites over. I already moved FreeWargamer and have just now finished moving Dave Enjoys.

What does this mean for you? Well, nothing much on the front-end, but hopefully:

  • The site will load a lot faster, making browsing the site a more enjoyable experience.
  • The site will be more stable – rather than the frequent downtime I’ve been experiencing with Bluehost.

In addition, WordPress released the latest and greatest Jetpack plugin which means you can now used your WordPress.com authentication with Dave Enjoys. If that doesn’t make sense to you – that is okay – it won’t affect your utilization of the site.

Finally, this does mean that there will probably be some hiccups along the way…so if you see any technical glitches with this or any of my other sites please let me know!

Another Reason to Love WordPress.

Can I just say that I really love WordPress? Yes, I even have a t-shirt. These emails are another reason I love WordPress. Each time you “Like” your own article you receive an email like this – and no matter how many times I “like” my articles and receive this email, I still get a kick out of it.

WordPress acts humorously.
WordPress acts humorously.

An Introduction to Blogging.


[I invited my brother, Paul, to begin blogging on Dave Enjoys. He is taking me up on this offer – so I figured I’d send him an email with some basic information. This information could be useful to others – whether that be someone else who starts blogging with me or someone who decides to start up their own blog. It may also have some tips and tricks that folks who have established blogs aren’t aware of…So instead of sending an email, I’m writing this blog post. The content will be the same – it will just be public so that others can utilize it as they see fit.]

The Lesson Begins

Dear Paul,

WordPress Logo
The logo of the blogging software WordPress. WordPress Logo (Photo credit: Wikipedia)

I’m really excited you are going to be blogging on Dave Enjoys. I changed your account to an administrator account. Of course, don’t change any of the administrative settings – but feel free to explore to see how things are configured. If you want, I have another WordPress instance that is just for testing you can play around with – just let me know and I’ll give you the username and password and url for it.

Here is a bunch of information, of varying importance, which you can use to improve your blogging experience. Let me know if you have any questions.


The first thing you should do is setup a Gravatar. This is a universal avatar – it provides a consistent profile picture for your posts on this site and next to comments you make elsewhere around the web. It also lets you setup a mini-profile.


To login you’ll go to http://www.nameofsite.com/wp-admin/ and enter the username and password you created.

Add a Post

Once you are logged in look for Posts on the left-hand navigation bar. If you rest your mouse over it a drop-down menu will pop out and you can select Add New. The Add New Post page consists of a space for the title of your post. This should be something eye-catching and descriptive, but not too wordy. I’m not very good at this – and don’t spend a lot of time figuring out what will really catch folks’ eye, but a good title can make the difference between whether a post has ten visits or eighty thousand (aka, whether it goes viral).[1] So, don’t follow my example and write good, catchy post titles.

The post title is used to create a “permalink” – a permanent link to the post on the blog. For example, the permalink for this post is: http://daveenjoys.com/2013/03/18/an-introduction-to-blogging/. You can edit these links, but usually whatever WordPress comes up with is fine.

After this you have the main body of your post. This is pretty easy – the interface is WYSIWYG (What You See Is What You Get). I’ll let you figure out this part for yourself other than to note that if you need to manually tweak the HTML for the page you want to click on the Text tab on the top-right, and then back to Visual when you want to use the WYSIWYG interface. Also, you can use the Add Media button to add pictures, audio, and video to a post and the small icon immediately to the right of that allows you to add a custom form to a post, but you probably won’t be using that.

Zemanta It!

I run a plugin on WordPress called Zemanta. This plugin “reads” what you are righting and then provides helpful content you can include in your post:

  • On the right-hand side it provides pictures that may be related to your post. Usually they are decently relevant, but not always. I find the search functionality to be fairly useless. You also want to see what sort of license the picture/image has – they need to be public domain, fair-use, CC AttributionOnly, or etc. They should not be CC NonCommercial, etc.
    • When inserting an image don’t put the cursor at the beginning of the post. Instead move it down a paragraph or two and then insert it. If you put it at the beginning that is what appears in email subscriptions and RSS feeds, oftentimes as a jumble of HTML code – not very appealing. You can play around with positioning the image on the left/right as you wish.
  • Below the images you’ll see related articles. You can click on these to add an image and a link to multiple articles at the end of your post. You can add up to ten articles to a post.
    • Look at how old a post is, usually relevant posts should be from within the last few weeks to months time span.
    • By linking to relevant articles you oftentimes get a link back – its a way of mutually promoting posts. Look for sites that aren’t “the big ones” – as they likely have trackbacks turned off, but smaller sites similar to this one will likely have them on.
  • Underneath the post body you’ll see in-text links. This provides you with a number of links to topics Zemanta noticed are in your post – for example, in this post Zemanta has picked up on my utilization of the words, “WordPress”, “WYSIWYG”, “Zemanta”, “blogging”, and so on.
    • Zemanta only makes into a link the first usage of the words you choose on the post. Any further instances will just be plain text.
    • If you rest your mouse over the word next to in-text links you’ll see a drop-down of options for where you want to send folks who click on the link – for example, to a Wikipedia page or the official product page, etc.
    • Don’t add links just b/c Zemanta picks them out. Sometimes you really don’t need to link to a page on the topic. For example, if you are talking about “TV” linking to a Wikipedia article on “TV” is not likely to be highly interesting to your readers.
    • At the bottom right you’ll notice tags, we’ll talk more about tags in a bit, but basically Zemanta suggests tags that might be appropriate for this post.

Categorize Me!

Your next task is to add the post to one or more categories. For example, this post will be added to the “learning”, “productivity”, “technology”, “web”, and “work” categories. We’ll also remove “uncategorized” from the post. In general, each post should fit into a category.

What About Tags?

So a category gives us a big picture of what an article is about – but what if we talk about a lot of other topics tangentially within a post? Then tags come in handy. Tags generally duplicate categories but then expand beyond them. For example, applicable tags to this post might be “Zemanta”, “WordPress”, “Creative Commons”, “WYSIWYG”, and so on. We don’t want to have billions of categories, but having numerous tags is fine.

Zemanta provides you with recommended tags, but you can also click on “Choose from most used tags” to get ideas of what tags to use (this pulls the most-used tags on this site, not from everywhere). You can also manually enter your own tags.

Publicize It?

You’ll notice on the right hand side above “Publish” it says “Publicize.” You don’t need to do anything here – just note that it automatically posts to the Dave Enjoys Facebook page and to the Dave Enjoys Twitter page whenever a new post is published.

Post It!

Now you are ready to make your post visible to the entire world, so click Publish. Once you’ve published a link will appear at the top of the page that will allow you to view your post. Make sure everything looks correct, if anything is messed up, fix it and then update the post.

Promote It.

The creation of a post isn’t the end of the job. How will anyone hear about this post? Yes, its been posted to the Facebook and Twitter pages for Dave Enjoys and an email has been dispatched to subscribers of Dave Enjoys, and further individuals will read it when it appears in their RSS feeds – but there is more that can be done to promote the post:

  • Share the post on your own Facebook wall, this way your friends will see the post, not just Dave Enjoys fans.
  • Retweet the post on your personal Twitter account for the same reason.
  • If the post is relevant, post it to StumbleUpon. This is a simple thumbs up using their toolbar.
  • Note at the bottom of the post the options to share to Digg and Reddit – share as appropriate. You can also publicize to other services such as Slashdot if you want.

Care for It.

The final step in publishing a blog post is in continuing to care for it. Folks will read your post and comment on it (you hope). If they do you want to honor their investment of time by responding to each comment personally. If the comments are crazy, spammy, etc. then no need – but each thoughtful comment should receive a thoughtful reply.

The End

Well, that pretty much sums it up. Hopefully this will help you get started. Let me know if you have any questions!


  1. [1]Believe it or not, I’ve had posts blow up a few times in the past, usually entirely accidentally.

The Death of Google Reader, Growth Opportunity for RSS?

I know, I know, I’m a little late to this conversation. The news about Google Reader‘s imminent demise has been circling the web and lighting discussions on fire for a few days now, but I figured I’d throw in a few brief comments anyways.

Image representing Google Reader
Image via CrunchBase

First off, I’ve been using Google Reader for years and my first response was disappointment – though perhaps not as much as I’d expect of myself. Why? Because as many have so astutely pointed out, this may be the end of Google Reader, but Google Reader was long ago abandoned by Google. There hasn’t been innovation on the Google Reader front for some time now.

Secondly, a few weeks ago I began using Feedly – somewhat out of the blue. I’m not sure why, I just did and quickly moved away from Google Reader and used Feedly as my primary RSS reader. This happened before the news about Reader’s execution, so I had something to replace the essential Google Reader already in place.

Now, a few days later, after my initial grief – and yes, I think grief is the right word – over the passing of yet another venerable web product, I’m beginning to feel excited. The market has suddenly opened up and innovation can occur again. Unlike many who think RSS is dead, I think RSS is waiting to mature. It has been a baby for years, used only by technophiles, but it is time for it to permeate technology users generally.

I don’t care how much folks claim that new discovery engines can show us the news we want before we even know we want it – they can’t. And I don’t care how much social networking like Facebook and Twitter provide news – they can’t provide the news I’m looking for, in the quantity and quality I desire – its too easy to miss stories, and I have far too many friends on Facebook whose interests are diverse from mine…causing stories I don’t care about to rise to the surface. Nothing can replace RSS at this juncture, and I don’t expect anything to in the near future either.

The major competitors for this space, that I know of, are Feedly, NewsBlur, and The Old Reader. Of these, I think Feedly has the most potential, with NewsBlur in a close second. Any service which bases itself on the past (The Old Reader) may have some trouble gaining momentum – though if it were to change its name, I can see it moving forward as well. Really, the next days and weeks will make or break things here. I don’t know how many folks Feedly has working for them, but I think I read somewhere NewsBlur is a one-man show and I’d guess The Old Reader is similar?

In any case, lets talk about the features I’m hoping for in a blog reader – I mean beyond the standard, “Hey everybody has that” features:

  • Story Clouding – I’m thinking something similar to TechMeme. Lets say I subscribe to TechCrunch, Mashable, VentureBeat, and GigaOm and a big story comes out about Samsung’s Galaxy S4, rather than having me page through every story it’d be nice to see one story highlighted and then the other stories appearing below it. I can view them all if I want, but I can also choose a “mark all as read” option that will make all stories under the header story marked as read. This reduces the amount of time I spend on redundant stories. Now, honestly, if its about the S4 I’m probably going to at least browse all of the articles, but if it is about the latest gaming device, I may not even read the top article and getting rid of all articles on that topic with one click would be huge.
  • Related Stories – It’d also be cool to see related stories automatically subsumed under heading stories like above. For example, if I’m reading TechCrunch’s coverage of Microsoft’s latest OS release and I don’t subscribe to ReadWrite or BetaNews (I do, to both) and they have an article on the subject – it could appear as a subsumed article under my main article as well. This adds an element of discovery to the feed reading process.
  • WordPress Reblog – Okay, okay, I know I’m being selfish here, but I’d also really like an integration with WordPress (self-hosted) which would allow me to “reblog” content in my reader or alternatively to create a list of “must-read” articles for a specific day I mark in some way that is then auto-posted to my blog. This would be a great help in expediting the blogging process.

Finally, let me make a shout out to Feedly about one minor annoyance that is a major problem right now – you can’t subscribe to Feedly’s blog using Feedly! Ack, what the heck is up with that?


Web-Based Invoicing Options.

Image representing FreshBooks
Image via CrunchBase

Freelancing and self-employment seem to be growing in popularity and with them come an increasing need for invoicing software. At one juncture I was researching my options and compiled a list – figured I’d share it for anyone else out there looking into invoicing options as well.

I don’t do a ton of invoicing – but I do use Freshbooks. I’m currently on their free plan, which has been adequate. I wish they had more tiers or lower prices or something, as I would like to move up but can’t really justify the price yet. I’ve been using Freshbooks for a number of years now and it is reliable and intuitive.

  • Freshbooks – This is the service I use. I probably stay with them b/c (a) they have a decent feature set, (b) all my data is in their system, (c) I haven’t needed to purchase a premium plan.
  • invoicedude – Offers hosted and self-hosted options. It is free for hosted. This was one of the ones that was more attractive to me.
  • Cashboard – Has a free plan and then a premium plan ($15/mo.).
  • Simple Invoices – A free, open source, self-hosted solution.
  • CurdBee – This was another interesting option. It has a generous free option, then jumps up to $5/mo. for pro with even more features.
  • Invoiceable – Entirely free, based out of somewhere in the European Union.
  • Blinksale – $15/mo.
  • Invoice RA – Starts at $20/mo.
  • Zoho Invoice – Zoho has a whole suite of productivity web apps. Has a free plan and then moves to $15/mo.
  • WP-Invoice – Another interesting option, self-hosted, uses WordPress, free.

WordPress Plugins – A New Summation.


WordPress (Photo credit: Adriano Gasparri)

I like to categorize and organize. So what did I do? I reviewed the first one hundred pages of plugins on WordPress’ Plugin Directory ordered by most popular. From the first number of pages I included essentially every plugin (categorized), but as I moved through additional pages, I included only those which seemed to be interesting, unique, or well-known in some way. Here is the result. I hope you find it useful as you determine what plugins you will install in your WordPress instance.

Those plugins which I use regularly I’ve bolded. Those which I have used regularly in the past I’ve italicized.




Social Media Sharing

  • Social Media Widget
  • Shareaholic[2]
  • Facebook
  • WP to Twitter[3]
  • Really Simple Facebook Twitter Share Buttons
  • AddThis[4]
  • NextScripts
  • Add Link to Facebook
  • WP Socializer
  • ShareThis[5]
  • Facebook  Like Button Plugin
  • Facebook Comments
  • Sociable
  • Social
  • Floating Social Media Icon
  • WP-Email


  • Jetpack by WordPress.com


  • WordPress Importer


  • NextGen Gallery (see also NextGEN Gallery Optimizer)
  • Lightbox Plus
  • WP Photo Album Plus
  • Gallery
  • Lightbox Gallery
  • jQuery Colorbox
  • Grand FIAGallery
  • Image Widget
  • WOW Slider
  • Easing Slider
  • Slideshow Gallery


  • Viper’s Video Quicktags
  • Smart YouTube Pro
  • Blubrry PowerPress Podcasting Plugin
  • JW Player for WordPress
  • Embed Plus
  • MediaElement.js
  • WordPress Video Plugin
  • Video Embed & Thumbnail Generator
  • S0undCloud Shortcode


  • Broken Link Checker
  • Advanced Custom Fields
  • All in One Favicon
  • WP Maintenance Mode
  • Regenerate Thumbnails
  • AdMinimize
  • Enable Media Replace
  • WP-DBManager
  • Postie
  • ManageWP Worker
  • WP-Optimize
  • Duplicator
  • Thank Me Later
  • CloudFlare
  • Duplicate Posts
  • DB Toolkit
  • Admin Menu Editor
  • OptionTree
  • WP Robots Txt
  • Use Google Libraries
  • P3 (Plugin Performance Profiler)
  • Add From Server
  • InfiniteWP Client
  • Front-end Editor
  • Plugin Organizer
  • Kontrol Developer Kit
  • Configure SMTP
  • One Click Close Comments
  • Custom Post Type UI
  • Editorial Calendar
  • Peter’s Login Redirect
  • WordPress MU Domain Mapping
  • SB Welcome Email Editor
  • Peter’s Collaboration E-mails
  • OpenHook
  • Bulk Delete
  • underConstruction
  • Co-Authors Plus
  • Simple URLs
  • One-Click Child Theme
  • wp-FileManager
  • After the Deadline
  • Peter’s Post Notes
  • User Switching
  • Advanced Excerpt
  • Ultimate Coming Soon Page
  • Redirection
  • WP Mail SMTP


  • Google Analytics for WordPress[6]
  • Google Analytics
  • Google Analyticator
  • WP-SlimStat
  • WP-PostViews


  • Ultimate TinyMCE
  • TinyMCE Advanced
  • Black Studio TinyMCE Widget
  • CKEditor for WordPress


Add-On Functionality

  • BuddyPress
  • bbPress
  • WP-Ecommerce
  • WooCommerce
  • The Events Calendar
  • Ready! eCommerce Shopping Cart
  • Events Manager
  • Polldaddy Polls & Ratings
  • WP-Polls
  • All-in-One Event Calendar
  • eShop
  • Connections
  • Link Library
  • Another WordPress Classifieds Plugin
  • Ajax Event Calendar
  • Calendar
  • JigoShop
  • Mingle Forum
  • WordPress Poll
  • easyReservations
  • GigPress
  • WP-CRM
  • CataBlog
  • WP-Invoice
  • Participants Database
  • Q and A
  • Business Directory Plugin
  • Booking Calendar
  • wpsc Support Tickets
  • ClickDesk Live Support
  • Quick Chat
  • Event Organiser
  • Seriously Simple Podcasting
  • RSVP Plugin
  • ComicEASEL
  • Webcomic
  • Yet Another Photoblog
  • WordPress Simple PayPal Shopping Cart
  • WP Symposium
  • Job Manager
  • WP-Property
  • Gravity Forms Directory


  • Wordfence Security
  • Bulletproof Security
  • Better WP Security
  • AntiVirus
  • Timthumb Vulnerability Scanner
  • Login LockDown
  • WordPress HTTPS
  • No Right Click Images Plugin

Customize Look & Feel

  • WP-PageNavi
  • WordPress Related Posts
  • Display Widgets
  • Yet Another Related Posts Plugin
  • List Category Posts
  • Widget Logic
  • WP Google Fonts
  • Options Framework
  • Breadcrumb NavXT
  • WP-PostRatings
  • GD Star Rating
  • Custom Meta Widget
  • Theme My Login
  • Special Recent Posts
  • Crayon Syntax Highlighter
  • MaxButtons
  • Theme-Check
  • Infinite-Scroll
  • WP No Category Base
  • Post Layout
  • Background Manager
  • Gantry Template Framework
  • Dynamic “To Top” Plugin
  • WordPress Post Tabs
  • Collapse-O-Matic
  • WP-Paginate


  • s2Member Framework
  • User Role Editor
  • Role Scoper
  • Members
  • Advanced Access Manager
  • Simple Facebook Connect
  • Google Authenticator
  • Social Login
  • WordPress Social Login
  • Social Login & Social Sharing by JanRain
  • User Access Manager
  • WP-Members


  • Disqus Comment System
  • CommentLuv[7]
  • Disable Comments
  • WP Ajax Edit Comments
  • IntenseDebate Comments
  • LiveFyre Realtime Comments


  • AdRotate
  • QuickAdsense
  • WP125
  • Adsense Insert
  • AdSense Manager
  • Affiliates
  • Ad Injection
  • Easy Adsense
  • Adsense Extreme
  • Ad Squares Widget
  • Ad Codes Widget
  • Ads Manager WP/BB
  • Amazon Product in a Post Plugin
  • Amazon Link
  • Simple Ads Manager
  • Google AdSense Plugin
  • Easy Ads
  • Paid Memberships Pro
  • AdSense Now!
  • Easy Digital Downloads
  • AdSense
  • PayPal Donations
  • WP Auto Affiliate Links
  • Adminer
  • WP-Insert


  • UpDraft Plus Backup
  • Online Backup for WordPress
  • BackWPup
  • WordPress Backup to Dropbox
  • BackUpWordPress
  • WP-DB-Backup
  • Simple Backup

Page Management

  • CMS Tree Page View
  • Post Types Order
  • Quick Page/Post Redirect Plugin
  • Exclude Pages
  • Related Posts
  • WordPress Popular Posts
  • Google Doc Embedder
  • Advanced Page Manager
  • Simple Page Ordering
  • My Page Order
  • 404-to-start


  • UppSite
  • WordPress Mobile Pack


  • Wysija Newsletters
  • Constant Contact for WordPress
  • Subscribe2[8]
  • MailChimp List Subscribe Form
  • Newsletter
  • Newsletter Sign-Up


  • WordPress Download Monitor
  • WordPress Download Manager
  • WP-Filebase Download Manager


  • MapPress Easy Google Maps
  • Comprehensive Google Map Plugin
  • WP Google Maps
  • Leaflet Maps Marker
  • Print Friendly and PDF Button
  • WP-Print
  • Pretty Link Lite
  • Meteor Slides
  • WPtouch
  • Page Links To
  • Social Slider
  • FeedWordPress
  • Types
  • Relevanssi
  • Advanced Code Editor
  • White Label CMS
  • Google Calendar Events
  • Groups
  • Portfolio
  • Liveblog
  • Strictly Auto Tags
  • Magic Fields 2
  • More Fields
  • Custom Field Template


  • qTranslate
  • Transposh WordPress Translation


  • Exec-PHP
  • PHP Code Widget
  • Shortcode Exec PHP
  • Allow PHP in Posts and Pages

Post Enrichment


  • CubePoints
  • Achievements for WordPress


  • Tweetily
  • Tweetable
  • Twitter Tools
  • Xhanch – My Twitter
  • Twitter Widget Pro

 Available Elsewhere

  • CiviCRM
  • Simple:Press
  1. [1]I used this before Jetpack came along and offered bundled Contact Forms.
  2. [2]I used this before Jetpack provided social sharing.
  3. [3]I used this before Jetpack provided integrating sharing to Facebook and Twitter.
  4. [4]I had used this in the past, but had replaced it with ShareThis, etc.
  5. [5]I used this before Jetpack provided integrated sharing.
  6. [6]I still use this on occasion, but WordPress stats included in Jetpack are usually sufficient for me.
  7. [7]I’m not sure if I will continue using this plugin.
  8. [8]This has been replaced by Jetpack’s functionality.

I Love the Jetpack Development Team!

WordPress (Photo credit: Adriano Gasparri)

Yes, I know this is a symptom of my uber-geekness, but it is true – I LOVE the team of developers r
responsible for WordPress‘ Jetpack plugin. This plugin brings features that are already available to WordPress.com users to us independents and indicate a true love for open source on the part of the WordPress team – as they could keep these bonus features locked in their walled garden of wordpress.com, thus encouraging folks to use wordpress.com instead of hosting their own instance – but they aren’t!

Jetpack includes a number of exciting features including: Stats (uses the wordpress.com backend to provide statistics on site usage), Subscriptions (allows folks to subscribe to your blog via email), sharing (allows folks to easily share your articles with others), After the Deadline (to check for spelling and grammar), and a bunch of other cool stuff…but the feature they just added that has thrown me into a tizzy is comments.

“Wait, I thought WordPress already supported comments?” It did and it does! But this new functionality allows users to authenticate themselves to make comments using their existing accounts – e.g. Twitter, Facebook, and WordPress.com. This in turn makes it easier for folks to comment on posts which means a likely increase in quality conversations across the blogosphere!

WordPress Adsense Plugins – An Overview.

I want to optimize my income from Google Adsense on my various WordPress based sites. How can I accomplish this most effectively? By using a WordPress plugin for Adsense of course! So, I went to WordPress’ plugin section and compiled all the most popular Adsense plugins.[1] I’ve included the list below as well as my commentary on the various plugins.

Plugin: Version: Updated: Rating: Downloads:
WPCustomAds 0.8.8 2011-7-5 5 Star * 1 644
Ad Inserter 1.1.2 2011-6-5 4.5 Star * 12 11,400
Adsense Insert 1.4 2011-11-23 4 Star * 14 9,197
Ad Squares Widget[2] 110709 2011-7-9 5 Star * 14 62,927
Adsense Made Easy 0.5.1 2011-9-20 5 Star * 4 10,562
Quick Adsense 1.9 2011-6-20 4 Star * 69 201,804
Ad Injection 2011-12-4 4 Star * 34 95,077
Easy Adsense Lite 5.07 2011-11-3 4 Star * 6 8,126
Adsense Manager 4.02 2011-9-23 3 Star * 96 334,944
Best Google Adsense 1.1.4 2011-11-22 3.5 Star * 13 29,333
Awesome Ads 1.0.4 2011-5-27 4 Star * 14 17,448
Awesome Google Adsense 1.0.4 2011-11-22 4 Star * 13 21,749
Simple Ads Manager 1.0.35 2011-7-18 3.5 Star * 24 25,610
Google Adsense Plugin 0.53 2011-11-23 5 Star * 2 621
Adsense Now! Lite 3.04 2011-11-12 4 Star * 5 3,160
Ads Manager WP/BB 1.5.2 2011-8-17 5 Star * 2 2,582
WP Ads Auto Post 1.2 2011-2-18 5 Star * 1 3,979
WP Random Ads 1.0 2011-9-10 5 Star * 3 740

As you can see there are a large number of options – and this is just a partial list. Lets take a closer look at a few of the best candidates:

  • Quick Adsense – This plugin has over 200,000 downloads and a 4 Star average review rating from sixty-nine reviews. It offers straightforward customization of where ads will be placed on a page but also requires you to generate individual code bits from Adsense for each slot.
  • Adsense Manager – While downloaded over 330,000 times it only has an average review of 3 Stars from ninety-six reviews. It doesn’t appear to be under ongoing development – although the author did release an update to enable the plugin to work with the latest version of WordPress.
  • Ad Injection – The third most frequently downloaded adsense plugin with 95,000+ downloads and holding 4 Stars with thirty-four reviews. Appears powerful with a lot of customization options, but also a fairly intuitive user interface.
    • This is the plugin that is my most preferred at the moment.
  1. [1]I think. If I missed one, let me know.
  2. [2]See also Ad Codes widget.

Cloudflare…I think I’m in love!

Image representing CloudFlare
Image via CrunchBase

Here is the problem. Folks like me run websites like this one and use shared hosts like Bluehost. As the sites grow and our traffic increases the site speed slows down. This leaves folks like me in a difficult spot. How do we get our sites to run faster? We could move to a Virtual Private Server (VPS). These are generally affordable but they also are much more manual than Bluehost. I can get a WordPress up and running in five minutes using Bluehost – whereas with a VPS I’m left working with the command-line – not only installing my own WordPress from scratch but also configuring Apache, MySQL, and PHP. A dedicated server offers the same problems at a higher price.

Then there is the option of going with a cloud-based service. These services are pretty attractive – the ability to scale is magnificent, but the price is somewhere between a VPS and a dedicated server – and usually costly enough that any ad revenues one receives will be consumed several times over by the hosting costs. Again, there is also the simplicity issue. I haven’t found a cloud service that can compare to Bluehost for ease.

For some people this may not be as big of a concern. Some folks love delving into the code. I do too, but I also love creating and curating contents – and usually my focus is on the latter…and thus why I love Bluehosts streamlined and wizard-like interface.

Bluehost, unlike most other shared hosts, does offer a higher performance hosting option – still shared. I purchased this, but still was seeing my pages clock in (according to Pingdom) at between 10-13 seconds in loading time. This simply isn’t acceptable if you want to keep folks attention.

This is where CloudFlare comes into the picture. CloudFlare isn’t a replacement for your current hosting plan, but a supplement to it…and its not just for little hobbyists like myself – it can be used by smbs and the enterprise. The best part is that for the hobbyist the service is free, and for smb’s it is only $20/mo.!

CloudFlare offers all sorts of features – focusing around performance and security. We’ll focus mainly on the performance aspect. Lets talk for a moment about how the “big guys” make their sites load so fast:

  • Raw Processing Power – The big guys have lots of processing power to run their sites. A hobbyist on a shared host is one of hundreds of sites on a single physical server. The big guys use multiple physical servers with load balancing to provide massive amounts of computational power that can handle large loads of traffic.
  • Code Optimization – The big guys have the budgets and the time to commit coders who pour over the code again and again looking for ways to optimize the code, removing extraneous bulk and making the end-product that is delivered to the user as small and quick as possible.
  • Content Distribution Network (CDN) – The big guys also use servers in multiple locations to provide the same content. In this manner they are able to direct visitors to the servers that are geographically closest to them, reducing the amount of time it takes for data to travel from the server to the end user’s computer.

Now, CloudFlare can’t really help us with the code optimization – but they can supplement our processing power and provide a content distribution network (CDN) and this is exactly what they do. They take all of our static material (material not drawn from a database) and host it on their worldwide network of servers, providing local access to viewers and massive amounts of processing power.
Update: This morning I was pleasantly surprised to have received a reply via Twitter to this post by CloudFlare CEO Matthew Prince who wrote, “@davidshq thanks for the review. Only nit: actually we do code (HTML) optimization. Try CF’s Rocket Loader. Adds another 20% speed boost!”
Sure enough, Matt wasn’t lying and I turned on Rocket Loader and Auto Minify to receive even greater speed boost as CloudFlare automatically compresses and expedites various aspects of my code.
Granted, the “big guys” still have the advantage of coders who can review code line-by-line to remove slow code, but with all CloudFlare’s features, how much longer will this sort of manual optimization be necessary in all but the most severe cases?
(For those like me who had a little trouble finding Rocket Loader, check out this CloudFare FAQ)

For those who are wondering, even sites like WordPress which utilize a database back-end are largely static sites when it comes to viewers. A technique to increase responsiveness of sites and reduce load is caching. This involves the creation of a static page containing the content that is pulled from the database. In this manner the content is pulled from the database once and then the users view the static pages. When a change is made to the content, the data is pulled from the database again and used to create an updated static page.

I’ve only been running CloudFlare for a little while on this site – but I’m already seeing tremendous performance gains – specifically in site speed. Before adding CloudFlare loading the main page of the site (directly from bluehost’s servers) was taking 10-13 seconds, now it averages between 5-7 seconds. This is a huge drop in loading time!

What is the practical result of all this? Well, it probably means that I could downgrade my bluehost account to the basic hosting and just rely on CloudFlare to provide the computational and geo-distributed power. It also means that folks like myself can wait much longer before needing to move to a more robust hosting solution.

This is truly an amazing service (especially for free!). It takes around five minutes to configure (literally!) and I’ve not even scratched the surface of the features that are offered – for example, a robust anti-spam intelligence that grows with its network of sites. So, if you haven’t already – go check CloudFlare out. No, I’m not on their payroll!