We tested the application with Rational Purify and Visual Leak Detector, but we found no memory leaks.
Thats because you were using the wrong tools and looking at the wrong thing. The debug version of the MSVCRT can detect double-frees, try using that next time. Although I thought Purify could too (haven't used it in a long time), so maybe you just had that part turned off. Rejecting your assumptions is an important part of debugging.
our programmers deleted C++ CWnd objects using 'operator delete', whereas they should have used 'DestroyWindow' instead.
A fairly common beginners mistake in MFC code. It's a weakness of the toolkit more than the language, of course, and a debug build should have caught the double free. If it really was a double free - the most common result of deleting a CWnd like that is a crash when an event map tries to handle a queued event for the window. I'm not really convinced that you've actually solved your problem there, or (if you have) that you understood what the real problem was in the first place. But anyway.
We actually spent the last 4 months trying to figure out what was happenning.
4 months to detect problems caused by well known beginners errors in MFC? Eh.
If we had gargage collection, there would be no problem.
GC wouldn't have fixed this problem. A different object tracking scheme might have (and since Java and most other GC languages don't have determenstic finalization, they don't have destructors, so you wouldn't have the disparity between C++ deletion and MFC destruction).
The fact that C++ does not have garbage collection has costed billions of dollars in the IT industry.
Brought to you by the "numbers I pulled out of my ass department". Garbage collection technology has improved greatly in the last 10 years, and it's getting very very good, but there still is not one perfect scheme for all cirucmstances, and there are still very definite tradeoffs involved in it. Certainly I could justify a statement that Java has cost the industry billions as easily as I could defend such a statement about C++ (but I wouldn't make it, because I'd be making the numbers up).
For the shake of few embedded applications that use C++, the rest of us have to suffer. Garbage collection can be optional in C++...go figure why they deny it!
There are actually very important basic language semantics in C++ that make implementing "plug-in" garbage collection almost impossible. There is nothing in the standard that explicitly prevents you from implementing GC in the compiler and standard libraries. There's a reason why people haven't done it, and it's not because they're afraid of the embedded developers. You'd need different language semantics and then - suprise - it's not C++ anymore.
It's abuse because regardless of the error At&T may or may not have put into the technologies, the people who invented and currently license MPEG4 did so without AT&Ts help. AT&T doesn't deserve any of that money at all - what they did was independently developed. The point of patents is to encourage the development *and release* of new technologies. If you don't productize a patent, but instead use it to sue someone else who independently developed and did productize it, that is abuse of the system and contrary to the foundation of patent law.
I see absolutely no reason why using the word proven should invoke any of the behaviors you mention. It doesn't (to a reasonable person) in any other area where you would use the word proven. In court, you might talk about someone proving a case, but that doesn't mean that it won't be overturned on appeal, or that new evidence might not appear. A design might be proven, but that doesn't mean that requirements or circumstances might change. If you think use of the word proven is what distinguishes science and religion, I can't think that you know very much about either one.
I respectfully disagree. There are a tremendous number of uses of the word "proven", almost none of which mean "absolute Platonic ideal of Truth". If (and as I said above, I'm repeating what I read here, not my knowledge) the Big Bang model has repeatedly held up when tested and compared to observation, it is perfectly reasonable to call it "proven", just as you might call a model of car that has performed well in the field a "proven design".
Taken in the context of the memo it is quite clear that Deustche was using "theory" in the derogatory sense, not in the technical sense. He refers to it as "just somebodies opinion".
I'm not an astrophysicist (I can't even spell it!) and I'm not even an interested amateur, but the blog linked from the previous covererage of this story said that the Big Bang model has been extensively proven out by observation, and while the origin of the bang itself is unknown, what happened during and immediately after the Bang is considered extremely solid and proven.
You *can* seperate them, of course (xcompmgr, glxcompmgr), but integration with the window manager provides a number of possibilities that aren't present with a seperate comp manager, because it has knowledge of the window managers internals. The previous example of shading window chrome seperate from the window itself isn't possible unless you merge with the window manager. Now, you *could* still keep it as a seperate process and write special-case code for every window manager you can think of. But thats stupid.
Seperating interrelated components that are fundamentally linked and have dependencies on each others behavior just because some retard who's read but doesn't understand some comp sci books mouths off on Slashdot is lousy engineering. Especially when said retard doesn't actually know the design or the implemetation.
For a lot of effects, the comp manager and the window manager have to have a high degree of interaction and knowledge of each other. For example, in some CVS versions of Metacity, the window can be transparent while the window decorations are not. This is impossible without merging the comp manager and the window manager. It gets even more complicated when you bring Xgl into the mix. This is not a "braindead" design. It is, in fact, the only possible design. Which you'd know if you worked on or with these projects instead of high handed proclamations about sanity.
Any game with an online component will have such a disclaimer. Obviously you can't blaime Eidos when an 11 year old korean girl teabags your corpse while painting you with a spray of giant dog testicles.
There's no EULA for video games (you didn't click I Agree, did you?) and therefore there it isn't illegal (not even under the DMCA) to modify (your saved game, on your hardware, not the actual game image itself) it, or even to tell other people how to do it. I still think it's stupid to put any blame at all on the ESRB over this. The content wasn't "in the game" in any reasonable sense. Futhermore, the actual hidden content shouldn't have raised the rating at all anyway.
Rockstare was foolish for leaving the media in place (the game was probably stripped at the last minute), but the issue has been *vastly* overblown by people looking to cash in on any sort of controversy, even a manufactured one. I'd wager that a signifigant portion of the people who're upset about this whole thing aren't even aware of what the "hot coffee" content is. It's certainly not described in detail in any of these self serving press releases that get put out. I wonder how many people believe that it is actual pornographic content, as opposed to something rather less stimulating than in a typical PG movie.
Blackberry aren't heroes in this at all. I don't know if the patents are reasonable, I haven't read them (and I find the politically convenient overturning of them after years of being upheld extremely suspicious, to say the least), but I do know that Blackberry has consistently acted in bad faith in the entire case. Coming the merest sliver short of outright falsification of evidence - in an attempt to prove prior art they gave a demonstration of older software that sent pager messages - but they modified the supposedly prior art software in order to get the demo to work!
If you don't have the money to build a cold fusion reactor, you don't know that your idea works. Check out all the "free energy" crap (and some of it even manages to get patented) for some great examples of people just making shit up. The purpose of patents is to promote progress and reward society. If you can't or won't productize your patent and give society the benefit of it, then you don't need to have it - the patent protection (and the money from it) can go to someone who is actually using the patent.
I know all about the Windows security model and in fact regularly mention it in these sort of discussions, except it's not relevant, because we're looking at practical exposure issues here. Hardly anyone runs as anything except Administrator on Windows, and it's not beacause "secure systems are a pain in the ass" - it's because secure *Windows* systems are pain in the ass, because while MS has the security model, they don't have it integrated and modularized into the interface, and they haven't managed to shift the Windows culture away from the single-user model, and have really made very little effort to do so.
If Linux had 95% market share, there'd be a lot more exploits and social engineering attacks against them, and they'd probably work, but people still wouldn't run as root, just like they don't on OS X. And it would still be a different threat model than current attacks against Windows. And perhaps we'd see more of the "delete all your files" worms, because creating botnets would be harder than it is today.
The point was not to get into an argument about the theoretical or actual merits of Linux vs Windows security - the point was to point out that the article is claiming that Linux security benefits don't matter based on an inaccurate threat model. It's like saying that Linux isn't any more secure than Windows because it doesn't help if someone beats the hell out of you with a pipe.
The article, and most of the posters here, are missing an even more important point. There are very few viruses that just delete all your files anymore. The two major threats the PCs these days are spyware (a threat Linux has greater resistance to, because modifying plugins and such usually requires root permissions (with some exceptions, such as Firefox plugins - you're down to app level security there, on both platforms) and zombies to add your PC to a botnet, which Linux is more resistant to, again, because of not running as root. Yes, you have roughly the same level of resistance to "delete all your files" viruses, which are rare these days relative to the amount of "take over your machine as a botnet" viruses.
All that, of course, is ignoring practical differences in the security history of the platforms and common applications, as well as the lower profile of Linux in terms of automated threats. Direct attacks (ie, someone is specifically attacking you) are just as much of a threat, and many distros are vulnerable to attacks in an unpatched state. Linux is *not* a panacea against threats (and only idiots portray it as such), but it is a very different threat profile than a Windows machine.
About 8 months back I attempted to embed Gecko within an existing graphical user interface toolkit. Having heard so much from the open source community about how easy it was to do, I thought it would go rather quickly.
I'm kinda curious who you heard that from. Embedding Mozilla when you've got an already existing binding (such as for Gtk) is trivial, but writing the binding from scratch is no easy task. Gecko is a beast and the need to integrate its own drawing layer with yours makes it hard to integrate as an embedded browser. In its defense, it was never designed or intended for such a purpose. KHTML is only easier if you're using Qt (and you *did* obey the license, right?), otherwise you need to provide mappings from all the Qt primitives used by KHTML to your own. Easier than embedding Gecko, but still not trivial.
I have to agree. You say it can't be changed due to efficency and core library issues, and then list a bunch of components for which there are no core libraries in C++ and which are rarely if ever CPU bound. Further, if you're asking this question then you aren't a highly experienced guru in this field and thats what you need to be to write these sort of applications in C++. Managed Code (tm), as in.NET, is not your only option but you should look at something higher level and more robust than C++. Haskell or one of the other functional languages might be a good idea.
Test, test, test. Use test driven development if you can. Have a good test harness and use it all the time. Do the stereotypical "random input" tests. Test each and every component to destruction white-box style and then double test all your interfaces. Design by contract can help here. Use a tinderbox that runs continual builds. Maintain strict version controls. Maintain code discipline (getting rid of C++ helps here too). Realize that you probably do not (currently) have the skills to produce the kind of product you are talking about and be willing to commit the time and effort to tear up mistakes, to start over and to teach yourself. What you are attempting to do is not easy.
Some people believe (whether it be for religious reasons or whatever) this conservative definition of the family unit has value and should be preserved.
I don't know about you, but when someone decides to enforce a social policy because they believe a certain thing has merit, they should be obligated to demonstrate that it *actually has merit* before anyone pays them more attenton than a pile of dogshit by the side of the road.
Blizzard is full of 10 different kinds of shit anyway. I've seen religious discussons/flamewars go on for literally *hours* in Barrens chat, and calling people "gay" as an insult is probably second only to "noob" in popularity. They enforce these policies at a whim and when it's convenient, not consistently and equally. Note that it took advertising for a gay guild to get a rep involved - previous advertising for Christian guilds didn't bug anyone, whether the allow it in the future or not.
And allowing "hetero" marriage of in-game characters, but not "gay" is the most ridiculous thing I've ever heard. Firstly, theres no game mechanic of marriage - it's purely a social event. Secondly, a large proportion of players play differently sexed avatars. Lastly, the appropriate reaction to a player who is offended by this sort of ridiculousness is "shut the hell up you stupid bigot".
StarForce, and all DRM software, *actively* and *intentionally* interferes with the operation of other programs on your computer (totally aside from other issues like interefering with burning, which is a bug). It actively attempts to prevent you from exercising rights you legally posess (or would if you hadn't signed them away in a ridiculous EULA), and it actively attempts to subvert your attempt to do legal things with your game.
From that standpoint, of course, all DRM is malware, a statement I would agree with. The iTunes CD burning driver is not malware (although the DRM stuff is).
As a final point, bugs and other issues in copy protection software are extremely common, and are rarely fixed. This is partially because they don't get the testing the game does (they're usually hooked in late in the development cycle) and more importantly, the authors and producers of such softare are in an active, adversarial relationship with you - they are trying to control your computer, often (if you're technically oriented) in ways you don't approve of. That is not a situation with engenders respect, and often actively causes dismissivness and animosity. I would be extremely suprised if the honest reaction of StarForce developers and execs to reports of flaws is not "it wouldn't break if they wouldn't be trying to pirate it".
If you don't like the rules of your community, you can choose to not participate. This is called "leaving" and is exercising the free will libertarians like to talk about so much. I can't help but notice that they've done a really piss poor job of ever living up to any of these principles, which makes me think that, taken as a whole, they're a bunch of whiny people who like to have things like streets and infrastructure and education and just wish that all that would stay while the nasty government goes away.
Of course, thats totally aside from whether or not the definition of "non-essential" is reasonable or even consistent - since it almost inevitably is "anything I don't approve of that I think my taxes pay for".
There ought to be no government libraries. If people want libraries, they can build them and provide for them on a voluntary basis and choose the rules based on their whims.
Libertarian political rhetoric is retarded. You know what happens when a bunch of people work together to provide common resources and to regulate themselves as a community? You get what is called a "government".
If I don't need an EULA to be granted permission to use the software, then what do I need it for?
Because the owner of the copyright won't give you a copy unless you agree to one.
and how does it have any legal standing at all?
Because judges have tended to agree that clicking that "I agree" box in the installer is legally equivilent to signing a contract. There are *tons* of very persuasive arguments against it (contracts of adhesion, lack of consideration, and a term I forget about post-conditions on sales), but for some reason those have never proved effective Personally, I think it's a miscarriage of justice.
Software distributed without an EULA loses none of it's copyright protections (it's just like a book or music CD) and it's perfectly feasible to commercially sell software with only those protections. EULAs are one the nastier little bits of social engineering foisted onto society.
EULAs have a different legal basis, and it's not founded on needing a license to use software. It is, in fact, the ubiquity of EULAs that have contributed to the perception that you do need a license to use software (a perception which is not supported in any way in written law). In fact, I believe, as do many people, that EULAs are on extremely shaky legal ground, and the main thing supporting them and convincing judges to allow them to have legal force is the fact that they've existed so long without serious challenge - we allowed them to become the norm and now, despite the weakness of EULAs, people (including judges) grant them power because "everyone knows" about them. In a recent case where someone argued against an EULA because he wasn't shown it (ever), the judge rejected his argument because he should have assumed there was an EULA and sought it out before installing the software.
Thats because you were using the wrong tools and looking at the wrong thing. The debug version of the MSVCRT can detect double-frees, try using that next time. Although I thought Purify could too (haven't used it in a long time), so maybe you just had that part turned off. Rejecting your assumptions is an important part of debugging.
our programmers deleted C++ CWnd objects using 'operator delete', whereas they should have used 'DestroyWindow' instead.
A fairly common beginners mistake in MFC code. It's a weakness of the toolkit more than the language, of course, and a debug build should have caught the double free. If it really was a double free - the most common result of deleting a CWnd like that is a crash when an event map tries to handle a queued event for the window. I'm not really convinced that you've actually solved your problem there, or (if you have) that you understood what the real problem was in the first place. But anyway.
We actually spent the last 4 months trying to figure out what was happenning.
4 months to detect problems caused by well known beginners errors in MFC? Eh.
If we had gargage collection, there would be no problem.
GC wouldn't have fixed this problem. A different object tracking scheme might have (and since Java and most other GC languages don't have determenstic finalization, they don't have destructors, so you wouldn't have the disparity between C++ deletion and MFC destruction).
The fact that C++ does not have garbage collection has costed billions of dollars in the IT industry.
Brought to you by the "numbers I pulled out of my ass department". Garbage collection technology has improved greatly in the last 10 years, and it's getting very very good, but there still is not one perfect scheme for all cirucmstances, and there are still very definite tradeoffs involved in it. Certainly I could justify a statement that Java has cost the industry billions as easily as I could defend such a statement about C++ (but I wouldn't make it, because I'd be making the numbers up).
For the shake of few embedded applications that use C++, the rest of us have to suffer. Garbage collection can be optional in C++...go figure why they deny it!
There are actually very important basic language semantics in C++ that make implementing "plug-in" garbage collection almost impossible. There is nothing in the standard that explicitly prevents you from implementing GC in the compiler and standard libraries. There's a reason why people haven't done it, and it's not because they're afraid of the embedded developers. You'd need different language semantics and then - suprise - it's not C++ anymore.
It's abuse because regardless of the error At&T may or may not have put into the technologies, the people who invented and currently license MPEG4 did so without AT&Ts help. AT&T doesn't deserve any of that money at all - what they did was independently developed. The point of patents is to encourage the development *and release* of new technologies. If you don't productize a patent, but instead use it to sue someone else who independently developed and did productize it, that is abuse of the system and contrary to the foundation of patent law.
I see absolutely no reason why using the word proven should invoke any of the behaviors you mention. It doesn't (to a reasonable person) in any other area where you would use the word proven. In court, you might talk about someone proving a case, but that doesn't mean that it won't be overturned on appeal, or that new evidence might not appear. A design might be proven, but that doesn't mean that requirements or circumstances might change. If you think use of the word proven is what distinguishes science and religion, I can't think that you know very much about either one.
I respectfully disagree. There are a tremendous number of uses of the word "proven", almost none of which mean "absolute Platonic ideal of Truth". If (and as I said above, I'm repeating what I read here, not my knowledge) the Big Bang model has repeatedly held up when tested and compared to observation, it is perfectly reasonable to call it "proven", just as you might call a model of car that has performed well in the field a "proven design".
It's mine, I wasn't cut & paste quoting. Links in TFA themselves have links to the memo.
Taken in the context of the memo it is quite clear that Deustche was using "theory" in the derogatory sense, not in the technical sense. He refers to it as "just somebodies opinion".
I'm not an astrophysicist (I can't even spell it!) and I'm not even an interested amateur, but the blog linked from the previous covererage of this story said that the Big Bang model has been extensively proven out by observation, and while the origin of the bang itself is unknown, what happened during and immediately after the Bang is considered extremely solid and proven.
You *can* seperate them, of course (xcompmgr, glxcompmgr), but integration with the window manager provides a number of possibilities that aren't present with a seperate comp manager, because it has knowledge of the window managers internals. The previous example of shading window chrome seperate from the window itself isn't possible unless you merge with the window manager. Now, you *could* still keep it as a seperate process and write special-case code for every window manager you can think of. But thats stupid.
Seperating interrelated components that are fundamentally linked and have dependencies on each others behavior just because some retard who's read but doesn't understand some comp sci books mouths off on Slashdot is lousy engineering. Especially when said retard doesn't actually know the design or the implemetation.
For a lot of effects, the comp manager and the window manager have to have a high degree of interaction and knowledge of each other. For example, in some CVS versions of Metacity, the window can be transparent while the window decorations are not. This is impossible without merging the comp manager and the window manager. It gets even more complicated when you bring Xgl into the mix. This is not a "braindead" design. It is, in fact, the only possible design. Which you'd know if you worked on or with these projects instead of high handed proclamations about sanity.
Any game with an online component will have such a disclaimer. Obviously you can't blaime Eidos when an 11 year old korean girl teabags your corpse while painting you with a spray of giant dog testicles.
Rockstare was foolish for leaving the media in place (the game was probably stripped at the last minute), but the issue has been *vastly* overblown by people looking to cash in on any sort of controversy, even a manufactured one. I'd wager that a signifigant portion of the people who're upset about this whole thing aren't even aware of what the "hot coffee" content is. It's certainly not described in detail in any of these self serving press releases that get put out. I wonder how many people believe that it is actual pornographic content, as opposed to something rather less stimulating than in a typical PG movie.
Blackberry aren't heroes in this at all. I don't know if the patents are reasonable, I haven't read them (and I find the politically convenient overturning of them after years of being upheld extremely suspicious, to say the least), but I do know that Blackberry has consistently acted in bad faith in the entire case. Coming the merest sliver short of outright falsification of evidence - in an attempt to prove prior art they gave a demonstration of older software that sent pager messages - but they modified the supposedly prior art software in order to get the demo to work!
If you don't have the money to build a cold fusion reactor, you don't know that your idea works. Check out all the "free energy" crap (and some of it even manages to get patented) for some great examples of people just making shit up. The purpose of patents is to promote progress and reward society. If you can't or won't productize your patent and give society the benefit of it, then you don't need to have it - the patent protection (and the money from it) can go to someone who is actually using the patent.
If Linux had 95% market share, there'd be a lot more exploits and social engineering attacks against them, and they'd probably work, but people still wouldn't run as root, just like they don't on OS X. And it would still be a different threat model than current attacks against Windows. And perhaps we'd see more of the "delete all your files" worms, because creating botnets would be harder than it is today.
The point was not to get into an argument about the theoretical or actual merits of Linux vs Windows security - the point was to point out that the article is claiming that Linux security benefits don't matter based on an inaccurate threat model. It's like saying that Linux isn't any more secure than Windows because it doesn't help if someone beats the hell out of you with a pipe.
All that, of course, is ignoring practical differences in the security history of the platforms and common applications, as well as the lower profile of Linux in terms of automated threats. Direct attacks (ie, someone is specifically attacking you) are just as much of a threat, and many distros are vulnerable to attacks in an unpatched state. Linux is *not* a panacea against threats (and only idiots portray it as such), but it is a very different threat profile than a Windows machine.
I'm kinda curious who you heard that from. Embedding Mozilla when you've got an already existing binding (such as for Gtk) is trivial, but writing the binding from scratch is no easy task. Gecko is a beast and the need to integrate its own drawing layer with yours makes it hard to integrate as an embedded browser. In its defense, it was never designed or intended for such a purpose. KHTML is only easier if you're using Qt (and you *did* obey the license, right?), otherwise you need to provide mappings from all the Qt primitives used by KHTML to your own. Easier than embedding Gecko, but still not trivial.
Test, test, test. Use test driven development if you can. Have a good test harness and use it all the time. Do the stereotypical "random input" tests. Test each and every component to destruction white-box style and then double test all your interfaces. Design by contract can help here. Use a tinderbox that runs continual builds. Maintain strict version controls. Maintain code discipline (getting rid of C++ helps here too). Realize that you probably do not (currently) have the skills to produce the kind of product you are talking about and be willing to commit the time and effort to tear up mistakes, to start over and to teach yourself. What you are attempting to do is not easy.
I don't know about you, but when someone decides to enforce a social policy because they believe a certain thing has merit, they should be obligated to demonstrate that it *actually has merit* before anyone pays them more attenton than a pile of dogshit by the side of the road.
And allowing "hetero" marriage of in-game characters, but not "gay" is the most ridiculous thing I've ever heard. Firstly, theres no game mechanic of marriage - it's purely a social event. Secondly, a large proportion of players play differently sexed avatars. Lastly, the appropriate reaction to a player who is offended by this sort of ridiculousness is "shut the hell up you stupid bigot".
From that standpoint, of course, all DRM is malware, a statement I would agree with. The iTunes CD burning driver is not malware (although the DRM stuff is).
As a final point, bugs and other issues in copy protection software are extremely common, and are rarely fixed. This is partially because they don't get the testing the game does (they're usually hooked in late in the development cycle) and more importantly, the authors and producers of such softare are in an active, adversarial relationship with you - they are trying to control your computer, often (if you're technically oriented) in ways you don't approve of. That is not a situation with engenders respect, and often actively causes dismissivness and animosity. I would be extremely suprised if the honest reaction of StarForce developers and execs to reports of flaws is not "it wouldn't break if they wouldn't be trying to pirate it".
Of course, thats totally aside from whether or not the definition of "non-essential" is reasonable or even consistent - since it almost inevitably is "anything I don't approve of that I think my taxes pay for".
Libertarian political rhetoric is retarded. You know what happens when a bunch of people work together to provide common resources and to regulate themselves as a community? You get what is called a "government".
Because the owner of the copyright won't give you a copy unless you agree to one.
and how does it have any legal standing at all?
Because judges have tended to agree that clicking that "I agree" box in the installer is legally equivilent to signing a contract. There are *tons* of very persuasive arguments against it (contracts of adhesion, lack of consideration, and a term I forget about post-conditions on sales), but for some reason those have never proved effective Personally, I think it's a miscarriage of justice.
Software distributed without an EULA loses none of it's copyright protections (it's just like a book or music CD) and it's perfectly feasible to commercially sell software with only those protections. EULAs are one the nastier little bits of social engineering foisted onto society.
EULAs have a different legal basis, and it's not founded on needing a license to use software. It is, in fact, the ubiquity of EULAs that have contributed to the perception that you do need a license to use software (a perception which is not supported in any way in written law). In fact, I believe, as do many people, that EULAs are on extremely shaky legal ground, and the main thing supporting them and convincing judges to allow them to have legal force is the fact that they've existed so long without serious challenge - we allowed them to become the norm and now, despite the weakness of EULAs, people (including judges) grant them power because "everyone knows" about them. In a recent case where someone argued against an EULA because he wasn't shown it (ever), the judge rejected his argument because he should have assumed there was an EULA and sought it out before installing the software.