Amy Schumer, Viagogo and the “Postponement” Scam

They say that a fan tells 3 people about great service, and someone who has received poor service tells 10. Well, I’m pissed at Amy Schumer’s tour company and I’m pissed at ticket reseller Viagogo for being very scammy. I’d like to shift gears from the usual topics on this nascent blog (tech, data analysis, civic issues, etc.) to share how NOT to treat people who have paid good money for your product or service. If you cannot deliver the goods or service, you need to allow for customers to get a refund.

Amy Schumer and the “Postponed Event” Scam

OK. I’m not an Amy Schumer fan, but my wife is. Or at least, she was.

Image result for amy schumer

About a month before my wife’s birthday, I noticed that Schumer was coming to Seattle to do a stand-up comedy performance at the Paramount Theater. So, for a special birthday surprise, I splurged and bought my wife and three of her friends four front-row tickets for her birthday, so that she could have a fun and memorable night out (followed by drinks before and after.)

Now, these tickets weren’t cheap; I shelled out $1,224.70 on October 20th, 2018 for four tickets from Viagogo, which was an authorized reseller for that event. Yes, this was expensive but I wanted my wife and three of her friends to have a great night out. I figured, it was for my wife’s birthday, we are lucky enough to be able to afford it, and instead of buying physical gifts, the things my wife loves most are laughter and memories with friends.

Unfortunately, about a week or so before the event, Amy Schumer had to opt-out of the show for serious health reasons related to her pregnancy, and announced that decision on her Instagram account.

Now, and this is important — I completely support Schumer’s decision to put her health and her child’s health in the highest priority.

An audience is far less important than one’s health, and performers cancel events all the time, for understandable and far more trivial reasons. I sincerely do wish Schumer the very best of health in her pregnancy and delivery.

But this post is NOT about the fact that she cancelled the performance. It’s about the fact that she didn’t, and still hasn’t. This allows her and her tour management company to hang onto all cash put down on a product that no longer exists as advertised.

If You Don’t “Cancel” You Don’t Have To Refund

My complaint is that she didn’t and still hasn’t officially canceled the event, even though, at this writing, the event never took place as scheduled two weeks ago. No, Schumer has formally has “postponed” the event to some as-yet unnamed date and time. This allows her to hang onto all the money that was paid in advance by the audience for the prior date and time — her resellers (at least Viagogo) are NOT refunding these ticket sales, because they only offer refunds if the event is cancelledBut what is an event that doesn’t happen on its date and time, but which also does not have any known new date or time?

That is sucky to do to customers and fans

I’m financially fortunate, but there are a lot of people for whom a few hundred bucks is a ton of money. Selling a product, not delivering it, and hanging onto the cash while not offering any chance of a refund is a sucky thing to do, and the Better Business Bureau and others rightly push back against it.

At this writing, we paid ticketholders still have no idea what date or time the event is going to be (OK, that’s fine), but we cannot get refunds (NOT fine) and we cannot resell without taking a huge hit (which is again NOT fine.)

Schumer could simply have cancelled the show and let us ticketholders make a decision again about buying for her next showing. She still can do the right thing here.

Instead, at this writing, she is trying to have it both ways, holding the cash many paid ticketholders put down. We thought we were buying a product on a particular date at a particular time in particular seats. We looked at the price, said it was worth it. That does not mean that any other date is also fine.

The way she is handling this is really atrocious. She’s got PR people and they are ducking the issue. When I told her via Instagram that I wish her well in her pregnancy, and that she should ALSO do the right thing and officially CANCEL the shows she’s missing, she blocked me. She’s ducking the issue, and not being forthright about it, and not doing right by her fans. Her tour managers haven’t informed Viagogo, the ticket reseller to tell them to refund our tickets.

Amy Schumer took the weaselly route, and did not formally cancel. She “postponed” the event, but (going on several weeks now) without any new date or time or venue. As a result, the ticketers such as Viagogo will not refund tickets, and reselling them for anywhere near the original value is basically impossible, given that there’s no known date, or time, or place. Her company’s communication on this has been terrible. Nonexistent, essentially. Laughable, maybe — but unfortunately, laughably bad.

