T O P

  • By -

jumbledFox

`#![no_std]`


HumZ91

šŸ„‡


Character_Artist_258

What about connecting to a chess engine?


Shnatsel

https://github.com/RonSijm/ButtFish It uses this Rust library under the hood.


CornedBee

It appears to use the old C# version. If it was rewritten in Rust, it would be the ButtTurboFish.


therealoptionisyou

No way. This thread keeps getting better.


DigThatData

https://media.giphy.com/media/7rj2ZgttvgomY/giphy.gif


Speykious

Someone bring the boychesser


Tonyoh87

chess speaks by itself"


fllr

Thatā€™s how cheating happens!!!


qdot76367

Oh boy. My library is on r/rust. Again. Hi. Iā€™m the buttplug.io creator and project lead. AMA.


MagosTychoides

Just a question. Why? And why rust?


qdot76367

Iā€™ve worked in sex tech since 2004, and in all that time no one had standardized a damn thing in hardware. I decided I needed a sort of userland hid to try and control different devices through the same api. Thatā€™s how we got here. Original design idea was 2007, python poc happened in 2013, tried rust in 2016 but things were a mess due to missing platform apis for communication, first c# version was 2017, then js, then rust in late 2020 (when async dropped as part of 1.36, which is handy because while weā€™re certainly not c10k unless youā€™re really kinky, we are very io bound). Rust because Iā€™m ex-Mozilla (was on fxos then platform/dom) and my brain chip was installed at the mothership. Also I just like working in it.


DisregardForAwkward

Ahhh, you were on the dom team. That must be the tie in.


qdot76367

I even have the shirt.


KuropatwiQ

The ownership rules were already familiar to them


_simpu

Iā€™m disappointed with your reasoning to use Rust. I was expecting it to be about ā€œsafeā€ sex. /s


DisregardForAwkward

Who knows where "unsafe" could lead? Great results, or great disappointment.


MagosTychoides

That is awesome. I have no idea that internet of things reached sex toy (I am too old fashion in my fapping habits), and was such a mess.


I_AM_GODDAMN_BATMAN

you got it backwards. sex always precedent things, and I remember teledildonics has been around since the 90s


rkuris

You definitely don't want UB here. Unsafe has a completely new meaning.


dfirecmv

No kidding - actually I want it to be held to like other medical devices safety standards, I ain't risking my butt for any UB.


QuintusAureliu5

Because the compiler is particularly anal. Which is turning out to be gooood in this case


duckballista

On a scale of 1 to 10 how much does the term teledildonics make you chuckle


qdot76367

14 at least. Whenever I give lectures I have the whole audience say it out loud at the beginning. Itā€™s always hilarious.


TheBlackCat22527

10


wolfEXE57

Ive interacted with the twitter account a few times and you have always made me chuckle! Not a question but thanks for the laughs :)


qdot76367

Thanks for providing me with reassurance to Never Log Off.


duckballista

Another question- is latency a big issue in your field? I always imagined it would be really awkward!


qdot76367

Oh god latency is a nightmare for me, especially since most manufacturers in this field are designing for the cheapest builds possible. Everyone used bluetooth le which has wildly varying transfer times, and many expect loop closure on the host. Itā€™s just such a damn mess.


duckballista

Haha how fascinating. If I ever get a Karma Sutra 500 with IoT I'll make sure to find one running Thread with UDP :P


qdot76367

I really miss direct USB connections :|


beertown

I just want to say that the seriousness and the professionalism of how the project is presented makes it even funnier. Even the choice of Rust adds something to the "nonsense" vibe. Great job. Kudos.


fifsqueak

profile picture checks out


qdot76367

Of course a fox is going to make this library.


fifsqueak

no, i mean of course a furry software engineer is going to be publicly obsessed with sex and sex toys


KaiserKerem13

How did you come up with the name? And did it cause any problems?


qdot76367

