Total.js Messenger – A small alternative to Slack
totaljs.com
totaljs.com
One thing I wasn't too fond of in this case is that the Download: Source-code link on that page which has a github logo on it, doesn't actually go to a github page if you click it, it goes to a login/sign-up page for Total.JS and looking at the Total.JS github repo. page, this messenger app. doesn't appear to be there https://github.com/totaljs?tab=repositories
http://i.imgur.com/tUteVRV.png
Price seems to be low enough not to matter but I'm not paying if it's not MIT/GPL or any other O.S. license (I'm not saying it isn't, I just can't find it).
Honest question, why is this a benefit?
It's like the word "XML" 10 years ago. Just say some BS about how you're adopting a new XML-based infrastructure for motivating a novel, globally-connected society with Web 2.0 standards compliance, and the managers will let you do what you really want to do.
Total.js's specific usage of "embedded" in this case means it includes 3000 lines[1] of pure Javascript that embeds the entire db engine source code into the project.
As for SQLite... as far as I can tell with Googling, there is no port of SQLite's C code to pure Javascript code that's maintained with popular support. (I found an old 2014 project[2][3] but it doesn't appear to be up-to-date.) Yes, there is a Javascript API[4] to SQLite but that's different from the SQLite engine itself being converted to 100% Javascript.
That's the nuance of "embedded" in Total.js' context. Yes, SQLite is an embedded db but nosql.js is even "more embedded" than that.
That said, whether Total.js embedded js db engine is as high performance and error-free compared to SQLite is unknown.
[1] https://github.com/totaljs/framework/blob/master/nosql.js
[2] 100% Javascript translated from SQLite C source --> https://github.com/lovasoa/sql.js
[3] http://stackoverflow.com/questions/15415076/sql-js-in-javasc...
[4] some Javascript driving a SQLite C Language compiled binary --> https://www.npmjs.com/package/sqlite3
It's not a replacement for a full-blown RDBMS. If you need a database for a multi-user application, you'll probably be better served by something like PostgreSQL. For single-user applications, however, it's quite fantastic.
Edit: Sorry if I sound like "that guy," just offering up some names in case people aren't familiar with them.
More like "Slack Clone that pretends to be open source, but requires you to pay to see the source code"
* Drag-and-drop file uploads. * Paste images from clipboard. * Search previous file uploads. * Video uploads with inline preview.
They're the sort of thing I always find open source solutions never get around to.
The following are for Riot Desktop:
* Drag-and-drop file uploads.
Sure.
* Paste images from clipboard.
Did not work for me but it has been written and will work soon, if it does not already: https://github.com/vector-im/riot-web/issues/1297
* Search previous file uploads.
Dunno, there is a list of a room's files but I don't see a search option. Should be a trivial addition, maybe make a feature request? :)
* Video uploads with inline preview.
Sure, they are rendered in the message window.
https://github.com/vector-im/riot-web/issues/1855 is the issue tracking indexing file uploads. Patches welcome if anyone wants to add this into synapse; it'd be pretty easy and fun (although obviously wouldn't work with encrypted rooms). https://github.com/matrix-org/synapse/blob/master/synapse/re... would be the place to index the file and chuck its contents into the existing full text search tables via something like https://github.com/matrix-org/synapse/blob/master/synapse/st....
My point is that Riot is FOSS, and if folks feel features are missing, please help us implement them O:-)
For example, want to share a screenshot? Hit print screen to capture it, click to the browser, click to the tab, hit ctrl-v to paste, done. Instead of, what, uploading an image to an image-sharing site? I wouldn't even know how to do that at this point.
Squeeze an IRC client into 400x400, and you'll still have plenty of room to read what's going on.
IRC sample (it's not 400x400, but you should get the idea):
http://www.ubuntugeek.com/wp-content/uploads/2010/07/smuxi-0...
Discord sample for comparison:
http://static.filehorse.com/screenshots-mac/messaging-and-ch...
I think there's a lot that could be done to make Discord more desktop real estate friendly. It's one semi-dealbreaker for me too. I can't have one single chat app require almost one whole new monitor.
Talking code in it just downright sucks.
It might have been a little while since I tried.
Discord isn't, right? It's a nicer Skype, if we're talking deployment and freedom?
While excessive dependencies is a problem and a liability, reinventing the wheel is even a bigger problem! NPM is there to solve a problem and when used correctly it brings HUGE benefits in many ways. Listing this as a benefit is clearly not understanding what NPM is for and part of the classical Not Invented Here.
[0]: https://github.com/totaljs/framework/blob/master/index.js
Edit: apparently that's not the right repo… looks like the comments are right that the source code for the messenger app is not on GitHub.
Total.js itself appears to be 15k lines in a single file with no dependencies, built and maintained by one guy (for the most part). Insanity.
Having no dependencies is great, but you need a rather large community of contributors to offset that or you end up with a stagnant undocumented bundle of source code.
But that could happen to any dependency. Arguably, left-pad was the least-worst dependency for "what happened" to have happened.
Some posts say Members / Developers like a full path, but the likes just say "Developers" with a link
In addition the communication "niche" is MASSIVE. Communicate, as humans it's what we do. There's a reason why FB paid soooo much for WhatsApp, yes?
If add-on can make this product something between Slack and (the shitty implement of) FB groups, there's plenty of room for such a thing.
Maybe fax machines make a better technical comparison. Email replaced their intra-company use in a few years. What kept them in use is that they are customer facing. Similarly, Skype and such replaced copper telephone lines for internal conference calls and in many businesses cell phones replaced landlines for intracompany communication and the phone system exists because it is customer facing.
Paid software is great, I don't mind that, but software that you don't own doesn't become legacy. Infrastructures like Linux, Eclipse, Nginx, Java will be legacy, SublimeText and .Net won't.
I should have probably gone for something more "traditional" like Express (to learn proper node), but I have to say that coming from Java/Spring, I felt quite at home with it. Also, learnt a lot about callback hell.
Nice to see they went on with the project and built some stuff on it. Open source looks like the way to go for them, which is a good thing for everyone.
I meant: "Mastodon is to Twitter as TotalJS is to Slack".
:)
is closed source
has only one client
is a walled garden
>Premium Messenger (v2.0.0) needs latest Total.js from NPM +v2.5.0
What does this mean exactly?
Astroturfing?
Minor astroturfing (having real people you know with real HN accounts) rocket you to the front page is pretty easy and hard to detect. It only takes around 5 votes as long as you get them quickly and they're judged to be high quality votes. However if you don't keep getting votes (your post is totally horrible) you will drop off FP fast.
A lighter weight open source alternative to Slack is relevant. Even though it probably makes tradeoffs that people will complain about.