Fork me on GitHub
#community-development
<
2016-01-09
>
cfleming00:01:49

@seancorfield: What’s the main clunkiness that bugs you with mattermost?

cfleming00:01:23

There’s a scrolling issue which seems to be a bug they’re looking into, and code snippets from files are not good.

cfleming00:01:47

Anything else? Everything else seemed more or less up to Slack’s level from my playing around with it.

meow00:01:58

there is no way to reference a #channel in mattermost to, for example, send someone to the #C0744GXCJ channel

meow00:01:32

in mm a #thingie results in a search

meow00:01:06

I think maybe we are getting to the point where we might want to call for a "process check" and figure out how we want to proceed with these evaluations and requirements. We probably should start documenting this stuff for a committee to review at a meeting with bagels.

meow00:01:23

I will vote in favor of the first reasonable suggestion made. If someone creates a wiki page somewhere I will start adding to it, for example. I really don't care as long as we KISS.

meow01:01:28

@martinklepsch: any interest in helping us with https://waffle.io/

meow01:01:56

anyone want to create an org on github to get the ball rolling?

cfleming02:01:43

So… Mattermost is definitely a non-trivial project:

cfleming02:01:50

~/d/mattermost (master)> cloc .
    1037 text files.
    1013 unique files.                                          
     414 files ignored.

 v 1.62  T=10.02 s (61.9 files/s, 18810.9 lines/s)
-------------------------------------------------------------------------------
Language                     files          blank        comment           code
-------------------------------------------------------------------------------
Go                             468          15154          10181          88592
Javascript                      21           9092          11484          34049
CSS                              7             61             79           7983
SASS                            41            545             43           7575
HTML                            49            103              5           1335
JSON                            11              1              0           1027
YAML                            13             21              2            244
make                             1             79              3            240
Bourne Shell                     5             74             42            221
C                                1              4              5             78
XML                              1              0             12             35
                          1              0              0             14
Ruby                             1              5              4             11
-------------------------------------------------------------------------------
SUM:                           620          25139          21860         141404
———————————————————————————————————————

cfleming02:01:37

Just so we have an order-of-magnitude idea of what we’re dealing with

cfleming03:01:17

/me awaiting the comments saying that should be about 50 lines of Clojure

meow03:01:34

468 go files?!?!?!?!

cfleming03:01:45

88kloc is pretty big

cfleming03:01:22

I’ve only skimmed the code, but it looks pretty clean to me

cfleming03:01:54

I’m surprised that the UI is such a small proportion of the code

meow03:01:43

@cfleming: any feel for what the main puzzle pieces are and how that translates to what exists in the land of clojure?

meow03:01:56

might not be an easy question to answer

cfleming03:01:28

@meow: No, I haven’t dug that deep. I’d be interested to see what the data model looks like.

lfn303:01:50

@cfleming: cloc is probably overestimating the amount of go source, if it’s including the godeps folder.

lfn303:01:11

That contains pinned library code.

cfleming03:01:50

Clearly I know nothing about golang

cfleming03:01:55

~/d/mattermost (master)> cloc . --exclude-dir=Godeps
     613 text files.
     602 unique files.                                          
     330 files ignored.

 v 1.62  T=8.38 s (33.3 files/s, 12880.5 lines/s)
-------------------------------------------------------------------------------
Language                     files          blank        comment           code
-------------------------------------------------------------------------------
Javascript                      21           9092          11484          34049
Go                             147           6629            779          26794
CSS                              7             61             79           7983
SASS                            41            545             43           7575
HTML                            47             86              5           1164
JSON                             9              0              0            877
make                             1             79              3            240
Bourne Shell                     2             52             16            159
YAML                             2              1              2             57
                          1              0              0             14
Ruby                             1              5              4             11
-------------------------------------------------------------------------------
SUM:                           279          16550          12415          78923
———————————————————————————————————————

cfleming03:01:11

Still big, but more manageable

cfleming03:01:21

I was going to exclude the test code, but I couldn’t find any

cfleming03:01:31

Is there a common pattern for test code in Go?

seancorfield03:01:02

Bugs around notifications of new messages is my current bug-a-boo https://clojurians.slack.com/archives/community-development/p1452300349000474

seancorfield03:01:11

#clojure on freenode is much smaller then this Slack community and there's a huge overlap in the actual participants. https://clojurians.slack.com/archives/community-development/p1452286608000471

cfleming03:01:44

~/d/mattermost (master)> cloc . --exclude-dir=Godeps --not-match-f='.*_test.go'
     555 text files.
     544 unique files.                                          
     330 files ignored.

 v 1.62  T=8.09 s (27.3 files/s, 11877.1 lines/s)
-------------------------------------------------------------------------------
Language                     files          blank        comment           code
-------------------------------------------------------------------------------
Javascript                      21           9092          11484          34049
Go                              89           4118            530          17724
CSS                              7             61             79           7983
SASS                            41            545             43           7575
HTML                            47             86              5           1164
JSON                             9              0              0            877
make                             1             79              3            240
Bourne Shell                     2             52             16            159
YAML                             2              1              2             57
                          1              0              0             14
