Fork me on GitHub
#community-development
<
2016-01-14
>
martinklepsch00:01:20

@meow: instead of spreading my argument across multiple documents I chose to try putting it into a single one. While I can deal with your tone please consider how this might have an impression on other potential contributors. Also feel free to copy sections of that document wherever you feel they're most appropriate. I jotted down that pad before I headed out today mostly as a result of some thoughts I had before falling asleep. It was mostly intended to stir up some more serious discussion for investigating matrix, which it did.

martinklepsch00:01:19

Fwiw I originally titled that doc "the case against making our own" but then shifted towards promoting a particular approach.

martinklepsch00:01:53

Just this interaction makes me reconsider my involvement with all this. 😒

cfleming00:01:02

Is there a public Matrix instance we’re playing in? What’s the preferred client?

jaen00:01:33

I couldn't register at the one @ http://clojurians.net

jaen00:01:56

@martinklepsch: FWIW I agree : V

martinklepsch00:01:03

Is there a matrix instance at http://clojurians.net?

cfleming00:01:08

@jaen: So I’m in that one, but I can’t see any more action since I was there on Sunday

cfleming00:01:30

It looks to me like discoverability might be an issue with matrix, much like gitter.

cfleming00:01:40

I wonder if you can link to other channels.

cfleming00:01:36

Vector is react based, nice.

martinklepsch00:01:04

@cfleming: since the UI would be custom we could make pretty nice tools for room discovery I think

cfleming00:01:23

@martinklepsch: Yeah, that sounds like a plan.

cfleming00:01:37

Has anyone taken a look at the Vector codebase?

martinklepsch00:01:42

@cfleming: there was some talk in the Clojure room on matrix today which you should see I think

martinklepsch00:01:57

I got to sleep now. Have fun everyone :)

cfleming00:01:05

No, I’m not seeing that

cfleming00:01:31

Which is a little worrying 😐

martinklepsch00:01:16

I don't see you in that room so maybe you're in the wrong room somehow?

cfleming00:01:09

I’m worried that the federation makes things like this a lot more complex than they might be with a single server.

cfleming00:01:23

(re: earlier questions about the problem with federation)

martinklepsch00:01:40

Try searching for Clojure in the room directory

martinklepsch00:01:31

Good night :)

cfleming00:01:03

Ok, that worked. But now I have two rooms called Clojure, and the original one doesn’t show up in the search.

jaredly01:01:39

@cfleming: pass me a link to the one I’m not in — want to see what happens

be903:01:53

I’m in both rooms now. Interestingly, I can’t see the latter room in the directory

be903:01:17

but the original, #C03S1KBA2:http://matrix.org, appears in search

cfleming03:01:54

@be9: Right. This is the sort of confusion that I worry about with federation.

be903:01:20

well, is the new room coming from another server?

cfleming03:01:15

It’s not clear whether http://matrix.org is a single server or a group of them.

be903:01:31

heh, I think it’s one server

cfleming04:01:41

Just to be clear, I like the idea of federation very much

cfleming04:01:54

I worry about the complexity it introduces in the code and in the UX

be904:01:38

if going for our own client, federation stuff can be swiped under the rug initially simple_smile

be904:01:05

I asked the 2 room question in the #matrix room, maybe they shed some light on it

meow04:01:01

interesting things seem to be happening with #C0GCNE3B3 that deserve a look

jaredly04:01:09

And it can also be our own server, right?

be904:01:03

lol @meow, you’re an inter-channel messenger simple_smile

meow04:01:26

I am on all 198 channels

be904:01:40

good for you. do you follow all of them?

meow04:01:54

if you want to know how to do that easily I posted screenshots to #C0J20813K

meow04:01:09

I follow all of them, yes

meow04:01:23

easier than before when I only followed a few

meow04:01:28

I figured it out

be904:01:47

that’s definitely a usecase to be considered for the future chat client simple_smile

be904:01:09

name it gimme all!!

meow04:01:30

moar meta

meow04:01:46

actually, I'm the cat that ate the mouse

