Skip to content

Carbon Space: Coworking in Boulder

I listened with envy to Corey Snipes, a friend and colleague in Denver, when he talked about being a member of the Hive, a coworking space.  I have rented an office in the past, but always thought a coworking space was a no brainer business plan in Boulder, given all the tech startups, one person PR firms and entrepeneurial environment. After all, some of what I miss about being independent was that water cooler talk, or the ability to just bounce ideas off someone in real time.  (Yes, I imagine twitter fills that need for some.)  I remember a few emails floating around the New Tech Meetup mailing list, but never heard of a plan come to fruition.  But then again, perhaps I just discounted Boulder’s real estate market as a barrier to entry.

Anyway, today, Corey sent on an email announcing Carbon Space, Boulder’s very own coworking space.  Located off 30th street, between Valmont and Pearl, with plans starting at $199/month, I hope this space succeeds.  Hey, I may even check it out myself!  Visit the website for more details.

[tags]boulder, coworking[/tags]

Google Maps API versioning

The Google Maps API is constantly changing–they say they are releasing weekly.  Of course, no one is perfect, so sometimes bugs appear.  First, you should read this about maps API updates:

The v parameter within the http://maps.google.com/maps?file=api&v=2 URL refers to the version number of the Google Maps API to use. Most users of the API will want to use the current “Version 2” API by passing the v=2 parameter within that URL. You may instead obtain the latest release (including the latest features) by passing v=2.x instead. However, be aware that the latest release may not be as reliable as the v=2 release. We update the Google Maps API often (sometimes every week), at which point features within the v=2.x release are migrated into the v=2 release unless problems are discovered.

If you want to know exactly what version of code you are pulling down when you put a ‘v=2’ on your maps javascript load, view this API changelog page on the google maps wiki.

Solution to black boxes in Google Earth balloons when the GE plugin is placed over Flex/Flash content

This is very much a post to spare people the hunting I did to solve this very particular problem :).

I am doing some work for a client that integrates Flex and the Google Earth plugin.  This post by Andrew Trice explains the basic integration well (it’s very slick!).

However, there was an issue–in Firefox, any balloons popped up by clicking on a placemark were black.  The text of the balloon was there–you could see it flicker–but not visible.  Andrew references a trick that allows “layering Google Maps HTML/JavaScript over Flex content,” so I suspected that was part of the issue.

Running the same GE code without the Flex component showed the balloons normally, so that was the issue.  A bit of hunting turned up a reference to the wmode parameter being important to such layering (I had a URL, but have lost it.)  Then, this post popped up, explaining what the proper settings for wmode were.

Basically, if you are seeing black balloons in Firefox when you are placing the GE plugin over Flash, you need to set the wmode to opaque.

[tags]flash,flex,google earth, flex-google earth integration[/tags]

Interview: SEO basics for web developers with Ashley Rader

I just recently did an interview with an old high school friend, Ashley Rader, who is now in the SEO business.  Since I build custom web applications and websites, but know next to nothing about SEO, I took the opportunity to ask questions that I think web developers of my background would appreciate.  The interview follows.

Dan Moore: My understanding of SEO is that it is how you show up on the first page in search engine results.  How is that understanding incorrect?

Ashley Rader: That is mostly correct, yes.   Although if you were to ask Google that question, their aim is to deliver sites at the top of the search engines that are most relevant to the search.   They like quality sites, with unique content, and with a level of “authority” where google has found other sites to reinforce that relevance.   SEO is the process by which webmasters and site owners can attempt to increase the likelihood that Google thinks their site is relevant to a particular search. Sites can still rank at the top of google for particular results without SEO techniques, but it is a lot harder to do so.

Dan Moore: Why is it harder?

Ashley Rader: Without SEO you would have to have some other form of publicity working in your favor.   For example a new movie comes out.   There are commercials on TV and buzz amongst movie gurus.   They might naturally begin linking their websites and blogs to the movies website which in turn yields higher search engine results for that website.    The webmaster of the site probably doesn’t have to do anything “unnatural” to enhance their search engine rankings because other forms of marketing are working on their behalf to enhance their search ranking for a particular phrase.   Most ordinary website owners and business owners don’t have that kind of marketing available to them so in those cases, they would need to use SEO techniques to get the same result.

Dan Moore: So, if I understand you correctly, SEO is a form of marketing, just like TV ads?