Ruby                             1              5              4             11
-------------------------------------------------------------------------------
SUM:                           221          14039          12166          69853
———————————————————————————————————————

seancorfield03:01:01

I'd say there's probably only a small number of folks who are IRC-only (compared to 4,400 here, rather than 700? on IRC).

cfleming03:01:14

That’s my best guess for the size of the prod code

cfleming03:01:28

I hope that some of the JS code is tests too

cfleming03:01:53

@seancorfield: @johanatan: In my experience almost everyone from #C03S1KBA2 on FreeNode is also on here, although some are more active over there.

lfn303:01:04

I think test code is usually in files named *_test.go?

cfleming03:01:32

@lfn3: Yeah, thanks, a quick Google showed that, that’s the last cloc result there

cfleming03:01:46

Sorry to ping you without pinging Google first simple_smile

lfn303:01:05

No problem.

seancorfield03:01:00

FYI I'm away at a cat show right now (and for the whole weekend) so I may be slow to respond. And I'm on iPhone only until Monday.

cfleming03:01:42

@seancorfield: That’s an AFK reason I haven’t heard often.

meow03:01:09

I so want to come up with a bunch of bad jokes right now. Cat show, eh? I don't even want to know...

cfleming03:01:27

I can’t find any test code in the JS, but I’m not sure what it might look like.

lfn304:01:29

@cfleming: I can’t see anything in the makefile that suggests they have test code.

lfn304:01:47

Unless they execute js tests using go somehow.

cfleming04:01:58

I can’t see anything like that.

cfleming04:01:07

They have a manual testing section in the docs

lfn304:01:44

Looks like they baked something into the app to enable testing: https://github.com/mattermost/platform/tree/master/doc/developer/tests

cfleming04:01:24

@lfn3: Huh, interesting

lfn304:01:34

Yeah that was my reaction

cfleming04:01:49

I like the functional testing approach, it’s similar to how the IntelliJ tests work.

cfleming04:01:19

However the IntelliJ tests automatically check the results, here it looks like a user has to.

lfn304:01:05

I guess you could do something with image diffing or something to automate it maybe...

lfn304:01:17

But yeah I don’t think there’s any JS test code.

lfn304:01:46

Oh also, you might want to exclude /web/static/js - it’s library code again

meow04:01:33

@cfleming @lfn3 You guys are awesome!

lfn304:01:23

Thanks, but we haven’t really done anything yet.

lfn304:01:57

Well Colin wrote cursive, so props for that.

lfn304:01:06

876 text files.
     855 unique files.
     419 files ignored.

 v 1.64  T=10.07 s (45.8 files/s, 14454.8 lines/s)
-------------------------------------------------------------------------------
Language                     files          blank        comment           code
-------------------------------------------------------------------------------
Go                             307           9473           8552          53077
Javascript                      21           9092          11484          34049
CSS                              7             61             79           7983
SASS                            41            545             13           7605
HTML                            49            103              5           1335
JSON                            13              1              0           1053
YAML                            13             21              2            244
make                             1             79              3            240
Bourne Shell                     5             74             42            221
C                                1              4              5             78
XML                              1              0             12             35
                          1              0              0             14
Ruby                             1              5              4             11
-------------------------------------------------------------------------------
SUM:                           461          19458          20201         105945
-------------------------------------------------------------------------------

lfn304:01:26

I don’t think it’s counting the .jsx files as javascript

meow04:01:33

You're participating. That's awesome.

lfn304:01:01

And it looks like somehow that included the godeps folder again 😕

meow04:01:18

And, yeah, he did write the plugin that I use every day.

lfn304:01:15

I can’t speak too much for Colin, but this slack channel is the best chance I get to interact with the clojure community, being stuck down in this corner of the world, so I’d really like to make it not go away/better/more clojure.

cfleming05:01:51

@lfn: Here it is with the JSX mapped to JS

cfleming05:01:57

~/d/mattermost (master)> cloc . --exclude-dir=Godeps,web/static/js --not-match-f='.*_test.go' --force-lang=JavaScript,jsx
     555 text files.
     544 unique files.                                          
     128 files ignored.

 v 1.62  T=8.39 s (50.4 files/s, 16089.4 lines/s)
-------------------------------------------------------------------------------
Language                     files          blank        comment           code
-------------------------------------------------------------------------------
Javascript                     223          13574          12278          67644
Go                              89           4118            530          17724
CSS                              7             61             79           7983
SASS                            41            545             43           7575
HTML                            47             86              5           1164
JSON                             9              0              0            877
make                             1             79              3            240
Bourne Shell                     2             52             16            159
YAML                             2              1              2             57
                          1              0              0             14
Ruby                             1              5              4             11
-------------------------------------------------------------------------------
SUM:                           423          18521          12960         103448
———————————————————————————————————————

cfleming05:01:23

The exclude on web/static/js doesn’t work, that option doesn’t accept full paths unfortunately

cfleming05:01:52

Whoops @lfn3 got your handle wrong.

