When talking to Rob Dubbin—whose two-year-old @oliviataters bears a marked resemblance to Microsoft’s @TayandYou—it became pretty clear why it was that Kazemi and thricedotted have made that choice.

Like Kazemi’s Two Headlines, Olivia Taters can also suffer from accidental racism even though she operates with a basic blacklist of slurs. The algorithm sometimes melds two sentences together that, through coincidence, is offensive. “That’s happened a few times,” Dubbin admitted.

To soften the potential negative impact on her audience, Olivia only replies to people who are following her—that is, tweeters who have consented to be tweeted at by a robot. But even then, Olivia has been a rather trying child.

“I had to tweak a lot of her behavior over time so that she wouldn’t say offensive things,” said Dubbin. “I would have a filter in place and then she’d find something to say that got around it— not on purpose, but like, just because that’s the way algorithms work.”

Most of the botmakers I spoke to do manually delete tweets that are offensive. But Dubbin seemed to do it more often. Maintaining Olivia Taters is an ongoing project. “It takes effort and policing at a small scale.”

Throughout the interview, Dubbin expressed shock at the sheer quantity of tweets that poured out of @TayandYou. The slower, hands-on approach he takes with Olivia would be impossible at the rate that @TayandYou tweeted at people. “It’s surprising that someone would be like, ‘This thing is going to tweet ten thousand times an hour and we’re not going to regret it!’”

Obviously that is impossible to do with 10,000 tweets an hour. Frankly 60 tweets an hour would have been too many.

Frankly this whole thing sounds like a grad student's project.

My experience with AI is, well, right about a first-year grad student's, but I know the importance of setting up a baseline.

It's not a 1:1 analogy, but my favorite AI project was a genetic algorithm I built, on a team with one other classmate.

The setup was this: the school library wanted an algorithm that could schedule its workers' hours. There was a set of rules -- for each worker we had a set of available hours, a subset of preferred hours, and a boolean about whether or not the worker was senior; for hours when only one worker was required on staff, that worker had to be senior, while for hours where two workers were required on staff, both could be senior or one could be junior.

Anyway, in our initial design for the project, we decided to just set the hours randomly, without regard to those rules -- our working theory was that the algorithm would weed out any randomly-generated schedules that violated the rules, by scoring them at a zero.

When we actually fired it up, though, that didn't happen. We'd overestimated the likelihood that a randomly-generated list would produce any valid results. It didn't. Every single schedule it generated was invalid and scored zero. And you can't combine invalid results to get valid ones. Garbage in, garbage out.

Soooo we wound up spending all night rewriting the fucking thing pretty much from the ground up. The schedule was no longer populated entirely at random; it was randomized within the restrictions of the rules. So that whatever results we got, even on the first round, would at least be valid, even if they weren't anywhere near optimal.

(We wound up being the only team in the class that actually got it to work. We got an A; the professor decided to give every other team a C. Unfortunately, the library never actually put our work into practice because we never got around to putting a decent frontend on it.)

That's long and rambling and doesn't quite apply to the kind of learning we're talking about. But it was an extremely edifying experience. It taught me a lot about precisely defining a problem domain, and the amount of handholding even a simple and automated AI needs to start with.

So Windows 10 Anniversary Update drops next week. As with 10.0, it's got some pretty cool stuff (bash!) and some horrible stuff. For example, you can no longer disable Cortana, or Windows Tips, or whatever the fuck Consumer Experiences is.

I had a lot of problems with Windows 10 for like the last half year until I did a refresh install over the weekend. Where the blame lies is up for debate, but I had problems stemming from remnants of parasitic Windows 7 drivers I needed from my mobo manufacturer shitting things up that couldn't be easily gotten rid of on their own. No problems though ever since the refresh install.

So yeah, one more tough sell to force users into switching to Windows 10 whether they want it or not.

So it's once again time to ask myself what I still need Windows for. So, okay, here goes:

Some games. Thanks to Unity, UE, and Source, most of the PC games I play are available for Linux natively (Civ, XCOM, Stardew, Shovel Knight, Axiom Verge, Freedom Planet, etc.). And some run just fine under WINE (Trails in the Sky). But there are still some games I need native Windows for: even if I could run Witcher 3 in WINE it would take a major performance hit, and last I checked I could get Skyrim to run in WINE but not the Nexus Manager necessary for handling all the mods I like to run it with.

Blu-Rays. I hear there's a way to get VLC to play Blu-Rays now, but I can't even get it to work in Windows, so I'm skeptical of how much luck I'd have in Linux.

Comic book inventory. I use a program called Comic Collector Pro, and it doesn't run in WINE.

Knowing how far bare-metal hypervisors have come in the last few years, I decided to check and see whether it's possible to run Windows in a VM and get native performance and compatibility. Skip that dual-boot nonsense but still be able to load up Windows in those instances where I need it and then kill it when I don't.

It turns out it is, but it sounds like the biggest pain in the ass ever. Like, I remember all the shit you had to do to set up a wifi card in Gentoo in 2006, and this sounds worse.

Still, I'm seriously considering it as something to do when I build a new HTPC.

Essentially the only reason I don't switch to some flavor of Linux on my CURRENT processor is spotty fan support for the motherboard it's attached to, so I can easily take that into consideration whenever my CPU starts to become a bottleneck and I want to build s new machine. As for "needing" Windows... amusingly, my attitude of "I don't really need a console anymore because everything I want on it is better on PC anyway" us starting to flip over to "I don't really need a PC anymore because everything I want on it is better on console anyway."

I DO currently have a laptop running Windows 10 but it can boot to Ubuntu without too many tears and I only turn it on like once a month anyway.

Yeah, after writing that I started considering, y'know, dual-booting the HTPC just to play Blu-Rays or Skyrim wouldn't be that damn bad, all things considered, and the only machine I run Comic Collector on is a laptop anyway.

(And then I decided to look for alternatives to Comic Collector. gcstar seems promising; it scrapes from comicbookdb.com, which I'm already finding has several of the books that aren't listed in the Collectorz database, like some (not all) of the Snyder/Ditko books I've been buying on Kickstarter.)