I think the idea of cap and trade is that we need to drasticly cut emissions. The problem is it is hard to come up with a fair way for requiring all of the major polluters to cut emissions. The hope with "cap and trade" it that the free market can be used to fine-tune the original political decisions. If one major emitter finds it is prohibitively expensive to cut emissions because they are actually increasing production, they can buy credits on the carbon market. The hope is that industries with little growth may be able to accelerate equipment upgrades with funds from those industries growing faster than equipment upgrades help.
Of course, until every major government implements strong carbon caps, the carbon market is a shell game. Currently here in Canada they are still talking about "intensity-based targets"; that is to say: carbon releases are allowed to increase as long as there is economic growth. There is also the issue of using hard-to-measure things as "carbon sinks" such as forests. If a framer has a small forest they are being paid credits for; are the expected to pay back all that money if the forest burns down, releasing a lot of carbon?
I worry that ISPs may start blocking IPV6 in order to start selling IPv4 addresses at a steep premium.
I know such a move would be self-defeating, but where are you going to go? In my local province (Alberta Canada) the "public-private-Partnership" Supernet is phasing out layer 2 links in favour of layer 3 links using IPv4.
I am sure that once people move to IPv6, all of the restrictions currently on IPv4 will follow: want a "static" network portion? that will cost. Want a/56 network portion? That will cost too. Want to use a Tunnel-Broker? sorry, you are not allowed. Want to host a server on a residential connection? Not allowed. Want to rent space from a webhost? Your website must look like a "normal" website.
The effect on the amount of money in the hands of the average citizen is unchanged by a different tax structure that pulls the same amount out of the economy.
I suppose the implicit argument is that if you tax corporations, the citizens will pay more for goods and services. This ignores that fact that many corporations may sell their goods overseas. It also ignores that fact the tax revenue allows government to provide its own goods and services, often in the form of infrastructure that is a natural monopoly anyway.
Facebook has now reached so much critical mass that third-parties are advertising the service in their Advertising. That doesn't strike you as a little weird? "See, we're hip! We're on Facebook!"
The alternatives such as browser games, e-mail, IRC, and personal websites are a lot more distributed. As a result, people have a lot more control over their data.
I no longer consider Windows PCs open systems. Windows NT 6.x builds DRM deep into the system. Certain hardware such as video cards are required to implement undocumented features for Windows certification. This is done to facilitate the "protected path" for Blu-ray playback.
The Windows 7 EULA prohibits you from installing software that would add functionality to the system.
The reason "Linux gaming is still a sad affair, even with Wine" is because the hardware is undocumented. Without documented hardware, it is nearly impossible to write good drivers for that hardware. Wine sucks for games (aside form hardware issues) because of DRM. Currently, the Wine developers have a policy of not "patching out" the DRM on malware-infested games.
Digital Restrictions Management is a problem for Windows too. You can not install AAA titles on a computer you use for business because you can not install games under a separate limited user account. The DRM requires Administrative access: one of the reasons UAC was introduced. Why Microsoft didn't copy Apple in their MacOS9->X transition, I don't know. I suspect it is because they are hoping to make their money on DRM systems in the future.
My local newspaper is now doing "Facebook exclusive" letters to the editor. It is not clear if I can send a letter to the Editor and opt out of having it posted on Facebook.
I thought CRTC 2009-657 was bad, allowing Bell to charge resellers $1/GB over 300GB: per customer. Most webhosts in Canada charge $3/GB or less; and even that is expensive. It appear bandwidth is getting more expensive, not less expensive in Canada.
After that decision, I priced using Avian carriers for high bandwidth, high latency connections:
About 10 cents per GB.km; cost increments by whole Gigabytes, minimum distance 10km.
Moving 100 GB down the Edmonton-Calgary corridor would cost ~$3000.
Parcel rates would be costed on a per flight.km basis (So you can save using your own USB key).
The difficulty is that the pigeons would require couriers to move them to their starting points. If the data is really not time-sensitive, why not use a courier to start with?
Another concern is that for long distances, fibre-optic may be cheaper; even at the inflated rates.
I seem to remember old Programmable ROM chips used "fuse wires" to store the data.
I don't see why you would need temperature constraints if used such technology. You can then burn a fuse in the write path to prevent tampering.
If I was designing such a thing, I would also run, not walk from any format requiring DRM such as CPRM. Why not use the CF form-factor? Many cameras even support it.
One thing I wonder: can this card be used in cameras directly? Most cameras use a FAT filesystem which requires the FAT to be updated for every picture.
That is not true: I am using a "TV" for a monitor with a native resolution of ~1280x768 (16:10). However, the monitor/TV only reports support for 4:3 modes (such as 640x480, 800x600, 1024x768, 1280x1024) and 16:9 modes (such as 720x400, 1280x720, 1360x765).
No 16:10 modes matching the native resolutions are reported: why would a TV need to support those? This is a problem for the latest Ubuntu release because they don't make it easy to "force" the 1280x768 mode.
I think color reproduction is not as good for TVs as well, but don't have data to back that up.
In a previous blog post, you explain that there is no such thing as a patent-free video codec. The reason being that the existence of prior-art is not sufficient to prevent a patent from being granted.
While it may be prudent for a large player like Google to vet their codecs against the MPEG-LA license pool, the real problem is that software patents are unworkable.
Ports from 49152 through 65535 are reserved for Network address translation. If your assume every customer has ~8 computers and 1 IPv4 address is shared among 32 customers, that yields a port window of 64 address on average.
It is unlikely they will all be browsing complicated "web applications" at the same time. If they want to do something like bittorrent; they just have to fire up IPv6, assuming the ISP routes the packets.
I think the opposite may happen: people stuck with an IPv4-only ISP will be considered to have "second class" Internet.
Since consumers are not really allowed to host servers anyway, NAT can be implemented at the ISP level sharing each IPv4 address among 254 customers. If they want to host a "server" or otherwise directly connect to their machine, they have to use IPv6. With IPv6, your ISP is obligated to give you at least a/64 block. You can have as many machines as you want with a public IPv6 address.
I just realized that a 250:1 may be a little tight. Maybe 32:1 is more appropriate for ISP-level NAT.
They can probably share 4 IPv4 addresses among 1000 IPv6 hosts (based on NAT typically supporting 254 hosts). All that is needed is Network address translation. Instead of just translating ephemeral port numbers, those port number/IPv4 address pairs can correspond to an IPv6 address.
The common objection to NAT no longer applies: You can host servers behind the NATing router because other IPv6 hosts will be able to connect directly.
You only need IPv4 connectivity for legacy software and services like certain games and their DRM servers.
I think my last Debian install did exactly that: The install program would scale how many questions it asked with how much you interacted with it. So if you start by answering every question, then go away for 2 hours (I have slow computers), it starts waiting for input, then goes on with the installation when a certain time-out is reached.
What pisses me off are the poorly thought-out attempts to "simplify" things for users. People advocating "walled gardens" miss the point. It is not that "general purpose" computers are inherently hard to use: it is that software is badly designed (and probably won't improve for several generations (I think *all* software needs to be formally proven correct (such that it does what the documentation says it does))).
Often things are "simplified" by hiding them in a script that the user does not understand. This leads to extra points of failure and fails to teach user how to configure their software.
For some stupid reason, just about every file format (including HTML, PDF, Word docs, PostScript, WMF) supports some kind of automatic scripting. In the short run, it simplifies things for the help-desk person: "Just open this file and everything will be fixed." The problem is that such capabilities take control away from the user. The next file they open up may break things instead of fixing them. Users become afraid to open e-mail attachments even though there is no reason they should be able to harm the computer in the first place.
Users relying on scripts and wizards also don't learn how to configure their software. They don't get exposed to the (sometimes daunting) documentation, so can't learn to fix the problem for themselves even if they wanted to.
I _would_ say that there seems to be some developers who actually think "perfect" software is both somehow possible, and wanted by people.
I think "perfect" software is possible, but won't be demanded until computer technology matures to the point the society is fundamentally changed. With the wheel and printing press this took hundreds of years. I don't think computer technology is going to be any different. Back before the Dot-Com bubble, people were assuming that computers/the Internet had somehow changed the laws of economics. The crash proved those people wrong.
Software happens in the mathematical domain. It is possible to "prove" that software is correct (that it will implement the specification). As layers and layers of abstraction get added to software, it is harder to prove it is correct. As computers stop getting faster and faster as we run into the laws of physics, it will make more and more economic sense to avoid any abstraction (library or hardware) that is not proven correct. To prove (and correct) current popular Operating Systems would take decades. That is why I feel my estimate of several hundred years (for the computer industry to mature) is not too far off.
Digital Rights Management is a special case: any software (or hardware) implementing DRM can not be proven correct; it is designed to fail. Not only may the experience of "legitimate" users be degraded, but it is impossible to prove the software will fail (or succeed in the case of cheat tracking) in the face of an attacker. Even if you could come up with "perfect" DRM, there will be errors in the specification. The Rule of Law is a complicated system checks and balances that would be short-circuited by any automated process.
The HTTP protocol is not designed for low latency. It is a stateless protocol that supports things like automatic content negotiation. Combined with HTML, it is designed for sharing static, structured, multi-media documents. Protocols like SSH and telnet maintain an open TCP connection so character updates only cost about 40 bytes. I have seen websites do per-character updates over HTTP (usually search engines doing completion suggestions).
Given how "Rich content" is used, I'm not sure how much benefit you get from doing validation client-side. On a fast machine the client-side verification will be slightly faster (than a round-trip to the server), but the server must still validate the information because the client is untrusted. The problem for the client is that most of the time (Short of a mutually authenticated HTTPS connection) the server is untrusted as well. If you can tell the browser to take only certain forms of input (or generate unwanted pop-up windows), you are taking control of the browser away from the user. This is a problem because the browser is typically interacting with several websites at the same time.
As I hinted with the Lynx comment, I think client-side scripting should be avoided. I actually liked the concept of Java Applets: there is a clear delimitation between "Static Webpages" and executable code that is kept in an explicit sandbox. Opening an X window (labeled by the originating host (I don't think the X protocol is sand-boxed)) or VT100 terminal window (labeled by host) is also a clear delimitation. Your post asking for a new GUI/CRUD interpreter (after cluing in CRUD is an acronym) and mention of client-side validation reminded me of the Network extensible Window System, based on the PostScript programming language.
I think we should stop assuming that users are too stupid to figure out the difference between their browser and the Operating System. If the average user is confused, it may be because Microsoft tied Internet Explorer (with the bad idea that is ActiveX) to the OS back in 1998. We should make it easy for users to make rational decisions about their computer. That means showing a clear distinction between software and data. Keeping a clear distinction between software running on the local machine and remote machine is a consequence of this.
I know I am fighting an uphill battle. Last time I checked, every file format I checked (including text (shell scripts) and HTML (JavaScript)) was able to embed code. We have Microsoft employees suggesting taxes to help clean up infected machines because everyone knows computers require constant maintenance. We have people suggesting that locked-down systems like game consoles and iPads are good things because the average user cannot configure a computer. I say that is because the software the average user is using is badly designed, not because computers are inherently hard to use. For example: there should be no way to get your computer "infected" by opening and e-mail attachment. The "common sense" advice to avoid opening e-mail from people you don't know isn't. (In real life, junk mail goes in the trash, letter bombs are rare.)
I think the idea of cap and trade is that we need to drasticly cut emissions. The problem is it is hard to come up with a fair way for requiring all of the major polluters to cut emissions. The hope with "cap and trade" it that the free market can be used to fine-tune the original political decisions. If one major emitter finds it is prohibitively expensive to cut emissions because they are actually increasing production, they can buy credits on the carbon market. The hope is that industries with little growth may be able to accelerate equipment upgrades with funds from those industries growing faster than equipment upgrades help.
Of course, until every major government implements strong carbon caps, the carbon market is a shell game. Currently here in Canada they are still talking about "intensity-based targets"; that is to say: carbon releases are allowed to increase as long as there is economic growth. There is also the issue of using hard-to-measure things as "carbon sinks" such as forests. If a framer has a small forest they are being paid credits for; are the expected to pay back all that money if the forest burns down, releasing a lot of carbon?
Anti-copying mechanisms only work in soft science fiction like Star Trek (Transporters have strong anti-copy technology, as do the holodecks).
If the legions on Slashdot can support or disprove that claim, you would be doing me a favour.
Hint: We already know it doesn't work in the "real world" : http://craphound.com/msftdrm.txt
I worry that ISPs may start blocking IPV6 in order to start selling IPv4 addresses at a steep premium.
I know such a move would be self-defeating, but where are you going to go? In my local province (Alberta Canada) the "public-private-Partnership" Supernet is phasing out layer 2 links in favour of layer 3 links using IPv4.
I am sure that once people move to IPv6, all of the restrictions currently on IPv4 will follow: want a "static" network portion? that will cost. Want a /56 network portion? That will cost too. Want to use a Tunnel-Broker? sorry, you are not allowed. Want to host a server on a residential connection? Not allowed. Want to rent space from a webhost? Your website must look like a "normal" website.
Hopefully I am just being cynical.
Careful, that may be copyright infringement! (Only the copyright holder is allowed to publish)
I lost you at:
I suppose the implicit argument is that if you tax corporations, the citizens will pay more for goods and services. This ignores that fact that many corporations may sell their goods overseas. It also ignores that fact the tax revenue allows government to provide its own goods and services, often in the form of infrastructure that is a natural monopoly anyway.
Facebook has now reached so much critical mass that third-parties are advertising the service in their Advertising. That doesn't strike you as a little weird? "See, we're hip! We're on Facebook!"
The alternatives such as browser games, e-mail, IRC, and personal websites are a lot more distributed. As a result, people have a lot more control over their data.
I no longer consider Windows PCs open systems. Windows NT 6.x builds DRM deep into the system. Certain hardware such as video cards are required to implement undocumented features for Windows certification. This is done to facilitate the "protected path" for Blu-ray playback.
The Windows 7 EULA prohibits you from installing software that would add functionality to the system.
The reason "Linux gaming is still a sad affair, even with Wine" is because the hardware is undocumented. Without documented hardware, it is nearly impossible to write good drivers for that hardware. Wine sucks for games (aside form hardware issues) because of DRM. Currently, the Wine developers have a policy of not "patching out" the DRM on malware-infested games.
Digital Restrictions Management is a problem for Windows too. You can not install AAA titles on a computer you use for business because you can not install games under a separate limited user account. The DRM requires Administrative access: one of the reasons UAC was introduced. Why Microsoft didn't copy Apple in their MacOS9->X transition, I don't know. I suspect it is because they are hoping to make their money on DRM systems in the future.
My local newspaper is now doing "Facebook exclusive" letters to the editor. It is not clear if I can send a letter to the Editor and opt out of having it posted on Facebook.
Edmonton Journal Letters Facebook page.
I thought CRTC 2009-657 was bad, allowing Bell to charge resellers $1/GB over 300GB: per customer. Most webhosts in Canada charge $3/GB or less; and even that is expensive. It appear bandwidth is getting more expensive, not less expensive in Canada.
After that decision, I priced using Avian carriers for high bandwidth, high latency connections:
The difficulty is that the pigeons would require couriers to move them to their starting points. If the data is really not time-sensitive, why not use a courier to start with?
Another concern is that for long distances, fibre-optic may be cheaper; even at the inflated rates.
I seem to remember old Programmable ROM chips used "fuse wires" to store the data.
I don't see why you would need temperature constraints if used such technology. You can then burn a fuse in the write path to prevent tampering.
If I was designing such a thing, I would also run, not walk from any format requiring DRM such as CPRM. Why not use the CF form-factor? Many cameras even support it.
One thing I wonder: can this card be used in cameras directly? Most cameras use a FAT filesystem which requires the FAT to be updated for every picture.
Portions of the specification are secret.
My first thought: WTF? Archival storage implementing DRM?
This thing is useless anyway since copyright terms now last longer than 100 years (depending on the age of the author).
Yes, all "SD cards" include CPRM; that technology never introduced into hard-disks because of a consumer backlash.
That is not true: I am using a "TV" for a monitor with a native resolution of ~1280x768 (16:10). However, the monitor/TV only reports support for 4:3 modes (such as 640x480, 800x600, 1024x768, 1280x1024) and 16:9 modes (such as 720x400, 1280x720, 1360x765).
No 16:10 modes matching the native resolutions are reported: why would a TV need to support those? This is a problem for the latest Ubuntu release because they don't make it easy to "force" the 1280x768 mode.
I think color reproduction is not as good for TVs as well, but don't have data to back that up.
In a previous blog post, you explain that there is no such thing as a patent-free video codec. The reason being that the existence of prior-art is not sufficient to prevent a patent from being granted.
This implies that even video (or image-based) codecs in existence for nearly 20 years will still be patent-encumbered when any original patents expire in a few years.
While it may be prudent for a large player like Google to vet their codecs against the MPEG-LA license pool, the real problem is that software patents are unworkable.
To tell the truth, those clauses are in the contract are mainly an excuse to charge/kick the heavy users.
Consumer Internet Access restrictions
Nit-pick: each customer (more accurately router) gets at least a /64 block with 18446744073709551616 addresses.
I have not done the math, but I think you can assign every molecule in your house an address.
Ports from 49152 through 65535 are reserved for Network address translation. If your assume every customer has ~8 computers and 1 IPv4 address is shared among 32 customers, that yields a port window of 64 address on average.
It is unlikely they will all be browsing complicated "web applications" at the same time. If they want to do something like bittorrent; they just have to fire up IPv6, assuming the ISP routes the packets.
Move VOIP to IPv6, problem solved :)
I think the opposite may happen: people stuck with an IPv4-only ISP will be considered to have "second class" Internet.
Since consumers are not really allowed to host servers anyway, NAT can be implemented at the ISP level sharing each IPv4 address among 254 customers. If they want to host a "server" or otherwise directly connect to their machine, they have to use IPv6. With IPv6, your ISP is obligated to give you at least a /64 block. You can have as many machines as you want with a public IPv6 address.
I just realized that a 250:1 may be a little tight. Maybe 32:1 is more appropriate for ISP-level NAT.
Such a market would collapse when people realize IPv6 addresses come in /64 blocks (minimum).
They can probably share 4 IPv4 addresses among 1000 IPv6 hosts (based on NAT typically supporting 254 hosts). All that is needed is Network address translation. Instead of just translating ephemeral port numbers, those port number/IPv4 address pairs can correspond to an IPv6 address.
The common objection to NAT no longer applies: You can host servers behind the NATing router because other IPv6 hosts will be able to connect directly.
You only need IPv4 connectivity for legacy software and services like certain games and their DRM servers.
I think my last Debian install did exactly that: The install program would scale how many questions it asked with how much you interacted with it. So if you start by answering every question, then go away for 2 hours (I have slow computers), it starts waiting for input, then goes on with the installation when a certain time-out is reached.
What pisses me off are the poorly thought-out attempts to "simplify" things for users. People advocating "walled gardens" miss the point. It is not that "general purpose" computers are inherently hard to use: it is that software is badly designed (and probably won't improve for several generations (I think *all* software needs to be formally proven correct (such that it does what the documentation says it does))).
Often things are "simplified" by hiding them in a script that the user does not understand. This leads to extra points of failure and fails to teach user how to configure their software.
For some stupid reason, just about every file format (including HTML, PDF, Word docs, PostScript, WMF) supports some kind of automatic scripting. In the short run, it simplifies things for the help-desk person: "Just open this file and everything will be fixed." The problem is that such capabilities take control away from the user. The next file they open up may break things instead of fixing them. Users become afraid to open e-mail attachments even though there is no reason they should be able to harm the computer in the first place.
Users relying on scripts and wizards also don't learn how to configure their software. They don't get exposed to the (sometimes daunting) documentation, so can't learn to fix the problem for themselves even if they wanted to.
I _would_ say that there seems to be some developers who actually think "perfect" software is both somehow possible, and wanted by people.
I think "perfect" software is possible, but won't be demanded until computer technology matures to the point the society is fundamentally changed. With the wheel and printing press this took hundreds of years. I don't think computer technology is going to be any different. Back before the Dot-Com bubble, people were assuming that computers/the Internet had somehow changed the laws of economics. The crash proved those people wrong.
Software happens in the mathematical domain. It is possible to "prove" that software is correct (that it will implement the specification). As layers and layers of abstraction get added to software, it is harder to prove it is correct. As computers stop getting faster and faster as we run into the laws of physics, it will make more and more economic sense to avoid any abstraction (library or hardware) that is not proven correct. To prove (and correct) current popular Operating Systems would take decades. That is why I feel my estimate of several hundred years (for the computer industry to mature) is not too far off.
Digital Rights Management is a special case: any software (or hardware) implementing DRM can not be proven correct; it is designed to fail. Not only may the experience of "legitimate" users be degraded, but it is impossible to prove the software will fail (or succeed in the case of cheat tracking) in the face of an attacker. Even if you could come up with "perfect" DRM, there will be errors in the specification. The Rule of Law is a complicated system checks and balances that would be short-circuited by any automated process.
The HTTP protocol is not designed for low latency. It is a stateless protocol that supports things like automatic content negotiation. Combined with HTML, it is designed for sharing static, structured, multi-media documents. Protocols like SSH and telnet maintain an open TCP connection so character updates only cost about 40 bytes. I have seen websites do per-character updates over HTTP (usually search engines doing completion suggestions).
Given how "Rich content" is used, I'm not sure how much benefit you get from doing validation client-side. On a fast machine the client-side verification will be slightly faster (than a round-trip to the server), but the server must still validate the information because the client is untrusted. The problem for the client is that most of the time (Short of a mutually authenticated HTTPS connection) the server is untrusted as well. If you can tell the browser to take only certain forms of input (or generate unwanted pop-up windows), you are taking control of the browser away from the user. This is a problem because the browser is typically interacting with several websites at the same time.
As I hinted with the Lynx comment, I think client-side scripting should be avoided. I actually liked the concept of Java Applets: there is a clear delimitation between "Static Webpages" and executable code that is kept in an explicit sandbox. Opening an X window (labeled by the originating host (I don't think the X protocol is sand-boxed)) or VT100 terminal window (labeled by host) is also a clear delimitation. Your post asking for a new GUI/CRUD interpreter (after cluing in CRUD is an acronym) and mention of client-side validation reminded me of the Network extensible Window System, based on the PostScript programming language.
I think we should stop assuming that users are too stupid to figure out the difference between their browser and the Operating System. If the average user is confused, it may be because Microsoft tied Internet Explorer (with the bad idea that is ActiveX) to the OS back in 1998. We should make it easy for users to make rational decisions about their computer. That means showing a clear distinction between software and data. Keeping a clear distinction between software running on the local machine and remote machine is a consequence of this.
I know I am fighting an uphill battle. Last time I checked, every file format I checked (including text (shell scripts) and HTML (JavaScript)) was able to embed code. We have Microsoft employees suggesting taxes to help clean up infected machines because everyone knows computers require constant maintenance. We have people suggesting that locked-down systems like game consoles and iPads are good things because the average user cannot configure a computer. I say that is because the software the average user is using is badly designed, not because computers are inherently hard to use. For example: there should be no way to get your computer "infected" by opening and e-mail attachment. The "common sense" advice to avoid opening e-mail from people you don't know isn't. (In real life, junk mail goes in the trash, letter bombs are rare.)