Software Development Tutorials

50 views
Skip to first unread message

Jim Hokanson

unread,
May 17, 2015, 7:26:04 PM5/17/15
to openworm...@googlegroups.com
Hi all,

  I've been kicking around an idea for a while that I'd like to share in a bit more detail with everyone. 

I like to think that as an open group anyone can join and contribute. I believe this is true in the form of offering criticism or feedback. However when it comes to contributing through programming I'm not so sure. This isn't due to rejected pull requests as much as it is getting someone to understand what a pull request is, as well as a host of other software development specific things.

  As an open-science group I think we could really lead the way on how to bring anyone into the programming fold.

  I suggested this briefly a while back in one of our meetings and one of the suggested approaches was to place this info in the docs. I think that is a start, although I could easily envision this being its own repo/website. The goal of this repo would be to document details regarding software development (more details below). It wouldn't necessarily need to contain all original content. Its main achievement would be to have a singular place for identifying technologies and approaches as well as describing approaches that group members use to develop software. Most of it would likely be non-Openworm specific, but I think it would be a great resource to point new (and old?) group members to.

Here's some topics off the top of my head, in no particular order, that hopefully illustrate the kinds of topics I think we could flush out. Many of these are issues I've run into myself that took more than a couple of seconds to figure out. I apologize in advance that most of these are Python centric.

- software versioning
- git vs svn vs mercurial etc
- git basics 
- git tools for various OSes - e.g. tortoisegit
- github basics
- licensing a repo
- forking vs branching
- recommended Python IDEs for various OSes, especially with a scientific development focus
- proper code documentation standards for each language - this could be generic and then we could provide OW specifics in our docs repo
- how to merge conflicting code
- binary file distribution
- continuous integration
- travis-ci
- json, yml
- md, rst
- HDF5
- readthedocs
- multiple python installations
- targeting pip to a specific python installation
- whl, easy_setup, egg,
- pypi
- Christoph Gohlke's website
- requirements.txt
- virtualenv
- homebrew
- maven
- django
- aws
etc.

Would this be useful? Does something like this already exist? Thoughts?

Jim

Padraig Gleeson

unread,
May 18, 2015, 5:17:04 AM5/18/15
to openworm...@googlegroups.com
Hi,

This could be based on, or could extend the contents of Software Carpentry: https://software-carpentry.org/lessons.html

See also http://datacarpentry.org.

Padraig
--
Visit us online at:
http://openworm.org
http://blog.openworm.org
http://github.com/openworm
http://twitter.com/openworm
https://plus.google.com/s/openworm
---
You received this message because you are subscribed to the Google Groups "OpenWorm-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email to openworm-discu...@googlegroups.com.
To post to this group, send email to openworm...@googlegroups.com.
Visit this group at http://groups.google.com/group/openworm-discuss.
To view this discussion on the web visit https://groups.google.com/d/msgid/openworm-discuss/912927f6-4e0d-4430-8097-047d600288b8%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

-- 
-----------------------------------------------------
Padraig Gleeson
Room 321, Anatomy Building
Department of Neuroscience, Physiology&  Pharmacology
University College London
Gower Street
London WC1E 6BT
United Kingdom

+44 207 679 3214
p.gl...@ucl.ac.uk
----------------------------------------------------- 

Miguel Camarena

unread,
May 18, 2015, 11:12:49 AM5/18/15
to openworm-discuss
I think this is a great idea. I'm not an expert in software development all these resources are great to have.

Please keep sharing,
Miguel

Joe Landau

unread,
May 18, 2015, 2:43:05 PM5/18/15
to openworm-discuss
Second the motion. I noted that for a programmer who may be very competent but who has been working only in a Windows environment, only a very few of the items on your list would be even intelligible, let alone familiar. 

My suggestion would be a mentor who could guide the newbie.

Joe

--

Chee Wai Lee

unread,
May 18, 2015, 2:43:05 PM5/18/15
to openworm...@googlegroups.com
Hi,

   I think that's a great idea!

   It'd be great to also know what sort of programming workflow people prefer when working together. That way, each tool documentation can fit into some workflow schema that people are familiar with.

   I generally manage my development environment with homebrew on my Mac, and support software stack hot-swapping via the Modules environment (google for "Modules environment" it is pretty nifty if you need to test your code base against multiple different software environments - eg different compilers, versions of python ... on the same machine.) My own code is version-controlled via git, and bugs tracked by Mantis BT. I have yet to properly doxygenate any of my codes, and I'm wondering if people use any auto-documentation tools for the modules supported in this project.

   We could start to document best coding/development practices where our group is concerned on our developer's Wiki pages.

Best Regards,
Chee Wai

Stephen Larson

unread,
May 18, 2015, 3:24:22 PM5/18/15
to openworm-discuss
Great suggestion, Jim, and we have a start on sections like that in the docs currently here (GitHub topics) and here (Python standards, rather embryonic).

I would point out that Travis Jacobs just made it easier to contribute to the OpenWorm docs as they are all now 100% GitHub Markdown instead of the RST language we had before that was a bit harder for folks to get into.

So, please please send us pull requests with improved versions of this content! :)

Lastly, we are experimenting with a "hackathon" style approach to interactions starting this Sunday with the movement validation subteam, and through tools like ScreenHero.  These may be great kinds of interaction spaces to further share best practices on these things.

Thanks,
  Stephen


Project coordinator
"Talk is cheap, show me the code" - L. Torvalds

Reply all
Reply to author
Forward
0 new messages