RealPlayer...had a disturbing way of making itself a little too much at home on your PC--installing itself as the default media player, taking liberties with your Windows Registry, popping up annoying "messages" that were really just advertisements, and so on.

And some of RealNetworks' habits were even more troubling. For example, shortly after RealJukeBox appeared in 1999, security researcher Richard M. Smith discovered that the software was assigning a unique ID to each user and phoning home with the titles of media files played on it--while failing to disclose any of this in its privacy policy. Turns out that RealPlayer G2, which had been out since the previous year, also broadcast unique IDs. After a tsunami of bad publicity and a handful of lawsuits, Real issued a patch to prevent the software from tracking users' listening habits. But less than a year later, Real was in hot water again for tracking the habits of its RealDownload download-management software customers.

Tuesday, May 16, 2006

Programming difficulties

I was presented with the statement "State machine programming is complex," but the statement pretty much went over my head. Here's what I found that related to the topic:

When doing data-driven programming, one clearly distinguishes code from the data structures on which it acts, and designs both so that one can make changes to the logic of the program by editing not the code but the data structure.

Data-driven programming is sometimes confused with object orientation, another style in which data organization is supposed to be central. There are at least two differences. One is that in data-driven programming, the data is not merely the state of some object, but actually defines the control flow of the program. Where the primary concern in OO is encapsulation, the primary concern in data-driven programming is writing as little fixed code as possible....

Programming data-driven style is also sometimes confused with writing state machines. It is in fact possible to express the logic of a state machine as a table or data structure, but hand-coded state machines are usually rigid blocks of code that are far harder to modify than a table.

Interestingly enough, the first entry in a Google search for "hard to program" isn't a typical computer programming language or platform - it's an entertainment device:

According to anonymous sources at Wal-Mart—a company so powerful that even MS must bow to its whims—the XBox360 will be priced at $299.99 with standard $59 games. It is also apparently very hard to program for so the first games will be Snake, Tic Tac Toe, and an exciting game called Hello World featuring a delicately rendered image of floating words in an extruded Helvetica font.

Apparently this is a problem (or is perceived to be a problem) on other gaming platforms:

Although few doubt the relative power of the Cell microprocessor, many have expressed concern over the chip’s “asymmetric design,” which makes programming for it a potential disaster.

One such man was 3D artist Josh Robinson, who was fired from his position at Sony just weeks after making a public, negative comment about PlayStation 3 development on his Internet blog.

“Let me first just say, all I really did was write a few paragraphs that gave my opinion on publicly released information,” said Robinson. “I never actually released any information. After reading my small article the reader is not any more informed about the PS3 than he was before the article.”

Marc Tremblay, chief architect of Sun's rival chip Niagra, told Forbes the Cell's uncooperative design will stifle adoption outside of the gaming world and said "the programming model is a nightmare."