Monday, December 5, 2011

RickRolling 1000 people a day

I wrote previously about the voracity of some folks to discover Mailinator's list of alternate domains.  If you recall, the point of alternate domains are, to me anyway, to alleviate the worry that websites might 'ban' email addresses ending in the mailinator.com domain.

People use Mailinator when they want to use a website but not give out their primary email for fear of future spam. Preventing that use is asking the customer to reassess a decision they've already made (not wanting to give out their real email) which of course might result in their answer being "nah".

Or, of course they could decide to simply go create a fake yahoo account. That takes a few minutes and before Mailinator, when I tried that I often found myself losing interest in the whole idea before I was done.

In my last blog post I mentioned we get emails similar to this from time to time:

Hi! Love your service. Can you send me the exhaustive, comprehensive, and complete list of alternate domains so I can pick a nice one that suits my individual personal style? kThxBai

And when I say from "time to time", I mean like last week too.  Giving out that list of course would be completely counterproductive to the point of having the alternate domains.

I did some minor front-page spruce-ups this weekend (like the dinosaur eating spam?) including giving a relatively real-time count of the amount of email Mailinator gets in the last day  (15 million when I just glanced at the homepage), I made the randomly-generated names more readable, and matched them up with alternate domains as examples.

In addition,  I added a bunch more alternate domains. Also if you recall, you can point your own spare domains at Mailinator  and send email to those - then you have your own Mailinator alternate domain!

At this  time there are literally several hundred (maybe over 1000, have to check) alternate domains.

It occurred to me though, that  I might be able thwart some of the people emailing asking for a full alternate-domain list by actually giving them a link where they can see the only version of the full list I'm willing  to publish.  You'll see it on the homepage as:


Want to see a list of ALL Mailinator alternate domains?


I made the link small and didn't expect many people to click it. Maybe just the curious few. Well, to my surprise, the curious few turned out to be about 1000 a day. Nice. I surely underestimated the number of curious people out there.

Feel free to click yourself, but don't expect to actually see a list of any domains  Oh, and enjoy the video. :)


Friday, July 1, 2011

How to get gmail.com banned - not that I did this

When I started Mailinator, a LOT of people told me it wouldn't work because websites would ban it right away. Ban it with reckless abandon. Ban it like the new thing on the internet was to just sit around and ban Mailinator all darn day long.

As it turns out, that didn't happen. Sure, some sites do ban Mailinator and some are even really (really) excited about the idea, but in the grand scheme of things, it's not really very many. Thousands of people use Mailinator everyday, so clearly, its a useful tool that many sites accept.

Back in the day however, I sadly fell prey to the words of doom that I was being fed. I mean, holy mackerel - what if sites DO ban it? What then?

So I drew up a plan. A plan, that at this time I can say I may not be fully proud of. A plan that involved guile, wit, a few domain names, and some rate-limiting (thread-safe) data structures.

I write this now because, well, for the most part the war is over and Gotham has grown past needing Batman anymore. Mailinator is not really the rogue tool it once was. Heck, hotmail supports disposable email now. It's mainstream.

Typically there are two reasons people want to ban Mailinator. A few years ago, people really had some sort of notion that your email somehow equated to your identity. Given the radically insecure setup of email in general, that was really a ridiculous technical assumption. Nonetheless it was pervasive.

Secondly, people banned Mailinator for fear of people abusing their website. Now keep in mind, anything you can do with Mailinator, you can also do with YahooMail or Hotmail. Its just that Mailinator lets you do it faster, but Yahoo is plenty happy to let you sign-up for 100 email accounts.

I get occasional emails from people asking me to have Mailinator stop accepting email from their site. Usually for the reason of stopping abuse. If they're nice and it makes sense, I almost always do it. But in my experience, usually when the existence of Mailinator is pinpointed as a cause of abuse, it is in truth merely an avenue that is already inherent to the internet or your website. Even shutting Mailinator down wouldn't solve the problem. The bad-guys just go somewhere else and keep on abusing.

Any sort of abuse is needless to say, no fun for anyone. Mailinator has specific code built-in to detect scripts and stop them.

In truth, Mailinator's system for detecting and shutting-down scripts and abuse really only serves one purpose. Its like that silly metal bar people put on the steering wheels of their cars. Let's be real, if a thief really wants your car, some dinky metal bar on the steering wheel isn't going to do diddly to stop him.

Same with Mailinator's anti-abuse code - it won't stop a determined person - but it does make it more of a pain than simply using something else.

