5 Cardinal Rules When Creating a Web Site

Over the years – working as a developer I have seen both a lot of great and horrible things with clients. In order to avoid the “horrible things” – I would highly suggest taking a moment and reading through the points below.

Step 1: So you need a web site…

Your development options:

  1. You also know someone who has a cousin who does web sites on the side
  2. You outsource it to a company who charges $10/hour
  3. You find a reputable web development company

Cardinal Rule #1

Realize your development decision has consequences. All options have costs you might not be thinking about. Not everyone wants/can spend a large amount of money on a project so they decide to choose option #1 or option #2. The initial project cost is lower on paper so you go with it. The costs you really need to consider with the first two options are often hidden.

  • Communication: How can I get ahold of you to talk about the project/status/any issues? (If this is someone who does it “on the side” or is located in another time zone – are you ok with a delay or odd hours of communication?
  • Quality: Can your cousin’s friend who does this on the side create something that you want to represent you? Perhaps sometimes – but more than often – you will get something for less money and quality and it will show.
  • Cost: Option #3 is not always the best for you either. Perhaps you have a new business and you want something really professional, but you do not have a budget to match what you want. I have seen companies put so much money into their site – that their business fails because they overspent.

No options is perfect – but you need to be comfortable with the decision and realize there are potential downfalls.

Cardinal Rule #2

Get a contract in place with guarantees/terms. If whomever you decide to work with does not want to get this in place first thing – huge red flag and good luck. This is an essential part of any business as it sets expectations and protections for both the client and developer.

Step 2: Let’s start this!

Now that you have started the process and selected the right web developers – it is time to start building your site. The fun (or nightmare) is just about the start.

Cardinal Rule #3

Never let your developer register for all needed accounts/licenses. I have seen it time and time again where a developer registered something, stopped working for their company/client and with their departure also went all the licenses/accounts. Example – your developer offers to register your domain name for you, but when they do – they then get all notifications of when it expires, and control renewal. The developer then ends their business relationship with you for whatever reason and when your domain name needs to be renewed – you have no control over it and after spending money/time on building your online presence – lose it all because your domain name has been bought by someone else. Ouch. I have seen it. Another example: your developer sets up your hosting account. The developer leaves and they stop paying for/close the hosting account. Good bye web site. Better yet – you do not own the account and cannot even request a backup of your site. OWN YOUR DATA/LICENSES/ACCOUNTS

Step 3: My site is amazing!

After the development is over – now you can enjoy the end product (or can you?).

Cardinal Rule #4

Know what your backup policy is/make sure you actually have backups. Some people think $5.00/month hosting is a great deal until they realize they do not have any backups or that backup are an added cost that they never sign up for. Whoops. I have also seen more expensive hosting packages that only keep backups for 48 hours. This may work for some people – but if there was an issue on Friday, and you get in on Monday and realize it – your backups are not going to help. Make sure you are comfortable with your backups.

Cardinal Rule #5

Keep your software up to date. If there are security updates – apply these sooner than later. No excuses. If you are worried about an update breaking something – set up a staging environment and test there. If you do not have a staging environment but feel like testing is still important – spend the time and money to get one. I have seen clients who have had a security breach because they decided it would be best if they “only update quarterly” which may sound nice in a written report to someone – but when security issues come up and there are patches – they need to be applied ASAP or your site becomes vulnerable. Resolving security issues always cost greater than applying the updates.

In summary – not everyone knows the process or what they need to do when starting a web site project or maintaining their own site. My company has helped a lot of clients from start to finish and will make sure we go over the items above. We have also seen/helped a lot of clients who had an issue with one of the cardinal rules above and I, if possible, hope reading this has made you more aware of potential things to think about when doing any web site development. Creating and maintaining a web site can be a great experience or a nightmare. I hope your experience is great!

Embrace the New , Remember the Old

Four years ago I put together a base theme/framework called “Lucidity” that served me well. I even created a mobile version which also worked great. As the years went on – and I started using Bootstrap for responsive designs, I realized it was time to update my personal site and here it is. I will be making some final tweaks over the next few days, but it feels good to get something new and more modern out there, while still using some of my favorite elements of Lucidity and the older versions of jappler.com along the way.

Hello new design

[responsive-image id=’3186′]

Goodbye old design

[responsive-image id=’3185′]

Install Varnish in Under 5 Minutes With Bitnami

If you have been following my posts for the last month (or talked to me about what I have been up to recently) you will not be surprised I have another post about the ease of use/awesome documentation when using Bitnami.

I still am 100% impressed with the documentation – as each example I have followed has worked flawlessly (not something I can say much…especially after spending an evening trying to fix my PS3 vs. play it a few nights ago).

What is Varnish?

Varnish Cache is a web application accelerator also known as a caching HTTP reverse proxy. You install it in front of any server that speaks HTTP and configure it to cache the contents. Varnish Cache is really, really fast. It typically speeds up delivery with a factor of 300 – 1000x, depending on your architecture.

Source: https://www.varnish-cache.org/about

Where is this amazing 5 minute install documentation?
Bitnami Varnish Installation

Seriously…check it out!

The Importance of User Defined Tests

When working on a large project or a seemingly simple task – I have come to realize it is extremely important to always get a test case (or test cases) directly from the client. As programmers and developers, we often have one idea of how something should work, while our clients have something different either because of business logic or lack of really knowing how to describe what is needed.

By having your clients define the tests – both the developer and client win. The client is forced to describe the actual function in a logical way. The developer can read over the test and fully understand what the outcome needs to be. The client and developer also have a defined result which will be easy to test.

As developers – we all test our work one way or another, but believe me, it is much better if your tests actually matched what the client uses as their tests (which is surprisingly different more than you would expect).Moral of the story – while the user does not need to create some extravagant testing plan – by asking them to define a test case – they are more likely able to better explain what they really need. The developer then is able to do their testing and be confident they know what result is needed and everyone is on the same page.

Install Memcache in Under 5 Minutes with Bitnami

The more I work with Bitnami, the more I absolutely love it. After migrating a number of applications over to my server – I realized I could benefit from using Memcache. I decided to do a quick look at the documentation for Bitnami and found exactly what I needed. Within 5 minutes I had Memcache up and running.

Of course after I did that – I also took a closer look to see what other PHP modules were available – and installed a few more. What I love most? The documentation is great and everything I try actually works – no exceptions – on the first attempt.

Still not sold? Not only are there a ton of PHP modules available, there are a ton of “stacks” available to download/use with ease. Example: Monit, PHP Frameworks like CodeIgniter, Apache Solr, Varnish, etc. Make sure you put this on your “to check out” list and then thank me later!

How To Not Get Me to Update One of My Free WordPress Plugins

This morning I arrived in my office to see an email with a request to make a change to one of my free WordPress plugins: SDAC Translate. I take requests and have made changes to pretty much all the plugins I have available as long as they are reasonable and would help/benefit other users as well.

The person who emailed me started off by calling me a “bigot” because I used the US flag for English and the Portuguese flag for Portuguese (instead of also offering the UK and Brazilian flag as options). They then told me I should take all the money I earned from people donating (over 2,500 downloads, no donations) to go fly to the countries so I could see the difference between the US/UK and Brazil/Portugal. They then also told me they were disabling the plugin until I made the change – and were going to tell everyone why they disabled it.

While I thought about it for awhile – I realized this could get ugly fast. I would potentially then have to have a Canadian flag for both french and english, Mexican/Peru, etc for Spanish, etc It is just not something that I thought would be a good thing for the plugin. The flags are there for a general representation of languages. Google Translate does not care if it is US vs UK – you still get the same exact EN translation.

While name calling and threats apparently work- for putting in extra development (free) time for a plugin which is also free – I decided that I would keep the integrity of my plugin as is and not make any changes. I then mentioned how they could easily take what I had under the GPL license and make their own changes to it – without any issues.

Something to remember – when making any requests for free development on a free product – at the very least, be kind or do it yourself.

Moving Everything to Amazon S3

Over the weekend I decided to move all my media to Amazon S3 for the majority of my personal sites. I have been using Amazon S3 now for a few years with my backups and have made the transition from local media > Amazon S3 for multiple clients. Everyone has been happy and the load times/cost has proven itself.

I run WordPress Multisite so things were a little more complicated when migrating the content – but I finally have everything in place. Plugins I used:

  • Amazon S3 – Gives you the ability to upload all new media to Amazon.
  • CDN Sync Tool – Synced all of my media files from my local install to Amazon
  • WP Super Cache – Makes sure all my theme/media files are served using the CDN

If you are looking for some speed improvements as well as a better backup/file strategy – consider doing the same!

Find JS Code Issues and Errors With JSLint

Ever have a page not load properly in IE 7 but it loads fine – without error – with all other browsers? After you validate all your CSS/HTML and the error or funky behavior persists…and you have made sure your doctype is correct – what can you do? Validate your JS using JS Lint.

What is JSLint?

JSLint is a JavaScript program that looks for problems in JavaScript programs. It is a code quality tool.

I just got done with some cross browser consulting (my favorite) – and one of the pages would not load properly in IE 7 due to a JS error which did not make sense to me. I loaded up the offending JS in JSLint and within a few minutes – I figured out what the issue was and how to solve it.

JSLint is invaluable if you do any work with JS – so keep the link handy! You will thank me – and JSLint.

HOWTO: Target Firefox for Specific CSS

Generally – the best way to handle CSS is to keep it simple, clean, and without any hacks. From now and again there are some times when I need to write CSS specific to IE (using conditional comments). I recently came across a site where I needed to target Firefox because of a width issue. This is the first time in my many years I ran into this – and tried a number of hopeful solutions but nothing worked. I then found that if I used: @-moz-document url-prefix(){} that that would work out and only Firefox would use the styles within that.

Example:

.font_example {font-size:1.1em;}
@-moz-document url-prefix() {
     .font_example {font-size:1.075em;}
}

Safari, Chrome, IE, etc will use the first .font_example code while Firefox will use the code within @-moz-document url-prefix(){}.

While this is not recommended for everyday usage – when and if you hit a wall, this could be something that will save a lot of time and headaches!