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

Tuesday, March 29, 2005

No Child Left Behind No Child Left Behind

At lunch today, a friend of mine and I were talking about special ed. An old girlfriend of mine made a decent living with a PhD in learning disabilities doing evaluations for rich parents. The result often was that their kids got the school districts to pay for private school. Her evaluation was a lot cheaper than what my ex and I pay for such.

But apparently, NCLB has ended much of that. Not enough money left over to support special education, and thus, private schools for those who cannot be accomodated.


3:25 AM Display: Full / Chopped / Footer

Display: Full / Chopped / None

Display: Full / Footer / None

Display: Chopped / Footer / None

More thoughts on public education More thoughts on public education

In an earlier post, I suggested that the problem with public schools is that they are publically funded monopolies, and are thus fated to fail.

The reason for this is that several fold. Probably most importantly, without the market signals that for-profit enterprises (including private schools) receive through their profit-making, there is no realistic feedback mechanism.

The situation for most profit making businesses, including most private schools, is very simple. If they provide a quality product at a good price, they survive, and maybe even grow. If they don't, they fail.

In the case of private schools, it is very simple. If the parents believe that their kids are learning more than they would elsewhere, they send their money (tuition is only the start here). If they don't, they send their kids and their money elsewhere. Brutal, but effective. Few bad teachers, etc.

But in the case of public schools, this brutal tie between performance (as defined by how well the kids are taught) and money is missing.

So, you have the situation where schools and teachers are rewarded for all the wrong reasons. They are not rewarded for effective teaching since they get their money regardless of whether or not the kids learn anything.

Indeed, the system is full of negative rewards. For example, in Phoenix, the schools apparently get/got federal and state money based on how many students they had at the first of the year. Sounds good? Well, it turns out that the negative effect of this is to dump a lot of students within the first month or so of each school year. After all, they have already been paid for these dumped students, and this allows the schools to do more for the other kids (and, more importantly to them, the administrators and teachers).

There are a lot of other perverse effects of not tying money to performance. One is that schools get hijacked from their original mission by other pressure groups. Even worse, schools get hijacked by their employees.

This all happens because organizations require some sort of direction. In the case of for-profit organizations, the direction has a direct tie to money. In public organizations, the direction is invariably political.

This has a couple of ramifications. First, you get a number of goals that are really irrelevant to what the public would probably consider the mission of the organization. For example, diversity. Sensitivity. Etc.

Secondly, with multiple, conflicting, goals, those within the system are given a lot of freedom to do exactly what they want - by emphasizing whetever political goals they want to.

So, the result is that the inevitable result of a publically funded monopoly public school system is that it is run for the benefit of those working within it, and for those pressure groups that can apply sufficient political pressure to get included in the goal setting. This means that it is invariably not run for those who should be the ultimate consumers of the public school system - the students. Indeed, they are an inconvenience (as noted in the Phoenix example).


3:14 AM Display: Full / Chopped / Footer

Display: Full / Chopped / None

Display: Full / Footer / None

Display: Chopped / Footer / None

Thursday, March 10, 2005

Pop-up Windows Pop-up Windows

I have spent quite a bit of time since the first of the year learning HTML, Javascript, and the DOM, as I work on putting up a Web site to advertise my legal skills. And, of course, I am a programmer at heart, having worked as such for 15 years before entering the practice of law.

One of the things that I discovered when doing this was how to create pop-up windows. You do this in Javascript by invoking the window.open() method (or function). For example, the following does the trick quite well:
owin = self.open('', 'Trace', 'width=1000' + ',height=700' + ',resizable=yes' + ',scrollbars=yes' + ',status=yes' + ',menubar=yes'+ ',toolbar=1');

Note though that the above Javacode opens a blank window (as there is no URL specified as the first parameter). Also note that "self" is the name of the current window, and that the concatinate operator ("+") is utilized here for presentation purposes. It merely combines all of the parameters into a single (3rd) parameter. It is easier to maintain code this way.

The reason that I use pop-up windows is that they work well as a "trace" file for debugging. You can do this by:
trace = owin.document;
trace.writeln("Debugging information");

