Tag Archives: web development

How Do You Make a Resizing Icon Bar for Your Website?

Today, instead of an informative article, I have a question for my readers. How do you make an animated, resizing icon bar?

Example Images of What I’d Like to Create


This is a smaller example of how I’d like the icon bar to look when a user loads the main page; larger icons, easy to click on.


This is a smaller example of how I’d like the icon bar to minimize when a user clicks an icon and goes into one of the content areas of the site; smaller icons, but still visible.

Usage and Placement of the Icon Bar

Ideally, I’d like the icon bar to run horizontally along the very top of the page, so that the navigation for the site is not too obtrusive for reading. It would also be awesome if the user could expand the icon bar out again by hovering over this bar.

Is This Even Possible?

I have found a few tutorials that kinda sorta do this, but don’t really get the exact same functionality.

The jQuery “Sliding Panel” Code

w3schools.com has these tutorials and examples for building a sliding panel or animated panel. This could possibly work for opening and closing a menu, and perhaps even a navigation bar like I wish for.

However, I’m not sure how to make the icons display bigger when users first visit the site. I think I’d probably have to stay with the same icon sizes so that the rest of the layout wouldn’t be thrown off with bigger images.

The JavaScript Hide/Show Menu Code

CSSCreator.com shows a way to hide and show specific divided layers with a Javascript in your header and some special classes created in your CSS.

This type of solution can produce a menu that is very easy to hide away when not needed, but it wouldn’t be automatically opened when the user first loads the page–it could end up being confusing rather than helpful to users.

What’s Your Answer?

