MU Soapbox

    • Register
    • Login
    • Search
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Muxify
    • Mustard
    1. Home
    2. Chime
    3. Best
    • Profile
    • Following 7
    • Followers 10
    • Topics 16
    • Posts 263
    • Best 126
    • Controversial 0
    • Groups 2

    Best posts made by Chime

    • Mechanipus outage & Closing plans

      As sent to Mechanipus-hosted game admins:

      Two major things:

      First, the primary server most of you are on (Kuramori) needs to undergo
      a migration operation ASAP. I'm scheduling this for around mid-day
      (US-time) tomorrow (Thursday, 6 December 2017). Services (mush,
      database, webhosting, shell access, etc) will be completely offline
      during the duration of this move, which may take several hours.

      No data is lost or in any immediate danger, but physical hardware
      problems necessitate this move to ensure we have reliable backups.
      (Blessed are the pessimists, for we take backups, etc.)

      Kuramori should return to operating status afterward all by itself, but
      I anticipate that mushes linking against truly antique libraries may not
      restart without a recompile. Please understand: this is 2017 and
      Kuramori is a 64bit Debian environment; some of you are still running
      binaries compiled on ISU. It's easier to recompile and relink than
      continue to maintain binary compatibility, so that's what we'll be
      doing. Sorry-not-sorry.

      I'll be around to recompile or assist with other restart operations as
      needed; my Discord id for those of you using that sort of setup is
      Chime#3134. Contacting me there is fine, but keep in mind that I do
      have a job and extensive help requires extensive time. Hangouts, email,
      etc. is fine too.

      Second, it's become apparent that Mechanipus is much less an essential
      component of the MUSHing community than it was; there are a multitude of
      low-cost hosting services and VM providers that are a much better fit
      for most users.

      As a result, Mechanipus will be closing.

      Mushes will be permanently halted and web services suspended on 15
      January 2018. Two weeks later, at the end of January, I will be doing
      the final removal of accounts, data, and likely decommissioning Kuramori
      itself.

      I strongly suggest moving to a new provider as soon as you are able.
      You may need to find codestaff to help you; I do not have the time or
      energy for such an undertaking, but I'm happy to advise other hosting
      providers that are stepping up to the plate.

      Please do not:

      • Ask me to fix your wiki.
      • Ask me to export your mush, sql, wiki data, images, etc.
      • Ask me to Continue hosting "just this one thing."
      • Panic. Really; you have weeks to get yourself sorted out, just start now.

      Thank you for your time and effort over these years to keep our hobby
      alive. I've delayed this announcement until another unrelated problem
      (see above) has required an outage. After the outage, I will get things
      back online, but please do remember that the End is approaching.

      posted in MU Code
      Chime
      Chime
    • Chime Patreon

      I feel so awkward putting something like this up-- but here it is. Very no-frills and barebones at the moment, but for those of you who would like to nudge my tip jar, I now have a Patreon account thing set up.

      I can post specific goals and things there if people want me to do that, but for the meantime it's a Help-Chime-cover-hosting-and-coffee type of thing.

      Please feel under absolutely no obligation of any sort-- I'm not deathly ill or destitute, but I have the business sense of an octopus in a peanut butter jar. This helps people help me, and gives you a handy way to nicely prod me toward improving MU* things we share interests in. One-time and recurring payments of any sort are all quite welcome.

      Things I've been doing (and will continue, anyway):

      • Mechanipus MUSH hosting, in its various forms
      • Work on TinyMUX for various features/feeps/improvements
      • Mushcode here and there for certain games

      Things I can be nudged into working on more (words are worth as much as money, but money does give me more time to spend on this):

      • Working on MOO hard/soft code to get that into a usable state for modern MUSHers.
      • Writing targeted tutorials (probably here) for everyone to read on certain topics. Not sure about the audience yet, but devising training materials for esoterically technical stuff for people with no time to understand is something I do for work already...
      • Wrapping up the packaging details and documentation on my TinyMUX changes (as seen on github) into a formal release of some sort.
      • Porting specific features between MUSH versions.
      • Implementing specific MUSH features. (JSON manipulators, xml-rpc/json-rpc hooks in both directions, variable buffer size (VBUFs instead of LBUFs, more and better regexp support, built-in mushcode prettyprinting and debugging features, etc.)
      • Helping create a better framework for mush-mediawiki integration
      • Devising a better mediawiki hosting setup so I don't tear my hair out and other people more interested in doing actual large-scale-hosting-as-a-business can deploy it.

      Existing Mechanipus customers!

      • You don't need to do anything. Really. It's not going away, and I'm not likely to ever manage to turn Mechanipus into a viable business.
      • This is just if you want to help out in this way.
      • It is very much appreciated though, especially if you need a lot of help with fixing mush issues.
      • This is not payment-for or a promise of support, but it does keep me less burned-out and more able to cover the Mechanipus hosting costs.
      posted in Adver-tis-ments
      Chime
      Chime
    • RE: Arx- Gareth

      @Thenomain said in Arx- Gareth:

      I feel the same about the phrase "free you from the game". What a load of political bullshit. If you're going to throw someone off the game, don't say you're giving them anything, lest of all "the opportunity to play elsewhere". This is probably because I lived through the 80s. Hey Management, please don't say you're doing me any favors. Sheesh.

      Think of it less as passive aggressive politicalspeak and more as an ominous homage to the mobster trope.

      In a quiet, breathy voice, the Godfather explains, "You see-- these staffers-- they are like family. I love my family. Respect them, yeah? You've disrespected my family. You've disrespected my family in my house." He pauses, sighing and shaking his head. "I'm not mad at you. Disappointed, perhaps, but not mad. And we're all friends now, after what we have been through together-- so we should be happy for you." Smiling faintly, and nodding to the burly thugs scattered around the room, he explains further to the poor bastard tied up on the floor, "We're giving you an opportunity, you see. A character roster-- that you can't refuse."

      Soft chuckles break out around the room, and the Godfather gestures vaguely toward the door. "Go-- give him a set pose. Out in the harbor."

      posted in A Shout in the Dark
      Chime
      Chime
    • RE: Reports of my demise have been blah blah blah.

      @HelloRaptor said: (paraphrased mildy)

      First Poster
      That rant was all bullshit.
      Third Poster
      Nay, that's certain:
      We are blest soapbox is rid of it.
      Second Poster
      Peace! let us hear what yon Raptor can say.
      HELLORAPTOR
      You mother fuckers --
      Citizens
      Peace, ho! let us hear him.
      HELLORAPTOR
      Friends, MUSHers, Shang rejects, lend me your eyes;
      I come to bury the forum, not to praise it.
      The evil that men do lives after them;
      The good is oft interred with lost back'ps;
      So let it be with SoapBox. The noble Glitch, he
      Hath told you RP was kinda fun:
      If it were so, it was a grievous fault,
      And grievously have we all answer'd it.

      Okay, no, I'm not really sure where I was going with that. Anyway. Raptor, you're an asshole for hating that a forum caters to others' tastes. We're assholes for disliking your dislike. We'll miss you either way. Have fun out there, you bastard.

      posted in Mildly Constructive
      Chime
      Chime
    • RE: [REQUEST] Comprehensive MUSH experience

      MOO and CoolMUD/ColdMUD are very different than mushes; different assumptions and the hardcode presents a very open-ended set of tools. Numerous people (including me, sigh) have used MOO to e.g. write a webserver and other oddities. This is wonderfully powerful, but also means that the MOO user interface is a lot less unified. The bare minimal.db setup doesn't differentiate between players/things/rooms/doors; all of these things are softcode. I think this is fantastic, but it also means the average non-technical user can't really tell much about the UI from knowing only that site Foo is "a MOO."

      MUSHes (and MUXen, which really are the same for these purposes) instead present a very uniform UI with (relatively) rigid constraints on the data and implementation choices. On the code-side of things, ALL data is LBUFs, or large-buffers, which traditionally were 4000 bytes in size. More modern MUX environments generally default to 8000, Firan used 24000, and my fork (in use on the Reach, Darkspires, et al) tends to use 64000. MUX use utf-8-based, so that may or may not mean 64000 characters tho. Also, color-codes are stored in-text in a persistent fashion. All other datatypes-- integers, floating point values, lists, error indications, DBrefs, etc.-- are represented in these text LBUFs with the same hard limit on sizing.

      MOO instead had an actual typed (albeit dynamically typed) language with internal stack-oriented bytecode virtual machine. MUSHes lack that data typing capability, which is why larger mush applications like Anomaly Jobs (a ticket tracking system, essentially) tend to have hilariously small limits on their dataset and prefer to drop data as soon as possible.

      To get an idea of MUSH programming, read Amberyl's guide and likely browse Brazil's tinymux softcode wiki, if that is still up. The PennMUSH people also likely have some good docs. For most users, the "big four" mush families (TinyMUSH, RHOST, PennMUSH, and TinyMUX) are essentially the same, though they have different design goals and limitations, and somewhat different UIs for email and comchannels.

      To get an idea of MOO progamming, I actually mirror some of the MOO hardcode and semi-standard default softcode starting point, aka a 'core,' which explains some of the basic MOO user assumptions, as far as they ever had any.

      There is also MUCK. Where MUSH went with a naive string processor and MOO went with a modern yacc parser with bytecode stack vm, MUCK implemented a typed FORTH, accessible in-game as MUF and a more limited higher-level MPI language sometimes used on top of that. MUCK is a great deal more powerful than MUSH, but many people have trouble thinking in forth terms and MUCK has historically been associated with the Furry community. @nuku_v would be a good person to ask about that stuff, but he doesn't seem to have connected here in a few months.

      MUSH/MUX examples this community is likely more familiar with, vaguely sorted by max-conn per last 30:

      • Shangrila (adult)
      • The Reach (hybrid NWoD1+NWoD2 set in Maine with Lovecraftian theming), many staffers/players here
      • Naughty Muffin (adult)
      • City of Hope (wod?)
      • New Prospect (wod?)
      • Kushiel's Debut (Kushiel books)
      • M*U*S*H (Penn-based social)
      • HeroMUX (superheros)
      • CoMux (superheroes)
      • Requiem for Kingsmouth (wod)
      • Sheltering Sky (wod)
      • Eldritch (wod; are you guys even open yet?), @thenomain's game
      • Shadowrun Denver (shadowrun)
      • Road to Amber (amber)
      • PernWorld (pern)
      • DarkSpires (Dresden Files, FATE-based, set in Oxford), @jinshei's game
      • RenoMush (wod)
      • Blood of Dragons (GoT)
      • Game of Bones (GoT)
      • City of Fog and Blood (nwod, sadly mostly defunct)
      • Haunted Memories (nwod, set in Vienna, sadly defunct), many staffers/players here
      • Wildcard (AnitaBlake, FATE-based, basically defunct), formerly mine, now run by @Cobaltasaurus, in theory
      • Blood&Citrus (AnitaBlake, NWoD1 retheme, defunct)

      MUCK examples:

      • Tapestries (like a furry shangrila)
      • Furry Muck (similar but less adult more social?)
      • Flexible Survival (MUD-like but very adult, furry), @nuku_v's game
      • Rusted Promises (Still a bit MUD like, but more RP-oriented, not really adult, somewhat furry), also @nuku_v's game

      Be sure to look down the lists at mudstats, as there are many more than I have listed but I've been a bit out of touch and don't recognize a lot of the newcomers. Note that they separate MUSH/MUX and don't separate NWoD1/NWoD2/OWoD, so it's a bit awkward.

      Also, be sure to check max/min/avg/current orderings; some games are in different timezones (e.g. because their staff are in Austrailia), and have varying numbers of continuously-connected or continuously active clients. Reach's internal +who at least gives a stat on currently-active unique IPs, which is a more meaningful number.

      posted in MU Questions & Requests
      Chime
      Chime
    • What a refreshing feeling
      mysql> drop database thereach;
      

      Yes. It is done.

      I have archives of the wiki, the forum, the game, etc etc etc. Not sure there is interest but the archives exist and some of them can be safely posted (e.g. via bittorrent or the like).

      As it stands, the forum content is only in the mysql dump and I don't imagine that is easy to extract in a useful form that doesn't have significant privacy violations. The complete wikistate from sql is present, but I will likely instead offer the mediawiki content xml export and a separate tar of the images. The content xml was somewhere around 4G of data but compressed to around 100M. The images with thumbnails mostly removed, etc., come out to about 4.5G. Final sqldump is about 1G. Game internal DB state, maildb and comsys have been archived via my git archive backuper thing, so I have detailed version history over time. No, not handing that out. Complete git archive (bare) for that is about 2.2G.

      Realistically, any future flatfile of the reach game db would need to have users removed and quite likely a great deal more. I'm going to punt and for now say that the people that need that data should already have that data and go yell at fallcoast if you'd like more than that.

      Q&A:

      • But I was still using that!
        Okay. Go play somewhere else, now. The Reach was closed ages ago.

      • But the wiki!!
        Realistically it spent most of its time locked because of the AbsenteeLandlord plugin that locks a wiki if no admins login. In any case, I have a relatively pre-sanitized mediawiki xml export and separate image tar that may suit your needs. Ask and I'll put that together.

      • But the ICONS omg
        Yes, okay. I can see why lots of games would want access to the icons and didn't manage to copy them off before whatever. See this archive

      posted in MU Code
      Chime
      Chime
    • RE: Eldritch - A World of Darkness MUX

      I can only speak from my experience as staff and dealing with staff. Yes, staffers WILL spend SOME time idling. It happens. People have lives. That said, if someone is ALWAYS idle for hours at a time? There's an issue there.

      This is often a bad assumption caused by overly-complex code and poor +who implementations.

      Consider a typical workflow:

      • Codestaffer or similar launches a TinyFugue session within a screen/tmux session, has it configured for autologging and log rotation -- note also that this "startup" can happen without the user being online, awake, or even alive.
      • This connection stays up and connected forever.
      • As the user goes about their day/week/life, they log in and out from various locations and additional clients as needed -- sometimes with a new client and sometimes by reattaching to their screen/tmux session.
      • The user is quick and responsive for a fair number of hours most days, and possibly even has published office hours.

      Given that, when only the TF session is running -- detached -- random users on the mush will see that staffer as idle. They might see them as idle for days or weeks, even if they were chatting just seconds ago.

      Haunted Memories especially fell victim to this, as lots of us there understood and used this technology in exactly that fashion. End users just could not wrap their head around the concept. Awkwardly enough, a variety of staffers and players in this boat couldn't either.

      So. What can we learn from this?

      • Everyone is an idiot.
      • If you think this is a reason to enable idletimeout, you're an idiot.
      • If you think rewriting +who, who, +finger, page @mail look SESSIONS and all myriad commands and bits of mushcode that tie into user status info (consider places code for example) will cover all cases of this, you're an idiot.
      • If you think that this is a good reason to NOT rewrite those things, you're an idiot.
      • If you think explaining these details to anyone is going to make an appreciable difference, you're an idiot.

      Or perhaps more gracefully:

      • Please don't assume anything.
      posted in Adver-tis-ments
      Chime
      Chime
    • RE: A directory of MU*'s that's actually good

      @faraday MSSP can use either telnet IAC codes or a pre-login command. On MOOs we generally supported it with a pre-login command.

      It'd be fairly straightforward to add to MUX, which has a reasonably nice telnet layer for these things but... eh, it's irrelevant for the mud-centric data and giving mudstats better data is largely pointless given it can do INFO.

      Future work should probably be JSON-based and reasonably self-descriptive / general. I do like the idea of a game-to-game spidering protocol for distributed discovery and publication of games mirrored on each-and-every game. These days I'm more interested in getting Evennia to do do the things I want than adding features to mushes. I mean come ON people! Mushcode is terrible and needs to die out.

      posted in Mildly Constructive
      Chime
      Chime
    • RE: Does size matter? What about duration?

      Quality over quantity, but given good quality prose with interesting characters that are well portrayed and offering engaging hooks? I like it long and hard. Shut! Up! It allows for a depth of experience not seen in lighter interaction.

      Fast can be okay, and even a good thing, but:

      • Did you miss responding to someone's pose?
      • Excessive spelling and grammatical errors?
      • Are you meta-posing thoughts instead of describing actions?
      • Are you hand-waving descriptions or making excessively large assumptions to shorten things?

      None of those are a scene-killer for me, necessarily, but they do start to detract. Certainly, long poses can be just as problematic if done poorly.

      For long poses, please:

      • Match pose-time with others in the scene, roughly. If everyone is posing in 3 minutes, don't take longer than 6. If everyone is posing in 10-15 minutes, don't take less than five unless you have something Earth-shatteringly profound to write in a few flawlessly tuned lines; balancing expectations makes everyone happier.
      • Don't try to multitask. If you are going to do multiple scenes concurrently, great-- but do not presume that changes your speed requirements within a single scene. It's almost always better to bow out with an ooc explanation that the other scene is taking up too much time. It doesn't even have to be a long explanation. "Sorry, gotta go. Pack-mate is pregnant with Azlu, and guess-who's coming to dinner."
      • Don't try to multitask. If you're playing a video game while waiting for others, the scene probably is a bad match for you, or vice versa. You really can't play League of Legends between poses, no matter how slow they are, without looking like an ass.

      Many of my best scenes had an average pose rate of 10-15minutes, with 3-5 people present. I've had a lot of fantastic RP with pose rates of 3-4 minutes, but I find that challenging if I'm trying to cough up 2-3 paragraphs worth in that timeframe. Longer pose rates, like 30-60 minutes are feasible, but that quickly becomes more like a play-by-mail setup. Fortunately, I like those too... and RPing with some people is always worth the wait.

      posted in MU Questions & Requests
      Chime
      Chime
    • RE: Downtime

      So. This is a thing that happened.

      Nearly all games came up fine as I keep the shell cron @reboot lines up to date and I'm pretty anal about information safety and system hygiene with respect to keeping things up-to-date and orderly.

      One guy's stuff didn't. I'm kinda speechless at the level of foil-hat bat-shittery contained in this log. I'd wrap it in a spoiler-tag, but apparently those don't work here yet.

      tl;dr take away lessons:

      • I'm not out to get you.
      • I'm not launching a l33t h4x0r cyberattack on the world, your pets and/or loved ones, or your game.
      • I'm happy to provide basic assistance and handholding within a reasonable timeframe as I like teaching people new things.
      • I do expect people to have a basic sense of self responsibility.
      • Game owners must understand how their games are started, what they do when they don't start, how to access a shell, how to take backups, how to verify backups, etc. etc. etc.
      • Most don't, but can coast by fine if they are running reasonably normal games, have followed past advice, and/or have a unix-savvy friend they can lean on once in a while.
      • The vast majority of people are really nice and a joy to talk to.
      • The other 1% is NOT and can FUCK OFF because I soooo did not need to deal with this shit today.

      And so, here is the log. I tried to help him. Didn't work:


      <a game owner>: alright no problem.. for some reason one of my sites seems to have come up but there's no DB or anything, other siste never came back
      <Chime>: was a clean shutdown, so that's a game config problem?
      <a game owner>: No idea... you setup all my sites
      <Chime>: okay, which game is having what problem?
      <a game owner>: ____.mechanipus has no DB loaded and ______ is not even online
      <Chime>: ______ doesn't have a game/ dir or anything; there's a penn install and an rhost install
      <Chime>: I don't know what you have set up there, but the cron @reboot line in the shell never got updated for that
      <Chime>: should be safe, just needs a restart?
      <Chime>: looking at ____
      <a game owner>: ______ is the rhost
      <a game owner>: I've never started any of these either, you always did it
      <Chime>: Do you have codestaff that can manage these sorts of things?
      <Chime>: I'm trying to step away from game-by-game assistance as much as possible
      <a game owner>: Well I've never done it before and you didn't send any warning this would happen.
      <Chime>: Okay.
      <Chime>: well.
      <Chime>: Let's fix this:
      <Chime>: You log in to the shell and start it
      <Chime>: that way, you'll know how
      <Chime>: and I can answer questions if you have them
      <a game owner>: Don't know how and don't have time to, if I had known it would be going down I could have prepared for it.
      <Chime>: Okay. You're welcome to copy your files off and get hosted elsewhere?
      <a game owner>: Just seems a little rude to take the stuff down without warning and then tell me any problems are my fault when you set it all up
      <a game owner>: Least you could do is put the games back up
      <Chime>: What I set up-- for all the other games-- came back up fine.
      <a game owner>: Not at all mine aren't up and you're the only one who has set them up
      <Chime>: You've gone out of your way to get custom rhost/penn stuff and I can't tell what the startup routine should be without asking you each time
      <a game owner>: You've done it each time, so I'm not sure what you need to ask me
      <Chime>: I should have sent out an alert. Didn't have a chance to, as work has been keeping me busy. Sorry for the inconvenience.
      <a game owner>: Everytime there is some unexpected or unanounced alert mys tuff goes down and there is a problem yet it runs fine the other 100% of the time
      <a game owner>: If you don't want to host me fine, please fix it, so I can let people know to come decompile their crap and then I'll backup my stuff and be done with this nonsense
      <a game owner>: I actually liek to warn people if something is going down
      <Chime>: I like to warn people too.
      <Chime>: I don't always have that opportunity.
      <Chime>: Part of the problem here is I need you to take responsibility for some aspects of game administration
      <Chime>: "You always did it before" is not an okay answer.
      <a game owner>: Like I said, please just put the games up properly so I can warn the players they will be shutting down.
      <Chime>: okay, check ______. I started what seems to be current and put that in cron
      <a game owner>: Like they're literally loaded with blank DBS right now
      <a game owner>: This is the same crap that happened when the servers crashed
      <Chime>: then you've got a buggy mush hardcode and I cannot help you
      <Chime>: your data is probably there, but you're doing something very wrong if this keeps happening
      <a game owner>: Yes you can, you've done it every other time
      <a game owner>: Sadly, you've never told me what you've done the other times, you've just done it so it's not as if I've got notes.
      <Chime>: fine.
      <Chime>: looking closer.
      <a game owner>: Like I said, If you don't want to host me, I'll gladly just close my games down and backup the data but I would like the opportunity for players to grab anything they want or need first etc.. and they cna't do that right now
      <Chime>:

      INFO
      ### Begin INFO 1
      Name: ______ ____
      Uptime: Wed Mar  4 22:12:15 2015
      Connected: 0
      Size: 9990
      Version: RhostMUSH Alpha 3.9.3RL(A).p3
      ### End INFO
      

      <Chime>: that looks up?
      <a game owner>: With no data in the DB loaded when I logon.. no character bits, no staff biuts, limbo is the base room
      <a game owner>: Like I said, you've fixed this every time and not told me what you did so it's not like I have a clue what to tell you to do.
      <Chime>: heh, wow.
      <Chime>: okay.
      <Chime>: as a game owner
      <Chime>: do you understand where your flatfile is
      <Chime>: where your backups are going, etc?
      <Chime>: independent of who set you up or how-- those things are irrevocably your sole responsibility.
      <Chime>: I will try to help
      <Chime>: but come ON
      <a game owner>: Nope, whoever server host is has always set that up; which in this case is you. Thatr's why I said, just put these up so I can let players grab what they want and I will be done.
      <a game owner>: I'm sorry that suddenly you have an unwillingness to help, but that's why I had you host because you were willing to help.
      <Chime>: my willingness to help evaporated months ago because of various life problems. I haven't been taking on new customers and I've been slowly phasing things out.
      <a game owner>: If I had known that you would suddenly take down the sites, then put them back up broken and tell me how terrible I am I could have just went with another host a long time ago. This is why I'm done, if you want, I can just mass email the players, let them know the site is down for good because the person who has been administrating the site since existence told me to go fuck myself when they took it downm
      <Chime>: in particular, doing the full-featured support you're looking for is one of the most singularly unrewarding things in the world.
      <Chime>: I did not take your site down.
      <Chime>: I did not break your site.
      <Chime>: I did not hide how your site is configured, or take your data, or anything.
      <Chime>: I haven't told you to go fuck yourself
      <a game owner>: Everything is always working until these 'unannounced' shutdowns.
      <Chime>: Though I'm very sorely tempted.
      <Chime>: okay
      <Chime>: You are welcome to copy your files off
      <a game owner>: Telling me how terrible I am and how I should know what to do when you've always done it?
      <a game owner>: That's pretty much telling me to go fuck myself
      <a game owner>: I'm not sure what else you call that.
      <a game owner>: Since you've handled the site side of things since I first hosted with you almost 3 years ago.
      <a game owner>: I really don't give a shit if you want to do it for me, but there are a handful of people who still connect to those sites who I am sure would like the chance to get their character data and send out contact info to friends
      <a game owner>: So if you think sabotaging me is cool, awesome. I'd like you to think of those people though and how annoying it is to suddenly just lose contact with others and lose your stuff.
      <a game owner>: Maybe if you had showed me day 1 what the hell you did to fix it after these crashes/shutdowns that always hapen without warning; I would have known what to do. So please, for the love of god, just fix it this one last time and we can be done.
      <Chime>: your next host should be able to salvage anything you need
      <a game owner>: I'm not looking for another host, I'd like to give these people a chance to grab what they like off the site.
      <a game owner>: Like I said, just fix the problem you caused please so I can be done with this crap.
      <Chime>: No.
      <Chime>: I'm done.
      <a game owner>: You have a responsibility as a host unfortunately
      <Chime>: No. I don't.
      <a game owner>: You do.
      <a game owner>: I'm asking you to put back up the sites you took down.
      <a game owner>: It's all well and good to lecture me on what I should know, but unfortunately it's you who has done this since you hosted me.
      <Chime>: We don't seem to be communicating here.
      <a game owner>: Trust me, had I known there was going to be a shutdown and you were going to have a meltdown over me asking you nicely for help; I would have told people beforehand the games are shutting down.
      <Chime>: Your set of assumptions is broken. I cannot help that. Your game is down. My services came up fine, but your specialized config did not. Out of the goodness of my heart, I have assisted with that in the past, and I can see now that this was a terrible mistake.
      <Chime>: You have no desire or willingness to take responsibility for your own game
      <a game owner>: Actually, if you had told me or showed me what to do before I would know.
      <Chime>: This discussion is over.
      <a game owner>: I didn't know because you took responsibility as a host.
      <a game owner>: It's not.
      <a game owner>: I would like you to fix what you have broken please.
      <a game owner>: At this point, this is starting to look like a purposeful attack.
      <a game owner>: Since I have evidence that at every point in the past; you have fufilled duties as a site administrator and fixed the issues after this.
      <a game owner>: Now, after a 'sudden mysterious' downtime that was not warned about or announced in a very irresponsible manner; you are claiming I should know how to fix something you have done up until this point.
      <a game owner>: Cyber-attacks are very serious, especially if you are abusing your position as a server host to do them.
      <a game owner>: What you are doing right now is an attack on me.
      <a game owner>: More importantly though, it is an attack on the people who connect to the sites.
      <a game owner>: I also have multiple emails before of me asking you about payment, which you've never responded about.
      <a game owner>: Now neither site is even booting, even more odd.
      <a game owner>: If you like, feel free to zip up my site files and send them to me so I don't need to logon to your servers since none of my access is working.
      <a game owner>: Thanks so much for all the help over the years, wish I knew it was going to come back to bite me in the ass when you decided you didn't enjoy helping people anymore.
      <a game owner>: God bless.


      I'm not responding to him anymore because I don't see much point. I've since taken down all three of his games (rather than the two that were broken) and closed the accounts and archived the files. It's more than would fit on a CD and kinda a disorganized jumble, because that's how he keeps his data. Judging by his comments and my past recollections it would be fairly easy to fix, but his behavior kinda removed all incentive to do so. If he can send me a postal address, I'll be happy to mail him a DVD-R or something.

      I'm providing what is currently a free service because I DON'T HAVE TIME FOR THIS SHIT. @Loki, I so totally sympathize with why you guys took down ISU. I'm in the same boat, but never had a business partner to help with taxes and billing. Mushhosting is one of the most singularly unrewarding endeavors a person could ever undertake. I think I'd seriously rather go do retail.

      For everyone else I'm still hosting: You're awesome, and thank you. Your stuff will continue to work for as long as you need it. If you have trouble, please just ask nicely and I'll try to help as soon as I can.

      For everyone else who wanted hosting: I'm sorry that I ran out of patience and give-a-damn. I'm quite happy to answer questions between hosting-providers though, and provide guidance for others on how to do these things. But really, my best recommendation is: don't. It's not worth it.

      posted in MU Code
      Chime
      Chime
    • RE: Grid building theory?

      @Derp said in Grid building theory?:

      WFRE Building <WFRE>                    CHIME Museum <MU>                     
      

      I'm not quite that old yet.

      posted in Mildly Constructive
      Chime
      Chime
    • RE: Tracking Alts on Dynamic IPs

      Well. There are several problems here. Some technical, some not. First, the technical, because that's the easy part:

      • @WTFE's method above is a great solution if you have shell access, which probably covers the set of people who should be doing this anyway (see social problems, below).
      • If you want it in game, consider if history matters;
        • Most mush types record the last connected address (or even a handful of them) on some of the wizard only attrs; if that's enough, it becomes a process of sweeping through character objects to find matches of some sort.
        • If that isn't enough, you'll need to record the history yourself in some format. Consider how you want to do this and whether or not it is worth the trouble; SQL is one reasonable solution, but there are likely others.

      If you have what you need in attributes, see @grep and similar tools. If you need it in SQL, you'll need your alt-detector to run a select of some sort to find things.

      ...I just looked at what I had on TheReach and ... uh, no, that's ugly. In summary though, I had a table with IPv4 address, hostname, char dbref number, and some time data. When people connected, it updated it as needed, and alts checks of various levels used selects with a horridly tangled mess of subqueries to do CIDR bitmasking in sql, which was kinda cool but horrible slow, done inside a synchronous sql() that stalled the whole game and pretty much theno was the only one who ever knew how to use it safely. Do not recommend.

      Gotchas I noted that you should keep in mind: Many games are starting to support IPv6. Most older games are IPv4 only, and the traditional "dotted quad" form we know and love is IPv4-only. Brief review on terminology:

      • IP stands for Internet Protocol; TCP/UDP are implemented on top of IP packets. PING and similar tools send special IP packets.
      • IPv4 has 32bit host addresses, conventionally represented with a dotted set of four 8bit numbers written in decimal (i.e. 0-255). Hilariously, 4 billion addresses aren't enough and we're running out. (Well, ran out a while back, but limping alone either way)
      • IPv6 has 128bit addresses, conventionally represented as colon-separated sets of 16bit numbers written in hexadecimal. (i.e. 0-ffff).
      • IPv6 has a lot of zeros in it, so the :: means "shove a ton of zeros in that spot 'til it makes a full address." (e.g. ::1, or all zeros followed by 1 -- is the IPv6 localhost)
      • Hostnames may point to any number of IPv4 or IPv6 addresses, or both. (In A and AAAA recordsets via DNS, which is another lecture)
      • IPs can point to hostnames (really just one unless someone screwed things up) but are often misconfigured.

      For both of these, we talk about "netmasks" as a way to describe ranges of addresses. Instead of 1.2.3.*, meaning 1.2.3.0 through 1.2.3.255, a better way to describe it is 1.2.3.0/24 -- the 24 meaning the first 24 bits are meaningful but the last 8 are not. Likewise 1.2.2.0/23 covers 1.2.2.0 though 1.2.3.255. There are calculators online that can help with this if you get confused, or you can use the really ugly old form with netmasks like 255.255.255.0, (meaning /24)

      IPv6 does the same thing, but obviously has more bits. /48's and /64's are very common. /128's are almost useless, because of how many addressable bits can be freely rechosen by the client under normal configs in the interest of privacy. (Yes: Modern internet is designed to make this difficult for you to do.) Players can and DO actively set their ipv6 address to hilarious stuff, like :feed:face:dead:beef: and whatnot.

      Hostname resolution from an IP is not reliable. IP's might come into your game in either form. You can represent ipv4 as an ipv6 addr of the form ::ffff:1234:5678 where the last two terms represent the 32bits of the ipv4 addr. e.g. 10.0.0.1 -> ::ffff:a00:1.

      Players connecting via dynamic IP might:

      • Keep the same IP for years
      • Switch addresses several times a night in their same ipv4 /24.
      • Alternate between several seemingly unrelated ISPs (which can be home/work/school/coffeeshop, but not always)
      • Switch addresses periodically over astonishingly large sets like /16 or worse.

      The wider you match, the more matches you can find, but the less meaningful they will be. Believe it or not, some people do live in neighborhoods with OTHER PEOPLE that actually use internet! This can muddy waters quite a bit.

      You need to handle and use this sort of matching for it to really be an effective tool. If storing in sql, use the async @query system if your game has it (mux, etc). sql() is synchronous and will make you cry.

      This brings us to the social problems part. People don't seem to understand the concept of false positives. For that reason, +alts checking of this sort usually needs to be limited to a very small set of people or you'll spend all your staff time trying to put out drama fires. No, documentation does not help. Meetings do not help. BBposts, forumposts, wiki pages, etc. all do not help. People are dumb, suspicious, and paranoid. If they see the slightest hint that person A is connecting from THE SAME PLANET as person B then CLEARLY THEY ARE THE SAME PERSON and OUT TO GET THEM. This gets old very, very fast.

      Further, there are a very large number of cases where multiple people from the same household play, so they all show up on an IP. HOWEVER, you cannot use ip-match to prove people live together. Consider:

      • Most of my mush connections would appear to originate from 66.220.1.33.
      • My lovely partner has her own farm of servers and while we would often be playing from the same room, we potentially appear continents apart.
      • Both of us offer shells in various forms for various purposes, leading to a multitude of other people that seem to live with us, but do not.
      • 66.220.1.33 was the ipv4 address for KUU, one of the big Mechanipus servers hosting the Reach and a bunch of others. That quickly made it look like all game wiz's on all games there were coming from the same place, which I'm sure made all sorts of hilariously salacious rumormongering possible.
      • It gets even worse if you connect via localhost.

      So: Can this sort of ip-address based system tell you:

      • If two people are the same, for certain? No.
      • If two people are different, for certain? No.

      If that is confusing, disheartening, or seems otherwise wrong, then that methodology cannot help you. (Not sure anything can, really...)

      So: What's the best path forward?

      On Haunted Memories, we had a player-accessible system for declaring your alts for staff. This worked very well, nice, and safely. It did 90% of what staff ever needs these things for, didn't show other players who was who, and didn't have any false positives(*). It did depend on player honesty and player trust in staffers.

      Really though, if you can't trust staff with the knowledge of your alts, why the hell would you play there?

      (*) Actually it had some hilarious bugs related to recycled DBrefs getting reused without correctly updating these tables, so for months it showed one of my alts as somebody's armor vouchers or something, but that's a different sort of trouble.

      posted in MU Questions & Requests
      Chime
      Chime
    • RE: Steam Summer 2015 sale, beware!

      posted in Tastes Less Game'y
      Chime
      Chime
    • Portland(ia, ia, fhtag'n)

      Hi everyone and sorry for being such a scarce little octopus these days. My partner and I are moving up to Portland, basically end of next week or so. This week we're still scuttling about the city looking at apartments and houses-to-rent and things and already have found some really neat ones.

      I dunno if we'll have time to meet up with anyone this week, but hopefully soooon!

      The food here is all crazy delicious and the people are awesome and it RAINS and I love rain and my favorite plants are moss and lichens and our favorite coffee (Stumptown) is like DOWN THE STREET... life is great.

      posted in A Shout in the Dark
      Chime
      Chime
    • Chime's playlist

      Not sure I'm important enough to warrant one of these, or that anyone who wants to contact me can't already find me. But, here we go. For posterity. Or posteriority, or something.

      Staffish bits:

      • Chime@HauntedMemories (Mage admin, some code)
      • Coventry@TheReach (retired code TL from long ago; hosting, etc)
      • Coventry@Tortuga
      • Worcestor@DarkSpires (code consulting, briefly; hosting)
      • Lovelace@TGG (code consulting, briefly; hosting)
      • Chime@Blood&Citrus (code consulting, briefly; hosting)
      • Morgana@Wildcard (co-head)
      • various other chime bits in various places, superbriefly

      Player bits:

      • Romy/Jocelyn/Tuncay/Qubit/Senta@HauntedMemories
      • Hayley (the one that was never around)/Sandra/Kay@TheReach
      • Sonya@Blood&Citrus
      • Sonya/Anna@Wildcard
      • Lithlirel@RedTide
      • Milena@StPetersburg
      • Cassandra/Jerra/Chime/Nimfinel/Pok@Table (Writh)
      • Sandra@Tortuga
      • Velour@SpaceThing
      • Gisele@SurfaceTension
      • Asphodel@Warren
      • Kelly@FlexibleSurvival
      • Sai (Silent Spider) @ ThatExaltedGameWhateverItWasCalled
      • Dorotea (dot) @ That7thSeaGameWhateverItWasCalled
      • Petal@LunarEclipse
      posted in A Shout in the Dark
      Chime
      Chime
    • RE: request: Example of a dice roller

      @SG said:

      Does anyone have anything basic laying around? Some features I'm looking for to see how they work:

      Sort of.

      A command to roll different types of dice, 1d4, 1d6 3d8 etc.

      As you note below, the die(n,sides) function is what you want.

      I've tried farting around with the dice(x, x) command built in, but I get a lot of huh? messages coming back to me, so I think I'm missing something fundamental here.

      It's a function, not a command; functions are evaluated within leading buffer context (which you don't need to worry about yet, it won't be on the test). Put it in a command.

      For testing, to yourself:

      think dice(3,6)
      

      For outputting to a room, perhaps:

      @remit %L=<dice> %N rolled 3d6 for [dice(3,6)].
      

      And putting that into a command on an object:

      @create dice code object (dco)
      &cmd_dice dco=$+dice *d*:@remit %L=<dice> %N rolled %1d%2 for [dice(%1,%2)].
      

      A command to roll those as explody dice. If a 1d4 gets a 4, then add 1d4.

      Mush doesn't have while-loop style iteration unless you restructure things into a @trigger loop. You don't want to do that, generally. Instead, most nwod dice and other explodey types use recursion-- that is, a function that calls itself, but only for exploding values.

      Modifiers to the dice. 1d4-2

      For arbitrary syntax, this becomes a problem of lexing and parsing the tokens, which is something that mush is fairly bad at. It can be done, but is more complicated than I can type up right now.

      For simple syntax matching what you have there, something like:

      &cmd_dice dco=$^\+dice ([0-9]+)d([0-9]+)\+?(-?[0-9]+)?$:@remit %L=<+dice> %N rolled %1d%2[if(strlen(%3),if(gte(%3, 1),+,-)%3,)] for [add(dice(%1,%2),%3)].
      @set dco/cmd_dice=regexp
      

      Rolling against a stat on a character

      You can read attributes with get(dbref/attr) or the like, but stats should usually be hidden and/or read-only. You may need to set up api functions for accessing them in a global function of some sort.

      Parsing dice with stats, especially for multiplayer rolls, e.g.

      +roll strength+brawl+item(katar) resisted by PLAYERNAME:defense
      

      And then showing the results but not the number of dice rolled, etc, is... tricky.

      Note: just typed this up. Code above not tested, may have stupid typos.

      edit: fixing codeblock boundaries in post

      posted in MU Code
      Chime
      Chime
    • RE: RL peeves! >< @$!#

      Right.

      I've been burned by energetic early-morning workers who thought me coming in at say, 2pm and leaving at say, 4pm, was unreasonable/unfair/whatever.

      If I've been working all night fixing something so that you can work in the morning you can go to hell.

      No, this isn't directed specifically at @iceshinagami; this is the peeves thread so: I'm peeving.

      posted in Tastes Less Game'y
      Chime
      Chime
    • RE: Luna's Playlist

      @October said:

      Crystal Bridges - Lirilith (wtf was I on?)

      Hm, in Sindarin that'd be something like Sings-of-Ashes or the like.

      Tolkein is a hell of a drug.

      posted in A Shout in the Dark
      Chime
      Chime
    • RE: Mechanipus (Linode) downtime

      @Derp said:

      That was fast. It appears to be back up.

      Yay. When things work right, it goes pretty fast. The big problem I have is when people log in and move stuff around but don't update the shell cron @reboot line to point to their game.

      Everything on kuu (空, Sky) that should be running is running; kuramori (暗森, Dark forest) is mostly back except for one game and they're better off starting that one themselves.

      Midori (緑, Green) was recently rebooted for various assorted (or sordid) updates, and doesn't actually host games, so that's fine too.

      And I'm heading to the airport in another 90 minutes to head home. woot!

      posted in MU Code
      Chime
      Chime
    • RE: RL peeves! >< @$!#

      @silentsophia said:

      This thing is kinda floppy for photography. >_<

      Phrasing!

      posted in Tastes Less Game'y
      Chime
      Chime
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 1 / 7