ok, I have a paper topic now...

... but I'm no less frustrated.

During the first days of his reign and for some time after, won't he smile in welcome at anyone he meets, saying that he's no tyrant, making all sorts of promises both in public and in private, freeing the people from debt, redistributing the land to them and to his followers, and pretending to be gracious and gentle to all?

He'd have to.

But I suppose that, when he has dealt with his exiled enemies by making peace with some and destroying others, so that all is quiet on that front, the first thing he does is to stir up a war, so that the people will continue to feel the need of a leader.

Probably so.

But also so that they'll become poor through having to pay war taxes, for that way they'll have to concern themselves with their daily needs and be less likely to plot against him.


Besides, if he suspects some people of having thoughts of freedom and not favoring his rule, can't he find a pretext for putting them at the mercy of the enemy in order to destroy them? And for all these reasons, isn't it necessary for a tyrant to be always stirring up war?

It is.

And because of this, isn't he all the more readily hated by the citizens?

Plato, on the natural and inevitable transition from democracy to tyranny in a city-state (Republic VIII 566d - 567b, dialogue between Socrates and Glaucon). He was describing a leader who "stirs up civil wars against the rich", on the theory that in a democracy the class of power-hungry idlers are likely to end up looting from the rich (organized wealth-seekers) in order to control everything. Power-hungry idlers are blindly followed by the class of indifferent idlers and attain majority support by using the resources of the rich to appeal to (and deceive) the working class. This doesn't quite map onto modern society, but it sure does have a familiar ring to it.

But of course, Plato didn't like democracy either. His ideal society is one where people are trained and assigned into roles early in life according to demonstrated aptitude, either philosopher-kings, auxiliary bureaucrats or guardians, or workers, and they attain happiness by doing what they're best suited for. It's supposed to have the justice knob turned way up. I think it suffers because it has the freedom knob turned way down. There is censorship and selective breeding. There is no voting.

And what about the [democratic] city's tolerance? Isn't it so completely lacking in small-mindedness that it utterly despises the things we took so seriously when we were founding our city, namely, that unless someone had transcendent natural gifts, he'd never become good unless he played the right games and followed a fine way of life from early childhood? Isn't it magnificent the way it tramples all this underfoot, by giving no thought to what someone was doing before he entered public life and by honoring him if only he tells them that he wishes the majority well?

Yes, it's altogether splendid!

Yes, splendid! Popularly elected leaders are inept nobodies whose only skill is demagoguery and who will probably gravitate toward tyranny. Yay! Splat.
  • Current Music
    Paula Cole - Mississippi
  • Tags

voting and stuff

Ok, so I don't remember where to go vote tomorrow, having not lived in Somerville very long, and I also wanted to see a sample ballot, right? Well, Sec. Galvin sends out little pamphlets called "Information for Voters" that are practically devoid of information, and I had one on my desk. I flipped through it and found no list of polling places or candidates, but a URL: Too bad its nameservers are completely unresponsive.

Anyway, if you're like me and want to see sample ballots and such at this hour, check your town's website. Over here, the city of Somerville has an excellent website with all the necessary info. There's also the state elections site and probably some phone numbers you can call.

In other news, I turned in a 20-page paper today for the phase two writing requirement, which will hopefully not lead to lack of graduation. Eee. I was like, at the last minute, looking for a stapler with actual staples in it and stuff. I ended up wandering into John Wroclawski's office to borrow his stapler after I heard the characteristic sound of successful stapling coming from that direction... Then I was like, gee, I'd better head straight for the basement to turn this in, so I just hit B on the elevator instead of wandering around to the stairs as usual. Except it seems like the Stata Center has two completely disconnected basements, and the one I was in didn't contain the writing office. Instead it seemed to contain spanish-speaking food preparation people who were trying to point me to some closed-off stairs. But anyway, after running around a bit I did get the paper turned in, though as usual the person who's supposed to deal with it wasn't there. I have no idea what's supposed to happen to the paper, but I left my contact info all over the cover letter so hopefully I will find out.

This was also the last regular class meeting of 6.170 -- with a couple of exceptions, we're just supposed to be meeting in small groups and working on the final project for the next month. The project is an RSS reader, exactly as I predicted. This won't be a total breeze, because they will change the requirements halfway through, but it's going to be a fun way to finish up at MIT. I have a team of random people to work with and that's just fine with me. Oddly, this now means the only thing I have on Tuesdays and Thursdays for a while is the squash class. That means I don't have to take my laptop with me to gym class since I can leave it at home instead. Yay.

