Advertising is Obsolete

Advertising is obsolete.

It is technological innovation, not consumer manipulation that will drive humanity towards a better future. You wanted flying cars, but got 140 characters for a reason: it was more comfortable for everyone involved. Companies didn’t have to invest in R&D, because they could convince customers to use inferior products through advertising. And consumers were too comfortable being fed cheap tech products where their attention and state of mind was being monetized. (Because as The Social Dilemma taught us, it’s not your data which is for sale at Facebook, it’s the subtle shift of your preferences that is being bought and sold).

The Obsolescence of Advertising in the Information Age argues that in today’s information age, consumers can get all the information they need about the products and services they wish to purchase from the Internet, so advertising is no longer necessary. Advertising can only serve to persuade consumers to buy products not on their merits, but on their image. This serves to weaken market signals which would otherwise let the best products rise on their own.

Consider one market: video games. Is there a single game where the ad-supported version is better than the alternatives? Which game are people still going to be playing in 50 years: Stardew Valley, or Farmville? Easy answer: they already shutdown the original Farmville because people moved on.

I’ve seen this first-hand, when I coded games for several app stores. Early on, I missed the chance to get in early on the Apple App Store, or Google Play, but Microsoft eventually came around with Windows Phone. My friend and I wrote classic games, different variants of Solitaire, and a few experimental titles that all got decent downloads because there wasn’t anyone else focusing on Windows Phone at the time. We started making good money from our ad-supported games.

Of course, such a situation wasn’t going to last forever, and competitors started showing up. They knew how to hire teams to do the coding, QA, and graphics for a new game in China, while we did almost everything ourselves.

When we realized that our new livelihood was at risk, we knew we had to step up to the challenge. Our response to this was to start investing the money we were making from our ad-supported games into buying our own ads to promote our own titles.

At first, buying ads revolutionized our business. With each game that we released, we would heavily promote it in our own titles, and buy ads in other games to get even more users. This caused our apps to go up in the rankings, and get more natural downloads from people just visiting the app store home page. We made lots of money, and invested plenty back into out-advertising the competition.

But then, our competitors caught on, and they were soon doing the same thing too. We were all just buying ads in each other’s games hoping to draw users to our own particular flavor of Solitaire. Long gone were the early days of fun and innovation. You had to make the games that would advertise well, and you had to use every trick in the book to retain the users you brought in.

Before we started advertising heavily, we tried out experimental titles, most of which failed on the marketplace, but at least they were innovative. As the business became more about advertising, we stopped all experimentation, and just focused on our core customers: the advertisers. Screw the users, it was the advertisers that paid us at the end of the day.

What was the point of this exercise? Did we manage to make a particularly innovative version of Solitaire for our users? We certainly had nice graphics and plenty of bells-and-whistles, but most of our optimizations were around user-retention and finding better ad-placements.

Eventually I got off this treadmill, but many things about it still bother me. We sold so many ad placements in our games, but what did that accomplish? How much did we shift our user’s opinions? In which directions, and on which topics? (We definitely showed plenty of election campaign ads for both sides) I have no idea, because the ad exchanges don’t expose that sort of information.

I’d like to see some platform ban advertising from their app store, and try out the policy proposed in The Obsolescence of Advertising in the Information Age . I predict we’d see more innovation, experimentation, and ultimately a stronger mutual respect between users and developers.

PowerPipe - Drain-Water Heat Recovery Review

We recently had a chance to install a new water heater, and with it, to install a Drain-Water Heat Recovery system. I wanted to share our experience and some real numbers on the cost savings.

A Drain-Water Heat Recovery system can save you money on your water heating bill by recovering some of the heat that you are pouring down your drain any time that you use hot water in your home. It takes that spare heat and pre-heats the water coming into your regular water heater, which then requires less energy to do its job.

A typical application (Source: US Dept. of Energy)

