« December 2004 | Main | February 2005 »

January 28, 2005

The Too-Long Meme

This one would have been better if more of the questions were not mysteriously truncated. But it was still pretty cool, and it has the privilege of being the first stupid quiz for me to post on my blog.

You scored as Verbal/Linguistic. You have highly developed auditory skills, enjoy reading and writing and telling stories, and are good at getting your point across. You learn best by saying and hearing words. People like you include poets, authors, speakers, attorneys, politicians, lecturers and teachers.















The Rogers Indicator of Multiple Intelligences
created with QuizFarm.com

Posted by FusionGyro at 10:56 AM | Comments (1) | TrackBack

Will and The Glory of SQL

Nobody knows what’s going on with Will. I’m worried. He sent me a kind of freaked out email, and no one has seen him since.


In thinking about things, I guess I’ve come to appreciate the additional power relational databases have when they have stored procedures, views, and triggers. Here’s a piece of SQL I wrote tonight, which I’m particularly proud of:

CREATE VIEW web_clanpeople AS 
        SELECT p.firstname, p.nickname, 
        CASE p.want_privacy 
             WHEN FALSE THEN p.lastname 
             ELSE repeat('*', length(p.lastname)) 
        END AS lastname, 
        p.email, p.want_email, COALESCE(c.clan, 'Unclanned People') AS clan
        FROM people AS p LEFT OUTER JOIN clanpeople AS c ON 
             (p.firstname = c.firstname AND p.lastname = c.lastname) 
        ORDER BY c.clan, p.lastname, p.firstname;

What this monster does, is basically, create a table for the front page of Story to Tell. It does this by doing a bunch of cool things:

  1. It conceals the last name, using a case statement conditioned on their want_privacy, building a string of repeated “*”s the appropriate length.
  2. It does an outer join on the people, so that everyone on STT.org gets an entry here.
  3. It replaces the NULL which would be there from the outer join with “Unclanned People,” which is how it’s supposed to appear.
  4. It discards the “want_privacy” bit, which is irrelevent for showing that page.
  5. It sorts on the clan, then the last name, then the first name, yielding the ideal order.

Now I can build a fairly stupid script for showing the main page, where before, there was actually logic in the presentation layer. Now it’s going to be implemented with a simple SELECT being unpackaged in a loop, with different clan names producing new H2 elements.

Tomorrow I’m going to make a view for the other SQL-driven page, which just shows the people who have local pages. Then I’m going to replace all of the storytotell.org scripts with these ones, and worry about the admin interface which I’ve ignored for so long. Mod_Ruby is going to be a big factor in the new system.

Posted by FusionGyro at 12:32 AM | Comments (0) | TrackBack

January 27, 2005

Newtonian Philosophy

Newton, writing to Leibniz, concerning his theory of light, quoted from The Ascent of Man:

I was so persecuted with discussions arising from the publication of my theory of light that I blamed my own imprudence for parting with so substantial a blessing as my quiet to run after a shadow.

Everyone with a Mac should run out and buy a copy of Omni Outliner 3. I’ve bought it yesterday (an upgrade, goddammit) and I’ve been using it constantly. It’s better than a word processor for TeXnicians and it’s just comfy as all hell for everything else. Use it!

Posted by FusionGyro at 09:07 AM | Comments (1) | TrackBack

January 23, 2005

Nice Quote

From The Ascent of Man, by J. Bronowski:

Euclid evidently belonged to the Pythagorean tradition. When a listener asked him what was the practical use of some theorum, Euclid is reported to have said contemptuously to his slave, “He wants to profit from learning—give him a penny.” The reproof was probably adapted from a motto of the Pythagorean brotherhood, which translates roughly as “A diagram and a step, not a diagram and a penny.”—“a step” being a step in knowledge or what I have called the Ascent of Man.