The event was supposed to take place on November 24th at Seattle’s Paramount Theater. Tickets were purchased October 10th 2018 on Viagogo. It is now December 6th, two weeks after the originally scheduled events, and (a) no refunds are being processed by Viagogo for this show, because they claim the show was “rescheduled from its original date”, and (b), it has NOT been rescheduled — there is no time, no place, and no venue. So effectively, we customers just need to suck it. We may want to deploy that cash elsewhere. We cannot.

So Viagogo and Amy Schumer’s tour are:

  • sitting on more than $1,200 of my money
  • refusing to refund it because they claim it’s a “postponement”
  • effectively preventing me from reselling these tickets (who is going to buy tickets without a known date or time?)

Look, I can afford it. It mostly makes me angry for all those for whom this was a real stretch. She’s “postponed” shows in many different venues, and has not cancelled them. She tweets out that fans should “check with the box office for refunds” when she knows — or MUST know — that by simply “postponing to date TBD”, most venues and resellers will NOT refund.

That’s incredibly shady and lame.

I’ve taken to posting some questions on her Twitter feed and Instagram feed. While I wished her well in her pregnancy and said it was completely right and fair to CANCEL the show, she still blocked me. But you can jot her a note here.

I think the way she’s handling this is pretty atrocious. I’ll certainly never buy tickets again for this performer, and recommend you do not either. I regret the purchase. She and Viagogo clearly have no real respect for the money that ticketpayers pay them.

The event has come and gone, and maybe my wife will still go with her friends some day. But is this any way to treat your fans? I’d like a refund, which I think is the least that should be done here.

My 4-ticket purchase, October 20, 2018

Schumer announces cancellation on Instagram 6 days before show

No word from Viagogo until 48 hours later, after I contact them

“Postponement” Announcement Flows Through On Facebook, 2 days later

Notice no date or time named for the new show. So that means it’s cancelled, right? Not so fast.

Viagogo Announces “Postponement” on November 20th, 4 days before show

Finally, Viagogo gets back to my inquiry stating that yes, well, it’s postponed, and so I cannot get any refund, but hey… I can always resell the tickets for some unknown date and time! And hey, we’ll keep your $1,200, thanks very much. LAME.


Notice that Viagogo’s lame boilerplate response seems to assume that we all know the new date and time. WE DO NOT KNOW THE NEW DATE AND TIME. You have our cash — in some cases a substantial amount of it — that you’re holding hostage for a show that only exists in the imagination of one or more people to do at some point. Maybe.

Last — I want to emphasize, she was RIGHT not to do the show. She was RIGHT not to travel. I respect her decision to put her and her fetus’s health above anything else.

But my point is that there was a way to do this with integrity. CANCEL the show, don’t “postpone to some unknown date.” Let your fans get refunds on tickets; don’t sit on their cash while you figure it out — don’t assume that your new date and time, whenever it finally is announced, will actually WORK for fans. Those of us in the audience have lives too. That’s incredibly sucky, Amy Schumer and Viagogo, and I wanted to pass that word along. See you on Twitter.


It is now two months since I purchased the tickets, and nearly a month since the “postponed” show was to take place. Still no word from Schumer’s tour company on any date for the new show, nor any official cancellation. She’s hiding from Instagram and not mentioning this issue on Twitter. She’s still sitting on the cash of the tickets sold without doing the right thing and allowing full refunds to be issued by both the original venue and any resellers. Viagogo continues to refuse to refund the money, claiming that Schumer has only “postponed”, not “cancelled” the show. They tell me I can resell the tickets, but who is going to buy tickets without any date or time certain? They are essentially worthless, and no one is talking. Do the right thing and officially cancel the show, so that people can get their money back.

Update 2: March 2019

Schumer’s management company finally officially cancelled the show, several months later. Viagogo finally said they’d honor the tickets if I mailed them back. So I mailed them into Viagogo, triple-checking the mailing address (because they were valuable.)

But now, they claim never to have received them. Yet, their system shows that I purchased them.

A large part of this final step was my fault — I was in a hurry that day (was about to go on a trip), and I simply dropped the tickets with excess postage in a mailbox. Given the experience to date I certainly should have taken the time to go to the post office to get a certified letter showing receipt. At this point, I’m out the roughly $1200. Lesson learned — and I guess I’ll take most of the blame for not going to the post office to get a certified receipt — but man, what a shitty customer experience. 

Survivorship Bias