In our system, we have a typical tankless hot water heater (but these systems work with tank systems too). The 3-inch drain pipe from the master bathroom runs in the wall just behind the water heater, so there was room to install a 48inch long, 3 inch diameter PowerPipe system.

Our setup, with a PowerPipe product installed on a 3-inch drain pipe. (48 inches long)

Real World Performance Numbers

On a November evening in the Pacific Northwest, we got the following numbers.

Inlet temperature from the city 57°F
Output of PowerPipe system 73°F
Temperature Rise (73-16) = 16°F
Water heater set point 120°F
Efficiency Gain 25.4%

We’d expect that the efficiency boost will be higher in the winter (colder water coming in will absorb more heat), and lower in the summer. Measuring on a typical Fall day seems like a good baseline.

The PowerPipe brand itself advertises around a 45% efficiency gain for this model, but it’s likely they are estimating a much colder input water temperature, like you’d see in a typical Northern climate.

Overall, we use around 30 therms (a therm is 100k BTU) per month on hot water, so the savings will be around $10/mo in our area. With a ~$600 cost, that’s a payback period of 5 years.

Pozotron Audiobook Proofing

The latest startup I’m working on is Pozotron, an audiobook proofing tool.

We’ve created software to help people who create audiobooks. Using Pozotron, you can quickly check that an audio recording matches the text of the script.

An example screenshot of the Pozotron proofing tool.

You can also follow along, as the cursor moves through the script to highlight each word as it’s being read. This lets you click on any word in the script to jump straight there in the audio. (Which is a huge plus to anyone editing a long audio file like this).

Any place that has a missing word, added word, long pause, or other inconsistency is flagged with a red underline that you can review.

The process of recording a new audiobook can be very time consuming. On average it takes 6 to 8 hours of work to create just 1 hour of a finished audiobook. Most of this time isn’t spent recording, but going back and editing, proofing, and mastering your original recording.

Using Pozotron, you can quickly check a recording for mistakes in about 1/5th the time it would take you to listen through the whole thing again.

My goal with Pozotron was to bring the latest research in the field of machine learning to the public in a way that is useful today. We have our own machine learning model, on top of a stack that makes it really easy to see and manage the results. I’m really proud of the team who’s made it possible.

Why do Google ads point to adware?

Try downloading Paint.NET, an excellent free image editor, or Audacity, an open source audio editor, without an adblocker these days, and you’re in for quite a surprise. A disturbing trend in the type of ads served via Google Ad Sense and its affiliates will likely bring you to a page that looks like this:

Now, there are two very distinct download buttons above the fold, and actually neither of them will take you to the real installer you’re looking for. Even an experienced computer user could easily be misled into clicking one of the bright green download buttons. The Google “AdChoices” tag is very small, and the ads are padded with lots of whitespace as if to appear a genuine part of the main site.

By now, you probably see where this is going, and you can guess that following either of the huge green download buttons will riddle your computer with spyware. Even worse, these companies have also purchased ad keywords on major search engines (see the second case study), which also redirect users to their altered installers when people search for the names of popular open source packages.

These advertisers are likely not breaking any explicit rules, but they are using every psychological trick in the book to get you through their hijacked installers. Large green download buttons help their conversion rates, and large groups of confusing settings make it tempting to just hit next repeatedly through their installers, leading to disastrous effects. One installer conveniently minimized itself to the icon tray while it was performing its toolbar downloads and installations, yet the program I wanted to install (Audacity) popped right up, making you think that the installation was a simple success.

Google and other ad providers are certainly earning their revenue from these misleading ad clicks too. But you can’t expect open source software teams to buy out their own keywords at great expense just to prevent these types of installers. Operators of legitimate download sites often place ads to help pay for server and bandwidth costs, and manually filtering out the misleading ads is just playing a cat and mouse game.

If Google wants to help make the web a better place, I think they should take a stronger stance against these misleading advertisements. Reject them outright and the web will become a happier place!