Watched 4 episodes of CSI tonight along with a great movie, Inner Senses, which was billed as a suspense thriller but really was a Chinese horror movie. I confirmed my suspicions that Mandarin sounds nicer than Cantonese (to my ear).

Nathan came into town for his birthday. It was really nice to see him and the folks. We ate at Gabriel’s again, which was acceptable (the guacamole was better than I remembered but it still isn’t as good as mine or the folks’). We got him some drive-in horror classics collection, and watched one of them but only barely. Then we watched Dagon, which is still IMO one of the best horror movies ever.

And that’s about it.

Posted by FusionGyro at 11:38 PM | Comments (0) | TrackBack

January 18, 2005

Corrections, TCC, and Languages

First, I want to apologize to everyone for the size of the last post. I used MovableType’s “cut” equivalent, but apparently either LiveJournal is too smart for it, or MovableType is too stupid to do that kind of thing in the feed. Either way, it didn’t help. People visiting the site instead have no idea what I’m talking about, and that’s good.

Second, I want to clarify this statement for Schlake:

Schlake will happily put you on his friends list if you simply put him on your friends list. Since LiveJournal is a game, and your friends list does not represent reality, you should be willing to do that. To prove the point, I’ve added you to my friends list. It’s just a list.

I call LiveJournal a game because it is a game and it should be treated as a game. I was a big proponent of Slashdot for a few years, until I realized it was a game too. The difference is that people on LiveJournal play in much the same way that radio personalities play—for listeners, called “friends” here, and by the interest factor of what they have to say. The main differences are that there are a lot of different ways to play on LiveJournal besides being “shocking” and a lot of people playing on LiveJournal don’t realize it’s a game.

I consider Schlake more of a friend now than I ever did before I knew him on LiveJournal. In fact, I would call him a new friend. But there is no relationship between my LJ friends list and the set of people I consider my friends—other than that by virtue of being my friend I am more interested in what you have to say, which is the real purpose of the friends list. But still, it’s just a list. Friends are friends online or off, it’s just a completely different concept than the LJ friend.

TCC Conspiracy Club / Community

I’ve heard a rumor that Schlake is going to start a TCC LJ community. If he doesn’t, I’d like to start a mailing list for it. That would of course be contingent on Bill explaining how to set up a mailing list to me (again).

I was surprised today to learn that Jarrod considered my little flame to my new LJ-buddy Matt to be full of the kind of constructive criticism that the people in charge of the TCC should be aware of, because it was written to be a flame and to get out the anger and whatnot I have towards the institution. That’s not to say that I don’t think things need to change or that I take back what I said, so much as to say that the intended audience for what I said was not Topliff, Piworunas & company. I’m under the impression my comments were ignored anyway, because Ray said we should use some online suggestion box instead, but I can’t say that with certainty.

So, what I’d like to do instead is to collect ideas, big and small, that could be used to rework the TCC, and then bring them to a variety of destinations. A TCC community or mailing list would be ideal. (Ball in your court, Schlake)


I wanted to mention that I considered yesterday a very lucky day, because I got to use these languages:

  1. REALbasic
  2. SQL
  3. Ruby
  4. Python
  5. C

That’s in order of amount, and also in order of rarity, by coincidence. As a language freak, I have to say I’m pretty happy to have a job I can use so many in.

Posted by FusionGyro at 09:58 PM | Comments (0) | TrackBack

January 17, 2005

This is for Matthew McCleary

This started life as a comment on Matt’s blog but it apparently exceeded by a factor of two the LiveJournal comment size.

If you’re Matt, or if want to read a longish rant about the TCC and how I dislike it, continue.

I can’t view the thread in which this discussion is ongoing, because shortly after Schlake discovered that he might have hit a nerve with this one, he made it private. I’m not on his friends list (nor is he on mine), and so that’s how it is. Here is what I originally said:

1. Schlake probably made it private because I mentioned that his blog was a great place to discover things about the TCC which were not public knowledge. Schlake likes hitting nerves.