Unfortunately, to get this to work in Netscape / Mozilla / Firebird, I had to turn off Pop-Up Window prevention (in the Privacy & Security preferences). And what did I discover when I did that? That some of the web sites that I routinely visit apparently provide rotating pop-up advertisements. The most notable of these is The Drudge Report. Practically every time I switch from working on my HTML and Javacode to browsing the Web, I have this unpleasant reminder that I had forgotten to reenable the pop-up blocking. This morning, I found five of them in the background.

I had frankly forgotton that this was one of the biggest reasons that I was using the Mozilla family of browsers over Microsoft's Internet Explorer (the other big one being tabbed browsing).

The reason that pop-up windows are annoying is that you have to close them. Sometimes, you have to close a whole bunch of them. This is far more intrusive than merely ignoring ads on a Web page.

The problem with the pop-ups that Drudge provides is that they are almost always from very large companies. Companies that should know better. I am now developing a list of companies that I will not do business with soley because they are rude enough to utilize pop-up windows.

Obviously, their marketing departments believe that the tradeoff is in their favor. But I don't think that they have truly looked at the potential customers that are seriously turned off by their method of advertising. In other words, I don't think that the marketers, having found this slick new toy, realize yet that it has a big downside.

I think that I would be a lot less upset if I were getting Viagra advertisements, instead of, for example, cell phone ads by multibillion dollar companies, because I frankly expect Viagra advertisements to be sleazy. I just don't expect that of multibillion dollar companies.


7:08 AM Display: Full / Chopped / Footer

Display: Full / Chopped / None

Display: Full / Footer / None

Display: Chopped / Footer / None

Friday, March 04, 2005

Why we are in Iraq.. Why we are in Iraq..

We hold these truths to be self-evident, that all men are created equal, that they are endowed by their Creator with certain unalienable Rights, that among these are Life, Liberty and the pursuit of Happiness.--That to secure these rights, Governments are instituted among Men, deriving their just powers from the consent of the governed, --That whenever any Form of Government becomes destructive of these ends, it is the Right of the People to alter or to abolish it, and to institute new Government, laying its foundation on such principles and organizing its powers in such form, as to them shall seem most likely to effect their Safety and Happiness.


10:43 AM Display: Full / Chopped / Footer

Display: Full / Chopped / None

Display: Full / Footer / None

Display: Chopped / Footer / None

Thursday, March 03, 2005

TCS: Tech Central Station - Shut the Window, It's Getting Drafty TCS: Tech Central Station - Shut the Window, It's Getting Drafty

TCS: Tech Central Station - Shut the Window, It's Getting Drafty

The whole idea of a draftee military is stupid. Day before yesterday I was working at Keystone ski resort, and spent some time talking to some guys skiing in camo. As I knew, they were in the 10th SF group at Fort Carson. Along with rock climbing, etc., they have to be able to ski.

It is hard to reconcile the type of guys I met there with the draftees I remember from the Vietnam era. The trainer I talked to had already done two tours of Afghanistan, and they were getting ready to go back to the Middle East. Enthusiastically.

It was interesting watching the military way of teaching skiing. But these guys were, of course (being Special Forces) all very fit and intelligent. The result was that they learned very quickly. They had a week to qualify, and I think most probably were going to make it.

The other interesting thing I noticed was that some of them, in particular, the trainers, had the best gear available. Top of the line AT bindings and boots, etc. Telescoping poles. I lusted after their boots (though I already have that binding - about $400 retail). They are apparently moving up from the previous generation of AT gear, with the philosphy that they need the best (and, as apparently the only remaining Army unit that skiis, they are getting it).


8:53 AM Display: Full / Chopped / Footer

Display: Full / Chopped / None

Display: Full / Footer / None

Display: Chopped / Footer / None

Wednesday, March 02, 2005

Firefox Adblock infringement (Part 2) Firefox Adblock infringement (Part 2)

Stephen Middlebrook in cyberia-l suggests that : "What bugs me about a lot of this © analysis is that people dig down a little bit into the technology and then pronounce a conclusion. But they don't fully address the intricacies of the technology -- the analysis is often overly simplistic: ‘The data is temporarily stored in RAM so you've made a copy for © purposes.’ Or ‘viewing a web page with an ad blocker is a derivative work since you didn't view the whole thing.’"

