[1] https://hashnode.com/post/hashnode-looks-pretty-amazing-its-...
Show HN: Orange Forum – Web 1.0 style forum written in Go
121–130 of 178 posts
Re: Show HN: Orange Forum – Web 1.0 style forum written in Go
#122Earlier quoted context omitted.
Then please, show me a performant NodeJS webapp that works with noscript and slow dialup. There is not much personal experience about that since it's a simple on/off comparison. Either it works without scripts on dialup or it doesn't.
Here is one: https://nodejs.org/en/about/ My point is, you can write any kind of app with almost any kind of server-side tech. If you don't like the culture, you may be right, but please be explicit about it.
Re: Show HN: Orange Forum – Web 1.0 style forum written in Go
#123I'd recommend you to use Argon2 instead of bcrypt for storing password. It has won the Password Hashing Competition last year and is the recommended way to store passwords. Bcrypt is not bad but it could be used with insecure parameters while Argon2 does not have insecure parameters. The way you create cookies is also insecure, you should be using crypto/rand instead of math/rand AND rather hex.EncodeToString() the r…
The math/random point is well taken. The hex.EncodeToString() point is a nit. Generate 128 bits of randomness, and then encode it however you'd like. The track record of people trying to get "generate random numbers in the alphanumeric range" isn't great; it's an opportunity to reintroduce bias. Start with a random token of sufficient size, then encode. The Argon2 vs. bcrypt thing is unhelpful. It does not matter wha…
Does it not have the issue that it will silently truncate passphrases beyond 72 bytes? As far as I can tell OP does not check for that and the Go API they use makes no mention of it and was affected at some point[0].
72 bytes is not a very high limit when SEA abugida use roughly as many symbols as western alphabets per word/phrase but each symbol takes 3 bytes (assuming UTF-8) rather than one.
For instance "Gujarati script" is 15 codepoints and 15 bytes but and "ગુજરાતી લિપિ" ("Gujarati script" in Gujarati) is 12 codepoints and 34 bytes.
Even fairly trivial codephases are at risk, XKCD's "correct horse battery staple" is 28 bytes but translated to Gujarati (via gtrans) it's 60.
[0] https://groups.google.com/forum/#!topic/golang-nuts/xLZnuiVo...
Re: Show HN: Orange Forum – Web 1.0 style forum written in Go
#124Earlier quoted context omitted.
You're glossing over the fact that in order to have all of those complicated notification rules that users expect, you have to allow the user to set all of those complicated notification settings. You have to give them the ability to subscribe to threads, set notification preferences for a variety of items (channels, username mentions, keyword mentions, @here mentions, etc), set DND and exceptions, etc.
All of these are small things.
Re: Show HN: Orange Forum – Web 1.0 style forum written in Go
#125Earlier quoted context omitted.
> If it doesn't work well with w3m something is wrong with the site philosophy or execution. Point of clarification: "wrong" according to your moral philosophy about web sites, even if it's one I happen to share.
What's the other sort of wrong?
Philosophically wrong is using technology that limits the web from being what the interpreter expected, as in this example (there's still a rational reason in this case to do it the "wrong" way and it's based on personal morality).
Objectively wrong being trying to make a website out of custard.
Re: Show HN: Orange Forum – Web 1.0 style forum written in Go
#126Earlier quoted context omitted.
The UIs on those three should be dialed back (animation, JS), but Discourse is pretty good otherwise. I've looked at all three: * Flarum had nausea-inducing animation, and now it overrides natural scroll behavior. (Please never do that to users.) * NodeBB had some problems when I was using it. If JS is disabled, even the homepage links don't work. Forums should be server-rendered. * Discourse could be improved by rem…
Then maybe you'd be interested in EffectiveDiscussions, like, item 4 in your list: https://www.effectivediscussions.org (I'm developing it) I have copied ideas from Discourse — so yes it has some of Discourse's features. Plus features from Slack (i.e. chat), HackerNews (best comments rise to the top) and StackOverflow (question-answers) & Disqus (embedded comments). More things you mentioned: It's not PHP (it's Scala…
Re: Show HN: Orange Forum – Web 1.0 style forum written in Go
#127Earlier quoted context omitted.
I guess this is as good a time as any to mention that something like that exists (and to toot our team's work over the years): I started the project years ago and in the last few have gotten really great support from glebm and some others to get it to the point where it's a really lovely, stable, and fast piece of work. We consider it the best Ruby/Rails-based alternative to Discourse out there (as an aside - wewere…
Interesting. Looks as if you're two people developing it (you and 'glemb', right?). Can I ask is this a startup, or is it a side project? (or something else?) What are your long term goals? (Your about page says a lot about the forum software & its features, but nothing about who you are or why you're donig this, e.g. vision & goals.) What about providing hosting? (for people who don't want to / cannot install themse…
There are others working on it as well (much more than I have, or will be) and they're all doing an excellent job.
As far as vision and goals, it depends on what's needed. It's pretty loose for the time being although I could see it maybe changing in the future depending on everyone's circumstances.
No hosting for now, no.
Re: Show HN: Orange Forum – Web 1.0 style forum written in Go
#128Interesting.. Looks sleek.. DLang forum [1] is similarly lightweight and it runs as a newsgroup, IIRC. Source code at [2] and previous discussions on HN [3] [1] http://forum.dlang.org/ [2] https://github.com/CyberShadow/DFeed [3] https://news.ycombinator.com/item?id=3592769
Re: Show HN: Orange Forum – Web 1.0 style forum written in Go
#129Earlier quoted context omitted.
The UIs on those three should be dialed back (animation, JS), but Discourse is pretty good otherwise. I've looked at all three: * Flarum had nausea-inducing animation, and now it overrides natural scroll behavior. (Please never do that to users.) * NodeBB had some problems when I was using it. If JS is disabled, even the homepage links don't work. Forums should be server-rendered. * Discourse could be improved by rem…
Then maybe you'd be interested in EffectiveDiscussions, like, item 4 in your list: https://www.effectivediscussions.org (I'm developing it) I have copied ideas from Discourse — so yes it has some of Discourse's features. Plus features from Slack (i.e. chat), HackerNews (best comments rise to the top) and StackOverflow (question-answers) & Disqus (embedded comments). More things you mentioned: It's not PHP (it's Scala…
I made a personal commitment not to use Facebook's software (React) whenever there are suitable alternatives available, because I don't want to support that awful company in any way, but hope that your project goes well.
Re: Show HN: Orange Forum – Web 1.0 style forum written in Go
#130Earlier quoted context omitted.
> If you count the situations that lead to "No" you'll realize that all the "No" cases can be easily checked for, I think you might be under-counting the "No" cases. I counted at least 30 (and then stopped, with plenty still to go) so I don't think you'll get it in 30 lines of code unless you have some very long lines with rather impenetrable logic.
How did you count 30? Are we looking at the same picture? I counted 9. - channel is muted and message not in a thread the user is subscribed to - user in dnd-mode and there's no dnd-override - this is a @channel mention but @channel mentions are suppressed - message is for a thread user is subscribed to but channel notification perf is nothing - notification preference for device is set to "never" - @here mention but…
Counting paths from the first node to the "NO" node rather than just counting total edges leading to the "NO" node.
Many of the conditions you mentioned are themselves determined based on various other conditions, and/or only triggered if certain paths (but not others) are followed.
> You can check these conditions sequentially and if any of them match, return false.
Not so.
For example, you could have the 'notification preference for device set to "never"', but there are paths through the flow diagram that evaluate to "YES" without ever going through the path that checks for the global device notification preferences.
Therefore if you are just sequentially checking each of the conditions you mentioned, then you'd be returning false (because that one statement matched) instead of true (because the flow should never go down that path).