Oh, and while I was browsing around for info on my incumbent state rep, I came upon an interesting issue for Camberville that I hadn't known about: MBTA proposal to sell development rights for the airspace above the Porter Square commuter rail station. I.E, housing and/or commercial space directly over the train tracks in front of our apartment. That area is a wonderful specimen of urban decay, so I guess I'd better go photograph it while it lasts. They actually had a developer lined up to work on it this year, but the developer backed out when Lesley University wasn't going along with them.

swim test. check.

MIT requires you to either pass a swim test or take a swim class to graduate. I hadn't done either, and I didn't really want to be taking a swim class in the colder half of the term. I'd always thought of myself as a non-swimmer. I've still not really learned how to deal with my head being underwater, so I was not optimistic about the swim test.

I went and did it anyway though. I swam around in the shallow pool for a while beforehand to see if I could maybe try to breathe and swim with my face in the water, but it wasn't working. I decided to give up on that and just take the swim test anyway.

So, you jump in feet first in 10' of water (I'd never done that before, nobody told me the impact would rip my hand away from my nose...) and then swim four 25-meter lengths without stopping or hanging on the lane ropes. Only the last 25m can be backstroke, and boy was I glad when I got to that one. I'd just done something like 75m of front crawl with my head up, which I'm told is fairly inefficient.

My legs really paid for it, and I was breathing really hard, but I got it done. I went outside and barfed afterwards, then biked home. Slowly. Bleh. Cross that off the list of stupid-ass things that could keep me from graduating.
  • Current Mood
    relieved relieved
  • Tags

weird typo

Reading along in the Meno for Ancient Philosophy, I tripped on this word in the last line of a page:


Yeah, yeah, it was supposed to be perplexity. But I was momentarily perlexed, er, perplexed when I tried to parse it. When reading philosophy you always have to try to apply the principle of generosity: assume the author meant something worthwhile and do your best to figure out what that was. So I tried to take the word apart: "perl" + "exit" + "y", no, they wouldn't have had things that exited like perl back then... "per" + "lex" + "ity", no, they wouldn't have had universal law or dictionaries either... um. And definitely not parsers.

But it sounds like an ictionary post -- perlexity (n). 1. a tendency to give up when presented with undocumented Perl code. 2. confusion or an inability to parse when there is more than one way to do it.

Yeah. so. back to reading now.
  • Current Music
    Ridiculous Thoughts - The Cranberries
  • Tags

spanish rice overkill

So, I find that when one's wife is pregnant and one does all the cooking, one tends to want to overfeed, overnurture, overeat, or something to compensate. Here's what happened when I set out to make a little spanish rice and realized it was going to get out of hand if I kept on adding stuff that sounded good (but I did it anyway):

Collapse )

So anyway, on a night when I need to do homework, those leftovers are looking pretty good. I am officially back in school, getting all the bureaucratic requirements and deadlines met without too much trouble. I had one really bad day when I had to make the actual decision of whether to agree to pay tuition without yet knowing whether I'd be allowed to do what I wanted to do. But other than that, things are looking so good my advisor asked if I wanted to recommend any lottery numbers.

What I've ended up taking:
6.170 -- Software Engineering Lab
24.200 -- Ancient Philosophy
6.199 -- Advanced Undergraduate Project

I'm going to be able to use the AUP proposal to meet the phase two writing requirement, provided it's one heck of a proposal and doesn't need a ton of revision (been there, done that, see application essay). I have yet to deal with P.E., which is on my list for tomorrow. And I have Fridays completely free for work.

Anyway, enough LJ for a while.

CFMX6.1, cfchart, and java awt graphics

I'm posting this so it gets into google. I don't really want anyone else to waste as much time as I just did trying to google for answers and then have to solve it themselves anyway. The key phrases here have maybe a dozen hits each, none of which helped in any measurable way.

On my webservers, I run Macromedia ColdFusion MX Server 6.1, using the included JRun, using the included Java 2 1.4.2 runtime.

I've got some java servlets on older webservers that I need to move to the CFMX server, and I figure it would be nice to use JRun's ServletInvoker instead of setting up some completely different java servlet engine for them. The servlets produce graphics output using AWT (java's abstract windowing toolkit), which has traditionally required a connection to some type of display even if you just want to create images in memory and then encode them as gifs or jpegs or whatever. For Windows servers, this is fine, you rarely run them without a graphics card and KVM of some sort. On Unix, you can use your X11 display. Unix boxes are more often set up headless, though, using serial consoles and sometimes lacking graphics hardware altogether, so the traditional workarounds include running Xvfb (the virtual framebuffer X server), or PJA (Pure Java AWT, which I'm told still requires the X11 libraries to be on the system).

