October 31, 2004
Pardon me?!!
I'm having a little trouble understanding you... when did you say you wanted it? Well... the reality of it is... I'm on it! Like a dirty shirt! Really... another cup of coffee this morning is going to do wonders for me. This afternoon there is going to be total chaos as the printer, fax machine, email and telephone go completely berserk.
Well... they do on Fridays anyway...
But seriously it looks like it is going to be very busy around here in the next little while, so my response time may be a little slowed.
My picture? Nah! I don't always look like that. Sometimes I have "bad" days.
If you can... those of you who send work on Fridays and want it done on Fridays, it would be appreciated if you could send it two days before you need it. It give me a chance to schedule it into production so I'm not missing other important duties like personal grooming. Give me time to pick the bugs out of my hair.
Posted by Steve MacLellan at 11:06 AM | Comments (0) | TrackBack
RSS Calendar
Sharing your calendar with family, friends, and co-workers has never been easier.
When you create a calendar event, an RSS Calendar Channel (or Feed) is automatically generated. Simply invite others to subscribe to this channel using an RSS Reader and they'll be able to see your calendar. Any changes you make to your calendar will be available to your subscribers in real-time.
http://www.rsscalendar.com/rss
This free resource is a handy tool for any of you who have people you need to keep updated about on your schedule or appointments.
Posted by Steve MacLellan at 10:49 AM | Comments (0) | TrackBack
Stay Focused
This Summer gone by, I had to make a major decision — one that was not easy to make. In June, I closed down my Used Car Website business. It was hard to say good=bye to it... but it was either it or my web development business.
Since last year I had been operating two businesses, TruroUsedCars.com and this one, HomeBusiness Websites. In June, two of my sales people quit. This put me in a bad position. I could continue to operate but it meant I would have to be on the road a lot more for the next month or two... maybe more. I find with salespeople... you have to spend sometime showing them the ropes. The unfortunate part of splitting my time between two businesses was having an effect on HomeBusiness Websites. (See my traffic patterns)
Either business could provide me with a full-time income, but trying to split my attention between the two businesses was just too much work for one guy. I chose to close down the Used Car business because in order to make an income it meant I would always have to be depending on other people (sales people) and if they weren't working, I wouldn't be getting paid. With my web development business, I don't have to rely on anyone but myself; I like that!
I was still getting work for my web development but most of it was just site maintenance for sites already built. There wasn't a lot of new customers coming in the door. As you can see, my site traffic was much lower. When I made my decision to focus on web development here is what I did:
I hadn't published my newsletter for over a year. So I started writing again. And, I didn't stop there. I wrote an ebook that shows How to Build, Promote and Sell Advertising on a Used car Website and I resurrected my blog, that had not been used for two years. Other then these two things the only other thing I did was to start posting a little more to a few discussion forums. (which I'm not sure was such a good idea)
Basically what I did was jump in the water and splash around; nothing special...
But... just by being a little more visible online, it has doubled the amount of traffic to my site, and is bringing in new clients again.
I'm sure some of you think that a lot of time is wasted on the Internet (for those of you who make a full-time living from your online ventures). Sometimes it doesn't seem like you're having a whole lot of affect, but from my splash the end of June, you can see the ripples it has caused in my traffic.
Posted by Steve MacLellan at 07:18 AM | Comments (0) | TrackBack
October 30, 2004
Firefox extension: BBCode.
Adds a context menu for easy access to BBCODE formating in PHBB Forums (Firefox/Mozilla Suite/Netscape 7.x)
A student, Jed Brown has written an extension called BBCode. BBCode adds a list of menu choices to the right-click context menu, allowing you to quickly add BBCode (explained in the phpBB BBCode guide) to your posts.
You can download it from Jed's site or read more about it from this blog post which shows you some screen shots and how to use it.
Posted by Steve MacLellan at 10:55 PM | Comments (0) | TrackBack
Mozilla Calendar
You know, it doesn't matter how old you are... if you have too many things to do, some things can get forgotten. How may of you are using a calendar to keep track of all of your tasks and appointments?
Here is something...

This is the Mozilla Calendar which can be installed as an extension for Netscape, Mozilla and Firefox and is available for computers using any of these platforms: Windows, Linux, Mac, and OS/2.
I have been working with it for a couple of days and I like it, but I'm not sure they have all of the bugs worked out of it yet. I would like to be able to find a better way to print my calendar so I could take a copy in my car, and right now the only viable option seems to be exporting tasks to an html file and printing them off that way. It seems a little lame.
Anyway... for any of you who are pushing past 25 like I am ;-) this might be an application you might consider.
Posted by Steve MacLellan at 10:02 PM | Comments (1) | TrackBack
Anyone for a little skinny dipping?
An ex of mine sent me an email today inviting me to go swimming with her at Cross Lake, Shreveport, Louisiana. She said everyone is friendly, including the wild-life.
To prove it to me she sent me these two nice pictures of a gator playing with a deer.