Ashley Rader: Not exactly, there are forms of marketing that you can use as a part of an SEO or SEM campaign.   Buying text or banner links and advertising on a page might be part of an SEM campaign.   However even when it comes to marketing your site in other mediums online, there are different goals for purchasing an ad.   For our network of sites we sometimes purchase ads in order to gain traffic from a particular site, and in other cases we might purchase advertising for the sole purpose of search engine optimization and having google see a link from a particular site to our site. SEM (search engine marketing) could be considered a form of marketing, that is the broader name for it.   SEO is the process of in a sense manipulating the way google (or the other search engines) might view your site and the topics or search phrases that it might deem it relevant for.

Dan Moore: Is it worth targeting anyone other than Google?

Ashley Rader: Not worth spending a lot of time on anyone but Google, no. That’s why I keep mentioning google.   Some of the things you do will enhance the results for Yahoo, Live, etc, but not worth spending hours and hours trying to rank for both.

Dan Moore: Can you elaborate a bit on how you started out in the SEO field?

Ashley Rader: I started my website back in 2005 and really started researching online, how do all these sites get to the top of the search engine results.   I didn’t have a lot of money for advertising my website so I was more interested in finding out how to do it for FREE (or with the only cost being my own sweat and labor).   There are a million ebooks out there on how to do SEO and I was lucky enough to find one from a guy who really knew what he was talking about, and is one of the experts in the industry.

Dan Moore: How many ebooks/methods did you try before you found the one that worked?  And how did you know it worked?

Ashley Rader: Actually just the one.  As I started to implement some of the things I was reading about, my first site started moving up the search results pretty quickly.    Since then the author of the original ebook that I read started an SEO/SEM membership organization (called Stompernet) of which I’ve been a faithful member since 2006.   SEO has changed completely even since I started in 2005 so it is really important to stay current on the kinds of things that work today.   The things that I did SEO wise for my site back in 2005 might get me banned from Google today, so its always changing and definitely keeps things interesting.

Dan Moore: So even now, you are constantly overhauling your website(s) to take advantage of new techniques that you read about or discover?

Ashley Rader: Not exactly overhauling, but tweaking – yes, I’m constantly tweaking.   If you start off the bat by implementing good structure you likely won’t need to completely overhaul it, but there are always little tweaks and things that tomorrow might require a different kind of title tag, or a different linking structure.

Dan Moore: A different kind of title tag?  What do you mean–different phrasing, or what?

Ashley Rader: Changing up the keywords, changing the way it is written, changing the “call to action”.    Since title tags control what appears on the primary line of the search results, its important that they are optimized not only for SEO purposes – so including your main keyword(s) for the page.   You also need to balance that with the fact that it is your main line of advertising in the search results so you want it to be compelling for people to click on. Title tags written without keywords or with a bunch of extraneous unrelated text are often not clicked on.

Dan Moore: You mentioned implementing good structure at the beginning of website development–what does that typically look like?

Ashley Rader: Title tags – those are probably the most important on page factors related to SEO results.   You want them to be unique (unique from other pages as duplication in the title tags can lead to penalties), and keyword rich.    You should think of each page of a site not as a subpage of the entire website, but as a single page that has the potential to rank on its own.   Keyword and Description tags should be filled as best as possible (and not left blank), but they don’t affect SEO nearly as much as they used to.   Beyond that, the internal linking on the page.  Your most important pages should be no more than 2 links away from the homepage if possible.   Having good navigation that google can follow (so no javascript) is critical to the ability for google to index and revisit your site. Also using nofollow tags for links that point to pages that you don’t care about being indexed or ranking should be used when possible to boost the link authority of the other links on your page.

Dan Moore: There are ‘validation’ programs to show malformed HTML on websites; are there any analogous SEO programs?

Ashley Rader: Yes, there are a TON of programs out there that can look at many of the factors that influence ranking.   All should be taken with a grain of salt as the ultimate determining factor is how you actually rank.  The one that I use is iBusinessPromoter.   They will analyze many of the onpage factors and tell you if you are over or under optimizing in comparison to the sites that are top ranking for your particular keyword.  I have a number of colleagues who focus SO much on tweaking their on page factors and aren’t looking at the big picture of their overall SEO campaign, and they are just spinning their wheels wondering why their site is still not ranking well.   These tools can help, but are not the end all be all. Also Google Webmaster Tools provides some fantastic information as to why a site might not be ranking well whether it be the site layout, lack of incoming links, or if maybe a penalty has been imposed.

Dan Moore: I always tell people that the best way to get better placement in search results is to produce regular, interesting content about whatever niche they are in.  You have been talking about some techniques that can produce better results, so is my advice incorrect?  If so, do you have a similar (or better!) short capsule of advice?

