shannon_a: (Default)
Today RPGnet announced a merger with RPGmatch. Here's my thoughts on the community that I helped administer from 2005-2020 or so and the merger.

==


Back in 1999, Christopher founded a company called Skotos Tech, which focused on text-based online multiplayer games. I'd been previously working with Christopher supporting a variety of technical work he was doing, so I supported the new company too, and eventually became its employee. Skotos Tech was definitely a roleplaying company, but not a tabletop roleplaying company. Nonetheless, all of his employees had connections to the community. In fact, I met Christopher at a game convention while I was still working for Chaosium!

That meant that in 2001 when RPGnet ran into problems, we heard about it. The problems were (ironically) due to a sale that had gone wrong. Emma and Sandy Antunes, the founders and original publishers of RPGnet ,had sold to an internet dot-com. And as I recall, they didn't get paid and there were quickly fears about the future of the site. Fortunately, the Antunes had kept hold of the domain name, which allowed them to reclaim it. Unfortunately, they no longer had a place to run the site. But Skotos did. So Christopher offered them a place to host RPGnet while they figured things out, with no strings attached, and some time afterward he bought it from them.

I didn't deal with RPGnet for the first few years that we had it. We hired Allan Sugarbaker to be the initial editor-in-chief. But over time Skotos Tech proper took up less of my time because our engineers were creating increasingly powerful tools for our world builders and our world builders were increasingly volunteers or contractors who actually kept things running. After a few years I was able to shift over and I recoded most of RPGnet's core systems (front page news, reviews, columns, and the new index, while led to my authorship of Designers & Dragons). I also did innumerable upgrades to the forums, recovered from one hacker attack, constantly upgraded the machines, modernized our database setup, moved the forums over to XenForo, and sat on the cold floor of a machine room far too many times while I tried to coax the machines back to life. And down the line I moved them over to the cloud, which was a huge improvement because my floor was much warmer than the machine room floor.

I should note, that whatever work I did, the moderators and forum administrators did more, and are who have actually shaped the community here.

Beyond that, I should also note that there was a fundamental flaw in the whole Skotos/RPGnet business model, which is that majority of our money came from the Skotos games, but the majority of my effort often went to RPGnet. (Not always; we worked on iPhone games for a while and I later rebuilt the Skotos games so that they could be run independently, but there were definitely times when Skotos subsidized RPGnet, despite our best effort to bring in more valuable ads, kick off a publishing department, or otherwise figure out ways that RPGnet could better pay for itself.)

Somewhere in 2018 or 2019 I told Christopher that I was going to be ending my work with Skotos and RPGnet. Part of that is that it was too stressful and interrupt-driven. I'd spent about 15 years doing great work for RPGnet (and Skotos and the iPhone games) that went toward my core hobby interests, but at the same time I was constantly on call, I checked my phone any time I got home or finished a TV show to make sure a machine hadn't gone down, and at least twice a year some jerk threatened me with a lawsuit or sent a brigade after me because he'd been kicked off RPGnet or someone said something bad about him here. But that stress was only part of it: I was also making a big move and it offered me the opportunity to open up a new chapter in my life, which I've fully taken. I now do a few days of technical writing a week on contract and spend the rest of my time on roleplaying content. (My first book from this era will finally be out in the next month or so: a complete history of Traveller from Mongoose.) I closed out my work for Skotos and RPGnet at the end of March 2020 (just in time for the pandemic).

