Difference between revisions of "Computing"

From Jtkwiki
Jump to navigationJump to search
Line 17: Line 17:
 
* Identification and description must be kept separate.
 
* Identification and description must be kept separate.
 
** Primary keys should be generated where reasonably possible.
 
** Primary keys should be generated where reasonably possible.
 +
 +
 +
== Software ==
 +
 +
An incomplete list of software that I use.
 +
 +
* The [http://www.r-project.org/ R] statistical computing language and system
 +
* [http://www.python.org/ Python], a scripting language with a very decent level of support for object oriented programming
 +
* The editors [http://www.gnu.org/software/emacs/ emacs] for larger edits, and vi for smaller edits (yes, I use both)
 +
* [http://java.sun.com/ Java]
 +
* [http://www.postgresql.org/ PostgreSQL], a free SQL database management system
 +
* the [http://www.cmp.uea.ac.uk/~jtk/transsys/ transsys] simulator for regulatory gene networks (which I've written myself)
 +
 +
*

Revision as of 07:23, 16 July 2008

Programming Principles

General

  • Keep code and data strictly separate.
    • Be aware of whether your programming creates executable content.
  • When using random number generators, seed them explicitly to keep your results reproducible.

Debugging

  • Computers are deterministic machines. All bugs can be reproduced.

Object Oriented Programming

  • An instance in a computing process must represent exactly one instance in the modelling domain.
  • Use random number generator objects where possible.

Databases

  • Identification and description must be kept separate.
    • Primary keys should be generated where reasonably possible.


Software

An incomplete list of software that I use.

  • The R statistical computing language and system
  • Python, a scripting language with a very decent level of support for object oriented programming
  • The editors emacs for larger edits, and vi for smaller edits (yes, I use both)
  • Java
  • PostgreSQL, a free SQL database management system
  • the transsys simulator for regulatory gene networks (which I've written myself)