He has a very good point. The more I did into the subject, the less it looks like a product like Adblock infringes the copyright of a web page developer.

So, as Mr. Middlebrook suggests, lets dig a little deeper.

The basis of Web pages is HyperText Markup Language (HTML). This is almost exclusively the language of the primary docments sent to your browser by Web servers for rendering for display on your screen. It is a text layout language that is supposed to provide guidance to the rendering machine about how to display the text embedded within it. I say "supposed to" because, as we shall see, there is a dynamic between your browser and HTML about how exactly the content is displayed.

HTML, as noted, is a layout language. It is composed of elements and text. An element is composed of a start tag, content, and an end tag. Tags are identified by being enclosed by "<" and ">" symbols. Most start tags are matched by end tags, which have a divide ("/") sign right after the "<". Right after the "<" for start tags, and the divide ("/") in the corresponding end tags, are the tag names, such as "EM" for emphasis. Thus, for example, the EM element has a start tag, <EM>, and an end tag, </EM>. The start and end tags surround the content of the EM element. The result is that the content within the EM element is emphasized. Thus the HTML element:
"</EM>This is emphasized text</EM>"

is rendered as:
This is emphasized text.

After the tag name in the start elements are often one or more attributes that apply to the element of the form:

HTML supports dozens of different element types, identified by their different tag names. One of the most obvious is the Anchor ("A") element, which provides the Hypertext links that are the basis for the World Wide Web (WWW or Web). Thus, if I wished to code a link to the Drudge Report, I could code:
"<A href='http://www.drudgereport.com/'>The Drudge Report</A>".
This would appear to you as
The Drudge Report.

Most of the dozens of HTML element types provide layout information guidance. But there are a couple that are especially relevant here. First, there are the "SCRIPT" elements. Scripts are segments of interpreted programming languages. By far, the most common is Javascript, but others, such as Java and VBScript are also typically supported. (do not confuse Javascript with Java – Javascript has intentionally been cripled for security reasons as to what it can do – in particular, with the exception of Cookies, it cannot write to your disk.)

Scripts are the major way in which HTML is dynamic. It is done is two ways. First, scripts generate HTML dynamically. Indeed, being a programmer, I use this feature routinely, for example, generating the HTML for large tables dynamically. Secondly, scripts interact with the Document Object Model (DOM), a set of dynamic objects that represent the HTML of the document(s) being displayed. Each element in the HTML will have a corresponding DOM object, composed of a number of properties (i.e. variables), arrays, collections (like arrays), and methods (i.e. script functions or procedures). At the highest level are WINDOW objects representing the windows (and frames) currently active in your browser. Right under the WINDOW objects are DOCUMENT objects representing the actual HTML documents. Note that WINDOW and DOCUMENT objects provide the properties and methods that provide many of the features that so annoy Web readers, such as pop-up windows.

The second type of element that is relevant here are those that bring in remote images and the like. The most notable is the "IMG" element which specifies an inline image. The "SRC" attribute provides the URI (the superset of references that includes URLs) of the image to be loaded. Different types of images are supported, most notably .gif images. In any case, the IMG element causes the corresponding image (typically a graphic image) to be displayed. Also relevant here, for similar reasons, are "OBJECT" and "IFRAME" elements that also can be utilized to display images, play movies, etc. In all these cases though, the remote image, movie, sound, is identified by its URI/URL through the corresponding elements’ "SRC" (IMG and IFRAME) or "DATA" (OBJECT) attributes.

But what must be remembered here is that HTML only provides rendering agents, such as Internet Explorer or Gecko (Mozilla, Netscape, Firefox) guidance as to how to display the HTML received from a Web server (or generated dynamically by a script). This is because rendering agents (and their browsers) attempt to match a user’s circumstances to the HTML being rendered. For example, different computers have different screens set at different resolutions. Also, some browsers are text only – and don’t support the display of inline images.