So -Dear hacker bad-guy abuser dudes - other disposable email sites probably don't have that sneaky anti-script pain-in-the-butt hacker-stop code like Mailinator. Go use them.

There....

1) Solved hacking and abuse on the internet ? --> Not even maybe
2) Solved a little of the hacking and abuse on the internet possibly for me? ---> DING!

Ok, back to the story - as I said, in the beginning, the idea of wide-spread Mailinator banning scared me a lot. So what did I do? I bought some additional domains for Mailinator.

To this day, you can email bob@thisisnotmyrealemail.com and it will end up at mailinator (in the bob inbox) just like bob@mailinator.com.

Cool. Alternate domains. Problem solved.

Wait a second. How exactly do I tell the world about the alternate domains without telling the people that want to ban them all?

Every few weeks I get an email like:


Hi! Love your service. Can you send me the exhaustive, comprehensive, and complete list of alternate domains so I can pick a nice one that suits my individual personal style? kThxBai


At first, I was like "Neat! People love Mailinator and want to...heeeyy.. waaiiit a second".

If I give them the whole list, then they will, um, have the whole list. And then they can ban the whole list.

Ok. I know. I'll list one random alternate domain on the homepage every time you visit. No one will have the whole list. Just one here, one there. Perfect !

There problem solved. Again. Well, sort of.

Soon after I put up this "one random alternate domain per homepage load" system - the scrapers started. Every now and then I'd notice several hundred homepage loads from the same IP in a very short period of time.

They were scripts; scripts that were loading the homepage over and over and scraping out the random alternate domain that was shown. Sneaky. By doing this they could eventually formulate the entire list of alternate domains.

