You start talking about supporting "truly new things" and then you complain about syntax? Changing language syntax is hardly innovative.
Both the Linux kernel and the userland applications are mutating faster than any other operating system out there. Just because the POSIX interface is relatively stable doesn't mean that the the rest is anything like UNIX was in the 1970s.
The main thing stopping other operating systems (such as BeOS) from becoming reasonable alternatives is the sheer amount of effort involved, especially in dealing with the range of hardware out there. The best way to lower this barrier is to support device manufacturers who open their specifications and follow international standards. Virtual machines are also lowering the barrier somewhat.
I don't believe that you can produce any *nix geek who is unaware that Unix has its flaws. Defending the design decisions of Unix is not the same as thinking that it is the best way of doing things.
The concern about the lack of choice is valid, but it won't be solved by whining about it.
Talking about 'them' and 'us' is perhaps the first root of your problem.
If you really think that Aboriginal cultures are 'nomadic' and 'have no concept of ownership of land', then you aren't even at a wikipedia level of understanding of traditional cultures. Not to mention that many Aboriginal Australians are living in cities.
You are correct that the problems are complex, which is why the solutions need to go beyond political grandstanding and patronizing platitudes. At the root of the matter is a lack of respect.
Prejudice is to pre-judge a person. There is plenty of that going around in Australia, whether or not you like to think of it as racism.
The GPS receiver can also calculate heading based on the Doppler velocities (again, assuming that the GPS receiver is moving). This is how many commercial GPS receivers calculate speed (rather than using position differentials, which are noiser over the short term).
These discussions of error correction miss the basic point; that typical analog data can be partially recovered after it has degraded.
What this means is that analog data can be useful even when it has substantially degraded. Digital data can become useless with the loss of just a fraction of the data. All that error correction does is increase that fraction (and make the total loss of data less likely).
The problem is a systemic one. In analog design, data tends to be localized (usually just because it was simpler to do it that way). This means that even if you lose 99% of your data, the remaining 1% is still useful. There are digital formats that have the same properties, but they are rare because they are inefficient.
In digital design, we tend to assume 100% bit recovery. We aim for this by putting in error correction at the lowest levels of data transmission and of storage media. This makes the chance of failure less likely, but not impossible (and over time, inevitable). At most higher levels, data is often highly structured, so that some bits are much more important than others and affect the rest of the data (eg format headers, directories, network addresses, etc). Even worse, techniques like encryption have to deliberately spread the data out.
This cannot be solved by any tech solution at one layer, because you cannot 'unspread' data once it has been diffused at a higher level. The only solution would be a rethinking of every layer of the system. There is little point achieving partial archival recovery at the low level of the format if the top level relies on complete recovery.
I don't want to overstate this. The features of the digital approach are useful. The ability to have good compression, strong encryption, fast access, high reliability, and perfect copies. In most circumstances, these outweigh the need to preserve data over long periods of time.
There are two solutions for archival, particularly of items in which the data is relatively localized within the stream (raw images, film, text).
1. The 'redundancy' method aims for perfect reconstruction, but at the cost of maintaining the data. We use error correction, but on top of that the errors must be corrected as they occur (so that they do not accumulate).
2. The 'analog' method is to use data formats and media that retain the localization: compression that is localized (much as we use key frames in video compression), encryption that is localized (eg not chaining blocks, though this weakens the encryption), indexing that is localized (eg linear formats rather than tree structures), reframing that is localized (eg using space filling curves to rasterize images instead of scanlines).
Note that I am not advocating the 'analog' method in most circumstances. And I am definitely not advocating a return to analog storage methods.
Nor does it hurt to use error correction. It will extend the life of the data. But if the aim is the long term preservation of data in an unmaintained state, then error correction is not the complete solution. One has to consider what happens what happens after the redundancy capability has been exceeded.
Perhaps the same companies that are still running Windows 2000 because they like to get real work done instead of constantly upgrading user interfaces.
And looking at the percentage share of IE6 still out there, I'd guess it is quite a few.
Fortunately Mozillla browsers still support WIndows 2000. Sad for Windows users that the best security is to not use a Microsoft browser.
Written down, in a lockbox, in a safe, in the floor of your basement, under a rug, in your house that has an active alarm system (that you use), in a armed guard and gated community is ok.
But why would you want the Vogons to find your password list?
I think the article forgot an important feature of the Aussie plugs, we deserve a higher rating. We also have a design feature where the ground pin is at the bottom, so that if your fingers accidentally touch the pins as you insert the plug, you are guaranteed to hit the live wire first.
I disagree - it is better public relations to 'take a dump' in one quick hit, and hope that it doesn't make too much of a splash. Otherwise you sit around for a week until a slow news day comes, and your story ends up on the front page, while the customers get more nervous.
By getting out the bad news early, anything that happens (like a partial recovery of data in this case) looks like good news, so that reputation can be partly salvaged.
Exactly - I'm just imagining what happens when this joker ends up disabling someone's anti-lock braking system or a traction control system (or worse, half-disables it) on a crowded freeway.
Buying and selling real estate is just a game too. It might be a game that is ratified by governments and community sentiment, but for all that it is arbitrary. You don't 'own' a piece of land in anything more than a legal sense. You can't take it with you if you move overseas. You don't necessarily have the right to dig underneath it or fly over it. You didn't create it, cannot throw it away. A change of government could take it away from you with the stroke of a pen. You cannot protect your title with force, because the title is in the titles office, not in your possession. And what of the aboriginal peoples who used to live on that land; what happened to their ownership.
"get a job"
And this job you do; what does it involve? Are you a farmer, generating food for people who need to eat? Are you a builder, constructing houses that people need to keep them dry and warm? Are you an engineer designing weapons to put holes in people? Or are you sitting in an office pushing around bits of paper or punching a keyboard? How virtual is that? Our societies revolve around providing services, whether it is health or education or entertainment; very few of us actually produce tangible goods.
Don't think you can just tell people to 'get a job!'. You don't own them.
I think you misunderstand the intent of the language. C++ is aimed at significant software projects, infrastructure, and embedded programming. Performance is an important component of this, as is backward compatibility. So what you call 'papering over the mold' is actually an attempt to evolve a language that continues to work for hundreds of thousands of programmers in real world applications.
The C family of languages have always been statically typed, for good reason; it improves performance, and it catches a particular class of bugs at compile time. Just because the original system is underspecified does not mean that there was no static type system. C++ is a more explicitly typed language.
The major change with C++ was to provide language support for object oriented concepts (rather than programmers using ad-hoc conventions). The second major addition was to provide language support for generic programming concepts. These are not wallpaper; they have helped us to avoid dated language tricks (such as pre-processor macros and untyped pointers). If you are making a lot of use of non-templated arrays and void pointers in your code, you have a lot to learn about using C++.
C++ is not a tame language. It will not prevent you using language facilities that are unsafe. As you say, even the STL containers do not prevent bounds violations. To check for such things requires implicit run-time checking which would be an unacceptable performance cost in many of the application areas where C++ is being used. Of course, the language also allows you to implement your own libraries that do have bounds checks (though often this is better done at the interface to object methods at a higher level, rather than within the container).
There is legacy support for aspects of C that would be best removed from the C++ language, but why break all that existing code? If you really want an ideal language, there are plenty of academic toy language experiments. Do you realize how useful it is to be able to write a C++ program on a Linux system, and not have to worry about whether it will make best use of the system resources, or whether someone has implemented bindings to the legacy C code in the operating system, or whether there will be major compatibility issues on some other system.
If you have such fundamental problems with the language design as the concept of pointers, then I would suggest that perhaps you have chosen the wrong language to write code in. If you want more safety in the languages used to program systems, then you need to suggest a language, and help to rewrite all the legacy code. Perhaps you can start on all the lines of C code out there before you start worrying about C++.
You start talking about supporting "truly new things" and then you complain about syntax? Changing language syntax is hardly innovative.
Both the Linux kernel and the userland applications are mutating faster than any other operating system out there. Just because the POSIX interface is relatively stable doesn't mean that the the rest is anything like UNIX was in the 1970s.
The main thing stopping other operating systems (such as BeOS) from becoming reasonable alternatives is the sheer amount of effort involved, especially in dealing with the range of hardware out there. The best way to lower this barrier is to support device manufacturers who open their specifications and follow international standards. Virtual machines are also lowering the barrier somewhat.
I don't believe that you can produce any *nix geek who is unaware that Unix has its flaws. Defending the design decisions of Unix is not the same as thinking that it is the best way of doing things.
The concern about the lack of choice is valid, but it won't be solved by whining about it.
Talking about 'them' and 'us' is perhaps the first root of your problem.
If you really think that Aboriginal cultures are 'nomadic' and 'have no concept of ownership of land', then you aren't even at a wikipedia level of understanding of traditional cultures. Not to mention that many Aboriginal Australians are living in cities.
You are correct that the problems are complex, which is why the solutions need to go beyond political grandstanding and patronizing platitudes. At the root of the matter is a lack of respect.
Prejudice is to pre-judge a person. There is plenty of that going around in Australia, whether or not you like to think of it as racism.
The GPS receiver can also calculate heading based on the Doppler velocities (again, assuming that the GPS receiver is moving). This is how many commercial GPS receivers calculate speed (rather than using position differentials, which are noiser over the short term).
These discussions of error correction miss the basic point; that typical analog data can be partially recovered after it has degraded.
What this means is that analog data can be useful even when it has substantially degraded. Digital data can become useless with the loss of just a fraction of the data. All that error correction does is increase that fraction (and make the total loss of data less likely).
The problem is a systemic one. In analog design, data tends to be localized (usually just because it was simpler to do it that way). This means that even if you lose 99% of your data, the remaining 1% is still useful. There are digital formats that have the same properties, but they are rare because they are inefficient.
In digital design, we tend to assume 100% bit recovery. We aim for this by putting in error correction at the lowest levels of data transmission and of storage media. This makes the chance of failure less likely, but not impossible (and over time, inevitable). At most higher levels, data is often highly structured, so that some bits are much more important than others and affect the rest of the data (eg format headers, directories, network addresses, etc). Even worse, techniques like encryption have to deliberately spread the data out.
This cannot be solved by any tech solution at one layer, because you cannot 'unspread' data once it has been diffused at a higher level. The only solution would be a rethinking of every layer of the system. There is little point achieving partial archival recovery at the low level of the format if the top level relies on complete recovery.
I don't want to overstate this. The features of the digital approach are useful. The ability to have good compression, strong encryption, fast access, high reliability, and perfect copies. In most circumstances, these outweigh the need to preserve data over long periods of time.
There are two solutions for archival, particularly of items in which the data is relatively localized within the stream (raw images, film, text).
1. The 'redundancy' method aims for perfect reconstruction, but at the cost of maintaining the data. We use error correction, but on top of that the errors must be corrected as they occur (so that they do not accumulate).
2. The 'analog' method is to use data formats and media that retain the localization: compression that is localized (much as we use key frames in video compression), encryption that is localized (eg not chaining blocks, though this weakens the encryption), indexing that is localized (eg linear formats rather than tree structures), reframing that is localized (eg using space filling curves to rasterize images instead of scanlines).
Note that I am not advocating the 'analog' method in most circumstances. And I am definitely not advocating a return to analog storage methods.
Nor does it hurt to use error correction. It will extend the life of the data. But if the aim is the long term preservation of data in an unmaintained state, then error correction is not the complete solution. One has to consider what happens what happens after the redundancy capability has been exceeded.
modelling how to split the beer atom?
I guess that rules out Quake then...
Perhaps the same companies that are still running Windows 2000 because they like to get real work done instead of constantly upgrading user interfaces.
And looking at the percentage share of IE6 still out there, I'd guess it is quite a few.
Fortunately Mozillla browsers still support WIndows 2000. Sad for Windows users that the best security is to not use a Microsoft browser.
There's no excuse at all for 2012.
maybe they forgot to stay and read the credits...
Written down, in a lockbox, in a safe, in the floor of your basement, under a rug, in your house that has an active alarm system (that you use), in a armed guard and gated community is ok.
But why would you want the Vogons to find your password list?
Another alternative is MyPasswordSafe, which is also compatible with files from PasswordSafe, and is written in C++ (uses Qt for the GUI).
It is in the Debian archives. Doesn't seem to have been changed for a few years, but still runs fine.
a conspiracy of one?
I do not think that word means what you think it means.
I think the article forgot an important feature of the Aussie plugs, we deserve a higher rating. We also have a design feature where the ground pin is at the bottom, so that if your fingers accidentally touch the pins as you insert the plug, you are guaranteed to hit the live wire first.
or not smart enough...
I disagree - it is better public relations to 'take a dump' in one quick hit, and hope that it doesn't make too much of a splash. Otherwise you sit around for a week until a slow news day comes, and your story ends up on the front page, while the customers get more nervous.
By getting out the bad news early, anything that happens (like a partial recovery of data in this case) looks like good news, so that reputation can be partly salvaged.
Exactly - I'm just imagining what happens when this joker ends up disabling someone's anti-lock braking system or a traction control system (or worse, half-disables it) on a crowded freeway.
Hmmm, this tastes like slime mold juice.
reminds me of Spike Milligan's grave.
nothing classier;
except perhaps the death tweet on twitter...
(something like the internet version of a death rattle)
"it is not reality"
Buying and selling real estate is just a game too. It might be a game that is ratified by governments and community sentiment, but for all that it is arbitrary. You don't 'own' a piece of land in anything more than a legal sense. You can't take it with you if you move overseas. You don't necessarily have the right to dig underneath it or fly over it. You didn't create it, cannot throw it away. A change of government could take it away from you with the stroke of a pen. You cannot protect your title with force, because the title is in the titles office, not in your possession. And what of the aboriginal peoples who used to live on that land; what happened to their ownership.
"get a job"
And this job you do; what does it involve? Are you a farmer, generating food for people who need to eat? Are you a builder, constructing houses that people need to keep them dry and warm? Are you an engineer designing weapons to put holes in people? Or are you sitting in an office pushing around bits of paper or punching a keyboard? How virtual is that? Our societies revolve around providing services, whether it is health or education or entertainment; very few of us actually produce tangible goods.
Don't think you can just tell people to 'get a job!'. You don't own them.
You're one of those overclockers aren't you... I can tell...
in newspeak, 'sponsored links'
beautiful
http://www2.sandbox.google.com/ - google without the ads!
for years to come, they will still be branding computer mice...
I think you misunderstand the intent of the language. C++ is aimed at significant software projects, infrastructure, and embedded programming. Performance is an important component of this, as is backward compatibility. So what you call 'papering over the mold' is actually an attempt to evolve a language that continues to work for hundreds of thousands of programmers in real world applications.
The C family of languages have always been statically typed, for good reason; it improves performance, and it catches a particular class of bugs at compile time. Just because the original system is underspecified does not mean that there was no static type system. C++ is a more explicitly typed language.
The major change with C++ was to provide language support for object oriented concepts (rather than programmers using ad-hoc conventions). The second major addition was to provide language support for generic programming concepts. These are not wallpaper; they have helped us to avoid dated language tricks (such as pre-processor macros and untyped pointers). If you are making a lot of use of non-templated arrays and void pointers in your code, you have a lot to learn about using C++.
C++ is not a tame language. It will not prevent you using language facilities that are unsafe. As you say, even the STL containers do not prevent bounds violations. To check for such things requires implicit run-time checking which would be an unacceptable performance cost in many of the application areas where C++ is being used. Of course, the language also allows you to implement your own libraries that do have bounds checks (though often this is better done at the interface to object methods at a higher level, rather than within the container).
There is legacy support for aspects of C that would be best removed from the C++ language, but why break all that existing code? If you really want an ideal language, there are plenty of academic toy language experiments. Do you realize how useful it is to be able to write a C++ program on a Linux system, and not have to worry about whether it will make best use of the system resources, or whether someone has implemented bindings to the legacy C code in the operating system, or whether there will be major compatibility issues on some other system.
If you have such fundamental problems with the language design as the concept of pointers, then I would suggest that perhaps you have chosen the wrong language to write code in. If you want more safety in the languages used to program systems, then you need to suggest a language, and help to rewrite all the legacy code. Perhaps you can start on all the lines of C code out there before you start worrying about C++.
!
A dictionary that is missing the most commonly used words!
Foresighted U.S. Censorship for the Knockout