Recent blog entries for ianb

Funny how people get weird about style issues. Me too, I guess. There's a certain territorial aspect to it. Combined with the intuitive Rightness of one style over another... the Rightness creates conflict, the intuition means people can't argue very usefully about it.

Seeing this, of course people decide that style isn't a useful thing to discuss. They get short about it, seeing it as troll talk.

I don't think that's quite right, though. I like systems because they feel right. I design systems intuitively -- and I think that's the way good design has to be done. You need to envision the entire thing, which has a certain gestalt aspect to it. You can't work towards a great design, except by experimentation and iteration. Even then at some point you simply have to arrive at it. It's all about feel. So I think the feel of something is very important. An elegant system feels good. That's pretty important.

Did some C programming today, which I haven't done in quite a while. First run at a small CGI program to interface with the Webware application server -- hopefully being in C it will start up considerably faster than the Python-based version. C is awkward, but I actually quite enjoyed it -- dealing with pointers and such is refreshing, and I haven't programmed in anything but Python (and a little PHP) for many months. Heck, I hardly even program shell scripts anymore... that'll get a person stuck in a conceptual rut.

But I'll be back to Python tomorrow, I imagine.

Spent yesterday writing testing documents for work. Oh, that hurts. It's like all the exactness and tedium of programming, but with absolutely none of the satisfaction. I felt like I was writing copy -- something I really should do for my website as well. Wish I could automate more of the testing... not sure how to do that for a website, though.

