Archive for 2010

Blog Seperator
June 14th, 2010

Multiple PHP Class Autoloaders

So you’re a l337 php coder. So you’re using classes to make things awesome… and you are also tired of including every single file you need. You don’t want to, but you end up loading every bit of your application with a huge list of includes, even if you don’t need all of it.

In comes the PHP class autoloader magic function.


__autoload($className) {
    // Your awesome code here
    require_once($classPath);
}

As you might expect there are many ways to auto load classes. lifeBLUE has their preferred method. However, there are times that you want to have more than one class autoloader for different situations. Our current application actually has several ways for loading classes in. This presents a problem, as the autoloader can become a complicated mess. Thankfully there is a nice little function PHP provides us that makes these problems go away.


// Awesome PHP autoloading register function
spl_autoload_register("FunctionNameOne");
// Calling a static class function
spl_autoload_register(array("ClassName", "FunctionNameTwo"));

Once you have registered your functions, you can write them to include your class in whatever method you choose. For more reading check out the PHP site for the documentation.

Using this allows you to have more than one autoloader present in your application. It also allows you to have your own autoloader function co-exist nicely with autoload functions from libraries you get from third parties.

Happy including!

June 14th, 2010 in Uncategorized | Comments (0)
Blog Seperator
June 3rd, 2010

Schema Busters - Part 2: Indexing

The importance of Database Indexing and its effects on efficiency.

“Schema Busters” is a multipart technical overview of Database Design elements that you can implement when designing and accessing your database implementation. In this second section we will discuss the importance of Indexing database columns to speed up data accesses. We will discuss the pros and cons of indexing, and describe the logic behind Indexes.

What is an Index?
Think of database indexes like you would an index in a library book. When you go into the library and need to find a book of a particular genre, you usually head straight to the genre’s section. This is similar to performing Select statements on non-indexed tables. You might be looking at the right shelves but you don’t necessarily know where to start looking. Indexes help to more quickly identify the location of a book, or in the case of databases a record.

How do Indexes work?
Take our library example from above. What would be an efficient and simple solution to help speed up the time it takes to locate a particular book? Sorting! Let’s sort all of the books by their title, and now anybody who knows the title of their book can quickly slim their search down to a significantly smaller number of books. Database indexes work in the same exact way. Indexes keep track of a sorted set of values with an associated row number that allows them to point back to the original record containing the sought index value.

Creating an Index
You can create an index on a table column either at table creation or by using the CREATE INDEX syntax. Listed below are examples of both of these approaches on the same table with the same results:

  • CREATE TABLE Settings
    (
    settingId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    settingName VARCHAR(128) NOT NULL,
    settingDescription VARCHAR(512) NOT NULL,
    settingGroup VARCHAR(256) NOT NULL,
    settingValue VARCHAR(512) NOT NULL,
    INDEX(settingName),
    INDEX(settingGroup)
    );
  • CREATE TABLE Settings
    (
    settingId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    settingName VARCHAR(128) NOT NULL,
    settingDescription VARCHAR(512) NOT NULL,
    settingGroup VARCHAR(256) NOT NULL,
    settingValue VARCHAR(512) NOT NULL,
    );
    CREATE INDEX indexSettingName ON Settings (settingName);
    CREATE INDEX indexSettingGroup ON Settings (settingGroup);

Efficiency Comparisons
Indexes manipulate the fact that they are looking through sorted records in order to refine their search scopes to specific regions by doing simple comparisons. While the method that indexes refine their search scopes is dependent upon the DBMS and the type of Index being created, we can still show a generic example of efficiency improvements due to indexing based on the concept of binary searching. Keep in mind that this is a rudimentary example of indexing logic and is simply an estimate of efficiency gains. Again we will refer to our library example when determining efficiency gains. Let’s assume that the number of books contained in this non-indexed library is N, where N is any real whole number greater than 0.

Imagine that you are looking for a particular book in a non-indexed library. Where do you start? Best case scenario is you will pick up the book you want first, however in the worst case scenario you could end up looking at every single book before finding the one you want. This yields a best case of 1 comparison versus a worst case of N comparisons.