2. Schlake will happily put you on his friends list if you simply put him on your friends list. Since LiveJournal is a game, and your friends list does not represent reality, you should be willing to do that. To prove the point, I’ve added you to my friends list. It’s just a list.

As to mailhost coverups: I wasn’t working at the TCC then. I know very little about what happened. But if I had been there, I can tell you I would have refrained from posting about it in a public forum until all the facts were known.

Restraint is one thing. To pretend that there have never been instances of mail loss (or file loss, or whatever) is quite another. The TCC has never stepped up to the plate of professionalism.

Interesting … I don’t believe I’ve ever been called a “cornhole” before. Is that a particular habit of yours?


My name is Matthew—something you could easily discover if you bothered to look at my user info page. Do you feel name-calling is necessary?

As a matter of general principle, yes. But for the sake of argument, I’ll go over the paragraph you skipped slowly here, without name-calling:

There’s plenty of history of TCC lies and a general lack of internal and external communication, mostly due to ridiculous over-structuring and in-fighting. It doesn’t take a conspiracy to explain it—it’s just the same old cover-your-ass behavior that goes on in every sufficiently large organization.

If you think you can refute this, I’d love to see it.

The student employees think “I’m a student, so I can slack off” and the administrators think “I can blame the students because they have no power or history.”

It would be nice if the students took the job seriously, but that isn’t going to happen until they get paid enough, and even then, they’re there for school rather than work. It would be nice if the administrators took the job seriously, but the TCC’s history and budget prevents it from acquiring talented people with actual skills. Instead, they wind up with local yahoos who want to work there because of sentimental reasons and twats who can take advantage of it for other reasons. It doesn’t pay enough to be taken seriously, and they don’t have enough money to start taking it seriously.

There is no real reason for having three organizational units for managing 5-10 people per, except to create confusion, inefficiency and additional work. It might be excusable if it didn’t create artificial rivalries that only serve to inflate the egos of the hopeless and pathetic. It’s a fucking soap opera.

When I worked there, on the UC side, there were 5-8 UCs, normally about 6. Above us is a man named Ray Piworunas, who I like, but whose job seems to consist of managing UCs and maintaining valid information in the ticket database. There were meetings initially, and office hours, and things like that. I got lured back after these things went away by creating the concept of “closing UC” when closing our rooms started to take more than 3/4ths of the time of a given shift. By that point, meetings were either memorial or ridiculously abbreviated, and no one would show up. This would be fine if it weren’t for the fact that nobody documents anything, so nobody knows all of the “fixes” for the various things that go wrong. This leads to apathy, which kills the enthusiasm of everyone, including the users.

The sysprogs lived in another dimension without tickets or work, playing zangband and tweaking their window managers in the back room with Schlake. Schlake didn’t document anything or read tickets, but he did respond to direct emails or, if you were lucky enough to have a problem when he was at work, you could go and ask him in person. This became my own standard operating procedure: something weird is broken, go ask Schlake, or tell the user to come back during the day and ask the UC to ask Schlake. The sysprogs treated everyone with a kind of disdain, because they were and are paid more than any of the other students, which is a well-known fact. The UCs are expected to eventually get switch jobs and go for the sysprog position, but the UCs have no advantage over any other student in applying for the job. So the UCs quickly acquire a fatalistic sensibility akin to a McDonald’s cashier, because that’s how they’re treated by the rest of the department. Eww, you have to deal with users, how unsanitary. And our requests for documentation, or notifications, go largely unheard, because Ray isn’t at the desk seeing problems, he’s upstairs making sure that you spell “projector” right. The maint guys were pretty responsive but didn’t do the paperwork very much.

But the question I’m getting at, is why do we need four managers for ~20 people? If I thought the maint guys needed to be aware of something, I would need to tell Ray, who would then tell Steve, who would then tell the maint guys if there were a meeting of some kind. Using the tcc- email addresses was discouraged, I don’t think anyone in tcc-uc used any of the others once when I was working there. Everyone there has a holier-than-thou attitude, which only encourages it in other people.

