You're right in the idea that the real reuse happens with the bolts of the software world, which are small (in interface complexity) useful things like containers (hash tables, lists) and algorithms like sorting.
However, one of the goals of programming is to turn ever more complex things into new bolts and build bigger and better things. Eg this doesn't make much sense for a car, but is perfectly fine for code:
Car() {
engines["economy"] = new EconomyEngine();
engines["speed"] = new TurboEngine(); }
If you judge a compiler by how it upholds language standards (builds legitimate C++ code, STL implementation etc) then MSVC++ 6.0 is terrible.
Google for "enum hack" (static const int foo = 42; doesn't work in a header file.) to learn about the fun of writing workaround code to get around MSVC++ 6.0s deficiencies.
Exactly, evolution favours careless women who get into trouble.
On this topic I have a theory that explains why women (on average) can only handle half as much alcohol as men. Over millenia of wild parties, women with weak livers became drunk earlier, then were subsequently knocked-up and produced another generation of bad girls.
If this kind of selective pressure continues, I can only imagine the wild times that await the men of the future!
How to work out whether a point lies inside a tetrahedron?
Treat all of the sides as 2D planes, with the top (ie planes "up") facing inside the volume. If the point is on the top-side of all planes, it's inside. If it is below one, then it's outside.
bool pointInsidePlane {
foreach plane {
if( point is below the plane )
return false;
}
return true; }
Please don't use Snood as an example, it is merely poor rip-off (no multiplayer, less frantic) of Puzzle Bobble/Bust a move. The only reason anyone would buy that game is because they don't know how to download an emulator to play one of the 16 bit Puzzle Bobble versions.
Newspeak is closely based on English but has a greatly reduced and simplified vocabulary and grammar. This suited the totalitarian regime of the Party, whose aim was to make subversive thought impossible.
Java is closely based on C++ but has a greatly reduced and simplified vocabulary and grammar. This suited Sun Microsystems, whose aim was to make "bad programming practice" impossible.
Winston stopped typing and looked up from his monitor to the giant telescreen where Sun had released the latest benchmarks. Java was faster than C++. Java had always BEEN faster than C++. He looked at his editor:
try {
if( (new Integer(2)).add( new Integer(2) )).equals( new Integer(5) ) ) {
He kept typing. His mind was clear. He was happy. He loved James Gosling.
Not going to get into the politics of it, but Bali is a tourist island, and the bomb was set off in a nightclub area full of Westerners (Australians, US, UK etc)
Bali is also majority Hindu in otherwise >90% Muslim Indonesia.
A lot of the population growth has been in developing countries, while cutting edge innovation occurs in the most technically advanced countries (almost be definition)
Life isn't like an exam where you try to out-memorise your peers. It's open book and communication is encouraged.
In the real world scientists can lookup formulas and writers can lookup quotations in a book. Knowing where to find, or how to google for information is more important than memorisation because that skill will help you with things you don't know yet.
Programmers can even go a step further. Once they have some knowlege they encapsulate it and then only need remember its name.
This is especially true for numeric constants just like PI you were describing. Sure people could write 3.141592 in formulas everywhere rather than using the symbols M_PI or Math.PI, but that would be tedious, error prone and less expressive of the idea to others.
>> Hopefully the khtml developers will be embarrassed enough...
> Wow. What a great way to motivate people! > You must be a manager right?
> But I do believe that there are more efficient > ways of motivating people than by embarrassment.
At my work, we have a lighthearted "hat of shame" that developers must put on their desk if they break the build or cause a test to fail. It stays there, visible to all until the problem is fixed.
It works wonders, but only because we're all in the same location and can see who has it on their desk. For distributed opensource development over the internet, perhaps a similar badge of shame could be implemented by displaying a small icon of a silly hat or a cockroach next to a developer's name when they post in a forum?
The trick is to give some motivation (to remove a silly little tag), but not overwhelm or piss them off. It has to be done in good humor.
Re:Reviewer catches himself.
on
Data Crunching
·
· Score: 2, Informative
perl -e "print reverse <>" filename
(next time I'll use preview)
Re:Reviewer catches himself.
on
Data Crunching
·
· Score: 1
One pattern I've used to great effect is to provide a thin API translation layer for old code, allowing the underlying code to have its API completely redesigned to make it more usable for new code. Now that Java has varargs and generics, I can only hope that Sun will start using this pattern. Now, do I know what its official name is in your pattern library of choice? Not a clue.
Facade: Provide a unified interface to a set of interfaces in a subsystem. Facade defines a higher-level interface that makes the subsystem easier to use. This can be used to simplify a number of complicated object interactions into a single interface.
Then a faster compilation time will help you, not just saving time but keeping your focus due to shorter turn around.
I get a slight feeling of hesitation before making a small but useful change in a toplevel header file because of long compilation times. In fact, this quick turn around in the loop above is one of the reasons you can develop faster in interpreted languages. It is also an advantage of Java over C++
My ultimate advice in the new millenium is get a "real estate" related degree.
Great advice, the real estate market couldn't possibly be in a dot-com style bubble due to speculation and pricing far above profit ratios (ie rent minus maintenance and paying morgage interest). Prices are going to keep doubling forever and ever!
If you don't like how your company is treating you, leave and form your own. Talk to your coworkers and you'll find that if your employer is so evil they will love the idea. So get together and write a game.
Except that before being hired for almost any games job, you are required to sign a contract that explicitly prohibits you from convincing coworkers from leaving the company.
No, it's not right but since the work is seen as desirable there are many others ready to replace anyone that won't accept the conditions.
There is a near infinite supply of young men willing to work very hard in the games industry for almost nothing - I was once one of them - and the conditions flow from this.
No - to make the water taste better.
You're right in the idea that the real reuse happens with the bolts of the software world, which are small (in interface complexity) useful things like containers (hash tables, lists) and algorithms like sorting.
However, one of the goals of programming is to turn ever more complex things into new bolts and build bigger and better things. Eg this doesn't make much sense for a car, but is perfectly fine for code:
Car() {
engines["economy"] = new EconomyEngine();
engines["speed"] = new TurboEngine();
}
void drive() {
engines[mode]->run();
}
If you judge a compiler by how it upholds language standards (builds legitimate C++ code, STL implementation etc) then MSVC++ 6.0 is terrible.
Google for "enum hack" (static const int foo = 42; doesn't work in a header file.) to learn about the fun of writing workaround code to get around MSVC++ 6.0s deficiencies.
http://www.developsense.com/testing/VSSDefects.htm l
Exactly, evolution favours careless women who get into trouble.
On this topic I have a theory that explains why women (on average) can only handle half as much alcohol as men. Over millenia of wild parties, women with weak livers became drunk earlier, then were subsequently knocked-up and produced another generation of bad girls.
If this kind of selective pressure continues, I can only imagine the wild times that await the men of the future!
How to work out whether a point lies inside a tetrahedron?
Treat all of the sides as 2D planes, with the top (ie planes "up") facing inside the volume. If the point is on the top-side of all planes, it's inside. If it is below one, then it's outside.
bool pointInsidePlane {
foreach plane {
if( point is below the plane )
return false;
}
return true;
}
Please don't use Snood as an example, it is merely poor rip-off (no multiplayer, less frantic) of Puzzle Bobble/Bust a move. The only reason anyone would buy that game is because they don't know how to download an emulator to play one of the 16 bit Puzzle Bobble versions.
Let's hope the Jarheads know not to fire it underwater - at least until the defence contractors develop the Pentagram of Protection.
Newspeak is closely based on English but has a greatly reduced and simplified vocabulary and grammar. This suited the totalitarian regime of the Party, whose aim was to make subversive thought impossible.
Java is closely based on C++ but has a greatly reduced and simplified vocabulary and grammar. This suited Sun Microsystems, whose aim was to make "bad programming practice" impossible.
Winston stopped typing and looked up from his monitor to the giant telescreen where Sun had released the latest benchmarks. Java was faster than C++. Java had always BEEN faster than C++. He looked at his editor:
try {
if( (new Integer(2)).add( new Integer(2) )).equals( new Integer(5) ) ) {
He kept typing. His mind was clear. He was happy. He loved James Gosling.
Not going to get into the politics of it, but Bali is a tourist island, and the bomb was set off in a nightclub area full of Westerners (Australians, US, UK etc)
Bali is also majority Hindu in otherwise >90% Muslim Indonesia.
A lot of the population growth has been in developing countries, while cutting edge innovation occurs in the most technically advanced countries (almost be definition)
Life isn't like an exam where you try to out-memorise your peers. It's open book and communication is encouraged.
In the real world scientists can lookup formulas and writers can lookup quotations in a book. Knowing where to find, or how to google for information is more important than memorisation because that skill will help you with things you don't know yet.
Programmers can even go a step further. Once they have some knowlege they encapsulate it and then only need remember its name.
This is especially true for numeric constants just like PI you were describing. Sure people could write 3.141592 in formulas everywhere rather than using the symbols M_PI or Math.PI, but that would be tedious, error prone and less expressive of the idea to others.
http://maps.google.com/maps?q=maree,+Australia&ll= -29.533997,137.466431&spn=0.036736,0.061712&t=k&hl =en
>> Hopefully the khtml developers will be embarrassed enough...
> Wow. What a great way to motivate people!
> You must be a manager right?
> But I do believe that there are more efficient
> ways of motivating people than by embarrassment.
At my work, we have a lighthearted "hat of shame" that developers must put on their desk if they break the build or cause a test to fail. It stays there, visible to all until the problem is fixed.
It works wonders, but only because we're all in the same location and can see who has it on their desk. For distributed opensource development over the internet, perhaps a similar badge of shame could be implemented by displaying a small icon of a silly hat or a cockroach next to a developer's name when they post in a forum?
The trick is to give some motivation (to remove a silly little tag), but not overwhelm or piss them off. It has to be done in good humor.
(next time I'll use preview)
perl -e "print reverse " filename
Exactly. Do kids become retarded from eating lead paint, or do only retards eat paint?
Facade: Provide a unified interface to a set of interfaces in a subsystem. Facade defines a higher-level interface that makes the subsystem easier to use. This can be used to simplify a number of complicated object interactions into a single interface.
If your work as a developer looks like:
do {
Code
Compile
Test
} while (!done);
Then a faster compilation time will help you, not just saving time but keeping your focus due to shorter turn around.
I get a slight feeling of hesitation before making a small but useful change in a toplevel header file because of long compilation times. In fact, this quick turn around in the loop above is one of the reasons you can develop faster in interpreted languages. It is also an advantage of Java over C++
Great advice, the real estate market couldn't possibly be in a dot-com style bubble due to speculation and pricing far above profit ratios (ie rent minus maintenance and paying morgage interest). Prices are going to keep doubling forever and ever!
What are you talking about? gprof and gdb work with C++
The TV show The New Inventors featured a wall building robot last month:
. ht m
http://www.abc.net.au/newinventors/txt/s1300261
If you don't like how your company is treating you, leave and form your own. Talk to your coworkers and you'll find that if your employer is so evil they will love the idea. So get together and write a game.
Except that before being hired for almost any games job, you are required to sign a contract that explicitly prohibits you from convincing coworkers from leaving the company.
make > build.log
Keeps the errors going to the terminal but standard out is silently sent to a logfile.
No, it's not right but since the work is seen as desirable there are many others ready to replace anyone that won't accept the conditions.
There is a near infinite supply of young men willing to work very hard in the games industry for almost nothing - I was once one of them - and the conditions flow from this.