MSDN Academic Alliance has some articles on progress being made on using functional languages on the CLI. Microsoft seems to be aware that there is value here, but they are moving cautiously.
Herein lies the rub in getting adoption of any of the more "esoteric" (read: not procedural) languages into the mainstream: libraries that require "understanding" of the functional model. After spending years interviewing programmers I can safely say that most barely remember the functional languages they were taught (if they were taught). Try to then force them to use an "alien" library that works in a functional way, and you might as well ask them to chop their arms off and thresh wheat.
I sometimes suspect that.NET may be the only hope of getting functional programming adopted by the maininstream. Currently the CLI has limitations that hamstring functional languages, but Microsoft has actually been bothering to try to rectify those problems. If they do, I would *love* to run ocaml or Haskell with the.NET infrastructure to back up the boring routine work. For that matter *any* major libarary of functionality accessable to a functional language.
Actually, I was considering this yesterday. Most politicians are either lawyers or successful businessmen. Is it therefor surprising that the only things that are seen as valuable and worth protecting are those things which are valuable to those groups? (This is excepting the lip service to those who voted them in: I mean what they *really* work hard to achive.)
This thought was triggered by the news that Google and other large companies are outsourcing R&D work. In a technology based company, R&D is basically the foundation that supports your next business cycle. Outsourcing it would seem like suicide. Then I realized that perhaps even Google's leadership has been won over to the concept that somehow the only important part of a company is the business leadership. Everything else can be packed up, shipped out and done cheaper. Even the functions that determine the future sustainability of your company.
I wonder how long it really will take for the US to train the world how to replace it, whilst simultaniously creating a legal environment so hostile to innovation that nothing new is created here. After that, how long before the suits will have to move to where the real action happens... wherever we transfered all our skills and knowledge in the persuit of lower prices.
I love functional programming. If I had my way, my projects would all use functional programming languages. I don't have my way however, and there are two reasons.
1. Few commercial tools: Functional languages are under represented in the commercial space. With the exception of Franz Lisp and a few other lisp dialects, there is little commercial support. That may not be a killer for everyone, but I would like an environment with a good form designer and a large library to back me up. One I could give to another coder and expect them to be productive with it. Emacs works as an IDE for me, but I can't force that on others...
2. Fewer programmers: The vast majority of programmers seem unable/unwilling/whatever to grasp the concepts and work with functional code. If you need to build a team of programmers, it is much harder to find those who can do functional programming (and when you do, they rock, but are expensive and in high demand).
In the end, I use commonly used commercial tools so I can work with other people. Internally I use a lot of non commercial tools (LAMP model) and so I can sometimes indulge in my functional side there, but rarely can I do functional programming for my business clients.
Brutal games are being made today, but the serve a niche, not the mainstream. Mainstream gamers want to *have fun* playing a game, not necessary throw their controllers around in fits of rage.
I used to have the time and focus to play games like Shadow of the Beast of the Amiga for hours, perfecting my timing. Today, I prefer something a bit less demanding. Prince of Persia was a hit with me due to the magic of the rewind feature: sure, you failed that jump, but you just pressed a button and rewound until *before* the failure, and tried again. Nearly instant "load game", without all the loading fuss.
Meanwhile, Ikaruga (or however it is spelled) is a great shooter, but I don't think I will be imitating the demo play with perfect *MAX CHAINS* through the level. (I'm in awe of the recorded demos... freaking amazing talent displayed). Still, I can have a blast in two player mode, just trying to *survive* a few levels...
Really, the reason the old games simply ramped difficulty up to the point of impossibility was they had *nothing else to offer*. With in game movies with semi-coherent plots, lots of variety in gameplay, cool levels and a bit of humor, why would I want to beat my head against the same level for hours on end? Games have moved on from challenge to entertainment, excepting the few titles (Contra for PS2 anyone) that specifically were designed for the hardcore "lets try that a hundred times" gamer.
You have an excellent set of huristics for running a PK enabled mud. My point is more fundamental than that. My wife wouldn't and won't participate in PK environments. She is interested in the social aspects and co-operative missions. She started playing MUDs back with me in a smaug codebase that I was customizing (she wanted to know what all the fuss was). She played Everquest, but on a non-pk server. She was quickly able to join a clan, build vast circle of friends and tackle great challenges *co-operatively*. She won't even start a character on the PK server I play on from time to time.
So while you have great technical solutions to having PK intergrated, my point is there is a large market who has *no interest* in PK. Thus my reference to Talkers and MOOs. What percentage of the market they are is up in the air.
Your solutions appeal to a specific group that I have personally addressed in coding muds via Clan Wars and a vast political system (sadly for a mud that went down 5 years ago amist *administrator* [real life lovers] bickering). The political system created a way for non PK and PK players to interact in the same world, by making political offices available *only* to PK players, and giving votes to *only* non-PK players. The PKs became the "champions" of the non-PK players in Clan wars that could affect the availability of goods and services in towns. We saw no drop off in players when we introduced this: on the contrary, we went from 10-12 average simultanious users to 50 after that was implemented, as the PKs fought vicious battles and the non-PKs became involved indirectly in the outcome. Some additional tweaks had to be added (clan wars happen in areas where non PK players could not enter, to prevent 'interference' in the battle field, but the PKs could come back to the main town and get buffed and healed.) but after a few months our players had a blast.
The eternal PK / no PK conflict. Having coded muds for a *long* time, I can safely say you will never resolve this, as this is a personality issue, not a technical issue.
Some people want to play a cooperative game against the "game". Others want to play a battle of wits other players. There is plenty of middle ground, and where you stand on this determines the kind of players you will get.
Since you seem to like the PK aspect, you would probably be *shocked* that people play "talkers" and "MOOs" where combat plays *no part* in the game. (Some MOOs have added combat, but the base code is about creation, not destruction). Yahoo Pirates attracts different players than Dark Age of Camelot.
Personally, have my 12th level character mob-killed repeatedly by 35th level characters that I have no hope against doesn't appeal. But that is my *personality*. Perhaps you will say that I should be mob-killed repeatedly for simply existing.
Interesting that you mention that. Some of the goofy sounding checklist items that Total Information Awareness was supposed to bring to the table to help identify potentially dangerous terrorists sleepers:
What kind of meat purchases were made
Any alcoholic beverage purchases
Any adult material purchases
Tobacco products
The theory was purchases of a Good American Citizen(tm) would not match the quirks of a zealot. Therefor, if you didn't purchase specific products (and purchased other specific products) you would be identifiable as a higher risk factor. Of course, shopping was only part of the picture: travel destinations, unusual schooling patterns, etc were all part of the rational for wanted all information in a central DB.
[0014] FIG. 1B is a pictorial diagram illustrating one implementation of a panel containing a desk guide used to switch among multiple virtual desktops according to the prior art.
[0015] FIG. 1C is a pictorial diagram illustrating another implementation of a panel containing a desk guide used to switch among multiple virtual desktops according to the prior art.
Those who are talking about the old x-windows multiple desktop switch tools are correct: and Microsoft is well aware of them. They are claiming a particular version where there is a tray icon (without preview) that summons a dialog which shows all the desktops in scaled format for selection. I use the alt-tab powertoy that I'm pretty sure this is based on: as I alt-tab I see a reduced picture of the app I'm selecting to (except my X-Window client, which it can't read).
Personally, I don't see this as a patentable advance, but they are claiming that showing a full rendition of the desktop in reduced form is different from showing shaded areas where the windows are.
For my hat? Yes, that was a paranoid rant, but think how much marketers would pay to have detailed info on upscale clients. Frankly, I doubt they would pay attention to me, and my tinfoil hat...
You know, Ratchet and Clank 2 improved on the formula so much that I really appreciated the sequel. Considering how good the original was, that was an achievement. I don't really care if it is a sequel or a new game, as long as it is good. Similarly, I think some games (Sly Cooper) may only succeed when a sequel comes out. The original was a very well designed game (I finished it and both Ratchet and Clank games: rarely do I have the attention span to do so) that didn't sell as well as it deserved.
I like innovation as much as the next person, but that doesn't mean I can't see the sequels as worthy as long as they continue to refine and improve the gameplay. It is unfortunate that innovative gameplay rarely captures sales these days. Some of my favorite games are commercial disasters, which means I had better enjoy what I have, because there *won't* be a sequel.
I see a new business opprotunity! Several states decided a while back to make a profit off of the backs of the citizens by selling government databases to spa^H^H^H marketers. One of those databases was the registration data from the DMV.
Combine that with RFIDs scanned as they leave the store, returning to the car, and I think we will have an incredible insight into the nature of those people's purchases. I'm sure some clever individuals will be able to build a portable scanner and have some underpaid kids key in the corresponding plates... won't this be wonderful!
Democratic elections can coexist with communist ideals, but usually the blend is called social/democratic not communist/democrating due to two things. The first is the "hot button" that the word communist represents politically, and secondly because true communism fails over a certain threshold population size. (Utopias usually were communal, and they worked until the freeloaders overloaded the system...)
You have to realize that there is a spectrum of political stances and different dimentions they go in. Mob Rule -> Representitive Democracy -> Republic -> Parlamentry Monarchy -> Dictatorship represent a rough sketch of the peoples participation in government. Communism -> Socialism -> Self Determination represent an axis of "how much support" the people should receive from government. These are rough, incomplete and off the top of my head, but you can combine any representational system with any support system, in theory. Likewise, the Capitalist -> State Run market axis is theoretically independent.
Modern usage has tended to blur the true meanings of these words. We seem to assume "Democratic" = "Representitive Democracy + Mild Socialism + Capitalism". It doesn't have to be that way.
I loved my Amiga. It was capable of doing things that my PC using friends were blown away by. The custom hardware was, in its day, the most advanced on the market for the ordinary consumer.
That day is past: looking at this desktop I see nothing that different from any other desktop. My love for the Amiga was its ability to crank tracker sound files while doing work. The ability to play games far cooler than any the PC world could generate. The ability to multitask while compiling software.
Today, even a modest PC with XP home can do all that and more. I'm really not seeing the value that "Amiga" brings to the table. Sure, it brings back memories, but I'm more apt to fire up my emulator to revist some classics than to want a new OS that runs on... what?
Even in a noisy environment, you can take audible notes if you have a nose cancelling headset. With the exception of car horns, the traffic can't be heard. However, you also look like a homeless person jabbering to invisible people even more than the usual headphone+cell phone geek, because the normal cell phone pattern of speaking goes away. Nothing like randomly beginning to speak into the air to freak the locals out...
I'm curious about the "Then the unit tests could/should have been better. Sorry, it really is that simple."
I have been working on a very large web based product. I use a test product that exercises the UI, but I find it difficult to test two components:
1) ASP pages (or for that matter PHP or any other dynamic scripting code) that generate HTML. The test product can either check for exact matches (which means updates to XSTs break things) or it can look for things with names and IDs (which most elements don't have).
2) Data driven processes. The entire system is backed by a SQL database, which is constantly updated to reflect our production environment. One portion of our product is *extremely data driven* (it writes code based on data in the database for our customers.) Testing SQL components is a bear because either a) you fake the incoming recordset, which means it fails to reflect schema and stored procedure changes or b) you work with the data, which may get modified and break the test.
Sure, I can write unit tests for functions that take data and spit out data, but for functions that take sql and split out html, I just can't seem to find a good solution. I have tried to maintain a "testing" sql database with carefully selected data, but it quickly becomes out of synch with the real development databases.
To get concrete about this, I can write a function that adds a user to the database by calling a function with predetermined values. Except, once I call it, I can't use it again because the system detects the existance of that user account and acts different. We don't delete accounts (by policy requirements), but just disable them, so I can't even just yank the account.
Even worse, the actual process of creating a user spans five web pages, collecting data, testing it against conditions, asking for only needed data, etc. So I write web client test code that is as fragile as glass because HTML web client testers can't cope with even minute changes to the appearance of a page.
If you know tools/methods/whatever that address this kind of programming, I'm eager to check them out!
That I'm offended when/. becomes the home of "could you do my homework for me"? Perhaps then I can be forgiven for going ballistic at "I work in Global IT" (read: I make big bucks) "but I can't be asked to think for myself" (read: I make big bucks on the backs of others).
Gah.
Yes, this is a troll - it couldn't be helped. This type of freeloading makes me sick.
None of the projects I have looked at appear to have test first design. Some (especially CPAN items) have good testing of the functionality in place, but these are all modules inside a programming language. I have never seen a full on stand alone project with such testing built into the core.
I find that odd really, considering that the point behind "write tests first" is to create an executable specification for functionality. If a new piece is desired, surely it would be easier for someone else to pick up the module with the tests and write code to pass the tests than it is to try to pick up the flow of a project from out of date documents, etc, and just contribute. I look forward to those who know of such projects, because I plan to examine them for help on how to implement these techniques myself. (My current project uses regression tests driven by an external test application... I have had this same question for some time, especially in regards to web applications).
While the article mentions that the exact attacks that you say could happen in open source software could also happen in closed commercial software, I find the "barriers to implementing them are much higher" concept to be absurd. Just as the articles sasy the core Linux kernel is tightly monitored, so is the software from Microsoft. However, when it comes to smaller products, products that I have worked on, I would have to chuckle at the naive view that somehow closed source is "better protected". Most smaller companies that I have worked with are *far* more interested in getting a product to release than checking for backdoors. Testing is for failure modes, not for subtle pointer errors that open the code to obscure exploits.
In open source software, the maintainers vet patches by peer review before admitting them into the main product line. Likewise, closed source products are peer reviewed, but by a much smaller team, who probably have much more similar agendas than people flung across the globe. Either could be compromised. This exact same article could have been entitled "Software Is Fertile Ground for Foul Play". The concern that backdoors exist is the reason Asian countries have been suspicious of Microsoft's closed source software. To assuage those fears, Microsoft provided the source code for review. If this review is successful in showing that no backdoors exist (and I have no idea how they can tell that some unobtrusive code isn't deliberately flawed) then surely open source can be equally reviewed, if not suffer a more stringent review by opening the question to the open source community within the country in question.
The security that closed source promises by "protecting the source" is security through a promise by a potentially hostile vendor. The security open source promises is the vigilance of those who review the code. I don't see how one is better than the other, but I surely don't see how closed source is going to make a potential target feel better than if they could review the source.
I appreciate the effort and dedication that these people have put into these games. I have thought about producing an independent game title myself, but the amount of effort that goes into doing so is much higher than that going into custom applications. In a custom application for a client I have the database, middeware and UI to worry about. In a game you have the underlying engine, UI and real time programming coupled with music and graphics production (2d and 3d) without the committment of payment on delivery. For some reason my wife is reluctant to let me spend six months with a potential big fat zero return on that time. Pitty really: I would much prefer to work on something that brings enjoyment to people rather than "productivity enhancements" and "better cost control".
Didn't anyone read the "technologies that refuse to go away" article? Analog phones have so many advantages over digital technology that I find it hard to believe they will go away anytime soon.
1. Ubiquity: not just in the US, but world wide. The analog phone network links many countries that will take a long time to bring enough bandwidth to make digital conversations useful. Even in the US, there are a *lot* of places where you can't get broadband. If you are doing video you *need* broadband. If you are doing voice, you *want* broadband for the lower latency.
2. Reliability: with the exception of *major* disasters (which would bring any network down) the analog phone system just works. I keep one corded phone in the house because it works when the power goes out. (Handy, say, to call the electrician on.) My PC will last 15 minutes on battery backup: not what I want to rely on if I come home to a dark house. My local cable provider has "digital phone" service which has outage issues at least once a month, and sometimes weekly. My cell phone is likewise prone to sudden disconnects, but I put up with it for the sake of being mobile.
3. Quality of Service: I have a few friends too cheap to pay for long distance who like to voice chat over Yahoo and other services. It works. Kinda. Except when it doesn't, and drops the connection, or crashes or makes my sound card cry. But even when it works, it sounds bad.
That isn't to say these are insurmountable problems. The analog phone network is mostly digital at it's core, so it isn't a matter of technology, per se. Instead, it is the attempt to shoehorn voice over IP, and particularly over the laggy, drop prone and quirky public Internet. Voice is almost there, if you have good broadband. Video is a joke still: it reminds me of Internet radio about 4 years ago, mostly a novelty. It is going to take a lot of work at the infrastructure layer to make digital VOIP and video a common occurrence that is relied upon, instead of as a novelty, or in applications where people put the infrastructure in place themselves (tele-medicine, big companies with video conferencing between T1 connected locations, etc).
While I doubt PS1 games will drive PS3 sales, due to the dismal initial lineup for the PS2, I was thankful that when I bought it I could by classic PS1 games out of bargin bins. I doubt I was the only one who said "what the heck, I can play the old games too (and some of those are great games)" and was influenced by that feature. I bought as many PS1 games as PS2 games when I first had the machine.
If the PS3 doesn't have backwards compatibility, then my library of over 40 PS2 games (and 20 odd PS1 games) isn't a factor in my looking at PS3 vs XBox vs Nintendo. If it isn't a factor, then I would probably just skip picking it up, at least until it drops price considerably and has a substantial library of *good* (not *launch*) games. I didn't buy a game cube until they dropped to $99, and then I picked up 7 games on the cheap. Same with the XBox... I'm only interested because of the rumored upcoming bargin bin prices.
Likewise, my affinity for the Gameboy Advance (last refuge of turn based gaming) is due to its ability to run earlier games. I have ignored other attempts at portability, simply because I have an investment in games.
Surely I'm not alone in wanting some value out of my gaming dollar? A PS3 without backwards compatability could just as well be the XYZ console. The fact XBox 2 won't have a hard drive and won't be backwards compatible has basically told me that buying an XBox is a purchase without a future, so I might as well just hold off until it's ultra cheap, or skip it altogether.
This could be interesting if some states insist on collecting point of sales tax, and others insist on collecting point of delivery tax. If all states are not using a single system, it would seem that some combinations would cause you to have to pay for both states... that would kill any reason to order online or from catalogs.
MSDN Academic Alliance has some articles on progress being made on using functional languages on the CLI. Microsoft seems to be aware that there is value here, but they are moving cautiously.
Herein lies the rub in getting adoption of any of the more "esoteric" (read: not procedural) languages into the mainstream: libraries that require "understanding" of the functional model. After spending years interviewing programmers I can safely say that most barely remember the functional languages they were taught (if they were taught). Try to then force them to use an "alien" library that works in a functional way, and you might as well ask them to chop their arms off and thresh wheat.
.NET may be the only hope of getting functional programming adopted by the maininstream. Currently the CLI has limitations that hamstring functional languages, but Microsoft has actually been bothering to try to rectify those problems. If they do, I would *love* to run ocaml or Haskell with the .NET infrastructure to back up the boring routine work. For that matter *any* major libarary of functionality accessable to a functional language.
I sometimes suspect that
Actually, I was considering this yesterday. Most politicians are either lawyers or successful businessmen. Is it therefor surprising that the only things that are seen as valuable and worth protecting are those things which are valuable to those groups? (This is excepting the lip service to those who voted them in: I mean what they *really* work hard to achive.)
This thought was triggered by the news that Google and other large companies are outsourcing R&D work. In a technology based company, R&D is basically the foundation that supports your next business cycle. Outsourcing it would seem like suicide. Then I realized that perhaps even Google's leadership has been won over to the concept that somehow the only important part of a company is the business leadership. Everything else can be packed up, shipped out and done cheaper. Even the functions that determine the future sustainability of your company.
I wonder how long it really will take for the US to train the world how to replace it, whilst simultaniously creating a legal environment so hostile to innovation that nothing new is created here. After that, how long before the suits will have to move to where the real action happens... wherever we transfered all our skills and knowledge in the persuit of lower prices.
I love functional programming. If I had my way, my projects would all use functional programming languages. I don't have my way however, and there are two reasons.
1. Few commercial tools: Functional languages are under represented in the commercial space. With the exception of Franz Lisp and a few other lisp dialects, there is little commercial support. That may not be a killer for everyone, but I would like an environment with a good form designer and a large library to back me up. One I could give to another coder and expect them to be productive with it. Emacs works as an IDE for me, but I can't force that on others...
2. Fewer programmers: The vast majority of programmers seem unable/unwilling/whatever to grasp the concepts and work with functional code. If you need to build a team of programmers, it is much harder to find those who can do functional programming (and when you do, they rock, but are expensive and in high demand).
In the end, I use commonly used commercial tools so I can work with other people. Internally I use a lot of non commercial tools (LAMP model) and so I can sometimes indulge in my functional side there, but rarely can I do functional programming for my business clients.
Brutal games are being made today, but the serve a niche, not the mainstream. Mainstream gamers want to *have fun* playing a game, not necessary throw their controllers around in fits of rage.
I used to have the time and focus to play games like Shadow of the Beast of the Amiga for hours, perfecting my timing. Today, I prefer something a bit less demanding. Prince of Persia was a hit with me due to the magic of the rewind feature: sure, you failed that jump, but you just pressed a button and rewound until *before* the failure, and tried again. Nearly instant "load game", without all the loading fuss.
Meanwhile, Ikaruga (or however it is spelled) is a great shooter, but I don't think I will be imitating the demo play with perfect *MAX CHAINS* through the level. (I'm in awe of the recorded demos... freaking amazing talent displayed). Still, I can have a blast in two player mode, just trying to *survive* a few levels...
Really, the reason the old games simply ramped difficulty up to the point of impossibility was they had *nothing else to offer*. With in game movies with semi-coherent plots, lots of variety in gameplay, cool levels and a bit of humor, why would I want to beat my head against the same level for hours on end? Games have moved on from challenge to entertainment, excepting the few titles (Contra for PS2 anyone) that specifically were designed for the hardcore "lets try that a hundred times" gamer.
You have an excellent set of huristics for running a PK enabled mud. My point is more fundamental than that. My wife wouldn't and won't participate in PK environments. She is interested in the social aspects and co-operative missions. She started playing MUDs back with me in a smaug codebase that I was customizing (she wanted to know what all the fuss was). She played Everquest, but on a non-pk server. She was quickly able to join a clan, build vast circle of friends and tackle great challenges *co-operatively*. She won't even start a character on the PK server I play on from time to time.
So while you have great technical solutions to having PK intergrated, my point is there is a large market who has *no interest* in PK. Thus my reference to Talkers and MOOs. What percentage of the market they are is up in the air.
Your solutions appeal to a specific group that I have personally addressed in coding muds via Clan Wars and a vast political system (sadly for a mud that went down 5 years ago amist *administrator* [real life lovers] bickering). The political system created a way for non PK and PK players to interact in the same world, by making political offices available *only* to PK players, and giving votes to *only* non-PK players. The PKs became the "champions" of the non-PK players in Clan wars that could affect the availability of goods and services in towns. We saw no drop off in players when we introduced this: on the contrary, we went from 10-12 average simultanious users to 50 after that was implemented, as the PKs fought vicious battles and the non-PKs became involved indirectly in the outcome. Some additional tweaks had to be added (clan wars happen in areas where non PK players could not enter, to prevent 'interference' in the battle field, but the PKs could come back to the main town and get buffed and healed.) but after a few months our players had a blast.
Having been down that road (my first wife turned out to be a gold digger) I think you are showing far more wisdom than most.
The eternal PK / no PK conflict. Having coded muds for a *long* time, I can safely say you will never resolve this, as this is a personality issue, not a technical issue.
Some people want to play a cooperative game against the "game". Others want to play a battle of wits other players. There is plenty of middle ground, and where you stand on this determines the kind of players you will get.
Since you seem to like the PK aspect, you would probably be *shocked* that people play "talkers" and "MOOs" where combat plays *no part* in the game. (Some MOOs have added combat, but the base code is about creation, not destruction). Yahoo Pirates attracts different players than Dark Age of Camelot.
Personally, have my 12th level character mob-killed repeatedly by 35th level characters that I have no hope against doesn't appeal. But that is my *personality*. Perhaps you will say that I should be mob-killed repeatedly for simply existing.
- What kind of meat purchases were made
- Any alcoholic beverage purchases
- Any adult material purchases
- Tobacco products
The theory was purchases of a Good American Citizen(tm) would not match the quirks of a zealot. Therefor, if you didn't purchase specific products (and purchased other specific products) you would be identifiable as a higher risk factor. Of course, shopping was only part of the picture: travel destinations, unusual schooling patterns, etc were all part of the rational for wanted all information in a central DB.Those who are talking about the old x-windows multiple desktop switch tools are correct: and Microsoft is well aware of them. They are claiming a particular version where there is a tray icon (without preview) that summons a dialog which shows all the desktops in scaled format for selection. I use the alt-tab powertoy that I'm pretty sure this is based on: as I alt-tab I see a reduced picture of the app I'm selecting to (except my X-Window client, which it can't read).
Personally, I don't see this as a patentable advance, but they are claiming that showing a full rendition of the desktop in reduced form is different from showing shaded areas where the windows are.
For my hat? Yes, that was a paranoid rant, but think how much marketers would pay to have detailed info on upscale clients. Frankly, I doubt they would pay attention to me, and my tinfoil hat...
You know, Ratchet and Clank 2 improved on the formula so much that I really appreciated the sequel. Considering how good the original was, that was an achievement. I don't really care if it is a sequel or a new game, as long as it is good. Similarly, I think some games (Sly Cooper) may only succeed when a sequel comes out. The original was a very well designed game (I finished it and both Ratchet and Clank games: rarely do I have the attention span to do so) that didn't sell as well as it deserved.
I like innovation as much as the next person, but that doesn't mean I can't see the sequels as worthy as long as they continue to refine and improve the gameplay. It is unfortunate that innovative gameplay rarely captures sales these days. Some of my favorite games are commercial disasters, which means I had better enjoy what I have, because there *won't* be a sequel.
Examples: ICO, Warship: Naval Gunner, Unholy War.
I see a new business opprotunity! Several states decided a while back to make a profit off of the backs of the citizens by selling government databases to spa^H^H^H marketers. One of those databases was the registration data from the DMV.
Combine that with RFIDs scanned as they leave the store, returning to the car, and I think we will have an incredible insight into the nature of those people's purchases. I'm sure some clever individuals will be able to build a portable scanner and have some underpaid kids key in the corresponding plates... won't this be wonderful!
Democratic elections can coexist with communist ideals, but usually the blend is called social/democratic not communist/democrating due to two things. The first is the "hot button" that the word communist represents politically, and secondly because true communism fails over a certain threshold population size. (Utopias usually were communal, and they worked until the freeloaders overloaded the system...)
You have to realize that there is a spectrum of political stances and different dimentions they go in. Mob Rule -> Representitive Democracy -> Republic -> Parlamentry Monarchy -> Dictatorship represent a rough sketch of the peoples participation in government. Communism -> Socialism -> Self Determination represent an axis of "how much support" the people should receive from government. These are rough, incomplete and off the top of my head, but you can combine any representational system with any support system, in theory. Likewise, the Capitalist -> State Run market axis is theoretically independent.
Modern usage has tended to blur the true meanings of these words. We seem to assume "Democratic" = "Representitive Democracy + Mild Socialism + Capitalism". It doesn't have to be that way.
No..., no I'm not.
I loved my Amiga. It was capable of doing things that my PC using friends were blown away by. The custom hardware was, in its day, the most advanced on the market for the ordinary consumer.
That day is past: looking at this desktop I see nothing that different from any other desktop. My love for the Amiga was its ability to crank tracker sound files while doing work. The ability to play games far cooler than any the PC world could generate. The ability to multitask while compiling software.
Today, even a modest PC with XP home can do all that and more. I'm really not seeing the value that "Amiga" brings to the table. Sure, it brings back memories, but I'm more apt to fire up my emulator to revist some classics than to want a new OS that runs on... what?
Even in a noisy environment, you can take audible notes if you have a nose cancelling headset. With the exception of car horns, the traffic can't be heard. However, you also look like a homeless person jabbering to invisible people even more than the usual headphone+cell phone geek, because the normal cell phone pattern of speaking goes away. Nothing like randomly beginning to speak into the air to freak the locals out...
I'm curious about the "Then the unit tests could/should have been better. Sorry, it really is that simple."
I have been working on a very large web based product. I use a test product that exercises the UI, but I find it difficult to test two components:
1) ASP pages (or for that matter PHP or any other dynamic scripting code) that generate HTML. The test product can either check for exact matches (which means updates to XSTs break things) or it can look for things with names and IDs (which most elements don't have).
2) Data driven processes. The entire system is backed by a SQL database, which is constantly updated to reflect our production environment. One portion of our product is *extremely data driven* (it writes code based on data in the database for our customers.) Testing SQL components is a bear because either a) you fake the incoming recordset, which means it fails to reflect schema and stored procedure changes or b) you work with the data, which may get modified and break the test.
Sure, I can write unit tests for functions that take data and spit out data, but for functions that take sql and split out html, I just can't seem to find a good solution. I have tried to maintain a "testing" sql database with carefully selected data, but it quickly becomes out of synch with the real development databases.
To get concrete about this, I can write a function that adds a user to the database by calling a function with predetermined values. Except, once I call it, I can't use it again because the system detects the existance of that user account and acts different. We don't delete accounts (by policy requirements), but just disable them, so I can't even just yank the account.
Even worse, the actual process of creating a user spans five web pages, collecting data, testing it against conditions, asking for only needed data, etc. So I write web client test code that is as fragile as glass because HTML web client testers can't cope with even minute changes to the appearance of a page.
If you know tools/methods/whatever that address this kind of programming, I'm eager to check them out!
That I'm offended when /. becomes the home of "could you do my homework for me"? Perhaps then I can be forgiven for going ballistic at "I work in Global IT" (read: I make big bucks) "but I can't be asked to think for myself" (read: I make big bucks on the backs of others).
Gah.
Yes, this is a troll - it couldn't be helped. This type of freeloading makes me sick.
None of the projects I have looked at appear to have test first design. Some (especially CPAN items) have good testing of the functionality in place, but these are all modules inside a programming language. I have never seen a full on stand alone project with such testing built into the core.
I find that odd really, considering that the point behind "write tests first" is to create an executable specification for functionality. If a new piece is desired, surely it would be easier for someone else to pick up the module with the tests and write code to pass the tests than it is to try to pick up the flow of a project from out of date documents, etc, and just contribute. I look forward to those who know of such projects, because I plan to examine them for help on how to implement these techniques myself. (My current project uses regression tests driven by an external test application... I have had this same question for some time, especially in regards to web applications).
While the article mentions that the exact attacks that you say could happen in open source software could also happen in closed commercial software, I find the "barriers to implementing them are much higher" concept to be absurd. Just as the articles sasy the core Linux kernel is tightly monitored, so is the software from Microsoft. However, when it comes to smaller products, products that I have worked on, I would have to chuckle at the naive view that somehow closed source is "better protected". Most smaller companies that I have worked with are *far* more interested in getting a product to release than checking for backdoors. Testing is for failure modes, not for subtle pointer errors that open the code to obscure exploits.
In open source software, the maintainers vet patches by peer review before admitting them into the main product line. Likewise, closed source products are peer reviewed, but by a much smaller team, who probably have much more similar agendas than people flung across the globe. Either could be compromised. This exact same article could have been entitled "Software Is Fertile Ground for Foul Play". The concern that backdoors exist is the reason Asian countries have been suspicious of Microsoft's closed source software. To assuage those fears, Microsoft provided the source code for review. If this review is successful in showing that no backdoors exist (and I have no idea how they can tell that some unobtrusive code isn't deliberately flawed) then surely open source can be equally reviewed, if not suffer a more stringent review by opening the question to the open source community within the country in question.
The security that closed source promises by "protecting the source" is security through a promise by a potentially hostile vendor. The security open source promises is the vigilance of those who review the code. I don't see how one is better than the other, but I surely don't see how closed source is going to make a potential target feel better than if they could review the source.
I appreciate the effort and dedication that these people have put into these games. I have thought about producing an independent game title myself, but the amount of effort that goes into doing so is much higher than that going into custom applications. In a custom application for a client I have the database, middeware and UI to worry about. In a game you have the underlying engine, UI and real time programming coupled with music and graphics production (2d and 3d) without the committment of payment on delivery. For some reason my wife is reluctant to let me spend six months with a potential big fat zero return on that time. Pitty really: I would much prefer to work on something that brings enjoyment to people rather than "productivity enhancements" and "better cost control".
Didn't anyone read the "technologies that refuse to go away" article? Analog phones have so many advantages over digital technology that I find it hard to believe they will go away anytime soon.
1. Ubiquity: not just in the US, but world wide. The analog phone network links many countries that will take a long time to bring enough bandwidth to make digital conversations useful. Even in the US, there are a *lot* of places where you can't get broadband. If you are doing video you *need* broadband. If you are doing voice, you *want* broadband for the lower latency.
2. Reliability: with the exception of *major* disasters (which would bring any network down) the analog phone system just works. I keep one corded phone in the house because it works when the power goes out. (Handy, say, to call the electrician on.) My PC will last 15 minutes on battery backup: not what I want to rely on if I come home to a dark house. My local cable provider has "digital phone" service which has outage issues at least once a month, and sometimes weekly. My cell phone is likewise prone to sudden disconnects, but I put up with it for the sake of being mobile.
3. Quality of Service: I have a few friends too cheap to pay for long distance who like to voice chat over Yahoo and other services. It works. Kinda. Except when it doesn't, and drops the connection, or crashes or makes my sound card cry. But even when it works, it sounds bad.
That isn't to say these are insurmountable problems. The analog phone network is mostly digital at it's core, so it isn't a matter of technology, per se. Instead, it is the attempt to shoehorn voice over IP, and particularly over the laggy, drop prone and quirky public Internet. Voice is almost there, if you have good broadband. Video is a joke still: it reminds me of Internet radio about 4 years ago, mostly a novelty. It is going to take a lot of work at the infrastructure layer to make digital VOIP and video a common occurrence that is relied upon, instead of as a novelty, or in applications where people put the infrastructure in place themselves (tele-medicine, big companies with video conferencing between T1 connected locations, etc).
While I doubt PS1 games will drive PS3 sales, due to the dismal initial lineup for the PS2, I was thankful that when I bought it I could by classic PS1 games out of bargin bins. I doubt I was the only one who said "what the heck, I can play the old games too (and some of those are great games)" and was influenced by that feature. I bought as many PS1 games as PS2 games when I first had the machine.
If the PS3 doesn't have backwards compatibility, then my library of over 40 PS2 games (and 20 odd PS1 games) isn't a factor in my looking at PS3 vs XBox vs Nintendo. If it isn't a factor, then I would probably just skip picking it up, at least until it drops price considerably and has a substantial library of *good* (not *launch*) games. I didn't buy a game cube until they dropped to $99, and then I picked up 7 games on the cheap. Same with the XBox... I'm only interested because of the rumored upcoming bargin bin prices.
Likewise, my affinity for the Gameboy Advance (last refuge of turn based gaming) is due to its ability to run earlier games. I have ignored other attempts at portability, simply because I have an investment in games.
Surely I'm not alone in wanting some value out of my gaming dollar? A PS3 without backwards compatability could just as well be the XYZ console. The fact XBox 2 won't have a hard drive and won't be backwards compatible has basically told me that buying an XBox is a purchase without a future, so I might as well just hold off until it's ultra cheap, or skip it altogether.
This could be interesting if some states insist on collecting point of sales tax, and others insist on collecting point of delivery tax. If all states are not using a single system, it would seem that some combinations would cause you to have to pay for both states... that would kill any reason to order online or from catalogs.