What Is Google Web Fonts?

For the longest time designers were limited to less than a dozen fonts that could be used safely on the web. If the person visiting the site didn’t have that particular font installed on their computer, another font would be displayed in its place, often negatively altering the appearance. If the developer wanted to use script or a decorative font, the main alternative was to use an image.

Google Web Fonts to the rescue!
Thanks to Google we can now create sites with fonts that people don’t need to have installed on their computers. By linking to a font in Google’s library, we can now choose from hundreds of different options.

Here, for Aviator Event Rentals, we used Google Web Fonts. The three lines of script under the headings “Rentals for All Occasions,” “Event Planning Tools,” and “Picture Gallery” are pulled from Google’s library.Aviator Event Rentals home page

Five Questions to Ask Your Prospective Web Developer

Finding the right developer to build a site that looks good, works intuitively and drives traffic can be key to growing your business. A visitor’s first impression can inspire them or deter them from moving forward and contacting you. But how does one go about choosing the right web developer?

Start by asking around. Find other business people you know and trust and ask them for recommendations. Go online, look at other websites. If you find one you like,write down the contact information of the company that built it. Once you have a list of potential developers, call them. The information you collect through this process will help narrow down your options.

Here are five important questions to ask your prospective web developer:

1. Can you provide me with a list of references, including a list of sites you have recently completed?

You can tell a lot about a developer based on client feedback. Was the working relationship was comfortable? Did the developer respond promptly? Was the final product satisfactory? If you had to build the site again, would you use the same developer? Look carefully at the sites in the portfolio. Are they appealing? Easy to navigate? Do the pages load quickly? Does the structure make sense?

2. Upon completion, who owns the site?

This is a consideration that too few people know to ask. There are tools available that allow just about anyone to call themselves a web developer. This software can be proprietary, which means that if the developer you are working with goes out of business, your site goes with them, and you would need to start over from scratch. Even if they don’t go out of business, if you don’t own the site, you’ll be stuck if you decide you want to switch to a different web developer.

3. Will I be able to make changes to the website myself?

Not that long ago making changes to your own website was not a simple task. In most cases you had to go through your web developer every time. Now most good web developers include the capability to update content on your website yourself, reducing ongoing costs. Also, updating your own content regularly can improve search engine ranking, because search engines value sites that have frequent updates.

4. Will the website be mobile friendly?

This year mobile access is expected to surpass PCs, and mobile phones, in particular, play a huge role in local searches. While most smart phones will be able to display any website, users frequently have to zoom and scroll a lot to view the information on their small screen, and there may be problems with navigation menus. Studies show that when users have trouble navigating a site from their smartphone they often leave it in search of another whose content displays correctly. Just because your website can be viewed on mobile devices does not mean that it is mobile friendly. Before you have a site built, confirm that it will be.

5. What are the ongoing costs?

Monthly hosting fees for a typical 10-20 page website with no ecommerce should be about $10-$15 a month. If you’re using a content management system such as WordPress, periodic software updates will need to be performed. If you are not able to handle this task yourself, you should expect to spend about $300-400 a year on maintenance.

There are many things to consider before building your website, but you now have a list of questions that will help you select a competent web designer.

Why Website Footer Links Are Important

We have recently been asked by a number of new customers to remove the footer links from the initial web design. Reasonings have included, “It’s ugly.” “Nobody will use it.” “It has no value.”

Removing the navigation at the bottom is not recommended for several reasons.

The bottom of the page is not the end of the site.
A compelling footer can lead users to delve deeper into the site. Instead of leaving them to decide where to go when they’re done with a page (scroll back up, leave the site, go elsewhere or just close the tab) give them some clues to where they might like to go next.

Footer links can help search engine rankings.
While links in body copy count for more than links all by themselves, such as in a navigation bar, sidebar, or footer, they do have value because your links tell the search engines which pages are most important.

Footer links are especially important on long pages.
While the main navigation is easy to access on pages that are short, longer pages may require the user to scroll down so far that the main navigation is hidden. Instead of forcing the user to scroll all the way back to the top, footers provide immediate access to the main links.

Footer links help mobile users.
Mobile users search differently. Because they typically have to scroll up and down more often than the typical desktop user, they find footer links especially useful.

Considering the needs of mobile users becomes more important every day as more and more people use their phone to search the web. In a July 2012 mobile marketing study by The Pew Research Center, 90% of American adults had cell phones. Of those, half were using smart phones, and two-thirds of new mobile phone purchases were for smart phones. So what does this mean? Because broadband coverage is still often very patchy, while mobile coverage is almost ubiquitous, smart phones are becoming a substitute for laptops. If  your potential customers are likely to be traveling or if they’ll likely access your site on the go, your footer links will be even more important.

