You have (my) permission to do anything that you consider beneficial and useful, and you have the ability as well!
All the rules we think are in place are just illusions
if something isn’t being done already, it’s likely there’s no incentive to do that thing (see https://www.noidea.dog/glue ) don’t sacrifice yourself and your future, learn from my mistakes
Most of what follows will be examples where I started things and people showed up.
The goal of these examples is for you to gain inspiration to start your own things.
If you see a need, create the thing, and people will come, or they won’t and maybe it wasn’t needed!
In the 90s I accidentally started a boardgames club by showing up at the same time every week.
Once everyone believed it existed, it did!
After I moved away, the club continued without me.
Suddenly, I wanted to start more events/patterns that people enjoyed and continued after I left.
Java was the first ‘advertised’ programming language with a cutesy mascot and all that.
That worked!
“Developer mindshare” suddenly became a thing.
Programming language communities became a thing!
About 1999 I learned Python and elisp, chased purely functional without knowing what it was called A friend asked me why I was writing Haskell in Python, and I was enlightened!
I failed to learn from the Gentle Introduction to Haskell, after years as a #python IRC channel admin, figured I’d start a #haskell IRC channel
I sent an announcement to the mailing list, people showed up!
I realized there wasn’t much Haskell community outside the mailing lists, maybe I could help?
Someone showed up on the #haskell IRC channel and said “You don’t have a PhD, I’ve almost finished mine, I’m better qualified to run the channel”
I said “I’m going to try it anyway, if it fails, I’ll hand it off to you”.
People would arrive in #haskell and grumpily complain about requiring a PhD to learn Haskell
I’d tell them I’d never had a math or cs class in uni, and had been paid to write Haskell, and sometimes they would actually try Haskell.
When new people arrived on the IRC channel, I would greet them and attempt to immediately integrate them into the community.
I would assume anyone who acted badly did so from ignorance rather than spite.
The rare spiteful people got:
- first offense - clearly and publicly informed of the community standards
- second offense - kicked from the channel after privately informing them what they did that was bad behavior
- third offense - banned for six months or longer
The #haskell rules were “Be Nice, Or Else”.
- Success! https://mail.haskell.org/pipermail/haskell/2016-September/024995.html 13:15 <xQuasar> | HASKELL IS FOR FUCKIN FAGGOTS. YOU’RE ALL A BUNCH OF FUCKIN PUSSIES […] 13:21 <xQuasar> | what’s haskell good for though […] 13:26 <xQuasar> | i can’t believe my attempt to troll has actually got me convinced that i should give haskell a go
This bit of an IRC log was wildly popular for many years, and has been used to inspire many friendly communities. Success?
At one point #haskell had about ten thousand members, and was the third largest freenode channel, and the largest programming language channel.
In some ways, #haskell became a victim of its own success because it’s so hard to follow many concurrent conversations happening in the same group chat.
I hosted lambdabot, everyone liked that
Andrew Bromage ( Pseudonym ) wrote and named lambdabot, and wanted a plugin system for his hello plugin.
I wrote the simplest thing that could possibly work, and convinced other #haskell people that I would install any plugins they wrote. I would also give them ops on the bot, meaning they could get it to join other IRC channels and do other nifty things. This worked extremely well
I noticed that the @ sign wasn’t used for anything in IRC, so I chose that for the “plugin command starts now”. That got copied into a Python IRC bot named supybot, and hundreds of other IRC bots got that from supybot There’s a reasonable amount of evidence that the @name pattern on twitter, etc came from its use in IRC bot commands
lambdabot is still running, almost twenty years after I stopped hosting it.
Roughly fifty plugins were written, and each creator got to do something and brag about it, in public, in front of their peers.
At least one PhD thesis was published because the author was working on lambdabot instead of their thesis topic, and the hot code reloading they wrote to allow runtime plugin changes without bot restarts later ended up in Facebook’s spam detection software.
The joke that turned into a tiny conference
Anders Carlsson’s and I were going to drink a beer in his tiny apartment and talk about Haskell,
but then someone else wanted to join, so we were going to have it at a bar
and then someone joined #haskell and asked for the email address of the conference organizer
and then they submitted a paper
So I asked John Hughes to get us a room for the Saturday after EuroPython 2003 !
I applied to Microsoft Research for a GHC assistant job, Simon Peyton-Jones and Simon Marlow would interview three candidates.
Took me fifteen minutes to figure out who the other two candidates were, and another fifteen minutes to convince them that we should all interview on the same day.
Microsoft Research HR in Cambridge UK was rather stressed out by that.
At 8 AM, I stood in front of about twenty people, and asked who was ready to present. That’s how the rest of the day long conference was structured.
AngloHaskell continued for another four years without me.
I didn’t get the job.
I had smart Java programmer friends who couldn’t get over the hump of learning to read research papers, so I created a half way point
I wanted something simpler/easier than a research paper, but more formal than a blog post.
https://wiki.haskell.org/index.php?title=The_Monad.Reader/Previous_issues
I recruited a bunch of people who knew things but didn’t realize they wanted to write about those things until I convinced them.
I published quarterly, or whenever I had three to five articles.
I organized TMR for a few years, and handed it off to a ‘real’ academic, who ran it for a few years, etc
TMR lasted ten years and published twenty four issues!
It got cited so many times! The Monad.Reader
I had the vague idea that organizing a community could possibly get me a job half way between writing Haskell and building community,
and hopefully change the world for the better, in a very small way. I WAS WRONG (about the job part at least)
I did get recognition, the “History of Haskell” paper was published in 2007,
my name shows up twice! https://www.microsoft.com/en-us/research/wp-content/uploads/2016/07/history.pdf
I kept moving around, started a Haskell user group in Boston, hosted at MIT computer science and AI lab.
I moved to Atlanta and started a Haskell user group there.
I got paid to build some tiny solutions in Haskell where the client wanted a result, and didn’t care how.
I compiled usenet newsgroups.
I converted ms word files to a custom XML format for e-learning.
At one point, Credit Suisse wanted to hire me, and asked me where I got my PhD.
I’d not yet had a college course for CS or math.
They didn’t hire me.
I applied to Galois five (six?) times, and didn’t get hired. I was told roughly that I wasn’t technical enough.
I attended the Recurse Center in 2019, spent six months writing a bunch of Haskell, wrote a nifty webapp, and THEN I got hired to write Haskell!
I got paid to write Haskell for the next five years!
The present is discord and matrix, and the Haskell Foundation.
The Haskell job market has shrunk to a very small number of employers, mostly cryptocurrency and one bank.
Conclusion: Don’t try to make a living off open source software, and especially do not try to make money building communities.
PostScript: I finished my Bachelor’s Degree in 2013, twenty four years after taking my first college class. (which makes me immune to ageism!)
- Why is it so hard to make money doing community organizing?
- Should I have given up earlier?
- Does Claude get enough credit for doing unpaid work organizing the HFPUG?
patterns:
- start: announce an event, at the same time every week, and always show up
- end: if no one shows up for two meetings in a row, close it down, and announce that
- middle: try new patterns, accept that most of them won’t work (weekend classes on #haskell failed, no one even remembers that)
- practices: anything that lets people show their skills to the community will reinforce that community ( lambdabot plugins )
I didn’t have the math, but I got it from Haskell!
What is difficult to measure is difficult for HR and CEOs to put in a budget – @b3n For security, investment comes after failure, a big hack. How could you do that for community organizing? How do you audit a community? Is it easier to get paid for internal community? Metrics are easier?
Good programmer with some human skill, teach and organize around the edges all you want! shit programmer with no human skills, nobody bothers to ask you to teach anything good human skills but no programmer?
What about funding for training? Is it required in your country? Can it be internal or must it be external? This could save money for your employer, and improve bonds between your employees! Belgium and Netherlands do require training!
Stay in contact with your favorite coworkers! Training increases psychological safety, you are SUPPOSED to ask questions! you don’t have to look like the expert in training!
This file is designed to be used with org-present
(use-package visual-fill-column
:ensure t
:config
(setq visual-fill-column-width 110)
(setq visual-fill-column-center-text t)
)
(use-package org-present
:ensure t
:config
(add-hook 'org-present-mode-hook
(lambda ()
(org-present-big)
(org-display-inline-images)
(org-present-hide-cursor)
(setq visual-fill-column-center-text t)
(visual-fill-column-mode 1)
(visual-line-mode 1)
(org-present-read-only))
)
(add-hook 'org-present-mode-quit-hook
(lambda ()
(org-present-small)
(org-remove-inline-images)
(org-present-show-cursor)
(visual-fill-column-mode 0)
(visual-line-mode 0)
(org-present-read-write)))
)