These workarounds mainly ought to apply to older JVMs, since 1.4.2 introduces headless support. But according to this Macromedia technote, if you actually set java.awt.headless=true, it will break ColdFusion's own cfchart graphing software, which we are actually hoping to use. I can confirm that it does break, cfchart will throw java.awt.HeadlessException when subsequently invoked. But it also doesn't allow the other graphics servlets to work; it turns out that java's headless mode means you can do some things, but you can't use any awt classes or methods that would "require" a keyboard, mouse, or display and BufferedImage.createGraphics is one of those. So creating a Frame is off limits in headless mode, as is creating a Graphics or Graphics2D, even just to draw in a BufferedImage. Argh. Some of the servlets that do these things are closed-source, or so crufty that we can't justify changing them to avoid the problem. D'oh.

OK, fine, so I'll install Xvfb just like I've done in the past, and any awt methods that need the display can just connect to it, right? Well, not so fast. CFMX has already anticipated the lack of X display and configured itself to run with, which throws exceptions whenever you try to use awt graphics methods: "java.lang.RuntimeException: This graphics environment can be used only in the software emulation mode." This is pretty much what the technote said: you can set either headless mode or this special graphics environment setting, so you can either have cfchart working, or you can have your servlets working (and ours didn't). Bah.

Well, I found some google traces of "ExGraphicsEnvironment" instead of "ExHeadlessGraphicsEnvironment", apparently related to older JVMs or versions of CFMX; that sounded like it might be able to work with the X11 display. But it didn't work out; changing the setting in jvm.config broke cfchart as well as the servlets, causing SIGSEGV in a backend thread and producing the following cryptic error: "java.lang.Error: no font properties file found." Uhm, but I was sure I hadn't deleted the files in the ColdFusion runtime dir... strace didn't show the process even trying to look for a file. So I gave up for the day.

Today's answer to the above junk: don't specify any options in ColdFusion's runtime/bin/jvm.config, and do run Xvfb. Be sure the DISPLAY environment variable is set correctly when invoking the coldfusion startup script, or else modify the script to set and export DISPLAY for itself. Both cfchart and the servlets are happy now. So I submitted terse feedback on the bad technote within their 300-character limit, and I'm posting this little narrative.

But the solution I stumbled onto makes me suspect that PJA might work even more cleanly. It seems cfchart doesn't suffer from having java.awt.graphicsenv set to the default native X11 display, so it also shouldn't mind if you set it to some other full-featured graphics environment, right? Maybe next time I'll try it; if anyone else does, please leave a comment.

whatever works

Finally. At last. Ha. I'm so glad that's done. I still want to beat the living crap out of something though.

This has been resolved, and you are encouraged to register for the Fall Term.  Welcome back!  You will be registering as a graduate student, since you are coming back for the final year of your MENG program.

Uhm, er, I wasn't going back for the master's, really, but whatever it takes to untangle the bureaucracy there. And if I happen to satisfy the bachelor's degree requirements and then decide I've had enough, they shouldn't be able to do anything about it except... d'oh... put up more red tape and hurdles.

I'm not going into a lot of detail right now, but suffice it to say that MIT has more independent units of bureaucracy than I remembered, and they all did a bit of finger-pointing and buck-passing before I found someone at the top who wasn't on vacation.

But anyway, I'm still going to think about going for spring term instead of fall because of the scheduling conflicts / lack of writing class this term. Now to cajole an unsuspecting professor into being my advisor through this mess, and looking into getting the late reg. fee waived due to circumstances.
  • Current Mood
  • Tags


Thanks to blackfelicula for the black bean chili recipe. I fiddled with it a little to make meat chili suitable for kareila.

Start with 1/2 lb ground beef over high heat. Add 1 tsp taco seasoning (storebought, or keep a bag of mixed spices around like I do -- I'll figure out my recipe if anyone's curious) as the meat cooks. When nearly browned, lower to medium heat and continue with Maureen's recipe, skipping the oil.

I also used two 15.5 oz cans of black beans, because that happened to be the size available in my favorite (Goya) brand.

The result is really more normal chili and less black bean than Maureen's. I also skip the rice and add some grated cheddar to serve.

So, like I said, "Mmmmm..."
  • Current Mood
  • Tags