Discourse is a barrier to discourse


  • Discourse touched me in a no-no place

    Lookie lookie, post bodies aren't showing up again.



  • high-five?



  • Is anyone surprised?

    Also, since I'm on mobile, I can't actually see any of the invisible posts.



  • How the hell do they keep reintroducing this bug?


  • Discourse touched me in a no-no place

    Stupidity?

    If you watch fast, you can see the content of your post, then it disappears.

    Edit: and apparently editing brings it back?

    Edit again--and then it disappeared after a second edit.


  • Discourse touched me in a no-no place

    This post is deleted!


  • Community Server might have been an ancient piece of shit, but even it wasn't this incompetent.



  • Particularly when you post stuff and can't see it or its replies.

    Example (hopefully this eventually goes through):






  • FoxDev

    Good to see the Discourse forum software is so good, it saves everyone from the turgid monotony of reading forum posts


  • Banned

    It has to do with Unicode chars in the code path somewhere. We only see it on sites that go crazy with Unicode, but it is an incredibly annoying bug.

    (One other instance reported it and confirmed the posts with Unicode seemed to trigger it.. We have never seen it on many of our other high volume sites.)


  • Banned

    A very frustrating bug, have tried a lot here, going to add a pile more logging tomorrow to try to catch the exact bit that is failing and exact process.


  • BINNED



  • Not too many Discourse instances in Asia yet then? If it's heavy Unicode that's vanishing posts, places like this http://www.mobile01.com/ wouldn't last long.




  • ♿ (Parody)

    I've rebaked some posts around here (that Java is the new C thing and some status posts) so some of the invisible stuff isn't any more. None of those had any obvious unicode.



  • I'm curious as to how putting something in one post can affect other posts. Something's fishy about the diagnosis.


  • Garbage Person

    Well, you see, the engine preserves state!


  • Banned

    Something in the global pipeline is getting into a weird state. We suspect deep Ruby weirdness, and remember Unicode was bolted on to Ruby..


  • Discourse touched me in a no-no place

    Clearly Ruby was ready for a Unicode-based monstrosity of a forum!


  • Banned

    I suspect somehow either v8 or nokogiri and kicked in to a pathological broken state. I put protection around v8, but need to repeat that around nokogiri.



  • Just take a hammer to it, base64 encode all message content while it gets shipped around.

    Also, view source shows the code is reversed (Chrome) (Start from the bottom and work your way up). . . so either that's a view source bug, and/or it's probably related to your issues here.

    {"topic_id":3926,"highest_post_number":21,"last_read_post_number":null,"created_at":"2014-10-12T21:22:06.826Z","category_id":10,"notification_level":null}]);
            PreloadStore.store("topic_5112",{"post_stream":{"posts":[{"id":158542,"name":"Used to be in the tier above","username":"FrostCat","avatar_template":"/user_avatar/what.thedailywtf.com/frostcat/{size}/10166.png","uploaded_avatar_id":10166,"created_at":"2014-11-23T03:28:27.248Z","cooked":"<p>Lookie lookie, post bodies aren't showing up again.<\/p>","post_number":1,"post_type":1,"updated_at":"2014-11-23T03:28:27.248Z","reply_count":1,"reply_to_post_number":null,"quote_count":0,"avg_time":28,"incoming_link_count":0,"reads":54,"score":47.0,"yours":false,"topic_id":5112,"topic_slug":"discourse-is-a-barrier-to-discourse","topic_auto_close_at":null,"display_username":"Used to be in the tier above","primary_group_name":null,"version":1,"can_edit":false,"can_delete":false,"can_recover":false,"read":true,"user_title":"5% Poster","actions_summary":[{"id":2,"count":2,"hidden":false,"can_act":true,"can_defer_flags":false},{"id":3,"count":0,"hidden":false,"can_act":true,"can_defer_flags":false},{"id":4,"count":0,"hidden":false,"can_act":true,"can_defer_flags":false},{"id":5,"count":0,"hidden":true,"can_act":true,"can_defer_flags":false},{"id":6,"count":0,"hidden":false,"can_act":true,"can_defer_flags":false},{"id":7,"count":0,"hidden":false,"can_act":true,"can_defer_flags":false},{"id":8,"count":0,"hidden":false,"can_act":true,"can_defer_flags":false}],"moderator":false,"admin":false,"staff":false,"user_id":110,"hidden":false,"hidden_reason_id":null,"trust_level":3,"deleted_at":null,"user_deleted":false,"edit_reason":null,"can_view_edit_history":false,"wiki":false},{"id":158545,"name":"♦","username":"aliceif","avatar_template":"/user_avatar/what.thedailywtf.com/aliceif/{size}/9320.png","uploaded_avatar_id":9320,"created_at":"2014-11-23T04:01:39.763Z","cooked":"<p>high-five?<\/p>","post_number":2,"post_type":1,"updated_at":"2014-11-23T04:01:39.763Z","reply_count":0,"reply_to_post_number":1,"quote_count":0,"avg_time":40,"incoming_link_count":0,"reads":53,"score":12.4,"yours":false,"topic_id":5112,"topic_slug":"discourse-is-a-barrier-to-discourse","topic_auto_close_at":null,"display_username":"♦","primary_group_name":null,"version":1,"can_edit":false,"can_delete":false,"can_recover":false,"read":true,"user_title":"‮ Badge edirrevO tfeL-ot-thgiR","reply_to_user":{"username":"FrostCat","avatar_template":"/user_avatar/what.thedailywtf.com/frostcat/{size}/10166.png","uploaded_avatar_id":10166},"actions_summary":[{"id":2,"count":0,"hidden":false,"can_act":true,"can_defer_flags":false},{"id":3,"count":0,"hidden":false,"can_act":true,"can_defer_flags":false},{"id":4,"count":0,"hidden":false,"can_act":true,"can_defer_flags":false},{"id":5,"count":0,"hidden":true,"can_act":true,"can_defer_flags":false},{"id":6,"count":0,"hidden":false,"can_act":true,"can_defer_flags":false},{"id":7,"count":0,"hidden":false,"can_act":true,"can_defer_flags":false},{"id":8,"count":0,"hidden":false,"can_act":true,"can_defer_flags":false}],"moderator":false,"admin":false,"staff":false,"user_id":922,"hidden":false,"hidden_reason_id":null,"trust_level":3,"deleted_at":null,"user_deleted":false,"edit_reason":null,"can_view_edit_history":true,"wiki":false},{"id":158546,"name":"updated the Auto-Like script","username":"ChaosTheEternal","avatar_template":"/user_avatar/what.thedailywtf.com/chaostheeternal/{size}/1776.png","uploaded_avatar_id":1776,"created_at":"2014-11-23T04:07:19.886Z","cooked":"<p>Is anyone surprised?<\/p>\n\n<p>Also, since I'm on mobile, I can't actually see any of the invisible posts.<\/p>","post_number":3,"post_type":1,"updated_at":"2014-11-23T04:07:19.886Z","reply_count":0,"reply_to_post_number":null,"quote_count":0,"avg_time":36,"incoming_link_count":0,"reads":53,"score":12.2,"yours":false,"topic_id":5112,"topic_slug":"discourse-is-a-barrier-to-discourse","topic_auto_close_at":null,"display_username":"updated the Auto-Like script","primary_group_name":null,"version":1,"can_edit":false,"can_delete":false,"can_recover":false,"read":true,"user_title":"","actions_summary":[{"id":2,"count":0,"hidden":false,"can_act":true,"can_defer_flags":false},{"id":3,"count":0,"hidden":false,"can_act":true,"can_defer_flags":false},{"id":4,"count":0,"hidden":false,"can_act":true,"can_defer_flags":false},{"id":5,"count":0,"hidden":true,"can_act":true,"can_defer_flags":false},{"id":6,"count":0,"hidden":false,"can_act":true,"can_defer_flags":false},{"id":7,"count":0,"hidden":false,"can_act":true,"can_defer_flags":false},{"id":8,"count":0,"hidden":false,"can_act":true,"can_defer_flags":false}],"moderator":false,"admin":false,"staff":false,"user_id":589,"hidden":false,"hidden_reason_id":null,"trust_level":3,"deleted_at":null,"user_deleted":false,"edit_reason":null,"can_view_edit_history":true,"wiki":false},{"id":158554,"name":"the Adequately Skilled","username":"ben_lubar","avatar_template":"/user_avatar/what.thedailywtf.com/ben_lubar/{size}/1076.png","uploaded_avatar_id":1076,"created_at":"2014-11-23T06:15:50.063Z","cooked":"<p>How the hell do they keep reintroducing this bug?<\/p>","post_number":4,"post_type":1,"updated_at":"2014-11-
    


  • There's U+202E in there.



  • I guess the point is - things get fucked up when the right to left user title is encountered.


  • Banned

    If I had a repro I would be able to fix this quite easily, the issue is that the repro seems to be

    1. Do stuff involving unicode in topic titles or bodies
    2. Shake divining rod
    3. Blank posts for everyone

    Best I can do now is just add more and more logging


  • Discourse touched me in a no-no place

    @codinghorror said:

    http://andre.arko.net/2013/12/01/strings-in-ruby-are-utf-8-now/

    The silly thing is, that (and the things it links to) are not even the most broken parts of Ruby's string handling. There's something really noxious in there. The part I know is it tries to keep strings in the originating encoding and then gets confused when you concatenate two strings in different encodings, which can happen easily and makes for weird problems when the built-in encoding guesser picks different things on your test host from your production host.

    But that's actually a basic operation: concatenation is just about the most basic string-modifying operation you can have. If that's fucked up, what else is wrong under the covers? What sewer monsters lurk behind that u-bend? :( (Encodings are hard. Anyone tell you otherwise? They're mistaken or lying.)


  • Banned

    Go http://blog.golang.org/strings and .NET got this stuff way more right. This whole mess started cause Ruby had to retrofit this stuff in 1.9 as opposed to building it clean. It curse of backward compatibility, in retrospect I think they should have just broken compatibility here.

    I really hope matz gets this solved properly in Ruby 3.0. That said mutability of strings is also a huge issue in Ruby that makes a huge class of optimisations far more complex (if achievable at all)

    Overall I agree, strings are probably the weakest part of Rubies design.

    Back on topic, I added yet more logging to try and catch where this is coming from, we will isolate it, it will just take a while.


  • Discourse touched me in a no-no place

    @sam said:

    Go http://blog.golang.org/strings and .NET got this stuff way more right. This whole mess started cause Ruby had to retrofit this stuff in 1.9 as opposed to building it clean. It curse of backward compatibility, in retrospect I think they should have just broken compatibility here.

    The big step is going from “strings are a sequence of bytes” to “strings are a sequence of characters”. Everything else follows from that one.

    There's still the craziness of Unicode normalization — which is what those people linked to up-thread where really complaining about, without knowing what a can of worms it is — but that's nothing like as bad as cocking up concatenation or other basic operations; those sorts of things have effects that can really hit home and peculiarities of Ruby's strings can make those abstractions leak rather far. (If some Unicode committee member, or their student, tells you it's all easy, punch them on the nose from me with a good conscience.)



  • Go has strings as sequences of bytes.


  • Discourse touched me in a no-no place

    So what does it do when it has strings coming from multiple locations with different encodings that it wants to merge and manipulate? A classic example of this is where you've got the code doing a little bit of web serving, running on a host with one encoding, with web clients using another encoding (because they often do) and maybe a database with data in a third encoding (perhaps because it was copied over from some old system). This sort of thing is a very real scenario.

    Pivoting everything through normalized (NFC) Unicode, encoded as UTF-8, would be a very good answer indeed. (Alas, you can't always use NFC or even always normalize at all…)



  • @dkf said:

    So what does it do when it has strings coming from multiple locations with different encodings that it wants to merge and manipulate?

    It's Go. It probably just fucks it up beyond all recognition.





  • China got 70000 Unicode characters? US only got 100 something chars(a-zA-Z0-9 and some symbols)?

    WTF is that about?





  • Respect, the guy found a cure for autism



  • Why would you want to cure autism?

    <for those who don't know, ben_lubar is autistic>


  • Discourse touched me in a no-no place

    @ben_lubar said:

    Why would you want to cure autism?

    Well, perhaps you would prefer the ability to communicate in the usual way.

    Or perhaps you would prefer to understand body language.



  • @FrostCat said:

    Well, perhaps you would prefer the ability to communicate in the usual way.

    Are we not doing that right now?

    @FrostCat said:

    Or perhaps you would prefer to understand body language.

    Are you saying I don't understand the difference between

    and
    ? Because if I didn't, I wouldn't still have a face.



  • it is possible that @ben_lubar is part of this movement. which make sense considering that they try to promote tolerance and acceptance to something that probably will not have cure any time soon.



  • That article led me to this article:

    I think this forum has a thought disorder.



  • @ben_lubar said:

    I think this forum has a thought disorder.

    and thats only the parts that I followed

    unicode -> china --> jerry seinfeld --> autism --> cure --> body language -->Autism rights movement --> picture of cats --> Derailment(thought disorder)



  • @ben_lubar said:

    I think this forum has a thought disorder.

    Probably needs a new computer.


  • Discourse touched me in a no-no place

    @ben_lubar said:

    Why would you want to cure autism?

    Mild autism? I wouldn't. Severe autism, such as that of a son of some family friends? Definitely, as it is completely incapacitating for him. (OK, he's blind as well. Some people get shit cards in the game of life.) And by cure, I mean getting him up to somewhere close to the level that you're at.



  • @dkf said:

    But that's actually a basic operation: concatenation is just about the most basic string-modifying operation you can have. If that's fucked up, what else is wrong under the covers? What sewer monsters lurk behind that u-bend?

    And this is the one big reason I reject Ruby as a language -- how do you hose string handling up this badly? You can write a better string class in C++, for crying out loud!

    Never mind that redoing the innards of strings to be Unicode without creating a byte-string type is a bad idea...



  • Today I learned Ruby is old enough to have back-compatibility issues, which surprised me since I'd never heard of it until 4 - 5 years ago.


  • Discourse touched me in a no-no place

    @mott555 said:

    Today I learned Ruby is old enough to have back-compatibility issues, which surprised me since I'd never heard of it until 4 - 5 years ago.

    There were a whole group of scripting languages that were developed at nearly the same time (to within a few years). Perl, Python, Tcl and Ruby are all in that group. Lua is a little newer IIRC.



  • @dkf said:

    There were a whole group of scripting languages that were developed at nearly the same time (to within a few years). Perl, Python, Tcl and Ruby are all in that group. Lua is a little newer IIRC.

    Apparently not really (I was a bit curious about this):

    • Perl: 1987
    • Python: 1991
    • Lua: 1993
    • Ruby: 1995

    For me, I knew of Lua before Ruby, maybe even before Python.

    (Src: Wikipedia)

    Edit: Tcl was 1988


  • Discourse touched me in a no-no place

    @ben_lubar said:

    >Well, perhaps you would prefer the ability to communicate in the usual way.

    Are we not doing that right now?

    Sure. Have you ever seen someone deeply autistic, who can't communicate by voice, or has a distorted voice like deaf people, or can't even talk at all? Wouldn't you consider giving up that difficulty? I'm not saying you should be forced to, but wouldn't you like the opportunity?

    @ben_lubar said:

    Are you saying I don't understand the difference between

    No, but maybe a milder form of that. You remember how every once in a while on Big Bang Theory, they joke about how Sheldon doesn't understand emotion? One of the key signs of Asperger's is a deficient or missing ability to read posture, tone of voice, and so on. It's a lot easier getting through life if you don't have that problem, is all I'm saying.


  • Discourse touched me in a no-no place

    @Monarch said:

    it is possible that @ben_lubar is part of this movement

    I've heard of that, and I will never understand it, any more than I understand "the deaf culture" and people who refuse things like cochlear implants for their children because they insist on limiting them. You ever see video of a little child who's been deaf from birth and who got a cochlear implant? It's basically the same expression as an adult who lost all hearing and then got one.


Log in to reply