WordPress Plugin Count: Quality, not Quantity

I was at WordCamp Vegas this weekend and I noticed, on several occasions, that some of the audience balked at the suggestion of installing plugins. It would seem that somehow the impression is being given that ‘less is more’ in terms of the number of plugins that a WordPress installation should have. I am not exactly sure how this message is being delivered, other than through a network of non-developer-type people who are advising other non-developer-type people on how to build a WordPress site.

I hope this post sheds some light on the ‘Less is More’ phenomenon.

We’ll start this explanation at a n00b non-developer-type level and get a little more technical as I go on.

WordPress is comprised of a series of files that sits on a computer. In the case of your website, the computer has a ‘hole’ open for the “World Wide Web” to access some of its content. This ‘hole’ is called a ‘port’ (think ‘porthole’ from the Titanic). Any computer that has this port open (among other things) can display certain files to the web. These files have to be text-based files–kinda like opening a text editor (not Microsoft Word) and saving a blob of text as blob.txt. Then, the World Wide Web of people can go to the address to your server (your domain name, usually) and access blob.txt and view its contents. You can have several types of text files that get a little more advanced. The next step up from a text file is what’s called an HTML file (that stands for HyperText Markup Language). This is a way to format your text file so that a browser can interpret things like location of the content and the type of content that you are showing.

So, let’s talk about ‘Less is More’ at this level. When a website is accessed, it accesses the HTML page (this is usually ending in .htm or .html with some variations). If that page is filled with JUST the blob from your blob.txt file, it will load faster than a fly avoids a swat. But if you’ve got that file filled with a bunch of links to other files (usually, this is links to images, ‘style sheets’ or ‘javascript’ files, which I won’t get into here), then the load time starts to slow down. If you have ten small images on the page, the slowdown is barely noticeable. If you have ten VERY LARGE images (file size, not necessary width/height) on the page, you can go grab a cup of coffee while you wait for the page to load.  You can also bet that this is a poorly designed page as each page should have only the most appropriately sized image on the page to do its job.  The same goes for CSS files and for Javascript files-Anything outside of the existing HTML file could cause a slow-down if it is not developed/designed properly.

So, now we get to WordPress. A step up from HTML is what is called ‘scripting languages’ (something that can be run at the time it is accessed). There are various types of scripting language out there, but WordPress uses  ‘PHP,’ which stands for Hypertext Preprocessor – I know, it’s a little mixed up with the acronym, but just go with it. If you notice, this explanation started with just Text, went on to HyperText markup language and now we’re at HyperText PreProcessor. It’s getting a little more advanced, right?

Right. PHP is a text file that usually ends with .php. This file actually needs a ‘server’ to ‘interpret’ the file and run it at the time it is accessed. So there is this extra layer, if you will, of applications that must be running in order to show a PHP file. These files consist of a mixture between the scripting language and HTML (although, if developed correctly, the files would highly separate out the two).  You could have a PHP page that is a mile long that could load up in less than a second. The cool thing is that the server only access the parts of the file that is needed to run. It doesn’t need to read the entire script every time the page loads. This makes for a little more flexibility than a straight HTML page does because you can be highly selective in what you access when you load the PHP page. You can add a second mile to your PHP page and it might never change page-load. It might start making the PHP code unreadable, but it doesn’t necessarily change the page load.

So, let’s talk about ‘Plugins’ now. WordPress is uniquely designed to allow for ‘interrupts’ to occur throughout the core of its code. These interrupts are places in which a developer can insert their own code and override what’s happening at the core level. A developer can either do this in the themes functions.php file (highly unadvised) or create a plugin (two big thumbs up). The plugin will generally have 5-7 additional lines of commented code than you would have in the functions.php file, however these are pieces of code that you can now turn on and off at your leisure, as deemed necessary.

Just as with HTML, you can have hundreds of these ‘interrupts’ that WordPress calls ‘Hooks’ or ‘Actions’ and ‘Filters’ either in your functions.php file or as plugins and this would never effect the speed of your site.

The problems begin when the plugins are coded inefficiently. There are a number of different ways to have inefficient code for a WordPress site, but primarily it is either a lot more code that is processed than needed (lots of iterating over data or queries of data) or it is running the plugin with the wrong hook/filter. Another issue can be when a developer doesn’t use unique names of their methods and it ends up overriding or stepping over other plugins or core functionality that wasn’t intended. Once you start having inefficient plugins installed, it can effect the site-speed drastically and immediately.