You think it isn’t a soap opera? Really?

I realize\u2014and freely admit\u2014that there has been, and continues to be, much that is wrong with the TCC. I am interested to hear what you think could change and/or be improved. However, I do not share your fatalism. I believe I can, and will, make things better.

Basically, what I think is this: the TCC needs to undergo a massive, unilateral organizational restructuring. It might need to be split into several organizations. Some of the services it provides may need to be reduced or stopped, while focus changes to other services. The TCC needs a goal or a purpose, because it really doesn’t have one right now. The managerial layer needs to be removed or drastically reduced, the funding increased, and community involvement needs to take place. Then it might become an efficient and effective organization.

I defend the TCC because I generally like to say positive things about the place I work, not negative ones. I’ve discovered over the years that if I have more bad things than good to say about my place of work, then perhaps it’s time to look elsewhere.

Yes, but you aren’t working for the TCC because you love the TCC. You’re working there because it’s one of three games in town, it was hiring when you were looking, and you’re too comfortable to live outside of Socorro or look for a different job. Those are the same reasons everyone who works there has, and they have nothing to do with the TCC as an organization, and everything to do with warm fuzzies about being near or “a part of” Tech and college kids.

And I have a good idea of many, if not most, of the services the TCC is supposed to be providing. Web services, dial-in services, wireless network access, VPN access, software installation and support, security, a help desk\u2014I would have thought that you, as a former senior User Consultant, would have known those things as well. …

Suppose I describe a device that brushes teeth, waters plants, keeps track of your checkbook and plays music. Yes, those are all services, but what does “it” do? What should the engineers making “it” focus on, watering plants or playing music? If the users find it skips when it plays music, are they going to just sit back and be happy about the fact that it balances their checkbook perfectly?

What is ISD’s purpose? They provide internet and phone services to campus. This quite naturally includes the phone directory and the dormitory internet access. What does the TCC provide? Well, dialup internet access, and computer labs, and remotes for projectors, and foo, and bar, and we water plants, and we play video games, and we have no idea what we’re supposed to be doing. You want to expand the services—that’s great, but what are you expanding on? You also say you offer “security”—what does that mean? Why does ISD provide internet access, and we provide dialup and web pages? There aren’t any good answers for these questions, and that’s part of why the TCC sucks so much.

The TCC has managed to stick around primarily by being an early-adopter of a variety of systems. Whenever one of them doesn’t pan out, the users gradually forget about it. Whenever one of them is particularly useful, it becomes a focus for a while, and then drifts aside, usually long before the usefulness is exhausted for a particular user. But the TCC’s main focus has always been survival in a corrupt and ridiculous environment. You should ask Topliff why the TCC is there sometime. I’d be curious what he’d say its focus is. Probably something greasy and vague like “Providing services to the students.”

I’m glad you’re happy there and I’m glad that you’re proud enough of it to speak highly of it. I’d agree if I hadn’t experienced it first-hand and seen just how slipshod and, well, useless the whole thing is.

Posted by FusionGyro at 09:46 PM | Comments (0) | TrackBack

January 14, 2005

Cocoa, the Horror

Allan asked me to write him a simple Cocoa status menu (he wanted a menu extra, but that’s fairly non-trivial). He wanted something pretty simple: the ability to add a handful of times to a menu, pick one to be on top, and have them all be in different time zones potentially with different format strings (which he also wants to be able to customize).

Now that I type it all out, it’s not sounding as easy, which makes me feel better. He actually had a laundry list of things to put up there on top of that stuff. Some twat made a menu that he doesn’t want to have to pay $20 for, that does most of the stuff he wants but also does a lot of crap he doesn’t care about. I might be convinced into enjoying a timepiece with the time in various different locales, but I wouldn’t call it a pressing need.

