How to add SSL / HTTPS to WampServer

With the importance of HTTPS for security and SEO (according to Google), you need a development environment that lets you run your site locally on https. Unfortunately, right out of the box, WampServer only includes a parts of what you need to get your local web server running over https://localhost.

In this article, we will go over the exact steps you can follow to get HTTPS / SSL working on your Wamp Server. These instructions assume that you are installing the 64-bit version of WampServer for Windows to your c: drive. If not, just replace c: with d:. You may also need to change the version number in some of the paths depending on when you downloaded Wamp Server.

How to use WAMP + SSL to open localhost over https:

  1. Download & install WampServer.
  2. Open a command prompt (WindowsKey + R > cmd > click OK) and enter the following commands.
    cd c:\wamp64\bin\apache\apache2.4.27\bin
    openssl genrsa -aes256 -out private.key 2048
    openssl rsa -in private.key -out private.key
    openssl req -new -x509 -nodes -sha1 -key private.key -out certificate.crt -days 36500 -config c:\wamp64\bin\apache\apache2.4.27\conf\openssl.cnf
    Note: You can pretty much answer the questions any way you want though real answers are best. The one question that really matters here is the FQDN. It should be: localhost
  3. Using a text editor like Notepad, open c:\wamp64\bin\apache\apache2.4.27\conf\httpd.conf and un-comment following 3 lines:
    LoadModule ssl_module modules/mod_ssl.so
    Include conf/extra/httpd-ssl.conf
    LoadModule socache_shmcb_module modules/mod_socache_shmcb.so
  4. Using a text editor like Notepad, open c:\wamp64\bin\apache\apache2.4.27\conf\extra\httpd-ssl.conf and apply the following changes:
    Below the line: <VirtualHost _default_:443>, check the following parameters to ensure they are configured correctly and not commented.
    -------------------------------------
    DocumentRoot "c:/wamp64/www"
    ServerName localhost:443
    ServerAdmin admin@example.com
    SSLSessionCache "shmcb:c:/wamp64/bin/apache/apache2.4.27/logs/ssl_scache(512000)"

    ErrorLog "c:/wamp64/bin/apache/apache2.4.27/logs/error.log"
    TransferLog "c:/wamp64/bin/apache/apache2.4.27/logs/access.log"
    SSLCertificateFile "c:/wamp64/bin/apache/apache2.4.27/conf/certificate.crt"
    SSLCertificateKeyFile "c:/wamp64/bin/apache/apache2.4.27/conf/private.key"
    -------------------------------------
  5. Save the file and close it.
  6. You are done. To check the validity of file, at the command prompt, enter:
    c:\wamp64\bin\apache\apache2.4.27\bin\httpd -t
    and then use your web browse to go to https://localhost/

From this point on, you should be able to start, stop and restart Wamp Server and SSL-HTTPS will continue to work.

Enjoy!

Michael Milette

Information Overload? Refill your bucket

Your brain needs time to process information it is absorbing. If you don't give it that space, it may lead to information overload where you start to feel overwhelmed all the time.