cfleming05:01:21

Ok, this is officially the best guess, I moved web/static/js into /tmp

cfleming05:01:27

~/d/mattermost (master)> cloc . --exclude-dir=Godeps --not-match-f='.*_test.go' --force-lang=JavaScript,jsx
     532 text files.
     521 unique files.                                          
     126 files ignored.

 v 1.62  T=7.94 s (50.6 files/s, 10114.2 lines/s)
-------------------------------------------------------------------------------
Language                     files          blank        comment           code
-------------------------------------------------------------------------------
Javascript                     202           4482            794          33595
Go                              89           4118            530          17724
CSS                              7             61             79           7983
SASS                            41            545             43           7575
HTML                            47             86              5           1164
JSON                             9              0              0            877
make                             1             79              3            240
Bourne Shell                     2             52             16            159
YAML                             2              1              2             57
                          1              0              0             14
Ruby                             1              5              4             11
-------------------------------------------------------------------------------
SUM:                           402           9429           1476          69399
———————————————————————————————————————

cfleming05:01:45

70kloc is still significant.

cfleming05:01:33

I think the most interesting things to see would be their data model and websocket protocol - it’s too sunny out to spend much more time on this now, but I’ll see if there’s anything like that later on.

cfleming05:01:56

Interestingly, there’s no SQL, perhaps it’s embedded in go under model - not sure.

meow05:01:33

enjoy the sun!

johanatan05:01:14

@cfleming: when I poked into Freenode and mentioned the bridge there were several who said that they hated Slack and never use it

meow05:01:22

@johanatan: Have you evaluated the Mattermost IRC bridge? https://github.com/42wim/matterbridge

meow05:01:11

@johanatan: Would be curious to know what you think the best way to handle IRC would be. Any idea why they don't like Slack?

johanatan06:01:03

@meow: I haven't looked at Mattermost (or its bridge) but I think a bridge is the best way to handle it (even if we have to code or tweak an existing one ourselves).

johanatan06:01:13

I think they don't like Slack mostly for social reasons-- set in their ways etc. of course maybe they do use Slack and they were just pulling my leg

cfleming06:01:51

Right, I suspect that a bridge is a pretty low value add because anyone who doesn’t use slack because they hate it is unlikely to use the bridge either.

cfleming06:01:08

@johanatan: Did you ask that in #C03S1KBA2?

meow06:01:59

The Jira bridge might be of interest to core developers: https://github.com/vrenjith/jira-matter-bridge

meow06:01:59

Would be cool to easily go from discussing something about Clojure that turns out to need a ticket filed, to filing that ticket with the Clojure Jira.

meow06:01:23

@johanatan: Is the IRC bridge something we could dogfood now with the mattermost install that we are testing? Assuming that's not a problem for @gjnoonan ?

meow06:01:49

If so, is that something you'd like to set up and test?

johanatan07:01:29

@cfleming: I think you have a fundamental misunderstanding of what the bridge is. See: https://ekmartin.com/2015/slack-irc/

johanatan07:01:43

@meow: I'm not really familiar with Mattermost but for Slack (which I proposed we install it for) it is merely another integration/bot (which only an admin can install).

meow07:01:33

Okay, well I'm not an admin here, only on the test mattermost setup, so that's not something I can help with. And I thought adding the bridge results in noise for regular IRC users when advanced features are used by Slack users, like posting files and such. So I wouldn't want to annoy the IRC folks with that. I was thinking that we could control that with the mattermost setup because there are so few of us over there. But I don't claim any expertise when it comes to this IRC bridge.

meow07:01:38

And maybe those issues have been ironed out already.

johanatan07:01:11

That depends on the bridge implementation. An ideal implementation would dump blobs/txt on one of the many commodity cloud storage solutions and paste only links to such into IRC

johanatan07:01:18

[automatically of course]

johanatan07:01:33

[or at the very least, a reasonable implementation might be just to drop the noise completely]

cfleming08:01:53

@johanatan: You’re right, I thought it allowed you to add Slack channels as separate channels in IRC

cfleming08:01:37

I know there’s a gateway that allows you to do that, which is what I was thinking of.

cfleming09:01:35

Of those, Zulip looks worth a look. In terms of my personal interest in trying to modify/maintain them based purely on the tech stack, Mattermost wins.

meow09:01:18

@cfleming: I think @gjnoonan had trouble installing the Zulip server, iirc

cfleming09:01:58

I’m checking out http://vector.im/beta, which is built on the Matrix protocol

cfleming09:01:42

If anyone wants to join, https://vector.im/beta/#/room/!KUFCIbujaRIuIJDIan:matrix.org is the Clojure room I created

meow09:01:13

I read the whole discussion on HN when mattermost was announced, as well as some of the docs on their site, and I'm comfortable with the resources that are behind the mattermost effort.

cfleming09:01:38

I tend to agree, although I’m worried that it’s not core functionality of the company that makes it.

gjnoonan09:01:44

Yeah matrix really interests me,

cfleming10:01:16

Mattermost is also AGPL, which is incompatible with Clojure.