Ashley Rader: Your advice is 100% correct.   There are other things you can do to reinforce that, but google LOVES regularly updated, unique, quality content. Google loves blogs for that very reason.

Dan Moore: Do you blog?

Ashley Rader: I have a number of blogs (I think maybe 6 or 7 for some of the niches that my websites are in), although at this time I have so many fires in the pot that I am not contributing to them as much as I should.   That is one of the areas I’m working on consolidating and improving on.

Dan Moore: 6 or 7, that’s quite a few.  How do you mean “consolidating”?  Generating more multipurpose content?  Getting other contributors?

Ashley Rader: Other contributors.  Many of them are set up right now with RSS feeds from different sources but that is not ideal.  Matt Cutts from google says that RSS feeds are ok to include, but blogs still need original content.   I have a writer from Odesk who does daily posts for 2 of my blogs.

Dan Moore: Ahh, ok.  Can you talk about the future of SEO–what developments on the horizon excite you?

Ashley Rader: Well I’m not 100% sure what lies in the future, SEO is kind of an “in the moment” type of science.   Since we don’t know what changes Google is going to make tomorrow to their ranking algorithm it is hard to say.   But since I have started, they are moving more and more towards rewarding sites that provide really unique, valuable content to their users.   Actually, one thing they are beta testing right now is the concept of “social search”.   Search results that are different for every user based upon their surfing patterns and sites they visit and elect to come up higher.   I can log into my google account and all of my websites (even my brand new ones) are all #1 on google for their search terms!   🙂   Right now google says these voted results aren’t affecting the current algorithm, but I would guess in the future they will.  Social networks seem to be the way that google is moving so out are the days where you could put crappy, scraped content on your site and spam it to rank well.   You need to provide a valuable experience for your website visitors and in turn google will begin to reward you for that with higher rankings.

Dan Moore: Are there any SEO campaigns that you are particularly proud of and/or would point to as proof of your expertise?

Ashley Rader: My main website is www.momentsofelegance.com.   Currently (just checked) #4 on google for “wedding favors” which is a very popular and competitive search phrase. During the summer months which is the height of wedding season, we get about 3500 hits a day and 98% of those are from organic google search results. Sorry it’s #5 on google not #4.

Dan Moore: Cool, well, thank you very much for your time. This was very helpful; any parting thoughts?

Ashley Rader: The most important factors I would say are make sure you know and understand your industry, the search phrases that people are using to find the times of products or services that you offer (and to research this as what you “think” people might not be searching for is not always what people are actually looking for).  Use those keywords in your site design – not in a spammy way but a natural way.   Then if you are providing good, quality content that appeals and attracts visitors, your site will gain relevant links and will be rewarded by google with better rankings.  You’ve got the right idea, content is king and with good content you will have more returning visitors and better rankings.

One other small point I should make is not to ignore the “long tail” or more specific keyword searches for a site.  We get about 25% of our traffic from our main search phrase “wedding favors”, but the majority of the traffic comes into our product pages using very specific keywords.   Those are actually the “money phrases” as people who are looking for “wedding favors” are usually just researching, people searching for “hot pink favor boxes with personalized ribbon” are usually ready to buy.   Just an important distinction to make to not ignore the more specific search phrases.

Dan Moore: That’s actually how the search keywords for my blog work out–the majority of the search terms are unique and I get maybe 1 hit a month on them.

Ashley Rader: Thats the good thing about blogs, there are a few basic plugins you can use and your site is pretty much SEO optimized and your internal blog pages can rank very well for the longer tail search phrases.

Dan Moore: Thanks again!

[tags]seo,interview,ashley rader[/tags]

Holiday gifts and why Moore Consulting sends chocolate

I’ve started a tradition of sending my clients a holiday gift. They all seem to appreciate it and I plan to continue for the foreseeable future. Sending these gifts is good for my business because the gift (in decreasing importance):

  • shows my clients that I appreciate them. I do good work, but lots of people do good work, and I want to show my clients how much I appreciate the opportunity to do business with them. Giving them a gift, no matter how expensive, pales in comparison to the amount I’ve billed them over the year.
  • strengthens the relationship. I’m selling not just the product of my time, but myself, and expressing gratitude shows another side of me that clean, well written requirements just can’t.
  • makes me stand out, at least among other software contractors. This is only anecdotal, but I have had clients remark on how few of their contractors send any kind of gift or card.
  • reminds my clients about me–some of the recipients might have not heard from me in months, so the gift is a reminder of my services.

