I for one welcome our new AI overlords

I’ve been thinking a lot about machine learning lately. Take a look at these images:

Portraits of people who don't exist

These people do not exist. They’re generated by a neural net program at thispersondoesnotexist.com, a site that uses Nvidia’s StyleGAN to generate images of faces.

StyleGAN is a generative adversarial network, a neural network that was trained on hundreds of thousands of photos of faces. The network generated images of faces, which were compared with existing photos by another part of the same program (the “adversarial” part). If the matches looked good, those parts of the network were strengthened; if not, they were weakened. And so, over many iterations, its ability to create faces grew.

If you look closely at these faces, there’s something a little…off about them. They don’t look quiiiiite right, especially where clothing is concerned (look at the shoulder of the man in the upper left).

Still, that doesn’t prevent people from using fake images like these for political purposes. The “Hunter Biden story” was “broken” by a “security researcher” who does not exist, using a photo from This Person Does Not Exist, for example.

There are ways you can spot StyleGAN generated faces. For example, the people at This Person Does Not Exist found that the eyes tended to look weird, detached from the faces, so the researchers fixed the problem in a brute-force but clever way: they trained the Style GAN to put the eyes in the same place on every face, regardless of which way it was turned. Faces generated at TPDNE always have the major features in the same place: eyes the same distance apart, nose in the same place, and so on.

StyleGAN fixed facial layout

StyleGAN can also generate other types of images, as you can see on This Waifu Does Not Exist:

waifu

Okay, so what happens if you train a GAN on images that aren’t faces?

That turns out to be a lot harder. The real trick there is tagging the images, so the GAN knows what it’s looking at. That way you can, for example, teach it to give you a building when you ask it for a building, a face when you ask it for a face, and a cat when you ask it for a cat.

And that’s exactly what the folks at WOMBO have done. The WOMBO Dream app generates random images from any words or phrases you give it.

And I do mean “any” words or phrases.

It can generate cityscapes:

Buildings:

Landscapes:

Scenes:

Body horror:

Abstract ideas:

On and on, endless varieties of images…I can play with it for hours (and I have!).

And believe me when I say it can generate images for anything you can think of. I’ve tried to throw things at it to stump it, and it’s always produced something that looks in some way related to whatever I’ve tossed its way.

War on Christmas? It’s got you covered:

I’ve even tried “Father Christmas encased in Giger sex tentacle:”

Not a bad effort, all things considered.

But here’s the thing:

If you look at these images, they’re all emotionally evocative; they all seem to get the essence of what you’re aiming at, but they lack detail. The parts don’t always fit together right. “Dream” is a good name: the images the GAN produces are hazy, dreamlike, insubstantial, without focus or particular features. The GAN clearly does not understand anything it creates.

And still, if artist twenty years ago had developed this particular style the old-fashioned way, I have no doubt that he or she or they would have become very popular indeed. AI is catching up to human capability in domains we have long thought required some spark of human essence, and doing it scary fast.

I’ve been chewing on what makes WOMBO Dream images so evocative. Is it simply promiscuous pattern recognition? The AI creating novel patterns we’ve never seen before by chewing up and spitting out fragments of things it doesn’t understand, causing us to dig for meaning where there isn’t any?

Given how fast generative machine learning programs are progressing, I am confident I will live to see AI-generated art that is as good as anything a human can do. And yet, I still don’t think the machines that create it will have any understanding of what they’re creating.

I’m not sure how I feel about that.

It’s time to pack up and move

I’ve been blogging on LiveJournal since August of 2001. And what a long, strange trip it’s been. In the past fifteen and a half years, I’ve seen a lot of changes in the way people use social media: the rise and subsequent fall of a whole host of blogging services, the gradual fading away of USENET and email lists, Facebook’s march to supremacy.

In all that time I’ve continued to use Livejournal, partly because a lot of people know about my blog and follow me there, and partly because after more than a decade it becomes exceptionally difficult to move.

Today, when I signed on to LiveJournal, I found the writing on the wall:

