Custom Search

Thursday, June 26, 2008

Adsense Profits

Adsense profits are determined by several factors that any webmaster using Adsense must know by heart. If you want to know the profits you can make by being an Adsense member, you might begin to ask yourself several questions: Do I know the amount of traffic my website gets? Is the quantity of pages in my site containing enough Adsense ads? What is the click thru rate of my site's pages? Actually, there are even more questions to ask. However, all you have to know is how to enhance your website, which is the simplest way you can do to increase your Adsense profits.

Have you been working with AdSense for a little while and started to think "Why bother? I do everything I am supposed to do and still I'm not making more than the cost of a coffee latte' per day". Well, let me tell you it doesn't have to be that way!

I invite you to look over my shoulder and see how my AdSense earnings just exploded over night! We all know there is not a whole lot you can do with $2 a day, but when your earnings from the same small amount of work start getting up to $500 or more a day, then there is certainly enough to get excited about! If you are ready to listen, watch and learn, I am ready to show you how this can be your reality too!

I'll show you some critical, proven and brilliant easy-to-implement techniques known to only a handful successful internet marketers. Some techniques are so ingenious you will be the first to benefit from them. Wouldn't you like to be one of them?

I'll show you how you can hugely increase your AdSense earnings without even having to increase the traffic to your AdSense pages and importantly, without breaking any AdSense programme policies. Now, I am not the only one who want to show you this. But I am one of few who has a track record and accreditation to prove my claims and recommendations. On top of that I offer you even more profitable advice, for those of you who don't want to stop there but want to seriously take your AdSense business to the next profit level. And this is the most exciting part, why settle for a little when you can have a lot?

Increasing your website's traffic needs some little useful tricks. You must remember that traffic from search engines are important ot keep your site alive. Aside from the fact that it is free of charge, people who would visit your website through the search engine are searching for something, and not just merely browsing the net. To increase your traffic it is better if you use pay per click advertising. It would also help if you post your website link on various forums. You could advertise offline as well but make sure that you give people good enough reasons to go to your website.


In addition, you can increase the quantity of your site's pages that has Adsense ads. You can do this by simply pasting the code to the pages that you want. Remember that the code you must use is the code Google gave you to start your Adsense. Increase the click thru rate by making an even more interesting write-up or article about the services or products your website is advertising; through this you can really catch your reader's attention and loyalty. These are just a few of the easy ways you can follow to increase you adsense profit. Always bear in mind that you only become successful in what you are doing if you take the time to value it.

Monday, June 23, 2008

The 11 Awesomest Games of 2010 year

The 11 Awesomest Games of 2010

2010 should be an awesome year. At least for those of us outside the Bird Flu Plague Zone. And for those of us not fighting in the wars against Iran, North Korea, Syria, China, Iraq and Afghanistan. For us, it'll all be about the games ...

These are the glorious games glowing down at us from the peak of the 360/Wii/PS3 generation, when developers will be making the hardware sing and when every PC will have 8 gigabytes of RAM to play with. Games like ...

1. Mass Driver
360/PS3

"This load of heroin has to be in Philadelphia in 10 minutes. And, Philadelphia is 150 miles away."

"Don't worry. I know just the guy."

Mass Driver is Grand Theft Auto at 1,000 miles an hour. Your character has the magical ability to enhance the acceleration of any boat, airplane, car, truck, tractor, tank or little red wagon to insane, mach-plus speeds, thundering across a game world hundreds of miles wide. Get going too fast and the vehicles can burn up in the atmosphere. The only way to slow down is by smashing through buildings, trees, mountains, other cars, livestock and crowded amusement parks ...

Add in a slow-motion feature to see the looks on your roadkill's faces milliseconds before impact, and you've got a crank-addled adrenaline-junkie game for the discerning lunatic. This could be the game that finally makes Jack Thompson take up arms.

2. Star Wars: Jedi Saga
Wii

First of all, this is real Wii swordfighting. Not that half-hearted "flick to activate sword swing No. 1" Red Steel crap. Real lightsaber fighting, the glowing blade mapped to your Wiimote.

And, it's every lightsaber battle from all six movies. You lightsaber your way right the damn hell through waves of storm troopers, then the boss battle is some famous duel from the movies. Darth Maul, Count Dooku, that one retarded four-armed robot thing with the completely unprotected heart, all of them, leading up to a climactic duel with Darth Vader.

In the bonus levels, you get to switch sides and cut down the good guys.



Us survivors of the Cold War know one thing: If superpower ever meets superpower, everybody in the vicinity is getting fucked up. Therefore, any game that features superheroes fighting that doesn't also feature them knocking down entire buildings with each errant blow, is nothing but filthy digital lie. See THIS VIDEO for evidence:


Further research can be found in the climax of Matrix: Revolutions.

That's why Superhero Brawl gives you 10 city blocks to annihilate. If you want to damage Iron Man, you got to fling his ass through a building ...

... and if you really want to damage him, throw him through the foundation and make the freaking building collapse on top of him. Throw him into a tanker truck hauling rocket fuel, throw him into the core of a nuclear reactor and trigger a meltdown.

Do it right, and the last minute of each fight will look like a nuclear aftermath, smoke and rubble stretching to the horizon.

This is the scale of game Sony implied the PS3 could pull off during their ridiculous hype campaign. Let's see if they can live up to it.


3. World War Omega
PC

This is the Combined Arms Simulator PC gamers have been dreaming about from the first time a shot was fired in anger over a modem. A sprawling world war, a Battlefield 2 but with one gargantuan, persistent map that everybody plays on.

There'll be AI units to do grunt jobs like holding positions and supply lines. There'll be RPG elements like statistics, character growth, and chain of command “guilds.”

And, Normandy-sized invasions with 5,000 players.


Give the Chinese control of one army and the United States control of the other, and we'll fight all of our wars this way. Nobody gets hurt except the millions of neglected girlfriends.


4. Total Kung Fu
Wii

This is for all of us who secretly think those Dance Dance Revolution style rhythm games look like fun but fear they'll threaten our sexuality.

Total Kung Fu has the same frantic, spastic stepping and flailing as DDR ...



... only instead of dance moves, your movements are translated to vicious, bone-crunching kicks and punches.


We're talking lightning-fast blurred fists, '70s kung fu movie-style fighting where punching and blocking is done with the same desperate, heart-pounding frenzy it takes to keep up with the beat in the harder levels of DDR. You wouldn't even need a floor pad, just an extra Wiimote and nunchuck to strap to your ankles.

Also: Online Multiplayer. Yes, it's tough to do for a rapid-fire twitch fighting game. But this is 2010, Nintendo. Figure it out.


5. Hard Cell
360/PS3

Ah, who can forget the first time we directed the guy on the screen to walk across a narrow catwalk suspended over lava, only to have the guy turn to the screen and say, "Eat my fuckmeat, muchacho! In case you didn't know, lava is hot."

Hard Cell is a third-person game where you control an avatar that isn't particularly happy about being controlled. You can see the character and you can give him commands, but he doesn't necessarily agree with your goal.

Doing a good job of not getting your character hurt or killed will make him happier, filling your “Rapport Meter." Filling the meter makes him faster, more responsive, and overall more willing to work with you rather than against you. But lead him into dead ends, forget to take time to find food, fail to look out for his safety ...

You're working with a deep (that is, well-written) and complex character, operating from the most advanced A.I. ever to appear in a game. You'll build trust, you'll become friends.

Which you'll think is great, until the end of the game when you find out you have to sacrifice his life to win. This is an hours-long affair during which he will lie bleeding on the floor, screaming "WHY, DAVID? WHY?!?!?" over and over again at the screen. Did I mention that the guy knows your name?


6. Whipping Boy
Wii

Here's the secret of the Wii. In the markets where Wii Sports isn't included as a pack-in game, and you have to buy it separately, it still outsells Zelda: Twilight Princess. Why?

It's the boxing. Punching something with your actual fist wrapped around the Wiimote is enormously satisfying. It taps into something primal, releases those violence endorphins that fuel all mankind. Hell, even in tennis, the satisfying THOCK! from the Wiimote speaker when the racket smacks the ball, plus the rumble jolting your hand with the impact ... you can just feel the frustrations of the day lifting through the soothing salve of simple violence.

So you take Wii Sports Boxing, add in the most detailed character creation system the hardware can handle (after all, wrestling games have been perfecting this for years). Let me create the exact replica of my old boss, or my neighbor who kicked my dog, whoever. Their voices, too, we'll have a huge range of sound clips and accents to pick from so they sound almost like the real life counterpart. And then, we beat the shit out of them.

The Wi-Fi connection will let gamers somehow download and trade whipping boys, borrowing from people who have made perfect Tom Cruise or George Bush dummies. They can even download user-created custom weapons to beat them with ...

And that's it, that's the whole game. What else does it need? You come home, in a bad mood. You turn on your Wii, you pound your tormentor until you feel better. It'll be the first game to ever sell 50 million copies.


7. Deconstructionist
Wii

Take Whipping Boy even further. Here you work for a demolition company. You got that job because you happen to be a gigantic robot.

Take the Wiimote and nunchuck and guide your crushing robotic hands to tear out walls and roofs and support beams with the satisfying sound of snapping timber and crumbling stone.


It's not just mindless smashing. You've got to take out this building without damaging the ones next to it, you've got to make it fall a certain direction or collapse in its own footprint, etc. Until you get to a level where there's an emergency and you've got to clear two blocks in two minutes, then it is just a mindless, frantic rampage of destruction.

