Setting up a macbook for a windows developer

Published on March 25, 2018

Tagged: #developer-experience

Follow me on twitter for more posts like this

I recently got a macbook at work and I’m doing only web development these days so no Visual Studio. I had to do a bit of reading to get things set up and I don’t want to do it again so here is a post for me!

UPDATE 3/1/2022: I’ve since created scripts to do all of this and more. You can find those here: https://github.com/darraghoriordan/mac-setup-script

First thing is download iTerm from: https://www.iterm2.com/

Open a new iTerm and run the following to install Homebrew (this is like chocolatey)

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

next install oh my zsh

sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

Follow this great tutorial on setting up powershopp fonts and zsh: https://github.com/thacherT1D/fishToZsh

Setup git with homebrew

brew update && brew upgrade

brew install git

brew link --force git

Install beyond compare from https://www.scootersoftware.com/ Open beyond compare and go to File >> Installl command line tools Confirm that “bcompare” can be launched from Terminal.

Run the fllowing lines to set up some git diff and merge magic and to add an alias to for code review (change develop here to whatever you use as your master branch)

Then in an iterm window enter:

git config --global alias.code-review = "!git difftool --dir-diff origin/develop...$1"
git config --global diff.tool bc3
git config --global difftool.bc3.trustExitCode true
git config --global merge.tool bc3
git config --global mergetool.bc3.trustExitCode true

Run a code review on some branch with differences and open the rules by clicking the rules button in the merge window o beyond compare. In here set beyond compare to follow symlinks! This will make all the paths line up like they should.

To launch a 3-way merge using Beyond Compare, use the command “git mergetool file.ext”. To launch a diff using Beyond Compare, use the command “git difftool —dir-diff”.

If you’re on a mac and you’re using Rider from jetbrains but the rest of your team is using visual studio you can have repository specifc ignores by editing the .git/info/exclude file. The following will hide the idea folder.

.idea

Set iterm to use your project directory as the start up location in the preferences for iterm

If you use jira I highly recommend the zsh plugin “jira”. To have this remember your jira instance add the following to ~/.zshrc

export JIRA_URL=https://jira.myorganisation.com
export JIRA_NAME=doriordan
export JIRA_PREFIX=REC-
export JIRA_RAPID_BOARD=true

then you can use

jira            # performs the default action
jira new        # opens a new issue
jira dashboard  # opens your JIRA dashboard
jira reported [username]  # queries for issues reported by a user
jira assigned [username]  # queries for issues assigned to a user
jira branch     # opens an existing issue matching the current branch name
jira ABC-123    # opens an existing issue
jira ABC-123 m  # opens an existing issue for adding a comment

Sweet, all done. This could be a great scripting project :D

Next install the following apps https://www.cockos.com/licecap/ - Licecap for gif recording https://www.spectacleapp.com/ - window management for osx https://www.alfredapp.com/ - an enhanced spotlight/helper

You can use https://www.rubicode.com/Software/RCDefaultApp/ to change the default applications on the mac. For example the mail client can be changed from Mail without having to setup an email account in Mail.

Photo by Fabian Grohs on Unsplash

Darragh ORiordan

Hi! I'm Darragh ORiordan.

I live and work in Sydney, Australia enjoying the mountains and the ocean.

I build and support happy teams that create high quality software for the web.

Contact me on Twitter!


Read more articles like this one...

List of article summaries

#developer-experience

Modern shell tooling for devs on MacOS and Windows WSL

Many of the terminal tools that come with unix environments like MacOS and Windows WSL are functionally similar to how they were 20 years ago. But developer tooling has advanced quite a bit since then.

You can replace many of these cli tools with equivalents that support full colour, unicode icons, git and more. Changing OS and git defaults will better match your workflow.

Your prompt can be made git aware and use colour to indicate state so you don’t have to query git so often.

I work on MacOS and Windows machines and I’ll show you how to have the same terminal and experience on both.

#developer-experience

How engineers can help deliver software effectively

Delivery managers and team leads have the responsibility to deliver a software system via an engineering team.

Your customer wants every feature to work perfectly and they want it delivered yesterday. Your team wants to learn and grow.

It’s a tough role managing all the stakeholders and creators in a project.

Engineers can help drive great delivery by empathising with and supporting the delivery manager or leads in a project team.

#developer-experience

How to identify a great tech organisation before you join

No one wants to waste time working for an organisation that’s a bad fit. But how do you know a good place from a bad place until you actually work there?

It’s important to spend the same amount of time analysing a potential organisation as they spend analysing you!

During an interview process an organisation has personality testing, resumes, tech testing, behavioural testing, reference checks, bank checks, police checks and more.

If it sounds like a very one-sided process that’s because it is! But there are ways you can bring more balance and here are some important things to research before accepting any engineering job offer.

#developer-experience

Set vscode as the default for text files on mac

How to set the default text editor to be visual studio code on the mac

Update 29 Jan 2022 - I added this and more to comprehensive instructions for configuring a modern developer shell and MAcOS in another article here. You should check that out.