LiveJournal was bought many moons ago by a Russian company, but only recently moved its servers to Russia. And since doing so, it’s been required to update its Terms of Service to comply with Russian law, which is rather odious and, well, Russian.

I don’t intend to go into a full analysis of the implications of the new ToS. That’s been done already in many places on the Web, including here, here, here, and here. (Interestingly, there’s no discussion of the change on the official LJ Policy community, and in fact there hasn’t been any discussion there since 2015.)

The bits I do want to talk about are those bits directly relevant to me and this blog.

The new Terms of Service have two provisions that directly impact me: in accordance with Russian law, any blog or community read by more than 3,000 readers is considered a ‘publication’ and is subject to State controls on publications, including the provision that the blogger or moderator is legally liable under Russian law for any content posted by any user; and blogs are prohibited from “perform[ing] any other actions contradictory to the laws of the Russian Federation.”

This blog is routinely read by more than 3,000 people, making me a “publisher” under Russian law.

And, more worrying, the Russian “gay propaganda law” forbids discussion of “sexual deviancy,” which includes LGBTQ issues. “Propaganda of non-traditional relationships” is forbidden by this law.

I’m not concerned that the Kremlin is going to demand my extradition to Russia to face trial. I am concerned that there’s a very real possibility this blog may disappear at any time without warning.


For a couple of years now, I’ve kept a backup of this blog over at blog.franklinveaux.com. The blog there is a mirror of the blog here, though links over there point to blog entries here rather than there. (Fixing that will be a massive undertaking, involving changing many hundreds of links in thousands of blog posts.)

I moved my LJ to WordPress, a process that was extraordinarily painful. There is an LJ importer for WordPress, and a tutorial for moving your LJ blog to WordPress here, but, as I discovered, there are a few gotchas.

First, the LJ importer plugin was not tested on large blogs. It requires enormous amounts of memory to import a LiveJournal blog with more than a couple hundred entries; at the time I did the migration, I had north of 1,600 blog posts. Second, it chokes on blog entries that have more than 100 or so comments.

Many, perhaps most, Web hosting companies place limitations on memory and CPU usage that prevent the WordPress LJ importer from working on large blogs.

Second, it won’t move images. If you have uploaded images to LJ’s servers, you must download them and re-upload them to your new WordPress blog.

I was unable to use the LJ importer to import my entire LiveJournal blog. I finally discovered a workaround, but it’s cumbersome:

  1. Create a free WordPress blog at WordPress.com.
  2. Use the importer there (it’s in the Tools menu) to import your LiveJournal blog.

    If you’re okay hosting your new blog at WordPress.com, you’re done. If, however, you wish to host your blog on your own server with your own WordPress installation, there are a few more steps:

  3. Use the Exporter to export a WordPress XML file of the blog.
  4. Set up your own self-hosted WordPress installation on your own server.
  5. Import the file you exported from WordPress.com.

Images you have uploaded to LJ will, as I’ve mentioned, need to be uploaded to your WordPress blog. (Thank God I’ve never done this; I’ve always put my images on my own server and linked to them there.)

The problem is compounded by the fact that LiveJournal has never wanted you to move. There’s no graceful way to export your LJ blog. There is an exporter of sorts, but it only exports a month at a time. The Wayback Machine at archive.org doesn’t archive LiveJournal posts, at least not consistently (it has crawled my blog only 37 times despite the fact that I have some 1,700 blog entries).


This is a huge problem. LiveJournal was one of the first blogging platforms, and a tremendous amount of very valuable information about the rise of social media is in danger of being lost.

This is, of course, the curse of the modern age. A diary written with pen and paper can be lost in an attic for centuries and then, once discovered, provide insight into the lives of people in a long-gone time. But we don’t record our lives that way any more. Today, our journals are kept on computer servers–servers owned by other people. And there’s no leaving these journals in an attic for a century for future people to find. They require constant, and sometimes very difficult, work to maintain. Anything you host on someone else’s servers for free is subject to someone else’s whims.

