HOPE – combine the ease of Python and the speed of C++
“HOPE is a specialized method-at-a-time JIT compiler written in Python for translating Python source code into C++ and compiles this at runtime. In contrast to other existing JIT compliers, which are...
View ArticleCoroutines in C
“Structuring a large program is always a difficult job. One of the particular problems that often comes up is this: if you have a piece of code producing data, and another piece of code consuming it,...
View ArticleThe Unreasonable Effectiveness of C
“For years I’ve tried my damnedest to get away from C. Too simple, too many details to manage, too old and crufty, too low level. I’ve had intense and torrid love affairs with Java, C++, and Erlang....
View Article8 gdb tricks you should know
“Despite its age, gdb remains an amazingly versatile and flexible tool, and mastering it can save you huge amounts of time when trying to debug problems in your code. In this post, I’ll share 10 tips...
View ArticleDuktape
“Duktape is an embeddable Javascript engine, with a focus on portability and compact footprint. Duktape is easy to integrate into a C/C++ project: add duktape.c and duktape.h to your build, and use the...
View ArticleA Quick Tutorial on Implementing and Debugging Malloc, Free, Calloc, and Realloc
“This tutorial is going to assume that you know what pointers are, and that you know enough C to know that *ptr dereferences a pointer, ptr->foo means (*ptr).foo, that malloc is used to dynamically...
View ArticleValgrind is *NOT* a leak checker
“Valgrind is one of the most misunderstood tools I know of in my community. Valgrind is not a leak checker. It has a leak checking tool. I’d argue that this tool happens to be the least useful...
View ArticleVisualizing Hold’em Hands
“This grid compares the strength of a particular Texas hold’em hand (in this case 8♥Q♠) against all other hands. Each square represents a pair of opponent cards, and the color represents the relative...
View ArticleI Do Not Know C
“The purpose of this article is to make everyone (especially C programmers) say: “I do not know C”. I want to show that the dark corners of C are much closer than it seems, and even trivial code lines...
View ArticleMake: Theory and Practice
“make is a widely used and valuable development tool. It’s a “build” tool: it builds programs and documentation according to a “recipe”. It could really be used for anything where someone edits some...
View ArticleLuajit IO framework
“Pure Lua IO framework, with C efficiency due to its simple but powerful design, and, of course, thanks to luajit, the perfect JIT engine. The Http Server is out-of-the-box, which simulates the...
View ArticleRecovering Redis data with GDB
“We recently had an incident where we had a Redis instance blocked on writing to disk, hung inside the kernel. Through a variety of other circumstances this meant the only up to date copy of business...
View ArticleLearning C with gdb
“Coming from a background in higher-level languages like Ruby, Scheme, or Haskell, learning C can be challenging. In addition to having to wrestle with C’s lower-level features like manual memory...
View ArticleH2O is a very fast HTTP server written in C
Key Features HTTP/1.0, HTTP/1.1 uses PicoHTTPParser HTTP/2 supports the final version1 negotiation methods: NPN, ALPN, Upgrade, direct dependency and weight-based prioritization server push WebSocket2...
View ArticleJob queues, message queues and other queues. Almost all of them in one place
“There are many queueing systems out there. Each one of them is different and was created for solving certain problems. This page tries to collect the libraries that are widely popular and have a...
View ArticleBeej’s Guide to Unix IPC
“You know what’s easy? fork() is easy. You can fork off new processes all day and have them deal with individual chunks of a problem in parallel. Of course, its easiest if the processes don’t have to...
View ArticleBeej’s Guide to Network Programming
“Hey! Socket programming got you down? Is this stuff just a little too difficult to figure out from the man pages? You want to do cool Internet programming, but you don’t have time to wade through a...
View ArticleA scalable TLS proxy
“hitch is a network proxy that terminates TLS/SSL connections and forwards the unencrypted traffic to some backend. It’s designed to handle 10s of thousands of connections efficiently on multicore...
View Articlenanomsg
“nanomsg is a socket library that provides several common communication patterns. It aims to make the networking layer fast, scalable, and easy to use. Implemented in C, it works on a wide range of...
View Article