diff --git a/src/script.org b/src/script.org index d7e218e..42051bf 100644 --- a/src/script.org +++ b/src/script.org @@ -8,13 +8,13 @@ before this project, my fixation was the dumbest social network. the stupidest. imgur. if you think reddit's layout is confusing, or "dated", then maybe you (or the preschool teacher you've had for 10 years running) would like to sign up for imgur.com. for a while, imgur was the least bad way to get an image too big for any cell carrier's MMS limits to your friends. So that was where memes lived. and, it allowed people to dislike things. So during that time, it was good. people would upload a thing, and as a consumer, the thing that you consumed left you better than when you started. -but then one christmas, out of some bizarre notion of charitability, they decided to just upvote everything. which means all the people who wanted to inflict their hideous face on the community and be praised for it instantly conquered the front page. Instead of a post being a thing that enriched the viewer, the viewer was expected to praise the poster. +but then one christmas, out of some bizarre notion of charitability, they decided to just upvote everything. which means all the people who wanted to inflict their hideous face on the community and be praised for it instantly conquered the front page. Instead of a post being a thing of value in and of itself, the viewer was expected to praise the poster. That moment was the failure of gatekeeping. From that point on, every so-called community "value" collapsed. Notably, "reposting" gradually shifted from a faux pas to accepted practice. meanwhile, someone had made an imgur bot that detects reposts, and then posts stats about how many times it's seen the image, and when it was posted with better quality. you can measure how dumb an imgurian is by how virulent his hatred for repost bot is. -the point of this story, is that during the decline of imgur, many more absolutely stupid ideas proliferated. The Left Cult enjoyed calling out The Right Cult for hypocrisy... but it was fashionable to use the term "cognitive dissonance" instead. after all, that sounds more medical, more legitimate, and lets you tell yourself you're smarter than your mirror image. +during the decline of imgur, many more absolutely stupid ideas proliferated. The Left Cult enjoys calling out The Right Cult for hypocrisy... but it was fashionable to use the term "cognitive dissonance" instead. after all, that sounds more medical, more legitimate, and lets you tell yourself you're smarter than your mirror image. but it's stupid. the way one outgrows their hypocrisy is by experiencing cognitive dissonance and resolving it. most people accused of cognitive dissonance are people who are blissfully unaware of their hypocrisy. they feel fine, no dissonance. so they will never stop being hypocritical. likewise, "gaslighting" was the shiny new toy in their vocabulary that was played with no matter how inappropriate. For the record, gaslighting is when you convince someone they're crazy. It is not any and all forms of deception. and it certainly is not any time a member of a demographic you consider to be inherently inferior contradicts you at all. -so at the time, i dreamt of a bot that would see the text "cognitive dissonance", and respond with "that's not what cognitive dissonance means." No need to do any sort of lexical analysis, just assume they're wrong. +so at the time, i dreamt of a bot that would see the text "cognitive dissonance", and respond with "that's not what cognitive dissonance means." No need to do any sort of lexical analysis, just assume they're wrong. Ditto for gaslight. nowadays i'd have to add "generational" to that trigger list. So while the community was growing to hate meaning and love reposts, the platform got worse. rather than being the technology that enables the sharing of memes, it degraded into a place for people to socialize through posting. I regret being too lazy or depressed or whatever to have actually written a snarky imgur comment bot. Alas, what could have been. @@ -24,11 +24,11 @@ Unlike Discord (the company), I am not under the impression that i'm the first p SeryBot is made by.. you guessed it, sery. it's his do-everything twitch bot, as one does, but you'll see serybot everywhere, providing its 2 core features: 1) ban this one *particular* spambot when it shows up. every twitch channel will inevitably see it, usually a few times every stream. 2) tell viewers to not bitch about the ads, with optional condescension. -it also helps mislead twitch viewers: whenever you say "good bot", sery bot responds, under the assumption you're talking to him. some twitchists seem to think serybot is the only bot. i swear i should do a video that just explains to people, for the millionth time, nightbot is not automod. +on the downside, it misleads twitch viewers: whenever you say "good bot", sery bot responds, under the assumption you're talking to him. some twitchists seem to think serybot is the only bot. i swear i should do a video that just explains to people, for the millionth time, nightbot is not automod. *** nightbot speaking of nightbot.. i used to like nightbot. - for a long time, it was the only other 2-platform bot i had ever seen. -- it has the one, fairly simple feature that comprises the vast majority of what most twitch streamers need: arbitrary commands. by custom, instead of a slash, you use an exclamation point. you pick the prompt. you can set control access to the commands, and so on. the paradigm is common enough that you'll occasionally see randos mystified that a streamer hasn't set up a particular command. +- it has the one, fairly simple feature that comprises the vast majority of what most twitch streamers need: arbitrary commands. by custom, instead of a slash, you use an exclamation point. you pick the prompt. you can control access to the commands, and so on. the paradigm is common enough that you'll occasionally see randos mystified that a streamer hasn't set up a particular command. - link permits are a great concept. twitch itself will let you either fully allow or fully block links. nightbot has the ability to delete links if it sees them, and temporarily lift that restriction for a specified person. that's Great. - you can give your mods partial ability to configure nightbot for you! however, nightbot is dead to me. as the web gets more and more overrun by charlatans, the concept of security is degrading. @@ -48,14 +48,14 @@ so i had a greasemonkey script on my mod view that sent all twitch events to a w next, a discord bot: magnificent charamote. magnificent charamote was in the secret channel, so it could parse the event text, and send it off to the rest of the tech. I had already made maggie a twitch account for the first attempt, so why not make all of its features available on both platforms? ** origin -Apple, as is their tradition, told us they invented the first lossy image compression format as though jpeg didn't exist, so now we'd all better fall in line. So iphone cameras automatically switched to taking photos in this new heic format. meaning if you're on an iphone, and you want to share an image on discord, anyone not on an iphone just sees an unrecognized attachment. So The Art Shtik asked for a bot that would convert those images to something, you know, compatible. like our communications technology served to /help/ us communicate, rather than /prevent/ us from communicating with people outside our enclosure. +Apple, as is their tradition, told us they invented the first lossy image compression format as though jpeg didn't exist, so now we'd all better fall in line. So iphone cameras automatically switched to taking photos in this new heic format. meaning if you're on an iphone, and you want to share an image on discord, anyone not on an iphone just sees an unrecognized attachment. The Art Shtik, a streamer at the time, asked for a bot that would convert those images to something, you know, compatible. like our communications technology served to /help/ us communicate, rather than /prevent/ us from communicating with people outside our enclosure. Might as well add that to my bot and add my bot to her server. ** shtikbot ascendant Enter: Shtikbot. with its original, sole feature: the de-heicer. you post a heic? it converts it from jpeg-but-apple, to jpeg, and posts it back. theoretically, ALLLLLllll the rest of shtikbot is scope creep. it worked, and it was good, so those were the glory days. i was inspired to expand and improve and polish it. -fundamentally, shtikbot grew to separate its accounts on various platforms from what it is. it is not "a discord bot" nor "a twitch bot", it is a bot that can read and write over platforms including twitch and discord. -[note] planned to do all the rest of the platforms, but that didn't pan out. -and now it can separate the concept of its features from each platform. that architecture is, in my subjective opinion, beautiful. More objectively, it's far more efficient, flexible, and extensible. +fundamentally, shtikbot separated its accounts on various platforms from what it is. it is not "a discord bot" nor "a twitch bot", it is a bot that can read and write over platforms including twitch and discord. +[note] planned to do all the rest of the platforms i knew about, but that didn't pan out. +and now it can separate the concept of its features from each platform. that architecture is, in my subjective opinion, beautiful. More objectively, it's far more flexible and extensible. so let's celebrate the victories: these are where the features ended up. *** fiximageheic.cs the original feature is the de-heicer. you post a heic, it posts that back, as a jpg. @@ -75,7 +75,7 @@ a qr is an encoding of text. the amount of websites that will try and charge you *** twitch summon a discord bot gets installed in a server, but a twitch bot, not so much. At least, in those days when twitch was in the 2nd E of every tech company's playbook, [show picture of microsoft's Embrace, Extend, Extinguish] -there was an API, but you could effectively make an irc bot just with an account. +there was an API, but you could effectively make an irc do-everything bot just with an account. so this was how you said, "shtikbot: go join that chat room." now i can take my bot with me to a stream where the streamer thinks in venezuelan dollars, translate to US dollars for my own brain, and anyone around who thinks in euros can use it, too. ...but, eventually, that mysteriously stopped working... *** linkme.cs @@ -124,9 +124,8 @@ it comes in a pint? #+end_quote what's a pint in fluid ounces? speaking of ounces, but not those ounces the other ounces, what's an ounce in pounds and what's that in kilograms? -with this, i had taken shtikbot into some streamer's chat, and she immediately made her own copy of the miles to kilometers conversion, also named freedomunits. (So i worked on per-channel command aliasing) -this is becoming a massive spreadsheet to keep track of an onslaught of 1-liner conversions. There's another reason that a better way was mandatory. -currency. +this is becoming a massive spreadsheet to keep track of an onslaught of 1-liner conversions. there must be a better way. +another reason that's mandatory: currency. If you somehow haven't seen squid game yet, i'm going to tell you the same thing i told everyone: you will want to be familiar with what one million won means. So if we add every single currency we can think of to this... good lord. i'm going to be afraid of the work i've made for myself if we hear about some other unit to add. #+begin_quote @@ -134,14 +133,15 @@ AM talking about hate on each... nanoangstrom #+end_quote here's what i came up with. instead of manually writing each and every possible conversion.. i write in one pair, and the formula between them. -To get from kilometers to meters, divide by 1000. to get back, multiply by 1000. +To get from kilometers to meters, multiply by 1000. to get back, divide by 1000. and it ought to be a formula - water freezes at 32 fahrenheit. fahrenheit minus 32, divide by 1.8 - 0 celsius. We're less likely to care about raising a temperature by 5 degrees celsius and converting that to a /change/ of 9 degrees fahrenheit, than we are about seeing it's 5 degrees celsius outside and converting that to it's 41 degrees fahrenheit outside. So instead of just a constant multiplication factor, we involve a computation engine (shoutout to Jace, not the MtG one but the dotnet one), and we write a /formula/ to convert in each direction. also we support some nicknames. write out fahrenheit if you can remember how to spell it, but if you just write F i bet i know what you mean. -then, courtesy of openexchangerates.org, we pull in the latest exchange rates from USD to every other currency they know of. they have a paid tier if you need lots and lots of requests with sub-second latency. For our purposes, "today" is quite up to date enough, so we just update once or twice a day. +then, courtesy of openexchangerates.org, we pull in the latest exchange rates from USD to every other currency they know of. they have a paid tier if you need lots and lots of requests with sub-second latency. For our purposes, "today" is quite up to date enough, so we just cache it once or twice a day. now, when you ask to convert 2 units, it *pathfinds* between them, with a breadth-first, meet-in-the-middle search. it builds itself a nice equation to convert between any compatible units. and gracefully doesn't explode if you ask it something it can't find a path for.. for example converting parsecs, a unit of distance, to hours, a unit of time. Mr. Lucas. now, any time i hear about a new unit, i add one little pair, and i don't need to resolve the whole enormous matrix. +with this, i had taken shtikbot into some streamer's chat, and she immediately made her own copy of the miles to kilometers conversion, also named freedomunits. So i worked on per-channel command aliasing. ** descent i hinted a bit ago at the 3E strategy: Embrace. Extend. Extinguish. it's how tech companies maintain control over the markets they've conquered. a competitor is sighted, so they embrace it. accept it. then even extend it, but do so in order to damage rivals. Microsoft got caught doing this in the 90's, Apple is currently doing this to USB. Shtikbot exists on discord and twitch, and the vast majority of work that went into it was working around the platforms it served.