Drat. Now what. For awhile, nothing. I just let them go. A few months later however, I got an email from a Russian guy (sorry Russian guy, I don't remember your name).


You are dumb. Your homepage is easy to scrape and doesn't change so its easy to scrape your alternate domain. You are dumb.


He was right. Well, I'm not sure about the dumb part, but my homepage was easy to scrape. Someone could probably write a script to scrape it in short order. Probably just took a few minutes.

Could I make it harder to scrape? Well, I could, but wouldn't really slow anyone down much.

It was then however, I had a flash. An idea of simply epic proportions. A thought so crazy - that dad-burn-it, it just might work.

Let's not make the page scraping harder - let's make it EASIER.

I removed the bit of code that displayed the alternate domain and put it in its own (teensy) webpage. That "webpage" had absolutely nothing in it, except the text for the randomly chosen alternate domain itself.

Then, I embedded my new tiny webpage into the homepage (so it showed as before). Basically, to the viewer of the homepage - nothing was different. You saw the homepage and a randomly generated alternate domain, just where it was.

But to the folks that had been scraping my site, things looked plenty different. In fact, I probably broke all their scrapers (Sorry nice people trying to get all my alternate domains just to ban them! (ok, not really)).

Now here is a finer point of semantics. If you go to the Mailinator homepage, there is some text that says "Here is an alternate domain" followed, by, well, a randomly chosen alternate domain.

However, now that I split off that tiny little webpage with JUST the alternate domain in it - you could go there too by typing in the url directly. And you'd see nothing BUT the alternate domain. No surrounding text. No text saying "this is an alternate domain". That little page showed a domain, but made no claim about what it was displaying.

For your browsing pleasure, here's the only direct link to that page that I know of: Go ahead, reload the page a few times. (You can see this also on the Mailinator homepage on the lower left).

After the script guys got over the minor annoyance of their scripts breaking because o f my new setup, I'm sure there were office parties across the nation. Mailinator! Now even easier to scrape!

Now for the record, the rest of this post is hypothetical. An unimplemented idea if you will. Who knows - I'll bet nothing you read here on out ever happened. Just random thoughts. Musings. One big theory. Consider it random daydreams of guy who runs a fun email service.

Remember all that script-detecting code from the anti-abuse system? Well, what if I put that in here too I thought. Let's "detect" when a script is hitting our weensy alternate-domain page.

And, what if we also detected when the little web page is being viewed but not "in" the homepage - but by itself (just like the link above). And what if after about 30 page hits from the same script (or so), stop displaying actual alternate domains and start sprinkling in some other things. Hmm... but what other things?

I know - how about "gmail.com". Or, um "hotmail.com". Or maybe, "yahoo.com".

What, in our completely and totally hypothetical situation, would that do?

Well, let's see. There are these folks out there running scripts against Mailinator collecting all my alternate domains. Those scripts probably put results in a database or something and connects to their website. When one of their users tries to sign-up on their site using one of my alternate domains, it's in their database as a banned site and its immediately rejected.

Now imagine the wacky fun if somehow, some way, (totally theoretically speaking) some silly person snuk "gmail.com" in that list. I'd guess banning your users trying sign-up with "gmail.com" addresses is probably not what you want.

And, hypothetically speaking if you had code that would sneak in these non-alternate-domains in the page they weren't supposed to accessing anyway, when would be the best time to set it into action?

Well, those scripts ran at many different times, but just after midnight seemed like a popular time-slot.

If such code existed, making it active Sunday morning from Midnight to 2am seems nice. I mean heck, if my website stopped accepting signups from "gmail.com" on some Sunday morning, I'm sure I'd be downright chipper to hop into the office and find out why.

Boy. If all that stuff happened - I wonder what kind of email conversations I'd have on that Sunday afternoon? I bet they'd be like:

Your alternate domain list displayed 'gmail.com'!
Hi Fred, no it doesn't. Just reloaded the homepage 10 times, nothing like that. all the best.

or I bet another would be like:

Yahoo.com? What is this some kind of joke?
Sorry, did you mean to email this to Carol Bartz? Not sure what you're talking about.


Phew. Well, that's surely a fun thought experiment. As you can see from the link above however, it surely doesn't do anything like that. Honestly these days, most of the scrapers are gone. I think simply that the internet evolved and more of them simply lost interest in the fight.

Every now and then I'm still asked what I think about banning Mailinator. I've mellowed a lot since the early days and I pretty much always give the same answer. If you think banning Mailinator going to solve your problem, go ahead. In my experience, it won't. And by asking I am guessing that you are making some assumptions in your site that will surface as issues in other ways.

And of course, script writers, you now have the direct link to the alternate domain page above. Scrape away. But keep in mind, the best way not to trigger any Mailinator abuse systems is to not do anything "too fast". Those script detectors are pretty fickle little beasts. It's not a bad idea to try and stay on their good side.

Wednesday, June 15, 2011

Why you see the Ads you see

Since we've launched Clickochet (as in "Click Ricochet", an Ad Trading Network), I get a rather constant flow of questions about how we do ad targeting.

Honestly, I've never been a person to use an Ad-blocker and the reason is that if I go to a website that brings me value, it's a small price to pay to see ads in exchange. The value that Google search brings me EVERY day is immense - and all I have to do is view ads that once in awhile are actually what I was looking for anyway? Deal. Reddit actually thanks its users for not using ad-block.

The trick here however is to bring people "good", "quality" and "relevant" ads. And it is of course, our goal at Clickochet is to try to bring you the most relevant ads to you as we can.

So, after writing a few responses to nice Clickochet users about how our ad-targeting works, I've decided instead to simply - let you see for yourself. At least for now, let you into the belly of the beast.

After spending a good number of months staring at ads, I'm a bit obsessed with them now. It's rather rare that I don't go to a page with Clickochet ads and push my nose to the screen wondering "Why is THAT ad showing THERE?!"

I usually (usually) then continue that self-conversation with, "oh. oh. ok. that makes sense." But to be able to answer that for myself, Clickochet uses some diagnostic cookies to turn on extra information about why you see the ads you see. And actually - more important for me - it has facilities to tell me why you don't see the ads you don't see.

A few disclaimers about what you're about to see. Pretty much, 100% of this stuff will change. Ad targeting is an exercise in perpetual tweaking and change - and given the infancy of our network, you can count that statement as double. Also, keep in mind that Clickochet is a new network. We're working furiously to build the best network for our customers that we can - but our targeting mechanisms are relatively boilerplate at this time. Finally, this stuff isn't for general consumption - in other words, it's not meant to be "pretty" nor am I guaranteeing it works across browsers (so use firefox or chrome).

So to begin, in a separate browser window or tab, hop over to one of Clickochet's favorite yoga sites, Qi-Yoga.

http://www.qi-yoga.com

Nice ads huh? And chances are you'll see an ad like this:



I guess you'll see that particular ad because:

1) I chose "yoga" specifically because we have a few, but not too many yoga sites in the system (at the moment) so that determinism helps writing a semi-predictable blog post.
2) This ad is contextually relevant to qi-yoga and our contextual system realizes that. (the two sites are not otherwise related)
3) I don't know the fine folks over at HealthAndYogaRetreats.com but I slipped them a nice pile of extra impression credits so that their ad won't "run out" in the middle of my examples.

