Conversation
Dashes
-
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.
about a year ago from web-
@toksyuryel sounds like censorship. Terrible big Brother censorship.
about a year ago from web -
@toksyuryel This was talked a couple of times. StatusNet doesn't allow that.
about a year ago from web -
@toksyuryel It's already been looked into, the current version wont let you do anything useful like that.
about a year ago from web-
@colfax @nerthos I'm not talking about statusnet, I'm talking about the reimplimentation of it I'm designing.
about a year ago from web-
@toksyuryel Oh well. If you know how to make it work, it would indeed be useful
about a year ago from web-
@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.
about a year ago from web
-
-
@toksyuryel Will it be compatible with the existing plugin system?
-
@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.
about a year ago from web-
@toksyuryel The plugins are in PHP like everything else. Using Lua doesn't really make any sense, but I wouldn't put that kind of decision past the StatusNet developers.
-
@toksyuryel Rather than reimplementing StatusNet entirely, why don't you clone the master branch on gitorious and start from there? It might be easier that way. Also while you're at it you could add more event handlers. That's one thing that always bothered me about the plugin system. It's impossible to change what you want because there aren't enough hooks.
-
@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.
about a year ago from web-
@toksyuryel I disagree that it's THAT bad. The structure it decent, it just needs a little more fleshing out. //// Why do you hate LAMP so much?
-
@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.
about a year ago from web-
@toksyuryel Make your software database agnostic if you can. That way people can use MySQL if they want.
-
@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).
about a year ago from web-
@toksyuryel Why not? You could just have two versions of every function. One that uses the roundabout MySQL way, and the other that uses PostgreSQL. Or something.
-
@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.
about a year ago from web-
@toksyuryel That's why it's so popular and widely supported I guess.
about a year ago from web-
@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.
about a year ago from web-
@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)
about a year ago from web-
@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.
about a year ago from web-
@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.
about a year ago from web-
@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."
-
@ceruleanspark I think another problem is that the database system can have TOO MANY features. If you're doing anything beyond simple calculations within the database there's probably something wrong. (this is me talking with what little experience I have)
-
-
@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.
about a year ago from web-
@toksyuryel Going back to your original question, you shouldn't be putting programattic logic in your database.
-
@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.
about a year ago from web-
@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.
-
-
-
-
-
-
-
@toksyuryel The whole deal is, even if MySQL is terrible as you say, there's plenty of software out there that uses it, so server admins install it on their servers because their users need it. When new software gets written, the devloper goes, "let's see what my target audience is using." If the target audience is "anyone" then the obvious choice is MySQL. If however, the target audience is companies, then sure, go with Postgres, because they're likely to be running a VPS anyway. The problem is targeting only companies severely limits the amount of developers that will get involved with improving your software, unless it's so holycrapamazing that every company wants to use it. (Even then, companies aren't exactly known for sharing improvements, are they?)
-
@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.
about a year ago from web
-
-
-
-
@toksyuryel You won't have a successful project if your users can't install it. Just saying.
-
@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)
about a year ago from web
-
-
-
-
@toksyuryel MSSQL would be the Internet Explorer of databases though, right? MS can't seem to do anything to standard.
-
@widget Oh man. I once tried to use that thing. Never again.
about a year ago from web -
@widget Hilariously even MSSQL is better than MySQL.
about a year ago from web-
@toksyuryel That's a joke right? MySQL at least works.
about a year ago from web
-
-
-
-
-
@toksyuryel Who develops Postgres anyway?
-
@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.
about a year ago from web
-
-
@toksyuryel Especially considering a number of hosts only My.
-
@widget *only offer MySQL.
-
-
-
-
-
-
-
-
-
-