Anyway, I bring it up because of what a difficulty Cocoa has been. I don’t mean to turn anyone off of it, but it seems to be one of those things that feels easier than it really is. I haven’t done much with it since a month or so before the laptop broke. Now that it’s back I feel somewhat obligated to use it, because it’s a luxury environment and living without it was terrible.

Anyway, I knocked together a plain text editor which counts words for Alex, and that was a snap. It took about an hour to do the whole thing, including loading and saving, printing (though I don’t have a printer to test it with), multiple documents and the works. Here’s a screenshot:

By the way, if you’re a cornhole, you may notice that I’m ignoring the Apple Human Interface Guidelines by not having margins. I don’t really agree with the new trend but I wanted the app to work and look like TextEdit.app, so I just copied what it does. No margins in TextEdit, no margins here.

There’s no question that the word counting app for Alex is much more sophisticated than what Allan wants. What Allan wants would be easier if I had to write all the code that manages windows, document associations, etc, by myself. I don’t, and that’s great, but now I’m struggling to write Allan’s thing, which isn’t particularly sophisticated. Also, I’m having trouble with the Cocoa Bindings, because I want to bind to a list of time zones, and they’re coming as an array of strings from a class method rather than an instance method, on NSTimeZone. So I wonder if I’m having to do extra work? Maybe I should post to the Cocoa-Dev list finally, after all this time I’ve spent lurking. If I can’t figure it out tomorrow, I think I will.

Posted by FusionGyro at 11:27 AM | Comments (0) | TrackBack

January 10, 2005


My feed looks just dandy in Safari, Internet Explorer 5.5 Mac, OmniWeb 5.0.1 and Mozilla Firefox on BSD. I checked on the friends’ pages of Cathy, Bill and Will. If you want me to fix it, you’re going to have to let me know what browsers and OS’s you’re using.

Posted by FusionGyro at 08:24 AM | Comments (1) | TrackBack

January 09, 2005

Recipes, Prolog

Alex has been digging up a lot of interesting recipes lately, so I went ahead and added a few of them to my recipes page. I hope this isn’t copyright infringement, but it probably is. :) Soon we’ll all be using BitTorrent to download recipes, and various food megacorps will bemoan the state of affairs when twentysomethings can actually prepare interesting food without paying them licensing fees for the intellectual property which is and algorithm for producing a particular taste.

Of the three books I got recently, I’ve had the hardest time putting down the Prolog book. Richard A. O’Keefe’s English is just too awesome. Here’s a paragraph of his from the beginning of the book (page 2, The Craft of Prolog) that really struck a chord:

If I may intrude a personal element here, one of the things which distinguishes imperative programming in C, Pascal, Fortran or whatever from declarative programming in Prolog, Scheme, ML or whatever for me is a big difference in feeling. When I code in C, I feel that I’m on a knife-edge of “state”—I focus on statements and what they do. I’m worried about the behavior of a machine. But when I’m writing Prolog, the predicates feel like geometric objects and the data flow between goals feels like lines of tension holding the goals together into an integrated whole, as if the program fragment I was working were a large Rubik’s cube that I could handle and move from one configuration to another without destroying it. When I fix mistakes in a Prolog program, I look for flaws in the static “spacial” configuration of the program; a mistake feels like a snapped thread in a cobweb, and I feel regret for wounding the form. When I’m coding in C, I worry about ‘register’ declarations and pointer arithmetic. When I’m coding in Prolog, I worry about getting the interface of each predicate just right so that it means something and has the visible perfection of a new leaf.

One thing I’ve realized since getting this book: I need to understand Prolog better! So next up is The Art of Prolog and we’ll see if I can actually learn it as well as I’ve wanted to since, well, forever.

