A couple weeks ago, I was writing a RELAX-NG schema (which I believe should be named “RELAX-NF”, the NF standing for “No Fooling” — because when it actually comes to writing schemas, XMLSchema is a cruel prank the W3 is playing) and a document management web-app. The fact that the RELAX-NG docs come far closer to reading like they were written by a human being helps immensely.
For it’s part, the document management app is coming along nicely. There’s only a few classes left to implement, then browser testing, then demo-ing it to the boss. Requirements are still changing, but most of the interaction problems that’re cropping up in the current 1.0.4-or-so version (it’s currently unversioned) were anticipated, and the redesign makes implementing new feature requests reasonably easy — fortunately, the sales guy (who’s generating most of the reports) has picked up on the fact that I prefer broad, task-oriented requests to specific, feature-oriented requests. The problem with feature-oriented requests is that they don’t motivate me, because figuring out how to accomplish the desired task (aka “the fun part”) is already done — often poorly, I might add — leaving only the coding, debugging, and testing (aka “the suck”). Slogging through the suck is simply the price of enjoying the fun part, so the more specific a feature request (“add a button here, that looks like this, and does this, in this way”) is, the less fun there is. And if the “in this way” part is poorly thought-through, it’s just adding to the suck. (Go-Go Gadget Double-Entendre!)
The commute, however, is a mixed bag. On the negative side, it means spending 1.5 hours in my car each day, which translates to about a gallon (4 liters) of gas each way. On the positive side, most of the commute is backrounds though farm-country, which is at harvest-time. In other words, it’s a reasonably nice time to just relax and let your mind half-wander (the other half concentrating on driving, of course). In practice, this means I don’t get to work frustrated by the drive, and don’t get home exhausted from it.
One of the things I can’t help noticing about this drive is how most of these fields are actually research crops. Various signs labeled “Better Yields Through Technology” and such. Generally, I’m opposed to GM crops on three technical grounds and one “political” one. Firstly, food isn’t broken, so there’s no need to fix it. Famines do not exist because we simply cannot grow enough food to feed people, famines exist because of poverty and politics. Secondly, I’m doubtful that the genetic code of the crops in question has been mapped and studied to the point where potential conflicts can be discovered. Taking 30-lines of code from a bacterium, and adding them at line 100,000,000 of 2,000,000,000 could have unforsean consequences somewhere else in the code, or later on down the line, when evolutionary processes have mutated this change into something else — or cross-bred it into a related species, as has already happened before with GM Oilseed Rape (otherwise known as “canola” — as in “canola oil”). So in “fixing” not-broken food, they may actually break it — or break something else which makes food that much harder to grow.
This leads to the third technical issue, and what started this little rant: the “test” crops are not contained so as to avoid contaminating anything else. I once met someone who used to work at the now closed DeKalb Corn/Monsanto research facility (it was about 5 miles from my house, down the street from the local Wall-Mart). When I mentioned about GM crops mixing with non-GM crops, he stated that it wasn’t their fault if farmers didn’t practice proper precautions. Driving through all this, it either appears as though the “proper precautions” is sticking a sign up so you know what the lot number of the seeds was, or nobody is following the “proper precautions.” To my mind, the “proper precautions” would be a Resident Evil-style underground lab, but that’s an unrealistic way to test anything that’s supposed to grow out in the sunshine, rain, bug-and-bird-laiden Real World. But, if there is no way to (realistically) test these crops without potentially endagering everything else, then you just shouldn’t bother. Going ahead with the kind of “not my problem” attitude expressed to me appears as the height of recklessness — particularly when the thing you’re tinkering with is the food supply. Some may complain that this is just me playing the “what-if” game. I would ordinarily agree, but for the fact that this is engineering, the biggest game of “what-if” in town — “what if we split an atom,” “what if we spliced genes,” etc.
The strongest reason, however, is political in nature. I simply don’t trust large seed companies to do what’s best for the people or the environment. I don’t trust them to do what’s best because they are required by law to do what’s best for their shareholders. By example, in order to use Monsanto’s seeds, you need to sign a licensing agreement, which promises that you won’t use any seeds that the plants make (“Click ‘I Accept’ to continue growing food” — and people complain about Microsoft’s “firstborn male” clause ;-)). Monsanto’s withdrawn “Terminator Technology” (single-generation plants) was simply a cheaper means of forcing farmers to abide by those licences than paying for investigators to take samples of plants for DNA testing.