Discourse is not TRWTF…



  • … TCoCDCK is.

    I know I've been hating on Discourse since day 11, but it's only just sunk in quite how bad the situation behind it is.

    A quick recap, for those who haven't been paying attention.

    • Discourse went live here on or around 19th May 2014, or, if you prefer, a smidge under 3 months ago.
    • @codinghorror was talking about v1 on the 21st of May, but discosearch is letting me down as to finding the first instance where he or @sam said it was basically ready for v1 release. But it was early on. On June 25, he said it would be in July. Woops.
    • Since it's been here, we've been finding, as a rough guess2, upwards of a bug a day. The Meta/bugs category has over 200 separate threads, and that's just the ones that made it into "bugs". Admittedly, there may be duplicates and non-bugs in that list, but, again, 2.
    • @codinghorror and @sam "left" the forum3 on the 7th of July (getting on for 6 weeks ago), saying, and I quote:

    @codinghorror said:

    We believe most of the major issues are resolved, so we're now closing the door on this chapter of our involvement in tdwtf

    • I don't know how many bugs have been pushed up to meta since then. I personally believe we should have stopped reporting them at that point, but thats me.
    • We have uncovered bugs from the trivial to the extremely serious, from UI4 glitches to XSS attacks. From badly-worded mouseover text to fundamental issues with the approach Discourse uses for updating the browser. And that's ignoring the fundamental "elephant in the room" issue of infiniscrolling as implemented here.
    • Our reward has been scorn, derision, meme posting, and deleted posts5.

    Now, the double-liking issue has shown up another fundamental underlying issue with the way Discourse does things. Click-spam UI elements, and it shits itself6. So the CoCDCK have sorta-kinda-patched the issue of double / negative likes, but done nothing for the underlying issue.

    Updating the software requires massive amounts of memory. It's a known issue, despite it being possible to do the "heavy lifting" once. The workaround is for clients to "get a better hosting package". As @sam says:
    @sam said:

    On our roadmap to handle this better but its really complicated cause we need to amend the asset pipeline a lot,

    As any seasoned developer knows, "on our roadmap" means "won't get done". Roadmap stuff is like those unit tests you keep meaning to write7

    Thats a couple of pretty big issues. Unstable UI, expensive-for-the-client issues that sound like they're due to the fundamental way the update process works. The sort of thing you'd want to fix in a hurry, right? The sort of thing that might trump minor UI borkage or, worse, yet more UI experimentation.

    No. What's important is messing about with Jeff's half-assed heatmaps.

    Discourse isn't going to get better. It's going to get different sorts of broken.

    As a side note, some advice to @sam; you seem to be a pretty decent developer, but you're not doing yourself any favours working for Krusty the fucking Klown. Walking out now might affect your short-term cashflow, but staying there is gonna make you unemployable. Believe me, I've been there, I've worked for creeps like @codinghorror. He doesn't care about good software. He wouldn't recognise good software if it kicked him in the balls. He cares about being right, it's impossible to argue with him. The only problem with that is, he's wrong far more often than he's right, but it's your good name that will go down with the ship, because no matter how it fails, it won't be his fault

    1 - And with a certain amount of justification, IMO. 2 - I'd be able to make this claim with more clarity if CoCDCK development practices didn't involve tracking Discourse bugs using Discourse. 3 - *If only* 4 - I refuse to use the "UX" term - What UX Discourse has can be handily summed up by the phrase "why the fuck did that happen?" 5 - And stickers. Don't forget the stickers. 6 - I am convinced there is *another* security hole in this. 7 - I'm just as guilty as you are - I have a nanopass compiler that has no tests for > 80% of its intermediate languages and transforms. I keep meaning to do tests for them, but, y'know, ain't nobody got time for that, and those passes seem to work, so...

  • BINNED

    I'll cross-post this since I wrote this independent of this thread but it does align with the issue you're discussing here:

    @DoctorJones said:

    Discourse seems to be very unstable for something that is supposedly approaching V1. They keep making so many changes rather than just fixing bugs. I'd hate to write plugins for it if they're going to break you so frequently.

    They seriously need style guides, a wiki and some developer docs.

    My reply to @DoctorJones :


    How could they when Jeff keeps pulling shit out of his ass? Meanwhile, all our requests and complaints have been deemed as "too complicated now, post v1". Two months ago. And now Jeff is mandating changes after the delivery date.

    I'd never develop actual plugins. Not only there's no docs, not only that installing this thing is a royal pain in the ass (even with automatic deployment tools), but the damned architecture is so complex, I don't think the actual devs understand it at this point.

    At some point, someone should've just raised their hand and point them to any article talking about KISS. Oh, wait! http://blog.codinghorror.com/kiss-and-yagni/

    This whole thing is an overcomplicated mess just waiting to fall over. And, as we saw two times now, it does.


    Late edit: I would also like to point out, before anyone brings it up, that my userscripts I keep banging on are partially a joke (Doing it Wrong™ schtick and all), and partially an attempt to fix some of the fuckery that gets inflicted on us here.

    We are, as of now, stuck with Discourse, unless we all decide to either leave, or move to another platform independent of the thedailywtf.com... ummm... "network"? So I try to at least do something with the place. New curtains, moving the table... Not that it fixes the hole in the floor mind you, but I might as well have nice curtains damn it!


  • Discourse touched me in a no-no place

    The really frustrating thing is that they're still working on new features.

    They should have implemented a zero bugs policy months ago if they were really serious about V1, but of course that isn't going to happen.

    I suppose being angry/frustrated about this is futile. It's like fighting the tide. Nothing is going to change because of the stubbornness that we keep encountering. It's satisfying to blow off some steam, but we truly aren't going to get anywhere.

    It's a real shame because Discourse could be a good piece of software if only it were managed in a better way. I can understand an individual wanting to helm a product if said person has a coherent game plan and vision. The problem is that Jeff seems to be all over the place. It's like he wakes up each morning and goes "Yup, I think numbers should be colourised and range from Blue to Magenta today".

    Nobody has enough knowledge to have expert opinions about every aspect of the software. That's why you need a team. At the moment they're sorely missing a UX expert. The whole heatmap debacle will be forgotten next week when the next big thing happens. We should place bets as to what that fuck up will be.


  • BINNED

    @DoctorJones said:

    The whole heatmap debacle will be forgotten next week when the next big thing happens. We should place bets as to what that fuck up will be.

    Categories are stupid. They are a barrier to reading. Instead, there will no longer be any categories, but every user will be able to put labels on posts he cares about, destroying any semblance of order for the users that are not logged in, and extra busy work for those who are. Also, max of 2 labels, because reasons.
    P.S. Clicking Dismiss Unread will clear all the labels

    I have $5 on this. Who's the bookie?



  • @tufty said:

    Thats a couple of pretty big issues. Unstable UI, expensive-for-the-client issues that sound like they're due to the fundamental way the update process works. The sort of thing you'd want to fix in a hurry, right? The sort of thing that might trump minor UI borkage or, worse, yet more UI experimentation.

    No. What's important is messing about with Jeff's half-assed heatmaps.

    I'll have to agree with this. I wasn't following too closely, but I was under impression they were under a feature lockdown and furiously stamping out bugs. This feels like Russians are rushing in and things are falling apart, while you're planning a pointless offensive through Ardennes.

    @tufty said:

    As a side note, some advice to @sam; you seem to be a pretty decent developer, but you're not doing yourself any favours working for Krusty the fucking Klown. Walking out now might affect your short-term cashflow, but staying there is gonna make you unemployable. Believe me, I've been there, I've worked for creeps like @codinghorror. He doesn't care about good software. He wouldn't recognise good software if it kicked him in the balls. He cares about being right, it's impossible to argue with him. The only problem with that is, he's wrong far more often than he's right, but it's your good name that will go down with the ship, because no matter how it fails, it won't be his fault

    Now this is just stupid and makes your real points less relevant.

    @Onyx said:

    How could they when Jeff keeps pulling shit out of his ass? Meanwhile, all our requests and complaints have been deemed as "too complicated now, post v1". Two months ago. And now Jeff is mandating changes after the delivery date.

    I'd never develop actual plugins. Not only there's no docs, not only that installing this thing is a royal pain in the ass (even with automatic deployment tools), but the damned architecture is so complex, I don't think the actual devs understand it at this point.

    IMO rails as a backend might have been the wrong choice. Rails is architected to serve an MVC application from the server. But if you add Ember, now you have another MVC application in the browser as well. I suppose you could simplify Rails to the point of acting as a dumb API, but you still have all the needless architecture hanging around and complicating things.

    Another thing is that Ember.js (as well as other SPA frameworks, like Angular) is just orders of magnitude more complicated than the stuff frontend devs are used to wrangling (eg. jQuery). There's no way to write an effective plugin without learning how to use that framework. And that would take a serious investment of time, not something you can just pick up as you go along (like you could some random jQuery-based widget, for example).


  • Discourse touched me in a no-no place

    @DoctorJones said:

    We should place bets as to what that fuck up will be.

    Reputation.

    New metrics to measure reputations of users! With Colors! And Animations! And !important!


    I'll have §5 on that one...



  • Except instead of Reputation, it's 'DiscoCred'

    You can increase your cred by discussing things, or posting youtube videos of yourself doing disco dancing.



  • On a more serious note, Discourse as a discussion platform does have potential. We can, as a whole, make new topics that are posted to the server, and that other people can see (provided javascript is enabled)

    At it's most fundamental core, it works at the basic level.

    But so does a simple javascript client and signalR.

    The idea isn't bad, but the clusterfuck around it's implementation is a little ridiculous. Even 10 years from now, this application is going to have problems, because it's so dependent on the clusterfuck of shit from this year, that ten years from now I see it growing organically.


  • Discourse touched me in a no-no place

    @Matches said:

    I see it growing organically

    So does cancer.



  • @Matches said:

    The idea isn't bad, but the clusterfuck around it's implementation is a little ridiculous.

    The "idea" is a single continuous page. That is the forum's raison d'être.

    So yes, the idea is bad.



  • @DoctorJones said:

    They should have implemented a zero bugs policy months ago if they were really serious about V1, but of course that isn't going to happen.

    They can't. For a zero bugs policy, you need to have a bug tracking system in place. One that lets you rate the severity of the bugs on a scale from "showstopper" to "minor".

    Then you can sort by severity and fix the severe ones and drop the minor ones (or keep them for v2, v3...).

    Instead they are using Discourse as their bug tracker. And no, this is not dog-fooding, this is doing it wrong. Post-its on a whiteboard would be a better bug tracking system, because those you can group by severity.

    Pretty amateurish.



  • @DoctorJones said:

    It's a real shame because Discourse could be a good piece of software if only it were managed in a better way.

    Right now, I would think that you would need more than just better management. Like a rewrite from scratch of the backend & frontend. They have admitted that much, that spammers have a hard time with Discourse because so codebase is so complex.

    Unfortunately, that also means developers trying to fix bugs have a hard time.



  • But you could use the number of likes in a bug topic to see how severe or high of a priority a bug is for the users and devs and work the list sorting by li— oh.


  • Discourse touched me in a no-no place

    @faoileag said:

    One that lets you rate the severity of the bugs on a scale from "showstopper" to "minor".

    They could create subcategories under bugs...



  • I was going for more of a 'chat room' vibe.


  • Discourse touched me in a no-no place

    @PJH said:

    They could create subcategories under bugs...

    They could, but real bug trackers have multiple dimensions for categorization (e.g., which subsystem(s) does the bug impact?) and DC totally fails on that front. JDGI.



  • @PJH said:

    They could create subcategories under bugs...

    I was about to remark: then why don't they do it??

    But then I thought: would I be honest with the bug categorization for my software, if the bug tracker was public? No.

    One more reason to use a regular bugtracker and either make it private or at least hide the categorization.


  • Discourse touched me in a no-no place

    @faoileag said:

    But then I thought: would I be honest with the bug categorization for my software, if the bug tracker was public? No.

    I've been living and working in that space for a couple of decades: the only time I redact a bug is if it involves something that I must not distribute (e.g., users' data, a critical security flaw). It's usually not a problem.


  • :belt_onion:

    @Matches said:

    Reputation

    They already have that. They call it "trust level" though. From on of their automated pm spams that happens when you get something flagged on meta.dicsourse

    Multiple community members flagged this post before it was hidden, so please consider how you might revise your post to reflect their feedback. You can edit your post after 10 minutes, and it will be automatically unhidden. This will increase your trust level.

  • :belt_onion:

    @faoileag said:

    because those you can group by severity

    PSH! They rate them by # of likes!!

    Oh wait, they took out the likes count on the topic list.
    FAIL :(


  • :belt_onion:

    @ChaosTheEternal said:

    But you could use the number of likes in a bug topic to see how severe or high of a priority a bug is for the users and devs and work the list sorting by li— oh.

    damn hanzo.



  • @darkmatter said:

    damn hanzo.

    @algorythmics said:

    Like a ninja in the night, Hanz M., AKA Hanzo, stalks across Hesse University’s Dresden campus. The go-to man in the IT department, he fixes the messes that others leave behind. These are his stories.

    ...

    glory be to hanzo.



  • @tufty said:

    TCoCDCK

    I don't understand this abbreviation, I am going to feel silly just like the person asking what TDEMSYR meant in the old forums, but maybe in the same way, my admission of stupidity will allow others to avoid making similar admissions themselves.

    It almost makes me like Jesus, only better because I don't expect worship.


    Filed Under: Better than Jesus


  • 🚽 Regular

    The Church of Civilized Discourse Construction Kit

    Source [?]

    Edit: maybe this is the source



  • And thus my elevation to messiah is confirmed.



  • @Zecc said:

    The Church of Civilized Discourse Construction Kit

    Edit: maybe this is the source


    Confirm. For a while I preached salvation through TCofCDCK. I gave up when I couldn't find any followers.



  • You should go to meta.d, you will find many there to convert.


  • I survived the hour long Uno hand


  • BINNED

    What? Automated tools? Tools that are not Discourse?

    What is this sorcery? Burn the witch!



  • Slow day.

    good to know that nothing will go wrong in 986 years time


  • BINNED

    They... they think Discourse will still be here in y3k?

    AHAHAHAHAHAHAHAHAHAHAHA!

    Wait... What... What if they're right?

    I'm gonna be in my closet, sobbing...



  • wait wut.

    And I thought it was a bit ridiculous to be worrying about Y2K38 in the stuff I've done up until now.



  • this thread is now about mocking commits.

    sure is informative and descriptive and appropriate to a business



  • Reminds me of this:



  • @algorythmics said:

    sure is informative and descriptive and appropriate to a business

    I wonder if there are funny comments in the source code too...



  • dafuq is that all about. Wasn't it Jeff who was preaching 'sharing the love'.


  • BINNED

    Wait... what is this?

    <i class='fa fa-heart'></i> {{number topic.like_count}}

    Ok, that would be a heart, followed by the number, now it's

    {{number topic.like_count}}

    What is this element anyway???



  • Something that's some kind of templating language. But as for where it's used, I got nothing.


  • Grade A Premium Asshole

    @cartman82 said:

    IMO rails as a backend might have been the wrong choice.

    It usually is. RoR is used most frequently because it is the new, cool thing to do. It has become a meme now, but Rails doesn't scale. Also, the Ruby interpreter is pretty much shit. They have been hacking it along for years now.



  • I can only see the most recent 250 commits unfortunately, otherwise I would happily trawl through and find all of the things to mock.

    who can fix git for me?



  • What's really funny is that since they're doing polling, there really is surprisingly little reason to use RoR over PHP. There, I said it. I went there.

    They could have built Discourse in PHP and I don't believe it would have been any worse than it currently is.



  • @Intercourse said:

    It usually is. RoR is used most frequently because it is the new, cool thing to do. It has become a meme now, but Rails doesn't scale. Also, the Ruby interpreter is pretty much shit. They have been hacking it along for years now.

    Apparently, it's good if you need to develop something decent (not great) quickly. Kind of like WebForms if you don't want to pay Microsoft. One of these days, I'll make a real rails site, just to see if it's worth it. But that won't be something that needs to be performant and long-lasting.


  • Grade A Premium Asshole

    I have to wonder what will happen when they hit 9.9.99? Will they go to 9.9.99.10? Because they are not even fucking close to v1 by my and most everyone else's estimations.



  • @Onyx said:

    Wait... what is this?

    <i class='fa fa-heart'></i> {{number topic.like_count}}

    Ok, that would be a heart, followed by the number, now it's

    {{number topic.like_count}}

    What is this element anyway???

    That's handlebars "helper". Basically a function that vomits out some html (not exactly html, but close enough). topic.like_count is argument. It probably does the heatmap coloring or something.


  • Grade A Premium Asshole

    @cartman82 said:

    Apparently, it's good if you need to develop something decent (not great) quickly. Kind of like WebForms if you don't want to pay Microsoft. One of these days, I'll make a real rails site, just to see if it's worth it. But that won't be something that needs to be performant and long-lasting.

    RoR is a pretty good RAD platform, for situations like you mention. If it will not see a lot of load, and needs to be performant, then fine. But that really only seems applicable for internal applications. I would never do anything for public end users with it, because what if it is the idea that hits it big? Then you end up in a situation like Twitter (that I still do not understand why anyone fucking uses) where you have to simultaneously scale up, scale out and rewrite tons of code in another language because the Ruby interpreter chokes under high load.



  • @Intercourse said:

    RoR is a pretty good RAD platform, for situations like you mention. If it will not see a lot of load, and needs to be performant, then fine. But that really only seems applicable for internal applications. I would never do anything for public end users with it, because what if it is the idea that hits it big? Then you end up in a situation like Twitter (that I still do not understand why anyone fucking uses) where you have to simultaneously scale up, scale out and rewrite tons of code in another language because the Ruby interpreter chokes under high load.

    I believe the current thinking is "the features are here, ease of use is here, now just to fix the performance and the world is ours." The same as it was 5 years ago.


  • ♿ (Parody)

    @DoctorJones said:

    It's like he wakes up each morning and goes "Yup, I think numbers should be colourised and range from Blue to Magenta today".

    LOL...reminds me of FDR setting the price of gold at breakfast based on lucky numbers.


  • Grade A Premium Asshole

    You mean like when the RoR team got outed for having a script that automatically restarted itself when it started choking, and that script was getting triggered an average of 400 times a day? If we spread those out over a 24 hour period (which is unlikely, and 10-12 hours would be more likely), that means it was restarting the interpreter every ~4 minutes.

    Edit: I will go ahead and correct myself because it was not the interpreter. It was the FastCGI that RoR was using and DHH admitted to it only after Zed Shaw outed him. Here is the link for those interested in the rebuttal.

    http://david.heinemeierhansson.com/posts/31-myth-2-rails-is-expected-to-crash-400-timesday

    Twitter's issues with the Ruby interpreter shitting itself under load are pretty well documented though.

    Edit 2: Here is Zed Shaw's original rant, which in my opinion is more epic than any rant that @blakeyrat has ever put together. ;)



  • they will go to 9.9.100 surely? where is the rule saying that the 3rd value must be 0-99? how would it be different to going from 9.9 to 9.10?



  • @Onyx said:

    They... they think Discourse will still be here in y3k?

    AHAHAHAHAHAHAHAHAHAHAHA!

    Wait... What... What if they're right?

    I'm gonna be in my closet, sobbing...

    I'm pretty sure you won't be in your closet sobbing.

    You might be in A closet. If you are, you probably won't be doing anything other than skeleton-ing.


    Filed Under: Using a hyphen so that it doesn't sound like a weird physical improvement scheme. "Skeletoning, get rock hard ribs and Femurs to die for."


Log in to reply