1. So the wacky idea I have relates to deleting posts. I want the database to check if there are any posts that refer to the to-be-deleted post in their replyto column and if so just replace the post content with [deleted] or something similar and empty out all the mentions, tags, and groups data while preserving its replyto column. All of this so that conversation chains won't be broken when a post is knocked out of the middle. If nothing refers to the post, then the row can be properly deleted- if present it will then check the replyto post to see if it's also been flagged for deletion and clean it up too if nothing refers to it, etc up the chain until it hits a post that either hasn't been deleted yet or still has references to it. I won't ask if this is possible. I know it is. But I wonder if it's something I *should* do.

    Wednesday, 09-May-12 04:34:48 UTC from web
    1. @toksyuryel sounds like censorship. Terrible big Brother censorship.

      Wednesday, 09-May-12 04:35:35 UTC from web
    2. @toksyuryel This was talked a couple of times. StatusNet doesn't allow that.

      Wednesday, 09-May-12 04:37:01 UTC from web
    3. @toksyuryel It's already been looked into, the current version wont let you do anything useful like that.

      Wednesday, 09-May-12 04:37:32 UTC from web
      1. @colfax @nerthos I'm not talking about statusnet, I'm talking about the reimplimentation of it I'm designing.

        Wednesday, 09-May-12 04:38:39 UTC from web
        1. @toksyuryel Oh well. If you know how to make it work, it would indeed be useful

          Wednesday, 09-May-12 04:39:36 UTC from web
          1. @nerthos I know how to do it, the question I'm having is whether it belongs in the database or in the application. Either way I'm still going to write the database code for it just to get the practice and see how it performs.

            Wednesday, 09-May-12 04:41:43 UTC from web
    4. @widget Step one is simply ensuring the API is compatible. Are the plugins written in PHP or do they use a different language? If they're in PHP then I can't support them but if they're in something like say lua I can try. It really depends on what the plugins expect, and given how badly statusnet is designed I can't imagine the plugin system does a good job of seperating them from the implimentation so in all likelyhood all plugins will be unsupported. This isn't likely to be a problem though as many of them have functionality that ought to be included anyway. This is looking pretty far ahead though, right now I just want API compatability while getting the system implimented in ways that aren't horrible.

      Wednesday, 09-May-12 04:47:19 UTC from web
    5. @widget Because I want to change the database, change the web server, and change the programming language. I hate MySQL, I hate Apache, and I hate PHP. Statusnet is so badly designed that it needs to be rewritten from scratch anyway, so why not do it using tools that aren't horrible? Besides, reimplimenting it is only phase one. I also plan to extend it. The final product will be something different but fully compatible with the Statusnet API.

      Wednesday, 09-May-12 07:06:16 UTC from web
    6. @widget Apache and MySQL are both comically bad pieces of software infamous for a wide range of systemmic failings from stability, to flexibility, to performance, to security (*especially* security). nginx and PostgreSQL, respectively, completely destroy them in every conceivable way.

      Wednesday, 09-May-12 07:18:02 UTC from web
    7. @widget No can do I'm afraid. I'd lose access to a LOT of features if I did that, and frankly I tend to view MySQL as the Internet Explorer of databases (most professional DBAs I've spoken with do so as well; they're the ones that recommeneded PostgreSQL to me, in fact).

      Wednesday, 09-May-12 07:23:53 UTC from web
    8. @widget "PostgreSQL Global Development Group", according to the website. It started out at Berkeley as just "Postgres" and after leaving they added support for SQL and changed the name a couple times.

      Wednesday, 09-May-12 07:27:14 UTC from web
    9. @widget Oh man. I once tried to use that thing. Never again.

      Wednesday, 09-May-12 07:30:36 UTC from web
    10. @widget I'll leave that to someone who cares. I'm not going to spend all that energy trying to make the thing work even half as good on such an inferior system that frankly nobody in their right mind should ever use. MySQL is and has always been a toy, completely unsuitable for real-world professional workloads.

      Wednesday, 09-May-12 07:31:17 UTC from web
      1. @toksyuryel That's why it's so popular and widely supported I guess.

        Wednesday, 09-May-12 07:31:42 UTC from web
        1. @ceruleanspark Lots of things that are terrible are popular, because they focus on being popular instead of on being good. It's a marketing thing.

          Wednesday, 09-May-12 07:35:02 UTC from web
          1. @toksyuryel I think you and MySQL have some issues you need to sit down and work out. For a long time, MySQL was in fact (as was apache) the unquestionable best-thing. That is why it's popular. It's still IMO, the most pick-up-and-playable DBMS. (Admittedly, pick-up and playability just tends to lead to people shooting themselves in the foot, genitals and face, but still)

            Wednesday, 09-May-12 07:38:57 UTC from web
            1. @ceruleanspark As far back as 2003 I was in contact with a professional DBA who swore by PostgreSQL and had nothing but contempt for MySQL. He would often tell me stories about the amazing queries he wrote and how they would be impossible to replicate in MySQL. The perception that MySQL was ever "the best" has always been marketing, helped along by its pick-up-and-playability as you called it.

              Wednesday, 09-May-12 07:44:53 UTC from web
              1. @toksyuryel The thing is, (and it is by no means a good or right thing), the vast majority of developers kind of...aren't DBA's. A frankly disturbing quantity of them known next to nothing about database design. To them, the best database is the one that they know how to use. The advanced features and benefits of postgres are alien to them simply because they occupy a tier beyond their comprehension.

                Wednesday, 09-May-12 07:47:59 UTC from web
                1. @ceruleanspark I blame this for the rise in "Apps using NoSQL solutions in situations where a proper relational database is a better idea". "I don't know how to write performant SQL, ergo, SQL is bad."

                  Wednesday, 09-May-12 07:49:50 UTC from StatusNet Desktop
                2. @ceruleanspark I like to think I've read enough Zed Shaw and Eevee posts by now to no longer fall into that category. But there's probably a few things I'm using only because I happen to know them.

                  Wednesday, 09-May-12 07:52:22 UTC from web
                  1. @toksyuryel Going back to your original question, you shouldn't be putting programattic logic in your database.

                    Wednesday, 09-May-12 07:53:56 UTC from StatusNet Desktop
                    1. @ceruleanspark Probably not. But regardless it'll be good practice and I can check how it performs; who knows, maybe it'll actually perform really well. But most likely I'll end up shifting a lot of it into the API handler instead. I dunno. I just started all this a couple days ago and then my entire OS went kiwi up on me when I tried to restart X. I should be able to start actively testing this stuff by Thursday. Until then I have nothing concrete to offer.

                      Wednesday, 09-May-12 07:59:00 UTC from web
                      1. @toksyuryel All I know is that my Database Design instructor would slap my face if I did it. Whether that makes it good practise or not is another matter.

                        Wednesday, 09-May-12 08:11:38 UTC from StatusNet Desktop
    11. @widget Hilariously even MSSQL is better than MySQL.

      Wednesday, 09-May-12 07:32:51 UTC from web
      1. @toksyuryel That's a joke right? MySQL at least works.

        Wednesday, 09-May-12 07:36:09 UTC from web
    12. @widget Any decent host will support it as these are all professional-grade tools with widespread industry support and respect. Find a new host if yours doesn't. (realistically, you should be hosting software of this nature somewhere you have root access anyway so available platform software is entirely moot as you choose what is present)

      Wednesday, 09-May-12 07:39:17 UTC from web
    13. @widget I am targeting the sort of users that have the resources to run something on the scale of statusnet with a community at least as large as RDN's. I trust them to be utilizing proper hosting strategies.

      Wednesday, 09-May-12 07:47:15 UTC from web