Balance between excell and C++ is NB
- Python -- a bit more flexible than MATLAB for instance
- Matlab
- R
These are great because they're really transportable between systems
- Emacs
- VIM -- good to learn this for any main frame
- Textmate - This is what I use
- BBedit
- TextWrangler
- Sublime
- Scite
You are a lot more limited to one machine when you use an IDE
- Spyder
- MATLAB
- Eclipse
You should program in scripts - this is very useful for when you need to revisit the plot are processing script. When it comes to this sort of thing it's important to modularise. Keep it simple for the functions/modules. This will make it much easier to understand the script later.
Try to make your figures publishable as soon as you can - using functions. Store figures as VECTOR if you can, but for colormaps with loads. VECTOR = eps, pdf, svg RASTER = jpg, png, bmp If you have to save as a RASTER file you should use png, because it has lossless saving. jpg sucks when it comes to this. For VECTOR use pdf or svg. eps is clunky and going out of fashion.
Should I ever use RASTER over VECTOR? RASTER is really good for quickly looking at figures. Bror prints to both. One for publishing and HQ and the other is for just viewing the figures.
The devil in MATLAB plots: MATLAB has three plotting engines:
- OpenGL - only
- Painter
- someting else
In python you can save one part of a figure as vector and another as raster. Really useful for color maps.
There are two principle ways you can write and another side-one:
-
WYSIWYG: (What you see is what you get) word, GoogleDocs. These are binary files that store all the data in the file. This is really clunky and a lot of stuff gets saved in the history of the binary file.
-
LaTeX: use this - don't even think about using the other editors. The advantage of LaTex is also . This is also realy good for doing equations. Here are some package options:
- TexShop: Just another LaTeX file.
- LatexIt: For creating equations for powerpoint and presentations etc.
- Bibtex: This is how you do citations.
- Markdown: This is easy to write. There are a bunch of tools to convert this to nice formatting (LaTex). Pandoc does this. This document is written in Markdown. Here is a link to a Cheat Sheet
What you'd to store / backup:
- easy to use
- quick
- automatic
- Off site
- Incremental
But there is no single solution :-(
A Mac-Centric view:
- Clone entire machine: CCloner, Superduper bootable clones
- Time Machine: has same functionality as cloning, but doesnt always work that well
- Backblaze - these are not incremental. Dropbox is also another option, though it has its quircks - once you delete your files, they're gone
- Version/Incremental control - GitHub is amazing and it has a nice GUI. This is great for working on projects with a team. Commenting is also useful. Can work in parallel by branching the repo. Git also has difference control.
GITHUB side note: It has a whole lot of user control stuff. To do lists. Stats, etc.
Find a good way to share data early. This is not email. GitHub is one way of sharing.
- Etherpad: is a web based document that you can share stuff on.
- Gist: is a short quick solution to sharing code. Often used to solve little problems. It's online and everyone can access it and you can comment
- Blogs: Useful for sharing your info to the public.
- Webserver: Not sure if we have it at UCT. Something to test. But it's a great way to do things. Would be great if we could have this. Bror used a student who used to post figures straight to her webserver.
- Social Media: Our google communities page is a pretty good example.
- Cyberduck: Similar to filezilla. Sharing.
- Ge.tt: Sharing files for less than 30 days.
- Google Drive: $2 for 100GB
Benfit of FTP over Dropbox? With FTP the data is there and can't be moved or deleted as would in Dropbox.
Thinking about sharing: if someone publishes your data, you don't get the cred. But your supervisor has to help you with IP stuff. What is the sensitive stuff and what is the non sensitive stuff.