on Mac OSX
Developer Productivity
Power Ups
by Matthew McCullough, Ambient Ideas, LLC
Slide 2
Slide 2 text
Matthew McCullough
@matthewmccull
Slide 3
Slide 3 text
Who’s This?
• Matthew McCullough
• Mac OSX user for 5 years
• Productivity aficionado
Slide 4
Slide 4 text
Who’s this for?
• Mac OSX users
• Developers asking if there are any
more ways to increase their
productivity
Slide 5
Slide 5 text
http://delicious.com/matthew.mccullough/macosx
Slide 6
Slide 6 text
Cloud
services and sync
Slide 7
Slide 7 text
GitHub
• Social coding
• GitHub for Mac desktop app
• Private and public repos
• Post-receive hooks for email
notification, bug tracking updates
and build triggers
Slide 8
Slide 8 text
No content
Slide 9
Slide 9 text
No content
Slide 10
Slide 10 text
No content
Slide 11
Slide 11 text
No content
Slide 12
Slide 12 text
Hub Gem
• Productivity gem on top of Git CLI
• GitHub specific web service calls
• Install from Brew or Gem
Slide 13
Slide 13 text
Gist Gem
• Share snippets of code
• Put resultant URL on clipboard
• Share code samples, snippets
Slide 14
Slide 14 text
CloudApp
• Command line for the cloud
• Like DropBox in some ways
• URLs
• Automatically copied to clipboard
• Just added to oh-my-zsh
Slide 15
Slide 15 text
No content
Slide 16
Slide 16 text
No content
Slide 17
Slide 17 text
No content
Slide 18
Slide 18 text
No content
Slide 19
Slide 19 text
Dropbox
• Simple file sync
• It just works
• Understands Mac OSX resource
streams
• Permits symlinks & hardlinks
Slide 20
Slide 20 text
No content
Slide 21
Slide 21 text
No content
Slide 22
Slide 22 text
Links
• On first machine
• ln -s
• On second machine
• ln -s
• Treated differently than Mac OSX
shortcuts (Alt+Cmd+drag)
• Linked .bashrc, other shell configs
Slide 23
Slide 23 text
EC2
• For any remaining Windows needs
• Running QuickBooks
• Small instance is now free
cd -
• Change directory back to last folder
• Like a cheap pushd popd
Slide 35
Slide 35 text
No content
Slide 36
Slide 36 text
zsh
• Like an improved Bash shell
• First class functions
• Modular enhancements
• Already installed on Mac
Slide 37
Slide 37 text
No content
Slide 38
Slide 38 text
OS
Slide 39
Slide 39 text
OS
Slide 40
Slide 40 text
Terminal
Slide 41
Slide 41 text
oh-my-zsh
• Zsh plugin framework
• Git repo info
• Right side prompt
• Gradle plugin
• Themes
• Autojump
• Pushd stack persistence
• Remember-folder
Slide 42
Slide 42 text
oh-my-zsh
• Middle-of-name completion
• cd is the assumed command
• Wildcard expansion happens in the shell, not the tool
• Option-switch completion for hundreds of tools
Slide 43
Slide 43 text
No content
Slide 44
Slide 44 text
No content
Slide 45
Slide 45 text
No content
Slide 46
Slide 46 text
XCode
• A means of obtaining cc and gcc
• Used to compile MacPorts and
Brew packages
Slide 47
Slide 47 text
No content
Slide 48
Slide 48 text
MacPorts
• Package manager for Mac
• Requires sudo access
• /opt/local/bin
Slide 49
Slide 49 text
No content
Slide 50
Slide 50 text
Homebrew
• Package manager for Mac
• Backed by a Git repo
• Works with user level access
• /usr/local/bin
Slide 51
Slide 51 text
No content
Slide 52
Slide 52 text
lftp
• Scriptable ftp client
• Install from MacPorts or Brew
• Recursive sync with lftp mirror -R
Slide 53
Slide 53 text
No content
Slide 54
Slide 54 text
TMUX
• Better than screen
• tmux
• tmux attach
• Ctrl-B help
Slide 55
Slide 55 text
No content
Slide 56
Slide 56 text
TextMate
• Copy-as-rtf Plugin
Slide 57
Slide 57 text
No content
Slide 58
Slide 58 text
File Management
Slide 59
Slide 59 text
Path Finder
• The original tabbed Finder
• Standalone app
Slide 60
Slide 60 text
No content
Slide 61
Slide 61 text
TotalFinder
• Tabbed Finder
• Plugin to core OS Finder
• Cut and paste
Slide 62
Slide 62 text
No content
Slide 63
Slide 63 text
Quicklook Plugins
• Extensions for code
• Extensions for markdown
• Extensions for zips
TextExpander
• Expands text snippets
• Syncs via DropBox to desktops
• Syncs by WiFi to iOS
• Trumped on mobile by iOS 5 snippets?
• Works for coding and communications
Slide 90
Slide 90 text
No content
Slide 91
Slide 91 text
No content
Slide 92
Slide 92 text
System Key Mapping
• Make a global shortcut for any
menu item
• Turn one key into another
Slide 93
Slide 93 text
No content
Slide 94
Slide 94 text
No content
Slide 95
Slide 95 text
Things
• ToDo manager, deeply linked to
apps on OSX
• Alt+Cmd+T
• Create task with context (links)
Slide 96
Slide 96 text
Emacs Shortcuts
• Emacs shortcut keys work across
Mac OSX
Slide 97
Slide 97 text
Emacs Shortcuts
• `C-a` Go to Beginning of line
• `C-e` Go to End of line
• `C-u` Delete from cursor to beginning of line
• `C-k` Delete from cursor to end of line
• `C-w` Erase word to the left
• `C-t` Transpose characters around cursor
• `C-f` Forward a character
• `C-b` Back a character
• `M-f` Forward a word
• `M-b` Back a word
• `C-d` Delete character to the right
• `M-DEL` Delete word to the left
Slide 98
Slide 98 text
No content
Slide 99
Slide 99 text
Marco Polo
• Location aware settings
• Set confidence and triggers
Slide 100
Slide 100 text
No content
Slide 101
Slide 101 text
No content
Slide 102
Slide 102 text
Growl
• Pop-over notification framework
• Works with
• Marco Polo
• Skype
• Twitter
• Mail
• iTerm2
• Gradle
Slide 103
Slide 103 text
No content
Slide 104
Slide 104 text
No content
Slide 105
Slide 105 text
1Password
• Syncs via DropBox to desktops and
mobile devices
• Manages my 1400 passwords
• AES 256 bit hashed password
encryption
• Random password generator
Slide 106
Slide 106 text
No content
Slide 107
Slide 107 text
No content
Slide 108
Slide 108 text
No content
Slide 109
Slide 109 text
No content
Slide 110
Slide 110 text
Web
Slide 111
Slide 111 text
TypeToNavigate
• Safari Plugin
• Keyboard navigation of links