January 2012
« Dec   Feb »




Don’t Fear the Mistakes

During teaching, there is a fascinating (and unfortunately common) problem: Students are VERY reluctant to suggest an answer, for fear that they might be wrong.

Salman Kahn, noticed this phenomenon after he started doing videos for his niece and nephew: (I’m paraphrasing) “The last thing they needed was for me to be there expecting an […]

A New Field: Information Type Flow

In my last post on Information Flow, I noticed that some flows are more informative than others. I used a switch statement for my illustrative example of that observation. But, from my experience as a software developer, I have a small aversion to switch statements. Usually, when I feel compelled to use one, it’s because […]

Gold is Money

I would like to evaluate whether or not Gold functions better than paper as a currency. This subject comes up, because of an engaging argument that I had last night about the U.S. Constitution and it’s purview of the monetary policy of the U.S. government. In particular, though the Constitution does not define what Money […]

The Good IR

This post is part of a seres: The Good IR (BasicBlocks and control flow instructions) The Good IR: Other Control Flow Structures The Good IR: Instructions and Values The Good IR: Reporting Semantic Errors via Type Checking The Good IR: Multiple Returns —- After parsing, each function can be represented as a ControlFlowGraph of BasicBlocks. […]

Deliberate Practice: Learn to Type

If you’re gonna be in the software industry. You have to communicate, not only through code but also through email, forums, IRC or IM. It’s not so important that you be a fast typing in order to bang out code really fast. Rather, you should be a fast typing so that it doesn’t hold you […]

Project Course in Web Services

I’ve just finished reading Phillip Greenspun’s experience report, Teaching Software Engineering, which details a project course in building Web Services. Even though I personally, hate the Web’s architecture (but that’s a rant for some other time), it still remains as THE most influentential and convenient place to showcase one’s work. It’s also convenient for shopping, […]

Not All Flows are Considered Equal

When I was writing last post about information flow terminology, I noticed something interesting: when knowledge of control flows are used to determine the values of variables, some branches yield more information than others. Previously, I had only considered the binary if-then-else branch. Today, I shall examine a switch-case statement, which exhibits asymmetric information flow.


A Configurable Keyboard

Ideal Key Layout

For a long time, I have hated the layout on all keyboards I’ve ever laid hands on. It’s not just that I prefer Dvorak to Qwerty; it’s that the slanting of the rows causes an awkward bending of the left wrist, that the space key is far too large when you […]

Merovingian Neckwear

Somehow, I feel that I betray my cyberpunk heritage because I’ve recently found it entertaining to don extravagant neckwear. But, my recently conducted anthropological expedition has revealed evidence that I am in fact upholding a veritably geek tradition.

New Terminology in Information Flow Research

Information flow is about tracking the flows of information within a computer program, i.e. what values influence other values as the program executes. Denning and Denning looked at this problem in the late 1970’s [1, 2] and distinguished between flows that occur due to a data dependence (such as assignment) and flows which occur due […]