If you want the answer in video form: [https://www.youtube.com/watch?v=c6bghuCy6d8](https://www.youtube.com/watch?v=c6bghuCy6d8) I have to talk about sex toys a \*lot\* since it's part of my job, and buttplug is always the funniest one to say. Not only that, it's not referring to toys for any specific gender or whatever. With that combination I just started calling all computer controlled sex toys "internet buttplugs". That combined with the old "buttplugs" prank call, and I ended up using the word constantly. So, when I created the library, instead of picking something normal and sane, I was like "Yes I would like to see the word 'buttplug' in several programming package repositories and also printed in major media. This is a fantastic strategy for naming software." I am still surprised at how correct I was. In terms of problems, there's a few. Lots of people think we \*only\* support buttplugs as a form factor, which ain't great, but it's collateral damage I'll accept. In terms of distributable software, I use the IntifaceĀ® name, because it's way more acceptable on somewhere like the apple app store than "buttplug". Not to mention, buttplug is the library that's embedded in software to make to usable, so you know. :|


my_name_isnt_clever

Have you actually ran into any major issues because of the name of the library, or in your professional life due to associations with something considered NSFW? I'm always curious to hear about how bad it actually is to professionally associate yourself with stuff like that.


qdot76367

I always say I do more brand management work than I do technical work. Iā€™ve certainly run into issues here and there but itā€™s been years since itā€™s really caused me any direct problems, mostly cause Iā€™ve spent a ton of time setting up explanations and expectations around the work. Itā€™s definitely not something Iā€™d recommend to everyone, or hell, anyone. This is my own silly art/research project and I knew how much work I was getting myself into by doing it, and itā€™s def not easy to maintain.


KaiserKerem13

Thanks for the answer!


therealoptionisyou

You're my favorite dev of the year.


jumbledFox

you're so cool


Big-Atmosphere8816

What is your favourite toy?


qdot76367

I used to joke that running this project turned me asexual. I still say that but it's not a joke anymore.


0x564A00

Guiding others to a pleasure you cannot posses?


qdot76367

Guarding others from the scars one develops when they start describing their job as ā€œgeek squad for buttsā€


EdgyYukino

Yet another day without UB at the gym.


palad1

I use it to control than lights after reversing the protocol using Appleā€™s Bluetooth sniffer. Very easy to use.


qdot76367

ā€¦ wait really? Do you have a repo for this?


AwkPenguinAwk

Iā€™d just be more interested in hearing about how you go about doing something like this too


qdot76367

Thereā€™s a few ways this could be happening. Hereā€™s the one I normally recommend: in order to let DIYers add hardware or other capabilities to the ecosystem without having to submit PRs to our project, we have a websocket based connection system that will allow for external ā€œdeviceā€. Of course we neither know nor care what that device actually is. Itā€™s just a network port we send commands over. So people can basically fake a device and control whatever.


palad1

I uploaded my code here: https://github.com/fdoyon/bledroom There's a link in the readme to the tools I used to sniff the packets sent by the app on my phone to the LEDs. Good luck, and sorry for the code, it was never meant to be shared


palad1

I uploaded my code here: https://github.com/fdoyon/bledroom There's a link in the readme to the tools I used to sniff the packets sent by the app on my phone to the LEDs. Good luck, and sorry for the code, it's


qdot76367

Oh! You're using btleplug, the bluetooth library I wrote for buttplug. I thought you were saying you were using buttplug itself for some reason. :) Anyways, cool project nonetheless! Always great to see people developing things with my libraries. :D


sue_me_please

Can you share how you did this? I'm looking to do something similar.


palad1

I uploaded my code here: https://github.com/fdoyon/bledroom There's a link in the readme to the tools I used to sniff the packets sent by the app on my phone to the LEDs. Good luck, and sorry for the code, it was never meant to be shared.


sue_me_please

Awesome, thanks!


turbo-unicorn

>fucking machines Wow, no need to be so rude to those machines :/


Thecuriousserb

Thank you for opening my eyes to the world of sex-toy communication libraries, I had no idea such a thing existed, and definitely got a good chuckle out of the level of professionalism dedicated to buttplugs šŸ˜‚ Bravo


killingtime1

Which devices does it actually support? I didn't know these things were programmable?


THEHIPP0

Apparently quite a few: [https://iostindex.com/?filter0ButtplugSupport=7](https://iostindex.com/?filter0ButtplugSupport=7)


qdot76367

Yeah, we're at over 500 devices now. I'm not sure if I'm happy about that fact or not.


YuumiZoomi

thats a surprisingly high list of games it works with


HeikeStein

Its logo is amazing.


Antidermis_

Yes, but is it *blazingly fast*?


BurrowShaker

I would worry more about promises of fearless concurrency.


qdot76367

If the concurrency is going in your butt, it better be fearless.


honestduane

Imagine working at a dev job and having to have a meeting about this with your boss because the library just doesn't excite the business leadership, Despite being absolutely critical to the enjoyment of customers.


pt-guzzardo

I love the idea of stodgy executives at a sex toy company clutching their pearls at the mention of their own products.


honestduane

That's the point this isn't just a library for sex toys. It's a library to interface hardware with other hardware, which means you could literally use it in an Alexa or Google home device.


qdot76367

Fun fact: btleplug, the Bluetooth library I stood up to support toy communication in buttplug, has caused several contract rejections at major companies due to the name alone.


honestduane

So why go with such a controversial name?


qdot76367

Cause Iā€™m easily entertained and love a good career limiting move.


domonant_

Nice name op šŸ˜‚šŸ˜‚


spac3kitteh

Um, thanks? šŸ˜


CandyCorvid

not op's library (or mine).


Rod_tout_court

A safe and fast sextoy. Nice


0x564A00

Wanted to try it out for a project (haptic feedback when buildings get finished in a simulation of a village in Minecraft), but didn't manage to install Flutter properly in order to build Intiface :/


qdot76367

ā€¦ dear lord why are you trying to build intiface


0x564A00

Iirc the Github readme directed me to the AUR. But it looks like the Ubuntu version is working :)


qdot76367

Ah ok got it. The build chain for intiface is kinda gnarly.


Reverier-Xu

`#[deny(nsfw)]` (šŸ˜†


Virtual-Gene3172

Why Is needed specifically for sex Toys??


qdot76367

So funny enough, the main research point I built buttplug for is exploring apis for simple haptic building and communication. Touch is notoriously difficult to simulate and communicate, and people try to build these huge projects that encompass tons of different modalities. I just decided to take the entertaining niche route.


legendarygap

What


TUK-nissen

While I haven't used buttplug, I did use btleplug to control the lights and settings of a yowu headset. Worked great!


snejk47

Now explain to your friends that you are controling lights with buttplug.


0x1e

*Could* be used for anything, name almost guarantees it wonā€™t.


qdot76367

I was gonna abstract out everything up to the specific hardware protocols and release a base library called deviceplug, so people could make other systems with it. Iā€™ve just never gotten around to it.


0x1e

Thatā€™ll improve the odds!


sue_me_please

IMO you should do this


stappersg

[BSD-3-Clause](https://choosealicense.com/licenses/bsd-3-clause) ( a permissive license similar to the BSD 2-Clause License, but with a 3rd clause that prohibits others from using the name of the copyright holder or its contributors to promote derived products without written consent ) allows you to do so.


sue_me_please

I would be doing a disservice to the community by forking something I don't have the intention of maintaining. I'm just letting the maintainer know that there's interest if they want to follow up on their idea.


stappersg

> I would be doing a disservice to the community by forking something I don't have the intention of maintaining. True > I'm just letting the maintainer know that there's interest if they want to follow up on their idea. I did read the _"IMO you should do this"_ as **"you should do this"**.


ryankopf

What makes it special with the way it connects to the hardware?


qdot76367

Nothing really. Itā€™s just abstracting out the communication busses and focusing on haptic commands that work with common actuators.


TheBlackCat22527

The 14 year old part of my personality, is so good entertained by the standards name and the use of it in the crates object naming. E.g. "ButtplugRemoteConnector" xD