So, How can we avoid poorly designed plugins slowing our sites down?

1) Vet your plugins: Always read all of the reviews and check which version number of WordPress the plugin works on. Do a google search for anyone complaining about the plugin before installing it.

Screen Shot 2014-12-18 at 9.42.28 AM

2) Test your plugin: It’s always best practice to have a copy of your site on another space so that you can test things out before you actually put them on your website. You will be able to catch the small nuances of site-speed before it hits your actual site. Here’s a good tutorial on how to set up a staging site for your WordPress installation.

3) Go premium if you can: Of course, follow my first suggestion for these plugins and vet them well. However, paid plugins generally have much better support when things go wrong and that can be a life-saver (or money saver/money maker).

4) Use a caching plugin. I should have put this first, actually. A caching plugin is magical. It takes the output of the PHP page and turns it into an HTML file to be accessed. This takes away that extra layer of having the applications that interpret PHP have to work to deliver the page. It does mean that you have to delete those html files every now and then but all of the good caching plugins have that option. I recommend WP-Super-Cache or W3-Total-Cache. I usually use WP-Super-Cache for all of my projects that require caching.

WP-Super-Cache Delete Options
WP-Super-Cache Delete Options

Having a ton of well-contained plugins that do very specific things is a much better alternative and does not cause significant site slow-age. On the other hand, having one or two poorly executed plugins can be catastrophic to your bounce rates. As you can see, the quantity is not nearly as important as the quality.

With that… Happy Plugin-ing. :)

I’m consolidating my brand

Essence Interactive is being put to rest. I’ll be doing development under ‘Tabby Chapman’ from now on. Yes, I’m going from full on registered Corp to Sole Prop.  Weird, right?

Well, EIinc is registered in New York and I haven’t been doing my work under the corp in a long time. I did keep some of my business-related bills registered under the corp to make taxes easier but… taxes are never easy right? Anyway, so now I’m developing under my actual name. That means this blog might occasionally get a little nerdy and developy. Probably not. But it might. I’ll also probably keep a lil’ portfolio here too. A sexy one.

That’s all. If you really are interested in learning about developing and knowing what projects I’m working on, subscribe to this blog and you’ll be updated on my projects AND on my life. Bonus.

So, you wanna start a website?

several computers on a deskAlright, so you’ve been hearing about this thing called the “Internet” now for like, 10 years and you’ve even ventured onto Facebook, and although you still don’t quite get it, you have finally come to terms with the fact that… YOU NEED A WEBSITE. Now the question is, “What the heck? How do I do this?”

Perhaps you invest in a mac because you’re told you can do it yourself with their tool called iWeb. Or you’ve gone out and purchased Dreamweaver, because someone said that’s what you use. Okay, now what? You could sludge through tons and tons of online tutorials on how to use these tools, but most people who do eventually come to terms with the fact that… they need help.

So, where do you start?

Well, first of all, you probably know someone or know someone who knows someone who can do a website for a reasonable price. So, start trying to get into contact with whoever that person is. But when you finally DO have your meeting with that person, come prepared!