Ok - keep qi-yoga.com up in a browser window and open yet another browser window (welcome to my world). This time go here:

http://www.clickochet.com/pages/diag

You don't have to sign-up or be logged in. Again, this is arguably an internal page. Press the "Turn On" button for both options. Note: The 2nd option CAUSES A POPUP for every page you load that has Clickochet ads. Again, this is a diagnostic page no one sees unless the turn on that cookie. And incidentally, to follow along, you'll need to tell your browser to "allow popups" from qi-yoga.com I'd guess.

Great. Now refresh the qi-yoga.com page.

Welcome to the diagnostic view. Ad titles are now color coded and have been suffixed by a single character. That character signifies the targeting mechanism used that turned that ad "on".



The popup window is a list of most of the ads that were considered for showing on this page. (I say "most" because some might have been short-circuited once we found 3 acceptable ones.)

The popup you see should look something like this:



The first 3 ads in the diagnostic ad window are the ones that were shown. The rest (and sometimes the list is long, are the ones that were rejected). The lists will perpetually change as you hit refresh (the system knows when you hit refresh over and over and no one is charged or awarded credits for that behavior). Also, keep in mind that refreshing the page a few times will help our examples here but aren't a normal ad viewer use-case. People typically see one set of ads and then leave the page. So you'll likely start getting less relevant ads the more refresh.

So, what are the title suffixes you might see? The represent the different ad targeters and specifically which ad targeter decided to show you that particular ad.

(C) - A "contextual" ad, for some broad definition of "contextual". Back to my theme that "everything will change", the contextual engine is finding its sea legs. It sometimes expands its search and sometimes contracts it to find ads that could be relevant (it then keeps track and hopefully finds a happy place). Hence, you might see "contextual" ads you don't think are all that contextual. Don't worry - if that's true, they'll cycle themselves out eventually. Again, I chose the yoga theme here because of the median set size of what the contextual targeting finds.

(A) - A "site affinity" ad. Refresh the page a few times if needed to see HealthAndYogaRetreats again. You'll notice it is an affinity site. Yes its contextual, but more importantly, people have clicked from qi-yoga to healthAndYogaRetreats a few times. One click won't do much - but a pattern of clicking and the system takes notice. Those sites become (spiritually) linked in the system.

This is a very important feature beyond contextual advertising. The classic example is that "Budweiser" ads might do very well on a "Nascar" website. But contextual analysis might not determine that (in fact, drinking and driving might be a negative contextual correlation!). But of course let's hope the budweiser drinkers are watching the races, not participating. So when they click the budweiser ads, the system realizes "huh, for some reason these two very unrelated things have an affinity for each other".

Affinity relationships perpetually degrade and require, again, a pattern of clicking to keep them alive.

(U) - An underserved ad. Simply put, there are ads in the system that haven't found a solid niche to display in. These ads can be pretty non-relevant at times but the idea is that they won't individually show up all that often on any given site. And showing them serves two purposes -

1) to get underserved ads some impressions, and
2) remember site affinities from above? How do we 'discover' site affinities if we only show direct contextual ads. Showing ads from a larger pool gives the affinity system a chance to discover unexpected affinities.

You'll see more underserved ads if you refresh the page a lot - which again, isn't the "normal" use case.

(1) - actually, any numerical digit you see means we're running an experiment. Again, every last thing here is subject to change, but experiments are even more transient than that. One experiment we're working on is transitive relationships between site affinities. So if Budweiser ads are good on Nascar sites, and then we discover Nascar ads are good on fishing sites - are Budweiser ads good on fishing sites? (I'm guessing that's an affirmative)

If you'll notice, none of the targeting above has to do with YOU (or more specifically your browser since we never know about "you"). All those targeting mechanisms have to do with the sites, ads, and contexts involved. Site affinity is based off clicks but it's really about all clicks in the system - not really about you.

That being said - it's purely possible that although you like both budweiser and nascar - you might like yoga too. And although you are an awesome beer-drinking race-car-driving yogi - that's probably not a common combination. Showing a yoga ad on a nascar site as a general rule is probably wrong - but for you specifically, it might be right.

So, what we can do for you specifically is try to find things that you like. This is of course where people get worried about advertisers finding out private information about users. Clickochet does not keep personally identifiable information about anyone who views the ads (please see our privacy policy on the site). We keep a cookie noting where a browser goes (and note that if people share a browser, that browser becomes a collection of all browsing destinations, regardless of any given user).