cfleming10:01:27

i.e. we couldn’t migrate Mattermost into our own implementation.

cfleming10:01:31

That’s a bummer.

gjnoonan10:01:58

Zulip kept throwing exceptions during install process .. Will try again

cfleming10:01:14

Mattermost has the weirdest licence I’ve ever seen

meow10:01:36

okay I'm on matrix and I don't know what to do. I clicked on directory and it lists a bunch of stuff with a bunch of users

meow10:01:11

nevermind

cfleming10:01:28

It says that binary compiled artifacts are released under MIT - what does that even mean?

meow10:01:44

I figured out that I needed to follow your original link after I registered a new account

meow10:01:19

so this is a shared host, is that correct?

cfleming10:01:36

I think so, although servers can be federated

cfleming10:01:48

The protocol is decentralised

cfleming10:01:59

But the UI is not good enough yet

cfleming10:01:42

I have a message saying there’s one new message, but I can’t see it

meow10:01:27

whatever stray bits that didn't quite make it into the compiled binary - you can have those under the MIT

cfleming10:01:30

@meow: Can you see my messages?

meow10:01:45

no, because I'm over here on this tab

cfleming10:01:05

ba-doom tschhhh

cfleming10:01:57

So the Mattermost licence makes it a non-starter to build off, which is a bummer

cfleming10:01:18

If we create a derived work, it’s AGPL, which is incompatible with clojure

cfleming10:01:29

Or with EPL, more concretely

cfleming10:01:48

That probably makes it a non-starter unless we’re happy running their impl forever

meow10:01:27

or unless we create something anew and export/import convert yet again

cfleming10:01:50

Right, but we can’t base the impl on Mattermost

meow10:01:03

not on the code, but on the concept

gjnoonan10:01:05

Ryan rid has done some cool stuff with matrix http://rix.si/blog/

gjnoonan10:01:42

I'm not sure about the idea of running mm forever, it was always meant as an interim

meow10:01:53

not sure how important the code is vs having a well understood architecture and just code from scratch

meow10:01:44

how do you guys feel about trying to do a slack-alike in clojure from the ground up? Not yourselves personally, just assume enough talent volunteers. Do you see it as a realistic project and if so, in what kind of timeframe to be good enough to move away from slack?

meow10:01:20

Say for an Om/Datomic app

meow10:01:59

and I guess we need to say what clients, since there could be web/electron/native

gjnoonan10:01:01

@meow: that has been my intention for many months, even when colin and I were looking at other solutions before

gjnoonan10:01:57

Mike fikes agreed to help with an iOS client, I was going to start on the backend etc

meow10:01:12

ah, ok, good to know

meow10:01:26

then maybe I should simply ask, how can I help?

gjnoonan10:01:01

Not near a computer at the moment so can't create a wiki on clojurians(although I suppose we could use google docs) but we really need to get down our wants and needs :-) since licensing has now fluffed us with mattermost

sveri10:01:33

@gjnoonan: @cfleming did you follow whats going on on #C0J20813K? What do you think of it?

gjnoonan10:01:42

@meow: you've been a big help to me so far, and have some good ideas.. If you could collate things for me so we have something to go on, then that would help massively

cfleming10:01:25

@sveri: I’m not sure. The design needs work for a large community - I don’t see how you can avoid the room concept.

cfleming10:01:36

It’s very rough right now.

sveri10:01:51

True, that doesnt mean it's not doable

cfleming10:01:28

No, it doesn’t.

rafd10:01:00

We could have a seperate client designed around the room concept

rafd10:01:08

same backend, just looks different

rafd10:01:16

room = thread

rafd10:01:21

maaaaybe

cfleming10:01:36

I also have problems with the datomic licence - unless Cognitect are willing to gift us a licence for the community, I’d be wary of building something on top of it.

sveri10:01:04

What keeps me from datomic is that it would be hard for others to get a license, setup something, host a service...whatever. I think the license and the "rumours" about it are a big turnoff

rafd10:01:16

the major complaint with [other open source chat apps] is polish / features... so the solution is... start from scratch?... bc mattermost isn't clojure... how many extensions will we need? maybe we can suck up not being able to write clojure due to licensing issue to fix a few things

cfleming10:01:58

I mean, it’s not like writing JS and golang will poison my eyes

rafd10:01:15

i think a plan could be: (a) stick with slack, (b) have a migration path to mattermost ready, (c) work on our new clojure app(s) and maybe they'll be decent one day

gjnoonan10:01:02

I agree with both, which is I've asked @meow to help collate everyone's thoughts and feelings in this regard, so we're not shooting from the hip and can have a plan, no matter what route we take

gjnoonan10:01:44

As a few people will tell you writing a chat service/app in clojure was less about getting rid of slack, or having to write golang(I do that everyday!) it was more about the premise of community buildings itself, the community coming together and building the tool they need to make the community(eek how meta recursive) and being able to showcase just what we can do with outer language and the community behind it.

gjnoonan10:01:50

It's just the limitations of slack and others have come to light more and more over this past year, but as I said the intention was never to write a slack service in clojure, or even to have a product to sell. It is purely about the community for me.

