Ooh! Look! I can put every application known to man in a web browser!
Web browsers are turning into the Emacs of desktop computing, and it's pissing me off. If you want a front-end, write a front-end, possibly in Java. When you need to communicate with the server, open a friggin socket. Or use XWT or some other XML-RPC-based solution.
Your home network is 192.168.0.0/24. Your work network uses the same address space. From your home computer, you VPN into your work network. Now, try to copy a file from your fileserver at home to your fileserver at work.
How about (radical idea coming) we just all use the functions correctly! strcpy is not inherently insecure, it just doesn't check anything/for/ you. strncpy doesn't guarantee a terminating null character, so you have to (gasp!) check for it.
The main problem with strlcpy is that it's not standard, hence it may not be available on your target platform.
Yes, but we're talking about different namespaces here. Physical constants, such as G, k, et cetera could be represented as variables in the code (or exposed as variables by the scripting engine).
In short, STFU and don't be so quick to tell people they're wrong.
The US electoral system (ie, presidential elections, as every other election is run by the states) is based on a majority. Not on a majority of popular votes, mind you, but on a majority of electoral votes. If no candidate receives a majority of electoral votes, the House decides the winner. This has happened exactly once.
Plurality is, however, the basis for/California's/ electoral system.
We just say it the "incorrect" way in English because "approaches infinity" and "approaches three" look pretty much the same when written in math. That doesn't make "approaches infinity" correct though; the correct terminology is "increases without bound".
Your analogy is good as far as it goes (other people can create messages that *only you* can read), but falls short of all the features of keypairs.
If I have your public key, you can encrypt your message using your private key, and then I (or anyone else) can decrypt it using your public key. This tells me that the message came from someone with your private key (which, hopefully, means it necessarily came from you). This is the basis for digital signatures.
Not sure about XP, but in 2K, you can disable font-smoothing by going to the Display Properties control panel, selecting the Effects tab, and deselect "Smooth Edges of Screen Fonts".
And if you didn't know how to do this, it's all explained in the handy-dandy HELP SYSTEM (Start menu, Help). Just open it, go to the index, and type in "smothing fonts". You don't even have to type it all in... it'll find it after the "smo".
Why do people who always read man pages and README files in Linux never think to do the equivalent in Windows?
Umm... yes, there was. NT4 shipped with it, and you couldn't upgrade, so NT4 was/stuck/ with it. It was never released as a download because DX5 came out so soon afterward and was such a huge improvement.
So let me get this straight. You want a solution that
is client-side
is platform-independent
requires nothing to be installed
Usually, you can pick any two. What you might be able to do, though, is instead of having a "platform-independent" solution (in the Java or Flash sense), create solutions (eg, native executables) for multiple systems and have the server send the client the "right" one.
I don't see how anything else could work.
What am *I* smoking? Dude... I'm the one saying they have nothing to do with C++. A compiler that has extensions is fine. But those extensions are part of the *compiler*'s *proprietary* language, not the standard C++ language.
I said that the language implemented by cl.exe is not C++. Even if there weren't conformancy issues (export, templates, main-return-value, the list goes on), then it would be a SUPERSET of C++. As in, JUST BECAUSE IT WORKS IN VC++ DOESN'T MAKE IT C++. Jeez... can you people read?
The VC++ compiler implements a language that *is not* C++. Because there is no easy way to refer to this language ("the language compiled by the VC++ compiler"), simply saying "the VC++ language" is suitably descriptive short-hand.
Yes, you're correct that those features (and they are features -- look up the definition of that word yourself) I mentioned (__int64, extra functions, etc) do not make VC++/incompatible/ with C++ (though there are some that do), they are, none the less, *not part of C++*.
Not true. MSVC++6 falls far short of the mark WRT compliance to the C++ language definition. Further, there are many features of the VC++ language that simply do not exist in the C++ language (declspec, __int64, all the functions in C headers that start with an underscore, etc).
Well, I agree that it could make things a little confusing, but auto is almost never used (many people don't think it should have ever been a keyword), and it'll only break code that was already broken by C++98 (code that relied on implicit int). For example
auto int x = 0;// x is an int auto variable
auto x = 0f;// x a float auto variable
Unfortunately, it could make for confusing constructs like
static auto x = 0f;// x is a float static var
Maybe we should just stick with typeof -- it's more verbose but no less functional.
On a side note however, what is PCI (32 and 64 bit) throughput?
Depends on the flavor of PCI. Most PCs' PCI bus is 33MHz x 32-bit, giving 133MB/s of bandwidth. That's *shared* between all of your PCI devices, btw (and don't forget that on older motherboards, the north- and southbridges talk to each other using the PCI bus). Some systems have 66MHz PCI, some have 64-bit PCI, some have both.
Ooh! Look! I can put every application known to man in a web browser!
Web browsers are turning into the Emacs of desktop computing, and it's pissing me off. If you want a front-end, write a front-end, possibly in Java. When you need to communicate with the server, open a friggin socket. Or use XWT or some other XML-RPC-based solution.
Oooh! But it's web-based! Fscking marketroids.
Nothing, and I mean nothing beats Debian where Linux is concerned. Or you could go the BSD route.
Gentoo isn't a contender because it is meant as a bleeding-edge desktop platform. It focuses on features and speed, not security and stability.
Read my comment again. What do you do if your VPN address and your local address are in the same address space?
Your home network is 192.168.0.0/24. Your work network uses the same address space. From your home computer, you VPN into your work network. Now, try to copy a file from your fileserver at home to your fileserver at work.
Yeah, NAT sure does work great, doesn't it!
How about (radical idea coming) we just all use the functions correctly! strcpy is not inherently insecure, it just doesn't check anything /for/ you. strncpy doesn't guarantee a terminating null character, so you have to (gasp!) check for it.
The main problem with strlcpy is that it's not standard, hence it may not be available on your target platform.
With its CGI fog. Plus, it's non-Hollywood, non-American film. It could make for some nice variety.
That attitude works great until someone plugs an infected laptop into the corporate network.
Did you note the words "criminal prosecutions"? Law suits are civil actions.
No, constants are *objects* (in C and C++ terminology), but they are not variables.
Yes, but we're talking about different namespaces here. Physical constants, such as G, k, et cetera could be represented as variables in the code (or exposed as variables by the scripting engine).
In short, STFU and don't be so quick to tell people they're wrong.
The US electoral system (ie, presidential elections, as every other election is run by the states) is based on a majority. Not on a majority of popular votes, mind you, but on a majority of electoral votes. If no candidate receives a majority of electoral votes, the House decides the winner. This has happened exactly once.
/California's/ electoral system.
Plurality is, however, the basis for
We just say it the "incorrect" way in English because "approaches infinity" and "approaches three" look pretty much the same when written in math. That doesn't make "approaches infinity" correct though; the correct terminology is "increases without bound".
Your analogy is good as far as it goes (other people can create messages that *only you* can read), but falls short of all the features of keypairs.
If I have your public key, you can encrypt your message using your private key, and then I (or anyone else) can decrypt it using your public key. This tells me that the message came from someone with your private key (which, hopefully, means it necessarily came from you). This is the basis for digital signatures.
What overhead? Perform some tests with decent compilers. You might be surprised.
And he never said STL. He said *a* standard library. But anyway...
Well, that would make more sense than the way I interpretted it.
Not sure about XP, but in 2K, you can disable font-smoothing by going to the Display Properties control panel, selecting the Effects tab, and deselect "Smooth Edges of Screen Fonts".
And if you didn't know how to do this, it's all explained in the handy-dandy HELP SYSTEM (Start menu, Help). Just open it, go to the index, and type in "smothing fonts". You don't even have to type it all in... it'll find it after the "smo".
Why do people who always read man pages and README files in Linux never think to do the equivalent in Windows?
Umm... yes, there was. NT4 shipped with it, and you couldn't upgrade, so NT4 was /stuck/ with it. It was never released as a download because DX5 came out so soon afterward and was such a huge improvement.
- is client-side
- is platform-independent
- requires nothing to be installed
Usually, you can pick any two. What you might be able to do, though, is instead of having a "platform-independent" solution (in the Java or Flash sense), create solutions (eg, native executables) for multiple systems and have the server send the client the "right" one. I don't see how anything else could work.No, they're not. It *allows* for extensions, but any extension is not, by definition, part of the language.
What am *I* smoking? Dude... I'm the one saying they have nothing to do with C++. A compiler that has extensions is fine. But those extensions are part of the *compiler*'s *proprietary* language, not the standard C++ language.
I said that the language implemented by cl.exe is not C++. Even if there weren't conformancy issues (export, templates, main-return-value, the list goes on), then it would be a SUPERSET of C++. As in, JUST BECAUSE IT WORKS IN VC++ DOESN'T MAKE IT C++. Jeez... can you people read?
The VC++ compiler implements a language that *is not* C++. Because there is no easy way to refer to this language ("the language compiled by the VC++ compiler"), simply saying "the VC++ language" is suitably descriptive short-hand.
/incompatible/ with C++ (though there are some that do), they are, none the less, *not part of C++*.
Yes, you're correct that those features (and they are features -- look up the definition of that word yourself) I mentioned (__int64, extra functions, etc) do not make VC++
> Nothing with the language itself.
Not true. MSVC++6 falls far short of the mark WRT compliance to the C++ language definition. Further, there are many features of the VC++ language that simply do not exist in the C++ language (declspec, __int64, all the functions in C headers that start with an underscore, etc).
Well, I agree that it could make things a little confusing, but auto is almost never used (many people don't think it should have ever been a keyword), and it'll only break code that was already broken by C++98 (code that relied on implicit int). For example
// x is an int auto variable // x a float auto variable
// x is a float static var
auto int x = 0;
auto x = 0f;
Unfortunately, it could make for confusing constructs like
static auto x = 0f;
Maybe we should just stick with typeof -- it's more verbose but no less functional.
Hmm... I had always liked the (not really existant) typeof operator, so I'd been thinking we'd be able to say
:-}
typeof(some_map)::iterator = some_map.begin();
But I guess that
typeof(some_map.begin()) iter = some_map.begin();
is only a slight step away. And the auto there looks awfully nice.
On a side note however, what is PCI (32 and 64 bit) throughput?
Depends on the flavor of PCI. Most PCs' PCI bus is 33MHz x 32-bit, giving 133MB/s of bandwidth. That's *shared* between all of your PCI devices, btw (and don't forget that on older motherboards, the north- and southbridges talk to each other using the PCI bus). Some systems have 66MHz PCI, some have 64-bit PCI, some have both.