Tag Archive | Programmers

New Clients and The First Date

ProgrammingI would like to take a sec to address the “first date” when the freelancer meets the new client. Times have changed a great deal. Many clients are comfortable hiring freelancers nowadays, and will usually offer to meet at a public WiFi HotSpot for the first meeting.

That being said, this is not an excuse for either party to reduce any professionalism appropriate for such an important start of a relationship.

I like to get as much information about the needs of the client prior to the first meeting. Being prepared is the best approach. Many new clients, especially if they have a new domain, are unaware of the common pitfalls. This is where the developer, as an experienced professional, can anticipate and ask questions that may have not been considered by the client.

I cannot speak for all developers, but even the best laid plan has some issues. Planning for the link structure and database should be as generic as possible initially to allow for dynamic adjustments during the development process. This is one of the main reasons why I prefer to use Object Oriented Approach to building large projects. PHP is my programming language of choice, and is afforded to Object Oriented Principles. Simply put, it allows the developer to take a “modular” approach, allowing for dynamic expansion.

Some professionals disagree with my approach when it comes to proofs, but I like to have at least one layout to show for the first meeting. The earlier you can get a handle on the look and feel that will appeal to the client, the less time will be spent on design changes. That being said, it is also a good idea to have at least a standard css layout foundation prior to development. Finding out things like whether the client is interested in a left weighted two column, three column layout, etc are good things to prepare prior to the first meeting.

Google Maps API Hybrid

My latest project, screenshot above, involves reviewing the bus schedule for Broward County.

I  have recently had he pleasure of using the local transit system, and while I applaud their overall efficiency, trying to navigate the schedule is a bear! The times are all listed out on a grid that one must scan across to line up your stop with the time that you wish to depart.

Feel free to take a look for yourself at Route 55 for example.

I decided to scrape the data from their schedules, add a map and a little Ajax ;).

Basically one must select the route, the direction, and the stop. Once you select the stop, you will shown the times for that stop, as well as a map from Google with a marker at the stop you selected, and a line indicating the path of the route you selected. I hope you find it useful. 😉

TRY IT OUT HERE

WordPress Installation 101

WordPress Technician

I decided to a few posts sharing the easy way to download and install WordPress blogging / CMS Open Source Platform.

WordPress is my choice because I have been using WordPress for several years now, after having tried many of the other platforms available. As a developer, I have found the learning curve for new users is very low. The back end interface is very intuitive, and the popularity of WordPress, makes finding self-help tutorials online relatively easy. If you are willing to learn some HTML and PHP, you can easily learn how to customize your own WordPress installation.

I am not going to elaborate on the server requirements for the platform, I am going to start from the point where you have already set up your own hosting account and have verified that WordPress can be installed. This tutorial will cover a manual installation of WordPress. Although many hosting providers provide a single click installation, if you decide to install it yourself, you can follow along.

I use HostGator for hosting, and the account includes a CPanel interface for backend functions. If you have not done so already, you will have to create a new database. Then create an admin user and password, and have this information handy as you will need it for the installation. When creating the user for the database, I would suggest letting the random password generator create the password for this user, as it is typically more secure.

Read More…

WordPress Troubleshooting Steps

WordPress TechnicianI just finished troubleshooting a wordpress installation for a new client, and wanted to share the experience here.

The client has recently moved the website to a new hosting provider. Typically this will be seamless, however, as I have mentioned here before, there are hosting companies out there who are not keeping up with the latest technology. Unfortunately clients do not realize this until after they have moved and installed everything.

So we got the provider to update to the latest PHP, and we also had to make a second call to enable the GD library for PHP in order for thumbnail plugins to function.

At around 9am this morning the client called me with a major crisis on the home page. Ugh. So much for a lazy Saturday. The client rushed over the deposit, and  I got my WordPress Tech on. So the home page was pretty critical. The page rendered the top quarter of the page; header, nav, and banner and then died around the area where one would expect the main content to be displayed. Instead there was a cryptic error that basically led me to believe that a plugin was the culprit.

