Adventures in Machining

Earlier this year, I received a significant sum of money in a settlement for a lawsuit. This settlement was enough to pay my lawyer, with a bit left over, which I had earmarked for a car since I’ve been sans vehicle after the unfortunate death of the Adventure Van (which needed new parts that are no longer manufactured).

I had earmarked some of the settlement for a cheap used car, when I was captured by Facebook. I spotted an ad for a desktop CNC metal-milling machine for almost exactly the amount I’d set aside for the car, and I thought, if I can machine aluminum, I can make molds for sex toys without having to 3D print them any more! The molds would be higher quality, last longer, and produce better toys!

So of course I ordered the CNC machine instead of the car, and arrived home from Barcelona to an enormous shipping crate…

They call it a “desktop CNC machine,” but I don’t own a desk large enough or sturdy enough to hold it—the thing weighs in at almost 120 pounds(!). So it sits on my bedroom floor, still in the bottom of the shipping crate.

And My God, what an adventure.

I didn’t fully realize what I was signing up for. Carving 3D models out of metal is nothing like printing 3D models on a 3D printer. You don’t give it the model and say “here,carve this.” You have to specify the tool to use, the speed, and (this is the difficult part) the exact path the tool will take, over and over and over again, to carve the shape out of metal.

As one wag on Quora put it, “Dude, what you’re trying to cut requires graduating from trade school plus four years of apprenticeship.” (Whoevel writes an AI-driven expert system to automate some or all this process will become ridiculously wealthy, just sayin’.)

Anyway, I’ve been teaching myself CNC milling, and the learning curve is a cliff. This is quite possibly the most challenging thing I’ve ever attempted in my life.

I’ve worked out basic engraving…

…and I’m teaching myself Fusion 360 and Lightburn (it has a built-in laser engraver too). My wife has come up with some very cool projects to help teach myself, like tentacle fans with metal blades, which I’ll probably start selling once I’ve worked out how to make them.

But at the rate I’m going, I’m still quite a distance off from carving metal sex toy molds.

Come closer, and fertilize me with your reproductive stalk…

Orchids are cool, in a “nature is horrifying” way. There are species of orchid that have evolved structures that look like insects, which they use to lure in insects searching for mates.

Some orchids use these insect visitors to pollinate themselves. The insect does its thing and then flies off, horny and frustrated and covered with sticky pollen, but otherwise none the worse for wear.

But some orchids are carnivorous. They lure insects to their doom, slowly digesting their prey alive as the ill-fated insect struggles helplessly.

And some orchids mimic insect pheromones, sweeting the honeytrap with the same signals that female insects use.

I’ve been thinking quite a lot about sexual parasitism of humans lately, in no small measure because I’ve finished the first version of the Xenomorph Hiphugger Strapon, a Giger-esque nightmare sex toy first conceived by my wife Joreth. Imagine an alien facehugger that wraps around the subject’s hips, then incites the subject to seek out victims, violating them in a parasitic frenzy. As creepy as this image is, it’s table stakes in the game of real-world sexual parasitism, which is horrifying.

Anyway, that’s got me thinking: what if an alien species created mimics of human females to lure in the male of the species? (An idea for a horror novel with this theme is bubbling in my brain; stay tuned!)

I’ve been playing with a version of the Stable Diffusion 2.0 AI image generator tuned to human faces, looking to take the images out of my head and drag them into the light.

What I’ve come up with so far is…well, pretty horrifying.

I’ve started work on a small, AI-illustrated graphic novella (is a graphic novella a thing?), though with all the projects in the pipe right now—including a version of the hiphugger strapon optimized for oral violation—it may be a while before it’s finished.

I did a thing

I tried to do a different thing, but I couldn’t do the thing I wanted to do that was different from the thing I did, so I did the thing instead. Then I did the other thing, too, so…things got done.

