Getting involved

"If you can feel what I'm feeling then it's a musical masterpiece" - Beastie Boys, Pass the Mic

If I can be personal for one moment, I'd like to say that open source software has been a big part of my life. I've learned a lot from working with people in all sorts of projects, and being able to read code on Github and docs that people write has really helped me. That's why I've made these docs available for free on my Github, as well as for sale on Leanpub.

I'd recommend that all devs contribute to open source software. It helps you learn, to say nothing of the potential benefits for others! In fact, I feel so strongly about it that I gave a talk at the 2013 Bristol IT MegaMeet on the topic "Coding in Community". It helps others who have helped you. Also, it raises your profile. I used to do a lot of interviewing in my last job and believe me, candidates with a lot of open source activity always appealed to me more than the Joey Jobsworths of this world!

Github

Github is a really good way of distributing open source software. It's so commonly used that you can really get involved. I'd recommend starting here first. Li3 has a whole bunch of repos, many of which are owned by the Union of Rad, who are the team behind Li3. Spend some time browsing https://github.com/UnionOfRAD and you're sure to learn a thing or two!

Reporting issues

The easiest way to get involved is to report any bugs that you find. Be a jolly good sausage and include a unit test if you can - this really helps the person to whom you are reporting the bug to know when it's resolved! Github is generally the place where most projects have their issue trackers.

Documentation

The next level up, in my view, is creating docs. In fact, this book started because I wanted to learn Li3 and there wasn't a book that I could find, so it took it upon myself to write one!

For example, I contributed to documentation when writing this book - it can be really valuable. If you have a question, and you've done a bit of research, chance are others may have that question also.

You can even contribute to this book via Github! I'll happily credit you as a contributor should you submit some content that I end up using.

Fixing bugs

If you've reported an issue, perhaps you can fix it? Generally, my process is:

  1. Fork the repository to my Github
  2. Clone locally
  3. Fix the bug
  4. Push to my master (rebasing if there are upstream changes)
  5. Submitting a pull request

All that Git gubbins is a bit out of scope of what this book is trying to get across but I want to encourage you - get involved with open source! You'll make mistakes - I've submitted dozens of pull requests where the devs have gone either "huh?" or "you've got the wrong end of the stick mate!" - doesn't matter! It's fun to be part of things.

Creating plugins

You can extend Li3 with your own plugins - and then open source them back to the community! How cool is that! The Li3 docs on creating plugins should be your first port of call. I would like to add a chapter on plugins at some point so hopefully the book will sell enough copies to keep me writing!

Attend meetups

It doesn't have to be all about Li3 (as cool as that is!). There are dozens of tech meetups all over the world - I help run one called Unified Diff and I absolutely love it - we have talks from anyone who has something interesting and techie to say! I also attend UX meetups, big data meetups, hack nights... Of course, time is short but yeah I love these things.

The one I love more than the others though is cardiffdevworkshop.com. I run these roughly every two months and provide free workshops and people kindly give their time to come and teach.

There's nothing stopping you from attending, teaching, or even organising one of these!

Organising a meetup

Here are my tips on running meetups:

First things to decide: what's the meetup objective? Who are you serving? What format should it take? Do you want talks, or just a chat in a cafe? The two things I (co-)run, Cardiff Dev Workshop and Unified Diff, are very different in format and objective.

Then, first thing I'd do is register on meetup.com. Yes, this step costs money, but I don't think it's too much. Meetup.com makes you discoverable and gives you all kinds of tools out of the box; it's really good!

Now spend some time writing your mission statement and all the info that Meetup.com requires. Once that's ready - book somewhere - have an event to promote. DO NOT GO DOWN THE ROAD of trying to please everyone and fit in with everyone!!! Pick a date and a venue and a topic or whatever and stick to it. Have an itinerary - describe what the event is about.

Next, get a Twitter and follow people. Pinch similar meetup following list as a starting point! Start letting people know about your meetup. If they're not into it, that's fine, never pester people, but make the information as widely available as possible. Meetup.com is perfect for this and Twitter is a good backup.

General tips:

  • Cross promote. It's not a competition! Tell your peoples about other meetups they might enjoy.
  • Don't worry about numbers. Two people can learn from each other; any more is a bonus.
  • People will whinge at you. They'll moan that you're being unfair. They will complain about all sorts of things - especially in our industry, where a lot of us lack social graces - it might take a while but it'll happen. When it does, look back at your original mission statement and check you're still on course. If you are, then simply ignore them as politely as possible!
  • regularly look for people on Twitter that match your target audience

Feel free to do it your own way, of course, this is just based on the last two years of organising meetups!