Daily Shaarli

All links of one day in a single page.

July 14, 2014

▶ Reverse engineering vendor firmware drivers for little fun and no profit [linux.conf.au 2014] - YouTube

Hardware vendors like to add Unique Selling Points to their devices to convince you to buy them instead of someone else's. Of course, this typically leads to hardware vendors desperately copying each other's Unique Selling Points in a process eerily reminiscent of evolution's Red Queen Effect, all desperately trying to run faster than each other in order to stay in the same place. Putting effort into standardisation would risk them falling behind vendors who choose not to, so in the absence of some external force to compel them, vendor-specific solutions proliferate.

Guillaume Chereau Blog - Named parameters in C

C99 introduced the concept of designated initializers, that allows to initialize a structure using the name of the fields, like this:

struct {int x, float y} MyStruct;
MyStruct a = {
.x = 10,
.y = 3.6,
};

Here is a C macro that extends this syntax to function calls.

A ToC of the 20 part linker essay [LWN.net]
How good are you at programming?

The table characterizes the proficiency level (columns) of programmers of a particular programming language in the context of different programming activities (rows).

This table is inspired by the CEFR table of the same name, for assessing proficiency in natural languages. Like the CEFR, this table divides learners into three broad level divisions: "Basic user" (A), "Independent user" (B) and "Proficient user" (C). The broad divisions are each further divided in two levels (A1, A2, B1, B2, C1, C2) that correspond to testable milestones in language acquisition.