Now imagine that you are looking for the same book in an indexed library sorted by book title. We can now logically eliminate half of the books to look through simply by comparing the middle book title with our sought after title. In one row comparison we have halved our search time, and the greatest part is this process can be applied recursively! This yields a best case of 1 comparison versus a worst case of log2(N) comparisons. The logarithmic base of 2 comes from our division into two subsets equivalent in size.

First let’s note that in the best case we gain nothing, however efficiency is better evaluated in the worst case or in an aggregate of the two. In the worst case we considerably reduce the amount of books we will have to look through. If you are familiar with Big-O Notation you will notice this difference immediately. If you’re not familiar with Big-O Notation, try substituting 1,000 for N. Our non-indexed library has a worst case of 1,000 searches whereas our indexed library has a worst case of approximately 10 searches. It takes 1% of the time to find the book we want in the non-indexed library (if we’re considering the worst case scenario)!

Side Note
If you have been using databases for a decent amount of time you have probably already come across indexes but may not be immediately aware of it. Primary Keys and Unique constraints are actually forms of indexing. By default these indexes are clustered, but you can specify otherwise when creating the constraint. This is important to note when deciding how to define primary keys for your tables.

Index Issues To Consider
Indexing is only beneficial to access queries, so before you go and add indexes to all of your tables on every column possible know that indexing can have a negative effect on your database performance. Indexing columns will increase the time it takes to perform INSERT, UPDATE, and DELETE commands since the index will also need to be modified appropriately to reflect changes. Always ask yourself “Will the majority of activity on this table be SELECT statements?” and “Where do I want to see stronger performance?” before adding indexes to a table.

It is also necessary to consider which columns you wish to index. Take our library example again: If we knew the author’s name but not the book title, then we would gain no benefit from an index on book titles. We would need to add an index on the author attribute instead of the book title column. In all reality you would probably benefit from an index on both attributes, but it is hard to understand multiple indexes with our library example since we cannot sort books by author and title separately due to physical limitations of the books. Fortunately there are no physical limitations with database data so it is entirely plausible to have two separate and distinct indexes. Choosing which columns to index is highly dependent upon project and client specifications. If you are having trouble identifying where you need to insert indexes consider using a database analyzer that can track where you are experiencing the most transaction traffic and provide suggestions that may benefit your database design.

Conclusion
Almost every project you come across can benefit from indexing database tables. Learning how to properly create indexes and utilize them to your advantage can further increase their usability, and the best part is they are relatively simple to understand and implement. Indexing is one of the primary means of boosting application speed, especially with a database-heavy application. For more information on indexing consider picking up Fundamentals of Database Systems by Elmasri & Navanthe or another database schema textbook.

June 3rd, 2010 in Nerd Matrix, Web Development | Comments (1)
Blog Seperator
May 19th, 2010

lifeBLUE L-O-V-E-S the 21 Day Cleanse!

A few bold and daring members of the lifeBLUE team have decided to embark upon a great adventure…cleansing their bodies! Everyone knows that we, as a nation, are in the middle of a Food Revolution with recent thought provoking movie/books such as Food Inc and Fast Food Nation, and the LB is no different. Five noble team members have embarked upon this valiant quest filled with yummy shakes, delicious fruits and vegetables, and enough pills to choke a majority of small animals. On the first day of the cleanse we have suffered our first casualty (Note to Self: If you refuse to eat vegetables, fruits, brown rice, or drink protein shakes, this might not be a good diet for you). With that being said, the other four are still going strong with the exception that one person hasn’t started yet because they somehow don’t think they will be able to control themselves on an upcoming visit to New Orleans…good call.

How did the LB get started on the cleanse? Well truth be told one of our clients, Watters Creek Chiropractic, located not 500 yards down the road from our office has included overall health and wellness in their list of services as part of their effort to promote a healthy America. They are helping the LB along on their mission providing their expertise making the shakes tasty and likewise coming in to make a few shakes for the team. Thanks WCC!

All in all the 21 Day Cleanse is a good way to promote a different way of eating and likewise force us to commit to a system that doesn’t allow the bad food choices we are faced with each and every day. Hopefully we will be better citizens and web designer/developers when it is all said and done. If we’re not then we will at least decrease the gravitational pull on the earth by being 10% lighter. For more information on the 21 Day Cleanse and Watters Creek Chiropractic, visit their blog.

