This gist shows how to create a GIF screencast using only free OS X tools: QuickTime, ffmpeg, and gifsicle.
To capture the video (filesize: 19MB), using the free "QuickTime Player" application:
| /** | |
| * Basic Array class, similar to std::array. | |
| * | |
| * by Dmitry Soshnikov <[email protected]> | |
| * MIT Style License (C) 2020 | |
| */ | |
| #ifndef __Array_h | |
| #define __Array_h |
| let offset = 20000; | |
| let chunk_size = 10000; | |
| // File handle: | |
| let mut handle = BufReader::new(File::open("data.bin").await?); | |
| // Set cursor to needed chunk: | |
| let mut chunk_stream = handle | |
| .bytes() | |
| .skip(offset) |
| /** | |
| * Writing a Mark-Sweep Garbage Collector in C++. | |
| * | |
| * This is a source code for the Lecture 9 from the | |
| * Essentials of Garbage Collectors course: | |
| * | |
| * http://dmitrysoshnikov.com/courses/essentials-of-garbage-collectors/ | |
| * | |
| * See full details in: | |
| * |
| <!DOCTYPE html> | |
| <html> | |
| <head> | |
| <title>Sierpiński triangle</title> | |
| </head> | |
| <body> | |
| <canvas id="area" width="600" height="600"></canvas> | |
| <script type="text/javascript"> | |
| // Sierpiński_triangle: |
| /** | |
| * ------------------------------------------- | |
| * Thread-safe vs. Non-thread-safe. Mutex. | |
| * ------------------------------------------- | |
| * | |
| * Some resources (like global `cout` stream) have to be guarded | |
| * in order to be thread-safe. | |
| * | |
| * The simplest way to guard is to use a mutex: | |
| * |
| /** | |
| * Filter object properties. | |
| * | |
| * by Dmitry Soshnikov <[email protected]> | |
| * MIT Style license, 2019 | |
| */ | |
| const filterProps = ( | |
| [p1, p2, p3], | |
| { |
| /** | |
| * Async iterators simple example. | |
| * | |
| * by Dmitry Soshnikov <[email protected]> | |
| * MIT Style License, 2018 | |
| */ | |
| async function* streamChunks() { | |
| yield genChunk(1); | |
| yield genChunk(2); |
| /** | |
| * Educational "Free-list" memory allocator. | |
| * | |
| * Maintains explicit list of free memory blocks, reuses blocks on free. | |
| * Implements "first-fit" strategy. Uses pre-allocated heap of 64 bytes, | |
| * with 32-bit machine word size. | |
| * | |
| * TODO: | |
| * | |
| * - Implement "best-fit" strategy |
| ; ___ _ __ ___ __ ___ | |
| ; / __|_ _ __ _| |_____ / /| __|/ \_ ) | |
| ; \__ \ ' \/ _` | / / -_) _ \__ \ () / / | |
| ; |___/_||_\__,_|_\_\___\___/___/\__/___| | |
| ; An annotated version of the snake example from Nick Morgan's 6502 assembly tutorial | |
| ; on http://skilldrick.github.io/easy6502/ that I created as an exercise for myself | |
| ; to learn a little bit about assembly. I **think** I understood everything, but I may | |
| ; also be completely wrong :-) |