I saw this video posted on programming.reddit.com, and really liked what I saw. There is also a paper that covers the mechanism more. I have always had something of a disgust at what I see as the accidental complexities of GUI programming (although I think Cocoa and Interface Builder do a good job) and that Unix has failed to evolve its best construct (the pipe) to what it ought to be. This failure probably has to do with the "text-streams as universal interface" mantra that, while useful for a good many things, cripples it as a more useful mechanism outside of the shell.
Tangible Functional Programming [video]
Unix Haters Handbook
Unix has a lot of useful things, but historically, the single greatest force driving it onto different hardware platforms is its evolutionary superiority (note that this is quite different to technical superiority). There are a number of flaws in Unix, both historically and today, that do not deserve to be emulated. Unix is very simple, which is its greatest advantage, and also its greatest weakness.
I have finished (in itself an unusual event) reading the Unix Haters Handbook, which anyone with a vested interest in operating environment design (so basically, any user, programmer or administrator) should really read it. Linux weenies will probably be enraged by some of it, but considering that some of it talks about historical implementation faults, many of which have been fixed, there is still good material in here to consider.
Because its useful to hear both sides of the argument, you should also look at The Art of Unix Programming by Eric S. Raymond.
binpac: A yacc for Writing Application Protocol Parsers
I had been giving a lab to my TELE402 students on creating packet-based protocol parsers (a bit of pain never hurt anyone, eh?) and was thinking there must be tools to help do this sort of thing in C, so I looked around, and found a few little things (library-based solutions), but nothing to compare to Erlang's binary support, though closer to Perl's pack/unpack.
A few days later, as seems to be disturbingly—but welcomly—common, this paper showed up on programming.reddit.com, which I am now reading. Looks promising, but doesn't mention systems like Erlang binary support... perhaps this is because they were looking for tools that could a) were based on C++, and b) were suitable for use with textual protocols as well as packet-based.
Here is the abstract...
Some thoughts on security after ten years of qmail 1.0
Daniel J. Bernstein <djb@cr.yp.to> has written a very interesting and insightful paper on the implementation and design of secure programs, using his extensive experience in the extraordinarily-bug-free (well, very nearly) qmail. The concept of 'Bernstein Chaining' is not covered, but the rest provides a good deal of food for thought to programmers, and not only for network programmers.
I recommend reading it.