If you are feeling overwhelmed and experiencing information overload, try balancing your lifestyle. Here are some ways to refill your bucket:

  • Get away -- Take some time (12 to 48 hours) away from work/school and technology.
  • Reconnect with nature -- Go hiking or camping in nature -- tech free style!
  • Break your day up -- Take more frequent (like 20+ of them) but shorter 1-2 minute breaks throughout your day.
  • Physical activity -- Exercise 60 minutes (minimum 20) at least 4-5 time per week.
  • Physiology affects how we feel -- Stand up straight in front of a mirror looking at yourself with the biggest possible smile for 20 minutes a day. You'll be amazed at what this can do for you in just three weeks.
  • Watch what you take in -- Cook and eat your own healthy meals with friends whenever possible. If your friends tend to eat junk, find new friends to eat with.
  • Meditate -- regularly to clear your mind.
  • Socialize -- Spend quality tech-free time with friends and family who love and care about you, not just for what you can for them. If your friends tend to bring you down, find new friends. You become physically and emotionally like the seven to eight people you hang around with the most.
  • Laugh and cry -- emotional outlets can be a wonderful way to help reduce overwhelm.
  • Rest -- Make sure you get enough sleep every night. Despite what some people think, sleep isn't a bank. You can't save it up for a rainy day. Your body will overrule any willpower you think you have over it if it feels abused. If you've ever been sick, you know what I mean.
  • Contribute -- Sharing what you learned with others will also help your brain process what you are learning and help it retain more. This can be one-on-one, in discussion groups or in front of an audience (public speaking). Find ways to apply what you learn. Start a project or contribute to someone elses project.
  • Stop smoking -- It will literally kill you and those around you. Same goes for recreational drugs.
  • Information dumps -- can be in the form of writing articles for a blog, a book or publication. You could even do a vlog on YouTube.
  • Gratitude -- keep a gratitude journal. Write down 3-5 new things you are grateful for each day. One of these should be about someone you care about. Share that one with person each day. On days when you have trouble coming up with things to be grateful for, read your gratitude journal.

You are not a machine. Stop treating your brain as if it were one.

If you are already feeling down since more than two weeks, see your doctor. The longer you feel that way, the longer it may take to feel better.

Hope you find this useful.

Best regards,

Michael Milette

Unemployed and looking for a job? Congratulations!

Congratulations on your new job! Think of it as contract work where you get paid when you are finish the job… which of course is to go shopping 7.5 hours a day for a new job! Make the most of this time to also learn and grow as a person and contribute by sharing what you learn with others. Many unlucky people feel that they are stuck in jobs they don't like for years. This is a real opportunity for you to lead others by example. You got this! 🙂

Tip: Check your local library or book store for a book called "Book yourself solid" by Michael Port. If you don't like reading and are perhaps more visual, there is an illustrated edition too. He makes the whole process of marketing yourself to targeted employers a lot easier and more pleasant.

Some people have come back to me and say "But Michael, I am not looking for clients, I want to be an employee!" This is a matter of perspective.

Think of yourself as a product and potential employers as potential clients. Is there really that much of a difference between a client who is an employer and multiple clients? Either way, you are working for the people who are paying you. When you start to see yourself as a product that you need to sell to clients, you start to change the way you think about presenting yourself and start to realize that blindly submitting your resume on a website or by email is the equivalent of receiving junk in your mailbox. It might work but most of it will end up in the recycle bin.

A big part of Book Yourself Solid is about developing relationships with people, learning about your business including finding out what clients are looking for. Only when you have understood your potential client's pains and needs can you effectively market yourself in a way that will be meaningful to them. Networking has multiple advantages. First, you get to speak with people who wouldn't even consider interviewing you. This gives them an opportunity to get to know you and you to know them. If you ask the right questions, you can learn about their business including when and where they will need someone like you in the future so that you can be in the right place and at the right time. By the time you apply for a job, you'll be so far ahead of other applicants because you will already have a relationship with the employer. In fact, they may even contact you instead of posting the job. Did you know that 80% of available jobs are never advertised? This is why.

The choice is yours. You can either be part of the 80% of people competing for the 20% of advertised jobs or you can be part of the 20% of people going after the 80% hidden job market.

By the way, if you are going to spend time looking for a job anyway, why not look for a job that you can really enjoy? It requires about the same amount of effort and you, and your new employer, will be so much happier.

I am not affiliated with Book Yourself Solid or Michael Port. I just really like his approach to developing long term relationships instead of trying to sell yourself. Developing genuine relationships feels much more comfortable and, in the long run, is much more effective. It is a good practice that I recommend even if you are employed.

Finding a Photo’s License Using Google Images Search Tool

