This is not intended to be comprehensive or authoritative, just free online resources I've found valuable while learning more about Erlang.
https://web.archive.org/web/20070429181654/http://www.sics.se/~joe/
This is not intended to be comprehensive or authoritative, just free online resources I've found valuable while learning more about Erlang.
https://web.archive.org/web/20070429181654/http://www.sics.se/~joe/
| /** | |
| * LL(1) parser. Building parsing table, part 1: First and Follow sets. | |
| * | |
| * NOTICE: see full implementation in the Syntax tool, here: | |
| * https://github.com/DmitrySoshnikov/syntax/blob/master/src/sets-generator.js | |
| * | |
| * by Dmitry Soshnikov <dmitry.soshnikov@gmail.com> | |
| * MIT Style License | |
| * | |
| * An LL(1)-parser is a top-down, fast predictive non-recursive parser, |
| #!/bin/sh | |
| # wget -N https://gist.githubusercontent.com/ryanpcmcquen/655cb3cc60f9d064738903e59504a5fd/raw/.installLatestTextadept.sh -P ~/ && bash ~/.installLatestTextadept.sh | |
| # Maybe for later: | |
| #TEXTADEPT_VERSION=$(curl https://foicica.com/textadept/feed | grep 'Download:' -A5 | grep '.osx.zip' | head -n1 | egrep -o "download/textadept_.*.osx.zip" | cut -d _ -f 2 | cut -d '"' -f 1 | sed 's/.osx.zip.*//g') | |
| #TEXTADEPT_VERSION=$(curl https://github.com/orbitalquark/textadept/releases.atom | grep 'Download:' -A5 | grep '.osx.zip' | head -n1 | egrep -o "download/textadept_.*.osx.zip" | cut -d _ -f 2 | cut -d '"' -f 1 | sed 's/.osx.zip.*//g') | |
| APP="textadept" | |
| APPSHORTCUT="ta" |
When applications are running in production, they become black boxes that need to be traced and monitored. One of the simplest, yet main, ways to do so is logging. Logging allows us - at the time we develop our software - to instruct the program to emit information while the system is running that will be useful for us and our sysadmins.
For a brief user-level introduction to CMake, watch C++ Weekly, Episode 78, Intro to CMake by Jason Turner. LLVM’s CMake Primer provides a good high-level introduction to the CMake syntax. Go read it now.
After that, watch Mathieu Ropert’s CppCon 2017 talk Using Modern CMake Patterns to Enforce a Good Modular Design (slides). It provides a thorough explanation of what modern CMake is and why it is so much better than “old school” CMake. The modular design ideas in this talk are based on the book [Large-Scale C++ Software Design](https://www.amazon.de/Large-Scale-Soft
| #!/bin/bash | |
| set -o errexit | |
| set -o nounset | |
| set -o pipefail | |
| target="${1:-/opt/sublime_merge/sublime_merge}" | |
| check_sha() { | |
| local sha_valid |