Fork me on GitHub
Drake Nelson19:04:56

Hi there! I am looking for job now, and if anybody have cool idea or open-source project I will pleasure to help write couple of line for you. I hope it's not so incorrectly for this chat to write like this. 🙂


I work on Yetibot - a chat bot written in Clojure. very beginner friendly and welcoming of new contributors. / check out some of the "good first issue" and if you want to learn more just ask! we hang out on Yetibot slack - feel free to join at

devth20:04:51 @seancorfield @nathantech2005 I'm the author of a Slack (and IRC) bot called Yetibot written in Clojure that offers this capability (and many others). I've been thinking about bringing it up here to see if there's interest in running one here. Another potentially relevant/useful feature is viewing and searching Slack history directly from Slack or via its web dashboard.


I'll be talking about it at Clojure/north next week 🙂


Cool. Let me run this past the Admin team...

🙏 4

Looking in the docs, I don't see karma as something built in? Also, it looks like we'd have to find someone/somewhere to host the bot (for free) in order to add it to this Slack?


right, the karma command was added by a contributor a few months ago and i haven't documented it yet. i'll add some basic docs today or tomorrow. yes, we'd need somewhere to run it. I currently run the public instance (dashboard at on a 1GB Droplet that's donated by DigitalOcean. i'm running a postgres database and yetibot instance on the same droplet. its Slack instance only has 80 members, so much less traffic than Clojurians.


LMK when the docs are updated so I can put them in front of them Admin team -- and also see if someone has spare capacity to host the bot.


Ok will do

hipster coder22:04:05

I would just make sure any bot is secure though. API's are prone to security flaws. They just recently found a remote shell in a super popular library that had gone un noticed for 3 years. Someone put an eval in the code which called a cookie. I cannot say the library name in order to protect people's reputations.

👍 4

@seancorfield we added some initial docs for karma: we're actively working on this feature and will be adding more docs as we go. Yetibot has a ton of features, but here are a few that could potentially improve the Clojurians experience: 1. Karma, including flexible means of bestowing it on helpful messages (e.g. by reacting to a message with a predetermined emoji) 2. Clojure language evaluation (plus Scala, JavaScript, Haskell - more in the future) 3. GitHub integration 4. JIRA integration (the official Clojure instance would need to be upgraded to a recent version for it to fully work though) 5. History logging (backed by a Postgres database) + search via web dashboard or chat 5. Beginner-friendly open source Clojure project 🙂 and a lot more. It also has some basic support for multi-adapter already, meaning a single instance can listen and respond on multiple Slacks and/or IRCs. We're discussing unifying multiple adapters by constructing a single identity represented by multiple user accounts, which could be really useful for the Clojure community since chat is spread across multiple chat platforms. Let me know if you have any questions!


okay, gotta p2p network idea I want to bounce off y'all.

👍 8
🤓 4

Think social network (diaspora/mastadon) crossed with ethereum, crossed with i2p


Where, your friend network becomes your compute fabric


And the larger your friend network, the more "trusted friend" tunnels you can build for anonymization

hipster coder22:04:53

Will it use end to end encryption?


yeah, i2p does

hipster coder22:04:29

I like that. Except you should try to prevent illegal porn and stuff.


that's the benefit of f2f integrated into p2p


You use your f2f network, within the p2p network, for storage/compute


Or do you not trust your friends? :thinking_face:

😂 8

for extra investors add: “machine learning and blockchain” into the description 😛

😂 8
hipster coder22:04:28

I don't trust unsolicited spam


much of that too


but joke aside, it sounds interesting.

hipster coder22:04:10

I am afraid to accidentally down illegal content just from reading an unsolicited message


Does that happen on mastodon? I'm not really sure

hipster coder22:04:52

Its happening on whatsapp groups


Twitter doesn't really catch everything either

hipster coder22:04:31

Because whaysapp is p2p encrypted... so all kinds of illegal stuff gets through

hipster coder22:04:51

I am looking at Signal


yeah.... I mean, cars can be used to do illegal stuff... Do you want twitter driving your car too? I don't buy the argument

hipster coder22:04:46

What is your thoughts on WebRTC?


I think it'd be good to build a version of i2p on it... but the the fact that most webrtc clients tend to point to Google's stun servers is worrisome

hipster coder22:04:02

Someone gave me a webrtc repo with 200 followers... but it is in node js

hipster coder22:04:20

I don't have much time to fix it up


It's fun stuff though right?

hipster coder22:04:09

Hmm. Yes. But the async stuff makes it look like spaghetti

hipster coder22:04:30

15 levels of brackets


yeah, that sucks

hipster coder22:04:17

I think there is a new node solution for that


Just out of curiosity, would 15 levels of clojure parenthesis be preferable?

hipster coder22:04:48

I think it just depends on how to format code? Or no?

hipster coder22:04:34

How does one handle dealing with levels of nested code? I was wondering about that this week.


Yeah, the problem is async's inversion of the call graph. Makes it harder to reason about

hipster coder22:04:04

Does one use code formatter plugins?


There's core.async of course


which is kinda like a code formatter plugin 😉


The solution I put some work into was tau.alpha


I’m keen towards Bacon js in ClojureScript for organizing async code, but I’m sure core.async would work well.


Now that nodejs is getting webworkers, I'll probably crack that project back open an start porting it there

👍 8
hipster coder22:04:49

Ok. Got to setup a Linux box. Have fun. Ill check in later.


Guarantees all functions terminate... I'd be interested in seeing something like that as an alternative to ethereum for distributed computing in untrusted environments.