Have you ever come across the perfect photo and wanted to use it on your blog, website, social media post like Facebook, LinkedIn or Twitter, report or print publication? Google Images has a very useful tool to search for an image and hopefully find out the type of copyright license attached to it.

Searching for an image

To search for an image, you will either need to get the address of the image on the web or you will need to have a copy of it saved locally on your computer.

If the image is located on a publicly accessible website where you didn't have to login to see the image (unlike this website), you can just copy the image address to the clipboard.

However, if it is not publicly accessible without logging into the website with a user name and password, Google won't either so you will need to start by saving it to your computer. Find the web page where the image is located and right-click on it. Next click the corresponding option to save the image. The process and name of the actual menu item will vary from one web browser to the next and whether you are using a Windows PC or Apple OS X Mac so you'll need to figure that part out on your own. If you can't figure it out, ask a friend or a kid 😉

Tip: Occasionally you can get access to a larger version of an image by first clicking on it. You'll always want to submit the best version of the images to Google.

Then use Google Image search to look for the image:

  1. Go to https://images.google.com/ and click on the camera in the search field.
  2. Paste the image address into the search field.
  3. Click the Search by Image button.

Screenshot of Google Image search tool

If you downloaded the image instead, replace step 2 and 3 above with the following two steps:

  1. Click the Upload an Image tab.
  2. Click the Choose a file button. Select the image that you previously downloaded to your computer. Then select a photo from your computer to search for it.

Google will then show you a list of all the websites where that photo is displayed. Keep in mind that the photo may be used by others on their own website so you will need to look through the listings for one that seems to be from a stock photo website. From there you should be able to determine the license for that photo.

If Google had not found the photo, I would be concerned about legally using this photo in my project and would not use it without getting written permission from the copyright owner.

IMPORTANT: Even if you see the photo listed on a free stock photo site, if any listing of your photo points you to a commercial stock photo site like Shutterstock or iStockphoto, do not use the photo without paying the license fee for it. You aren't the only person who knows how to use search tools like Google Images.

Hope you found this little tutorial helpful. Feel free to let me know if you have any questions.

Best regards,

Michael Milette

31 Free Stock Photo Sites for Your Web Projects

Adding photos to your web page can be a great way to connect with visitors who are more visual and to make your website generally more appealing. Here is a list of websites where you can find free stock photos for use on your web projects, in your e-learning courses, blog and social media posts and other types of publications including print.

The old adage "you get what you pay for" applies here. You will often find the best of what a photographer has to offer, the photos that have been touched up to perfection on commercial stock photo sites like Shutterstock. Where in business, time is money, another benefit of these commercial websites is that their photos will often be tagged and categorized in order make it easier and faster to find just the right photo.

However, in recent years, the quality stock photo sites that offer photos that you can download at no cost and royalty free have been improved considerably. If you have the time to search and perhaps some Photoshop skills, you can find great photos at budget prices on sites such as:

As previously mentioned, Shutterstock is commercial however they do offer a free high quality professional photo and vector image each week to anyone who signs up for a free account. I've been collecting them on and off for years. Makes for a nice library of photos.

iStock is also a commercial stock photo site and has not only similar deal for free photos and illustrations but also offer a free video clip.

Fotolia is commercial but also has a free photo of the week. They will even allow you to download photos from a couple of previous weeks if you missed them. In my opinion, the quality of their images doesn't seem to be as good as those on some of the other commercial sites like Shutterstock and iStock but, every once in a while, you will find some photography gems.

BigStockPhotos is commercial but super easy to use. They have a huge selection and the photos are relatively inexpensive. They have a 7 day free trial where you can get up to 5 photos per day. If you browse around before you start your 7 day trial, you could end up with all the photos you need for your website.

Bonus: If you are looking for clipart (drawings instead of photos), be sure to take a look at OpenClipart.