Seriously, you're going to see workplace violence drop through the floor once these bastards hit the shelves. I feel less murderous just talking about it.


8. Killchain
360/PS3

A puzzle game for people who hate puzzle games and love brutal death. In Killchain you are an assassin who has no weapons, and no fighting skill. What you can do, is freeze time.

So, with each level you'll find yourself in a bustling city, then, time will slow until all of the people are frozen like statues. You can then position any person or object, arranged so that once time resumes you'll create a chain reaction of chaos that will ultimately kill the target.

Cut the brake lines on this car over here, make this lady spill her groceries, set this dog so that it runs across the sidewalk, event triggering event in a ridiculously roundabout Rube Goldberg chain of accidents.


By level 12, you're trying to kill a target who's two miles away, on the sixth floor of a locked office building. By level 30 you'll be studying the TV watching habits of your target, realizing he watches baseball every afternoon, then sneaking onto an airfield, reprogramming a plane's flight path so that it crashes into the stadium where his favorite team is playing, the sight of which will give him a fatal heart attack.

Winning will take thought, patience, creativity and the ability to think outside the box. Who says you can't stimulate those things and have grotesque decapitations in the same game?

9. H vs. Z
360/PS3

It starts out as a standard zombie-killing game, you and your strike force beating back the hordes of the undead as they slowly take over the civilized world. You take out the undead, you level up in strength and experience, you get better weapons. But in H vs. Z, if you get bitten, or get bitten enough times, you become a zombie.

And, you stay a zombie. You're now preying on your squad mates, eating their flesh to upgrade your own strength. As a zombie you can "smell" their internal organs so you can pick out the choicest meat needed to upgrade your zombie skills.

The whole time your former mates are begging and screaming your name, saying "FRANK! It's me! Don't you recognize me! FRAAAAANK UGGGGHHhhh ..."

Your game is stored on a locked file on the hard drive. Reset the game, you're still a zombie. You can't change it. Not until you finish the game. Hey, that's life.

10. World of Starcraft
PC

This is the gaming version of the flying car. Everybody wants it, nobody wants to give it to us. It was even the subject of a famous April Fool's hoax on Gamespot.com.


Starcraft stands today as the most compelling fictional world ever created in gaming. The three-way intergalactic war between the humans and the Zerg (insects whose entire technology is organic, from their cities to their flying transports) and the Protoss (a race so highly-advanced and civilized they make the humans look like the Zerg).

I realize that knowing all this makes me some kind of sci-fi geek. But that's OK, because the whole world knows a sci-fi geek is about six steps up the social ladder from a fantasy geek and studies show they have more sex.

That's why there are more of us. We're outbreeding them. Even now, even in the shadow of the Lord of the Rings craze, Sci-fi movies and TV shows outnumber anything starring dragons and sorcerers 3-to-1.

There are 8 million WoW players right now. Give me World of Starcraft, with ships and technology and lasers, and the Zerg splicing their genes to create huge-ass bugs that can bite through tanks ... hell, we'll triple that number.


11. S.N.A.F.U
PC

There's never been a war simulation.

Oh, they've made lots of games like Command and Conquer, but those aren't war simulations. They're "strategy games," fancy versions of Risk, pushing little toy tanks around a game board.

No, I want a war simulation. The ultimate war simulation, where our noble battle against an international terrorist organization quickly turns into a gut-twisting quagmire.

In S.N.A.F.U., you have to worry about civilian casualties, and fuzzy intelligence, and negative media coverage, and funding ...
Rumors will circulate that the single-player mode is, in fact, unwinnable. People will play online, only to find the map objectives changing half an hour into the game, completely against their will.

We've done a whole separate article about this game, HERE

These games came from the imaginations of David Wong and a bunch of PWoT fans.

Mass Driver, Hard Cell and World War Omega were thought up by Haimoimoi.
Jedi Saga was suggested by The Black Knight and I got ants in my pants and probably millions of Star Wars fans everywhere.
Total Kung Fu was sort of suggested by Vermillion.
H vs. Z was the brainchild of spermus.

Year 2010 - Microsoft Important

2010 will be an important year for Microsoft

Every year is important for Microsoft, but the way things are shaping up, I think 2010 will be its most important yet. And although the company has yet to confirm any concrete details about where it's going in the near-term, it has been especially tight-lipped lately about the future of Windows and the Xbox 360. And if you ask me, those two products will be at the center of the company's issues in 2010.

Why 2010? The way I see it, this year is pretty much over for Microsoft. Sure, the company will finally stop the sale of XP (or so we think) and the Xbox 360 will see some minor improvements made to its software, but all in all, nothing too major will happen this year. And considering 2009 will be the year that Microsoft tries to solidify itself as the major player in the gaming and OS markets, it makes perfect sense to suggest that 2010 could be one of the most important years in the company's storied history.

But if it doesn't wake up and realize that it's in some serious trouble with Windows and the Xbox 360 could face problems if it continues to be compared to the Playstation 3, 2010 could also be one of the worst years in the company's history.

2010 will mark a new decade, but it will also mark a new beginning for Microsoft. By then, the days of total Windows dominance may be over and the Xbox 360 may be considered an also-ran in the video gaming space. Beyond that, if the company continues to flounder in the online industry, what's left for the once-powerful tech firm? Suffice it to say that 2010 could be the year that makes or breaks Microsoft.

Windows

Regardless of where Bill Gates stands on the issue, Windows 7 won't be coming out in 2009. Simply put, Microsoft has too much invested in Vista and needs more time to make it work before it can be replaced by the operating system's follow up. Beyond that, it could be an even greater blunder if the company released the new OS next year considering the possibility of a modified ecosystem in the OS market: the threat of Apple and Linux and the online component that we've been hearing about for so long.

But if Vista doesn't improve considerably over the next two years and vendor support doesn't start to pick up, Microsoft will be forced to pick up the pieces and get Windows 7 out the door. And let's also not forget that the company has been more than willing lately to mention the new OS in passing even though Vista has only been out for a short while.

I simply don't see Vista gaining much ground over the next two years. Vendors are still quite unhappy with the product and Microsoft admitted itself that there are a number of issues with the OS that still need to get worked out. And considering the fact that Ballmer has hinted that an XP reprieve could be possible, should we really believe Microsoft when it says that Vista is its future?

The way it's shaping up, 2010 will be the year Microsoft will try to increase Windows' viability. And while I'm not convinced that the company will do it, it simply doesn't make sense to say that it can happen this year or next with Vista. Microsoft will do what it can over the next two years to revive Vista and after failing or realizing that outside pressures from Apple and maybe even Linux are becoming a bit too much, the company will use 2010 as the year to unveil Windows 7 and try to offer a more compelling product.

Xbox 360

I'm a firm believer that when it's all said and done, Microsoft's Xbox 360 console will win this generation's battle. That said, my prediction is rooted in my belief that Microsoft knows what it's doing with in its gaming division and will update the product as needed to address the concerns it's hearing loud and clear from consumers.

As I mentioned, I simply don't see Microsoft doing too much with the Xbox 360 this year. And why should it? The console is still selling relatively well at its current price and the threat of the Nintendo Wii destroying its competitors is diminishing each day. But 2009 could be an entirely different story altogether.

So far, Microsoft has said that it will not install Blu-ray into the Xbox 360 even though Sony is using it as a major selling point in the Playstation 3. And considering the chances of Blu-ray having a major impact in 2009 are slim, there's really no reason for Microsoft to install it and play nice with Sony that year.

But what if Blu-ray becomes a success in 2009 and the de facto leader in entertainment by 2010? If that happens, wouldn't Microsoft be forced to either update the Xbox 360 or rush its production cycle and release a new console with updated graphics and a Blu-ray drive installed?

In other words, Microsoft may feel like it's in the driver's seat right now, but when taken at face value, it's actually in a defensive posture and will need to wait and see what develops in the entertainment industry before it can accurately make a move on the gaming side. And let's face it -- the chances of anything major happening with Blu-ray in the next year are slim considering the price of players and a slew of other issues that the Blu-ray Association has yet to overcome. But if it does, as some have said it will, Microsoft will be forced to make a move in 2010 so it doesn't look like the also-ran.

2010

The importance of 2010 is not arbitrary. When I considered the current state of affairs at Microsoft and took a look at the industry as a whole, 2010 quickly jumped out at me. When it comes to Windows Vista, there's little chance that Microsoft will do much other than try to repair its reputation in the OS space before 2010. And if it doesn't succeed or it fails to attract the kind of customer base it needs while Apple continues to update its OS, it makes perfect sense for Microsoft to follow suit in 2010.

On the Xbox 360 front, Microsoft is being controlled by external factors. Will Blu-ray be a success? Will people be more willing to buy a PS3 because of Blu-ray? Will the Xbox 360 falter because of its lack of Blu-ray support? Certainly none of these questions will be answered next year, but by 2010, Blu-ray will either be a major success or follow LaserDisc to the media junk heap. If it's the former, Microsoft will be forced to react and probably try to save its console and maybe its entire gaming division by doing something in 2010.

But in the end, no one is sure what Microsoft has up its sleeve and quite a few things can happen between now and 2010. But if you take an objective look at the current state of affairs, I doubt too many can say that 2010 isn't one of the most important years in the company's history. If it succeeds in its endeavors that year, it may have a business strategy that can carry it through the next decade. If it fails, ruin may eventually hit Microsoft by the end of the next decade.

API Code

Google's ad revenue sharing solution

Only websites with over 100,000 daily page views across user pages are eligible to participate in the AdSense API program. If your site does not meet this requirement, if you need read more go to google adsense policies.

