Mac OSX comes with a huge collection of free tools pre-installed and has almost everything that a developer needs for C/C++ coding. Other things need to be installed. I mainly used two package managers for this.
Alfred is so much better than Spotlight, it is now my preferred tool for searching my mac. It uses the Spotlight index to perform the search, so you need to have Spotlight enabled.
For C/C++ coding, I prefer VSCode which is free and can be installed from Homebrew. Also make sure command line tools are installed, you can install it by
sudo xcode-select --install
Sometimes, I find it necessary to delete the existing command line tools and then install the latest version
sudo rm -rf /Library/Developer/CommandLineTools sudo xcode-select --install
VS Code is also an excellent code editor and I use this for Fortran and Python. For Python and Fortran coding, another option is MacVim with NerdTree for file browsing.
OSX comes with a nice diff tool called opendiff which can be invoked from the command line to compare two files side by side.
git is already available and I use SourceTree as a gui for git.
OSX comes with Python2 but may not have all the packages you need. You can install Python using brew but I use Anaconda (in particular MiniConda) to get a Python installation.
Gnuplot is really useful to do some quick and simple visualizations. Install via brew
brew install gnuplot
To generate line plots for publication, Matplotlib is probably the most useful. Install this from your Python distribution.
VisIt is my favourite program for visualizing PDE solutions coming from finite difference/volume/element methods. You may also want to try Paraview which is also very powerful tool.
MacTex is a nice way to install all the Latex packages.
TexStudio is a great editor for Latex.
To manage my bibliography, I have come to like Zotero a lot.
TexMacs is a wysiwyg editor that seems to be getting very good. I sometimes use it for writing small notes and documents.
Acrobat: For viewing pdf files, but I find this a very heavy application and avoid using it normally. I prefer to use builtin Preview. But there are some times when your PDF doesnt display properly and you absolutely need this. Keep it installed for those times.
djview: For viewing djvu archive files. Most ebooks are packaged as djvu files. The available binaries are old versions; you can install this via brew (
brew install djview).
Keynote is free with OSX and is surprisingly good, even better than PowerPoint. You also get Pages for free which is an alternative to Word.
LibreOffice: Built on openoffice.
FileZilla lets you setup some servers so that you can quickly transfer files between your computers.
Asymptote: Asymptote is a powerful descriptive vector graphics language that provides a natural coordinate-based framework for technical drawing. Labels and equations are typeset with LaTeX, for high-quality PostScript output. If you installed MaxTex, then you already have asymptote. Otherwise you can install it using brew.
ImageMagick: Use ImageMagick to create, edit, compose, or convert bitmap images. It can read and write images in a variety of formats (over 200) including PNG, JPEG, GIF, HEIC, TIFF, DPX, EXR, WebP, Postscript, PDF, and SVG. Use ImageMagick to resize, flip, mirror, rotate, distort, shear and transform images, adjust image colors, apply various special effects, or draw text, lines, polygons, ellipses and Bezier curves.
Engauge: This open source, digitizing software converts an image file showing a graph or map, into numbers. The image file can come from a scanner, digital camera or screenshot. The numbers can be read on the screen, and written or copied to a spreadsheet
Inkscape: Inkscape is a Vector Graphics Editor, similar to Adobe Illustrator, that strives to be SVG Compliant, open source, responsive and extensible.
While I have experimented many, IINA is the one I now use.
Safari works well; other options are Firefox and Opera. (Avoid Chrome like the plague)
sudo visudoEnter your password and add the following additional lines and save the file. You need to know how to use vi/vim for this.
Defaults env_keep += "http_proxy HTTP_PROXY" Defaults env_keep += "https_proxy HTTPS_PROXY" Defaults env_keep += "ftp_proxy FTP_PROXY" Defaults env_keep += "rsync_proxy RSYNC_PROXY"
sudo pmset -b tcpkeepalive 0 # Redo if you did SMC/NVRAM reset or os update sudo pmset -a hibernatemode 25 sudo pmset -a standby 1You can check the settings by (do this check while using battery)
pmset -gUse only integrated GPU when on battery
sudo pmset -b gpuswitch 0Here are the various power states
-a - global (same behavior for charging and battery states) -c - charging -b - batteryHere are the possible options for gpuswitch
0 - integrated GPU only 1 - discrete GPU only 2 - autoswitch GPU
sudo nvram AutoBoot=%00 # Redo if NVRAM is resetTo reenable auto boot
sudo nvram AutoBoot=%03
rm ~/Library/Preferences/com.apple.ActivityMonitor.plistand reopen it.
sudo rm /Library/LaunchAgents/net.pulsesecure.pulsetray.plistThen, add symlink to /Applications
sudo ln -s /Applications/Pulse\ Secure.app/Contents/Plugins/JamUI/PulseTray.app /Applications/PulseTray.appand use PulseTray to launch PulseSecure in future.
sudo nvram -c sudo shutdown -r now
defaults write com.apple.dock ResetLaunchPad -bool true && killall Dock
defaults write -g NSWindowSupportsAutomaticInlineTitle -bool falseYou have to quit and start the app for this to take effect. (Does not seem to work in Monterey)
find . -name ".DS_Store" -delete rm ~/Library/Preferences/com.apple.finder.plist
defaults write NSGlobalDomain ApplePressAndHoldEnabled -bool false
defaults write com.apple.Safari DebugDisableTabHoverPreview 1