meow04:01:20

here's the secret folks - there is hardly any volume here on slack

meow04:01:28

plenty of lurkers

meow04:01:33

lots of rooms

meow04:01:39

total balkanization

meow04:01:44

how do I know

be904:01:11

that’s to be expected

meow04:01:38

I'm monitoring slack 24/7 and have been for days

meow04:01:46

I'm aware

meow04:01:02

and now its getting easier

meow04:01:07

and better

be908:01:40

a response from the matrix guys: > I think the room directory you're looking at is only on the http://matrix.org server -- and the directory is something not fully finished yet > basically #C03S1KBA2:http://matrix.org is an alias to a specific room id, the other one you can see has the raw ID in the path, no alias > Rooms with aliases appear in the directory, rooms without aliases do not > If you have sufficient "power" in a room you can change the alias, but Vector only allows you to set it at room creation (other clients or a CURL post can change it)

meow08:01:10

I'm available for the next 5 hours. Then I am moving to a new location and will be out of touch for about 10 hours, maybe more.

agile_geek08:01:57

@meow: Good Morning. Sounds like you're a Nomad today?

meow08:01:43

good morning

meow08:01:04

yes - Amtrak

meow08:01:30

How are you, Chris?

meow08:01:05

Was wondering if you could help me with some spreadsheets.

agile_geek08:01:07

So it seems...

agile_geek08:01:42

and challenging this is Salesforce's business model!

agile_geek08:01:40

Is it sad that while I'm reading spreadsheets I'm coding Clojure problem's in my head?

meow08:01:06

whatever keeps you sane

gjnoonan09:01:20

guys the clojurians matrix server is working for me..

gjnoonan09:01:44

Sorry I didn't reply last night, nightmare .. car broke down in the middle of nowhere 😞

be909:01:18

I see that you use the built-in matrix client

be909:01:44

@jaen and me used a separate client, https://vector.im/beta/

be909:01:46

more from matrix room: > alias editing will land very shortly (today perhaps) > be9: vector is still beta, but progressing fast > be9: we'd love for clojurians to use Matrix - please let us know how it goes and we will fix any problems asap

jaen09:01:22

I think that also is vector, but the old Angular-based one.

meow09:01:09

@gjnoonan: I get the "Your connection is not private" page

jaen09:01:09

Self-signed cert, nothing to worry about, it's still SSL.

jaen09:01:25

Unless you don't trust him ; d

gjnoonan09:01:46

Yeah self-signed at the moment until I buy an SSL cert, but since we are testing for now it doesn't matter

meow09:01:22

well, do I trust scoobie

jaen09:01:24

@be9: did you try to connect to the clojurians matrix with the vector from http://vector.im

be909:01:05

I tried yesterday, will try now again

be909:01:09

still no luck > There was a problem processing the response.

be909:01:35

I set https://matrix.clojurians.net as home server and leave https://vector.im as identity server

martinklepsch09:01:41

@gjnoonan: letsencrypt works well nowadays fwiw

gjnoonan09:01:00

It is the client that came with the docker image mentioned above, can sort other solutions as we test

martinklepsch09:01:04