It started yesterday morning, when I woke intending to post a new episode of the Skeptical Pervert podcast, this one looking at sex work in different cultures. But what to my wondering eye should show up, but a database server error at my webhosting provider. As I waited for them to fix the problem, I…amused. Yes, that’s the word we’ll use. I amused myself by writing a quick and crude web page that generates random horror poetry and pairs it with a random tentacle image generated by a Stable Diffusion AI generator.

It’s still quite primitive, but it looks like this:

You can, if this strikes your fancy, check it out here:

Random Tentacle Horror Poetry Generator

Some Thoughts on Ethics in Computer Science

As I type this, Elon Musk says the release of true full self-driving cars is perhaps months away. Leaving aside his…notable overoptimism, this would arguably be among the crowning achievement of computer science so far.

Yes, even more than going to the moon. Going to the moon required remarkably little in the way of computer science—orbital mechanics are complicated, sure, but not that complicated, and there are few unexpected pedestrians twixt hither and yon.

We are moving into a world utterly dominated by computers. And yet…there’s far too little attention, I think, paid to the ethical implications of that.

Probably the biggest ethical issue I see in computer science right now concerns training sets for machine learning.

I don’t mean machine learning like self-driving cars, though that’s a monstrous problem of its own—the thing about ML systems is they’re basically black boxes that most definitively do NOT see the world the way we do, so they can become confused by adversarial inputs, like this strange sticker that makes a Tesla see a stop sign as a Speed Limit 45 sign:

Insert picture description

And of course ownership of these enormous ML systems opens whole cans, plural, of worms just by itself. If you use terabytes of public domain data to train a proprietary ML system, what responsibility do you have to make it available to the people who produced your training data, and what liability do you have when your system goes wrong?

And of course deepfake software can produce photos and video of you in a place you’ve never been hanging out with people you don’t know saying things you’ve never said, and make it all totally believable. Look for that to cause trouble soon.

But those are just fringe problems, minor ethical quibbles compared to the elephant in the room: bias in data sets.

Legal societies are putting more and more reliance on ML systems. Police use machine learning for facial recognition (and now, gait recognition, recognizing people by the way they walk instead of their facial features—yes that’s a thing).

Militaries use facial recognition in weapons platforms. Right now they don’t rely in it, but use it as an adjunct to more traditional intelligence, but the day is coming when foreign military targets will be designated entirely by things like facial recognition systems.

Problem is, those ML systems tend to be racist AF.

I’m not kidding.

ML systems rely on training with positively gargantuan training data sets. You train a machine to recognize faces by feeding it millions—or, if you can, tens or hundreds of millions—of pictures of people’s faces.

The researchers who define and build these systems tend to turn to the Internet for their training data, trolling Internet social media sites with bot software that hoovers up all the photos it can find for training data.

https://www.nbcnews.com/tech/internet/facial-recognition-s-dirty-little-secret-millions-online-photos-scraped-n981921

Let’s ignore for a moment the copyright implications. Let’s ignore the ethical issues of treating people’s property as fodder for surveillance systems. Let’s just quietly ignore all those ethical problems so we can talk about racism.

People who post lost of photos on the Internet that get scooped up to train ML systems aren’t an even demographic slice of humanity. They tend to have more money than average, be Western Europeans or North Americans, and tend to be white.

That means ML systems to do things like facial recognition are trained on data sets that are overwhelmingly…white faces.

And that means these systems—even commercial systems now deployed and used by police—suck at identifying black or Asian faces.

Like sometimes really suck.

Insert picture description

Like, as of 2018, commercial facial recognition systems had a recognition failure rate on white male faces of 0.2%, and a failure rate on black female faces of more than 22%.

If that isn’t ringing alarm bells in your head, you’re not fully comprehending the magnitude of the problem.

Here’s a rather frightening quote:

Last year, the American Civil Liberties Union (ACLU) found that Amazon’s Rekognition software wrongly identified 28 members of Congress as people who had previously been arrested. It disproportionately misidentified African-Americans and Latinos.

https://www.theguardian.com/technology/2019/jul/29/what-is-facial-recognition-and-how-sinister-is-it

