Tag: SQLServerCentral

  • Abuse, Patience, and Understanding

    I’ve been struggling with an author for a few months. I tried to work throughs some issues, and I couldn’t get anywhere. This was very frustrating, and I spoke with a few people in the company. They were sympathic, without many ideas. Eventually I vented a bit on Twitter (initial, another update, there are a bunch of other daily updates). I was mostly trying to get feedback on whether I was behaving appropriately.

    I’ve had suggestions from people, developers have gotten involved to build some tools, and this has been quite a journey going back to March. I’ll give a little history at the bottom, but first, I little of why I’m in this spot.

    Abuse

    On a daily basis, I clean out my queue, ban account(s), and try to work around the issues. I mainly do this so that I can see and work with other authors and continue to run my site. This feels like some sort of attempt at denial-of-service, though since this just clogs my editing queue, I’m not being denied. It also feels a little abusive and stalker-ish.

    In a very light way, it reminds me of the stories I’ve heard from women and minorities about being abused or stalked online. This isn’t anywhere near the stress and angst that I’ve had friends go through, but it’s a little glimpse of that.

    I’m powerless here in many ways. If this person wants to continue to submit things with new accounts, I can’t stop them. Any suggestion of changing things up creates different work for me, not necessarily less.

    This is a hole in the freedom of the Internet. It’s also one that I don’t know how to close, but I do think that understanding this is important. If nothing else, it helps me appreciate just how much accessibility matters for some people (life, career, etc.) and how that is impacted by bad behavior.

    I could call this person out, but so far, I’m working on

    Patience

    I think what’s going on borders on abuse, and is certainly trolling. However, as Andy Leonard pointed out, and something I believe in, I don’t know the other side of the story.

    Apart from my learning something, as I noted above, I also don’t quite understand what or why the person is doing this. I go into some of this below, but I’ve had little communication, and no real complaints. I don’t know if they are confused by a language barrier, but I don’t think so. I also don’t know.

    I don’t know if I committed some affront and they are seething with rage. I don’t know this is justified, but again, I don’t know.

    I certainly don’t know if this person had some personal tragedy, lots a job, relationship split, illness or death in the family, or even a mental breakdown. I’m unsure of the view from the other side.

    So, to date, I haven’t outed the author. I’ve tried to contact people that might know them, and I have sent some emails.

    At this point, I’m along for the ride, to grow and learn about myself as much as anything else.

    The Long Story

    This is long, so if you don’t have time and a beverage, come back later.

    As an example, on 16 Jun, I removed 8 submissions from my queue. These were from 2 new accounts created in the last 14 hours. I looked later in the day and 5 more were added, with a new account. A few hours later, as I was knocking off, another new account and 3 more submissions.

    That’s thrice he’s submitted in 24 hours, and that has happened multiple days.

    This story starts in February 2021. This author submitted a couple articles. The titles were a bit strange in English, and the writing wasn’t well organized or flowing. Lots of grammar and phrasing issues, which is fine. I deal with non-native English speakers all the time. I saw on the article for a week or two, trying to decide what comments to give.

    My normal process is to add comments inline and return the piece to the author through our WordPress engine. I set the status to reviewed, the author gets an email, and if the go into the article, they see my comments in red.

    Awhile later, the author resubmitted the two articles (a and b), with comments removed, but very little changed. I responded with some comments, noting that there were still issues. Since I sometimes go through 4-5 drafts, I wasn’t concerned. I also changed the title of one, as the name didn’t make sense to me.

    A few weeks later, I got the same articles submitted. Comments removed, and as far as I can tell, the original text I’d rejected. Title changed back. I sent an email asking them to rewrite based on comments and not to resubmit them.

    No response to email.

    I set the articles back to draft for the author, but reappeared. I deleted them, thinking the author might take a hint. He (I think) restored them and resubmitted them.

    At this point, we’re into March, and I’m a little annoyed. I get an email response. I am somewhat confused.

    2021-06-16 16_23_56-Inbox - SSC - Outlook

    I set them back to draft, and send another email. I come in a day or two later to find not only articles a and b, but also c, d, e, f, g submitted. These are technical pieces, all in a similar style and somewhat related to each other, but not well written. The flow doesn’t explain itself, there is an opening titled “Question” in each, but without a question. Merely statements. There isn’t enough detail.

    I drop a comment in all of these (copy paste) that these need to be rewritten, and the comments I add to one apply to all. I comment on some of the structural changes in one and refer the author to a forum to ask for help from others in proofreading. We have a lot of community people willing to help. I include this in an email as well.

    I come in the next day, with all articles moved from pending review –> draft –> submitted, multiple times. I get notifications for some of these, as this helps me manage a queue, but I have 8 articles submitted, about 24-32 emails, and they are all in the status from the previous day. Original text, comments removed.

    I play this game for a few days, just marking all these articles as needing review to remove them from my working queue. Each day they come back. I’m somewhat unsure of what to do.

    I spend about a week trying to work around them in my queue, but it’s distracting and annoying to me. Finally, I permanently delete these items, change the user’s password, and alter his email. I am expecting an angry email to myself or the webmaster.

    A few days later, I get an email. As Grant would say, I’m gobsmacked.

    2021-06-16 16_31_38-Inbox - SSC - Outlook

    A week or so later, I get the same 8 articles submitted under a new account. We didn’t have great tools for stopping an author in April. Original text, original titles.

    I play this game for a few weeks, and it’s usually a few days after I delete the articles and mess with the account before I see new copies submitted. Some registrations are with the +xcvxvcx after the user name, some are at a new domain (free provider). I send a couple emails, but no responses, so I stop trying.

    Finally, I vent on Twitter. I get some suggestions, and I engage developers that are coming off some internal projects. They add some tooling to ban a user and some reg-ex filters to stop new accounts with the same name. So far I’ve been getting variations on a name. I won’t use the real one, but this is the idea.

    • jdoe33 (original)
    • jdoe033
    • j33doe
    • jdoe_33
    • etc.

    Each of these gets banned when I see them. After a few days of nothing, all of a sudden the process repeats, with more creativity in the user names.

    We add a ban using regex to the email addresses, which were similar variations, but a +33, _303, +3333, etc. after the user name. Now we get more creative email addresses and user names.

    Developers don’t know whether to laugh, scream, or cry. I don’t either.

    A few people suggested banning the IP. I get infrastructure involved and we do this, but it’s a mobile provider in another country. I hate to ban the /16, but we might do that.

    I’m trying to roll with the punches, but we’re in June here. I do some daily Twitter updates, mostly to cope and keep a sense of humor. The author gets banned daily, and I drop the articles into a “limbo” status, which moves them out of queue and doesn’t notify the author.

    They sometimes create 4, 5, 6 accounts a day and add more copies of the same 8 articles. My limbo queue for a few weeks in June is at 158.

    I’ve reached out to a few people in the author’s country. I contacted them to see if they know this person. I saw a similar name at a few SQL Saturdays in the past, and at SQL Bits (not accepted, no session presented). I had someone try to mediate, but the contact info they had bounced. The information I found from events show a deleted twitter account and a blog URL that’s invalid.

    I don’t know what has happened to this person, or really, what the motivation is. I hate to out this person, as I don’t know exactly who it is, if they’re really a presenter/speaker, or if this is some crazy misunderstanding of some sort.

    Right now, it’s a surreal situation.

    I wonder how it will end.

  • SQLServerCentral–Fixing the Time Zone

    One of the bugs features of the bbPress forum software is that all posts were shown in a time zone, which for us was a default of UTC. Not a bad choice, but this made for funny displays, depending on where you were. Posting in the UK showed you as having posted an hour ago after Daylight Savings Time. Posting in the US showed future times.

    A mess, for sure.

    It’s fixed, or at least, it’s mostly fixed if you’re a traveler. This fix rolled out while I was in Australia, and as a result, I logged in and my time zone got picked up as Sydney. That made sense, since that’s roughly where I was (Brisbane or Melbourne), but it made for some funny posts when I was back in Denver. I replied to a post yesterday and the time I was for the original post and my reply were both the next morning.

    There’s an easy fix for now. You can access your profile from the upper right menu. Once it comes up, click “Edit Profile” and then find the time zone. If it’s wrong, fix it and the posts will be at the right time.

    It’s something I wish we’d thought of early on, but in testing, we usually were looking for the posts in the right order, and I never considered if the actual time was the time I’d was working in. A mistake on my part, and my apologies for those in the community that were distracted, upset, or confused by this.

  • SQLServerCentral Design–bbPress

    This is part of a series of posts that look at the changes to the SQLServerCentral design, bringing us to v3 of the site. You can see the other posts with the SQLServerCentral tag.

    Lots more work to be done, and hopefully some things have been fixed by the time this publishes. I’m writing a bit early, as it’s been a rough day of complaints. I get it, and I’d probably be just as upset. At least we didn’t turn off a lot of content, as MSDN did on some old blogs.

    Some History

    The forums have been one of the most popular and active sections of the site. When we founded things, there weren’t a lot of forum options on SQL Server, but we went with an old VB.NET version of InstantForums. Over the years, we stuck with these forums, and they proved very robust, despite being limited in feature set and written in VB.NET.

    A few year back we upgraded to a C# version, then upgraded again later one to a more recent copy of the same forum. The way that some data was stored and interpreted changed in that time, and various people found ways to embed in some HTML or other codes that we would have preferred not exist, but in any case, the forums worked.

    At least, they worked despite a number of complaints at each stage of change. This time it’s not different.

    Choosing bbPress

    When we decided to use WordPress as the platform for SQLServerCentral v3, we were concerned about the forums. After all, we have a huge set of posts and threads, quite a few of which have over 10,000 posts. We also have a fairly active forum user base, and so load and capacity were issues. Add to this the fact that not all forum software supports SQL Server. In fact, most don’t because of the cost of licensing and most forums are free.

    We looked at a few choices, one of which was bbPress. This is the forum that powers WordPress.org and handles a decent amount of load. This seemed like the best choice for us, with lots of plugins and options. It’s also the number one recommended WordPress forum plugin. With lots of choices, all being similar, and knowing that any choice required some customization, we went with BBPress.

    Rough Edges During Migration

    Data migration from the older, Instant Forum style codes to bbPress was a lot of work. We found lots of inconsistent formatting code, and even broken code that rendered well enough in InstantForum, but made data migration difficult. Line breaks were surprisingly difficult to find and handle.

    In addition, we had a much different styling system for code and images, which had to match up with the movement of binary files from one file system to another. All of this led to weeks of migration work that still isn’t perfect, but felt good enough to make the decision to go.

    Pasting Code

    Handling code in a forum is tricky. There are lots of styles and subtle issues that we want to handle and show. In addition, the way pasting code works on different browsers and platforms is surprisingly complex.

    We knew this wouldn’t be perfect, and we kept finding little issues, but they felt little. In addition, it was hard to tell what was an edge case and what needed fixing.

    I’ll also add that the code button used in the various editors worked fine for me, but after launch, we realized that it wasn’t visible for many people. I had two test accounts I’d create after migration tests, but I also used these to check on article submissions and other tasks. Somehow the button was enabled for my accounts, but not many others. An oversight, and probably something I should have caught.

    One of the big issues in the old forum were issues when pasting from SSMS into the code blocks. In testing, I used multiple accounts to paste all sorts of code from SSMS, ADS, and VS into code blocks, formatted before or after  pasting, included multiple lines and comments, and still we had complaints and bugs when we went live. I even tried things on 3 different machines using Chrome, Firefox, and Edge.

    I have no idea how many different ways things are formatted, or the different patterns that people use to format code. When looking at the extra stuff included by Windows in a copy/paste from SSMS, I was surprised.

    I agree with most of you that this shouldn’t be hard, but it is. Every time I repro a case and developers fix it, someone reports another issue. We still have a number of bugs around code that are open, but they are dwindling.

    Quotes

    One of the things I like about our forums is that they’re single threaded. You cannot reply to a particular post and start a separate thread for your reply. Multi-threaded forums are what Facebook, Reddit, StackOverflow, etc. use. I’ve never liked this, and many of our forum users feel the same way.

    However.

    This leads to some strange visuals.

    2019-04-17 15_04_34-Microsoft Edge

    I used to think that quotes were an issue because users were hitting the closest button to reply. I was hoping the move to the new forum would get people to reply without clicking quote.

    That’s not the case. Lots of people hit quote, and nested quotes are an issue. I’d like to remove inner quotes so that only the most recent item could be quoted, but that’s a very, very hard search and replace problem.

    We have quote bugs, especially where code and images are concerned. We are still fighting these, and it’s  nowhere near as easy as it sounds. Lots of forums just avoid allowing you to quote things.

    There is probably a longer term solution that maybe adjusts some features and display, but I’m not sure what to do now and I don’t have time to explore alternatives. It’s really up to me, since at this point I don’t really trust developers to make these decisions as they don’t use the site. Even in testing, they don’t really know how to use the site.

    There are some other forum items, but I’ll save those for another (shorter) post.

  • SQLServerCentral Design–QotD

    This is part of a series of posts that look at the changes to the SQLServerCentral design, bringing us to v3 of the site. You can see the other posts with the SQLServerCentral tag.

    We’re a few weeks in and the site is stabilizing a bit, but a lot of work still to go. This week, I wanted to write about the changes to our Question of the Day section, which are likely more backend than front end, but still an important part of the site.

    When we started the question of the day, it was a whim from Brian Knight, one that annoyed me because I ended up being responsible for most questions. Over time we allowed users to submit questions and enhanced the way the testing worked, but it took a bit of a step backward in v2 of the site. We had more restrictive forms for loading the questions, not supporting images in the explanation or even any HTML at first. We enhanced this over time, but the marking of multiple choice questions, scoring, awarding back points, and more were somewhat broken for a long time.

    I got quite familiar with running direct “fix-em-up” queries against the database to correct issues.

    When we talked with the developers about the new system, I wanted a more flexible way to get questions written, scheduled, scored, and even fix when we corrected issues. There are a number of plugins for WordPress that allow quizzes, but none that really fit our paradigm.

    A custom plugin was written which allows a more flexible editing system for the question and explanation, similar to what most users are familiar with for writing posts in WordPress. This is more visually appealing, and easier to author a question.

    On the front end, things are very similar, though we have reformatted a few things in the last couple weeks to show more information:

    • We let you know if you were right or wrong
    • We give you the correct answer, or if you were wrong, we tell you what you picked
    • We give you the percentage and count of people answering each choice.

    Many of these changes were simple, and some added back functionality that was lost when we launched the new site, but the changes were quicker and easier than in the past.

    That’s a good sign because in the process of building this out, there are a few things missing. We still need to award back points for poor questions. Right now I’d be reduced to making a database query, but I need a “award everyone points regardless of answer” button built.

    We also want to start collecting items into a test that might quiz a user in some particular area. In other words, rather than a question a day, we want to put questions more into a group like a certification test. Since the items are all linked in a more normalized fashion, and this would in some sense mirror what we’ve done with the Stairway series, I’m hopeful we can add this.