dyork: (tree program) os.path might use statcache, I don't know, but you may be able to optimize your code by using os.stat instead of islink, and isdir. It also would be more correct, as your current program seems to treat all symbolic links as directories. I think it's certain to save at least a little speed, maybe a fair amount (since stat's disk access is probably the biggest performance issue). Also, it's nearly as easy to pass the full path (relative to cwd or not) as it is to change directories, and this will probably also be a little faster. I think this is a case where the smallest version of the program you can write will be the fastest (as long as that means that each file gets stat()ed only once).

Spent yesterday reading through the code for Webware. I understand it a lot better -- the factoring reminds me of Smalltalk. Wrote a document trying to describe how it all fits together.

I realized that most documentation fits two models: tutorials/users guides, and reference documents for the developers. I think that leaves a big gap, for someone who wants to become a developer on the project, and is already a programmer. Being confronted with a pile of code can be very intimidating, not to mention frustrating. You change a piece of code only to find out it doesn't get called when you think it will, or you search in vain to find the code that corresponds to a certain behavior -- you may never find it, the section of code you imagine may actually be scattered across the entire program because you have the wrong model as to the inner workings. Reference documents don't help you there. At best they infer a model, in a vague sort of way.

Webware was pretty bad that way. A lot of generality, classes are often not referred to concretely (since part of customization can be creating subclasses of core components), and a mess of methods passed back and forth. Not so bad when you understand it, but I had to struggle some to figure it out. (that said, I think it is well programmed and very compact... I wouldn't want to even start were it programmed in Perl... it's just complicated and has a lot of hooks for future growth).

I always enjoy code maps, more people should write them. They address concretely what's probably the most important part of the program -- the architecture.

bratsche: I wouldn't worry too much about the degree. Most degrees don't lead to any particular job, or really qualify you for much of anything. Even a graduate degree in science is hard, and a bachelors is useless (except as lab technician, I suppose). Math? You can get jobs in insurance, I guess. History? English? Art history? Just like music, there's jobs but they are quite hard to get. So what... there's lots of good jobs that don't have a degree that leads to them. I'm sure you'll do fine, even if you won't be a professional in the style of a lawyer or someone with an MBA. At least, for all the people I've known with these relatively useless degrees, it's not as bad and the degrees aren't as useless as they seem. Anyway, my CS degree is useless if I don't want to work with computers, which I sometimes think about... ditto with whatever other job-directed degree you might get.

I dunno... it's much harder to find a good job than it is to find a profitable job. I guess it helps if you have those Marketable Skills, but I doubt it. You find a good job because (a) you find good people who will hire you to do good things, or (b) you make a job for yourself.


My girlfriend's been sick lately. There's not a lot I can do to help her, or really even make her more comfortable. Sigh. Anyway, I feel selfish about it, but it's hard to get work done with her around all the time. This is one of many problems with working at home. I don't think I much care for working at home, really. Or I need to tighten down my daytime practices. I don't know. What do people do to keep themselves productive when there's no particular schedules, and certain vagueness to everything you do? Sigh. It also makes me feel very isolated. When spring really comes around, I think I'll make a change of some sort. Forward, backward, or sideways. Spring always makes me feel like pulling loose. Not sure how, yet.

shoen (re: IBM Linux Ads):

It seems like the only way to be a real dissenter anymore is to be truly subversive. "Image Is Nothing" is it's own image, and all that bull. Every way you can rebel, there's someone there to sell you something to express your rebellion, to profit from your dissatisfaction. So how do rebel against the leaches that profit off of your rebellion? If you say they suck, they'll just agree with you and try to sell you something about how much they suck.

IBM would be happy to sell the idea of the socially disfunctional hackers with no corporate sensibilities, in the midst of their almost quintessentially corporate reality. They don't give a damn.

But they are only willing to go so far. In all the pandering to rebellion, they still find it hard to consort with the real believers. They'll never get RMS on an ad, they probably would never try. He's far too sincere. He would seem awkard and disjoint from the environment an ad would place him in; the ad is utterly insincere, entirely cynical, like all ads (except maybe the ads made from stock clipart for roofers in the local paper -- they are genuine).

The weird thing is, the advertisers wouldn't look bad in that ad -- RMS would. The true believer would look stupid and pointless, utterly unhip. He'd be likely to make special note of the GNU in GNU/Linux. Not because he's dumb or doesn't get it, but because RMS doesn't know how to turn it off. He's so utterly sincere that he can't play the game and he can't compromise.

Maybe that's the salvation available -- to be so sincere that the cynicism can't corrupt you. Everyone will laugh at you and think you're stupid, and it will be like a kid in a Special Olympic commercial, or the old woman who couldn't get up, and couldn't act either so that people pounced on her awkard vulnerability. They can't corrupt that because to embrace it would destroy their image. Punks tried to achieve this by flicking off their audience and saying fuck a lot -- by pissing everyone off -- but they only made it all worse, helped us all along towards this cynicism which makes it so hard to rebel. But you can be totally the opposite and fuck things up a little once again.

It's hard, though, because like all the hardest things if you try too hard you'll fail.

Anyway, that's what comes to mind. When someone says "Open Source", tell them "No, Free Software", and when they look confused say "like speach, not beer", and keep saying that until you annoy them.

Just walk in and sing, "Join us now and share the software". You know if one person, just one person does it, they may think he's sick and they won't take him. And if two people do it, in harmony, they'll think you're both faggots and they won't take either of you. And if three people -- can you image three people walking in, singing a bar of The Free Software Song and walking out? They may think it's an organization. Can you imagine fifty people a day, I said fifty people a day, walking in, singing a bar of The Free Software Song, and walking out? Friends, they may think it's a movement. And that's what it is.

I'd apologize to Arlo Guthrie, but I doubt he frequents Advogato.

Looking for a new host. I feel kind of bad about leaving my current host, 'cause it seems like it's just one guy posing as many email addresses, which is about as much as I can offer anyone too. I empathize.

Anyway, has a really good deal, but it's almost suspiciously good. I worry that they are weird, or have poor uptimes, or something. Anyone know of a good host that's reliable, fast, and offers lots of flexibility? I've used jumpline for several sites, but their lack of features (no mod_rewrite!) has left me unimpressed.

I think I'll go for a walk instead.

14 Mar 2001 (updated 14 Mar 2001 at 08:08 UTC) »
async: if it's a piece of software, you should just post it on freshmeat and update the link there.

And if you are moving hosts and keeping the same hierarchy, you should ask the old host to do a redirect. The easy way under apache is just to put a line in the .htaccess file in your home directory like:

Redirect permanent /~user/ http://newhost/newhome/

I've been sorely in need of some recreational programming lately, something that just seems amusing to me. I've been thinking of writing some interactive fiction, because that's always seemed interesting. But I hate puzzles, and I hate trying to figure out the right word to do something. And of course the can-opener-in-search-of-a-can situation. So I'm trying to figure out a good compromise. I really like Interstate Zero -- I'd love to make a game like that.

Anyway, I'm trying to figure out what the right balance is between freedom and flexibility. Should conversations be multiple choice in essence? Without that, conversations pretty much don't exist in IF. Should everything else be multiple choice? I enjoyed Choose Your Own Adventure, but...

I should probably think about plot and storyline first, though.

2 older entries...

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!