I am dedicated to doing the work to preserve my journal. From now on, I will not be posting new journal entries here. This blog will remain for as long as it can, and I will post links here to blog updates over on blog.franklinveaux.com. I encourage others to do the same. Anything here is subject to the vargarities of Russian law and should be assumed to be unstable, subject to deletion without warning.

From this point forward, please link to new blog posts on blog.franklinveaux.com, not LiveJournal. Over the next few months, I plan to work on linking my most popular LiveJournal entries back to their mirrors on franklinveaux, and updating links there to point ot blog posts there rather than here.

Oh, and the last person to leave LJ, please remember to turn off the lights.

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.

Psychic Litter: Chrome and phone menu trees

In 1995, writer David Joiner coined a phrase that I think has not received nearly enough attention: “psychic litter.” In an issue of Wired magazine, Joiner defines it this way:

“Psychic Litter” is a term I coined to mean acts of immorality so small as to be below the level of consciousness. One example is wasting small amounts of the time of many people. Bruce Tognazzini, the user interface guru, once opined that by creating a product that wastes a half hour of time for each of 4 million users, you waste 900 work-years of human productivity. That works out to about 12 complete lives.

It seems appropriate that his 1995 example involved user interfaces, as the most glaring examples of psychic litter I’ve personally ever encountered invariably come from tech firms.

Consider this: Last night, I spent some hours combing through my hard drive with a fine-toothed comb in search of some missing gigabytes that, by all rights, ought to have been there. Imagine my surprise when I peeked into my Applications folder and saw this:

Yes, that’s Chrome, the Google Web browser. Yes, it is twenty gigabytes(!) in size. No, that’s not a disk directory error.

Chrome updates itself more or less constantly, all completely silently and in the background, without user notification. That’s fine, but it turns out that every time it updates itself, Chrome (the Mac version, anyway) keeps the old version stashed within itself.

On the Mac, applications are actually “bundles,” special directories that contain the executable code plus all its required libraries. That’s how the Mac has made itself immune to Windows DLL Hell and Linux dependency hell; apps are self-contained.

You can look inside an application bundle by right-clicking it and choosing Show Package Contents from the popup menu.

When you do that on Chrome, you will see a folder called Versions. This folder contains a complete copy of every single version of Chrome that has ever been updated on that computer.

Google Chrome is about 200 MB in size. When it updates, it eats another 200 MB of hard disk space. When it updates again, there’s another 200 MB gone. And another. And another. And another.

In my case, I’d been using Chrome since 2012, and those updates had swallowed up 20 GB of space.

This shows a profound contempt and disregard for the user’s hard drive space.

Right now, by default, a brand-new Macbook comes with 256 GB of Flash storage; an 11-inch Macbook Air, 128 GB. That means my copy of Chrome would devour 15% of a Macbook Air’s standard storage.

By way of comparison, the current Mac operating system takes about 8 GB of hard drive space. That means my copy of Chrome was more than twice the size of my operating system on disk.

The simplest solution is to periodically delete Chrome and download it again, which means you’re swapping prodigious waste of your hard disk space for slightly less prodigious waste of bandwidth. The real solution is for Silicon Valley to become more conscious of the impact of their behavior on their users.

It’s not just Silicon Valley, of course. Yesterday, I had to call Services Canada about getting a social insurance number. The phone number for Services Canada took me to a voice menu tree that had six minutes of talking before the menu options were presented, and did not permit me to skip that six minutes by pressing the right number even though I knew what it was. Worse, hitting the key to repeat the menu choices caused the system to recite all six minutes of recording before offering the menu prompts again.

The design of voice menu systems is a frequent source of psychic litter. The people who record these systems rarely think about how they will be used, and often show contempt for the time of those who use them.

Sometimes, this is deliberate. Cell phone carriers have made voicemail messages longer to increase the the number of minutes of airtime used. More often, it’s careless. It stems from indifference to other people and lack of concern about the effects of our actions.

I would like to propose a radical idea: Let us all, every day, consider the implications of all our actions on other people, even the actions that we normally don’t think about. We all often find ourselves doing things that touch large numbers of other people. Even small acts of indifference, when multiplied many times, add up. We can all seek to be more considerate of other people in small ways as well as large.

