debugging web site/database lessons.

After spending a frustrating day yesterday working with a client, their web site overload issues, and the hosting “advanced support” I am worn out. The issue: extremely high traffic database driven web site – when moved into the production environment on a dedicated server – would spike the processors’ load to 100% and would then need to be restarted. I got called to help solve the problem. The “advanced support” blamed it on the CMS and that is where I stepped in. The first thing I wanted to see were the server logs. (Apache and MySQL to start) After a long and frustrating time on the phone with the “advanced support” they were finally convinced I knew what I was talking about and gave me shell access to the server so I could tail (tail -f logname_log) the log in order to see what kind of error messages were generated. Mind you – my client had been dealing with the “advanced support” for two days at this point and not once did they look at the log files. Within a few seconds I was able to see the errors that were causing Apache and MySQL to run out of control and within a short while, I had a solution.

The lesson here – and it seems like I have tried to get this across many times before – if you are experiencing server issues of any kind – DNS, email, web, database – always check the logs first. The log files will either tell you what is wrong right away, or give you something to search for on your search engine of choice. The other lesson of the day: if you are have a content management system that uses a lot of database queries on a very busy site – make sure you you are using some sort of caching. (such as the MySQL Query Cache)

new cms to consider: drupal.

I have worked with a number of content management systems over the years and have never been so impressed – and able to use something out of the box – as I was with Drupal 5.x. A prospective client of mine a short while ago mentioned something about Drupal and I had not used it since the last major upgrade. After installing it and using it for 20 minutes, I became very impressed. Drupal is the most elegant CMS I have ever used and the most “clean”. By clean, I mean very organized (file structure and Admin area). I also believe that Drupal is the most feature rich and easy to use CMS out of the box. At this point, I am going to drop all XOOPS development and move any new clients to either WordPress or Drupal. Nice work Drupal!

wordpress documentation.

As most people know, I am a huge fan of WordPress. I get a number of potential clients that ask to help build their company or organization a web site which is easy to update without knowing any HTML. Of course – 9 out of 10 times I start talking about the benefits of WordPress. As a developer as well as someone who does not want to depend on someone else for a lot, I really like all the documentation and examples or “lessons” that are available for WordPress. When clients see all the documentation, their minds are more at ease and often feel more empowered which make me happy. If you are interested in working with WordPress or have a WordPress blog currently but are looking to do more, I recommend the following resources:

  • Working With WordPress – A one stop shop of information on everything from how to create a post to what user roles are to how to create a plugin.
  • WordPress Lessons – Basic lessons to help you get to know and feel more comfortable with WordPress
  • WordPress Advanced Topics – More advanced WordPress information if you want to use WordPress for photoblogging, create templates, etc
  • Google “WordPress Howtos” – There are several video and written tutorials out there.

Of course, I am always available for hire if you have any development needs.

how to clone the SmartSection module for XOOPS.