May 19th, 2010 in Fun | Comments (1)
Blog Seperator
May 17th, 2010

Simple jQuery Tool Uncovered

It’s no secret we love jQuery here at lifeBLUE. It’s made our life easier and our applications better. One task I find myself frequently doing is finding something nested within the tag or element I’m working with. For example.

<div id="iKnowAboutThis" >
    <div class="one" >One</div>
    <div class="two" >Two</div>
    <div class="iWantThis" >Three</div>
</div>

I know all about the div element with the id of “iKnowAboutThis”. I can get at that with a simple:

var iGotIt = $("#iKnowAboutThis");

I can use the jQuery object to do whatever I want. But what if I need to get at the element with the class “iWantThis” that is nested within “iKnowAboutThis”. If I have more than one on the page then I can’t just do this:

var iGotThis = $(".iWantThis");

If I do the above, I’ll get all of the elements with that class. All I want is the one nested within “iKnowAboutThis”. Fortunately, jQuery has a very powerful tool to help me.

By using the context option within the jQuery selector I am able to get at any nested item I want like this.

var iGotIt = $("#iKnowAboutThis");
var iWantThis = $(".iWantThis", iGotIt);

With that little snippet, my search for elements with the selector I specify stays within the context I set for it.

There you go, simple!

May 17th, 2010 in Nerd Matrix, Web Development | Comments (0)
Blog Seperator
May 10th, 2010

Is your website outside the box, or sitting inside the box with the rest of your niche?

What’s in a niche? When I think of the term “niche” in the web industry, I immediately think, “Oh god, they’re all the same”.

  • I hear “medical”, I think corporate and boxey,
  • I hear “hotel”, I think text heavy, a decent looking banner image, and lots of forms,
  • I hear “night club” I think huge photos, dark color schemes, with hardly any text,
  • I hear “clothing retailer”, I think 2 column boring layout with cheesy stock photos,
  • I hear “garage band”, I think dark, grunge backgrounds, with crazy fonts that you can’t read,
  • I hear “daycare”, I think bright and pastel colors, with massive amounts of smiling children.

Does this mean that because you’re a marine biologist your website has to look a certain way, or if you’re a vacuum repair man you have a particular set of guidelines to follow when coming up with a look for your new website?

What comes to mind when you hear those terms? Every niche based industry seems to be so cliché. But it doesn’t have to be! Why not step outside the box? Rather then being the dreaded “this site looks just like all the others”, why not have the reaction of “Wow, I’ve never seen a candy store’s website look so awesome”. It’s up to you to start the trend that everyone else wants to then become.

So out of pure curiosity and an attempt to see how accurate I am, I’m gonna think up a few niche based industries and check out their sites, compare them, call them out on similarities, and see what differs as well. Here goes…


We’ll start fairly simple with “department store”.

You would think they all bought their template from the same place, right? The logo is in the top left, all three have a top row navigation, huge banner image, and columns of boxed ads. Let’s not forget the massive amounts of text links, everywhere! Not very original.


Next stop, let’s try “amusement park”.

Again, sensing a trend? Giant banner, navigation options along the top, banner ads in horizontal formation along bottom of site, and similar color schemes with blue backgrounds.


Moving on, “rock band”.

All three have a dark backgrounds, big band name written in grungy font and minimal text with the main focus on tour dates (understandably). And you gotta love the cheesy “backstreet boy”-type pose they all make. These guys are supposed to be hard core?


It’s lunch time, so I’m thinking “restaurant”.

We’ll try this two ways this time. Above, as you can see, are the less-thought-out ones. Upper left logo, understated banner area, we’ve now gone vertical with left navigation, and of course the huge banner image of food.

Now we’re talking! I have to give props to the above companies for turning their marketing efforts up a notch. It is a creative, outside the box, non-stereotypical, look at the appeal they have comparably. There are no similarities, they stand out above the crowd, and I’m gonna guess they are all currently on a waiting list for lunch. With websites this great looking, you’ll be fighting the crowds.


