You're correct about the Right of First Sale. It's enumerated in 17 USC 109:
Notwithstanding the provisions of section 106(3), the owner of a particular copy or phonorecord lawfully made under this title, or any person authorized by such owner, is entitled, without the authority of the copyright owner, to sell or otherwise dispose of the possession of that copy or phonorecord.
However...you're incorrect here:
The courts have ruled that mere possession of the physical medium does not imply license to use, as does the possession of a book or musical recording, because to make use of the digital data it must be copied into memory first and that copying is covered under copyright law as restricted. Thus you need a license to copy that which you have already purchased for use.
17USC117(a)(1) specifically exempts copies made as a necessary part of using it:
Notwithstanding the provisions of section 106, it is not an infringement for the owner of a copy of a computer program to make or authorize the making of another copy or adaptation of that computer program provided that such a new copy or adaptation is created as an essential step in the utilization of the computer program in conjunction with a machine and that it is used in no other manner
One the police have "reasonable grounds", they can step up to the next level....[and]they have evidence that you have corresponded with other suspects ("exactly why did you send Mohammed bin Mohammed a picture of your kitten a day before al-Queda hijacked that airliner?") and suddenly your steganographic sK1Lz aren't worth so much.
Yes, but that's traffic analysis: the mere fact of communication provides intelligence. The wise steganographer merely posts his steganographic images to USENET or somewhere similar. You partner-in-crime just needs to know that he should be sucking down all the posts of Racquel Darrien from abpe.pornstars and check them for messages.
If you can't demonstrate direct communication, it's hard to get probable cause for looking any further.
I've heard that a sizeable chunk of the images posted on USENET appear to contain stego information.
As an attorney, I'd much rather apply an outdated law to a contemporary situation and rely on the good sense of a judge or jury than...
In what way is the junk fax law (47 USC 227) "outdated"?
Despite the fact that it has been law for mroe than 10 years, we still get a lot of junk fax.
And junk faxes are exactly analogous to unsolicited commercial email. Junk faxes, like their spam kin, place the burden of cost on the recipient. In the case of faxes, the cost is a proportionate share of the cost of the phone line, plus fax paper and/or toner, plus depreciation on the faxe machine; in the case of spam, the cost is the network bandwidth consumed.
47 USC 227 is well-proven law. As it happens, its definition of 'telephone facsimile machine' meets any computer connected to the public telephone network -- Dialup or DSL access to the 'net should meet the definition (you might be OOL if you're connected via cable modem or leased line).
And given that spam differs significantly neither in form nor function from junk faxes, it's not a huge stretch to extend 47 USC 227 through the common law (precedent).
void *foo defines foo as a pointer to void; void (*foo)() defines foo as a pointer to a function (of unknown arity) returning void.
These are stupid interview questions. Trying to trip people up with obscurity is silly and accomplishes nothing except to inflate your own ego.
What does knowing or not knowing the intricacies of a programming languages have to do with programming -- which is largely done by people and in English. It the analysis and problem solving skills that are hard to come by. Not the programming language skills.
"source depot" is Microsoft's in-house source code control system that predates Microsoft's purchase of SourceSafe. It makes VSS look like a sleek elegant tool. I can't believe the the W2k crew is using it over VSS. Microsoft pretty much mandated that everybody migrate to VSS.
...Software needs to adopt standards, and the open source community has been vital to that process.
Given Microsoft's track record in this area, I think the best outcome now is for the judge to force MS to abide by standards for all present and future networking protocols. If a networked feature of MS software does not employ a documented RFC, W3C recommendation, etc. it must be fixed...
Actually making them abide by standard networking protocols wouldn't break the monopoly or undo the harm done by their illegal behaviour (both are required objectives of the punishment for any anti-trust conviction.)
The Right Thing To Do
The proper punishment for Micro$oft is simply to require M$ to publish the format of M$ Office documents (Word, Excel, etc.) -- in essence, make them an ISO/ANSI standard. No changes to the format w/o advance publishing of the changes.
Office is what drives the M$ monopoly. There are two things that provide the lock-in for M$:
Windows only software. There's an awful lot of custom software built for windows in corporations and it would cost a huge amount for a company to toss it and re-write it.
Data. More important than the software is the amount and value of the data and expertise bound up in M$ Office documents, especially in Word and Excel documents. This information, locked in M$ Office documents with proprietary and undocumented formats, is pretty much tied to M$ apps. And the value of this data is orders of magnitude higher than that of the software written for windows. This is what really provides M$ with the lock-in.
People (eg, Sun Office, etc.) have done an admirable job of cracking it, but they have to do it in a reactive manner: M$ can simply change document formats faster than others can incorporate the changes after the fact.
Publishing the format and prohibiting changes w/o advance publishing of the changes makes it possible for real alternatives to Office to emerge and be viable (both free and not-free). And with alternatives available on other OSen, it becomes possible for a company to move away from Windows.
This is more politically viable solution than others (publishing source code, etc.) since all M$ is required to do is to return to its userbase ownership of their own data.
To quote Richard Stallman, "Information wants to be free."
The more information you have about your readership, the more you can target advertising. And a highly targeted small audience for an ad is worth a whole lot more than a large untargeted audience to an advertiser because the response rate is that much higher.
I was involved in a project using Stellent (when it was Intranet Solutions' Xpedio).
Run -- don't walk -- away from this dog.
It's far too complicated for its own good. It's ugly. About the only selling point that I could see -- and it's a dubious one -- was its ability to use Office (Word, Excel) as content editors. Documents would be created with custom style sheets and and the import process would transform the applied styles into HMTL.
It's not worth it.
Another Option
If you're considering the high priced spread, you might want to consider Eprise.
Eprise is pretty sleekly done. All the content is in an RDBMS. the display layer is isolated from the content. Security and workflow are built-in (you need to model it to suit -- both can be as complex as you like.) Version control is built-in as well.
Access can be constrained down to the element level on the page -- users of different classes may see different content on the same page. If you have edit authority, you may even see a 'edit this page' button on the page itself (or an 'add new page like this' button).
Content is dynamically gen'd from the DB on request, so once a change makes it through workflow and is approved/published, it is instantly available.
In summary, I liked Eprise. It's biggest shortcoming is the model is awfully complex -- there's a steep learning curve. You'll need to hire the Eprise consultants to help get it set up and take the Eprise training classes. Once set up, though, the complexity is hidden from ordinary users (eg, content managers/editor). It's only complex if your's developing/configuring your Eprise application itself.
Disclaimer: I've got no interest in either of these products -- good, bad or ulgy -- except as a user.
Nobody has mentions lex/yacc, flex/bison or other lexical analyzer/compiler generators because that's not what he asked for. He wanted resources about parsing and the theory behind it. Of course, it begs the question: how can you get through a university CS cirriculum and not learn this stuff? Or even how to use the university library's catalog and find the information. It's not as if its difficult to find this stuff.
Well...the Dragon book for starters, as mentioned earlier. That's probably the ur-source for most of the theory behind the magic. Makes my head hurt, though.
Some languages do enforce 'good' code (for some definition of good code). Haskell and/or Ada aren't one of them, though.
What really helps enforce quality code is Bertrand Meyers' design by contract, implemented elegantly and simply in the language Eiffel http://www.eiffel.com. You can read more about what I'm discussing in Betrand Meyer's seminal book, Object-Oriented Software Construction (1250+ pages, $US 80). If you do any kind of software development, it should be required reading. It's that good.
In a nutshell, design by contract calls for the formal and precise specification of and the enforcement of object/method behaviour in the executable source code itself. These are the mechanisms:
preconditions. A precondition is a rule defining what constitutes valid state when the method is invoked (e.g., The parameter passed in to the called method must be non-null and fall within the domain 3,5,7 or 9.) The caller (client) warrants that all preconditions are true when the method is invoked
postconditions. A postcondition is similar to a precondition: it is a rule defining valid state following execution of the method (e.g., The value returned by the method will be non-null and a positive integer between 500 and 1000 inclusive.) The supplier (called method) warrants that all postconditions are true on return from the method.
invariant.An invariant is a rule asserting that the stated condition will be true at all times during the execution of the method (e.g., At no point during the execution of the method will the internal stack pointer belonging to the method exceed the stack size.) The supplier warrants that all invariants will hold true during method execution.
A violation of the contract is an immediate and fatal exception, at compile time if it can be trapped there or, if it can't caught by the compiler, at runtime (unless trapped of course. Eiffel has unique and high-quality exception handling.)
It gets better, though. Eiffel enforces subcontracts -- subcontractors (subclasses) are, within limits, bound by the original contract as well.)
Think of this as assertions on steroids.
the biggest problem with PDAs is input speed. Grafitti and/or actuall handwriting recognition is too slow. If PDAs accepted Gregg Shorthand -- designed for writing at high speed, life would be good.
The question was asked, "[is] using z/OS is still like 'kicking a dead whale down the beach?'"
Probably not...OS/390 has been for a couple of years now Posix 4 compliant. That's one short certification step away from being a branded Unix.
Perl even builds out-of-the-box on OS/390. Well...you do have to configure config.h, but since OS/390 supports standard shells (eg, sh/ksh), that's a straightforward operation.
Completely unrelated, but why can't there be some kind of defacto standard syntax for assembler? My program have to compile in tasm so it seems that I can not use gas (the assembler backend to gcc). Any decent linux assemblers out there that support tasm syntax?
There is a defacto syntax for assembler. it's called "C".
The system does have redundancy in it. Every commercial airliner flying carries a sextant, chronometer and sight reduction tables. The navigator can always take a sun shot or a moon shot.
One of the rules of navigation, either marine or aviation, is that you always carry multiple, different means of navigation, if for no other purpose than to cross check and verify what the one system is saying against the other.
Err..reducing Selective Availability (SA) from GPS/NavStar's Standard Positioning Service (SPS), which is what us non-military types get, does not remove encryption from the system. The Military uses the Precise Positioning Service (PPS), which requires special crypto-enabled receivers and which has its own specs WRT accuracy, reliability, etc.
Removal of SA simply removed the Control Segment errors deliberately introduced by the GPS NavStart control station in Colorado Springs, bringing the accuracy down to ~22m horizontally. Some yo-yo in Colorado Springs can still, either accidently or on purpose, inject a control segment error of any size in the system: that is by design.
Also, don't forget that GPS accuracy varies directly with latitude -- important for airplanes travelling over the pole or close to it on the way to Europe.
Of course "the entire world attempting to use
the same namespace (.com) is not working" -- DNS
is *not* designed to be flat. DNS is intended to
be hierarchical to simplify administration and
enlarge the namespace.
You're correct about the Right of First Sale. It's enumerated in 17 USC 109:
However...you're incorrect here:
17USC117(a)(1) specifically exempts copies made as a necessary part of using it:
In what way is the junk fax law (47 USC 227) "outdated"?
Despite the fact that it has been law for mroe than 10 years, we still get a lot of junk fax.
And junk faxes are exactly analogous to unsolicited commercial email. Junk faxes, like their spam kin, place the burden of cost on the recipient. In the case of faxes, the cost is a proportionate share of the cost of the phone line, plus fax paper and/or toner, plus depreciation on the faxe machine; in the case of spam, the cost is the network bandwidth consumed.
47 USC 227 is well-proven law. As it happens, its definition of 'telephone facsimile machine' meets any computer connected to the public telephone network -- Dialup or DSL access to the 'net should meet the definition (you might be OOL if you're connected via cable modem or leased line).
And given that spam differs significantly neither in form nor function from junk faxes, it's not a huge stretch to extend 47 USC 227 through the common law (precedent).
You should ask difficult questions.
void *foo defines foo as a pointer to void; void (*foo)() defines foo as a pointer to a function (of unknown arity) returning void.
These are stupid interview questions. Trying to trip people up with obscurity is silly and accomplishes nothing except to inflate your own ego.
What does knowing or not knowing the intricacies of a programming languages have to do with programming -- which is largely done by people and in English. It the analysis and problem solving skills that are hard to come by. Not the programming language skills.
What do you mean? perforce was specifically designed to perform well over wide area networks. That's why there's a daemon lurking on the server.
"source depot" is Microsoft's in-house source code control system that predates Microsoft's purchase of SourceSafe. It makes VSS look like a sleek elegant tool. I can't believe the the W2k crew is using it over VSS. Microsoft pretty much mandated that everybody migrate to VSS.
Actually making them abide by standard networking protocols wouldn't break the monopoly or undo the harm done by their illegal behaviour (both are required objectives of the punishment for any anti-trust conviction.)
The Right Thing To Do
The proper punishment for Micro$oft is simply to require M$ to publish the format of M$ Office documents (Word, Excel, etc.) -- in essence, make them an ISO/ANSI standard. No changes to the format w/o advance publishing of the changes.
Office is what drives the M$ monopoly. There are two things that provide the lock-in for M$:
People (eg, Sun Office, etc.) have done an admirable job of cracking it, but they have to do it in a reactive manner: M$ can simply change document formats faster than others can incorporate the changes after the fact.
Publishing the format and prohibiting changes w/o advance publishing of the changes makes it possible for real alternatives to Office to emerge and be viable (both free and not-free). And with alternatives available on other OSen, it becomes possible for a company to move away from Windows.
This is more politically viable solution than others (publishing source code, etc.) since all M$ is required to do is to return to its userbase ownership of their own data.
To quote Richard Stallman, "Information wants to be free."
It's all about advertising.
The more information you have about your readership, the more you can target advertising. And a highly targeted small audience for an ad is worth a whole lot more than a large untargeted audience to an advertiser because the response rate is that much higher.
Stellent
I was involved in a project using Stellent (when it was Intranet Solutions' Xpedio).
Run -- don't walk -- away from this dog.
It's far too complicated for its own good. It's ugly. About the only selling point that I could see -- and it's a dubious one -- was its ability to use Office (Word, Excel) as content editors. Documents would be created with custom style sheets and and the import process would transform the applied styles into HMTL.
It's not worth it.
Another Option
If you're considering the high priced spread, you might want to consider Eprise.
Eprise is pretty sleekly done. All the content is in an RDBMS. the display layer is isolated from the content. Security and workflow are built-in (you need to model it to suit -- both can be as complex as you like.) Version control is built-in as well.
Access can be constrained down to the element level on the page -- users of different classes may see different content on the same page. If you have edit authority, you may even see a 'edit this page' button on the page itself (or an 'add new page like this' button).
Content is dynamically gen'd from the DB on request, so once a change makes it through workflow and is approved/published, it is instantly available.
In summary, I liked Eprise. It's biggest shortcoming is the model is awfully complex -- there's a steep learning curve. You'll need to hire the Eprise consultants to help get it set up and take the Eprise training classes. Once set up, though, the complexity is hidden from ordinary users (eg, content managers/editor). It's only complex if your's developing/configuring your Eprise application itself.
Disclaimer: I've got no interest in either of these products -- good, bad or ulgy -- except as a user.
Nobody has mentions lex/yacc, flex/bison or other lexical analyzer/compiler generators because that's not what he asked for. He wanted resources about parsing and the theory behind it. Of course, it begs the question: how can you get through a university CS cirriculum and not learn this stuff? Or even how to use the university library's catalog and find the information. It's not as if its difficult to find this stuff.
Well...the Dragon book for starters, as mentioned earlier. That's probably the ur-source for most of the theory behind the magic. Makes my head hurt, though.
Terence Parr's book, Practical Computer Language Recognition and Translation (out of print). His doctoral dissertation is a useful thing too (try the Purdue University library).
comp.compilers is another useful resource. It's archived at http://compilers.iecc.com.
Alan Holub's Compiler Design in C is a classic.
The ACM's SIGPLAN ("Special Interest Group On Programming Languages") and it's journal SIGPLAN Notices of the ACM are all fine resources. So is ACM Transactions on Programming Languages and Systems.
Don't forget the IEEE as well.
Not to mention Abelman and Sussman: Structure and Interpretation of Computer Programs.
The garbage collection page is a good source for information on memory management and garbage collection.
Your university's library is another good resource.
Well. That should keep you out of trouble.
- preconditions. A precondition is a rule defining what constitutes valid state when the method is invoked (e.g., The parameter passed in to the called method must be non-null and fall within the domain 3,5,7 or 9.) The caller (client) warrants that all preconditions are true when the method is invoked
- postconditions. A postcondition is similar to a precondition: it is a rule defining valid state following execution of the method (e.g., The value returned by the method will be non-null and a positive integer between 500 and 1000 inclusive.) The supplier (called method) warrants that all postconditions are true on return from the method.
- invariant.An invariant is a rule asserting that the stated condition will be true at all times during the execution of the method (e.g., At no point during the execution of the method will the internal stack pointer belonging to the method exceed the stack size.) The supplier warrants that all invariants will hold true during method execution.
A violation of the contract is an immediate and fatal exception, at compile time if it can be trapped there or, if it can't caught by the compiler, at runtime (unless trapped of course. Eiffel has unique and high-quality exception handling.) It gets better, though. Eiffel enforces subcontracts -- subcontractors (subclasses) are, within limits, bound by the original contract as well.) Think of this as assertions on steroids.the biggest problem with PDAs is input speed. Grafitti and/or actuall handwriting recognition is too slow. If PDAs accepted Gregg Shorthand -- designed for writing at high speed, life would be good.
The question was asked, "[is] using z/OS is still like 'kicking a dead whale down the beach?'"
Probably not...OS/390 has been for a couple of years now Posix 4 compliant. That's one short certification step away from being a branded Unix.
Perl even builds out-of-the-box on OS/390. Well...you do have to configure config.h, but since OS/390 supports standard shells (eg, sh/ksh), that's a straightforward operation.
There is a defacto syntax for assembler. it's called "C".
The system does have redundancy in it. Every commercial airliner flying carries a sextant, chronometer and sight reduction tables. The navigator can always take a sun shot or a moon shot.
One of the rules of navigation, either marine or aviation, is that you always carry multiple, different means of navigation, if for no other purpose than to cross check and verify what the one system is saying against the other.
Err..reducing Selective Availability (SA) from GPS/NavStar's Standard Positioning Service (SPS), which is what us non-military types get, does not remove encryption from the system. The Military uses the Precise Positioning Service (PPS), which requires special crypto-enabled receivers and which has its own specs WRT accuracy, reliability, etc.
We-un's don't get to play with that.
Suggest taking a look at the USCG GPS home page (http://www.navcen.uscg.mil/gps/default.htm), or the GPS signal spec (http://www.navcen.uscg.mil/pubs/gps/sigspec/defau lt.htm) for more information (than you want!) Specifically, the annexes contain specs for reliability and accuracy.
Removal of SA simply removed the Control Segment errors deliberately introduced by the GPS NavStart control station in Colorado Springs, bringing the accuracy down to ~22m horizontally. Some yo-yo in Colorado Springs can still, either accidently or on purpose, inject a control segment error of any size in the system: that is by design.
Also, don't forget that GPS accuracy varies directly with latitude -- important for airplanes travelling over the pole or close to it on the way to Europe.
Of course "the entire world attempting to use
the same namespace (.com) is not working" -- DNS
is *not* designed to be flat. DNS is intended to
be hierarchical to simplify administration and
enlarge the namespace.