It’s also good for me, for the following reasons:

  • Gratitude feels good
  • It’s fun to pick out gifts
  • Going over invoices to get addresses serves as an excuse to review all the work I’ve done, as well as goals I may or may not have accomplished.

In 2008, I picked chocolates from It’s Only Natural Gifts, because I wanted to support a local company and their product looked good. They made it easy; all I had to do was give them a spreadsheet with client addresses, messages and type of gifts, and a credit card number. I also sent a card to a client that I did a small amount of business with.

I recommend doing this for your clients next time the holidays come around.

[tags]holiday gratitude[/tags]

GWT Server Communication Strategies

I have been doing a fair bit of GWT wrangling lately, but noticed my blog didn’t reflect that.  I thought I’d do a broad survey of GWT server communication strategies.  By server communication, I mean the ability to transfer data to or from or to and from a server.

Since GWT is, at the end, just javascript, these methods that work, work for any javascript code (those that don’t work may fail due to GWT strictures).  But I’ll be looking at them with a particular GWT focus.  I created a sample Eclipse project that shows all of these methods (except for GWT-RPC, since that is so well documented and requires a java server).  I encourage you to download it and toy around with each of these methods.  I used GWT 1.5.3 on Windows, and tested the code in both in the hosted browser and my normal browser (FireFox 3).

For the anxious and impatient, here’s a quick table overview.

Method To server From server Cross domain Payload length Notes
HTTP request yes yes no unlimited (post) developer responsible for making sense of data
GWTRPC yes yes no unlimited (post) only works with java server on the backend
JSON yes yes yes limited by URL length (2048) hard to determine when data is loaded
JSONP yes yes yes limited by URL length (2048)
Form yes yes/no yes unlimited payload no server response available if posting cross domain
Iframe yes yes no limited by URL length cross domain fails

HTTP requests are the simplest way to retrieve data from the server.  The data retrieved can be anything (text, HTML, JSON, XML, some other data format, binary data, etc), but you as a developer are responsible for taking that data and turning it into something your program can use.  Also, since HTTP requests use XMLHttpRequest under the hood, you are limited to the same hostname that your GWT code was served from.  This is the default setting for most browsers (the so called Same Origin Policy)–I did notice that the GWT hosted browser does let you pull HTTP Requests from a different domain, after a warning.  FF3 does not allow the cross domain request at all–it fails without an error message.  Data transmission is two way.  The GWT documentation provides sample code.

GWT-RPC is the method that is given the most attention in the GWT docs.  GWT-RPC provides plumbing to marshal and unmarshal java java objects marked with the Serializable or IsSerializable interfaces.  The data object can’t contain any fields that GWT doesn’t know how to translate, like URI.  GWT-RPC is currently built on XMLHttpRequest and is subject to all of its benefits and limitations.  Data transmission is two way.  The GWT documentation contains sample code.

JSON is a data interchange format that encodes data in a way that can be executed by javascript compilers.  It looks something like this:

var myvar = {"msg":"plain json"};

GWT can use JSON to pull data from remote servers.  Data can be transmitted both ways, but in GWT it is hard to know when the data has been returned from the remote server.  (Also, there are some security implications.  Read the article linked to above.)  You can poll via a Timer to see if a variable has been created. (This is tedious, but may be the best option when the server JSON output is not under your control.)  The closely related JSONP method uses a function instead of a javascript variable, and removes the need for any Timer.

JSONP takes JSON the next step farther and adds a callback function into the mix.  That way, when the remote data has been loaded, a javascript callback function will be executed.  It looks something like this:

my_fcn({"msg":"plain jsonp"});

When the script is loaded, the json is executed, and my_fcn will be executed as well.  I’ve used this quite successfully to make GWT widgets pull data across domains.  This excellent article has an almost complete implementation.  The only thing missing is removing the scrip tag when the callback function is called.  My code just associates a uniqueId with every script element.  After the JSON is parsed, the element is removed.

private native void removeScript(String uniqueId) /*-{
var elem = window[uniqueId+"DOMELEM"];
if (elem != null) {
document.getElementsByTagName("body")[0].removeChild(elem);
}
}-*/;

Form Submission is a method of server communication that really excited me, because I know that in HTMLland, you can do cross domain posts rather easily.  In theory, this means you don’t have to jump through the hoops of JSONP, and can have large amounts of data sent.  Alas, it was not to be.  You can post forms cross domain, but “The result html can be null as a result of submitting a form to a different domain.”  The data does get to the server, though.  If you are trying to get a large amount of data cross domain, this may be useful, but you’ll have to use some kind of polling with JSON or JSONP to determine that the server has handled that data in the way you expected it to.