(I don't mind self signed certs either though)

jaen09:01:26

So it's in the trust chain of browsers now?

gjnoonan09:01:26

@martinklepsch: yep that's the plan, just didn't have time to sort due to the car last night lol

be909:01:46

@gjnoonan: http://vector.im is a separate client which just connects to the matrix server you specify

be909:01:56

it's kinda already hosted

martinklepsch09:01:05

@gjnoonan: cool, sorry about the car hope it's not totally broken

dvcrn10:01:51

Just wanted to post these links here about the struggle the reactiflux people had when searching for a new alternative: - https://github.com/reactiflux/volunteers/issues/25 - https://github.com/reactiflux/volunteers/issues/17 - http://www.jordanhawker.com/posts/131477030371 and of course the blogpost from facebook https://facebook.github.io/react/blog/2015/10/19/reactiflux-is-moving-to-discord.html although I'm sure most people here know that story already

dominicm10:01:17

They are worth reading though. simple_smile

dominicm10:01:26

Shame they didn't encounter & evaluate http://matrix.org

shanekilkelly10:01:24

interesting that the list of cons for RocketChat is relatively short and low-severity, but they didn’t go with it. Have we evaluated RocketChat?

jaen10:01:04

It's written in coffeescript, that's con enough for me right there ; d

shanekilkelly10:01:10

particularly given that discords problems around channel management seem to be much more severe than the problems listed against RocketChat simple_smile

shanekilkelly10:01:22

hey, coffeescript’s not that bad simple_smile

jaen10:01:51

Honestly? Of all compile-to-JS options that's the worst one. It's basically just some syntax sugar on top of JS someone made because JS didn't look enough like Ruby. And it'll soon be outdated with ES6 implementing most of that sugar.

jaen10:01:19

But probably the biggest turn-off for me are the insane scoping rules they think are a feature.

meow10:01:51

@shanekilkelly: no, we have not given RocketChat a serious evaluation to my knowledge

meow10:01:00

What does RC have to offer

shanekilkelly11:01:22

well, it bills itself as an OSS Slack clone simple_smile probably worth looking into

shanekilkelly11:01:55

having a play with it

shanekilkelly11:01:46

actually, it does seem very nice

meow11:01:33

@gjnoonan: might be willing to set one up for us

shanekilkelly11:01:09

@jaen: fwiw, I do coffeescript at my day job (all day, every day) and have literally never run into any of the proposed scoping problems. If (hypothetically) RocketChat met all our needs then we wouldn’t need to dive into the CS code?

jaen11:01:14

Well, if you follow the link to "The Problem with Implicit Scoping in CoffeeScript" then the author describes the problem he had in real code. But yeah, I don't have enough RL experience with coffeescript to know how often that pops up in practice and it's mostly my bias against the language - why would I want to use some syntax sugar over proper language if ES5 + something like underscore or ES6 give me most of that sans the Ruby-ish syntax or I can use language that gives me a different useful semantics like Clojurescript or Purescript or Typescript.

jaen11:01:15

But yeah, it certainly a non-issue if there was no need to extend the server, but I'm not sure if that's a good assumption to make; there might be things we're not aware of at the start.

shanekilkelly11:01:37

eh, yeah, I don’t feel to strongly about it. I’m not a super-fan of CS or anything simple_smile I just think every language has it’s problems. If we wrote off a language because of one or two problems then no-one would use clojure for example

shanekilkelly11:01:52

I mean, why use some syntax sugar over Java objects? 😛

jaen11:01:16

Because Java is absolutely horrible to write P ; Javascript is just mildly annoying.

shanekilkelly11:01:20

I take the point though, it’s a less-than-ideal implementation language for one of these projects

jaen11:01:22

But that's just my opinion of course.

jaen11:01:57

It's all about the scale - Javascript, and by extensions Coffeescript, due to their semantics are less than ideal for programming in the large.

jaen11:01:47

But I also take your point - while I don't see much issues with Clojure semantics, I can imagine people writing it off due to absolutely horrible errors compared to, say, Javascript.

jaen11:01:14

But I also kind of buy the "make it a showcase of Clojure/Clojurescript" part of this.

jaen11:01:43

Writing a whole client+server thing would be probably too much, but implementing own client on top of something sounds reasonable.

be911:01:10

well, I've logged in into this rocket thing

be911:01:29

what strikes me first is that the channel list is unsorted

be911:01:19

so there's a zillion of channels and no search capability

be911:01:00

what I like about matrix is that they have modular approach. a distinct server with a clear spec and separate clients

be911:01:18

with rocket we get a meteor app which is all in one

jaen11:01:55

Oh, it's built on meteor?

be911:01:43

it's the most accurate copy of slack interface I've ever seen 😄

shanekilkelly11:01:50

yeah, the lack of search is a bit lame

shanekilkelly11:01:34

⌘F still works of course 😛

be911:01:44

it's also localized, I see the interface in my locale

be911:01:41

rocket seems quite polished

be911:01:00

come join us

shanekilkelly11:01:07

yeah, it’s the closest we’ve seen to a drop-in slack replacement, barring a few minor problems that could easily be fixed

be911:01:40

one big problem: it's mongodb-based 😄

shanekilkelly12:01:31

eh, yeah, depends on one’s appetite for administering mongo simple_smile

rafd12:01:20

but mongo is web scale

shanekilkelly12:01:31

i thought web was mongo scale?

rafd12:01:41

scale was mongo web?

rafd12:01:58

(this is why we need threading)

shanekilkelly12:01:02

“But what _are_ words? we just don’t know”

shanekilkelly12:01:04

yeah, it’s a mixed bag, on the one hand it’s a very faithful recreation of slack, on the other you have the coffeescript/meteor/mongo stack, which is not everyone’s cup of tea

shanekilkelly12:01:30

upside, if we needed to move off slack tomorrow, then RocketChat would work just fine.

be912:01:02

yes, but there's no way to improve it from our side, unless some brave guy wants to get lost in meteor and mongo

be912:01:48

and it has its glitches. e.g. it pretends there are unread messages in clojure channel, however there aren't

be912:01:30

ah, rocket also sports native apps, including mobile

be912:01:32

> Rocket.Chat Native Android Application > Warning: This app is not production ready!! It is under heavy development and any contributions are welcome.

be912:01:46

1st commit was 2 months ago

meow12:01:47

RC claims to have helpdesk killer features - would like to know more about them

meow12:01:19

and video calls - do they have value

meow12:01:59

they say their goal is to become the number one cross-platform open source chat solution

meow12:01:04

that's not my goal

meow12:01:08

is that your goal

meow12:01:26

what is your goal

meow12:01:50

what is the purpose of this channel

meow12:01:06

is that the best purpose

meow12:01:20

what are we doing here

be913:01:36

I think the goal for us could be "have a chat solution we could easily support, which would be convenient for both experienced users and newcomers and probably one we could be proud of as a community" (the last part is about our own cljs client)

meow13:01:08

how often do you see a good discussion like this one: https://news.ycombinator.com/item?id=9624737

be913:01:57

wow, so many unexplored chat solutions!!

shanekilkelly13:01:57

Would we agree that there are now at least two parallel conversations going on in this channel, and it’s getting a bit confusing? 1) building a clojure chat app from scratch (or writing/modifying a client for an existing protocol) 2) evaluating alternatives to Slack

