MacOS === Homebrew === [[https://brew.sh]] ====== Development on MacOS ====== ===== C/C++ ===== Using ''Homebrew'': export HOMEBREW_NO_ANALYTICS=1 brew update brew upgrade brew info gcc brew install gcc brew cleanup Alternative: go to the Apple App Store and install ''Xcode'' //(Apple's compiler and development tools)//. \\ Then, in a terminal: xcode-select --install clang -o program program.c clang++ -o program program.cc g++ -std=c++11 -o program program.cpp g++-7 -std=c++11 -o program program.cpp brew install pkg-config brew install gettext brew install glib export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:/usr/X11/lib/pkgconfig ==> Caveats ==> libffi libffi is keg-only, which means it was not symlinked into /usr/local, because some formulae require a newer version of libffi. For compilers to find libffi you may need to set: export LDFLAGS="-L/usr/local/opt/libffi/lib" For pkg-config to find libffi you may need to set: export PKG_CONFIG_PATH="/usr/local/opt/libffi/lib/pkgconfig" === Portable alternative for getting current time === #include #include #ifdef __MACH__ #include #include #endif struct timespec ts; #ifdef __MACH__ // OS X does not have clock_gettime, use clock_get_time clock_serv_t cclock; mach_timespec_t mts; host_get_clock_service(mach_host_self(), CALENDAR_CLOCK, &cclock); clock_get_time(cclock, &mts); mach_port_deallocate(mach_task_self(), cclock); ts.tv_sec = mts.tv_sec; ts.tv_nsec = mts.tv_nsec; #else clock_gettime(CLOCK_REALTIME, &ts); #endif ===== Java ===== See [[https://github.com/AdoptOpenJDK/homebrew-openjdk]] where you can go and grab prebuilt openjdk binaries for macOS! \\ It’s just a case of using: \\ brew tap AdoptOpenJDK/openjdk brew cask install Where version is: * ''adoptopenjdk8'' * ''adoptopenjdk9'' * ''adoptopenjdk10'' ===== JMeter ===== Install with: brew install jmeter JMeter’s configuration files are located in the following directories: ^Item ^Standard ^ ^ |Plugins folder |JMETER_HOME/lib/ext |Library folder for plugin dependencies | |Configuration folder |JMETER_HOME/bin | | ^Item ^Homebrew ^ ^ |Plugins folder |CELLAR_HOME/jmeter/3.1/libexec/lib/ext |Library folder for plugin dependencies | | |CELLAR_HOME/jmeter/3.1/libexec/lib | | |Configuration folder |CELLAR_HOME/jmeter/3.1/libexec/bin | | With the following constants: \\ ''JMETER_HOME'': JMeter’s home, usually like ''/home/ubuntu/jmeter-5.x'' \\ ''CELLAR_HOME'': should be ''/usr/local/Cellar'' ===== Locust ===== * ''curl -O https://bootstrap.pypa.io/git-pip.py'' * ''chmod 755 get-pip.py'' * ''sudo -H ./get-pip.py'' * ''sudo -H pip install --ignore-installed six'' * ''sudo -H pip install locustio'' ====== Trivia ====== ===== CLI Tips + Tricks ===== ==== Pretty-Printing ==== === Pretty-Print JSON from a file ... === cat unformatted.json | python -m json.tool === Pretty-Print JSON from the clipboard ... === pbpaste | python -m json.tool === Pretty-Print XML from the clipboard ... === pbpaste | xmllint --format - ===== Desktop/GUI Tips + Tricks ===== ==== Resize a window to 1920x1080 ==== Open ''Applications'' -> ''Utilities'' -> ''Script Editor'', paste this, and hit the play button: tell application "Firefox" activate set the bounds of the first window to {100,100,2020,1180} end tell