This post will give you a few questions and info to gather for your new website venture and your first meeting with your web person. I’ll be posting a series of blogs that will help you with the entire process over the next few weeks but for today we’ll just deal with the first meeting.

  1. What kind of business do you have? This is important because there are a set of specific pages that most web designers know should exist depending on what your website is trying to sell. For instance, if your business is a storefront where you sell designer boots, then your designer will need to know that you’ll need a shopping cart and all of the bells and whistles that go with this. If your business is selling your voice-over skills to the local studios, your designer will need to ensure that you have a voice-over portfolio page and possibly some special access to possible recruiters or employers. If you’re a novelist, there will need to be pages about your works and publications. I think you get the drift.
  2. Given no budget, what would you want your website to do in 10 years? No, I know that there probably IS a budget, but giving your web designer an overall perspective on what you’re eventually going to do with the website is helpful in planning. Now, you may not know and that’s okay. But do try to take at least 10 minutes to sit down and jot some ideas on what it COULD do. :) Trust me, you’ll really probably like the process.
  3. What do you expect this website to do for you? Make sure your developer/designer knows what you are expecting from the website. “I want 100,00 hits in two months” is an example of that. This helps the designer/developer know what they can provide for you on a more reality-based set of circumstances. For instance, if you are Julia Roberts, that may work. But if you are not someone of great fame already, the designer/developer can help you redirect goals to a more reasonable level and give you a good process in order to eventually get to that final goal.
  4. Why should anyone care? And of course, I mean this in the nicest way possible. Really, why are you unique. Why should anyone give a damn about your website? If you want to create just some store out on the internet, fine… a designer/developer would probably gladly except your money in exchange for another store out there. But its ALWAYS good to be UNIQUE in what you are bringing and to be clear about that uniqueness.
  5. What is your budget? Come on, now, this is a serious question. I’ve experienced a lot of people who like to keep that question vague to see what they can get out of me and its just a bit annoying. :) State the budget. Trust me, your developer can give you an accurate quote based on that. If you asked for a 10 page site and then you say your budget is 300.00, then your designer/developer can at least adjust and give you one kick-ass home page.
  6. When do you want this completed? DON’T leave this open-ended. Give a deadline. Give a deadline for the proposal and don’t be afraid to set reasonable consequences.
  7. What do you like on other websites and what do you hate? Give examples. VERY HELPFUL!
  8. How much time and resources will you want to commit to this new venture after its done? Your team will want to know this in order to quote out the possibility of an admin-able website to enable you to change your own content, or they may not if you don’t intend on spending your time doing this. In my experience, paying more money upfront to get the admin-able stuff is always the best bet because otherwise you’ll be paying here and there for things that eventually add up.
  9. Who is your target market? Type (Businesses or consumers?), ages, gender, etc. If you’re a website for elderly people, for instance, you will want to make sure your site accomodates larger texts. If you’re a website for teen girls, you’ll probably be looking for a more vibrant and hip look and feel to it.

This just about covers the info you should bring on your first meeting. Next, we’ll go over more specifics about budgeting and maintenance.

just another wordpress plugin post

Image of WordPress PluginsWordPress is my favorite software in the world. It can do just about anything. I mean, they even have a social network set of plugins as well. So, I figured I’d post a lil’ blog about my favorite wordpress plugins to use… and some I’m interested in using. I’ll go over my current three favorite (although there are so many)!

First of all, I am loving the Twitter for WordPress plugin, because I can always count on my public tweets showing up here. It’s just one less step that I don’t ever need to worry about.

Next, I love the Feedburner Widget plugin, because it makes it so that I don’t have to change the code to redirect the feeds. It doesn’t it automatically. Feedburner is the latest in Google’s RSS syndication technology (and by “the latest”, I mean that they acquired it from Feedburner a while back, much like YouTube) that allows you to do fancy schmancy things with your feed, starting at keeping track of which email addresses are reading the feed. Yum!

The Akismet is my ultimate favorite widget of all time. This puppy has saved me so so much time in all of my experience in blogging saving me from having to weed out the spammers from the real posts. Thank you Akismet!

Those are my top three! I have a few other plugins that I use depending on what the occupation is for any given client. And I’m kinda dying to try out this WordTour plugin soon! What are your favorite plugins?

Chrome Oddities

So, I recently made the fateful switch to Google’s browser, “Chrome” and have been liking the experience thus far, which the exception of having my developing tools on Firefox. Last night, I opened my browser and all the fonts had turned into these weird As with boxes around them.

At first, I thought, “hm… must be some sort of tongue-in-cheek thing that google’s doing?” But then I realized that it was happening on every page that I was going to! Pfft.

Anyway, after some google searching in Firefox, I ran onto an article titled “How to Fix Chrome for Mac Broken Fonts.” I might have just titled it “Fonts are broken on chrome!” or “Boxes around A’s on Chrome” but that doesn’t really matter, because they gave awesomely useful tips on how to correct the annoying issue, which is that you need to clear your fonts cache.

So, if you have the same issue, go read that article and you should be fixed in a jiffy!

Magento Geek Post!

So, I am a sucker for Magento Commerce software. In the past it has been a real bitch to install though, and has eaten up plenty of my time. I’m also one of the dorks who get yelled at a lot because…. wellllll… I LIKE dreamhost! I think, so far, it has worked well with my needs. I’ve been a customer with them for several years, and have no complaints yet really.

Anyway, In the past, it’s been hour after hour of trying to get Magento to install on dreamhost for my own nefarious reasons. There was tears, there were swear words, there were furious posts on magento message boards and pleas to Dreamhost support. There was always success in the end, but at my expense… let me tell you!

Well! Cry no longer, my friends! I read the coolest tutorial and used the coolest instructions and was able to get my mom’s new online store to install within MINUTES. That’s ALMOST as fast as it takes to install wordpress.