What Does It Mean To Be Mobile-Friendly And What Is The Best Way To Achieve It With Your Site?

Website visitors are using an increasing variety of devices, from smart phones, net books, and tablets to desktop PCs and home theatre displays. This trend is not going away and it poses a question for web developers, “How can we make the user experience equally good on as many different devices as possible?”

When we ask, “Is a site mobile-friendly?” we don’t mean, “Is the site visible on mobile phones?” What we want to know is, “Does the site offer a good user experience on a small screen?” Many (if not most) websites still require the user to repeatedly zoom in and out in order to navigate on a mobile phone. This does not equate to a good user experience.

There are two ways to address this issue:

The First Option is to build two completely separate websites. The first site would be built specifically for small screens, and this would be the mobile site. The second site would be for larger screens, such as desktop computers. The browser may automatically detect the type of device and deliver the appropriate site, or the user may be invited to visit different addresses depending on the type of device they’re using.

Sometimes the content the user is likely to want or need differs depending on the device being used. It can be advantageous for the mobile version of a site to have fewer options and less depth. Content may be more concise, and the number and size of images may be reduced to lessen bandwidth and download time.

The Second Option is to build a website with a flexible framework that automatically adjusts to fit the user’s screen. This is called Responsive Web Design, and for many, it is the most practical option. By using a fluid layout, a single website can be easy to use regardless of the device.

Fixed Width Layout

This is an illustration of a fixed width layout on a smart phone (left) and desktop monitor (right).

Fluid or Flexible Width Layout

This is an illustration of a fluid or flexible width layout on a smart phone (left) and desktop monitor (right).

Many websites are still built using a fixed width layout. This means that the width of the content is always the same, regardless of the width of the browser window. One sign of a website built this way is when reducing the width of the browser window causes a horizontal scroll bar to appear. With today’s screen size diversity, fluid layouts make more sense. A fluid layout uses relative units to specify the size of each element on a page, and the relative positions are adjusted depending on the size of the display.

If you’d like to learn more about Responsive Web Design, email suzanne@trevellyan.biz or call 518.392.0846.

How To Create An Email Address To Match Your Domain Name Using Google

The internet has been called the great equalizer because, with a little help, anyone can look good on the web. A well-designed website can make even the smallest entrepreneur look as professional and respectable as the biggest box store.

There are many factors to consider when building your professional image. One of the most basic is the domain name of your email address. (Domain name is the words after the @ sign in an email address, for example @yahoo.com, @aol.com, @gmail.com.)

The examples above are the domains of companies that offer free email service, but if you already have a website, such as mybusinessname.com, then you should have an email address that matches your domain, such as [email protected]

To a web savvy user, an email address using your business domain looks more professional and can positively affect their initial impression. And consider this: every time you send an email, you’re giving the recipient the domain name of your website and encouraging them to visit. That’s free advertising.

If you already own a domain name, you may not have realized it but you can create an email address using your domain name at no additional cost to you. There are plenty of ways to make this happen. The one we recommend is Gmail. Gmail is free and effective, and it comes with some additional business tools that can help you be more organized and productive.

The exact procedure for registering your new email address using your domain name depends on your domain provider and whether or not you already have a Google account.

If you don’t already have an account with Google, start by registering with Google Apps for Business.

If you already have a Google account, here is a link to the instructions that Google provides:

If you’d like to use Gmail with your own domain name but you’d prefer to have someone else handle the registration, just give us a call at 518.392.0846 or email suzanne@trevellyan.biz.

The Importance of Web Page Titles

The way your website looks and functions, and what information it contains, are important elements. However, like the tree that falls without being heard, if your website is hard to find, then no matter how good it looks, how well it works and what information it contains, it will go unnoticed.

Search Engine Optimization, or SEO, is the process of improving the visibility of a website to search engines. While there are many factors that influence your standings in search results, one of the most important elements for individual pages is the Page Title.

Title PageThe Page Title appears at the top of the browser window when a webpage loads.

Chances are your site content has been written with your human audience in mind. But the truth is, your site is read by more than just humans. It’s read by search engine robots, too (also called bots or spiders). These bots locate web pages and index them based on the information contained on the page.

Page Title is the first thing the bots look at. From it they grab key information that they use on the results pages, therefore the title must clearly convey the contents of that page. Use descriptive keywords that offer a solution, rather than a sales pitch, and use a different title for each page.

Although you should always include your company name on the homepage title, including it in the title of every page isn’t necessary. Instead, choose words that reflect the contents of each page. Use common keywords and phrases instead of industry lingo and limit your page title to 64 characters.

Finally, the page title should be typed in title case, which means the first letter of each word is capitalized.

