-
Notifications
You must be signed in to change notification settings - Fork 79
Google Code In 2013 Tasks
Colin J. Fuller edited this page Oct 25, 2013
·
57 revisions
Note: you may notice many of the projects here have the prefix bio-
. This refers to Biogems and does not mean they are exclusively biological packages.
Attention: All of these tasks need MORE DETAIL. Remember, these are secondary school students. Tell them what they need to do to succeed, and where/whom they can ask for help.
These primarily contain tasks in the categories Code, Documentation, and Quality Assurance. While any issue is a valid task, mentors have -- as much as possible -- tried to mark issues by difficulty level.
- NMatrix Dense and sparse linear algebra library for the Ruby language, written in Ruby, C, and C++.
- Plotrb (30+ tasks) Visualization tool based on Vega and D3.
- BioInterchange (3 issues) Generates interchangeable RDF from non-RDF data sources.
- biogems.info website (20 tasks) is a generated website that scapes information from rubygems.org, github etc. For one, we want to add functionality for SciRuby (see also http://biogems.info)
- biogem code generator (11 tasks) Biogem builds on jeweler to generate Ruby gems for bioinformatics
- BioRuby (16 tasks) BioRuby project
- bio-table (18 tasks): Swiss army knife of tabulated data; transforming/filtering tab/csv
- bio-logger (2 tasks): Bio-logger uses monkey-patching to add heaps of functionality to log4r
- Bio-Sequenceserver (37 issues Webserver for BLAST
- bio-sambamba (10 tasks): help to create Ruby FFI bindings to the Sambamba library (processing SAM/BAM files that are commonly used to store aligned nucleotide sequences)
- Get all YARV-compatible gems in the SciRuby umbrella project (especially Statsample, NMatrix, Distribution, Minimization, Integration, Plotrb, Rubyvis, PubliSci, etc.) working together. Right now, dependency conflicts exist, particularly surrounding NArray and Ruby/GSL. We have versions of both of these gems (gsl-nmatrix and narray-nmatrix) which work with NMatrix, but they need to be listed as dependencies in place of the old versions.
- Cross-list all SciRuby gems as biogems, so they'll be listed on biogems.info. (Don't rename them with the
bio-
extension.) - Ensure all of the SciRuby gems meet the proposed standards for inclusion in SciRuby.
- Create a git repository template for an empty Ruby gem to supplement the instructions listed below. It should also follow the SciRuby gem inclusion draft guidelines.
- Clean up the C, C++, and Ruby function comments throughout NMatrix so they render in beautiful HTML when RDoc is run.
- NMatrix non-API method documentation. Many of the methods throughout the C++ extensions for NMatrix lack clear documentation on parameters, what they return, and sometimes even what they do; this makes it harder for new contributors to jump in and start coding. Pick a less than fully documented method, explore what it does, and add documentation clarifying what you've figured out. NMatrix mentors can suggest simpler or more complicated methods, depending on how deep you want to dive into the code.
- Write instructions for creating a simple Ruby gem with no C or Java extensions.
- Write instructions for creating a Ruby gem with a C or C++ extension. Use NMatrix as your model.
- Write instructions for creating a Ruby gem with a Java extension. Use Ruby-Band as your model.
- Find an answer to this StackOverflow question about the
volatile
keyword in C++. - Find an answer to this StackOverflow question about Travis-CI and GCC versions
- Find a bug in any SciRuby project and write a spec which demonstrates the bug. Send a pull request.
- The spec should be written as outlined in the NMatrix issue tracker.
- Stress tests for NMatrix code. NMatrix has a lot of back-and-forth between ruby and C++ code, and this sometimes leads to subtle bugs (for example, bugs that only happen when garbage collection runs at a particular time) that aren't caught by the unit tests because they only show up on long-running or complex programs. Pick a functionality and write stress tests that perform that function many times, on huge matrices, etc. Try to break things in unusual ways. (Keep these separate from normal unit tests so that the long-running tests don't get run with every commit.)
- Write a Plotrb function and rake task / generator for quickly creating jsfiddles for plot code.
- Update our website to include a Like button for our Facebook page.
- Develop standard 'stylesheets' for people wanting to make pretty plots in Plotrb or Rubyvis. How thick should the lines be? What fonts look good (serif versus sans serif)? What about the rules (the axes and such)? What about stroke versus fill? This topic might also fall under the UI category, as we expect some coding will be required and you might be able to devise some shortcuts for Plotrb as well. It's divided into several individual tasks.
- Preparation: Devise an API for applying a stylesheet to plots.
- Screen plots: Devise a stylesheet for screen plots which can be applied with the API.
- Print plots: Devise a stylesheet for print plots which can be applied with the API.