IE6 Does Not Support Multiple Class Selectors

February 4th, 2010

Google will be ending support for IE6. That’s a good thing if you’re a front-end developer constantly pulling your hair to support IE6. You know how painful it could get. Fortunately this move by Google should force IE6 users to upgrade, switch or die.

We came across a recent issue regarding multiple class selectors.

<div class="box featured"></div>

In this example, using the selectors .box.featured or .box or .featured would reference the DIV. However IE6 does not recognize .box.featured. Herein lies the problem. So the solution is to avoid multiple class selectors.

Email Marketing Services

January 6th, 2010

Why You Need an Email Marketing Service (or email newsletter service)

There are limits to how many emails you can send per day, as imposed by your ISP, your hosting provider or your free email service provider. Mostly, these limits allow you to send 250 emails a day only.

With an email marketing service, email newsletters can be crafted, sent, and even tracked online, all in under ten minutes. Have a time-sensitive announcement to make? An email newsletter is waiting in your recipient’s inbox a second after you hit send.

You might ask what the difference is between sending an email and an email newsletter. On the surface, very little, but one of the common problems is that there are a wide variety of email handlers. Most accept html, but not all accept every tag, so testing your newsletter before it goes out is an important feature, and one common to newsletter applications. Getting your newsletter the way you want, no matter what email reader the receiver is using is just one of the benefits.

Online newsletter applications have a lengthy list of features, from how you can create them (html, css, design tools, and templates), how you send them (scheduled delivery, targeted audiences, address management), and how you track them (analytics and bounce lists). Newsletters can be cloned, adjusted, even catered to specific addresses (by zip code, for example). Subscriber and send lists can be managed (and imported), and adjusted for duplicates and bounced emails.

Beauty is in the Eyes of the Reader

HTML Email Newsletters are much like websites. The difference is that they are delivered via email instead of the visitor going to your website. As we develop for the web, we put careful attention to detail and make sure that the website looks consistent across all major web browsers, because each browser interprets HTML in a slightly different way. That is why you see some badly made websites that look good on one browser and messed up on the next.

There are hundreds of email readers that are widely used. Now imagine each email reader as a web browser. To be able to produce HTML that is of consistent quality across all email readers would be a very time consuming, expensive task. That is why we need an email marketing service.

Can’t I Just Use Outlook, Gmail, Yahoo or Hotmail Account?

Sure you can. If you have a small list of about 100 subscribers and is content on sending plain text emails, these email applications will do. However if you have more email accounts than you can manage manually, an email marketing service is necessary.

Email Marketing Service Providers

Constant Contact

Perhaps the best known name in email marketing, Constant Contact has been in the online marketing business since 1995.  It offers a very comprehensive selection of design templates to choose from or the ability to design your own style from scratch.  It’s also easy to integrate into your website, so you can encourage sign-ups in your web marketing.

Constant Contact’s pricing is also reasonable for most small businesses, and based on how big your subscriber list is.  If your list includes less than 5,000 email addresses, you’ll be paying $50 per month or less.  Even at 25,000 subscribers, the monthly fee is only $150.

Mad Mimi

If Constant Contact is the Microsoft of email marketing, think of Mad Mimi as the Google of the medium.  As opposed to feature-rich, somewhat complex software (some might use the term “bloated”), Mad Mimi is lightweight and extremely quick and easy to get started with.

You can have a basic newsletter customized and ready to send within a few minutes.

Mail Chimp

Like Constant Contact and Mad Mimi, MailChimp makes it relatively easy to design, send, and track an email newsletter.  The difference is that it allows you to pull your content from an RSS feed. In other words, instead of needing to come up with new original content for your newsletter, you can simply have your newsletter automatically send out your most recent blog entries to email subscribers.

This approach isn’t for everyone, but if you have a highly segmented audience of customers, some of whom are Web savvy and follow you in social media and others who do little else on the Web besides email, it’s a good way to double up your efforts.  Similar to other providers, MailChimp has tiered pricing based on how many subscribers are on your mailing list.

Comparing MailChimp, MadMimi and LetterPop

Please visit this review site for more information:

Price comparison and reviews of several email marketing services

WordPress is for Business Websites Too!

October 8th, 2009

WordPress may be synonymous to blogging, but WordPress software can also be used as a content management system (CMS) for business websites and even e-commerce websites. Clearly, WordPress has evolved beyond blogging.

Aside from this website, here are 10 business websites that use WordPress.

  1. Feedback Audio
    feedbackaudio
  2. fraai
    fraai
  3. Future Snowboarding Magazine
    futuresnowboarding
  4. Ginger Restaurant
    ginger
  5. Inbound Pass
    inboundpass
  6. International Screening Solutions
    iss
  7. Kineda
    kineda
  8. Little White Lies
    littlewhitelies
  9. Miami Dating Coach
    miamidating
  10. ten24media
    ten24media

What Is A Database Driven Website?

August 24th, 2009