I logged in to the Admin section of WordPress, and noticed that many of the plugins were ready to be updated.

As a test, I deactivated all of the plugins, and reloaded the home page, to see if this resolved the issue. This did not.

I then proceeded backup the entire database. Store this data in SQL format with Inserts to make restoring data faster. SQL is the best option to store backup database data in my opinion.

Once you have a database backup, you can then safely update all the plugins as needed. Once this was completed, I noticed the error remained.  Regardless, these basic maintenance steps need to be taken anyway.

Although one can edit theme files directly from WordPress, I chose to use DreamWeaver as my editor of choice. I connected to the server, downloaded the files, backed those files up, then proceeded to investigate more thoroughly into the root cause of the fatal home page error.

I should mention that the category pages, and single post pages were rendering fine, to a point. Whatever was causing the error was being loaded after the content on those pages, but before the content on the homepage. After looking at the single page first, I could see there was an include that was causing the error. Once I commented out the include, the page rendered without the error. Prior to making any changes, I saved a copy of the file and added _bak to distinguish this from the file that I am currently making changes to. Even though commenting out the include does not remove it from the file. It is best practice to save a copy of the original file before you make any changes at all.

I then proceeded to the home page and found similar includes. I began to comment out the ones that I could associate with the sections of the page they were named after and was able to finally eliminate the fatal error on the homepage. I can’t stress enough how important it is to use a logical naming structure for custom files.

The next step at this point is to investigate these includes to see what the real source of the error was.

I hope this helps with how to approach troubleshooting errors on your website. Try to fix the obvious things first before jumping to conclusions.  Also a note that a reputable developer will never charge you to tell you that you should get your hosting company to update their servers. If they do, find a real developer ;).

Project Planning – Collecting Information

Programming

As a programmer, I cannot begin to tell you the advantage of having a clear cut plan before proceeding with a project.

Collecting Information from Website Visitors.

This is regarding more than just a contact form. This project requires the user to complete a form prior to access to information. So, some considerations prior to setting this up will be helpful before you approach your developer.

  1. How sensitive is the information you request?
    1. Any personal information that could be potentially used to create identity theft should be at least transmitted using a secure (SSL) connection. “Just Slap One On!” will not work in this situation, if you do not already have an SSL Certificate installed. First, you must request (typically purchase) a dedicated IP address. Then, you will have to purchase the Certificate from a provider, and install said certificate onto your hosting server. Most people think you just order one, and bam! No, this is not how SSL Certs work.
    2. Information submitted by users,  if transmitted via email, in order to maintain secure/privacy, should be encrypted before being transmitted. If the information is retained in a database, this information should also be encrypted, passwords should be hashed using (whirlpool [PHP]) as a bare minimum.
  2. Using Session based cookies are more reliable for granting temporary access for users. Remember that you should set the location of session storage, above the web root folder.
  3. Will the user be returning for access?
    1. This would require a bit more planning, database structure, etc.
    2. Creation of a “profile” page.
    3. Define the functionality of logged in visitors versus general public.

These are a small dose of the bare minimum of the thought process that goes into planning for a “form”. So the next time you tell your programmer, “Oh hey, I just need to add another form”. It is a little bit more than just add the form.

I have not even begun to address the design and layout concepts, and the impact this could have on the success of the form.

Project Planning is an important element to your online platform. Your programmer takes it seriously. So should you. Think about it several times, and be sure to write down thoughts and ideas, and discuss them with your developer either on the phone or via email. If programmers are alike in anything, is that we would rather have your thoughts on an email that we can refer to, to make sure that we have the complete task in our grasp.

I hope this post helps you with your relationship with your developer. And send him a gift basket with coffee and snacks! We love coffee and snacks while we work on your code all night long -=)

Burning the midnight oil, just for you guys.

bless. B.