C-M-k: kills the s-expression to the right of the cursor point. This is really useful in parenthetical languages like Scheme, since it further reduces the need to count parentheses.
But speaking of keystrokes, I should lay off typing for a little time; my wrists have been itching as of late, and I think I’ve been overdoing my keyboarding. I’m back in LA to attend Ken’s wedding, so I should use this time to get away from the keyboard. But I’m typing at this very moment! But I can’t write what I’m thinking without typing… Argh… C-c C-c C-c C-c…
Notes to self on http://sdg.csail.mit.edu/pubs/2000/INS_ASE00.pdf. I’m revising this as I read more.
Shallow summary: the authors use Alloy, a model checker, to validate the design of the Intentional Naming System (INS); along the way, they show that INS has flaws in it. They use Alloy as a counterexample generator and as a tool to explore INS’s design.
What questions does the paper ask?
* When does INS break?
* When does it work?
* Can we use the model to describe general properties for any intentional naming system?
Why is this novel?
* It’s another data point showing that model checking can be used effectively in real world applications.
* It shows, in particular, that Alloy can handle the modeling of complex data structures. This is a new application of Alloy to a recursive algorithm (Lookup-Name) that has not been done before.
I just played another Go game with Guillaume. One of the problems I have is that when I see a ko that I can fight, I’ll rush into it like a lemming.
It must be exhausting to play me sometimes.
I have to stop fighting just for the sake of fighting. Playing games is not all I’m doing for the summer. I am getting a Nintendo DS tomorrow, though. Hmmm…
In retrospect, I suppose I am playing too many games. The days here at Brown have been a lot of fun, but there is serious work I am trying to do. (Or am I trying to be serious about my work?) I’ve been fighting with PLT Scheme’s module system; who knew that loading a module could be so frustrating sometimes?
The issue I’ve been seeing involves trying to erase lexical scope and inject modules through the blood-brain barrier that is PLT Scheme’s evaluation REPL. DrScheme likes to fight back, and I find myself very exhausted and writing error prone code.
In fact, my lexical-scope-erasing macro code was flawed; here’s the corrected code. So Schemers do write buggy code too.
If only it were easy to transfer my determination in playing into programming well.
I’ve been playing Go with Guillaume; it’s a lot of fun, but occassionally I get boneheaded and just don’t know when to resign. It’s bad courtesy, and I should be better about it. There’s a difference between optimism and denial, and I resolve to tell the difference better next time.
There’s also a point when one is programming something difficult; sometimes I feel like I should resign and step back and see that my approach is altogether wrong. But there’s the mythology of the heroic programmer — that one last bug fix, and maybe-if-I-fiddle-with-this-it-will-work syndrome — that I’m still enamored with.
This fault runs deep in me, and I will need to retrain myself to be less silly.