The Google AdSense API is ideal for developers whose users create their own content through blogging, web publishing, forum/wiki/community creation, or any other application where substantial web content is generated.

Share revenue with your users. You choose how you want the AdSense revenue on user-generated pages to be allocated between you and the users creating the content. In addition, you will earn referral bonuses for referring new users to AdSense.

Engage your community. By allowing users to share in the revenue generated by their actions on your site, you are encouraging them to be more engaged with your program. Users are motived to create more high-quality content and to be more active on your site, leading to increased adoption and traffic.

Fully integrate the user experience. The entire AdSense process, from AdSense account creation to placing ads and monitoring performance, can be seamlessly integrated into the existing look and feel of your site.

JAVA Reflection API

In this feature article, Ian Darwin (author of O'Reilly's Java Cookbook) provides examples of Java's beautiful Reflection API, which allows your code to reach down into the JVM and do some of the same things that the Java runtime does: discover and load class files, instantiate classes, discover and invoke constructors and methods, discover and set/get fields, and more.
Mirror, mirror, on the wall...

No, this is not about me looking at myself, or even my own code. Rather, it's my nomination for the Beautiful Code API. There is plenty of beautiful stuff in the Java SE API, but to my mind one of the most sublime pieces is Sun's Reflection API. While some dynamic languages let you do what Reflection does, I'm not aware of any other compiled, strongly-typed language (other than, perhaps, Java knock-offs like C#) that have anything like it.

So what is Reflection? Also known as Introspection, the Reflection API allows you to operate on classes and objects in ways such as the following:

* Load a class file into memory at run time, knowing only its name;
* Given a class, examine its methods, fields, constructors, annotations, and so on;
* Given a class, invoke constructors and methods;
* Given a class and an instance, access fields;
* Given an interface, create proxies for it dynamically.

A class named Class

It might seem strange to have "a class named Class" (maybe no more so than creating an object of class Object, I guess). But java.lang.Class has been around since the earliest days of Java; at least JDK 1.0, so I guess most of these uses were planned even then.

Time for a code example. Suppose you've invented a new API called a Showlet, sort of a cross between an Applet and a Servlet. You think lots of people will want to write their own Showlets. Create an interface for it:


package showoff;

public interface Showlet {
public void show();
}

Publicize it (this step omitted from this article; you're on your own). Now whenever somebody wants to write a showlet, they just implement your public interface. Say I write one called IanShow:


package com.darwinssys.jellybeans;
import showoff.Showlet;
public class IanShow implements Showlet {
public void show() {
System.out.println("OK, here's what I show: A234JQ");
}
}

Nothing very elaborate, but enough to show (so to speak) the operation. Your code will need to load this class, even though my class was written after your class, so you can't have a compile-time dependency on my class. However, to use it is no problem:


public class MyBigApp {
public static void main(String[] args) throws Exception {
String className;
// stub getting name of user-defined class from config file
className = "com.darwinsys.jellybeans.IanShow";

// Create this user's ShowLet
Class c = Class.forName(className);
Showlet s = (Showlet)c.newInstance();

// Now we have a showlet, make it do its thing:
s.show();
}
}

The whole magic part is the two lines of code below the comment "Create this user's Showlet". The first line uses the Class class' static forName() method to dynamically load the IanShow.class file from your classpath into the JVM. At this time the class file will be found, inspected, verified, and loaded into memory; after this it is treated pretty much like any other class in your application. The second line creates an instance of this class. The main requirement for this to succeed is that there must be a public, no-argument constructor in your class. Since this is the default constructor in Java, it's a safe bet. But in case the user messes up, one of a variety of Exceptions is just waiting to be thrown. See the JavaDoc, or compile this code in an IDE with the throws clause commented out. In a real "extensible application" model, you'd want to catch some of these and give better warnings.

One of the most annoying problems is ClassCastException, which would happen if the user provided a class that doesn't implement the Showlet interface. This would occur after the newInstance() call but before the assignment to variable "s". To prevent this exception, you'd normally use the built-in instanceof operator, but that requires the class be known at compile time. There is an isInstance method in the Class class; a more cautious version of the Showlet creation is thus:


Class c = Class.forName(className);
Object o = c.newInstance();
if (o instanceof Showlet) {
Showlet s = (Showlet)c.newInstance();
...
} else {
System.err.printf("Sorry, class %s is not a Showlet%n",
className);
}

What does all this give you? An extension or plug-in mechanism that is completely independent of user-defined classes. As long as they correctly implement your published interface, they will load and run.
Plan B

If for some reason you prefer inheritance, make Showlet be an abstract class with show() an abstract method. The instance classes then extend this rather than implement it. Everything else is pretty much the same.
Getting to Class

Class.forName() is one way of getting a Class descriptor, and it's familiar to anybody who's written a "JDBC 101" program (even though it's not how you get your database driver in real life). There are two other ways of getting a Class descriptor.

If the class whose descriptor you want is known at compile time, just say typeName.class. The "class" keyword in Java, if it appears after a "." with a type name before that, generates an expression of type "Class" for the given type. So String.class returns the same as Class.forName("java.lang.String"), for example.

Finally, if the class is not known but you have an object of the class, you can ask it for its class.


Class c = someRandomObject.getClass();
println("Object is of class " + c.getName());

What does this give you? One way or another, you should now be able to get a Class descriptor for any class in a Java program.
MyJavaP

The standard JDK has always included a program called javap, the Java printer. Javap has two main functions: it provides a quick view of a class' external structure, and it provides a detailed dump of a class' internal byte code. The latter is beyond the scope of the Reflection API; you would have to use a byte code library such as the Apache Byte Code Engineering Library (BCEL). The former, however, can easily be implemented using Reflection. When run against java.lang.Object, the Java SE implementation produces this output:


Compiled from "Object.java"
public class java.lang.Object{
public java.lang.Object();
public final native java.lang.Class getClass();
public native int hashCode();
public boolean equals(java.lang.Object);
protected native java.lang.Object clone() throws java.lang.CloneNotSupportedException;
public java.lang.String toString();
public final native void notify();
public final native void notifyAll();
public final native void wait(long) throws java.lang.InterruptedException;
public final void wait(long, int) throws java.lang.InterruptedException;
public final void wait() throws java.lang.InterruptedException;
protected void finalize() throws java.lang.Throwable;
static {};
}

I wrote a simple clone of javap, called MyJavaP. An earlier version of this was contributed to the Kaffe project. The output is as follows:


class java.lang.Object {
public java.lang.Object()
public native int java.lang.Object.hashCode()
public final native java.lang.Class java.lang.Object.getClass()
protected void java.lang.Object.finalize() throws java.lang.Throwable
protected native java.lang.Object java.lang.Object.clone() throws java.lang.CloneNotSupportedException
public final native void java.lang.Object.wait(long) throws java.lang.InterruptedException
public final void java.lang.Object.wait() throws java.lang.InterruptedException
public final void java.lang.Object.wait(long,int) throws java.lang.InterruptedException
public boolean java.lang.Object.equals(java.lang.Object)
public java.lang.String java.lang.Object.toString()
public final native void java.lang.Object.notify()
public final native void java.lang.Object.notifyAll()
}


As you can see, it misses some details, and the static code block. But, for a simple implementation (about sixty lines), it does not badly. The core of the implementation is shown in these twenty lines of code:


Class c = Class.forName(className);
System.out.println(c + " {");

int mods;
Field fields[] = c.getDeclaredFields();
for (Field f : fields) {
if (!Modifier.isPrivate(f.getModifiers())
&& !Modifier.isProtected(f.getModifiers()))
System.out.println("\t" + f);
}
Constructor[] constructors = c.getConstructors();
for (Constructor con : constructors) {
System.out.println("\t" + con);
}
Method methods[] = c.getDeclaredMethods();
for (Method m : methods) {
if (!Modifier.isPrivate(m.getModifiers())) {
System.out.println("\t" + m);
}
}
System.out.println("}");

Membership Lists

Suppose you want to become a famous Java author by creating a big fat book full of API cross-reference. Knowing there are new releases of Java SE every 12-18 months, do you:

* a) Read the javadoc, and type up a huge document with all the information for each class, or
* b) Write a program that extracts all this information mechanically, and sends it direct to your typesetting program?

If you answered "a", give yourself zero points, and thanks for playing! The correct answer is of course "b". In fact, using classes from java.util.zip along with Reflection makes this whole thing pretty easy. Once you have a Class object, there are methods in it with names like getConstructors(), getFields(), getMethods(), and so on. Each returns an array of descriptor objects, e.g. Constructor, Field, Method. These classes in java.lang.reflect (and their parent class Member) provide detailed information about one member in the given class. For example, a Method object contains the corresponding method's name, visibility, argument list, and so on. If a method is overloaded, each overload will return one Method.

The basic idea for the cross reference program, then, expressed as pseudo-code, is:


