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
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* =============================================================== | |
* SDEFL | |
* =============================================================== | |
* public domain - no warranty implied; use at your own risk | |
* References: | |
https://bitbucket.org/rmitton/tigr/src/be3832bee7fb2f274fe5823e38f8ec7fa94e0ce9/src/tigr_inflate.c?at=default&fileviewer=file-view-default | |
https://github.com/github/putty/blob/49fb598b0e78d09d6a2a42679ee0649df482090e/sshzlib.c | |
https://www.ietf.org/rfc/rfc1951.txt | |
*/ | |
#include <stdlib.h> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* =========================================================================== | |
* | |
* LIBRARY | |
* | |
* =========================================================================== */ | |
/* Proof of Concept GUI: | |
* - PoC UI implementation in ~2.5kLOC of C89 (ANSI C) | |
* => Core solutions has no external dependencies (removing standard library dependency is trival) | |
* => Does not use or require any special language constructs or macro constructs just pointers and enums | |
* - Combines both "retained" and "immediate mode" UI by providing control over update frequency |
Papers I like Pt. 1 Papers I like Pt. 2
Let's start meta:
- Lamport - State the Problem Before Describing the Solution (1978). … 1-page memo. Read it.
- Herlihy - Wait-free synchronization (1991) … Truly seminal. Lucid + enough good ideas for 4 papers easily.
- Cook - How complex systems fail (1998) … 4 pages that anyone working on/with complex systems should read.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# If we get interrupted, make sure to kill the whole process tree | |
trap 'trap - SIGTERM && kill 0' SIGINT SIGTERM | |
# Issue command to all devices in parallel | |
for DEVICE in `adb devices | awk '/\tdevice$/ { print $1 }'`; do | |
ANY_DEVICES=1 | |
# Look up pretty name from serial number |