Consistent, reliable support is what lots and lots of independent conslutants provide. If Microsoft ever did provide support, so many independent contractors would be out of a job that they'd persuade their clients to defect to open source en masse.
Remember that the big problem with the DMCA is the anti-circumvention provisions. The rest of it is relatively uncontroversial and in many respects welcome.
One of the actions of the DMCA was to make proxying legal for the first time. Previously it was legally the same as republishing. Now it's understood that you have to cache copies and resend them as part of the operation of the web. Repealing the DMCA would make proxying illegal again.
Another is that the DMCA made legal the temporary installation of copyrighted software for the purpose of maintenance. So thanks to the DMCA, if you have a legal copy of Norton Utilities, you're allowed to use it on someone else's machine to fix it so long as you delete the copy when you're done.
I heartily disagree. Judges cannot be expected to be experts on everything.
What indicates your lack of competency as a judge is refusal to take into account the opinions of those who do know. For example, a judge might not believe that code is expressive based on the opinion of a teenager from Norway, but when the likes of Andrew Appel and Dave Touretzky concur...
Because the issue won't go away until it is. This has nothing to do with logic, it's just reality.
If you like, think of it as hacking the political process. What we really need to do is to hold off bad legislation until digital fair use rights are so taken for granted, that the public won't stand for the big corporations trampling on them.
At the moment, the copyright industry is telling governments that legislation is needed. Telling them that legislation is not needed will not hold off the copyright industry for long enough, because it will just be your (i.e. small person) word against theirs (i.e. big business). Suggesting good legislation, and getting it passed, may do the trick.
So what would good legislation look like? If you don't think legislation is needed, it follows that good legislation should be redundant. Making explicitly illegal things which are already illegal. Making explicitly legal things which are already legal. Introducing new or different penalties for already illegal things.
Lawyers don't think like geeks. Unless the e-book cracking code was somehow important to its primary function, I don't think your argument would hold much coffee.
OTOH, decss and livid have a better argument. If the primary purpose is to enable you to back up your DVDs or play your DVDs (which, we assume, are both "fair use") then any hypothetical piracy uses they may have as a consequence of performing their primary function are not DMCA-infringing.
The same would go with an editing/creation program which allowed import of copyrighted material (e.g. an e-book editor). Its primary purpose is to create content and modify your created content. The fact that it may let you import and modify someone else's content is a side-effect.
I don't know about you, but I would have thought that selling, say, darkroom chemicals counts as making available material which is harmful to minors.
After going to such detail in explaining what they mean by porn later (and doesn't it make for fascinating reading), you'd think they'd be a bit more explicit here.
It's an interesting definitional problem as to what counts as "deep". My intuition (which may of course be faulty) suggests that a "deeper" algorithm is one that can be either used widely or extended to other areas. This would make merge sort "deeper" than quick sort and DMC or PPM "deeper" than L-Z compression.
Some more suggestions:
A* search.
The simplex method.
Aho's DFA state minimisation algorithm.
Risch integration.
Dijkstra's shortest path algorithm.
The "Graham scan" convex hull algorithm.
Deterministic linear-time selection.
Monte Carlo simulation. (Obligatory comment on patents held by td's employers deleted.)
The trouble with the one-combinator model is that it's not a supercombinator. The reduction rule of X introduces lambdas, which is of no practical use, since the whole point of using combinators to begin with is to remove the lambdas.
As far as I know, it has not (yet) been proven that you need at least two supercombinators to implement all of lambda calculus, nor has it been proven that you can do it with only one.
I don't know about the physical structure, but have a read of Simon Peyton-Jones' book The Implementation of Functional Programming Languages. There will be some references in the chapter on S-K combinators.
The most powerful language is the one that can interface easily to another language, allowing you to "change horses midstream" if the first language doesn't do it all for you.
Put another way, the set of most powerful languages are those that can be used together. Anything with a binding for CORBA, COM,.NET CLR or anything similar will do the job.
Why is it necessary to be flawless or timeless to be useful?
Excellent point. All the record companies need to do is hold off the CD copiers until such time as the artist has exhausted their fifteen minutes, by which time nobody will want to copy the CDs.
Seperate caching policies can be implemented with a unified cache as well.
True, but I wouldn't like to maintain or debug the code that does it.
The thing is, that on a desktop machine, the usage of disk cache can vary wildly. At one minute, the user might be running a disk-intensive program like a compiler, and the next moment they might be running a program that doesn't touch the disk, like a game or raytracer.
By "disk-intensive [...] like a compiler", I assume you're referring to VM performance. Correct me if I'm wrong (I may well be), but shouldn't pages written out to swap or read in from swap not hit the buffer cache at all? (They might if you're using a swap file rather than a dedicated swap device, of course.)
Games and raytracers aren't disk intensive only because they do their own caching, not relying on the OS to get policy right. Games can be several CDs in size, and are only managable because they're easily partitioned into levels.
Renderers (including raytracers) aren't so lucky. A Pixar-level scene may have up to 2Gb of gzipped geometric data and 10Gb of texture data, and you don't know in advance what's needed when. Needless to say, professional renderers spend a lot of lines of code managing cached data very carefully.
1) Lack of unified VM/buffer-cache. The size of the disk cache is fixed rather than dynamically adjusted depending on need.
I can see why you say this, but in practice I can't see this as a problem. The size of the disk cache is increased with the number of devices mounted. On the other hand, separate caches mean you can implement different buffer cache policies depending on the device. (You can imagine, for example, that flash memory could use a very different write-back policy than disk.)
Separation of mechanism and policy is something that pervades QNX, and is arguably the key to the flexibility of modern operating systems (compared with the inflexibility of monolithic systems). Even the QNX kernel, Neutrino, is actually a microkernel built on top of a nanokernel. The nanokernel implements mechanism, and the microkernel implements policy.
2) Lack of proper swapping. Since swapping kills embedded apps, RtP lacks good swapping. Use of swap has to be explicitly coded into the app, and was implemented as sort of a hack to allow gcc to be self-hosted.
It's not a hack, but I do think it's unfortunate that it's not "officially" supported. It would make more sense to:
Determine at boot or configure time whether you want swapping or not.
Assuming that swapping is enabled, applications which are granted I/O privileges get all their memory non-swapped. This is non-negotiable. (Why? Because if you have I/O privileges, you can install an interrupt handler. Your interrupt handler had better not access swapped-out memory.)
Again assuming that swapping is enabled, any other applications may selectively lock all or part of their memory. (This may require other privileges.)
3) Real-time scheduler. The hard-real time scheduler might be nice on an embedded system, but on a desktop system (where fairness takes a back seat to user-percieved responsiveness) it doesn't work well.
You really need a hybrid (and I don't mean RTLinux). Desktop systems need real-time. BeOS users can testify to this. Also, there are new applications such as serving streaming media and ATM routing which really need real-time. Even burning CDs really needs real-time to do properly.
Admittedly, you probably don't need to implement an ATM switch on your desktop machine, but you might on your server. Real-time scheduling might be a really good thing here.
4) Crappy disk subsystem. I don't know if this problem has been fixed in 6.2 (I doubt it) but RtP has a really slow disk system. The IDE drivers have issues and the filesystem is ancient.
That's true.
Re:I would prefer the other way around
on
Debian NetBSD
·
· Score: 2
Quite. Many of us use Linux despite the GNU userland, not because of it.
Apart from bash, that is. That beats [t]csh any day. The rest I can lose in favour of BSD.
There are several answers to that question. The short answer is that all of the states and territories have individually decided to make selling RC material illegal. All of the states have also decided to make selling X-rated film material illegal, but the ACT has not, and thanks to the interstate commerce clause, this means that you can't go down to your local shop and buy a porn video, but you can mail-order it from Canberra.
Most police forces don't bother acting unless the material is something like child porn, or somebody important has filed an official complaint.
Be careful, though. Not all of the DMCA is even controversial, such as the bit which makes using web proxies legal. Make sure that you specify the "anti-circumvention provisions".
Among others with PAC experience, you might want to talk to Bruce Perens. (The real one, that is.) This idea is somewhat aligned with the original intent behind the now-defunct technocrat.net.
Given that Solaris comes bundled with Sun hardware, the original question makes more sense. Dumping Solaris and installing Linux requires a conscious decision, time and effort, so you'd better be looking for a good reason to prefer Linux over Solaris before you do it.
OK, maybe that's true in the case of the Mona Lisa et al, but did you know that in most countries (it's true in Australia, possibly the US too) you must obtain authority of the publisher to perform basically anything written for the stage longer than 20 minutes long, regardless of when it was written, when copyright on the specific printed edition has not expired?
So if you want to perform an oratorio by Johann Sebastian Bach, you have to get permission and most likely pay royalties, even though J.S. Bach died in 1750, unless you can find a score which is over 70 years old. (Thanks to Sonny Bono et al, that would be 90 years in the US, if US law operates under the same rules for exercising the grand right.)
This has been true for years, BTW. Ask your local school music teacher about copyright some time.
I think you're confused about what "NP-hard" means.
An NP-hard problem is one that is intrinsically harder than those that can be solved by a nondeterministic Turing machine in polynomial time. An NP-complete problem is one that is both NP-hard and in NP.
The complexity (and hence slowness of development time, slowness of maintainability etc) of your software is equal to the complexity of the job that your program has to do minus the complexity of the stuff that you didn't have to write. If you need complex communication, using a simple IPC mechanism makes your program unnecessarily complex.
Furthermore, if that's all your OS provides (and I don't mean the kernel by this, I include stuff that comes bundled), then you risk code duplication as everyone implements their own complex IPC primitives.
Do wxWorks interrupt handlers disable all interrupts? How odd. QNX interrupt handlers only disable the interrupt that was invoked (hardware permitting) precisely so that higher-priority interrupts can still be delivered.
Of course, I don't know why you're not just using the interrupt handler to wake up a thread which does the real handling, like a lot of real-time systems encourage. Presumably you have a good reason which you could tell me but then you'd have to kill me.
Ericssson's language, Erlang, mixes garbage collection and realtime systems without a problem.
OK, admittedly a telephone exchange doesn't exactly have the same safety-critical problems as aircraft avionics or intensive care patient monitoring. Plus the Erlang GC system won't work for Java and remain real-time (it depends on each thread having a local heap so they can be GC'd separately). Still, it does show that the combination of real-time systems and garbage collection does work well, even outside academia.
Exactly. Indeed, the molecules, atoms and subatomic particles in the air, the poison, the box and the rest of the cat can act like "observers" to the events caused by the introduction of poison into the cat's anatomy, causing the wavefunction to collapse.
Consistent, reliable support is what lots and lots of independent conslutants provide. If Microsoft ever did provide support, so many independent contractors would be out of a job that they'd persuade their clients to defect to open source en masse.
Remember that the big problem with the DMCA is the anti-circumvention provisions. The rest of it is relatively uncontroversial and in many respects welcome.
One of the actions of the DMCA was to make proxying legal for the first time. Previously it was legally the same as republishing. Now it's understood that you have to cache copies and resend them as part of the operation of the web. Repealing the DMCA would make proxying illegal again.
Another is that the DMCA made legal the temporary installation of copyrighted software for the purpose of maintenance. So thanks to the DMCA, if you have a legal copy of Norton Utilities, you're allowed to use it on someone else's machine to fix it so long as you delete the copy when you're done.
All pretty good stuff, apart from chapter 12.
I heartily disagree. Judges cannot be expected to be experts on everything.
What indicates your lack of competency as a judge is refusal to take into account the opinions of those who do know. For example, a judge might not believe that code is expressive based on the opinion of a teenager from Norway, but when the likes of Andrew Appel and Dave Touretzky concur...
Because the issue won't go away until it is. This has nothing to do with logic, it's just reality.
If you like, think of it as hacking the political process. What we really need to do is to hold off bad legislation until digital fair use rights are so taken for granted, that the public won't stand for the big corporations trampling on them.
At the moment, the copyright industry is telling governments that legislation is needed. Telling them that legislation is not needed will not hold off the copyright industry for long enough, because it will just be your (i.e. small person) word against theirs (i.e. big business). Suggesting good legislation, and getting it passed, may do the trick.
So what would good legislation look like? If you don't think legislation is needed, it follows that good legislation should be redundant. Making explicitly illegal things which are already illegal. Making explicitly legal things which are already legal. Introducing new or different penalties for already illegal things.
Does that answer your question?
Lawyers don't think like geeks. Unless the e-book cracking code was somehow important to its primary function, I don't think your argument would hold much coffee.
OTOH, decss and livid have a better argument. If the primary purpose is to enable you to back up your DVDs or play your DVDs (which, we assume, are both "fair use") then any hypothetical piracy uses they may have as a consequence of performing their primary function are not DMCA-infringing.
The same would go with an editing/creation program which allowed import of copyrighted material (e.g. an e-book editor). Its primary purpose is to create content and modify your created content. The fact that it may let you import and modify someone else's content is a side-effect.
I don't know about you, but I would have thought that selling, say, darkroom chemicals counts as making available material which is harmful to minors.
After going to such detail in explaining what they mean by porn later (and doesn't it make for fascinating reading), you'd think they'd be a bit more explicit here.
It's an interesting definitional problem as to what counts as "deep". My intuition (which may of course be faulty) suggests that a "deeper" algorithm is one that can be either used widely or extended to other areas. This would make merge sort "deeper" than quick sort and DMC or PPM "deeper" than L-Z compression.
Some more suggestions:
The trouble with the one-combinator model is that it's not a supercombinator. The reduction rule of X introduces lambdas, which is of no practical use, since the whole point of using combinators to begin with is to remove the lambdas.
As far as I know, it has not (yet) been proven that you need at least two supercombinators to implement all of lambda calculus, nor has it been proven that you can do it with only one.
I don't know about the physical structure, but have a read of Simon Peyton-Jones' book The Implementation of Functional Programming Languages. There will be some references in the chapter on S-K combinators.
The most powerful language is the one that can interface easily to another language, allowing you to "change horses midstream" if the first language doesn't do it all for you.
Put another way, the set of most powerful languages are those that can be used together. Anything with a binding for CORBA, COM, .NET CLR or anything similar will do the job.
Excellent point. All the record companies need to do is hold off the CD copiers until such time as the artist has exhausted their fifteen minutes, by which time nobody will want to copy the CDs.
True, but I wouldn't like to maintain or debug the code that does it.
By "disk-intensive [...] like a compiler", I assume you're referring to VM performance. Correct me if I'm wrong (I may well be), but shouldn't pages written out to swap or read in from swap not hit the buffer cache at all? (They might if you're using a swap file rather than a dedicated swap device, of course.)
Games and raytracers aren't disk intensive only because they do their own caching, not relying on the OS to get policy right. Games can be several CDs in size, and are only managable because they're easily partitioned into levels.
Renderers (including raytracers) aren't so lucky. A Pixar-level scene may have up to 2Gb of gzipped geometric data and 10Gb of texture data, and you don't know in advance what's needed when. Needless to say, professional renderers spend a lot of lines of code managing cached data very carefully.
I disagree in part.
I can see why you say this, but in practice I can't see this as a problem. The size of the disk cache is increased with the number of devices mounted. On the other hand, separate caches mean you can implement different buffer cache policies depending on the device. (You can imagine, for example, that flash memory could use a very different write-back policy than disk.)
Separation of mechanism and policy is something that pervades QNX, and is arguably the key to the flexibility of modern operating systems (compared with the inflexibility of monolithic systems). Even the QNX kernel, Neutrino, is actually a microkernel built on top of a nanokernel. The nanokernel implements mechanism, and the microkernel implements policy.
It's not a hack, but I do think it's unfortunate that it's not "officially" supported. It would make more sense to:
You really need a hybrid (and I don't mean RTLinux). Desktop systems need real-time. BeOS users can testify to this. Also, there are new applications such as serving streaming media and ATM routing which really need real-time. Even burning CDs really needs real-time to do properly.
Admittedly, you probably don't need to implement an ATM switch on your desktop machine, but you might on your server. Real-time scheduling might be a really good thing here.
That's true.
Quite. Many of us use Linux despite the GNU userland, not because of it.
Apart from bash, that is. That beats [t]csh any day. The rest I can lose in favour of BSD.
There are several answers to that question. The short answer is that all of the states and territories have individually decided to make selling RC material illegal. All of the states have also decided to make selling X-rated film material illegal, but the ACT has not, and thanks to the interstate commerce clause, this means that you can't go down to your local shop and buy a porn video, but you can mail-order it from Canberra.
Most police forces don't bother acting unless the material is something like child porn, or somebody important has filed an official complaint.
Be careful, though. Not all of the DMCA is even controversial, such as the bit which makes using web proxies legal. Make sure that you specify the "anti-circumvention provisions".
Among others with PAC experience, you might want to talk to Bruce Perens. (The real one, that is.) This idea is somewhat aligned with the original intent behind the now-defunct technocrat.net.
Good luck.
Given that Solaris comes bundled with Sun hardware, the original question makes more sense. Dumping Solaris and installing Linux requires a conscious decision, time and effort, so you'd better be looking for a good reason to prefer Linux over Solaris before you do it.
That's what you think.
OK, maybe that's true in the case of the Mona Lisa et al, but did you know that in most countries (it's true in Australia, possibly the US too) you must obtain authority of the publisher to perform basically anything written for the stage longer than 20 minutes long, regardless of when it was written, when copyright on the specific printed edition has not expired?
So if you want to perform an oratorio by Johann Sebastian Bach, you have to get permission and most likely pay royalties, even though J.S. Bach died in 1750, unless you can find a score which is over 70 years old. (Thanks to Sonny Bono et al, that would be 90 years in the US, if US law operates under the same rules for exercising the grand right.)
This has been true for years, BTW. Ask your local school music teacher about copyright some time.
According to Microsoft...
I'm convinced!
I think you're confused about what "NP-hard" means.
An NP-hard problem is one that is intrinsically harder than those that can be solved by a nondeterministic Turing machine in polynomial time. An NP-complete problem is one that is both NP-hard and in NP.
The complexity (and hence slowness of development time, slowness of maintainability etc) of your software is equal to the complexity of the job that your program has to do minus the complexity of the stuff that you didn't have to write. If you need complex communication, using a simple IPC mechanism makes your program unnecessarily complex.
Furthermore, if that's all your OS provides (and I don't mean the kernel by this, I include stuff that comes bundled), then you risk code duplication as everyone implements their own complex IPC primitives.
Do wxWorks interrupt handlers disable all interrupts? How odd. QNX interrupt handlers only disable the interrupt that was invoked (hardware permitting) precisely so that higher-priority interrupts can still be delivered.
Of course, I don't know why you're not just using the interrupt handler to wake up a thread which does the real handling, like a lot of real-time systems encourage. Presumably you have a good reason which you could tell me but then you'd have to kill me.
Ericssson's language, Erlang, mixes garbage collection and realtime systems without a problem.
OK, admittedly a telephone exchange doesn't exactly have the same safety-critical problems as aircraft avionics or intensive care patient monitoring. Plus the Erlang GC system won't work for Java and remain real-time (it depends on each thread having a local heap so they can be GC'd separately). Still, it does show that the combination of real-time systems and garbage collection does work well, even outside academia.
Exactly. Indeed, the molecules, atoms and subatomic particles in the air, the poison, the box and the rest of the cat can act like "observers" to the events caused by the introduction of poison into the cat's anatomy, causing the wavefunction to collapse.