Every engineer's workstation configuration (
dotfiles) is highly variable and tailored to their desires, habits, and software stack. I love rebuilding and tinkering with my build by learning from and collaborating with others. This setup is what I use to get the job done, however, don't just accept my words as gospel, find your own path when setting up your build.
I also think it is important to reason from first principles, rather than, by analogy. So the normal way we conduct our lives is we reason by analogy. We're doing this because it's like something else that was done or like what other people are doing. Iterations on a theme. It's kinda mentally easier to reason by analogy rather than from first principles. First principles is kinda a physics way of looking at the world and what that really means is you kinda boil things down to the most fundamental truths and say okay, what are we sure is true? or sure as possible is true? and then reason up from there. That takes a lot more mental energy. - Elon Musk Foundation 20
These guides are highly opinionated. If you have any questions please post an issue. I am open to pull requests. Finally, this guide is supposed to read from top to bottom. If you are following this advice, please read it like following the yellow brick road, and have fun.
- Setup a New or Reformatting an Existing Apple Workstation
- Engineering Workstation Setup and Configuration
- Ruby Engineering Configuration
- Shell Configuration
- Database Configuration
- IDE Configuration
As you explore the configuration directories you will notice a number of shortcut files have been preloaded. These files are described below and many come pre-built with their own helpers. I encourage you to personalize these as you see fit and make sure you understand what each git function does before blindly using them.
|includes||This is the base file to pull in all the includes.|
|global-helpers||Controls that apply to all of the includes.|
|global-settings||Machine and include settings.|
|app||apphelp||Applications that do not require their own includes file.|
|git||githelp||Github shortcuts and workflows.|
|heroku||herokuhelp||Heroku shortcuts and workflows.|
|keybase||keybasehelp||Keybase shortcuts and workflows.|
|ruby||rubyhelp||Ruby and Rails based commands.|
If you love automation, you will love Alfred! It is basically spotlight on steroids and when you purchase the license you are granted access to infinitely complex workflows. Here is what I have installed.
- chrome-bookmarks: Search Chrome Bookmarks.
- emoji-codes: Emoji Search (repo).
- forecast: Weather Forecast (repo).
- github-commands: Parse Github Pages.
- google: Google Search.
- ip-address-info: Retrieve Local IP Address.
- open-text-file: Open a .txt file.
- replace-spaces-with-hyphens: Create slugs for git flow.
- start-ios-emulator: Start the iOS Emulator.
- timezones: Pull Time.
- toggle-visibility-of-hidden-files: Show OSX Hidden Files.
- urban-dictionary: Query the Urban Dictionary.
- datetime-format-converter: Convert Time (repo).