C++ can be very useful if you have tight control on the project, can enforce interface guidelines, coding style etc. etc. but in an almost "free-for-all" OSS project, it's just too dangerous to use.
Then why do so many open source project use it? OpenSceneGraph, Qt (and virtually all of the gui toolkits),... look on Freshmeat, C++ code is after C, and very competitive with Java. Yes, C++ takes some time to learn and code well, but all rewarding things in life take an investment of time and energy...
1 is a non-issue, really. I've written tons of code (graphics and simulation, OpenGL/C++/STL, plus some open source packages) using a good portion of the STL and haven't run into problems on either Windows or Linux. No #pragma's, no #ifdef WIN32. And you aren't limited by #2 to C funcionality but you have to provide appropriate interfaces to the programming language in question - so yes, if you are talking C, you have to be careful how you construct classes and provide wrappers for templates.
You can easily interface with Java, Python, Lua, any.NET language (if that's your cup of tea), and many others. Yes, C can access C++ code and classes if you are a good programmer and (1) careful in the initial coding and (2) provide wrappers for templates. (I've done this before, applying modern c++ libraries to c code almost as old as I am:) )
Finally, I can't speak for GCL but there are Lisp implementations that can handle c++ calls fine, for example, ECL.
I've never understood the problem people have with c++.
I'd argue the hobbyist community for DirectX is bigger and better (more current, anyways). Besides NeHe, there are a few tutorials here and there for OpenGL (most of them rehashes of the same thing), but the communities for Managed DirectX recently have been popping up all over. Check out Riemers XNA Tutorial, The Hazy Mind, Coding4Fun, the ZBuffer, and those are just the ones I remember off the top of my head from a year ago when I was dabbling with it. Each of those sites will take you from square one to the creation of a simple game (or toolkit). I used to use OpenGL for simulation visualization (both directly and indirectly through OpenSceneGraph, an open-source scene graph toolkit) as well. My personal opinion is that DirectX is more polished and consistent, but I grew up on c++ and object-oriented programming methods.
You can't compare OpenGL and DirectX. You can compare OpenGL and Direct3D, Microsoft's graphics interface. DirectX also includes stuff that handles keyboards/mice/joysticks, sound, and other nifty things.
So if you want to do game programming that is cross platform, OpenGL only handles graphics. And just the low level bits - you need to write code to do higher level management of game object, like for example if you have a model of a pirate you need to know the position of each body part relative to the next part, states of things, etc. You'll have to write a class to handle that and structs to manage the data. And then you need the rest for devices, sound, etc. SDL is fine, I guess, or that is what people tell me. Another product I'd recommend is Irrlicht, it is open-source, cross-platform, and can target either OpenGL or DirectX for a rendering target. It is pretty nifty and uses a scene graph type hierarchy which can be useful in 3D games.
It just seems to me that if Microsoft can do it with Direct X, the rest of the world should be able to do it better, more cross compliant, and portable.
As another poster pointed out, if you take OpenGL and SDL you have a good chunk of DirectX but I'd argue it still isn't as good. The newer Managed DirectX is pretty polished once you dig down into it, to the point where bigger studios that used to make glaring statements of "DirectX sucks, OpenGL for the win" are abandoning OpenGL for DirectX. Of course, being able to target XBOX with very few code changes might help that argument. But you can find or make tools to work with open source if linux needs to be a target for your development.
Not if it is built into your serialization function, no. If you are controlling both ends of the code, you should know what the server and client is running, convert from server (if necessary) to network order (big endian), and then at the client from network order to your clients order (again, if necessary).
Again, this is only if you are writing your own (1) homebrew (2) cross-language serialization. If you stick to one language it is infinitely easier:) But it isn't that hard for example with berkely sockets you have htonx() and ntohx() functions that convert from host to network and network to host, respectively.
Sure. All you are doing is ordering bits. Say you have a struct (and this will be mangled and ugly)
strut pirate
{
char name[10];
int num_peg_legs;
bool has_bird;
};
Each one of those variables takes up a certain amount of space, and can be packed in a pre-determined way when you serialize. So then lets say you send the serialized package to a c# program. As long as the c# class is packed the same way, your deserializer can deserialize the package.
It might not work out of the box, using (for example) C++ boost libraries with C#.NET serialization, but writing a custom serializer will work (and be quicker to boot, because there is probably server-side data in the struct that doesn't need communicating to the end user...).
The typical new astronaut will wait 8-10 years for a first spaceflight
I'm actually surprised NASA is hiring, since they now have one fewer shuttle since 2003
Shuttles go out of commission in 2010. Most likely a good number of astronauts are up to leave the service due to age/desire and/or the delay between now and constellation...
Some good advice I've heard for prospective astronauts is to go work for Burt Rutan or Richard Branson, and give NASA a pass.
Rutan sold Scaled to Northrop Grumman. While he's still a senior manager, one must wonder for how long. Burt isn't exactly young anymore. And being an astronaut for SS2 is basically the equivalent of a glorified airline pilot / space waitress, for 10 minutes at a time. Not denigrating it but suborbital and orbital are two different ballparks. It'll be nice when someone like Armadillo or Masten actually makes orbit accessible.
Havent had issues here, less than a minute to boot up and 10 or so seconds to boot down. Mine's a compaq (which is HP now, but still Compaq hardware, has a Q on the cover). I was just impressed at the performance on a sempron with the gimped L2 cache and all...
Arr. but now you be burning CPU to compress and decompress thar XML. Remember, MMO's be happening in real time, requiring synchronization amongst hundreds of scurvy dogs, wheras if you wait an extra moment for your ODF file your bottle 'o' rum isn't gonna be that much warmar.
Arrrgh!
The way I'd be doing it (I have a little tiny mmo toolkit I work on when I have the spare time) is serialization, but customized serialization to not send the bits I don't need. In c++/C3 (the languages I've tinkered with) you can tweak what gets serialized and how you pack it, and it all gets sent in binary and decoded in binary, really no performance hit.
XML is kind of big, when you have to throw it over internet connections. Not just once, but once for every recipient. Imagine you are in a zone with 100 people, and you send a message to an 'out of character' channel that hits everyone. Now that message has to get sent out 100 times, plus the XML overhead. There are ways to do it with much less overhead (binary). Might not be as self-describing but with good documentation, not that difficult.
Purdue University had a fully tenured professor of Computer Science who only had a masters degree and I don't think he published too much, but he was a multi-millionaire.
Who? I couldnt find him here under the list of tenured professors. I'd be interested in finding out, thanks. Never heard of someone without a Ph.D. having tenure at one of the bigger colleges like that. But like I said in the first place, 15 over 6 is a rule of thumb, not a hard and fast rule. Sure, if you bring in more money they'd be hard pressed to let you go for not publishing as much as they would like (I think I said that... )
You can make lots of money, but unless you are saving it, its hard to become a millionaire. For those of us who are just regular joes with 9-5 jobs, it isn't impossible to be a millionaire, you just need to lower your cost of living. It's kind of surprising how some former sports stars that were making millions a year have lost their money due to bad management and just spending it, where someone even just making 5 figures can still anticipate being worth several million before retirement.
(I bought a laptop Circuit City had on sale for $350 a few weekends ago, regular price $600. Sempron 3600+, 80GB hdd, 512M RAM, GeForce 6100, widescreen. Popped in a gig of RAM. I'm actually suprised how well Vista runs on it, given the Sempron processor. I installed XP and ran it side by side with my favorite MMORPG and couldn't tell the difference. But anyways...)
15 mediocre articles will NOT get you tenure at a competitive university.
Of course not mediocre. Good articles in top-of-the-line journals. But that is my point, because they are so prestigious and nitpicky, one might feel rushed to get it in and one might slip up on the analysis. It happens. If it happens once its a mistake. If it happens every time, you are a bad researcher. There is a difference.
And I never said 15 was hard and fast. It is a rule of thumb.
But don't be fooled, universities are a business whether private or state run. They want recognition. They want you to bring in research money (which not only funds you and grad students, but generates more papers).
I can't imagine you're in biology, because 15 articles in 6 years is bullshit.
I'm in aerospace engineering. Again, that number was a guideline, not a hard and fast rule. Might be different in your neck of the woods. Point is, the pressure is to publish often and soon, and errors happen. They shouldn't but they soemtimes do slip. sloppy analysis != fraud.
The sucker coming in has a huge kinetic energy (0.5 * m * V * V) and potential energy ( m * g * h )... as the body falls the potential energy converts to kinetic energy, and the sucker has zero kinetic energy after impact. That energy has to go somewhere: some of it gets converted into heat as it reenters the atmosphere (heat being transferred both into the body and into the air), the rest on impact changes into translational energy for the dirt (very crude analysis of course... the dirt will warm up, everything will reach thermal equilibrium, etc.)
If you think you can bring something from deep space to the earths surface 'as cold as ice', NASA/RSC Energia/ESA might want to talk to you...
Problem with that is most of the people who need statistics will need some knowledge of calculus. Maybe they won't be explicitly composing integrals or differential equations but they will need a good understanding of rates, areas under the curve, gradients, etc... but I do agree statistics in high school beyond mean/median/mode would be useful.
I'll talk about my master's thesis work. I was designing a guided bullet to be shot out of a 40mm cannon with a linearized guidance system and a pack of squibs. The combination of a linearized guidance system and a controller hooked up to the squibs would cancel out any pointing errors and initial guidance errors of the gun+RADAR system as the bullet was in flight, and then hopefully hit the target. I wrote a 6DOF simulation to model all this and that was the basis for my thesis.
Now, to answer your question, I am not personally aware of people getting funded to replicate results, although it would not surprise me. However, there is plenty of research that rubs shoulders. For example, in designing my guidance system, I came across tens of papers of people who had done it already. And there are many hundreds of people who have written 6DOF simulations at some point in time.
When papers go to be submitted, many times they are rejected (by the good journals, anyways) because 'they are too similar to something already submitted' or 'they do not really add anything unique to the body of science'. In other words, more or less, they replicate what has already been done. Whether intentional or not, engineers and scientists do from time to time re-invent the wheel, or come up with a solution very similar to something already done. Which isn't all bad, because then you can research what was done before and compare the existing body of results. (I did, in my case. I ran my numbers through a fellow researcher's sim [with his permission of course] to test one portion of the guidance model, and I ran my numbers through a commercial package to validate my core 6DOF model)
ever compared Stroustrup's book to K&R
... look on Freshmeat, C++ code is after C, and very competitive with Java. Yes, C++ takes some time to learn and code well, but all rewarding things in life take an investment of time and energy...
Yup, but Stroustrup also covers the STL.
C++ can be very useful if you have tight control on the project, can enforce interface guidelines, coding style etc. etc. but in an almost "free-for-all" OSS project, it's just too dangerous to use.
Then why do so many open source project use it? OpenSceneGraph, Qt (and virtually all of the gui toolkits),
1 is a non-issue, really. I've written tons of code (graphics and simulation, OpenGL/C++/STL, plus some open source packages) using a good portion of the STL and haven't run into problems on either Windows or Linux. No #pragma's, no #ifdef WIN32. And you aren't limited by #2 to C funcionality but you have to provide appropriate interfaces to the programming language in question - so yes, if you are talking C, you have to be careful how you construct classes and provide wrappers for templates.
.NET language (if that's your cup of tea), and many others. Yes, C can access C++ code and classes if you are a good programmer and (1) careful in the initial coding and (2) provide wrappers for templates. (I've done this before, applying modern c++ libraries to c code almost as old as I am :) )
You can easily interface with Java, Python, Lua, any
Finally, I can't speak for GCL but there are Lisp implementations that can handle c++ calls fine, for example, ECL.
I've never understood the problem people have with c++.
"You can never trust a Canadian. Someday, we'll be providing your natural resources" -Steven Page, Barenaked Ladies
Angels Attack XBOX!
sure he is
I'd argue the hobbyist community for DirectX is bigger and better (more current, anyways). Besides NeHe, there are a few tutorials here and there for OpenGL (most of them rehashes of the same thing), but the communities for Managed DirectX recently have been popping up all over. Check out Riemers XNA Tutorial, The Hazy Mind, Coding4Fun, the ZBuffer, and those are just the ones I remember off the top of my head from a year ago when I was dabbling with it. Each of those sites will take you from square one to the creation of a simple game (or toolkit). I used to use OpenGL for simulation visualization (both directly and indirectly through OpenSceneGraph, an open-source scene graph toolkit) as well. My personal opinion is that DirectX is more polished and consistent, but I grew up on c++ and object-oriented programming methods.
You can't compare OpenGL and DirectX. You can compare OpenGL and Direct3D, Microsoft's graphics interface. DirectX also includes stuff that handles keyboards/mice/joysticks, sound, and other nifty things.
So if you want to do game programming that is cross platform, OpenGL only handles graphics. And just the low level bits - you need to write code to do higher level management of game object, like for example if you have a model of a pirate you need to know the position of each body part relative to the next part, states of things, etc. You'll have to write a class to handle that and structs to manage the data. And then you need the rest for devices, sound, etc. SDL is fine, I guess, or that is what people tell me. Another product I'd recommend is Irrlicht, it is open-source, cross-platform, and can target either OpenGL or DirectX for a rendering target. It is pretty nifty and uses a scene graph type hierarchy which can be useful in 3D games.
It just seems to me that if Microsoft can do it with Direct X, the rest of the world should be able to do it better, more cross compliant, and portable.
As another poster pointed out, if you take OpenGL and SDL you have a good chunk of DirectX but I'd argue it still isn't as good. The newer Managed DirectX is pretty polished once you dig down into it, to the point where bigger studios that used to make glaring statements of "DirectX sucks, OpenGL for the win" are abandoning OpenGL for DirectX. Of course, being able to target XBOX with very few code changes might help that argument. But you can find or make tools to work with open source if linux needs to be a target for your development.
Not if it is built into your serialization function, no. If you are controlling both ends of the code, you should know what the server and client is running, convert from server (if necessary) to network order (big endian), and then at the client from network order to your clients order (again, if necessary).
:) But it isn't that hard for example with berkely sockets you have htonx() and ntohx() functions that convert from host to network and network to host, respectively.
Again, this is only if you are writing your own (1) homebrew (2) cross-language serialization. If you stick to one language it is infinitely easier
Sure. All you are doing is ordering bits. Say you have a struct (and this will be mangled and ugly)
.NET serialization, but writing a custom serializer will work (and be quicker to boot, because there is probably server-side data in the struct that doesn't need communicating to the end user...).
strut pirate
{
char name[10];
int num_peg_legs; bool has_bird; };
Each one of those variables takes up a certain amount of space, and can be packed in a pre-determined way when you serialize. So then lets say you send the serialized package to a c# program. As long as the c# class is packed the same way, your deserializer can deserialize the package.
It might not work out of the box, using (for example) C++ boost libraries with C#
Reference? Why, look at my posts on /. :)
The typical new astronaut will wait 8-10 years for a first spaceflight
I'm actually surprised NASA is hiring, since they now have one fewer shuttle since 2003
Shuttles go out of commission in 2010. Most likely a good number of astronauts are up to leave the service due to age/desire and/or the delay between now and constellation...
Some good advice I've heard for prospective astronauts is to go work for Burt Rutan or Richard Branson, and give NASA a pass.
Rutan sold Scaled to Northrop Grumman. While he's still a senior manager, one must wonder for how long. Burt isn't exactly young anymore. And being an astronaut for SS2 is basically the equivalent of a glorified airline pilot / space waitress, for 10 minutes at a time. Not denigrating it but suborbital and orbital are two different ballparks. It'll be nice when someone like Armadillo or Masten actually makes orbit accessible.
Arrr!
Me be the first space pirate, dread pirate Everphilski. Arrrrgh.
interesting. thanks.
Havent had issues here, less than a minute to boot up and 10 or so seconds to boot down. Mine's a compaq (which is HP now, but still Compaq hardware, has a Q on the cover). I was just impressed at the performance on a sempron with the gimped L2 cache and all ...
Arr. but now you be burning CPU to compress and decompress thar XML. Remember, MMO's be happening in real time, requiring synchronization amongst hundreds of scurvy dogs, wheras if you wait an extra moment for your ODF file your bottle 'o' rum isn't gonna be that much warmar.
Arrrgh!
The way I'd be doing it (I have a little tiny mmo toolkit I work on when I have the spare time) is serialization, but customized serialization to not send the bits I don't need. In c++/C3 (the languages I've tinkered with) you can tweak what gets serialized and how you pack it, and it all gets sent in binary and decoded in binary, really no performance hit.
XML is kind of big, when you have to throw it over internet connections. Not just once, but once for every recipient. Imagine you are in a zone with 100 people, and you send a message to an 'out of character' channel that hits everyone. Now that message has to get sent out 100 times, plus the XML overhead. There are ways to do it with much less overhead (binary). Might not be as self-describing but with good documentation, not that difficult.
Purdue University had a fully tenured professor of Computer Science who only had a masters degree and I don't think he published too much, but he was a multi-millionaire.
... )
Who? I couldnt find him here under the list of tenured professors. I'd be interested in finding out, thanks. Never heard of someone without a Ph.D. having tenure at one of the bigger colleges like that. But like I said in the first place, 15 over 6 is a rule of thumb, not a hard and fast rule. Sure, if you bring in more money they'd be hard pressed to let you go for not publishing as much as they would like (I think I said that
You can make lots of money, but unless you are saving it, its hard to become a millionaire. For those of us who are just regular joes with 9-5 jobs, it isn't impossible to be a millionaire, you just need to lower your cost of living. It's kind of surprising how some former sports stars that were making millions a year have lost their money due to bad management and just spending it, where someone even just making 5 figures can still anticipate being worth several million before retirement.
I did not steal a notebook, but had I stolen a notebook, here is how I would have done it ...
then my laptop is safe! woot!
(I bought a laptop Circuit City had on sale for $350 a few weekends ago, regular price $600. Sempron 3600+, 80GB hdd, 512M RAM, GeForce 6100, widescreen. Popped in a gig of RAM. I'm actually suprised how well Vista runs on it, given the Sempron processor. I installed XP and ran it side by side with my favorite MMORPG and couldn't tell the difference. But anyways...)
kinky.
15 mediocre articles will NOT get you tenure at a competitive university.
Of course not mediocre. Good articles in top-of-the-line journals. But that is my point, because they are so prestigious and nitpicky, one might feel rushed to get it in and one might slip up on the analysis. It happens. If it happens once its a mistake. If it happens every time, you are a bad researcher. There is a difference.
And I never said 15 was hard and fast. It is a rule of thumb.
But don't be fooled, universities are a business whether private or state run. They want recognition. They want you to bring in research money (which not only funds you and grad students, but generates more papers).
I can't imagine you're in biology, because 15 articles in 6 years is bullshit.
I'm in aerospace engineering. Again, that number was a guideline, not a hard and fast rule. Might be different in your neck of the woods. Point is, the pressure is to publish often and soon, and errors happen. They shouldn't but they soemtimes do slip. sloppy analysis != fraud.
The sucker coming in has a huge kinetic energy (0.5 * m * V * V) and potential energy ( m * g * h ) ... as the body falls the potential energy converts to kinetic energy, and the sucker has zero kinetic energy after impact. That energy has to go somewhere: some of it gets converted into heat as it reenters the atmosphere (heat being transferred both into the body and into the air), the rest on impact changes into translational energy for the dirt (very crude analysis of course ... the dirt will warm up, everything will reach thermal equilibrium, etc.)
...
If you think you can bring something from deep space to the earths surface 'as cold as ice', NASA/RSC Energia/ESA might want to talk to you
Problem with that is most of the people who need statistics will need some knowledge of calculus. Maybe they won't be explicitly composing integrals or differential equations but they will need a good understanding of rates, areas under the curve, gradients, etc... but I do agree statistics in high school beyond mean/median/mode would be useful.
I'll talk about my master's thesis work. I was designing a guided bullet to be shot out of a 40mm cannon with a linearized guidance system and a pack of squibs. The combination of a linearized guidance system and a controller hooked up to the squibs would cancel out any pointing errors and initial guidance errors of the gun+RADAR system as the bullet was in flight, and then hopefully hit the target. I wrote a 6DOF simulation to model all this and that was the basis for my thesis.
Now, to answer your question, I am not personally aware of people getting funded to replicate results, although it would not surprise me. However, there is plenty of research that rubs shoulders. For example, in designing my guidance system, I came across tens of papers of people who had done it already. And there are many hundreds of people who have written 6DOF simulations at some point in time.
When papers go to be submitted, many times they are rejected (by the good journals, anyways) because 'they are too similar to something already submitted' or 'they do not really add anything unique to the body of science'. In other words, more or less, they replicate what has already been done. Whether intentional or not, engineers and scientists do from time to time re-invent the wheel, or come up with a solution very similar to something already done. Which isn't all bad, because then you can research what was done before and compare the existing body of results. (I did, in my case. I ran my numbers through a fellow researcher's sim [with his permission of course] to test one portion of the guidance model, and I ran my numbers through a commercial package to validate my core 6DOF model)