# Meta: iPython and iPython Notebook (Jupyter)

- `[TAB]` is your friend
  - hit tab after typing a few characters and see what happens
  - especially after a dot
  - file names and paths
  - class attributes
  - variable names
  - module and function names during import

- Have a question?
  - Put a "?" at the end of any function or class or module
  - Put docstrings in your functions and classes and modules

- Have a deep questions??
  - Put a "??" at the end of any function of class or module
  - You'll get straight to the source of the matter

- Have a complicated history?
  - Relive your past with `hist` or `history`
  - Copy and paste your history into a file and you've got yourself a module!
  - Last session's history?
    - `hist ~1/1-9999`
    - notice the `~`, you'll see it again in `git`
  - `hist -g`
  - `history?` to learn more

- Retype the last command or 10 commands back?
  - don't ever type the same thing twice
    - be a learning machine yourself and program from "data"
  - type the [Up Arrow] and down arrow to scroll through your commands
  - hit the left or right arrow to start editing that command 
  - ctrl-C to cancel the command (in iPython)

- try `[CTRL][r]` and start typing

- try `%magic` and hit `[ENTER]`




