<D <M <Y
Y> M> D>

http://www.ed.gov/pubs/RegPrivSchl/nebraska.html:

Private, denominational, and parochial schools, K-5, must devote at least one hour per week for stories of American history and American heroes, singing patriotic songs and memorization of the Star Spangled Banner and America and the development of reverence for the flag and proper conduct in its presentation. In 2 grades from grades 5-8, private, denominational, and parochial schools must devote at least 3 periods per week for American history from approved textbooks, taught to make the course interesting and attractive, and to develop a love of country. In at least 2 grades of every high school, 3 periods per week must be devoted to civics, including the constitutions of the United States and Nebraska, the benefits and advantages of our form of government, the dangers and fallacies of Nazism, communism, and similar ideologies, and the duties of citizenship. Appropriate patriotic exercises must be held for Lincoln's birthday, Washington's birthday, Flag Day, Memorial Day, and Veteran's Day. Nebraska requires that all of these history courses stress contributions of all ethnic groups in the growth of America, art music, education, medicine, literature, science, politics, government and war service. Neb. Rev. Stat. § 79-724

[...]

Private, parochial and denominational school teachers must give special emphasis in their instruction to common honesty, morality, courtesy, obedience to law, respect for the national flag, the Constitution of the United States, and the Constitution of Nebraska, respect for parents and the home, the dignity and necessity of honest labor, and other lessons which promote an upright and desirable citizenry. Neb. Rev. Stat. § 79-725.

(Although you might not have realized it, many states impose requirements much like these on public schools. Fairly few apply them to private schools as well.)

Confusingly, if you hear a radio engineer talking about DRM, it might be Digital Radio Mondiale, a standard for digital AM radio.

Schneier's Crypto-Gram is getting flagged as spam by Razor. The reason is that some spam-detecting software will try to automatically detect spam and then automatically report it. So somebody's SpamAssassin mistakenly concludes that a copy of Crypto-Gram is spam and reports it to Razor, and this happens a few times over; now everyone who uses Razor will automatically be advised that Razor considers Crypto-Gram to be spam!

This is also happening to the EFFector. I'm really concerned that opt-in announcement mailing lists are not surviving the widespread and somewhat careless use of spam filtering tools. As soon as just a few people mistakenly think that a legitimate announcement is spam, thousands of other people are going to have their software's behavior reflect that incorrect judgment.

Anyway, after cryptographers eat their Heavenly Hash ice cream, they get those Bit Commitment Blues.

Graydon and some other people are having a discussion on Advogato about formal methods.

Graydon writes:

a proof, on the other hand, is another formal object in a much larger "space" (a linguistic space in which machine state spaces, and some parts of your preferred maths or logics are basic terms). the sort of proof you are interested in is one which relates your program's text residing in memory at one point, to a (good or bad) region of machine state space which is implied by the program, via a logic whose rules you like.

any test can be translated into a proof in a silly logic easily: the proof is simply the trace of your processor executing your program's code on your test's input, and the logic is one in which each machine transition that happened is an axiom. but that proof is boring.

an interesting proof is one which is much smaller, when written down, than the sum of all the tests which you would need to write to fill the machine state space bounded by the proof. in this sense, I really believe Chaitin is onto something when he talks about proofs as nothing more than a form of "higher order data compression", and the value of a given formal system as the amount of compression it commonly admits over interesting data.

so, getting back to mbp's comment, certainly you can produce a very large set of (formal) bugs which nobody's compressed inside a proof yet, for any program you care to mention. but I do not think this means that all, or even a sizeable majority of those bugs will admit "no further compression" if the author puts their mind to it.

raph's suggestion that we design programs "the way we'd want to prove things about them" is, seen in this light, a suggestion that we design programs "in a way which admits a lot of compression".

Recently, I linked to a document about software-defined radio and security. John Gilmore's criticism of the same made it to the IP list.

Having a whole generation of young people grow up full of knowledge about engineering, computers, and networking is a wonderful advance in the state of humanity. The authors of the paper apparently see it as a drawback, since they depend on their customers being ignorant.