If you would like to improve your search engine rankings, give us a call at 518.392.0846 or email suzanne@trevellyan.biz.

Web Developer Testing Server Setup: Ubuntu LAMP Step-by-Step

As a web developer, we need a server on our LAN to test our work before we put it online. Testing on a standalone machine is both more realistic and less intrusive than running a web server on one of our work computers. Until recently our testing server was running OpenSolaris 2009.06, but Oracle has pulled the plug on OpenSolaris. I decided to take a look at Ubuntu Linux and found setup to be straightforward. Using Ubuntu 10.04.1 Lucid Lynx, a lot of the work has been done for you, with just a couple of gotchas along the way.

You will be required to choose passwords at various points during this procedure. Since our server will live behind a firewall on our LAN and is only for testing purposes, I used the same password throughout for simplicity. This is not recommended for a server that will see live deployment.
Click on any of the images in this article to zoom in.

  1. Download the 32-bit or 64-bit disk image, depending on your hardware, and burn it to a CD. Our server is an old Dell Dimension 3000 so we’re running the 32-bit release.
  2. Boot your server from the CD. Select your language, then choose the first menu option, “Install Ubuntu Server”.
  3. Proceed through the installation until you reach this screen:
  4. Select “LAMP server” to install the Linux Apache/MySQL/PHP combo. I also selected “OpenSSH server” so I could administer the server from anywhere on our LAN, without having to walk up to the machine.
  5. When the installation is complete the server will reboot. Login and make a note of the IP address assigned to the machine. This is the address you’ll use for transferring files using FTP, testing websites, and remote admin (if you installed OpenSSH).
  6. Execute the following command to install phpMyAdmin, for easy management of your MySQL databases:
    sudo apt-get install phpmyadmin
  7. At this screen select apache2:
  8. At this screen select “Yes”:
  9. When the phpMyAdmin installation is done, complete the following four steps to stop phpMyAdmin from complaining that “The additional features for working with linked tables have been deactivated…”
  10. Execute the following command:
    sudo nano /etc/phpmyadmin/config.inc.php
  11. Scroll down until you see this:
  12. Add the following line:
    $cfg['Servers'][$i]['tracking'] = ‘pma_tracking’;
  13. Press Control-o to save the file, Enter to confirm the filename, then Control-x to quit the editor.
  14. Complete the following three steps to stop apache2 from complaining that it “Could not reliably determine the server’s fully qualified domain name, using 127.0.1.1 for ServerName”.
  15. Execute the following command:
    sudo nano /etc/apache2/conf.d/fqdn
  16. Enter the following text:
    ServerName localhost
  17. Press Control-o to save the file, Enter to confirm the filename, then Control-x to quit the editor.
  18. To install an FTP server for file transfer using DreamWeaver or similar, execute the following command:
    sudo apt-get install vsftpd
  19. Enter the following command to edit the vsftpd configuration file:
    sudo nano /etc/vsftpd.conf
  20. Scroll down until you see this:
  21. Uncomment the write_enable and local_umask lines to look like this:
  22. Press Control-o to save the file, Enter to confirm the filename, then Control-x to quit the editor.
  23. Take ownership of the web hosting directory by entering the following command (replacing <your user name> with the user name you created during the Ubuntu installation):
    sudo chown <your user name> /var/www
  24. Restart your server by entering the following command:
    sudo reboot
  25. Test your web server by entering the IP address you noted earlier into your browser. If it’s working you will see a message like this:
  26. Test phpMyAdmin by appending “/phpmyadmin” to the IP address.
  27. If you’re in an environment that supports Bonjour (aka Zeroconf), e.g. if you’re running Mac OS, execute the following command:
    sudo apt-get install avahi-daemon
  28. Now you will be able to access your testing server by name instead of IP address. Just append “.local” to the name that you gave your server during installation (“ubuntu” by default).

If you find this guide useful I’d love to hear from you.

Div Content Rotation Using JavaScript

Our designer needed a way to rotate the contents of a specific div on a web page. The content to be rotated would include text and images in varying layouts. There are plenty of examples online showing how to change part of a web page using JavaScript, but most of the examples I found use JavaScript to generate the HTML. This means either the designer has to be comfortable programming in JavaScript, or they have to call on a programmer to make changes.

I wanted our designer (my wife) to be able to use their preferred design tool (DreamWeaver) to create the contents of the rotating divs, without having to call on a programmer (me) to make changes. I also didn’t want to place any restrictions on the HTML contents of the rotating divs. The solution I came up with is described below. You can see it in action here. The div that rotates is the Business Profile.

The divs
<div id=”before”>
    <p>this is the div before</p>
</div>
<div id=”destination”>
    <p>the contents of this div will be replaced</p>