And lastly, I’m going with, “college”.

What we have here is a 3 column layout, school emblem in upper left, empty banner areas with a search box, left side navigation, and fairly low key color schemes.


So don’t become one in the same, let lifeBLUE help you break outside the box! Your website will thank us. You, of course, won’t have time to; because you’ll be too busy taking care of all your new customers.

May 10th, 2010 in Web Design | Comments (1)
Blog Seperator
May 4th, 2010

Schema Busters - Part 1: Normalization

The importance of Database Relations Normalization and its effects on efficiency.

“Schema Busters” is a multipart technical overview of Database Design elements that you can implement when designing and accessing your database implementation.  In this first section we will discuss the importance of a concept titled Normalization which aims to eliminate a number of undesirable attributes that a database relation may contain.  Initially we will discuss these undesirable attributes and then describe a number of popular methods, called Normalizations, to remove any undesirable attributes and convert an existing database relation into what is known as a Higher Normal Form Relation.  In each section we will also provide real world examples where such normalizations improve the quality of relations and query efficiency.

Undesirable #1: Non-atomic field values

Storing atomic (or indivisible) values in a field makes accessing data simpler and reduces redundancy.  Atomicity can be obtained by disallowing the direct storage of multiple values in a single attribute field.  That is, a single field contains at most a single element of the attribute domain associated with this field.  Take for example a CAR relation with a Color attribute.  Even though a single car may come in several colors, we would not want to store a list of colors in a single field since it makes accessing a single color element indirect and complicated (shown in figure 1).

CAR

Car_Id Name Color
001 Honda Civic {Black}
002 Toyota Camry {Red,White,Blue}

Figure 1 – Non-atomic attribute Color

To resolve this issue we need to convert our CAR relation into what is called a First Normal Form relation.  There are different ways of achieving this, some more efficient than others.  Below is my recommended method:

  • Remove the Color attribute from the CAR entity and place it into an associative table CAR_COLOR along with the primary key of CAR, Car_Id.

Pretty easy so far, right?  These two tables are now considered to be in First Normal Form.  We are now able to read in single car-to-color associations without the need of value parsing.

Undesirable #2: Non-Full Functional Dependency

Enforcing full functional dependency more accurately and properly associates relational data together.  For example, a table may have a composite primary key with different elements being functionally dependent on pieces of the composite key.  Full functional dependency separates data relations into intuitive dependency sets and allows for further database normalization.  Take for example the following CAR_SHOP, which refers to a shop that works on cars, relation and functional dependencies (denoted FD):

CAR_SHOP

Car_Id Shop_Id Driver Owner Price
  • FD1: Car_Id, Shop_Id >> Price
  • FD2: Car_Id >> Driver
  • FD3: Shop_Id >> Owner

The functional dependencies describe relations between data.  FD1 simply states that for a given car at a given shop the price can be evaluated, FD2 states that a given car has a given driver, and FD3 states that a given shop has a given owner.  We can break up the CAR_SHOP entity to be simpler and more descriptive by performing the following manipulations:

  •  Create a CAR entity that associates Car_Id and Driver.
  • Create a SHOP entity that associates Shop_Id and Owner.
  • Modify the CAR_SHOP entity that associates Car_Id, Shop_Id, and Price.

As you can see, this simply reflects the FDs described for our original CAR_SHOP entity.  These three new entities are considered to be in Second Normal Form.

Undesirable #3: Transitive Dependencies

Transitive dependencies exist when a non-key attribute of an entity is found on both the left and right-hand side of a known functional dependency.  This can lead to attributes being functionally dependent to non-key attributes.  Take for example a modified version of the CAR entity we described in the previous section:

CAR

Car_Id VIN OWNER DL_NUMBER SSN

Notice that we can derive the following functional dependency Car_Id >> DL_Number, SSN by the transitive property as shown below:

  •  Car_Id >> Owner >> DL_Number, SSN

Since it is relatively safe to assume that a single Owner can have more than one car, we can easily see that having two entries in the CAR relation would generate repetitious data.  In order to simplify our entity we can take the following steps:

  •  Modify the CAR entity and associates Car_Id, VIN, and Owner.
  • Create an OWNER entity that associates Owner, DL_Number, and SSN.