We train AI and ML systems with data from the real world…and we get deeply racist, profoundly flawed AI and ML systems as a result.

Then we use these AI and ML systems to identify people for arrest or to send autonomous suicide drones.

Insert picture description

https://reason.com/2021/06/01/autonomous-slaughterbot-drones-reportedly-attack-libyans-using-facial-recognition-tech/

Any machine learning system is only as good as the training data it’s developed with. And when that training data is a snapshot of the Internet, well…

This blog post was adapted from an answer I wrote on Quora. Want more like this? Follow me on Quora!

Preorders for The Hallowed Covenant!

Preorders for The Hallowed Covenant, my new post-scarcity science fiction erotic novel with Eunice Hung, just went up today! And man, I am really, really excited about this book.

This is probably my favorite book I’ve ever coauthored. We take a deep dive into what it’s like to live in the City, along the way touching on themes like:

• How do you have a system of justice in a post-scarcity society with no police or codified laws?

• What are the AIs the people in this society worship as gods? What are they like?

• What do transgression and atonement look like when there’s no such thing as law?

And of course there’s lots of sex, much of it involving kinks so exotic they don’t even have names.

The novel follows seven friends as they wrestle with changes in their lives, set against the backdrop of the Festival of the Lady (the AI god of art and creativity)—think Burning Man in a society with a tech level that makes Star Trek look late Bronze Age, but more hedonistic.

The first two novels in the Passionate Pantheon universe have done so well people started asking us for audiobook versions, and guess what? We delivered! The Hallowed Covenant has an audiobook, narrated by the amazing (and incredibly sexy) Francesca Peregrine.

Thanks to a special arrangement with the Nobilis Erotica podcast, you can listen to the first two chapters here!

I am just incredibly, incredibly proud of this book. Like, I am absolutely giddy that it’s almost out. If you like science fiction and you like sex, I suspect you’ll probably like it too.

Check it out here! If you back the crowdfunding, you can score a copy before pub date for less than you’ll find it anywhere else. (And stay tuned for new perks coming soon!)

The revolution is Nigh…Impossible

As part of the ongoing development of the bionic cock project I’m working on, I’m in the process of teaching myself 3D modeling and 3D printing. We’re using 3D printing to make positives for molding silicone prototypes.

3D printing is amazing. It offers incredible potential for people everywhere to be able to make whatever they want on demand, as long as “people everywhere” means “people with access to computers and the Internet and 3D printers and spools of plastic, and the cognitive ability to be able to design things and operate the equipment.” So not really people everywhere, but no matter, right?

3D printing is also incredibly stupid. The state of the art is so appalling. The software is deplorable–a throwback to the bad old days of obtuse design usable only by the select few.

The first time I tried to make a print, I was horrified by what passes for design in the world of 3D printing. It’s a case study in why Linux has never made significant inroads into the desktop, despite being free. Open source software is still software made by developers for developers, with no thought (or sometimes, with active contempt) for users who either don’t want to or don’t have the time to learn every small detail of the way their systems work.

By way of comparison, if color inkjet software worked the way 3D printer software works, every time you hit the Print command on your computer, you’d be confronted by something like this (click to embiggen):

A twisty maze of confusing ad indecipherable options poorly laid out

This…is why we can’t have nice things. The open source community isn’t democratic; it’s elitist.

An Amazon Product Advertising API SimpleStore PHP script that works!

I’ve been working on a project lately that I’m excited about, but not quiiiiite ready to talk about just yet.

Unfortunately, this project has involved working with the Amazon API. I say “unfortunately” because the Amazon API is truly the Mos Eisley of the computer world: you will never find a more wretched hive of bugs and poor documentation.

Nearly all of the sample code in the Amazon developer index dealing with the Product Advertising API does not work, and has not worked since 2009, when Amazon made a change requiring cryptographic signing of all API requests. I am a PHP programmer, and the PHP sample code for dealing with the API does not work and has not worked for a very long time.