What squirrels taught me about post-scarcity societies

If you know any transhumanists or other forward-looking folks, you’ve probably encountered the notion of a “post-scarcity society.”

I just got back from a two-month writing retreat in a cabin deep in the heart of rural Washington, many miles from civilization. The squirrels at the cabin are quite talented at stealing birdseed from the bird feeders around the cabin, and that taught me a lesson about transhumanism and post-scarcity society.

This might make me a bad transhumanist, but I think the hype about post-scarcity society is overblown, and i think the more Panglossian among the transhumanists have a poor handle on this whole matter of fundamental human nature.

I’ve written an essay about it over on Think Beyond Us, which includes a video of squirrel warfare. Here’s a teaser:

We’re moving toward the technology to do things in a completely different way: using tiny machines to build stuff from a molecular or atomic level. In the book Engines of Creation, K. Eric Drexler envisions a time when we will be able to fabricate almost anything we can imagine from simple raw materials and energy.

And on this foundation, futurists say, post-scarcity society will be built. If we can make anything from any raw materials cheaply or free, there is no longer a divide between rich and poor. Think Las Vegas where everyone is a millionaire whale. Want a car? A sofa? A cup of tea? Program assemblers with the characteristics of the thing you want, push a button, and presto! There it is.

In a society where everyone can have whatever stuff they want and nobody has to work, entertainment becomes very important indeed. And those who can provide it—those who can write, or sing, or perform—well, they control access to the only resource besides land that means anything.

So what, then, do we make of a society where the 1% are determined not in accordance with how many resources they control, but how creative they are? A Utopian might say that anyone can learn to be creative and entertaining; a look around the history of humanity suggests that isn’t true.

Those who own land today command one of the few resources that will matter tomorrow. Those who can entertain command the only thing that can buy that resource. And the rest of humanity? Suddenly, Utopia starts to look a whole lot less Utopian to them, and a whole lot more like the same old same old.

Check it out! You can read the whole thing here.

Unwrapping a new project: an uncensored Amazon erotica search tool!

I am a self-published erotica writer. I write BDSM fiction, including the novel Nineteen Weeks, a story I’m very proud of.

A couple of years ago, I discovered that the number of books I was selling suddenly fell off a cliff. I did some research and found that the same thing was happening to a lot of erotica writers, especially self-published writers. Amazon’s Search function on their Web site was filtering out a lot of erotica, particularly erotica with themes of non-traditional relationships like BDSM.

However, I discovered something interesting a few months back: The Amazon search API, a set of programmer’s tools that allows Web programmers to search Amazon’s book titles, doesn’t filter search results. You can log on to Amazon and do a search for a particular book and see no results, but if you write a Web site that uses Amazon’s API and do a search, ta-da, there it is!

I’m sure you can see where this is going.

On and off for the past few months, I have been working on building a new Web site, called Red Lit Search. This site has a database of erotic books in Amazon’s catalog–so far only about eighteen hundred or so, but the list is growing–and also allows you to do uncensored searches of Amazon. My hope is to grow it into a portal for erotic books; if it succeeds, I plan to add new sections with things like articles, interviews with erotica writers, and all kinds of fun stuff like that.

So check it out! Spread the word! Kick the tires, test the software, and let me know what you think!

[ Visit Red Lit Search, the erotica search engine ]

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.

Update #7 on the sex toy you can feel

It’s been a busy month in smart sex-toy land.

We’ve just finished another round of testing of the third-stage prototype design, and ironed out some bugs that cropped up with the first incarnation of the current design. We’ve demonstrated conclusively that the idea works, and works well–even with the crude hardware we’re currently using, we’re able to trick the brain into internalizing the device into the wearer’s sense of self.

It was fascinating watching the most recent beta testers. We tested with two volunteers. With one of the volunteers, I was able to tell the exact moment her brain worked out the sensation and internalized the dildo. She was running her hand along the dildo, and she said “I don’t know, it feels weird and kind of uncomfortable, it just–” and then the switch flipped and she said “Oh!” and grinned.