If we click one of the links from the Paint.NET homepage, we are taken to a site like this one:

Seems simple enough, better click Download here too and run the appropriate installer…

Hmm, this doesn’t look like the installer for Paint.NET that I was used to!

Stepping through the default installation settings predictably installs spyware/adware, yet that download link we started with was so obvious, bright, and green on the Paint.NET page!

Within 30 seconds of installing on a patched, clean, Windows 7 install, I’ve been asked to change my homepage twice, and have seen four separate ad popups. Good thing this was in a VM…

Let’s say that instead I am searching for Audacity, a great free tool for audio file manipulation.

Free Audio & Recording Software, that’s exactly what I want, let’s click! Look, Google even made it stand out in orange for us.

Looks like I got the download page I was looking for, even the screenshot looks right, and look, almost a million downloads already…

Now, you don’t actually read through this text do you? Like anyone else, you just keep tapping accept until it shuts and the installation progress bar shows up.

Hmm, free games, dolphin screensavers, free music downloads, this doesn’t look good.

And look, here come the popups!

And they even hijacked the IE new tab screen, how classy!

Debugging Behind the Iron Curtain

Sergei is a veteran of the early days of the computing industry as it was developing in the Soviet Union. I had the pleasure of working and learning from him over the past year, and in that time I picked up more important lessons about both life and embedded programming than any amount of school could ever teach. The most striking lesson is the story of how and why, in late summer of 1986, Sergei decided to move his family out of the Soviet Union.

In the 1980s, my mentor Sergei was writing software for an SM-1800, a Soviet clone of the PDP-11. The microcomputer was just installed at a railroad station near Sverdlovsk, a major shipping center for the U.S.S.R. at the time. The new system was designed to route train cars and cargo to their intended destinations, but there was a nasty bug that was causing random failures and crashes. The crashes would always occur once everyone had gone home for the night, but despite extensive investigation, the computer always performed flawlessly during manual and automatic testing procedures the next day. Usually this indicates a race condition or some other concurrency bug that only manifests itself under certain circumstances. Tired of late night phone calls from the station, Sergei decided to get to the bottom of it, and his first step was to learn exactly which conditions in the rail yard were causing the computer to crash.

He first compiled a history of all occurrences of the unexplained crashes and plotted their dates and times on a calendar. Sure enough, a pattern was clearly visible. By observing the behavior for several more days, Sergei saw he could easily predict the timing of future system failures.

He soon figured out that the rail yard computer malfunctioned only when the cargo being processed was live cattle coming in from northern Ukraine and western Russia heading to a nearby slaughterhouse. In and of itself this was strange, as the local slaughterhouse had in the past been supplied with livestock from farms located much closer, in Kazakhstan.

As you may know, the Chernobyl Nuclear Power Plant disaster occurred in 1986 and spread deadly levels of radiation which to this day make the nearby area uninhabitable. The radioactivity caused broad contamination in the surrounding areas, including northern Ukraine, Belarus, and western Russia. Suspicious of possibly high levels of radiation in the incoming train cars, Sergei devised a method to test his theory. Possession of personal Geiger counters was restricted by the Soviet government, so he went drinking with a few military personnel stationed at the rail yard. After a few shots of vodka, he was able to convince a soldier to measure one of the suspected rail cars, and they discovered the radiation levels were orders of magnitude above normal.

Not only were the cattle shipments highly contaminated with radiation, the levels were high enough to randomly flip bits in the memory of the SM-1800, which was located in a building close to the railroad tracks.

There were often significant food shortages in the Soviet Union, and the government plan was to mix the meat from Chernobyl-area cattle with the uncontaminated meat from the rest of the country. This would lower the average radiation levels of the meat without wasting valuable resources. Upon discovering this, Sergei immediately filed immigration papers with any country that would listen. The computer crashes resolved themselves as radiation levels dropped over time.

Korean Translation provided by Edward Kim