for (ZipEntry entry : new ZipFile(name).entries()) {
if (entry represents a Class) {
Class c = Class.forName(entry.getName());
for (Field f : c.getMethods()) {
print a field;
}
for (Method m : c.getMethods() {
print a method;
}
}
}

Of course, the real code is a bit more complex. And, in fact, I wrote it with the view that I might want to re-use parts of the code, so the outer loop and the "if entry represents a class" logic are in the abstract class APIFormatter; the logic of what to do with a given class is deferred to the template method doClass() in a subclass. The standard example is CrossRef, but there is another usage example in the JUnit test case APIFormatterTest. Finally, CrossRefXML extends CrossRef and overrides some of the output methods to output an XML document instead of a text document.
JavaBean Introspector
Several APIs use classes from the Reflection API. The JavaBeans API (java.beans) was both designed as a simplification layer to make it easier to use reflection for the less-ambitious task of getting an object's list of "properties" - fields that have setter/getter method pairs- and hence to make it easy for GUI builder tools to discover information about "Java Beans". The spec included the now-well-known setter/getter accessor pattern, requirement of a no-argument constructor, and the optional BeanInfo configuration file. Sun hoped and expected that tool building companies would produce GUI builders (based on JavaBeans) that would compete with Visual Basic. Arguably they have done so, in tools like Eclipse and NetBeans with their respective visual builders.

The Introspector is the main class you need to know. Its getBeanInfo() method takes a class name and returns a general-purpose BeanInfo object. This represents the list of properties either exposed by the bean or specified in the eponymous configuration file.
A new methodology - Dynamic Method Invocation

If you have a Method descriptor, you can invoke that method on any object of a class that contains it. Just call the Method's invoke() method passing the object (you can pass null if you're invoking a static method), and the argument list packed as an array of Object. Assume you are given class X containing this method:


public void work(int i, String s) {
System.out.printf("Called: i=%d, s=%s%n", i, s);
}

To find and invoke this method dynamically, given an instance of it called "x", all you need to do is:


Class clX = x.getClass();

// To find a method, need array of matching Class types.
Class[] argTypes = { int.class, String.class };

// Find a Method object for the given method.
Method worker = clX.getMethod("work", argTypes);

// To invoke the method, need the invocation
// arguments, as an Object array.
Object[] theData = { 42, "Chocolate Chips" };

// The last step: invoke the method.
worker.invoke(x, theData);

By itself this is a bit tedious to code, but it is background for the next few sections.
Dynamic Proxy and AOP

The Proxy pattern is well known: one object stands in for another. A Proxy can be created in Java using an interface and two classes, the "real" implementation and a surrogate or wrapper which implements the same interface and ultimately forwards each method call through to the "real" implementation. For example, if I want to create a Proxy for the Showlet example above, say, to verify the user's credentials before passing control to the provided Showlet, a do-nothing proxy impementation can be as simple as this:


public class ShowletProxy implements Showlet {
Showlet realObject; // set in constructor

public void show() {
realObject.show();
}
}

In real life the Proxy can do all sorts of other things, such as testing security, logging method calls and their parameters, network calls (used in RMI and EJB), and so on.

A more complete hand-written Proxy might look like this:


public class ShowletProxy implements Showlet {
Showlet realObject; // set in constructor

public void show() {
final String className = realObject.getClass().getName();
if (securityOK()) {
log("About to call " + className);
realObject.show();
log("Completed " + className);
} else {
log("Security - rejected " + className);
}
}
}


The downside of this is that it is tied to a particular interface, namely Showlet. What if you want to proxy ten, a hundred, or a thousand classes? It just doesn't scale. You need a way to write the proxies dynamically. That is, of course, the dynamic proxy mechanism. Introduced to Java in Java SE 1.3, the dynamic proxy mechanism in class java.lang.reflect.Proxy allows you to create a proxy to any interface dynamically, given only the interface and a general-purpose InvocationHandler. The InvocationHandler is where you specify what to do before and after the method invocation. An InvocationHandler allows you full control over the actual invocation of methods in the "real" object that is being proxied. There is only one method in the Invocation handler interface; a typical implementation might look something like this:


class MyInvocationHandler implements InvocationHandler {

private Object realObject; // set in Constructor

/**
* Method that is called for every call into the proxy;
* this has to invoke the method on the real object.
*/
public Object invoke(Object proxyObject, Method method, Object[] argList)
throws Throwable {
log("About to call " + className + "." + method.getName());
Object ret = method.invoke(realObject, argList);
System.out.println(" Completed.");
return ret;
}
}

The InvocationHandler's invoke() method is where the dynamic proxy calls your code; the "method.invoke()" is where your proxy calls the real object's method. The names are the same, but they are different steps along the chain, and the argument lists differ. Although the InvocationHandler's invoke() method is passed a reference to the dynamic proxy, it is not passed an reference to the "real" object, so this has to be provided in the class, either by a Constructor or (for greater flexibility) in a set method.

To create the dynamic proxy, use the Proxy class' newProxyInstance() method, which requires a ClassLoader (see below), one or more interfaces that are to be handled (as an array of Class objects), and a reference to the InvocationHandler:


Showlet generatedProxy = (Showlet) Proxy.newProxyInstance(
Showlet.class.getClassLoader(),
new Class[] { Showlet.class }, handler);

Because it's a nuisance to create the InvocationHandler and the Dynamic Proxy, this is normally delegated to a Factory method. Factory is another well-known design pattern used throughout Java: a class makes up objects for you (see for example Locale.getInstance() and Calendar.getInstance()).

In the code download you will find a class called DynamicProxyFactoryDemo which implements a Factory for the proxies; note that the main program now has no idea that proxying is going on; it deals only in the interface (and the factory).


public static void main(String[] args) {

Showlet showlet = ShowletFactory.getInstance();
System.out.println("Showlet Proxy object is " +
showlet.getClass().getName());
System.out.println("All done");
}

What does this give you? With Dynamic Proxy, you can create one proxy that will proxy all (or selected) requests for a huge number of methods on a large number of objects. However, the proxying has some setup complexity, so it's best if you can abstract object creation into the factory.
Aspects of change

A more generic way of handling this notion of proxying is to use programming language constructs to help automate it. This has lead to the rise of "Aspect Oriented Programming", or AOP. AOP uses some interesting vocabulary, but an "Aspect" is some function (such as logging or validation) that needs to applied automatically to a range of classes. Two important AOP implementations are Aspect/J (original site at PARC; current site at Eclipse.org) and the Spring Framework AOP. Spring provides a very general-purpose Bean Factory that is configured entirely by a configuration file, and a large array of pre-written beans. Useful in this context is their AutoProxyFactoryBean, which will automatically apply proxying to an arbitrary number of methods based on several seclection mechanisms, including one that uses Regular Expressions.

Since I'm sure there will be a BC article on Spring, I won't steal this article's thunder, but if you want a peek meantime, check out the Spring Framework site.
ClassLoaders and SecurityManagers and more, oh my

One topic I've not covered here is the notion of security. Java provides a SecurityManager class that can be used to limit what classes can do. A ClassLoader is, of course, the object that is responsible for loading classes. Java provides a default ClassLoader, but you can write your own. The topics of ClassLoaders and SecurityManagers are important, but this article is already at its maximum length. I urge you to learn about these topics, especially if you are going to be using dynamic classloading of classes provided by other, possibly untrusted, entities. These topics are discussed in my Java Cookbook (O'Reilly, 2e 2004) as well as in the Sun-provided documentation.
Conclusion

The Reflection API is truly sublime, because it allows your code to reach down into the JVM and do some of the same things that the Java runtime does: discover and load class files, instantiate classes, discover and invoke constructors and methods, discover and set/get fields, and more. In this Beautiful Code, I've shown some real-world code that uses this beautiful API.

Keystone Websites

Creating a website need not be an expensive and complicated process. Catering to the needs of individuals and small businesses is difficult for large web design houses, because building a smaller-scale website rarely yields enough to cover their overheads. Unfortunately, many of the small-scale web design shops lack the kind of talent needed to build a site that looks professional and functions properly.

Keystone Websites has been created specifically to fulfill this need. We prefer to work with you on a one-on-one basis to create your web presence, tailor-made to your budgetary requirements. Our desire is to build a relationship, because a website grows with your needs and ambitions, and requires continuous nuturing. We will employ the latest web technologies and utilize the most up-to-date standards to implement a solution that is elegant, accessible, and secure.
To help demystify the web design process, we have created an easy-to-follow guide that describes what happens as we build your website. The guide is supplemented by a comprehensive glossary of terms, for your convenience. An understanding of the basic process gives you the power to shape that process to suit your needs. But just as there is no need to understand how a car engine works to be a driver, there is similarly no need to understand the mechanics of a web page to be a useful contributor to the design process. Our goal is to empower you with the ability to have as much, or as little involvement as you like.
Digital Keystone's mission is to be the leading provider of information solutions and services.
Our goal is to increase our clients' efficiency and profitability by making business processes easier to conduct and manage.
Our success will yield sustainable prosperity to staff and our associates
The W3C note on XHTML media types is not very specific about how XHTML should be served. Use of the word "should" creates ambiguity, which may be why Ian Hickson felt compelled to write about it. For your convenience, we have re-worked a table from the document's summary

US Mower:
Based in Washington state, US Mower is a supplier of industrial mowing equipment. Keystone Websites was tasked with modernizing the existing website. Out went the code-heavy pages created in Microsoft Publisher, to be replaced by lean, hand-coded XHTML. The new site has an improved structure, together with substantial performance gains and a corresponding decrease in overhead.



The existing visual design was fairly robust, so Keystone Websites created a new look that was an evolution of what came before. The red, white, and blue theme was carried over to complement the company's logo, which itself was slightly reworked to give it a modern feel. A special page was created to act as a host for various product video clips. The total development time for the site was about 2 weeks, and all communication between the client and Keystone Websites took place via email.



US Mower distributes products through an extensive network of dealers around the United States and Canada. To assist the user, the dealer in the directory has links to their respective websites, as well as links to Google-based location maps.

Just Photo:
On this project, Simon Jessey of Keystone Websites was given a functional specification for a website that had to provide information and photography services for a photographer based in Hamburg, PA. The specification was a document containing information on style, color, content, and structure. Keystone Websites worked closely with the client to produce the desired result, from the initial visual design concept to the testing and deployment.



