Start a Meetup - racket/racket GitHub Wiki
Tips on Starting a Racket User Group
shamelessly copied from http://clojure.org/community/start_group with minimal changes
Starting a user group is a great way to improve your Racket skills and find others interested in Racket in your area. If you’ve never run a user group before, that’s ok! Anyone can do it.
A user group needs the following elements:
- A place to meet. Finding a regular meeting place is sometimes the biggest hurdle a group faces when getting off the ground. Often the ideal option is finding a company that can host a group after-hours. If that’s not an option, some other choices include universities, colleges, libraries, or coffee shops. (Try to avoid pubs as not everyone is comfortable with alcohol)
- What to do? Some meetups consist of short talks and a chance to chat, others are 'Hackathon' type events where coding can provide a valuable way of meeting without the stress of both giving and arranging presentations. Hackathons can be people working on a single project or on on individual projects. They can be followed by presentations, or not. Try different things out and see what works.
- Agree on a time. It’s important to establish a rhythm to keep a group going. Pick a night (like the 2nd Tuesday of the month) and try as much as possible to have your meeting on that same night every month.
- A web presence. It’s important to have an address on the web that can be found by a search engine. See below for some tools you can use.
- Racketeers!! You can’t have a meeting without people. Ask around on the racket mailing lists for people that might be interested.
Tools
- Google Calendar - http://www.google.com/calendar
- Wordpress - http://wordpress.com - free blog and web site
- Meetup - http://meetup.com - meeting discovery, calendar, user network
- Google Groups - http://groups.google.com - free mailing list
- Yahoo Groups - http://groups.yahoo.com - free mailing list
- Wikispaces - http://wikispaces.com - free wiki
- YouTube - http://youtube.com - video hosting
Common problems
"We have a group but it’s hard to find enough speakers." or "The same people always give talks."
Not every meeting has to have a speaker that gives a prepared talk. Think creatively about other ways to have a meeting that gives value. Some ideas:
- Lightning talks - do 5 or 10 minute talks on small subjects. Paradoxically, doing more shorter talks at a meeting is sometimes easier than scheduling one big talk. Each presenter has to prepare less material and meetings have a smaller risk of a bad meeting due to one inexperienced speaker. Try doing two or three talks per meeting.
- Live coding session - start with a small problem (it’s hard to start too small for this) and let the group drive the evolution of the solution.
- Code review - bring some code and walk through it. Explain the code, take comments on style, performance, etc. Rewrite parts of it to make it better.
- Contribute - pick a bug from the Clojure bug tracker and work on it together. Or review the documentation and figure out some improvements. Even providing a list of things confusing to newcomers is useful.
- Review a paper - there are tons of great books and papers on Racket, Lisp, Clojure, functional programming, persistent data structures, etc. Pick one and lead a discussion about the merits or flaws of the paper.
- Book study group - review a book like HTDP or some other classic
- Competition - have everyone bring a solution to the same problem in Clojure or other languages and compare the result.
- Games Night - have everyone make a simple game with the Universe library and just have some fun.
"We have a mailing list but no one ever uses it."
The best way to get people talking on a mailing list is to talk on it yourself. Post your meeting announcements, meeting recaps, articles of interest, code snippets, etc. Ask people to introduce themselves on the list - people love to talk about themselves. Mailing lists require some bootstrapping. Eventually, the mailing list will become self-maintaining but it takes some work at the beginning or if there is a lull.
"Recruiters have joined our mailing list and keep posting job ads."
It’s important to have a policy for recruiters and job postings. Decide on your policy, document it, and refer people to it. Some common policies are: "job postings are allowed", "only job postings pertinent to the group are allowed", "only approved job postings are allowed", etc. Some groups have a separate mailing list only for jobs and recruiting.
"I can’t find enough people to have a meeting."
If you can’t find enough people to start a Racket group, perhaps you can broaden the scope to find others that might like to talk about Racket some of the time. Are there people interested in a functional programming group? A programming languages group? A sexp-based languages group? A programmer’s club? Remember to accommodate a range of abilities from beginners just starting out, all the way up to advanced racketeers.