Marc Perkel has some nice Share-in pictures (see also the second and the third set of these). I show up in some of them, and they seem to capture the atmosphere pretty nicely.

Lots of people have written self-reproducing programs -- programs which print themselves out when run -- in various languages. (These programs are often called quines.) I wrote a quine in Python before I knew how to program in Python, and I also wrote a quine in Scheme which works in LISP and turns out to be identical to a pretty well-known LISP quine.

Most quines are based on the approach which is used in Ken Thompson's Reflections on Trusting Trust. That is, they define a blueprint which contains a blank space and then print out the blueprint, substituting the blueprint itself for the blank space.

The C version looks kind of like this:

int main(){char *Q="int main(){char *Q=%c%s%c;printf(Q,34,Q,34);}";printf(Q,34,Q,34);}

(That might not be Thompson's version exactly; I wrote it by porting a Python quine based on Thompson's original C quine back into C. Here the "blank space" is the printf escape sequence "%c%s%c" and the "blueprint" is the string Q.)

The approach of the Scheme quine is slightly different, but seems closely analogous: it's kind of

print-followed-by-itself-in-quotes "print-followed-by-itself-in-quotes"

although the "print-followed-by-itself-in-quotes" is actually written out explicitly as (lambda (x) (list x (list (quote quote) x))).

One English equivalent might be

Say twice "Say twice".

Hofstadter discusses some English parallels (a variety of self-reproducing and "self-documenting" sentences) in Metamagical Themas.

My challenge is this: Can you write a quine in the computer language of your choice which does not use the approaches described above?

As promised, this is a sed script to try to collapse Unix paths by eliminating "." and ".." and "//". (For example, we can turn "/foo/../bar" into "/foo/bar".) See if you can improve it at all. I hadn't known about the sed command "t" (or, indeed, pretty much any sed command other than "s"), and it certainly helped save me from a few traps.

:start;

# /../ --> /
s:^/\.\./:/:; t start;

# /.. -> /
s:^/\.\.$:/:;

# roughly foo/bar/../baz --> foo/baz  plus other cases
s:[^/]\+/\.\./\?::; t start;

# roughly foo/bar/./baz --> foo/bar/baz  plus other cases
s:/\.$:/:; s:/\./:/:; t start;

# // --> /
s://\+:/:g; t start

If this stands up to careful testing, we might put it into gar to prevent problems where some programs compiled under gar expect to be installed in "//bin" and the like. (If you have a nightly build of LNX-BBC, you can see this problem by doing "strings /bin/* /usr/bin/* | grep //".)

A great restaurant in the Mission is Minako Organic Japanese at 2154 Mission. They have a lot of vegetarian Japanese food, and it's really, really good. Praveen had a birthday party there which turned out to be an immense feast (not to be confused with an immense Fthà).

Why does the private sector consider "cyber-" kind of quaint and overused and retro but the government still continue to use it all over the place? They are referring to the Internet as "cyberspace", and they are using coinages like "cybercrime" which used to be the stuff of mainly somewhat sensationalistic journalism. Has anybody else noticed this?

There are lots and lots of them, but happy birthday at least to Biella, Praveen, and Wolfgang.

At the Share-in, I talked with Fred for a while and tried to understand the intricacies of U.S. copyright law in its application to musical works.

Below is my current understanding, but any errors in it are mine and not Fred's! I'm pretty sure I've made some mistakes in this.

The complexity begins with the fact that there are two separate copyrights associated with much recorded music -- a copyright in the composition and a copyright in the recording.

For any given copyright, there are several different rights which copyright law grants to the holder of that particular copyright. (Frequently, the holder of the copyright in a composition will not be the same as the holder of the copyright in a recording of that composition.) The rights reserved by law to copyright holders include a right of reproduction (copying) and a right of public performance (playing or performing in public), among others.

So, to start off:

<D <M <Y
Y> M> D>

[Main]
Support Bloggers' Rights!
Support Bloggers' Rights!


Contact: Seth David Schoen