The site is hand-coded using a combination of HTML, CSS, and Microsoft's ASP (Active Server Pages) technology. Sophisticated CSS float techniques were used to create the gallery pages, and a fully-functional control panel was built so that the client could alter many of the site's dynamic features. The total development time of the site was 5 weeks.

The Queen Bean Coffee Bar & Cafe:

The Queen Bean Coffee Bar & Cafe is a collaborative effort. Simon Jessey, senior designer at Keystone Websites, worked with a small group of talented individuals to produce this dynamic website. The group was given a brief to design a site for a small, Pennsylvania-based coffee bar from scratch. The site had to be built using Macromedia's ColdFusion server-side language, and provide E-commerce capabilities with the PayPal shopping cart system.

The site features a welcoming Flash animation (delivered within a pop-up), a Flash-based "menu", and a fully-featured control panel that enables the client to alter any dynamic feature of the site. Total development time was 10 weeks, including client consultation and liaison.

Sunday, June 22, 2008

Optimize Adsense Legally

Thanks to adsense, blogs, rss feeds and their listings -- not to mention an arsenal of free types of advertising -- it's possible to make a very good income without spending a penny and with minimal effort. The trick is to optimize for it.

PLEASE NOTE: Though adsense may have originated with Google's system, there are many other adsense-type programs available, all of which are as viable -- some even more so -- as theirs. The information included here applies to most of them.

While everyone else is busy optimizing for search engines, by optimizing for adsense, a site can feasibly pull enough traffic that simply clicks on the ads to forget about other forms of sales.

However, bear in mind that most adsense TOS agreements prevent any unfair or "fraudulent" clicking, even so much as a note saying, "click here to support this site," which risks banishment by most adsense companies. This, of course, is to protect those adwords customers who pay to have their ads displayed. It is they who are robbed (not the companies) when an ad is clicked irresponsibly. Furthermore Google, for one, can track clicks effectively enough to detect any artificial or irresponsible clicking will garner any income received this way.

With that in mind, by understanding how adsense-type programs work, one can optimize a page, legally, to create a substantial income. And while guidelines are designed primarily focused on adsense, many of these strategies will increase a sites' general revenue as well.

1. TOP SEARCHES

The first step is to design a site around the top searches. There are various tools (keyword selectors and zeitgeist, for example) that help gather this information. Of course, there is also the "niche marketing" school of thought, i.e., to find a smaller group that has less page-per-click competition. In this case, the ideal is to find a large audience-small page ratio. But after more than a year of marketers scouring the web for them, finding one is rare and searching for one can take a LOT of time. Not hours or days, but weeks or months.

2. HIGHEST PAYING KEYWORDS

Lists of these can be found simply by searching the internet. Of course combining the highest paying adsense keywords with Top Searches may make a very strange mix. Afterall, the top search (at the time of this writing) is Britney Spears while the top-paying words relate to mesothelioma and asbestos cancer. So, unless Britney Spears speaks out on mesothelioma, there's little chance these could be combined legally*. But, by looking down the lists there are more feasible combinations. The main thing to understand is it's only a combination of the two (high-paying keywords & top searches) that will bring enough traffic to garner any measurable LEGAL income from adsense.

3. PLACES, PLEASE

Placing the ads prominently on the site is a no-brainer, though some marketers still tend to hide them toward the bottom of the site. Another TOS factor, too, is a content-to-ad ratio that adsense programs used to insist on, but seem to be slipping. Generally the policy was no more than two banner ads per page though many sites that end up at the top of searches seem to flaunt this rule. But who knows how long they last, too. Traditionally, putting one banner across the top, just below the title, and one "skyscraper" down one side, with content in the middle is the best.

4. MULTI-PAGE IT

One pase allows for 2 ads, but more ads can be placed on each additional page on the site. For those lacking ideas for additional pages, the simplest page would be a separate contact page, as well as an "about us" or testimonial page, all of which are viable additions.

Incidently, it's ironic that so many marketers create mile-long splash pages rather than a group of pages and never add one adsense ad to them. As if, by doing this, it will garner more sales, when the truth is, they sacrifice as much as gain because these pages are rarely indexed and annoy visitors as many as they attract, simply because of their set up. Understand this: adsense is a way to profit from EXIT traffic, something that WILL occur at one point or another, no matter how wonderful the page.

5. HIGHLIGHT OR BLEND

Some prefer the adsense to blend into their site, almost hiding it from visitors. But this diminishes its effectiveness. Rather, by highlighting it, visitors will be more aware of it, allowing it to stand out. Of course, we'd all prefer our visitors to stay at OUR site, buy OUR product, etc. But the fact is, many won't. Isn't it better to gain something from their departure?

6. ADSEARCH

This feature is only available from some of the larger adsense programs. If it is available, placing it at the bottom of a page offers the visitor the convenience of doing a search without having to first go to the SE. Of course, many SEs and browsers offer toolbars that diminish the effectiveness of this. But adding it will create another exit point that is to your advantage-- and seems like a service, too.

7. AFRAID OF COMPETITION?

Some adsense programs offer a "block competition" option, one in which specific sites may be barred. However, to believe it's possible to effectively block ALL your competition is naive. Though it may at first seem outrageious to help advertise for the competition, again, at least one will gain from their advertisement (and, for those who need payback remember: the competition is paying you).

Each of these strategies increase a site's adsense revenue. By using all of them, the adsense ads will create a steady revenue stream which will increase with the site's traffic stream.--mo

* Also, this combination uses Google's rates, which may vary in other adsense programs.

Payper Clicks Returns

There is no doubting the success of Google's Adsense program. Even Yahoo! and Kanoodle have joined in on the game, offering to join publishers with advertisers. Given the right circumstances, its a win / win situation for both.

There have been many sites that promote Top Paying Keywords and how if you add these keywords you can instantly improve your Adsense revenue. However, if you really want to see a dramatic increase in pay per clicks, you need to ensure 2 very important areas are addressed. They seem very obvious, but many site owners miss the opportunity to attract higher paying ads simply because they ignore these two areas.

Optimization

Many "would be" web designers decide to build a site around the highest paying keywords, yet, forget to optimize their site around a specific keyword. Instead, they forget the basics of how to properly create a title tag, page description, keyword density and having clean search engine spider friendly code.

Remember, its the source code that the Adsense and Kanoodle programs are using to decide what ads will appear. If your top 2 keywords are "insurance" and "downloads", you may find that you end up with ads regarding "insurance downloads" which of course will not pay much.

Also, having a high keyword density score for the keyword can get you into trouble with the search engines (specifically Google). Keywords spamming is never a good idea. Optimize your page and you will search more hits to that page and not confuse the bots that create the ads for you.

Content

This is by far the most important and most missed tips. If you are going to include top paying keywords on your site, remember, if you want to attract high paying ads, you need to be selling your visitor on what your advertiser wants. Your content should sell to the visitors needs. Why should your visitor consider car insurance? What are the benefits of car insurance? Where can they get the best quotes? If you pique the interest of your visitor, they are more likely to click on your ads than if they feel that they are not getting the information they came to your site for in the first place.

Your content should have a specific flow to it. If you start jamming keywords into your content, your visitor will automatically suspect that you are trying to deceive them. Once you do that, they are gone! Why waste your visitors time after working so hard to get them to your site in the first place?

Well optimized, focused content will always produce better, higher paying ads. That is why you are a publisher: you want those high paying ads on your site. What use though are those high paying keywords if your content doesn't pique your visitors curiosity? Be passionate about your content, and the click through rates will skyrocket!

Its also important to make sure that you are using the right number of ads per page, but that is for another article!

Simple Ads Makes Better

Newsletter advertising has been getting a bad rap lately. Around every corner you can find someone complaining about how it doesn’t work. But when you ask them if they’ve tried it, most say no. The others who have, had NO idea what they were doing. Today we’re going to talk about exactly what kind of solo ads sell and what factors are important. Let’s start by going through the process of publishing a solo ad.

1. Choose a newsletter/ezine to publish in. 2. Write the solo ad 3. Write an effective title 4. Design the website where your visitors will go...

1. Choose a newsletter/ezine

Extremely important. You must do your best to choose the most targeted group possible. You must choose a “good-sized” list. Also, the group must be responsive.

The best searching technique is to go to the websites in your niche market that are popular and find the links that say “advertising” or “advertise with us.” It’s normally quite self-explanatory from there...

I personally recommend going for no newsletter with less than 5,000 members – unless they are extremely targeted and very responsive. To determine how responsive a group is – ALWAYS ask or look for testimonials from others who have advertised before. If the publisher is unwilling to provide these – don’t waste your time promoting there.

2. Write the Solo Ad

One word – story. That’s the BEST way to sell someone something – tell them a story. Most people are so skeptical now every time they receive an e-mail that the only real way to warm up to them is to tell them a story.

Start talking about how you went from a “nothing” to having this great success. Or, how you went from not knowing anything about “such and such” to now becoming an expert.

The next tip is to give them a “feeling” of what they are about to learn – *start* to teach them about the topic and then say “O...to learn the rest, click here.”

I’ve learned that the best solo ad never sells a thing, it only pre-sells and warms up to the reader. I guess this is where the theory of “Pre-Sell” prevails.

3. Write an Effective Title

Quite possibly the MOST important part of your entire campaign. Don’t underestimate the readers of the ezine. They *know* when the regular issue comes and when the solo ads come. They’re already skeptical. If you want to catch their eye, you better have a title that really appeals to them.