</div>
<div id=”source1″ style=”display:none”>
    <p>contents of <span style=”font-weight: bold”>first</span> rotating div</p>
</div>
<div id=”source2″ style=”display:none”>
    <p>contents of <span style=”font-style: italic”>second</span> rotating div</p>
</div>
<div id=”source3″ style=”display:none”>
    <p>contents of <span style=”font-family: sans-serif”>third</span> rotating div</p>
</div>
<div id=”after”>
    <p>this is the div after</p>
</div>

What we have here is some arbitrary page content for illustration (div id=”before”), followed by the div we want to update with the rotating content (div id=”destination”). Next comes a series of divs (div id=”source1″ etc.), the contents of which will be rotated into the destination div one at a time. Finally we have some more arbitrary page content for illustration (div id=”after”).

The thing to notice about the divs to be rotated is the style=”display:none” property. This prevents them from being rendered or having any impact on the layout of the page. Without this property, the code above would render like this:

this is the div before
the contents of this div will be replaced
contents of first rotating div
contents of second rotating div
contents of third rotating div
this is the div after

Instead, what we see (without the JavaScript) is this:

this is the div before
the contents of this div will be replaced
this is the div after

The designer can create more divs to be rotated, using their favorite design tool, then paste them into the page source (as div id=”source4″ etc.), adding the display:none property to keep them from rendering or affecting the page layout.

The JavaScript
The following code is added to the body section of the HTML, below the set of divs, causing it to run when the page is rendered:
<script type=”text/javascript”>
    var sourceName = ["source1", "source2", "source3"];
    rotateDivContent(sourceName, “destination”);
</script>

When the designer adds more divs to be rotated, they include the corresponding names in the var sourceName array. This array determines which divs will be rotated into the destination, and in what order. This also allows the designer to bring specific divs into and out of rotation, simply by including them in or excluding them from the array.

The following code is added to the head section of the HTML:
<script type=”text/javascript”>
// select a source div and copy into destination
function rotateDivContent(sourceName, destName) {
    var divIndex = getCookie(“divIndex”);
    if (null == divIndex) {
        // initialize to a pseudo-random value
        var now = new Date();
        var index = now.getMilliseconds();
    } else {
        var index = parseInt(divIndex);
    }
    // adjust index to enable selection from array
    index %= sourceName.length;
    // increment so the next div will be selected next time
    setSessionCookie(“divIndex”, index + 1);
    // copy HTML from source div to destination div
    var sourceDiv = document.getElementById(sourceName[index]);
    var destDiv = document.getElementById(destName);
    destDiv.innerHTML = sourceDiv.innerHTML;
}


// search for named cookie and return its value, or null
function getCookie(name) {
    var cookieRE = new RegExp(“(^|; )” + name + “=([^;]*)(;|$)”);
    var found = document.cookie.match(cookieRE);
    if (found) {
        return found[2];
    } else {
        return null;
    }
}


// create or update a session cookie
function setSessionCookie(name, value) {
    document.cookie = name + “=” + value;
}


// prevent caching of this page
window.onbeforeunload = function () {
};
</script>

The function rotateDivContent does most of the work. In this example, a session cookie is used to keep track of the index of the next div to be displayed. My theory is that even users who are super-sensitive about privacy are reasonably likely to have session cookies enabled. The first time the user visits the page, the cookie doesn’t exist, so the index is generated pseudo-randomly by grabbing the current time in milliseconds. On subsequent visits to the page within the same session, the value is incremented and the destination div content is rotated.

Updating the contents of the destination div is as simple as setting its innerHTML property to that of the selected source div. Instead of writing elaborate JavaScript to generate a limited set of HTML, the code remains simple, and the designer can create arbitrarily complex HTML in the source divs using their preferred design tool.

An anonymous empty function is assigned to window.onbeforeunload to prevent caching of the page. This forces the script to run every time the user visits the page, ensuring that the div contents will rotate. (Unfortunately Safari 5.0 fails to re-render the page when the user clicks their back or forward button. Firefox, Camino and IE work as expected.)

You’re welcome to use or modify this code as you see fit. Please let me know if you find it useful.

iWeb FTP Gotcha

Apple’s iWeb is a simple solution for DIY web designers. There’s a short video tutorial for each iWeb feature. They make it look very easy, and so it proves to be. However, there is a gotcha in the video titled “Publishing Your Website via FTP”. In the FTP Server Settings, the field labeled “Directory/Path:” is left blank. That’s unlikely to be correct for most internet service providers (ISPs). It’s more likely that you will need to set it to something – public_html is commonly used, but you will need to check with your ISP for the correct setting. If this is set incorrectly, Test Connection will report no errors, and when you click on Publish Site, everything will appear to work fine, but your site won’t show up online.