(I've seen some people talk about a shift of RPGnet ownership to Divers Hands around the same time. That just reflected the closure of Skotos Tech. Christopher remained the owner.)

My exit was one of the major factors to put RPGnet on the path to the merger today, for all the reasons described above. Fundamentally, RPGnet doesn't pay for itself. Miss Atomic Bomb came aboard as the new editor-in-chief and has done 100% of the work running the site for the last four years (with the rest of the mods & admins, of course). I've provided emergency technical support a half-dozen or so times since then. But a site needs a lot more than that to remain healthy: it needs a solid technical support team, and RPGnet hasn't really been able to afford that on its own. There's been technical debt building up that whole time, with systems not being upgraded, tools breaking down, and things generally growing more technically tenuous.

Alongside that, it's getting harder for small businesses to run online communities. That originated with the GDPR in 2016. The European General Data Protection Regulation had absolutely the best of intentions: ensuring privacy and agency for internet users. But like too many EU directives it was sufficiently bureaucratic that it was very hard for smaller businesses to meet the requirements of the regulations. For about a year or so after its passage I was getting regular requests from people to delete data and I had to pick through that minefield to figure out what we were actually required to do. (They'd say, "Delete everything I've written", and after a lot of research and angsting I'd learn to say, "Let me know the personal information that's on there, which is what's actually protected by GDPR, and I'll be happy to delete it".) Unfortunately, this sort of thing is becoming more and more of an issue. The CCPA was similar for California and it looks like there are going to be more of the same such as the growing fights over link taxes in many countries. Meanwhile, a vocal group of know-nothings continue to try and repeal section 230 of the CDA, which is what allows internet communities to exist at all (fundamentally, it's what protects an online community from what you say; without it, they'd have to moderate and/or censor every single message on the boards, something that would entirely kill large forums, especially those run by small businesses).

So Christopher was looking for a purchaser for RPGnet as early as 2019. In fact, we had someone lined up in 2019, but Christopher ultimately turned down their offer. That's because he's picky. He's absolutely refused to sell to anyone unless he feels that he has strong guarantees that they'll continue the community as a standalone community, up to or exceeding its current standards, as we intended when he bought it through Skotos Tech.

Though I've been privy to many of the communications about the merger with RPGmatch, I don't actually know much about the company other than what Christopher has told me, but I do know that Christopher picked them because, after five years, he finally found someone who he thought would do the community right.
shannon_a: (Default)
My stress level is running high right now.

I've been mainly attributing that to two work-related issues.

The first is the resurgence of discussion about Zak S. in the roleplaying scene, due to the revelations about his (horrific!) abusive relationships. It's all to the good, since Zak's supporters are finally giving him the boot. But for me at least it's caused introspection. It's been cathartic, working through it all, mostly in entries here, and also in reading lots of discussions. But exhausting too.

The second is one that I can't talk about at the moment, but has to do with a problematic Skotos player. More on that momentarily.

But these guys are really just the tip of the iceberg. The straw(s) that broke the camels back. Because things have been stressful for a while.

It's been a year and a half since Kimberly went non-weight-bearing because of her broken foot that we discovered in October of 2017, right around when I went to Berlin. And that has been increasing my home workload for that whole time, because she can't do many of our shared chores any more, and she also needs help with tasks like getting her lunch most days.

And, it's been a half-year since her surgery this last Halloween, after which we learned that the doctor had botched the procedure. He'd told her that the worst that could happen if she elected for the surgery is that he might nick a nerve, and that would slowdown the recovery. But we now know that he cut at least a couple of nerves and left them embedded in the scar tissue. And he was a cold, terse prick when Kimberly told him this. This fact of this botched surgery has exacted a heavy toll on our household. Kimberly is understandably very upset that this doctor may have both crippled her and left her with crippling pain. It's been messing with her ability to manage on a daily basis; and, not even just due to concern for the future, not just due to the anger with the doctor (though I have a *lot* more of that than her), but also from the fact that she has constant pain and it often impacts her ability to function and sleep. And, I've also been impacted by this all emotionally, both personally and supportively.

And finally there's been the stress of the early year at Skotos. We had a big SmartCustody workshop that we did for cryptocurrency at the end of January and now we're gearing up for our semi-annual Rebooting the Web of Trust workshop, about a month later, right at the start of March. Oh, and it's in Spain, which means that things are going to get really hectic in about a week when the long air travel begins.

So, though those two problematic users have been weighing on me, in many ways they're pretty minor in the scope of things: in their interactions with me, and in their likely long-term effect on ... anything. But when you have a plateful of stress already, a few final ingredients can add a lot.



So, Saturday. I definitely wanted to get out of the house to be active and try and burn some of my stress away, but it was cold and raining. I was just about to go for a walk to get lunch ... when the sky cleared up. I looked at the RADAR maps and saw the biggest bit of storm had moved past us. Yay!

So instead of walking to lunch, it was more extensive biking. I had a meandering day down by the Bay. I explored Fourth Street (The taco place I was considering for lunch was jammed due to some three-little pigs public show, so I moved on). I biked the Aquatic Park (Occasional huge puddles). I got lunch in Emeryville. I biked out the Emeryville Marina, then walked along the rustic boardwalk back (An overprivileged white lady yelled at me for biking on a multiuse trail that allows biking; I assume she was from one of the super-rich condo complexes out in that area, and used to getting what she wanted, which she did not). I biked back along the Bay Trail to Berkeley (WINDY!!). And then I biked home. Overall, a nice day.

Biking helps keep the cold mostly away, though I felt it some in that really nasty wind I got on the Bay Trail leg of my trip.

Unfortunately, my stresslessness was immediately lost because Kimberly was upset when I got home (over something small, but that's because the big things are always weighing at the moment) and then I got a certified letter from the problematic Skotos player delivered to my HOME address (which I refused for good reasons, and that's all a whole other story that I hope to be able to write about in several months time). So my stress came right back, though Kimberly helped a bit by buying us Taco Bell for dinner.

And we found a new light TV show to start watching, which I've heard great things about in its later years: Person of Interest. It's relatively shallow in its first season, but we liked it enough to watch the first five episodes over the course of the extended holiday weekend.



On Sunday I didn't exactly do any stress reduction, but I did just hang out at home all day without worrying about rushing out and getting exercise or getting sundries or anything. (And I also did some filing work, toward my goal for moving forward in the preparations for our move to Hawaii.)



And Monday. Today I went out to Lafayette, biked up Happy Valley Road, then hiked up Panorama Road to get into Briones Regional Park. This was I think my third trip into the huge park. I entered up at the northwest corner, and circled down to a creek and back. This directly connected to my second trip when I'd walked the Lafayette Ridge Trail; my entrance today was right by Russell Peak, which is I think where I turned around last time.

I'd been planning to go all the way to the entrance right near Briones Reservoir, which would have been another 2 miles or so there and back. But it was muddy, oh sooooo muddy. One of the paths I was taking was pretty much a stream. Thankfully, I had my hiking shoes, but I still had mud spatter up to my knees. And that was all exhausting, both the walking through the mud and the being careful not to slide and land in the mud. So I turned back that mile early.

In looking at the maps I also thought, wow, it would be great to walk through the corner of Briones Regional Park, down along the Reservoir, then around the corner of San Pablo Reservoir, then back to the Orinda BART. That would definitely be an all-day affair though, since among other things I couldn't take my bike with me since I'd be starting and ending at different BART stations, and that would add a few miles getting to the park (and a few miles getting back from the Reservoir).

Maybe some nice summer day, when I'm more willing to get started early (as opposed to today, when I was like: I'm not rushing out when it's in the mid-40s!) and able to go later.

And I got home today, and despite a quick trip to CVS for Kimberly, managed to stay chill.

And hopefully that'll last into this week before my Spain trip.
shannon_a: (Default)
I've been professionally overseeing the management of online communities for something over 15 years. In that time, there's one very important lesson that I learned:

The Thesis

One bad member in a community can drive out ten, or even a hundred, good members. By keeping those bad community members you're not only shrinking your community but worsening it too.

I still remember vividly our first bad community member at the Skotos online games site. He'd complain about how we were managing our games and how it wasn't matching his vision. In retrospect he was a narcissist who thought the game (nay, the world) revolved around him, and our community manager fell right into the trap. She literally spent days of work-time talking this player off the ledge time after time, practically begging him to stay. We eventually asked our community manager to stop, and sometime afterward we gave the problematic community member the boot. Almost immediately afterward, we had an inrush of other players telling us how they'd almost left due to the narcissist — and how some of their friends already had. Not only had we wasted our time trying to keep a bad player aboard, but we'd also harmed our community by doing so — and that's why I still remember the lesson so vividly two decades on.

So what do you do get rid of bad actors in your community?

Both community managers and community members can help a lot.

Solution One: Community Management

If you're a community manager, you need to ban the bad actors when it's obvious that they're acting to the deficit of the community. Part of this requires a rule like RPGnet's rule zero: "Keep the forums friendly and welcoming to as wide a range of gamers as possible."

If someone is being virulently argumentative, particularly if they're constantly arguing in bad faith; if they're constantly putting other people down and deriding their thoughts; if they're making the community unpleasant and its other members unhappy;; if they're fighting against the basic precepts of the community; or if it's obvious that they're making the forums about them, not the community, then they need to go.

That's a lot of "ifs", but there's a pretty easy litmus test that you can use: if someone is taking up a lot of your administration and moderation time, then you need to think more carefully about them. As a community manager, your time is a limited resource intended to better your community. If a single person uses as much of your resource as ten or a hundred or a thousand average community members, you have to ask what they're giving back.

A lot of bad actors in communities will walk the line, staying just one step back from personal attacks or whatever else you explicitly ban in your rules. That's not a sign that they should be kept (because they're obeying the rules), but instead that they should be ousted (because they're abusing them). It's why you need a rule zero.

You'll never have a perfect rule set but then your online community isn't a court of law. You certainly do need to be fair and just, or else you'll be corroding the community in a different way. But that's why you need to advertise a rule of conduct that puts the forums first. If you're transparent about why you're making disciplinary decisions, that'll help, because it allows you to explicitly say why you're removing someone from your community (and hopefully make the case that it's for the community's betterment).

My own rule zero might read something like this: "Our most important rule is that we're all working toward the creation of a better community. If you make the community worse instead of better, if you detract from the community instead of improving it, then we'll ask you to leave — whether there's a specific rule you've violated or not. In fact, the rest of these rules are largely intended to help codify our general goal of community betterment."

Solution Two: Community Belief

If you're a community member, the more important way you can improve your community is simply to support the community managers. More specifically, you can believe them. If they've banned or blocked someone, there's usually a good reason. Your default position should be that they did the right thing.

It's certainly fair to question, and it's certainly fair to point out when they made a mistake. They will; we do. But try not to assume motives other than the betterment of the community, because in any good community that will be the motive.
 
Community managers have to make horrible, stressful decisions about interactions between different people and the site. But if there's one thing that just frustrates me and makes me throw up my hands in despair, it's the conspiracy theories that arise about why we're doing things. They sometimes arise from poor transparency but sometimes, even when you're being totally transparent, people will come up with their own reasons for what you're doing, call you liars when you explain the real reasons, and convince other people of their fallacies. I remember well when we created the d20 forum on RPGnet: it was based on my personal disappointment in the quantity of D&D discussions at RPGnet over the years, and my hope that we could increase those discussions by giving them their own forum where D&D wouldn't have to fight with the White Wolf and indie games that were RPGnet's bread and butter. The results speak for themselves: D&D has gone from a little discussed to game to a major topic at our site. But we had to waste a lot of time and energy arguing against the totally unfounded conspiracy theory that we were creating a "D&D ghetto" to silence discussion of the game.
 
Not believing community managers not only makes their job harder, but it also gives cover to bad actors by allowing them to make bad-faith both-sidist arguments.

Solution Three: Community Support

If you're a community member who wants to be more active in protecting your community against bad actors, you can take explicit actions to help. You don't have to; just being a good community member is a great help to a site. But, there's ultimately no way that community managers are going to do it alone. They quite literally need the support of their community.

In increasing order of engagement:

1. You can block the bad actor. Any bad actor in a community ultimately thrives on attention. Deny it to them.

2. You can alert the community managers about the bad actor by their favored reporting mechanism. Don't expect a response: this isn't about you. Do expect any good community to put this info into their internal data files for how they think about the person.

3. You can speak out against the bad actor explicitly ... but you still don't necessarily want to interact with them, because that's what they want. But you can reshape the discussions around them, supporting the people they might otherwise drive out and rebuilding the conversation. There's nothing a bad actor hates more than being ignored by people talking right past their bad faith arguments.

Let's be honest: engaging with a bad actor can be scary. I think we can all improve our communities by challenging ourselves to go just one step past our natural tendency, but we should also be aware of our own limitations. Personally, I can be sent spinning if someone makes a nasty or threatening argument against me, so I'm definitely less likely to explicitly speak out against a bad actor. But, I do often push myself to take the time and effort to alert a community of a problem, and if I'm feeling good, I might speak about a bad actor, even if I don't explicitly speak to them.

Solution Four: Hobby Support

We're not just community members, but also hobby members, part of a community that's larger than just one site. A lot of bad actors take advantage of this balkanization. Because their bad actions are spread out among many people in many places, they can more easily deny them. It enables them to spin conspiracy theories, which all too often are believed.

The most obvious defense against this is to listen to what other sites within your larger hobby say. If they're also reputable, you need to believe them as well, even if they're not your online home.

You can also improve everyone within a hobby's understanding by using the weapon that any bad actor is most afraid of: knowledge. If you're willing to put yourself out there, then make your bad experiences with the bad actor public. Try to do so bloodlessly, without blame. Just describe what happened and how you felt. This will decrease the ability of the bad actor to present your description as a he-said-she-said experience and meanwhile will give everyone else one bit of knowledge that they can hopefully use to build a complete picture of what's really going on.

Anyone in the roleplaying community who reads this knows that it's largely in response to the revelations about Zak S. in the last week. There were certainly many people over the years who talked about him being a bad actor, but he did exactly what's described here: he used the balkanization of roleplaying communities on the internet to present it as just RPGnet (or story gamers or Evil Hat or whoever) picking on him, and suggested that there were two sides to the story. But what really made his schtick work was obsessively searching for discussions of him and attacking people who spoke out against him. This made people afraid to talk about him, and meant that the bad things he did to dozens or hundreds of different people often stayed private. Although I never had a good thing to say about Zak (once I learned who he was, about when he got kicked off RPGnet), I also didn't say very many bad things, such as being really clear about his bullying toward me. I hope the post I wrote last week meets my goal of being a fairly bloodless description, describing what happened and how I felt about it. 

Conclusion

The internet is a great medium that opens up the whole world in a way that a lot of us couldn't have even imagined in our youths. But it also gives bad actors the ability to carry out their selfish desires and to damage the communities we're trying to create. Though obviously community managers are on the frontline of that, and need to understand how to put their community first, every single one of our can support our community in ways that match of our own needs for safety.

Hat tip to Johnstone Metzger (@chthonstone) and GrzegorzWierzowiecki (@GWierzowiecki), whose posts and questions on Twitter led me to write the tweetstorm that became this article.
shannon_a: (Default)
About fifteen years ago now, I went on the frontlines for two online communities: RPGnet and Skotos Tech. Oh, perhaps "front lines" isn't quite the right phrase, because I'm not the one directly dealing with our users most of the time. Instead I'm the guy with the ultimate responsibility, backing up our staff, and making the decisions for the betterment of the site as a whole. But, front lines does give the proper sense of warfare, because maintaining a community online is an ongoing battle that never lets up.

Much of this is just the physical need to keep the machines that support the communities up. They could go down at any time, so I've long found myself quickly checking my emails when I get home from some outing, to make sure I don't have any reports of crashes while I was out. When I miss a call from a weird number elsewhere in the US, I worry that I missed a call from a moderator or administrator telling me something catastrophic has happened. And, these are based in real events, as I've gotten home and found that a machine had been down for a few hours, I've gotten calls from admins and mods saying that a site had come under attack. I've had to bring our machines back from the brink in the most annoying conditions, such as at my parents' dining room table this last Christmas Eve. (Thank goodness we no longer have physical machines; biking down to the machine room we used to maintain in Emeryville and sitting alone in the loud, cold room trying to resuscitate an agéd machine was really the height of no-fun.)

But my biggest stressors in my battles to maintain communities have been interpersonal ones.



Let me be clear: the vast, vast majority of people on the various sites that I support are great people. They're literally the reason that I've been willing to support these sites for so long, despite the (primarily emotional) cost. For every really crappy interaction I've had with someone as the result of one of our sites, I've literally had a hundred good interactions, usually from people who are very appreciative that we maintain them. I've worked with great creators at both RPGnet and SKotos, and I'm sad about the many that have moved on (as is natural, as the years pass) and grateful for those who remain.

But, oh, those really crappy interactions have been really crappy.

There are dozens of users who have sent me vile screeds because they got kicked off of a service. I've had people lie to me in any number of ways, usually pretending they didn't do something that they did. I've received two or three death threats. I've had to reach out to the FBI twice due to threats of violence against others. I've fielded semi-yearly legal threats, mostly from people upset by what other people were saying on forums, and wanting us to censor them.

And then there was Zak S.



I'd never heard of Zak S. before 2013, when he started getting serious flak from the RPGnet mods because he was increasingly a drag on the community. As some people do, he tried to go over the heads of the mods to get a different answer from me. It was a slimy letter. First, he tried to present himself as an authority by dazzling me with his credentials, then he acted like he was doing me a favor by being willing to tell me how the moderation on the forums was bad and could be improved. And, shit, that letter is manipulative when I reread it. He was all, hey I know this probably doesn't concern you, but if it does, please write me back and I'll tell you more. Anyone actually wanting to help, of course, would have just told me straight out, but he was trying to establish a power dynamic where I was the supplicant and he the wise master.

Fortunately, I'd already dealt with a hundred people trying to go over the heads of my mods and game hosts by that time, and so his slimy, manipulative letter made very little impression. I told him I disagreed with his assessment that there was a problem with the moderation, and I told him to talk to the mods, and then I told him it again several hours later because he was obviously bad at taking no for an answer.

Fast forward to August, by which time Zak was banned. That's when he began making posts to his blog about RPGnet, complaining about some ads we were running. The ads were frankly offensive: some of the misogynistic online-game ads that started turning up around that time. But his posts showed zero understanding of how internet advertising really worked, and as far as I could tell, he didn't care. (Nowadays, we even have a term for what he was doing: "bad faith arguments".) As far as I could tell, he was just trying to score points, to make us look like hypocrites because we'd banned him for his attitude for women, or something, I think, and here he could pretend that we were showing a shitty attitude toward women. (Here's the thing about how ads work: you sign up for networks, and you try and pick trustworthy networks, but sometimes they still send your horrible ads, and they just appear without your consent, and you have to block them; in our case we *have* been exceedingly picky about what ad networks we use, to do our best to make sure that RPGnet doesn't get any of the truly sucky ads you see elsewhere, and these ones actually came from Google, who usually does pretty good, but stuff sneaks in ...)

Just a complaint like that would have gone right by me. We actually had at least one Skotos-hate site go up after we'd been in business for a few years and had been forced to ban some people. There's at least one minor roleplaying forum that caters to RPGnet bannees and haters. When you run online communities, and when you actually moderate them, you get haters. And they publish screeds, create hate-sites, and otherwise make vocal their hatred.

But when Zak posted these "complaints", and I think there were three blog posts total, he purposefully used my whole name in the blog titles, and then he encouraged his followers to link to them, with the goal of poisoning my search results, so that this misleading and manipulative post that suggested that I was some sort of misogynist who loved misogynistic games was at the top. The object was either explicitly or implicitly (I forget which) to use that as leverage to ... I dunno, get us to stop running ads? Bring Zak back to RPGnet? I'm not sure. (We'd already blocked the bad ads, of course, as we're forced to do from time to time.)

Fortunately, Google at some point figured out that Zak was trying to artificially manipulate Google results. It didn't have anything to do with me, though Google is a rock's throw away, and though I have friends who work there. But at some point, they figured it out, and they tanked the search results for his whole site.

And that was how Zak tried to attack my reputation and my livelihood.



In the years after that, I did my best to forget about Zak, but he took the occasional shot at me. I just found a bizarre interview in 2015 where he claims I actively support bigotry and harassment. (Evidence? No, of course not.) I also discovered that the OSR community was somewhat poisoned against me around the same time. I found it somewhat baffling, as I'd had so little to do with him. It was like I was some big hatred in his life, and he was one of any number of people banned from RPGnet in 2013, and one of several who unsuccessfully tried to go over the heads of the mods to get me to let them back in.

I was never bullied growing up. But I eventually came to use that word for my interactions with Zak. And I definitely was being harassed as well, at a light level, mind you, compared to most of his victims. But it pissed me off all the more when certain professionals in the industry claimed that he'd never harassed anyone.

One of the ways I could tell that I was being bullied was that I was afraid to write about him in a public forum. Because I feared that he'd just increase the bullying and harassing, and maybe send his brigade after me.

I think the concerns mostly broke for me in early 2017, almost exactly two years ago. That's when I discovered that Zak S. had engaged in identity theft against me, creating a fake account on reddit, which he seemed to use mainly to talk himself up. And, it seems pretty obvious that he was the one who did it, because he got the accounts confused: he meant to post something under his account, accidentally posted it under the account using my stolen name, deleted it, and then reposted almost the exact same thing under his name. And there were screenshots! (Receipts!) When confronted, he claimed his roommate did it, but no one believed him.

For me, it was just unbelievably pathetic. I'd built him up as a boogie-man, but here he was rather pitifully trying to stroke his own ego by pretending to be me. I know a lot of people were pretty angry on my behalf; they were in fact much angrier than me. For me, it was more of a relief to see the manipulator laid bare.

But I also just let it go by, because I still didn't want to post and open myself to his attacks.

[Edit: This all followed an earlier identity theft on BoingBoing, something I'd entirely forgotten about until someone commented on this photo, where I discussed the two cases of fraud: https://www.facebook.com/photo.php?fbid=10155990005831164. It was also used to defend Zak S., but it was perpetrated by some mysterious figure. I was more annoyed by that one, I think because it felt like they were multiple people out to get me, as opposed to one pathetic guy sitting in his basement, giggling while he made up fake accounts and complimented himself.]



Today a very brave woman who used to be Zak's girlfriend wrote about her horrifying experiences with him. She's apparently been sexually and emotionally abused by him for a decade, so I can't even conceive how terrified she must have been to talk about him. I mean, he had me afraid to say his name from a few isolated instances of internet attacks (and some attempted career destruction, reputation sabotage, and identity theft), so she must have been a hundred, or a thousand times more afraid. But she spoke out.

And her courage makes me more able to say: Zak S? Fuck that guy.

Worst user I ever had to deal with.



Being who I am and doing what I do, there's of course another angle to this: how do I write about Zak S. when I get to the history of the '10s? Because he's definitely been an important figure in the OSR movement. There are now people on the 'net destroying all their reviews of his products and all their publicity for them. And I can understand that, but I also have different responsibility as a historian. If he's important enough to his subgenre of publishing (which he probably is), then I need to write about his successes and also his failures.

But perhaps I'm a hair more able to do that now too.
shannon_a: (Default)
Here's what I wrote at RPGnet about the conversion of the forums from vB4 to XF, an arduous process that took up much of my week.

I previously ran a test conversion over on a test machine. There were two notable problems in the test conversion: first, smilies in signatures broke the conversion; and second the whole process died on trying to convert avatars. I figured out both those problems (with help from XenForo folks on the first), and was able to run the test conversion process in 32-33 hours. Afterward we discovered that most things had converted properly, with the biggest problem being permissions, which were frankly a mess. I figured out how to get our old URLs converted to the new URLs using an add-on, and that was the last possible show stopper. So, we had a potential new forum software. After comparing it to vBulletin 5, which we also testbedded, we decided we liked the feel of XF better, with some prime advantages being the very fluid use of dynamic HTML5 features and the vibrant add-on community. To be specific: we thought it was enough better for our purposes that it offset the increased work that a conversion would take over a simple upgrade, as well as the work users would have to do to learn the new system.

So I started the conversion process on the real forums Saturday evening, with the expectation that it'd be done Sunday night, and I could bring the forums back up Monday morning. Unfortunately, we hit three problems in the process which notably slowed things down. The total conversion time ended up being more like 100+ hours, about three times what was planned.

First, I made the mistake of running the conversion through our normal RPGnet setup rather than using a special machine for it. This means that the web server (where I was running the conversion) was separated from the MySQL server (where the conversion actually occurred). I'd considered this, but figured any latency would be minimal, because the two machines were on the same network, talking via private IPs, where there's little network contention. My round trip time is about half-a-millisecond. Though that's a lot bigger than the twentieth-of-a-millisecond or better round trip time when a machine talks to itself through network ports, I felt certain that any slowdowns would be from disk access on the MySQL side of things and that the network lag would be irrelevent.

I was wrong there, and at a guess that more than doubled the upgrade time. It's possible that there were other issues contributing to the general slowdown. These servers are built on cloud computers; they're not like the shared computers of the '00s, where you could really be hosed if someone else whose virtual machine shared hardware with you was doing a lot of work. But I have seen definite variation in disk access speed for some of my computers that do LOTS of disk work. So it could be we got lucky on the test machine or unlucky on our real server. But I find it most likely that putting that half-a-millisecond network connection between the web server and the MySQL server created most of our slowdown.

Second, sometime in the first 30 hours or so, a batch of a bit more than 100 entries from RSS feeds got put into the new database in a set of sequential and incorrect post ids. This caused a problem on night #2, when the conversion program, which seems to convert posts is a somewhat random order, found the first of the correct entries for those post ids, tried to create it, and couldn't because there was something already there. This halted the conversion process until I woke up in the middle of the night, stumbled to my computer, found it halted, stumbled back to my bed side table to find my glasses, then stumbled back to the computer to figure out what was going on and how to fix it, all at about 5AM. This then happened 100+ more times over the course of the upgrade, but with less stumbling. Most of it was right at the end, where the process was halting every minute or so.

It's less obvious what happened here, but my best guess is that even though the forums were off, some other process wrote to the forums and somehow this caused the disruption. This might have been the RSS feed readers built into vBulletin (though the feeds that got duplicated were for old messages, so I'm not really sure). It also could have been the automated morning posts of reviews, columns, and news — especially since the problem occurred the first time that any of those automated messages got written during the upgrade process (Monday morning, around 1am PT, which would have been an hour after they were written).

Third, the process halted two times for absolutely no reason, and recovered itself when I woke up the computer that was running the web browser. No idea why that was. I restarted my web browser and it went away, so maybe there'd been some leak in the browser that was causing problems.

Problems two and three both had an uncanny ability to knock the conversion offline while I was either sleeping or away from the keyboard. At least three times they knocked it out within half-an-hour of my going to sleep, even though they'd been working fine for many hours beforehand. All told they probably wasted 10-12 hours of the update doing nothing, which I found super-frustrating.

So, what would I do differently? To combat problem #1, I would make sure the browser and MySQL database were on the same machine. To combat problem #2, I would make sure the database was moved from its normal position, so that nothing unexpectedly wrote to it. I probably wouldn't worry about problem #3, but if I did, I could just restart the web browser after a day or two of work.

To accomplish those things, I would:
  1. Turn off the forums.
  2. Clone the database machine. (Rebuild it from its backup.)
  3. Get the cloned machine into order at its new IP address.
  4. Add a web browser.
  5. Install XenForo.
  6. Run the upgrade on the cloned machine.
  7. Copy the converted database over to the main database machine.
  8. Copy the XenForo install over to the main web server.
One of the reasons I *didn't* do that this time, is that It seemed like it added opportunities for problems to crop up, with all the moving of files between slightly unlike machines. But in retrospect, those potential problems were better than the slower upgrade.

But, lessons learned, not that I plan on doing this again :).