IMPORTANT TIP -- Regardless of where you get the photo from, even if it is from a commercial site like Shutterstock, always take note of:

  • The name of the photo file. If you make changes to the file, always keep a copy of the original.
  • The date you acquired the photo. Licenses can change over time and the applicable license is dependant on when you got the image.
  • Where you got the photo (URL or print screen which includes the URL and site name is probably best).
  • The copyright owner's name and an actual copy of the copyright license. Print it to a PDF file of the same name as the photo and make sure that the date and time appear in the header or footer of the PDF. Naturally the name of the license file name should end in .pdf instead of .jpg, .png, .tif or .bmp which the photo ends with.
  • A record including the payment receipt if you purchased a license for it.

Take the time to read the copyright license. While some photos may be free, some require attribution and some don't let you use them in a commercial application or don't include the right to alter it. For example, cropping, adjusting colours/contrast/brightness or even just adding text to it is considered making a change.

While the photo may be free on a website, this doesn't prevent someone from coming back to you years later claiming that you didn't have permission to use the image. I know of someone who ended up paying hundreds of thousands of dollars in legal fees, licensing fees and damages because they used photos on their website that they didn't have a legal right to use.

If you are doing work for someone and want to use a copyrighted photo in the project, either download a new copy of the photo or make sure that the license attached to the photo is transferable. For example, you could not download a photo of the week from Shutterstock today and use it in a clients project next month. When you downloaded the photo, the license is for you to use the photo, not for your future clients. You would not want to get employers or clients into trouble.

If you want to use your own photos in a project for an employer or client, you are most welcome to do so as you have that legal right. Just make sure that you provide them with some kind of note indicating either a standard license or the terms under which you are letting them use the photo.

If people are included in the photo, it is always a good idea to have them sign a consent release form, especially if the photo was taken on private property or includes children. If children are involved, their parents/guardians will need to sign. Never use a photo of a person where it could possibly be interpreted as an endorsement for your product or services without their written consent.

Examples of common licenses for photos include:

  • Public Domain (also known as Creative Commons Zero) -- means that anyone can use, copy, make changes the photo for any purpose without attribution or permission from the author.
  • Creative Commons has several types of licenses available if you want to make the photo available for free. These are similar to public domain licenses but often require attribution or have some restrictions on how and where they are used. The author retains a copyright to the image.
  • Copyright with all rights reserved where you would be specific about how they can use the photo. For example, can they sell the photo? Claim it as their own? Where can they use it and for how long? Do they need to pay you a one time fee now or renew a license in the future? Is there a time limit for this license? Can they make changes to it? It's your photo so you make up the terms and conditions.

You may also want to read your employment agreement to see if there are any pre-existing terms and conditions that would affect your legal rights to photos you may have taken while employed, whether it was part of your job or not.

PLEASE NOTE -- I am not a lawyer/barrister. Always get real legal advice unless you are 100% sure of what you are doing when it comes to copyright issues.

Moodle Cron

Although it is not an obvious part of the installation of Moodle, setting up Cron is very important when it comes to Moodle.

For example, some emails are sent out immediately while others are scheduled and only sent out when cron runs. Other things that are often affected by Cron jobs are report generation. Eventually, if you never run cron, your Moodle site will also stop working so it is important to make sure that this is setup properly. This happened to one of our clients. They had their own people do the installation and they skipped the step of setting up Cron. A year and a bit later, they contacted us thinking someone had hacked their site. It turned out they had just never run the Cron job that does Moodle maintenance.

You can check the last time Cron was run by going to the Site Administration > Notifications.

If cron hasn't run in the last 24 hours, you will see something like:

"The cron.php maintenance script has not been run for at least 24 hours.

If you don't see anything about it, chances are that Cron is being run automatically every once in a while.

There is also the possibility that an error is preventing Cron from working properly. The likelihood of this happening is much lower since Moodle 2.7. You should be able to manually run Cron and see the results by logging in as a Moodle administrator and going to:

