Jun. 17th, 2005

elfs: (Default)
A couple of weeks ago, George W. Bush stood up at his bully pulpit with 21 babies from three weeks to almost two years arrayed about his feet as if he were some Jesus figure suffering the little children, and he used them to illustrate Snowflake Embryo Adoption, an organization whose mission is obvious in its name. His point was that discard embryos should not be used for stem cell research because there were other things that could have been done with them. His comment was "there's no such thing as a spare embryo."

Well, yes there is. One thing Snowflakes doesn't tell you is... )

This perversion of the word "adoption" is meant to make us consider the embryo as a person-- one can only adopt another person, while embryos are still legally property-- and to obtrude the concept of personhood into the embryonic stage, and thereby reach the stage where abortion is made to seem untenable. And when that happens, IVF too will be untenable. Bush can't attack it now, that would be political suicide. But that is, ultimately, the goal. A little moral incoherence, a little deceptiveness in one's ethical stance, is apparently a small price to pay for some good political capital.
elfs: (Default)
For the past day or so, I have had a conundrum. Freespace 2 kept crashing on me at the end of one particular mission. It didn't seem to matter how I terminated the mission so long as I didn't quit out.

So, I geeked. Freespace runs on top of X, the windowing environment for Unix. Because the windowing environment, the window manager, the desktop environment, and client programs are all independent layers, I took my laptop downstairs and proceeded to log in remotely to my desktop, then ran Freespace 2 in the debugger (gdb), with the output to my laptop. I had two screens open connected by the wireless network-- in one, I was playing the game, and in the other I was watching a real-time display of memory usage and code patterns. Very cool.

The leak turned out to be an attempt to release memory already released. I couldn't figure out how that was possible since, according to the code I saw, it was checking to make sure it did not double-release memory, so why was it trying to free something marked as already freed?

Annoyed, and wanting to play the game, I pulled out a programmer's sledge hammer. Hans Boehm's garbage collector is a library that allows you to comment out all memory freeing; instead, it routinely checks your memory tree and frees the stuff you're not using. I recompiled the game with the library enabled, having substituted the GC_MALLOC call for the routine memory allocation call.

It worked. And it was fascinating to watch my memory patterns go up and down in reliable, routine fashions. The garbage collector was freeing memory once and only once, and my game ran without a glitch. Heck, I think the performance numbers were even a little better. And it was nice to code in C, if only for a little bit. I've been wrapping my head around Javascript's lisp-like enclosures and the double-secret-wacky way object orientation is done, and I want something simple, like C, once in a while to clear my head.

Profile

elfs: (Default)
Elf Sternberg

December 2025

S M T W T F S
 12345 6
78910111213
14151617181920
21222324252627
28293031   

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Feb. 2nd, 2026 12:55 pm
Powered by Dreamwidth Studios