Fork me on GitHub
Drew Verlee21:12:02

An irrational part of me wants to write a children's story in the style of dr seuss about Monads. But it would be a lot time spent refining the dialogue to be entertaining and artwork to make it seem interesting. And in the end i would have a children's story that both adults and kids would judge solely on entertainment and artwork and not at all on how well it described a monad.


I’d buy it.


If it could do both — have an entertaining story and artwork, AND explain monads properly — that’d be amazing

Drew Verlee17:12:57

THREE (Look at the picture at the bottom) • you can choose either side of the path • you can get to the path from anywhere • the paths can merge. THREE • Choice • transformation • join THREE (if (nil? %) :success nil) nil? % => choice if => transform :success nil => join THREE=>MONAD

Drew Verlee17:12:32

(macroexpand-1 '(some-> nil inc)) ;; => (let ;; [g nil] ;; (if (nil? g) nil (-> g inc)))

Drew Verlee17:12:34 > you would never say "maybe anything" because when your talking about something in isolation, destined to be combined in aggregate, who knows that its maybe? What rich is saying is that the Maybe Monad represents a bad idea. It's possible, but its not something you want to encourage. The issue is that its a choice between complete success and complete failure. try catch success fail. The idea that you might have to makes a choice isn't what we do in programming, we make choices. A useful type is one that helps you understand the choice that was made. If a type just tells you that some choice was a choice, its usefull and its distracting and its pervasive. which is why it becomes necessary to put it everywhere once you adopt the idea. Because everywhere is nowhere at all.

Drew Verlee18:12:21

Put another way, intentionally trying returning maybe is like intentionally returning nil.

Drew Verlee18:12:24

I should note some of the literature suggests monads are associative. Which would mean your if expressions would need to be pure. i think

Drew Verlee18:12:06

I don't see that in the category theory versions, I'm not sure they consider the idea of order at all


How do you like:

Say, you're threading.
You're threading!
Where is your data heading?

If you should come across a nil,
You're headed for a spill.

You could add a bunch of boilerplate
But yuck, that's not so great
It's fragile and it's brittle
Lots of parts to fiddle.

Try a Maybe monad, do!
It's just the thing for you.

Oh no! Now it's everywhere!
Strewn about without much care
Now ALL your code's got boilerplate
Shuffling Maybes - not so great!

🏆 12
Drew Verlee19:12:18

The Major gazed upon his land A might maze, his people lost, his job to make a plan! What to do? Where do they need to go! His advisors worked late into the night The strained with all their might A plan to let everyone know where to go When morning came, what is to be our fate? The city roads, now blocked by gates! The major his a head a thunder What is this massive blunder! The advisors, aghast, do protest Your excellence, the problem is addressed See now your subjects are never lost For they cant go adrift The major, his eyes a dark and stormy sea There is a problem, dont you see! for there is only one key!

Drew Verlee19:12:48

@U0AFX5QNN i love your version. it inspired me to make my own 🙂.

Drew Verlee21:12:07

@alexmiller i'll give that a watch, thanks!

Jeff Evans21:12:55

probably too early to know, but any speculation as to whether free Slack instances will be phased out post Salesforce acquisition?


They’ve allowed Heroku to retain their free tier. I’m not sure what their plan is for Slack, though.


I’d really love to know why Salesforce wants to pay so much money to buy a company with an easily cloneable product that’s losing almost a million dollars a day. For their customer list — mostly small startups with limited budgets who can’t afford Salesforce?


as always it is about data...there is no e2e-encryption so they take your data and analyse it. that is always worth a buck or two.


We're a small company with a limited budget and we already use Salesforce (as well as Slack) 🙂 Not sure whether you'd consider us a "startup" at this point since we've been around for almost 20 years...


Ahh, so even less reason for Salesforce to want to buy your contact info from Slack 🙂


On a related note, as an Office365 user/subscriber, I've noticed Microsoft starting to push Teams more heavily lately (it auto-installed it for me and then prompted me to create a group and start adding integrations/apps)...


Microsoft has gotten pretty vicious with 365 lately.


They’ve added some kind of friendly looking employee spying and surveillance dashboard, too.


It sounds a lot better if you say “employee analytics”


Depends how paranoid you are, I guess. I like the My Focus thing it does where it automatically blocks off a few hours almost every day on your calendar for "focused work" and then tells you how much email etc your still responded to during your focus time.


That part sounds nice


I’m thinking of the “productivity score”


Conveniently, Office 365 offers easy tools to game all the metrics and rise in your boss’ good graces. Just ramping up your engagement with Office 365 leads to the best Productivity Score in the office.


I can almost hear the pointy-haired boss staff meetings now: “Our department’s Productivity Score must improve 20% this quarter — no more email attachments, ever. From now on, all files must be shared via Microsoft 365 files”

Alex Miller (Clojure team)22:12:33

given the number of similar yet dead products I think you underestimate how easy it is to successfully run something like Slack at scale

Alex Miller (Clojure team)22:12:15

they've won because they created a compelling product that works


Oh, on the contrary - they’re losing almost $1m a day because of that. I question why it’s worth $28 billion to acquire a company that can’t pull it off.

Alex Miller (Clojure team)22:12:31

companies often lose money in favor of growth

👆 3

Exactly. Many companies can post great growth numbers by essentially giving away free value.


At some point, that should stop? The company should at least have a path to being profitable?

Alex Miller (Clojure team)22:12:19

how many big companies are heavily invested in slack and could easily be squeezed a bit

Alex Miller (Clojure team)22:12:35

how many big free orgs (like this one) could be squeezed a bit


yeah the bots/integrations are now properly just workflow


and there's a ton of money on the table by having 20k person slacks that pay exactly zero and the lowest tier is like $8k per month or something crazy

Alex Miller (Clojure team)22:12:16

how many ways can they extend their reach and integration with other enterprise apps in exchange for $$$? (I'm guessing lots)

Alex Miller (Clojure team)22:12:41

slack has tons of latent monetary potential


Evidently Salesforce thinks so! 🙂

Alex Miller (Clojure team)22:12:37

they are a gateway into fortune 500 companies where you can upsell them into a dozen other things


Aren’t most of those places already on Salesforce anyway?

Alex Miller (Clojure team)22:12:01

well I'm sure all the ones that aren't are lucrative new business


If not, is there a more capital efficient way to reach them than spending $28 billion? Salesforce has a pretty amazing sales team, from what I’ve heard

Alex Miller (Clojure team)22:12:34

all I'm saying is, it doesn't seem crazy to me


and now the ubiquitous chat application used almost everywhere in the industry


I freely admit I don’t have all the facts here. I have no idea why they’re doing this

Alex Miller (Clojure team)22:12:02

you also have to trade against the risk of some other company like oracle or microsoft or whoever buying them and getting that advantage against them


salesforce may also see slack as a competitor in some areas too, so it may to some degree be an acquisition to fend off competition

Alex Miller (Clojure team)22:12:35

having both lets you start to sell suites of products in enterprise licenses


They could clone Slack in-house for a small fraction of 28bn

Alex Miller (Clojure team)22:12:09

if they could, they would have


my last four jobs have used slack as a completely integral part (or even primary) for communication


or they don’t care about the actual product / technology, it’s something else they’re after

Alex Miller (Clojure team)22:12:45

it's so much easier to spend other people's money to buy stuff than to build it from scratch


haha. yes, I suppose build/buy looks quite different when you are in a position to move billions around


in my experience tools like slack become the place where the stuff that should be in a company wiki / document repository can actually be found, which becomes a huge lock-in


Same where I’ve worked. Slack becomes the de facto source of truth for so many things it shouldn’t be.


and I'm sure that kind of lock-in factor is calculated to be worth something


given how lax the us is about antitrust enforcement, and at least some noise that indicates maybe that might change, I do seriously suspect it is an attempt to head off possible competition while they can


Interesting, that could well be. Oracle (hated by customers) + Slack (loved by customers) is a much more compelling proposition than Oracle alone


so it'll be interesting to see what they do with slack


is slack loved?


As far as I can tell, yes, on balance most users love it


The product design, UI/UX are very well done IMO


Slack does threads terribly. Just look at this conversation. Try to follow it. Try to notice a new topic introduced in this noise. It’s intentional. The only way to truly make sense of it is to be a part of it in real time, aka “boost engagement.” There’s no way Slack is useful as an archive. Slack is a distraction machine


do users have a choice or do they have to use whatever stuff the company uses?


Especially in terms of making text chat accessible to non-technical people, who are the bulk of the userbase at any company


Usually no choice, which makes it all the more refreshing when you’re forced to use a product that doesn’t have terrible UX


it has many of the "gamified" elements that suck people into social media, tiny rewards and motivators


at my last three companies it was totally based on what the developers would use


and they overwhelmingly chose slack


which is kind of crazy, because the slack client is a pig


apparently the new m1 macs can run the iOS client instead of the electron app and get massive resource usage gains


at my last job one of the developers wrote an ircd in clojure and we used that for years, but by the time I was fired out of a cannon into the sun there was a move from it to skype chats, and then from skype chats to slack


Compare Microsoft Teams: same core features, much worse UX. Nobody would ever use Teams if they didn’t have to. Microsoft specializes in putting out “good enough” UX that people use only because their company forces them to.


Slack is reaching (or trying to reach, at least) beyond the engineering departments to the rest of the company, to accounting managers and HR people and so on. That’s why they pushed out the much demonized switch to WYSIWYG input.


my impression is of it moving in the other direction


e.g. as a mandated thing to use


slack already is used a ton outside of software orgs by non-engineers


I think that developers -- especially developers who favor OSS on principle -- find a lot to complain about with Slack and those are complaints that most Slack users (non-developers) just don't have...


I would wager most people employed as writers (editors, staff writers, etc) for any publication are in a slack


Yes. It’s friendly looking, easy to figure out, doesn’t appear formidable or technical at all. Nice jewel tone color palette. Jump right in and start messaging.


The huge ecosystem of integrated apps from such a wide variety of companies is very, very appealing to (non-developer) Slack users, for example.


but that is a sort of a chicken and the egg

Alex Miller (Clojure team)22:12:45

having used more message systems than I count in my career, I like Slack a lot. nothing's perfect but it's pretty good


The non-technical boss will usually pick Slack over, say, IRC


did the huge ecosystem cause people to use it, or did the ecosystem arise because people used it


if we are trying to explain its popularity

Alex Miller (Clojure team)22:12:42

the virtuous circle in action


slack is fine, I lament the walled garden of it all, I lament the lack of a good command line client


There was kind of a greenfield scenario there in group business text chat about 10 years ago. IM was no longer perceived as for kids, and people wanted something better for groups than Google Talk / one on one chats. IRC was far too daunting for most non-technical people. There were a few things like Campfire / Basecamp that got some traction, but failed to break out into mainstream (non-engineering) success. Then Slack came along and refined the concept by specifically catering to mainstream UX expectations.


I think that is interesting (and the accepted) narrative, but what is the evidence to support that is why slack took off


Ultimately, it’s not proveable in any rigorous scientific sense, since we can’t wind back time and do experiments under the same conditions. One off heuristics is all we’ve got


Anecdotally, I’ve seen TONS of non-technical and less technical people enthuse about Slack the way I’ve seen them enthuse about very few other technologies.


Apple / iPad tier enthusiasm, or very nearly so.


like, do we have screenshots from slack circa 2010 showing its great ux?


The usual process for business technology deployment is: boss orders everyone to use x, everyone uses X, everyone wryly complains about how it messes up their day / makes their dog sad. With Slack, the same people are wary at first, but within an hour they’re happily sending each other cute emojis and cat GIFs and planning lunch.


I don’t, off the top of my head, but I was there in 2010 and its UX did blow away all the alternatives that were available at that time

Alex Miller (Clojure team)23:12:00

when slack started it was better (and I was using campfire and hipchat and grove and whatever the web irc thing was at the same time)

Alex Miller (Clojure team)23:12:50

slack built an objectively good product, they grew the userbase by luring small groups and small cos and eventually big cos with quick free setup. they nurtured the ecosystem with easy clever integrations. they had good 2-way connectivity to irc for several years to siphon them.

Alex Miller (Clojure team)23:12:38

slack is one of the very few tools I use for work that my kids and my wife also use for other things

Alex Miller (Clojure team)23:12:58

(email and google docs prob being the others in that class)

Alex Miller (Clojure team)23:12:52

will salesforce f it up? probably, that's how this works.


To their credit, I was amazed at how little they f’ed up Heroku


Before this pandemic I never heard about Microsoft Teams. Now my wife is using it for her work (she doesn't know what Slack is) and lots of schools are using it too. Basically anyone non-IT I come across is using it, while Slack isn't common at all with non-IT folks here in The Netherlands (from my limited personal viewpoint)


That sounds similar to Slack in the US ~5 years ago or so. I think they started some deliberate “let’s get non-tech customers” effort around then. I guess it was country by country

Alex Miller (Clojure team)23:12:00

eventually it will grow too salesforcey and someone will make a lighter weight clone and eat their market share from the bottom.


huh, no treadmill emoji


Also, we were using Zoom for years and initially I thought we were using a niche product, while everyone else was on hangouts. Now even my wife's book club uses it.


my irssi process has been running since 2018 😬


kevin     6825  0.1  2.6 174136 27408 pts/1    Sl+   2018 1595:17 irssi


I .. don’t get Zoom. At all. What the big deal is, why people latched onto that instead of the 20 identical products, including ones run by Google and Apple and Microsoft/Skype where they were already customers. Is it just because Zoom is a cute name?

Jeff Evans23:12:59

At least several years ago, when I first used Zoom, it seemed to just work fairly well. Most of the competitor's had crappy quality, constant droppage, etc. I've heard this observation from other colleagues as well.


At work we tried a ton of different video conferencing offerings -- Zoom was simply better: more reliable calls, better audio, better video, better screen-sharing. We just got tired of all the others glitching out, dropping calls, distorting audio/video, and blurred screen sharing.

Jeff Evans23:12:08

Guessing that's how they rose to the top


The only thing that came close for a while was Screen Hero (specifically for screening sharing with audio) and they got eaten up by Slack and it took ages before Slack integrated it -- and somehow they messed it up so we still use Zoom for remote pairing...


well, I hope by now no one trusts google chat products to be around for the long term 🙂


haha. Yeah, Google had what, 3 video chat services going at the beginning of 2020


I think zoom has better adhoc meeting support


Ahh, was that the thing.


which is better for cross team, orgs, kinds of calls


Just send someone a URL and they’re in


skype had that to some degree, but I think there is some friction between skype for business and regular skype


Google Meet has that now. I don’t remember if they had that pre-zoom. If they did, I didn’t know about it


I've been using zoom for some time now and only just around to actually having a zoom "account" and connecting it the business's account. they made some recent changes that made the adhoc stuff more annoying, requiring the host of the call to manually approve all outsiders joining the call

Alex Miller (Clojure team)00:12:02

waiting room is on by default now, but you can change that back

Alex Miller (Clojure team)00:12:17

a lot of the new default settings are designed to be better/safe for teachers etc


The whole “lack of any friction to get going” thing seems to have a big effect on onboarding and retention, especially with non-technical users. I think a significant and underrated element of Slack’s success (in the context of already having a decent product launched) is how easy they make it to sign on when you’ve forgotten your password. They just email you a magic link that takes you to an already signed-in webpage of the Slack you want, or launches the app on your phone.


i'm actually annoyed that each login for each workspace is separate. i have like 9 "slack" passwords in my password manager


ha, yeah, me too. Their cross-account integration could use some work.


sure, I think that speaks to the cyclic nature of things like alex pointed out, almost all products that gain traction start with low friction onboarding, then start to add friction to "offboarding" which inadvertently adds friction to onboarding


so salesforce will add some features to slack that people think makes it too "sticky" and it will be one to the next low friction thing


They well might. Many other good products have fallen to this.


A lot of times too the founders / original staff who thought of the cool stuff and designed the product leave to move to Aruba as soon as their acquisition stock options vest, and are replaced with uncreative bureaucrats from the larger acquirer.


How do you like:

Say, you're threading.
You're threading!
Where is your data heading?

If you should come across a nil,
You're headed for a spill.

You could add a bunch of boilerplate
But yuck, that's not so great
It's fragile and it's brittle
Lots of parts to fiddle.

Try a Maybe monad, do!
It's just the thing for you.

Oh no! Now it's everywhere!
Strewn about without much care
Now ALL your code's got boilerplate
Shuffling Maybes - not so great!

🏆 12