2023.06.03: |
Plugins case study: Envoy WASM extensions |
2019.11.23: |
"Beating" C with 400 lines of unoptimized assembly |
2019.07.22: |
Faster XML stream processing in Go |
2019.07.15: |
Passing callbacks and pointers to Cgo |
2018.12.05: |
Type erasure and reification |
2018.10.17: |
Covariance and contravariance in subtyping |
2018.09.04: |
Measuring context switching and memory overheads for Linux threads |
2018.08.01: |
Launching Linux threads and processes with clone |
2018.07.13: |
Basics of Futexes |
2017.12.07: |
Concurrent Servers: Part 5 - Redis case study |
2017.11.09: |
Concurrent Servers: Part 4 - libuv |
2017.10.06: |
Concurrent Servers: Part 3 - Event-driven |
2017.10.04: |
Concurrent Servers: Part 2 - Threads |
2017.10.02: |
Concurrent Servers: Part 1 - Introduction |
2016.12.06: |
Basics of using the readline library |
2016.05.12: |
The Expression Problem and its solutions |
2016.05.05: |
On the Composite and Interpreter design patterns |
2016.04.19: |
A polyglot's guide to multiple dispatch |
2016.03.12: |
gRPC sample in C++ and Python |
2016.03.04: |
Returning multiple values from functions in C++ |
2016.02.22: |
C++: RAII without exceptions |
2016.02.16: |
The promises and challenges of std::async task-based parallelism in C++11 |
2016.01.17: |
C++11 threads, affinity and hyperthreading |
2015.08.21: |
C++: Deleting destructors and virtual operator delete |
2015.07.15: |
Programmatic access to the call stack in C++ |
2015.05.18: |
On parsing C, type declarations and fake headers |
2014.11.11: |
Samples for using LLVM and Clang as a library |
2014.11.03: |
Perfect forwarding and universal references in C++ |
2014.10.24: |
Variadic templates in C++ |
2014.10.20: |
SFINAE and enable_if |
2014.01.07: |
Getting started with libjit - part 3 |
2013.12.05: |
The cost of dynamic (virtual calls) vs. static (CRTP) dispatch in C++ |
2013.12.03: |
Intel i7 loop performance anomaly |
2013.11.12: |
Getting started with libjit - part 2 |
2013.11.05: |
How to JIT - an introduction |
2013.10.17: |
Getting started with libjit - part 1 |
2013.03.04: |
Flexible runtime interface to shared libraries with libffi |
2012.12.17: |
Dumping a C++ object's memory layout with Clang |
2012.08.24: |
Plugins in C |
2012.08.13: |
How statically linked programs run on Linux |
2012.07.12: |
Computed goto for efficient dispatch tables |
2012.07.05: |
How Clang handles the type / variable name ambiguity of C/C++ |
2012.06.28: |
The type / variable name ambiguity in C++ |
2012.06.20: |
C++11: using unique_ptr with standard library containers |
2012.06.17: |
Faster XML iteration with ElementTree |
2012.06.08: |
Basic source-to-source transformation with Clang |
2012.02.06: |
Dependent name lookup for C++ templates |
2012.02.03: |
Adventures in parsing C: ASTs for switch statements |
2012.01.03: |
Understanding the x64 code models |
2011.12.15: |
Understanding lvalues and rvalues in C and C++ |
2011.11.30: |
How I stopped worrying and switched to C++ for my Bob Scheme VM |
2011.11.14: |
Anonymous functions (lambdas) in C++11 |
2011.11.11: |
Position Independent Code (PIC) in shared libraries on x64 |
2011.11.03: |
Position Independent Code (PIC) in shared libraries |
2011.09.16: |
Exporting C++ classes from a DLL |
2011.08.30: |
Construction of function static variables in C++ is not thread safe |
2011.08.25: |
Load-time relocation of shared libraries |
2011.07.09: |
Passing extra arguments to Qt slots |
2011.07.08: |
DLL hell problems with Qt Creator |
2011.07.03: |
Parsing C++ in Python with Clang |
2011.05.17: |
The Curiously Recurring Template Pattern in C++ |
2011.05.02: |
The context sensitivity of C’s grammar, revisited |
2011.04.22: |
C++ template syntax patterns |
2011.04.09: |
A C++ VM added to Bob |
2011.03.20: |
Boost.Asio with Protocol Buffers code sample |
2011.03.08: |
Non-constant global initialization in C and C++ |
2011.03.07: |
From C to AST and back to C with pycparser |
2011.03.04: |
Building protobuf examples on Windows with MSVC |
2011.02.17: |
The many faces of operator new in C++ |
2011.02.15: |
Array initialization with enum indices in C but not C++ |
2011.01.14: |
How Python affected my C/C++ brace style |
2010.11.13: |
Pure virtual destructors in C++ |
2010.10.31: |
pycparser now supports C99 |
2010.06.11: |
The perils of unsigned iteration in C/C++ |
2010.04.06: |
Pointers vs. arrays in C, part 2(D) |
2010.04.05: |
pthreads as a case study of good API design |
2010.01.11: |
Pointers to arrays in C |
2009.11.23: |
Visualizing binary trees with Graphviz |
2009.11.16: |
void* and casts, in C and C++ |
2009.10.30: |
Handling out-of-memory conditions in C |
2009.10.21: |
Are pointers and arrays equivalent in C? |
2009.10.17: |
The C++ bashing season is back |
2009.10.07: |
Book review: "C Interfaces and Implementations" by David R. Hanson |
2009.09.23: |
Compiling SQLite on Windows |
2009.04.27: |
Using goto for error handling in C |
2009.01.28: |
Creating threads in Win32 C/C++ programming |
2008.10.18: |
Implementing cdecl with pycparser |
2008.10.17: |
memmgr - a fixed-pool memory allocator |
2008.08.31: |
ctypes - calling C/C++ code from Python |
2008.08.23: |
Initializing an array in constant time |
2008.07.18: |
Reading C type declarations |
2007.11.24: |
The context sensitivity of C's grammar |
2006.12.04: |
Compiling C DLLs and using them from Perl |
2006.12.03: |
A complete C++ development environment from Microsoft, free |
2006.03.03: |
unit testing framework - cxxtext |
2005.12.04: |
perl master, C++ slave, bound for serial port programming |
2005.08.11: |
eclipse |
2005.07.15: |
Qt guidelenes for API design |
2005.06.10: |
lesson for today: caveat in C++ line-reading |
2005.06.01: |
PIC compiler bugs... |
2005.03.22: |
c++ woes: std:: and unwanted warnings |
2005.03.08: |
Book review: "Expert C Programming" by Peter van der Linden |
2005.02.01: |
true cross-platform compatibility of Qt |
2005.01.02: |
Qt - first impressions |
2004.12.27: |
serial port saga - a C++ implementation |
2004.10.01: |
complying with -Wall -pedantic -ansi |
2004.07.30: |
a cool algorithm for counting ones in a bitstring |
2004.07.18: |
c/c++ annoyance - unsigned iteration |
2004.06.01: |
nostalgic... |
2004.05.18: |
Book review: "Efficient C++: Performance Programming Techniques" by Bulka & Mayhew |
2004.05.14: |
making sense of pointers |
2004.04.21: |
a problem, two tricks - almost a solution |
2004.04.11: |
compiling gcc |
2003.12.26: |
Finding out where a function was called from |
2003.12.26: |
Initialization of structures and arrays in C++ |
2003.12.09: |
Book review: "Effective STL" by Scott Myers |
2003.09.19: |
cpp is pain |
2003.09.12: |
Book review: "C++ in action" by Bartosz Milewski |
2003.09.05: |
more on simplified cpp + some rant |
2003.09.04: |
coding a simplified cpp |
2003.08.29: |
note to self - assert() |
2003.07.23: |
Variable initialization in C++ |
2003.07.23: |
Allocating multi-dimensional arrays in C++ |
2003.07.23: |
Correct usage of const with pointers |
2003.07.04: |
interesting problem (binary representation of big numbers) |
2003.06.27: |
"Modern C++" scares me |
2003.05.16: |
too much Perl... |
2003.05.09: |
Coding in C++, wishing it were Lisp (or Perl) |