Here are some good title tips:

A) Use Numbers - ex/ How to Get 2000+ Targeted Visitors A Day instead of “How to Get Traffic”

B) Be Specific – Your title should reveal EXACTLY what you talk about…

C) Keep It Short – The shorter the title, the more it will be read…

D) Avoid SPAM words – Don’t use “FREE” “MONEY” – These words are turn-offs now…

If you can write an effective title, you’ve one half the battle already!

4. Design the website where your visitors go...

The BIGGEST mistake (in my opinion) is to simply send the traffic to your main site.

I recommend you set-up a SEPARATE website for THAT particular ezine. Make that visitor feel as if he/she is VIP for coming in from that newsletter. Greet them with a “Hey! Glad you could make it from “INSERT NAME HERE” to our site!This makes your site more personal and the visitor feels more comfortable reading your message.

A quick tip for your website: Always talk about the success YOU had with the program you are selling – tell a story and reveal how well YOU did with it. You will see a HUGE increase in sales.

Once again, people want stories and they want storied about YOU.

If you apply these four factors the “right” way, you’re bound to do extremely well with Solo Ads. Personally, I make thousands a month selling my consulting service using Solo Ads – so, no one can tell me they don’t work.

Adsense For Bigginners

Google Adsense is a way for people who publish information to make extra income. Google Adsense offers ads that are based on content in the form of columns of ads, ads with pictures and text link ads. Google Adsense also offers a way to refer clients to them which then gives a credit to your account.

Signing up for an account may seem intimidating at first, but the system is so user friendly that it literally walks you through the process. After signing up for the program, you will select what type of ad you would like to display on your website. A very simple format has you simply choose whether you want text ads or ads with pictures. You also get to choose what you want your ad to look like by customizing colors and size. You do not need to know special code; you simply click on the links next to each box and preset what you want your ads to look like. Do you want them to match your site? Simply choose your colors. Do you want them to blend seamlessly? Choose a border color that matches your website colors.

After selecting what you want your Google Adsense ads to look like, they will supply a piece of code that you will then insert into your website. The code simply needs to be cut and pasted in your page where you want it to show.

Once the ad is in place, every time somebody clicks on your ad it registers. You need to accumulate many clicks in order for it to be profitable, but be patient and play with the placement and types of ads you use, and eventually you will see those profits rising. Google Adsense will pay you when you reach at least $50.

Google Adsense has made a lot of people a lot of money. When you are just starting out it will be a slow learning experience. Don’t hesitate to go back into your Google Adsense account and try a new look for your ads.

While you are in your account you will be able to access how many times your ads have shown, and how many times people have clicked on them. It also shows you if you have made money.

Google ads from Adsense can be applied to regular websites as well as to blogs. Many bloggers have now added them and are doing quite well with them. One such blog is over at Problogger.net. This is a great resource on finding ways to make money from your blog.

Google AdSense is a great way to supplement your web site's income! So what exactly is Google AdSense? This is a program run by Google that pays you per click. You sign up for free, paste a little bit of code on your website and every time someone clicks the links on your site, you get paid a certain amount per click.

Some clicks are worth higher than others depending on the "keyword" that the ad is targetting. What does this mean? Google AdSense are "contextual based" ads, meaning that they display the links for people to click on based on the context of your website.

For example if you have a website about "tennis" then the ads Google AdSense will display will be all about tennis. So if the text on your site that Google is basing their AdSense ads on is for "tennis balls", then the keyword phrase "tennis balls" may be paying higher per click than "tennis racket".

Here are a few tips to get better earnings with Google AdSense:

1. Don't make your ads look like ads! People are so "banner blind" now that they'll skim right over your AdSense ads if you make them look too much like actual ads. By removing the background and the border of your ads and making them blend in with your own site's background, it will help your sales tremendously!

2. Don't click your own links! It may be tempting to earn that potential .03 for yourself but in the long run it's not worth it! Google has ways to detect "click fraud" and you WILL get caught and you'll forfeit all of your earnings thus far.

3. Put your ads close to your content! Don't put your content way up at the top and then put your AdSense ads waaaay down at the bottom. You won't get very many click throughs. Make sure your web content is actually integrated with your ads.

4. Have relevant keywords on your site! If your site is about "web site traffic" and you just keep mentioning the word "traffic" by itself, your Google AdSense ads may display ads for rush hour traffic, or traffic jams. Which has nothing to do with your website. Keep your ads relevant by giving your content good, thorough keywords.

If you just apply these simply and effective tips, you WILL see an increase in your Google AdSense revenue! While it's best not to put all your eggs in one basket and have AdSense as your only income earner, it is definitely a good way to make a nice little supplemental income on your website!

Earn Money With Adsense

So you want to make money with Google Adsense? I don't blame you, who doesn't want residual income! This article will show you how to better optimize Google Adsense to make more money from your web site(s).

So you want to make money with Google Adsense? I don't blame you, who doesn't want residual income! This article will show you how to better optimize Google Adsense to make more money from your web site(s).

Before we get into it, learn more about Google Adsense here: http://www.google.com/services/adsense_tour/

First and foremost is: Positioning

Where you position your Adsense link boxes and banner ads is extremely important. Trying to make money from the bottom of your pages within your website just won't cut it. You need to add your Adsense links right in the heart of your template or right in the heart of your content. I would personally suggest both actually.

Adding Adsense in the heart of your template:

Link Units:

Since the introduction of Google Adsense "link units", we can now add what looks like a "menu system" to compliment our menu system within our website. This is HUGE. Have you ever just clicked on a website and kept clicking on the menu links? I know we all have. By adding a "Google link units" to your menu, you will get more clicks than you thought possible. Try adding the link units near the top for better performance and try creating your link units to match the color of your menu system in place. Once in a while I find myself clicking on a menu link unit without even realizing it which in turn gives more money to the website owner.

Leaderboards & Skyscrapers:

These may very well be your "bread & butter". I only say this because of the sheer size of these ads units. The best place to add these ad units is obvious; Straight across the very top of your website (leaderboards), and straight down the side of your template (skyscrapers). Anywhere else may not look proper within your template and may look unprofessional.

Square & Rectangle Ad Units:

These are great to compliment the mass amount of content within your website and also within your recommended resources. You want to compliment your content, you don't want Adsense to BE your content because this will look poor on your part. Adsense is very popular with webmasters; who doesn't want to make some extra money. However, don't forget that many of your visitors are also used to seeing Adsense within a website, and need a good reason to click on them.

Square and rectangular units are great to use within articles posted on your website or within your link resources. Try adding your Adsense boxes above your resource links within a page to give your Adsense account that added extra exposure.

Just remember that Google allows up to 3 ad units per page. Using these 3 strategies will help to better optimize Adsense for positioning! Let's now go onto targeting...

Optimizing Adsense: Taking out non-related ads!

Do you ever wonder how ads like "business card specials" ever get displayed on to your website when your company content is all about baby clothing? Since the introduction of "Adwords Site Targeting", we now have to keep an eye on the ads being displayed on our website(s). Companies may now specifically target your website for more exposure. There is no restriction whether the website is content related or not, just more marketing exposure for the advertiser.

Filtering Adsense Advertisers:

Within your Adsense manager, you have the option of using the "Competition Filter" which allows us to remove certain websites from the ads being displayed regularly. This is going to be an on-going optimization task in the future. Without filtering the ads being displayed within your website, you might find yourself with ads unrelated to your industry and possibly some ads that have a negative effect within your site.

If you don't remove all the unwanted ads being displayed on your website, you might end up hurting your Adsense performance online. The more targeted you can get your Google Adsense ads to display on each page, the better your chances at being able to make more money. Try to take a moment every week to study the ads being displayed on your website.

Open up a note pad, or word document and record all the websites you don't want to be displayed anymore. Add these sites to your "filter list" within your Adsense account.

Remember to add the website (within your filter list) like so: smartads.info - without the www. Adding anything after or before the url will only prevent the company from displaying one of their many ads like so (www.site.com/ads/1.html). This way you stop anything from the entire website from showing up within your Adsense campaign online. The more you optimize your Adsense filter, the better your performance will pick up and the less non-related ads will be displayed on your website.

One constant that holds true with Adsense:

The more pages you have with your Adsense campaign being displayed, the more you WILL make. People who have online networks immediately can profit from Google Adwords because they have the power to add their Adsense boxes & banners onto multiple websites, possibly 1000's of pages.

Should you add Adsense to your website?

If you own a small company that has a brochure type website that gets maybe 50-100 visitors a day, I recommend NOT adding Adsense to your site. It will never make enough money with that kind of traffic. Remember: Your Adsense campaign needs to make over $100 to get paid out.

If your company receives around 500-1000+ visitors a day, you can now start considering to make money through Google. Adsense is all about numbers. Play the numbers to make more money. In fact, try making goals for yourself to make X amount of dollars through your Adsense account by a certain time. Doing this will only increase your business and make your company more powerful online by increasing the amount of traffic it receives.

For multiple websites, channels are important:

Google allows you to track the performance of multiple websites all in one account which ultimately gives you the ability to track how many visitors you're getting for each website. It also allows you to work harder on those sites that aren't up to par.

I consistently look at each individual website channel to work harder at promoting the ones that aren't performing well. By doing this, we increase the amount of promotion going into the websites that under perform, and in turn eventually increase the business for those websites as well. The more you promote your website, the more the exposure you will ultimately deliver for your Adsense campaign and your company.

Google Search with Adsense:

To top all that off, you can add Google search within your site to give visitors a search function for your content and to allow people to also click on your Adsense program. Please note that for Google search to work, your website and all of its content pages must already be indexed by Google. Adding the Google search bar to your site right away won't help your visitors at all.

Adsense with You

Google Adsense can be one of the most lucrative ways to make money online. A website can be well monetized by using Google Adsense. You can generate an extremely large income if you have your website set up correctly. However, if your website is not set up correctly you could be missing out on money that could otherwise be collecting in your bank account. I'm guessing none of us want to leave any money behind.

Earning money using Adsense is very simple and you can be earning a fantastic income within a couple of months. It can take a little time and effort to get your website up and running the right way but it is well worth it in the end. Once your website is up and running and making money then it will run almost on auto pilot.

So you will want to spend the time at the beginning to get it right and make the most of your website. This way your Adsense income will reach it's fullest potential. You will be amazed at the great results you will see in a short period of time.

The first thing you will need to do in setting up your website is to write some good quality content articles and make sure you use your keywords throughout your articles. If you have a gift of writing, then why not make that gift work in your favour and use it on a website and earn some income with it.

Don't start to panic if you don't have that gift for writing, even if writing doesn't come easily to you, writing articles can still be easy. You will need to start by doing some research and find information relating to the topic of your website. You can find information on the internet, in books or at the library. Always make sure that you rewrite any information you find into your own words, never copy someone else's information word for word.

Search engines will reward you for having good quality content on your website, so make sure you keep up with the demands of the search engines and keep your content good and unique. By doing this the search engines will love your site and will reward you with good rankings.

Build a good quality site with unique content and a good usage of keywords and this will ensure that the Adsense ads placed on your site will relate to your sites topic. This is where all that you've done initially will go to and this is also where they will prove their worth to you.

Where you position your ads on your site can be very important. Don't just place your ads anywhere, make sure you position them carefully. Try to position your ads where surfers are most likely to click on them. The one place that surfers look first when they visit a website is the top left. The reason for this is because that is where your website navigation links are usually located. So by placing your Adsense ads directly under your navigation links will usually get some good clicks.

Even if you think you are doing well with your Adsense earnings, it can still pay to play around with your ads. There are techniques and styles that can help to generate more clicks and sometimes just by tweaking your ads your earnings can be doubled or even tripled. By working out what techniques work the best for your site, you can be earning much more than what many people earn through their Adsense websites.

Stay away from banner ads and skyscraper ads - they don't tend to get as many clicks as the other ads. These ads are clearly recognized as an advert and so many internet surfers tend to ignore these types of ads. There is no point in putting ads on your website that aren't going to get you the clicks you want, it will be more beneficial to use ad types that are more likely to receive a higher click through rate.

To really make a great income with Adsense, you should have a definite focus on what you want to achieve and how to go about achieving it. Like any business venture, you need to give it time and patience.

Keep an eye on your ads and click through rates, if you aren't seeing enough clicks then play around with your ads a bit and keep track of which ads perform better for you.

Make Money with Adsense