gjnoonan10:01:39

I know there's things that @cfleming needs that slack don't currently, and not seem responsive to being able to offer. The same Can be said for others who have messaged me

cfleming10:01:40

I think that’s an admirable goal, but my main goal is to have something that works better than Slack, specifically WRT history.

rafd10:01:33

(not to derail things, but perhaps Discourse is worth considering as well... it does real-time updates, open, has history, etc.)

lfn310:01:37

Since discourse is GPL I think we have the same problem as with mattermost in terms of migrating it to clojure.

lfn310:01:45

Just to add one more option to the mix, there’s https://github.com/RocketChat/Rocket.Chat

cfleming10:01:24

Has a bunch of options

cfleming10:01:48

IMO Zulip looks like the nicest, but @gjnoonan had problems installing it

lfn310:01:52

Right yeah. Sorry. I was looking at the reactiflux migration thread.

gjnoonan10:01:42

@lfn3: myself and @cfleming tested out rocketchat, but it was very limited

gjnoonan10:01:21

@cfleming: I will be trying to get zulip set up today, so by time you wake up it should be sorted and we can test :-)

meow10:01:40

got sidetracked and now I'm behind - I really want to raise a concern about this idea that we can just fix a few things we don't like with mattermost

meow10:01:32

I think that's a mistaken assumption. If the main developers haven't fixed them, why do we think we can? Plus, I have no interest in Go.

meow11:01:57

I have a hard enough time understanding the clojure code in libraries that I end up using. And more than a few times now I ultimately decided that the clojure code I was dealing with was hard to figure out because it wasn't all that good and so I rewrote it and ditched the library.

meow11:01:28

And that's in a language I'm actively using every day.

meow11:01:48

How could I possibly work on Go code? Not gonna happen. Not by me.

meow11:01:21

I'm pointing out my own limitations. Go is a perfectly good language.

meow11:01:50

from what I read mattermost is committing to monthly releases and from reading their twitter feed they've been adding features and plugins regularly

meow11:01:15

I would just rely on using it as is and hoping each release gets better

meow11:01:35

I would submit bug reports and such, but I wouldn't touch the code.

meow11:01:09

But maybe we have some go devs in our midst and they can certainly do what they want to do to help.

lfn311:01:31

@meow: Based on my read of things, I don’t think we’re necessarily looking to ‘fix’ anything inside whatever we choose, more we want the option of replacing the server and/or client with a clojure one that we write. And having something we could do that to, and use if the slackpocalypse occurs is the aim? More emphasis on the usable in event of slackpocalyse than we can cut clojure into it.

meow11:01:17

lol - I just now read that @gjnoonan does golang every day - there you go! simple_smile

lfn311:01:55

Anyway, I’m gonna call it a night, good luck with zulip @gjnoonan, and ttyl.

gjnoonan11:01:09

@meow: yeah, outside of clojure I do a lot of devops, so create developer tooling in go ;-) for my sins lol

meow11:01:32

@gjnoonan: Let me see if I can express your vision and the current situation we find ourselves in. Your desire was for the community to work on some kind of app that would benefit the community, which would be its own reward, a language showcase, and recursively feed the feeling of community. So you got us all on Slack so we could "get there" and some of us could work on some app. Then the threat of slackpocalypse arose and finding a solution to that problem got blended into the original vision. But they aren't one and the same.

meow11:01:16

@gjnoonan: did I get that right?

meow11:01:15

Maybe I overgeneralized. Here is what you've got in the readme for the clojurians-chat github repo from 3 months ago:

Readme for clojurians-chat
What is this?
This will become the ultimate chat platform for the clojure community, built by the clojure community. Not only do we want to provide a realtime chat platform, we want to showcase the ecosystem and the tools this language has to offer.

meow11:01:05

I'll get the ball rolling with a wiki page and we can make revisions there. I'm going to separate the development of clojurians-chat from slackpocalypse-recovery with the knowledge that braid is also being developed on its own.

gjnoonan11:01:22

No you didn't over generalise, I just never got chance to expand on the readme and put down what My idea of community is(heck that's a conference talk in itself) I had the idea for creating the clojure community in clojure before slack, but never pursued it. I got us here as I was using it at work and was a member of a few others, seeing how rapidly it grew it reignited my other passions about community building and growth, and made me want to revisit my first idea

meow11:01:56

@gjnoonan: so it kind of sounds like you have an excess of passion but a shortage of available time

meow11:01:06

@gjnoonan: what role do you see yourself playing in this over the next couple of months, like from now to clojure/west - April 15

gjnoonan12:01:33

@meow: you've hit the nail on the head, fortunately time is a resource that is becoming more available 🙂 I wold wear a few hats! I will be sorting architecting and getting the core infrastructure ready, I would also like to speak to @tcrawley some more about what he is currently doing, and see if we can come up with something mutually beneficial to us and clojars. I also expect I would be writing some of the code too :-)

gjnoonan12:01:15