http://example.com/admin/cron.php

Just replace "http://example.com/" with the URL to your Moodle site. There are some settings in Moodle which can prevent this URL from working so, if it doesn't seem to work, don't assume that Cron doesn't work. It might just be some Moodle settings. If Cron is running regularly, the displayed log might be pretty short as there are items which are only run once a day which may not appear in the list. This is especially noticeable if you run Cron manually twice in a row.

If you are running Moodle on a Unix/Linux based server, documentation on how to set it up can be found on Moodle.org's Cron page.

If you are running Moodle on Windows, you may have noticed that "cron" doesn't exist. However Windows does also include a Scheduler. You will find details on how to set that up by going to the Cron with Windows OSpage on Moodle.org.

It's never too late to setup Cron. Not only will you find that your Moodle site works better, it may actually work faster too.

Useful Tools and Resources for Moodle Developers

Here is a list of resources that helped me get started in Moodle development. I've even put together a few articles of my own to share covering topics like Getting Started in MoodleGit for Moodle Developers in Windows and Upgrading Moodle packages for Windows (XAMPP Control Panel, PHP, phpMyAdmin, Apache, MySQL)

[Updated: This is an updated version of an article that was originally published on October 25, 2013]

Moodle Development Environment

Code Editors

I have also tested a number of source code editors on Windows including Atom, Brackets, Notepad++ and Sublime Text v2 and v3. I don't recommend using Atom. While a nice editor, it slows to a crawl when editing some of Moodle's larger files that can be upwards of 250KB at times. This is important because much of Moodle's development documentation is in the source code. In Atom, a single keystroke can take up to several seconds to happen.

Notepad++ is super fast and my text editor of choice for most work. The down side is that Notepad++ can't effectively use XDEBUG PHP tracing on larger source code files.

Brackets and Sublime Text ($) aren't quite as fast however their advantage is that plugins are available which are specifically targeted to help Moodle development. I think Sublime Text is a little faster. I have yet to try either of these with XDEBUG.

As for NetBeans, once you've got it configured properly with XDEBUG, it works almost perfectly though it is slower than a native Windows application because it needs to run in a Java virtual machine.

I have yet to try the following popular alternatives:

  • phpStorm ($) --  Besides being is Java based, it can take a little getting used to the user interface.
  • phpDesigner ($) -- a native Windows application.

Moodle Development Books

The only Moodle 2.0 development book I know of is called "Moodle JavaScript Cookbook". Unfortunately I don't know of any other books. Maybe the fact that Moodle 2.7 will be an LTS version will encourage authors to publish books.

Moodle Programming Courses

Introduction to Moodle 1.8 Programming -- Important note: Moodle 2.x has some important different from 1.8. That being said, I found it very helpful to go through this course. It is unfortunate that it was never updated for Moodle 2.x.

Introduction to Moodle Programming by Tim Hunt

Moodle Documentation for Developers

Useful Moodle Related Online Development Tools

More to come…

Have a resource you'd like to see added? Drop me a comment!

Best regards,

Michael Milette

Setting Up a WordPress Website

Note: Originally published May 4, 2012 -- updated August 28, 2016.

Web Hosting

Step 1. Get Web Hosting

Sign up for Web Hosting, preferably with a company that offers a cPanel, Panelbox, 1-Click or Fantastico from a Web Hosting company such as HostPapa, Funio or HostGator (NOT GoDaddy!). If the company offers domain registration, simplify your life and take it. That way it will all be integrated and working for you. Otherwise, you can get domains from places like GoDaddy (but not web hosting!), HostGator, or NameCheap.com.

What's the issue with GoDaddy? Although they have a great Domain registration service, their web hosting service has been rated very poorly in the past. For example, there are limitation on how much and how often people can visit your website. The last thing you want is for your potential clients to have trouble accessing your website.

Step 2. Login to your Web Hosting's Management Site