In WWII, researcher Abraham Wald was assigned the task of figuring out where to place more reinforcing armor on bombers. Since every extra pound meant reduced range and agility, optimizing these decisions was crucial. So he and his team looked at a ton of data from returning bombers, noting the bullet hole placement.

They came up with numerous diagrams that looked like this:

See the source image

Most of his team members observed “Wow! Look at all those bullet holes in the center of the fuselage and on the wing tips! The armor clearly ought to go there, because those are the areas that are most marked-up in red!”

But Wald realized that they were only looking at those bombers which SURVIVED, and he correctly argued that these areas were instead precisely the damage areas that were already most survivable, while the areas which were NOT marked by bulletholes meant they were fatal. In so doing, he helped us understand “survivorship bias” — that is, if we only sample from the successful outcomes, we avoid seeing the crucial factors that caused failure, which in many cases are the most important factors of all.

Such survivorship bias can lead to conclusions and strategies which are precisely the opposite of optimal, so pay attention to the datapoints that you may have already artificially and incorrectly eliminated. 

Machine Learning/AI for Kids: Resources

I’m on a parent advisory committee at my daughter’s school. The committee is taking a look at the school’s existing Computational Thinking curriculum and where it might want to head in the future.

Luckily for us, the faculty is already doing a very good job with the curriculum. So our role as advisers is to provide a sounding board and perhaps additional guidance regarding ways they might want to augment the program. Key topics not yet addressed much in the existing computing curriculum are Machine LearningDeep Learning and Artificial Intelligence. These are pretty advanced fields, but becoming so essential to both the world we live in today and the one we will experience in the future. So what kinds of things might be useful to introduce and explore at the middle school (grades 6-8) and high school (grades 9-12) level?

What’s There, What Might Be Missing

At the school, they’re already introducing many central concepts of computing, like breaking down problems into smaller problemsbasic algorithmsdata modelingabstraction, and testing. They’re teaching basic circuits, robotics, website creation, Javascript, HTML, Python basics and more.

In the current era, understanding data is absolutely essential. Topics like what makes a good dataset, how to gather data, ethics involved in data gathering, basic statistics, what the difference is between correlation and causation, how to “clean” a dataset, how to separate out a “training” and “validation” dataset, what signals we use to make an educated guess as to whether we should trust the data set or not, and more. Next, a basic understanding of how machine learning works is useful, because it can build a better picture both of what’s possible and what might be limitations. So understanding at a very basic level what we mean by terms like “deep learning”, “machine learning” and “artificial intelligence” can be helpful, because these terms come up in the news a great deal, and they might also make great career choices for many students (and also hint at fields ripe for disruption and potential decline.) One participant also pointed out that an understanding of current agile development practices is helpful. Agile is a development process and philosophy that emphasizes flexibility, all-team focus, constant feedback and continuous updates. It typically includes components like source control, short work bursts called “sprints” where everyone works toward some specific set of short/medium-term achievements, regular reviews and adaptability. Some of these tools and techniques (e.g., version control, “stand-up” reviews, “minimum viable product”, iteration and measurement (A/B testing), etc.) can actually be quite useful in group projects outside of the computing world. And simply browsing through Github and seeing what people are working on can open up a world of possibilities. So it’s good to know how to explore it, and that it’s right there and available to anyone with access to a computer. Another basic piece of the conceptual puzzle: Application Programming Interfaces (API.) APIs are how various computer services and devices talk among one another “across the wire,” and because they usually have tiny services behind them (“microservices”), they can best be thought of as the LEGO building-blocks of today’s applications and “Internet of Things”. My hunch is that once students fully understand that pretty much any of the API’s they run across can be composed together to form one big solution, that conceptual understanding unlocks a gigantic world of possibility. (Just a few of the many APIs in the machine learning field are listed below.)

Machine Learning Resources

As for actually getting your hands dirty and building out an intelligent algorithm or two inside or outside of class, the likelihood of success certainly depends upon the students and their interest. Are there canonical, interesting and accessible examples to introduce these topics? We in the committee (including the key faculty members) certainly think so. With that in mind, here’s a short running list of projects and videos in the computing world that might be interesting to educators and kids alike.

Introductory Resources

Introduces how repeated input data is used to train a machine to “predict” (classify) output based on input. Google Quick Draw This is a fun Pictionary-style game where it’s the computer that does the guessing. It might be a fun way to introduce questions of how it’s done — it seems magical.