Whether I lead the entire thing or not is very much dependant on what members of the community are willing to do to help, and where their expertise lay

martinklepsch12:01:24

As I think we all agree the UI part of such project is the most important one. By building on something like http://matrix.org we could skip many of the basic aspects like data storage, auth, irc bridge and focus on creating a good experience. I also think in general a standard like http://matrix.org seems support-worthy but that shouldn't matter as much to decision making.

gjnoonan12:01:53

@martinklepsch: yep, I am a big fan of matrix

meow12:01:58

works for me

meow12:01:44

@martinklepsch: no clue why it 404s for you

gjnoonan12:01:50

404 for me also on mobile, will try when I get on the computer

meow12:01:45

@martinklepsch: what client or platform are you on?

meow12:01:55

I'm just using chrome

martinklepsch12:01:03

found the room via the directory now

gjnoonan12:01:08

Later when I'm waiting for zulip to install I might create a simple http://matrix.org Clojure library.. Test the waters

martinklepsch12:01:17

the vector thing is pretty nice

martinklepsch13:01:57

doesn't have nickname autocomplete and emojis but I guess that wouldn't be too hard to build

gjnoonan13:01:24

Yeah very much dependant on client, I guess we'd host a core matrix server and allow clients to collect to it, as well as creating our own

martinklepsch13:01:05

even though we could also consider using the default matrix ones and just providing a few nodes

martinklepsch13:01:30

might complicate discovery of channels but I guess that can be solved in other ways

gjnoonan13:01:15

Yup, all worth thinking about

gjnoonan14:01:18

@meow: Was my answer about my role satisfactory? lol

meow14:01:37

@gjnoonan: Yes. Needed to take a break. And I'm thinking about what my role might be.

gjnoonan14:01:21

I have been thinking about your role too, Not in a bad way..

gjnoonan14:01:50

Just what skills etc you have shown from discussions we've had this week, and how we can use them

meow14:01:06

I have to balance any enthusiasm I have right now against how much time I can commit and what kinds of activities I can sustain over the long haul. Some behavior I can only do in short bursts. I spent the past 12 months working in almost complete isolation on my own personal projects. I can do that. Groups stuff with lots of people and lots of confusion, not so much. I can jump in for a minute, but then I'm spent.

gjnoonan14:01:27

Is that short bursts on greenfield group stuff though, that you can help shape, or when you're thrown into an existing project?

meow14:01:27

I've done almost nothing but greenfield and usually ended up being the one with the "vision" of how it should be.

gjnoonan14:01:51

It would be interesting to hear what you personally can offer though, pm me if you don't feel like it can be said here

meow14:01:20

So it's hard for me to not see an interesting path and want to head that way, bringing along anyone brave enough to follow.

gjnoonan14:01:39

Well I think both our visions are aligned on a few things.. Unless I have mis-read?

meow14:01:27

No, I think they are. But I also have a personal project I'm deep into and in love with.

meow14:01:44

the polygon mesh generation stuff

meow14:01:15

3d printing, virtual reality, mesh operators - totally different domain than this here

meow14:01:45

and new for me so I still have much learning curve to climb

gjnoonan14:01:35

As I've mentioned, I'm very interested in that project also :-)

meow14:01:38

not sure I have the energy to learn enough about matrix or om or any of it to really be useful

meow14:01:55

oh, didn't realize that

meow14:01:44

happy to discuss it with you whenever and wherever appropriate

gjnoonan14:01:10

So much to decide 😕

donmullen14:01:07

@rafd @cfleming: Worth asking. I’ve run production code of just the DatomicPro (limits to one transactor). But for this likely would need a license if we scale up.

donmullen14:01:51

@sveri : Depending on the app (mostly reads) : DatomicPro which is free gets you a long way.

meow15:01:28

I think it would be worth engaging Cognitect in a conversation about this just so they know what concerns we have and have an opportunity to address them. We don't have to ask for special privileges. We could just let them know how we perceive the Datomic option and would they like to make a case for why we should favor Datomic. Or not. At least it gives them a chance. Seems like the polite thing to do.

donmullen15:01:55

@meow: I’m in Durham - I’ll catch up with Stu & Justin in person.

meow15:01:50

@donmullen: oh, excellent

shanekilkelly15:01:28

FWIW, I’m super cagey about building anything on non-OSS technologies, Datomic included

meow15:01:10

@shanekilkelly: I can appreciate that and what we need to do is capture the essence of those (anonymized sp?) concerns in writing and present them to Cognitect and let them respond. Then we present that response to the community for input. Eventually a decision will be made, and it might not please everyone, but if the process is open and fair I think that's the best we can do. All concerns and process suggestions are welcome.

shanekilkelly15:01:07

Mostly because I spent a while in Windows-land where not a day would go by without talk of “licensing”. The notion of needing a license for core parts of the tech hung over everything in a really unpleasant way.

meow15:01:26

I'm sure we will consider Datomic, Datascript, SQL databases, NoSQL, whatever makes sense.

meow15:01:39

