pimp my dev box (friday training at itnig)
DESCRIPTION
How many times a day do you switch from mouse to keyboard and viceversa? Do you still use BASH? Are you taking advantage of GIT or is GIT fooling you daily? In this talk I’ll show your how to dramatically boost your productivity just by enhancing your development toolset. You will learn many OSX tweaks that get rid of stupid-proof features and give you an extra performance boost, alternative shells that will aid you and enrich your experience when working with the console, application launchers/window managers that will make you forget about your mouse and, finally, how to automate many of your GIT/GitHub development workflows. The talk is primarely focused on the development of Rails apps on OSX but many of the tricks are also applicable to other OSes and languages.TRANSCRIPT
Pimp my dev box
Víctor Martínez@knoopxhttp://github.com/knoopxhttp://knoopx.net
I'm sorry, are you from the past?
Pimp my shell
First of all, get a dark themeYour eyes will thank you at the end of the day
(My own)https://github.com/knoopx/knoopx.terminal
Solarizedhttp://ethanschoonover.com/solarized
Then, please, get a (good) package manager
Replace Apple's bundled BSD* tools with the GNU ones
$ brew install findutils ack grep bash gcc (...)!
they are far more powerful
(*) Only some of them are really BSD, but Apple usually ships dinosaur-aged GNU software with their OS.
Install some other cool softwarebrew install wget colordiff rmtrash unrar (...)
● wget: downloads files from the internets● unrar: unpacks files from the internets● colordiff: get colorful differences between files● rmtrash: send files to OSX trash instead of deleting them
alias diff=colordiffalias find=gfindalias rm=rmtrash
...and make them your defaults
Replace BASH with a modern shell
ZSH
fish
I choose ZSH, what do I get?
● colors, rainbows and unicorns● unified history between tabs● tab tab tab! out of the box
autocompletions for almost everything
● keyboard navigable completion lists● powerful globbing and expansions● syntax highlighting● plays well with floating point
calculations● (many more! STFW!)
ZSH is essentially an enhanced experience of everything you already know from BASH
$ brew install zsh
Don't fall into the configuration madnessUse an existing community-maintained package of zsh configurations:
● oh-my-zsh● zsh-lovers● zsh-users
Keep your settings under version controllike all the other cool kids around
Pimp my GIT
Use __git_ps1 from git/contrib
do not reinvent the wheel
Send pull-reqs from the terminal$ git co awesome-feature
$ git pull-req # $EDITOR opens asking you for PR title/msg
$ subl ~/bin/git-pull-req
Do the house cleaning once a weekPrune stale remote-tracking branches
Delete already merged branches
Do everything at once
$ git remote prune origin
$ git branch -d `git branch --merged | grep -v \* | xargs`
$ git branch-cleanup
$ cat ~/bin/git-branch-cleanup
git remote prune origin && git branch -d `git branch --merged | grep -v \* |
xargs`
Use mergetool
Automate conflict resolution$ subl ~/.gitattributes
$ subl ~/.gitconfig
Use GitXThe only useful GIT GUI
Lets youvisualize
Use GitXThe only useful GIT GUI
Review, stage and commit
Use GitXThe only useful GIT GUI
Friendlier diffs
$ git diff master | gitx
Use GitXDon't be lame, do everything else from the command line. Mastering GIT will make unstoppable.
$ git rebase -i HEAD~5$ git reset --hard origin/master$ git merge --no-ff awesome-feature$ git checkout -b features/new-one
✕ ✔
Pimp my desktop
Apply developer-friendly OSX settingsThese fancy Apple features makes you waste time
http://mths.be/osx
or better yet, use QuicksilverUse an application launcher
Alternatives: Spotlight, Alfred.app, Launchbar
http://qsapp.com/
What can I do with Quicksilver?
Launch/switch applications Play some music
What can I do with Quicksilver?Browse your clipboard history
Move files
What can I do with Quicksilver?
Quickly jump right into your project folder
What can I do with Quicksilver?Unlimited possibilities! Master it!
Manage your windows with the keyboard
Use spectacle.app instead
http://spectacleapp.com/
Never, ever, use these buttons
Master the keyboard shortcutsHotkey EVE http://hotkeyeve.github.com/eve/
Cheatsheet http://www.cheatsheetapp.com/CheatSheet/
Thanks for watching
Now you are a little more productive