My own worst enemy

scrottie on 2009-11-11T18:38:04

"by revdiablo (1502) Neutral on Tuesday November 10, @11:32PM (#71086) ... I guess rants are meant to be hyperbolic, but what the hell? You might want to ask yourself whether your wounds are self-inflicted. Frankly, it sounds to me like you're the cause of your own problems."

I'm elevating this comment into a journal entry and duplicating (with modifications) my reply.

Yes, I struggle with that question -- to what degree my problems are self inflicted. As I said (either here or previously), I've tried very hard to do exactly what other people do and just run Debian and let it update itself. I don't know why things that just work for other people don't work for me. Maybe I push them harder. Maybe my mindset is different. My brother and I used to hang out in an arcade and we know how to crash half a dozen of the games there. It's well known that programmers make terrible testers of their own software. It's just too difficult to be caught up in the minutia of the implementation of it all and to keep the larger picture in mind at the same time of how people are going to try to use the whole thing. Vast numbers of Windows users swore that NT 3.5.1 was stable, and that NT 4 was rock solid, and so on. Turns out that they are if you rationalize away all of the crashes as some how being your fault and accordingly constantly modify your behavior so as not to provoke the OS. I think there's some of that same mindset going on in the Linux camp.

As with the arcade, a lot of my problems stem from one thing: I try to do a _lot_ of stuff. I build hundreds of packages from source. I cluster machines using single image patches. When I learned to crash Primal Rage 2.x, I wasn't trying to learn how to crash it. I was merely trying to game the game so that only the challenger would ever have to put a new quarter in it. If you get challenged during the final sequence where you had to fight each enemy from the entire game one at a time with one (double sized) bar of health, the game would attempt to resume after the challenge. This worked the first time but the second time, after playing all the way through again, boom, red 68k register dump screen.

A lot of my motivation for posting these sorts of entries is because I really want to be contradicted. If I can be corrected, I can be educated, and sources of frustration eliminated. It also connects me to how other people think, even if I don't chose to adopt that way of thinking. Often I do chose to. Frankly, I spent a fuck of a lot of time hacking around by myself before I was exposed to other programmers and I willfully shut myself off from other people. It's easy for people to take for granted how socialized almost everyone is. "Common sense" is hard to define but it seems to include a lot of implicit knowledge picked up through observation about what works and what doesn't.

And part of it is that I'm stupid. I've accomplished a lot through doggedness but now I'm told, tired, lazy and burnt out, and very pissed about that fact.

Another part of my frustration is that, in doing things that other people don't, I notice when those things stop working. I used to be really good at de-hosing hosed Linux (and other Unix) systems. This was a time honored sysadmin skill. It's gone by the wayside. It's just too difficult now. I'd have fun before installing Slackware over top of Knoppix, for example, then sorting out all of the libraries, /etc files, and so on, to come up with a system with all of Knoppix' canned packages but with system updates and the streamlined design of Slackware.

Sometimes my yelling at people works. I used to go around complaining all the time about how fragile five and six stage bootloaders are and how much they suck compared to the old two stagers. Most poeple have no idea how convulted Linux bootloaders have gotten and how many problems that can cause and all of the ways this can go wrong -- but eventually I ran into someone who *did*. The conversation was extremely educational. I learned a lot about what different kinds of diagnostics means. How much of "LILO" ("L", "LI", etc) indicates how far it has gotten in early bootstrap before any wedge. To the lay user, it's just a big bag of features that works right if you baby it in that certain way that you know how that enables you to be a Linux user. To a developer working on it, it's a complex and cranky beast with unresolvable edge cases due to the features and complexity.

I guess ignorant, mindless fanboy-ism pisses me off about as much as my bashing on things pisses the fanboys off. And that's probably by design. Again, I very much welcome being schooled by people who know better than I.

I like to encourage people not to read my journal. I know I'm not being especially constructive here, but dammit, it's my fucking journal. If you don't find my remarks constructive and you don't have any to make, go away. I won't miss you. I can say that with confidence, from experience. If you were trying to be helpful, great, but I'm waay ahead of ya there.

As far as the kernel not building, you were close -- it wasn't me per se, but my home directory, and specifically, my .bashrc. In the way of experimenting, I eventually ssh'd back into the same machine as guest to ditch the environment and then it worked. My home directory was a constant between different OS installs. This was after I pruned out environment variables that seemed related -- LDFLAGS including /usr/local/lib, similar for CFLAGS -- with no love. Whichever variable or file in my home directory is responsible I'll never know.

So Slackware is off the hook. RedHat probably is too. Still, from reading through Google, a _lot_ of things can cause this. It's one symptom with a myriad of causes. That's frustrating. I think you'll find that if you get into the implementation guts of gcc, you'll be revolted. I guess that's key... never look at things beyond the surface. Never have to. Refuse to. Maintain the illusion. That's the only way to keep a handle on this stuff.

-scott




A short response to a long post

revdiablo on 2009-11-13T23:37:10

I'll stop reading your posts if you can figure out how to remove them from the use.perl RSS feed.

Glad to hear you got the kernel to compile. My comment wasn't intended to be completely serious, but apparently I was correct on accident. =)