Definitely. And licenses can be altered at the discretion of the license owner (IANAL). So if Cognitect wanted to offer to make a special license for this project they could. Not saying they would, but here's what I don't want to have happen. We go and build this thing and it is a spectacular success and it doesn't use Datomic and Cognitect asks us why we didn't consider Datomic and we say, oh, well, we just assumed your licensing would be problematic so we just didn't really even consider you as an option. I would think that's kind of rude.

meow15:01:09

Asking for special privileges would be rudely presumptive, but so would dismissing them out of hand.

shanekilkelly15:01:20

Agreed, definitely should approach them. It would be wrong to just dismiss Datomic entirely

shanekilkelly15:01:10

It’s a bit weird, Datomic is one of the most compelling DBs out there right now, but it’s licencing makes it an instant no-go for so many deployments.

meow15:01:35

Yeah, well. Oracle

meow15:01:52

depends on your perspective

shanekilkelly15:01:09

I mean companies who have a 100% open-source requirement, which I understand is not everyone.

shanekilkelly15:01:44

I can confidently say the last three jobs I’ve worked would not have considered Datomic right off the bat, solely because it’s not OSS simple_smile

meow15:01:43

All I know is that they must be aware of this issue and they have reasons for what they are doing and there is little that will change that.

meow15:01:51

So, not a battle I'm going to get worked up over. We show them what we are doing, see how they respond, make a decision. Minimal drama.

shanekilkelly15:01:34

Whoops, that was supposed to be a :)

meow15:01:58

whoops, that was supposed to be anything but an annoying parrot

meow15:01:36

reactji performance art by yours truly

gjnoonan16:01:55

Massive datomic fan myself, and it will always be a consideration in the stack

gjnoonan16:01:52

I'm out at my daughters dance show, but I'll reply further thoughts when I can

donmullen16:01:45

@meow: @gjnoonan @shanekilkelly - so a write up on the wiki of licensing concerns - and specifically datomic would be helpful - not only in communicating concerns - but in making sure everyone is on the same page as to the specifics of the concerns around this project.

shanekilkelly16:01:45

where is the wiki?

meow16:01:06

And what I would like to do is empower and encourage people to create pages or add to the existing pages. If you have any question, concern, piece of information, anything that you have any confidence in whatsoever, please start contributing to the wiki. Don't worry about formatting and organization. We can sort that out as we go.

meow16:01:56

I can take a mess of information and put it into a usable shape. What I would likely fail to accomplish is to try to capture all of this and create all the pages myself. I started two pages and then my personal life interrupted my efforts here and so I'm struggling to get the time and energy to work on the wiki. I'm sure everyone has similar issues. But each of us has questions, concerns and expertise and so I am asking. No, begging you to please, please feel free to add those to the wiki. It's a wiki for gosh sake. I had pizza with Ward Cunningham years ago. Sweetest guy in the world. Wikis were supposed to empower us to all add our voice, in writing, simply, and easily. Please do so. No harm can come of it. Go make a complete mess of the wiki. It will thrill me to no end. Just do it. It's okay. The only mistake you can make is to not participate. We want your involvement. You are the community. We are the community. It's just us. And we're all pretty nice. If you step on someone's toes, just apologize. No big deal. This is a mosh pit, not Dancing With The Stars. Thank you. You are all awesome.

mfikes16:01:50

I tried an experiment: I logged out of Clojurians on my iPhone. That fixed the issue I’ve been having where every time I start the Slack iPhone client it pauses for about 10 seconds with the UI locked up. I suspect that, even though Clojurians hasn’t hit the 8,462 user limit, it is already big enough to cause severe perf problems for the iOS client (so bad for me it makes its usability questionable).

shanekilkelly16:01:18

I’ve gotten a start on the goals of the project, feel free to update/overwrite: https://github.com/clojurians/clojurians-chat/wiki/Chat-App

meow17:01:44

@shanekilkelly: Awesome. Thank you so much!

solicode17:01:20

@mfikes: I see those long pauses on the iOS client too. Yeah, the number of users may be the issue because I've only experienced these pauses on Clojurians so far.

mfikes17:01:58

I’m thinking about trying another experiment where I leave the CloureScript and Cloure channels to see if that is the root cause.

mfikes17:01:33

(But, of course, you can’t leave the general channel. Hrm.)

mfikes17:01:03

Result: It is still slow after leaving ClojureScript, Clojure, and Om.

mfikes17:01:19

(I’ve nearly given up using Slack on my iPhone—but I still endure the 10-second pain like an idiot.)

martinklepsch17:01:49

@mfikes: having similar experiences on my iPad

shanekilkelly17:01:20

yeah, the iphone client has been pausing for up to a minute after opening (on my phone)

martinklepsch17:01:20

@mfikes: logging out doesn't fix it for a longer period if I understand correctly?

solicode17:01:43

Is this a recent thing? I haven’t been here that long, so I don’t know.

martinklepsch17:01:01

I'm in like 30 channels probably if you're in fewer it's not as bad?

mfikes17:01:14

If I log out of the Clojurians slack on my iPhone, then I’m good. I haven’t sorted whether you actually have to log out, or if you just have to be in another Slack team when you bring it to the foreground.

