Technology and Tools
Data Collection, Management and Analysis
Software
There's directions on how to install everything for stimulus presentation with Python + VisionEgg here. And some obscure things that took me at least 10 minutes to figure out are here.
- OSX
- Everybody's favorite UNIX vendor. Be sure you install XCode, that's how you get your C compiler.You'll need to sign up as an apple developer. You can do it for free, just read and look carefully for the tiny links.
- Python
- Numpy / Traits / Chaco / PyTables / VisionEgg (Pyglet?). Easiest way is with the Enthought Python Distribution.
- R
- Bonus: Gets you gfortran on OSX
- Vim
- Really, you can do it! Get MacVim (note - different from macvim.org, which is NOT what you want). It's awesome. Also, pester me to put up my vim config on github or something!
Books
Linear Algebra Done Right - Adler
Applied Mathematics - Strang
Machine Learning - Bishop
Hardware
- LabJack U3
- This is what I use
- Arduino / Atmel
- Quite inexpensive and excellent open-source programmable microcontrollers with IO.
Storing Data
- CSV
- This is the best format for small tables. A good rule of thumb is, would it make sense to look at this in a spreadsheet? CSV is one of the oldest formats, and thus supported by nearly everything: any spreadsheet program (not the case for tab-delimited, for example - Apple's Numbers only reads CSV!); R - read.csv and write.csv; Python - use the csv module; they are human readable too! So you can use a text editor.
- HDF5
- This is a very efficient binary file format that is good for storing any kind of data. But you lose the ability to read your data without special tools. PyTables in Python is awesome (but there are other more "lightweight" libraries as well), you can also do relatively primitive reads from R (you need to install the package from CRAN), and there are decent command-line and graphical tools (ViTables is my choice - though it's a PITA to install, and there's also one in Java).
- YAML
- This is a good text format when you have hierarchical rather than tabular data (like lists and dictionaries of lists and dictionaries of ... in python). It's similar to JSON, if that means anything to you, but with richer semantics (so it's really closer to XML semantics). Again, these files are easy to manipulate in Python using PyYAML, and are also human readable.
Conspicuously absent are SQL databases. These are useful for massive concurrent access, granular security models and complicated SELECT queries that you can't necessarily predict ahead of time. You are almost never doing this kind of thing in science. The one exception would be projects like XNAT, which actually do all of those things I just described.
Reading and Writing
Zotero
BibTeX
LaTeXit (installed by MacTeX)
OmniGraffle
Vim
iWork
Productivity and Project Management
Getting Things Done
ToodleDo
Vim
Other Stuff nice on OSX
- MacTeX
- Also installs ghostscript and imagemagick
- command line
- macports will install lots of useful stuff, but brew seems like a more modern, pragmatic system
- Quicktime components
- Flip4Mac (for WMV) and Perian (almost everything else) will let you play and even manipulate many other codecs