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:


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 Moodle, Git 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

  • Moodle XAMPP installation for¬†Windows¬†or¬†Mac OS X.
  • Moodle Reset OPCache plugin -- Allows you to instantly reset you PHP OPCache from within Moodle,,, for those times when nothing seems to change.
  • Moodle Code-Checker plugin¬†-- Test¬†Moodle source code to ensure it conforms to the official Moodle Coding Style Guidelines.
  • Moodle Development Kit (MDK)¬†-- A collection of tools to make life easier for Moodle developers.
  • Moosh -- Moodle Shell. Be sure to watch the videos. If you want to create a plugin for example, this will dramatically increase your productivity.
  • User Related Debugmodus¬†-- Though not as good as Moodle's built-in Debug Developer Mode, this is a great tool you can use to enable debugging on a per user basis on a production¬†server.
  • Moodle Debugger in Developer Mode (click Home >¬†Site Administration > Development > Debugging -- be sure to check the box next to "Display debug messages" if you want to see the errors on your screen. Otherwise they just end up in your log file.
  • phpMyAdmin¬†or¬†Adminer¬†-- to view and edit Moodle's¬†MySQL¬†database¬†tables. There is even a Moodle Adminer plugin¬†so you can edit the database right from within Moodle.
  • Moodle PHPdoc Check --¬†Checks phpdocs in the code for compliance with Moodle Coding Style.
  • Vagrant Local Development Environment -- Run your development environment in a virtual machine.

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 Security,¬†Broken 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.


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.

Buying memory for your Laptop / Notebook

Thinking of adding more memory to your laptop? Buying more memory can often one of the best ways to increase the speed of your laptop. When a computer runs out of memory, the operating system will start using your hard drive store memory temporarily. Unfortunately hard disk is MUCH slower than memory resulting in even the fastest computers slowing down to a crawl.

The good news is that, instead of buying memory from the manufacturer, you can often save some money if you have the right part number for your memory which you should be able to find out by asking questions where you initially purchased your computer or using Google to search for your make, model number and the words memory upgrade.

Always make sure that it is even possible to upgrade the memory. If you are lucky, you may even have an empty memory slot. Other times, you will have to replace existing memory. For example, if you have 2 sticks of 2 GB of memory in your computer and want to add 4 more GB, you may have to remove one of the 2 GB sticks of memory and replace it with the new 4 GB. If you don't know about this ahead of time, you may end up surprised when your computer starts up only claiming to have 6 GB of memory. And what do you do with the stick you removed? Sell it on eBay to recover some of your investment or just keep it as a spare part in a save place -- like the packaging that the new 4 GB of memory came in.

Most laptops and notebooks use a format of memory called SODIMM which is different from regular SDRAM type desktop memory even if the rest of the specs seem to match. It's a physical difference. Also, DDR2, DDR3 and DD4 are not compatible. Make sure you buy the right memory. If you are not sure, ask in a store or online before you buy. What doesn't usually matter as much is the brand. Most computer manufacturers don't make their own memory anyway.

Compatible memory will usually work but occasionally it won't. This happened to me a couple of years ago with a Lenovo Thinkpad.

The computer was constantly close to or actually running out of memory (according to Windows Task Manager) which seriously impacted my productivity. I needed to upgrade the memory quickly so I went over to Staples, purchased some memory and stuck it in my laptop. It worked perfectly on the first shot and was totally reliable.

About 6 months later my laptop got stolen and I replace it with the exact same model. Once again I had to upgrade the memory so I went back to Staples and purchased the exact same part number. My laptop wouldn't start up. I suspected that it was probably just a bad stick so I went back to staples and exchanged it for another of the exact same memory. The new stick didn't work any better. So I returned it. I admit that I was surprised and disappointed, especially since it had worked so well in my previous machine.

This was the first time since way back in the days of 386 CPUs that such a thing happened to me. I've even got great deals purchasing memory off of eBay, knowing full well that I was taking a chance, and they always worked well and were super reliable.

The moral of the story is, wherever you buy your memory, make sure they either have a good return policy or that you are getting a really good deal. The alternative is to get certified Lenovo memory from a place which may not have such a great return policy which is what I ended up doing. It was just a few dollars more and it worked on the first shot.

Which Web Development Programming Languages Should I Learn?

I am often asked this question by other Web developers. In fact, I regularly need to figure decide which web programming languages and technologies I need to learn next as part of my life long learning.

Start with Web Browser Technologies

Did you know? Even after over 20 years of mainstream web technology, web browsers only natively understand 3 things: HTML, CSS and JavaScript. That's it, that's all!

There actually used to be a fourth, vbScript, but it was only available in Internet Explorer and Microsoft finally deprecated it as of IE11. Anything more and it is usually an add-on, plugin or other synonym for what is essentially an extension.

So my recommendation would be to get the basics down. No matter what you end up working with after that, you won't be able to do without this basic foundation unless you just want to end up editing content in WYSIWYG editors.

Once you've got those down, you can expand into jQuery, Angular.js, Bootstrap and Foundation which are implementations of JavaScript and CSS. These should give you enough experience so that, if you do end up using different libraries or frameworks, you'll have an idea of how things work and will be able to adapt.

Server Side Technologies

Once you've got a good handle on web browser technologies, the next step is to look at Web server technologies. There are many options and you will have to make a decision as where you want to go with it.

Server side technologies enable servers to deliver dynamic content to web browsers. For example, it may send the browser different content depending on the context such as page being displayed. Basically your website has a theme/layout is separated from the content of the page. The advantage is that you can easily change the look of your website without having to modify the content.

Your first choice will be whether you want to work on Windows based technologies or cross platform technologies that can include Windows, Unix/Linux, OS X.

I could rattle off a whole list of server side programming languages like Java, Python, Ruby on rails, .Net, PHP, Perl, node.js and databases like MS SQL Server, MySQL/MariaDB, MongoDB, Postgres and many more. Is there a right one to choose? Who knows really. In my opinion, the right one is the one that lands you the job in my opinion. Just try to avoid the fads if you can. Those are the technologies that are supposed to be the next big thing and then fizzle out over the next year or two. It's like trying to always wear the latest fashion. Tomorrow what was way cool is so pass√©. Stay a little conservative… and again, pay attention to what is happening in your industry. In fact, you may even discover that certain industries have standardized on particular programming languages and technologies making the choice a no brainer.

Which ever server technology you end up working with, take the time to learn how to set it up and configure it yourself. Over time, this will serve you well, especially when something worked in the development environment and didn't when it went live onto the production site.

Life Long Learning is the Only Sustainable a Way of Life

There are so technologies that it will often seem like you picked the wrong one for the job. My recommendation here is to pay attention to what your employers are using, what the employers of your friends are using and learn those technologies.

If you are paying attention to your industry, even if you make a mistake and choose the wrong technologies to learn, it will still be possible to find work with companies that made the same mistake and you'll have less competition for these jobs when you find them.

I once had a job working for a company that used a programming language called "Crackhaven". You may not have heard of this programming language because the founders of the company invented it and it isn't used anywhere else in the world. Documentation was almost non-existent and was often incorrect. I didn't get the job because I knew Crackhaven -- I didn't. I got the job because I had lived a career of Constant And Never ending Improvement (CANI) which resulted in knowing so many programming languages that I can adapt to new programming languages with relative ease. Programming concepts are similar across most programming languages. Most of the time, it's just about learning how to use their function libraries and APIs.

Whatever technologies you end up learning, try to stick with them for at least a couple of years if you can. Notice that employers are looking for at least 6 months experience, often even 2-3 years minimum in job postings. If you constantly jump from one technology to the next, you may become very skilled but you still won't meet the requirements.

Follow the Money

Stay focused on your desired outcome and the results you really want. Pay attention to your industry and keep an eye on the job postings, even when you are not looking for a job. Keep in mind that 80% of all jobs are never advertised so you may assume that those that are might also be the ones that are harder to follow.

When you are working, also take the time to learn something new. You don't have to spend tons of time on learning, just a little every day. If you really want to change the direction of your career because you see yourself in a dying technology, you'll need to spend more time to ramp up. Stay focused on your desired outcome and the results you want to get.

To help you keep an eye on job market trends, take a look at Job Trends on Indeed.com. You can enter multiple technologies and see how they've been trending over the last few months/years.

Above all else, have fun. There is nothing worse than working in technology and hating what you do. Follow your passion and become an expert in what you do and there will always be new opportunities opening up,

While not computer programming, program your brain by learning about marketing. It doesn't matter if you are the best in the world at what you do, nobody is going to come knocking on your door if they don't even know you exist.

Don't keep it all to yourself. Share your knowledge at every opportunity, except when it is clearly not wanted. People don't hire you in hopes of learning your secrets, they hire you because they can't, don't know how or don't want to do it themselves. By helping people regularly, they will begin to recognize you as the go-to guy or gal, see you an authoritative figure and remember you fondly for years to come.