Login to your web hosting service as per the instructions provided to you from the web hosting company. Install WordPress and login to WordPress. The URL to login is usually www.yourdomain.com/wp-login/ .

Setting up WordPress

Complete the following steps after having logged into your new WordPress site.

Step 3. Update WordPress.

Depending on your  host provider and when you are installing WordPress, it is not uncommon for an updated version of WordPress to be available. It is important to upgrade before you get started as the developers of WordPress are constantly working on fixing bugs and improving security. If any plugins or themes work differently depending on the version of WordPress, you'll want them working the the best and most secure version of WordPress.

If an update is available, a link will appear at the top of the browser window when you are logged in which will take you to a page where you can automatically upgrade WordPress. Click the link. The whole process should take less than a minute or so to complete.

Step 3. Plugins

Start by removing the unnecessary "Hello Dolly" plugin. Click on Plugins and click the "Delete" link near the Hello Dolly checkbox to remove this plugin. Follow the prompts to remove the plugin files. Repeat the same process to remove Akismet. There are more effective anti-spam options available these days.

Next, install some essential plugins including. Remember to activate each of the plugins after they are installed.

If you use the default menu (some themes don't support them), the first 3 plugins will be useful:

  • Exclude Pages: Allows you to create pages that won't appear in your sites menu. For example, Terms of Use, Privacy Statement and Thank You pages.
  • Page Link to: This will allow you to create menu items that point to something other than your own web pages. For example, a PDF file or a different website.
  • Simple Page Ordering: This plugin will enable you to sort your pages by just dragging and dropping them in the Pages list.
  • Page Comments Off Please: This will enable you to turn off comments for all pages, but not posts, by default on your website. You can of course turn it on on a per page basis.
  • Security and Maintenance: Limit Login Attempts, Wordfence SecurityBroken Link Checker and Heartbeat Control: You almost never hear people talk about this last one but it can save you from your ISP blocking your website because it is using up too many of your web host resources. It will also enable your site to handle more concurrent visitors.

Optional but useful:

  • P3 (Plugin Performance Profiler) -- Although not essential, this will help you figure out what is slowing the site down if you find your site getting slow. Note that this plugin currently has problems working in Internet Explorer. Use Firefox or Chrome instead. Once you have optimized your site, uninstall this plugin. You can always re-install it again in the future if you notice poor performance on your website.
  • Yoast SEO -- You may want to wait to activate this one until you've added some content to your site as one of the things this plugin will do right away is to start telling the Google, Bing and Yahoo search engines about your site.
  • Clipboard Images -- This is a super useful plugin that will allow you to simply copy and paste images from your clipboard right into WordPress. Note that the free version offers no control over the file names so, if image filename SEO is important to you, skip this one.
  • Contact Form 7 -- Allows you to create HTML forms in your website. Although it may not be the most friendly application out there, in the world of free plugins, this one offers lots of features that others may leave out. For example, it will not only send you emails containing information that visitors filled out, you can set it up to generate an auto-response back to let the sender know you will get back to them shortly, provide information to a valid email address or even suggest links to additional pages on your site which may be of interest to them. And yes, there are other add-on plugins to give it even more functionality.
  • Post Expirator -- WordPress gives you the option of specifying the date on which your post will appear on your site. However if you have an active site where you want to have some also posts "expire", this is the plugin you are looking for.

Step 5: Create your basic website page.

Click on Pages and then on the Sample Page. Change the title of the page to "Home", "Welcome". This will be the home page for your site. Also change the "Slug" to the "home", "welcome" so that it matches the page title.

Create a new page and call it "Blog", "News", "Testimonials" or anything else you like.

Create pages for "Products" or "Services" (optional), "About" and "Contact Us". I highly recommend you don't try to be too original with the name of your About and Contact Us pages as these are words that people will be looking for on your site. The last thing you want is to make it difficult for people or search engines to understand and use your website.

You need not create the content of these pages right now. This is just to give you space to work things out.

Back on the Pages page, drag and drop your pages into the order you'll want them to appear in in the menu.

We will talk about creating additional pages a little later.

Step 6: Turn WordPress into a Website instead of a Blog.

Complete the following steps:

  • In the left menu, click on Settings. Review the General Settings and update the information. ClickSave Changes.
  • Click on Reading in the sub-menu.
  • Set the Font page displays section to "A static page".
  • Set the Front Page pull-down menu to your home or welcome page.

Don't forget to scroll down to the bottom of the page and click the Save Changes button.

Selecting a Theme

Step 6: Choose the look of your website

The next step involves deciding how your website will look. WordPress has about free 1,500 themes listed on their website and there are even more companies offering Premium(i.e. pay-for) themes.

To select a theme, click on Appearance and then on Themes. Then click on the Install Themes tab near the top of the screen. You can browse through them, try them out and remove them if you don't like it. Take some time to choose a theme you like as this will be a reflection of the professionalism of your company. Also keep in mind that most themes allow you to change the image at the top of the page while others allow you to change the colours. Others that provide you with even more control are are called Framework Themes.

The most flexible Premium themes include:

  • Thesis DIY: One of the most highly rated Framework themes.
  • Genesis: One of the most highly rated Framework themes.
  • OptimizePress: This Framework theme is specifically designed with Internet Marketers in mind.

I've tried dozens of promising looking themes but eventually, I always seem to paint myself into a corner with no way out or with features that just don't work right. With that in mind, some of the best and highly configurable free themes I have come across include:

  • Atahualpa: If you like to roll your own theme, this Framework theme comes very close to the customization level available in the commercial Thesis and Genesis themes. Not so pretty out of the box. Takes a bit of work but you can accomplish great things if you know a bit of CSS.

For people who want to focus on content

Kadence Themes: Unlike many of the framework themes mentioned above, these these look great right out of the box and include many options to modify the look of your site. Kadence Themes currently offer two themes which include Virtue theme and Pinnacle theme. In case you decide to create an on-line store once day, these are even compatible with WooCommerce. Don't forget to also install the Virtue / Pinnacle Toolkit plugin which adds a Portfolio and enables Shortcode functionality in this theme.

If you want more functionality than what is included with the themes from Kadence, you can add Page Builder by SiteOrigin which enables you to easily create professional looking web pages regardless of your skill level. There are tons of Widgets available for SiteOrigin's Page builder including but not limited to: Livemesh SiteOrigin Widgets, Widgets for SiteOrigin, SiteOrigin Widgets by CodeLights and Ultimate Addons for SiteOrigin. If you have a relatively fast computer, you may also enjoy SiteOrigin CSS which adds an easy to use visual editor to SiteOrigin. Note: Only include the add-ons you will actually use. Each plugin may make your website appear a little slower. Also note that some of these add-ons may not be optimized for SEO even if the results look fabulous.

Even though I am a fan of SiteOrigin, if you have even a small  budget, spend the money on Beaver Builder instead. It is super intuitive, minimal learning curve, excellent support, loaded with useful functionality and widgets, includes tons of pre-configured page templates and is compatible with most WordPress themes. You'll have your new site up and running in no time with this tool. Otherwise, don't waste a lot of time trying out Page Builders. Trust me on the SiteOrigin recommendation.

Cache

Caching is something that improves the speed of your website by just displaying a cached version of a web page instead of re-creating it each time. W3 Total Cache is an excellent plugin that does just that. This particular plugin is compatible with all of the recommended plugins on this page.

Tip: To avoid annoying frustrations while creating your website, only activate this particular plugin when you have completed most of the major work on your website. To understand why, see FAQ below.

FAQ (Frequently Asked Questions)

Question: I see two link to my home page in the menu. How can I get rid of one.
Answer: Uncheck the box that says "Include this page in list of pages".

Question: I made a change to my website which is not reflected when I try to view the page. What would cause this to happen?
Answer: First, make sure the page you are editing and the page you are viewing are the same page. I've been caught more than a couple of times with this. If you are using the W3 Total Cache plugin, you may need to clear the cache.

Other Useful Plugins

Widget Logic -- One of the common frustrations you will quickly encounter when using WordPress as a website instead of a blog is it's limited ability to only include certain widgets on certain pages. This is where Widget Logic comes to the rescue by providing you with a way to limit certain widgets so that they only appear on certain pages, categories of pages on your site or only appear under certain conditions.

Cleaverness To-Do List -- If you are like me, this plugin will help you keep track of everything you need and want to do to your website and even let you prioritize each task.

Duplicate Post -- This will allow you to easily clone a page or post on your website. This is extremely useful when you've put a lot of work into creating a page and want to use it as a template for other pages, but it can also be useful when trying to track the results of an ad campaigns

Tip: Create a copy of an existing page on your site and promote it instead of the usual page. This will enable you to use analytics of the cloned version to track the effectiveness of your ad campaign.

Slim Stat Analytics --  If you have a small site and just want to see some useful statistics in your WordPress dashboard, give SlimStat a try. Unlike Google Analytics, it doesn't share your analytics with others as the whole thing runs completely on your website. If you have a large site, Google Analyticator will show stats from Google Analytics right in your website's dashboard too.

Social Metrics -- Gives you a running total of how many likes you received on a per-page basis on your social networks.

Tweet, Like, Plusone and Share -- Add like buttons on your site.

Social Media Widget: Add social media icons (ex: Facebook, Twitter, YouTube, LinkedIn) to your website.

WP Edit -- Enhance the WordPress editor adding features like being able to create tables.

s2Member (free) or WishList Member ($$$) -- Allows you to setup a membership site.

WooCommerce -- Create a professional e-commerce website for your products. Not only is this versatile, but it is compatible with the Canadian tax system.

XCloner -- Enables you to make complete backups (database and files) of your website.

WP Simple Paypal Shopping Cart and UI for WP Simple Paypal Shopping Cart -- Easily add items or services for sale on your website. Use Paypal Merchant (Pro is not required) to take payments by Credit or Debit cards. (Not recommended for single payments over $2000.). This is not required if you use WooCommerce.

File Manager -- Allows you to browse and view any file on your website.

JetPack -- Get many of the same features that you will find on WordPress.com. Only use if you are going to make use of some unique feature or you are going to use multiple features. Otherwise just get specialized plugins that will meet your needs.

WP-Poll -- Conduct polls on your website.

3rd Party Services

To get the most from your site, you will need the following services:

  • PayPal Merchant -- Take Debit and Credit Card payments online.
  • Social Media such as Facebook, LinkedIn, Twitter and YouTube. These are the major sites on the Web. Work on these first and then look for others if you feel like it.
  • Google Services -- Google Analytics, Feedburner and Google Search Console
  • MailChimp ($$$/Free) -- Autoresponder/Newletter tool. Where as others offer a free trial period, MailChimp remains free for up to 2,000 recipients and a maximum of 12,000 emails in total per month. This is perfect when you are just getting started. If this isn't enough to meet your needs, check out AWeber ($$$) and InfusionSoft ($$$).
  • YouTube -- Host you videos on YouTube. Their systems are designed to work with video much better than your host provider's server will ever be.

In challenging times, remember this…

You learned to walk. You learned to talk. You learned to love and how to forgive. Don't believe. Have faith. Things will work out and, if you pay attention, your life will get better. Be grateful for what you do have and trust that you can and will grow from the experience. Help others by sharing your new-found perspective.

PHP Developer Tip: End-of-line format

If you are editing a PHP code file on Windows or Linux, make sure your file end-of-line format isn't Old Mac Format. This could cause problems when executing even if your PHP is flawless.