And what is the handle pattern but an application of information hiding? An opaque type hides information from disinterested parties. To my way of thinking that, rather than simple aggregation, is the essence of encapsulation. pimpl gives the benefit of vtbl isolation, but that arises as an additional benefit - not the sole purpose.
You need a mutex for singleton to avoid a possible race condition at creation. Atomic class creation can only be achieved by creating the instance yourself, you can not be guaranteed client programmers will do so correctly (library init functions which can enforce this often seem to cause more trouble than they are worth), and it is not something you can count on the environment to do in a portable way.
The addition of mutable I suggested is a remedy when the initial class layout did not use it appropriately.
pimpl is very much a separation of implementation from interface - information hiding is essential to encapsulation.
You mention the most common legitimate use of class variables, the singleton. Obviously that requires some form of mutex. The common use of 'const' class variable is naturally thread-safe, so are class methods.
mutable does nothing to dig you deeper into a const trap, it should be used when laying out the class to mark those portions that don't affect the logical constness of instances of the class. This makes it easier to keep to keep to correct application of const in the first place.
Proper logical and physical encapsulation can speed up builds by a huge factor. The more extreme encapsulation of pimpl can speed builds even more.
I think he is using 'static' in the sense of 'class variable' or maybe as in 'compilation unit scoped', not in the sense of 'persistent between invocations of a function' - the third use of 'static' is the one that always causes grief when threads enter the picture. You could conceivably cause thread problems with class variables, but to my mind that nearly always involves misuse of class variables.
I agree that const correctness is somewhat complex, but many of the problems that require massive overhaul can be avoided by the mutable keyword.
The programmer can easily subvert the type, scope, and privacy level of any source or binary interface you can come up with, the requirements of C compatibility require that it work this way.
One of the better ways to discourage client programmers from subverting your interface is to use as the only private member a pointer to an implementation struct which is forward declared in the header and defined within the implementation file. This can seriously cut down dependancies in large projects and remove one of the "practical" reasons programmers may have for subverting your interface.
The.i/.impl/.template convention for including the template implementation from the header is fairly widespread and works as well as anything related to templates ever works.
The "pure" solution of actual separate compilation of template implementation is supported by some compilers, but the complication it adds to the linker is probably more trouble than it is worth.
Anti-Catholic sentiment stayed alive and somewhat mainstream in the US long for the enemies of Kennedy to claim that a Catholic president would breach the separation of church and state, as the president would be answerable to the Vatican.
The actions of some American bishops could actually create a resurgence of such sentiment. At least one bishop sent letters to the effect that not only will they deny communion to politicians that support abortion, but to parishioners who vote for them as well.
I personally think that any church that uses the pulpit or faith of the congregation to encourage its members to vote in any particular way should lose all tax exemptions. Such a move could do much to reduce the politicizing of religion in the US.
Maybe fast food changed since I was a kid, but my experience was almost nothing like yours. Constant rushing about and mindless tedium at the same time, with a bonus helping of the especially malicious politics that seem to develop when the stakes are trivial. I've worked jobs were I was very responsible for millions in revenue, worked the usual death march projects, worked pointless projects, attended many hours of meetings, had to fire people, owned a failing business, particpated in the silliness of office politics and ego stroking, and been chewed out and threatened by some unusual characters - all the standard stresses of business life, but fast food is by far the most awful and stressful job I've held.
I freely admit that my youth and immaturity made it much worse than it would be to a rational adult, but that doesn't change the fact that it was a stressful and exasperating experience for a 14-15 year old.
I think it is '+1 Funny:ironic'. The phrases 'unneeded verboseness', 'could fit in... quarter the size', and 'constantly repeating himself hoping to fill more pages' are either sublime and understated irony or his genuine way of expressing displeasure with verbosity and hence unintentionally funny.
I've pretty much given up on being late to join a "vintage" MMO for that very reason. Even if you can deal with stone age graphics without an existing attachment to the game, there is always that unclosable gap, it's always been easier to head to one of the new MMOs constantly coming out.
It would require a massive die-off in their executive leadership to embrace a kernel as open as Apple, as Bill G, Balmer and others hate the GPL and Free Software, despise their customers, and heap contempt on everyone who is not them.
It could happen, but I doubt it will happen within 20 years and who knows what the computing landscape will look like by that time.
There are situations in which software can be an actual invention, but they are vanishingly rare. With benefit so rare and abuse so common it may be that trade secrets are the only way to benefit and protect such inventors. Either that or institute some serious penalties against entities that abuse the patent system.
Sorry for the rant, but what fool calls lawyers names to their faces?
Lawyers are citizens of the US. In a court while participating in legal proceedings they have some special privileges, in any other circumstance they are completely normal citizens. Why should a "fool" fear to tell a lawyer that they think that their entire profession is made up of conniving jackals?
More like, it was a reaction to England's persecution of minorities who didn't follow the Anglican schism from the Roman Catholic church. The English who didn't want to play along with the established religion had the choice of being harassed at home, or going elsewhere. Many of them went to America.
The educated of the 18th century were very interested in the ancient Roman Republic and Empire. This is shown not only in the form of government adopted in the US and France, but in philosophy, statuary, architecture, mottoes, and so on. Anyone who studied the history of Rome and Europe could not have failed to appreciate how antithetical to freedom is the marriage of religion and government.
The creation of a modern democratic state was a risky social experiment that could have easily failed, the foundation of the nation and its principals was thought over and argued over from every viewpoint. I think the reason behind the decision to separate church and state was more a considered philosophical decision than a simple reaction to persecution by the English church - such experience had something to do with it of course, but I think that that experience was viewed as a typical consequence of a state religion.
What we are seeing in America is the triumph of superstition in the guise of Christianity.
The religious right loves to point out that the US is a Christian nation, but the Christianity of the founding fathers was that of the age of secular liberalism that despised the habits of mindless dogma, despotism, cruelty, murderous politicking and superstition of the Roman Catholic Church. They also avoided the fanaticism of the extremist Protestant sects that had been shipped to America due to their obnoxiousness. Somehow modern American Protestantism seems to have inherited the bad point points of those militant Protestant sects, but also managed to adopt some of the worst habits of the Catholics - especially as regards superstition and interference in temporal matters.
The separation of church and state in the US was a reaction against the awful spectacle of Christendom in Europe. It has been a while and Christendom is in serious decline, but modern Americans need only look at the middle east to see a live example of the perils of allowing religion a voice in government.
Did VCRs also spontaneously arise out of the primordial soup? A VCR is a far far simpler device than a self-reproducing automaton...
The watchmaker argument has always pissed me off. It masquerades as logic by claiming that an artifact requires an intelligent creator, something that agrees with human experience, but fails to continue the use of logic with regard to the origin of the creator itself. At best the watchmaker principle is a useless bit of sophistry.
I'm actually really looking forward to D&D online - it looks to have a very interesting setting and some very cool ideas. I just hope that 30 years of experience with game play and balance are actually put to good use - not the usual random (and often inferior) game with a franchise label slapped on top.
I'll probably give AC 1.5 a shot when they release it, I'm without an MMO right now - hoping against hope that SOE pulls their head out and applies drastic surgery to fix SWG, I'm betting they just write it off and flush it though. A fun and involved PvP system is pretty much essential for me to enjoy an MMO, and I've always heard that AC had one of the best.
there is a social compact that is binding on those that live in a democracy/republic
...
In other words, if you don't like the rules, leave.
You forgot the demos in your discusion of democracy, if you don't like the rules, change them. Ignoring or refusing to enforce laws is a time honored method of eroding unfair, unpopular, or just plain stupid laws to uselessness or getting them repealed.
There is also the fact that for a democracy/republic to work in anything other than a primitive homogenous society, a simple "majority rules" is unworkable and will lead to massive social unrest.
Laws are very important, but they are not sacred - they are an approximation of the public good and the public will and subject to change and review.
I'd like to move past the silly application of misunderstood Latin suffix rules that gave us 'virii' (although general mockery seems to have put an end to that word) and start misapplying Greek suffix rules - I therefore nominate 'dildae'.
I always believed they should have stuck to what Koster wanted and left jedi out. Maybe they could have done an expansion in a few years when the GCW storyline had been run.
I hear AC brought up again and again as a successful MMO that managed a number of innovations. I never did get around to trying it (I tried AC2 and developed an irrational hatred of the name), but I've read quite a few discussions of attempts throughout the years to reward research but discourage players broadcasting the results - some interesting ideas, but I've never seen anyone claim success in any large scale setting.
Why on earth should they do that? Opera costs them money to make and distribute, and I'm sure the investors would like to see some sort of return. If they were going to get out of the browser business it seems more likely they would try to sell to Apple, MS or AOL.
For an article at a technical security forum there seems to be a lot more attention paid to personality, law enforcement and celebrity than the actual issue of security.
I gave up on reading bugtraq a few years ago when a series of ego clashes and flame wars drove the message volume up and the s/n ratio down - looks like I haven't missed out on anything if this sort of article passes for news there these days.
If you read discussions by Bartle on mailing lists or web forums you will see that he freely admits that his axes are to a certain degree arbitrary. He draws up some alternate and extended versions and explains that the version he used for the original article was the best to convey his observations and conjectures. I believe the essence of the article is correct, players have a variety of motivations and the success of an MMO largely depends on how the world and game reward the various types and allow (or encourage) them to interact.
I really think the best example of rewarding powergamers to the detriment of all other players (and the game itself) is SWG. They made the "prestige class" level of power extremely rare, wound up making it more common by degrees (while lavishing massive amount of attention on it and ignoring everything else), then decided to make it rare again. The result wound up alienating everyone. I think the SWG servers are probably populated by a few die-hard jedi at this point and not much else. The publisher took an innovative game and flushed it down the toilet by only paying attention to powergamers after launch.
A lot of the people I play with are not powergamers according to any definition, they don't care if their character excels - they want to have fun. I think such players are the bridge to the mass market and maybe even long term sustainability for an MMO world. None of the first or second generation MMOs have managed to last and maintain a high server population, I blame that on their pandering exclusively to powergamers.
There are actually a fair number of players who look on an an MMO as entertainment. They play a couple hours in the evening and pay as much attention to voice chat as they do the game itself. These players are desirable from a business perspective as they are not likely to spreadsheet the economy, dupe money, grief noobs, wander to every new MMO beta that comes out and take their guild with them, post poorly spelled flames in support forums, or fly like a plague of locusts over every new bit of content within an hour of it going live and then post a walkthrough on a web page.
Bartle's old player types article is fairly simplistic, but I think correct in essence. An MMO needs to find a correct mix of all player types to succeed.
As others have pointed out there is a massive IP landrush on, patents covering basic technologies and simple concepts are up for grabs to whoever gets there first. Viewed in that light IBM might as well gobble it up first.
There is also a likeness to the development of feudalism. In the first stages the kings went around stomping their rivals and grabbed all the land they could get. Once somewhat secure they would give out fiefs in return for loyalty in commerce and war.
It's not an exact match by any means, but some similarities are there. Take from the public (or prevent others from taking it first), then give back parts of your property to your favorites. This garners good will (loyalty) and harms their enemies.
You need a mutex for singleton to avoid a possible race condition at creation. Atomic class creation can only be achieved by creating the instance yourself, you can not be guaranteed client programmers will do so correctly (library init functions which can enforce this often seem to cause more trouble than they are worth), and it is not something you can count on the environment to do in a portable way.
The addition of mutable I suggested is a remedy when the initial class layout did not use it appropriately.
You mention the most common legitimate use of class variables, the singleton. Obviously that requires some form of mutex. The common use of 'const' class variable is naturally thread-safe, so are class methods.
mutable does nothing to dig you deeper into a const trap, it should be used when laying out the class to mark those portions that don't affect the logical constness of instances of the class. This makes it easier to keep to keep to correct application of const in the first place.
I think he is using 'static' in the sense of 'class variable' or maybe as in 'compilation unit scoped', not in the sense of 'persistent between invocations of a function' - the third use of 'static' is the one that always causes grief when threads enter the picture. You could conceivably cause thread problems with class variables, but to my mind that nearly always involves misuse of class variables.
I agree that const correctness is somewhat complex, but many of the problems that require massive overhaul can be avoided by the mutable keyword.
One of the better ways to discourage client programmers from subverting your interface is to use as the only private member a pointer to an implementation struct which is forward declared in the header and defined within the implementation file. This can seriously cut down dependancies in large projects and remove one of the "practical" reasons programmers may have for subverting your interface.
The "pure" solution of actual separate compilation of template implementation is supported by some compilers, but the complication it adds to the linker is probably more trouble than it is worth.
I personally think that any church that uses the pulpit or faith of the congregation to encourage its members to vote in any particular way should lose all tax exemptions. Such a move could do much to reduce the politicizing of religion in the US.
I freely admit that my youth and immaturity made it much worse than it would be to a rational adult, but that doesn't change the fact that it was a stressful and exasperating experience for a 14-15 year old.
Whichever is the truth the moderation is apt :)
I've pretty much given up on being late to join a "vintage" MMO for that very reason. Even if you can deal with stone age graphics without an existing attachment to the game, there is always that unclosable gap, it's always been easier to head to one of the new MMOs constantly coming out.
It could happen, but I doubt it will happen within 20 years and who knows what the computing landscape will look like by that time.
You are right though that it means all of Christianity at this point, and with that meaning is certainly not under decline.
There are situations in which software can be an actual invention, but they are vanishingly rare. With benefit so rare and abuse so common it may be that trade secrets are the only way to benefit and protect such inventors. Either that or institute some serious penalties against entities that abuse the patent system.
Lawyers are citizens of the US. In a court while participating in legal proceedings they have some special privileges, in any other circumstance they are completely normal citizens. Why should a "fool" fear to tell a lawyer that they think that their entire profession is made up of conniving jackals?
The educated of the 18th century were very interested in the ancient Roman Republic and Empire. This is shown not only in the form of government adopted in the US and France, but in philosophy, statuary, architecture, mottoes, and so on. Anyone who studied the history of Rome and Europe could not have failed to appreciate how antithetical to freedom is the marriage of religion and government.
The creation of a modern democratic state was a risky social experiment that could have easily failed, the foundation of the nation and its principals was thought over and argued over from every viewpoint. I think the reason behind the decision to separate church and state was more a considered philosophical decision than a simple reaction to persecution by the English church - such experience had something to do with it of course, but I think that that experience was viewed as a typical consequence of a state religion.
The religious right loves to point out that the US is a Christian nation, but the Christianity of the founding fathers was that of the age of secular liberalism that despised the habits of mindless dogma, despotism, cruelty, murderous politicking and superstition of the Roman Catholic Church. They also avoided the fanaticism of the extremist Protestant sects that had been shipped to America due to their obnoxiousness. Somehow modern American Protestantism seems to have inherited the bad point points of those militant Protestant sects, but also managed to adopt some of the worst habits of the Catholics - especially as regards superstition and interference in temporal matters.
The separation of church and state in the US was a reaction against the awful spectacle of Christendom in Europe. It has been a while and Christendom is in serious decline, but modern Americans need only look at the middle east to see a live example of the perils of allowing religion a voice in government.
The watchmaker argument has always pissed me off. It masquerades as logic by claiming that an artifact requires an intelligent creator, something that agrees with human experience, but fails to continue the use of logic with regard to the origin of the creator itself. At best the watchmaker principle is a useless bit of sophistry.
I'll probably give AC 1.5 a shot when they release it, I'm without an MMO right now - hoping against hope that SOE pulls their head out and applies drastic surgery to fix SWG, I'm betting they just write it off and flush it though. A fun and involved PvP system is pretty much essential for me to enjoy an MMO, and I've always heard that AC had one of the best.
In other words, if you don't like the rules, leave.
You forgot the demos in your discusion of democracy, if you don't like the rules, change them. Ignoring or refusing to enforce laws is a time honored method of eroding unfair, unpopular, or just plain stupid laws to uselessness or getting them repealed.
There is also the fact that for a democracy/republic to work in anything other than a primitive homogenous society, a simple "majority rules" is unworkable and will lead to massive social unrest.
Laws are very important, but they are not sacred - they are an approximation of the public good and the public will and subject to change and review.
I'd like to move past the silly application of misunderstood Latin suffix rules that gave us 'virii' (although general mockery seems to have put an end to that word) and start misapplying Greek suffix rules - I therefore nominate 'dildae'.
I hear AC brought up again and again as a successful MMO that managed a number of innovations. I never did get around to trying it (I tried AC2 and developed an irrational hatred of the name), but I've read quite a few discussions of attempts throughout the years to reward research but discourage players broadcasting the results - some interesting ideas, but I've never seen anyone claim success in any large scale setting.
Why on earth should they do that? Opera costs them money to make and distribute, and I'm sure the investors would like to see some sort of return. If they were going to get out of the browser business it seems more likely they would try to sell to Apple, MS or AOL.
For an article at a technical security forum there seems to be a lot more attention paid to personality, law enforcement and celebrity than the actual issue of security. I gave up on reading bugtraq a few years ago when a series of ego clashes and flame wars drove the message volume up and the s/n ratio down - looks like I haven't missed out on anything if this sort of article passes for news there these days.
I really think the best example of rewarding powergamers to the detriment of all other players (and the game itself) is SWG. They made the "prestige class" level of power extremely rare, wound up making it more common by degrees (while lavishing massive amount of attention on it and ignoring everything else), then decided to make it rare again. The result wound up alienating everyone. I think the SWG servers are probably populated by a few die-hard jedi at this point and not much else. The publisher took an innovative game and flushed it down the toilet by only paying attention to powergamers after launch.
There are actually a fair number of players who look on an an MMO as entertainment. They play a couple hours in the evening and pay as much attention to voice chat as they do the game itself. These players are desirable from a business perspective as they are not likely to spreadsheet the economy, dupe money, grief noobs, wander to every new MMO beta that comes out and take their guild with them, post poorly spelled flames in support forums, or fly like a plague of locusts over every new bit of content within an hour of it going live and then post a walkthrough on a web page.
Bartle's old player types article is fairly simplistic, but I think correct in essence. An MMO needs to find a correct mix of all player types to succeed.
There is also a likeness to the development of feudalism. In the first stages the kings went around stomping their rivals and grabbed all the land they could get. Once somewhat secure they would give out fiefs in return for loyalty in commerce and war.
It's not an exact match by any means, but some similarities are there. Take from the public (or prevent others from taking it first), then give back parts of your property to your favorites. This garners good will (loyalty) and harms their enemies.