One of the first computer books I ever held in my hand was The Secret Guide to Computers. It’s published by this guy out of his house in the north east somewhere. He puts his phone number in it, and offers to answer any question to the best of his ability, for free, at any hour, to anyone. I recall calling it and asking him about DriveSpace 3 (he basically said, “you’re fucked”). Anyway, in this book he had snippets of a few dozen programming languages, and the one I was most taken with from his selection, was definitely Prolog. I should try and find that book again. I typed up his Coin Flipping game in QBASIC at least a dozen times, and tried to re-implement it in a number of other languages (most recently, Io).

The book I’ve spent the second-most time with is Learning Bayesian Networks. I wish I could say at this advanced state that I’m no longer afraid of mathematics, and I can almost say it, but books like this one put the fear back in. It’s a really interesting topic, especially from the perspective of someone who has an inkling of interest in expert systems and artificial intelligence. I wish I had been exposed to more of that kind of thing at Tech. If Dr. Lassez had been around when I got there, maybe I would have. Oh well. I’m going to try and work through this book, but the material is really dense.

Baird and I have been talking a lot about network filesystems and their implementation. I hope this goes somewhere.

I restrung Faust’s guitar tonight. I think I did OK for a first-time attempt, though at least one of the strings you have to turn the wrong way, and it doesn’t look right to me, but Alex says it’s probably fine and it does sound fine. I’d kill for a metal tutor up here. I’m not very trusting of online documentation about how to play guitar. We’ll see. I probably should have gone ahead and purchased my own guitar.

Posted by FusionGyro at 10:37 PM | Comments (0) | TrackBack

January 08, 2005

In Defense of Prolog

In a conversation with David Baird, I realized something I really like about Prolog. It has all the strengths of flat files with respect to versioning, backups, and remote access, and it supports a relational model that makes RDBMS look like kids toys. Plus, because it’s code and data, it’s more flexible than either a normal programming language or a normal database.

Of course, it could use some better string functions. :)

Posted by FusionGyro at 10:48 PM | Comments (0) | TrackBack

January 05, 2005

Network Migration

So, before Project SOULTRAIN can be on an about, I’ve got some shit to do:

  1. Backup the black box
  2. Install minimal Gentoo-action (I have a dial-up, dammit)
  3. Get BIND running, in “lie about the local LAN” mode
  4. Install Kerberos (Heimdal, it looks like), get set up with GSSAPI and pam_krb5
  5. Install OpenLDAP, get set up with pam/nss_ldap (probably only need nss_ldap at that point)
  6. Install OpenAFS

I am under the impression OpenAFS is going to necessitate Linux 2.4, which sucks and pisses me off. We’ll see.

I just got a book “The Craft of Prolog.” I don’t think I’ve ever seen such a hard core book. I also got Learning Bayesian Networks, so I can be studying probability while my so-called mathematician friend plays World of Warcraft. Poser. :)

The Mac is back, so I’ll have a chance to give a shit about other people’s friends pages again. I’m three versions of MT behind, so they might have fixed a problem in the RSS stylesheet or something which is fucking you guys up. We’ll see.

Posted by FusionGyro at 12:30 AM | Comments (0) | TrackBack

January 02, 2005

To Reiterate

Need I say more?

Posted by FusionGyro at 02:52 PM | Comments (0) | TrackBack

January 01, 2005

Happy 1104537600!

Once in a while, you just have to show your colors…

Alex and I are going to try and make it to New Zealand on vacation this year, probably towards the end. We think we can afford it. :) We shall see, but I’m really looking forward to it. Project SOULTRAIN is moving forward; Alex is donating a computer and my boss is also. I may purchase a box from someone in the Clan, and then I’ll have enough for the network of three boxes that AFS recommends. Of course, then I’ll need a set of three names. The best I’ve come up with is Zim, Dib and Gir—works best if I wind up with That Which Will Not Die, because then I can name it Gir and let that account for the occasional wackiness.

I don’t have any resolutions or anything this year, at least not yet. It’s also the first new year’s I’ve spent without my friend Adam.

Posted by FusionGyro at 04:39 PM | Comments (0) | TrackBack