We can verify that these manipulations are valid by double checking that the original functional dependencies still hold on our new relations, CAR and OWNER.  FD1 now holds on the modified CAR entity and FD2 holds strictly on the OWNER entity.

Conclusion (for now)

While there are more normalizations we can consider, several have limited practicality in real-world environments and can be made unnecessary if a database is designed carefully.  I say this not to belittle their importance, but to recognize the matter of pertinence in our discussion.  If your projects are requiring you to perform additional normalizations, you may consider picking up Fundamentals of Database Systems by Elmasri & Navanthe or another database schema textbook and doing some independent studies.  Hopefully by now you have gained a general understanding of the importance of database relation normalization and how it can improve your database schema.  Look for my next entry in this series where we will discuss additional database schema concepts and practices.

.blogtable { width:100%; border:solid 1px #333333; color:White; } .blogtable th { background-color:#555555; color:White; } .blogtable td { background-color:#aaaaaa; color:White; padding:5px; }

May 4th, 2010 in Nerd Matrix | Comments (1)
Blog Seperator
April 26th, 2010

Logos: Things We Can Learn From Paul Rand

In my more academic studies of graphic design, I have come across some writings about logo design that ring so incredibly true and useful that I thought it would be a public service of sorts for me to share them. Instead of trying to paraphrase or rewrite these nuggets of pure knowledge gold into my own words, I will mostly be doing a copy and paste job to let the original author do the talking. I mean, if it ain’t broke, don’t fix it. Right? I certainly can’t say this stuff any better myself.

Anyone ever heard of design guru Paul Rand (1914 - 1996)? He knew a thing or two about a thing or two - particularly logo design. Look him up if you care to know more about him, but in short, he designed some of the most successful and recognizable logos we know today, such as IBM (1967), Westinghouse (1960), UPS (1961), and ABC (American Broadcasting Corporation [1962]). I’ve looked at some of Mr. Rand’s logo presentations and believe you me, that guy put oodles of thought and exploration into every phase of the design process. So yeah, he was pretty much an expert on logo design. Here’s what he said, quite simply and directly, about what a logo is and does in an article he wrote for AIGA in 1991 titled “Logos, Flags, and Escutcheons”. Pay attention here, because this alone should clear up a lot of misconceptions we encounter today about the role of a logo:

“A logo is a flag, a signature, an escutcheon.

A logo doesn’t sell (directly), it identifies.

A logo is rarely a description of a business.

A logo derives its meaning from the quality of the thing it symbolizes, not the other way around.

A logo is less important than the product it signifies; what it means is more important than what it looks like.”

In the same article, he goes on to say:

“Should a logo be self-explanatory? It is only by association with a product, a service, a business, or a corporation that a logo takes on any real meaning. It derives its meaning and usefulness from the quality of that which it symbolizes. If a company is second rate, the logo will eventually be perceived as second rate. It is foolhardy to believe that a logo will do its job right off, before an audience has been properly conditioned. Only after it becomes familiar does a logo function as intended; and only when the product or service has been judged effective or ineffective, suitable or unsuitable, does it become truly representative.”

With that being all cleared up, we find that we don’t need to visually convey in a logo every aspect - or even a couple of aspects - of our business. This is not the logo’s job. It’s rarely even possible and it’s not necessary But this doesn’t mean that we just give up and type out our companies name in Arial, either. I think the real key is developing some mnemonic factor in the logo. Paul Rand said, “What is needed is finding a meaningful device, some idea that reinforces the memorability of the company name.” Well said, Mr. Rand.

Going back and quoting from the aforementioned AIGA article and elaborating on the topic at hand, Rand said:

“The Mercedes symbol, for example, has nothing to do with automobiles; yet it is a great symbol, not because its design is great, but because it stands for a great product. The same can be said about apples and computers. Few people realize that a bat is the symbol of authenticity for Bacardi Rum; yet Bacardi is still being imbibed. Lacoste sportswear, for example, has nothing to do with alligators (or crocodiles), and yet the little green reptile is a memorable and profitable symbol. What makes the Rolls Royce emblem so distinguished is not its design (which is commonplace), but the quality of the automobile for which it stands. Similarly, the signature of George Washington is distinguished not only for its calligraphy, but because George Washington was Washington. Who cares how badly the signature is scribbled on a check, if the check doesn’t bounce? Likes or dislikes should play no part in the problem of identification; nor should they have anything to do with approval or disapproval. Utopia!”

Dang, Paul Rand! Did you just say that personal likes or dislikes should play no role in the design of your logo? I think you did! Well touché! I realize that may sound a bit idealistic and harsh to say your personal tastes don’t matter in relation to your logo design, but in the end it’s true. All you would be logo designees, it’s your hard-earned cash on the line, so while it may seem important (and understandably so) that you get an end result that appeases your personal tastes, it’s not nearly as important as getting an end result that gets the job done and works well. We need to trust the experts. And designers, the same goes for you as well - put your personal tastes aside and do what is right for the job at hand. Just because your favorite color is black doesn’t mean you should use it when developing a logo for a florist. Just because you think grunge type is the next best thing to oxygen doesn’t mean you should use it on your sister’s wedding invitations. Designers and designees - we need to look at things more objectively.

This brings me to another great piece of text from Rand’s AIGA article:

“”It reminds me of the Georgia chain gang,” quipped the IBM executive, when he first eyed the striped logo. When the Westinghouse insignia (1960) was first seen, it was greeted similarly with such gibes as “this looks like a pawnbroker’s sign.” How many exemplary works have gone down the drain, because of such pedestrian fault-finding? Bad design is frequently the consequence of mindless dabbling, and the difficulty is not confined merely to the design of logos. This lack of understanding pervades all visual design.”

Oh the humanity! Simply so true.

Two quotes above - the one that starts off with “The Mercedes symbol…” - it kind of sounds like Rand implies that good logo design doesn’t really matter; it just has to be memorable. Well, no. Once again, Mr.Rand, will you fancy us with some insight here?

“All this seems to imply that good design is superfluous. Design, good or bad, is a vehicle of memory. Good design adds value of some kind and, incidentally, could be sheer pleasure; it respects the viewer-his sensibilities-and rewards the entrepreneur. It is easier to remember a well designed image than one that is muddled. A well design logo, in the end, is a reflection of the business it symbolizes. It connotes a thoughtful and purposeful enterprise, and mirrors the quality of its products and services. It is good public relations-a harbinger of good will. It says, “We care.””

I love that! Yes, we do care!

So what should a good logo design include? As stated by Paul Rand (and I agree with this list wholeheartedly) a good logo design should include these essential elements:

a. distinctiveness
b. visibility
c. usability
d. memorability
e. universality
f. durability
g. timelessness

You mean that’s it? CAKE! I kid, I kid. Logo design - GOOD logo design - is not necessarily easy. Achieving list A through G in a simple little logo ain’t a walk in the park.

Logos need to be simple. However, I can think of some instances where this doesn’t necessarily have to be true. With the emergence of the screen as the dominant medium and new and improved printing techniques, logo design is changing in some ways, but I regress and will leave that discussion for a future blog entry. For the most part, the essence of good logo design remains that same as it has been for a long, long time. So again, logos need to be simple… but simple doesn’t mean easy. Take it away, Paul Rand!

“The role of the logo is to point, to designate-in as simple a manner as possible. A design that is complex, like a fussy illustration or an arcane abstraction, harbors a self-destruct mechanism. Simple ideas, as well as simple designs are, ironically, the products of circuitous mental purposes. Simplicity is difficult to achieve, yet worth the effort.”

That’s right - simplicity is difficult to achieve. Don’t I know it!

The last point I’d like to make on logo design (for now) is this: “Don’t try to be original. Just try to be good.” In a sparkling little jewel of a YouTube video I recently had the pleasure of watching, Paul Rand is speaking with some design students when he says:

“What did Mies van der Rohe say? ‘Don’t try to be original. Just try to be good.’ That sounds sort of naive but it’s true. What it really means is being good is damn difficult. So it’s very difficult to be original. You have to have an idea. And you don’t have an idea when you have nothing to work with.” (Ahem - For more on that last line, please refer back to my last blog entry .)

What that quote also means to me is it’s nearly impossible to be 100% original these days, and one should not become so enamored with this concept as to become unproductive. When someone is completely obsessed with doing something entirely original (entirely being the key word), it reminds me of those idealistic kids in design school who refused to trace an illustration for a class assignments because that would somehow mean compromising themselves as an artist. Okay, Pablo Picasso.

In Reality, we’re all exposed to the same influences; we’re all exposed to the same shapes, symbols, patterns, and forms. This only becomes more and more prevalent as the world continues to expand into melding cultures and consumer based societies. Still, it is important to achieve design that sets you apart.Don’t get me wrong here - I’m not saying that doing something new and fresh is a trivial pursuit, and that originality should not be sought after. Remember, Paul Rand says a good logo must be distinctive and memorable. I’m simply saying chances are that any great idea you have has probably already been done somewhere, somehow, in some form, so don’t obsess over it. If you always set out to be uninfluenced and 100% original all the time, you’d never get anywhere. Just try to be good; practice forward thinking, solid design principles, and good results will follow. Designer, Mike Davidson says:

“Tell yourself at every step in the design process that someone has undoubtedly already thought of this and what can you do to really set it apart. In design, and particularly logo design, the pessimistic axiom that “everything has already been done” is becoming more and more true, and it is only the virtuous designer who can continue to stand out in a sea of sameness.”

True dat, Mike. I think the real challenge is not being completely original, because it’s nearly - if not completely - impossible, but to apply your ideas in a new and fresh way.

In other words, just try to be good.

April 26th, 2010 in Web Design | Comments (0)
Blog Seperator
April 15th, 2010

SCO … the new way to optimize

SEO has been a part of our world for many years now, same for SEM – both efforts solely geared for attracting traffic to your website from the search engines. One way through organically ranking for different keywords, the other by bidding for text advertisements that shows up for different keywords (most commonly known as pay-per-click). And now, a third very important technique to deliver new visitors to your site and that’s SCO – Social Connection Optimization (the acronym isn’t mainstream yet, so we just sort of made it up). In a nutshell, it’s designing your website so that it is easily connected to all the major social networks, like Facebook, Twitter and LinkedIn.

User data is coming in more and more frequently now and more studies are being conducted these days about how and why people are finding websites. In the past, they either remembered the domain name, they searched a term on a search engine or they clicked a banner ad or maybe a link on another site. Today, the social networks are sending more traffic to websites than ever before. And it’s at such a point now, that website owners who optimize their site for users to share information among their friends, or even discuss items about the website are winning the game today and setting themselves up for even greater success down the road.

Think about how much information we are exposed to on daily basis. And how much a friend or colleague’s advice or suggestion influences your decision about where to shop, what to eat, where to go this weekend, etc. That’s what’s happening more and more on the web with social networking growing at its rapid pace. Connectivity with circles of influence has never been easier and people are changing they way they absorb information – instead of sorting through all the advertisements and news stories on their own, they wait for the filter that is their social network.

This means that Social is the next Search and it’s an opportunity for the quick-minded website owners to reconfigure some of the ways they do business online. Not only should you use the search engines and click-thru advertising to drive traffic to your website, engaging and connecting with the social communities is just as important and vital to your future success.

Three things to do for SCO

  1. Add the appropriate social connections to your website. Facebook Connect, Twitter sign-in, and LinkedIn links are easy tools to add – but they aren’t the only ones and many others are available to add. This may require high-level technical knowledge because of the use of API’s, so be prepared for that and use our team at lifeBLUE for tasks like these.
  2. Continually make improvements and adjustments to the social usability on your site. Provide your site visitors with the tools to share your content with their social network. Let them sign-in to your website with their social accounts, avoiding an entirely new registration process.
  3. And as always, study the data. Dig into the analytics and identify the best social communities that are working for you along with the areas of weakness that can be improved. Interact with the social networks and have a solid grasp on how much of your site’s information is being shared and really understand your own success – identify the things that you are doing that is translating into social networking GOLD … and keep it up because these social sites aren’t going away anytime soon.
April 15th, 2010 in SEO, Marketing | Comments (0)