A database driven website is a website that has most of its webpage content in a database. Therefore, the website content isn’t actually sitting in files on the server, it is sitting in tables and columns in a database.

A website with its content stored on the file system is often referred to as a static website, whereas a database driven website is often referred to as a dynamic.

Content Management Systems

A website with dynamic content usually has a CMS (Content Management System) to assist the content providers in updating the website.

A CMS is usually provided in the form of an administration area where content providers need to log in before they can add content. Once logged in, they can create, update and delete articles. They may be able to upload files such as Word documents, PDF files etc. They might be able to upload images too.

All of this content can be stored in the database. Some may be stored on the file system too though. For example, although documents and images can be stored in the database, there are sometimes reasons to store them on the file system. Performance is often a key reason. Database size is another.

Discussion Forums and Blogs

Discussion forums and blogs have become a popular feature for many websites. Most, if not all, forums and blogs are database driven. Users can register their details, then add content. When the user clicks the “Submit” button, their details/content is inserted into the database. Then when someone decides to view this content, it is read from the database using SQL (Structured Query Language).

Combination of Static and Dynamic

Some websites have a combination of static content and dynamic content. There could be any number of reasons for this. Often, smaller websites will be static. There’s little need to configure a database just to store a handful of webpages – much easier and cheaper to keep them as files on the server. Even websites like this might contain some added functionality such as a discussion forum, or a blog. In this case, the discussion forum or blog will need its content stored in a database.

Benefits of a Database Driven Website

Database driven websites can provide much more functionality than a static site can. Extended functionality could include:

  • Enabling many (potentially non-technical) users to provide content for the website. Users can publish articles on the website without needing to FTP them to a web server.
  • You can provide advanced search functionality that enables users to filter the results based on a given field. They can then sort those results by a field – say “Most Viewed” or “Date”.
  • Customized homepage
  • You can allow your users to perform tasks such as registering for a newsletter, post questions to your forums, provide comments on a blog, update their profile, etc.
  • Integration with corporate applications such as CRM systems, HR systems etc
  • Much more

Estimating Potential SEO Traffic

August 23rd, 2009

One method of estimating potential traffic is by using click distribution knowledge and adwords data.

In August of 2006 AOL leaked millions of search records. Some SEOs scoured through this data to look at click data by ranking. A comment on Jim Boykin’s blog reveals the percent of clicks for each position for 9,038,794 searches and 4,926,623 clicks. Donna Fontenot shared the relative click volume of lower ranked results relative to the top ranked site.

traffic-by-rank

  1. 42.13%, 2,075,765 clicks
  2. 11.90%, 586,100 clicks
  3. 8.50%, 418,643 clicks
  4. 6.06%, 298,532 clicks
  5. 4.92%, 242,169 clicks
  6. 4.05%, 199,541 clicks
  7. 3.41%, 168,080 clicks
  8. 3.01%, 148,489 clicks
  9. 2.85%, 140,356 clicks
  10. 2.99%, 147,551 clicks

An eye tracking study in 2004 by Cornell University revealed similar results:

click-distribution-serp

Now based on this knowledge, we only need one more input to determine traffic when we get a position anywhere from 1 to 10 in the SERPs, that is the Average Daily Impressions. We can get an estimate of this from Adwords Tools, but if you want to get more accurate numbers, you have to spend a little research money and buy PPC ads. This will give us a more accurate number of daily impressions.

CakePHP Authentication, Authorization and ACL

August 19th, 2009

What’s the difference between Authentication and Authorization?

These two terms are quite often misunderstood. Let’s put it this way, suppose you work in a 100-story office building, each floor has different offices of other companies. You are working on the 49th Floor, cubicle number 20. Authentication is when the security personnel at the building’s front door allows you to come in. Authorization on the other hand, is when you have permission to get to your cubicle, log in to your computer and perform the tasks that you are permitted to do.

So being Authenticated does not automatically mean Authorized, but being Authorized would have to mean you are Authenticated.

Using Basic CakePHP Authentication

The first step is to include the Auth component in your controller. If you are going to use Auth for the whole site, you would want to put this in your /app/app_controller.php.

class AppController extends Controller {
 var $components = array('Auth');
 
 function beforeFilter() {
 //Configure Auth settings
 $this-&gt;Auth-&gt;loginError = "No, you fool! That's not the right password!";
 $this-&gt;Auth-&gt;authError = "Please sign in.";
 
 //$this-&gt;Auth-&gt;loginAction = array('controller' =&gt; 'users', 'action' =&gt; 'login');
 //$this-&gt;Auth-&gt;loginRedirect = array('controller' =&gt; 'users', 'action' =&gt; 'login');
 //$this-&gt;Auth-&gt;logoutRedirect = array('controller' =&gt; 'users', 'action' =&gt; 'login');
 
 if($this-&gt;Auth-&gt;user()) {
 //Our user is logged in.
 //User data is stored in $this-&gt;Session-&gt;read('Auth');
 }
}

Then in your controllers, for example users_controller.php.

function beforeFilter() {
 parent::beforeFilter(); //This line inherits beforeFilter() from app_controller.php
 $this-&gt;Auth-&gt;deny('*'); //Disallow access to all actions
 $this-&gt;Auth-&gt;allow('register','logout'); //Allow access to register() and logout()
}

Using CakePHP Authorization

Add the following code to /app/app_controller.php beforeFilter(). Auth->authorize accepts four types, “controller”, “model”, “actions”, “crud”. See the CakePHP manual on Authorization for details.

