Wednesday, July 21, 2004

For the Public Good - BAH!

Well... I've decided something: Civil engineers, you know, the people who build life saving devices like dams and bridges and the like, ya the kind of stuff that could kill thousands, no millions of people should the engineer make a mistake, are not the kind of people that should have that kind of power in their hands.

In working with them (I must specify that I work for storm water engineers) I have discovered a couple of important things: (Remember I'm a computer programmer working for storm water engineers, so these are going to be heavily biased towards computer related complaints)

#1. They don't want the computer simulation to produce results that match reality. Instead they want the simulation to reproduce results generated by older, buggy computer models that are known to be erroneous.
#2. Because of this they have no interest in advancing the practice of civil engineering, but instead, focus on advancing their own career by helping propagate buggy models that have THEIR method in them.
#3. To them, "Calibration" is the process of filling in minor details of the model to make a particular simulation match a real life event, and you only need to calibrate against one event to be able to use model for prediction. This is OBVIOUSLY wrong, and does nothing but hide the bugs of the model (And it's methods.) They don't attempt to calibrate the model against multiple storms with known data. Because of this they are unaware of how far off their predictions are.
#4. In lew of the aforementioned "Calibration" They are more than happy to accept a 300% error margin (as compared to real measured data) on the model when it is first run. As a scientist I see 300% and say "WOAH! Obviously my model's fundamental equations need to be adjusted." they say "300%? No biggy, we'll just calibrate it and it'll be fine."
#5. Since every time they've actually looked at anything they're using they realize they are probably going to kill someone with it, the term "testing" has just been removed from their vocabulary. Ask a civil engineer to test the model and what will happen is that they'll install the program, open the about box, and correct your spelling of "High Lord God" next to their name. And then manage to completely miss the fact that when you tell the program to run the model it doesn't, and instead displays the message "You mother sucks monkey tails!" Then when someone notices (which it can take up to 2 years after RELEASE!) they get all mad at you instead. When you bring up the fact that that kind of bug should have been noticed during the testing phase, and that the only way that it could have been missed is if they hadn't even actually opened the program, they claim that it's unreasonable to expect them to have actually tested it when you asked them too. (I've actually had this happen! Ok... So it didn't make any references to primate sucking, but the model completely failed to run and actually crashed to desktop)
#6. "Consistency" is more important than "Accuracy" to civil engineers. What this means to you, the citizen of "who knows where", USA, is that if the model was horribly bugged before, no amount of inventiveness will ever be applied to fixing the problem. Instead of running the better algorithm (which they will agree is FAR superior,) they will instead demand that all new software be able to produce the invalid result. Meaning that if an older model was flawed in some way that caused them to build the dam too weak, a newer, better model that says that they're going to kill 20,000 people downstream is inherently "wrong" and that the old way (Which they will admit is "also wrong, but still superior to the new method", despite evidence to the contrary) must be written into the software.
#7. The effect of "Simplifying Assumptions". When the models are written, some number of variables have to be left out (A point which I can understand) to make the model actually reasonable to run. So a "Simplifying Assumption" is made, and the variable is removed from the calculations. However, these assumptions inherently create limitations in the model that have to be understood when using it. However, they don't tell anyone these assumptions. This means that if a model designed to simulate water in a channel has the requirement "The channel cannot be longer than the distance water travels in one time step", there's nothing stopping the other, equally unenlightened civil engineers from using the model to simulate a mile and a half long channel, with one minute time steps, and water that's moving about 3 ft/s.
#8. Because of #5 and #7, no one ever checks the numbers to see if the result of the model actually makes sense. Instead they treat it like a perfect black box that produces perfect little gold plated numbers that are irrefutable, no matter what kind of garbage they feed into it. GIGO (Garbage In - Garbage Out) doesn't seem to click with them. So court battles are won and lost based on these happy little garbage numbers. (I've tested this: as long as you give them a number with the right number of digits, you could have selected it out of a hat and they won't notice.)
#9. And yet, however inaccurate, and imprecise the number may be, if it doesn't have EXACTLY the right number of decimal places, it's a wrong number. If the engineer claims that the model is accurate to 10%, so you make it clip the number to 2 significant figures (Note: SIGNIFICANT FIGURES, not decimal places, (they don't seem to understand the difference...)) they will give you all kinds of hell. You can try to defend yourself with "Look, I gave them a whole extra garbage figure to work from," and the response you'll get is "You WILL display it to 3 decimal places!?
#10. If you haven?t already noticed, the fine art of error analysis is kind of lost on civil engineers. I have NEVER seen any civil engineering report (Including the ones that I've had to make programs to write) that gives any kind of reasonable error report. Not one 1000 CFS +- 20 CFS.
#11. Civil engineers are one of the few academic groups that DOES NOT USE METRIC. For some idiotic reason, ALL of their math is done in Imperial units. Even suggesting the possibility of rewriting the equation to use metric units to make them simpler will result in a cry of "BLASTPHEMY!" (You'd be amazed how many of their equations could have EVERY coefficient removed if you used the appropriate metric unit)
#12. They have zip, zero, zilch understanding of statistics. To them, a storm that is on average stronger than 99% of storms is a "1 in a Hundred Year Storm" (No kidding, you know those late afternoon thundershowers? Ya, the ones we see like twice a week during the summer? Ya, those are classified as "1 in Two Year Storms") And when they say it, they actually BELIEVE that a "one in two year storm" only happens once every two years! Turns out that the statistical analysis they're running returns the "excedence probability" in terms of once excedence per X storms. So in actuality, a "2 year storm" is actually a "One in Two STORM storm" (i.e. If this storm isn't at least that strong, the next one likely is.)
#13. Worse yet, they design systems to handle the "One in a Hundred Year Storm". What this means to you, home owner extraordinaire, is that since that actually means that one in a hundred storms is stronger than the design, and (in my area) there are 30 or so storms a year, that your house should get flooded about once every three to four years. Luckily, many of their models are absolutely horrible, and since they typically are off by 300% or so, the things are often so horribly over designed that it's actually funny. Unfortunately the models are off by + OR - 300%, so sometimes the thing doesn't even handle any water at all.

I think that's all of the big ones. Well, the ones that will eventually kill us all, anyway. (The civil lawsuit system being the ONLY reason that more people haven?t died). There's plenty more, but those are the ones that I think have the biggest impact on the health and welfare of the populace at large.

To think that I work for these kind of people... I should quit.

Mood: Angry and Frightened

Tuesday, July 13, 2004

An Exercise in Hardware/Software Design

Here's a nifty idea for a hardware architecture design change for the plain ol' PC: Take a lesson from hand held devices and store the os on a rom module.

Now I'm not talking flash rom, no. Nothing that slow. Instead I'm suggesting that when you pay the $300 for an operating system, that you get a hard burned ROM module that has a release version of the operating system on it.

Basically the idea is to add a slot (that would probably look like some kind of ram module, but mostly because it's connected to a memory bus) to the motherboard that allows you to insert either a a rom module, a flash module, or a hybrid flash/rom module. Then rewrite the bios so that if it's a rom module, the drive is treated as read only, and read-write if it's a flash or flash hybrid module. Then when you write your OS, you write your own "OS Drive" driver module. This module would first find the ROM drive, then it would load a "changed files" image off of the hard disk. The OS would take and create a virtual file system that has the OS files (from the rom/flash module) that has the OS and the HDD on it. In the case of rom/flash hybrid modules (Which would be the preferred method), OS patches would be installed into the flash space, and then between the rom/flash/hdd a virtual drive would be created. If the file exists on the HDD, the HDD file is preferred over the flash file, which is preferred over a rom file. This would allow for patching and the like to be used, but would take the basic operating speed of the computer and send it through the roof. And if you make the OS patches do a forcible install onto the flash module, then you can minimize the amount of terribly slow HDD access. And if you keep a list of files in memory that have HDD overlays, you can speed up the search process by knowing in advance to bypass the rom module.

The hope would be to have maybe two or three slots (three preferred) that could be filled in. The hope would be to have a "OS" module, a slot for a dedicated applications module (Which would allow business computers to have tiny hard drives and just FLY), and a slot for a dedicated patched file flash module. On computer labs and processing banks, this, coupled with a ram drive, would allow for completely disk less systems. If the "Overlay File System" where made to natively support a ram-drive in it's design, the terminals you could build would be just scary fast. And since hard burned rom modules are cheap and fast, the cost of implementation would be small. It'd be kinda like being able to buy a system from Dell or some such with the applications preinstalled while still being able to customize the system. It's the best of both worlds, and on top of that, it doesn't force a single os either. You could leave the extension slots empty and still make the system work. You could install all of the OS onto the HDD, or an experienced user could take their own custom OS and burn it onto a flash module. This way even Linux and OpenBSD users could have their cake and eat it too.

There would be a strong limitation, and the bios would have to check this, and that's that all of the modules and the associated HDD partition would have to be designed to work together. I mean consider, you really would have to make sure that the file system was truly aware of this design. But that would be pretty easy if you where to modify an existing file system to include markers for what module layer the file is on, and then actually keep the file system on the HDD (Which would probably be merged with the discovered module file systems at boot time by a software utility in the OS.)

A second problem exists in dealing with moving HDD's around. I mean, how do you handle the scenario that a person with OS module X takes his HDD out and puts it in a computer with OS module Y. Especially in the case that OS module X and Y are two slightly different versions of the same OS (Keep in mind, just a slightly different DLL is enough here) I think it would be important to have a way to copy the data off the modules onto the HDD and mark the HDD as a non-layered file system, so that you could make a transfer. I really don't think it would be wise to go the other way, but even in the case of the slightly different OS case, it would be quite useful to be able to go the other way as well. Basically do a file compare between all of the modules and the HDD and if a module has an appropriate file, mark the file to use it instead and then mark the partition as layered again.

Oohh... oohh, what if this tech was built into an "external hard drive controller" and made into a PCI board? The controller would emulate a standard ATAPI IDE controller, and would actually have an IDE controller on it, but it would map the ROM to a fixed space in the HDD's virtual address space. Wouldn't be anywhere as good as making a true implementation at the OS level (Because a whole bunch of optimizations could be done to make better use of the virtual address space,) but it would definitely make for a useful transitional solution.

Hmmm... I think this one may actually be within my skill level within the next 3 years (Being an EE major kinda helps there...) Maybe I should sit down and actually build a computer with this hardware structure and then modify a version of linux to handle it. I would have to write my own hardware drivers, and file system drivers, but it might definitely be a worthwhile project.

Yum... Booting in 20 seconds... Nice.

Mood: Creative

Monday, July 12, 2004

-Disrupt the Democratic Process-

CNN.com - Officials discuss how to delay Election Day
ABCNews.com: Officials Want Election Rescheduling Rules
MSNBC - Exclusive: Election Day Worries
CBS News | Pondering An Election Day Delay

I can't believe it, I just can't believe that ANYONE would even CONSIDER the possibility of delaying the election. Ok, now normally I'm a "take the blows as they come" kind of person, but this is way beyond my limit.

Consider the possibility that a person got into office, (And no, I'm not trying to insinuate anything, this is intended purely as a hypothetical exercise.) that had some kind of agenda that just couldn't be done if they weren't president. Now consider the options that he would have at his disposal if there was a clause allowing the election to be rescheduled in the event of a terrorist attack. Keep in mind, the president is a human just like us, and worse yet, a human with a lot of power. What if that president where to arrange for a terrorist attack on election day. It could be reasonably made such that he was president indefinitely.

Now, this is an obvious extreme case, and not really fair. But the use of such a clause, even to just delay the election in hopes of creating a biased condition during the voting process is extremely easy. And who would be the person with the power to make this decision? Would it be vested in one man? Or would the act require an act of congress to activate?

Oddly enough, I can see why such a clause would be necessary, but I don't see how it would be possible to implement it in a safe way. Because of this, I think it's in the better interest of the American people to not have such a clause. The risk for abuse is far too great. If a Madrid bombing like event where to sway the election unfairly, it really wouldn't be any different than having a kin relative of one of the canidates decide when to stop counting the votes now would it?

I may actually have to e-mail my congressman about this one...

Mood: Deeply Worried

Tuesday, July 06, 2004

Physics, XXLT, and Situps: A Study in Torque

I finally understand why it was that I can't do proper situps (You know, the kind where you just lay on the floor, and then go from laying to sitting without lifting your legs off the floor.)

Ya it's gonna sound corny, but I think that my long torso is the issue. See every time I've wanted to do situps, I've either had to kick or have my feet pinned to do it. Now this seems odd, since almost all the people I know can do situps from the regular position. Originally I reasoned that it was because I was out of shape, (and this might contribute to the difficulty anyway, but it should only disrupt the number of situps I can do.) But sitting there thinking about it, I realized that it was all one big lever problem. In a basic situp, the objective is to take and bend your body 90 degrees at the waist. I'm not sure about "normal" people, but this is an easy task. I can do that no problem. However, when I contract my abdominal muscles, my legs lift up and my torso only lifts slightly. Now why I would be different that a normal person in this regard makes since if normally legs are slightly more dense than torsos and heads (which I would expect to be true based on the density of muscle and the amount of muscle required to walk and jump and the like.) Couple that with an equally sized torso and legs and you get the counterlever needed to do a situp when dealing with normal people.

In my case however, I have about 8" of extra torso. This means that I also have 8" less leg to act as a counter balance. This means that the total effect is like having 16" of extra body tacked onto a normally proportioned person. Now, it's not exactly 16" worth of mass since it is actually 8" of leg density material and 8" of torso density material. But the ultimate effect should be obvious: my torso exhibits more gravity torque on the pivot point than my legs do. This means that when I attempt to do a situp, I apply the contracting force to try and bring together my legs and torso and my legs are the part that move, not my torso. So my feet come up and satisfy the basic objective of bending 90 degrees, but unfortunately don't exactly do what you'd expect from a situp.

This is, however, no excuse for my poor total situp count; well, it could be reasoned that by having extra torso, when I do a legs pinned situp, my torso exerts a larger gravity torque on the system than a normally proportioned person, but I feel that if I have more torso, then that's all the reason I need to be able to lift it. ^^ But it does explain why I need to pin my feet when I do situps and helps to ease my issues with not being able to do a normal situp.

Jim's Super-Ego: This is all just a rationalization and you know it!
Jim: I know that, but you don't have to remind me!
Jim's Super Ego: Quit rationalizing and goto bed. You have work in the morning!
Jim: Ya, ya, no need to get pushy.

Mood: Sleepy and Justified

Friday, July 02, 2004

Of Cultural Differences and Taking a Stand

Bill Cosby has more harsh words for black community

Now, don't get me wrong at any point: Let me open up with some basic facts that I just won't be able to get around.

#1. I'm White (And if you believe that do I have some land to sell you! But that's the offical category that "Irish Americans" get classified into.
#2. Because of #1, I am mostly exposed to the "White" culture. This, no matter how much I try, will ALWAYS lead to me having a biased view. Just the way things are. I try to see the problem from all sides, but I'm not perfect.
#3. The language I'm going to use here is GOING to be offensive. Both to whites and blacks. I'm trying to take this topic from a hardliner direction, and this will assuradly come to me needing to make associations, and that's just the way things go. So if you don't want to be offended, please stop reading here.

But after reading the article linked above, let's get to the rant.

What he's saying is unfortunately true. Let's look at a simple point: think of a poor, uneducated, white guy, who spends his time working at a minimum wage job and watching sports games. Now if he's white we have a special name for him don't we? The culture has deemed this kind of person "White Trash". He is given no respect within the white culture, and, quite literally, is the brunt of most of our jokes (think about Jeff Foxworthy.)

Now change this man's skin color. Let's pretend he's black. The unfortunate truth is that we come to the baseline of black culture. Now in the past this was established due to segregation as well as poor treatment. But then we come to the true point: The black and hispanic kids (both groups that currently have lower litteracy rates and poorer education levels) got the exact same education and treatment that I did in school.

From the very first time I can remember going to school (that I was old enough to understand the nature of discrimination) I saw no difference in the crappy education that they and I recieved. My hispanic friend had the same classes, and was given the same aid that I was. My one black friend (keep in mind that people who have sickle cell trait can't live where I do becuase it can trigger full flegged anemia, and since blacks have a significantly higher sickle cell trait occurance ratios, you don't typically find them here at 5280 feet.) But anyway, my one black friend was significantly smarter than I am. And he achieved a much higer level of education than me. But he had one thing going for him that most of the blacks here in the U.S. didn't: his parents actually where FROM Africa (Nigeria as I recall, I can't remember for certain.) So he wasn't exposed to the same cultural standards that the blacks who are native to America (Not that he wasn't, he was from Texas) are. His parents (Like the white culture here does) put an emphasis on acedemic excellence. This ment that he wasn't allowed to fall back on "the man" as his excuse for performance.

And this change to cultures can be seen in many cultures in many cultures. You find it in the blacks of South Africa, the Irish of the United States, all kinds of previously oppressed groups. Consider: My father was the first man in his family to get a college education. Now his parents often express a barrier between him and them because he went and got all educated. This shows the cultural unacceptance of education in that group, and you can see it in all of these groups.

What Cosby is saying is: "Screw that, there's no excuse NOT to get an education, to open more oppertunites, and get a good job" By taking a stand against the culture, he's working towards breaking the cultural barrier on education, and hopefully, encourage the black community to change and get itself out of the rut that it's keeping itself in.

For that I have to laud him. Now the only thing we need to do is break down that wall in the hispanic and white trash cultural groups.

"A belief that you can't get a college deploma shows nothing but a lack of knowlege in the system."

Mood: Driven