Morning | Fri May 14 11:09:48 2004 |
| Rocks for Cars | |
| Topics: Programming , Work , Politics | |
|
May seems to be one of those months where nothing goes right for me. I've gotten in trouble, wit a former job, grumbling about things at work, so I'll provide no content, but my level of satisfaction with my job dropped another notch today. It's slowly inching its way from being "great job where I'll work extra hard because things are cool" to "good job that I'm generally happy with, but don't feel all that special about it".
PRIVATE SECTION NOT SHOWN
And, of course there's the whole being treated like crap and booting the girlfriend thing... which happened the same way in another direction last year.. and the final that didn't go so well.. To top it off, on the way to work today, I got almost run over, twice. The first car didn't seem to remember from driving school that when a bike is in the middle of the road, you're supposed to treat it like a car, and the car actually touched my leg as it zoomed past, half in my lane, and half in the empty lane to my left. The second car ignored my hand signal that I was going straight and did a right turn right in front of me from the left lane, almost causing me to hit them. In the future, perhaps I shall carry rocks with me on my bike to throw at cars that endanger my health.. either that, or I'll just get a horn. If I were the superstitious sort, I'd plan to just hibernate through every May. On the upside, last night I went and met with some philosophical folk at CMU and discussed Mathematics and Language until after midnight. It was the first such meeting, and so they don't have a name yet. We have some ideas, and fortunately their names are free in DNS, but it would not be wise to repeat until we've decided and registered what we want. I continue to think about the difference between compile-time, load-time, and run-time information available to a program that affects its amount of staticicity, the push to make ever-smarter compilers to push as much as possible into compile-time, and interesting tools like Transmeta's code morphing and DEC's FX!32 (now defunct) that rely on information not (usually) available to even the smartest theorem-solver that can optimize a binary. It's interesting to think about programs adapting themselves as they run, turning on or off caches, inverting flow controls to avoid branches, memoizing, and the like. It's always been disappointing to me that so few programming languages provide a good way to tell the compiler relevant information for good optimization. I wonder if generally runtime profile information for optimization tends to be done by associating each possible branch or arrangement of code with some kind of a seperate table that a smart loader would use to apply-optimizations-while-loading, or if that's too complex/not flexible enough, and instead the binary is directly modified.. if the latter, there are all sorts of issues with verifiability -- how can we tell the difference between a virus-infected or trojan binary and one that's just optimized differently? Depending on how free-form the table idea is, perhaps a hack could be written partly or entirely in that form too. In that case, the 'allow user code to change tables but not binaries' is really dangerous.. Either the system needs to monitor programs (attach via a tracing mechanism?) to modify such binaries, or only root's running of programs can cause them to be modified.. both are poor solutions. One could imagine per-user tables, but that'd be kind of space/complexity wasteful (although perhaps better optimizations are possible that way). Transmeta gets around this, I imagine, by using special CPU features. I don't know how FX!32 did it. What I can remember of how it advertised how it worked seems pretty weird. Kids keep walking by and wonder what happened to the cats. It makes me sad.. If you want to see some of the much-talked about Iraq pictures, and haven't seen them on TV (I'm guessing they're on there -- I don't watch), take a look here. Note that that *IS* very nasty stuff. And here's a bit on military training that tries to explain why. Here's a bit more on the joys of Christianity and Islam bringing civilization to Africa. This isn't to say that the tribal faiths were likely any more civilized... It really is incredible that the patriot act goes so far. Here is an article on how the ACLU was forced to keep mum about some proceedings relating to terrorism because of secrecy provisions. It's disturbing that that's the law of this land, disturbing enough that I wish there were something I could do to act against such things in a less goody-two-shoes way than acting to give BushJr (pretzels be unto him) the boot. Note that while that link is to slashdot, it's just a copy of the registration-required Washington Post article (best to avoid registration when possible). One of the most treasured gifts of civilization, the Library of Alexandria may have been located recently. I wonder if this advice could help me with my eyes. I also look forward to the upcoming embarassments as I try to learn Russian (picked up the books today). Huzzah! Initially thought that it was odd to be calling for Rumsfeld to resign over the abuse of the prisoners -- how could he possibly have known about the tortures? Then, I read that he approves of at least some tortures. The argument that the Geneva convention does not apply is, I think, complete rubbish. One should always act as civilized as possible. | |