JF make 266
JF Nav
JF Nav
Creation Date: 2003-04-15
Yesterday I actually posted the Making of JF, so here I am again today. Posting it did take courage and a bit of time, but it was worth it. When I say courage, what do I mean? From my short time as an Army Cadet, I learned that courage was not to be above fear, but to fear and to face what you fear. For example, one that the military teaches: if one fears death (common among humans), one can put themself in harms way (with the right amount of sanity, protection, and reason) and face their fear, you will be a couragous person. What usually goes through a person's mind is that since your survival rate is high, there's no reason to fear. What there is to fear is the probability. Your future life (friends, wife, kids, job, etc) has been reduced to a probability (one of my rants long explained without proper backing that the Cold War was as bad as WW2 because the fate of the Earth was reduced to a probability that two extremely ill-tempered people would not act rashly). But then if you die, you won't mind much, will you? More logically, a person might fear that something terrible will happen to him/her and that s/he will have to live with it. Anyway, the courage that I displayed yesterday was simple, yet profound. I fear that my life will be waste. I fear that my words will amount to nothing for me or for anyone else. I fear that I will change my mind in the future and that the words I speak are lies. So I try to keep on topics that are important whether I get them right or not, and I try to think them through. Much of what I say is subjective rather than objective. For example: "Speaking freely is a right that I hold very close to my revolver." That is a fairly subjective sentence. It does not say anything that a person could refute very easily. It says something about myself. While others may agree or disagree for themselves, it is true about me. If you find something that is not true in these rants, I would not be very shocked. I think as quickly as I can think and I write as quickly as I can type. Also, you must appreciate the millions of characters that I put in JF. The data file is in fact ~ 1.7 MB which means that I have about 0.3 million words. If all of them are true, I would be very surprised. If half of them are logical, I'd laugh. If one tenth are understandable by a person who doesn't know me, I'd probably call that person a genius.

Anyway, today's lesson has nothing to do with courage. I took a job at the beginning of the year at the UW Physics labs hoping to get a paying job (to ensure that my current money pinch would not happen) and I've learned quite a bit. The first quarter, I worked on reverse engineering the Visual Studio 7 (.NET) VC++ Project file format. It is xml and I had to lightly modify a makefile generator (written in C++) to work with it. It worked pretty well and the project is about 90% finished (a few features persist). It was my second team project and my first open source coding. Winter and Spring quarters I've been working on another reverse engineering project, a Classification Tree library. I wrote it from scratch in C++. It works pretty well now and it's about 70% done. My professor wanted me to use C++ STL (Standard Template Library) vectors. I've never used them, so I learned a bunch. Mainly, through my job, I've learned the importance of coding for others. For my entire coding career, I've been coding for myself. Whether it's Visual Basic, ASP XML, C++, DirectX, or OpenGL, I've assumed that the user and that other programmers will find my program as simple as I do. Usually when I look at another programmer's work (as user or programmer), I can see what they intend, but other people do not want to hack through code just to do something simple. So in this project, I've worked on documenting things and naming things such that it would be unlikely for a person to mistake it. Of course, it's not easy when you don't know what or who you are programming for. It's nice when there are well-defined naming systems that a person can use so that they are naming whatever flops into their head. I named the almost everything in the Classification Tree system "Neural". I assumed that the tree I was looking at was a neural network. So it ended up incorrectly named, but a rose is a rose, right?

In that mess, can you see the lesson? The lesson is: even if you don't get paid, there is purpose and reward in doing anything that you want to. Linux developers know this pretty well, but we only apply this things that we really want to do. An editorial recently explained that Linux does not lack software, it lacks stable, user-friendly software. We have two major GUIs, dozens of minor GUIs, a dozen working browsers, a half dozen instant messengers (with plug-ins, of course), ten mail clients, five media players, ten CD burners, hundreds of terminal "emulators" (abandon hope all ye who enter!), dozens of multi-purpose text editors, and hundreds of image viewers. I mean, it's sweet. I can (and usually do) write XML in Kate, XEmacs, Vim, KDevelop, etc and it would be easier than in Windows by using colors in each. The problem is that the Linux programs aren't all there. Some are in development phases, some are buggy, some are perfect (Kate anyone?), and some rock solid (KDevelop gets two thumbs up from me). But a program is only perfect if everything in the OS works. For example, my Sound Blaster Live! Value lacks MIDI support in Linux (I am a midi nut) and also requires me to su root after loading up XFree86 to initialize the drivers. Pain in the rear, right? Where do I buy a better sound card? Well, it works perfectly in Win98 and Creative supports the Open Source movement. So what's the deal? I'm not going to blame the Emu10k1 project for this because if they really weren't doing their jobs, it wouldn't be their job. That is the hard truth about _free_ software. If you don't do your job, it isn't your job. In proprietary software, it most definately is someone's job. They're getting paid, after all. Not that open software people don't get paid. But those who do get paid are doing seriously cool stuff. Not that those who aren't getting paid aren't doing cool stuff. You dig?

And here's another lesson in case you don't like my lesson on rewarding work. This picture was taken from Milkshape. It's a high polygon model in the sense that it has more polygons than a person would ever dare put into a video game. But I don't care. Why? Because instead of using this model in a game, I can use it as a texture. I actually did and while the darkness is not symmetric, it can be made into a tilable symmetric texture (I think about 256x256 for most of the tube walls in Hack Mars). But a few things are bugging me about this texture. The first is that it has too much contrast. Why don't I want high contrast on a wall texture? Because it looks deliberate. If you give people too much depth information in a 2d texture, they're going to know that it isn't 3d. By decreasing the contrast, I'll be able to fool them into thinking that this is stainless steel. So, why stainless steel? Well, my only current reference (I plan on getting many more in the future), Case For Mars says that Mars has iron oxides and that nuclear reactors on Mars would have enough energy to turn iron into steel. Since we don't want our walls to rust and people to generally don't like tetnis (sp? I mean the disease that one requires shots for so that they don't die after being stabbed by a rusty nail), we make our walls of stainless steel. Aluminum is not so good on Mars. Not only would they need far more electricity than a fission or fusion reactor could provide, but also there isn't enough to go around. So the optimum solution is stainless steel walls. But don't think that Hack Mars will be all grey. People will be all colors of the rainbow because Martians are keen on that type of thing. Since I don't have the courage to work on JF, I'm just grabbing at straws trying to find something to do... K3D won't compile for me. Something to do with SigC++. I've installed three versions of SigC++ and none have worked. *shrug*
JF Nav
Home Characters Making Of Technical Mail News Links |< First < Prev Next > Latest >|  bandwidth version Goto Scene