 //Auth method. If set to controller,
 $this-&gt;Auth-&gt;authorize = 'controller';

If Auth->authorize is set to “controller”, you’ll need to add a method called isAuthorized() to your controller. This method allows you to do some more authentication checks and then return either true or false. In this case, we put isAuthorized() into our users_controller.php

function isAuthorized() {
 if( $this-&gt;action=='index' || $this-&gt;action=='view' || $this-&gt;action=='add' || $this-&gt;action=='edit' || $this-&gt;action=='delete') {
 if($this-&gt;Auth-&gt;user('group_id')==4)
 return true;
 }
 //Redirect to error notification page
 $this-&gt;Session-&gt;setFlash('Sorry, you don\'t have permission to access that page.');
 $this-&gt;redirect('/');
 return false;
}

Using CakePHP ACL (Access Control Lists)

This topic is a wee bit more complicated. I did not proceed using ACL because CakePHP’s Authorization was enough for my needs. ACL is a lot more flexible in granting and denying permissions. Granting and denying access to our users using ACL is quite complicated, fortunately somebody created a CakePHP ACL Management Plugin. It might still take a little while for CakePHP’s ACL to get easier to implement.

Google Maps Disappearing from Post

August 9th, 2009

Have you ever tried to add a Google Map into your wordpress posts or pages only to find them disappear after editing the post or page again? Apparently this problem is caused by using Wordpress’ built-in Visual Editor. The Visual Editor does not like iframes.

There are plugins available to insert google maps such as GoogleMapper, XML Google Maps, Google Map Shortcode but they require you to sign up for an API. The problem is also being discussed at the wordpress forums.

Scott has a great article about what options we have for inserting google maps in wordpress.

How Many People Still Use IE6, IE7 and IE8?

July 31st, 2009

It’s been several years already and who would have thought that a great many people are still using IE6? Apparently, IE6 still has lots of fans.

These two snapshots were taken from our properties, with majority of the visitors coming from the U.S. and Philippines.

Picture 5Picture 6

IE7 dominates the Internet Explorer charts. However, websites should still be developed to be backward compatible with IE6. It’s safe to say that we can now forget about IE5.5.

Finding Dofollow Links

July 27th, 2009

Brian Gilley over at Social SEO published a great article about finding the best backlinks. To find these backlinks, Google’s advanced search operators are your best friend.

Here’s a summary of the keywords from Brian

inurl:forgotten_password.php “We will send the address of a unique verification page to you via email click”

Elgg

“Powered by Elgg”

Drupal Searches

“Allowed HTML tags: <a>”

Laconica – microblogging

http://www.google.com/search?hl=en&safe=off&q=inurl%3Aregister+URL+of+your+homepage%2C+blog%2C+or+profile+on+another+site&btnG=Search

b2evolution

“Your URL will be displayed” “Line breaks become <br />”

JobberBase

“powered by jobberBase”

“powered by Mephisto” comment
“powered by subtext”
“Powered by s9y” comment

Find most used CMS and Least used CMS from CMSMatrix.org and find dofollows!

Strings

“leave a comment”

Submit A Link

  • keyword + “your link here” -reciprocal (example)
  • keyword + “post your link” -reciprocal (example)
  • keyword + “post a link” -reciprocal (example)
  • keyword + “post your link” -reciprocal (example)
  • keyword + “list your site” – reciprocal (example)

Commenthunt.com

Azure Profiles – http://freelanceswitch.com/designer/17-websites-to-boost-your-designer-profile/

Link Buying Queries

    • “become an advertiser”
    • “advertising options”
    • “advertise with us”
    • “become a sponsor”
    • “sponsor our site’
    • “sponsor site”
    • “sponsor us”

Link Data

Yahoo Site Explorer

Alexa – http://www.alexa.com/data/ds/linksin/seomoz.org
Exalead – http://www.exalead.com/search/results?q=+link%3Ahttp%3A%2F%2Fseomoz.org&x=0&y=0

How to Analyze Keyword Difficulty Using Only Google

July 26th, 2009
  1. Perform a naked search of the keyword e.g. “Organic Wine”.
  2. Perform an allinanchor search to distinguish the authority domains from the niche domains (allinanchor:”Organic Wine”)
  3. To get how many back links a site has using the keyword, perform a search using Yahoo! Site Explorer
  4. SEMRush competition meter. The higher the number, the more difficult it is.

Reference: http://www.seomoz.org/ugc/how-to-analyze-keyword-difficulty-tooless