Unfortunately, we’re running into limitations in how much further we can take the design by ourselves, given that I’m building each prototype by hand. Right now, each prototype is a hand-made one-off that takes hundreds of dollars and several days’ worth of work to put together. There’s a lot of hand soldering of some very tiny and somewhat fiddly components involved with every new prototype, which then ends up getting tossed at the end of each round of testing. The current design can’t be sterilized, so I have to build a new one each time we beta-test with a different person.

We’re learning quite a lot from each test. One thing we’ve found is there’s incredible variability between different people in internal anatomy and neurology. Some people are approximately evenly sensitive everywhere in the vaginal canal; some people are more sensitive in the lower portion of the vagina than the upper portion; some people are more sensitive on one side than the other. That means the final device will have to be tunable to each individual who wears it, with the wearer customizing the intensity of stimulation from each individual electrode. That adds a new level of complexity to the electronics, not to mention the user interface.

The current prototypes are built by modifying off-the-shelf dildos with sensors and electrodes. The prototypes use copper electrodes, which have a very short life expectancy; the final version may have to use gold for the electrodes. We’re still researching that.

We’re researching quite a lot, actually. Now that we know the concept is sound, we’re moving toward a more research-intensive phase of development. Questions we’re still addressing include things like what is the maximum sensory resolution inside the vagina, how does it vary in different areas of the vagina, how does it vary across different people, what is the safest electrode material that offers good durability while being body-safe, what’s the minimum number of sensors the dildo must have to create the sensation of being part of the body, what’s the maximum number of sensors and electrodes past which the wearer can’t distinguish different sensations any more, and what’s the best signal shape to stimulate the sensory nerves in the wearer without being painful or unpleasant. (The first versions of the prototypes used a very simple signal generator; the most recent version uses a programmable signal generator.)

The prototypes we’ve built so far have all had an insertable portion designed to be worn vaginally. We’ve had many people ask us about designs that don’t require insertion, or that work with an anal insertable portion. That’s also something we plan to experiment with; we want to find out whether stimulation of different parts of the body will achieve the same results. We plan to do some prototyping of designs that don’t require vaginal insertion soon.

That’s where you come in, O denizens of the Internet.

We are looking for people to partner with to help us do more sophisticated prototyping. Right now, we’re in desperate need of a company interested in partnering with us that has experience doing short-run custom silicone molding, preferably in or near Vancouver, BC. We are also looking for an electronics engineer who is sex-positive and interested in this project, especially one with experience in doing switching and amplitude modulation of analog RF signals.

If you know of anyone with those skills who would like to be involved in this project, please let me know, either here or by email at franklin (at) franklinveaux (dot) com.

Want to keep up with developments? Here’s a handy list of blog posts about it:
First post
Update 1
Update 2
Update 3
Update 4
Update 5
Update 6
Update 7

Some thoughts on being fifty

Three days ago, I celebrated my fiftieth birthday.

Well, perhaps “celebrated” is too strong a statement. I was in the middle of an allergy attack that made me miserable, so I spent it faffing about on the computer rather than engaging in the kind of orgiastic bacchanal that one might expect from an Internet sex gargoyle.

In any event, in between faffings on the Internet, I spent some time musing about what an absolutely bizarre trip it’s been, and some time cleaning in my writer’s loft. These two things are related, as it turns out, because in the process of cleaning I came upon some old photographs.

I started the journey through life in New Jersey. Before I was a year old, I realized that living in New Jersey was a bit rubbish, so I moved to Idaho, taking my entire family with me. My parents drove a Volkswagen Bug, something which apparently left quite an impression. What can I say? I was struck by the elegant simplicity and robustness of the design.

We stayed in Idaho long enough for me to pick up a sister, then bounced around the Great Midwest for a while, where I picked up the hobby of model rocketry. There is, it seems only one battered and scuffed Polaroid photo exists from this particular time in my life–peculiar, when one considers that model rocketry was pretty much the greatest thing in my life for quite a long time.