Also note that browsers provide a fair amount of control to users in how to display HTML through, in particular, preferences. Interestingly, IE and the Mozilla (Gecko) family provide somewhat different controls. For example, in Mozilla, you can specify your base fonts for Serif and Sans-Serif font families, as well as the base font size. Most of the rest of font display is then based on this. For example, BIG, SMALL, headings, etc. are typically a certain percentage bigger or smaller than the base font sizes. Thus, when you increase the base font size, you correspondingly increase all the other font controls. Web developers can try to override this by specifying actual font sizes for various elements, but then the browsers can be configured to ignore (or override) this.

Similarly, browsers can (and do) control which types of scripts can run, and what they can do. For example, Gecko allows pop-ups to be turned off (the version of IE I am running does not – which is why I run Mozilla, et al.). Simiarly, I have configured such to run Javascripts, but not Java. And you can configure Mozilla whether or not Javascript can: Move or resize windows; Raise or lower windows; Hide the status bar; Change the status bar text; Change images; or Disable or replace context menus.

As for images, Mozilla allows the user to select whether to: not accept any images; to accept images only from the originating server; or to accept all images. It also provides for a user to block all images from a particular site – in otherwords, a Black List of servers from which images will not be displayed. It should be noted that this functionality is provided for a number of reasons, one in particular is that images, esp., for example, movies, take a lot of bandwidth to download, and over a dial-up connection, the corresponding Web pages take all that much longer to download and display. Thus, when I do run dial-up (when, for example, I am traveling), I disable most images. The savings in download time can be significant.

So, you can think of the interaction between Web developers and browser users as this: The Web developers suggest (sometimes quite strongly) how they want their Web pages to be displayed. The browsers then use this as guidance in the display of the Web pages. But note, it is only guidance. As noted, the design of HTML was done this way for a reason – that the individual browser users were in a much better position to decide what works best in their circumstances than the Web developers. So, HTML was designed to provide guidance.

Now we get to Firefox’s Adblock. In view of the above, what it does is fairly simple. One of the problems with Mozilla’s Image Manager is that its Black List does not provide for wild card characters. Thus, blocking "T1.Ads.com" does not block "T2.Ads.com". Adblock expands on this, providing wild card characters. Thus, using Adblock, you can now block either by "*.Ads.com" or "T*.ads.com". Secondly, instead of having to supply the URL of the site whose images are to be blocked, you can now also utilize regular expressions. This is potentially a much more powerful tool, because it allows you, for example, to prevent ads from any site with a host name that includes the string "Ad". BUT, regular expressions are fairly hard, esp. for the non-computer geek, to utilize. I think most of us who have used them have spent hours debugging such, to find out that a single character was misplaced. As a result, I suspect that their use will be de minimis.

The result, as is obvious I think, is that Adblock provides a very minor improvement to the control provided to browser users in the display of remote images.

This entire discussion started as a question as to whether utilizing Adblock resulted in a derivative work, and thus potentially infringed the copyright of the Web developers who depend, at least to some extent, on revenues from advertisements potentially being blocked from display.

In answering this question, first note that Adblock, and the like, do not, in any way, modify the HTML generated by Web developers and downloaded to browsers for rendering. So, no derivative work is being created at that level.

But our analysis cannot end at that point, because copyright extends to the non-literal aspects of a work, and in the case of software, for example, to what is displayed. Similarly, copyright extends to some extent to the display of HTML pages. Thus, it is possible to infringe the copyright of a HTML page by reproducing its output, even if the actual HTML being utilized is different. In other words, you cannot get around the copyright on the HTML by simply duplicating the output with other HTML.

But here, the copyright question is not of different HTML generating the same display, but rather of the same HTML being rendered differently. And HTML by its very design is only guidance to browsers as to how to render a page. Thus, a rendering of a HTML document in which certain images are not displayed is not a derivative work simply because HTML only provides guidance to a browser, and the browser (and thus, the user) has ultimate responsibility in how the HTML is displayed the corresponding computer.

Labels: ,

9:18 AM Display: Full / Chopped / Footer

Display: Full / Chopped / None

Display: Full / Footer / None

Display: Chopped / Footer / None