IFrames were the original remote scripting solution and GWT supports them…kinda.  I was surprised to learn that a cross domain iframe failed in the hosted browser with a security exception.  It also fails in FF3 with the exception: “Permission denied to get property Window.document”.

I hope this tour of GWT server access methods and code is useful to you.

[tags]GWT, GWT remote communication, how can I get my widget the data it needs[/tags]

Need To Identify Your Motherboard? Try CPUID

I was trying to identify a motherboard for relatives so that I could buy them some memory for the holidays.  (What can I say, I’m a romantic!)

I wasn’t able to find it via the Windows Device Manager, but luckily, Google turned up the answer: CPU-Z.  It’s a freeware program that not only tells you any number of useful bits of information about your computer (like the motherboard model and manufacturer), but also will export it to an HTML file suitable for emailing.

This is not information I need every day, but when I did, CPU-Z came through.  Thanks, folks!

[tags]motherboard identification, memory, hardware[/tags]

Why aren’t you using Google Website Optimizer?

I’ve been using Google Website Optimizer (GWO) in one form or another for over a year now, and I am quite impressed.  I wish everyone would take a look at this technology.

The short version of this post is: if you have a website that gets some traffic, and actions that you want a user to take, such as buying something, you should use GWO.

OK?

Let’s talk about GWO a bit more for everyone who didn’t leave after the executive summary.

First, what is GWO? 

It is a free add in to your website that lets you test the effect of content changes on desired user actions.  For example, you can test the impact of different headlines (‘Sign up for more information’ or ‘Free Newsletter!’, etc) on a newsletter signup page to see how it affects how many users sign up.

I could try to write about it more, but instead, here’s a video that explains how to set up a test; you can watch the first 45 seconds to get a good overview of what GWO helps you test, but the whole video is worth viewing.

It’s important to note that GWO is javascript based (as opposed to some other tools like SiteSpect, which uses DNS proxying, according to a conversation I had with someone who worked there).  There are other tools out there which may be better fits for your needs.

Now, how should GWO be used? 

This tool should be used to optimize a specific action that you want the user to take, and that action should be something on the web.  Examples of actions that GWO can help optimize include:

  • sign up for a newsletter
  • visit a specific page
  • order something
  • give you their contact info
  • watch a video
  • download a file

GWO is capable of handling more complicated scenarios too.  You can, with a bit of javascript hackery, test button click conversions, or any other javascript event.  I’ve worked on systems that tested various form elements (requiring different fields to register, for example).  The requirement for that is a flexible back end, and a javascript front end that can handle re-filling form elements on error.

Next, why would you avoid GWO?  There are a number of scenarios where using this tool just doesn’t make sense.

No actions that you want the user to take on the web

This is the biggest set of sites for which GWO does not make sense, and my blog falls into it.  My end goal is really to talk to someone, on the phone or over coffee, to ascertain whether or not I can help them with my services.  That’s a hard conversion to track.  If you really want to get people talking on the phone, that is a conversion that GWO doesn’t help track either (though it’s possible you could do something with VOIP or different phone numbers and cobble some kind of conversion tracking together).

That’s not to say that sites in this category can’t use GWO.  For instance, I wrote an article long ago about a java technology called JAAS, and it’s still pretty popular.  I’ve been doing some testing on that page to try to drive traffic to this blog, where a big chunk of my current writing is happening.  I was able to increase conversion about 2.5 times (granted, from a small base–0.7% to 1.73%).  I could definitely try to do some optimizations around ad placement or contact calls to action.  The main reason I haven’t is that I still believe my best chance at conversion is referral or word of mouth, not better text on a website.

Javascript free site

If you need a javascript free site, or focus on users who don’t have javascript capabilities (those who use screen readers, for example) or browsers that don’t support javascript, then GWO isn’t a good fit.  That doesn’t mean you should give up on optimization, it just means that GWO isn’t the solution.

Google trust issues

For providing this valuable service, Google could get a look at a lot of interesting data including how many websites optimize, what site admins are tracking, and what URLs those admins consider important.  I have no idea what Google actually does with the data–the company may not track the data at all.  I did a bit of looking on the GWO forum, but didn’t find anything useful.  However, if you don’t want Google having access to this data, then you shouldn’t use GWO.  I don’t use Google Analytics for this very reason.