meow13:01:25

perhaps - any suggestions for managing the confusion

meow13:01:26

plus we have discussions going on at #C0J20813K

meow13:01:04

lots of good content dying on the vine at http://mattermost.clojurians.net/clojurians/

meow13:01:23

I leave in 20 minutes

jaredly15:01:05

rocketchat is cool, but meteor has the hard requirement of every client having a persistent connection open, which seems like it would run into real problems trying to support large numbers of people (this page http://joshowens.me/how-to-scale-a-meteor-js-app/ says it starts to fall over at 700 concurrent users). Now, I’d be really interested to know how many slack users are actually connected at any given time… maybe it’s not more than 700? but it just seems like an architecture that’s more prone to problems.

jaredly15:01:45

hmm looks like we have ~600 online right now…

mccraigmccraig15:01:06

there are currently 590 connected members, looking at #C03RZGPG1

jaredly15:01:58

yeah. and the other meteor example they used maxed out @ 400-500 connections...

mccraigmccraig15:01:38

what maxes out ?

mccraigmccraig15:01:58

presumably there isn't a massive amount of traffic on those 500 connections ?

jaredly15:01:58

the meteor framework

jaredly15:01:08

but they’re persistent websockets

mccraigmccraig15:01:45

unless they are actively transmitting or receiving though, those sockets are just sitting there in a TCP select, waiting for an event

jaredly15:01:15

I don’t know what kind of overhead meteor has for concurrent connections, but apparently it’s considerable