Skip to content

Instantly share code, notes, and snippets.

@lukegre
Last active April 17, 2017 10:40
Show Gist options
  • Save lukegre/fd1a143a54f672cfe92a to your computer and use it in GitHub Desktop.
Save lukegre/fd1a143a54f672cfe92a to your computer and use it in GitHub Desktop.

Bror's tool belt

Balance between excell and C++ is NB

Work

Find a good scripting language

  • Python -- a bit more flexible than MATLAB for instance
  • Matlab
  • R

Find a good text editor

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

What about IDEs?

You are a lot more limited to one machine when you use an IDE

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.

Figures

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.

Write

There are two principle ways you can write and another side-one:

  1. 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.

  2. 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.
  1. 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

Store

What you'd to store / backup:

  • easy to use
  • quick
  • automatic
  • Off site
  • Incremental

But there is no single solution :-(

A Mac-Centric view:

  1. Clone entire machine: CCloner, Superduper bootable clones
  2. Time Machine: has same functionality as cloning, but doesnt always work that well
  3. Backblaze - these are not incremental. Dropbox is also another option, though it has its quircks - once you delete your files, they're gone
  4. 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.

Share

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment