Display Modes: Help
All: Full / Chopped / Footer / None
Works best with Mozilla/Firefox or IE 7.0+

Monday, February 28, 2005

Firefox Adblock a Contributory Infringer? Firefox Adblock a Contributory Infringer?

Information Technology and the Law � Firefox Adblock a Contributory Infringer? is an interesting article arguing that the automatic removal of advertisements by Firefox's Adblock runs afoul of 17 USC § 106(2) - creation of a derivative work.

Everyone seems to have it backwards, including Judge Posner. A derivative work requires the ADDITION of original expression (though, sometimes this can be in the subtraction of original content).

An excellent example of this can be seen in the Ward Churchill debate going on right now. In particular, look at this article by Michelle Malkin on possible infringement by Churchill. Two different examples are shown. In both of these, Churchill seems to have reversed the original, and then removed some detail. Clearly, if accurate, derivative works.

The problem here is that the typical derivative works question is whether or not sufficient original expression has been added to the original work in order to qualify as a "derivative work". So, what you look for is precisely that - what original content is added, and if it would qualify for copyright protection upon its own merit. If it doesn't, then it is not a derivative work, but merely a reproduction.

Upon first reading the copyright statute (17 USC) that merely changing or modifying a work would qualify as a "derivative work". BUT, a closer reading belies this. Note that in 17 USC § 106(1), reproductions are "copies" not "works", but § 106(2) talks of "derivative works". Also, note in 17 USC § 101, that all the other "works" (i.e. "work made for hire", "work of the United States Government", "work of visual art") all require original expression. Thus, the term "work" is a term of art meaning some creation with sufficient original expression to stand alone for copyright protection.

In the case of Firefox's Adblock, presumably no original expression is being added by the mechanical removal of advertisements, thus no "work" is created, and thus the display of a web page without the advertisement is not a "derivative work", infringing under 17 USC § 106(2).

Labels:

7:49 AM Display: Full / Chopped / Footer

Display: Full / Chopped / None

Display: Full / Footer / None

Display: Chopped / Footer / None

Saturday, February 19, 2005

Why I like Rumsfeld Why I like Rumsfeld

Great excerpt from Best of the Web Today from washingtonpost.com via Blogger Joe Fairbanks who notes a hilarious exchange between Rep. Loretta Sanchez (D., Calif.) and Defense Secretary Donald Rumsfeld. As the latter testified Wednesday before the House Armed Services Committee, the former tried but failed to catch him in a misstatement of fact:

Sanchez: Unfortunately, as I said, this committee has had a hard time assessing where we really stand with the Iraqi army as an effective fighting force. Over the past year, we've received incredibly widely fluctuating estimates of that. And I think you have a real credibility problem on this issue.

Rumsfeld: Fluctuations of what?

Sanchez: The fluctuations of--the numbers that you bandy around about how many troops we really have out there that are Iraqi police, et cetera, et cetera. . . .

Rumsfeld: Now, you say we bandy around numbers. They're not my numbers. I don't invent them. They come from Gen. Petraeus. . . .

Sanchez: I have Petraeus's numbers. They're different than your numbers, by the way.

Rumsfeld: Well, what's the date? They aren't different because these came from Petraeus. He may have two sets of numbers, but they are not different if the date's the same. The date on my paper here is Feb. 14. What's yours?

Sanchez: Dec. 20.

Rumsfeld: Not surprising there's a difference.

Labels: ,

2:26 AM Display: Full / Chopped / Footer

Display: Full / Chopped / None

Display: Full / Footer / None

Display: Chopped / Footer / None

Friday, February 18, 2005

Today working as a volunteer at Keystone Today working as a volunteer at Keystone

You may need to read my previous post for understanding of how my day typically goes as a Mountain Watch volunteer at Keystone ski area.

Today (actually, yesterday, by now), dawned with the type of blue sky over white snow that I really don't see anywhere else with any regularity. There wasn't a cloud in the sky. Not a one. Dark blue against white mountains. Beautiful. Esp. after the previous couple of days when it was a blizzard on the mountain.

So, there was no question. I went skiing today. As volunteers, we get free ski check at the Mountain House, at the bottom of the Peru lift. I abuse this a little - as I currently have three pair of skiis and two sets of poles stored there, and probably will add another pair next week.

Today, I wore standard alpine boots (as opposed to AT boots that I wore the day before), and used my 215 cm downhills. Fairly straight, compared to today's technology, but very turnable, as long as you keep in mind that their turning diameter is about 2/3 the length of a football field. I had plans for them later in the day.

At the top of Peru, we have our dispatch, where I signed in and got a radio. Then headed down Schoolmarm, as our lead and another paid employee headed down Silverspoon. Worked a run or two alternating between Schoolmarm and Silverspoon. Then, had a run where I started down the top of Silverspoon. The top is really not that heavily traveled, is a bit steeper, and has some nice terrain features. So, I open up a bit, and on the 215 downhills, opened up a bit more. Then, I stopped where we usually do, at the cutover from Schoolmarm and the top of the Peru lift. I was only there for a minute or so, when a couple of guys came by that I though questionable. One was on twin tipped skiis, and he was switching back and forth, (skiing forwards, then backwards) at some speed. The other was super carving, as racers do. Speed is lost when you are on your bases, and not when you are on our edges. So, a really good skier, like this guy, can move downhill making large carving turns that come almost totally across the fall line, as he can going straight.

So, I "followed" these guys. They didn't stop until the bottom of the Montezuma chair (where I caught them). I was going almost straight down the hill, and yet they ultimately pulled ahead. Skiing way way too fast. When I finally caught them, they played stupid. Both were Keystone employees, so weren't entitled to a second chance. But as employees, pulling their passes is sensitive. So, I just got their names and pass numbers and called for our lead to meet me. We met, and compared notes. He had pulled this guy over before, as had other Mountain Watch. So much for playing stupid. His pass is gone for the year. Period. The other guy, as he didn't have a reputation or record, will probably only lose his for a week or so.

Then back to work. Bagged a lot of nice rays today, as I stood at various bump locations as I worked my way down the mountain, alternating between the two green runs we work. On interesting enconter was with a young woman who was probaly too heavy to be skiing. She had her boots off and was sitting on the side of the trail. She explained that even with buckle extenders, her boots were too tight, and invariably cut off circulation to her feet. Gave her a complimentary ticket good for a hot (or cold) drink at any of the Keytsone lodges.

Then, shortly after 1 p.m., I was heading down the ridge on Schoolmarm, as was passed by a couple of snow boarders. Bad idea. I followed them down the ridge, catching them at the top of the Peru lift, right before they entered the terrain park (Area 51). The patrol "do" (snowmobile) driver happened to be right there, having just dropped a taxi at the top of Peru for a download to the bottom, and she came over and played the heavy. Always nice to have backup. These guys only got a warning, which is fair, but she took their names and passes, and they will be in the computer for future reference (unless they already had such, and then, they will lose their passes for a week or so).

Headed down Schoolmarm then, snowplowing a bit more than I would have liked (hard to turn those 215 bad boys very quickly). About a mile down, there is a cross trail, Last Chance, that cuts back to the Montezuma lift (hence its name). Looked up at the first trail feeding into it (as I typically do anymore, even when not working). Found a pair of people there, with the woman out of her skis. Had to go a couple of feet up the hill to talk to them, but I was glad I did.

Turns out, she had just fallen, had hit her head fairly hard, and had blacked out. She was skiing with her son, and was constantly appologizing to him about ruining his day. After my recent experience with the fairly major head or neck injury that I had failed to detect (see previous blog entry), I was probably overcautious on my call to the patrol. The result was that the guy who ultimately responded came with a back board and neck brace. After doing a trauma check on her (memory, eyes, etc.), he talked her into having the docs at the medical center at the base check her out, we put her on the back board, and the patrol put a next brace on her too. We then loaded her on the toboggen, and away they went.

I then ended up getting to patrol headquarters (PHQ) at about 2:20, too late to take another run before gang grooming. So, grabbed my cup and some (free) diet Pepsi before we took off for gang grooming.

That started fairly well. My partner and I were located at the bottom of two blue runs above Payflats, where the groomers ultimately go every day they gang groom (i.e., when there is night skiing). Everyone stopped, as they were supposed to, except for one guy, who acknowledge our presence, but skiied on - right before the groomers went by right before starting up Frenchman. So, we caught the guy in lift line at the bottom of the Montezuma lift. My partner asked to see the guy's lift ticket. He repeatedly refused. We told the lift operator to not load the guy, ad if the did, to immediately call the patrol, etc. We were told later by other guests that he ultimately skied off and didn't get on the lift. I did see him walking after I had quit for the day.

Riding drag behind the groomers is always fun for me. Today was a little hectic though as there were only two of us, and there were a lot of boarders trying to get to the terrain park, and we weren't letting them do that. But we survived.

After that, ran for the bottom, and helped close the lower cross run into River Run. Then, after the groomers went by, ran for the top again, this time on the Summit Express lift.

At this point in time, my work day was probably effectively over. The patrol really didn't need our help any more on gang grooming. The only thing left were the two closures at the top of the mountain closing the top of Spring Dipper. The day before, one of the paid Mountain Watch and I had skied under the closure rope and into the trees by the run. Then, as the groomers went by, we jumped on the trail and had first tracks down the brand new groomed snow.

So, my plan for the 215 downhills was to do precisely that today. But all alone I am not as quick to cross closures. So, finding no one working the lower closure, I went down there and slipped under the rope and waited. But the I saw four borders ski under me and into the woods. Obviously, their intent was to sneak through the woods in order to be the first on the newly groomed snow. But that involves skiing on a closed run, so I took off over onto Spring Dipper looking for them. Saw one or two briefly ride out of the woods and back in. So they were there.

In any case, the groomers the stopped and let out their passengers right above me. And let us all know that there were lurkers in the woods (which I obviously knew - but this was on the patrol frequency). The riders took off, but not that fast. I sat there for a minute or so, and the lukers kept hiding in the trees. Giving up, I took off down the slope.

And that, maybe, is the entire point of this blog entry. I quickly got ahead of those three riders, and set first tracks down the remainder of Spring Dipper onto River Run. Those 215 downhills want to run, and I let them. I did hit a couple of rolls a bit fast, and had a harder time than I would like keeping on the ground. But they are so smooth that I could ski at a speed that no guy my age should be skiing. And I did. Nonstop from the top of the mountain to the bottom of the gondola or Summit Express chair.

This has got to have been the most exhilerating thing that I have done in a long, long, tme. Non stop, top to bottom, at high speed, over virgin packed snow. A run to remember.

Labels:

1:39 AM Display: Full / Chopped / Footer

Display: Full / Chopped / None

Display: Full / Footer / None

Display: Chopped / Footer / None

Volunteer work at Keystone ski area Volunteer work at Keystone ski area

I work as a volunteer at the Keystone ski area, near Dillon, CO in a program known as "Mountain Watch". Copper Mountain has a similar, "Slope Watch" program, Vail has its "Yellow Jackets", and Breckenridge has just instituted a similar program. We do speed control and assist guests on the mountain - most notably getting the ski patrol to the scene of accidents.

I joined the program a couple of years ago after being hit from behind on Frenchman at Keystone by a skier skiing quite a bit faster than I was (and I wasn't skiing slowly - I have skiied for over 40 years now, and raced through high school and college). I tried to complain to the ski patrol I saw on the slopes, but each time, they would ski off as I came up. Then I saw some guys wearing yellow jackets and talked to them, and found that they were volunteers, and one of their primary jobs was speed control. So I joined - and fairly quickly found that we work almost entirely on green (beginner) runs (Frenchman is an extremely well groomed blue (intermediate) run).

So, a typical day goes that we sign in at our dispatch at the top of the first (Peru) lift and get a radio. Then, we spend until about 2:30 or so slowly working our way down a pair of green runs, mostly alternating. Up until two years ago, things were a lot more organized. We had three or four designated "bump" locations on each run where you and your partner would sit and watch traffic for ten minutes or so until either bumped by another pair, or the end of the ten minutes, then ski down to the next bump location. We no longer have those strict standards, but pretty much all still use those same bump locations, even though many in the program weren't in it when they were required.

One problem with the ski area and how it is set up these days is that the snow board terrain park (Area 51) is located at the top of the lower (Peru) chair, but the gondola, etc. go to the top of the mountain. To get to Area 51, the boarders have to ski down the ridge for about a mile on one of those green runs we work (Schoolmarm). Add to this that it would probably be blue-green at Breckenridge (meaning that it is a bit steeper than most green runs). So, you have a bunch of boarders riding very fast down the ridge, through all the beginners, many over their heads.

The worst place is near patrol phone 311, one of our traditional bump locations. I spend a lot of time there, on the lip of the biggest roll on the ridge. They come screaming down the run, popping off the roll blind, taking as much air as they can. Unfortunately for all concerned, that is quite dangerous. For one thing, the beginning boarders tend to rest on the far side of rolls so they can get started again. And they often lie down. The advanced riders, of course, are sometimes airborne when they encounter the beginners. Add to this, a lot of classes of beginners, winding back and forth right below the roll, that, again, these fast riders and skiers can't see when they go over the roll.

So, I stand there a lot, and mostly get fairly good results by yelling at them with my overly loud voice. But sometimes they blow me off, and that is not always to their advantage. I will then follow them to the top of the terrain park, inspect their passes, and see if we need to pull them for awhile. Also, when doing this, I go right by our dispatch, so can often get backup to help pull them over.

One of the things that you pick up after working Mountain Watch for awhile is a sixth sense as to injuries. We probably call in a majority of them on those two green runs - which is one reason we all carry radios (the other being getting help for situations like above when I follow people into the terrain park). This is one reason that we got our own dispatch last year - to keep us amateurs off the patrol frequency - though, as today, we go on the patrol frequency, when we need to.

Most of the injuries are twisted knees and the like, and the patrol has a skido running up and down these green runs for just this sort of thing. The injured are taken to either the bottom or the top of the nearest lift for download, whichever is closest. Do the same for those who overestimate their abilities and can't make it down (remember, these green runs are really blue-green, and first and second time skiers and boarders often can't make it down).

But in the last couple of days I have worked, I had two head injuries. A week or two ago, I had a woman ski up to me and complain that she was disoriented, but otherwise feeling fine. She had been hit above, but couldn't remember anything about the accident. I called it in, and the patrol sent a taxi. Turns out, she was quite disoriented, couldn't tell us what state she was in, or much more than her name and that she was from LA. Shortly thereafter we had five patrol on scene, with backboard, neck brace, O2, etc., and trauma activated at the medican center at the bottom.

Finally, about 2:30 most days, we meet at patrol headquarters at the top of the mountain for Gang Grooming. When the area has night skiing (4-5 nights a week normally, but going to 7 for the month of March), 4-8 grooming machines start at the bottom of the mountain at 3 p.m., start grooming in a staggered formation from the bottom of the mountain up one run (Haywood) across Payflats where all the runs come together (to go to the Montezuma chair) then up another (Frenchman) to the top, then down the ridge (Schoolmarm) to the other green run we work (Silverspoon) to the bottom of the top chair (Montezuma), then up over the top of the chair (Argentine) that would feed Montezuma, if it ever ran (but it rarely does). Then down to the bottom of the gondola (on River Run), back up River Run to another run (Spring Dipper) to the top, where they arrive at about 4 p.m. and head to the back (called the "Dark Side", which by this time is closed and swept). This whole thing is called the "pretzel" for obvious reasons.

In any case, when we have the manpower, we provide most of the manpower to do traffic control and the like for gang grooming. On a typical day (like today), I will start by stopping traffic at the bottom of a couple of the blue runs that feed onto the place where all the trails come together (Payflats) before going to the Montezuma chair. Then, when the groomers go by, we jump on the Montezuma chair, race them to the top, as they groom up Frenchman (which is hopefully closed and swept by then). If we get there early, we help with traffic control at the very top above the Frenchman closure, making sure that there is enough room for the groomers to come over the top (in their staggered formation). Then, as they gang groom over the top, some of us jump ahead of them, and some ski behind, as they start grooming down the ridge (Schoolmarm). The ones in front make sure that the feeder trails are closed and anyone on the side stays there. I almost always ride drag. There, we ski/ride back and forth across the entire trail making sure that no one gets ahead of us and is endangered by the groomers (remember those boarders running for the terrain park? They are the prime culprits here too - as this is the exact same ridge as before). Pressure lets up a lot when we head off the ridge down the other green run (Silverspoon) and the boarders can run for the park. We follow the groomers until the bottom of the run, when the groomers start back up hill again (again, through Payflats where we just were). We take off from there and run for the bottom, to close the feeder trails to the River Run trail, which goes to the bottom of the Gondola. We open those feeder trails after the groomers have gone to the bottom of the gondola, started back up, and passed the trails we have closed. We then run for the bottom to catch the chair paralleling the gondola (as it is faster), again racing the groomers to the top. There we may assist the top closures, until the groomers come over the top and hit the Dark Side.

After that, down the ridge to the top of the Peru lift, where we turn in our radios and sign out at our dispatch. Then, I slowly work my way down one of the green runs, looking for last run accidents. As I have turned in my radio by then, I use my cell phone when I run into such to call patrol dispatch.

That is a typical day. A long, exhasting, extremely rewarding, seven or so hours. Now today (or actually yesterday) is the subject of the next entry.

Labels:

12:29 AM Display: Full / Chopped / Footer

Display: Full / Chopped / None

Display: Full / Footer / None

Display: Chopped / Footer / None

Previous Blog - highdown.blogspot.com Previous Blog - highdown.blogspot.com

Just a note, I was blogging at highdown.blogspot.com until fairly recently. Not a lot there, but a little from the election, etc.

I needed to change the name and couldn't (until tonight, unfortunately) figure out how to do it. Highdown is the source of my last name, "Hayden". It is a hill near Norwich, England, and somewhere around 1100 a Norman knight took it as his surname. We have followed the family back to a Thomas de Heydon in approximately 1130, but others in the extended family have followed it back to Normandy.

In any case, in approximately 1970 my father used Highdown as the name of a company he founded, and of which my three (surviving) brothers and I own most of the common stock. But he still controls the company through the voting stock. Since then, in addition to Highdown Corporation, he has added Highdown Realty, Inc. and Highdown Foundation.

The problem is that he has become somewhat proprietary about the Highdown name, esp. around the family. I have had HIDOWN plates in AZ and UT, but he won't let me get them in CO, where he lives. And he has required that I remove a good portion of the stuff I had at highdown.com.

Thus, I felt it appropriate to switch from blogging under highdown.blogspot.com to bhayden.blogspot.com. Unfortunately, as I indicated above, I wasn't able (until tonight) figure out how to change the name of the blog, so just started a new one.

Labels:

12:11 AM Display: Full / Chopped / Footer

Display: Full / Chopped / None

Display: Full / Footer / None

Display: Chopped / Footer / None

Thursday, February 17, 2005


Approaching Battle Abbey, near Golden, BC, Candada Posted by Hello

11:43 PM Display: Full / Chopped / Footer

Display: Full / Chopped / None

Display: Full / Footer / None

Display: Chopped / Footer / None

Friday, February 11, 2005

Race for time Race for time

Yesterday, it was announced that the North Koreans had finally admitted that they had nuclear weapons. Another success for the Clinton foreign policy, that traded aid, etc., for nonproliferation. Looked good on paper, but....

But I am not that worried about the North Koreans. Sure, in a while, they may have a delivery system that could let them target the United States. But by then, we should have a rudimentary anti-missle shield in place. And with that, sure, we cannot guarantee that none of their missles will get through. But, most importantly, thcy can't guarantee that any would. And we still have enough (in the thousands) of nuclear weapons available to us. I am sure that a small number of them already target N. Korea, and others could be retargeted there in short order. If they launch against us, expect Mr. Bush to turn the country in a radioactive parking lot. And meanwhile, if they do get a couple of missles through, those are Blue States anyway, except for Alaska, which has the lowest density of popluation in this country (only rivaled by Siberia to the west).

No, the two countries that are more worrisome to me are China and Iran. China, of course, already has nuclear weapons. But it is worrisome because if it continues to grow at the rate that it is growing, it will ultimately be able to challenge us geopolitically. Probably the most likely country to do so in the forseeable future.

The race for time is that they are rapidly urbanizing and turning capitalistic. But they are trying to maintain their Communism. The problem, as compared with Russian Communism, is that theirs is based on the rural peasants, while Russian Communism was based on the proletariat. But the rural peasantry is precisely the group that is rapidly disappearing in China, as they move to the cities and get (relatively, in comparison to their country cousins) rich. If the Chinese were to go to war with us, it would probably have to be before the percentage of the populace that is economically tied to us gets too big to ignore. But they can't do it right now because they don't, yet, have the financial might to take us on milarily. We shall see which trend moves fastest - their financial might, or their integration into the world economy and the conversion of their rural peasantry to the middle class. I think money will ultimately win out, but not positive enough to put money on it.

The second race for time is Iran. They, too, are trying for nuclear weapons. But they are also facing increasing pressure to democracize, esp. with the recent elections in both Iraq and Afghanistan, two big Moslem countries on their borders. The young in that country are getting increasingly restive. The budding revolution is being ever more brutally suppressed. The country is getting ready to explode.

And the pressure is going to continue to mount. Afghanistan is already stabilizing. But Iraq is going to bring even more pressure on Iran, as they, for the most part, share the Shia brand of Islam. Instead of Iranians trying to forment insurrection in Iraq, as we are seeing right now, expect to see the opposite, Iraqi Shites formenting revolution in Iran.

I expect, again, to win this one. Probably more likely than with China. And I think that I can attribute this to Mr. Bush. If Mr. Gore had won in 2000, or even Mr. Kerry in 2004, I don't think that this would be true. But with all the press and the rest of the left harping on that Mr. Bush lied about WMD in Iraq, it remains that if we had not invaded and beaten Iraq, there would be much less pressure on the Iranians for democracy, and thus, much more likely that we lose this race against time.

Labels:

4:47 AM Display: Full / Chopped / Footer

Display: Full / Chopped / None

Display: Full / Footer / None

Display: Chopped / Footer / None

Tuesday, February 08, 2005

HTML and Javascript HTML and Javascript

A weird revelation on Javascript/HTML programming.

I have been working recently to learn HTML and Javascript in order to put up a web site, and, frankly, because it is fun. I spent 15 years working professionally as a programmer after six or so as an amateur. I did it because it was fun and addicting. I got out because it consumed me.

That said, I got totally faked out. HTML is the language used to lay out web pages, including, I am sure, this one here. Javascript is what makes web pages fun. It is essentially embedded in HTML. Javascript is not the only language (or script) that you can embed in HTML, just by far the most common. Thinking back, in 1999 (at Bull), I learned Java the same way.

In any case, the way things work is that to some extent the way things work in HTML is that basic layout is done in HTML. But HTML is static. So... you use a scripting language, such as Javascript (or Java), to generate HTML dynamically. You just write out HTML, which is then interpreted by your browser for further layout. While you are at it, you can also play with the HTML you have already generated using the DOM, which is/are standardized data structures and routines made available for just this purpose (DOM in Mozilla and IE based browsers are slightly different, but close enough that you can easily write scripts that work with both).

In case you are wondering, Java and Javascript are quite different, though Sun has their hands in both. Java is somewhere between Javascript and C++, which is what most of the real executable code on Windows machines is built using. C++ of course is an Object Oriented version of C, and C was a stripped down version of Algol, etc. Unix was originally written in C, and C was originally developed to write Unix. I think that the way it worked was that then Java was developed by Sun to be an interactive or interpreted C++. Finally, Javascript is a stripped down version of Java.

I should add that my professional programming experience moved from FORTRAN to assembler to an Algol derivative to C, with the last half using structured programming languages, and at least the last third using C almost entirely.

The reason that this is relevant is that the C roots in Javascript are obvious - too obvious. We will get back to that shortly. Blocks in C and Javascript are delimited by "{" and "}" compared to "begin" and "end" in Algol/Pascal. Similarly, both the later use ":=" for assignments, while the C family uses just "=", but all also implement "+=", "-=", etc., missing in Algol/Pascal. C++, Java, and Javascript follow C in the more obvious areas closely - such as flow-of-control commands, assignments, etc. In other words, if you look at C, C++, Java, and Javascript code, it all looks superficially very much alike. Algol (60) and Pascal look fairly similar to each other. The big difference between the various members of the C family is how variables are handled. Very crudely in C. (You can cheat to your heart's content in that language). C++ is just the opposite. It is extremely highly typed (and Object Oriented). Variable types need to be extensively defined before they can be used.

The point then is that it is very easy to slip into my old C programming mindset when writing Javascript in an HTML document. They look the same. They have most of the same constructs. In both, you are pretty much using built-in variable types, instead of going through the object oriented stuff in C++.

But there is one very critical difference that I forgot about because of these simularities. C code is compiled before it is executed. Javascript is interpreted on-the-fly by your browser. In C, it doesn't really matter where code is located, since it all must be compiled before it can be executed. In Javascript, it is critical.

So, my problem. I have been using Javascript to interact with the DOM (Document Object Model), and thusly, with the HTML. But it has been flaky. Sometimes I can't find things I know should be there, and sometimes I can. Has been driving me crazy. I am used to a system where when you create a structure, for example, it is always there at the same place. Always. This sometimes stuff was blowing me away.

And then, this morning, the revelation. My HTML documents, as do many, if not most, these days, consists of a mixture of HTML commands and Javascript. The Javascript is embedded in the HTML between <script> and </script> delimiters; Some of my Javascript is put in the <head>section</head> of HTML, while the rest goes in the <body>section</body> .

So, I essentially have a HTML program. I used HTML to set up the user interface, but the heavy lifting is done in Javascript. After all, I am a C programmer by heart. Try 90/10, Javascript/HTML. Since the HTML was an afterthought - similar to COBOL or PL/1 pictures in my mind, I put it where it was convenient. Since it was an after thought, I put it at the end. After all the important Javascript stuff.

But I couldn't find the HTML Forms I had included in the HTML from the Javascript code. I knew they were there. I just couldn't find them. I should add that this HTML program that I have been working on is a dynamic HTML debugger. It allows you to essentially interpret an HTML document in one frame or window, while showing trace data consisting of DOM table dumps in a second frame or window, under control of a third frame or window. Why anyone would want a tool like this is another story.

In any case, the reason that what the HTML was for is relevant is because it meant that I had available (already included into my document) functions to dump all the relevant DOM tables. So, it was a simple matter to just include static calls to them (the purpose of the program is to provide them dynamically). And I ultimately discovered that the critical Document object for the Control frame/window did not have links to the missing Forms when dumped during startup, but did when dynamically dumped shortly thereafter. This was driving me crazy. What was wrong with my program?

And then the light went off. I had put all of my Javascript code up above the Forms in my HTML Control document, because, well, why not? BUT when I was executing the startup Javascript, my browser(s) had not yet gotten down far enough in the HTML to interpret the Forms HTML. So, of course, I couldn't find the forms - they hadn't been created yet. But since my dynamic debugging used the buttons which were the purpose of (and result of) the HTML Forms, those exact same HTML forms were visible to the Javascript at that time. Because they existed during dynamic debugging. They had to - I was using them to invoke the table dumps. But they hadn't been created yet when the program was starting up.

The solution is, of course, obvious. Don't try to access the Forms (or any other HTML) until created. Two solutions. The first was to wrap my startup code into a function called by the ONLOAD handler for the HTML Body (or Form). The better one is probably to just put the startup code invocation AFTER the HTML Forms in the HTML cource code.

I know. This all sounds obvious. But it is a result of accidently making implicit assumptions based on my previous experience as a programmer.

Finally, a note. While I was writing this, I realized that it is kinda slick, using my HTML debugger to debug itself. In particular, using the buttons I couldn't find to find out why I couldn't find them.

Labels:

8:08 AM Display: Full / Chopped / Footer

Display: Full / Chopped / None

Display: Full / Footer / None

Display: Chopped / Footer / None

Monday, February 07, 2005

A transformative president (Part II) A transformative president (Part II)

The other side of Mr. Barone's article :A transformative president is that Mr. Bush and the Republicans are playing offense, while the Democrats are playing defense.

I think that you can see this in the fact that the Republicans are pushing agendas and the Democrats are fighting them, tooth and nail, regardless of whether it is better or worse for them in the long run.

Many, esp. on the left, have blamed this on the evil genius, Karl Rove. But I think that it is really a symptom of something much greater, and he is just there to exploit this weakness of the Democrats.

Lets take a couple of issues.

- Social Security reform. Bill Clinton was in favor. But now the Republicans have coopted it. One of the few bright demographic successes for the Democrats was with the youngest voters. And these are precisely those who most believe that Social Security, as it exists today, won't be there for them when they retire. They face a lifetime of supporting those ahead of themselves, with little, if anything, of benefit for them in the end.

So, if a party were seriously interested in this vote, which side of Social Security reform should it be on right now?

- Gay Marriage. I, personally, am coming around, thanks to Eugene Volokh (volokh.com) to granting gays at least some of the benefits of marriage, in, for example, civil unions.

That said, a significant majority of the people in this country oppose gay marriage. And if you go into the minority communities, esp. the Black communities, this opposition skyrockets. And yet, the Democrats, by and large, are going to oppose Mr. Bush's attempts to rein it in.

Again, if a party were seriously interested in these demographic groups, which side of the gay marriage issue should they be on?

- School choice (vouchers, etc.). My daughter is in an excellent private school that sends 100% of its students to college, many to the best colleges in the country. It costs, but my ex and I believe it is worth it.

But many, if not most, are denied this option through economics. $15k to $20k a year, per kid. Yet, the inner city school systems are failing. In the Denver Post yesterday was an article indicating that half of its 8th graders won't graduate on time (if ever). Half.

Imagine that you are a minority parent earning a modest income in an inner city. And you know that education is the passport for your childrens' success. Yet, the local public school are only graduating half of their students on time? If only, you could do like Bruce and send your kids to a private school. But you can't. You can't afford it. And then, the Republicans come along and push means based (so that they won't apply, for example, to me) vouchers, etc. And the Democrats fight this, tooth and nail.

So, if a party were seriously interested in this demographic group, which side of this issue should it be on?

- Faith Based Initiatives. Ditto, esp. for the Black and Hispanic communities, which are, by far, some of the most ferverently religious segments of our population.

- Abortion. Partial Birth Abortion is brutal, late term, murder of the fetus. A good OB/Gyn could typically emergency C-Section the mother in a matter of minutes instead, turning that fetus into a baby with rights.

I have a daughter. The only medical care that she can get without knowledge of at least one of her parents concerns reproduction, and the only surgery that can be legally done on her without the knowledge or permission of one of us, is an abortion. Period.

And yet, abortions are highest in the minority communities, esp. the African-American communities. Add to this that this is one of the most faith based demographics in our country. Not surprisingly, you occasionally hear some of them term abortion as "racial genocide".

Yet again, the Democrats have painted themselves into a circle. Sure, a good majority prefer legal availability of some abortion. But what is at issue here are the extreme forms, and an even greater majority oppose them.

- Israel. How can the Democrats hope to hold on to the Jewish vote while opposing Mr. Bush in his support of Israel?

- Iraq, etc. We are, of course, at war. Americans naturally rally around the flag at such times. While many Democrats give lip service to backing the troops while criticizing the Administration's conduct of the war, harping on Abu Graib, etc. pretty much says just the opposite to the military and any one else really watching.

And then, how can an American, esp. one from a party titled "Democratic", oppose giving democracy to the Iraqis and Afghanis? If you listen to what many Democrats say, no price is too low. (I should paraphrase the appropriate JFK quote here).

Which is more noble, spending what it takes to bring demoracy to the Middle East? Or bringing our troops home right now, with the job undone? (esp. in view of Vietnam, when our pullout ended up costing millions of lives there and in Cambodia).

Again, if a party were seriously interested in being on the high ground and doing something noble with our immense resources, which side of this war should it be on right now?

My point throughout here is that the Democrats have, by and large, taken untenable positions, esp. in view of winning future elections, almost solely, I believe, in order to oppose Mr. Bush.

Mr. Bush and the Republicans are the ones playing offense right now. They are the ones deciding what issues to push and which ones to ignore. And to a very great extent, the issues they are picking are those guaranteed to cause the most damage to the Democrats, if opposed by the later. And the Democrats are walking right into it, automatically fighting whatever battles the Republicans pick.

The Democrats are not going to start winning again until they start playing offense, and they can't do that until they find something to stand for besides being against Mr. Bush.

Labels: ,

10:32 AM Display: Full / Chopped / Footer

Display: Full / Chopped / None

Display: Full / Footer / None

Display: Chopped / Footer / None

A transformative president A transformative president

Michael Barone: A transformative president makes a number of good points.

Liberal Chris (commenting at polipundit.com) is right about complacency. It led to arrogance, which was one part of the reason that the Democrats finally fell. I think also that control of the House in particular, and the Senate to some extent, became the end itself, and not the means to some other end. In other words, the pursuit of elective office became almost purely the pursuit of power for power's sake, and not what could be done with the power.

The result, as pointed out in the article, is that for the most part, the Democrats are right now intellectually backrupt. Almost their entire theology is that they are not Bush and not Republicans. That is what they stand for, and that is what Mr. Kerry, in the end, stood for, and one of the reasons why he lost.

I am sure that there are some good Democratic ideas out there. We are just not seeing them right now. Hopefully, for all concerned, they will utlimately bubble up.

After all, it is much easier to win when you are in favor of something, when you are running for office to do something, instead of just keeping the other guy from doing something.

I am reminded (due to somewhat personal circumstances) of addiction recovery. It is said that until an addict hits bottom, he isn't going to make the committment he needs to start his recovery. Before that, he is in denial.

I am seeing this right now with two quasi-relatives of my girlfriend. Both are tweakers (meth users) in their late 20s. And both are still in denial, not having quite hit bottom yet. Both have lost quite a bit already. The guy is probably going to lose his family, and is certainly facing bankruptcy. The girl is now a convicted felon, facing more jail time for an extreme DUI. He, at least, admits he is an addict. Just isn't ready to deal with it yet.

The Democrats seem to be in a similar position. The high of 60 years of power is still with them. Maybe they can maintain that high just a little bit longer if they just lie a bit more (which is one reason I see an analogy with tweakers). Stealing (in this case, votes) is also ok, as it will just help maintain the high a little longer.

Hopefully, for their benefit, and the benefit of this country, they will hit bottom pretty soon, and admit that their problems. And then they can start the road back to recovery.

Labels:

9:27 AM Display: Full / Chopped / Footer

Display: Full / Chopped / None

Display: Full / Footer / None

Display: Chopped / Footer / None