For example, the sample SimpleStore PHP script called “Amazon Associates Web Service Simple Store in PHP” in their code library was written in 2006 (ten years ago!), broke in 2009, but is still on their developer site.

You can imagine how rage-inducing this is. In science, we are all standing on the shoulders of giants. In computer science, we are all standing on each other’s feet.

So I’ve spent the last few days eyebrow-deep in Amazon’s technical documentation, trying to make decade-old sample code work so that I could do something–anything–with the API.

I’ve finally made the SampleStore PHP script work with the modern Amazon API, and fixed some bugs and closed some security holes along the way. I’ve decided to make the fixed script freely available to anyone who wants it. I’ve commented it extensively in the code.

If you’re working with the Amazon API in PHP and you’re tearing your hair out because nothing works and there is no sample code to show how to build cryptographically signed API requests, fear not! This code works. The interface is simple and ugly, but the PHP will get you up and running.

Please feel free to use, remix, copy, redistribute, or do whatever else you want. I sincerely hope that this code will help someone somewhere not have to tear their hair out the way I did.

Call to the Lazyweb: Backup

I have a problem I’ve been beating my head against for a while now, and I’ve finally given up and decided to put this out there to the hive-mind of the Internet.

I have a laptop I want to keep regularly backed up. I have external hard drives that I use to do this, one that I carry with me and one that stays in my office in Portland. I use cloning software to duplicate the contents of the laptop onto them.

But I also want to do incremental backups, Dropbox-style, to a server I own.

I do have a paid Dropbox account and I do use it. (I also have a paid Microsoft OneDrive account.) But I’d really prefer to keep my files on my own server. What I want is very simple: the file and directory structure on the laptop to be mirrored automatically on my server, like such:

This should not be difficult. There is software that should be able to do this.

What I have tried:

Owncloud. They no longer support Mac OS X. Apparently they ran into problems supporting Unicode filenames and never solved it, so their solution was to drop OS X support.

BitTorrent Sync. This program is laughably bad. It works fine, if you’re only syncing a handful of files. I want to protect about 216,000 files, totaling a bit over 23 GB in size. BT Sync is strictly amateur-hour; it chokes at about 100,000 files and sits there indexing forever. I’ve looked at the BT Sync forums; they’re filled with people who have the same complaint. It’s not ready for prime time.

Crashplan. Crashplan encrypts all files and stores them in a proprietary format; it does not replicate the file and folder structure of the client on the server. I’m using it now but I don’t like that.

rsync. It’s slow and has a lot of problems with hundreds of thousands of files. The server is also on a dynamic IP address, and rsync has no way to resolve the address of the server when it changes.

Time Machine Server. Like CrashPlan, it keeps data in a proprietary format; it doesn’t simply replicate the existing file/folder structure, which is all I want. Like rsync, it has no way to cope with changes to the server’s IP address.

So you tell me, O Internets. What am I missing? What exists out there that will do what I want?

Some thoughts on social issues in video games

Unless you’ve spent the last year living entirely under a rock, far from the hustle and bustle of normal life, and entirely without any sort of Internet connection, you’re probably aware to some extent of a rather lengthy fuss about the heart and soul of computer gaming. This fuss, spearheaded by a diverse group of people loosely gathered under a name whose initials are similar to GargleGoose, is concerned about the future of comic book and video game entertainment. They believe that a sinister, shadowy cabal of “social justice warriors”–folks who are on a mission to, you know, right wrongs and uplift the oppressed, kind of the way Batman or Superman do only without the fabulous threads. This cabal, they fear, is coming for their video games. The social justice warriors, if we are to believe GameteGoose, are so obsessed with political correctness that they wish to make every game in the world a sanitized, sterile sandbox where not the slightest whisper of sex or violence may be seen.

Okay, so granted that’s not likely the characterization GrizzleGoose would put to their aims, though I think the general gist is there.