There were two other lesser problems.

First, for some reason one of the board notices (our "Trump" notice as it happens) totally broke the boards when they came back up. I couldn't access them at all until someone over at XenForo very quickly pointed me to that problem. That message went up after I branched off the testbed database, so it was literally something I couldn't have known. (The date was causing the problem, and I reset that and it was fine, but I think we've since cleared out all the notices.) This was literally such a bad problem that I though the upgrade was toast for about an hour on Thursday morning.

Second, page URLs weren't redirecting right, even though I'd had an add-on that was working right over on my testbed. This turned out to be because our real machine is slightly different from our test machine because it uses a more efficient web server called LiteSpeed rather than the standard Apache used on our testbed. I assumed this was the problem from pretty early on, it just took a while to figure out how to get them working in the different environment. If I was being 100% professional, I should have made sure my testbed was identical to our real setup, but we run RPGnet a little by the seat of our pants, using the time and resources we can eke out to do so, and in this case I was comfortable with the difference, and confident that we could find solutions if the variation caused problem (and we did).

And that's the story of the upgrade.
shannon_a: (rpg stormbringer)
RPGnet. I hate doing big upgrades on RPGnet. I'm currently working on what I think is the third, after vB2->3, vB3->4, and now vB4->XF2. The problem is that the forum is huge, so when any changes are made to the table of posts (which was somewhere north of 10M posts last time I converted and is now closer to 20M), it takes a long time. The last conversion I did was awful because there was at least one "ALTER TABLE" which took 12 or 14 hours to do all on its own, with no milestones or save points along the way. Ayyyy.

This time around I testbedded our conversion and it ran 32-33 hours on that test machine. It was also a much better conversion, constantly saving its state. So, you could see it crawl along, but you knew if it halted at any point (and it did here and there), it could just restart.

But now that we're onto the REAL conversion, which I started Saturday night, things are going slower, likely because of the difference in the machine setups between my testbed and my real setup. We're almost 40 hours in, and the post table is likely to be about 64% when we hit that milestone. It could easily run into Tuesday night, which is much longer than planned.

I mean, there's nothing I can do about it, and this far in, it's best to let it finish, but I hate sitting here, knowing our very popular forums are down, and not being able to do anything about it. At least it's still the (long) Veteran's Day holiday.

Oh, and that's not even speaking of how I woke up at 2.30 last night certain that something was wrong. I stumbled into my office, logged into my computer ... and found the upgrade process had died! (Is it really paranoia when they are out to get you?) For some mysterious reason, it had created a duplicate post and gotten stuck. I fumbled with it for several minutes and managed to get it going again, but the rest of the night I slept somewhat fitfully. Now I just hope that nothing is corrupted. I just need to test that the forwards from the old forums line up correctly when we're (finally) done. (Boy, that would suck if after all of this, the conversion didn't work right.)

Dark Skies. We continue to have crap out in the air for the fourth day running. Yeah, things are clearly worse north of here, where the worst fire in recorded Californian history continues to burn, but I'm going stir crazy. I feel stuck in the house, and even here I'm aware that we're breathing crap because about half of our windows are old and don't seal as well as modern windows. Today the AQI is still 175, which is square middle of the "unhealthy" range.

Endgame. And it's now been three days since I learned about Endgame closing. I wrote about it in Mechanics & Meeples today, but it's wasn't particularly cathartic, as I'd hoped it would be. Really, I think, I need to talk with friends there and see if there are any alternatives to see folks from that community and to get in my day of most freeform board gaming, where I'm most likely to play new and interesting and strategic stuff. But I can't do that until Wednesday, so for that moment it looms.

Really, this should all be looking better by the end of the week, and none of it's horrible for me, but you put it all together and it's a dark cloud looming over the new week.
shannon_a: (Default)
It's rare that I've had a week of such bad sleep as this last one.

(There's a guy who's been awake Since the Second World War.)

Monday, it was Skotos stress. Skotos was getting in some GDPR requests (and as much as I appreciate the power that the GDPR gives people over their data, what I think about the GDPR as a small site owner, and what I think of the EU trying to legislate for the whole world is a different issue). See, the problem at Skotos is that we've got some propriety software that was created by long-gone programmers. And I sometimes have problems digging stuff out of it. So I offered what information I could, but I really wasn't sure how some other data was stored, and that stressed me out. I was doing this GDPR work late at night (under the theory that I'd be stressed if I didn't) and then I tried to go to bed right afterward, at the late hour of 1.30 or something ... and I was stressed enough that I couldn't sleep until 3.30 or so.

Wednesday, it was being sick. I blaming overindulging at the bbq (more on that in a moment), but heck maybe it was stress too.

Thursday, it was RPGnet stress. There have been some ongoing problems with how some of our users and one publisher interact and it came to a head again Thursday, and I thought I'd put the issue to bed (ha!), but it had flared up again by the evening. So again the theory was to do something about it before going to bed, so at 12.30 or I sat down and wrote a post simply ending the discussion of the particular publisher's game at the site because it wasn't doing anyone any good: the publisher or our readers or our moderators or me. I finished that a bit after 1.00, and I was smarter this time. I destressed by reading till almost 2.00. But boy I was kicking myself over another night where I knew I'd get insufficient sleep. But at least I was able to sleep pretty soon after going to bed.

Sigh.

And this was all against the backdrop of trying to finish up the editing and then formatting of our co-op game design book. It was due on July 1, but I took out an extension ... and still didn't have it done by today when I was supposed to due to those Skotos and RPGnet issues. (It should be Monday for sure!)



The bummer thing is this was supposed to be a great week.

I mean, breaking the week up with a holiday right in the middle, that's the Holy Grail of work weeks. Actually, that was the plan some 15 years ago or so, when I first cut back my salary at Skotos to better accommodate what the company could afford. I was supposed to get Wednesday off to work on my own projects. And, we did that for a while, and I wrote some of the still-unpublished HeroQuest elf book during that time. But it soon became obvious that putting a roadblock in the middle of a work week just wasn't working, so we re-accomodated by giving me a little more time in the evenings. In any case, that wasn't really Holy Grail material, because I was still studiously working, just on my own projects, not Skotos projects.

But a single week with a holiday in the middle: that works. (OK, we'll ignore the fact that I would have gotten the co-op book done if I'd had one more day, but I ultimately decided I could really use the downtime.)

So Tuesday night arrived, and I'd resolved my Skotos GDPR issues by carefully digging through code (and I now know how to put together all the info for next time and how it works), and I was feeling great that two days of work in, it was the weekend again! And I had a great Wednesday. Eric L. and Eric V. and Mike B. came over and I BBQed up chicken dogs for everyone, and I ate too many grapes and Oreos which is probably why I was sick much later that night, and we got into adventure 6 of Pathfinder: Skull & Shackles, which means we're close to the end.

And Thursday night was pretty cool too, because we got in another two Pandemic Legacy: Season 2 games.

(And those are both things that we have a year and a half to finish.)

But there were just too many crappy nights amidst that.

!GenCon

Aug. 5th, 2010 02:52 pm
shannon_a: (rpg stormbringer)
GenCon started yesterday. I am once more not there. Nor do I particularly want to, truth be told.

I was never a huge fan of gaming cons. I used to go to DunDraCon largely for the flea market, auction, and/or dealer's room. That was in the early to mid '90s. You can see from the locus of purchasing activity that I had more dollars than sense at the time. But, I purchased some fine things at those cons that I still treasure. I found [i]White Dwarf #1-10[/i] in a box at the Pacificon flea market one year, and paid $2 or $5 each for them. Another year I got issues #1-8 of [i]The Traveller's Digest[/i] at the Pacificon auction for $15 total, or something else ridiculously silly. But I also got plenty of stuff that's since gone, such as a collection of [i]Man, Myth & Magic[/i] books.

Then I started working for Chaosium in 1995. Cons--never a huge draw for me in the first place--became work. I learned pretty quickly that standing on your feet for 8 hours straight is tiring, and for me at least, talking to people and being friendly for that same period of time is entirely exhausting.

In many ways, I think the worst thing you can do for your hobby is make it a job. Though my experiences at Chaosium were generally good and though I was never overworked, after two years there I was entirely burned out on cons and it took me a few years to get my roleplaying mojo back.

(I think I have a much happier medium now. Though I run the RPGnet community and am constantly dealing with board games, my main focus is programming in both cases, and that hasn't led to burnout on either front.)



So, GenCon.

One of the things that I love about working on the RPG History book is that it increases my interest in roleplaying generally. I wait on tenterhooks to see what Mongoose's new fantasy offering is going to be, whether White Wolf will reverse the last year of disappointing RPG abandonment, and what the next campaign setting will be for WoTC. Usually, it'd all sort of interest me, but the history book keeps it to the forefront as something to keep track of. So, though I may not be at GenCon, I eagerly await its results.

There's also going to relief when it's over, however. For myself I'll feel more able to attack parts of the history book concerning companies still in business, with the likelihood that they'll make major changes or announcements before my deadline notable decreased. For Skotos, it'll suddenly become easier to contact folks in the industry who have gone increasingly off line over recent weeks.

And that's what GenCon means for me, this year.
shannon_a: (marrach skotos)
A bit of an annoying week computer-wise. I've been down at the Skotos co-lo facility every day this week (thus far) because of problems with RPGnet. Monday morning, RPGnet suffered a pretty major disk crash. One drive was wiped out, another one was damaged, and the RAID failed as a result.

Fortunately, Erwin has done a great job maintaining our backups, so we had the filesystem available from Sunday evening and the databases were pretty much up to date. Unfortunately I haven't done as good of a job making sure that we have parts for what's really our most critical machine (because most other machines, we could move their services to a backup server, but RPGnet does too much for that to be particularly possible), and so we didn't have replacement hard drives on hand. We got things back up and crossed our fingers that the second drive wouldn't fail again before morning.

So Tuesday morning I got delivery of three replacement hard drives and swapped #1 for the dead one. Then once that all got synced into our RAID, this afternoon I swapped #2 for the suspicious one. And now we've got an extra #3 sitting around. We could actually use it as an offsite backup, since it turns out the RPGnet RAID is hot-swappable, but I'm not sure I generally get down to the colo often enough to make that make sense.



So, everything is hopefully dealt with now, but it played havoc with my work schedule this week, taking out much of Monday and a few hours on Tuesday. Today I was able to do the final swap on the way to EndGame, so I got a decent amount of other work done today.

On the good side, I do have cards displaying correctly in High Society (my next iPhone game) as of this afternoon, but there's still lots to be done. Having a functionally complete game by the end of the month is looking less likely, but we'll see how it goes. I'm putting more work in tomorrow, then backing off to other projects on Friday.



I got to bike to EndGame by a very different route today, and that's more exciting (to me at least) than it sounds, as I love seeing different routes and what's on them.

Oakland and Berkeley have kind of weird geographies, because of the way the bay slants off to the sides, and thus I'm sometimes surprised by how close things are to each other when I'd otherwise think they were far. That was the case today when going down to the colo (which is 90-degrees different from how I go to EndGame and about 2.5 miles from my house) only took me a mile out of my way.

The route over to EndGame from the colo was via some bike boulevards in Emeryville, then some routes in Oakland that took me to San Pablo, which heads almost straight to the store. The bike boulevards in Emeryville, which run just east of the railroad tracks, were great. It was a nice, quiet back route that I didn't know about.

But then when I got into Oakland I realized that the area I was cutting through was the kind of empty ex-industrial area in the northwest corner that I don't really like, then past that there's a pretty poor area. I guess I kind of should have guessed it wouldn't be a great area because I was coming up from the wrong side of San Pablo. I was happy when I got through it.

San Pablo was a bit busier than I expected. Then, when you get to historic downtown, the traffic just evaporates and from one block to another inner city becomes affluent. Weird. (It's been a real effort to gentrify historic downtown, mind you, unfortunately set back last year by rioting and by Bush's recession.)



Great gaming at EndGame tonight: Lost Cities, then Ra: The Dice Game, then El Grande. I won the Lost Cities, but I was playing a newbie, and I'm a pretty good shark at the game, so no surprise there. I pretty much sucked at Ra: The Dice Game, and the El Grande game ended 99-98-98 (to something, to something; it was 5 players). I've never seen quite such a close game. I was sadly one of the 98s.
shannon_a: (marrach skotos)
A fair amount of my time over the last week has spent pretty busily on iPhone programming. Believe it or not, this is actually a change of pace. Yes, I've spent a good chunk of time over the last year writing fragments of code to exemplify iPhone in Action as well as numerous articles, but that's not actually the same thing as sitting down to produce a fully functional program.

I really enjoy logic puzzles, and so for me one of the things that's really great about object-oriented programming is figuring out how to create really modular, reusable classes that I can program once and use many times. Yes, it makes the first program take more time, but hopefully it makes every one afterward easier.

So, though I have a specific roleplaying program that I'm working on, much of my last week has spent working on two classes: one to run a splash screen on the iPhone, another to better automate use of the iPhone's database.

Ironically, this has led me straight back to articles about the iPhone, but this time they're articles based on code rather than code based on articles.

Here's my three-part series on creating a splash screen on the iPhone, complete with a creative-commons licensed class that you can plug-in to create a splash screen almost immediately:

April 2025

S M T W T F S
  12345
6789101112
13 141516171819
20212223242526
27282930   

Syndicate

RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jun. 14th, 2025 02:49 am
Powered by Dreamwidth Studios