# Replacing the Clojurians Slack log

**URL:** https://clojureverse.org/t/replacing-the-clojurians-slack-log/1614
**Category:** Community Building
**Created:** [February 20, 2018, 8:05am UTC](https://clojureverse.org/t/replacing-the-clojurians-slack-log/1614 "2018-02-20T08:05:46Z")
**Posts on this page:** 16
**Page:** 1

<div class="post-metadata">

### Author: ![plexus](https://clojureverse.org/user_avatar/clojureverse.org/plexus/32/6_2.png) [@plexus](https://clojureverse.org/u/plexus)
#### Post date: [February 20, 2018, 8:05am UTC](https://clojureverse.org/t/replacing-the-clojurians-slack-log/1614/1 "2018-02-20T08:05:47Z")

</div>

One of the main on-line hangouts for Clojure people is the [Clojurians Slack community](http://clojurians.net/). Unfortunately it suffers from its popularity. Slack will only retain the last 10,000 messages of history, which means that less than two weeks of logs are kept available.

A lot of valuable information is in that chat history, and so as a service to the community people set up a logging service back in 2015 so that these logs aren’t lost in time. (I believe it was [Ruslan Prokopchuk](http://ul.mantike.pro/), but if anyone can fill in the gaps in this history please do!)

In 2016 they were looking for someone to take over the hosting and running of the logs, and I agreed to do so, so since then it’s fallen on my shoulders to keep it running.

The setup so far was a bunch of [python scripts](https://bitbucket.org/ul/slack-archivist), plus some node-based tools to generate the index pages, plus cron jobs and glue. I set up a VPS in 2016, got everything running, and left it do its thing. A few small improvements have been made since then, like making individual messages linkable, but mostly it’s stayed unchanged.

There were several things I always wanted to improve, for instance not all of the markdown that slack supports renders correctly, or it would be great to have links to navigate to the previous or next day of logs, but I’m not that good in Python and don’t really enjoy doing it, so these things never happened.

In November finally the site stopped updating. Because the amount of logs had grown so large (currently 1.7GB of JSON files and rising), some of the scripts were running out of memory. Messages were still being logged (luckily), but the site was no longer updating.

I decided that this was an opportunity to replace this with something that I myself could more easily work on and improve, and something that the community could more easily contribute to.

It’s all taken a little longer than planned, but at last I have some things to show. The app is on github as [clojureverse/clojurians-log-app](https://github.com/clojureverse/clojurians-log-app), it’s a simple Ring app, backed by Datomic. I was first going to go with plain PostgreSQL, but I figured using Datomic would make it more fun for me and for others to contribute. The flip side is that it’ll be a bit more costly to host, since Datomic performance relies on it having lots of memory to chew up.

The app isn’t perfect yet, but it’s working. A first version is up on the [clojurians-log-staging.clojureverse.org](http://clojurians-log-staging.clojureverse.org/) domain. It’s quite slow right now, but there are still several things that can be done to improve that. Mostly though I’m planning to rely on CDN caching.

A big difference with the previous setup is that the complete setup and configuration is done through  
ansible. You can check out my [ansible-playbooks repo](http://github.com/plexus/ansible_playbooks/) to see how things fit together. Deployment is done with a simple “git push”, similar to services like Heroku.

I think this can be a great project for people to contribute to, it’s small and self contained, but also has a real use. I’ve created a few [issues](https://github.com/clojureverse/clojurians-log-app/issues) of some of the most obvious things that still need doing on the app itself. I’d be happy to pair on these issues, or provide feedback and mentoring, especially if you still consider yourself a junior, or if you’re new to open source development.

There are still a few admin/opsy things that need doing before it can replace the main site, mainly setting up the CDN, and having it automatically import the new logs, but I should get to those soon.

Thank you all for your patience!

---

<div class="post-metadata">

### Author: ![ulis](https://clojureverse.org/user_avatar/clojureverse.org/ulis/32/3121_2.png) [@ulis](https://clojureverse.org/u/ulis)
#### Post date: [February 26, 2018, 9:08am UTC](https://clojureverse.org/t/replacing-the-clojurians-slack-log/1614/2 "2018-02-26T09:08:44Z")

</div>

Woohoo! Thank you @plexus for keeping logs and replacing that bunch of hacky scripts with proper app. Clojure community is one of the best I ever met because of awesome people like you.

---

<div class="post-metadata">

### Author: ![dustingetz](https://clojureverse.org/user_avatar/clojureverse.org/dustingetz/32/4883_2.png) [@dustingetz](https://clojureverse.org/u/dustingetz)
#### Post date: [February 27, 2018, 2:54pm UTC](https://clojureverse.org/t/replacing-the-clojurians-slack-log/1614/3 "2018-02-27T14:54:30Z")

</div>

Thanks for this update, I actually thought the whole thing was defunct and have been considering making a clojurians slack log viewer as a Hyperfiddle demo. If you’ve done the hard part of integrating slack data into Datomic, but not too much UI work perhaps we can help with the UI? [http://www.hyperfiddle.net/](http://www.hyperfiddle.net/)

---

<div class="post-metadata">

### Author: ![amarjeet000](https://clojureverse.org/user_avatar/clojureverse.org/amarjeet000/32/612_2.png) [@amarjeet000](https://clojureverse.org/u/amarjeet000)
#### Post date: [February 28, 2018, 7:27pm UTC](https://clojureverse.org/t/replacing-the-clojurians-slack-log/1614/4 "2018-02-28T19:27:30Z")

</div>

The staging link ([http://clojurians-log-staging.clojureverse.org/](http://clojurians-log-staging.clojureverse.org/)) is not working right now?

---

<div class="post-metadata">

### Author: ![plexus](https://clojureverse.org/user_avatar/clojureverse.org/plexus/32/6_2.png) [@plexus](https://clojureverse.org/u/plexus)
#### Post date: [March 1, 2018, 2:06am UTC](https://clojureverse.org/t/replacing-the-clojurians-slack-log/1614/5 "2018-03-01T02:06:52Z")

</div>

Yup, that’s going to happen sometimes, that’s why it’s called “staging” and not “production”. Seems the app dies with an OutOfMemoryException.

I’m ironing out the kinks in the Ansible scripts, after that I’ll spin up a new machine with more RAM that will become Clojurians-log’s home for the foreseeable future.

---

<div class="post-metadata">

### Author: ![plexus](https://clojureverse.org/user_avatar/clojureverse.org/plexus/32/6_2.png) [@plexus](https://clojureverse.org/u/plexus)
#### Post date: [March 1, 2018, 2:08am UTC](https://clojureverse.org/t/replacing-the-clojurians-slack-log/1614/6 "2018-03-01T02:08:13Z")

</div>

> [@ulis](#):
>
> Woohoo! Thank you @plexus for keeping logs and replacing that bunch of hacky scripts with proper app. Clojure community is one of the best I ever met because of awesome people like you.

Thank you for originally starting this initiative in the first place! The fact that we have these logs going back to 2015 is a really great asset to the community.

---

<div class="post-metadata">

### Author: ![amarjeet000](https://clojureverse.org/user_avatar/clojureverse.org/amarjeet000/32/612_2.png) [@amarjeet000](https://clojureverse.org/u/amarjeet000)
#### Post date: [March 1, 2018, 9:09am UTC](https://clojureverse.org/t/replacing-the-clojurians-slack-log/1614/7 "2018-03-01T09:09:54Z")

</div>

Cool cool, thanks. Really appreciate the time you are taking out for this.

---

<div class="post-metadata">

### Author: ![plexus](https://clojureverse.org/user_avatar/clojureverse.org/plexus/32/6_2.png) [@plexus](https://clojureverse.org/u/plexus)
#### Post date: [March 5, 2018, 8:58am UTC](https://clojureverse.org/t/replacing-the-clojurians-slack-log/1614/8 "2018-03-05T08:58:01Z")

</div>

[http://clojurians-log-staging.clojureverse.org/](http://clojurians-log-staging.clojureverse.org/) is back online, this time with several improvements contributed by the community. Rendering is much improved, it’s easier to navigate to the previous or next day, and there are caching headers present.

This is on a new machine that’s a bit beefier. All things going well I plan to promote this installation to “production” (i.e. replace the old log that’s still running at [clojurians-log.clojureverse.org](http://clojurians-log.clojureverse.org)).

I’ve added a free Cloudflare plan, which should help to keep delivery spiffy, but that will only kick in later today so I haven’t been able to test the difference yet.

I also imported the latest messages, so we’re all up to date again.

---

<div class="post-metadata">

### Author: ![bbrinck](https://clojureverse.org/user_avatar/clojureverse.org/bbrinck/32/477_2.png) [@bbrinck](https://clojureverse.org/u/bbrinck)
#### Post date: [March 6, 2018, 8:52pm UTC](https://clojureverse.org/t/replacing-the-clojurians-slack-log/1614/9 "2018-03-06T20:52:41Z")

</div>

Thanks very much for your hard work on this! Having logs of conversations is an invaluable resource.

How rapidly are new channels discovered? I noticed that #clojure-denver is not yet displayed in the logs, even though the channel has existed for about a month.

---

<div class="post-metadata">

### Author: ![plexus](https://clojureverse.org/user_avatar/clojureverse.org/plexus/32/6_2.png) [@plexus](https://clojureverse.org/u/plexus)
#### Post date: [March 6, 2018, 9:53pm UTC](https://clojureverse.org/t/replacing-the-clojurians-slack-log/1614/10 "2018-03-06T21:53:47Z")

</div>

Invite logbot to the channel and it should get logged. I don’t think we auto join channels at the moment.

---

<div class="post-metadata">

### Author: ![bbrinck](https://clojureverse.org/user_avatar/clojureverse.org/bbrinck/32/477_2.png) [@bbrinck](https://clojureverse.org/u/bbrinck)
#### Post date: [March 7, 2018, 12:35am UTC](https://clojureverse.org/t/replacing-the-clojurians-slack-log/1614/11 "2018-03-07T00:35:04Z")

</div>

Thanks for the help! I didn’t know about logbot before. TIL…

---

<div class="post-metadata">

### Author: ![plexus](https://clojureverse.org/user_avatar/clojureverse.org/plexus/32/6_2.png) [@plexus](https://clojureverse.org/u/plexus)
#### Post date: [March 7, 2018, 6:13am UTC](https://clojureverse.org/t/replacing-the-clojurians-slack-log/1614/12 "2018-03-07T06:13:43Z")

</div>

Apparently I can’t enable Cloudflare for just a subdomain, it requires to be the DNS server for the top level domain as well, so I’m switching [clojureverse.org](http://clojureverse.org) over as well. Some users have reported in the past that ClojureVerse was a bit slow for them so maybe this will help with that as well.

This is slightly scary, if we’re briefly out of the air then it’s because of the switch.

BTW there’s some really cool stuff already happening on the app, we’ll soon be able to share messages and have them show up all nicely rendered like this. Thanks Jonathan Hsie for this great feature

> **[clojure-nl 2018-02-02 | Clojurians Slack Log](http://65939c0a.ngrok.io/clojure-nl/2018-02-02/inst-2018-02-02T17:32:20.000505Z)**
>
> if you can provide me with a \[:title :abstract :speaker-bio\] tuple I'll update the agenda :slightly\_smiling\_face:

Also giving a shoutout to John Andrews and @camachom for message rendering and the date navigation links!

---

<div class="post-metadata">

### Author: ![kommen](https://clojureverse.org/user_avatar/clojureverse.org/kommen/32/717_2.png) [@kommen](https://clojureverse.org/u/kommen)
#### Post date: [March 14, 2018, 1:55pm UTC](https://clojureverse.org/t/replacing-the-clojurians-slack-log/1614/13 "2018-03-14T13:55:18Z")

</div>

@plexus is `clojurians-log-staging.clojureverse.org` supposed to collect logs right now? The last logs are from March 5th right now, e.g [https://clojurians-log-staging.clojureverse.org/cljs-dev](https://clojurians-log-staging.clojureverse.org/cljs-dev)

---

<div class="post-metadata">

### Author: ![plexus](https://clojureverse.org/user_avatar/clojureverse.org/plexus/32/6_2.png) [@plexus](https://clojureverse.org/u/plexus)
#### Post date: [March 14, 2018, 2:39pm UTC](https://clojureverse.org/t/replacing-the-clojurians-slack-log/1614/14 "2018-03-14T14:39:28Z")

</div>

No, it’s not real time yet. No logs are lost, they’re just not imported yet.

---

<div class="post-metadata">

### Author: ![pankajdoharey](https://clojureverse.org/user_avatar/clojureverse.org/pankajdoharey/32/1085_2.png) [@pankajdoharey](https://clojureverse.org/u/pankajdoharey)
#### Post date: [April 5, 2018, 8:06am UTC](https://clojureverse.org/t/replacing-the-clojurians-slack-log/1614/15 "2018-04-05T08:06:25Z")

</div>

Relay Chat has setup a ([http://relay-chat.com](http://relay-chat.com)) instance for Clojurians, with bridges to and from the Clojurians Slack. There’s no 10k message limit, and this instance is free! Join them at [https://goo.gl/Tdsfv4](https://goo.gl/Tdsfv4) hat

---

<div class="post-metadata">

### Author: ![system](https://clojureverse.org/uploads/default/original/2X/5/51079bf9e4b7d9466242c06cf1e43b9f8bd6da14.png) [@system](https://clojureverse.org/u/system)
#### Post date: [October 5, 2018, 12:50pm UTC](https://clojureverse.org/t/replacing-the-clojurians-slack-log/1614/17 "2018-10-05T12:50:39Z")

</div>


