Once you get past how hard it is to find the thread of conversation, this thing is awesome.
It is basically like chatting accompanied by automatically selected reaction GIFS.
If it were converted to a forum of some sort, you'd basically have an even lower-effort 4chan.
Well, I have been using your app for about 20 minutes now, and it sure does what it is supposed to do. The most annoying thing I have used in a long time!
Sorry guys. The problem was solved by a server restart. I had uploaded the default config.json file from the public Github (https://github.com/AndrewBelt/hack.chat/blob/master/config.j...), realized my error and changed it, but forgot to restart the server.
Regardless of how modern your encryption is, human error will always "fix" that.
The apparent lack of any sort of security practices by the code author should be a signal to the clients of pawnmail [1] that they should find another hosting provider.
It's pretty rational for a proof-of-concept in something as innocuous as chat software to completely ignore security. That doesn't mean the author wouldn't spend time on it for his actual business, the one that generates actual money.
Most people pay attention to the requirements of their specific problem when designing software.
Ehhhh, I don't know... I have lots of proof of concept code that isn't very secure, but have production code that is... Just because a proof of concept isn't crazily secure, doesn't mean that his production stuff is lacking too.
The author doesn't mention hack.chat as a PoC anywhere. Additionally, it's in the same “Projects” section as pawnmail on his website [1]. So yeah, that's not a PoC in my book.
I posted MapChat (idoco.github.io/map-chat) three weeks ago at about the same time of the day and also got tons of traffic from HN.
HN crowd was brutal, and I wasn't really ready for that. People were trying to crash it in so many ways. But the overall experience was really fun :) and I also got some very valuable feedback.
We had the same experience launching a chat on HN last week. Some valuable feedback, but some pretty brutal comments as well, and lots of (failed) crash attemps.
I would understand a markdown format for chat, because it's easy, short and fun. What made you use something as powerful as LaTeX? With great power comes great responsibility, right?
Why would anyone want Markdown in a chat window? No one is sending document-length chat messages with text formatting. That's what email is for. On the rare occasions you want italics or bullets in a chat, you can get close enough with ASCII if whitespace is preserved.
The purpose of the LaTeX support is being able to communicate Mathematics with ease. Markdown is useless for that. And it's hugely useful e.g., when tutoring or holding office hours via chat (or even via Skype -- just typing the formula is usually easier than writing it on a piece of paper or aiming the camera at a whiteboard).
Your second paragraph is a perfect response and answers my question. Thanks. No need to feel defensive, though. Some people really come here with the ability to learn something new. ;-)
The LaTeX support is a brilliant move. The world is full of chat systems, so you need to have a unique feature, and this is a great feature for a particular user group.
Why not? At some point in time someone probably said why do you want a smiley face in a chat window? Now there are lots of "emoji" symbols. Pandoc uses markdown with inline latex, it gives you multiple ways of typing things and it's less verbose to type. Instead of using an equation array in latex, use a numbered markdown list with latex formulae. Skype has it's annoyances too, ever tried to actually communicate "(B)", you get a great beer symbol you likely didn't intend to write.
A subset of markdown is good in my eyes. To avoid the smiley case, just format and display everything including the formatting characters. Similar to how irssi treats _lines like this_, it will underline all of the characters inbetween while preserving the outer '_' characters.
Or allow user filters priority on formatting so you can modify the behavior on your own (I guess you already could with greasemonkey or some other plugin). Even with just a toggle for disabling markdown/latex would let you copy and paste the latex code out to get unformatted text.
> Instead of using an equation array in latex, use a numbered markdown list with latex formulae
That's a plausible benefit if you're editing a document where nice-looking numbering matters (e.g., an email). In chat, if I have multiple equations, I can just do something like:
1. $equation here$
2. $equation here$
I prefer chat to do as little formatting as possible while still providing a way to write Math. Otherwise you end up with unintended formatting, which is hugely annoying (a la (B) in Skype).
> Skype has it's annoyances too, ever tried to actually communicate "(B)", you get a great beer symbol you likely didn't intend to write.
Yeah, but it doesn't change the (B) on the white board I have the camera pointed at, which is the way everyone communicates mathematics via skpy.
I guess my point is that 1. $equation here$ is exactly the markdown for a numbered list and it will give you somewhat nicer formatting/alignment that stands out if you have to scroll back up. Chat is already in the process of changing, look at slack[1]. The whole idea of markdown is that you don't have to do a lot of formatting.
I agree with the unintended formatting but having all of latex can give you unintended formatting too. IMO markdown doesn't have that much formatting. Markdown could be abused but then again look how the latex is being abused on the site already, people put $$\huge ...$$.
Is it ideal to be writing on a whiteboard to communicate your math? From a teaching/tutoring perspective, unless the video is being recorded, you lose the history. Email is nice but it requires a (possibly) long waiting time for a response comparatively.
LaTeX is for presenting mathematical equations, Markdown is for rich text formatting of natural language. There's nothing particularly wrong with Markdown, but it's not really essential for functional chat either. Conversely, chat programs that don't have LaTeX support are useless to me (and a lot of other people).
Markdown "replaces" the parts of LaTeX related to document formatting, but that's precisely the fragment of LaTeX that doesn't hugely matter in the context of chat. Markdown doesn't replace the parts of LaTeX related to Mathematical typesetting, which is the fragment of LaTeX that does hugely matter in the context of chat.
I think the fundamental confusion in Markdown "vs." LaTeX discussions stems from the fact that LaTeX is a system for type setting mathematics, where the emphasis is on the Mathematics part. But people who haven't typeset a lot of Mathematics don't get what the fuss is about.
> Is it ideal to be writing on a whiteboard to communicate your math?
No, it's aweful! Which is why chat client LaTeX support is so much better than the Skype video chat hack, and also why Markdown isn't a replacement for LaTeX.
Yeah look, I haven't experienced the problem, therefore I wonder about the solution. Learning about the problem it solves (i.e., sending formulas to friends for homeworks etc) allows me to understand it. It's quite hard to see problems you haven't had yourself, if you only see the solution, right?
I really like how server.js is setup. Very straight-forward and I would imagine adding features would be pretty easy to build in.
edit: things like storing which rooms users are chatting in using Redis so that you can run multiple instances and balance them. Or persisting the messages to a DB. Or adding processes to download images/bring in website snippets when urls are posted (like Slack).
This is a cool project. Recently, I have had to teach a High School kid some basic science using Whatsapp and found it lacking. Searching on the app stores for a messaging app with Latex support yielded nothing. Already gearing up to roll up my sleeves and build one.
It looks hack.chat is using KaTeX under the hood. We recently added support for environments, but haven't implemented {align} yet. If anyone's interest in helping please see https://github.com/Khan/KaTeX/issues/61.
Probably because Slack has been valued at over $2.5 billion, when it seems (to many people) to be not much more complex than IRC. It is easy to argue that Slack provides value in other ways, but there is definitely a high "hey, I can make that!" factor for many using the tool.
I've thought about this since I first used Slack and decided that they are pretty much (early) Apple (Slack) to Microsoft (IRC), both do broadly the same thing but a tight focus on design (and been fashionable, lets be fair) puts Slack over the top.
That said I still use IRC and will likely do so in the future, lots of open source clients, you can run your own server and you aren't putting your entire history in the hands of a private entity (I'm not the majority).
Also while many of us could create something like Slack the real devil is in the details, getting the UI to the requisite standard, the UX nailed down etc is a lot of work - possibly more than the guts of the clone as you could pull in a bunch of extant systems for that.
I just love how minimal and easy it is. No more waiting for a monolithic javascript front end to load or a "loading pleast wait", no glossy buttons or emoticons or avatars or github sign ins.
It even has IP flood detection by default! Multiple line protection should prevent the flood of ascii penis art and other obscenities.