Dperkins' masters defense was pretty interesting. The conversation I had with him on it yesterday had more depth, but I got more of how this fits with his research today - for those outside the relevant communities, it's about developing tutors for formal proofs. It reminds me a bit of the algebra tutors my research group is developing.
While there, part of me was chewing on memoisation - the efforts we take to avoid globals in programming have several reasons, many boiling down to constraining/shaping data flow in programs to enhance structure (and thus readability/optimisability/etc), improve performance, and in some languages/environments, let us do neat things like RPC-ish process/thread-objects. When we have data that are closely tied, we might pack them into a hash/struct, and "negotiate with" that decision on variable scope. The more we do this, the more we give up on naïve notions of memoisation - presumably with languages/frameworks that make memoisation easy and let us explicitly mark incoming variables to be ignored, we could imagine a syntax that would either redeclare the struct with irrelevant bits marked out or mark the hash elements that are partial keys to the memoised value so as not to make memoisation useless for anything touched by such a glob of data, and of course if we want to manage the memoisation manually we can handle such things.. but it seems like we should be able to have a syntax that would let us be more careful and have more complex rationales for when these partial keys differ. The benefits of this would likely only come out when the benefits of memoisation are pretty high - it'd be tempting to always go for the best memoisation possible but the memory/space costs of an even more complex memoisation system might be worse than no memosation at all. Still, if we were to try to imagine a good syntax for these things, what would it look like? ... The more I think about this, the more I think new programming languages are needed for the future. I love C, Perl (OO and not), and ObjC (neither Java nor Fortran90 seem that bad to me either), but none of their syntaces (and guarantees/restrictions on variable usage) are wordy enough to make more advanced optimisation easy (or in some cases possible). A vaguely Algol-family language with a rich set of attributes that can be assigned to variables, blocks, and functions would be really neat. Allowing that set to be semi open-ended (and thus backwards compatible if done right) would be pretty cool - the compiler could just optimise up to its ability to understand keywords, and maybe ambitiously geeky people might even create compiler modules for specific syntax/ideas they thought up (or would it *always* be best to do this in the language - something to think about).
I've also been thinking about a recent conversation where someone I think is a fun person to be around and an all-around pretty cool person isn't seen as such by other people - again due to their attitudes/actions regarding the other sex. It's interesting how often this kind of thing comes up... I think part of this is tied to how the nature of needs a single (or at least available) person has interact with people who might meet those needs, compared with people who might not meet those needs (either because they're of the wrong gender (if applicable) or there's no attraction). The phrase "on the prowl" comes to mind, and to whatever extent we don't really see all sides of people we seem to know, seeing someone in that "mode" can be quite different. How this might affect our view of such a person as a "good person" or "ethical person" seems complex - if (really, to-what-extent is better than if here, but let's ignore that complexity for now) someone's behaviour in value-relevant situations isn't based on reflection on their values, then we're usually looking at their instincts, which might interact with libido/romance/etc in ways we've never seen before. ... I honestly don't know if this paragraph has said very much. Heh.
Random amusement: A bus being towed in Squirrel Hill a month or so ago.. it's kind of creepy seeing empty, shut-down busses.