Questions for class:

  • How does it work?
  • How do you think they built this? What data and tools might you need if you wanted to make your own?
Authors: Jonas Jonjegan and Henry Rowley, @kawahima_san @cmiscm and @n1ckfg

Microsoft AI Demos Area

Microsoft Corporation has several great interactive playgrounds. You can experiment with text analytics (including sentiment analysis), speech authenticationface and emotion recognitionroute planninglanguage understanding and more.


A terrific playground to experiment with classification algorithms (k-means clustering, support vector machines and more) is at You can plot two colors of points on a 2D (x, y) graph, and then apply a few algorithms to visually see how well they recognize “clusters” of like-points. Excellent and free.

ML Showcase

A fun meta-site that rolls up a list of machine learning resources is the ML ShowcaseCheck it out.

Amazon Machine Learning APIs

Amazon also has a very large set of useful machine learning APIs, but in my cursory look, they are short on “playground” demo areas that are in front of a paywall, so they might not be the best fit for a classroom at present writing.

Create Music with Machine Learning

Fun app: For those musically inclined, check out Humtap on iOS. Hum into your phone and tap the phone, and the AI will create a song based on your input.

Programming Tools

Machine Learning for Kids (Scratch + IBM Watson Free Level)Scratch is a great, free programming environment for kids which grew out of the Media Lab at MIT. This Machine Learning for Kids project is a very clever and surprisingly powerful extension to the Scratch Programming Language written by Dale Lane, an interested parent. It brings in the power of the IBM Watson engine to Scratch by presenting Machine Learning Building Blocks such as text classifiers and image recognizers. These visual drag-and-drop blocks can then be connected into a Scratch program. Fun examples include:

  • An insult vs. compliments recognizer (video below)
  • Rock-scissors-paper guessing game
  • A dog vs. cat picture recognizer

I’ve wired up the compliments vs. insult recognizer on my own desktop, and it’s a very good overview of the promise and pitfalls when trying to build out a machine learning (classifier) model. I was impressed with the design and documentation of the free add-on, and it makes playing around with these tools a natural extension to any curriculum that’s already incorporating Scratch. I can imagine that for many middle schoolers and high schoolers, coming up with a list of insults to “train” the model would be quite fun.

Real-World Examples

Perhaps you’d like to begin with a list of real-world examples for machine learning? Examples abound:

  • Voice devices like Amazon Alexa (Echo), Siri, Cortana and Google Assistant
  • Netflix, Spotify and Pandora Recommendations
  • Spam/ham email detection (how does your computer know it’s junk email?)
  • Automatic colorization of B&W Images
  • Amazon product recommendations
  • Machine translation — Check out the amazing new Skype Translator
  • Synthetic video
  • Twitter, Facebook, Snapchat news feeds
  • Weather forecasting
  • Optical character recognition, and more specifically Zipcode recognition, one of the canonical examples (MNIST) Machines which recognize handwritten digits.
  • Videogame automated opponents
  • Self-driving technology
  • Google Search (which results to show you first, text analysis, etc.)
  • Antivirus software

What these solutions all have in common is a Machine Learning engine that ingests vasts amount of data, has known-good outcomes, a training set of data, a validation set of data, and a set of algorithms used to programmatically try to guess the best output given a set of inputs.

Data Science

I’ll likely do a separate set of posts on introducing Data Science to kids, but in the meantime, I wanted to mention one dataset here.

“Hello World” for Data Science: Titanic Survival

Machine learning is about learning from data, so Data Science is a direct cousin to (and overlaps heavily with) both Machine Learning and Deep Learning. A machine learning algorithm is only as good as its training and validation data, and students need to become familiar with how to recognize valid vs. invalid data, what data is the right kind to include vs. exclude, how to clean and augment data and more. Tools of the trade vary, but the Python data analysis stack (such as the libraries pandas, numpy and scikit-learn) are becoming a lingua-franca of the field.

There are several datasets that are interesting ways to introduce data analysis, but one of my favorites is the: Titanic Dataset (High Schoolers: Data Science, Predictions and AI):  Few events in history can match the drama, scale and both social and engineering lessons contained in the Titanic disaster. Would you have survived? What would have been your odds? What is the difference between correlation and causation? You can actually make a prediction as to what the survival likelihood was of a passenger based on their class of service, gender, age, point of embarkation and more. While not strictly “machine learning” per se, this dataset introduces the basic building block of machine learning: datafeatures, and labeled outcomes