Impressed!

Here’s the toot:
http://www.gimmesoda.com/installing-magento-commerce-on-dreamhost/

Drupalites

So I’m working on an upcoming conversion of a huge site with tons of content from a highly customized version of PostNuke to Drupal 6x. I’ve never worked in Drupal before, so reading up on it… I had no idea that it worked the way it does. It’s funny because I get a feeling of “smooth” when I work with it, too. Like things just work, and its crazy.

I’m wondering what they general experience is of other developers who start Drupal for the first time. Besides the nature of it being centered around content/nodes, is there anything important to remember in order to really properly create Drupal modules?

The project I’m working on will require some things written, and thankfully much of it can utilize the base framework and contributions.

Learning ASP

I’ve been quiet for the last few weeks, haven’t I? I mean, I know I don’t post here very often, but I’ve been exceptionally quiet… even my twitter isn’t a-twittering

It’s because I’ve joined the work-force. Yes, indeed. It’s a tough world out there!  We do what we need to do to survive. You know, I recently watched the movie, “Book of Eli,” and decided that I did NOT want to have to resort to eating… well… not chicken… in order to live. So, I went forth and begged… and found a job.

It wasn’t that hard, actually. I knew someone who knew someone… went and asked if they were looking to hire, and indeed they were. So I found myself suddenly in the midst of *achoo* a Windows developing environment, learning ASP and VB. It’s pretty dang cool. The most challenging aspect of it isn’t learning the new language… it’s re-learning windows. I have been a mac-user for so long now that even the silliest things in windows I’ve completely forgotten. So I feel like a bit of an idiot when it comes to IIS and registering DLLs and components and regedit… etc. But hey, it’s fun! And challenging! And Challenging is something I have been looking for!

What does this mean about Essence Interactive? Not much. See, if you haven’t noticed, I like to think that I can do it all. And usually I can! The most I can say is that there is now a queue of clients. If you want your site done by Essence Interactive, Inc, you will have to wait up to two weeks before it can begin, so please plan accordingly.

Essence interactive, Inc’s website is still in design phase. We’re trying to find that perfect “in yo’ face!” image that isn’t so much in yo’ face but is “AHA THIS IS THE BEST COMPANY FOR ME.”

I mean really, I’m only taking the full time job to support my habits over at essenceexpressions.com and comingoutsupport.com and also be able to continue servicing my lovely lovely clients the lovely lovely way I have been.

Two sites will get done by next weekend or else I will leave the industry forever… dorisegan.com and thefeijoosisters.com. These two had to take a pause in rendering due to my fulltime job schedule but i think I’ve got things to a regular schedule and will get them done this weekend! For Feijoosisters it’s almost all content that I’m waiting to do… so its just waiting on the data and it can be released. It’ll be the most beautiful dancer’s site ever! Doris Egan’s site is more tiny tweaks she wants and I shall give her!

Also in the queue is more work on issimo-usa.com, revolution mobility, kristin kreuk’s site will be getting an improvement, allison mack’s site will be pulling the wardrobe change trick as well. On top of that we’re doing some awesome additions to distinctivefabric.com making it easier for the clients to save their data and improving some functionality to the checkout procedures.

So, not much going on… just that. ;) Oh and also, personally my partner and I are moving to Albany (from Clifton Park) to be closer to the new job. Plus, we’re going to be working on a family soon and we’re gonna need more space! Helena and I decided to blog our adventures regarding the family, because there’s oh-so-much to share!

A’ight. My schedule for the new job is 7:00am to 3:30pm soooooo it’s about bedtime folks. Enjoy your week and I’ll check in with you all next week with the fresh launch of two sites!

PS It’s possible I’m singing on Valentines Day… not sure yet….

Wp-Framework Error Fix

I am making a website for a friend who runs a car-care concierge service and decided to use the WP-Framework theme to start off with. Everything went smoothly until I was nearly done and noticed a glitch in the <title> tag for the blog link. After some investigation on the issue, I found the bug in library/extensions/semantic-classes.php on line 62.

else : wp_title( '&raquo', true, 'left' ); bloginfo( 'name' );

I fixed the issue by adding a semi-colon and changing the value from left to right. This matched the rest of the site.

else : wp_title( '&raquo;', true, 'right' ); bloginfo( 'name' );

Very small fix for anyone out there using the theme, but thought I’d share.

exposed