The goal again is to show you the most relevant ads possible. That brings the most value to people viewing ads and the most value to people showing ads. Of course, Clickochet has an opt-out cookie (see the front page of Clickochet for a link or go directly to http://www.clickochet.com/pages/optout to turn it on). But! Don't turn it on just yet or the rest of this blog article won't work!

Ok. Let's go to another Clickochet ad site - oh, wait, you're already on one. This blog has come Clickochet ads on it in the right-hand side-bar. Ok, note the ads you see there and .. hit refresh. Here, I'll bookmark this blog entry for you so you can pick up reading here.

BOOKMARK FOR WHEN YOU REFRESH THIS BROWSER WINDOW TO SEE RETARGETING

Ok .. hit refresh.

BOOKMARK FOR WHEN YOU REFRESH THIS BROWSER WINDOW TO SEE RETARGETING


Ok.. great. Now.. what ads shown? There's a high probability (note: EVERYTHING involved here is a probability) that you'll see a red ad for Qi-yoga followed by the suffix: (R). (if not refresh the page once or twice)

(R) retargeting. It seems almost counter-intuitive but the ad industry has plenty of documentation that people will click on things they already have seen - and/or simply want to see again. The system now knows you went to qi-yoga.com (because I told you to earlier in this case). And thinks, "Hey.. this person likes that site" - so it gives a reasonable probability to show ads for qi-yoga to get you to go there again.

There's surprising advantages to this. If you liked qi-yoga and saw it last week, you might be interested in seeing if the site is updated. Qi-yoga likes this because as with all websites, there is a lot of bounce - people come, go, and never come again, This reminds you of that great site you saw. Clickochet likes this because it keeps you within our community of sites that are helping each other exchange traffic.

And then.. we can run experiments based off that correlation. Maybe there is a site affinity between this blog and qi-yoga. Or, maybe its simply a personal preference of yours and maybe we can help you discover other yoga sites. The possibilities are endless.

If this all seems odd that all this is happening in the background, I'll note that Clickochet is a newbie in this arena. Every ad system out there does this and more (goto zappos.com, browse some shoes and then browse around the web - see how many zappos ads you then see).

As I said - you can opt out of this type of browser-based targeting on our opt-out page if you like. But there's nothing more nefarious there than simply trying to show you ads for things you might be interested in.

Again, our goal is help our community of sites trade traffic for traffic. As we say in our FAQ - give an ad, get a few - the system really does work. And it will work better and better with the more value we can bring to everyone involved including publishers, advertisers, and web-passers-by.

Sign-up (it's free!) at http://www.clickochet.com

Tuesday, May 10, 2011

Introducing Clickochet: A (free) Ad trading community

I have a lot of ideas for apps/websites/start-ups. No seriously - I mean a lot. Some of them aren't all that bad either. And some are too - really bad, like "waking up in the morning and thinking 'what the heck were you thinking'"-bad too. I mean really.

Alas, usually even with ones I think are awesome - I typically end up finding some fatal flaw. It could be business model or timing or ... who knows.

There's a lot of factors that make me consider an idea for more than a few minutes much less actually work on it:

1) Is it in my skillset
2) Is it the right scope - too small and its a weekend project, if its too big, am I the right guy to assemble the infrastructure (team, investors, etc) to bring it together.
3) How hard will customer acquisition be?
4) Does it have a viable business model?

There's a lot more subtle questions, but these are some of the bigger disqualifiers.

Once in awhile however I get one that sticks. One that I say "why didn't I think of that !" - and then I say "Oh. I did!". Mailinator was one. And this - this is another.

Last fall my girlfriend started a celebrity news blog. I'm not much into celebrities but she was pretty passionate about it and it was exciting to share her enthusiasm.

As with any new site, she was trying to gain traffic. So to help with that effort, I bought her $100 worth of adwords. I've bought adwords for many different companies and projects, but I was still rather surprised with the results. For $100 I got a 3-day (or so) ad campaign that yielded 100 visitors.

The interesting part was that all this time, she was running Adsense - that is, ads to make money on the site. Now, ask anyone trying to make money with Adsense why they don't "buy" ads to gain traffic and they'll tell you, it's losing proposition. And no wonder - that's the crux of how ad networks make money.

Sure, they sell ads. But for a moment, consider a website that does both - it's both an advertiser and a publisher. In that scenario, ad networks sell you ad impressions for money - and then trade you money for ad impressions. Simply put, there is an exchange rate on ad-impressions to money and just like the kiosk at the airport which changes currency, they take a "cut" in both directions.