Apparently these images were taken by the KTBS helicopter flying over Cross Lake.
I asked her for some tips in regards to water skiing and she said "If you ski at the west end of the lake — try not to fall."
Who says you can't be friends with your ex?
Posted by Steve MacLellan at 01:58 PM | Comments (0) | TrackBack
Learning to make choices on our own
I try and encourage my daughter to learn and think for herself. That doesn't mean there isn't a few rules, but for the most part, I try and allow her to make a lot of choices on her own.
She likes to sleep in front of the TV.
I certainly can't allow this through the school week, as it implies "staying up as late as you want" but on the weekends, when she wants to do it, I let her.
For any of you that are parents, you probably know that this means she will be asleep on the couch faster then if she waited to go to bed at bedtime. She likes to have this "freedom of choice" though. Here is what she made me a a piece of paper this morning.

Things have sure changed since I was a kid. A lot of folks don't agree with this method of parenting, but I don't see the harm. If they are happy, healthy, and know that they are loved, what is the problem?
Posted by Steve MacLellan at 09:30 AM | Comments (0) | TrackBack
Weekend beer dump
Ah! Nothing like having to work through the weekend...
This week was very busy and it looks like next week is going to be a killer. And to think, I don't get paid for my over-time. In contrast to lots of work, which might be no work, I guess I shouldn't complain. The main things tying me up right now is a) I have to get my month end done up b) organize some projects c) try and find something newsworthy for my newsletter, which has lately been published every Tuesday.
Last Monday Lynn was talking about her "brain dump" but since this is Saturday I think what is in order is a "beer dump." Lynn said she "I felt sort of - - empowered" and (he-he) maybe I will too...
That's the thing about running a home office — there is always going to be chores you don't particularly care for. I, for one, don't really like doing up the month end — too much paper work. I'd much prefer planning some projects, or doing some actual coding. Maybe I should surprise my clients by sending them an email that says:
Hi... it's me! You know how much work I did on your site this month, so please send some money. An appropriate amount would be fine.
(he-he)
Yep! Like that would work!
Well... time to get productive... and so begins the long sojourn to the fridge and back ;-)
Posted by Steve MacLellan at 09:04 AM | Comments (0) | TrackBack
The Cure for Entrepreneurial Fear
------------------------------------------------------
Tell your friends and business associates to
subscribe at: http://www.Consulting-Success.com
------------------------------------------------------
by Bob Serling
The other day a prospect called me to see about getting some help with his marketing. He owns a training company that specializes in organizational development and leadership skills. They have 12 employees and have been in business for over 15 years.
His problem was one I hear very frequently. They've always relied on one primary marketing method, but its no longer producing the results it used to.
As I probed a bit deeper into their situation, I began to pick up on an interesting theme in all of his answers. Regardless of what I suggested they consider doing - think about expanding into additional markets, add new products, test different lead generation processes - he rejected everything. For every suggestion I made, he told me he didn't think that it would work as well as his current method.
I reminded him that his current method had sputtered out or he wouldn't be calling me in the first place. And that testing can be done on a small scale to let the market prove what will work and what won't.
But again, nothing I suggested seemed to satisfy him. Finally, I asked him point blank, "It really doesn't seem like you want to change anything that you're currently doing or test anything new. Is that correct?"
"Yes, that's correct", he answered. "You had helped a friend of mine sell a lot more of their services and I just wanted to check and see what's available."
With that, I wished him well and ended the call.
So what happened here? Did I do a lousy job of presenting a these new options to him? I doubt it, primarily because of his lack of interest in everything I suggested. Plus, there was a strong undercurrent of negativity.
No, what was really going on was...
= = = = = = = = = = = = = = = = = = = = = = = = = =
A bad case of Entrepreneurial Fear
= = = = = = = = = = = = = = = = = = = = = = = = = =
The fact is, the guy was quaking in his boots. He desperately needed to solve a steeply declining situation, but he lacked the guts to take even the first step.
I see this happen all the time. People want to change jobs to something either more lucrative or more fulfilling, but are afraid to. Companies know they need to develop new products or services to keep ahead of the competition, but they find dozens of reasons to never get started.
The CEO knows that their marketing needs a shot in the arm, but sits back hoping that some miracle will restore sales to previous levels. A consultant knows that raising his fees is long overdue, but still can't bring himself to do so.
These, and other fears, keep too many people from taking action. But if you're ever going to grow your business to the next level, you're going to have to make some changes that are somewhat uncomfortable. That's just a fact of business life.
There are a number of ways to reduce this discomfort from sheer terror to an acceptable level. I'll show you precisely how to do this in just a minute. But first...
= = = = = = = = = = = = = = = = = = = = = = = = = =
Two resources to help you bring in more business
= = = = = = = = = = = = = = = = = = = = = = = = = =
Do you need more leads for your business? Highly qualified leads who contact you rather than you chasing after them? My comprehensive program, "Power Prospecting for Consultants, Trainers, and Coaches" gives you everything you need to generate as many new leads as possible for your business using both online and offline marketing methods. You can get all the details at:
http://www.consulting-success.com/prospecting.html
Have you tried to market your services online and been disappointed with the results? Or is your online marketing doing alright, but you know it could do even better? In my new program, "The Ultimate Guide to Selling Professional Services Online", five leading experts show you everything you need to know to sell more of your services and products online. You'll discover dozens of proven techniques for effectively using web sites, ezines, ebooks, and pay-per-click advertising to fill your appointment book with paying clients. Click here for complete details:
http://www.consulting-success.com/online.html
= = = = = = = = = = = = = = = = = = = = = = = = = =
The Cure for Entrepreneurial Fear
= = = = = = = = = = = = = = = = = = = = = = = = = =
There are a number of ways to conquer the fear of making changes. We'll take a look at some of the best methods in the remainder of this issue.
First of all, it helps to remember that not all fear is bad. The fear that bristles the hair on the back of your neck when you walk down a dimly lit street is a good thing. Likewise, fear of making business changes signals you that you may want to proceed cautiously. But it also signals you that there are a lot of exciting possibilities.
So pay attention to your fear, but learn to work with it rather than letting it stop you.
= = = = = = = = = = = = = = = = = = = = = = = = = =
Limit your exposure
= = = = = = = = = = = = = = = = = = = = = = = = = =
Making any change can be tested on a small level before commiting to a larger or permanent change. Want to raise your fees? Test it with a couple of projects. For example, test a fee increase with a long-time client to see how well its accepted. Then test it with a new prospect and guage its acceptance there as well.
Your risk is minimal. By testing in small doses, you limit your exposure and potential loss. Besides, you can always back off of the fee increase and work for your prior rate. But - and this is a major "but" - you can rarely raise your fees once you've agreed to do a project at a lower price.
= = = = = = = = = = = = = = = = = = = = = = = = = =
Have a sense of humor
= = = = = = = = = = = = = = = = = = = = = = = = = =
Most of us take our businesses far too seriously. Almost all the things you worry about never actually happen.
Years ago, I advised a marketing consultant to increase his fee for a project he was bidding on by 70%. He was terrified to do this, even though he realized he was charging substantially less than other consultants with similar skills.
When it came time to submit his bid, he could only garner enough courage to increase his fee by 50%. Even then, he told me he was terrified that he would lose the client.
The next day, the client called to tell him he had signed the contract and put a check in the mail. Then the client told him, "I was wondering when you were going to raise your rates. It's long overdue."
The client called me and told me he was elated. He also added, "I wish I would have increased it the full 70%!"
The point is, again, most of your fears are just that - your fears. They aren't anyone else's. So lighten up. Relax a little and take some calculated risks. I promise you'll be glad you did.
Copyright 2004 by Bob Serling All rights reserved
Consulting-Success.com
2039 Bruceala Court
Cardiff, CA 92007
Please feel free to pass this issue along in its entirety to others.
Posted by Steve MacLellan at 08:11 AM | Comments (0) | TrackBack
October 29, 2004
RSS Feeds for This Blog
HomeBusiness Websites blog has been changed. If you're looking to update your feed readers, please use one of these links:
RSS 1.0 = http://www.homebusiness-websites.com/mt/index.rdf
RSS 2.0 = http://www.homebusiness-websites.com/mt/index.xml
Atom 0.3 = http://www.homebusiness-websites.com/mt/atom.xml
The old feed which was http://homebusiness-websites.com/xml/homebusiness_websites.xml won't be used anymore
Thank you!
Posted by Steve MacLellan at 07:27 PM | Comments (0)
Family Gathering Summer 2004
Far, far, away from the Internet, building and marketing, was a brief family gathering of cousins from my mothers side of the family this Summer.