And yes, that’s a plastic model of a Romulan bird of prey from the original Star Trek on my desk. Don’t judge me.

I had a computer back then as well, a Radio Shack TRS-80 Model 1 that was a Christmas gift from my aunt in 1977. That thing might have saved my sanity. I didn’t have any friends while I was growing up in Venango, Nebraska, but who needs friends when you have a computer and a bunch of rockets?

Radio Shack published the complete schematic of the TRS-80. Seriously, you could walk into the store and buy not only the schematics but also books on how to modify it, and a complete, commented disassembly of the ROM chips–something that is beyond unthinkable today.

I modified the computer extensively, spray-painted it black, and overclocked it. Stock, it had a 1.77MHz Z80 8-bit processor, which I modified to work at 2.44 MHz (which caused some software to break) or at approximately 4 MHz (which caused it to malfunction frequently and required that I set it in a tray full of plastic bags of ice). The yellow LED you see in this photo would come on when I ran it at 2.44 MHz, the red LED would come on at 4 MHz. My parents were often horrified to see it spread out all across my bed, which was the only work space I had.

I kept it until I was almost 40, purely from nostalgia.

In my memoir The Game Changer, I talk about taking two dates to my high school senior prom. This wasn’t because I was suave with the ladies; it was because one person asked me to the prom, I said yes, another person also asked me, I said yes again, and it didn’t even occur to me that this might be a problem.

Fortunately, they were both totally cool about the whole thing. I took them both to dinner before the prom, which raised a few eyebrows.

Only two photos from that prom exist that I’m aware of, and I found both of them. Yes, I’ve always been a weird-looking motherfucker.

Until recently, I have not been much into partner dancing, though I do love to dance. My high school senior prom might’ve been the last time I partner danced until I was in my 40s.

I had a storied checkered educational career. I went to school at Lehigh University, where I discovered, and feel in love with, a Digital Equipment Corporation DECsystem-20 mainframe. Ours was a forbidden love. There were certain…allegations from the faculty of less-than-completely-aboveboard activities involving that mainframe. “Computer hacking,” they said. Also, “your scholarship is revoked.” And “don’t come back.”

I bounced around for a bit, worked fast food for a while, then ended up going to school in Florida again. Sadly, that part of my life is poorly documented–if any photos exist from that period, I don’t have them.

I did find this photo of me, taken in April of 1991, the last year I was in college.

My early childhood experience with my parents’ Volkswagen led to a long-term love for the cars, of which I’ve owned two. The first car I ever owned was a 1969 Bug; my third car was a 71 Bug, which, like my computer, I modified extensively.

There’s a passage in The Game Changer in which I talk about how absolutely clueless I was about sex and relationships, and how I could not recognize even the most obvious attempts at flirting:

Worse, I was in that awkward stage of male development where I was so desperate to try to figure out how to get girls to pay attention to me that I completely missed it when girls paid attention to me. Prior to that afternoon at Jake’s place, Caitlin and I had spent quite a lot of time together. We were great friends. But when I look back with wiser eyes, I can see she was trying in a thousand ways to tell me she was open to more.

One particular evening, I drove her home from work in my beat-up Volkswagen Bug. We sat in the car in front of her house talking for a while. She complained there was something on the seat digging into her butt. She dug around for a bit and came up with a small machine screw—a leftover, no doubt, from the work I’d just done replacing the back fenders with the half-sized fenders popular among people who liked to take Volkswagens through deep mud. “Hey!” she said brightly, holding it up. “Wanna screw?”

The whoosh of her flirt passing over my head might have sucked all the air out of the car had the windows not been open. It was years before I realized she’d been flirting with me all along.

This is the car in which that happened.

From about 1978 or so on, I had been involved heavily in the computer BBS scene. A BBS was the forerunner of modern Web forums–a computer running special software connected to a phone line, which you could dial into and leave messages on (text only, generally) at agonizingly slow speeds. Most BBS systems could only accommodate one user at a time, so if you called while someone else was logged on, you’d get a busy signal. Popular systems were constantly busy, so you’d set your computer up to keep redialing, over and over, until it got through, then alert you when it made a connection.