Speed is essential

Since this is a javascript download, it will affect page load time.  From Firebug, I see that it is a small download (7KB total, over 3 requests–for the test page).  This is not significant, but if you’re aiming for the fastest website, or you’re aiming at users on a slow connection, you might steer away from GWO.

Not enough traffic to your site

If you don’t have much traffic, your effort will be better spent driving more people to your website.  Whether you use search engine optimization, TV advertising, pay per click campaigns, or my favorite, regularly posted organic content, traffic is a prerequisite to using GWO effectively.  How much traffic?  Well, I was able to get conclusive results in my JAAS experiment with 3466 views and 48 conversions in just about 3 months.  That’s about 40 views a day.  I was not testing a ton of variations in my content (only 3).

Your site doesn’t let you put custom javascript on pages

This is the case with wordpress.com blogs (wordpress.com doesn’t allow any custom javascript, due to WordPressMU’s architecture), and I’m sure is common among other ‘build a website easily’ systems.  Not much to say about this, other than that if you’re really using the web as a channel, and not just an online brochure, it might be worth moving to a more flexible site.

Not enough time

I don’t believe this is a valid excuse–spend 7 minutes and watch the video; I believe you’ll see that this is worth a bit of investigating if the above scenarios don’t apply to you.

I can’t think of any other reasons not to use GWO.  Feel free to leave a comment if you feel I missed something.

What are your next steps?

Well, if I’ve convinced you that GWO is worth looking at, you might want to do a bit of further research. Here’s the website optimizer homepage.  Here’s the official GWO blog.  Here’s a great article full of tips for GWO.  There’s a book called Always Be Testing that seems pretty well received that you might want to check out.  I have not read it.

Disclaimer: I’d love to help you out with this (if interested, contact me), but firmly believe that almost anyone can take 30-45 minutes and implement this on their website.  I think GWO is great, cool, useful technology and want to see it used more to make the web a better place.

Open Source Ad Server Roundup

I found this vlog post about a social network building their own advertising infrastructure to be interesting.  Basically, Dogster founder Ted Rheingold (whose lapdog gives him a Bond-villian-like presence during the interview) argues that building your own ad pipeline is harder than using an ad network, but is far more profitable and sustainable.  Ad networks are easy to slap in and give a startup instant revenue, but automated content targeting leaves something to be desired.  In addition, there’s no relationship built between the content purveyor and the advertiser, which leaves the content purveyor more vulnerable to advertising cutbacks.  Advertising salespeople are the easiest to hire, and the easiest to fire, as they should pay for themselves.  (As an aside, here’s an interesting article by Jakob Nielsen talking about how “paid search confiscates too much of a website’s value.”)

I passed it along to a friend who is building a directory site around local Colorado farmers and food and he mentioned some interest in it.  On my own, I took a look around to see what was available for self managed website advertising, and was surpised at the paucity of good open source ad serving software out there.  After all, advertising is one of the great business models (of the web, and of all time); I expected to see a bit more code out there.  But perhaps ad network software isn’t anyone’s itch.  Or maybe there’s no demand for it–sites are either small enough to use Adsense, or they are big enough to pay for a commercial ad server.  Regardless, here’s what I found:

There were a number of projects on source forge that seemed appropriate, but nothing that was actively maintained and useful (lots of projects started in 2001, and dormant).  Adsapient seemed the most useful, but they say on their website: “AdSapient Ad Server is an open source ad server that can be used as a platform for building your own ad serving technology. We recommend using it for educational purposes though.”  Not exactly a ringing endorsement.  Update, 4/27/2009: Someone who worked on Adsapient has started a new ad server.  More information below.

For some reason, this didn’t show up on my search of Sourceforge, but OASIS is definitely an ad serving and management solution.  Last release was 2007.
There is a company that offers hosted OASIS and OpenX ad serving solutions, but they’re rather pricey.  Another (closed source) option is Google’s ad management solution.

The best solution I could find was OpenX.  They have a demo site that works, they are continuing development as you read this, they have a free hosted solution good for up to 25 million impressions a month, and at that time, you can choose to either pay them a monthly fee, or download, install and configure the software and run the ad server on your own box.

Now, I haven’t spent enough time with the OpenX UI to know if there are dealbreakers in there, but based on pricing, ongoing development effort and freedom, I would definitely recommend OpenX.  Here’s an interesting discussion comparing the hosted OpenX solution and Google Ad Manager.

[tags]google ad manager,openx, oasis, ad serving, hosted ad solutions[/tags]