Mac OSX Productivity Tips for Developers

Mac OSX Productivity Tips for Developers

These are the slides that accompany the Matthew McCullough and Tim Berglund video series produced in association with O'Reilly Media at http://shop.oreilly.com/product/110000007.do

The reference repository for this video series is at https://github.com/matthewmccullough/MacOSXProductivityTips/

Bededa744012c87721d68f69342f81b0?s=128

Matthew McCullough

December 01, 2013
Tweet

Transcript

  1. Developer Productivity Tips for Mac with Matthew McCullough and Tim

    Berglund
  2. None
  3. a more productive developer

  4. language-agnostic

  5. trial and error and trial and success

  6. UNIX roots

  7. The Platform ✓POSIX compliant ✓Ruby, Bash, and Zsh scripts work

    out of the box ✓Application-imposed common shortcuts
  8. Keyboard hacks

  9. expand snippets system-wide

  10. None
  11. None
  12. None
  13. customize shortcuts system- wide

  14. None
  15. emacs hotkeys system-wide

  16. ⌃+a Go to beginning of line ⌃+e Go to end

    of line
  17. ⌃+u Delete from cursor to beginning of line ⌃+k Delete

    from cursor to end of line
  18. ⌃+w Erase word to left ⌃+t Transpose characters around cursor

  19. ⌥⌃+f Move forward a word ⌥⌃+b Move backwards a word

  20. modifier Keys

  21. None
  22. Safari keyboard Link Selection

  23. None
  24. Terminal tips

  25. iTerm 2

  26. multi-monitor compatible full screen

  27. multi-tab profiles

  28. preservable window layouts

  29. enhanced terminal prompts

  30. $ echo "This is devoid of any useful info" $

  31. [scripts (master)⚡]> echo "This is more informative"

  32. None
  33. ╭─mccm06 at Detronia in ~/Downloads ╰─◦ echo "This is much

    more informative" ╭─mccm06 at Detronia in ~/GitHubProjects ╰─◦
  34. Source Control assistants

  35. tig Git ASCII GUI

  36. None
  37. the hub gem

  38. None
  39. command line for GitHub

  40. uses the GitHub API

  41. $ hub clone dotfiles Cloning into 'dotfiles'... remote: Counting objects:

    560, done. remote: Compressing objects: 100% (292/292), done. remote: Total 560 (delta 288), reused 517 (delta 256) Receiving objects: 100% (560/560), 214.32 KiB | 316 KiB/s, done. Resolving deltas: 100% (288/288), done.
  42. file Formats

  43. the Markdown format

  44. Gruber, daring fireball

  45. Multimarkdown

  46. GitHub Flavored Markdown

  47. the Asciidoc format

  48. show gradle nao

  49. the DocBook format

  50. leveraging the Pandoc toolchain

  51. Package management

  52. MacPorts

  53. rsync-based package manager

  54. None
  55. Homebrew

  56. Git-based package manager

  57. None
  58. None
  59. searching with Spotlight

  60. search criteria constraints

  61. name:<phrase> objects with this phrase in their file name

  62. kind:<type> objects of this type

  63. date:<date> objects modified on this date

  64. date:today objects modified today

  65. date:>1/1/08 objects modified after 1/1/08

  66. modified:3/7/08-3/10/08 objects modified between these two dates

  67. created:=6/1/08 objects created on this date

  68. AND join two rules together

  69. OR optionally join two rules together

  70. NOT exclude a second condition

  71. search result behaviors

  72. ⌘⌥ <hover> show path to file

  73. ⌘<enter or click> open containing folder in Finder

  74. moving with Finder

  75. moving files without cut

  76. ⌘C copies file to pasteboard

  77. ⌘⌥ V moves file from pasteboard

  78. viewing with QuickLook

  79. QuickLook Extensions

  80. for Java files

  81. for ZIP files

  82. for Markdown files

  83. for XML files

  84. QuickLook from the CLI

  85. $ ql <filename>

  86. $ qlmanage -p "$@" >& /dev/null &

  87. saving to the Cloud

  88. saving to CloudApp

  89. None
  90. None
  91. $ cloudapp <filename> Uploaded to http://cl.ly/text/ 1B0T0t2e0V3c.

  92. saving to Gists

  93. None
  94. Tweeting with T

  95. None
  96. $ t update "Chirp from the CLI"

  97. $ t update "At the @OReillyMedia studio in Sebastopol with

    the @tlberglund, ready to record some more videos with Kirk and crew." Tweet posted by @matthewmccull. Run `t delete status 369592150104633344` to delete.
  98. $ t update X

  99. Web Service helpers

  100. curl for URLs

  101. curl -I www.serverwatch.com

  102. curl api.github.com

  103. wget for files

  104. Pasteboard command line

  105. pbcopy

  106. curl serverwatch.com | pbcopy

  107. pbpaste

  108. pbpaste | gist

  109. Shell tune-ups

  110. Zsh

  111. None
  112. oh-my-zsh

  113. None
  114. dotfiles on GitHub

  115. search for "dotfiles" repositories

  116. @pengwynn

  117. @holman

  118. @matthewmccullough

  119. @<many others you'll discover>

  120. Display control

  121. Caffeine

  122. GUI component

  123. None
  124. None
  125. None
  126. Caffeinate

  127. command line

  128. $ caffeinate

  129. $ caffeinate -t 144000 &

  130. $ caffeinate <command>

  131. layout windows with Slate

  132. arrange windows

  133. size windows

  134. switch windows

  135. text based configuration file

  136. None
  137. bind e:cmd;alt;ctrl;shift ${showHintsLeftHand} bind right:cmd;alt;ctrl;shift push right bar-resize:screenSizeX/2 bind left:cmd;alt;ctrl;shift

    push left bar-resize:screenSizeX/2 bind up:cmd;alt;ctrl;shift push up bar-resize:screenSizeY/2 bind down:cmd;alt;ctrl;shift push down bar-resize:screenSizeY/2
  138. bind g:cmd;alt;ctrl;shift move ${centered} bind o:cmd;alt;ctrl;shift move ${fullscreen} bind h:cmd;alt;ctrl;shift

    move ${leftHalf} bind j:cmd;alt;ctrl;shift move ${bottomHalf} bind k:cmd;alt;ctrl;shift move ${topHalf} bind l:cmd;alt;ctrl;shift move ${rightHalf} bind u:cmd;alt;ctrl;shift move ${topLeftQuarter} bind i:cmd;alt;ctrl;shift move ${topRightQuarter} bind n:cmd;alt;ctrl;shift move ${bottomLeftQuarter} bind m:cmd;alt;ctrl;shift move ${bottomRightQuarter}
  139. AppleScript automation

  140. script Finder sleep

  141. osascript -e 'tell application "Finder" to sleep'

  142. Automator apps

  143. reformat to JPEG

  144. Command Line GUI launches

  145. open <filename>

  146. open -a "TextMate" <filename>

  147. Frecency directory navigation

  148. z <directoryname>

  149. Quick directory toggles

  150. cd -

  151. Proxy icon for files and folders

  152. Drag to copy a file

  153. Drag to copy a file path

  154. show Hidden files and folders

  155. defaults write com.apple.Finder AppleShowAllFiles YES

  156. type to change folders

  157. ⌘+⇧+G

  158. os Screen Change

  159. fn⌘ F1 = Mirror screen ⌃⌥⌘ 8 = Invert colors

  160. keyboard based Screen Navigation

  161. ⌃Shift+ F2 = Select menu bar

  162. None
  163. Boxen

  164. None
  165. The Big Ideas of Boxen

  166. the Pre-Reqs

  167. the Setup

  168. the Boxen web app

  169. the Boxen repo

  170. Running Boxen

  171. Adding packages

  172. Adding applications

  173. Adding puppet modules

  174. Curating settings

  175. None
  176. in Sum...

  177. hotkeys

  178. automation

  179. modifers

  180. spotlight filters

  181. replacements

  182. add-ons

  183. metadata

  184. Developer Productivity Tips for Mac with Matthew McCullough and Tim

    Berglund
  185. Credits ✓ "Keyboard" designed by Luboš Volkov, http://thenounproject.com/noun/keyboard/#icon-No20868 ✓ "Computer"

    designed by Edward Boatman, http://thenounproject.com/noun/computer/#icon-No115 ✓ "Code" designed by Dmitry Baranovskiy, http://thenounproject.com/noun/html-code/#icon-No4991 ✓ "Written Document" designed by Thomas Le Bas, http://thenounproject.com/noun/written-document/#icon-No6119 ✓ "Package" designed by Arthur Schmitt, http://thenounproject.com/noun/package/#icon-No18159 ✓ "Magnifying Glass" designed by Edward Boatman, http://thenounproject.com/noun/magnifying-glass/#icon-No95 ✓ "Checklist" designed by Michael Young, http://thenounproject.com/noun/checklist/#icon-No3559 ✓ "Eye" designed by Volodin Anton, http://thenounproject.com/noun/eye/#icon-No17181 ✓ "Cloud" designed by Dmitry Baranovskiy, http://thenounproject.com/noun/cloud/#icon-No9758 ✓ "HTML Code" designed by WebPlatform.org, http://thenounproject.com/noun/html-code/#icon-No13024 ✓ "Clipboard" by Seth Taylor, http://thenounproject.com/noun/clipboard/#icon-No1712 ✓ "Console" designed by Austin Andrews, http://thenounproject.com/noun/console/#icon-No8571 ✓ "Exit Full Screen" designed by Olyn LeRoy, http://thenounproject.com/noun/exit-full-screen/#icon-No4780 ✓ "Apple Core" designed by Richard Zeid, http://thenounproject.com/noun/apple-core/#icon-No9817 ✓ "Robot" designed by Kenneth Appiah, http://thenounproject.com/noun/robot/#icon-No1616 ✓ "Rocket" designed by Jean-Philippe Cabaroc, http://thenounproject.com/noun/rocket/#icon-No7427 ✓ "Compass" designed by Márcio Duarte, http://thenounproject.com/noun/compass/#icon-No7175 ✓ "Light Switch" designed by Alexandria Eddings, http://thenounproject.com/noun/light-switch/#icon-No18388 ✓ "Linked Files" designed by Iconoci, http://thenounproject.com/noun/linked-files/#icon-No10081 ✓ "Hidden" designed by Rémy Médard, http://thenounproject.com/noun/hidden/#icon-No21609 ✓ "Folder" designed by Cris Dobbins, http://thenounproject.com/noun/folder/#icon-No8928 ✓ "Map Marker" designed by Edward Boatman, http://thenounproject.com/noun/map-marker/#icon-No462 ✓ "Box Trolley" designed by Michael Zenaty, http://thenounproject.com/noun/box-trolley/#icon-No21806 ✓ "Coordination" designed by OCHA AVMU, http://thenounproject.com/noun/coordination/#icon-No4222