DEVELOPMENT ON OS X
I am working with a group of co-workers on writing blog posts on a very regular basis. As a kickoff for our weekly blogging exercise. We decided it would be interesting to read about how each of configures our personal development machines in order to be… what we consider productive.
I’m going to personally write this blog from two points of few, personal and professional. Although most of the work on my machine will be professional. All of my machines have some flavor of OS X installed.
I’m hoping this will be an interesting exercise trash you write down all the software configurations curly on my machine and how I actually utilize them to accomplish things such as blog post spreading software and working as a tech lead on projects.
Like many people that use OS X on a regular basis, one of the first things I install is homebrew. This is one of the greatest third-party application package managers that I’ve had the opportunity use and hear some of the packages that I have installed using homebrew.
I have installed
- vim: best text editor ever
- macVim: mac application version of VI
- elixir: language
- erlang: language
- imagemagick: image management utility
- cmake: same as gcc.
- gcc: much of the C and C++ code I write for multi-copter flight controllers is written in C/C++.
- ack: this is grep on steroids… and it can be install via brew.(http://beyondgrep.com/install/)
- brew-cask: I use this to install every possible application I can.
- git: I use git for everything. If is something that I think I will need for later, need for later and will want to keep a version history of the changes… then this is where it is going to go. Everything from my notes, my presentations, my code… everything.
- java: not much of this going on anymore. I am have moved on to the other JVM languages… thankfully.
- scala: my new favorite… closely followed by elixir
- groovy: love it, have used grails quite a lot as well
- erlang: exploring
- Alfred3 : this is my go to app. I use this for everything. Being a command-line, unix person… I try to spend as much time off of the mouse as possible. This app can do everything.
- Show Desktop : ironically, this is used to hide all open applications. Clearing the view from all things except black.
- UnRarX: occasionally you need a visual way to un’tar something
- RESTClient: as the name implies… a ReST client
- BwanaDik: a great little menu app which visually lets you know if you have a network connection or not. (https://itunes.apple.com/us/app/bwanadik/id876923947?mt=12)
- LoadUI 2.6.8
- Particle Dev: for Particle Photon development (arduino)
- Karabiner: more about this later.
- Copy’em Paste: clipboard manager,
- Moom: window manager,
- CloudMagic Email : email client
- Docker : OS X version of Docker
- Caffeine : an application that prevents the machine from sleeping
- Hangouts Plus
- 1Password 6
Copter Control Software
- LibrePilot GCS
- qgroundcontrol: copter control software
- APM Planner 2.0: copter control software
COUPLE APPS WORTH MENTIONING
Two apps I use on a daily basis without even knowing they are installed… or at least after I became accustomed to them being installed. They are Karabiner and Seil. Both of these allow me to remap keys on my keyboard. I do not use them for all of their features, but the few features I do use really save me a lot of time.
- I have increased the speed of key repeat. The default OSX delay until key-repeat and the repeat rate are just too slow. Mine really fly.
- I have also adjusted the ‘caps lock’ key to be ‘ESC’ instead. This is because I use the ‘ESC’ key constantly within VI. The normal ESC key still works as normal… I just have two.
- I have also remapped the ‘shift’ keys, both left and right. When the ‘shift’ key is pressed alone, the keys yields a paren, when pressed with another key, they are normal Shifts.
- Google Chrome
- 1 Password : https://agilebits.com/onepassword
- Advanced ReST Client: https://chrome.google.com/webstore/detail/advanced-rest-client/hgmloofddffdnphfgcellkdfbfbjeloo
- Google Email Dictation: https://chrome.google.com/webstore/detail/eggdmhdpffgikgakkfojgiledkekfdce
- feedly: https://chrome.google.com/webstore/detail/hipbfijinpcgfogaopmgehiegacbhmob
- Smooth Checkbox for Gmail: https://chrome.google.com/webstore/detail/egkhfllhmjihbfnkikpnbeeakllbobjl
- VimiumPlus: https://chrome.google.com/webstore/detail/cjfocibepmjhlehihiijgadhgfgnamhp
- vi (within terminal)
- IntelliJ IDEA
- Sublime Text 2
VERSION CONTROL SOFTWARE
- GitKraken: super awesome, maybe the best I have ever seen, GIT client for Mac, Linux and Windows.
- Sequel Pro
- DataGrip (Idea)
VIM and PROFILE STUFF
If you work at the terminal as often as I do, you are more than certain to wan to create a helpful set of aliases in order to avoid typing the same monotonous commands over and over. I have assembled all of my bash stuff within a single github repository. Please feel free to steal/borrow/use as you see fit.