I was recently asked how to clone the SmartSection module for XOOPS, so I thought I would document the process here on my blog. (XOOPS is another favorite CMS I use for my clients when they want a CMS)

  1. Download SmartSection (http://smartfactory.ca/
  2. Duplicate the smartsection module folder (this is the folder with all the module files in it – the folder you will put into the “modules” directory within your XOOPS install)
  3. Now it is time to do a few “find and replaces” with your favorite text editor. (I prefer TextWrangler) For the sake of an example, I am going to name my cloned version of the SmartSection module SmartJappler. Within the entire duplicated folder, find and replace every instance of the following with the name of your newly cloned module. **Make sure you are replacing every instance in all the files**
    1. Find: smartsection and replace it with smartjappler (your module name here)
    2. Find: SMARTSECTION and replace it with SMARTJAPPLER (your module name here)
    3. Find: SmartSection and replace it with SmartJappler (your module name here)
    4. Find: Smart Section and replace it with Smart Jappler (your module name here)
    5. Find: SSECTION and replace it with SJAPPLER (your module name here)
    6. Find: Smartsection and replace it with Smartjappler (your module name here)
  4. You also need to change the template file names in your duplicated folder to match your cloned module name. In the SmartJappler (or whatever you renamed the module) find the /templates/ folder and rename all files that have “smartsection” in the file name to “smartjappler” (or whatever you renamed the module). **Make sure all files in /templates/ and /templates/blocks/ have the new file names. (ex. smartsection_rss.html would be renamed to smartjappler.html)
  5. Last but not least, you will need to do one more find and replace within one file: /sql/mysql.sql. Again, with your favorite text editor, find all instances of: smartsection_ and replace it with the name of your module. In my case I would replace it with smartjappler_.

Once you have completed these steps, upload the duplicated folder (now your cloned module) and install it though the XOOPS Admin panel. Questions, comments? Let me know!
[tags]XOOPS, SmartSection, clone, XOOPS module, TextWrangler[/tags]

WordPress Newsletter Plugin

I have been working with WordPress for multiple years now and I decided I needed to start reviewing some of my favorite plugins – as I receive a number of requests about what plugins I use/prefer. I am going to start with a newcomer: WP Newsletter. This plugin works great for WordPress sites allows you to:

  • create a customized newsletter for your readers or customers using the same theme based layout as you use for creating WordPress themes
  • offer a newsletter archive within WordPress
  • seamless integration with the WordPress Admin
  • use custom Newsletter WordPress template for easy integration into existing WordPress web site or blog
  • customize welcome email for new subscribers that can be modified within the WordPress Admin

The plugin developer is very responsive and open to new ideas and adding functionality to his plugin. There are also many other general newsletter functions you would expect and want

If you need a newsletter plugin for WordPess, check it out!

UPDATE: 02.2009
This plugin is no longer recommended. If you are looking for a great newsletter plugin – check out MailPress

wordpress resources.

I have been creating more CMS web site solutions using WordPress over the last year and and have collected some great resources along solid product right out of the box, it is highly configurable, there are endless plugins, and everything is well documented. So, if you are ever looking to build a web site using WordPress and want to do it for yourself I would recommend using:

  1. WordPress Documentation (Codex)
  2. WordPress Plugins Database
  3. My del.icio.us bookmarks (check out WordPress/Logic, WordPress/Plugins, WordPress/Templates). I will continue to add to these bookmarks so stay tuned.

[tags]WordPress[/tags]

random…here and there.

Some random things to point out…

  • Amanda Congdon is no longer the RocketBoom anchor…and just when I finally got Amy slightly hooked to this awesome vblog. Wherever she goes, I will be sure to follow. She is very talented!
  • Diet/lifestyle update…I weighed in yesterday and actually lost a few pounds last week! That is from all the moving (I moved my home office to a different part of my home to further separate home stuff and work stuff) and IKEA assembly coupled with yardwork over the weekend. Now I just need to keep that up!
  • I am putting the finishing touches on a re-write of my company web site that I have been working on for the last several weeks now. I still need to do some final QA as well as to validate everything…and fill the sitemap, but it is pretty complete so I thought I would put it. There will always be something to do. I have a few HOWTO blog postings coming up on how I did some of the things I did.
  • What is the deal with gas prices?? The low-grade by me is now at $3.24 and climbing. Come on Volvo/LandRover…let’s get on the alternate fuel bandwagon.
  • Speaking of Volvo…I got a letter in the mail from Volvo…I have to take my S80 in for a software upgrade. I love it!
  • The upgrade to XOOPS 2.0.14 has been rocky. I am having some major problems with a few of my main modules (SmartSection, Protector) which produce blank pages. This is why I use a development server for testing before updating any of my production sites.

[tags]Amanda Congdon, IKEA, diet, Volvo, Land Rover, XOOPS[/tags]

command line to the rescue…again.

While upgrading a client’s web site to XOOPS 2.0.14 I ran into some issues with the XOOPS 2.0.14 package file (a tar.gz file). Stuffit Expander would only extract a few folders, then report an error and quit. After a few attempts, and all failures, I had to chose to turn to the command line and bingo, no problems! So, if you ever have any issues with Stuffit Expander and need to uncompress a .tar.gz file, the following commands will come in handy:

  • To uncompress a gz file: gunzip file.gz
  • To uncompress a tar file:
    tar [tar options (usually xvf)] file.tar
  • To uncompress a .tar.gz file: tar xzvf file.tar.gz

Questions? Check out the man pages for tar and gunzip.
[tags]XOOPS, gunzip, tar[/tags]

wordpress development.

I have been using open source solutions for over seven years now. (my first open source experience was with mailman and then ht://dig and squirrelmail soon after – all of which I still use today) I made it a priority to get involved with at least one open source project this year, and to start out I have chosen to get involved with WordPress. I signed up to help with browser testing and to look at ways WordPress can offer more CMS features. I have extensive browser testing experience and have plenty of CMS and WordPress as a CMS experience that I look forward helping with the WordPress project and giving something back to a great community. If you would also like to help, check out the WordPress Development page.
[tags]mailman, ht://dig, squirrelmail, CMS, WordPress, open source[/tags]

jappler's wordpress.

Well after over six months using WordPress to drive jappler.com, I thought I would report for anyone out there that might be interested, what plugins and modifications I have put in place to create jappler.com what it is today.
User Interface

  • Admin User Interface Enhancemnt: Tiger Style Administration Plugin. If you know me, you know I am very particular with user interfaces, and this one passes the test.
  • Page Navigation: WP-PageNavi Plugin. This creates page number links at the bottom of my blog.
  • Search Term Highlighter: Search Hilite Plugin (this is now built-in). When someone searches for information on your WordPress site/blog, the search term will be higlighted in the found posts/pages

Utilites

  • Anti-Spam: Spam Karma Plugin. Help ward off comment spam by using this awesome spam stopping plugin.
  • Email This Post: WP-EMail Plugin. This plugin allows visitors to email a post to themselves or anyone who might find something interesting.
  • Click Counter: Click Couter Plugin. This plugin tracks how many times all the links on jappler.com have been clicked.
  • Search: Search Pages Plugin. Since I use WordPress for more than a blog, I needed to have a way to search through all my content and pages, not just my blog. This plugin searches everything on jappler.com
  • Sitemap: Google Sitemaps Plugin. This plugin creates a Google compliant sitemap (which helps with your Google rank).
  • Counter: WP-OnlineCounter Plugin. I never had a counter back in the late 1990s when I first put up my first web pages…so here it is.
  • RSS Aggregator: aggrss, an rss aggregator Plugin. This plugin drives my <a href="/news/" section.
  • PHP: Run PHP Plugin. This allows me to use PHP into any of my posts/pages
  • Modification Date: Last Modified Plugin. This plugin puts the “last modified” next to my posts/pages.

Fun

  • SNL Fun: Deep Thoughts Plugin. We all need some deep thoughts. This plugin is used in my randomness section.
  • Weather: WeatherIcon Plugin. This plugin displays the weather on my home page.
  • Jappler History: One year ago Plugin. Jappler.com is random…it is sometimes fun to see what I was thinking/posting about a year ago. Soon I will have to add “Two years ago” too.
  • Polls: WP-Polls Plugin. I have started playing around with this plugin…watch for some exciting Jappler polls soon 😉

Let me know if you have questions! I will be happy to help any beginner or intermediate bloggers get started!
[tags]WordPress, WordPress Plugins, jappler.com[/tags]