Skip to content

Instantly share code, notes, and snippets.

@honey-speaks-tech
Last active December 15, 2021 22:00
Show Gist options
  • Save honey-speaks-tech/b3f59bd71945ce93e51895ca5c5bea2f to your computer and use it in GitHub Desktop.
Save honey-speaks-tech/b3f59bd71945ce93e51895ca5c5bea2f to your computer and use it in GitHub Desktop.
Thinking in C

C resources

Conference videos

Source : https://nullprogram.com/blog/2018/11/21/

2017

Here’s the list for CppCon 2017. These are roughly ordered from highest to lowest recommendation:

  • Matt Godbolt “What Has My Compiler Done for Me Lately? Unbolting the Compiler’s Lid”
  • Chandler Carruth “Going Nowhere Faster”
  • James McNellis “Everything You Ever Wanted to Know about DLLs”
  • John Regehr “Undefined Behavior in 2017 (part 1 of 2)”
  • John Regehr “Undefined Behavior in 2017 (part 2 of 2)”
  • Piotr Padlewski “Undefined Behaviour is awesome!”
  • Tobias Fuchs “Multidimensional Index Sets for Data Locality in HPC Applications”
  • John D. Woolverton “C Pointers”
  • Charles Bailey “Enough x86 Assembly to Be Dangerous”
  • Tony Van Eerd “An Interesting Lock-free Queue - Part 2 of N”
  • Matt Kulukundis “Designing a Fast, Efficient, Cache-friendly Hash Table, Step by Step”
  • Fedor Pikus “Read, Copy, Update, then what? RCU for non-kernel programmers”
  • Ansel Sermersheim “Multithreading is the answer. What is the question? (part 1 of 2)”
  • Ansel Sermersheim “Multithreading is the answer. What is the question? (part 2 of 2)”
  • Carl Cook “When a Microsecond Is an Eternity: High Performance Trading Systems in C++”
  • Alfred Bratterud “Deconstructing the OS: The devil’s In the side effects” (counterpoint)
  • P. McKenney, M. Michael & M. Wong “Is Parallel Programming still hard? PART 1 of 2”
  • P. McKenney, M. Michael & M. Wong “Is Parallel Programming still hard? PART 2 of 2”
  • Adrien Devresse “Nix: A functional package manager for your C++ software stack”
  • Mathieu Ropert “API & ABI Versioning…”
  • Paul Blinzer “Heterogeneous System Architecture - Why Should You Care?”
  • Mathieu Ropert “Using Modern CMake Patterns to Enforce a Good Modular Design”
  • Allan Deutsch “Esoteric Data Structures and Where to Find Them”
  • D. Rodriguez-Losada Gonzalez “Faster Delivery of Large C/C++ Projects with…”

2018

  • Robert Schumacher “Don’t package your libraries, write packagable libraries!”

  • Stoyan Nikolov “OOP Is Dead, Long Live Data-oriented Design”

  • Fedor Pikus “Design for Performance”

  • JF Bastien “Signed integers are two’s complement”

  • Alan Talbot “Moving Faster: Everyday efficiency in modern C++”

  • Geoffrey Romer “What do you mean “thread-safe”?”

  • Chandler Carruth “Spectre: Secrets, Side-Channels, Sandboxes, and Security”

  • Bob Steagall “Fast Conversion From UTF-8 with C++, DFAs, and SSE Intrinsics”

  • Nir Friedman “Understanding Optimizers: Helping the Compiler Help You”

  • Barbara Geller & Ansel Sermersheim “Undefined Behavior is Not an Error”

  • Matt Godbolt “The Bits Between the Bits: How We Get to main()”

  • Mike Shah “Let’s Intercept OpenGL Function Calls…for Logging!”

  • Kostya Serebryany “Memory Tagging and how it improves C/C++ memory safety”

  • Patricia Aas “Software Vulnerabilities in C and C++”

  • Patricia Aas “Make It Fixable: Preparing for Security Vulnerability Reports”

  • Greg Law “Debugging Linux C++”

  • Simon Brand “How C++ Debuggers Work”

  • Odin Holmes “Concurrency Challenges of Interrupt Service Routines” There were three talks strictly about C++ that I thought were interesting from a language design perspective. So I think they’re worth recommending, too. (In fact, they’re a sort of ammo against using C++ due to its insane complexity.)

  • Nicolai Josuttis “The Nightmare of Initialization in C++”

  • Timur Doumler “Can I has grammar?”

  • Richard Powell “How to Argue(ment)”

2019

Only three this year. The last is about C++, but I thought it was interesting.

  • JF Bastien “Deprecating volatile”
  • J. Bialek, S. Block “Killing Uninitialized Memory: Protecting the OS Without Destroying Performance”
  • Matt Godbolt “Path Tracing Three Ways: A Study of C++ Style”

2020

Four more worthwhile talks in 2020. The first is about the C++ abstract machine, but is nearly identical to the C abstract machine. The second is a proverbial warning about builds. The rest are about performance, and while the context is C++ the concepts are entirely applicable to C.

  • Bob Steagall “Back to Basics - The Abstract Machine”
  • Dave Steffen “Build Everything From Source - A Case Study in Fear”
  • Bob Steagall “Adventures in SIMD-Thinking” (part 2)
  • Alex Reinking “Halide - A Language for Fast, Portable Computation on Images and Tensors”

Bonus

Finally, here are a few more good presentations from other C++ conferences which you can just pretend are about C:

  • CppCon 2016: Chandler Carruth “Garbage In, Garbage Out: Arguing about Undefined Behavior…”
  • CppCon 2014: Mike Acton “Data-Oriented Design and C++” (this is a personal favorite of mine)
  • CppCon 2014: Chandler Carruth “Efficiency with Algorithms, Performance with Data Structures”
  • CppCon 2015: Chandler Carruth “Tuning C++: Benchmarks, and CPUs, and Compilers! Oh My!”
  • CppCon 2016: Chandler Carruth “High Performance Code 201: Hybrid Data Structures”
  • Meeting Cpp 2015: Chandler Carruth: Understanding Compiler Optimization
  • BoostCon 2013: Chandler Carruth: Optimizing the Emergent Structures of C++
  • CppCon 2016: Nicholas Ormrod “The strange details of std::string at Facebook”
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment