HN user

idbfs

119 karma
Posts0
Comments19
View on HN
No posts found.
Programming Fonts 4 years ago

About once a year I see a cool new programming font and decide to try it out. Then, shortly after, I invariably switch back to DejaVu Sans Mono.

I suspect that if I gave myself more time to acclimatize to the new font, I might even grow to prefer it. That, or perhaps DVSM is simply the perfect font for me.

I knew what this was going to be as soon as I saw "aux.h" in the screenshot.

Some years ago I was working on an embedded system that involved DisplayPort. For those unaware, DP's control channel is called AUX. One day, my new co-worker who used Windows asked me, who used Linux, why my AUX-related code wasn't checked in - which it most certainly was.

And that, folks, is how I learned about this absurd property of Windows that exists to this day.

On Binary Search 7 years ago

I was wondering the same thing. It's either a horrible human-written article, or an impressive machine-written one.

A paper that changed my approach to designing state machines is "Statecharts: A Visual Formalism for Complex Systems" by Harel (http://www.wisdom.weizmann.ac.il/~harel/papers/Statecharts.p...).

Statecharts (also called hierarchical state machines) are essentially generalized state machines which allow for nesting and parallel composition of states. The 'nesting' part is my favourite, since it allows one to delegate event handling logic shared by multiple states to a 'parent' state, reducing code duplication.

The great thing about this paper is that you can glean most of its key ideas by just looking at the diagrams.

"Because USB keyboards don't support arbitrary numbers of keys being pressed at once."

There is actually nothing in the USB or HID specifications preventing USB keyboards from supporting n-key rollover (when using the report protocol -- keyboards using the boot protocol are limited to a 6-key rollover). The reason most don't is simply to reduce cost and complexity. A sufficiently motivated person could build a USB-compliant keyboard that supported an arbitrary number of simultaneoue keypresses, and some do (e.g. http://www.maxkeyboard.com/max-keyboard-nighthawk-x9-red-bac...).

10/Fifth: More people multiplies communication overhead exponentially, slows everything down. Company bogs down, becomes bad place to work.

Warning: pedantic.

Adding people increases communication overhead quadratically, not exponentially. To see why, consider the complete graph on n vertices (people), K_n. The number of edges (lines of communication) in K_n is n(n-1)/2, i.e., proportional to n^2.