By doing this exercise, you lay the groundwork for much better insight into how machines can use lots of data, and features in that data, to begin to make predictions. Machine learning is about training computers to recognize patterns from data, and this is a great “Hello World” for data science. (For those schools who want to introduce topics of privilege and diversity and of an era, it’s also avenue to discuss those social issues using data.)

Machine Learning Explained Simply

Terrific Hands-on Lab (Intermediate Learners): Google Machine Learning Recipes

What is Machine Learning? (Google)

What is a Neural Network?

This superb and accurate video takes the classic MNIST dataset (which is about getting the computer to correctly “recognize” handwritten digits) and walks through how it’s done. About 3/4 of the way through, it starts getting into matrix/vector math, which is likely beyond most high school curricula, but it’s very thorough in its explanation:

A Pioneer of Modern Machine Learning

Advanced (but Fascinating) Videos and Projects

Got advanced students interested in more? There’s so much out there. I’m currently going through the amazing, free course. Really good overview, and includes fun recognizers like a cats vs. dogs recognizer, text sentiment analysis and more. There are fun projects on Github like DeOldify, which attempts to programmatically colorize Black & White photos

What do (Convolutional) Neural Networks “see”?  

Neural networks “learn” to pay attention to certain kinds of features. What do these look like? This video does a nice job letting you see into the “black box” of on type of neural network recognizer:

Neural Style Project

It took a little while to set up on my machine, but the Neural Style project is pretty amazing. If you’ve used the app called “Prisma,” you know that it’s possible to take an input photograph and render it in the style of a famous painting. Well, it works with a neural network, and code that does basically the same thing is available on the web in a couple of projects, one of which is neural-style. Fair warning: Getting this up and running is not for the feint of heart. You’ll need a high-powered computer with an NVIDIA graphics card (GPU) and several steps of setup (it took about 30 minutes to get running on my machine.) But when you run it, you can play around with input and output that looks like this:


Taking this photograph I took, and getting the neural-style project to render it with a Van Gogh style:

Great AI Podcast

The AI Podcast has a lot of great interviews.

Generative Adversarial Networks (GANs)

One of the most interesting things going on in machine learning these days are the so-called Generative Adversarial Networks, which use a “counterfeiter vs. police” adversarial contest to train an algorithm to actually synthesize new things. It’s a very recent idea (the research paper by Goodfellow et al which set it off was only published in 2014.) The idea is that you create a game of sorts between two algorithms: a “Generator” and a “Discriminator”. The Generator can be thought of as a counterfeiter, and the discriminator can be thought of as the “police”.

Basically, the counterfeiter tries to create realistic-looking fakes, and “wins” when it fools the police. The police, in turn, “win” when they catch the generator in the act. Played tens of thousands — even millions of times — these models eventually optimize themselves and you’re left with a counterfeiter that is pretty good at churning out realistic-looking fakes. Check out the hashtag #BigGAN on Twitter to see some interesting things going on in the field — or at the very least, some very strange images and videos generated by computer.

There’s a great overview of using a GAN to generate pictures of people who don’t exist. (Tons of ethical questions to discuss there, no?) For instance, these two people do not exist, but rather, were synthesized from a GAN which had ingested a lot of celebrity photos:

Another researcher used a GAN to train a neural network to synthesize photos of houses on hillsides, audio equipment and tourist attractions that do not exist in the real world: homes on a hillside which do not exist in the real world: 

Mostly thatched huts in mountains or forests

audio equipment which does not exist in the real world: 

tourist attractions which do not exist in the real world : 

And how about this incredible work from the AI team at University of Washington?

Interesting Topic for Mature Audience

One of the pitfalls of machine learning and AI is that bad data used in training can lead to “learned” bad outcomes. An emblematic story that might be of interest to some high-school audiences which illustrates this is the time that Microsoft unleashed Tay, a robot which learned, and was quickly trained into a sex-crazed Nazi. On second thought…

Suggestions Welcome

Do you have suggestions for this list? Please be sure to add them in the comments section below.

Netgear ORBI – This is the WiFi You Are Looking For