shanekilkelly17:01:28

Well, it’s only been happening since a day when 1) there was a Slack client update and 2) I joined Clojurians simple_smile so it could be either of those that caused it

martinklepsch17:01:38

@mfikes: not sure I understand, you're good when you log back in again or is that referring to using slack on the desktop then?

mfikes17:01:41

I’ve noticed it over the past month or so if I had to guess.

mfikes17:01:09

If I log back into Clojurians, the problem comes back. (This is all on and iPhone 6.)

mfikes17:01:08

Succinct problem statement: If I’m logged into Clojurians (and switched to that team), if I go use my iPhone for something else, and then bring Slack to the foreground, it works for maybe 2 seconds, and then locks up for 10 seconds.

martinklepsch17:01:19

Ah ok. so while continuing to use Clojurians there's no fix really

agile_geek17:01:01

@mfikes: I don't see any performance problems on Android.

mfikes17:01:38

@agile_geek: that's cool. The iOS devs evidently block the main thread for 10 seconds or so maybe doing network requests.

agile_geek17:01:33

@mfikes yeah, hope that doesn't come across as bragging! I know it doesn't help u much 😉

mfikes17:01:32

@agile_geek: nah. That's good info that it works well on Android. It points to a likely perf problem in the iOS client and not in the Slack service backend.

gjnoonan18:01:03

Many thanks to all of you who are getting involved! I've just quickly scanned the messages since I've been gone, and the wiki and have taken some quick mental notes, unfortunately unable to answer and contribute to some of the above discussions right now but I will later this evening. Thanks again

gjnoonan18:01:48

One quick thing though, are all those listed willing to have their real name attributed on the wiki? So "real name (handle/username)" which still links through? Just a thought. I know from other discussions some in this community prefer their username

seancorfield18:01:54

Mornin' from the cat show. Just been reading back a bit on my phone (so I may have missed stuff). We cannot add any more integrations to this Slack so please stop asking. We're at the limit for the free plan. Unless someone knows Dennis Heihoff @denik and can get him to remove the two he added before we locked that down to admins only.

seancorfield18:01:38

The Slack IRC Gateway is enabled, SSL-only. That allows an IRC client to connect to Slack. It does not bridge between an existing IRC network / room and Slack.

seancorfield18:01:15

A couple of Slacks I'm on have tried full-on IRC bridges and they're an ugly experience (for both sides) since they have to fake the to/from accounts in bridged messages and they don't will any of the rich formatting or multimedia on the Slack side.

seancorfield18:01:32

To those who want to experiment with IRC bridges, I recommend you set up a new Slack team and set up the various bridges and see what you think. Several of us would be happy to help test them and provide feedback. We just can't do it in this Slack.

donmullen19:01:14

@seancorfield: that’s interesting feedback. It strikes me a better solution would be to have essentially a one-way stream from the IRC channel so slack folks can monitor and jump over to real IRC channel to participate in relevant discussions. That, combined with ability to post a quoted link to relevant info in the slack channel / archive to the IRC channel.

donmullen19:01:51

Two-way seems like too much noise.

shanekilkelly19:01:26

@gjnoonan: yes on real names here.

seancorfield19:01:40

@donmullen: my argument against that would be: for folks who care enough about IRC to want to monitor / jump into IRC anyway, why not just keep an IRC client open as well? I don't want a bot posting in a Slack channel I'm in with a stream of messages from people that I can't easily reply to. Seriously, go try out the bot integrations on a new Slack and see how you feel about the way those messages would appear in Slack. It's ugly.

seancorfield19:01:50

I'm not trying to shut down suggestions here: I just want folks to actually try this stuff for themselves and make suggestions based on seeing the pros and cons. If we had more integrations available here for testing, we could do it right here. Unfortunately we can't.

meow19:01:58

I'm starting to see a pattern emerge where someone says "this should be easy" followed by someone who has actually done it who can show how it is really "broken beyond repair" and "ugly and unusable"

meow19:01:48

And then be sure to put something on the wiki so we can quickly move forward

seancorfield19:01:59

And it may well be that some folks find these integrations perfectly acceptable. But I don't think enough people will -- and it's really hard to satisfy a community this big 😸

meow20:01:45

An integration that just creates the illusion of integration is really a disintegration in disguise.

donmullen21:01:32

@cfleming: noted - Given april 2014, may be dated. Looking at the http://datomic.com site, there are only two licenses listed - one for free, one for pro. Unclear where pro-starter lands - but will check.

cfleming21:01:36

@donmullen: For sure, I haven’t compared to the current EULA. dpp is a friendly guy, I’m sure he’d be willing to comment again if the licence has changed in a meaningful way

shanekilkelly21:01:02

That's a pretty savage EULA, no benchmarks, no publishing anything mentioning Datomic or Cognitect, no "immoral" uses. Yikes

cfleming21:01:20

@shanekilkelly: I believe it’s pretty common in the database world.

cfleming22:01:29

It probably means that conference talks about how people use datomic are technically in violation of the EULA.