Of course, perhaps she might feel that interactive violence is MORE harmful, but I would say that that is a perception problem. Some people think that passivity is worse, some think interactivity is worse. Personally, I think it all just comes down to whether the person watching/playing understands that it is fictitious.
So that this is on-topic, I think that the re-defining bill sounds bad, but the bill forcing stores to segragate games by rating and putting up a sign about the ratings (which the industry recommends they do anyway) is not bad. Maybe not a Good Thing, but it's something they probably ought to do on their own. Okay, now to respond.:-)
Knowling a lot about psychology, I will disagree with you. Actually, my wife studied Psychology in school, and I read her books and talk with her about conference papers and the kids she works with. Understanding fiction is not enough, and there are other factors.
I love games, I play games, I develop software tools for games. But I restrict my 4-year-old to Putt-Putt and the PBSKids website, and I turn off the TV or monitor & sound if I'm playing something violent and she walks in the room. I don't turn it off when the 10-year-old walks in, but I do stop playing.
I agree that being able to decide if it's real or not is very important. A 4-year-old, who thinks that My Little Pony cartoons are just as real as horses at the ranch, really has no business even watching a minute of realistically violent games. It would be immoral to let a 4-year-old play violent games. I think everybody here agrees with that.
However, it is NOT> just a perception problem in the case of the woman above who thinks violent games have a bigger impact to everyone (not just the 4-year-old) than violent movies; that is something that research is actually consistantly showing. Current research, (for example, look up Anderson & Dill, "Video games and agressive thoughts, feelings, and behavior in the laboratory and in life", Journal of Personality and Social Psychology) has been showing a stronger reaction than movies and TV between games and hostility. If aggressive movies have an affect on you, an aggressive game has a bigger affect. For me, the bunch of articles I was shown is as good as proof.
Just understanding the difference between reality and fiction isn't enough for kids and teens. In some research from the 1960's where kids and tweens watched an adult beat up a 'bobo the clown' doll. The kids would see one of three endings: adult was praised by others for violence, adult was punished by others, adult saw no consequences. Those who saw the reward for violence would often agressivly harm the doll when asked how to treat it, even more than the adult did. Those who saw nothing would repeat the behavior, those who saw a punishment were least aggressive generally. It didn't matter that THE KIDS WERE OLD ENOUGH TO KNOW REALITY AND FICTION, THEY STILL MODELED AND AMPLIFIED THE BEHAVIOR THEY SAW, increasing it if the behavior was rewarded, or decreasing it if punished.
Moving on...
Discarding the reality/fiction argument, actually playing games means you are more likely to encode the actions of the game, good or bad. If there is reinforcement for encoding more stuff, you are more likely to learn it.
A good example of encoding: without looking at US coins (which you probably have seen thousands of times) what direction does Lincoln face on the cent? Jefferson on the nickel? Where do the phrases "IN GOD WE TRUST", "LIBERTY", "THE UNITED STATES OF AMERICA" and the date show up? Where to the mint marks appear? You probably don't know, because there was no reason to pay attention to it.
In media generally, and to a greater extent in games, we need to endoce more details. Coins have only a few words, and counterfeit coins could land you in jail, but you don't bother to learn the details. A 2-hour movie has thousands of words and images
Attests? I think not. Try the link, 'cause I don't think they did.
Maybe the authors did. Perhaps all of their other google searches have been for track lists for their jukebox, and their Google preferences have trained that that's the only thing they want to get...
I'm no constitutional scholar, but shouldn't the issue of whether participants have a right of privacy in this case be dependent on whether they have a reasonable expectation of privacy? It seems at least arguable that they don't.
That's the Fourth Ammendment, interpreted as having a reasonable expectation of privacy in the situation. That clause of a reasonable expectation of privacy is a bad one, and it's going to come up more and more often.
It would seem that covert audio and video 'bugs' and interception requires a court order for police to do. Those are the same laws that are being called into play here. The person's communication was recorded.
Is this more in line with overhearing your speaking in public, or with dealing drugs with a narcotics officer, or with having an illigal wiretap? It seems the courts are saying it's like the wire-tap.
But that's away from the original post.
-sigh-. Why can't people just behave to begin with? All this controversy over the person's right be a pedophile. Did he have a right to privacy? Perhaps; privacy is an important, but not absolute, right. Did he have a right to solicit sex from (who he thought was) a child? No; child sex is illegal in just about every nation of the world, one of the very few 'global crimes'.
It's important that rights not be trampled on, it's also important that police have the ability to find and prevent preditors. Balancing them... that's the hard part.
> > My guess is that IRC would have automatic consent, since many IRC clients generate logs.
> What does the fact that many IRC clients generate logs have to do with whether or not it is legal?... I doubt IRC is any different from AIM. Both services have clients that support logging, but neither is legal if either party is in one of the 12.
According to the article, the fact that the clients have it built-in is the deciding case for legality. In the 2002 case involving ICQ, having the feature built-in and active made it legal, even though they were in an all-party consent state. In the AOL case, since they had to go through an external system to record it, it became illegal.
Specifically, (again from the article): "The test seems to be whether the recording capability is part of the instant messaging software itself (in which case it may be legal to record) or whether it is an add-on, and therefore an unlawful recording. Courts in other all-party consent states like Maryland have reached similar conclusions with respect to recording telephone conversations."
So to answer you, the fact that many IRC clients generate logs means that under the de-facto rules, there is probably implied consent. IRC is different from AIM and from the case (which is NOT using AIM) because AIM, at least as far as I know, has no 'logging', (although it does support 'Save'). Since the case in the article is NOT dealing with AIM, but instead dealing with AOL Chat, and because the people had to copy/paste into another program to save the contents, this isn't really dealing with AIM. Since I've never used AOL Chat, I don't know about it, but it would seem that it has no support for logging, either.
Repeat: they are not talking about AIM in the article, they are talking about AOL's Chat. To be sure, AIM and other clients able to communicate on the AOL Chat network just complicate the matter. That is the idea I was trying to present: if my client is able to log and yours is not, then does that imply consent generally or not? How many clients need to have logging available before it does imply consent? But I'm sure they will bring that up in another lawsuit.
Well, if you had READ THE ARTICLE you would have seen this:
Clearly Detective Warchol consented to the recording he made, and MacMillan had little expectation of privacy in the chat session. But New Hampshire, like many other U.S. states including California, Connecticut, Delaware, Florida, Illinois, Maryland, Massachusetts, Michigan, Montana, Pennsylvania and Washington, requires all parties to the communication to consent to a recording before it is legal. And MacMillan, while engaged in the conversation with the putative 14-year-old, did not consent to recording the conversation.
It is useful to contrast the MacMillan case with one in 2002 in Washington state which has an even more stringent all-party consent statute. In that case, Donald Townsend engaged in an ICQ session with what he believed to be a 13-year-old girl, but was in fact an undercover police officer. In permitting the introduction of the recorded ICQ session, the court noted that the ICQ technology itself had a default setting to make a permanent record of the conversation. The court found that since Townsend should have known about the default setting, he effectively consented to the making of the recording under Washington's all-party consent statute.
In the AOL chat session, there was no such default recording, and therefore no consent by Mr. MacMillan. Therefore, the recording was illegal. The test seems to be whether the recording capability is part of the instant messaging software itself (in which case it may be legal to record) or whether it is an add-on, and therefore an unlawful recording. Courts in other all-party consent states like Maryland have reached similar conclusions with respect to recording telephone conversations.
So, it seems that since 'save' is built as a default into ICQ, it is presumed to be consent to save it. Since 'save' is an option but not default in AOL's chat, you can't save it if anybody is from those 12 states. My guess is that IRC would have automatic consent, since many IRC clients generate logs.
But once we start throwing compatible and cross-network IM clients around, who knows what the rulings would be. Plantiff: "My client does NOT log by default, so there is no implied consent" Defendant: "Your doesn't but my client DOES log by default, therefore, the system implies consent."
...the massive distortions that occur because of the subsidises and trade restrictions the US and Europe give to their farmers...
My family have a high efficiency farm that can turn a profit exposed to the real world market, if your farmers can't do the same then frankly they should look for another career and have some rationalisation of the sector (bigger farms, less workers, and thus smaller country populations, all the stuff that has happened in my home region over the last 20-30 yrs or so). Farming is a business and not a way of life, and should be treated as such.
Sounds like you need a brief history and economy lesson.
Up until a few centuries ago, argriculture and farming were done in just exactly the way you mentioned. That was just fine, because there were no "high efficiency farms" that you spoke of. In 1800, 90% of all Americans worked in agriculture, and the average farmer could produce about 100 bushels of crop from 5 acres of land with about 300 hours of work.
By 1890, only 90 years later, a farmer produce a 100 bushels of crop from a 2-1/2 acres of land with 40 hours of labor. Also in 1890, 43% were employed by agriculture. Steel plows, horse-drawn combines, railroads, and other innovations helped this out.
After the World Wars, gas-powered tractors pushed it up to 100 bushels on 2 acres in Ten to Fourteen hours of labor.
At the same time frame, the world entered into a huge recessions after each new innovation and after the world wars; Production of food was very high, the value of money had plumeted, and farmers *could not* sell their food to anyone. My dad, who lived on a farm from the 1920s through 1950s and worked in a small farming town, told us stories about expressions like: "would you like one egg in your beer, or two?" Because there was so much surplus, they couldn't even give food away.
Now for the economics lesson. Lets say prices on wheat are low. Your family wants more money, so the simple logical choice is to plant and sell more crops. But everybody else has that idea too. Jump forward a few months, and the market is literally flooded. Big corps will drop prices to almost zero in order to sell, meaning that you will have to practically give your food away. The next year comes, and you have no money for seed, and the banks won't lend you money since they saw how big the losses were last year.
This is a well known issue in both economics and world-history.
Yes, there are problems with the subsidy system. For example, lots of big corps abuse the system. But without it, there would be very serious, global agri-business problems.
(And yes, I have several close relatives in agri-business, mostly as potato and alfalfa growers. I've heard both sides of the issues, and think the subsidy is a good thing.)
> having your clients (and potential clients) being able to trust you and that your credentials are on the up and up is absolutely critical. As the use of google has become more and more ubiquitous, typing in a local CPAs name and turning up results alleging misdeeds, fraud, etc. certainly does not help to give "warm and fuzzy" feelings to clients.
True enough. It is important to have a good relationship with the accountant. The document he is complaining about is a link to the problems he had for having an expired license. If you otherwise trust the guy, I'd just ask him "hey, will you show me a current license?"
Instead of coping with this (relatively minor) issue, the guy is suing for libel.
See my other posts in this topic for the legal definitions of that. In short: Legal documents are immune to libel claims (the guy is complaining about the index of a legal document); Statements must be false (Google's claims are about the document and are correct, they are not about the person); Malice must exist; Statements must be 'sufficiently factual' to be evaluated as fact about the person (The two excerpts you get from google are not facts about the person, only facts about the document being linked to)
So instead of not having clients trust him because of an expired piece of paper, future clients will see that he sues when people discuss his past. Rather than a little fear that the guy isn't currently certified, they'll turn and run because if they ever talk about him, they'll be the next ones in court.
And in the short term, this will probably be thrown out in a preliminary hearing.
All told, this guy's choice to file a lawsuit will probably harm him for the rest of his career. When I see these types of people, I generally feel sorry for them. Even if he manages to fight and win in court, he will still lose lots of business in his career. If he loses in court, it's even worse for him.
> is it "libel" if a computer produces results based on mere data?
Libel has a very specific legal meaning.
"Published material meeting three conditions: The material is defamatory either on its face or indirectly; The defamatory statement is about someone who is identifiable to one or more persons; and, The material must be distributed to someone other than the offended party; i.e. published; distinguished from slander.
Criminal Law: A malicious defamation expressed either in printing or writing or by signs or pictures, tending to blacken the memory of one who is dead, with intent to provoke the living; or the reputation of one who is alive, and to expose him to public hatred, contempt, or ridicule.... It has been defined perhaps with more precision to be a censorious or ridiculous writing, picture or sign made with a malicious or mischievous intent...
... There is perhaps no branch of the law which is so difficult to reduce to exact, principles, or to compress within a small compass, as the requisites of a libel.... In order to constitute a libel, it is not necessary that anything criminal should be imputed to the party injured; it is enough if the writer has exhibited him in a ludicrous point of view; has pointed him out as an object of ridicule or disgust; has, in short, done that which has a natural tendency to excite him to revenge.
... The publication must be malicious; evidence of the malice may be either express or implied. Express proof is not necessary: for where a man publishes a writing which on the face of it is libelous, the law presumes he does so from that malicious intention which constitutes the offence, and it is unnecessary, on the part of the prosecution, to prove any circumstance from which malice may be inferred. But no allegation, however false and malicious, contained in answers to interrogatories, in affidavits duly made, or any other proceedings, in courts of justice, or petitions to the legislature, are indictable."
-- Bouviers Law Dictionary, a whole bunch of court references omitted.
Online versions of the dictionary can be found all over, such as here and here.
Also, it is a form of defamation, defined as:
"To determine whether a statement implies a factual assertion, courts examine the totality of the circumstances in which it was made. First, they look at the statement in its broad context, which includes the general tenor of the entire work, the subject of the statements, the setting, and the format of the work. Next they turn to the specific context and content of the statements, analyzing the extent of figurative or hyperbolic language used and the reasonable expectations of the audience in that particular situation. Finally, they inquire whether the statement itself is sufficiently factual to be susceptible of being proved true or false.
The First Amendment requires that the courts allow latitude for interpretation." -- same source, and references removed again
There are a bunch of points that all the companies have in their favor:
Legal documents are immune. The documents that Google is referencing are legal documents.
Statement must be false. The statements are excerpts of another document. Goople's statement isn't that the guy had those problems. Google is claiming that the documents it points to contains that text [which in fact, it does].
Malice must exist. Google could easy deflect it based on the malice requirements, as their automated quoting system can be easily shown to have no malice.
The enitre statement must be 'sufficiently factual' to be evaluated as fact. the excerpts would obviously fail this test, both because they are suc
Are you trying to intercept ctrl-alt-del? I can't understand why you'd want to do that.
This is so that a one-year-old can bang on the keyboard and hit whatever keys they want, in any order they want, and not have any chance of messing up the computer. This includes intercepting and canceling any special commands and hotkeys. Since the app is also run-on-demand, it needs to intercept everything else (alt-esc, ctrl-esc, alt-tab) with a low-level keyboard hook.
It has to protect from everything -- if a very young child can watch their parent's do it once, they'll figure out how to do it too. That includes things like ctrl-alt-del.
As I said (and the number of replies shows) there *is* a marekt for this sort of thing, if it's comprehensive enough. Maybe I'll spend a week on my app, fix it up for 2K and XP, and charge $10 for it or something.
The problem with what you post -- and with my code, is the sequence, among others. As far as I can tell, Win2K and XP don't let you intercept them without jumping through a lot of hoops.
The goal is to prevent *ANY* entrance to the system by the kid. The only reliable way I can seem to find for it is to write a GINA dll, and that's more work than my weekend-long project had in mind.
I'd say 'designed by parents', instead, since I'm in the same boat.
For example, I need to mod my computers to put a locking plexiglass cover in front of it -- to keep the little one away from the power, reset, and CD buttons.
The printer has ONE button, and when my 1-year-old discovered it, we had a pile of blank pages and "Printer Information" sheets on the floor.
I keep a spray-bottle of water and paper towels next to the monitor, since it will be covered with fingerprints every time I use the machine.
I would like an optical mouse that really isn't, so my kids can just pick it up and play with the lights, while I use the real one.
On Windows 98, I wrote a screen-saver program that put in a giant font on the screen whatever keys are hit. There was a message on the bottom saying "please type 'unlock' to unlock this computer". My (currently 4-year-old) daughter used to sit down with it, and say "look dad, I'm typing like you." I now keep it on her little computer so her little sister won't mess it up too badly. Unfortunately, I can't get WinXP to trap several key sequences, so it doesn't work there.
There is a market for that type of thing, and it isn't being tapped.
Um, no. That's not quite what the article was saying. It mentioned three basic types of techniques, you pointed out ONE of them.
The first one does not allow you to take advantage of many new techniques. You have one version of everything, and takes advantage of a few 'eye candy' features, if present. The second one, which is what many games already do, is have many performance classes. For example, the machine falls into a bin of "Base Requirements Version (bad graphics, slow CPU)", "Version 1 (3-year old expensive system)", "Version 2 (1-year old expensive system)", and "Version 3 (today's $4000 system)". They then develop between two to four different algorithms, and a *LOT* of glue code so the displays don't look too different. The third option is to have both of the above options, plus global CLOD, procedural and implicit surfaces, and more advanced processing that takes so much math that a 3-year-old CPU can't handle it.
For example, page 6 discusses using high-quality water on faster machines, and low quality water on slower machines. They only touch on why it might be a problem, stating "fluid simulation will have to be either devoted entirely to ambient game effects or simple enough to run on the minimum system specs without any scalability to higher systems. Most likely, the introduction of fluid simulation to actual game-play, not just ambient effects, will require the combination of both, so the visual quality may be scalable but the simulation quality will be fixed."
Let's try to consider what the article REALLY means for this type of case.
First, we'll assume that water is critical to the game, and not just some fancy external thing. Maybe players are all riding around on jet-ski's or moterboats or battleships or something. The developer now has a choice. They can either:
Use a slow simulation that takes a lot more power, such as Navier Stokes equations. Doing this eliminates much of your target audience.
Use a fast simulation that can run on slower PCs (maybe Perlin noise or Fourier Synthasis). Doing this dramatically reduces the physical realism of the game.
Develop some new system that is both convincing in physical reaction, and easy enough to run on the system problems they describe (not just slow CPU).
This isn't just an issue of adaptive level of detail or swaping algorithms. Because this represents basic game states, it must be kept in sync on all clients, meaning it's an all-or-nothing decision. Do you want realistic ocean waves in your water game, or do you just want waves?
Let's look at another issue they bring up on page 1 -- Integrated Graphics Cards.(just typing that makes me shudder.)
Many integrated graphics cards don't have dedicated memory. Just looking through a Dell catalog will have little footnotes next to laptop and 'economy' computer memory numbers, system memory will be shared with graphics and audio processing. The board might have a fancy nvidia or ATI processor on it, and the card might be able to do all of the algorithms just fine; but the moment you run some combination of algorithms at the same time, they fight for the same CPU and memory spaces, and grind to a halt. In this case, the system stats themselves could be more than enough for the game, it's the motherboard or some other component that's the bottleneck.
In that case, dynamic algorithm selection is basically required, and is something many games already do.
But how long can we keep it up? Right now we already have to code for:
bad graphics card
accelerated graphics card with no programability
Graphics card with 4 major versions of programability, and varying amounts of memory (varying by orders of magnitude)
Graphics cards with various levels of programability, but no dedicated memory.
When is it too much? Already, we have to test dozens of different configurations.
That's what the article was asking. How can we have the third option (infinite scalability) without ignoring all the lower-end 'budget' PCs?
Considering your ability to accurately judge the competence levels of everyone you've ever worked with(giving you the benefit of doubt),
Thank you. I didn't think about that aspect, but I feel I am a fairly good judge of skills after working with people for a while. In all my past jobs, the managers at every company I've worked with have identified me as a sort of 'programmer barometer', most of them have had me meet with middle-management when discussing how to divide tasks.
Could it be possible you are in the top % of game programmers as well? Is it possible that there are hordes of other game programmers out there writing yet another graphics loader for pre-rendered graphics for yet another "adventure" game or simply re-implementing the tried and true algorithms? But is what you do really representitive of what all game programmers do?
Those are all great questions.
In order, yes, but since my co-workers are as qualified or more, it's possible that my entire shop is filled with the top developers, and it's possible that there are a bunch of other shops full of regular programmer joes. I don't believe it's the case, but it's possible.
As for the third question, since I'm at work now, I've just taken a straw poll.
The consensus is that this place is typical of other studios that people have worked at, and that the people who don't have multiple specialties or are able to quickly become expert in a few areas within a year usually end up leaving on their own.
Again, I'll repeat the challenge of the original paper, and of my earlier posts. This is a difficult but fun area. If you are interested, come in.
Write a simple game on your own, something a one-man shop could do. Write another pac-man clone, or space invaders, or asteroids. Polish it with title screens showing points and credits, and make it look like something from an 80's arcade. Here's your checklist, you should be able to do all of this in a demo to show a reasonable depth of knowledge: Interactive speed, reasonable graphics (we know you aren't an artist), sound, some simple AI, some simple levels, simple game states, crash and error-free, and well-polished. Do it very well -- have friends play it, and polish it some more.
If you can do that much, and still want to do more, then you're probably cut out for the industry. Writing a full (but simple) game, fully polished, means you have at least a functional understanding of what's involved, along with enough fortitude to get something finished. Bring with it one other area of competence (from your work history), and a general desire for writing games. Be prepared to explain at least one game in depth -- able to discuss how they implemented their graphics, levels, AI, storyline, and general gameplay, or anything else, and what they did wrong and right. Finally, be prepared for a one or two day coding sample. Do all that, and you will quickly get a job. Once you're in, you'll feel like an intern -- spending six months to a year getting expert in several different areas, in addition to regular work.
But be warned, [as the article states] it's a lot harder than it looks/sounds.
First, let me say I agree with you. In every industry there are people who do mostly grunt work, and there are people who do PhD level work. That's not the point I was trying to get across.
I cannot deny that many programmers have multiple specialties. I have worked in shops that do SQL all day, and presentation software, and remote sensing, and scientific computing, as well as the game industry. I've worked with programmers that range from high-school dropouts to PhD earners. I believe I've seen most of the full range.
As for the whole 'we do matrix arithmetic and other "hard" stuff therefore game programming is harder than regular programming'; I suspect that is a bunch of hogwash. It's just a matter of specialization in a particular field
That's where I disagree with you. It is not just a matter of being more specialized. I believe there is a completely different, almost fundamentally different, degree of difficulty and requirements for game developers.
I'll go through the places I'm comparing it against. Feel free to disagree about any of them, but I feel that each is fairly typical of programming environments.
When I was working with SQL on POS, there were 7 of the about 35 programmers there who were the SQL and communications experts. They could literally do anything that anybody else was doing. The remaining 80% of the programmers were just doing grunt-work, basically commodity programmers. Yes, people had specialties, but they weren't really used. There were approximate deadlines, but they were very soft.
Next, I worked with presentation software, specifically it was interactive polling in focus groups and larger corporate meetings. The owners were all psychologists that ran these corporate meetings. The owners stated exactly what the presentation software required for their industry, had contracts with keypad vendors that basically gave us serial-port input, and all we had to do was tabulate the results, record them, and stick them into graphs. Nobody on the group was required to do anything spectacular that a college grad with 3-5 years of general programming experience could not do. Additionally, there were approximate deadlines, but they didn't really care as long as some specific feature was in place before some specific presentation -- these were known months in advance.
Moving up to remote sensing hardware, people were starting to specialize. There were the hardware folk, many of them were highly specialized. That's partly because the company owners were two university professors who had some good ideas, and started a business with their best grad students. Everybody at the company was expert in mathematics, and had at least a BS. About half of the company had MS degrees or higher, and the only people without a BS were the interns -- they were still in college. In addition to lots of math, about half the people were quite good in one or more other areas. I know this is not the typical company, but it may be typical of your experience; in which case it does seem that everybody has several expert areas. Again, there was no real hard deadline, customers were mostly governments and they only cared about it being done within a certain fiscal year.
In my job with scientific computing, multiple specializations was almost required. At a minimum, you needed to understand all the nuance of floating point numbers, and how they are different from real-world values, and when that it a problem. There, I spent most of my time dealing with compatibility and networking issues. But I also had a lot of time in spatial partitioning and distributed computing. Most co-workers were also working on three or more complex issues. From my experience, I know that most of the programmers from the SQL/POS shop couldn't jump into those roles, and only one other person from the presentations software could have made that transition. Most of the people who worked with me at the remote sensing job could probably have made it though, a
In reply to your "news to game companies", here is news for you:
"They think they're doing something special, and that they're above every other type of programmer" [punctuation and spelling corrected]
That's a common perception from those outside of the entertainment industry. There are those 'stars' in the game industry, just as there are in the movie industry, who really do think that. One of the plain facts is that modern games take a lot of intellectual work, much more than optimizing SQL queries, putting components on forms, or making two computers talk to each other. It's no different than how some professors look down at some software developers. While it does take skill to do it, you aren't really pushing every neuron in your brain to put out form-based apps or SQL-based systems.
Regarding the amount of learning that has to take place:
Of the programmers on my team, 4 (including myself) have masters degrees and two have bachelors degrees. Every week I find myself reading several papers from journals and conference proceedings. In contrast, two of my brothers are also programmers. One does POS software for a nationwide company, another works for a small company with photo processing software. Both have seen the things I do at work, and I've seen theirs. Both have told me that they couldn't handle my job, but I know I could do either of theirs. One of them has had to read a few journals and articles, the other hasn't read any since he earned his bachelors degree almost a decade ago. One of them works with mostly BS degree or no degree, the other works with entirely BS degree and one MS degree people. As for me, I've thought about going back and getting another bachelors degree in math just to review some of the advanced topics.
Neither of my brothers, both competent programmers, can understand the math it takes in writing game graphics engines. Do you understand the math involved in manipulating manifold surfaces, or self-shadowing techniques? Perhaps you can explain to the crowd how to make a 3D model look like it is breathing? Or maybe implement a system to give models joints at hips, knees, ankles, and toes, and make them realistically move, jump, walk, crawl, or stand still, based only on a direction and speed? How about converting between 4x4 matrix form, and Euler angles, and quats? Can you even understand a number that has 1 real part and 3 imaginary numbers, [w, xi, yj, zk], and has no real-world analogue? How about pathfinding; Since you play games, can you explain or implement 3 of the pathfinding techniques you've seen? Maybe machine learning is your forte; Can you implement at least 2 machine learning methods, such as RBF networks or backprop neural networks? [Incidentally, while seldom used, both work well in games since there is practically no cost to use them.] How about cheat-resistant networking; Do you know how to tell the difference between a forged packet and a regular one? How about how to properly get around a NAT device? Since TCP is too slow, do you know how to deal with out-of-order UDP data? Or keep clients in sync when they are missing critical information? I've only met a few non-game programmers who could do all of these, but EVERY PERSON ON MY TEAM knows how to do ALL these. But even then, I can still do most of the things you probably do as a programmer. I frequently help my brothers out when we talk about difficult issues they are fighting in their own projects.
"first it's 30 minutes of moaning there 12 hour work day.
then its talking about there 2 hour lunch, there games of quakes, and shooting nerf darts at each other. then they complain about deadlines, the fact that they have to fly an inconvient flight to some electronics game convention, and the fact that there manager is bugging them to do there work in the schedule that the programmer said it would be done."
Again, in comparison with my brothers. In their environments, they plan
If you look at most quality TCO reports, they will have a little disclaimer stating that TCO is only one aspect of what should be reviewed.
Other SIGNIFICANT factors are "Return On Investment" approximate useful lifetime, estimated volume/throughput vs. required volume/throughput, and initial cost. Other than initial costs, these are usually omited when Microsoft and others start spewing TCO facts. These numbers are what accountants and auditors use to keep books in order. These companies are just reflecting what happens when you consider the other values.
For example:
Assume two products. One has a higher TCO, but lets assume it also has a longer (or possibly shorter) expected lifetime. More significant in that case, is the average or per-unit costs, which is (TCO/lifetime) . If the TCO is 25% higher, but the lifetime is 50% higher, then the higher TCO product will cost 0.83 for every 1.00 of the lower cost object.
A good real-world example for this first relationship: Do you buy the 2-liter bottle for 1.99, or the 3-liter bottle for 2.59? The 3-liter bottle has a higher TCO, but also a longer expected lifetime.
ROI is also very significant. Investing in stocks has a high TCO, when compared to, say, a bank CD. This year (a US election year) historical trends show an 8% increase in the stock market. I can get a CD with a guarenteed return of 2.25%, with a lower TCO.
TCO should be considered, and usually subtracted from ROI. For a business, ROI includes use of the product, so it is harder to subtract than cash interest.
In the banking example, You may pay a little more for the stock in this case, but at the end of the year, you'll be better off.
Volume/throughput is also very important. Most of the TCO reports indicate that in order to balance the TCO, the estimated that a single unix-based server needs about 1.5 to 2.0 Windows servers to handle the same load. Specifically, several IDC reports use 1.8 windows boxes to do 1 unix box. This effectively means that if you have enough work load to warrant purchacing multiple computers, you need to multiply the Windows TCO by 1.8.
For comparison -- the local Coke/Pepsi Bottling Plant won't buy the same products as your local individual canning company. The Bottling Plant will buy a high TCO canning system, designed for large environments. The smaller company will invest in a low TCO system, probably low-volume, hand-operated equipment.
So...
Considering TCO in a vacuum is foolhardy. Fortunately, these companies understand that.
thanks for the links to the overclocking 102 and 103 articles. FYI, in "101", they explain clock multipliers.
Yes, I liked to it too, but didn't bother to preview. Note that it should have been 1, 2, and 3, but instead was just 2 and 3. Oh well, you knew enough to figure it out.
In any event, overclocking the GPU is *NOT* just working with clock multipliers. It is adusting both the core voltage and timing frequency. Also, those articles are several years old, they were just near the top of the google query and covered most of the fundamental problems.
As per my earlier comments about magnetic fields, it is something that isn't frequently discussed outside of the serious overclocking lists, or hardware developers lists. Whenever electric current flows, there is a magnetic field generated. When there is a magnetic field around another path, it can create a current. In these small fabricated chips, there are occasionally problems due to unexpected generated current affecting parts of the chip. Usually it is explained away as processing errors, but it can sometimes have other effects.
Anyway, I'm getting rather pedantic at this point. Go read some of the overclocking newsgroups if you honestly care, if you don't care, then keep getting your facts from/. posts and articles.
There's no reason that Sun's JIT couldn't recognize that it's running on a P4 and generate SSE2 instructions to gain performance. If it doesn't, then it doesn't and that's a reflection of the quality of the JIT.
Exactly. It does not mean that the language version is inherently better or worse (as the author erroniously claimed).
Why does an increase in clock frequency mean an increase in voltage inside the chip? [remainder of post is guesses that show you shouldn't do serious hardware hacking]
What exactly do you think overclocking IS?
You increase the core voltage, and either directly (or indirectly, thorugh decreased time to charge the capacitors) increase the speed of the timing.
This results in added heat, but also less time for dissipation from capacitors that can reduce the life of the hardware, different voltage for computational units that leads to improper results, greater disparity between CPU and BUS speeds that can cause serious communication errors, reduced signal quality as voltages don't cleanly cross the thresholds, and in many cases where the tolerence of the hardware is low, permanent catistrophic failure.
I was going to put a few dozen links in for you, but you can use this google search or just read a single, but fairly informative, set of articles:
23
As you said, overclocking will sometimes break stuff, rather than gradual failings.
Notice that this is an increase in the voltage, inside the chips.
Then note that we're talking about the lowest-micron fabrication in general commidity chips.
Do you REALLY want to be increasing the voltage, and therefore temperature, magnetic fields, and other properties, on something like that?
I guess if you have the money to throw away, go ahead. I don't have a 5900 (I can't get my work to spring for it, so I bought my own FX card before it), but I wouldn't just try something like this until I'm willing to throw out the card.
So does this just make overclocking easier, or does it turn on other features?... Is that the case here too, or is it just a few extra FPS in Quake?
I'm right now looking at the Cg profile differences between them.
Probably a few other people are doing this right now, too. There are some differences in the profile, but I'm not sure yet if they are actual hardware differences or differences in the way the bios uses the hardware.
It will certainly be interesting to see when I, or somebody else, does figure that out.
I guess I'll expand on this since most people won't have a clue about it.
Cg, the shader programming language that nvidia put out, has profiles for different cards and functionality sets. Depending on how you code your stuff, it's like a JIT compiler that optimizes for the current video card driver. Those profiles are different. That might be because of the way the GPU is used is different, or it might be because there are different wirings within the core. I suppose I could rip open the boxes and see if the numbers printed on the chips are the same, but I'm not that kind of hardware geek.:-)
There never has, nor will there ever be, an all encompasing benchmark.... Thin[k] of all of the parms which go into application performance.... Think of the amount of impact the coder makes.... How about compiling & linking flags?
Not only that, but it helps to have a benchmark that actually tests the things that are claimed at being tested.
It's a Good Thing (tm) this didn't make the front page.
The author states "I am by no means an expert in benchmarking; I launched this project largely as a learning experience" and it shows. The man has an associates degree in computer science, and a Ph.D. in psychology. His list of publications are his dissertation, a single published paper, and excerpts within a 15-year-old travel guide.
Just a cursory glance at the first page of his article shows that he has no clue as to how things work. He states "I first tried to eliminate the CLR from the Visual C++ benchmark by turning off the language's "managed" features with the #pragma unmanaged directive, but I was surprised to see that this didn't lead to any performance gains." If he cannot understand why something that generates a few thousand CPU instructions of initial overhead doesn't change the speed of an I/O- and loop limited program, he isn't skilled enough to interpret his own results.
His benchmarks never actually test his first, second, third, or fifth question.
His fourth question is actually addressed better when his contrived test is compared on relative measure with his two Java tests.
Look at his benchmark programs (found here). Some of those test can, should, and will have compiler-specific optimizations, having nothing to do with the language. General 'counting loops', which is the only thing he is using, have long been known to produce bad benchmarks. He claims to be testing 64-bit floating point math, but in fact, many of his examples use 80-bit floating point.
Just for fun, look at his VC and Java 1.4 floating point tests. Now look at his compiler options. It is painfully obvious that the compiler saw "He explicitly said this is a Pentium 4, I can use parallel floating point instructions!" where the other compilers could not. Saying that those languages are inherently faster than the other compiled languages is lunacy.
This is hardly news. This is a BAD example of benchmarking, and would be given a poor grade in a graduate level CS class.
All the groups calling for voting reform can point there and say "Electronic voting without proper auditing tools is worse than hanging chads."
The Canadians will just keep laughing, as more people ask why their pencil and paper system works more smoothly, and in many cases faster, than ours.
I don't care if we have a fancy electronic system with proper audit trails, or if we go to a pencil & paper system with proper audit trails. I just care that we get there quickly.
So that this is on-topic, I think that the re-defining bill sounds bad, but the bill forcing stores to segragate games by rating and putting up a sign about the ratings (which the industry recommends they do anyway) is not bad. Maybe not a Good Thing, but it's something they probably ought to do on their own. Okay, now to respond. :-)
Knowling a lot about psychology, I will disagree with you. Actually, my wife studied Psychology in school, and I read her books and talk with her about conference papers and the kids she works with. Understanding fiction is not enough, and there are other factors.
I love games, I play games, I develop software tools for games. But I restrict my 4-year-old to Putt-Putt and the PBSKids website, and I turn off the TV or monitor & sound if I'm playing something violent and she walks in the room. I don't turn it off when the 10-year-old walks in, but I do stop playing.
I agree that being able to decide if it's real or not is very important. A 4-year-old, who thinks that My Little Pony cartoons are just as real as horses at the ranch, really has no business even watching a minute of realistically violent games. It would be immoral to let a 4-year-old play violent games. I think everybody here agrees with that.
However, it is NOT> just a perception problem in the case of the woman above who thinks violent games have a bigger impact to everyone (not just the 4-year-old) than violent movies; that is something that research is actually consistantly showing. Current research, (for example, look up Anderson & Dill, "Video games and agressive thoughts, feelings, and behavior in the laboratory and in life", Journal of Personality and Social Psychology) has been showing a stronger reaction than movies and TV between games and hostility. If aggressive movies have an affect on you, an aggressive game has a bigger affect. For me, the bunch of articles I was shown is as good as proof.
Just understanding the difference between reality and fiction isn't enough for kids and teens. In some research from the 1960's where kids and tweens watched an adult beat up a 'bobo the clown' doll. The kids would see one of three endings: adult was praised by others for violence, adult was punished by others, adult saw no consequences. Those who saw the reward for violence would often agressivly harm the doll when asked how to treat it, even more than the adult did. Those who saw nothing would repeat the behavior, those who saw a punishment were least aggressive generally. It didn't matter that THE KIDS WERE OLD ENOUGH TO KNOW REALITY AND FICTION, THEY STILL MODELED AND AMPLIFIED THE BEHAVIOR THEY SAW, increasing it if the behavior was rewarded, or decreasing it if punished.
Moving on...
Discarding the reality/fiction argument, actually playing games means you are more likely to encode the actions of the game, good or bad. If there is reinforcement for encoding more stuff, you are more likely to learn it.
A good example of encoding: without looking at US coins (which you probably have seen thousands of times) what direction does Lincoln face on the cent? Jefferson on the nickel? Where do the phrases "IN GOD WE TRUST", "LIBERTY", "THE UNITED STATES OF AMERICA" and the date show up? Where to the mint marks appear? You probably don't know, because there was no reason to pay attention to it.
In media generally, and to a greater extent in games, we need to endoce more details. Coins have only a few words, and counterfeit coins could land you in jail, but you don't bother to learn the details. A 2-hour movie has thousands of words and images
At an airport or traveling by bus or train, you no longer have a reasonable expectation of privacy, but you did a few decates back. What was once an unreasoble search is now reasonable thanks to the public and government knee-jerk reactions to sky-jacking, bombings, and terrorist activities. When talking through unencrypted e-mail or elsewhere, you no longer have a reasonable expectation of privacy. In fact... The expectation of privacy is not reasonable at such public places as automobile thoroughfares (United States v. Knotts [1983] 460 US 276, 281), and national forests (United States v. McIver [9 th Cir. 1999] 186 F.3d 1119, 1125, but is reasonable at public phone booths (Katz v. the United States, 389 U.S. 347 [1967]), rock concerts (Jacobsen v. Seattle, 658 P. 2d 653 [Wash. 1983]), and sports arenas (Collier v. Miller, 414 F. Supp. 1357 [S.D. Tex. 1976])."
It would seem that covert audio and video 'bugs' and interception requires a court order for police to do. Those are the same laws that are being called into play here. The person's communication was recorded.
Is this more in line with overhearing your speaking in public, or with dealing drugs with a narcotics officer, or with having an illigal wiretap? It seems the courts are saying it's like the wire-tap.
But that's away from the original post.
-sigh-. Why can't people just behave to begin with? All this controversy over the person's right be a pedophile. Did he have a right to privacy? Perhaps; privacy is an important, but not absolute, right. Did he have a right to solicit sex from (who he thought was) a child? No; child sex is illegal in just about every nation of the world, one of the very few 'global crimes'.
It's important that rights not be trampled on, it's also important that police have the ability to find and prevent preditors. Balancing them... that's the hard part.
frob
> What does the fact that many IRC clients generate logs have to do with whether or not it is legal? ... I doubt IRC is any different from AIM. Both services have clients that support logging, but neither is legal if either party is in one of the 12.
According to the article, the fact that the clients have it built-in is the deciding case for legality. In the 2002 case involving ICQ, having the feature built-in and active made it legal, even though they were in an all-party consent state. In the AOL case, since they had to go through an external system to record it, it became illegal.
Specifically, (again from the article): "The test seems to be whether the recording capability is part of the instant messaging software itself (in which case it may be legal to record) or whether it is an add-on, and therefore an unlawful recording. Courts in other all-party consent states like Maryland have reached similar conclusions with respect to recording telephone conversations."
So to answer you, the fact that many IRC clients generate logs means that under the de-facto rules, there is probably implied consent. IRC is different from AIM and from the case (which is NOT using AIM) because AIM, at least as far as I know, has no 'logging', (although it does support 'Save'). Since the case in the article is NOT dealing with AIM, but instead dealing with AOL Chat, and because the people had to copy/paste into another program to save the contents, this isn't really dealing with AIM. Since I've never used AOL Chat, I don't know about it, but it would seem that it has no support for logging, either.
Repeat: they are not talking about AIM in the article, they are talking about AOL's Chat. To be sure, AIM and other clients able to communicate on the AOL Chat network just complicate the matter. That is the idea I was trying to present: if my client is able to log and yours is not, then does that imply consent generally or not? How many clients need to have logging available before it does imply consent? But I'm sure they will bring that up in another lawsuit.
frob
But once we start throwing compatible and cross-network IM clients around, who knows what the rulings would be. Plantiff: "My client does NOT log by default, so there is no implied consent" Defendant: "Your doesn't but my client DOES log by default, therefore, the system implies consent."
frob
Up until a few centuries ago, argriculture and farming were done in just exactly the way you mentioned. That was just fine, because there were no "high efficiency farms" that you spoke of. In 1800, 90% of all Americans worked in agriculture, and the average farmer could produce about 100 bushels of crop from 5 acres of land with about 300 hours of work.
By 1890, only 90 years later, a farmer produce a 100 bushels of crop from a 2-1/2 acres of land with 40 hours of labor. Also in 1890, 43% were employed by agriculture. Steel plows, horse-drawn combines, railroads, and other innovations helped this out.
After the World Wars, gas-powered tractors pushed it up to 100 bushels on 2 acres in Ten to Fourteen hours of labor.
At the same time frame, the world entered into a huge recessions after each new innovation and after the world wars; Production of food was very high, the value of money had plumeted, and farmers *could not* sell their food to anyone. My dad, who lived on a farm from the 1920s through 1950s and worked in a small farming town, told us stories about expressions like: "would you like one egg in your beer, or two?" Because there was so much surplus, they couldn't even give food away.
Now for the economics lesson. Lets say prices on wheat are low. Your family wants more money, so the simple logical choice is to plant and sell more crops. But everybody else has that idea too. Jump forward a few months, and the market is literally flooded. Big corps will drop prices to almost zero in order to sell, meaning that you will have to practically give your food away. The next year comes, and you have no money for seed, and the banks won't lend you money since they saw how big the losses were last year.
This is a well known issue in both economics and world-history.
Yes, there are problems with the subsidy system. For example, lots of big corps abuse the system. But without it, there would be very serious, global agri-business problems.
(And yes, I have several close relatives in agri-business, mostly as potato and alfalfa growers. I've heard both sides of the issues, and think the subsidy is a good thing.)
frob
True enough. It is important to have a good relationship with the accountant. The document he is complaining about is a link to the problems he had for having an expired license. If you otherwise trust the guy, I'd just ask him "hey, will you show me a current license?"
Instead of coping with this (relatively minor) issue, the guy is suing for libel.
See my other posts in this topic for the legal definitions of that. In short: Legal documents are immune to libel claims (the guy is complaining about the index of a legal document); Statements must be false (Google's claims are about the document and are correct, they are not about the person); Malice must exist; Statements must be 'sufficiently factual' to be evaluated as fact about the person (The two excerpts you get from google are not facts about the person, only facts about the document being linked to)
So instead of not having clients trust him because of an expired piece of paper, future clients will see that he sues when people discuss his past. Rather than a little fear that the guy isn't currently certified, they'll turn and run because if they ever talk about him, they'll be the next ones in court.
And in the short term, this will probably be thrown out in a preliminary hearing.
All told, this guy's choice to file a lawsuit will probably harm him for the rest of his career. When I see these types of people, I generally feel sorry for them. Even if he manages to fight and win in court, he will still lose lots of business in his career. If he loses in court, it's even worse for him.
frob
Libel has a very specific legal meaning.
Online versions of the dictionary can be found all over, such as here and here.
Also, it is a form of defamation, defined as:
There are a bunch of points that all the companies have in their favor:
It has to protect from everything -- if a very young child can watch their parent's do it once, they'll figure out how to do it too. That includes things like ctrl-alt-del.
As I said (and the number of replies shows) there *is* a marekt for this sort of thing, if it's comprehensive enough. Maybe I'll spend a week on my app, fix it up for 2K and XP, and charge $10 for it or something.
The goal is to prevent *ANY* entrance to the system by the kid. The only reliable way I can seem to find for it is to write a GINA dll, and that's more work than my weekend-long project had in mind.
For example, I need to mod my computers to put a locking plexiglass cover in front of it -- to keep the little one away from the power, reset, and CD buttons.
The printer has ONE button, and when my 1-year-old discovered it, we had a pile of blank pages and "Printer Information" sheets on the floor.
I keep a spray-bottle of water and paper towels next to the monitor, since it will be covered with fingerprints every time I use the machine.
I would like an optical mouse that really isn't, so my kids can just pick it up and play with the lights, while I use the real one.
On Windows 98, I wrote a screen-saver program that put in a giant font on the screen whatever keys are hit. There was a message on the bottom saying "please type 'unlock' to unlock this computer". My (currently 4-year-old) daughter used to sit down with it, and say "look dad, I'm typing like you." I now keep it on her little computer so her little sister won't mess it up too badly. Unfortunately, I can't get WinXP to trap several key sequences, so it doesn't work there.
There is a market for that type of thing, and it isn't being tapped.
The first one does not allow you to take advantage of many new techniques. You have one version of everything, and takes advantage of a few 'eye candy' features, if present. The second one, which is what many games already do, is have many performance classes. For example, the machine falls into a bin of "Base Requirements Version (bad graphics, slow CPU)", "Version 1 (3-year old expensive system)", "Version 2 (1-year old expensive system)", and "Version 3 (today's $4000 system)". They then develop between two to four different algorithms, and a *LOT* of glue code so the displays don't look too different. The third option is to have both of the above options, plus global CLOD, procedural and implicit surfaces, and more advanced processing that takes so much math that a 3-year-old CPU can't handle it.
For example, page 6 discusses using high-quality water on faster machines, and low quality water on slower machines. They only touch on why it might be a problem, stating "fluid simulation will have to be either devoted entirely to ambient game effects or simple enough to run on the minimum system specs without any scalability to higher systems. Most likely, the introduction of fluid simulation to actual game-play, not just ambient effects, will require the combination of both, so the visual quality may be scalable but the simulation quality will be fixed."
Let's try to consider what the article REALLY means for this type of case.
First, we'll assume that water is critical to the game, and not just some fancy external thing. Maybe players are all riding around on jet-ski's or moterboats or battleships or something. The developer now has a choice. They can either:
This isn't just an issue of adaptive level of detail or swaping algorithms. Because this represents basic game states, it must be kept in sync on all clients, meaning it's an all-or-nothing decision. Do you want realistic ocean waves in your water game, or do you just want waves?
Let's look at another issue they bring up on page 1 -- Integrated Graphics Cards. (just typing that makes me shudder.)
Many integrated graphics cards don't have dedicated memory. Just looking through a Dell catalog will have little footnotes next to laptop and 'economy' computer memory numbers, system memory will be shared with graphics and audio processing. The board might have a fancy nvidia or ATI processor on it, and the card might be able to do all of the algorithms just fine; but the moment you run some combination of algorithms at the same time, they fight for the same CPU and memory spaces, and grind to a halt. In this case, the system stats themselves could be more than enough for the game, it's the motherboard or some other component that's the bottleneck.
In that case, dynamic algorithm selection is basically required, and is something many games already do.
But how long can we keep it up? Right now we already have to code for:
When is it too much? Already, we have to test dozens of different configurations.
That's what the article was asking. How can we have the third option (infinite scalability) without ignoring all the lower-end 'budget' PCs?
The question is still open.
frob
In order, yes, but since my co-workers are as qualified or more, it's possible that my entire shop is filled with the top developers, and it's possible that there are a bunch of other shops full of regular programmer joes. I don't believe it's the case, but it's possible.
As for the third question, since I'm at work now, I've just taken a straw poll.
The consensus is that this place is typical of other studios that people have worked at, and that the people who don't have multiple specialties or are able to quickly become expert in a few areas within a year usually end up leaving on their own.
Again, I'll repeat the challenge of the original paper, and of my earlier posts. This is a difficult but fun area. If you are interested, come in.
Write a simple game on your own, something a one-man shop could do. Write another pac-man clone, or space invaders, or asteroids. Polish it with title screens showing points and credits, and make it look like something from an 80's arcade. Here's your checklist, you should be able to do all of this in a demo to show a reasonable depth of knowledge: Interactive speed, reasonable graphics (we know you aren't an artist), sound, some simple AI, some simple levels, simple game states, crash and error-free, and well-polished. Do it very well -- have friends play it, and polish it some more.
If you can do that much, and still want to do more, then you're probably cut out for the industry. Writing a full (but simple) game, fully polished, means you have at least a functional understanding of what's involved, along with enough fortitude to get something finished. Bring with it one other area of competence (from your work history), and a general desire for writing games. Be prepared to explain at least one game in depth -- able to discuss how they implemented their graphics, levels, AI, storyline, and general gameplay, or anything else, and what they did wrong and right. Finally, be prepared for a one or two day coding sample. Do all that, and you will quickly get a job. Once you're in, you'll feel like an intern -- spending six months to a year getting expert in several different areas, in addition to regular work.
But be warned, [as the article states] it's a lot harder than it looks/sounds.
frob
I cannot deny that many programmers have multiple specialties. I have worked in shops that do SQL all day, and presentation software, and remote sensing, and scientific computing, as well as the game industry. I've worked with programmers that range from high-school dropouts to PhD earners. I believe I've seen most of the full range.
That's where I disagree with you. It is not just a matter of being more specialized. I believe there is a completely different, almost fundamentally different, degree of difficulty and requirements for game developers.
I'll go through the places I'm comparing it against. Feel free to disagree about any of them, but I feel that each is fairly typical of programming environments.
When I was working with SQL on POS, there were 7 of the about 35 programmers there who were the SQL and communications experts. They could literally do anything that anybody else was doing. The remaining 80% of the programmers were just doing grunt-work, basically commodity programmers. Yes, people had specialties, but they weren't really used. There were approximate deadlines, but they were very soft.
Next, I worked with presentation software, specifically it was interactive polling in focus groups and larger corporate meetings. The owners were all psychologists that ran these corporate meetings. The owners stated exactly what the presentation software required for their industry, had contracts with keypad vendors that basically gave us serial-port input, and all we had to do was tabulate the results, record them, and stick them into graphs. Nobody on the group was required to do anything spectacular that a college grad with 3-5 years of general programming experience could not do. Additionally, there were approximate deadlines, but they didn't really care as long as some specific feature was in place before some specific presentation -- these were known months in advance.
Moving up to remote sensing hardware, people were starting to specialize. There were the hardware folk, many of them were highly specialized. That's partly because the company owners were two university professors who had some good ideas, and started a business with their best grad students. Everybody at the company was expert in mathematics, and had at least a BS. About half of the company had MS degrees or higher, and the only people without a BS were the interns -- they were still in college. In addition to lots of math, about half the people were quite good in one or more other areas. I know this is not the typical company, but it may be typical of your experience; in which case it does seem that everybody has several expert areas. Again, there was no real hard deadline, customers were mostly governments and they only cared about it being done within a certain fiscal year.
In my job with scientific computing, multiple specializations was almost required. At a minimum, you needed to understand all the nuance of floating point numbers, and how they are different from real-world values, and when that it a problem. There, I spent most of my time dealing with compatibility and networking issues. But I also had a lot of time in spatial partitioning and distributed computing. Most co-workers were also working on three or more complex issues. From my experience, I know that most of the programmers from the SQL/POS shop couldn't jump into those roles, and only one other person from the presentations software could have made that transition. Most of the people who worked with me at the remote sensing job could probably have made it though, a
That's a common perception from those outside of the entertainment industry. There are those 'stars' in the game industry, just as there are in the movie industry, who really do think that. One of the plain facts is that modern games take a lot of intellectual work, much more than optimizing SQL queries, putting components on forms, or making two computers talk to each other. It's no different than how some professors look down at some software developers. While it does take skill to do it, you aren't really pushing every neuron in your brain to put out form-based apps or SQL-based systems.
Regarding the amount of learning that has to take place:
Of the programmers on my team, 4 (including myself) have masters degrees and two have bachelors degrees. Every week I find myself reading several papers from journals and conference proceedings. In contrast, two of my brothers are also programmers. One does POS software for a nationwide company, another works for a small company with photo processing software. Both have seen the things I do at work, and I've seen theirs. Both have told me that they couldn't handle my job, but I know I could do either of theirs. One of them has had to read a few journals and articles, the other hasn't read any since he earned his bachelors degree almost a decade ago. One of them works with mostly BS degree or no degree, the other works with entirely BS degree and one MS degree people. As for me, I've thought about going back and getting another bachelors degree in math just to review some of the advanced topics.
Neither of my brothers, both competent programmers, can understand the math it takes in writing game graphics engines. Do you understand the math involved in manipulating manifold surfaces, or self-shadowing techniques? Perhaps you can explain to the crowd how to make a 3D model look like it is breathing? Or maybe implement a system to give models joints at hips, knees, ankles, and toes, and make them realistically move, jump, walk, crawl, or stand still, based only on a direction and speed? How about converting between 4x4 matrix form, and Euler angles, and quats? Can you even understand a number that has 1 real part and 3 imaginary numbers, [w, xi, yj, zk], and has no real-world analogue? How about pathfinding; Since you play games, can you explain or implement 3 of the pathfinding techniques you've seen? Maybe machine learning is your forte; Can you implement at least 2 machine learning methods, such as RBF networks or backprop neural networks? [Incidentally, while seldom used, both work well in games since there is practically no cost to use them.] How about cheat-resistant networking; Do you know how to tell the difference between a forged packet and a regular one? How about how to properly get around a NAT device? Since TCP is too slow, do you know how to deal with out-of-order UDP data? Or keep clients in sync when they are missing critical information? I've only met a few non-game programmers who could do all of these, but EVERY PERSON ON MY TEAM knows how to do ALL these. But even then, I can still do most of the things you probably do as a programmer. I frequently help my brothers out when we talk about difficult issues they are fighting in their own projects.
Again, in comparison with my brothers. In their environments, they plan
Other SIGNIFICANT factors are "Return On Investment" approximate useful lifetime, estimated volume/throughput vs. required volume/throughput, and initial cost. Other than initial costs, these are usually omited when Microsoft and others start spewing TCO facts. These numbers are what accountants and auditors use to keep books in order. These companies are just reflecting what happens when you consider the other values.
For example:
Assume two products. One has a higher TCO, but lets assume it also has a longer (or possibly shorter) expected lifetime. More significant in that case, is the average or per-unit costs, which is (TCO/lifetime) . If the TCO is 25% higher, but the lifetime is 50% higher, then the higher TCO product will cost 0.83 for every 1.00 of the lower cost object.
A good real-world example for this first relationship: Do you buy the 2-liter bottle for 1.99, or the 3-liter bottle for 2.59? The 3-liter bottle has a higher TCO, but also a longer expected lifetime.
ROI is also very significant. Investing in stocks has a high TCO, when compared to, say, a bank CD. This year (a US election year) historical trends show an 8% increase in the stock market. I can get a CD with a guarenteed return of 2.25%, with a lower TCO. TCO should be considered, and usually subtracted from ROI. For a business, ROI includes use of the product, so it is harder to subtract than cash interest.
In the banking example, You may pay a little more for the stock in this case, but at the end of the year, you'll be better off.
Volume/throughput is also very important. Most of the TCO reports indicate that in order to balance the TCO, the estimated that a single unix-based server needs about 1.5 to 2.0 Windows servers to handle the same load. Specifically, several IDC reports use 1.8 windows boxes to do 1 unix box. This effectively means that if you have enough work load to warrant purchacing multiple computers, you need to multiply the Windows TCO by 1.8.
For comparison -- the local Coke/Pepsi Bottling Plant won't buy the same products as your local individual canning company. The Bottling Plant will buy a high TCO canning system, designed for large environments. The smaller company will invest in a low TCO system, probably low-volume, hand-operated equipment.
So...
Considering TCO in a vacuum is foolhardy. Fortunately, these companies understand that.
frob
In any event, overclocking the GPU is *NOT* just working with clock multipliers. It is adusting both the core voltage and timing frequency. Also, those articles are several years old, they were just near the top of the google query and covered most of the fundamental problems.
As per my earlier comments about magnetic fields, it is something that isn't frequently discussed outside of the serious overclocking lists, or hardware developers lists. Whenever electric current flows, there is a magnetic field generated. When there is a magnetic field around another path, it can create a current. In these small fabricated chips, there are occasionally problems due to unexpected generated current affecting parts of the chip. Usually it is explained away as processing errors, but it can sometimes have other effects.
Anyway, I'm getting rather pedantic at this point. Go read some of the overclocking newsgroups if you honestly care, if you don't care, then keep getting your facts from /. posts and articles.
You increase the core voltage, and either directly (or indirectly, thorugh decreased time to charge the capacitors) increase the speed of the timing.
This results in added heat, but also less time for dissipation from capacitors that can reduce the life of the hardware, different voltage for computational units that leads to improper results, greater disparity between CPU and BUS speeds that can cause serious communication errors, reduced signal quality as voltages don't cleanly cross the thresholds, and in many cases where the tolerence of the hardware is low, permanent catistrophic failure.
I was going to put a few dozen links in for you, but you can use this google search or just read a single, but fairly informative, set of articles: 2 3
Notice that this is an increase in the voltage, inside the chips.
Then note that we're talking about the lowest-micron fabrication in general commidity chips.
Do you REALLY want to be increasing the voltage, and therefore temperature, magnetic fields, and other properties, on something like that?
I guess if you have the money to throw away, go ahead. I don't have a 5900 (I can't get my work to spring for it, so I bought my own FX card before it), but I wouldn't just try something like this until I'm willing to throw out the card.
frob
Probably a few other people are doing this right now, too. There are some differences in the profile, but I'm not sure yet if they are actual hardware differences or differences in the way the bios uses the hardware.
It will certainly be interesting to see when I, or somebody else, does figure that out.
I guess I'll expand on this since most people won't have a clue about it.
Cg, the shader programming language that nvidia put out, has profiles for different cards and functionality sets. Depending on how you code your stuff, it's like a JIT compiler that optimizes for the current video card driver. Those profiles are different. That might be because of the way the GPU is used is different, or it might be because there are different wirings within the core. I suppose I could rip open the boxes and see if the numbers printed on the chips are the same, but I'm not that kind of hardware geek. :-)
frob
Not only that, but it helps to have a benchmark that actually tests the things that are claimed at being tested.
It's a Good Thing (tm) this didn't make the front page.
The author states "I am by no means an expert in benchmarking; I launched this project largely as a learning experience" and it shows. The man has an associates degree in computer science, and a Ph.D. in psychology. His list of publications are his dissertation, a single published paper, and excerpts within a 15-year-old travel guide.
Just a cursory glance at the first page of his article shows that he has no clue as to how things work. He states "I first tried to eliminate the CLR from the Visual C++ benchmark by turning off the language's "managed" features with the #pragma unmanaged directive, but I was surprised to see that this didn't lead to any performance gains." If he cannot understand why something that generates a few thousand CPU instructions of initial overhead doesn't change the speed of an I/O- and loop limited program, he isn't skilled enough to interpret his own results.
His benchmarks never actually test his first, second, third, or fifth question. His fourth question is actually addressed better when his contrived test is compared on relative measure with his two Java tests.
Look at his benchmark programs (found here). Some of those test can, should, and will have compiler-specific optimizations, having nothing to do with the language. General 'counting loops', which is the only thing he is using, have long been known to produce bad benchmarks. He claims to be testing 64-bit floating point math, but in fact, many of his examples use 80-bit floating point.
Just for fun, look at his VC and Java 1.4 floating point tests. Now look at his compiler options. It is painfully obvious that the compiler saw "He explicitly said this is a Pentium 4, I can use parallel floating point instructions!" where the other compilers could not. Saying that those languages are inherently faster than the other compiled languages is lunacy.
This is hardly news. This is a BAD example of benchmarking, and would be given a poor grade in a graduate level CS class.
All the groups calling for voting reform can point there and say "Electronic voting without proper auditing tools is worse than hanging chads."
The Canadians will just keep laughing, as more people ask why their pencil and paper system works more smoothly, and in many cases faster, than ours.
I don't care if we have a fancy electronic system with proper audit trails, or if we go to a pencil & paper system with proper audit trails. I just care that we get there quickly.
frob
Unfortunately, since they fired all their techs and replaced them with lawyers, nobody knows how to replace it.