Steve, the wifi is down.” As the go-to guy in the house for all tech issues, I’ve been hearing that call, and reading that SMS text from family members for more than a decade. I’ve come to dread those words. In recent years, it’s been all-too-frequent. And since the longest-running wifi configuration in our house has been not one but three different SSID’s, the chances that one or more zones were down at any given time were high. To get fast wifi throughout the home, some approaches I’ve taken in the past have included:

  • One router and multiple access points
  • One router with repeaters range extenders
  • A combination of the above
  • Replacing the entire system with the AMPLIFI Mesh Network

Using multiple access points and networks has the problem of complexity — we end up with various networks in our house and devices which need to hop onto their local “best” signal. Some client devices tend to get confused finding the best signal, and it gets frustrating. The second approach is simplest, with a single broadcast and multiple “range extenders”, but it comes at the cost of speed. Since part of the 2 or 5Ghz radio spectrum is used to relay the signal back to the base router, performance can easily halve with every repeater in the chain. And the reliability there, too, has not been good — frequently a repeater will go offline or seem to “forget” its state of the world, especially when a base unit reboots. So I’ve also given the AMPLIFI mesh network a try. And, while it’s a great product, it didn’t seem to get along well with SONOS.

Enter NETGEAR Orbi

I’ve finally found what I think is the best wifi system for our home: the NETGEAR Orbi Ultra-Performance Whole Home Mesh WiFi System.

NETGEAR’s Orbi Base-Satellite Combination is Easy to Set up and Fast

Easy Onboarding, Great signal.

I was very impressed by the onboarding, and one day in at least, these speeds are amazing. I’ll update this post in a few weeks/months to tell you whether it’s working well. The NETGEAR Orbi Ultra-Performance Whole Home Mesh WiFi system is off to a terrific start, and couldn’t be happier. These things have very strong signals, and they use just one SSID (network name) throughout the entire network, meaning your phone or device stays connected no matter where you move in the house. I’m very impressed by Internet speeds I’m getting off of “satellite” stations — right now in my office I’m seeing speeds north of 190Mbps, which is two to three times faster than I was getting before.

I’m very pleased with it so far — the app has a handy display of network topology and connected devices. The web-based admin panel has far more control, and appears to have all the features of a typical high-end NETGEAR router (port forwarding, blocking, DDNS, etc.)

A key difference between the ORBI system and range extenders is that ORBI has its own private 5Ghz backchannel that it uses for “backhaul” to the router, so you don’t lose any significant speed at the satellite location. And I love the fact that we’re now back to a single SSID through the whole house — you can move from room to room, even outside, and the SSID stays the same.

As for the Satellites, at this writing they are all connected in a wireless topology to the base station. I haven’t yet tried the “backhaul via Ethernet” configuration — right now I have a base station and three satellites (the maximum allowed.) Everything appears to be running smoothly.

Here’s a good video review:

(I was not paid anything for this endorsement; I simply love the product so far, as it appears to be finally solving a long-running headache.)

RECOMMENDED. The Orbi Ultra-Performance Whole Home Mesh WiFi System.

Update: One Week In

Wow! Super-fast speed and NO problems. So far, so good. Strong recommendation. Very happy that I might finally have found the solution which works.  

Two Weeks In

Not a single restart, nor disconnect, nor satellite “forgetting” its state. I love this product! Strong recommendation.

The Journey Begins

Thanks for joining me! I’ve updated this blog to include some thoughts on technology, data analysis, Seattle municipal issues, photos from travel, and more.

Good company in a journey makes the way seem shorter. — Izaak Walton


Updating PLEX Media Server

Here’s how to update Plex Media Server on a server running Ubuntu.

Make sure you replace the URLs and packages with the latest release.

  • Find the URL for the latest Plex Media Server package here.
  • SSH into your server. 
  • Download the latest package (replace filename with the latest), then install it:
sudo dpkg -i plexmediaserver_0.–9a47d21_amd64.deb

Following installation, remove the installer file with this command:

rm plexmediaserver_0.–9a47d21_amd64.deb

Remember that you don’t have to type the entire filename, just the first few letters and press <tab> to complete it.

DeOldify: Auto-color B&W Photos with Machine Learning

I’ve just discovered an incredibly cool project on Github: DeOldify, which uses deep learning to automatically colorize old black & white photos. It’s not perfect, but what it’s able to do is pretty amazing, and improving rapidly.

In addition to ninja-level coding, author Jason Antic (@citnaj on Twitter) does a terrific job writing up how the algorithm works in the README file.