I was on systems with names like CBBS-Chicago, Pirate-80, and Magnetic Fantasies. When I started school in Sarasota, I ended up with a roommate who was, like me, an enthusiastic TRS-80 hacker and BBS fan. He ran a BBS called The Wyvern’s Den. I thought “hey, I can do that!” and started a BBS of my own, called a/L/T/E/R r/E/A/L/I/T/Y.

I ran A/R for about six or seven years, on a TRS-80 Model 4 that had been heavily modified. The IBM PS/2 computer had just come out, and the PS/2 systems used 3.5″ floppy drives that had a design defect: they were prone for going out of alignment. IBM would replace them under warranty and then, rather than taking the five minutes to fix the floppy drives, would just throw them out. I went Dumpster diving behind an IBM repair shop one evening, came out with a big pile of 3.5″ floppy drives, cleaned them up, aligned them, and connected them to the TRS-80 by way of a custom hardware interface I designed and built. These became the storage for the A/R message boards. You can see two of them, sitting bare without cases, to the right of the computer in this photo. There’s a third one sitting on the shelf just behind the center of the computer, and a fourth one under the 5.25″ floppy in the foreground on the right.

TRS-80 floppy drive controllers were only supposed to be able to access four floppy drives, but it turned out to be possible to instruct the floppy controller to access two drives at the same time, so with a bit of software trickery and a 4-line-to-16-line demultiplexer chip, you could actually get them to talk to up to 16 drives at once.

There’s a wooden box just barely visible in the right-hand side of the picture. It held a power supply that powered all the floppy drives. I used to warn guests to the apartment, “don’t touch that, you’ll get electrocuted.”

I was a late bloomer sexually, but made up for it through the rest of my life. In the late 90s, I developed a prototype of an Internet-controlled sex toy. It rose up out of a toy I’d developed in the mid-90s that was designed to be plugged into a telephone line and controlled by the tones from a Touch-Tone phone. My former business partner and I tried to bring it to market, with less than stellar success.

We designed a plastic cabinet for it, which we made with a vacuum-forming rig we built. We had a run of circuit boards made, and I would sit for hours at the kitchen table with a soldering iron in my hand putting components on them. The company we’d hired to fab the circuit boards made a mistake in the fabrication, so each board required reworking as well.

We called the device “Symphony.” This is the very first one we ever sold. It’s supposed to have the name “Symphony” screen printed on the front; somehow, this one ended up without the screen printing.

And now, decades later, Im still exploring the intersection of sex and technology.

From high tech to low tech: in the early 2000s, I was invited to speak at Florida Poly Retreat. One of the classes I taught was in how to build a trebuchet, a Medieval siege engine. During the course of that workshop, we designed and built a working model trebuchet.

The T-shirt I’m wearing in this photo reads “Catapultam habeo. Nisi pecuniam omnem dabis, ad caput tuum saxum immane.”

Even after my divorce from my ex-wife Celeste, which story forms the backbone of The Game Changer, I kept this habit of extensively hacking any computer I own. (That continues to this day; I’m typing this on a MacBook Pro that has had its DVD drive removed and replaced with a second hard drive, and the first hard drive has been replaced with an SSD.)

My partner Amber and I moved into an apartment together after the divorce. The living room looked like this.

I kept the TRS-80s and an Apple Lisa, even though they’d largely been retired by this point. The black thing stuck to the ceiling is an Apple //c monitor, spray-painted black. It had a green screen monochrome display that accepted a composite video signal, so it was easy to pipe just about any video into it. Most of the time, Amber and I had it showing Bladerunner on a loop. When I played World of Warcraft, though, I would pipe that to it instead.

Amber and I ended up rescuing two cats during the time we lived together. One, a rather handsome tabby, had climbed a tree to the third story of the apartment building next to ours, jumped from an overhanging branch onto the roof, and then realized he couldn’t get back down. He cried piteously for days. We threw food up to him until we could figure out a way to rescue him. We named him Snow Crash.

The other adopted Amber when we were out walking in a large park late one night. We heard a cat meowing from under some bushes. When we turned around, a cat came catapulting out straight for Amber and jumped up into her arms. She refused to let go, holding on to Amber until we walked all the way back to the car, then insisting on accompanying us home. We named her Molly, for the character Molly Millions in Neuromancer.

So here I am, fifty years old, and what a peculiar thing it is to be a human being. Life is amazing.

When I was a child living in Venango, the bus that took me to school would drive past a church with a sign out front that had pithy sayings on it intended to inspire us to live better lives. One day, that sign said “Your life either sheds light or casts a shadow.” I knew, at eleven years old, there was something wrong with that, but I didn’t have the words to describe what. Now, almost forty years layer, I understand: it’s bullshit. We are all, every one of us, made of light and shadow, good and evil.

I have screwed things up and hurt people. I have been hurt. I have gotten things wrong, made mistakes, been careless with the hearts of others.

I have also experienced the most amazing love. I have known and been loved by people who are so remarkable, I consider myself privileged merely to have known them. I have learned things and gotten some things right.

We are all made of light and shadow. It is on all of us to treat each other with care. We’re all confused. Being human is fundamentally weird and more than a little scary. We’re all making this up as we go along, even those of us–especially those of us–who try to pretend we Have It All Figured Out.

I’ve spent thirteen and a half billion years, give or take, not existing, and fifty years existing. That’s enough of a sample size to tell me that existing is better. It’s harder, sure. We have to do stuff. We have to make choices. You don’t have to make choices when you don’t exist. Making choices means sometimes we make wrong choices, and making wrong choices means sometimes we hurt people. Hurting people sucks.

I carry a lot of regrets with me. There are many things I have done that I wish with all my heart I could undo–times when I have not been as careful as I should be, perhaps too preoccupied with my own fears to be properly gentle with other people. It’s a consequence of being plonked into existence without a user’s manual.

We all get banged up a bit on the journey through life. But despite that, I would not trade a goddamn minute of it for anything. I am flawed and I make mistakes. All the people I know are flawed and make mistakes. And yet, this brief moment we share in the sun is a gift of inestimable value. I am grateful for every moment of it, and I hope to be here in existence for much, much more.

Update #6 on the sex toy you can feel

Whew! Lots of things going on in the world of high-tech sex.

I’ve been hard at work on the second-generation prototype of the sex toy you can feel. The first-generation prototype was intended as a proof of concept rather than a usable sex toy; the sensors I was using were large and bulky, and made the strapon impractical to have sex with.

The second-stage prototype features a new and more powerful wearable computer, a larger number of much smaller sensors (each about as thick as a sheet of paper), and a completely redesigned vaginal insert. The new prototype took a while to assemble–mad science is hard!

Today, we reached a milestone. For the first time, one person (we will call her “Experimental Volunteer A”) had sex with another person (who we will call “Experimental Volunteer B”) with the prototype. Aside from a few minor design glitches which will be solved with the third-generation prototype, the sex went smoothly and was a great success. Experimental Volunteer A was able to feel the dildo moving inside Experimental Volunteer B, and there was much screaming, giggling, and moaning. A great time was had by all involved.

One of the areas of focus for the near to mid term future will be doing some research on the neural density of the inside of the vagina. I haven’t been able to locate anything in the literature that talks about this. It’s going to be one of the design factors in how many neurostim electrodes the final device will have, as there’s little point in having a number of outputs that exceeds the wearer’s ability to differentiate between them. We may end up having to do some research to find this out.

We’ve also received word that the patent application is in the hands of the US Patent Office, so at this point we’re able to say “Patent Applied For.” Patent applied for! When the PTO publishes the application, we’ll be able to say Patent Pending.

I’ve already started to take the things I’ve learned from today’s experiment to make some design changes to the third-stage prototype.

Want to keep up with developments? Here’s a handy list of blog posts about it:
First post
Update 1
Update 2
Update 3
Update 4
Update 5
Update 6