Do you know of a way that I could create this resizing icon bar? Let me know in the comments! (If we can figure this out together, I may be able to debut this new trick on the upcoming Version 13 of WithinMyWorld.org!

You Might Be a Webmaster If…

For a little lightness and humor in today’s Webdesign post, I thought I’d include a Jeff Foxworthy-style list of ways you know you’re a webmaster. See if these aren’t as true for you as they are for me!

You Might Be a Webmaster If…

  • …you instantly know what font a business’s sign uses.
  • …you find yourself admiring the gradient effect of a sunset.
  • …you can type the following code in your sleep: <html><head><title></title><link rel=”stylesheet” type=”text/css” href=”style.css”></head><body></body></html>
  • …you routinely have nightmares about a PHP script that just won’t run right.
  • …you find yourself bracketing your sarcastic comments on the Internet with <sarcasm> and </sarcasm>.
  • …you make the analogy that kudzu is like a Javascript without a </script> ending tag.
  • …you have been known to shout at sluggish uploaders, FTP programs, code editors, and any other program which dares to get in the way of your creation.
  • …you see a bottle of AJAX brand dish soap at the grocery store, and wonder idly what part of the aisle it’s updating.
  • …you have been known to dance around your room upon getting a page to display properly.
  • …you use the Copy and Paste keyboard shortcuts on your computer more than the Spacebar itself.
  • …you often curse the existence of old Internet Explorers (especially version 6).
  • …you have officially broken up with GIFs (especially the animated kind).
  • …you cringe inwardly when someone asks you “Hey can you look at my website and fix it?! I think it’s pretty cool cause I have a lot of colors and tables and I’ve got links all over the place…?!”
  • …you saw this comic at The Oatmeal, and wept for joy that someone else finally understood your last freelance job.

Know any more funny “You Might Be a Webmaster If…” moments? Leave a comment and share your ideas!

Looking at Our Sites with Fresh Eyes

In this age of service websites and apps popping up all over the place, inevitably we as Internet users find that services duplicate each other. (Take the social-bookmarking sites Stumbleupon and Del.icio.us; they are pretty much identical in function.)

When this happens, we tend to weed out which service we’d prefer to use with something that seems more like an instinct than a conscious thought process. We evaluate identical sites, and indeed every site we choose to visit, based on their usability, available community, site structure, and design, and from there we choose whether we want to stay on that page or visit another site.

What we might not realize, as web designers/developers, is that our own sites are constantly being evaluated in the same manner, whether we offer an identical service as another site or not. Our users are often just as discerning as we are (and sometimes more so); if we’re having a harder time with receiving and keeping visitors to our sites, we may need to reevaluate how our sites look, function, and serve in users’ online lives.

In this article, I’ll compare and contrast StumbleUpon and Del.icio.us, studying their virtues as well as issues, and how we can learn from their individual troubles and successes as web designers and developers.

The Identical-Service Conundrum

I’ve had accounts at both Stumbleupon and Del.icio.us for ages, because both places used to be pretty good at saving my bookmarks socially, and I used to have different buddies on both sites’ networks. Now…well, I’m looking at getting rid of one of them. It’s not just because it’s annoying to sign into two sites and keep bookmark lists the same across two sites. It’s also because of the QUALITY of the service I’m getting from each site.

For me, it’s pretty easy to choose one to drop, because the usability of one of the sites (Del.icio.us) has gone downhill sharply, while the other one (Stumbleupon) has stayed pretty much the same. These are the issues I experience with Del.icio.us:

Del.icio.us Problems

  • Takes forever to load, even on fast connections–and you might as well not even try on dialup. (I waited FORTY-FIVE MINUTES for it to load on dialup, with nothing showing up at all and nothing else trying to load at the same time.)
  • Login process works about 40% of the time; otherwise, it either throws you to an error screen which doesn’t help you, or just hangs until you finally get tired of waiting and refresh the page.
  • No real way to connect with people on there–you can “follow” them, but it doesn’t really provide a good way to interact, not like it used to.
  • Useless feature: “stacks,” which basically do the same thing as tags. Why bother?

Stumbleupon, however, is not free of issues itself, as you’ll see below:

StumbleUpon Problems

  • Instead of saving the “real” address of a page, it saves a “StumbleUpon”-shortened link address that tells you nothing about what you’re visiting.
  • When you click on a “StumbleUpon”-ified link, an annoying black bar across top of the page tells you everything about StumbleUpon and its service, but takes away from the content you were looking at.
  • It’s very hard to add bookmarks if you don’t want to use the black bar–the “Add a New Page” feature is buried at the bottom of the left column on your profile page

When I compare and contrast the two services, this is the full list of pros and cons:

Del.icio.us

Pros

Can save “real” links
Not hard to add links, once you can finally login
Doesn’t have a browser-wide feature that detracts from your Internet usage

Cons

Can’t even login at all sometimes
Text-based link format, which should load easier but doesn’t
Networking/community is pretty much nonexistent
Useless feature: “stacks”
Does not offer a way to randomly browse Internet sites
Tag system can get unwieldy and hard to manage if you have a lot of links
Link-saving process sometimes hangs the whole browser

StumbleUpon

Pros

Can login easily, even on dialup
Pictorial link list, so you know more of what to expect from each link
Better ways to network with others
No useless features
“Stumble!” button easily browses your interests
Categorizing takes a little longer, but helps other users as well as yourself
Link-saving process takes seconds, even on dialup

Cons

Not easy to save “real” links
Hard to find how to save links, but once you do, it’s easy
Takes over your browser window with the black bar when you’re logged in

Given this compare-and-contrast table, there are a lot more pros for using Stumbleupon than Del.icio.us, and the pros are very important structural and design features rather than surface-level perks. The cons, while measurable, are bearable. Meanwhile, Del.icio.us seems to have serious issues with the login and link scripts hanging up, which kills the effectiveness and utility of the site itself. Why would anybody use a service that won’t even let you login most of the time?

What Can We Learn from These Pros and Cons?

As web designers and developers, there are several important lessons we can learn from this compare/contrast example:

  1. Make sure all the scripts that make your page function actually work, as close to 100% of the time as possible.
  2. Do not accidentally “hide” important/useful features or info from your users, either by putting links to them on obscure pages or making the links appear in small text.
  3. Do not take over a user’s whole internet experience with your service/app, without an easy option to opt-out.
  4. Make sure that all the features you’re developing for your site actually need to be developed for better functionality.
  5. Don’t make changes to your service/app and not let your users know.

The main takeaway is this: we always need to be mindful of the user’s experience when we design and maintain our sites. It’s hard for me, as the Internet mommy to withinmyworld.org, to step back and see my electronic baby objectively–but that is exactly what I must do, and what we must do as purveyors of Internet content. We must be prepared to judge our sites as our users will be judging them, looking critically at how we’ve designed our sites’ layout, graphics, code/scripts, and content to see if there are places we should make it more efficient, elegant, and easy to browse.

Think of it this way–if we don’t take the time to evaluate our sites objectively, then we will never know if our users are having difficulties with our sites, because we won’t have any users!

Query: What is jQuery?

[/shameless parody of Lt. Commander Data in blog title]

Most web designers are familiar with HTML, CSS, and Javascript–they are the most basic web languages out there, forming the foundations of what the rest of the Internet is built on. Javascript in particular can make very pretty Web sites, in the sleek Web 2.0 style with subtle animations (like tidy menus you can pull out or put away with just a click).

Alas, Javascript is generally implemented through clunky individually-written or copy-pasted scripts, some outdated and some not. Poorly-written and bloated Javascript is one of the top Web features that can slow a page’s load time, as I well know from trying to load Javascript over dialup.

But what if I told you that Javascript isn’t just a random assortment of scripts and functions anymore? What if I told you that someone was bored awesome enough to gather all that Javascript can do into a single resource that developers can draw from?

It’s called jQuery…and it rocks.

What IS jQuery, Anyway?

Basically, whatever page element you’d like to animate, manipulate, or just plain select, jQuery can do that for you, just with the addition of one file to your site directory.

Think I’m kidding? Look at the detailed list of stuff jQuery can do, according to w3schools.com:

  • HTML element selections
  • HTML element manipulation
  • CSS manipulation
  • HTML event functions
  • JavaScript Effects and animations
  • HTML DOM traversal and modification
  • AJAX
  • Utilities

What this means is that you can now do page animations without images, slide various menu “panels” in and out of place temporarily, give blocks of text or images new formatting…practically all the other stuff you’re used to JavaScript being able to do. And, you can access all of those functions through code as short and simple as this:

<head>
<script type=”text/javascript” src=”jquery.js”></script>
</head>

You no longer have to copy-paste multiple iterations of <script type=”javascript”> into the <head> section of your webpages; all those functions are right there, waiting for you to ask for them (one reason it’s called “jQuery”).

jQuery’s Syntax

To include functions, you still have to put the script reference in thesection of your document, like you’re used to doing with individual JavaScripts. However, the syntax (how you write the script itself) is a little bit different.

Code Example

<html>
<head>
<script type=”text/javascript” src=”jquery.js”></script>
<script type=”text/javascript”>
$(document).ready(function(){
$(“button”).click(function(){
$(“p”).hide();
});
});
</script>
</head><body>
<h2>This is a heading</h2>
<p>This is a paragraph.</p>
<p>This is another paragraph.</p>
<button>Click me</button>
</body>
</html>

This example from w3schools.com, shown here for easy reference within this article.

Explaining This Code, Step by Step

First, you call for the jQuery library (the first <script> tag); that alerts the browser that “hey, we’re going to be doing something with this, so have your jQuery book open to the right page!”

Next, you start the individual script you’d like to run. In this case, the script’s function is to hide paragraphs when a button is clicked.

(Note: Before you have the script do anything else, it’s good practice to add in the “document ready” line before calling any other function in jQuery, because it gives the page time to load before the script starts running.)

After the “document ready” line, the actual script starts. This particular script selects all button elements on the page, and designates that when every button on this page is clicked, all elements will be hidden.

Changing This Script: Hiding One Paragraph

If, however, you wanted only one button on your page to do this effect, and only one paragraph to be hidden, you would change the script to the following:

$(“#click”).click(function(){
$(“#hideme”).hide();

And you would change the HTML code to the following:


<body>
<h2>This is a heading</h2>
<p id=”hideme”>This is a paragraph.</p>
<p>This is another paragraph.</p>
<button id=”click”>Click me</button>
</body>
</html>

In this modified example, you can see that adding an ID to both elements you want the script to use will make a difference in how the script runs. Instead of all buttons hiding all <p> elements, now only the button with the ID of “click” will affect the paragraph with the ID of “hideme”. Simple, but page-changing!

Changing This Script: Hiding One Class of Paragraphs

Say you wanted one button on your page to hide all <p> elements of a specific class? You can do that, too! Just make a tiny adjustment to the “hideme” ID, changing it to a class instead:

$(“#click”).click(function(){
$(“.hideme”).hide();

Make the corresponding change to your HTML code, like so (an additional <p> element has been added so you can test how it only hides the specific class):

<body>
<h2>This is a heading</h2>
<p>This is a paragraph.</p>
<p>This is another paragraph.</p>
<p>This is more stuff you’d like hidden.</p>
<button id=”click”>Click me</button>
</body>
</html>

More Examples of jQuery’s Abilities

You can see a couple of other examples through the w3schools website’s Try It! pages. For instance:

Fade out an element
Slide an element out of the way and back
Change the CSS of a particular element

Going Further with jQuery

If you want to learn more about the host of wonderful things jQuery can do for your webpage, the w3schools page on jQuery is a great place to start. (I’m personally going to be exploring jQuery for possible use in my domain’s next layout… :D)

Puzzling through PHP, Part 2: Making a Searchable Database

One of my longest-held dreams, as a fledgling Web designer and developer, was to make a fully searchable database of some sort. I used to dream about building a link database or directory, but as I became a collector of M:TG cards, I discovered I wanted to create a database of all the cards I wanted to trade instead.

But I didn’t dream about it being possible, especially not with any Web language I knew. Little did I know, PHP and MySQL working together could make my dream come true. And the best part is, you can make a database like this too! See how I managed it, with the steps below.

#1: Create the Database to Search

On your host’s control panel somewhere, you should have a way to create MySQL databases. This short tutorial shows you the generic way to create databases from your web host’s control panel, while this longer tutorial has a little bit more tech knowledge needed, but shows you how to manually set up MySQL username, password, etc.

For any database setup, you have to give the database a name, then make yourself an “admin user” account so you can access it. Lastly, you have to make a table within the database to hold the data you want to put into it. While you’re doing this, do not forget to write all this information down–you will need the database name, your admin username, and your admin password to do anything with your data afterwards.

Sample information:
Database name: mydata
Admin username: helloitsme
Admin password: epicsuperlongpassword
Database table: mydatatable

#2: Upload Your Data

To have a searchable database, you first need to have data. You could go through and manually create a MySQL database and plug data into it using a ton of MySQL commands. Buuuuut there’s a much easier way.

Microsoft Excel pages, or any other spreadsheet program pages, for that matter, can be converted over to .CSV (Comma Separated Value) format. These, when uploaded to your server through phpMyAdmin or another MySQL handling program, help populate an existing database table.

Example: For my Magic: the Gathering trades database, I had several pages’ worth of card data, which I’d spread out into individual worksheets within Excel. To translate all of those into .CSV format, I had to remove the label rows and columns (like “Name of Card,” “Condition,” etc.), and then had to save each sheet as a separate .CSV file. Then and only then could I upload it through phpMyAdmin to populate my created database with data.

#3: Write PHP Code to Search the Database

The following code is an actual example of the code I use for searching my M:TG trades database; of course, the username, password, and database name are not given here, for security reasons, but everything else remains the same. You’ll want to put this database-searching code in a separate PHP file from your HTML file where your search form is.

(By the way, I do not take the credit for making this code in any way–a dear computer programmer friend of mine used his coding skill and fixed the code so that it does work. AT LAST!! LOL)

<?php if ($searching == “yes”) {
echo “<p class=\”heading\”>Search Results</p>”; }
if ($find == ” “) {
echo “Oops!  No search term entered–try again!”;     exit; }
//Variables
$host = “localhost”;
$user = “helloitsme”;
$pass = “epicsuperlongpassword”;
$db = “mydata”;
$text = $_POST[‘find’];
$con = mysql_connect($host, $user, $pass) or die (“Connection error”);
$sqlDB = mysql_select_db ($db) or die(“Database selection error”);

$find = strip_tags(trim($text));
$find = strtoupper($text);
$query = mysql_query(“SELECT * FROM mydatatable”, $con);
$found = false;

//This loop will select the row and then uppercase the entire entry
while($data = mysql_fetch_array($query, MYSQL_BOTH)){
$updated =  strtoupper($data[‘name’]);
if($updated == $find)    {
echo $data[‘name’].” “.$data[‘rarity’].” “.$data[‘set’].” “.$data[‘condition’].” “.$data[‘amount’].” “.$data[‘color’];
$found = true;
break;    }}
if(!$found)
echo “Could not find this card”; mysql_close(); ?>

What Does This Code Mean?

<?php if ($searching == “yes”) {
echo “<p class=\”heading\”>Search Results</p>”; }
if ($find == ” “) {
echo “Oops!  No search term entered–try again!”;     exit; }

This determines whether the search has been sent to the server for processing, and if anything’s been put into the search form.

If the search form has been passed to the server, the value of the variable $searching will be “yes”; the if statement concerning this variable cues the browser to display the heading “Search Results” in anticipation.

If the user didn’t put anything into the search form, but hit Submit anyway, the variable called $find will be empty; the second if statement returns an “Oops” message if this is the case.

$host = “localhost”;
$user = “helloitsme”;
$pass = “epicsuperlongpassword”;
$db = “mydata”;
$text = $_POST[‘find’];
$con = mysql_connect($host, $user, $pass) or die (“Connection error”);
$sqlDB = mysql_select_db ($db) or die(“Database selection error”);

These are some of the necessary variables we’ve defined for this particular script to run: the host’s name, username, and password for the database ($host, $user, $pass), the database selection ($sqlDB), the connection to said database ($con), and what the search term was ($text).

You may not need all of these, but we found that the script ran better when all of these variables were clearly defined for the browser.

$find = strip_tags(trim($text));
$find = strtoupper($text);
$query = mysql_query(“SELECT * FROM mydatatable”, $con);
$found = false;

These four variables have more to do with refining the search terms and running bits of the script.

The first $find variable strips any code from the search term, so people can’t hijack the database using malicious code. The second $find puts the search term all in uppercase letters. Both help the search script run more quickly (and protect the database from the most basic of hacks).

The $query variable executes the actual script’s purpose: searching the database for anything matching the search term. And to be honest, I don’t know what the $found variable is for at this point in the script…all I know is that it makes the script work. (Pathetic, I know…this is where my PHP knowledge is spelled F-A-I-L.)

//This loop will select the row and then uppercase the entire entry
while($data = mysql_fetch_array($query, MYSQL_BOTH)){
$updated =  strtoupper($data[‘name’]);
if($updated == $find)    {
echo $data[‘name’].” “.$data[‘rarity’].” “.$data[‘set’].” “.$data[‘condition’].” “.$data[‘amount’].” “.$data[‘color’];
$found = true;
break;    }}
if(!$found)
echo “Could not find this card”; mysql_close(); ?>

This is the bit of the code I understand the least, but my friend’s comment in the PHP script helps a lot. The “while” code begins a looping search through the database, row by row, finding everything that matches the search term.

Once it finds a record that matches, it returns everything about that record–in this case, it finds the name of the card, its rarity, what set it came from, etc. Then the variable of $found gets set to “true” because it found something. If it can’t find anything, however, it just echoes back a “can’t find anything” statement and ends the script.

#4: Plug in the Info for Your Database

Once you’ve got your search code ready to go, all you have to do is plug in your information for the username, password, database name, and table name (for within the database). Make sure you’ve got it spelled exactly right and that the letters are uppercase or lowercase as appropriate! Can’t tell you how many times I’ve mistaken a lowercase “L” for an uppercase “I”.

#5: Test the Search

Now, you need to see if this bad boy works. Type up a quick HTML form to take in your search term, like the one below (again, taken directly from my code).

<form name=”search” method=”post” action=”search.php”>Search for:
<input type=”text” name=”find” />
in
<br>
<input type=”checkbox” name=”name” value=”Name” /> Name of Card<br>
<input type=”checkbox” name=”color” value=”Color” /> Color (White, Blue, etc.)<br>
<input type=”checkbox” name=”rarity” value=”Rarity” /> Rarity (Common, Uncommon, etc.)<br>
<input type=”checkbox” name=”type” value=”Type” /> Type (Creature, Instant, etc.)<br>
<input type=”checkbox” name=”set” value=”Set Name” /> Set Name (Zendikar, M10, etc.)<br>
<input type=”checkbox” name=”condition” value=”Condition” /> Condition (Near Mint, Good, Fair, Poor)<br>
<input type=”checkbox” name=”amount” value=”Amount” /> Amount of Copies (1, 2, 3, etc.)<br>
<input type=”hidden” name=”searching” value=”yes” />
<input type=”submit” name=”search” value=”Search” />
</form>

#6: Debug, Debug, Debug, and By the Way—-Debug

This is the most important (and infuriating) part of this database search. My friend and I spent several months (yes, I said MONTHS) debugging this very script because no matter what we did, it just wouldn’t run. The final edits he made to it, which are reflected in this post, finally made it work.

When you’re working on code like this, it’s important to make sure it’s spaced out enough so that you can read it, and that you work on getting each tiny piece of it perfect instead of trying to scan the whole document for errors. For tired eyes, a colon can sure look like a semicolon, and a lowercase “L” can sure look like an uppercase “I”. You have to watch out for the little errors!

Once you’ve caught all the little spelling and mistyping errors, then you need to check to make sure the code’s variables work like they’re supposed to, and that you’re calling functions that actually exist in PHP and MySQL. For this, it’s best to consult the latest Internet references, or forums where experts in coding gather and help all us abject newbs. LOL

If you’ve made sure everything’s spelled right, and all the functions are supposed to run…well, you do like I did and call upon a friend or trusted authority who knows more about how programming languages are supposed to be written and run. Web development involves programming languages just like the rest of computer science, so there’s no shame in asking if you’re like me and frustrated by anything that resembles math. 😛

Summary

The code I’ve demo’ed here does work, at least for searching card names. We’re not sure what was blocking it from working before…oh well, that’s web development for you, LOL. (By the way, searching by color, set name, and all the other stuff still presents an error…it’s definitely still a work in progress. But at least the whole page doesn’t vomit an error every time you hit “Submit!”)

And if you try this code and get even more success out of it, tell me about it in the comments! To quote Robert Stack, “YOU may be able to help solve a mystery…” 😀

HTML5: Basically, “Flash! Ah-Ah!”

[/shameless quote of “Flash” by Queen (see Youtube video here)]

For those of us who still code in the Stone Age of HTML 4.01 (*raises hand* guilty as charged), HTML5 is a vaguely strange new planet on the horizon of web development, and has been for a couple of years now. I have blundered around this topic for a while now, trying to decipher what exactly I need to know about this new standard of web development. What is it like? How is it different? And most of all, what can I make it DO?

I Wasn’t Kidding When I Made the “Flash” Joke

Really. HTML5 does things we HTML 4.01 coders never dreamed the language would be able to do…and if we did dream of it, we knew it could only be done in Flash. (That was what stopped me from doing a lot of “cool interactive stuff” on my page–I didn’t know how to do Flash and found it way too daunting to teach myself.)

With the advent of HTML5, however, there are now common-sense tags for all sorts of interactive and structural things, including:

HTML5 is Seriously Cleaned Up, Y’all

With new standards comes lots of new rules, as we’ve seen, but there are tons of fixes for the “old” rules as well. The developers wanted to fix much of what was wrong with 4.01 and roll it out into 5, as well as provide new features that 4.01 never did, so they did the following (quoted from w3schools.com‘s developer idea list):

  • “New features should be based on HTML, CSS, DOM, and JavaScript”
  • “Reduce the need for external plugins (like Flash)”
  • “Better error handling”
  • “More markup to replace scripting”
  • “HTML5 should be device independent”
  • “The development process should be visible to the public”

(Valleygirl Voice) Ugh, These Tags Are, Like, So 1999

By the way, say goodbye to these old relics–they do not exist in HTML5 at all. (Of these, I think I only ever used “font”, “center” and “frame”…lol, shows how often these were used, huh?)

<acronym>
<applet>
<basefont>
<big>
<center>
<dir>
<font>
<frame>
<frameset>
<noframes>
<strike>
<tt>

What Does All This Mean to Ground-Level Developers?

Basically, we won’t have to learn 10 languages just to make an eye-pleasing, interactive page anymore. Nor will we have to make sure everything is cross-browser compatible concerning plugins and scripts. So much more of HTML5 is based on making everything very understandable for the browser, without a whole bunch of extra code in various other languages.

With HTML5, a lot of the useless bulk of coding has been removed, tightening up and better specifying what remains. Switching your page from HTML 4.01 to 5, then, is akin to me doing Zumba for 10 months–it loses a little of the extra weight, and trims up in several places, finding muscles it didn’t know it had.

The most interesting parts of HTML5, for me, is what the developers mean by “better error-handling” and “visible development process.” Does this mean that one error on an HTML page no longer screws up everything else (like XHTML so famously does)? Does this mean that HTML5 is now an “open-source” project? There are many more bits left to be discovered and explored…and, for those of us who love web development, that’s 3/4 of the fun.

For Further Information

W3Schools.com’s HTML5 Section: Very informative (where I got some of the info for this article)
HTML5Demos: View live demos of some of the coolest features
HTML5 Rocks!: Up-to-date bloglike articles on HTML5
HTML5Doctor.com: Informative and well-sorted (but jargon-laden)…best for advanced coders (which sure ain’t me, LOL)
HTML5.org: Mainly an aggregator of more resources on HTML5

Choosing An Awesome Web Host

I wrote last week about choosing a fitting domain name. But that’s not the only thing that potential web designers and developers have to focus on–in fact, equal in importance to a good domain name is a good web host. Without a well-run server, your domain name will point to nowhere.

What is a Web Host?

Simply put, a web host is either:

  • a company who has empty server storage space that they “rent” out to people;
  • a fellow web designer/developer who “rents” out his or her extra server space to other small-time designer/developers

(Whichever method of hosting you prefer, being hosted with a good friend or being hosted by a big company, it’s firstly important to remember that most hosts do not provide domain names. You will likely need to buy your domain name separately.)

What Makes a Web Host Good?

In searching for hosting, it’s important to evaluate each hosting company/person in terms of these qualifications:

  • Storage space
  • Number of domains allowed per hosting account
  • Media restrictions
  • Bandwidth allowances
  • Special features:
  • Current customer satisfaction
  • Average uptime/downtime

Storage Space

How much storage space can you get for your money? You should look for the most space you can find that fits within your hosting budget. Some companies charge a surprising amount for the same amount of space that others are willing to charge less for, so comparison shopping really matters here.

For instance, if you can only afford to pay 5 bucks a month for hosting, find hosts who offer space for 5 bucks or under, and then comparison-shop between them further to look for better deals on other aspects of each hosting plan.

Number of Domains Allowed per Hosting Account

How many domains can you link to your account if you buy from this particular host? For people who like to separate out their web design work into many domains, this makes a difference. Some hosts will only let their cheapest-plan hostees link one domain to their hosting account, whereas others will allow you to link 3 or 4, or even unlimited domains to various folders on your hosting account.

Whatever you choose, be sure you read all the fine print and understand what you’re buying before you click to pay anything!

Media Restrictions

Does the host allow images, Javascripts, audio files, or other special media? Some hosts I’ve known of since I started webdesign placed restrictions on how many images you could have (no image galleries, etc.), and some hosts did not support audio file formats or certain kinds of scripts.

While those types of restrictive hosts may have died off now that the Internet has become so media-driven, you still want to make sure your prospective host allows you to do all you want/need to do with your site. You don’t want to end up breaking a rule you didn’t take time to read or didn’t know was there.

Bandwidth Allowances

How much traffic can this hosting server support per month? Make sure you find out how much bandwidth you’re buying. This is almost more important than getting enough storage space–It’s a drag to have a great content-laden site for half a month, only to have a “Bandwidth Overage” sign up for the rest of the month blocking all that awesome content.

Special Features

Does this host have the capability to run things like MySQL databases, PHP, Ruby on Rails, email accounts, etc.? Check to see what kinds of application support you’ll be getting. Some hosts have MySQL support and some don’t, for instance, and you’ll need that if you want to make a WordPress blog, a fanlisting, or anything that needs a database.

Some hosts have the ability to install scripts like WordPress, forum software, and the like for you, if you’re like me and can’t make head or tail of most web programming languages. (That’s actually how I got this WordPress blog to work–I tried installing it myself and failed miserably, then found that my host’s cPanel had a happy little feature called “Fantastico,” which installed WP for me seamlessly and quickly.)

Whatever special functionality you want in a host, make sure you check through the documentation of each host you’re evaluating to see what they offer.

Average Uptime/Downtime

All the storage space, bandwidth, and special features in the world won’t compensate for your host taking the servers down all the time for maintenance. Before you pay for anything, check the server status of your potential host over the course of a week and see how many times servers are down versus how much time servers are up. This can give you a more accurate perception of the service you can expect with them.

Also, you can get a good read on a host’s server status by talking to real people who are hosted with them. That leads me to my last point…

Current Customer Satisfaction

Before you decide on a host, talk to people who are hosted with them, preferably those who have been with the hosting company/person for a fairly long time. They can give you a more realistic picture of the hosting provider’s service, features, storage space, bandwidth, etc., than any advertisement ever can. From other webdesigners/developers like yourself, you can learn what you need to finally decide on a host for yourself.

Other Pointers for Picking a Host

  • Don’t buy more storage space or features than you need–you can always upgrade later if you want. Do make sure to get as much bandwidth as you can for your money, however; you want to make sure your site will stay up and running constantly!
  • If you’re evaluating a hosting provider company, check their support and community forums. If the support forums have not been updated in a while and have very few people posting on it, then the company might not be doing so well and may provide lackluster service. If, however, the forums are lively and very up-to-date, then the company likely has a large customer base and is working to support them.
  • Be honest with yourself about what services you want, how much storage space you’ll need, etc. I bought about 2 GB of storage space back in 2004 for withinmyworld.org, even though at the time I was only running one site–I knew that I wanted to expand my repertoire later on. However, if I’d only wanted to focus on one site for a while, I might have gone with less storage space.

Where to Find Good Web Hosting

Aside from checking CNet Reviews of Web Hosting Services, here are links to several hosting companies and people who are nice enough to host others:

Highly Recommended by Many Fellow Webdesigners/Developers

Bubble.nu
SurpassHosting (personally hosted here since 2004 and have had a great experience!)
DreamHost
HostGator

Well-Regarded in the Webdesign Community

LunarPages
ASmallOrange
FrozenWebHost
DotEasy
Site5

Awesome Webdesigners/Developers Who Host

Fenali.net
RainAWhile.net
Shinshoku.net
Soul-Savior.org
IceGlow.net

Other Worthwhile Hosts

Jumpline
LaughingSquid.us
Gossimer
1and1
InMotionHosting

Your Site’s First Impression: Its Domain Name

Have a great site, but no one’s visiting? Strangely enough, it might be your domain name itself that’s turning people off.

A great domain name is like a confident smile and a welcoming handshake–it greets visitors for you and gives them an idea of what your site’s about. If yours is lackluster, you might get some visits, but not a whole lot, even if your content is great.

To help you choose a domain name, whether for the first time or the fiftieth time, I have written the following article. Read on for tips and even a few hacks to get just the right domain name for your site!

The Shorter and More Descriptive Your URL, the Better

“www.robinstotallyawesomeonlinebookstore.com” is going to get significantly less visits than, say, “www.robinsbooks.com”, simply because the latter URL is easier to remember and easier to type.

If at all possible, choose the shortest and yet most descriptive domain name available. This way, you’ll get more return visits and word-of-mouth spreading, plus more people will be willing to type in the domain name manually (and be more willing to link to you, too!).

Not convinced you need a shorter domain name? Look at it this way: who would type in Facebook’s URL manually (or even remember it well) if the URL was “www.findallyourfriendsandstalkthem.com”? (No matter how fitting that domain name might be…LOL)

You May Not Need a .Com

Unless you’re selling stuff actively on your site, a .com domain suffix is not entirely necessary. It’s great if you can find a .com you like, but chances are that the .com name you like is probably taken already, given how many people use the Internet these days. Finding a domain suffix that is just as fitting will work well for you if you find yourself in this situation.

In fact, matching your domain suffix to your site’s purpose can be even more informative for your visitors (and can help to make or break your site’s first impression). See the following list for details on popular domain suffixes:

What Domain Suffixes Mean for Visitors

  • “.com”: Possibly a commerce site, can also be a basic informational or interactive internet site
  • “.net”: A little internet hub, likely run by one person or a small group of people
  • “.org”: Either a small personal site, a non-profit organization, or a slightly educational site
  • “.biz”: Possibly a good business site, but more likely to be shadier and more ad-ridden than a “.com” site
  • “.info”: 99% possibility of being A) a virus-laden site; B) a site with fake downloads resulting in a spyware infection; C) full of copied or robot-generated content that makes no sense
  • “.edu”: a genuine school’s website
  • “.mobi”: a site designed mainly for mobile devices, which will look strange on full monitors
  • “.nu”: Like “.net”, but “cooler” and for more experienced personal site owners (also way more expensive)
  • “.tv”: A real TV show’s official website
  • “.me”: Even more personal than a “.net” or “.org,” and even “cooler” than a “.nu”
  • “.xxx”: Eek, I’m on the company computer, I shouldn’t be on this! (kidding)

See a complete list of all domain suffixes here @ ComputerHope.com.

Wordplay Works in Your Favor

If you can, include clever wordplay in your domain name to make it memorable. Silly as it might seem, this can really boost your image in users’ minds, as well as make your site a lot easier to return to. Alliteration, rhyming, puns, word combos, and even domain hacks (you’ll see what I mean) can give your domain just the right amount of oomph.

Alliteration

For instance, you can include some or all words beginning with the same letter (alliteration) in your domain name. This can make your site easier to remember because it includes a lot of the same letter or words beginning with the same letter.

Some examples:

Also, implied alliteration works for sites like ReadWriteWeb (the implied repeated “r” sound).

Assonance and Rhyming

Assonance and rhyming (similar vowel and consonant sounds across a word or phrase) also sound and look nice to website visitors. Domain names like lookbook.nu and desiretoinspire.net are more memorable because they use these tricks. Not only do these sites sound more pleasant to the ear, they also sound more legitimate and well-kept–like someone actually cares about running them.

Puns and Word Combinations

You can also have a little fun with your domain name’s actual words, while still making it descriptive of your site’s content. Puns are awesome for this, as well as combining words together to make a shorter yet still descriptive URL. Including humor or a tongue-in-cheek joke as part of your domain name can work magic–we humans always remember things better with humor. Some examples:

Using the Domain Suffix as Part of the Word

Though Delicious has long since dropped the “del.icio.us” domain name, it was still an awesome way to get a shorter domain name without losing any of the site name. This is called a domain hack, at least according to Wikipedia.

Examples of domain hacks include TheDailyWh.at, Instagr.am, Youtu.be, and Scrumptio.us, among many, many others. Use of country-specific domain suffixes is almost necessary when trying to construct a domain hack; you also want to pick an unusual word that defines your site without being too campy.

These wordplay tricks are all clever ways to both get your audience’s attention and get across the meaning of your site as well. After all, isn’t that what a domain name is about?

P.S. Numbers in your domain name can be too cutesy, but for sites like decor8, it shortens the domain name right up without being too kiddy. All the same, use numbers in your name with caution!

Make Sure Your Desired Name Doesn’t Have Shady Ties in the Past

The best way to check about a particular domain name, once you’ve settled on one that you want, is to run it through Whois.sc‘s lookup. This will get you a good bit of information on what kind of site owned your desired name in the past.

Why is this a good idea? Well, for instance, you want to make sure your desired name doesn’t have ties to pornography and other such activity–domain names like “whitehouse.com” and even “jesuschrist.com” have been tied to porn sites in the past. You don’t want to get hold of your dream domain name only to find out that people are avoiding it because it used to be a VERY different site.

If you have to, pay for a complete history of the domain name before you buy it–paying a little now can save you headaches in the future!

Where to Buy Domain Names?

GoDaddy.com (I’ve been personally registered with them since 2004 and have had good service)
NameCheap.com
Register.com
Domains.org
Name.com
DynoNames.com

Know of any other good domain registrars? Tell me in the comments!

Your Page is Being Frequented by (Internet) Robots

Though many of us webdesigners and developers don’t realize it, many of our page hits come from robots, usually known as Web crawlers or “bots”, which index our pages for various search engines and the like.

Bots like these are (generally) harmless, and indeed we designers should be glad for the innocuous presence of anything that helps our pages get better known. According to this article, they can help validate links and HTML, and they can monitor changes in your web page so that search results which turn up your site are as updated as possible.

You do, however, have to be watchful for those few malicious bots, according to this site about web robot abuse, that look to harvest email addresses and other sensitive information for spam attacks; some bots might even be programmed to take down your server with specialized attacks.

To help you design and develop pages with bots and their indexing habits in mind, I have written the following short guide with plenty of sources to find more information. How you want to handle bots on your page depends entirely on how you view them. For example:

If You Don’t Mind Bots at All…

…then you don’t really have to do anything about your webpages. Just keep designing and coding as you have been, and bots will happily index and keep up with all your pages on your site(s).

I personally don’t mind them coming to my site–anything that helps my pages show up in Google Search is a happy thing. But lately, since I’ve been using my domain as a source for a bit of personal storage as well as officially published projects (losing data will make you paranoid), I’ve found myself thinking of how to keep bots out of certain folders. Thus, the section below:

If You’d Like to Keep Bots Out of Certain Folders…

This is where the humble robots.txt file comes into play. This file, usually kept in the top level of your site’s directory, is a list of instructions for robots to follow while visiting your site–most importantly, used to disallow access to certain files and folders that you’d rather not have indexed.

So, for instance, if I wanted to keep bots out of a folder called “mine”, I’d write this little tidbit in my own robots.txt file:

User-agent: *
Disallow: /mine/

(The “User-agent: *” bit tells every robot that visits, “This applies to you, so listen carefully.”)

If, however, I wanted to disallow access to two folders, “mine” and “yours”, I’d need to write my robots.txt file this way:

User-agent: *
Disallow: /mine/
Disallow: /yours/

For everything you want to keep bots out of, you have to write a specific Disallow line. Kind of like keeping kids out of the various cabinets in your house–if you don’t tell them specifically they can’t get into it…well… LOL

And just like some kids deliberately disobey your pleas to keep out of certain drawers and cabinets, there are some bots who will ignore your robots.txt file completely. The only way to be completely sure a bot isn’t indexing your stuff is to take it off your site…sad.

Even more awesomely in-depth information about the robots.txt file can be found at RobotsTxt.org (very well-explained and detailed!).

If You Just Want Bots to Keep Out Altogether…

Of course, if you’ve had a bad experience with phishing and spamming bots, you might just want them all to buzz off. For this, such tags as the following have been invented (courtesy of this page):

<meta name=”robots” content=”noindex,nofollow”>

Put this meta tag in the header of your page, and it’s a virtual “Keep Out” sign for bots everywhere. Only do this, however, if you’re sure you don’t want anything on your site to be indexed, not even by the “good” bots.

Summary

Bots are an often-forgotten portion of web development, but with all the various search engines (and spammers, unfortunately) out there on the big ole Internet, we developers have to at least take them into consideration. I hope you’ve gained some insight on how to either welcome bots to portions of your sites, or how to keep them out!

Learn More about All Sorts of Web Bots

InternetOfficer.com has a complete list of web robots for your perusal, so if you check your web stats and see a number of hits from several strange names, you can check this list and see if a bot’s been visiting you.

Do I Still Need to Worry about META Tags?

“META tags? Huh? What are those?” you might ask. The following are examples:

<meta name=”description” content=”An awesomely succinct description here”>
<meta name=”keywords” content=”Hi, I’m a useless tag!”>
<meta name=”author” content=”Your name here, if you’re not afraid of identity theft”>
<meta http-equiv=”content-type” content=”text/html;charset=UTF-8 (but who uses this, anyway?)”>
Many thanks to W3Schools.com for this code sample. (The comments in the content blanks are all my own opinions, though. LOL)

For most modern web designers, the esoteric meta tag fell just a little bit before our time. Tucked away in the head section of our HTML documents, these little snippets of code, like talismans, were supposed to help search engines find and index our sites, and therefore supposed to help potential visitors find us a lot more easily.

But these days, meta tags don’t quite function that way anymore. Most modern browsers don’t pay much attention to them, and neither do many search engines. So, the question remains: Are they worth even including in our webpages anymore?

The Verdict: Sorta-Kinda

Meta tags have not lost all their effectiveness, according to this article at SearchEngineWatch.com. Some search engines still do pay attention to them. But just making detailed meta tags is not the be-all and end-all SEO strategy it used to be. Nowadays, it’s far better to combine a selective use of meta tags with other strategies, like blogrolls, affiliate programs, content keywording, topsites listings, ad programs, and the like.

Meta Description: Think Twitter-Length

For your description, write a short, one- or two-sentence summary of your site, and leave it at that. No need for long-winded, essay-question-esque responses! (Ha, I need this advice more than anybody, LOL.) Since the content in meta description tags may or may not all be picked up by a search engine (depending on character limits per individual search engine), you want to make sure the content in the tag is as short and sweet as possible.

Meta Keywords: “Meh”

The meta “keywords” tag used to be of all importance, and you used to stuff it full of all the keywords you thought people would search for and find your site with. These days…don’t bother even typing in <meta name=”keywords”> into your code.

Why? It’s vastly easier on you (and more intuitive for modern search engines) if you just use the keywords a whole lot in the text of your website. For instance, if your site is about beaded jewelry, use “beaded” and “jewelry” a lot in your content. Search engines will still find you, and maybe find you a lot more easily than they would if your site’s content had very few actual usages of your ideal search terms.

Meta Author and Meta Content-Type: Don’t Bother

I’ve never known either of these tags to make much of a difference in search engines or browsers either one. (In fact, it may be dangerous for you to put your real name in such a prominent place in your source code.) Plus, the content-type, while it may have mattered in the past for older browsers, likely doesn’t matter as much anymore with more modern browsers being used. My advice: don’t worry about either of these.

Use Your Title Tag As Well!

Don’t forget your <title> tag! Though it’s not a true meta tag, it will remind your users of what site they’re looking at when they look through their browser tabs. Also, many search engines search your title tags first, even before they search your content, so it’s well worth writing at least something between <title> and </title>.

Make it short and descriptive, like your meta description tag, and you’ll be well on your way to having a site that people actually visit. (Y’know, why we spend hours before a screen typing and clicking, blinking our bloodshot eyes in a vain attempt for rest? LOL)

Summary

META tags aren’t something to lose sleep over anymore, but some of them might be helpful supplements to your other SEO strategies for making your site known. Simply craft a meta description, spiff up your title tag with appropriate text, and you’ll be set in terms of META tags.