I agree with most of what you are saying, but you cannot knock newer performers from imitating older ones, and morphing styles. That is no indication of their talent. Every generation of every form of art has done that. Even legends the likes of Led zepplin and Pink Floyd had their respective heroes, and copied their styles to a degree. That is how an artform evolves. Though, I do agree that there is a lot of crap out there today. Britney is hot, but talentless. Christina has an incredible voice, but her music is tripe. *I* think Branch is a very talented young lady, and so does the legendary Carlos Santana. You may not agree, but unlike the likes of Britney, et. al., she can actually play an instrument!
Neither is an affront to any trademark. In fact misusing "Linux" to refer to the entire system rather than the kernel would be improper use of the trademark, something like calling all sodas "Coke" or all photocopiers "Xerox".
In the Southern US, it is common to call all soda/pop/soda pop/whatever Coke.
Waitress: What do y'all want to drink?
Me: A Coke
Waitress: What kind?
Me: Coke
Waitress: OK!
Actually there is more to it than that. You can't always arbitrarily pick the one with the "better" notation. First off O(n) sorts only work for a special class of elements. What if--for arguments sake--the O(n) is not a stable sort and you need one? What if the constant is so large that for your small data set, the O(n^2) is actually faster, such that C1*O(n^2) C2*O(n) for your n. What if the data element is large or on a very slow medium and the O(n^2) does significantly less data movement?
etc.
Oh god, where do I begin? There is a lot of math in everyday programming. A don't think I ever wrote a program that didn't use it. Graphics, transformation, conversions, periodic processing, signal processing, you name it. Even if you could get by without it *in* the program, what about validation? Rate Monotonic analysis, CPU utilization, throughput. Try doing this without math.
As for your comments about Big-O (and there are others, not just O), you have no idea what you are talking about. Big-O bounds the upper limit of an algorithm in time relative the number of elements being processed. If it take constant time regardless of the amount of data (i.e., array indexing) then it is constant time or O(1). If the time grows linearly with the amount of data (sequential search), then it is O(n). If it grows exponentially (brute force matrix multiplicition), it is O(n^2). If it grows logorithmically (binary search), it is O(ln n). You should really take a course in alorithmic analysis. There is a lot more to it than just guessing. It is a mathimatical analysis of how an alorthim will perform.
First off, how the hell would you know, Mr. Anonymous Coward? Secondly, software that does what it is required to do doesn't do anything useful? You are just trying to be an asshole. Now put down the Star wars figures, and leave your mom's basement.
I *see* and deal with requirements all the time. My company does embedded systems for the military. Requirement specifications aren't just what the "customer wants." They are a contract agreement of what the customer is paying for. Believe me, if we didn't meet what is in the SRS (Sofware Requirements Specification) we would lose funding for current contracts, and all future ones. Your company may not do specs, but as an SEI level 5 org. (and CMM level 4, trying for 5) we are required to.
No, your specs ARE your requirements. It is called an SRS (Software Requirements Specification). It is not just what the customer wants. It states, in no uncertain terms, what your system is to accomplish. An SRS may even state how it is to be done if there is a necessary constaint for such.
A design is not an opinion. It states, again in no uncertain terms, how the system is to be implemented.
Deviate from either and you may lose the contract for failing to create a system that does what it is suppose to.
Then your teacher is an idiot. You have to have requirements that explicitly state what the system is to do. This is what you test to in order to validate your software to your customer. I write real-time embedded systems with limited memory resources and hard dead-lines. If you don't know how to quantify how large your program will be or if it will meet its deal-lines, don't come work for me.
Re:Speaking as a Christian D&D player
on
D&D Is 30
·
· Score: 1
Just had to say: That was the funniest damn sig. I have EVER read. Thanks for the laugh!
Reminds me of: "Save the whales, and trade them valuable prizes!"
Pass by reference allows you to change what is referred to, not just the referred data.
Completely untrue, you cannot change what object is being referred to. References are arkin to constant pointers. You can change the object's value, but not what object you are dealing with.
Depends on the error. The exceptions mechanism requires a lot more typing and debugging that returning NULL if the function returns NULL. But why is the choice limitted to return codes and exceptions? Isn't there a middle ground?
I would argue that checking return codes is, in the end, more typing. But I also would not weigh the correctness of the mechanism I use by the amount of typing required.
I don't think it should be return codes vs exceptions vs what-else-is-there. It shouldn't be all or nothing. Use what is appriopriate for the situation. I think it would depend on what you plan to do after you get that NULL return. If your code can continue on the same general path, then fine. But, if you need to escape from that path completely, then exceptions are more appriopriate. They are also better for handling erroneous conditions when you are several scopes (both blocks and function calls) in and need to exit them immediately.
First off, if error recovery is not part of your design, you are a pretty shitty-ass programmer. Secondly, exceptions are much easier and cleaner to deal with than return codes. By providing an alternate path for errors, exceptions alleviate the need to check the return value of every function call, and the need to then implement many, many paths in your code to skip sections once an error is found. Exception don't have to be handle immediately at the return point, they can be delayed (scope-wise) until a point where is makes sense. Plus, debugging is much simpler. Without multitude error control paths in the code, path converage is easy.
The only thing moderately "3D" that they did was raycasting, which really isn't actually 3D - it only looks that way.
What the hell are you talking about? EVERYTHING presented on your display as 3D isn't actually 3D, but only looks that way. The methods used to create the image do not change that fact.
I believe his point was that the DirectX library handles a lot of the work that went into the bulk of the size of pre-3d accelerator games, such as Wolfensein 3D and Doom I & II. So, he's starting out with an advantage in size.
Just the fact he would use the timer's interrupt to handle independent events shows he's never done any real-time programing. The latency alone would kill you.
I agree with most of what you are saying, but you cannot knock newer performers from imitating older ones, and morphing styles. That is no indication of their talent. Every generation of every form of art has done that. Even legends the likes of Led zepplin and Pink Floyd had their respective heroes, and copied their styles to a degree. That is how an artform evolves. Though, I do agree that there is a lot of crap out there today. Britney is hot, but talentless. Christina has an incredible voice, but her music is tripe. *I* think Branch is a very talented young lady, and so does the legendary Carlos Santana. You may not agree, but unlike the likes of Britney, et. al., she can actually play an instrument!
Neither is an affront to any trademark. In fact misusing "Linux" to refer to the entire system rather than the kernel would be improper use of the trademark, something like calling all sodas "Coke" or all photocopiers "Xerox".
In the Southern US, it is common to call all soda/pop/soda pop/whatever Coke.
Waitress: What do y'all want to drink?
Me: A Coke
Waitress: What kind?
Me: Coke
Waitress: OK!
Yeah, too bad the info is record on the *sides* of the groove, not the surface and not bottom. Just taking a picture does no good.
Agreed.
Actually there is more to it than that. You can't always arbitrarily pick the one with the "better" notation. First off O(n) sorts only work for a special class of elements. What if--for arguments sake--the O(n) is not a stable sort and you need one? What if the constant is so large that for your small data set, the O(n^2) is actually faster, such that C1*O(n^2) C2*O(n) for your n. What if the data element is large or on a very slow medium and the O(n^2) does significantly less data movement? etc.
Opps! You are right. I was so annoyed by his incredibly ignorant comment, I guess my mind spent more time ranting than thinking! My bad. Thanks.
Oh god, where do I begin? There is a lot of math in everyday programming. A don't think I ever wrote a program that didn't use it. Graphics, transformation, conversions, periodic processing, signal processing, you name it. Even if you could get by without it *in* the program, what about validation? Rate Monotonic analysis, CPU utilization, throughput. Try doing this without math. As for your comments about Big-O (and there are others, not just O), you have no idea what you are talking about. Big-O bounds the upper limit of an algorithm in time relative the number of elements being processed. If it take constant time regardless of the amount of data (i.e., array indexing) then it is constant time or O(1). If the time grows linearly with the amount of data (sequential search), then it is O(n). If it grows exponentially (brute force matrix multiplicition), it is O(n^2). If it grows logorithmically (binary search), it is O(ln n). You should really take a course in alorithmic analysis. There is a lot more to it than just guessing. It is a mathimatical analysis of how an alorthim will perform.
First off, how the hell would you know, Mr. Anonymous Coward? Secondly, software that does what it is required to do doesn't do anything useful? You are just trying to be an asshole. Now put down the Star wars figures, and leave your mom's basement.
I *see* and deal with requirements all the time. My company does embedded systems for the military. Requirement specifications aren't just what the "customer wants." They are a contract agreement of what the customer is paying for. Believe me, if we didn't meet what is in the SRS (Sofware Requirements Specification) we would lose funding for current contracts, and all future ones. Your company may not do specs, but as an SEI level 5 org. (and CMM level 4, trying for 5) we are required to.
No, your specs ARE your requirements. It is called an SRS (Software Requirements Specification). It is not just what the customer wants. It states, in no uncertain terms, what your system is to accomplish. An SRS may even state how it is to be done if there is a necessary constaint for such. A design is not an opinion. It states, again in no uncertain terms, how the system is to be implemented. Deviate from either and you may lose the contract for failing to create a system that does what it is suppose to.
Then your teacher is an idiot. You have to have requirements that explicitly state what the system is to do. This is what you test to in order to validate your software to your customer. I write real-time embedded systems with limited memory resources and hard dead-lines. If you don't know how to quantify how large your program will be or if it will meet its deal-lines, don't come work for me.
Just had to say: That was the funniest damn sig. I have EVER read. Thanks for the laugh! Reminds me of: "Save the whales, and trade them valuable prizes!"
Pass by reference allows you to change what is referred to, not just the referred data.
Completely untrue, you cannot change what object is being referred to. References are arkin to constant pointers. You can change the object's value, but not what object you are dealing with.
Ever try doing meta-templates with VC++? Or even just out-of-line member templates?
Depends on the error. The exceptions mechanism requires a lot more typing and debugging that returning NULL if the function returns NULL. But why is the choice limitted to return codes and exceptions? Isn't there a middle ground?
I would argue that checking return codes is, in the end, more typing. But I also would not weigh the correctness of the mechanism I use by the amount of typing required. I don't think it should be return codes vs exceptions vs what-else-is-there. It shouldn't be all or nothing. Use what is appriopriate for the situation. I think it would depend on what you plan to do after you get that NULL return. If your code can continue on the same general path, then fine. But, if you need to escape from that path completely, then exceptions are more appriopriate. They are also better for handling erroneous conditions when you are several scopes (both blocks and function calls) in and need to exit them immediately.
First off, if error recovery is not part of your design, you are a pretty shitty-ass programmer. Secondly, exceptions are much easier and cleaner to deal with than return codes. By providing an alternate path for errors, exceptions alleviate the need to check the return value of every function call, and the need to then implement many, many paths in your code to skip sections once an error is found. Exception don't have to be handle immediately at the return point, they can be delayed (scope-wise) until a point where is makes sense. Plus, debugging is much simpler. Without multitude error control paths in the code, path converage is easy.
The only thing moderately "3D" that they did was raycasting, which really isn't actually 3D - it only looks that way.
What the hell are you talking about? EVERYTHING presented on your display as 3D isn't actually 3D, but only looks that way. The methods used to create the image do not change that fact.
I believe his point was that the DirectX library handles a lot of the work that went into the bulk of the size of pre-3d accelerator games, such as Wolfensein 3D and Doom I & II. So, he's starting out with an advantage in size.
Just the fact he would use the timer's interrupt to handle independent events shows he's never done any real-time programing. The latency alone would kill you.
If you remember the title, please post it. It sounds interesting.
Yes, but the courts have rules that privacy is an intergal requirement for free speech.
I've never once found a CD where I love every single song.
Anything ever performed by Pink Floyd. Absolutely amazing stuff.
Wait, Pat Boone and Mandy Moore made CDs together? *shudder*
No, it's not. You can't have an array without a size value, unless it have an initializer list.
No, a turbo button, when off, would lower the clock speed to 8 or 4.77 Mhz so you could play older games that had poor coded timing loops.