On the bottom row, from left to right, is my niece Meghan, my brother Rob's daughter, Rob, and out mother holding my daughter Kelsey.
In the back row, from left to right, is me, Lorna, Judy and her daughter Trish.
This picture was taken in front of one of the cottages that make up MacLellans Cottages.
This place is so far out in the woods that people laugh at me when I tell them we had to "come out to hunt" but it is true. I went to Mom and Dad's a couple of weeks ago and see she has some pictures taken last Winter when three deer were standing on her front lawn.
Posted by Steve MacLellan at 03:42 PM | Comments (0) | TrackBack
How To Automate Requests For White Papers
Here's the deal:
You want to generate more subscribers by offering some "white papers" or "special reports." Since you're going to set up a dozen or so, you don't want to hire a programmer to come in and re program your mailing list program to send out a dozen or so personalized messages that contain the link to the download or URL.
Actually, it might be better to not invoke the mailing list program at all. You want them to request the report, send them a personalized message and ADD them to your web based mailing program without having to handle all of the extra email addresses manually. Oh yes... you don't want to process individual emails either. You would prefer to receive NO email.
So you put a little form on your website that looks like this:
<form METHOD="POST" ACTION="recv_devel.php">
<b>Name:</b><br>
<input TYPE="TEXT" NAME="NAME" VALUE=""><br>
<b>E-mail:</b><br>
<input TYPE="TEXT" NAME="Email" VALUE=""><BR>
<INPUT TYPE="submit" VALUE="Submit">
</form>
Note that the action of the for is a call to a PHP page where the magic happens. Part of the great thing about FORMS and PHP is as soon as the form is submitted the variables are available in the next page for us to work with.
The first part of your new file might contain some acknowledgement for your prospect:
<h2>Thank you</h2>
<P>An email has been sent to you with instructions on how to
download the white paper.</P>
That's it! That's all they see. Even if they use their browsers "view source" assuming maybe they used a fake email address, they still won't get the URL. The URL is enclosed in PHP tags which is not available to the user from the "view source."
The next few lines on the page look like this:
<?
$outputstring = $Email."\n";
$fp = fopen("cgi-bin/mail_list.txt","a");
fwrite ($fp, $outputstring);
fclose($fp);
?>
Here we use three PHP functions fopen(), fwrite() and fclose()
The thing that is the MOST important to make sure you have is the "a" in the fopen() string. This is called a "file mode" and the "a" tells the script the file is being opened to append information to the end of the existing content. That means that each time we add a new email address to the file, it adds a new line and appends it to the end of the content in file. Nothing is over written or is the file altered in any other way.
Once the file has been opened by the script and it understands where in the file it is placing the information the fwrite() function write the email address to the file and then it is closed by fclose().
Now that we have the email address added to our mailing list we need to look after sending a personalized email to our prospect. Here is what the rest of the script will look like:
<?
$toaddress = "$Email";
$subject = "Your Special Report";
$feedback = "Thanks for requesting the special report. I am sure you will find it useful. If you have any questions please feel free to email me\n You can download your special report at
http://homebusiness-websites.com/special_report.pdf\n
Best Regards\n
Steve MacLellan\n";
$additional_headers = "From: steve@homebusiness-websites.com\n"
."Reply-To: steve@homebusiness-websites.com\n";
$mailcontent = "Hi ".$NAME."\n"
."Thank you:\n".$feedback."\n";
mail ($toaddress, $subject, $mailcontent, $additional_headers);
?>
There are a lot of other things that could have been added to this code to format the email better and add error checking to the script. But for the sake of brevity, and understanding the basics, it has been omitted. And if you click on the link for the special report... guess what? There isn't one. (he-he)
If you study the code it should help give you some ideas on how to go about implementing something like this. If you need to hire a programmer to write something a little more complete, send me an email and I can write it any way you want.
Posted by Steve MacLellan at 03:26 PM | Comments (0) | TrackBack
How to Syndicate RSS Content
Since most blogging programs create RSS feeds, you can take advantage of this by using their headlines to create content for your site. Naturally you would have to ask permission for this but most folks don't mind a little free advertising. Many sites offer their feeds to syndicate, but some folks who are jumping on the blog bandwagon don't know how to tell you how to syndicate their content. This article will show you how you can use their headlines or offer others yours.
I wrote a similar article two years ago called "How to Setup Coranto so Other Websites Can Display Your Headlines" and if you would like to review it you will see most of the instructions on how to work with "RSS File Advanced" which is Perl/CGI script you would need to install. If you read that you will get a working knowledge of how to use the script. You can read the article here:
http://homebusiness-websites.com/article_blog_coranto_setup.html
If you have read through that then to grab another sites' feed you have to edit line 65
Starting on line 65 you will see:
%services = (
'eWeek' => "webattack.com/webattack.xml\teWeek",
);
I made a minor mistake here and called this eWeek, and this isn't an eWeek newsfeed. That doesn't matter here. What matters is the 'eweek' in single quotation marks, will be the name of the javascript file. I created a blank file using Notepad and saved it as eWeek.js, and uploaded it to the directory where I keep my xml files. I set the permissions of this file to 777 because the RSS fetcher script will need to write the Javascript into this file.
Notice on the end of the file being called is : \teWeek"'
\t is Perl, that means to leave a space the width of a tab... which is followed by the name of the feed.
On line 44, this is where you tell the script where your files are stored:
# directory where data will be stored, chmod 777
$datdir = "/home/homebus/public_html/xml";
So if you have followed along here, you see we have set this up to pull in a newsfeed. I would save the script and upload it to your CGI bin with a unique name. For example... I called this file "eweek-rss.pl"
Set the permissions to be executable (755) then call it from your browser and watch what happens. It will take a minute or so to do the fetching. Once it is done, using a template of your website you can add a Javascript to call the headlines:
<SCRIPT LANGUAGE="JavaScript1.1" SRC='http://homebusiness-websites.com/xml/eWeek.js'></SCRIPT>
If you want more control over how this data is displayed in your html template, you can put it in a table. If you don't like the fonts being used by the script you can edit the table code in the Perl script.
You can follow this very same method to offer your blog headlines to others, or use it to pull in someone else's headlines. For each newsfeed you want to call, you will need to rename the CGI script and change the settings on line 65.
To display someone's headlines other then your own you will have to ask for the path to the XML file if you do not see an icon on their site that links to it.
If you would like to see the example (mistake and all) I created pulling in the newsfeed used in this example, visit:
http://homebusiness-websites.com/eWeek
Posted by Steve MacLellan at 03:24 PM | Comments (0) | TrackBack
Build Your Website with a Plan
Unless you're building your very first website, and it is only a handful of pages, you know what it is like to say "Gee... why didn't I plan for this from the start?"
You can plan for shortcuts when you build the website.
I don't know how many times I've been asked to work on a site that contains a collection of *.htm files and *.html files. Yes, you've heard it doesn't matter -- both extensions are OK. Sure they are... but you just lost a shortcut you could use later by using both, *.htm and *.html file extensions.
Let's look at an example...
Suppose all the webpages on your site have the html extension. A year later you park another domain name on your account, and your hosting account doesn't support multiple names. Luckily for you, you found a script that will do it for you... but it is a CGI script and has to be loaded as soon as someone arrives at your site. The worse part is you have been promoting www.yourdomain.com for a year, and by default most servers are set to look for and load either index.htm or index.html in your root directory.
Cool! Now you have use for an htm file. You can add this to your .htaccess file:
AddType application/x-httpd-cgi .htm
Then when someone clicks on www.yourdomain.com your CGI script will execute.
Of course there may be someone who has bookmarked your homepage as:
www.yourdomain.com/index.html
...and you had to remove the index.html so the index.htm (CGI script) would execute.
You can add another line to your .htaccess file:
ErrorDocument 404 http://yourdomain.com/index1.html
...so that anyone who tries to access your site through the index.html file gets automatically re-directed to the new index file which could be called index1.html
And of course one of my favorites...
If I'm building a large site and have a feeling that the client hasn't planned real well, I'll add this to my .htaccess file:
AddType text/html .html
AddHandler server-parsed .html
This lets me use SSI in html files. This one can be added anytime, but if you build your menu into an included file, and you change it 20-30 files later, you don't have to re-edit all of those files.
Plan for allowing shortcuts when you build the site, and you won't be looking at a lot of work or expense later.
Posted by Steve MacLellan at 03:22 PM | Comments (0)
Use XSSI to Publish A Weekly Schedule
Let's assume you have sold access to a weekly course. People are logging on to your site for new instructions and lessons every day. Due to your schedule, you are finding it hard to keep the lessons updated and manage your other responsibilities. You want to have the the lessons for each day appear on the same page so you don't have to keep giving your students a different URL each day.
Or let's assume you have to publish a weekly schedule.
Or maybe... You want your site visitors to see a fresh list of articles every day when they visit your site.
In each of these cases the content could be prepared in advance, on a day when you have time, and then use XSSI to make sure the correct page loads on the correct day; regardless of whether it is a list of articles or lessons.
XSSI means Extended Server Side Includes.
The first thing you need to do is tell the server what day it is so it will know what page to load:
<!--#config timefmt="%A" -->
<!--#set var="weekday" value="${DATE_LOCAL}" -->
This gets the day, and stores it into a variable called "weekday."
<!--#if expr="'${weekday}' = 'Sunday'" -->
<!--#include file="sunday.inc" -->
So... if it is Sunday, this tells the server to load the "sunday.inc" (included file fragment) into your lesson plan page. What if it isn't Sunday? What if it is Monday?
<!--#elif expr="'${weekday}' = 'Monday'" -->
<!--#include file="monday.inc" -->
Notice the change from "#if" to "#elif" -- this means if the condition isn't met, and it isn't Sunday... then if it is Monday... load "monday.inc"
Let's continue:
<!--#elif expr="'${weekday}' = 'Tuesday'" -->
<!--#include file="tueday.inc" -->
<!--#elif expr="'${weekday}' = 'Wednesday'" -->
<!--#include file="wednesday.inc" -->
<!--#elif expr="'${weekday}' = 'Thursday'" -->
<!--#include file="thursday.inc" -->
<!--#elif expr="'${weekday}' = 'Friday'" -->
<!--#include file="friday.inc" -->
<!--#elif expr="'${weekday}' = 'Saturday'" -->
<!--#include file="saturday.inc" -->
There are only seven days in the week so we need to tell the server that we have reached the end of the conditional statements so the last line of code is:
<!--#endif -->
Now you can do your lessons plans when you have time, upload them and let the server deliver the content on the day your site needs to be updated.
Posted by Steve MacLellan at 03:20 PM | Comments (0) | TrackBack
Absolute positioning for Search Engines
> How do you tell a spider to index the upper
> part of a page and not the lower part?
No. You can't tell it to skip indexing the top of the page, but what you can do is use CSS, absolute positioning, to place text containing keywords at the top of your page, that is invisible to users, but visible to search engines.
Let's look at an example.
Look at these two pages and see if they LOOK any different: page1 and page2.
Page1:
http://homebusiness-websites.com/index.html
Page2:
http://homebusiness-websites.com/homebusiness-websites.html
In any standards compliant browser they look the same.
Use your browser "view source" on page1 to see how far down you have to scroll before you get to any content. Then "view source" on page2 and you will see some keyword stuffing in a div tag that isn't visible to the user and isn't displayed in the browser. A search engine spider can see it though.
Using absolute positioning I've placed the content out of the range that the browser can display.
Did you happen to notice the meta tags for keywords and description? Google doesn't bother with these meta tags because they have been abused so much in the past. But there are other search engines beside Google. AltaVista, AllTheWeb and Teoma still take these tags into consideration, and there has just recently been launched (last week) two new META search engine crawlers that collect results from various sources and return what they deem the closest to your query. I forget the name of the first one, but the second one which I tried and like is clusty.com.
Clusty is a meta-search site, drawing its results from multiple engines and other information sources. Clustered-search technology does offer an innovative alternative for users wanting a different way to view results. Maybe it is a step ahead of the new MSN search engine. Likewise MSN added a technique for grouping, or clustering, search results by domain in order to make sure that users view results from a variety of domains rather than getting multiple Web pages from the same domain.
New search engines haven't been springing up so quickly the last couple of years since Google's World domination, but recently there are new ones emerging and I hear that some of Google's key people are quitting (maybe there is trouble brewing). As well, Microsoft is ready to give Google a "run for it's money" with its redeveloped MSN search. Justin Osmer, an MSN product manager, claims MSN Search has indexed more then 5 billion Web documents while Google's claim to fame is 6 billion documents.
Anyway, the point is — it is pretty hard to tell which way the train went by looking at its tracks so I wouldn't completely abandon meta tags yet.
Posted by Steve MacLellan at 03:18 PM | Comments (0) | TrackBack
Printer Friendly Pages
Yes, I am sure you have seen this on a lot of the bigger news sites etc. Just about every site offers a printer friendly version of the page you are reading.
What this says is that if a prospect can keep your information on their desktop for further study, this gives him or her a greater opportunity to be able to order from you providing the printed page has your contact information on it.
You want to make sure that your fax, phone number(s) and address is on every page you write and put on the web. Especially if you're going to give them the opportunity to print your information
Part of the inspiration I received to write this article stems from discussions I have had with associates and customers about abandoned shopping carts. You know - these are the folks who were going to buy from you but for some unknown reason backed out of the ordering process at the last minute. Why?
There are several opinions as to why. I don't really care why. The fact is - they backed out and you lost the sale. But even if they backed out, it doesn't mean you have to lose the sale. Not, if they already have a copy of your sales letter with your contact information on it.
A few years ago most browsers did not print web pages well at all. But newer browsers are capable of printing really well. The problem is you have the web sales copy buried in the design of your site. It is surrounded by flashing animated images, banners, buttons, colors and all manners of web page stuff that is not going to print well at all.
So this is what we need to accomplish:
We need to separate the sales copy from the web display properties and page, to present something to the prospect that would print well.
We need to include a small javascript that will be a link they can click on to print this page.
We need to include with the sales copy that gets printed off, our contact information so they can call or fax, and a order form suitable for mailing or faxing.
We also want to keep the expense of this project down because we don't want to be writing the same copy twice - once to fit in with the theme of the site, and once on plain white background with black text for printing.
For those of you with professional hosting on either *nix flavoured servers or NT servers, you are more then likely able to use a simple language called XSSI. This means Extended Server Side Includes and is developed from SSI but now allows the use of conditional statements such as "if", "elif," else, etc.
So if the main article on your page has been added to the template as an included file, you can easily separate it from the rest of the template. Suppose the file name of the article you are looking at is called "smallbiz.shtml"
Most servers parse files with the "*.shtml" extension for SSI commands. This means that the commands are carried out before the content is sent to the users browser. This is why you won't see the coding if you use your browser's "view source."
At the very bottom of the document you see a little icon for a printer and a link that invites you to click for a printer friendly copy. In this example, the included file in "smallbiz.shtml" is called "smallbiz_bodycopy.shtml" so that when we click that link it can either open in a javascript window, or you can use the link attribute TARGET="_blank" top open a new copy of the browser with the printer friendly document loaded into it. This will exclude all the extraneous web page stuff you don't want printed
By using a little pre-planning we have buried some XSSI commands in this document that could not be executed when the file opened in "smallbiz.shtml". We execute these commands by having the document recognize a server variable such as the name of the document itself. Using a little code like this:
<!--#if expr="($DOCUMENT_NAME=/smallbiz_bodycopy.shtml/)" -->
<!--#include FILE="js.js" -->
<!--#endif -->
What this is doing is including a little javascript that will be placed at the top of the window that will be a javascript link to print the page. All we are including with this file is:
<p ALIGN="center"><a href='javascript:;' onClick='window.print();return false'>Click Here to Print this page.</a>
You don't see this when the content was included in the template because the NAME of the document at that time was NOT "smallbiz_bodycopy.shtml" but was instead part of "smallbiz.shtml" so this Javascript link does not appear when the content is embedded with the regular document.
See? So it is possible to have any amount of content buried within the printer friendly version of the web page but not have it visible until they click the link which launches the main document into it's own window for printing.
As well, at the bottom of the document you could include a generic order form. That would appear in the page that gets printed off.
<!--#if expr="($DOCUMENT_NAME=/smallbiz_bodycopy.shtml/)" -->
<!--#include FILE="generic_order.html" -->
<!--#endif -->
I say "generic" when in fact you could include a custom order for each page, but then this creates more coding for yourself. A generic order form can be called in using a template file that is used for several web pages.
I know some of you might think that a generic form might not work for all products and this may be true. Then, Eaton's seemed to be able to do it for the thousands of items in their catalogue.
You could even swap online ordering info with off-line ordering info depending on how they view the document. You could also include special formatting with CSS (Style sheets) and swap out the files.
Posted by Steve MacLellan at 03:16 PM | Comments (0) | TrackBack
Building a SEO Template Part I
I see a common theme on Internet now of making use of templates. Whether it is for link directories, SEO optimization or directory generators such as Front Page or SmartPages. idea is to get these pages a good ranking in search engines to help draw traffic into your site.
There a numerous theories of how search engines index your site, how far they crawl down page for content. There are still search engines that support META tag and ones that don't... such as Google.
So idea behind template is to try and get content of your page as close to top of document as you can, so that search engines that don't support META tags can read some of your content. Let's look at a possible template:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Something descriptive</title>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
<meta name="mssmarttagspreventparsing" content="true" />
<meta name="Description" content="" />
<meta name="Keywords" content="" />
<link rel="stylesheet" href="stylesheet.css" type="text/css" />
</head>
<body>
<div id="header"><h1>Main header content</h1></div>
<div id="main">
<div id="left"><h2>Secondary Main Header content</h2>
</div>
<div id="right">Other Links</div>
</div>
</body>
</html>
This template will be compliant and validate under current XHTML and CSS standards. Although it will display best in newer browsers it will be backwards compatible so it displays pretty good in older browsers too like Netscape 4.x
You notice we have included import and META tags for search engines that support them, and for those who don't, main content tag in is an h1 element right under BODY element.
We use an external stylesheet so Search Engines don't have to wade through data that doesn't mean anything to them.
Right under h2 element will be main content of page. Other links will be lower down on page in markup, but will appear in a right-hand navigational menu.
You will notice at this point there isn't any links to graphics in html. To keep presentation separate from content, these elements are in CSS file.
So CSS properties for body tag (using this example) are
body {
background: #C0C0C0;
background-image: url("images/x036.jpg");
background-repeat: repeat;
}
This just provides main background color and background we wish to tile.
Then in CSS for id header, we have:
#header {
border : black solid 2px;
width: 746px;
margin : auto;
height : 100px;
border-collapse : collapse;
background-image: url("images/header.jpg");
}
By placing this in a div, setting a width for it and setting margin to 0 it will center header information. You will also notice I've set a background image and set a border that will surround content to give it more of a template feel. This has effect of taking place of using TABLES for layout purposes. You will see more about this as we progress through this tutorial.
Next we want to take a look at "div id=main" because this is a container for two other div elements; "div id=left" and "div id=right"
#left will be main content area and #right will be navigational menu. It is constructed this way so first content search engines will index is closer to top of page and under our h1 header. All we really want to do with #main container div is to set up margins and width. This is it:
#main { margin: auto;
width: 750px;
}
Again, margin is set to auto and with width locked to 750px it has effect of mimicking a centered TABLE. This wouldn't be so important if everyone was using same monitor resolution, set to 800x600, but recent reports show that almost half of online population is using 1028x768 or greater, since monitors larger then 17" became popular. So we want to center content so those with a larger display resolution aren't looking at a big empty space to their right.
Now we have our main container set, let's look at div id="left"
#left {
border : black solid 2px;
border-top: 0;
width: 599px;
float : left;
background-color: White;
}
Over-all it has our border set to 2px; but since we already have a border at top from header div... we set top border to 0 so it doesn't look like we have an overly thick border at top. We have also told this "div" that we want it to float left. It will move as far left as #main will allow it.
only other thing to note about this #left is background color has been set to white, so our main content area can have black text on a white background.
Now let's look at #right div:
#right {
border : black solid 2px;
border-top: 0;
border-left: 0;
width: 145px;
height : 300px;
float: right;
background-image: url("images/right-background.gif");
background-repeat: repeat;
}
You will see here that border top and left has been set to 0 so we don't have a border with a double thickness, but what is really important to note here is widths of two divs. One is set to 599px and other is set to 145px, which adds up to 744 pixels and not 750. But we have to include widths of our borders here. We have a 2px border on left, another which separates two columns, and another on right. Now we have filled 750 px width that we set in #main. If these are not exact, then you will find your two columns displaying funny... for example, your links column will hang below main content area, giving page a very unusual look.
I've created a template for this tutorial, and added an article to it. You can view it here:
http://homebusiness-websites.com/tutorial
You can click images at bottom of page to check and see if Xhtml and CSS validates.
Next week will be part II
Posted by Steve MacLellan at 03:06 PM | Comments (0)
Crafty Syntax Live Help
A free multi-user, multi-operator, multi-department Live Help support chat system...
...that allows the operators of the websites to monitor their visitors as they are browsing the site and proactively open a chat session with that visitor. The modular structure and open source code allows for the highest level of freedom in customization to fit your needs.
Download here
Posted by Steve MacLellan at 01:48 PM | Comments (0)
October 28, 2004
Building a SEO Template Part II
My stats are showing only about 20% of you are interested in this template tutorial. This is Part II and the final part, so if those of you who are not interested... we will talk about something else next week.
Last week I said:
Now let's look at #right div:
#right {
border : black solid 2px;
border-top: 0;
border-left: 0;
width: 145px;
height : 300px;
float: right;
background-image: url("images/right-background.gif");
background-repeat: repeat;
}
What we want to do now is add a bit more to the #right div. We want to put some links in here to other sections or whatever you want to link to. I think a nice CSS mouseover would be appealing.
You can see it in action here:
http://homebusiness-websites.com/tutorial2
The only code we add to the html template is the links:
<div id="right"><ul>
<li><a href="http://">Section #1</a></li>
<li><a href="http://">Section #2</a></li>
<li><a href="http://">Section #3</a></li>
<li><a href="http://">Section #4</a></li>
<li><a href="http://">Section #5</a></li>
</ul>
</div>
A "div" means a division of a web page. Each division can have its own characteristics that are separate from the other parts of the web page. So the first thing I did to the #right div was setup the fonts by adding this code to #right:
font-family: arial, sans-serif;
font-weight: bold;
font-size: 10pt;
Then we need to define some of the other elements within this div:
#right ul {list-style-type: none;
margin: 3mm;
padding: 25px 0 25px 0;
}
#right li {margin: 0;
padding: 5px 0;
}
#right li a {color: black;
padding: 10px 0 10px 20px;
background: url(images/brown-button.gif) no-repeat 0 50%;
text-decoration: none;
}
#right li a:hover {margin: 0;
background: url(images/brown-button-hover.gif) no-repeat 0 50%;
color: red;
text-decoration: none;
}
When you specify all of the values to a property such as padding in the main UL, the values start at the top, and move clockwise. So the first value is the top padding, the second is the right padding, the third is the bottom padding and the fourth is the left padding value.
I create the two images the brown and red blocks which are 10x10 and the #right li a:hover color is set to red, so that when you mouseover a link, both the block and text turn red.
If you have followed this example, you should have a nice looking mouseover navigational menu without using any Javascript. Search engines won't have any problem indexing these links.
One other thing that is a good idea to add is another stylesheet:
<link rel="stylesheet" type="text/css" href="print.css" media="print" />
In modern browsers when want to print the page you can use an alternate stylesheet by specifying the media type as "print" which allows alternate formatting.
In this stylesheet I've removed all the graphics except for the validation buttons at the bottom, and also changed the 2px border around the template to 0px. If someone wants to print off your article, there isn't any sense in using up all of their colored ink or having borders on the printed page.
It probably wouldn't hurt if you were building templates this way to include some contact information at the bottom of the article. That way if your article gets printed off, anyone who sees it will know where to find you.
You can also try experimenting swapping out the images with other ones. If you replace the header, background and tiled image of the navigational column, you will have a whole new template.
Including the images, stylesheets and the html page itself, the total files size is 39KB and download of this template and article is:
33.6K 12.89 seconds
56K 7.81 seconds
On DSL/Cable it is about 2 seconds.
For those who are interested in exploring SEO friendly templates a little more, you can download all of the files used in this tutorial in a zippered file:
(Note: Sorry -- the download is only for subscribers to the HomeBusiness Websites Journal)
The images folder in this zippered file are common to both webpages. The file called "index2.html" uses "stylesheet2.css" and "print.css."
If you wish to discuss this tutorial or anything else published in this newsletter, please visit my discussion board at:
http://talk.homebusiness-websites.com
NOTE:
Another template I did had to be validated as XHTML 1.0 Transitional because of the Javascript. I noted with this template that the when you try to use an alternate stylesheet for printing that sometimes the styles from both stylesheets will be inherited. This isn't good.
To prevent this from happening you can call your two stylesheets in this way:
<link rel="stylesheet" href="print.css" type="text/css" media="print" />
<style type="text/css" media="screen">@import url("stylesheet.css"); </style>
The @import method for screen isn't recognized by older browsers and seems to stop the template from inheriting style from this stylesheet when you print off the web page.
You can see an example here:
http://homebusiness-websites.com/apple
Posted by Steve MacLellan at 07:34 AM | Comments (0) | TrackBack