Essentially, his code uses a deep learning technique called a Generative Adversarial Network (GAN.) GANs consist of two components: a “Generator” and a “Discriminator.” In brief, the Generator (its own neural network) attempts to synthesize fakes or originals, and the Discriminator attempts to figure out if the submitted instance is “real” or fake. In this way, a Generator can be considered a “Counterfeiter” trying to fool the Discriminator, and the Discriminator can be thought of as “The Police” trying to catch the counterfeiter passing off a fake. 

A zero-sum game then is played over and over, thousands of times, with each party trying to maximize its winnings, within some constraints.

Over time, the counterfeiter gets better and better at counterfeiting, until it can stand on its own and truly generate something that is pretty close to good output. To me, this is somewhat analogous to how children learn to better tell the truth when they experiment with fanciful lies in pre-adolescence. (Some, sadly, never learn the lesson fully.)

Back to DeOldify. The input/output is pretty impressive, with several examples provided at the link above.


I went through the Google Colab (Jupyter Notebook) powered harness developed by Matt Robinson, and input a few photos. Keep in mind that none of this involved any Photoshop work on my end:

Titanic Survivors
WWI Soldiers
Winston Churchill
Chuchill reviews troops

Not perfect, but remarkable nonetheless!

GANs are perhaps the most interesting thing coming out of the work in Machine Learning these days. 

I plan to spend some time with this project and see how well it does on some family photos from decades past, and perhaps build a web front-end to make it easy to try out. (It’s computationally expensive, so perhaps that front-end will need to rely upon donations.)

UPDATE: Jason Antic continues to make incredible progress on the model. The new images are much better than those above. Give it a whirl at!

Use QR Code Generator to Easily Share Web Links to iPhone

My primary development machine is a desktop Windows PC, and I’m an iPhone user. Often, I’ll want to share a website that I’ve discovered on my desktop PC via the iPhone’s Messaging app, and as of this writing, the world of iMessage is still completely isolated from Windows, likely for strategic reasons on Apple’s part. So how do you get a link from your desktop Windows machine to an iPhone? Here are a few different methods I’ve tried:

  • Re-type on your iPhone: This is the most obvious but it’s a pain.
  • Send it in in an email to your phone: This used to be my method, but that too is a pain.
  • Use a notes sharing app like OneNote, Evernote or Google Keep: Seems a recipe for digital clutter if they’re not links you want to preserve over time. 
  • Use an app like PushBullet or QPush: While these apps are good, I’ve found their reliability to be spotty.

Each of these has their drawbacks. The method I now prefer is to use the QR code feature of iOS as follows:

  • Install the free Chrome extension Quick QR Code Generator
  • Any time you visit a website you want to share, simply click the toolbar button: 
  • then, simply get your iPhone out, launch the Camera app, and you should get a handy link to the website right at the top of the screen:

Tap the “Website QR Code” banner at the top of the screen on your iPhone, and you’ll have the URL you were visiting on your desktop ready to share via iMessage, email or more. 

Podcast Interview with “Built to Sell Radio”

I met John Warrilow in 2010, when we were both living in France. John’s an experienced entrepreneur, a published author (his own book, columns for Inc. and other business publications.) He runs Built to Sell Inc. and the informative business podcast “Built to Sell Radio,” which talks about the steps involved in selling your business, and profiles entrepreneurs who have gone through that process. In November, I had a chance to speak with John in an hour-long interview. I touched on VacationSpot, Expedia, Microsoft and some of the lessons I’ve learned in bootstrapping versus venture capital:

Azure now hosting free Jupyter Notebooks

Jupyter Notebooks are a great tool for data scientists, allowing you to work with languages like Python and R to analyze and visualize data. I was pleased to see that The Azure team has now made Jupyter Notebooks available for free at

Here, in a simple “Hello World” application, I’ve used the platform to do a simple analysis of the bicycle traffic over the Fremont Bridge here in Seattle. There are sensors on the East and West sidewalks of the Fremont bridge that pick up bike traffic.

I was curious what’s happened to overall bike traffic on that bridge as Seattle’s population has risen:

Image result for fremont bridge seattle sensors

Biking across the Fremont Bridge appears to have not quite kept up pace with population growth:

Here’s Seattle’s population by year (2012-2017):

See the Jupyter Notebook here: