Monday, December 27, 2004
Bitches!
Sounds like Mitch Hedberg's got a little dok-dok-dok problem (or his existing problem has gotten worse). His act actually sounds pretty punk rock, though.
Okay, I'm home now. Razor Lopez and Chrissy Rodney were supposed to come over to hang out / play Xbox, but one's feeling sick and the other may not be doing so great either, so right now it's looking like an evening of drinking wine and hacking LISP by candlelight.
Saturday, December 25, 2004
Fuck Christmas
We have switched the cat to this dry food that's supposed to help her skin, but I'm not very good about measuring out how much to give her -- I just pour it into the bowl until she pushes my hand out of the way with her head -- and it's kind of upset her stomach. She just crapped an extremely noisy diarrheaic crap into her litter box. Think the ring-presentation scene in Henry Fool.
Look, I know crapping on people who whine about the discrepancies between the book and movie versions of Lord of the Rings is kind of passe these days, but take a gander at this site. See... there seem to be a lot of you out there who think these books are some kind of masterpiece, but you need to face facts: This Tolkien guy is positively a misogynist and extremely probably a homosexual. I shit you not, I have read his biography. All this bullshit people are always carping about -- platonic ideal of male friendship and all that -- it's just Tolkien crapping on women and wanting to fuck his WW1 buddies. There is no such thing as this innocent, affectionate male friendship that people won't shut up about -- Sam wants to fuck Frodo. Don't you get it? And when you people get all fussy about Peter Jackson tampering with this sacred, sacred little repressed love affair it means a) you are gay, which is fine; or, b) you are a tiny little immature baby-person, because that was the creepiest goddamn part of the whole trilogy of books -- books, which, by the way, are notable more for the obsessiveness of their author than for anything else. They represent a disorder on the scale of this, minus the little naked girls with dicks, of course.
I sarcastically cannot wait to hear everyone's wonderful opinions about this upcoming thing.
Mer and I have been doing this thing recently which I think is fun enough to recommend to others. Instead of going to the movies or buying CDs or whatever, once a week we have been going out to eat, usually for brunch, at a different shi-shi restaurant in our neighborhood. It usually comes out to around $30, which is why we only do it once a week, but now we have totally eaten at like every restaurant in our neighborhood. Places like
- The Cornbread Cafe - Good cornbread, which is something of a rarity; roasted potatoes to die for
- Applewood - Good food, especially if you like apples; they have a real working fireplace, too
- Dizzy's - Expensive, so-so food, and they gave us the bum's rush when it started to get busy
- 2nd St. Cafe - Deelightful, if you don't mind the wait. Best "huevos rancheros" in the galaxy.
Oh yeah, and I forgot -- I don't usually like Mac Hall that much, but this strip is a keeper.
Friday, December 17, 2004
Oh Bess
None of you are getting Christmas presents from me, because frankly I think it's silly.
Went to see a production of a play called "The Highwayman" that my friend Julia was putting on; a bunch of my other friends were in it -- hell, I was almost in it myself but I got bumped in a case of cruel casting-call caprice. It was great, except that the theater-space it was in was not heated at all, and I was wearing my All-Star low-tops. My toesies got been frozed.
Wednesday, December 15, 2004
The Worst Day Of Your Entire Life
- About 3 (spicy) italian sausages, torn into little chunks with your fingers
- Broccoli (or other steamable veggie) cut up however you like it
- Some garlic, chopped up small
- Some hot red pepper flakes if you want
- Olive oil, a third of a cup or so
I've been reading some old textbooks on computability I had lying around and reviewing the proofs for shits and giggles -- it's like playing a videogame with a walkthrough. Among the amusing results, for the sake of review:
- It is not possible to write a program that can figure out whether or not a particular program will behave in a particular way given a particular input (call it "accepting" or "rejecting" a string)
- It is not possible to write a program to determine whether another program rejects all string
- Furthermore, it is not possible to write a program that can tell whether two programs have any properties related to string-acceptance in common at all
- It's not possible to write a program that can tell whether another program is as efficiently-written as possible
Taking a tip from Devin, who literally has a separate blogger.com account for each of the cartoon characters in Yu-Gi-Oh! with whom he's consumated a relationship, I've added a little sidebar that contains an HTML-ization of my Advogato RSS feed. What the fuck does that mean? Well, it means I don't have to write about computer stuff in this 'blog any more, because any interested parties (don't think there are any) can read about it there. It also means there'll be fewer entries in here, because I don't give a fuck about shit that doesn't compute, knowwha'msayin'? Now I just need to find a way to fix the stupid font color for those links.
Monday, December 06, 2004
Vacation Wrap-Up
- On Sunday and Wednesday I went running. After that it got way, way too cold in the late afternoon, which is when I like to go
- Rented a couple of movies that I'd been wanting to see for a while: The Wicker Man and eXistenZ. The Wicker Man kind of dragged it's feet a bit when it came to making with the scary (make with the scary already!) but it was a fine character study, at least. And it has songs. Everyone (i.e., the back of the box) is always comparing eXistenZ to The Matrix, but that's stupid. I think the Matrix maybe had a cleverer premise, but not even. Whatever. Fuck talking about movies.
- Vacuumed and cleaned a whole bunch
- Partied out with Razor Lopez a bit
- I went shopping at the Target down at the Atlantic Center mall on Flatbush near our old place. Let me tell you something -- Target is some nice shit. It almost approaches the level of, like, a department store in Manhattan, where you feel like you're too dirty and poor to shop there. I bought some new boxers, a pitcher for juice, and a wonderful glass container for storing flour so that the larder beetles don't have babies in it any more.
After her mom left, Mer and I went out to brunch to celebrate at the 2nd Street Cafe (it's on 7th Ave.), and I had these huevos rancheros that were basically the most delicious thing I'd ever eaten. I mean, I've never had huevos rancheros before, but shit. I could eat 'em for god-damn forever. Anyway, on the way home we stopped at GameStop and Mer bought this game called Syberia II, which is like a sort of shitty version of Myst set in the colder parts of Europe -- an idea not without its charm, mind you.
So Mer and I have been playing this game, but it just sort of freezes up all the time, so this morning I re-played all this stuff that we'd played yesterday but lost. The funny thing about the game, though, is that by default there's a subtitle track that goes along with the voice acting, and whoever wrote out the script... well, they really wrote it out, so you've got characters whose dialogue comes up as something like, "Snigger. Sure seems like it, eh, pet? Snigger."
Okay, so you know how I said I wanted to post some screenshots of the XUL renderer I you all I was working on? Well, this afternoon I got it a to a point where I got something worth showing off, and I have promptly stopped working on it. Phew -- now I can finally enjoy my vacation! Oh, wait -- I go back to work on Wednesday. Anyway, the thing I'm rendering is the Preferences dialog window from this Mozilla XUL application called MozEdit. I've modified it slightly to compensate for the fact that my renderer doesn't deal well with explicit lengths that are specified in pixels. The one on the left is the output of my renderer, the one on the right is Gecko (i.e., FireFox):
![]() | ![]() |
Tonight I think I'll go see Bill's band over at Knitting Factory. Maybe there'll be an open bar.
UPDATE: Yeah, so I went to the show, and it was fine. Very nice. But before going I made this elaborate dinner -- it was spicy baked yams and eggs au gratin with asparagus tops. Totally delicious and I totally pulled it off in about an hour. But during the (terrible) band that came after Big Business, I was talking to Sam Huntington in the back by the bar and I farted this long awful fart; probably the stinkiest fart I've ever farted in my life. It just smelled like rotten garbage or something, and it hung around for freakin' forever. The female member of this couple that was standing next to us actually suggested that they go somewhere else. Sam was totally understanding, though, and said that he'd farted a worse fart earlier the same day. What a guy.
Thursday, December 02, 2004
I On Vacation
Wednesday, November 24, 2004
Set And Forget
My ncurses XUL renderer is coming along nicely. Too bad XUL sucks and only crazy people write programs for ncurses. I'm working on getting CSS properties imported and making colors work. Maybe I'll start a SourceForge project for it once it's a little more mature. Or a Savannah project.
Everyone's an idiot except for me.
Monday, November 15, 2004
Shitcock!
- At every node in the tree, ask your children how much space they need to render themselves; offer each child node the maximum space available to you
- If the aggregate of requested sizes from your children exceeds one or both dimensions of your maximum size, scale all children to fit proportionally
- Set your size to the minimum between the aggregate of your child node requested sizes and the maximum space available to you
- If you have any text content, size the text according to a line-break-aware text-sizing algorithm (too boring to describe here)
- If you have child nodes, take the maximum width and the aggregate height (or vice versa, if you're orienting your elements horizontally) of your children
- If you have a specified min-width or min-height, ensure that your requested width and height are at least equal to these lower bounds; if you have a specified max-width or max-height, these should establish a cap for both dimensions
Here's a piece of bad news. It turns out the reason that KeySpan's been asking us to pay $60 a month for cooking gas is that there's a gas leak in the building somewhere between our apartment and the incoming gas line in the basement. The KeySpan guy shut off the gas to our apartment and the landlord's got a plumber coming on Thursday, but it's not super clear when we're gonna have gas again.
In a moment of nostalgia, I went searching for this story that Bill and I had found on Stile Project a while back. I remember Billy originally remarking on it as a pretty dead-on characterization of how depressing and shitty (literally!) suburban life sounds -- it doesn't disappoint.
I'm on vacation on Thursday and Friday! Suck a dick, employers!
Saturday, November 13, 2004
Yes. Right Into The Camera. Yes.
- All hail M-Biddy for getting a job -- at OpNet, the Pentagon's largest supplier of nuclear missiles and Arab-killing gases! No, that's not what it is; it's some boring god-damn networking thing
- All hail Devlin Smithers for making. more. money.
<box id="main-box" align="center" border-width="1">
<label id="main-box-label" text="Click the button below"/>
<button id="main-box-button" text="Click me!"/>
</box>
It's pretty obvious what that's gonna look like, right? And it was super-easy to write, too. Here's the problem: Currently, the only real renderer for XUL is called Gecko -- it's what renders HTML for Mozilla Firefox, too -- and so you need a raster-based GUI like X11 or Win32 to run it, and this doesn't help anyone at all if they're trying to develop text-based applications. So what I want to do is make it so that you can feed in that XUL to ncurses and have ncurses draw it in text mode. This is not an unreasonable proposition, since the majority of the widgets specified by XUL don't specifically require pixel-level control of the display device.
Where it gets interesting, though, is in trying to figure out where to draw these things on the screen. I found a little bit of information on this at the Gecko development page, but for the most part I have to figure it out myself. HTML, see, uses what's called a "flow" based layout paradigm, which means that you more or less assume that a "page" can be arbitrarily long, so that if there's an element that absolutely needs to be a certain size, then the other elements can wrap around it or go after it, and you basically can just put things in the next available space on your infinitely long or wide page. XUL, on the other hand, as well as other rendering kits like Gtk, are "constraint" based, which means that there's a certain maximum size (such as an application's window) and you're not allowed to exceed that size -- so if you give all your elements leeway to take up as much space as they want, you might not have room for all of them. So maybe you have to squish some of them a little, and even then you still might not have enough room. Basically, constraint-based layout algorithms are more likely to fail than flow-based ones; and that's okay -- it's interesting, even. So I'm trying to write some layout code now. We'll see what happens.
Adam Cadre finally got some essays up about the election -- it's a lot of material, but it took him like a week and a half, too! The more of his shit I read, the less I think I'd like to hang out with him personally, but that doesn't mean he doesn't make a mean bean dip.
I want to do something this weekend, but I think I'm getting sick. We'll see.
Oh yeah, here are links to some 'blogs that I found; I'm not gonna create permanent links to them because I'm not especially close friends with their respective authors, but some of you might be, so:
- Rachel "Dratch" Wasser's 'blog, The Asian Invasion. She's in Hong Kong right now?
- Sam Culp's 'blog, New Territories. She's also in Hong Kong.
- Justin Charles' 'blog.
Wednesday, November 10, 2004
People With Ultimatums
...commentators all over the political spectrum are saying that one of the reasons that Democrats lost the election is that they are "elitists" and "out of touch" with the "moral values" of Americans. But you know what? The problem is not that Democrats are out of touch with Americans. It's that these so-called "Americans" are out of touch with America as a concept. While all of these pundits are decrying the division of America as somehow the province of "liberals" and their misunderstanding of the middle and south of the country, how about just the occasional fucking word about how Bush's constant berating of "intellectuals" and "Massachusetts" is more divisive, as if somehow Illinois, Pennsylvania, California, and New York are filled with eggheads who only theorize and refuse to get their hands dirty in the real work that all those amazing "real" Americans engage in every day.Apparently some of you think the south of this country deserves some sort of pass, because... God, I don't know, your reasons are so shitty and irritating that I can't even remember any of them. And neither, apparently, can this guy. But I could have told you that ignorance wasn't a fucking virtue before this election. And I know you guys think that ignorance plus poverty makes 'em okay, but look: When people get too poor, sometimes you just have to kill them, because clearly they didn't want it bad enough.
John Ashcroft resigns?! Apparently some of you saw this coming. Sez he:
The objective of securing the safety of Americans from crime and terror has been achieved.Buh?!
I submitted my partially-working thread-cancellation patch to the Guile people. The more I think about it, the more I think my code was working and was actually exposing some SEGVs in their code. I mean, it was crashing when I pushed a quoted symbol into the list of cancellation expressions, and the crash happened in one of their symbol lookup functions, so... I don't know. Hopefully someone will look at it and get back to me before they release 1.8.
I also packaged and made preliminary releases for gzochi-client, gzochi-common, and gzochi-server. Peep it here. If you have any sort of UNIXy operating system, I encourage you to download it and give it a shot. Hell, even if you've got Windows, all you need to do is install Cygwin, and you should be able to use my stuff. Throw me a god-damn bone here.
I've also started working on that ncurses renderer for XUL -- after getting into a heated argument (well, not that heated) with some creeps at the Mozilla Foundation. For some asinine reason, they don't want to write a DTD for XUL, because then XUL wouldn't be "extensible" any more via this language they've got called XBL. This is retarded! If you develop a "technology," or whatever they're calling XUL, and you want developers to use it, you need to make them some kind of promise that it's safe to use -- this promise is called a "standard," and even if part of this standard is that core functionality can be extended. You just include the extensibility in the standard, so that your developers know the ways in which your thing can be extended. Fuck! God damn it. Their other rationale for not coming up with a standard is that "Mozilla is not a validating XML parser." Jesus Christ! These people who don't believe in DTD validation, much less don't believe in Schema validation... the horrible, anxiety-producing code you must write -- huge if-blocks scrabbling to figure out what to do if you come across an element that isn't a member of some array you put together somewhere. People: Whenever you write parsing code for a particular "document type," you are damn well writing a DTD / Schema validator from fucking scratch!
Okay, okay, you're bored -- I can read the writing on the wall. Fine, here's some more stomach acid, this time from The Register:
Your primary and secondary schools will continue to turn out third-rate pupils with limited opportunities, while you enjoy the satisfaction of making it on your own without health care when a catastrophic illness bankrupts your family.
Your agricultural universities will continue issuing Ph.D.s in football, and bogus Protestant Evangelical and Fundamentalist theology, and how to jerk off a bull safely. Your children will learn to borrow enough money to erect chicken houses so that they, like you, can take custody -- not possession, but custody -- of Tyson's chicks, feed them, rear them, assume losses from those that fail to thrive, and in the end earn just enough money to service their endless debt, and realize a profit of perhaps $12K a year. Your bank thanks you; Tyson thanks you; George W. Bush thanks you; and I thank you.
Thursday, November 04, 2004
Americans Get The President They Deserve
I also have a substantive recommendation to the Blue states: Do all that you can to shut off the spigots. Completely. Shut it down. All of it. No more sucking on the government's teat for the Red states. Transform the rhetoric of your Republican brothers into practice: Slash federal spending (is that still a Republican position?). Wipe out the farm subsidies. Eradicate all block grants to the states. End the transfer of thirteen cents out of every Blue State Tax Dollar to the Red states (call it "Real Welfare Reform".) Replace every dollar of reduced federal spending with a dollar of in-state spending.My own solution -- don't know how easy it'll be to implement, but put my name on the paper if you submit anything to a conference: Read this; now this. Get it?
Let Illinois, New York, Michigan, Wisconsin, Washington, California, and the rest of the Blue States keep their own damn money. Let the Red states keep out the gays, which is apparently their highest priority. Wait ten years and see who comes out ahead. And yes, this is bad policy. But it's clearly great politics. And winning on the political dimension is, sadly, a necessary condition for winning on the policy dimension.
Or just listen to my friend "Razor":
The men, the revolting, shit-for-brains slobs who voted for Bush should be taken out behind some stripclub and stabbed in the back of the neck with a butter knife. Some of them should have their eyes popped out by the same knife before they're killed.
Monday, November 01, 2004
Roach In A Bottle
Here is your Moist Towelette. It will clean and refresh your hands and face without soap and water. Self dries in seconds, leaving skin smooth and soft. Directions: Tear open packet, unfold towelette and use.Toddles and Teddles and I went "canvassing" in Pennsylvania yesterday. I don't know if you can even call it canvassing -- we just slipped this little leaflets under everyone's doors. Sometimes they'd hear you and open the door as you were walking away -- this gigantic and pretty much naked man picked up the pamphlet I'd slipped under the door as I was closing the door of his fence. I said, "Just wanted to make sure you knew how important it was to vote on Tuesday!" He looked exactly like the sexual predator in Stevie. Later, a small dog made a big dog bark and I fell off the top step of some stairs. It's important to vote, kind of. My thread shit doesn't work. So I'm implementing some other stuff in gzochi. Thinking about maybe getting going on ncurses bindings for XUL. That would be insane. Oh yeah, you guys can leave comments on my 'blog now. Try not to get, you know, too excited. What else. The gas bill is too high; the telephone does not work.
Tuesday, October 26, 2004
The Nude Pundit
So when Rehnquist tries to say he's thinking retirement now, too late for an appointment before the election, and with the potential loss of the Senate even if he wins, Cheney snaps. He pulls the tube out of Rehnquist's neck and whips out his cock. Rehnquist, wide-eyed, now wishing he had chosen death over the horror that is about to happen, gasps for air. "Gonna have to fuck your neck-hole, Bill," Cheney says, slapping his cock around, trying to get an erection, thinking about Mary and her partner 69ing, thinking about dismembered Iraqi children, all the things that usually make him hard.My fucking Guile thread cancellation thing doesn't work at all. I'm totally frustrated with it and stymied. Euchhh. I did, however, fix a database thing that wasn't working in gzochi. Whatever.
Does Krasdale make anything that's not cheap and delicious? Their onion rings and seasoned fries: Delightful. Their frozen pizza: Sublime. Their waffles: Transcendant, and certainly light-years ahead of Eggo. Jesus. Their frozen mixed veggies: Gave me extremely painful mud-butt. So that's one thing.
I thought I whined about grad-school recommendations already in this thing, but going back through the archives, I can't find it. Well, I asked this professor of mine for a recommendation back in August, and he made me jump through all of these hoops, basically, to get it. So I finally e-mail him all the information he'd asked for, and I don't hear squat from him -- at all. Not even any indication that he'd received any of my hard-won information that he'd asked for. And I sort of forget about it for a while. And then I realize, I gave him Nov. 2nd as a deadline for it, and it's practically Nov. 2nd now. So I e-mail him to politely ask how things are going, and he writes back almost immediately explaining that he just had decided to ignore a bunch of his old e-mail but that he'd get right on my thing. Deek!
Oh yeah, and THE YANKEES WIN THE PENNANT!
Tuesday, October 19, 2004
Partisan Hackery
STEWART: See, the thing is, we need your help. Right now, you're helping the politicians and the corporations. And we're left out there to mow our lawns.
BEGALA: By beating up on them? You just said we're too rough on them when they make mistakes.
STEWART: No, no, no, you're not too rough on them. You're part of their strategies. You are partisan, what do you call it, hacks.
What is that I just quoted, right there? If you haven't seen it, I encourage you to click here. It is delightful. I'll quote some more of it in a bit. Go here, too: Rude Pundit. I recommend this one and this one and this one.
One computer thing I've been doing is working on this GNU system called Guile, which is an embeddable Scheme interpreter. I use Guile as the workhorse for gzochi's game-design language -- actually, Guile Scheme is gzochi's game-design language, and I embed Guile to make the games run. One problem, though, that I've had since day one, is that Guile's thread support is a bit shaky. Wait a second, have I explained threads in the blog before? Sometimes I like to explain some of this technical stuff so that if people like Devlin, for example, who are somewhat technically naive, but who have some vested interest in understanding stuff can know what I'm talking about.
So: Many times you will be writing a program, and you will want to start doing two things at once -- say, you want to listen for keys getting typed at the keyboard but you also want to be printing out messages you're getting from an Internet connection and you also want to be playing some music or something. Well, given that a program (as conceived of by most programming languages) is a sequential list of things to be done, it is hard to make more than one thing appear to happen at once. I mean, more than one thing cannot be done at once, but if you switch back and forth very quickly, you can give the user the impression that these things are happening at once. And if you want to do this yourself, you would have to say, in your program, "Okay, read a little bit from the keyboard, and now write some stuff to the screen, wait, go back to the keyboard, okay play a few notes of music, back to the screen, etc." That's a pain. So the operating system will very often give you a hand with this, in the form of "threads." You tell the operating system, via your program, that you have several disparate lists of instructions you want it to execute, several "mini-programs," say, called threads, and the system will start executing them all and will handle all of the switching between them for you. You don't have to worry about it, for the most part, until they have to interact with each other in any way, and then you have to worry a lot. But that's what threads are, anyway. Here's some more Jon Stewart:
BEGALA: Let me get this straight. If the indictment is -- if the indictment is -- and I have seen you say this -- that...Right, so Guile, when I started investigating it, supported a form of threading, which I needed, because the games being hosted by the gzochi server would need to be able to evaluate Scheme code concurrently with each other, but it was a weird, custom kind that wouldn't interact well with the operating system's normal threads. But the Guile people are in the middle of writing a new version and they've fixed that aspect of their thread stuff, and I'm excited about it. However, it looked like they still hadn't fixed this other thing, which is that their thread support didn't entail letting you cancel running threads.
STEWART: Yes.
BEGALA: And that CROSSFIRE reduces everything, as I said in the intro, to left, right, black, white.
STEWART: Yes.
BEGALA: Well, it's because, see, we're a debate show.
STEWART: No, no, no, no, that would be great.
BEGALA: It's like saying The Weather Channel reduces everything to a storm front.
STEWART: I would love to see a debate show.
BEGALA: We're 30 minutes in a 24-hour day where we have each side on, as best we can get them, and have them fight it out.
STEWART: No, no, no, no, that would be great. To do a debate would be great. But that's like saying pro wrestling is a show about athletic competition.
See, sometimes one thread will be running and another thread will discover that there's no point in having the first thread keep going and that it should be shut down; for native Unix (and Windows) threads, this second thread can do just that, by telling the system to cancel the first thread. It gets a little bit complicated, though, because this first thread might be in possession of some resources that can only be held by one thread at a time -- for example, maybe a thread has exclusive rights to write to a particular file. If the thread is cancelled, the file stays inaccessible to everyone else. To get around this, most thread implementations allow you to install what're called cleanup handlers for threads, which are sections of code that get run when a thread is cancelled. So, for example, before you "lock" a file to write to it in a particular thread, you install a cleanup handler that unlocks the file, so that if the thread is cancelled in the middle of writing, the file gets unlocked for later use. More Stewart:
STEWART: But the thing is that this -- you're doing theater, when you should be doing debate, which would be great.So Guile didn't have thread cancellation, which is something I needed, so that threads of Scheme evaluation that took too long wouldn't get the game "stuck." Well, I figured since the new version was in active development, I'd take a shot at it myself. Here's how I did it:
BEGALA: We do, do...
STEWART: It's not honest. What you do is not honest. What you do is partisan hackery. And I will tell you why I know it.
CARLSON: You had John Kerry on your show and you sniff his throne and you're accusing us of partisan hackery?
STEWART: Absolutely.
CARLSON: You've got to be kidding me. He comes on and you...
STEWART: You're on CNN. The show that leads into me is puppets making crank phone calls.
Every Scheme thread created by Guile has some information associated with it, such as a value to return to other threads that are waiting for it to finish, etc. I take that information, and add a little bit more to it: A list of expressions that need to be evaluated when the thread receives a cancellation signal. See, Scheme's what's known as a functional language, so expressions (instead of instructions in a so-called imperative language) are the basic unit of currency. So before you put a lock on some resource in your new Guile thread, you add a cleanup handler to my list of handlers -- so that you can clean up if you get cancelled while you're using the resource -- and then when you're done, you uninstall the handler. It wasn't super hard to do.
Here are the problems so far: Guile does this fancy dynamic library thing when it loads which makes it rather difficult to debug, so it took me a while even to begin to make progress debugging things. Also, threads that aren't created by Guile are not straightforward to cover with the cancellation cleanup policy I described above -- think of it like this: You embed Guile as an interpreter for Scheme code in your C program. You have a thread of C code initialize Guile and start intepreting Scheme for you. Your Scheme-interpreting-C-thread represents, in a way, Scheme-thread #1. Let's say the Scheme code you're interpreting launches another thread of Scheme code -- this thread is Scheme-thread #2, and will also, at it's core, be C code interpreting Scheme code, but this thread is covered by the cancellation policy, whereas Scheme-thread #1 is not. I think that's a feature, not a bug.
We'll see if they like it.
More computer shit: So Raymond Chen just posted this thing about how application developers chronically misuse the Windows API -- e.g., storing application data in like, undisplayed components of the widget set -- and then Microsoft had to go out of their way to work around this so their program would still work in the next version of Windows; he says (used without permission):
The moral of the story: Even if you change something that nobody should be relying on, there's a decent chance that somebody is relying on it.Some guy posted the following comment, which I think is a nice counterpoint (again, used without permission):
(I'm sure there will be the usual chorus of people who will say, "You should've just broken them." What if I told you that one of the programs that does this is a widly-used system administration tool? Eh, that probably wouldn't change your mind.)
Although it really is amusing to read all those stories about "bad guys" who did something wrong and nowadays we have a few megs of code only to catch them, what is the real moral in that?Raymond didn't have anything to say on that one, last time I checked. Imagine how good Windows could be if Microsoft didn't take this retarded tack when it came to developing it!
The only lesson I have learned is that I can use any dirty trick I want, if my app would be important enough that MS would test it (and then make sure it won't break). Why should I use ACT if MS will do that for me (and "repair" Windows accordingly)? (And if my app is not important enough, I'll just post some info about the trick to a newsgroup, someone else's important app will use it.)
Friday, October 15, 2004
The Inevitable Cave
Oh, one cool / irritating thing about this new thing is that it comes built-in with this hard drive shock-protection system, wherein this driver can detect when the laptop's being moved, so that... well, I don't know what practical application it actually has, but the Windows version of the software that come pre-installed seems to think that it's a great idea to literally suspend all PCI / IDE activity while the machine's getting moved around. Retarded. Fortunately, you can switch it off, and there's also this awesome display you can pull up with this little 3-D model of your laptop and if you tilt your laptop left, the little model tilts left, too. I could play with that all day.
So now I'm downloading a Knoppix CD that I boot off of to resize the Windows XP partition so that there's room for Debian (I'm keepin' XP this time around, for driver compatibility purposes and because the guy gave me Office 2003 and Photoshop for free). There's apparently this little unmarked, unpartitioned chunk of disk space at the end of the drive that I'm not supposed to overwrite because that's where IBM keeps a bunch of setup files and system restore data. What?! Retarded.
Umm... As soon as I get Linux set up, I'm going to set about adding thread cancellation support to Guile. That should be fun, if it's at all possible. Uh.
You talk big, little Devlin, but I think you'll find that even if people all deserve to be loved in some kind of intrinsic way, which I'm not really willing to take on faith, there's just too damn many of them out there, and their numbers are increasing all the time. Some of them have just got to go. And if one of them is me, so be it; just let me finish up this weblog entry first.
Today my usual Boss was having me take an inventory of sorts of every goddamn thing that we need to test in our software, and he was just sort of standing over my shoulder for a while not saying or doing anything, so I said, as a joke, "Are you jealous that I get to do all of this?" And I guess he wasn't really paying attention because he said, softly, "Hmmm. No." and just sort of wandered away.
Thursday, October 14, 2004
Dawn Of The Shred
My goddamn fucking laptop is fucked up again. I tried to turn it on the other day and the Wireless card didn't pick anything up. So I checked the router, the modem, fucking everything, and it all turned out to be okay. Then I started poking around in the dmesg output, and it tells me that it's been "Disabling IRQ #11" during startup -- according to my fucking BIOS that's the fucking IRQ like all of my fucking PCI devices are listening to! The sound card, the PCMCIA slot, the onboard ethernet, the USB subsystem, the... fuck! So I start removing kernel modules, hoping that maybe it's a kernel problem, even though I haven't switched kernels in like a year, but no dice. I try to boot off a fresh Fedora Core 3 CD, and I get the same shit. I try to boot off a fresh Debian Sarge CD, I get a kernel panic. I install Windows XP, it makes functional the sound card and the onboard ethernet, but not the PCMCIA socket. I do an install of Fedora Core 3, and I'm back to square one again.
So here's what I've got: A 2.4 GHz laptop that can't get on the Internet and can't play sound. Oh yeah, and you can never unplug it because I had to superglue the power cord in place so it would stay charged after the fucking AC intake port just snapped in half. And the fucking case stopped latching 2 weeks after I got it. But I've got a 2.4 GHz laptop that pretty much works, except it doesn't work very much under Linux.
I need a new Linux machine so that I can continue my work. It's driving me crazy. The purchase anxiety... it's driving me crazy. These laptops, they're like... $1500! Jesus fuck. I don't know what to do. I need guidance. Any priests out there? Should I get a Thinkpad? Or a Dell? This is my one hobby. And I feel super-guilty getting rid of this laptop. Maybe Mer can use it?
Thursday, October 07, 2004
And Now, Andy Rooney
It gets me really upset to see a lot of you fucking people saying that Cheney performed in any way well in that debate. What. Did. You. Watch? Are you insane? Edwards was a truth-telling (or relatively truth-telling) machine. Cheney had nothing to say. Did you just hear me? Nothing.
He had no answers. He mumbled. He looked like an evil villain. He muttered statistics that shouldn't have confused ANYBODY in their transparent bullshityness, but they did. He confused Amherst college kids. You fucking retards. Why are you buying into this even-handedness that the press is imposing on us? There is absolutely no time for that. Edwards squashed Cheney like a fucking bug, and all of America saw it, and in a few days, if all goes well, the real polls will come out (just like they did after the last Kerry/Bush debate) and they will show that 90% of fucking America concedes an all out victory for John Fucking Edwards. You fucking nitwits.
How the fuck can democrats think they have a chance of standing up to these bullies, these ogres, when all they do is give PUSSY FAGGOT ANSWERS AND EVEN-HANDED ANALYSES THAT AREN'T EVEN ACCURATE?! Why don't you fucking people out there who think that they fucking "split" or that Cheney had the "upper hand" watch the fucking debate again simply with an eye to who is more persuasive? With an eye to who is more correct?!
WHO THE FUCK ARE YOU PEOPLE? You're as bad as the fucking liberal, pussy, bitch-ass media, who are also rolling over backwards to suck Bush's cock while Cheney fucks them up the ass. You guys suck.
Wednesday, October 06, 2004
In Which I Show My True Colors
Me: he blew it
Maggie: greater good julian. greater good.
Me: Can I vote for Kerry/Cheney?
Me: Cheney believes in gay marriage and hoarding money
Me: JUST WHAT I BELIEVE IN
Maggie: that's true
Maggie: we can't vote for president/vice-president seperately, can we?
Me: not unless you write it in
Maggie: do it
Maggie: make a statement
Monday, October 04, 2004
Bloodweiser: King of Fears
- Tidied up the apartment
- Did the dishes, including getting that algae-like gunk off the baking tray
- Vacuumed the carpet, including fixing the fucking Dust-Buster knockoff thing we have because that rubber band thing inside it kept slipping off
- Baked cookies
- Played Morrowind
- Played Halo
- Played Final Fantasy Chronicles
- Donated some of my old books to the NYPL
- Made another goddamn vet appointment for the cat
- Programmed
As far as I'm concerned, each of you falls into one of three categories:
- People who want to read Rallmonster's latest screed against Spiegelman
- People who think Adam Cadre is teh awesome
- People who want to see Shaun of the Dead with me
Sunday, October 03, 2004
Eat Shit: I Am On Vacation
To borrow some pages from Devlin's lexicon, it took them forever on Friday to get the goddamn build out. And the whole day, it was all, "Okay, don't get involved in any side projects, because the build is going to be out any second." And then the build came out and it was obviously bad and they didn't get it rebuilt until 7:30 PM. 7:30! I know that doesn't mean much to you guys who have to work until like 4:00 AM every day, but we... well, it's different. And that was too late to give us a build. So we actually just played Freeciv all day; I thought I'd kick everyone's ass, but this new QA guy apparently plays a lot of Freeciv and kicked my ass instead.
Then I went over to The Rase's place and she and I and the charming Asta peeped on some Bananas. Is it just me or does anyone else find those unevenly-cut slapstick moments in early Woody Allen movies (like in this one, the part where he's undressing to have sex with this revolutionary chick and he keeps waving his jacket around) kind of disturbing? It looks like you're watching a home video of someone about to commit a crime.
Okay, you guys remember that thing I wrote about that asshole guy yelling at the subway intercom? I'm pretty sure I saw the same fucking dude on the way home. He's this pudgy guy with a neat little beard / goatee and not too much hair on his head, but it's all curly and greasy, and he's got this ugly little crooked mushmouth of a mouth. So the F train was pretty crowded, and I'm standing next to this guy and he's hugging his girlfriend really close in this way that strongly suggests he's never had a girlfriend before, and what's more, he's fucking whispering all this shit to her. He's like -- and this guy is like a 70% vocal match for The Comic Book Guy -- he's like, "I am so sorry for those things I said at the party. I was tired and I wanted to go home and... it was rude... and selfish... I swear I will never behave that way ever again." Jesus Christ. And then at 2nd Ave., a couple of people got on that this guy and he's girlfriend seemed to know, and he starts talking to them real loud:
(Indicating his girlfriend) "This is the first Friday night she's had off in years, and we just had the most random evening. We met this Taiwanese tourist and took him around all the downtown attractions. He's staying in an apartment in Chelsea, but he's afraid of all the gays. You know, all the gays in Chelsea. So we're drinking and talking about, you know, smoking pot, and he says he's afraid to smoke pot because when he does he feels like a giant Taiwanese penis. Yeah, he literally said that! So, I'm like, 'Hey man, that's cool. It's all good.'"You monster. Jesus Christ. Guess where he lives. That's right -- Carroll Gardens. One more reason to drop a nuke on all of us. Right. Now.
The thing is, I kept thinking, "Oh god, who is this girl who is going out with this monster?" And she looked pretty hot from behind, a little like my friend Emily from Amherst. But then she turned around, and you know what? She was ugly.
Thursday, September 30, 2004
Sky Captain and the World of the Washed Out-Looking Two-Dimensional Harmless Robots
I... hmmm. My mind is bad tonight. I can't... remember things. Ugh.
Busy, busy, busy at work. Boy, I can't wait until [New software version] comes out! What a huge amount of personal pride I will take in the finished product! Some fucking salesperson scumbag told us all the other day, "I thank God every day for [other leathery salesperson, whose knowledge of computing is matched only by his success at being a non-awful non-scumsucking Willy Loman waste of space]." Jesus. Christ. People, I'm not taking anyone to task for not caring about something boring, but hey, I put in the time here -- in computer stuff, that is, not work. Thank God for me, because I care about boring shit so you don't have to.
Speaking of which, I'm still trying to get some developer docs for gzochi together. Plus, I'm trying to get more aggressive about actually implementing stuff now that will make it possible to get some game-like things working. I'm developing this sample "game" called "chat-example" that will hopefully be illustrative for new game designers, and I'm using it to help myself flesh out the Guile-to-C interface I want to implement; that is, I pretend that I have the entire API and XML parsing system that I need, and just go ahead and implement stuff and refer to not-yet-written procedures and stuff like that. This way I know what's necessary for when I go back and write the game management side of things. I've already discovered that I'll need to add at least some kind of minimal class/inheritance logic to make objects act the way you'd expect as a developer. Shit -- "logic." That's a business word for "the ideas in the algorithm." This shit is rubbing off on me.
Racist, racist, racist.
I gave some more money to Kerry yesterday. He didn't disappoint me tonight.
Monday, September 27, 2004
Tekeli-li!
Look at this, found on Jamie Zawinski's blog. It got me so paranoid and depressed that I printed out some Bertrand Russell to use as ammo should the need arise. Don't think it will -- the F's pretty secular.
My house smells just like a zoo
It's chock full of shit and puke
Cockroaches on the walls
Crabs crawlin' on my balls
Aw, but I'm so clean cut -- I just wanna fuck some slut!
Speaking of cockroaches, the roach problem here is bad tonight. I bought 4 new roach motels and put three of them in the kitchen, because those fuckers are getting bold. I saw a little one and a big waterbug in the cabinets wihin the span of like 15 minutes. Don't tell Mer. She'll find out when she reads this, anyway.
I went up to visit my old friend Asta last night -- yes, that's right, Sunday -- up in the 'Heights, round 187th or so. She was having a "hard liquor and boardgames" party, a premise dangerously close to hipsterism, but which turned out to be really sweet and nice. I saw a bunch of fairly acceptable people from high school, including, I'm pretty sure, a literal date-rapist, and got along pretty well with 'em all. The second best part, though, was coming home on the A. I was in the last car and it was empty and noisy -- perfect setting for a little singin' to one's self. And I sang all the way down to 145th, when this guy came into the car and wanted to sketch my portrait. "Not that you want or need a portrait," he said, "but I do the whole thing while the train is moving. I'm that good."
Wednesday, September 22, 2004
Chunk-Star
Don't drink, don't smoke, don't fuck -- fuck you!Listen to what happened. It's a computer thing, but it's crazy. I was fixing my sister's computer -- something I have to do every few months because she's always installing viruses and spyware and things like that. Usually it just means running AdAware and such, but this time I thought I'd install Windows XP Service Pack 2 in the hope that all the new security fixes would let me off the hook for this sort of thing in the future.
Straight-edge kids... fuck you!
Okay, so I get the laptop home and plug it into my network and it starts downloading SP2 automatically, which is nice. So that takes a while, and then it's 'validating' the download or some shit, so I go and start making some food. Well, I get back, and the laptop has turned itself off. This is where the crazy stuff begins. Guys, just so you know, I know next to nothing about any of this Windows shit, so keep it mind I am just guessing how to do all this stuff as I'm doing it.
Me: Oh, maybe SP2 needed to restart the laptop but it got turned off by accident. (Turns laptop back on.)
Laptop: (Begins to boot into Windows, then, accompanied by Blue Screen of Death) PROCESS1_INITIALIZATION_FAILED.
Me: Hmmm... the laptop is awfully hot. Maybe some internal motherboard sensor is freaking out. (Waits 10 minutes. Starts laptop up again.)
Laptop: PROCESS1_INITIALIZATION_FAILED.
Me: Gee, this looks bad. Let me search the Internet on my other computer to see what this means.
Internet: (Thinks for a while.) You are fucked. Format your hard disk and re-install Windows XP.
Me: Ack! No, I can't do that! This is my sister's laptop -- it's got all her MP3s on it and she needs it to write a paper for school tomorrow night! There's gotta be something I can do... oh, I know, I'll boot off a Windows XP CD and try to check the hard disk for errors. (Burns a copy of Windows XP Professional, Yale Academic Edition, and boots off of it.)
Laptop, via Windows XP CD: Do you want to start the Recovery Console?
Me: Ooh, that sounds good. Yeah!
Laptop: What's the Administrator password?
Me: Oh, fuck, I don't know. Hang on. (Makes a phone call to parents' house.) Hey, sister, what is the Administrator password?
Sister: There is no Administrator password!
Me: Okay, thanks. (Hangs up. Tries the CD-boot thing again.)
Laptop: What's the Administrator password?
Me: Ah, fuck.
Internet: Excuse me, but have you heard about these special programs you can use to reset Windows XP Administrator passwords? You burn them onto a CD and then you boot off the CD and then you can reset the password. Here, try this one.
Me: Oh, okay, thanks. (Burns the program onto a CD and boots the laptop off of it.)
Laptop, via Linux NTFS CD: Hey, you wanna try to reset the Administrator password?
Me: Yeah!
Laptop: Sorry, your registry files are corrupt! Peace!
Internet: Okay, that one didn't work out so well. You wanna try again with this one?
Me: Well... alright. (Burns the program onto a CD and boots the laptop off of it.)
Laptop, via Linux NTFS CD v2: Hey, you wanna try to reset the Administrator password?
Me: Yeah!
Laptop: Sorry, your registry files are corrupt! Peace! Oh, wait -- you wanna try to change the settings for the Recovery Console so it doesn't need the Administrator password?
Me: Uh... yeah, that sounds good. Let's do it. (Does it. Puts the Windows XP Boot CD back in the drive and reboots.)
Laptop: Okay, here's the Recovery Console. As you can see, it's a lot like DOS. You can type stuff and run a few programs.
Me: Well, I'm pretty sure this is all due to some kind of filesystem problem. Laptop, can we check the disk for errors?
Laptop: Sure. (Thinks for a while.) The disk is fine.
Me: Hmmm... what should we do now? Internet, any ideas?
Internet: Well, the registry, the giant configuration file for Windows, is divided into two big pieces. One's called SOFTWARE and has settings for installed programs; the other one's called SYSTEM and has all the settings for the hardware. There are backups of both files in "C:\WINDOWS\REPAIR."
Me: Okay, let's replace the SOFTWARE file with the backup one.
Laptop: PROCESS1_INITIALIZATION_FAILURE.
Me: That didn't work. Let's try replacing the SYSTEM file with the backup.
Laptop: (Reboots ad infinitum.)
Me: That's not good either. Well, I'm out of ideas again.
Internet: Excuse me, but I just found something that Microsoft's saying that might be helpful. Microsoft?
Microsoft: Yes, thanks, hmmm... well, you see, if you've got a bad Service Pack 2 installation, you can roll it back using the Recovery Console by typing 'batch spuninst.txt'.
Me: Okay, I'll try that. (Does. It works. The laptop is now back in the state it was in before the trouble started -- still with several viruses and spyware programs. It is 2:30 AM.)
And... scene.
Monday, September 20, 2004
Orance Juice Guerillas
Also you mentioned that Laura was hassling you for child support for this kid that you said you two'd never had. I asked whether you were going to try to prove that she was scamming you, but you were like, "No. She's got a paternity test that says it's mine." Oh.
Sunday, September 19, 2004
"Who The Hell Is Elaine Stritch"
Watching the Emmys for some reason. Tony Kushner, you are the original punk rocker.
I just solved this stupid synchronization problem that I'd been poking at all weekend and not getting. I say it's stupid because it looks obvious now that I've solved it, but, you know... ugh. And of course I'm going to explain because that's one of the things I like to do. So.
A semaphore is a synchronization primitive (well, it's not necessarily a primitive, but...) consisting of a condition variable and a counter. You can "wait on the semaphore" by attempting to decrement the value of the counter. If it's greater than zero when you do this, the counter gets decremented and the call returns immediately; if it's zero, your thread goes to sleep until another thread "posts the semaphore," incrementing the value of the counter, at which point your thread wakes up, decrements it, and the call returns.
Many semaphore implementations provide, in addition to the "wait" function, a "trywait" function, in which you merely check the value of the semaphore, and if it's zero, instead of sleeping, you just inform the calling thread that it would have slept. If it's not zero, you do what the normal wait function does, which is decrement the value of the counter and return. My semaphore implementation provides this function.
Here's what happened: I wanted to wait for an item to be added to this queue (the queue's embedded semaphore would get posted when this happened). I didn't want to wait forever, though, so I did a trywait on the queue's semaphore, and if it came back false, indicating that the value of the counter was zero, I would wait for a while to see if somebody added something to the queue -- and if they did, grab it and return it, otherwise just return NULL. Here's the problem: I'd do the trywait, it would come back false, so I'd sleep for a while, get woken up by somebody adding to the queue, grab the value, but hold on a sec -- the semaphore's counter never got decremented, because the trywait came back false initially and we never decremented when we got woken up! So the next person to wait for an item to get added to the list would see that the semaphore's counter was non-zero, decrement it, try to grab something off the list, get NULL, and, well... It showed up in my program as the server pinging the client over and over without waiting for the timeout period to pass.
Why do I post these boring explanations of boring stuff? Well, because it's not boring, fuckers -- it's awesome! It's totally a mind-blow the extent to which code can seem like this gaseous, chaotic stuff until you resolve a bug and all of a sudden it all coalesces into a beautiful, mechanically glorious whole. Three worlds, guys. Three worlds.
Starting to work on documentation; DocBook is real fun to work with, but the docbook2texinfo converter is super frustrating because it insists on naming your fucking info document with a normalized string it generates based on a bunch of mystery factors that I can't control. Like, for example, I can't make it produce 'gzochi-server.info' out of 'gzochi-server-manual.docbook.xml'. The best I can seem to do is 'gzochi_server_manual.info'. You hear that Steve Cheng? Insane. And don't get me started on how retarded automake can be when it comes to dynamically-generated documentation.
I didn't do anything this weekend.
Thursday, September 16, 2004
Marky Next
Oh yeah, and going home on the F, the train was making express stops because of construction or something, so one of the conductors was announcing which stops were gonna get skipped, but the intercom system was characteristically crackly, and it just so happened that whoever was driving the train needed to honk the horn at that moment because we were trying to pass another train or something, and, well, those subway horns are loud, so you basically couldn't hear the stops that the woman was announcing. Anyway, this fat, pretentious-looking dude sitting next to his girlfriend yells at the top of his lungs, "We can't hear you when you're blowing the horn! Argh!" Man, that pissed me off. I mean, I've got no surplus of love for the MTA, but:
- The person speaking over the intercom is not necessarily the person driving the train, moron.
- She's gonna read it at every stop.
- No one finds it plausible that you were so overcome with rage that you just had to vent your frustration in the most affronted-white person way in the middle of a crowded subway car on a Tuesday night.
- No one is impressed by your inability to control yourself.
- You are a fucking idiot.
Wow, how much is it literally about to rain?
So I just came back from the laundromat, where there's this adorable fat old curly-haired golden retriever. Okay, so some of the dryers they have are missing these top panel pieces, so you can see the inner workings of the machine, and guess what -- it's on fucking fire! Is this how all dryers work? The first time I saw it I thought something had gone wrong, but all the dryers there seem to do that. I guess if you want to make something hot, fire's the way to go.
Tuesday, September 14, 2004
Snapple-Grappling

Man, was my stomach fucked up tonight! I was eating carrots all day at work and I guess that was too much fiber, because when I got home some things started churning around down there. It's funny because usually when I get sick to my stomach it's this awful whole-body thing where I just feel like I'm gonna die all over, but this time my mind was very clear and I was just thinking to myself that I'd better get to a shitter. And boy, did it stink. I'm sorry, but it's true. The thing is, I was in the middle of feeding the cat -- I'll get to that in a second -- when I had a real strong urge to go, and she was so intent on getting me to finish mixing her food that she tried to follow me to the bathroom. I'd left the bathroom door slightly ajar and she stuck her paw in and tried her hardest to open it. After warning her that she wasn't gonna like the smell, I cracked the door enough for her to poke her head in, and she did, but yanked it right back out as soon as she got a whiff in this really funny awkward way.
Oh yeah, so the vet thinks she might be chewing on herself because of a food allergy, so we're feeding her this 'limited ingredient' cat food, which apparently consists of naught but duck and peas. Sick, right? And the weird thing is, she's hungry all the time now. She can't wait to suck down her next serving of this greyish-green gelatinous puree.
Guess which of my many Bosses came back from two weeks of paternity leave that I'm pretty sure are in addition to his standard 4 weeks of vacation and opened our first meeting with, "I don't care [if] you got to stay late." Take as many guesses as you like.
As if you guys didn't have enough blogs to read, Raymond Chen over at Microsoft has a great and interesting blog about the reasons behind various Windows / Microsoft / x86 idiosyncrasies. Everyone praises it; now I'm praising it.
Jesus Fucking Christ: (link-a-dink)
BEIJING (Reuters) - China executed four people, including employees of two of its Big Four state-owned banks, for fraud totaling $15 million, the state Xinhua news agency said Tuesday....
The precise number of people executed for all crimes in China is a state secret. Reports range from 5,000 to 10,000 a year, many for murder, but they have also been killed for corruption and crimes as minor as bottom-pinching.Maggles has a 'blog. She didn't think I'd find it, but I did.
Thursday, September 09, 2004
Red Hot Moon
I took The Rase out to dinner tonight and who should we see at Dojo but our old friends Asta and the loathsome Zeke. I hadn't seen Asta in years, literally. She is looking good, let me tell you. She once told this guy who was giving her a hard time "Suck my pussy!" and, you know, was pretty much able to sell that line in an earnest, non-sassy way, no easy task.
Um. What. Else. I am thoroughly bored and not bored with my job.
Weilding His Hideous Sandwich
Man, was it ever hard to get to work yesterday. I waited for like half an hour at the 7th Ave. F stop before someone on the opposite track yelled out to us that the East Broadway stop was flooded and that F trains were basically not going into Manhattan. So I got out of the station and grabbed the B67 to Flatbush and 7th Ave. for the 7th Ave. Q/B stop. A B came pretty quickly, and I thought my troubles were over until we got over the Manhattan bridge and then just... stopped. After about half an hour or 45 minutes or so, the radio twittered to us that there was a power outage at the West 4th St. stop and that trains who'd been trying to enter that station had decided to turn around and go back to Brooklyn. At first I thought that that's what we were going to do, which would have sucked, but it turned out we were just going to sit there and wait for them to get out of our way. That took about 30 more minutes. Finally they nudged our train just barely into Grand St. and we all had to walk through the train to the first car to exit. And there was a D train just sitting at Grand St. waiting to take me to work! And it did! That was great.
But the most irritating part of all of this was this very pear-shaped, baby-faced, acne ridden business-casual intern guy in our car who was or was acting like about 15 years old the whole goddamn time. He would take off his fucking discman headphones every few minutes and say things like, "They just can't do this to us. Fuck;" or, announcing to the whole car, "Okay, what I need right now is a fucking cigarette." Great, all the construction workers and part-time security guards trying to get to work are very impressed at what a grown-up smoker you are. They totally don't think you're a faggot. The more he said, "Fuck," the more ineffectual and irritating he sounded. Damn it. Oh yeah, and he totally wasn't cool with having to evacuate the train. While we were filing out, he kept asking everyone, "What are we doing? What are we doing? Are they going to make us walk through the tracks? Because I'm definitely not cool with that."
Anyway, what am I doing? I don't know. This laptop feels like it's ready to bite the dust. Yesterday I couldn't even get it to turn on.
Saw some Big Business last night. Happy Birthday, Chrittopher! With the help of Eric Prengel, I bought a delicious hero sandwich for only $4.50, and it lasted me all night!
Tom lent me a copy of Joe Sacco's Safe Area Gorazde, and it's really great, particularly the drawings. The reportage is, well, I don't know, it could use a good editor, most of it. But the drawings are fantastic, especially the ones Sacco does of himself. He looks totally creepy in his comic, even though he's actually kind of good looking in real life. I'm also reading W. G. Sebald's The Emigrants.
I miss you, too, little man!
What's going on with my programming project? Sorry guys, this has to be a part of every entry. Well, I got the ncurses interface for the little debug client I'm writing mostly off the ground. Ncurses is hard, but once you figure out how to do all the ncurses stuff in a single thread, it's cool. The only hard part is I can't figure out how not to force ncurses to busy-wait switching between listening for getch() input and listening to some other source (in my case, updates that show up in a synchronized queue). If you could do a select-based thing, it would be easy, since I could use a named pipe with the queue, but I don't know how to get getch() to write to an fd in the background. Crazy.
Tuesday, August 31, 2004
Twitter And Tweep
Believe it or not, I decided it would be a good idea to wear a suit to the march -- first of all because I look real snappy in a suit, but second and third because I wanted to demonstrate that young urban professionals (such as I am, I suppose) don't like Bush and, in case trouble broke out, the media might get some pictures of police arresting a guy in a suit. Well, there didn't turn out to be any trouble, but there did turn out to be a lot of heat. We got there -- there being the corner of 16th St. and 5th Ave., a location within this protest-assembly radius -- around 11:00 AM and then just pretty much stood around until 1:00 PM. (The thing was supposed to start at noon.) So there's the first picture, which I hope will convey something of how hot it was, since it doesn't really convey much else.
Oh yeah, so on the way to the thing, though, we ran into some UFP people who were giving away free signs to carry. We hadn't thought to make any signs, so we grabbed a couple but didn't really read what they said until it was too late to give them back. It turned out they were all about ending the occupation of Palestine, and, you know, I hate every goddamn country in the Middle East as much as the next Northeastern Elite, but I wasn't really feeling fired up over the concept of subhumanoid idol-worshippers fighting each other over a pathetic stretch of scorched earth, so after a few half-hearted death-to-Israels, Tom and Ted helped me turn my sign inside out. I wrote "Quagmire Accomplished" on mine; Cuntington did the same to his but ended up writing "Girlie Men 4 Kerry" on it, as you can see in that picture where Tom's holding it. That's a sentiment I can get behind, if you know what I mean.
Here's this inflatable pig thing that doesn't like Republicans.
So it was really hot, right? And I was wearing a suit, lest you all forget. And we were going like, fucking... one block an hour, literally. So at around 27th St., Katharine and I decided to take a little breather and stepped out of the march. I had to take a piss like nothin', so I roamed around until I found a wonderful, wonderful Starbucks that let me use the pisser without any questions. While I was waiting on line for the bathroom I heard this olive drab girl with a whole bunch of olive drab shit in her hair say, "This year I'm all about anti-corporate stuff. It's so freeing!" while she sipped on some kind of icy-pricy coffee drink. Irony, people: It's what we're fighting for. Irony: Is it the new... irony?
Katharine dropped out at this point. Wuss! A block later I saw an old woman with heatstroke throwing up a popsicle.
At around 30th St., we started seeing signs of the convention. First off, this hotel is apparently real happy to host the delegates. Well, Southgate & Affinia, if I ever have to stay at a luxury hotel in my hometown across the street from one of the most hectic awful transit hubs in the world, it ain't gonna be yours!
As we were getting close to the Garden, we saw all this black smoke from around 34th St. The local news later informed us that some "anarchists" had set this papier-mache dragon on fire to get a rise out of the cops. Bad, bad anarchists. Shame on you.
No, Republican National Convention; Thank you.
As we got to the garden, people started chanting "George Bush, go home!" Here's the thing, though -- nobody wanted to shout the whole thing, they either wanted to say "George Bush" or "go home!" and really nobody wanted to shout "George Bush." So I was the one who had to do the "George Bush" part, and I did it for about 5 minutes until my voice gave out. Here's a picture of all the cops hanging out around MSG; you can't really see too well, but there were a lot of them.
I don't have a picture of it, but that gigantic Fox News sign on 34th took a lot of verbal abuse as we rounded the corner towards 5th Ave.
Going across on 34th St. is where we started to meet some of the counter-protestors. The infamous Protest Warriors were the first ones we saw; they were all standing behind the barricades holding signs, most of which were concerned with various hypocrisies of Socialism. Hey, I'm a Federalist, guys. Don't waste your breath.
There were also like half a dozen garden variety religious wackos who had the typical array of signs and banners. I told the guy with the mangled fetus pictures that we should abort more babies, and this female protester next to me yelled out, "Leave my body out of this!" I'm not sure if she was agreeing with me or not. This other guy had this crude stenciled poster of a fighter jet that said "Support Bush, Support Jesus." I tried to get a round of "Fuck Jesus" going in response, but my fellow protesters pussed out; this dwarfy girl who looked like a real pain in the neck even told me not to go there. Christ, I hate women. Abort more babies!
Okay, last pictures -- this woman had a pretty sweet costume, but nobody was giving her any props. You liberals don't know a good thing when you see it.
This sign was cute, I guess. A bit too clever for its own good, though.
Another picture of cops, this time in this alley at around 30th St. and 5th Ave. One thing that's difficult to explain without better pictures is how many cops there were, especially on the 5th, which was a little weird, since that's where the protest started thinning out, actually. There would just be these huge banks of them, standing silently in formation, waiting for something to happen. And nothing did.
Okay, that's the end of it. Afterwards Mer and I went back to my parents' house (they'd marched as well, though we hadn't met up with them) and had some red wine and hamburgers on the deck in proper limousine liberal style. Now back to boring bullshit:
I want to donate a lot of my old comics to this comics museum / archive thing, but for tax reasons, I think, they want me to figure out how much I think they're worth, so I bought a copy of Wizard yesterday and carried a box of comics home from my parents' house and looked them all up in the price guide. Turns out this one box was worth around $300! Career in philanthropy, here I come.
I also had lunch with Devin at this place called Paul's on St. Mark's. Devin can really eat a hamburger, I tell you what. That thing was like a medicine ball made of meat.
What else, what else. Oh, so I finished The Stranger and now I'm reading some Jean Cocteau plays. The Infernal Machine is the best so far. I beat that game Knights of the Old Republic, too, playing as a "Darkie" Jedi. The ending is not great for either alignment, but let me tell you, you can kick a lot more ass as a Sith than as one of those ass-sucking Jedi. Speaking of ass-sucking, have you guys seen that new building-sized Calvin Klein ad on Houston street? That slut is all over that dude's butt.
Shattered Glass is off the hook.
Thursday, August 26, 2004
That Don't Matter, Joan
Boy, am I glad I didn't go to Amherst, though. Maybe it wasn't a representative sampling, but the people at the show were pretty creepy.
Ted got us tickets to see this play Frozen on Friday, which was fun as always, except that Frozen is probably the least interesting play you could possibly make about murdering children. Also I got some kind of awful food poisoning before the show and missed like the first 15 minutes because I was crapping all my organs out in the bathroom. They played this series of chimes like 3 or 4 times to get people to quiet down, I guess, but I started wondering if maybe they were trying to get me to hurry up in the john.
I got home at 7:40 or something today, which is pretty horrible. I don't feel horrible, though. The cat is chasing a nickel under the couch. I'm reading The Stranger and loving it.
I want to do this on Saturday, but I can't figure out where in NYC it's going to happen.
Monday, August 16, 2004
My Name Is Brody, I'm From Melbourne
Woah, has anyone out there tried to program with ncurses? That thing is fucked. It's like trying to position text absolutely in pre-CSS HTML or relatively in post-CSS HTML. This is all fucked. God, I want to die.
Reading: Killing Time, by Caleb Carr. The guy's an okay writer, I guess, but he's not much good at developing the interior monologue of the narrator. You know what I mean? It's like, it's really hard to tell what kind of a guy it is that's tell you the story.
WLIB sings:
Are things really getting better,
Like the newspaper says?
Thursday, August 12, 2004
Vultures Circle Round
My fucking bike got stolen last weekend! I kind of knew it could happen when I chained them up outside, so I'm not exactly reeling with the shock, but you know, I actually liked my bike, and I'd been nagging myself for some time to take it to 'On The Move' over on 12th and 7th to get it fixed up. Maybe it's for the best -- if it was gonna get stolen no matter what, I'm glad I didn't pump an extra $40 into it before the fact. I took Mer's bike upstairs (they didn't take it even though the two were chained together -- where's the justice, I ask) and put it in the bedroom.
Mer bought us an XBox! She got it with the game Knights of the Old Republic, which is pretty great. She's playing it now. It kind of defused my plans to buy a fancy new computer to play Call of You-Know-Who-Hu: Dark Cronners of the Scurth, because that game is coming out for XBox. So is DOOM3! Eat a grinch.
"At a point in every person's life, one has to look deeply into the mirror of one one's soul and decide one's unique truth in the world, not as we may want to see it or hope to see it, but as it is," McGreevey, a Democrat, said.Sounds like the guy wanted a piece of him:
The Associated Press reported that the man involved in the affair, a former government employee, demanded "an exorbitant sum of money to make it go away," a high-ranking administration official told wire service. Cabinet members and administration officials learned of that threat Wednesday night, the source said.First Alan Turing, now Jim McGreevey? You just can't have a gay affair this century without getting fucked.
Burned a copy of an older Distillers album, the one with Seneca Falls on it. It's okay, but not good enough to buy -- so I'm glad I didn't! Manifest destiny and all that.