Well the key to AdSense is Traffic. Traffic is from either referrals, organic search engine referals, or direct url advertising putting a website in front of a consumer audience enough to the point where they enter it on their computers. You can also buy traffic with Adwords, but if you aren't selling something then arbitrage can be a lot of work for little profits. So the best bang for your buck is to get into...(shhh...)....seo....The search engines don't like seo because it is there to exploit certain functions of the search engine. (I.e. the Google Bomb of George Bush with the search term 'miserable failure' in googles search engine.

Each search engine is unique in its algorithms and methodology for categorizing all the junk on the net so to optimize you must figure out where you want put your time into getting high rankings in. The stock market should be a clue that Google handles most of the search done on the net so it would be best to address getting into google. That means dealing with 'Page Rank'. You can see page rank in the google toolbar to get an idea of how high google sees the importance of your site. Rather than intense keyword density and breadth, Google instead first will count up your 'inlinks' to see how many people think that you are important besides you. This is the reason that you will see a lot of link exchanges and dealings on the internet that might seem foreign to the newbie adsenser itching to pick up their first check. Use Google's advanced search features to check the inlinks of yourself and your competitors, don't result to comment spamming or link spamming, and don't plagiarize your work. All of your pages should be easy to navigate and have a solid link structure as well as 'clean url's' for running scripts. Your domain name should have a keyword in what it is your website shows, sells, or does.

Most of all you need to be patient and look for creative ways to market yourself to get the best viral impact without breaking ethical rules or mass marketing junk. Add as much content as you can and check Google's Adword Keyword suggestion tool for subjects of content that will help you get the traffic you are looking for.

Community Goal for the Year 2010

Community Goals for the Year 2010

ECONOMY

By the year 2010, the annual Median Family Income will increase by a higher percentage then the Bay Area Consumer Price Index.

By the year 2010, housing will be available and affordable to meet the needs of the local work force.

By the year 2010, county performance in key economic sectors such as agriculture, tourism and retail will meet or exceed the state average.

EDUCATION

By the year 2010, more students will be working at grade level with a curriculum that spirals in rigor throughout the K-14 system.

By the year 2010, more students will be ready for college and transfer ready from the community college into four-year colleges and universities.

By the year 2010, more schools will have a pre-kindergarten program available for all children.

HEALTH

By the year 2010, Santa Cruz County residents will have improved access to primary, specialty and emergency medical services. Appropriate planning and training will have been accomplished for medical response to disasters.

By the year 2010, 80% of healthcare providers will use Health Information Technology to improve patient safety, enhance healthcare systems efficiency, and provide community-wide secure health data to improve population health for Santa Cruz County residents.

By the year 2010, 75% of Santa Cruz County residents over the age of 60 will receive education and information regarding end of life choices and opportunities; thus empowering them to make self-determined decisions regarding health care.

By the year 2010, the prevalence of childhood obesity in Santa Cruz County will be reduced by 5%.

NATURAL ENVIRONMENT

By the year 2010, the health of rivers and the ocean is improved by reducing erosion, reducing pollution and increasing summer stream flows.

By the year 2010, more high density, “green” and affordable housing units will be developed near transit and job centers while open space is preserved and increased.

By the year 2010, single passenger auto use will be reduced by improving cyclist safety, increasing miles of bike lanes and increasing use of public transportation.

SOCIAL ENVIRONMENT

By the year 2010, more people will be educated and engaged in activities that strengthen our community and civic life.

By the year 2010, families and children will have access to the information, resources and support they need to succeed.

By the year 2010, all people in Santa Cruz will have a way to meet their basic needs for food, housing, healthcare, childcare and transportation.

By the year 2010, Santa Cruz County residents with physical, psychiatric and development disabilities will have access to community services needed to ensure integration and inclusion in all facets of community life.

PUBLIC SAFETY

By the year 2010, crime within Santa Cruz County will continue to decrease and residents will have increased confidence in their personal safety at home and in the community.

By the year 2010, children in Santa Cruz County will live in safer families and communities.

2010 - Calender

Year 2010

2010 (MMX) will be a common year starting on Friday of the Gregorian calendar. It will be the first year of the 2010s decade.
There is a debate as to how specific years of the 21st century should be pronounced in English. Although the majority of English-speakers say "two thousand (and) X" for any specific year post–1999, it is often suggested that the continuation of this type of pronunciation for the entire 21st century would be inappropriate or unnatural, given the alternative "twenty X" option.

Academics suggest that since former years such as 1805 and 1905 were commonly pronounced as "eighteen oh" or "nineteen oh" five, the year 2005 should naturally have been pronounced as "twenty oh-five".[1] Many experts agree that majority usage of "two thousand (and) X" is a result of influences from the Y2K hype, as well as the way "2001" was pronounced in the influential 1968 film, 2001: A Space Odyssey.

Many people, including linguistic and academic experts, predict that the "twenty X" pronunciation method will eventually prevail, but a time frame as to when this change will occur often differs. The year 2010 is suggested by many[2][3], while 2011[1] and 2013 are popular as well. The latest time frames for change are usually placed at 2020[1] or 2100.

According to a recent press release, David Crystal, author of the Cambridge Encyclopedia of the English Language, has predicted that the change of pronunciation to "twenty X" will occur in 2011, as "twenty eleven", explaining that the way people pronounce years depends on rhythm, rather than logic. Crystal claims that the rhythm or "flow" of "two thousand (and) ten", beats out that of "twenty ten", but the flow of "twenty eleven" beats out "two thousand (and) eleven".[1] Alternatively, Ian Brookes, editor-in-chief of Chambers Dictionary, suggests the change will occur in 2013. And finally, the UK Times has suggested 2020 as a final time frame for the change, saying "If people can have “twenty-twenty” vision, then surely they should also live in the year “twenty twenty”.[1] The team which organized the successful bid to host the Olympic Games of 2012 in London, styled the year they will hold the games as "twenty twelve". This appears to have been accepted with the British public.

In addition, some notable organizations are already switching to the "twenty" system. The favoured description for the 2010 Vancouver, Canada, Winter Olympic Games is stated as the "twenty ten" Winter Olympic Games, the 2010 FIFA World Cup is stated as the "twenty ten" FIFA World Cup, South Africa & the 2010 Commonwealth Games, India prefers the description of this Event as the "twenty-ten" Delhi Commonwealth Games, India.

Some suggest that after the "twenty X" pronunciation for current and future 21st century years has taken hold, future references to early 21st century years will change accordingly from the previous "two thousand (and) X" method; thus, they say, future generations will refer to the date of the 9/11 attacks in the United States as September 11, "twenty oh-one", just as 1911 was referred to as "nineteen hundred and eleven" at the time, but is now called "nineteen eleven".

Google Improved Adsense with Ad Links

Google Inc. has introduced a feature into its AdSense advertising program that increases the number of text ads tied to a Web page. The feature, called Ad Links, also improves the relevance between the ads and the Web page's content.

In the AdSense program, Web site publishers insert Google code into their Web pages, which generates text ads that are relevant to each page's content. The ads are sold by Google to advertisers and are distributed to publishers who participate in AdSense. When a visitor clicks on an ad, Google pays the publisher.

Google believes Ad Links will benefit Web site visitors, advertisers and publishers, said Shuman Ghosemajumder, Ad Links product manager. "It helps users by giving them a greater choice of ads they can select from. Meanwhile, advertisers benefit from additional distribution they're gaining. And for publishers there's a higher likelihood visitors will click on ads," he said.

Ad Links has been designed as a complement to the contextual ads served through AdSense. Publishers who sign up for Ad Links will still receive the AdSense ads. But with Ad Links, publishers will also get a list of topics that are contextually related to the content of their page. When a visitor clicks on an item on that topic list, he is taken to another Web page with related text ads.

For example, a page about vacationing in Hawaii will feature AdSense text ads about that content. But it's possible that not all visitors who land on that page are looking specifically for information about vacationing in Hawaii. They may be looking for other type of information about Hawaii or about vacationing in general, he said.

In that case, the visitor is unlikely to click on the AdSense ads. However, with Ad Links, the page could feature a list of topics related to Hawaii and vacationing, which, when clicked upon, would serve up corresponding ads, broadening both the scope and quantity of the ads available to the visitor.

The Ad Links topic list has been designed to be unobtrusive and not clutter the space devoted to ads on a page, Ghosemajumder said. "It integrates very well with the navigation structure of sites," he said. The Ad Links feature is ready now and is already being implemented by Web site publishers, he said. It is available in the 22 languages AdSense supports.

Another enhancement Mountain View, Calif.-based Google is readying is the ability for publishers to have AdSense payments deposited directly into their bank accounts via Electronic Funds Transfer technology, he said. This feature is currently being tested.

First Google Adsense Check

Well my first Adsense check is on it’s way. They say it was sent out today so maybe I will get it in a few weeks. It has taken me since December to make $102 from Google, maybe my next hundred will come a little quicker. Most of my money has been earned from my biker site but I have made about a dollar from this site so far. I have no where near the viewers here that I do on Open Road Biker dot net.
How about you, how much have you earned from Google so far? How have you optimized your site to get the most clicks? My biker blog gets most of it’s clicks on a link bar in the header. The links seem to stay targeted so it is almost always things that interest my viewers. The only bad thing is that they sometimes contains ads that pay .01 cents or less (yep, I have had many clicks that didn’t pay anything according to my adsense reports).

So I guess I will have a little bit of money to reinvest in the site. I was going to try and get someone to fix my template on Open Road Biker dot com but I am going to try my hand at it and see what I can come up with. What is the use of paying someone to do it if you can do it after just a little searching on the internet. I think I am going to put a little of it into some advertisement and also renew my main domain for a little longer. I may take it out to 2010. My server is paid for until December 2008 so that is not a problem. I guess when the money gets here I will budget it out. What about you? Come on and tell me about your adsense earnings, problems, techniques, and experiences in my comments section. How about giving me some ideas on how to reinvest in my site. Now if you don’t have adsense running on your site yet then never fear, here is a link to get started.

Adsense Code

Google Adsense is a program created by Google that generates advertising revenue for your website. Relevant text ads and image ads targeted to the content on our site content are delivered by Google.

How to get started with Google Adsense:
You can After our application is approved you have to get a code provided by Google Adsense into your web pages. The code creates relevant ads based on the content of your site. When a visitor clicks on an ad, Google pays you per click.

Free Google Adsense Optimization Tips:
There are specific areas in your web pages that are recommended by Google which have been found to generate more clicks.

 Ads placed above the fold tend to perform better than those below the fold. A 728x90 ad under your title or header graphic is a good place for a google adsense ad.

 Ads placed near rich content and navigational aids usually do well because users are focused on those areas of a page the most.

 Google Adsense Ads that are merged within the content, like the ads you see on the right hand column, perform very well.

 You should make your Google Adsense ads look as a part of your web page. They shouldn't look like an advertisement. Users search the internet for content, not ads.

 In order to know how effective a specific website or ad placement is use distinct channels. This will allow you to discern what performs best on a specific website. Using channels will tell you what sites are making money, what advertisements are making money and what ad position is the most profitable on a specific website.
 Adjust your font face and font size to look similar to the Google Adsense ads. Adsense advertisements are usually in Arial, 11px.
 Test Test Test! Only by tweaking your ads, changing the sizes, colors and locations, can you actually see what works best for your specific site.

How it works?

How it works

Google and Yahoo dominate the booming online search advertising business, which is expected to grow to $5.6 billion in 2008, from $2.7 billion in 2004. Profit from search advertising enabled Google to more than double its revenue in 2004, to $3.1 billion.

The concept — text ads that appear next to search results — works on a "pay-per-click" model. Advertisers pay only if someone clicks on an ad. To use the programs, advertisers buy "keywords" for anywhere from 5 cents to $100 a word. Those are the terms people type into query boxes when they're searching, such as "Atlanta wedding photographer" or "Omaha Italian restaurants."

AdSense works as a part of that keyword model; it's an offshoot of what Google calls its AdWords program, which competes against Yahoo's Overture unit.

AdSense is a bonus program for advertisers who use Google AdWords. Through AdSense, Google clients get to tout their wares beyond Google's home page — potentially reaching more than 200,000 participating Web sites.

Small Web site operators have flocked to AdSense as a way to attract advertising. To participate, they sign up at Google, which reviews the site. Once a small piece of computer code language is implanted on an accepted site, Google does the rest — matching ad links from its warehouse of clients to appropriate sites.

There's an art to optimizing a site to attract more links — and generate more revenue.

Gay Gilmore, who runs Seattle-based recipezaar.com, says the trick is to attract ads next to recipes beyond the main page. "The ads need to be targeted," she says, "so that when someone is reading about chicken soup, an ad for one of the ingredients is of keen interest."

Web site publishers need to be creative, says Dave Lavinsky of TopPayingKeywords.com, an AdSense advice site. A house painter advertising his services on a homemade site is leaving money on the table if he mentions only house painting, he says. "'Housepainting' is a 20-cent word. 'Home improvement' is worth $2, so you should create content for that."

But Sullivan says keyword tricks hurt the editorial integrity of sites. Another problem, he says, is the proliferation of computer-generated directories with links to hotels, restaurants and entertainment and no real editorial content, fueled by the availability of "Ads by Google" checks.

Wojcicki says Google tries to review all sites in its program, and removes offenders such as the directory sites. Critics say the site reviews can sometimes result in an FCC-like "family friendly" filter. Bloggers complain about being rejected for discussions of sexuality and use of four-letter words.

"I begged, argued and appealed to reason for months," says author Susie Bright, whose site discusses sexuality issues. "I pointed out that all my postings were things you could easily read in ... any number of mainstream magazines that cover sex and politics from a fairly sophisticated point of view. And I pointed out that my readers like to buy trousers, go on vacations, purchase ink and basically buy all the same things that everyone else does."

Wojcicki wouldn't address the specifics of Bright's concerns, but says AdSense isn't for everyone. "We're very careful about who we let into our network. We reject sites with content some people may feel uncomfortable about."

With pay-per-click ads, Google and Yahoo are locked in a bitter battle for advertiser dollars. But Yahoo doesn't compete with AdSense for small publishers — yet. Yahoo says it will introduce an offering later this year.

For now, Google's most notable AdSense competitor is privately held Kanoodle, which accepted Bright's site. It works with small publishers and big ones (including USATODAY.com and MSNBC) and differs from AdSense in that advertisers can choose topic areas of the sites where they want their ads to appear.

"The search advertising market is red hot right now, and publishers and advertisers want more," says Kanoodle CEO Lance Podell. "We offer them more places to show their ads, and they love that."

How long will search sizzle?

Google's initial public stock offering last summer was a Wall Street sensation. The stock opened at $85 a share and now sells for around $180, down from its 52-week high of $216. Some analysts fret that the red-hot paid search market could start to cool down.

Forrester Research, revising downward earlier projections, expects 30% growth in search advertising revenue this year, after a 45% jump in 2004.

"Click fraud" is another nettlesome issue for Google and Yahoo.

Advertisers pay for ads only when they're clicked, but it doesn't always work that way.

Some competitors click ads just to run up the other guy's bills. Web publishers with AdSense get their friends to click ads so they can get more money. Some savvy webmasters have set up automated clicking models called "Hitbots" or "Clickbots," which click away all day, and cost the advertiser.

Such efforts "threaten our business model," Google CFO George Reyes said at a recent industry conference. "Something has to be done about this, really, really quickly."

University of California professor John Battelle, who is writing a book on search, says the success of AdSense has built a "growing, extremely sophisticated offshore industry."

"There are more of these sites than you can imagine," he says. "The robots click on the ads and then none of the clicks turn into leads for the advertisers. That's not how it's supposed to work."

Google and Yahoo say they are working on the problem, but Battelle doesn't think that's enough.

Yahoo, Microsoft and America Online have banded together on several occasions to fight e-mail spam, and Battelle says Google and Yahoo should show the same kind of joint leadership. "Because if they don't, it will end up biting them in the butt."