Discord



  • Okay, I'm about to start a new forum project, written in Haskell. I'm looking for volunteers. I'd invite @tar, but he just did his own and is probably bored of forums. But, what did you learn from it?

    My plan is to have:

    • Yesod-based server application layer/JSON server
    • Postgres database
    • A sensible MVVM framework on top
    • Bootstrap for responsive layout (but I'm open to suggestions if there's a slicker looking one)

    What does the Daily WTF actually want from a forum?

    • Markdown
    • Pagination options, by user
    • Badgers
    • Mushrooms
    • Categories
    • Not stupid slow
    • Consistency in the UI (I'll probably need help with that)
    • Notifications

    I'll get started with the scaffolding and trivial model building, but I'll need more information/features to target soon.



  • @Captain said:

    Markdown

    pls no



  • What do you suggest instead?



  • HTML with automatic paragraph/line break insertion that doesn't fuck up tables and lists.



  • @Captain said:

    What does the Daily WTF actually want from a forum?

    There's a topic here in the migration category with a big list of stuff. I'm on mobile poor I'd link out for you. It's a wiki topic.



  • Okay, that's do-able with xss-sanitize. I can probably even find an editing widget that does safe tags.



  • @Captain said:

    Haskell

    @Captain said:

    Yesod

    @Captain said:

    Postgres

    @Captain said:

    MVVM framework

    @Captain said:

    Bootstrap

    Well, it's less insane than Discourse, so :thumbsup:

    I'm going to write one in .Net, with a MSSQL database, and jQuery.



  • @Captain said:

    What does the Daily WTF actually want from a forum?

    A new tag cloud to attack?



  • @Captain said:

    written in Haskell

    @Captain said:

    I'm looking for volunteers

    @Lorne_Kates said:

    I'm going to write one in .Net, with a MSSQL database, and jQuery.

    That's something I could get behind, though getting an user base might be hard with a not-quite-Linux language and a proprietary database.



  • @Captain said:

    Markdown
    Never. go with ben's idea.
    Notifications optional email please. I don't want more shit clogging up my junk mail.



  • @Captain said:

    written in Haskell

    You're crazy.



  • But in case you're going to do this anyway... Feature request: tracking unread status for each post individually, not just the latest read post in topic. In case I have 600 unread posts in 1200-post topic and someone mentions me.



  • @ben_lubar said:

    HTML with automatic paragraph/line break insertion that doesn't fuck up tables and lists.

    and does text entry in a standard textarea augmented with buttons that can surround selected text with <b></b>, <i></i>, <a href=""></a> and so forth, while a separate wysiwyg live-preview window shows you how your post will actually render once posted.

    Discourse actually gets this right except that the edit buttons insert idiot Markdown garbage instead of HTML tags (except when they don't) and the previews often don't work right.



  • @DogsB said:

    Never. go with ben's idea.

    I think you have an extra period in there.



  • @Captain said:

    What does the Daily WTF actually want from a forum?

    Imagine Discourse, but less shit, and not developed by a team run by an egomaniac.
    Definitely no toasters.



  • @Gaska said:

    But in case you're going to do this anyway... Feature request: tracking unread status for each post individually
    Here's an alternatecomplementary idea: make a "read later" queue. Something to which I can manually add ranges of posts that would otherwise be considered read.



  • I'm a very forgetful person. If it wouldn't be automatic, I would probably have no use of this feature.



  • I was about to say something witty about you been a delightful old codger but you're right. One of the better features of this forum is that it remembers where you are in the thread.

    *edit
    I think maybe adding a follow button for a thread to add it to a reading list would be a nice feature instead of magically following threads and no easy way to individually mute individual threads from the unread screen.



  • Yeah, poor communication there. What I meant was this:

    Forum keeps track of what you've read automatically, much like Discourse already does (except when you enter a thread it sends you to the oldest unread post by default).

    There is however a button you can push to say "hey, I've seen this, but I haven't actually read it, because TLDR or I'm drunk at the moment or whatever, but it looks interesting". These posts are sent to a read later queue. Sort of like bookmarks, but more transient.

    Meh, maybe a "mark unread" button is enough.


  • Winner of the 2016 Presidential Election



  • Btw: :thumbsup: "Dischord"



  • @flabdablet said:

    and does text entry in a standard textarea augmented with buttons that can surround selected text with <b></b>, <i></i>, <a href=""></a> and so forth, while a separate wysiwyg live-preview window shows you how your post will actually render once posted.

    For hackers here code+preview has some advantages, but non-technical folks would probably prefer wysiwyg editor widget, so I think eventually it should be possible to switch between these styles.



  • Let the feature creep begin!


  • Winner of the 2016 Presidential Election

    @Captain said:

    Consistency in the UI (I'll probably need help with that)

    This sentence immediately makes you a better developer than Jeff

    @flabdablet said:

    and does text entry in a standard textarea augmented with buttons that can surround selected text with <b></b>, <i></i>, <a href=""></a> and so forth, while a separate wysiwyg live-preview window shows you how your post will actually render once posted.

    But pressing ctrl+B a second time should just close the tagstrong text



  • @Zecc said:

    Forum keeps track of what you've read automatically, much like Discourse already does (except when you enter a thread it sends you to the oldest unread post by default).

    When you enter a topic, Dicksource sends you automatically to the oldest unread post, but I have not found a way to go to oldest unread post after I get into the topic in a way that doesn't do it like notification or link to specific post or similar.



  • @Bulb said:

    When you enter a topic, Dicksource sends you automatically to the oldest unread post

    Not really, no. The lists of topics usually link to the oldest unread post, but that's not the same thing.

    Trying going to a thread via discosearch, for example.

    There's no /t/current-title/1000/first-unread, even though it's been asked before. /t/current-title/1000 sends you to the first post.



  • @Zecc said:

    @Bulb said:
    When you enter a topic, Dicksource sends you automatically to the oldest unread post

    Not really, no.

    That's what I was saying too:

    @Bulb said:

    but I have not found a way to go to oldest unread post after I get into the topic in a way that doesn't do it like notification or link to specific post or similar.



  • @Jaloopa said:

    pressing ctrl+B a second time should just close the tag****strong text

    This idiotic style application antipatternstrong text comes from Discourse making no distinction between preparing to type some styled text and applying style to existing text. Clicking a styling button or pressing a styling hotkey when the current text selection is empty should insert a single tag, not a matched pair: an opening tag if the style concerned is not already active, or a closing tag if it is. Unbalanced opening tags can be auto-closed, and unbalanced closing tags deleted, when the post is submitted.



  • why not just fork something?



  • @Zecc:
    Btw: :thumbsup: "Dischord"

    Shit. That's a silent 'h' apparently.

    @Gaska:
    You're crazy.

    I have my reasons. I am an experienced Haskell developer and have used it to create large, fast, RESTful applications. There are a few reasons this works out.

    1. Yesod is pretty fast.
    2. Yesod has "typesafe URLs", which means the app can't make make bad links internally.
    3. The compiler can derive JSON representations of concrete types. No messing around with parsers or emitters.

    This all means the app server is pretty much just there to glue the database to the MVVM layer, plus giving authentication and other services (many of which are already written). The development cycle should be pretty fast.



  • @Captain said:

    I have my reasons.

    Joker had his reasons too.



  • @Kuro said:

    Filed Under: the list has become so big! :appreciation.mov:

    @PJH said:

    VIM plugin for using the forum inside vim (fbmac)

    Perhaps not in the way you intend...:laughing:



  • I like Haskell, too, and all, but I don't think we need YAFS.



  • @pjh, @boomzilla:

    What do the admins want out of a forum?



  • No it sends you to the post after the newest read post. We really need a way to go to oldest unread post.



  • I like the ability for users to do more than simply flag something. Discourse fails this too as you cannot add any commentary when you flag as inappropriate or off topic or whatever. It goes against Jeff's authoritarian moderation style of course.

    Discourse gets close with the interface for jeffing posts, except that if you say to select a post and its replies, you cannot automatics automatically select the replies to the replies. Typical half assed implementation. I opened a ticket back in the day but nothing has come of it yet.


  • Discourse touched me in a no-no place

    @Captain said:

    What do the admins want out of a forum?

    Users that don't require moderation....



  • @PJH said:

    @Captain said:
    What do the admins want out of a forum?

    Users that don't require moderation....

    Discord.Settings.EnabledSignupForm = FALSE


  • sockdevs

    @PJH said:

    Users that don't require moderation....

    and while we're at it a bucket of gold per day



  • @Captain said:

    Shit. That's a silent 'h' apparently.

    No, you're correct. It's discord without an h. I typoed.

    Both Discord and Dischord have hits on google, which is a shame.



  • @Scarlet_Manuka said:

    @DogsB said:
    Never. go with ben's idea.

    I think you have an extra period in there.

    And some extra words. Let me FTFY:

    Never Go.

    :)



  • @Gaska said:

    tracking unread status for each post individually, not just the latest read post in topic.

    @Zecc said:

    maybe a "mark unread" button is enough.

    This — um, these. Seriously, except that the tracking was all done client-side, which wouldn't work these days with people browsing from multiple devices, USENET got this stuff right 40 years ago, ffs. How is it that modern forum writers miss something so obvious.

    Filed under: Writing a forum without having used existing forumsfora



  • @HardwareGeek said:

    forumsfora

    Both forms are correct.



  • @Gaska said:

    @HardwareGeek said:
    forumsfora

    Both forms are correct.

    assert ($latinPlural > $englishPlural);             // :)



  • I ninja'd the topic title to fix my typo. It was 'dischord' originally.


  • Discourse touched me in a no-no place

    @Captain said:

    > @Gaska:You're crazy.

    I have my reasons. I am an experienced Haskell developer and have used it to create large, fast, RESTful applications. There are a few reasons this works out.

    The problem is that Everyone Knows™ that Haskell is impossible to code in without a PhD in abstract math, so no amount of evidence to the contrary will convince them. The Yesod code I've seen is actually pretty readable, but no one will even look at it.

    From my quotes file:

    cmccann: C++ is dual to Haskell in a sense: it's much too hard for the average programmer to use safely, but they do anyway with disastrous results; whereas Haskell isn't actually that difficult to use but people don't even try



  • Well, it sounds like the admins would be willing to give it a look when I have something tangible. Let's see how fast the development cycle really is. Let's see how fast the server is.

    News coming soon. I'm finishing writing a book today, so I might have a few hours to pound a model out this afternoon.



  • @Captain said:

    I ninja'd the topic title to fix my typo. It was 'dischord' originally.

    Despite being a TL3 who can edit titles, I can't see its history. Because Discourse.



  • @Captain said:

    I ninja'd the topic title to fix my typo. It was 'dischord' originally.
    I propose discochord.com. And it's available!



  • I like Markdown. Maybe put a little selector in the editor view that lets you choose between BBCode, HTML, Markdown but definitely not a mixture of them.


Log in to reply
 

Looks like your connection to What the Daily WTF? was lost, please wait while we try to reconnect.