Bullshit. They could (should) start implementing TR1 and even parts of C++0x right now so that they can have a fully compliant implementation shortly after the standard is officially released. That's what gcc is doing. It also helps the stadndardization process because they can see whether the current draft has serious issues and fix them. gcc has a TR1 implementation and they have started implementing some of the c++0x features (that should be enabled explicitely on the command line)
In any case, VC++ majorly sucks. It's slow (and gets significantly slower at each new version), takes ages to do elementary things (I've seen it take 10 to 20 seconds to open a fucking text file - and a small one at that), has a sucky interface (as of vs2005, the project properties dialog was still not resizeable and full of small text fields meant to contain lots of data, like list of libraries. And don't even get me started on the project configurations dialog), don't really have any features not found anywhere else and they don't even work that well (how easily the code completion system fails). To do anything really useful like some automated refactoring operations, you have to install a third party tool (visual assist)
The project management, with its file/directory hierarchy which is not taken directly from the file system, is completely stupid and annoying (I worked at a MMORPG company on a solution containing dozens of project, and the hierarchy layout in visual studio and the file system were completely different, a fucking nightmare)
It also don't play well with version control tools, because it like to save the contents of the xml in project files in a different order each time, so even a trivial change will show lots of diffs in version control, making it impossible to figure out which compilation setting was changed frmo a version to another, for instance.
I don't know, I just can't find any redeeming feature in this IDE. As far as I'm concerned, when it comes to C++ it's a worthless piece of shit that is only used out of market inertia. It used to be alright, but the performance went down while the features stayed roughly the same except for those awesome 3d toolbars, so now it just doesn't seem to be worth its (rather high) price point compared to free alternatives like eclipse/cdt (or even kdevelop 3.4 if it was available for windows).
And don't come to me saying that a free version is available, its irrelevant to the professional world which have to pay for the dubious privilege of using this thing.
A more than 4gig adressing space is useful for other reasons.
For instance, memory mapped file IO can be a very convenient way to deal with large files. Except that with a 32 bit adressing space, it gets cramped very fast.
Also, sometimes you just need to be able to store a lot of stuff in the heap. For instance, in a painting application dealing with large bitmap buffers, and large undo/redo buffers, a comfortable adressing space let you just let the system swap things out to disk, instead of doing it yourself to free some of that cramped 32bits adressing space.
They have way too much of a "throw-money-at-problems-until-they-disappear" culture to realize that potential, though. That's the kind of culture that result in believing that having a boatload of people working on something ought to produce results faster. And Vista showed how wrong it is.
I'm pretty sure you're trolling, but just in case someone think you're not trolling, the whole faith argument is circular and therefore utterly invalid and stupid.
I'm not a "literal-read" person myself, I'm a "don't read crappy books whose sole claim to fame is to have been written a shitload of time ago" person.
And of course, there is always something to look up to. Last time I checked, there are plenty of hot science topics being researched, like quantum physics. I will look forward to science achieving more progress (and actual miracles, unlike the vaporware ones from religion).
By the way, catholic fundamentalists seem to often forget that it's science that have put a roof above their head, it's science that warm them in the winter, it's science that puts food in their plate, it's science that accomplish life-saving miracles, and it's science that discovered how to marshall those electrons in a controlled way such that they can utter their silly religious claims on the internet. No amount of religious faith ever saved anyone's life, created any medical advance or achieved anything useful.
If you can afford to make your app compile with mingw's gcc (or cygwin's gcc but mingw should be easier), then you may be able to use mudflap, which is a memory debugging system integrated into gcc. You just need to pass -fmudflap, and gcc will instrument the program at compilation time.
One thing is that it used not to properly instrument some really basic C++ operation in gcc 4.1 (I don't remember what exactly, something like copy construction of an object containing pointers) and was reporting spurious leaks because of that. It may have been fixed in 4.2.
You should try it again. It used to be quite low-level and thus complicated, which kind of made it mandatory to use something built on top of it like cogito.
Recently though, they added more high level commands to the base package and day-to-day operations are as easy to do as in other SCMs. The documentation is quite good too. This is incidentaly why I looked at it again, tried it, and I really like it, even though I'm only using it by myself on a personal project (but it's nice to be able to play around using branches etc. when experimenting things)
I used to love subversion, but it really disappointed me performance wise on real world, large projects. I used to think that while it was kind of slow on small projects, maybe it was designed to scale well with large projects with the trade off of being a bit slow even with small things.
The last company I worked for used it on a MMORPG with about 20 programmers, and it turned out that it just doesn't scale well, period. Branching and tagging are fast, but day-to-day operations (update and commits) take forever, which isn't quite a good trade off.
It's a works or doesn't work deal. For some people it works just fine (well, it's slow as hell for most operations though, although not quite as bad as subversion), and for some others it will randomly trash files.
I experienced both situations. When it doesn't work, it manage to randomly screw a file. We'd loose roughly one file every day (that we'd just reinsert from our local copy), good thing it wasn't on a huge project.
Sourcesafe is a product about which microsoft advise "avoid to use it with repositeries more than a few GiB large". This vagueness is really inspiring trust.
I was scrutinizing the thread hoping that I wouldn't have to write a snarky post myself. You just restored my faith in humanity.
Too bad I don't have mod points right now.
Seriously, hooking an emergency push button to "reset" is newsworthy now? I already thought of that... When I was 16 years old. And even then it only managed to occupy my thoughts no more than 10 seconds before I dismissed the idea as stupid and unfunny.
That's assuming a good programmer is one focusing on the details instead of the big picture. Both are probably useful, but it seems that there is an excess of the detail oriented ones, at least where I work, and as a result our codebase has no discernable overall architecture. It looks more like fungus, growing erratically in every direction. It's unstable, bloated and runs like shit too.
The problem with linux gaming is not performance or even technical. The problems with gaming on linux are:
- there is not a large enough market for commercial linux games
- most commercial games are coded like shit and thus way more difficult (and expensive) to port to other platforms than necessary
- open source game development hasn't really taken off so far
"Because in ten years, everything that could benefit from a microchip inside will have a microchip inside. And that means that were all going to own a lot of computers. Your television? A computer. Your cable/IPTV box? A computer. Your cell phone/messaging device? Also a computer. Bedside clock? You guessed it: Itll be a computer, too."
Those things have been computers since at least ten years.
Except alarm clock, because turning them into computers would be utterly pointless, so it didn't happen. That all this junk would be networked has also been predicted a long time ago, and it just doesn't make sense.
The sad thing is that those are mostly empty threats.
There is a french website (www.factornews.com) with editors that have pretty high standards and are known to often criticize games publishers and developers alike quite harshly (and god help you should you release hastily photoshopped preview screenshots). They not even doing this as a full-time job, they rely on advertisements from publishers to pay for their bandwidth, and they're not quite the biggest french video game review website.
Yet they receive free copies of games from publishers all the time, because they have become a respected site that is known for their independance. There are even quite a few professional french game developers commenting the news and posting on their forums regularly.
A friend of mine who write there even received a n-gage 2 from nokia ouf of the blue even though he blasted the first one on the website.
I think that both americans and french are arrogant. We are pot, you are kettle in that respect. But as to your general conclusion "some french are nice, some aren't"... Well, duh.
Instructions are grouped but WITH data dependencies, that are explicitly encoded in the instruction stream, which means that generating code running well on that thing doesn't sound that difficult. IANA compiler expert but I think a compiler able to generate good code for this out of regular, scalar code sounds quite plausible.
I really don't see what was wrong with the old system in france.
The old system was simple and foolproof when it came to counting etc. Take an envelope, one vote bulletin from each candidate, go in the voting booth, put the bulletin you want in the envelope, then you just held in above the slot while the guy pulls the lever and let it fall in. The box was locked and made of transparent plastic.
Then to count the votes, they enlisted volunteers (people at your local voting facility often nagged you to come help after the poll, so it wasn't exclusive in any way shape or form) to count the votes. Unlike the old american system with punch cards, counting the votes was easy and straightforward, and performed by humans.
Double checking the counts by recounting the piles of the various bulletins was also easy. Given all that, I fail to see why they felt the need to move to electronic vote, which is much harder to get right, and can never get as transparent.
Anyone can understand how counting papers work and how the design of the old system was secure, whereas with an electronic system, you have to be a computer scientist with some knowledge of computer and network security to have a chance to know if it's secure.
And even then, you can't assess if the actual system is deployed in a secure way just by looking at the physical installation.
Yeah, drivers, especially graphic card drivers, aren't perfect and you can't expect them to handle gracefully any kind of wrong thing you ask them to do. So sometimes when you do something wrong you cause them to crash. I work in a company developing PC games and we see a lot of blue screens when the rendering engine screw up something. Sometimes it turns out to be a graphic driver bug, but most often it's a bug on our side that cause the driver to crash when trying to do something that was invalid in the first place.
It is news because now you can buy one. But it would have required you to actually read the thing instead of immediately switching to the "you suck this is old news I've seen this 50 years ago" mode.
It's actually more like "give keys to hundred of people and get them all to hide it in the way they wish", so it's even worse than just one guy hiding one key.
Just requiring an internet connection and even a login is not sufficient. Even periodic checks issued by the game server could be disabled. Having half of the application code running on a server (like it is the case in a properly designed client server game), however, is pretty much uncrackable.
Unless of course you consider the possibility or reimplementing your own private server (it has been done for several mmorpgs, including wow), but this is hardly a crack exploiting a weak spot anymore.
It could be said that client server games like MMORPGs are protected by design, hence why it's so effective.
There are many other type of games and applications where having a server taking active part in their functioning doesn't really makes sense, though.
No matter how convoluted and obfuscated your protection is, there is often a weak spot that you can take advantage of.
I remember lots of protections in amiga games and applications doing things like testing an oddly formated track on the floppy disk or applying some complicated calculations on the data from a keyfile to check it's authenticity... Before returning true or false to indicate whether the protection check was successful. Some returned some magic number that was then explicitly compared against it's expected value at some points in the code.
Those things were happening a lot when people integrated third party protection systems. Needless to say, cracking these things was like shooting fishes in a barrel.
The most incompetent protection I've seen was a shareware application that embedded the protection checking function in the keyfile itself (which was actually a shared library).
TGVs have been operating since 1981. And we have had terrorist attacks in France since quite a long time from various separatist groups. Terrorism hasn't been invented on the 11/9/2001, you know.
Weirdly enough, in all that time I don't know of any terrorist choosing to sabotage TGV lines. Maybe it's not as easy as you think.
Bullshit. They could (should) start implementing TR1 and even parts of C++0x right now so that they can have a fully compliant implementation shortly after the standard is officially released. That's what gcc is doing. It also helps the stadndardization process because they can see whether the current draft has serious issues and fix them.
gcc has a TR1 implementation and they have started implementing some of the c++0x features (that should be enabled explicitely on the command line)
In any case, VC++ majorly sucks. It's slow (and gets significantly slower at each new version), takes ages to do elementary things (I've seen it take 10 to 20 seconds to open a fucking text file - and a small one at that), has a sucky interface (as of vs2005, the project properties dialog was still not resizeable and full of small text fields meant to contain lots of data, like list of libraries. And don't even get me started on the project configurations dialog), don't really have any features not found anywhere else and they don't even work that well (how easily the code completion system fails). To do anything really useful like some automated refactoring operations, you have to install a third party tool (visual assist)
The project management, with its file/directory hierarchy which is not taken directly from the file system, is completely stupid and annoying (I worked at a MMORPG company on a solution containing dozens of project, and the hierarchy layout in visual studio and the file system were completely different, a fucking nightmare)
It also don't play well with version control tools, because it like to save the contents of the xml in project files in a different order each time, so even a trivial change will show lots of diffs in version control, making it impossible to figure out which compilation setting was changed frmo a version to another, for instance.
I don't know, I just can't find any redeeming feature in this IDE. As far as I'm concerned, when it comes to C++ it's a worthless piece of shit that is only used out of market inertia. It used to be alright, but the performance went down while the features stayed roughly the same except for those awesome 3d toolbars, so now it just doesn't seem to be worth its (rather high) price point compared to free alternatives like eclipse/cdt (or even kdevelop 3.4 if it was available for windows).
And don't come to me saying that a free version is available, its irrelevant to the professional world which have to pay for the dubious privilege of using this thing.
I also expect/hope that konqueror will be among the applications ported on win32 in KDE4.
imagine a beowulf cluster of human brains!
That's called Internet, and the results have been mixed so far.
A more than 4gig adressing space is useful for other reasons.
For instance, memory mapped file IO can be a very convenient way to deal with large files. Except that with a 32 bit adressing space, it gets cramped very fast.
Also, sometimes you just need to be able to store a lot of stuff in the heap. For instance, in a painting application dealing with large bitmap buffers, and large undo/redo buffers, a comfortable adressing space let you just let the system swap things out to disk, instead of doing it yourself to free some of that cramped 32bits adressing space.
They have way too much of a "throw-money-at-problems-until-they-disappear" culture to realize that potential, though. That's the kind of culture that result in believing that having a boatload of people working on something ought to produce results faster. And Vista showed how wrong it is.
I'm pretty sure you're trolling, but just in case someone think you're not trolling, the whole faith argument is circular and therefore utterly invalid and stupid.
I'm not a "literal-read" person myself, I'm a "don't read crappy books whose sole claim to fame is to have been written a shitload of time ago" person.
And of course, there is always something to look up to. Last time I checked, there are plenty of hot science topics being researched, like quantum physics. I will look forward to science achieving more progress (and actual miracles, unlike the vaporware ones from religion).
By the way, catholic fundamentalists seem to often forget that it's science that have put a roof above their head, it's science that warm them in the winter, it's science that puts food in their plate, it's science that accomplish life-saving miracles, and it's science that discovered how to marshall those electrons in a controlled way such that they can utter their silly religious claims on the internet. No amount of religious faith ever saved anyone's life, created any medical advance or achieved anything useful.
If you can afford to make your app compile with mingw's gcc (or cygwin's gcc but mingw should be easier), then you may be able to use mudflap, which is a memory debugging system integrated into gcc. You just need to pass -fmudflap, and gcc will instrument the program at compilation time.
i ze-Options.html#Optimize-Optionsg ing (maybe slightly outdated)
One thing is that it used not to properly instrument some really basic C++ operation in gcc 4.1 (I don't remember what exactly, something like copy construction of an object containing pointers) and was reporting spurious leaks because of that. It may have been fixed in 4.2.
Search for "mudflap" in the following page: http://gcc.gnu.org/onlinedocs/gcc-4.2.0/gcc/Optim
As well as http://gcc.gnu.org/wiki/Mudflap%20Pointer%20Debug
You should try it again. It used to be quite low-level and thus complicated, which kind of made it mandatory to use something built on top of it like cogito.
Recently though, they added more high level commands to the base package and day-to-day operations are as easy to do as in other SCMs. The documentation is quite good too.
This is incidentaly why I looked at it again, tried it, and I really like it, even though I'm only using it by myself on a personal project (but it's nice to be able to play around using branches etc. when experimenting things)
I used to love subversion, but it really disappointed me performance wise on real world, large projects. I used to think that while it was kind of slow on small projects, maybe it was designed to scale well with large projects with the trade off of being a bit slow even with small things.
The last company I worked for used it on a MMORPG with about 20 programmers, and it turned out that it just doesn't scale well, period. Branching and tagging are fast, but day-to-day operations (update and commits) take forever, which isn't quite a good trade off.
I used both. Sourcesafe is way worse.
It's a works or doesn't work deal. For some people it works just fine (well, it's slow as hell for most operations though, although not quite as bad as subversion), and for some others it will randomly trash files.
I experienced both situations. When it doesn't work, it manage to randomly screw a file. We'd loose roughly one file every day (that we'd just reinsert from our local copy), good thing it wasn't on a huge project.
Sourcesafe is a product about which microsoft advise "avoid to use it with repositeries more than a few GiB large". This vagueness is really inspiring trust.
I was scrutinizing the thread hoping that I wouldn't have to write a snarky post myself. You just restored my faith in humanity.
Too bad I don't have mod points right now.
Seriously, hooking an emergency push button to "reset" is newsworthy now? I already thought of that... When I was 16 years old. And even then it only managed to occupy my thoughts no more than 10 seconds before I dismissed the idea as stupid and unfunny.
I really love dubious disclaimers.
"no disrespect, but your product is shit."
That's assuming a good programmer is one focusing on the details instead of the big picture.
Both are probably useful, but it seems that there is an excess of the detail oriented ones, at least where I work, and as a result our codebase has no discernable overall architecture.
It looks more like fungus, growing erratically in every direction. It's unstable, bloated and runs like shit too.
The problem with linux gaming is not performance or even technical. The problems with gaming on linux are:
- there is not a large enough market for commercial linux games
- most commercial games are coded like shit and thus way more difficult (and expensive) to port to other platforms than necessary
- open source game development hasn't really taken off so far
"Because in ten years, everything that could benefit from a microchip inside will have a microchip inside. And that means that were all going to own a lot of computers. Your television? A computer. Your cable/IPTV box? A computer. Your cell phone/messaging device? Also a computer. Bedside clock? You guessed it: Itll be a computer, too."
Those things have been computers since at least ten years.
Except alarm clock, because turning them into computers would be utterly pointless, so it didn't happen.
That all this junk would be networked has also been predicted a long time ago, and it just doesn't make sense.
The sad thing is that those are mostly empty threats.
There is a french website (www.factornews.com) with editors that have pretty high standards and are known to often criticize games publishers and developers alike quite harshly (and god help you should you release hastily photoshopped preview screenshots). They not even doing this as a full-time job, they rely on advertisements from publishers to pay for their bandwidth, and they're not quite the biggest french video game review website.
Yet they receive free copies of games from publishers all the time, because they have become a respected site that is known for their independance. There are even quite a few professional french game developers commenting the news and posting on their forums regularly.
A friend of mine who write there even received a n-gage 2 from nokia ouf of the blue even though he blasted the first one on the website.
I think that both americans and french are arrogant. We are pot, you are kettle in that respect.
But as to your general conclusion "some french are nice, some aren't"... Well, duh.
There are detailed informations available, including the isa of their prototype.
http://www.cs.utexas.edu/~trips/publications.html
Instructions are grouped but WITH data dependencies, that are explicitly encoded in the instruction stream, which means that generating code running well on that thing doesn't sound that difficult. IANA compiler expert but I think a compiler able to generate good code for this out of regular, scalar code sounds quite plausible.
I really don't see what was wrong with the old system in france.
The old system was simple and foolproof when it came to counting etc. Take an envelope, one vote bulletin from each candidate, go in the voting booth, put the bulletin you want in the envelope, then you just held in above the slot while the guy pulls the lever and let it fall in.
The box was locked and made of transparent plastic.
Then to count the votes, they enlisted volunteers (people at your local voting facility often nagged you to come help after the poll, so it wasn't exclusive in any way shape or form) to count the votes.
Unlike the old american system with punch cards, counting the votes was easy and straightforward, and performed by humans.
Double checking the counts by recounting the piles of the various bulletins was also easy.
Given all that, I fail to see why they felt the need to move to electronic vote, which is much harder to get right, and can never get as transparent.
Anyone can understand how counting papers work and how the design of the old system was secure, whereas with an electronic system, you have to be a computer scientist with some knowledge of computer and network security to have a chance to know if it's secure.
And even then, you can't assess if the actual system is deployed in a secure way just by looking at the physical installation.
Oh, I fully agree.
This one of the numerous reasons I hate being stuck developing on an OS with such a mediocre architecture.
Yeah, drivers, especially graphic card drivers, aren't perfect and you can't expect them to handle gracefully any kind of wrong thing you ask them to do.
So sometimes when you do something wrong you cause them to crash. I work in a company developing PC games and we see a lot of blue screens when the rendering engine screw up something.
Sometimes it turns out to be a graphic driver bug, but most often it's a bug on our side that cause the driver to crash when trying to do something that was invalid in the first place.
It is news because now you can buy one.
But it would have required you to actually read the thing instead of immediately switching to the "you suck this is old news I've seen this 50 years ago" mode.
It's actually more like "give keys to hundred of people and get them all to hide it in the way they wish", so it's even worse than just one guy hiding one key.
Just requiring an internet connection and even a login is not sufficient. Even periodic checks issued by the game server could be disabled. Having half of the application code running on a server (like it is the case in a properly designed client server game), however, is pretty much uncrackable.
Unless of course you consider the possibility or reimplementing your own private server (it has been done for several mmorpgs, including wow), but this is hardly a crack exploiting a weak spot anymore.
It could be said that client server games like MMORPGs are protected by design, hence why it's so effective.
There are many other type of games and applications where having a server taking active part in their functioning doesn't really makes sense, though.
No matter how convoluted and obfuscated your protection is, there is often a weak spot that you can take advantage of.
I remember lots of protections in amiga games and applications doing things like testing an oddly formated track on the floppy disk or applying some complicated calculations on the data from a keyfile to check it's authenticity... Before returning true or false to indicate whether the protection check was successful.
Some returned some magic number that was then explicitly compared against it's expected value at some points in the code.
Those things were happening a lot when people integrated third party protection systems. Needless to say, cracking these things was like shooting fishes in a barrel.
The most incompetent protection I've seen was a shareware application that embedded the protection checking function in the keyfile itself (which was actually a shared library).
TGVs have been operating since 1981. And we have had terrorist attacks in France since quite a long time from various separatist groups. Terrorism hasn't been invented on the 11/9/2001, you know.
Weirdly enough, in all that time I don't know of any terrorist choosing to sabotage TGV lines. Maybe it's not as easy as you think.