I just bought a new MacBook since I managed to break my old one while travelling in Taiwan. I always love getting a new system, because the setting up phase is a good opportunity to get rid of old cruft and review what is essential for me.
What I like about macOS is that it comes with a lot of great tools out-of-the-box. However, I still ended up having to install a few essentials to get me started.
- Homebrew, the de-facto standard package manager for macOS. Necessary to install apps, mostly command-line related, and keep them up-to-date.
- Xcode for iOS and macOS app development. Xcode is actually surprisingly nice, but I don’t use it outside of app development.
- Dash, an offline documentation viewer. Great interface lets you find things faster and allows you to work offline.
- Firefox because it is always good to have another browser besides Safari, however some people prefer Chrome.
- MacTeX, a LaTeX distribution for macOS. Necessary if you are a student and have to write papers that look decent.
- VirtualBox to run VMs, mostly for development. Some people prefer VMware, which I have never tried.
- Textual, awesome IRC client.
- Texpad, a LaTeX editor with some nifty features.
- Sublime Text, awesome programmer’s text editor.
Additionally, I also installed a couple of apps that are not strictly necessary, but I still use them occasionally.
- Git Up, a GUI for interacting with git repositories.
- VLC, the famous media player that can play anything.
- Transmission, awesome gorrent client.
- OpenEmu, for playing those old Mario games.
Instead of using the awesome shimo app, I opted for using the native IKEv2 support in macOS to set up some of my VPNs. It is always useful to have a few in case you are forced to use a questionable public WiFi. I probably will need to set up Shimo anyways to access my university’s VPN at some point in time.
With homebrew installed, I went on to installing some essential command-line tools, and updating others that Apple ships but are too old.
- Git version control system. I keep a lot of things under its control, such as this blog.
- VIM, the ubiquitous editor. My go-to editor for a lot of things. Ships out-of-the-box on macOS (thank you Apple!), but with an outdated version. Some people prefer the newer NeoVim, others like Emacs and some people don’t like any command-line text-editors.
- tmux, for having multiple tabs in a single Terminal session.
- Ruby, my favourite programming language. Also ships out-of-the-box on macOS, but with an outdated version.
- Rust, Mozilla’s fancy-pants new language.
Out of all these great tools, there is one app that I want to highlight because it has radically improved my productivity. when I bought it in 2015. While I have been using it for so long, I still feel that not too many people know about it.
Dash is an offline documentation browser. That means that it has a catalog of documentation for various programming languages, frameworks, gems, pods, tools, etc. These are called docsets. Most docsets are official and autogenerated or maintained by the author, but there are also plenty of user-contributed ones. The format is open, such that you can create your own docsets. There are also a bunch of Dash clones for other platforms that use them, such as Zeal on Linux or Velocity on Microsoft Windows.
I love Dash because the interface is well-designed. For example if you want to find out something about the Ruby
Array#join method, you try
ruby: Array join into the search field. I find that using Dash is far more effective that googling for things, and you can explore classes and find out what methods they have. The docsets are really good and auto-update, which is important for languages like Rust that have new releases often.
Another interesting feature is that Dash can download all StackOverflow answers that are tagged to a specific programming language or framework. This can sometimes be useful if you can’t figure out from the documentation how things fit together, but I don’t use that feature much.
It does cost some money, I paid around 28€ for my license. But I think it is definitely worth it. Also, I think it is really awesome that my license, which I bought in 2015 for dash 3, was updated to work with dash 4 when it was released in 2017. Thanks Kapeli!
I am only as good as the tools I have at my disposal. And there are some really nice ones for macOS. Here I have shown what I consider to be my most useful ones—they might not be right for you. But maybe you didn’t know about some of these before, and they are useful to you. In that case, if you can afford it, I’m sure the author would appreciate if you bought it.