Chris Linseman
Profile
Chris Linseman
Experience
-
Jul 2009 - Present
-
Jul 2007 - Jul 2009
Development Manager / Haymarket Publishing
-
Feb 2007 - Jul 2007
Technical Architect / Haymarket Publishing
-
Nov 2005 - Feb 2007
Web Developer (Contractor) / Haymarket Publishing
-
Mar 2005 - Oct 2005
Web Developer (Contractor) / tmg
-
Nov 2004 - Feb 2005
Application Developer (Contractor) / Onetel
-
Jun 2003 - Sept 2004
Senior Web Developer / Magma Communications
-
May 2001 - Apr 2003
Web Developer / CITO
-
Jan 2000 - Aug 2000
Developer / DBA / Canada Post
-
May 1999 - Aug 1999
Web Developer / Media Force
Education
-
Carleton University
Bachelor of Computer Science (Software) in Computer Science, Mathematics
Additional information
Updates
-
Weekend begins with a few pints in my locale beer gardenPosted 12 weeks ago
-
Happy Canada Day! :)Posted 2 months ago
-
Heading out to see Derren Brown perform enigma, hopefully will get up on stage :)Posted 3 months ago
-
Work week is done. Looking forward to relaxing and watching movies tonightPosted 4 months ago
-
5 different Facebook privacy settings, I was particularly surprised by number 5. Check out the list here: http://ow.ly/1sehvPosted 5 months ago
-
Just saw a great show called Gambling at the Soho theatrePosted 5 months ago
-
Watched Funny People, think it deserves more than the 6.9/10 on IMDBPosted 5 months ago
-
Been reading a lot about the Minimalist movement recently, now to decide where to start.Posted 5 months ago
-
How to Be a Positive Person, in Under 300 Words | Zen Habits http://ow.ly/1qmShPosted 5 months ago
-
Framing Is Everything | Brand Elevation Through Social Media and Social Business | Altitude Branding http://ow.ly/1qgW0Posted 5 months ago
Photos
Updates
-
@HBI_Tweets the new http://www.managementtoday.co.uk looks great, nice job!2 days ago from web
-
Net neutrality talks stall in US - http://www.bbc.co.uk/news/technology-10890495
-
9 weeks ago from Delicious
-
Been trying out PLINQO - excellent tool to make LINQ to SQL much easier. Intro video here: http://plinqo.com9 weeks ago from web
-
Reading '10 Useful WordPress Loop Hacks' (via @smashingmag) http://tinyurl.com/lmpn8v10 weeks ago from web
-
RT @andybeal Facebook Ads…Instantly http://gri.ms/KSZn11 weeks ago from TweetMeme
-
Hump Day Links: Real-World MBA, Startup Ideas, Facebook Fans, Viral Linkbait http://bit.ly/a7626311 weeks ago from TweetMeme
-
Wordpress 3 – Themes for You to Try http://bit.ly/aWZdQ811 weeks ago from TweetMeme
-
HTML5 – Apple Showcase http://bit.ly/c2NHLt11 weeks ago from TweetMeme
-
5 WordPress Plugins for Internet Marketing http://bit.ly/c5SGO911 weeks ago from TweetMeme
-
Affiliate Bully (Official Site) http://bit.ly/codvsO2 months ago from TweetMeme
-
RT @ViperChill Social Media Supremacy: 10 Experts Reveal Their Strategies http://bit.ly/bpFi1z4 months ago from web
-
Interesting read, Steve Job's thoughts on Flash: http://bit.ly/9LaXyp4 months ago from web
-
4 months ago from TweetMeme
-
4 months ago from Delicious
-
I'm attending Building the social web -- http://social-drupal.eventbrite.com4 months ago from mobile web
-
I came out closest to the Green Party on http://www.telegraph.co.uk/votematch4 months ago from web
-
very cool trick from @info_marketer embedding youtube videos in gmail: http://bit.ly/936wUL5 months ago from web
Posts
-
May 01, 08:39 AM
Persistent Data Storage Using pLists
One of the ways to store data is by using Property Lists commonly referred to as plists.
Using this method you create a NSDictionary or NSArray, populate it with the objects you want to persist, and then use writeToFile:atomically: to create and write to the file storage system.
This is a quick and easy method to persist data. The downside is that only certain objects that can be serialized can be stored.
The Object-C classes that can be serialised using this method are:
- NSArray
- NSMutableArray
- NSDictionary
- NSMutableDictionary
- NSData
- NSMutableData
- NSString
- NSMutableString
- NSNumber
- NSDate
Once you’ve created and populated your NSArray or NSDictionary save it by calling:
[anArray writeToFile:@"/path/to/file/location/objects.plist" atomically:YES];
Of course you’ll need to replace “/path/to/file/location/objects.plist” with the correct path.
Your App will run in a sandbox and only have access to a limited amount of system resources including where you can write files. The easiest way to create a path to the correct place is by using:
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *documentsDirectory = [paths objectAtIndex:0]; NSString *myFile = [[NSString alloc] init]; myFile = [documentsDirectory stringByAppendingPathComponent:@"myfile.plist"];
When it comes time to access your file you can use:
NSArray *array = [[NSArray alloc] initWithContentsOfFile:filePath];
After that call array will be populated with whatever objects you decided to persist.
-
April 29, 10:58 AM
Essential Understanding
This is a list of things that I need to learn to become a proficient iPhone/iPad developer. This isn’t a definitive list as I expect it to continually grow the deeper I get into the APIs and what’s possible on the platform.
I’ll also make sure to link to any tutorials that I create as I create them.
- Types of ViewControllers
- Memory Management
- Persisting Data
- Using pLists
- Object archiving
- CoreData
- SQLite3
- Location Services
- Networking
- CoreGraphics
- Touches and Gestures
-
April 23, 06:05 PM
Dequeue UITableViewCell Snippet
I can’t tell you how many times I’ve written this piece of code. It’s one of the most common things that you need to do when using Table Views on the iPhone.
It sets up a CellIdentifier, checks if any cells are available. If there are, it uses them, if there aren’t it creates a new cell.
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { //set up an identifier static NSString *CellIdentifier = @"CellIdentifier"; //check for an available cell UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; //create one if needed... if (cell == nil) { cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease]; } //do whatever you need to with the cell NSInteger row = [indexPath row]; cell.textLabel.text = [self.list objectAtIndex:row]; //return it return cell; }It’s important to note that the created cell is set to autorelease so you don’t need to worry about releasing it manually.
Posts
-
June 21, 06:46 AM
Getting Mass Traffic from StumbleUpon: A Definitive Guide
Many bloggers end up having a love-hate relationship with StumbleUpon. They love the amount of traffic that the service – which now boasts over 10 million members – can send, but they hate the conversion rate on that traffic. ViperChill received 12,040 visitors from StumbleUpon in May, yet their average time on site was just 26 seconds (overall site average is 2 minutes and 24 seconds) and they each viewed around 1.22 pages.
Simply put, compared to other traffic sources, StumbleUpon is terrible. However, because the service sends so much traffic, even leveraging just a small percentage can see a decent increase in your comment count and subscriber numbers. Today I’m going to give an in-depth guide to the service and then give my tactics for getting the most out of it.
StumbleUpon Basics
StumbleUpon is a system that allows you to find new and interesting websites based around your favourite subjects. The more you use the service, the more the system “learns” about your interests which in-turn provides you with more relevant, fascinating content.
This is very different to the usual method of finding news by going to your favourite blogs or entering a search query into a major search engine. Here you’ll find content from all over the web which you know other people have enjoyed, so it can lead to some great discoveries. With StumbleUpon, it’s all about the users and the content that the community enjoys.
How to Use the Service
Traditionally, StumbleUpon utilises a toolbar that you install in a browser such as Internet Explorer or Firefox. More recently however, they have came up with a toolbar that you don’t need to install, which shows at the top of the pages you are viewing.
I prefer using the toolbar option as you can customise it and it doesn’t take up any additional screen space. Here’s how it looks (note that my version has been tweaked based on my preferences):
The three main buttons that you should be aware of here are the ‘Stumble’ button and the up and down thumbs. The Stumble button will load a new page in your browser that is based around your interests. The thumbs up button signifies that you like the page and of course the down thumb signifies that you don’t like it.
There are two aspects of this thumbing up and down that affect the system. The first aspect is that StumbleUpon learns about what type of content you like and what you don’t, and then tries to show you more of what you do like when you click Stumble. The other use of the ‘thumbs up’ button is that StumbleUpon tend to show that page to more people if a lot of people are enjoying the content of that page.
With over 10 million active users on the site there is a lot of potential for certain content to get viewed thousands of times. In fact, I had a blog post I wrote for DumbLittleMan receive over 100,000 views from the service. Instead of trying to explain how the system works in just text, I’ve created this small graphic that should help to clear things up:
Becoming an Active User
If you’ve never used StumbleUpon before, let me warn you now that the service can become very addictive and a huge drain on your time. In fact, images that have said “Stop Using StumbleUpon” and shown up while browsing with the toolbar have become a thing of humour because people know how fun the service can be.
The following points are applicable whether you are just starting out in the service, whether you’ve used it and want to get more out of it or you’re an internet marketer looking for more website traffic. Either way, it’s good to take full advantage of all the features available and become a genuine, helpful user of the community.
Define Your Interests
When you sign-up to StumbleUpon you will be asked what topics you are interested in. Of course, it’s important that you select subjects which you are actually interested in so that you’re shown content that you care about you when using the toolbar. When I signed up I entered ‘web development’, ‘internet’ and ’self improvement’ as my favourite topics.
Although StumbleUpon will “learn” about your interests based on your usage of the service, it’s still good to pick topics that you’re highly interested in so you’re not just shown random content when you start using it.
Choose a Profile Picture
No matter what your reasons for using the service are, I believe everyone should at least take a minute to update their profile with a picture (also known as an avatar). Your profile picture will of course show on your profile, but it will also show on any pages where you have reviewed content and it may show on review pages which show users who ‘thumbed up’ content.
In other words, your avatar is going to be seen in a lot of places on the service so pick something memorable. Here are some examples of popular avatars in the social media space:
It is up to you whether you want to use an ‘avatar’ style picture like this or a picture of your face. Both are acceptable and about as popular as each other.
Fill Out Your Bio
Every user on StumbleUpon gets their own profile page which they can customise. Yours will be located at http://StumbleUpon.com/stumbler/username/ (of course, substituting username for whatever username you chose). Your description is there simply to tell the world a bit about yourself. I recommend that you fill this with relevant, honest information, so if people like your Stumbles then they can find out more about you.
Here is a slightly crazy but very honest bio from one of the top users of the site:
A nice touch in the description section is that you can add a link to other websites so other users may check out the links to see what you are about. I’ve made some great relationships through StumbleUpon and turned many of my ‘friends’ on the site into blog subscribers and Twitter followers.
Add People to Follow
I’ve already mentioned that when you sign-up to StumbleUpon you get to pick your favourite interests which StumbleUpon will use to show you relevant content anytime you click the Stumble button. The Stumble button is not the only way to find great content on the site though. You can also find it via your connections.
When you Stumble upon a page, you will be able to see the user who submitted it via the toolbar like so:
If you like what they are submitting you can both add them as a friend and subscribe to their submissions. This means that when you go to your home page on the site then you will see all the recent reviews by your friends. My own profile has 41 people subscribed to my updates.
Note: I have not used the service as a normal user (at least on the ViperChill account) for a long time, though I am going to get back into it. You don’t need to be an active user of the service in order to get a lot of traffic to your website.
Create Your Own Shortcuts
Once you start really getting into the site, you’ll notice that you want to speed up certain aspects of the features available. My current set-up (for the browser extension) is as follows:
- I let Stumbleupon prefetch the pages it is going to show me
- If I click ‘Thumbs Down’ then it automatically loads a new page
- CTRL + Left Arrow on my keyboard shows a new page (Stumble Button)
- CTRL + Up Arrow on my keyboard gives a page a thumbs up
- CTRL + Down Arrow on my keyboard gives the page a thumbs down
This means that I can browse around and find great new content without having to keep clicking on the toolbar with my mouse. You can change your shortcuts by going to Tools >> Toolbar Options >> Shortcuts. If you like the idea of auto loading a new page when you click the down or up thumb then you can change that in the configuration tab.
Getting Traffic from StumbleUpon
If you are not a webmaster and simply want to find awesome content, then the information above should be more than enough for you to get started. However, this is an internet marketing blog after-all, and StumbleUpon happens to be one of the easiest ways to get thousands of eyeballs on your content.
StumbleUpon is known to have the ability to send a flood of traffic to a page in the span of just a few hours. I remember the days when traffic from the service would only have a 30% bounce rate, and while it’s around 80% now, a percentage of visitors still leave comments and sign-up to your RSS feed which is what most people want them to do.
Though the 12,000 visitors ViperChill received from StumbleUpon last month is tiny compared to months where I’ve received over 100,000+ visitors from the service, I thought I would just show some proof of that traffic:
In the early days of StumbleUpon, being one of their “power users” helped you massively in getting traffic to a page. In fact, I could pretty much guarantee that any page I promoted would receive thousands of visitors. If you had a large network on the site you could also use their ‘Send to’ feature to share a page with all of your friends and get more traffic that way.
Nowadays, the power of your profile has very little (if anything at all) to do with getting traffic from the toolbar. It’s all about the content – which is great for you and me.
Write Creative Titles
Although your content should be good, it isn’t nearly as important as the headline it’s wrapped in. The title of your article or blog post is the first thing people see so if it doesn’t entice them to read on then they aren’t going to review or thumb-up your content which would send you more traffic.
The types of titles that work well on StumbleUpon include:
- List / Resource Posts
- Something that is humorous
- Something that is relevant and fills a need
- Something that is shocking and against the norm
A title like ‘Some snails in London get painted’ is nowhere near as interesting as ‘Graffiti Artist Uses Snails as His Canvas’ which was in fact an article which received thousands of views. Of course, don’t write a great title if you don’t have the relevant content to back it up. Just remember that the title is without a doubt the most important factor of whether people will read your content or not.
Want proof? Look at the top rated pages in any category and they will all have great titles. Or, test it out for yourself. Dragos is a great example of someone who knows exactly what the StumbleUpon audience wants — just check out the post titles in his sidebar.
Create Viral Images or Videos
Text isn’t the only type of content that works well on StumbleUpon. For a while in 2008 I ran a demotivational pictures blog and each day I would receive thousands of visitors from the toolbar. Don’t forget that most StumbleUpon users are just browsing around the web, looking for something interesting. Pictures and videos are great ways to catch their attention.
It’s important to note that while images or videos can be great at getting a surge in traffic from the site, it’s far less likely to convert in a way you want it to compared to text content. Unless of course, you’re trying to increase the view count of your videos.
Enter Relevant Submission Information
It’s important that you do not simply keep submitting your own content to the site as I’ve noticed a lot of people do as this is a fast-track way to get your account banned or have your site banned. Even a huge blog like ProBlogger was removed from the service and while the domain was allowed back into the system after a huge uproar, it does show that nobody is exempt from their heavy hand.
You can submit a new page to the system by simply clicking ‘I like it’ and if the page has not been discovered before, a pop-up box like this one below will appear:
If the title of the current article is catchy then leave it; otherwise you can tweak it to help the page get more views. For a description I sometimes just copy the introduction of the article, or you can write your own short review. It’s important that you pick an appropriate category for the submission. If you choose a sports category for a financial article, nobody who it is shown to is going to like it and it will quickly drop out of the queue.
Send the Page via a Re-Direct
I mentioned earlier that it is no longer effective to send a page to all of your friends and ask them for a Stumble. In the past this kind of activity would guarantee you thousands of visitors but now it is rarely the case. If you do want to share a StumbleUpon link with lots of people I’ve found it to be more effective to use a re-direct like this:
http://www.stumbleupon.com/click_redir.php?t=49e34c6117e3f&src=url&u=YOURURLGOESHERE
This reason this works is that StumbleUpon can tell whether you just landed on a page directly and clicked Stumble or they actually showed you the page via the toolbar (much more natural) and you voted for it that way. However if you go through the re-direct – or keep stumbling and land on a page and vote for it – it looks a lot more natural and like a genuine recommendation.
Clean Up Your Site
One thing many people forget about receiving traffic from any site is that by nature, you’re going to turn people away if your site is overloaded with ads, pop-ups, or anything else that deters from your main content. The design of ViperChill is very minimalist because I either want people to subscribe to the RSS feed here or view the content clearly. That’s it.
The attention span of StumbleUpon users is very short so if they can’t see your headline and your post straight away, there’s a very good chance they’re just going to move on to the next article. Getting StumbleUpon visitors to stick around on your site is hard enough so don’t make things harder for yourself with a cluttered website.
Look at What Is Hot
A good way to get traffic from any social media website is to look at what is hot and is working well in that specific community. It makes sense that if you find out what people on a certain website and send them more of it, they are going to stick around on your site as well.
A good way to check what is hot on StumbleUpon is to check the top rated pages for each category. As an example, ViperChill is in the Internet Marketing niche so I would look at the StumbleUpon “hot” page for internet marketing, which you can find here. I can see articles on this topic that have received thousands of visitors from the site which could possibly give me inspiration for future posts
When I was writing for PluginID, I actually had 3 of the most popular self improvement articles ever written on StumbleUpon, all receiving over 50,000 visitors from the service. The number one thing that worked for me was simply writing great articles with even better headlines.
The rest of the advice here may be secondary to that, but don’t overlook it.
-
April 20, 10:25 AM
Seven JavaScript Things I Wish I Knew Much Earlier In My Career
I’ve been writing JavaScript code for much longer than I care to remember. I am very excited about the language’s recent success; it’s good to be a part of that success story. I’ve written dozens of articles, book chapters and one full book on the matter, and yet I keep finding new things. Here are some of the “aha!” moments I’ve had in the past, which you can try out rather than waiting for them to come to you by chance.
[By the way, did you know we have a brand new free Smashing Email Newsletter? Subscribe now and get fresh short tips and tricks on Tuesdays!]
Shortcut Notations
One of the things I love most about JavaScript now is shortcut notations to generate objects and arrays. So, in the past when we wanted to create an object, we wrote:
var car = new Object(); car.colour = 'red'; car.wheels = 4; car.hubcaps = 'spinning'; car.age = 4;
The same can be achieved with:
var car = { colour:'red', wheels:4, hubcaps:'spinning', age:4 }Much shorter, and you don’t need to repeat the name of the object. Right now,
caris fine, but what happens when you useinvalidUserInSession? The main gotcha in this notation is IE. Never ever leave a trailing comma before the closing curly brace or you’ll be in trouble.The other handy shortcut notation is for arrays. The old school way of defining arrays was this:
var moviesThatNeedBetterWriters = new Array( 'Transformers','Transformers2','Avatar','Indiana Jones 4' );
The shorter version of this is:
var moviesThatNeedBetterWriters = [ 'Transformers','Transformers2','Avatar','Indiana Jones 4' ];
The other thing about arrays is that there is no such thing as an associative array. You will find a lot of code examples that define the above
carexample like so:var car = new Array(); car['colour'] = 'red'; car['wheels'] = 4; car['hubcaps'] = 'spinning'; car['age'] = 4;
This is not Sparta; this is madness—don’t bother with this. “Associative arrays” is a confusing name for objects.
Another very cool shortcut notation is the ternary notation for conditions. So, instead of the following…
var direction; if(x < 200){ direction = 1; } else { direction = -1; }… You could write a shorter version using the ternary notation:
var direction = x < 200 ? 1 : -1;
The
truecase of the condition is after the question mark, and the other case follows the colon.JSON As A Data Format
Before I discovered JSON to store data, I did all kinds of crazy things to put content in a JavaScript-ready format: arrays, strings with control characters to split, and other abominations. The creation of JSON by Douglas Crockford changed all that. Using JSON, you can store complex data in a format that is native to JavaScript and doesn't need any extra conversion to be used immediately.
JSON is short for "JavaScript Object Notation" and uses both of the shortcuts we covered earlier.
So, if I wanted to describe a band, for example, I could do the following:
var band = { "name":"The Red Hot Chili Peppers", "members":[ { "name":"Anthony Kiedis", "role":"lead vocals" }, { "name":"Michael 'Flea' Balzary", "role":"bass guitar, trumpet, backing vocals" }, { "name":"Chad Smith", "role":"drums,percussion" }, { "name":"John Frusciante", "role":"Lead Guitar" } ], "year":"2009" }You can use JSON directly in JavaScript and, when wrapped in a function call, even as a return format of APIs. This is called JSON-P and is supported by a lot of APIs out there. You can use a data endpoint, returning JSON-P directly in a script node:
<div id="delicious"></div><script> function delicious(o){ var out = '<ul>'; for(var i=0;i<o.length;i++){ out += '<li><a href="' + o[i].u + '">' + o[i].d + '</a></li>'; } out += '</ul>'; document.getElementById('delicious').innerHTML = out; } </script> <script src="http://feeds.delicious.com/v2/json/codepo8/javascript?count=15&callback=delicious"></script>This calls the Delicious Web service to get my latest JavaScript bookmarks in JSON format and then displays them as an unordered list.
In essence, JSON is probably the most lightweight way of describing complex data—and it runs in a browser. You can even use it in PHP using the
json_decode()function.Native JavaScript Functions (Math, Array And String)
One thing that amazed me is how much easier my life got once I read up thoroughly on the math and string functions of JavaScript. You can use these to avoid a lot of looping and conditions. For example, when I had the task of finding the largest number in an array of numbers, I used to write a loop, like so:
var numbers = [3,342,23,22,124]; var max = 0; for(var i=0;i<numbers.length;i++){ if(numbers[i] > max){ max = numbers[i]; } } alert(max);This can be achieved without a loop:
var numbers = [3,342,23,22,124]; numbers.sort(function(a,b){return b - a}); alert(numbers[0]);Notice that you cannot use
sort()on a number array because it sorts lexically. There's a good tutorial onsort()here in case you need to know more.Another interesting method is
Math.max(). This one returns the largest number from a list of parameters:Math.max(12,123,3,2,433,4); // returns 433
Because this tests for numbers and returns the largest one, you can use it to test for browser support of certain properties:
var scrollTop= Math.max( doc.documentElement.scrollTop, doc.body.scrollTop );
This works around an Internet Explorer problem. You can read out the
scrollTopof the current document, but depending on theDOCTYPEof the document, one or the other property is assigned the value. When you useMath.max()you get the right number because only one of the properties returns one; the other will beundefined. You can read more about shortening JavaScript with math functions here.Other very powerful functions to manipulate strings are
split()andjoin(). Probably the most powerful example of this is writing a function to attach CSS classes to elements.The thing is, when you add a class to a DOM element, you want to add it either as the first class or to already existing classes with a space in front of it. When you remove classes, you also need to remove the spaces (which was much more important in the past when some browsers failed to apply classes with trailing spaces).
So, the original function would be something like:
function addclass(elm,newclass){ var c = elm.className; elm.className = (c === '') ? newclass : c+' '+newclass; }You can automate this using the
split()andjoin()methods:function addclass(elm,newclass){ var classes = elm.className.split(' '); classes.push(newclass); elm.className = classes.join(' '); }This automatically ensures that classes are space-separated and that yours gets tacked on at the end.
Event Delegation
Events make Web apps work. I love events, especially custom events, which make your products extensible without your needing to touch the core code. The main problem (and actually one of its strengths) is that events are removed from the HTML—you apply an event listener to a certain element and then it becomes active. Nothing in the HTML indicates that this is the case though. Take this abstraction issue (which is hard for beginners to wrap their heads around) and the fact that "browsers" such as IE6 have all kind of memory problems and too many events applied to them, and you'll see that not using too many event handlers in a document is wise.
This is where event delegation comes in. When an event happens on a certain element and on all the elements above it in the DOM hierarchy, you can simplify your event handling by using a single handler on a parent element, rather than using a lot of handlers.
What do I mean by that? Say you want a list of links, and you want to call a function rather than load the links. The HTML would be:
<h2>Great Web resources</h2> <ul id="resources"> <li><a href="http://opera.com/wsc">Opera Web Standards Curriculum</a></li> <li><a href="http://sitepoint.com">Sitepoint</a></li> <li><a href="http://alistapart.com">A List Apart</a></li> <li><a href="http://yuiblog.com">YUI Blog</a></li> <li><a href="http://blameitonthevoices.com">Blame it on the voices</a></li> <li><a href="http://oddlyspecific.com">Oddly specific</a></li> </ul>
The normal way to apply event handlers here would be to loop through the links:
// Classic event handling example (function(){ var resources = document.getElementById('resources'); var links = resources.getElementsByTagName('a'); var all = links.length; for(var i=0;i<all;i++){ // Attach a listener to each link links[i].addEventListener('click',handler,false); }; function handler(e){ var x = e.target; // Get the link that was clicked alert(x); e.preventDefault(); }; })();This could also be done with a single event handler:
(function(){ var resources = document.getElementById('resources'); resources.addEventListener('click',handler,false); function handler(e){ var x = e.target; // get the link tha if(x.nodeName.toLowerCase() === 'a'){ alert('Event delegation:' + x); e.preventDefault(); } }; })();Because the click happens on all the elements in the list, all you need to do is compare the
nodeNameto the right element that you want to react to the event.Disclaimer: while both of the event examples above work in browsers, they fail in IE6. For IE6, you need to apply an event model other than the W3C one, and this is why we use libraries for these tricks.
The benefits of this approach are more than just being able to use a single event handler. Say, for example, you want to add more links dynamically to this list. With event delegation, there is no need to change anything; with simple event handling, you would have to reassign handlers and re-loop the list.
Anonymous Functions And The Module Pattern
One of the most annoying things about JavaScript is that it has no scope for variables. Any variable, function, array or object you define that is not inside another function is global, which means that other scripts on the same page can access—and will usually override— them.
The workaround is to encapsulate your variables in an anonymous function and call that function immediately after you define it. For example, the following definition would result in three global variables and two global functions:
var name = 'Chris'; var age = '34'; var status = 'single'; function createMember(){ // [...] } function getMemberDetails(){ // [...] }Any other script on the page that has a variable named
statuscould cause trouble. If we wrap all of this in a name such asmyApplication, then we work around that issue:var myApplication = function(){ var name = 'Chris'; var age = '34'; var status = 'single'; function createMember(){ // [...] } function getMemberDetails(){ // [...] } }();This, however, doesn't do anything outside of that function. If this is what you need, then great. You may as well discard the name then:
(function(){ var name = 'Chris'; var age = '34'; var status = 'single'; function createMember(){ // [...] } function getMemberDetails(){ // [...] } })();If you need to make some of the things reachable to the outside, then you need to change this. In order to reach
createMember()orgetMemberDetails(), you need to return them to the outside world to make them properties ofmyApplication:var myApplication = function(){ var name = 'Chris'; var age = '34'; var status = 'single'; return{ createMember:function(){ // [...] }, getMemberDetails:function(){ // [...] } } }(); // myApplication.createMember() and // myApplication.getMemberDetails() now works.This is called a module pattern or singleton. It was mentioned a lot by Douglas Crockford and is used very much in the Yahoo User Interface Library YUI. What ails me about this is that I need to switch syntaxes to make functions or variables available to the outside world. Furthermore, if I want to call one method from another, I have to call it preceded by the
myApplicationname. So instead, I prefer simply to return pointers to the elements that I want to make public. This even allows me to shorten the names for outside use:var myApplication = function(){ var name = 'Chris'; var age = '34'; var status = 'single'; function createMember(){ // [...] } function getMemberDetails(){ // [...] } return{ create:createMember, get:getMemberDetails } }(); //myApplication.get() and myApplication.create() now work.I've called this "revealing module pattern."
Allowing For Configuration
Whenever I've written JavaScript and given it to the world, people have changed it, usually when they wanted it to do things that it couldn't do out of the box—but also often because I made it too hard for people to change things.
The workaround is to add configuration objects to your scripts. I've written about JavaScript configuration objects in detail, but here's the gist:
- Have an object as part of your whole script called
configuration. - In it, store all of the things that people will likely change when they use your script:
- CSS ID and class names;
- Strings (such as labels) for generated buttons;
- Values such as "number of images being displayed," "dimensions of map";
- Location, locale and language settings.
- Return the object as a public property so that people can override it.
Most of the time you can do this as a last step in the coding process. I've put together an example in "Five things to do to a script before handing it over to the next developer."
In essence, you want to make it easy for people to use your code and alter it to their needs. If you do that, you are much less likely to get confusing emails from people who complain about your scripts and refer to changes that someone else actually did.
Interacting With The Back End
One of the main things I learned from all my years with JavaScript is that it is a great language with which to make interactive interfaces, but when it comes to crunching numbers and accessing data sources, it can be daunting.
Originally, I learned JavaScript to replace Perl because I was sick of copying things to a
cgi-binfolder in order to make it work. Later on, I learned that making a back-end language do the main data churning for me, instead of trying to do all in JavaScript, makes more sense with regard to security and language.If I access a Web service, I could get JSON-P as the returned format and do a lot of data conversion on the client, but why should I when I have a server that has a richer way of converting data and that can return the data as JSON or HTML… and cache it for me to boot?
So, if you want to use AJAX, learn about HTTP and about writing your own caching and conversion proxy. You will save a lot of time and nerves in the long run.
Browser-Specific Code Is A Waste Of Time. Use Libraries!
When I started Web development, the battle between using
document.alland usingdocument.layersas the main way to access the document was still raging. I chosedocument.layersbecause I liked the idea of any layer being its own document (and I had written more than enoughdocument.writesolutions to last a lifetime). The layer model failed, but so diddocument.all. When Netscape 6 went all out supporting only the W3C DOM model, I loved it, but end users didn't care. End users just saw that this browser didn't show the majority of the Internets correctly (although it did)—the code we produced was what was wrong. We built short-sighted code that supported a state-of-the-art environment, and the funny thing about the state of the art is that it is constantly changing.I've wasted quite some time learning the ins and outs of all of the browsers and working around their issues. Doing this back then secured my career and ensured that I had a great job. But we shouldn't have to go through this trial by fire any longer.
Libraries such as YUI, jQuery and Dojo are here to help us with this. They take on the problems of browsers by abstracting the pains of poor implementation, inconsistencies and flat-out bugs, and relieve us of the chore. Unless you want to beta test a certain browser because you're a big fan, don't fix browser issues in your JavaScript solutions, because you are unlikely to ever update the code to remove this fix. All you would be doing is adding to the already massive pile of outdated code on the Web.
That said, relying solely on libraries for your core skill is short-sighted. Read up on JavaScript, watch some good videos and tutorials on it, and understand the language. (Tip: closures are God's gift to the JavaScript developer.) Libraries will help you build things quickly, but if you assign a lot of events and effects and need to add a class to every HTML element in the document, then you are doing it wrong.
Resources
In addition to the resources mentioned in this article, also check out the following to learn more about JavaScript itself:
- Douglas Crockford on JavaScript
An in-depth video Lecture series. - The Opera Web Standards Curriculum
With a detailed section on JavaScript.
Related Posts
You may be interested in the following related posts:
- The Seven Deadly Sins Of JavaScript Implementation
- Developing Sites With AJAX: Design Challenges and Common Issues
- 45 Powerful CSS/JavaScript-Techniques
(al)
© Christian Heilmann for Smashing Magazine, 2010. | Permalink | 132 comments | Add to del.icio.us | Digg this | Stumble on StumbleUpon! | Tweet it! | Submit to Reddit | Forum Smashing Magazine
Post tags: javascript, js
- Have an object as part of your whole script called
-
May 03, 12:26 PM
Joomla And WordPress: A Matter Of Mental Models
Open-source content management systems (CMS) are a large family of Web applications, but if we’re looking for stability, performance and average technical requirements, we’ll come up with a handful of options. In the past, choosing the “right” CMS was a matter of the project’s requirements, but now this is not completely valid because the paradigm of extensibility had driven the development of major CMS’ towards a model of core features that are extensible with plug-ins that fill virtually any requirement.
Picking the right CMS is then a matter of “mental models”: choosing the one that best fits our vision of how a Web application should work and what it should provide to users and administrators. In this article, we’ll explore the main difference in the mental models: of WordPress and Joomla for theming and extending their core.
[Offtopic: by the way, did you know that there is a Smashing eBook Series? Book #1 is Professional Web Design, 242 pages for just $9,90.]
Background Thoughts
WordPress and Joomla are two of the most popular open-source CMS’ around. They offer large and active developer communities and excellent documentation.
WordPress is the first choice among the designer community mostly because of its well-designed back end and wide availability of excellent themes.
Joomla, meanwhile, suffers from Mambo’s legacy, which was notorious for low performance and semantically incorrect output (such as nested tables for layout). But since the release of version 1.5, Joomla has a completely rewritten core, with improved extensibility and better HTML output.
One difference between WordPress and Joomla is their theming model. A website developer migrating from Joomla to WordPress might feel that the latter requires too much theme coding, while a developer moving the other way might feel that Joomla is less flexible and customizable. The reason for this is the different models on which the themes of these CMS’ are based.
WordPress’ Theming Model
WordPress’ theming model is based on a per-view structure. This means that in each theme, you could have individual view files for the post list, the single post and the archive pages. These files are independent of each other, allowing the developer to customize each view but requiring them to duplicate many parts of the code. The only common parts in a theme are the header and footer, which can be coded directly in the individual view anyway.
The main drawback of this model is that different views will not always require a different presentation (for example, the archive, category list and tag list are just lists). To overcome this problem, a theme is organized in a hierarchical structure, in which more generic views are used as fallbacks for specific ones. The common fallback for a WordPress theme is the index.php file, which is actually the only required file (along with a style sheet) in a theme. A complete reference and visual diagram of the hierarchical structure of a WordPress theme are available here.
The Loop and Template Tags
To better understand how a WordPress theme works, we need to look more closely at the “loop” and template tags.
All data for a post or a list of posts is extracted through a loop. A loop is basically a
whileconstruct that begins with this declaration:<?php if (have_posts()) : while (have_posts()) : the_post(); ?> // post output here <?php endif; endwhile; ?>
The most important part of this code is
the_post(), which initializes a global$postPHP object containing all of the page data. The loop construct is also required for single post view, because all functions for presentation of data rely on the presence of the$postobject. These functions are called template tags, and their main purpose is to output formatted data. Usually, they do not output HTML tags so that they can be used in different scenarios.A complete guide to theme development is available here.
Joomla’s Content-Based Model
Joomla has a completely different theming approach. Joomla’s templates are built on a common structure defined in an index.php file.
This file contains both static content (i.e. content that is common throughout the website) and template tags, which serve as content place-holders and are replaced by HTML output during the page-rendering phase.
A common form for a template tag is:
<jdoc:include type="modules" name="right" style="xhtml" />
Template tags differ in the type of content they provide: component, message, module, head.
This structural backbone implies that each view in the CMS outputs not a complete page but just what’s needed to present content. At first glance, a developer used to the theming model of WordPress might think that there’s no way to customize this content block. In fact, Joomla relies on the MVC architectural pattern, meaning that data extraction and presentation are separated, the latter being rendered by the view part of the application.
Template Customization
To customize the default view, Joomla has a pattern called template override, through which the system scans the template folder for a custom view file to use in place of the default one. The image below shows the folder structure and naming convention of a default view and its override.
An example of the folder and file structure of a Joomla template override (from the “ja_purity” template).Joomla overrides are an excellent way to customize a website template without hacks. Still, they are often overlooked, and Joomla’s support of legacy extensions make this pattern unusable, even for popular packages such as Virtuemart (which uses its built-in template system).
A complete reference for Joomla’s template system is available here.
Beyond Core
(Image by jared)In the last few years, plug-ins have made a big difference in the software industry, one of the most notable examples being Mozilla Firefox.
As we noted, modern CMS’ are developed to be extensible, allowing us to use the core as a backbone and build specialized parts on top of it. This resulting modular design is an effective development model for many reasons:
- Better maintainability
Developers don’t need to modify the core in order to add or customize functionality. - Lightweight and safer
Only features that are needed are included, resulting in less memory consumption, a smaller code base and fewer vulnerabilities. - Separate development cycles for core and features
By offering an extensions API, third-party developers can add new features while the core team focuses on the reliability and performance of the system.
With open-source projects, this last point is both a blessing and a curse. It benefits from shared development effort but leads to unverified work and a less organized workflow.
Joomla and WordPress have tried to overcome this curse by providing coding guidelines. Still, little effort is spent documenting the back-end and front-end UI design.
Aside from their different naming conventions, the extensions models of WordPress and Joomla differ in how third-party code interacts with the core by mean of the extensions API.
The key point to understand is that while Joomla is based on MVC pattern, WordPress relies on an event-like system to which extensions can be hooked. Let’s look at some details.
WordPress’ Hook Method
WordPress’ extensions model is based on the execution of a set of functions attached to the system flow by mean of “hooks.”
Hooks contain a list of functions that are triggered at various points as WordPress is running. They manipulate (in the case of filter hooks) and output (in the case of action hooks) database data and can be accessed from within the theme itself and from a specialized plug-in package.
WordPress lacks comprehensive documentation for hooks, but a list of hooks is available here.
To understand the mental model behind WordPress’ hook system, we can compare it to the sequence of actions in baking a cake. In the beginning, we have an idea of what kind of cake we want to bake, so we get our ingredients. We cannot just throw everything together and bake it. So, we execute an ordered list of actions, such as “filtering” egg shells and mixing the eggs in with flour and sugar. As we’re doing that, we might want to customize the recipe. So, we “plug in” some chocolate and perhaps reduce the quantity of another ingredient by half. The result is a proper cake, created from discrete ingredients and a touch of creativity.
WordPress bakes its pages the same way.
Sidebars and Widgets
While plug-ins are broadly related to hooks, a widget is a special type of plug-in. It provides a means of showing information in a theme’s sidebar. The main advantage of widgets is that they are configurable in the back-end interface, allowing quick customization even for novice users.
All available widgets are listed in an administration panel.In terms of theme development, the sidebar is similar in its mental model to Joomla’s template tags. It is a placeholder for something. The misleading bit is that a sidebar doesn’t have to be placed in the actual sidebar of a layout. It could go in the footer, navigation, header or elsewhere.
To learn more about the new API for widget development, have a look at the official documentation.
Adding Functionality
Until now, the problem with WordPress’ extension API was that it gave you no simple way to add complex functionality, such as e-commerce carts and event listings. Most developers excused this shortcoming by pointing out that WordPress is a blog engine. This will hopefully be resolved with the release of WordPress 3.0 and its system for “post types,” which makes it possible to use the “post” and “page” interfaces for different types of content.
As for other popular CMS’ (such as Drupal), post types function as a kind of “Content Construction Kit,” giving you the ability to smartly add, manage and present specialized content. If you’re interested in trying this new feature, here is a good tutorial.
Other than post types (and until major plug-ins update support for this feature), the only feasible way to add complex functionality is to use already existing pages as containers, placing in the body a place-holder (called a “shortcode“) that is replaced with HTML output by specific filter hooks.
This approach is used by plug-ins such as Buddypress and WP e-Commerce, which extend the blog engine with social network and shopping-cart capabilities.
Another great example of shortcode implementation is Contact Form 7, a fully featured contact-form management plug-in.
Extending Joomla
An often overlooked aspect of Joomla is that it is built on the solid MVC framework. So, extending its core is really much like working with products such as Zend Framework and CodeIgniter, which give you an already designed back-end interface upon which to integrate your own extensions. This approach also gives designers the ability to use template overrides, even for third-party extensions.
A diagram depicting Joomla’s Model View Controller system flow.To better understand MVC and how it works in Joomla, here is a complete reference.
Joomla’s Extension Types
Joomla’s extension model comes in three flavors, each with different tasks: components, modules and plug-ins.
Components extend the core by adding specific functionality, such as e-commerce carts, event listings and forums. From the user’s point of view, we can think of components as discrete sections of a website, not connected to other content. A popular example is JEvents, an events calendar.
In the theme system, a component’s output replaces the
componentplaceholder in the template’s index.php file:<jdoc:include type="component" />
Modules are like widgets in WordPress: they show a component’s information, which is extracted from the database. They are “attachable” to module positions and can be put on every page of a website.
Modules are primarily intended to be teaser blocks, but they can incorporate full text and image galleries, which makes them handy for static parts of a layout, such as footer notes. They are also useful for showing related content on a page. For example, you could highlight interesting products for Web developers as they’re browsing a list of barcamp events.
The template tag, which serves as module place-holder, looks like this:
<jdoc:include type="modules" name="right" style="xhtml" />
Plug-ins work similar to WordPress’ hook system, because they bind to specific system events to format, manipulate and replace HTML output. Possible fields of action range from content for articles (such as video embedding tools—AllVideos is a popular one) to HTML filtering and user-profile extension. Commonly used Joomla plug-ins include URL rewriting filters, which come bundled with administrative components such as Sh404SEF.
Compatibility Issues
One thing every developer should be aware of is that, despite efforts to provide a great extension API, Joomla 1.5 still suffers in its support of legacy extensions (built for v1.0), which do not have an MVC structure and which are sometimes hardly customizable. Furthermore, they break the API mental model.
The Joomla extensions library has a clear mark for 1.0 or 1.5 native extensions. But faking 1.5 native compatibility is easy, which would leave developers with nothing but legacy code. This method is followed even by big well-known projects like Virtuemart.
Hopefully, once Joomla 1.6 is released and legacy support is dropped, every developer will rework their code to fit the CMS’ specifications.
What’s Next
While the best way to choose a CMS is by trying it out on a real project, understanding its underlying mental model can make developers feel less lost in code and more aware of the design patterns they need to follow.
If you want to develop themes and extensions for Joomla and WordPress, here are some resources.
WordPress:
- How to Create a WordPress Theme from Scratch
- How to Write a WordPress Plugin: a complete reference on WordPress plugins development.
- Top 10 Most Common Coding Mistakes in WordPress Plugins: a must read for WordPress developers.
- WordPress 3.0 new features
- 8 Useful Code Snippets To Get Started With WordPress 3.0
Joomla:
- Joomla Developer’s Toolbox: a collection of resources for Joomla users and developers by Smashing Magazine.
- Creating a Basic Joomla! Template
- Developing a Model-View-Controller Component: a step-by-step tutorial on components development in Joomla.
- Creating a Hello World Module for Joomla 1.5: official documentation on Joomla modules development.
- Joomla Component Creator: a smart wizard for creating a “starter” component structure.
- Joomla 1.6 Updates: this article explains the primary objectives of the upcoming Joomla 1.6.
(al)
© Marco Solazzi for Smashing Magazine, 2010. | Permalink | 124 comments | Add to del.icio.us | Digg this | Stumble on StumbleUpon! | Tweet it! | Submit to Reddit | Forum Smashing Magazine
Post tags: joomla, wordpress
- Better maintainability
-
April 27, 04:54 PM
40 Useful jQuery Techniques and Plugins
Over the last year, Smashing Magazine has evolved. We’ve been publishing fewer lists and more in-depth articles about design and Web development. We have invited professionals and high-profile developers to write for us. We’ve been investing more resources in the quality and relevance of our articles. We’ve also explored new formats; and on weekends we’ve been publishing more inspirational pieces, leaving the in-depth articles to weekdays.
We’ve tried our best to fuel the growing appetite of our readers for more advanced articles, but recently we’ve been receiving more requests for carefully selected, useful round-ups. We are not big fans of lists either, but the format is useful and — if the resources are relevant — can be extremely helpful. Therefore, we’ve decided to add a couple of round-ups per month as a bonus to our regular articles. Instead of replacing the main articles, we will add round-ups on top of our regular schedule. If you don’t like round-ups or find them inappropriate, please feel free to skip them. How does this work for you?
In this post, we present 40 useful but obscure jQuery plug-ins that will hopefully help you improve the user experience on your websites. We look forward to your ideas and suggestions in the comments to this post.
[By the way: The network tab (on the top of the page) is updated several times a day. It features selected articles from the best web design blogs!]Tips, Hints, Navigation
TipTip jQuery Plugin
TipTip detects the edges of the browser window and will make sure the tooltip stays within the current window size. As a result the tooltip will adjust itself to be displayed above, below, to the left or to the right of the element with TipTip applied to it, depending on what is necessary to stay within the browser window. TipTip is a very lightweight and intelligent custom tooltip jQuery plugin. It uses ZERO images and is completely customizable via CSS.Contextual Slideout Tips With jQuery & CSS3
A set of contextual slideout tips with jQuery & CSS3, which are ideal for product pages and online tours.jQuery Slider plugin (Safari style)
jQuery Slider is easy to use and multifunctional jQuery plugin.jSquares
jSquares is a jQuery plugin that pops up an image and a description in an overlay on hover. It is basically identical to the image grid found on www.ted.com. Works like a charm in IE6+, FF 3+, Safari 3+ and Opera 10.Nav-o-Matic
Single sprite navigation is great, but we all know it can get a little bit tedious. All that measuring of pixel perfect photoshop slices, careful coding of your CSS and subsequent calculator bashing is enough to drive anyone to start microwaving fluffy kittens. Wouldn’t it be great to have a fancy online tool to take care of all the boring stuff for you in a few simple clicks? Well wish no more…Jquery Two Sided Multi Selector
This Plugin converts a multi select list into a two-sided multi-select list. This means you display a list of options in the left hand box and items you select are moved into the right hand box.jQuery Keyboard Navigation Plugin
The jQuery Keyboard Navigation Plugin provides the capability for elements on a page to be navigated and activated via the keyboard’s up, down, right and left arrow keys.FullCalendar – Full-sized Calendar jQuery Plugin
FullCalendar is a jQuery plugin that provides a full-sized, drag & drop calendar like the one below. It uses AJAX to fetch events on-the-fly for each month and is easily configured to use your own feed format (an extension is provided for Google Calendar). It is visually customizable and exposes hooks for user-triggered events (like clicking or dragging an event).Forms
iPhone Style Radio and Checkbox Switches using JQuery and CSS
A simple technique for creating radio button and checkbox switches with jQuery.jQuery UI Selectmenu: An ARIA-Accessible Plugin for Styling a Custom HTML Select Element
Our latest contribution to labs is the selectmenu plugin, which is designed to duplicate and extend the functionality of a native HTML select element, and lets you customize the look and feel, add icons, and create hierarchy within the options. Best of all, it’s built with progressive enhancement and accessibility in mind, has all the native mouse and keyboard controls, and is ThemeRoller-ready.A Better jQuery In-Field Label Plugin
This is a pretty nice effect, and it can really help to save space on forms. There are a billion different ways to implement this, and I don’t suggest you use the example from above because that was just a quick way to show the effect. So let’s walk through a couple of different implementation approaches and figure out the best way to implement this feature.Sliding Labels
Tim Wright came up with a jQuery technique that presents labels in input fields by default but then slides them to the left (or up) rather than removing them on click. If JavaScript is turned off, the labels are displayed above the input fields. The small jQuery snippet works in all major browsers and can be used for input and textarea elements.Login or Signup with jQuery
Some users doesn’t like to filling the registration form. So that I had implemented login and singup fields in same block just controlling with jquery and PHP. It’s is very simple javascript and basic PHP code.Uniform – Sexy forms with jQuery
Have you ever wished you could style checkboxes, drop down menus, radio buttons, and file upload inputs? Ever wished you could control the look and feel of your form elements between all browsers? If so, Uniform is your new best friend. Uniform masks your standard form controls with custom themed controls. It works in sync with your real form elements to ensure accessibility and compatibility.Slideshows and Galleries
jQuery Quicksand plugin
Reorder and filter items with a nice shuffling animation.Nivo Slider: Slideshow jQuery Script
Nivo Slider is a simple and powerful jQuery image slider plug-in that fits the bill. The tool has nine unique transition effects built in, as well as plenty of options to fiddle with: for instance, you can define functions to be applied before and after the image has changed, set the animation speed and activate pause on hover.#grid
#grid is a little tool that inserts a grid onto the Web page. You can hold the grid in place and toggle it between the foreground and background. To display the grid, just press a hot key on your keyboard, and you can set your own short keys to switch views. #grid comes set up with a 980 pixel-wide container, with 20-pixel gutters, and assumes one lead of 20 pixels. You can download the source code (JavaScript and CSS) and use classes for multiple grids.Improving The Content
Dynamic Footnotes With CSS and jQuery
Lukas Mathis has come up with an elegant solution to improve user experience with footnotes: his jQuery script shows the content of footnotes as soon as the user indicates that they are interested in it – i.e. when they move the cursor over the footnote symbol.jQuery Captify Plugin v1.1.3
Captify is a plugin for jQuery written by Brian Reavis to display simple, pretty image captions that appear on rollover. It has been tested on Firefox, Chrome, Safari, and the wretched Internet Explorer. Captify was inspired by ImageCaptions, another jQuery plugin for displaying captions like these. The goal of Captify is to be easy to use, small/simple, and completely ready for use in production environments (unlike ImageCaptions at the moment).Copy to Clipboard with ZeroClipboard, Flash 10 and jQuery
With today’s post I will show you a contrived example to get you started. I eventually hope to add this to the contextMenu.js jQuery plugin that I use, but for now this should be pretty straight forward. I do want to note that in the demo and download I am loading the latest version of the jQuery library (1.3.1) from Google’s CDN for the first time in any of my posts. For more information on how to do this see the instructions from Google.Layouts
Columnizer jQuery Plugin
This jQuery plugin will help you create a multi-column layout without complex CSS hacks. Works across all major browsers.Charts and Graphs
Dygraphs: Create interactive graphs from open source Javascript library
Dygraphs is an open source JavaScript library that produces an interactive, zoom-able charts of the present time series. It is mainly designed to display the dense data sets and enable the users to explore and interpret them. It is a JavaScript Visualization Library.gMap – Google Maps Plugin For jQuery
gMap is a lightweight jQuery plugin that helps you embed Google Maps into your website. With only 2 KB in size it is very flexible and highly customizable.10 jQuery Plugins for Easier Google Map Installation
The plugins below offer not only an easier method to install a map, they also offer the option to add extra functionality, should you choose to need them. They also all come with a varied degree of docs, some are extensive and some non-existent, so choose your plugin wisely.Images and Visual Effects
jQuery imageless buttons a la Google
This jQuery plugin is an attempt to recreate Google’s imageless buttons and prove that it doesn’t take a whole team of engineers and an endless cycle of code revision and quality control (their own words) to pull this off. I don’t know how Google did it, but my buttons automatically adapt to paddings and other styling you wish to use. They allow for a lot of stylistic customisatoin via a few lines of css while keeping all the display critical css rules hidden deep inside the plugin.jQuery Presentation Plugin
jQuery Presentation Plugin: Say NO to Keynote!jQuery pageSlide
This plugin allows any developer to recreate a similar interaction on their own website using a few simple lines of Javascript. By attaching the method to an anchor tag, pageSlide wraps the original body content into a wrapper and creates an additional block for the secondary content load. The slide is animated whenever the click event is invoked.jqFancyTransitions: jQuery Image Rotator Plugin
jqFancyTransitions is easy-to-use jQuery plugin for displaying your photos as slideshow with fancy transition effects.A demo of AD Gallery
A highly customizable gallery/showcase plugin for jQuery.Pines Notify jQuery Plugin
Pines Notify’s features include: timed hiding with visual effects, sticky (no automatic hiding) notices, optional hide button, supports dynamically updating text, title, icon, type, stacks allow notice sets to stack independently, control stack direction and push to top or bottom.Animate Panning Slideshow with jQuery
In today’s tutorial we’ll take the makings of a classic slideshow, but use a different kind of transition to animate between slides. It may not fit every project, but diversity is always welcome in the world of web design.Sponsor Flip Wall With jQuery & CSS
Designing and coding a sponsors page is part of the developer’s life (at least the lucky developer’s life, if it is about a personal site of theirs). It, however, follows different rules than those for the other pages of the site. You have to find a way to fit a lot of information and organize it clearly, so that the emphasis is put on your sponsors, and not on other elements of your design.Last Click
CofeeScript
CoffeeScript is a little programming language that compiles JavaScript while simplifying the code that developers actually have to deal with. It works with current JavaScript libraries and compiles clean code, leaving even comments intact. Once developers familiarize themselves with how CoffeeScript works, they could potentially save themselves a lot of time and headaches with the simplified code.Brosho ‘Design in the Browser’ jQuery Plugin
With this Plugin you can style your markup right in your browser with a build-in element selector and CSS editor. Generate the CSS code of altered elements with one click and use it in your own stylesheet.gameQuery – a javascript game engine with jQuery
gameQuery is a jQuery plug-in to help make javascript game development easier by adding some simple game-related classes. It’s still in an early stage of development and may change a lot in future versions. The project has a Google Code page where the SVN repository of the project is hosted and a twitter page where you can follow the daily progress of the development.Mind-blowing JavaScript Experiments
The following JavaScript experiments demonstrates the amazing capabilities of the modern browsers such as Chrome and Safari. In this post I will showcase to you an array of experiments that will surely blows your mind off.Is adding round-ups to our regular content a good idea?
What do you think, is adding more round-ups to our regular content a good idea?Market Research
© Vitaly Friedman for Smashing Magazine, 2010. | Permalink | 78 comments | Add to del.icio.us | Digg this | Stumble on StumbleUpon! | Tweet it! | Submit to Reddit | Forum Smashing Magazine
Post tags: javascript, jquery, tools
-
April 12, 07:00 AM
6 Vital Lessons from a $200/day Adsense Account
I’ve written about buying and selling websites quite a lot here as recently, that’s how I’ve been spending most of my time. I browse the online marketplaces regularly not only to find sites I can purchase and improve, but to also get ideas for new websites, traffic sources, and ways to make money.
It has been around three years since I owned a website where the main income source was Google Adsense, but I recently picked up a great site which was pulling in a respectable $50 per day from the service. I’m certainly no Adsense expert, but I instantly saw ways to increase the revenue and tested different strategies over a number of weeks.
Thanks to the changes I’m going to share with you today, I managed to take that site from $50 to over $150 consistently, and even over $200 on good days. I will say now that I no longer use Adsense on the site as I found an affiliate offer which brought in more than $400 on its first day and has performed better than Adsense since.
However, I did learn a lot through my testing and can apply that knowledge to new sites I buy or create in the future, and of course share what I learned with you all here.
1. Standing Out Gets Fewer Clicks
If you’ve ever saw the “Congratulations! You’re the 1,000,000th visitor to our website” banners, the ads for the game Evony with beautiful women all over them or even the face of Darren Rowse (Problogger) on Chitika ads, you may think that standing out gets you the most clicks. In image or flash ads it probably does, but that’s not the case with Adsense.
Anything that stands out gets a visitors attention and from there one of two things will happen. The first thing they may do is unconsciously ignore the ad due to the “blindness” many of us have developed to banners online. The second possibility is that the user will pay more attention to the ad consciously and decide whether or not it offers something interesting to them.
While this second option will get some clicks and earn you some revenue, I’ve found that ads get a much higher CTR (Click-through rate) when they look like they are part of your website. The site I purchased used a dark grey background on all ads even though the rest of the site was white. Changing the background colour alone increased the CTR from around 2% to a solid 3.5%.
Sometime last year Google allowed you to change the font and size of the text in the ads you display. I used the medium-sized Verdana option and tweaked the font on my site with CSS to look exactly the same. This took the CTR to over 4%. In other words, these two very simply changes instantly doubled the income the site was making.
2. Become a Resource, Not a Destination
With any ads you put on your site, you have to remember that they’re going to take people away from your website. If you’re trying to build a popular blog that has regular on-site readers, it’s probably not a good idea to fill every spare pixel with ads. Having ads in-content is going to get far more clicks than an ad in the lower right hand corner of your site, but you’re also going to “lose” a lot more visitors.
In my experience, sites that make the most money with Adsense are ones that receive traffic from search engines and give users a taste of what they’re looking for, but not everything. If you provide a site visitor with exactly what they’re looking for then there’s absolutely no need for them to click on an ad and go somewhere else.
With other tweaks I’m going to mention I took the site up to an 8% CTR but didn’t go higher than that, though I could have, because I still want to provide genuine value to the visitors in some form. If you want people to stick around on your site and give them everything they need, then Adsense is probably not the best monetisation strategy for you.
I want ViperChill to become one of the top marketing blogs in the world and to do that I need to write better articles (at least in my opinion) than any other blogger in this industry. I regularly link out to other websites and will continue to do so, but I also want to be the “go to source” for the types of topics that I cover here.
If I were to put Adsense all over the site then I could make some money but at the cost of growing slower and compromising my own values. To make the most money with Adsense you need to create a resource which makes the user want to keep moving forward to find more information on the topic, rather than have everything they need on your site.
Steve Pavlina is an example of an exception to this rule by becoming a destination on the subject of personal development and making over $1,000 per day with Adsense. He did remove the ads from his site at some point last year but even when he put Adsense on the site, the traffic did not drop like many people would have expected.
3. Traffic & Niche Play a Huge Role in Earnings
With Adsense you will either earn money by people clicking on your ads or having your ads display on a cost per thousand impressions (CPM) basis. In order to get the most clicks or the most impressions, you need to get a lot of traffic.
There are some niches like car insurance, mesothelioma news or credit card reviews that will earn you a lot of money per click. In these industries I’ve seen people report as much as $5 per click on a regular basis. That’s huge. However, getting a lot of traffic in these industries is not as easy.
On the other hand, in the niche I’m in, I’ll often get no more than $0.20 per click, because advertisers aren’t willing to pay that much to receive the traffic. Visitors who are looking for credit cards or car insurance can end up spending a lot of money so advertisers are willing to pay well to get targeted traffic in these industries.
To earn money with Adsense, you can think of traffic and your niche as like a see saw. You can have a lot of traffic that just generates a small amount of money per click, or you can tilt the other way and have less traffic but get paid a lot per click. In order to make $100 a day on a Myspace layouts site, for example, then you’re going to need a lot of traffic because the Adsense clicks from that audience are not going to pay out as much.
To make $100 in the car insurance niche you could probably do so with 1/10th of the traffic, because the clicks pay so much more money. Traffic is important, but it’s not everything. Either way, you’re going to need quite a lot of it, no matter what your niche is, in order to make a substantial Adsense income on a daily basis.
4. Large Rectangles & Horizontal Link Units Work Best
For years I’ve always heard that large rectangles are the best performing Adsense ad and I have to say that my own experience aligns with this perfectly. I’ve tested lots of different ad formats and not one gets as high a click through rate as this.
Of course, it’s also important to look at your site design and see where ads fit in best rather than following this advice blindly. It may be the case that you run a site where a large rectangle would not perform well as it would stand out too much from what you already have in place. In these cases, my second best performing ad type, horizontal link units, may work best.
When you set-up an Adsense ad you do have the option to say whether you want only text ads to show, image ads to show, or a mix of both. I’ve consistently found that text ads work best and I think this is simply because image ads look far more like ads. A lot of people unconsciously ignore them like I mentioned earlier.
Large rectangles for me work best when aligned in the top left hand corner of your content. This makes the ad look more like part of the site and this is where a visitors eye goes first so they’re more likely to click on it. The horizontal link units get more clicks when they either act as a second navigation bar or they’re in the middle of content where users are actually looking for links to something else.
An example of the latter could be a Rapidshare search engine, a blog that offers MP3 links, a free PDF resource, or anything that offers users downloads in some form. Note that my site is not in any of these industries (which I think are generally quite dirty) but does leave users looking for links in some form.
5. Be In the Content, Or Hide It
The reason I have never made that much money on Adsense over the years (until now) is because I like to build destination sites that I’m really proud of, rather than fleeting resources which don’t offer much to site visitors. I’ve found a good mix of the two lately (I’ve just purchased another site expected to make $350 per day consistently) so have learned a lot.
By being in the content I simply mean blending text ads with text such as having horizontal link units in the middle of the content or having a vertical banner down the right hand side of an article. This tends to work very well and it’s an approach that a lot of Adsense publishers use.
Another option, however, is to ‘hide’ your content so it looks like the Adsense ads are exactly what the user is looking for. I only came across this idea by browsing popular sites on Flippa and found that if you have no relevant content above the fold (before the user has to scroll down the page) then your Adsense ads are going to receive a lot of clicks.
This does border on being unethical but I’m all for helping you guys make more money online so I will say now that this works. It’s completely up to you whether you would want to implement such a strategy on your own website.
6. My Final Adsense Tips
I thought I would end this article with some small tips on making more money with Adsense that didn’t really need their own section but can be useful to know:
- Use Adsense for feeds to make more money if you’re a blogger
- You can use a maximum of 3 Adsense for content ads per page, 3 link units, and 2 search boxes
- Putting images near ads will get them a lot more clicks but be careful not to put them too close and violate the Adsense TOS.
- Don’t click on your own ads. Google aren’t stupid.
- Horizontal Adsense banners in the footer of a site can work very well as if people have gotten to the bottom of your site, they’re generally looking for more information on something
- Disclaimer: Please read the Adsense TOS before implementing anything you read here.
To me, building a site that makes most of its money with Adsense is simply a site to make money. There are many tools out there which are useful at times (Youtube converters, proxies so I can check search results in another country, etc) which monetise their sites via Adsense and still offer genuine value to users.
Most of the time, the sites that make money via Adsense have generally been built to simply make money via Adsense. In many cases I find that valuable sites which make money via Adsense can make a lot more money if you find a relevant affiliate offer to promote – which was the case with the site I purchased.
If you have any tips of your own to share, I would love to read about them in the comments.
-
March 17, 09:39 AM
30 Valuable Lessons Learned Using Social Media for Small Business
In this post Mark Hayward shares some great tips on social media for small business.
Image by jn is not here
Do you own a small business? How long have you been using social media as a marketing tool and what have you learned?
In a little over a months time I will have owned my business for just about three years. When I began using social media some thirty six months ago, I had no real marketing background experience, and I certainly had never written a blog post, interacted in a forum, or sent a Tweet.
My social media evolution began with a simple foray into blogging as a way to try and rank well for some keywords related to my business. From there I expanded to niche forums, review sites, FLICKR, YouTube, Facebook, and Twitter.
Man! Just trying to keep up can be intimidating and overwhelming.
However, my number one goal has always been to create a distributed social media footprint with all of my online marketing activities pointing back towards my small business website.
After almost three years of working hard, learning continuously, making lots of mistakes, and monitoring successes, below are thirty valuable social media marketing lessons that I have learned through my experience. I hope they help you:
1. Location is dead. We have now fully entered into the Interaction Economy.
2. It does not pay to engage in ‘pissing contests’ on business review sites or in forums.
3. When used properly, a small video camera like a Flip and a standard digital camera (or just an iPhone), can be like having your own marketing department.
4. Instead of trying to be everywhere in the social media space, determine what online activities work best for your business and focus your attention there.
5. Search Engine Optimization(SEO) is important but it needs to be combined with a well distributed plan for Search Engine Visibility (SEV).
6. Conceptualizing and then defining your social media goals can help to keep you on track.
7. Social networking sites can be a tremendous time suck. Use a site like Egg Timer to help limit the time you spend interacting online.
8. Get to know the online influencers in your small business niche, as well as, the social media pros.
9. There is gold to be mined with Twitter Search if you are willing to use it to listen, engage, and provide value.
10. Uploading well titled and tagged videos to YouTube and photos to FLICKR can drastically improve your Search Engine Visibility.
11. Consistent small business blogging pays the greatest returns.
12. Technology changes daily. Read often.
13. You should not fear customer review social sites like Yelp and TripAdvisor. Rather, you should embrace them.
14. Helping people online when they least expect it can bring you great rewards.
15. Even on your worst day, you have to remember that every interaction counts.
16. Spamming and jamming your business down the throats of potential customers only drives business away.
17. Not everyone is going to like you, so be prepared to get flamed and read negative reviews.
18. Turn negative reviews into a positive by using them to help better define who your ideal customer is.
19. Your backstory matters and weaving it into your online business persona is important.
20. Social media is a lot like exercise. Doing a little bit consistently everyday will produce better results than one eight hour marathon session per month.
21. The people who criticize you the most for using social media to promote your small business are the one’s who are most afraid of embracing change.
22. One of the easiest ways for small business owners to measure social media ROI is to ask every customer how they heard about your business.
23. When starting your social media marketing efforts for your small business you will get frustrated. Try to keep a long term outlook like six months to a year.
24. Don’t discount the power of niche forums that are related to your small business.
25. Use Google Alerts to see who’s talking specifically about your business and anything related to your business.
26. If you are using social media as a customer service tool, when something goes wrong (and it always does!), being sincere, humble, and apologetic will be greatly appreciated by your future potential customers.
27. Utilizing free email lists like Help A Reporter Out (HARO) can help you find valuable public relations and news opportunities for your business.
28. Social media in the short term does not work. You must be in it for the long term and be persistent, consistent, and committed.
29. Anyone who owns a small business can ‘do’ social media, but NOT everyone ‘does’ it. (And that is your true competitive advantage.)
30. If you have a spare hour or two everyday to aimlessly surf the net, or sit and watch T.V., then you have more than enough time to commit to using social media for your small business.
How long have you been using social media for your small business? What have you found works best?
Mark Hayward hates the snow and cold! Luckily, he owns a small business in the Caribbean. Mark is passionate about helping other small business owners avoid the online mistakes he has made. You can follow Mark on Twitter @mark_hayward and you can subscribe to his RSS Feed for weekly small business social media marketing tips.
Post from: Blog Tips at ProBlogger.
30 Valuable Lessons Learned Using Social Media for Small Business
-
March 03, 06:03 AM
The Indispensable Guide to Timejacking Your Way to Success
How to manipulate your use of time to focus on the important.
Written by Everett Bogue | Follow me on Twitter
The idea that time is your most valuable commodity is not new, but it is often overlooked. I’ve done a lot of research on the importance of focusing your attention in the last year.
There are a number of very successful people, such as Timothy Ferriss, Seth Godin, and Leo Babauta who use their time very effectively in order to accomplish greatness.
I call this emerging science Timejacking.
The idea is that you don’t exist within the accepted constraints of time as other people in the world do. These people don’t let the unimportant eat up their time.
When compiled, designed, and published The Art of Being Minimalist in under 2 weeks, I also employed a number of Timejacking techniques for greater effectiveness. I plan on writing at least one more ebook in the next two months, so Timejacking is on the forefront of my mind.
Many people choose to spend their time in ineffective ways:
- Watching TV
- Paying off bills they shouldn’t have acquired
- Working at low-paying jobs
- Multitasking
- Checking email every 35.5 seconds
- Reading information that doesn’t matter out of obligation
I could go on forever about the ways you can spend ineffectively spend time, but that wouldn’t be an effective use of my time.
The Timejacking manifesto is simple:
- I will value my time to the highest potential.
- I will not engage in activities that do not contribute value to my life.
- I will focus my attention on creating great work which changes the world.
Here’s one Timejacking case-study:
When I was living in Portland, there came a moment in time when I didn’t have any money at all. I had moved there with $3000, and around November 1st I realized that I had reached bottom. I had very little income coming in at that time, and none of it automatically, like it does now.
Then I walked by a Starbucks, and they had a help-wanted sign up in the window.
For a brief moment, perhaps 17.7 seconds, I considered taking that job. (I’m confident they would have hired me, because I’m badass.) It probably could have been paid fairly well for what those jobs pay, around $11 an hour I imagine. I could have made just enough money working part time to pay rent and buy food in Portland. I would have been ’set.’
If I had taken this action, it would have ended my writing career before it began.
By putting that safety net in place, I would not have had the incentive to start growing my small business online. I would not have hunkered down and spent a number of months banging out valuable content for my e-book.
Anyway, I don’t mean to say this to put down people who are working for 11 dollars an hour. For me, it just doesn’t make sense. It is a very safe way to live, you can pay the electric bill. However, it isn’t a way to be find artistic success.
The rationalization for me was simple:
If I spent the next two months working on creating what is essentially, a digital work of art, it will pay me indefinitely. The truth is that my e-book made far more money in the first month of launching, than I ever would have made working at Starbucks for the last four months.
I had timejacked my way to success, and I want to help you find the skills to do that as well.
I’ve written more about my success through minimalism in my e-book The Art of Being Minimalist. I highly recommend reading it, if you haven’t already.
The nearly complete Timejacker manual for success.
1. Reduce your email usage.
Internet communication is one of the biggest problems manifested in our era. Everyone feels they need to be on the internet all day long answering stupid requests and keeping in touch. The problem is, when you’re on email all day, you never get anything done. If you sit at your computer all day, hitting the refresh button your gmail, you will never get anything important done.
Stop checking your email please. I know, this is one of the biggest crimes that I commit as well. I’ve wasted countless years of my life checking email, and I’ve made the resolution recently to make it stop. I value my time too much to waste it the endless time-vortex that is email.
This should be a separate article, and I’ve written about a healthy approach to email before. But, here are a few basics:
Do not check email first thing in the morning.
This can ruin your whole day, because you might get an email criticizing you, or requesting a massive amount of information. Suddenly, it’s all you can think about.
You know what I’m talking about, right? It’s so easy for email to take control of your life.
Start by checking email twice a day.
Set two times per day that you check email. The 1st time should be around noon. I’m doing 2pm today, because I woke up at 10am, and I need at least 4 hours to write at least 4000 words of content. The second time is around an hour before the end of your work day. Anywhere from 4pm-6pm, depending on how long you work.
If you have a boss, which I know many of you still do. (You won’t for long if you start to apply these techniques.) Explain to your boss that you will see a huge productivity bump if you start to adopt these techniques.
Offer to do a trial period, where you check email twice a day for one week. Present evidence to your boss that your productivity has skyrocketed. If it hasn’t actually boosted your productivity, be sure to prepare enough material in advance so that you can successfully demonstrate that it has.
A Timejacker isn’t afraid to fake the evidence. It might take up to 4 weeks for you to see the results of this experiment, so it’s important to have enough time to see actual results.
Compose an auto-response to train the people who email you.
Write a very nice formal message explaining to the people who email you that you’ve started a Timejacking experiment. You’re free to copy and paste this one, if you need.
Dear friend,
In order to produce the best possible results in my work, I’ve adopted a policy of only checking email once per day at 12pm EST. Email is a huge time-suck and I’ve discovered that by not spending all day checking it, I become a much more effective individual. If this is an emergency, please contact me at my phone number 555-555-1212. I hope you understand.
Thank you for your time,
Insert your name hereQuickly move to checking email once a day.
Once you’ve established the barrier of only checking email twice a day, move as quickly as possible to a schedule of checking email only once per day. This will double your productivity instantly. Choose the middle of the day option, because it will give you time to respond to email that require action without spreading over into your off-time.
2. Automate social media.
I do NOT use Facebook or LinkedIn, but I have a presence there. Because of my work, it is absolutely essential that I have as many outlets as possible for people to find the work that I’m doing. However, this doesn’t mean that I spend endless hours poking around on Facebook.
How to automate social media:
- Turn off all notifications except incoming personal messages from real people.
- Make the Wall on Facebook 1-way. People often leave messages on your wall, and you don’t want to have to spend time policing that location. My wall is one way, and only displays my blog posts. This way, anyone who visits my Facebook page is almost guaranteed to read my blog, instead of interacting with me on Facebook.
- Program LinkedIn to pull in your Twitter feed and your blog feed. This will funnel people into interacting with you at your blog (your home base) and your Twitter, which limits their ability to write you five paragraph long emails that don’t say anything.
- Delete any profiles that you have to work very hard to find value from. There are a million social networking sites out there, if you’re not seeing significant returns from them, you need to delete your profile. For instance, I used to be on a photographer forum/social network called Lightstalkers. I recently deleted my profile because it wasn’t contributing any value to my life. Stick to the powerful social networking sites that give you results.
3. Value your time properly.
A Timejacker doesn’t do work unless they’re being paid at the absolute highest rate. This might sound like laziness, but it’s not. A Timejacker isn’t using their off time to watch TV or eat chips, instead they use the time when they’re not working to train, learn, and grow their strengths.
For instance: I value my time around $100 an hour. This means I can do ‘work’ around 10 hours a week an make at least $1000. This is more than enough to cover all of my expenses for that week. I plan to grow this amount until my time is worth at least $500 an hour. This way I can earn around $5000 a week for 10 hours of work.
In the above mentioned Starbucks story. No matter how hard you work, you can never reach the potential of earning $5000 a week. Pushing the Frappachino button just doesn’t scale into high-impact income.
4. Don’t do meetings.
Once you interact with more people than yourself, you introduce the concept of bureaucracy. This is why many bigger organizations have a hard time maneuvering and growing, because you need to sit a committee down on a Friday night for four hours in order to endlessly debate whether or not to order a new snickers bar.
Simply avoid interacting with other people when decisions are being made. The section details how to solve this problem:
5. Make decisions on your own.
Take initiative and make important decisions for yourself.
The reason for this is one of a Timejacker’s biggest strengths. If you introduce an idea to another person, they will almost always have some reason to argue about how it can be done better, or how they think it will fail.
For most average decisions, you can reasonably assume that you can make the logical decision yourself, and get the minor decision done and out of the way. This way you can move on to the next decision. For important decisions, or ones that might potentially lose a lot of money, you may need to interact with other individuals if you’re working in an organization.
Knowing the difference between important decisions and squabbling over stupid decisions is one of the most important elements of any successful Timejacker. Act on decisions that have simple answers without asking for an opinion.
6. Eliminate as many unnecessary tasks as possible.
Many people simply do things because someone told them to. Don’t accept the status-quo; if you can eliminate or automate a task you must make the decision to do so.
For instance: if you’re still updating a spreadsheet that lists all of your business expenses manually, you must stop doing this and outsource it to an automated financial program.
I don’t care if you really enjoy the task of reading all of your receipts for coffee last week and typing them into Excel, doing this is effectively killing hours of your time. Use an account at Mint.com for your personal finances, and Outright.com for your business expenses. These services automatically keep track of cash flow and budgets for you, and you can see your exact net worth in a matter of seconds.
This can apply to any number of tasks though. Do an audit of your time and see where you’re wasting it, then destroy those time wasting elements. I did this with email, and it’s helping my ability to focus on the important immensely.
7. Focus on your strengths.
A Timejacker acknowledges that they cannot be good at everything.
Many people spend their entire lives trying to be as balanced as possible. We’re encouraged in schools to get high math scores, even though 80% of us will never have to do algebra again after high school. Why are we wasting all of this time learning math, when our cellphones can do it for us?
Focus on becoming the absolute best at your good abilities, and stop focusing on fixing your problems.
We all have problems, and I know we can be very insecure about them, but it’s okay. There are other people who are better at these things.
If you’re bad at giving haircuts, don’t try to fix your hair-cutting ability, instead find someone who can cut your hair for you. There are a million other ways that people focus on fixing problems instead of focusing on becoming the best at their strengths.
All of this is wasted time. You could pay someone to do the little things, or not do them at all.
8. Use existing infrastructure.
I went over this in depth in my article on simplifying your start-up. It got a huge positive reaction, and I can understand why. Everyone thinks they need to reinvent the wheel, but the truth is that making that decision can keep you in Starbucks-land for a very long time.
Be aware of the applications and services that are available to you, and use them to Timejack effectively. One way that I do this in my business is by using e-junkie to handle all of my transactions. My digital goods are transmitted, and payments are received instantaneously with no interacting from me. I can simply check my cash flow every night and adjust my strategies properly if I need to.
The old way to do this would be to rent a space in the real world, hire someone to run your cash register, and have them manually handle all transactions. This is costly, and ineffective in the modern world. A Timejacker doesn’t do brick and mortar unless absolutely necessary.
9. Make it hard to contact you.
With my new-found minor fame over the last month, I started to receive a huge amount of email every day with questions from readers. I love interacting with readers, but many of these questions could have been resolved by the person if they had just sat down and thought for 30 seconds.
In order to cut down on the amount of email I received, I installed a ‘contact me’ form that lists a couple of expectation that I have for incoming messages. For instance: keep it short. Don’t email me asking me to promote stuff. Contact me on Twitter first.
I plan on writing a brief Q&A for some of the most frequent questions that I receive.
If you make it more difficult to reach you, it will make sure that only the people who really need to contact you will. This way you can get more important work done, and spend less time answering mundane questions.
10. Avoid consuming information for information’s sake.
The majority of the information on available, especially on the internet, is valueless. Do not consume it for the sake of feeling like you’re reading something.
You are not reading anything of value.
Chances are you won’t remember what you just read. I only subscribe to 15 blogs, and these are the blogs that contain information that is incredibly valuable to me.
I suggest, as I did in my article on focusing your digital attention, unsubscribe to as much information as possible. Do not follow people on social networks just because they follow you. Focus your digital attention on only the sources that create worth for you.
How to stop reading newspapers (they’ll be dead in two years anyway.)
I recently stopped reading newspapers entirely. I used to have a sizable New York Times addiction, because I felt like I needed to read that information.
I did a month-long experiment in order to see if the information in the New York Times was really contributing to my life. I simply stopped reading it. After a week, I no longer missed reading the endless flow of useless information that comes out of the Times.
Instead I dedicate this time to reading books, because the level of information contributed is significantly higher in value quality.
I found that when important things happened, like the quakes in Haiti and Chile, my Twitter friends did their best to notify me. If something happens that actually effects me personally, I imagine I’ll be able to walk out my front door and ask a bystander what’s going on, and they will tell me.
I think when the New York Times puts up their pay wall, they will see just little society values the information that they contribute. Which is to say, not very much at all.
What information are you consuming that doesn’t contribute value to your life? Turn it off.
11. Only work when you want to.
A Timejacker doesn’t work for the sake of working. They focus their attention on activities that are incredibly important. If you find yourself sitting at your computer, and no ideas are coming to you, stop sitting at your computer! Go read a book. Go outside and sit in the park. Go to a yoga class or to the gym and exercise your body. Cook yourself a healthy lunch.
There are a million things you could be doing besides sitting in front of your computer with a glazed over look on your face waiting for ideas to come. In fact, I’ll go as far as to say that the ideas won’t come in when you’re in front of the computer.
I wrote this entire article in my brain yesterday as I walked down west side of Prospect Park. I stopped at the bookstore and pursued the stacks. I got a cup of coffee and watched people do what people do.
I decided that Timejacking was the most important element of success as I was NOT sitting in front of a computer. The next day, I simply sat down and wrote a nearly 3500 word article in an hour. Because this article is so valuable, it will no doubt return an incredibly high value to my business.
If I had spent yesterday staring blankly at a computer screen, I never would have written this article. Take this to your own life though; how often do you sit at a computer screen just waiting for ideas to come?
Go out into the world and experience what it is to be alive.
12. Don’t do things you hate doing.
A timejacker doesn’t do things out of obligation. If you’re sitting at your desk right now, just waiting for the clock to strike 5pm. Stop, get up, go outside. The best decision you could ever make is to stop doing anything that you hate doing. Especially for a pay check as small as $11 an hour. If you hate your job, you should be working towards finding a way to leave your job, instead of just being a zombie.
13. Focus only on what is truly important to you.
A timejacker recognizes exactly what activities are important. Almost all of my income comes from writing professionally at this moment, so that is one of the most important activities to me.
Take a moment and determine exactly what is important to you. I like to pick four areas of my life which are most important. Right now I’m focused on writing, cooking, yoga, and reading.
Make a resolution to only focus on your areas of interest on any given day. Many people choose to spend their days focusing on many different things. Like they spend five minutes tinkering with an art project, and then they spend five minutes shopping for shoes, and then they spend five minutes thinking about philosophy. This leads to a day worth of little useless activities.
A timejacker focuses only on the important, and harnesses their strengths in order to become incredibly successful.
–
If this helped you, the most important thing you can do is to hit that retweet button, so more people can be helped by this information. Thank you.
-
March 22, 09:00 AM
10 Ways to Deal With the Non-Simplifying Others in Your Life
“God grant me the serenity to accept
the things I cannot change;
the courage to change the things I can;
and the wisdom to know the difference.”
~Reinhold Niebuhr, The Serenity PrayerPost written by Leo Babauta. Follow me on twitter or identica.
Probably the most frequently asked questions for those trying to simplify their lives isn’t How Do I Simplify, but rather What If Others in My Life Don’t Want to Simplify?
It’s an amazingly common problem, and one that doesn’t have an easy answer.
However, there are things you can do if your significant other, family members, friends, co-workers or others in your life are standing in the way of finding simplicity.
I’m lucky in that my wife, Eva, is incredibly supportive and in fact has joined me in my journey to simplify. She has eliminated a lot of her stuff, has streamlined her life, and while she’s not quite as minimalist as I am (who can blame her?), she’s come an amazingly long way and I’m proud of her.
But that didn’t happen by accident — I engaged Eva from the beginning, got her on my side, and didn’t push or try to force her to do anything (well, usually — I don’t claim to be perfect). And of course, what’s most important is that she genuinely wants me to be happy and to succeed in anything I do. Again, I’m really lucky.
I’ve had success in getting my kids on board, at least a little bit, with a lot of what I do, and I’ve also had success in letting them live their lives differently than I lead mine. I’ve also had to deal with other family members and people in my life who haven’t been so supportive — in a few cases, actively against some of the things we’ve tried to do.
Leo’s Simple Methods of Dealing With Others
How have I dealt with all of this? I’d like to share some of what’s worked for me, in hopes that it’ll help some of you. As always, your mileage will vary.1. Model behavior. The most important thing you can do to convert others to your ideas is to be the best model possible. Walk the walk, and do it visibly, so others can see what you’re doing. This goes for your spouse, for your kids, for family and friends, for co-workers. Just showing how to do it can be a powerful tool indeed. Declutter your life, live more simply, and you’ll go a long way to converting others.
2. Share how important it is to you, and the benefits. This is really the second part of being a role model: as you start to live the simple life, show others how great it is to you, how important a part of your life this is. Talk with them about it, and tell them why you’re doing this. When people understand your motivation, they can start to get on board, or at least stop feeling so threatened. And when they see how great it is for you, how happy it makes you and all the great things it brings into your life, they’ll move closer and closer to your way.
3. Ask for help. One of the first things I did with Eva was ask for her support. Not just her consent, but her physical help. I confessed that I can’t do it on my own and I need her. Many people, if they truly care about you, want to help you. They want you to be happy, and if you tell them how they can help you succeed, they’ll do their best. If possible, make simplifying a team effort — not just something you’re doing, but something you’re all doing together. And make it fun!
4. Educate. The best way to educate others is, as I said above, by your good example. But beyond that, you may want to share books and websites and blogs you’re reading, not in a way that insists that they change, but just to show what you’re interested in and how they might learn more if they’re interested. Documentaries, podcasts, magazines, and other good sources of information are helpful as well. You can’t force people to read or watch, but you can make it available. In addition, talk with them about it — again, not in a pushy way but in a way that shows how excited you are and how you’d like to share what you’re learning about. If they seem put off, don’t drone on and on.
5. Help them succeed. If you do have some success converting some of the important people in your life to your way of thinking, at least to a minor degree, don’t criticize when they don’t do it as well as you’d like, or to the extent you’d like. Instead, be encouraging, be happy for them, and support them in any way you can. Again, make it a team effort.
6. Realize you can’t control or change others. One of the most common frustrations comes when people try to control other people, or force them to change. It’s a recipe for disaster. You can try to control others, but there will always be a struggle, and you’ll always fail to some degree. This applies to your significant other, even to kids. We try to control them but we can’t, not really. Instead, try to influence others, encourage them, support them, help them find happiness. And let go of the need to control. It’s difficult but really essential here. Once you can release that need to control, you’ll find much more happiness.
7. Set boundaries. Once you stop trying to control others, you have to find ways to live together with different goals and different ways of life. If you want to simplify and the others you live or work with don’t, how can you peacefully coexist in the same space? Some possibilities (but nowhere near an exhaustive list): decide who owns what and just simplify your own things; split up the house or office into your area and theirs; find a happy compromise between simplicity and major clutter.
8. Have patience. Don’t expect others to change overnight just because you have. The important people in your life might not get quite as excited about this change, because it’s not coming from them. They might not learn it as quickly as you have, or go quite as far. Or they might not want to change or support your change at all, at first … but later, they might come around. Again, don’t push or be obnoxious about it, but instead be patient, encouraging, with an attitude of sharing what you’re learning and excited about.
9. Change what you can. Sometimes you can’t change everything you’d like, and you have to learn to accept that. Find areas you can control, find places that others will allow you to change, and focus on those. The other areas might come later (or they might not). This is what comes from having others in your life — you give up complete control, but you also get the wonder of sharing your life with other human beings, something I’d never give up.
10. Find support. If you can’t get support from some people in your life, find it elsewhere if possible. This might be from others who are doing the same thing as you — friends or family, or people in your community. It could be from online communities, such as social networks or forums. There are tons of people out there who are trying to simplify (the Zen Habits forums are just one example). Share your progress, challenges, frustrations with them, and you’ll find help from people who understand.
—
If you liked this guide, please bookmark it on Delicious or share on Twitter. Thanks, my friends.—
If you’re interested in a simple life, check out my ebook: The Simple Guide to a Minimalist Life.Or find more of my other books and ebooks.
-
August 09, 06:10 AM
The danger of vague claims
The sign the broker posted in front of the house listed her name and then said, "#1 in Westchester, Top 10 Nationwide."
What does that mean, exactly? That this real estate broker is the most successful broker in the whole county and one of the top ten in the country? I don't think so. Not if she's selling this house. She'd have to sell a thousand houses like this to catch up with someone in a fancier neighborhood who only sells ten.
I think it means that the firm she works for is really big. So what? Is that a qualification for anything? Is the 11th biggest real estate firm way less good than the ninth?
Here's the danger: when the very first interaction we have is one where you are sort of not telling the relevant truth, where do we go from here?
-
August 07, 05:21 AM
When tactics drown out strategy
New media creates a blizzard of tactical opportunities for marketers, and many of them cost nothing but time, which means you don't need as much approval and support to launch them.
As a result, marketers are like kids at Rita's candy shoppe, gazing at all the pretty opportunities.
Most of us are afraid of strategy, because we don't feel confident outlining one unless we're sure it's going to work. And the 'work' part is all tactical, so we focus on that. (Tactics are easy to outline, because we say, "I'm going to post this." If we post it, we succeed. Strategy is scary to outline, because we describe results, not actions, and that means opportunity for failure.)
"Building a permission asset so we can grow our influence with our best customers over time" is a strategy. Using email, twitter or RSS along with newsletters, contests and a human voice are all tactics. In my experience, people get obsessed about tactical detail before they embrace a strategy... and as a result, when a tactic fails, they begin to question the strategy that they never really embraced in the first place.
The next time you find yourself spending 8 hours on tactics and five minutes refining your strategy, you'll understand what's going on.
-
July 02, 06:11 AM
The purpose of a book cover
(and I think it works for lots of products)
Is the purpose of the cover to sell books, to accurately describe what's in the book, or to tee up the reader so the book has maximum impact?
The third.
It's the third because if the book has maximum impact, then word of mouth is created, and word of mouth is what sells your product, not the cover.
Tactically, the cover sells the back cover, the back cover sells the flap and by then you've sold the book. If those steps end up selling a book that the purchaser doesn't like, game over. So you have to be consistent all the way through and end up creating a conversation after the purchase. Books are better at creating conversations than most products (when was the last time you talked about a pool cue), but there's lots of opportunity here, no matter what you make.
Some ways that a book cover can accomplish its mission:
- Iconic (because iconic items tend to signal 'important')
- Noticeable across the room (you see that lots of other people own it, thus making it likely that you'll want to know why)
- Sophisticated (because this helps reinforce that the ideas inside are worthy of your time)
- Original (why bother reading a book you already know)
- Clever
- Funny
- Generic (reminding you of a genre or another book you liked, not generic as in boring)
I don't know about you, but I judge books by their cover every day.
-
June 24, 06:21 AM
Find your voice
Marketing (in all its forms) is unlike everything else an organization does, because it's always different. There's no manual because everyone does it differently, and what successful marketers have in common is that they are successful.
The only way your organization is going to make an impact is to market in the way only you can. Not by following some expert's rules or following the herd, but by doing it in the way that works. For you. Don't worry about someone else's invented standards for new media, invent your own. Avoid obvious mistakes, don't follow obvious successes.
Find your voice, don't copy someone else's.
-
June 22, 07:07 PM
We #BlameDrewsCancer for This Addictive Tetris-Inspired Twitter Game
Shared by Chris
... addictive...There’s been a lot of online buzz about Drew Olanoff’s Blame Drew’s Cancer campaign (Drew was diagnosed with cancer earlier this year) to raise awareness and funds for the American Cancer Society and Make a Wish Foundation. In fact, our post earlier today on LIVESTRONG’s social media for good efforts highlights how even the Lance Armstrong Foundation is supporting the cause and spreading awareness via Twitter.
Now whether or not you’ve tweeted in support of #BlameDrewsCancer, you can take the lazy way out by playing the new Tetris-inspired Twitter game called TweetBricks. Built by Mike Demers of 9Astronaunts, TweetBricks is creative way to waste away the day and still help spread awareness about this amazing cause.
TweetBricks is the #BlameDrewsCancer game that lets you stack bricks of tweets and attempt to remove rows to earn points. It’s pretty much a spitting image of Tetris, but with the tweets of your choosing serving as bricks. So, you can either play with your friends’ tweets, hashtag tweets, your followers’ tweets, your mentions (@replies to you), an individual user’s tweets, or everyone’s tweets.
There’s nothing overly complex about game play, but it is quite fun to see tweets of your liking trickle down the screen. Plus when you lose, you can have the option to show your support and send out a blame tweet or tweet your score.
Sure there’s more involved Twitter games like Spymaster, Bank Raids, and Trivia on Twitter, but we can’t think of a better way to mix Twitter, Tetris, and social good. Plus, should you get caught playing too much at work, you can always just claim that you’re doing your part to help the American Cancer Society.
More Social Media for Good Resources from Mashable
- 10 Ways to Change the World Through Social Media
- Inspiring Tales of Social Media for Social Good #Stories4Good
Reviews: TwitterTags: blamedrewscancer, drew olanoff, social good, tweetbricks, twitter games
... addictive... -
June 17, 03:32 PM
Scalejacking
Dave Balter coined this great term. It describes the quest of marketers for size at all costs. Because marketers were raised on the scale of mass—TV, radio, newspapers—they have a churn and burn mentality. The internet turns this upside down. The internet is about who, not how many. The internet lets you take really good care of 100 people instead of harassing 2,000.
Yet, panicked marketers still look for scale (How many followers can we get? What can we do with a Facebook fan page?) and then hijack that attention, hoping to filter out the masses and get a few sales.
Scalejacking inevitably tarnishes most communities, because individuals (people) hate being treated like numbers just standing by to be filtered.
Stephen Stills wrote, "If you can't be with the one you love, love the one you're with." I think he was wrong. On the Internet, the mantra that works is, "Be with the ones you love (and the ones that love you.)" Ignore everyone else. It doesn't have good internal pentameter, but it's true.
-
June 09, 06:27 PM
Learn SEO in 30 Minutes a Day
Posted by Danny Dover
Learning SEO can be a daunting experience. To make this process a little easier, I have broken down my method for learning SEO into bite-sized chunks that can be completed in 30 minutes or less. I have also tried to create a mechanism to make it easier to get help and expand personal networks.
Twitter Participation:
I think the best benefit of learning SEO is getting to know the SEO community. As an experiment to facilitate this, I propose the following. While you complete the tasks below, feel free to share your progress on Twitter with the Hash Tag #30MinuteSEO. This will make it easier to find people who are doing the same thing and willing to help you. :-)
Learn SEO in 30 Minutes a Day
Learn the Basics:
Your first group of tasks will teach you the fundamentals of Search Engine Optimization. You get to start slow by reading some helpful articles.
30 Minute Tasks:
- Read the new Beginner's Guide to SEO (30 mins) - This is the table of contents for the upcoming revision to the Beginner's Guide to SEO. (Note the ‘Parts’ are links to full articles.) I recommend this version over its predecessor because its material is more focused on today's SEO landscape.
- Read Google’s Starter Guide to SEO (30 mins) - Isn’t reading two beginner guides to SEO redundant? The information might be, but this will teach you to recognize and appreciate Google’s perspective on SEO. (As a side note, notice the juxtaposition between the message Google is saying and the SEO unfriendly URL structure of this page. This is your first chance to study the difference between what Google says and how Google acts. Oh snap!)
- Build a Basic Website (4 sets of 30 mins) - The Beginner's Checklist for Learning SEO will guide you through the process of building a basic website and teach you the basic SEO skills you need. (I apologize for linking to my own work. I wouldn’t recommend it if I didn’t believe it was worthy.)
Start Using Your Skills:
Your second group of tasks requires applying the theories you just learned. These tasks are presented as SEO challenges that will utilize everything you learned in the previous section and depend on your own creativity. Note: The work for these will take about 30 minutes. The time it takes for the content to actually get indexed may be much longer.
30 Minute Tasks:
- Rank for a long tail phrase (30 mins) - Choose a long tail keyword phrase and figure out how to rank for it. When I did this exercise nearly two years ago, I chose “fat people falling”. Please be aware that the subject manner and the language of the ranking page may be NSFW. It was written for a very specific audience and may be offensive to others. Hint: See if you can figure out how I got this page to rank with only one inbound link.
- Rank in the top 10 in a local search (2 sets of 30 mins) - Find an actual small business that you appreciate and volunteer to do SEO at no cost. When I did this two years ago, I chose the preschool I originally attended and helped them rank in their area. Hint: Read David Mihm’s Local Search Ranking Factors
- Rank an image (30 mins) - The image vertical is one of the most confusing search realms to work in. Dive in and see if you can get a relevant image to rank for a phrase of your choice. Hint: Read Google Image Search Ranking Factors
- Rank in the top 10 for a popular term on YouTube (30 mins) - Compared to the search engines, ranking in YouTube is a piece of cake. Try to rank for a semi-competitive term with a worthwhile video. When I originally did this, I ranked for a popular culture phrase and my relevant video made me $10,000 theoretical dollars. Hint: Read YouTube Ranking Factors
- Outrank Google (3 sets of 30 mins) - This is an exercise with the domain-related metrics. Find a REALLY long tail phrase that Google ranks #1 for and see if you can create a page that can outweigh the domain strength of the big G. I have been experimenting with Google's spam filters and I am seeing if I can outrank Google Webmaster Central forums with my awesome website What Is The Best Thing To Do With a Colt with Five Hooves.com
- Pitch SEO to a real client (2 sets of 30 mins) - This is the hardest but possibly most important task on this list. Go out and find a small business and sell them on your ability to do SEO. You will likely learn a lot about SEO and yourself in this process.
Continue Learning:
After completing the tasks above, it is a good idea to spend 30 minutes a day reading SEO blogs - I recommend the following:
- Search Engine Land - Authoritative up to minute search engine coverage.
- Search Engine Roundtable - High quality coverage of SEO as it evolves.
- SEOmoz Blog - SEO blog with a focus on teaching SEO. (Disclaimer - SEOmoz pays my bills and may have been the bearer of my first child. The jury is out.)
- Sphinn - A fair amount of fluff, but generally the first source to break inner-industry news.
- Alltop SEO - Great source for SEO News. Highly recommended the SEOmoz community in the comments below this post.
Study Advanced SEO:
This group of tasks has less direct return on investment but can lead to big wins. I try to complete these at least once a month.
30 Minute Tasks:
- Review ultra competitive Search Engine Result Pages (SERPs) (30 mins) - Watch the progress of SERPs like “Buy Viagra”, “Real Estate” and “Payday Loans”. Most of the techniques used to rank for these are Black Hat but it is important to know what you might be up against.
- Find a site that outranks Wikipedia and try to figure out why (2 sets of 30 mins) - This will likely help you with later work. Wikipedia’s domain strength is incredible. Find and study the sites that outrank it because they generally use the best SEO tactics.
- Attend search conference parties (4 sets of 30 mins) - Don’t get distracted by the people exchanging short term tricks and tips. Instead, mingle and start to talk to some of the most interesting people you will ever meet.
Extra Tasks:
These tasks are more difficult and only indirectly apply to SEO
- Write up an SEO-oriented resume (2 sets of 30 mins) - From what I have seen, when businesses are facing hard economic times they look inward to see what current assets they can maximize. This means that SEO is a great skill set to have when companies are looking to attract free search engine traffic. Hint: You can add your resume to the SEOmoz Marketplace
- Review HTML Tags (30 mins) - In the same way that the typewriter dictated the course of keyboards, (the QWERTY layout was originally designed to prevent collisions on typewriters) HTML dictates the course of the internet. Become an HTML expert and your skills will apply for the rest of your life.
- Sign up for Social Media (30 mins) - If you haven’t already, sign up for Twitter, Facebook and any other social media sites that you find interesting. Start building your personal brand and make it work for you.
If you have any other tasks that you think are worth sharing, feel free to post them in the comments. This post is very much a work in progress. As always, feel free to e-mail me or send me a private message if you have any suggestions on how I can make my posts more useful. If that's not your style, feel free to contact me on Twitter (DannyDover) Thanks! -
June 13, 05:58 AM
Ruby slippers
If you could make one thing come true that would change everything for your project, do you know what the one thing would be?
One breakthrough client, one technical advance, one testimonial? One achievable change in the world?
For Google, the one thing was a big thing, "we need to be the place people come to search." But for many sites, many companies, there isn't a thing. They can't articulate it. They have no wish. If you have no wish, how can it possibly come true?
-
June 16, 06:58 AM
Google Says: Yes, You Can Still Sculpt PageRank. No You Can't Do It With Nofollow
Shared by Chris
technical look at changes in PageRank flow and NoFollow tags, worth reading and certainly worth seeing what comes from itPosted by randfish
The blog post - PageRank Sculpting - from the head Google's Web Spam team is a critical read for SEOs worldwide:
So what happens when you have a page with “ten PageRank points” and ten outgoing links, and five of those links are nofollowed? Let’s leave aside the decay factor to focus on the core part of the question. Originally, the five links without nofollow would have flowed two points of PageRank each (in essence, the nofollowed links didn’t count toward the denominator when dividing PageRank by the outdegree of the page). More than a year ago, Google changed how the PageRank flows so that the five links without nofollow would flow one point of PageRank each.
It's valuable to recall the illustration I put up on Google's initial announcement of this change:
This change in Google's treatment of nofollow links comes with some very interesting additional advice/clarification:
Q: Okay, but doesn’t this encourage me to link out less? Should I turn off comments on my blog?
A: I wouldn’t recommend closing comments in an attempt to “hoard” your PageRank. In the same way that Google trusts sites less when they link to spammy sites or bad neighborhoods, parts of our system encourage links to good sites.Many in the SEO field have long suspected that linking out to good places can provide a positive benefit, but I'm afraid that's going to be very hard to quantify and therefore difficult to justify. In all honesty, I believe we're going to see SEOs and websites revert to what I'll call "old-school" PageRank sculpting - the kind prevalent prior to the existence of nofollow.
From now on, if you wish to sculpt PageRank, you'll want to use one of the following classic PR sculpting methodologies:
- Option A: An embedded iFrame on the page containing the links you don't want the engines to follow (remember not to link to the iFrame URL, and potentially block it using robots.txt)
- Option B: Links that call a Javascript redirect script with access blocked for search engine bots (as Google is also now crawling basic javascript and counting links through it)
- Option C: An embed in Flash, Java or some other non-parseable plug-in that contains the desired links
- Option D: Settings that turn off links for non-cookied or non-logged-in visitors
Tragically, while this action won't hurt spammers or those seeking to manipulate Google, it will seriously harm many thousands of sites that have employed nofollow internally as it was long considered a best practice (and messaged as such to the SEO community by the same source as this reversal). I suspect it will be several years and many re-designs before a lot of sites are able to clean up this solution-turned-problem.
I'm saddened to say that given this change, we, as SEOs, are going to have to also recommend the best practice that comments (in all forms of UGC) no longer accept links. While Google has said that linking out to "good places" provides some value, that merely suggests that webmasters and site owners should select good resources editorially and link to them with live, followed links. Comments that contain links, unfortunately, will actively detract from a site's ability to get pages indexed (as they'll pull away link juice from the places that need it). It's likely that a plug-in for Wordpress that sends comment links out through uncrawlable Javascript or uses iFrames will emerge in the very near future.
This is a disappointing move from Google on many fronts:
- It allows malicious operators to actively hurt a site by adding nofollowed links in comments, forums and other open submission arenas.
- It removes the protection webmasters thought was afforded by nofollowing links (you may not get hurt for linking to spam or paid links directly, but you're now indirectly hurting your site's PageRank flow)
- It casts doubt on Google's credibility with future messaging to webmasters (Danny Sullivan covered this when he wrote about the loss of backwards compatibility)
While I'm personally frustrated, I'm also thankful to Google for publicly messaging this in an honest, open way. I hope that in the future, we'll get this notification in a more timely fashion. SEO consultants and in-house analysts are going to have their work cut out for them over the next few months.
BTW - Although Google has almost certainly messaged this honestly, we've got some tests running to make sure this is the case (with both the nofollow and the iframe/javascript solutions). Results will be posted here once our tests have been confirmed. We're also going to be making changes to how Linkscape's mozRank scoring system, modeled around similar intuition as PageRank, will treat nofollowed links in future indices.
p.s. Danny Sullivan's comment on Matt's blog post is also an essential read (and re-iterates many of the points above). A few valuable excerpts:
With this change, I can still get the $4 if I simply don’t allow comments. Or I show comments, but I use an iframe, so that the comment actually reside on a different page. In either case, I’m encouraged to reduce the number of links rather than let them be on the page period, nofollow regardless. If I’m worried my page won’t seem “natural” enough to Google without them, maybe I allow 5 comments through and lock them down after that.
Rather than clarify things, I feel like this is what your post is going to do -- cause people to consciously reduce the number of links they allow on their pages. We’re going to see an increase in iframe usage or other techniques to reduce links and flow more PageRank to the remaining links, for those who really worry/believe in such things.
It's been a long time since we had such a fundamental shift in SEO best practices (maybe the canonical URL tag, though it's effectiveness has been questioned and this PR sculpting reversal isn't likely to inspire confidence).
technical look at changes in PageRank flow and NoFollow tags, worth reading and certainly worth seeing what comes from it -
June 16, 05:21 AM
Why I’m Going Back to Basics (And So Should You)
Now that I’m a college graduate (unbelievable, eh?), there is time left in my day to do this internet marketing thing. And I am relearning something from years ago when my career first kicked off… ELBOW GREASE. There are marketers who have been kicking the tires of making workd for years and ... -
June 12, 01:16 PM
Do Not Forget Your BackYard When It Comes to Social Media
Shared by Chris
Has anyone else tried this? Anyone in London? :)Do you interact with your community when it comes to your social media strategies?
It’s funny how so many of us will travel thousands of miles to meet up with people of like interests and yet never think to see what is available locally.
Why is that?
I think it is human nature to always feel the grass is greener on the other side… but I have to wonder how often that is truly the case?
Now, I understand that population has a huge effect on this. After all, if you live in a small community of just a couple thousand people, then you are pretty limited as to what you can accomplish. In comparison to that, if you live in a huge metropolis… there are probably countless opportunities for you.
But no matter where you live… have you even tried to connect with others?
OK, so where is this coming from?
As you know I am a Social Media nut and a Twitter fanatic. I have also been posting a series that walks you through how to market with Twitter.
Today I was searching through Twellow and saw http://twellowhood.com so I entered in my location and low and behold I found some fellow Twitterers. So I contacted a few and within a few moments I was skyping with the owner of http://www.gerrykirk.net/. Now this is not a huge blog or anything but it did have some good info and the interesting part was the desire this guy “Gerry” has for growing the awareness of social media in my community.
Now the question might come up to you… what good is that going to do your business if you do not sell anything local?
Well the idea is that you are networking with like-minded individuals and therefore can form accountability groups, share ideas, and grow. It is not about the direct selling to others locally but instead about being able to talk with others that have similar interests.
Now before I go on… YES I KNOW THIS IS NOT NEW!
The problem is I personally have spent so much focus on reaching out globally that I failed to stop and look locally. You see with my business, I do 90% of the work out of my home office. In fact I am closing my downtown office and moving all the employees to their homes. The reason for doing this is my lease was up and it is something we want to try out… since I do not really want to renew the lease where the office is currently located.
Now working out of your home is great but you need face-to-face interaction with others and what a better way than to be doing it with like-minded people.
The great thing about these types of things is it does not matter if you have nothing to share or loads to share… whether you are a teacher or a student. I learn whether I am teaching or listening and it is all about that.
So as a result, I am heading to my first TweetUp here in my Northern Ontario community. If you live around here (which most of you don’t ), I would love to see you there… but there are only three spots left (it’s just a small get together) at http://twtvite.com/2a3do0
Oh and on a side note, this is using a cool service called http://twtvite.com/ which is a great little tool for managing your own tweetups. So if there is not one available in your community… start one yourself.
Note: There is a poll embedded within this post, please visit the site to participate in this post's poll.
Click Here Now to Download “How to Build a Business Not Just a Blog” for FREE and Learn the Right Way to Make Money Online! - Copyright JohnCow.com - All Rights Reserved
Has anyone else tried this? Anyone in London? :) -
June 12, 07:43 AM
"Why am I here?"
Shared by Chris
This is a great question to keep asking yourself, and not just in meeting or work. It's a great question for your whole life!This is a simple mantra that is going to change the way you attend every meeting and every conference for the rest of your life.
You probably don't have to be there. No gun held to your head, after all. So, why are you spending the time?
Do you have an agenda? It might be to change the agenda, or meet someone who will become a client or to learn something that will help you at work tomorrow.
Well, if that's why you're here, tell me again why you're just sitting there? If the only reason you came was to avoid the office, you need a new office. Quick, before the boss decides that for you.
Surely you have a question you can ask the speaker. Surely you have something interesting to say to the person sitting next to you. Surely you can do more than just sheepishly hand someone a business card they have no reason to save or remember or use.
If there isn't a good reason, go home. If there is, then do something. Loud, now and memorable. Productive too, please.
This is a great question to keep asking yourself, and not just in meeting or work. It's a great question for your whole life!