And the cut can be pretty big. In the case of my girlfriend's site, I successfully managed to convert $100 into 15cents by changing it into ad-impressions and back again (Actually its even worse because the girlfriend gets to keep the 15cents, but we don't bring that up).

Now my assumption above is for sites that are both advertisers and publishers. Many small sites are publishers, but not so many are advertisers. So my assumption is, well, rather assumptive.

But why aren't they advertisers? They want traffic too right? Advertising is a way to get it right?

The answer is that those sites would do both, but its non-economical to do so. Buying ads to show ads makes no sense. Even just buying ads is a very expensive method of traffic acquisition - but what if ads were really (really) cheap. Then everyone would buy them wouldn't they? I mean, it would be a cheap method of traffic acquisition.

Ad networks (BTW, I don't mean to pick on Google above, I just had been using their service because they are one of the most accessible ad networks for small sites) provide a valuable service. Clearly - the ad industry is highly alive - they are bringing value to lots of people.

But it occurred to me - how do I make an ad system that brings value to smaller sites. The under-served billions of websites where buying ads makes no sense today. How about I make a system where you trade ad-impressions for ad-impressions. That simple. And, instead of making it where you give something and get a lot less back, what if we fliped that. That is, give one ad impression and get a few back?

I call it Clickochet. Like "Click Ricochet" because that's what it is.

So how do you get more back than you put in? Well, consider your normal banner text ad. In reality, its one ad impression on your website, but it contains ads for 3 different websites within. When you show one "ad", three other sites benefit.

Clickochet is built as a community. We connect it closely with social networks that encourage social interaction and membership. A Social Ad Trading Network. This is key - you're not trading money and ads with a big company, but you're trading ads with each other. Other website owners looking for traffic just like you. Of course we strictly filter out porn and malicious sites, but being a good community member becomes an important factor on how much you get out of the system.

So, in a perfect world, you'd give one banner (keep in mind smaller ad creatives have less ads inside) and get 3 ad impressions. But it became quickly apparent, the world isn't perfect. If someone puts your ad at the bottom of their page, I doubt you'd be happy giving them an ad at the top of your page in return. Or what if their ad quality was low? Or conversely, what if their website had a huge click-through profile? In other words, not all ad impressions are created equal.

All these factors matter. So instead converting ad-impressions to real currency, we convert them to virtual currency. An exchange rate exists, but its minimal and its based on a lot of things - much of it tied to people showing good ads. If you show a banner ad, you won't get 3 ad impressions for it, but that isn't a far off guess either. You'll very likely get more out than you put in.

You are the publisher - you show ads on your site and earn credits.

And you are the advertiser - you spend credits and your ads show all across the network.

You can spend your virtual "impression credits" the instant you make them. Or you could bank them and save them for your new site's impending launch 6 months later. Or take your impressions (from a site like Mailinator) and spend them on your friend's site (like my girlfriend's).

This isn't about replacing existing ad networks. There's no need for that. If you're making money running ads - don't stop.

But unlike buying an ad campaign which costs a lot and lasts a few days (which you surely can still do), you simply give up whatever amount of page real estate you want for Clickochet ads and leave them there. And every day, from here on out, all across the network your page views are giving your a multiple of ad impressions on other sites.

To "prime the pump" I'm giving this virtual economy a boost - an "economic stimulus" if you like. I'm injecting all of Mailinator's ad impressions into the economy without taking them back out. Active users (i.e. you must be earning your own credits somewhat) will get lots of free ad impressions. (note: when I say "all" ad impressions, I mean "most" as I plan to advertise Clickochet on the Clickochet network somewhat).

Of course, it's free to sign up. Free to use. We may introduce a premium service at some point, but you can count on being a member of this community staying free.

Sunday, May 1, 2011

Notes from "The Programming Leap to Multithreading"

I gave a (techinical) keynote at the ICIS conference in Shanghai a year or two ago. It was a fun talk and I was recently asked for the notes so I thought I'd post them.

When I was at Google I spent some of my 20% time simply surfing through the Java code base looking for race conditions. It was a lot of fun and often I was patching code that was stuff that hadn't been changed in forever or was completely out of my normal stomping grounds.

After submitting the code changes with the comment 'Fix a race condition', I can remember at least one code reviewer responding, "Approved. Cool. But, what race condition?"

This talk covers a bunch of the common cases I encountered.

LeapToMultithreading.pdf