More Proof that Discourse Sucks



  • Was watching this totally random video and Jeff Atwood's name got mentioned:

    Programming is terrible—Lessons learned from a life wasted. EMF2012 – 1:06:44
    — tef ebooks



  • "This video does not exist".

    Riveting stuff, truly.


  • Discourse touched me in a no-no place

    "This video does not exist".

    A++++. Would watch again.



  • @russ0519 said:

    Was watching this totally random video and Jeff Atwood's name got mentioned:

    https://www.youtube.com/watch?v=csyL9EC0S0c&list=RD5GpOfwbFRcs&feature=player_detailpage#t=1749

    FTFY



  • So I guess yet another WTF. Discourse tries to put in a youtube video, but somehow fails horribly, but doesn't let the user know that it failed. Good job, Jeff.



  • @russ0519 said:

    So I guess yet another WTF. Discourse tries to put in a youtube video, but somehow fails horribly, but doesn't let the user know that it failed. Good job, Jeff.

    More Proof that Discourse Sucks

    Well, you got what you wished for.



  • Nah - it's actually very clever. There is a media filter that passes the youtube clip through some NSA-grade voice analytics and discerns whether the clip is taking the piss out of Jeff. If it is, then instant 404.

    I'm impressed!


  • Banned

    Hmm, is this a deep time link to a YouTube playlist (a collection of videos)? Not sure if we support that, or at least, this is the first time I have seen it tried.


  • Banned

    Pasting that URL into Safari on iPad doesn't work either. I get dropped into the beginning of this video

    Programming is terrible—Lessons learned from a life wasted. EMF2012 – 1:06:44
    — tef ebooks

    So ¯\_(ツ)_/¯


  • Considered Harmful

    @codinghorror said:

    Hmm, is this a deep time link to a YouTube playlist (a collection of videos)? Not sure if we support that, or at least, this is the first time I have seen it tried.

    The problem is probably that the user doesn't know that that's what they're doing, nor are they doing it intentionally. That drops it from a "power-user" feature to a luser feature.


  • Discourse touched me in a no-no place

    @error said:

    That drops it from a "power-user" feature to a luser feature.

    Hmm, I'd rank it as a “power luser” feature.



  • @codinghorror is a terrible programmer? That is how far I watched



  • Here's the transcription of the relevant bit of the video (29.08 - 31.01):

    [Speaker:] Now, I don't mean to go back to Internet bloggers, but another Internet blogger recently wrote an article called "Why are you learning programming for fun?".

    "Do you realise programming is serious business?
    How dare the Mayor of New York go out and learn programming?
    There's so many things to learn, and so many things to do!"

    It's like... maybe it was fun for them? Maybe they're enjoying themselves?
    And maybe that's actually how you got into it in the first place,
    you hypocritical bastard.

    [Applause]

    That's Jeff Atwood. I've got many more opinions about Jeff Atwood,
    none of them flattering.

    [Audience member:] How many of them are fit for public consumption?

    [Speaker:] In summary, he is a terrible person.

    OK, I'll tell you a little story about Jeff Atwood. Jeff Atwood wrote on his blog, saying: "I'm writing a website, and the business usecase is filtering HTML, and I have to understand this in order to run a successful website. There are libraries, written by people who understand HTML, and parsing, and all of the other bits involved, but if I use the library for my code, I wouldn't be doing my core business practice of rewriting strings."

    So, he published his algorithm, and people broke it, and he published it again, and people broke it, and then after a month of people telling him to do it the way all of the libraries already do, he kind of... grudgingly... took their advice, and now what he says is:

    "Now I've gone through this learning experience, none of you have
    to do it. You can all use my library. You don't have to do this in the
    first place."

    With no hint of irony.

    He's a terrible programmer.

    But really, if you're going to tell people off for learning, and playing, and exploring, you're a bad person, and I hate you.


  • Banned

    This article:

    And this article:

    If you want to make an omelette, you gotta break some eggs.


  • ♿ (Parody)

    @codinghorror said:

    If you want to make an omelette, you gotta break some eggs.

    When people say this, they break the eggs, but you never get an omelette.


    Filed Under: Venezuela is running out of drinking water



  • @boomzilla said:

    When people say this, they break the eggs, but you never get an omelette.



  • While the second post is, frankly, a serious case of TDEMSYR (if we stop trusting libraries, we're gonna end up coding in assembly), I kind of agree with the first one.

    Call me an elitist, but I really thing programming is not for everyone. You need a certain mindset, a way of thinking which can't really be taught or learned. I've seen otherwise brilliant students in my high school struggle with the simplest programming tasks, just because they couldn't grasp* the concept.

    They knew all the commands by heart, but simply couldn't divide the problem into pieces small enough to be understood by the compiler. And all the "let's all start coding" initiatives are invariably going to piss off the God-knows-how-many percent of general population which simply don't get it.

    And the fun part is - you really don't need to learn to code. If coding is fun for you, then sure, go ahead, crack some Project Euler or SPOJ problems and have a good time. But if you start treating it like US geography or classic literature - as something that you hate, but it's shameful to admit you know nothing about it - give it a rest. There are people who do it for you, and better.


    *I'd use the word "grok" if I didn't hate it so much it sounds like nails on a chalkboard to me.



  • @Maciejasjmj said:

    But if you start treating it like US geography or classic literature - as something that you hate, but it's shameful to admit you know nothing about it - give it a rest. There are people who do it for you, and better.

    Is anyone really saying that though? I've never heard of it before. Of course not everyone needs to be able to code, but if someone wants to try it seems a bit unnecessary to keep them from trying or shame them for wanting to.

    Besides, I don't know US geography or classic literature, and it's never hindered me one bit (though that might be because I'm not American).

    Edit:
    @Maciejasjmj said:

    I've seen otherwise brilliant students in my high school struggle with the simplest programming tasks, just because they couldn't grasp* the concept.

    And I doubt this, because I've been dabbling around with programming since I was 10, and I certainly didn't understand a thing when I was 10. Or 15. Or even 20! I probably still don't understand quite a lot, but I'm reasonable-ish at programming now, and I certainly wasn't 15 years ago. It's not all that innate. I just kept at it because I liked it.

    I've seen otherwise brilliant people struggle with the simplest programming tasks, because they've never had to program before that so they don't know how to think like a programmer yet. Of course it's a mindset but it's acquirable, certainly to an extent.


  • Banned

    @marinus said:

    Is anyone really saying that though? I've never heard of it before

    Oh yes, there are many people who would put "coding" right next to "reading, writing, and math".

    It is like nails on a chalkboard to me.

    Exposure is good, but coding as important as reading and writing? No way in hell.



  • It seems like Mr. Video Person just misunderstood you at least on blog post #1, then.

    On the other hand, what's wrong with the Mayor of New York wanting to learn how to program? Sure, he doesn't need to, but can't he try new things? If he had wanted to go rock-climbing, would you've expected pre-eminent rock climbers denouncing him for trying? ("But it's dangerous! And he doesn't need to, to get to his office. And a politician should have more important things on his mind!")



  • @marinus said:

    Is anyone really saying that though?

    Sometimes less directly, sometimes more. I wonder how many parents read an article about how programming is one of the best paying jobs, and were like "hey kid, you're sitting before them computers all day long, why don't you learn this programming thing and make me some money for my retirement?"

    @marinus said:

    And I doubt this, because I've been dabbling around with programming since I was 10, and I certainly didn't understand a thing when I was 10. Or 15. Or even 20! I probably still don't understand quite a lot, but I'm reasonable-ish at programming now, and I certainly wasn't 15 years ago. It's not all that innate. I just kept at it because I liked it.

    I've been writing my first BASIC programs when I was five, on one of these things, using a German reference manual as my only teaching aid. You got nothing on me, kiddo.

    Seriously though - some people just stop dead in their tracks right in the beginning. In high school, maybe two or three people had previous experience with coding - all the others were totally fresh. After two years, to half of them it was one of those "free As", and the other half had to rely on the first one to provide them with "teh codez" to even barely pass. (And no, it wasn't laziness. They tried).

    @marinus said:

    Of course it's a mindset but it's acquirable, certainly to an extent.

    A friend of mine teaches Cognitive Science students basic AI. Now, cognitive science as taught there is basically a load of philosophy, psychology and linguistics with only some "science-y" science sprinkled here and there. So naturally, it attracts people who are into liberal arts, humanities, this kind of stuff. (We call them "humanists" here - not sure if there's a term in English).

    One of the topics was simple neural networks (a few perceptrons connected together, nothing very advanced). When she explained it to me or other CS students, we all got it in five minutes with no prior knowledge. When teaching, she spent an hour drawing diagrams, going through the same stuff over and over, explaining in the most basic terms imaginable - all to blank stares from 90% of the group and significant boredom from two or three people who just got it the first time.



  • @Maciejasjmj said:

    (We call them "humanists" here - not sure if there's a term in English).

    Yes, in the Netherlands we call those "alfastudenten" (or "alfa's" for short). Math, CS, physics etc. is "beta's"*. So I think I know what you're talking about.

    [quote="Maciejasjms, post:21, topic:714]
    One of the topics was simple neural networks (a few perceptrons connected together, nothing very advanced). When she explained it to me or other CS students, we all got it in five minutes with no prior knowledge. When teaching, she spent an hour drawing diagrams, going through the same stuff over and over, explaining in the most basic terms imaginable - all to blank stares from 90% of the group and significant boredom from two or three people who just got it the first time.
    [/quote]

    I remember when I was taught neural networks for the first time, in the first year of university (for CS). It was quite easy and everyone thought so, but on the other hand, we

    • were interested in these kind of things,
    • had all been programming and reading about such stuff for years before actually starting university,
    • had learned all the necessary math for this in the first and second semester.

    Furthermore, I've found that when you start talking to people (no matter what kind) about technical stuff, they just tune out. Most just don't have any kind of interest in it, so they don't care, and if you don't care you won't pick this up.

    I've had a few 'alpha'-like courses, and every time it was the same story: here's some words by a famous person, stamp them in your head, and when the exam is over you can forget it again. If that's the way you're used to thinking about things, then no, you won't ever actually grasp anything. And even that is not in itself a bad thing, but it is if you jump into a group of people who've always been taught in this manner, and then you try to make them actually understand something, they don't.

    They're not inferior people, that's not what I'm saying. But if a) all you've ever had to do was regurgitate famous people's opinions, and b) in your field of study there's not really such a thing as an objective truth to begin with, and c) they're not in the least interested in knowing anything about such a "nerdy" endeavour as making a computer do something, then they're going to be really ill-prepared and unwilling if you suddenly try to teach them neural networks.

    *) and something that's neither 'alpha' (humanities-ish but a bit more restricted) or 'beta' ('real' science) becomes 'gamma' (like women's studies etc.)


  • Banned

    @Maciejasjmj said:

    After two years, to half of them it was one of those "free As", and the other half had to rely on the first one to provide them with "teh codez" to even barely pass. (And no, it wasn't laziness. They tried).

    Has definitely been observed before, with the same half/half phenomenon



  • Do you memorize all your blog posts so you can pull them out whenever, like some other people do with XKCD comics?


  • Discourse touched me in a no-no place

    @marinus said:

    They're not inferior people, that's not what I'm saying.

    You're missing an opportunity then…



  • @Maciejasjmj said:

    Call me an elitist, but I really thing programming is not for everyone. You need a certain mindset, a way of thinking which can't really be taught or learned.

    Sorry, but I'll have to dive in and call bullshit on this. Programming is problem solving, algorithmic thinking, breaking a problem down into a sequence of steps. There's nothing special or magical about it, if you can work out how to open a microwave and "cook" some prepackaged food, you can program.

    You don't necessarily become good at it, but you've increased your set of life skills by learning.
    @codinghorror said:

    but coding as important as reading and writing? No way in hell.

    In some ways, maybe even more so. Like reading, writing, and basic math, problem solving is a life skill, and it pays off everywhere. Learning to read and write only /directly/ teaches you to communicate. Learning to solve problems, to understand mechanisms, teaches you something that can be used everywhere. It's an absolutely necessary thing.


  • Banned

    @tufty said:

    In some ways, maybe even more so.

    I think "generic problem solving" is just as important as reading and writing. But ... "programming" is not the only way to get this skill.

    You can get it by playing choose your own adventure, maths, building lego and a myriad of other activities.



  • Programming is not the only way to get problem solving skills, true. But it is one of the very few things that formalise those skills, that teach problem solving in a structured way.

    As to why so few people manage to grasp it, I think much of this is down to the way we teach, in general. We don't teach people to learn, we teach people to remember, to make lists. Great for teaching history, or even elementary level maths, not so great for higher maths or programming. You know what we need to do? Get woodwork teachers to teach programming.



  • @codinghorror said:

    http://blog.codinghorror.com/programming-is-hard-lets-go-shopping/

    This is a very interesting article. It could explain why

    [code]some code here
    Some Text.
    some more code here
    Some more Text.[/code]

    will get you this:
    some code here
    Some Text.
    some more code here
    Some more Text.

    I would call the editor of a forum software a core business function. So I assume that it was done inhouse, since codinghorror seems to embrace Joe Spolsky's advice of "If it's a core business function – do it yourself, no matter what."

    Don't get me wrong - I am a great fan of re-inventing the wheel myself, and for many of the reasons stated, but especially for the "learning" effect.

    But I also share the proposition that software developers should "write whatever software they deem necessary to perform those [core business] functions extraordinarily well."

    This editor is a good example of a core business function developed inhouse but not developed extraordinarily well.

    Edit: WTF??? The formatting with BBCode's [code] works well in the preview window but not in the article??? Why do I have a preview window, if it doesn't show me what the finished post will look like?
    Ok, sanitized sample:

    '''some code here'''
    Some Text.
    '''some more code here'''
    Some more Text.

    Please think of the single quotes as being backticks (`).


  • Discourse touched me in a no-no place

    @faoileag said:

    Edit: WTF???

    Imagine the fun I had when composing this, then.



  • @faoileag said:

    Edit: WTF??? The formatting with BBCode's [code] works well in the preview window but not in the article??? Why do I have a preview window, if it doesn't show me what the finished post will look like?

    You want the best bit? Discourse goes to the effort of running a fucking javacript interpreter server side in order to try and get identical results from the preview window and the server-ajax-browser mangled result. And it still fails.



  • @tufty said:

    You want the best bit? Discourse goes to the effort of running a fucking javacript interpreter server side in order to try and get identical results from the preview window and the server-ajax-browser mangled result. And it still fails.

    Everytime you think you've gauged the distance to the bottom, someone lowers the floor...

    Come one, the preview window is a div, the post is a div. Parse the input into sanitized html, display that html in the preview pane. Send the generated sanitized html to the backend. Store it. Load it. Display sanitized html in post div.

    What's so difficult about that?


  • BINNED

    @tufty said:

    You want the best bit? Discourse goes to the effort of running a fucking javacript interpreter server side in order to try and get identical results from the preview window and the server-ajax-browser mangled result. And it still fails.

    Fun. On the other hand, I use 2 separate interpreters, one in JS and one in PHP and they manage to produce the same output.

    Then again, I use mustache, not the apparent insanity that is markdown.


    Filed under: yes, I know mustache is not used for the same purpose as markdown, pedantic dickweedary shields UP



  • Server-side is the only place that makes sense. If you accept and store stuff from the client "as is", you're gonna get pwnt, and given the bang-up job Jeff and his team of crack smokcoders have done on the rest of Discourse, I wouldn't trust them to sanitise my telephone, let alone potentially hostile html fragments.

    Oddly, what they are doing is more or less the right thing, if you insist on having a live preview. Exec-ing client-side javascript on the server and still failing to get correct rendering is a big 'ole wtf, of course (it would smell a lot of WTF even if it gave correct results, to be honest), but the "preview on the client, then finalise on the server" approach is sound, as long as preview is important to you.



  • @tufty said:

    Server-side is the only place that makes sense. If you accept and store stuff from the client "as is", you're gonna get pwnt

    Valid point, so let me re-phrase the workflow I suggested:

    Send the input to the backend to parse/sanitize it, receive sanitized html as return value of that ajax-call, display received result in the preview div. Submit only differs from step before in that the sanitized html is also stored. Load it. Display sanitized html in post div.

    If an ajax-call on every "change" event is too expensive, offer an "create preview" button.

    @tufty said:

    Exec-ing client-side javascript on the server and still failing to get correct rendering is a big 'ole wtf, of course (it would smell a lot of WTF even if it gave correct results, to be honest)

    True. Since you will never have the same Javascript interpreter server side as the user has front side.



  • @marinus said:

    Yes, in the Netherlands we call those "alfastudenten" (or "alfa's" for short). Math, CS, physics etc. is "beta's"*. So I think I know what you're talking about.

    Kinda, sorta like that.

    @marinus said:

    c) they're not in the least interested in knowing anything about such a "nerdy" endeavour as making a computer do something

    But the point is, they did try to understand, some only for the fact that they needed to pass, some more ambitiously. And they simply failed.

    @tufty said:

    There's nothing special or magical about it, if you can work out how to open a microwave and "cook" some prepackaged food, you can program.

    It's like saying "if you can play Frere Jacques on toy organs, you can be a composer". And to draw this analogy further, programming is a bit like music. Sure, there's a lot of both theory and practice to learn, and most of the skills you need (like dexterity, hearing, etc) are easily acquired - and yet, it's not like everyone can be Beethoven if they try hard enough.



  • @Maciejasjmj said:

    It's like saying "if you can play Frere Jacques on toy organs, you can be a composer"

    No, it's not that at all. what I was responding to was your statement that
    @Maciejasjmj said:
    a way of thinking which can't really be taught or learned.

    And it most certainly can be taught, and learned. People don't just get born with an innate ability to juggle code, they learn it. Some may be more apt than others, but, the bit of my post you didn't quote says that.

    As in music. No, it's not that case that anyone can be the next Beethoven if only they were to try hard enough, but it is the case that the vast majority of people can (and arguably should) learn to at least "get by" on one instrument.



  • @faoileag said:

    True. Since you will never have the same Javascript interpreter server side as the user has front side.

    That sounds like the WTF is in the code being interpreted, or in the way it's being interpreted, rather than it being a bug in the language interpreters.



  • @tufty said:

    No, it's not that case that anyone can be the next Beethoven if only they were to try hard enough, but it is the case that the vast majority of people can (and arguably should) learn to at least "get by" on one instrument.

    Yes, a majority of people can get by on one instrument. And a majority of people can get by in one programming technique.

    But "getting by" is not the same as being skilled. In music, a person who "gets by" might be able to play sheet music and maybe even arrange some passages between one piece and the other, but won't be able to fully and intuitively understand the underlying structure.

    Same in coding. Copying others' code and hacking it together is not really programming, and that's usually the most those people will be able to do.



  • @tufty said:

    That sounds like the WTF is in the code being interpreted, or in the way it's being interpreted, rather than it being a bug in the language interpreters.

    Sorry, my mistake. I somehow got hooked on @tufty said:
    Exec-ing client-side javascript on the server and still failing to get correct rendering

    But of course the server-side interpreter doesn't render. It parses.

    Getting it wrong is then even more of a wtf, because this smells like code duplication. Code duplication that has somewhat drifted apart since code had originally been copied.


  • Banned

    You are triggering some weird edge cases here somehow, we will have a look.

    I also seems to me you are misunderstanding the role of the backtick `

    ```some code here```
    Some Text.
    ```some more code here```
    Some more Text.
    

    You fence blocks, not lines.

    def my_method
       test
    end
    
    ```
    def my_method
       test
    end
    ```
    

    If you want to inline a code sample use a single backtick i am some code typed: `i am some code`

    no idea what bug is causing this rogue markdown to work in preview and fail on final render, there are some subtle changes to the pipeline in the server side render (mainly around avatar lookups for quoting). cc @eviltrout

    I can confirm something super weird is being triggered by bbcode here, for double confusion this is not being triggered on try or meta so I am extra confused:

    [code]some code here
    Some Text.
    some more code here
    Some more Text.[/code]

    ^^^

    [code]```some code here```
    Some Text.
    ```some more code here```
    Some more Text.[/code]
    


  • @sam said:

    I also seems to me you are misunderstanding the role of the backtick <kbd>`</kbd>

    That might be entirely possible, I find it quite hard to remember just what sort of markup can be used where to what effect in Discourse.

    That said, if some markup actually requires to stand alone, i.e. that you can't use three backticks followed by code directly, that there has to be a newline, does not help.

    make is like that (in a way). But make is old.

    An online editor in the year 2014 should be more tolerant. Much more tolerant.


  • Discourse touched me in a no-no place

    @faoileag said:

    That might be entirely possible, I find it quite hard to remember just what sort of markup can be used where to what effect in Discourse.

    Let me link to this.

    Again.

    http://what.thedailywtf.com/t/posting-on-tdwtf-101/614

    Is there something that I've missed in that?



  • @PJH said:

    Let me link to this. Again. http://what.thedailywtf.com/t/posting-on-tdwtf-101/614

    Erm... you did only link to it after my code sample.

    And I appreciate that you compiled that post; I have bookmarked it for future reference.

    But no, I haven't read it - not in toto at least, because it is quite long. Compared to this help page at least.

    But that is exactly the point I'm trying to make. I don't want to rtfm just to format a few things in a post.


  • Discourse touched me in a no-no place

    @faoileag said:

    I don't want to rtfm just to format a few things in a post.

    It's not a manual. It's intended to be a short intro to what's different on here.

    And that's about as short as I could get it given the constraints I was under, unless I break the page down into separate topics, one per section, but then everything isn't in one place.

    One thing I would like, and have asked for, is to be able to link mid-topic using anchors. Got ignored again...



  • @PJH said:

    It's not a manual. It's intended to be a short intro to what's different on here.

    Still, it seems it's the only such document around. That's definitely missing in the editor window: a help button.

    It's one of those things I can't understand - not having a help button in the editor is a step back from CS, because that forum software did have one (at least whith front-side comments).


  • Discourse touched me in a no-no place

    @faoileag said:

    Still, it seems it's the only such document around.

    Yup. It was created exactly because there is no documentation of that type for Discourse.

    Having seen the pain that most of us went through at the start of the changeover I thought it needed putting down somewhere before it got forgotten....


  • ♿ (Parody)

    @faoileag said:

    not having a help button

    That's nothing. Guess what the default FAQ doesn't have?

    Hint: Even this post has one.



  • @boomzilla said:

    That's nothing. Guess what the default FAQ doesn't have?
    Hint: Even this post has one.

    Lost. Need more hints. Erm, you don't mean TDWTF Forum FAQ?


  • ♿ (Parody)

    @faoileag said:

    Lost. Need more hints. Erm, you don't mean TDWTF Forum FAQ?

    That's the community effort at providing a FAQ. Here's the Discourse default FAQ. Not even a single question mark on the entire page. 😕


Log in to reply