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