On C Linked Lists

There are two basic styles of double-linked lists in C; I’ll call them ring style and linear style. The Linux kernel has ring-style, defined in include/linux/list.h.  You declare a ‘struct list_head’ and everyone who wants to be in the list puts a ‘struct list_head list’ in their structure (struct list_node in CCAN’s version).  This forms …

On Conference Harrassment…

The recent attention given to harassment at conferences was sparked by the  sexual assault described of Noirin Shirley at ApacheCon; her particular attacker’s actions were deranged and criminal, but it’s clearly a variation on an ongoing theme of harassment. This issue raises two questions for future conferences: how do we prevent an atmosphere which encourages …

Hashtables vs Judy Arrays, Round 1

I spent some of Friday and yesterday working on my CCAN hashtable module (renamed to htable); I wrote a set of benchmarks and ran them until my laptop steamed and I had burnished the implementation into a sleek shining bundle of awesome. Then it was time to run the same benchmark on Judy Arrays; code …

LWN Supporter Subscription: Take My Money!

I’ve been quietly lobbying Linux Weekly News to offer a $500 – $1000 “Supporter”-level subscription option; LWN has saved my sanity for the last two years as my conference schedule has been severely restricted. But one problem with LWN is that they spend all their time writing and editing quality articles, instead of the boring …

On C Library Implementation

I recently came across the Judy library which seems like an impressive set of data structures to implement mappings (think variable length arrays or hash indexed by simple key).  I also looked through the codec2 sources recently, and I saw some of the same API issues, so I thought I’d crystalize some of them here: …