And they’re not entirely wrong, though they’re pretty far from right. There is a battle going on for the heart and soul of entertainment. For decades, comic books and video games have catered to straight white middle-class guys, who overwhelmingly make up the demographic that bought the games, read the comics, and to whom writers, artists, and developers catered with laser focus.

But times have changed, comics and games have gone mainstream, and they’re attracting more and more people who aren’t straight white dudes any more. And as other folks have come into the scene, they have started pointing out that some of the tropes that’ve long been taken for granted in these media are, well, a little problematic.

And merely by pointing that out, the folks talking about these problematic things have provoked pushback. When you live in a world where everyone caters to your exact tastes, the idea that some people might start making some things that aren’t to your liking feels like a betrayal. And the suggestion that there might be something about your taste that isn’t quite right? Well, that can quickly turn into an existential threat.

GooeyGoose has effectively capitalized on that existential threat, rallying straight white dudes into believing they’re the Rebel Alliance who are under attach from the forces of social justice while adroitly handwaving away the reality that when it comes to popular taste in entertainment media, straight white middle-class dudes are and have always been the hegemonizing Empire.

But here’s the thing. You can point out that popular entertainment media is problematic without saying the people who like it are bad people.


I play Skyrim.

Skyrim is an open-world role-playing game where the player takes on the persona of a mythic hero trying to save a world plagued by dragons, a civil war, and the restless undead. It’s almost entirely unstructured, with players having the ability to choose to do just about Anything. Non-player characters the player interacts with offer advice and provide quests, which the player can choose whether or not to do.

It’s a lot of fun to play. I’ve lost quite a number of hours of my life to it, fighting dragons, deciding which side of the civil war to support, participating in political intrigue, exploring creepy dungeons, and exploring a lush and richly detailed world.

It also has some problematic issues.

This is Haelga, one of the characters in the game. The player can be given a minor side quest in the game by her niece, who works for Haelga but doesn’t like her very much. Haelga’s niece, Svana Far-Shield, tells the player that Haelga is having sex with several different men, and wants the player to get proof in order to shame and humiliate Haelga.

The way the quest is written, it’s sex-negative as hell. It plays to just about every derogatory trope out there: open female sexuality is shameful, women who are perceived as sexual are “sluts,” and pouncing on a woman with evidence of her sexual attitude is a sure way to humiliate (and therefore control) her.

You might argue that Skyrim is set in a time that is not as enlightened as the modern-day West, but that ignores a very important reality: Skyrim is set in a time and place that never existed. There’s no compelling reason to write sex-negativity into the script. The game works well without it. It’s there not because the distant faux-medieval past was sex-negative, but because modern-day America is.

But that, too, misses a point, and it misses the same point the GiggleGoose folks miss:

It is possible to recognize problematic elements of a game and still enjoy the game.

I recognize that this quest in Skyrim is sex-negative, and that’s a problem. I still like the game.

The people who play these games and read these comic books are not bad people for doing so. The content of the games and comics is troubling to anyone who cares about people other than straight white middle-class men, sure, and it’s certainly reasonable to point these things out when they occur (though they happen so damn often that one could easily make a full-time career of pointing them out). That doesn’t make the people who like them Bad And Wrong simply because they enjoy them.

GiddyGoose believes that saying video games are a problem is the same thing as saying people who enjoy video games are a problem. And if you identify with comic books and video games so strongly that you can not separate your entertainment media from your sense of self, they might be on to something.

But most folks, I think, are able to take a deep breath, step back a half pace, and recognize that the writers and developers have done some really cool, fun stuff, but they can still do better. It would not kill anyone if the quest in Skyrim were rewritten (how about have Haelga’s character replaced by a man? There’s a thought…), or even dropped entirely. Nobody suffers from recognizing that it’s not cool to make fun of people who aren’t like you.

Nobody’s saying that Skyrim shouldn’t exist, or that people who play it are terrible people. I would like to think, on my optimistic days, that that’s an idea anyone smart enough to work a computer can recognize.