About us
This is the home page for the Ashworth Codemonkeys, an informal weekly programming discussion group. We meet every other Thursday afternoon 3pm-4pm in Ashworth 3.50 to chat about topics of interest to biological programmers. Despite the name, attendance is definitely not limited to people working at Ashworth Labs, King's Buildings, or even Edinburgh University. All are welcome - especially those new to programming.
Joining us is very easy and there are only three things that you have to do:
1. Join this Google Groups mailing list
This will ensure that you get occasional reminder emails about upcoming meetings. Just click "request to join this group" if you are already signed in to a Google account. If you don't want to sign in via Google, send an email to ashworth-code-monkeys+subscribe@googlegroups.com
2. Turn up to a majority of the meetings.
We appreciate that not everybody can make every meeting, but the discussion group format works best when everybody makes an effort. Even if the topic for the week isn't something that interests you particularly, the discussion is usually illuminating.
3. Bring along a discussion topic for the group whenever it is your turn (approximately once every six months at current membership levels).
The guidelines for suitable discussion topics are deliberately broad: anything coding/scripting/programming-related that you think could be interesting or useful. This could be:
- a programming problem that you have no idea how to solve (we will try to come up with a solution together)
- a piece of code that somebody else has written (could be a single command line, a function, a program, or a whole library)
- a piece of code that you wrote (finished, unfinished, or just-started)
- an idea for a program that you are thinking of writing (and would like advice/feedback on)
- a programming tool (for example, a regular expression debugger, or an IDE)
- a useful tutorial that you found online
- a screencast that you think shows something interesting
- an interesting programming language that you have heard of or played with
- a programming article on somebody's blog (or even your own
)
Picking a discussion topic should not be a lot of work - you do not have to write slides (unless you want to) and it's perfectly fine for your chosen topic to simply be a link to an article or a reasonably open-ended question. Some people who are new to programming are worried that they don't have anything substantial to share, but that should not be a concern. The nature of programming dictates that a substantial portion of the group will be novices at any one time, and discussion topics don't have to be advanced, complicated, big, or polished.
Suggested topics
Below is a list of potential discussion topics - these are things that we have not discussed yet, but that members have suggested might be interesting. Feel free to pick something from this list if it's your turn to pick a topic and you can't think of anything. If you want to add something to this list, just edit this page and add it. If you don't have permissions to edit this page, drop me an email with your UUN and I will add you.
- pitfalls to avoid when using R, and making R faster
- basic plotting, and the easiest way to do it in R, python, and maybe PERL
- tricks with fundamental command line tools (sed, awk, grep, cut, paste, join, head, tail, diff)
- screen?
- doing interesting things with sed
- is it worth the overhead of learning to do it on Eddie?
- speeding up slow databases (should you even use a database?)
- writing simple shell scripts
- what is scope, and why should I care?
- introduction to regular expressions
- how to manage big data/big search (Would snapdragon be worth considering: https://github.com/gingi/snapdragon])
- deployments (Deployment stuff tends to be very language/platform dependent; which are we most interested in? What does 'Deployment' even mean?)
- concurrent programming (What does 'concurrent' even mean in this context?)
- Coding for efficiency - Examine the common ways to make code faster; dangers of premature optimisation
- The DRMAA interface - Parallelising tasks is becoming more needed. DRMAA can run and monitor jobs on clusters such as SGE: http://en.wikipedia.org/wiki/DRMAA, http://www.drmaa.org/, Perl_DRMAAc,drmaa-Python, PythonGrid, Maybe Java interface too
Meeting schedule
Meetings are Thursdays in Ashworth 3 room 3.50.
Presentations will start promptly at 3pm so that people who need to leave at the end can do so.
Schedule at https://docs.google.com/spreadsheets/d/1TBd99HygEq2CR-AM2PcYrcsK5kliRFdgUQB0rcBQIDE (request access if you don't have it already and someone will approve it ASAP)