I have found test based development to be the best approach (in a nutshell you write the test case first - then build the classes to match).
The nice thing about this is when you begin to monkey with the code, you immediately get a joy buzzer when you do something that breaks existing functionality. By passing the tests, you automatically provide backwards compatibility with existing applications that use the library. As a side effect it also makes you think more about your interfaces.
Of course this is only as good as your tests; if you assume the output of some method will be a positive integer, when it could be a negative integer, for example, it may break on some boundary case that produces the output you didn't test for - etc. YMMV
Where testers don't get to touch it until it's ready for testing?
We don't have testers - that function is served by our customers (internal). They are much more adept at breaking things than any group of testers ever would be.
I often travel to Austin on business, and I feel like I'm in California all over again (spent some time in the Bay area on business as well, and I spent time with a friend who shuttled between Portland OR and Seattle).
The weather in Texas is only nice if you have never been west of the rockies. And if you say Texas weather rocks (ANYWHERE), then you are, full, of shit.
As for 'winning' an argument regarding the 'best' weather - that is an aesthetic consideration and thus has no 'right' or 'wrong' connotation. I guess logic wasn't required to get your geek credentials...if you really are a geek...
As an aside, if you're too wimpy to deal with the heat, try West Texas at higher elevations -- temperatures drop 3 degrees per thousand feet, and can be rather nice in the summer time.
I witnessed a 30+ car pile up on the A1 during zero-zero visibility (fog) when a patch of black ice formed on the roadway. You couldn't see past the bonnet (hood) of your car - but the bloody Brits were driving high speeds anyway.
The USA doesn't have a monopoly on mother nature trying to kill us - or stupid human beings for that matter.
As an aside, during one summer I went to the beach at Great Yarmouth. It was a 'sweltering' 82 degrees F., the English were melting all around me, and I wasn't even sweating (might have helped if they had cold beverages at the beach tho).
The term 'green' bugs me when applied to solar power. Producing solar cells isn't a very friendly process and the environmental footprint of a large solar farm is worse than that of an oil-rig or gas mine.
Solar thermal plants (which simply have mirrors that direct the energy at a central heat exchanger containing mineral oil - which also allows the super heated oil to continue turning a turbine after dark) - doesn't have the same manufacturing waste as solar voltaic cells.
The footprint of the solar array while larger than a given oil well - also does not pose the same threat (oil spills). Locating a given array in a barren area - such as the desert - maybe even the old atomic test sites in Nevada, for example - would not pose much of an impact.
Actually if you look at history, it took quite a lot of oppression - including several massacres in the street. Arms were not brought to bare until the British army marched against the state militia in Concord Mass.
I have yet to see people being shot down in the streets en-mass - or the US Army assaulting state National Guard and militia organizations.
While you may think today's injustices justify revolt - history says otherwise.
It is not about overthrowing the government. It is about providing a counterbalance to an oppressive regime. While not as effective, perhaps, it is something an oppressor would have to consider if they wanted to do away with our Constitution. It would allow people to protect their immediate property - and if circumstances demanded would also allow them to buy enough time to organize a proper defense in concert.
Additionally, our military is unique in many respects - we were taught to think independently and not to follow unlawful orders. We also pledged to defend the Constitution from all enemies foreign and domestic. I think that coupled with an armed populace limits the options for massive oppression or the dissolution of the Constitution and our form of government. Will there be exceptions, mistakes and abuses? Sure - but these will never rise to a widespread level without the military falling in with the populace at some point and negating any advantages the runaway government would have.
The real danger is progressive erosion of our rights - which can and have been remedied in the courtroom - and will continue to be.
Tell that to the militia sharpshooters who sniped the British column all the way back to Boston.
An AR15 - while not fully automatic is still a wicked weapon in the right hands - and there are other versions of similar weapons that will function just as well that don't look like an assault style weapon. Modern snipers with accurized bolt action rifles have been known to hold off much larger units regardless of composition.
Additionally, there are plenty of ex military combat arms veterans who not only have the skills - but also the ability to train their fellow Americans if the need should arise.
That being said, it would take something completely insane - like GW declaring himself King, and dissolving the Constitution, before any significant numbers of people would take up arms. That isn't going to happen.
Finally, the US Army is made up of the people - therefore I also seriously doubt they would follow someone who is obviously doing something insane and illegal on such a grand scale. More likely they would arrest said person and restore the legal government.
No - the real dangers to our freedoms are small and insidious erosions - which our legal system is capable of addressing - sooner or later.
As long as you are using cryptography in your own home, and intrusion detection systems - then I would expect this to hold.
Once you leave the boundary of the home and partake in something illegal with said munitions (e.g. taking your 'munitions' to a network security conference for the purpose of giving a demonstration/presentation is not illegal activity) - then I would expect that to be a violation.
Of course, this assumes that a court agrees that a 'munition' as defined is in fact an 'arm' as eluded to in the Constitution.
I've loaded WINE numerous times over the past years - primarily to play 'legacy' video games/simulations. I've had limited success with the specific stable of games I am interested in and own. I've also paid for Cedega which was equally dissatisfying. With the demise of Loki Software, and the limited titles that have been ported directly to linux by icculus.org and LGP to date - there is still a very large sector of games that many would say hold back adoption of linux as a gaming platform.
What are your views on WINE gaming, and what are you doing (if anything) to address this issue?
BDUF doesn't work - with one exception: if you are building something that is both simple and unchanging.
Once complexity rises and/or what you are building has to deal with changing circumstances, then waterfall breaks down. This is most applications by the way.
One of the key reasons software development projects fail is due to the selection of the wrong lifecycle model.
Well, Hell, if I knew what my tasks were, I wouldn't need a project management tool. I gave up on it completely. You are a developer building a large/complex C++ application - yet keeping a bit of information about the project is too complicated?
Also, I find your binary thought process (all or nothing) incompatible with the real world (evolutionary).
I think the differences between us on this subject boils down to mechanistic versus holistic viewpoints.
Assuming a normal healthy individual:
From a mechanistic viewpoint 'dumb' and 'smart' are unwavering traits tied inexorably to individual. You are born with it and you die with it - in most observed cases, therefore it is so. You seem to ascribe to this model.
From a holistic viewpoint 'dumb' and 'smart' are a continuum of responses over time - that can be changed - and furthermore includes all brain function, not just that measured in an IQ test. Making any finite value judgments along these lines for the individual is irrelevant and inconclusive. I understand this to be the case.
Retraining of the brain following physical trauma to the brain, the more esoteric aspects of special forces training, and learning that I have seen with various other types of people over time - makes me tend to believe the holistic viewpoint is a more accurate representation of what is really happening.
"if we were to accurately model the physical world" I'm trying, but my simplified model (Greatly simplified model!) Takes about a month for a system of a couple of hundred electrons, neglecting the atoms cores. How on earth do people come to think that simulating the physical world is a trivial problem, just cause we have computers that run quake 2 at 100fps?
Model - by definition is not a complete implementation of that being modeled - it is much simplified.
Since a human (or bot) is interacting with the simulated world at the macro level, there is no reason to simulate the micro level in any significant detail - provided the experience in the macro realm is nearly indistinguishable from the real world (provided your goal was to model the physical world - you could model other realities - multidimensional spaces, or specific subatomic interactions etc - which would change your goals in this regard).
For interactions that have consistent predetermined outcomes, an algorithm will do. For interactions that are purely random, a probabilistic algorithm will suffice. For interactions that are not well defined and information is limited, a heuristic will work.
So the question is, 'how accurate is accurate enough?'
Outstanding! Now I won't have to port my python code to java to make IT happy. Now that Java is going FOSS - I wonder how their 'don't use open source' policy is going to fly?
It is more complex than that. FOSS does not guarantee a given project will be examined - it only provides the opportunity.
Other factors determine the extent of examination: popularity, criticality, etc.
The Linux kernel and Firefox are regularly combed and bugs reported because they are both popular and critical infrastructure.
There are many more projects that don't get combed as often or as thoroughly, and there are legion that don't get examined at all. Ruby falls in here somewhere.
Anyone with normal brain function can be trained to do anything. The point I was trying to make is there is nothing innately 'dumb' or 'smart' about people in general. You hit the nail on the head when you said, "It's mostly personality" - people choose to be smart or ignorant of things. Furthermore I would argue this is the natural state of things because there is not enough time to really know everything. The key to being 'smart' is choosing the right things to know, and the right things to ignore. What is right?
Now, suppose your environment changes - you are a Cobol programmer and the last Cobol program is retired - and lets assume you are not yet of retirement age. There is nothing innately 'dumb' about you just because you don't know C++ or Java. That being said, you could have an IQ of 200 - if you believe in the value such things - but still end up living under the overpass in a cardboard box. You may choose to simplify your life in this manner and are perfectly happy with it. I can certainly run rings around you in Java or C++, but that is largely irrelevant - at any moment you could put energy into learning C++ or Java - and run rings around me if you desired. Are you dumb? Am I elite? What is right?
Hubris leads to nemesis, or as the slave riding through the Roman triumphal parade with the General whispered in his ear, 'Sic Transit Gloria', or 'thus passes glory' (e.g. all fame is fleeting).
I think the kernel of my point is not that a company should or should not use advantages - but when choosing to use a given advantage, to do so responsibly. There is ample evidence - including the antitrust conviction - that shows Microsoft has a track record of not acting responsibly.
The agreement to incorporate carries with it a duty to exercise the powers entrusted to the corporation in a responsible way. By gaining advantages - spreading the risk, providing tax shelters and other benefits - a corporate entity agrees to act as a public trust - and not prey upon the very same public that allows it to exist in the first place.
As a member of the public and as an IT worker, I lament the many years of lost opportunities and wasted energy expended to work around the various problems created by this 'good enough to ship' mentality and the suppression of better alternatives.
Ethics must play a part in commerce - or capitalism will end up eating its own young whereupon the public will dissolve it to make way for something that will act in an ethical manner, or worse - something that won't work at all.
There are no dumb or smart people - beyond the clinically impaired. Someone considered dumb in one context, can be a genius in another.
I'm a musician and composer - as a hobby - but I'm a blithering idiot in comparison to Mozart (or any other established professional composer you care to name). Can they run rings around me in music composition - absolutely! Am I 'dumb' as a result?
On the other hand, I'm a very effective programmer. Others have called me a genius at it - but I don't rate that compliment. However, I can certainly run rings around most musical composers when it comes to software development. Are they 'dumb' as a result?
As scientists we are trained to classify everything. However the reality is much more complex than that (a good example in the natural world is the duck-billed platypus). This goes for people too.
People have value beyond excellence or lack thereof in any single area. They are more than the sum of their parts.
'(R)unning circles around dumb people' is irrelevant in this context.
Many tasks involve waiting... I can either stare in to space, or I can go ahead and do something else for a bit then come back to it... We'd each take a row of computers and start doing installs by hand. He did everything sequentially, sitting at one computer and doing all the steps until it was done. I multi-tasked, dancing back and forth between 3-4 computers at once all at different stages of the setup. I ended up doing over twice the number of rows as him.
The reason was this was a perfect place to multi-task. The setup involved a fair bit of waiting on things before giving input, so rather than wait I'd go on to the next one. Thus the job got done quicker.
Here is a simple rule of thumb to help people differentiate when and when not to multitask:
If the activity involves creativity at all - do not multitask. Of course the converse is true: if the activity involves repetitive tasks and much waiting - do multitask.
...have to write down some notes about what I was working on, answer his question, read my notes and try to regain my concentration. Sometimes it takes fifteen minutes or more to regain my concentration...
Usually the state I am holding at the point of interruption is too complex to write down in any meaningful way in short order (and 'state' is probably a misnomer - I liken it to a constellation of orbiting 'nodes' with interconnections that are sometimes changing - and that probably isn't a good representation since I am a verbal person...how I perceive things in that state is beyond a clear and simple visual description). Getting back to where I was after an interruption is almost impossible.
I have found test based development to be the best approach (in a nutshell you write the test case first - then build the classes to match).
The nice thing about this is when you begin to monkey with the code, you immediately get a joy buzzer when you do something that breaks existing functionality. By passing the tests, you automatically provide backwards compatibility with existing applications that use the library. As a side effect it also makes you think more about your interfaces.
Of course this is only as good as your tests; if you assume the output of some method will be a positive integer, when it could be a negative integer, for example, it may break on some boundary case that produces the output you didn't test for - etc. YMMV
Where testers don't get to touch it until it's ready for testing?
We don't have testers - that function is served by our customers (internal). They are much more adept at breaking things than any group of testers ever would be.
Amen brotha.
I often travel to Austin on business, and I feel like I'm in California all over again (spent some time in the Bay area on business as well, and I spent time with a friend who shuttled between Portland OR and Seattle).
The weather in Texas is only nice if you have never been west of the rockies. And if you say Texas weather rocks (ANYWHERE), then you are, full, of shit.
As for 'winning' an argument regarding the 'best' weather - that is an aesthetic consideration and thus has no 'right' or 'wrong' connotation. I guess logic wasn't required to get your geek credentials...if you really are a geek...
As an aside, if you're too wimpy to deal with the heat, try West Texas at higher elevations -- temperatures drop 3 degrees per thousand feet, and can be rather nice in the summer time.
Games under Linux and Windows (from my experience):
fast ----- > slow
Native Linux >>> Windows Executable on Wine >>> Windows Executable on Windows
(This is on the same hardware in most cases - YMMV)
I lived in England for 2 years during the 1980s.
Two words: black ice.
I witnessed a 30+ car pile up on the A1 during zero-zero visibility (fog) when a patch of black ice formed on the roadway. You couldn't see past the bonnet (hood) of your car - but the bloody Brits were driving high speeds anyway.
The USA doesn't have a monopoly on mother nature trying to kill us - or stupid human beings for that matter.
As an aside, during one summer I went to the beach at Great Yarmouth. It was a 'sweltering' 82 degrees F., the English were melting all around me, and I wasn't even sweating (might have helped if they had cold beverages at the beach tho).
Why not the Nevada Test Site -- its all radiated anyway, and mostly desert.
The term 'green' bugs me when applied to solar power. Producing solar cells isn't a very friendly process and the environmental footprint of a large solar farm is worse than that of an oil-rig or gas mine.
Solar thermal plants (which simply have mirrors that direct the energy at a central heat exchanger containing mineral oil - which also allows the super heated oil to continue turning a turbine after dark) - doesn't have the same manufacturing waste as solar voltaic cells.
The footprint of the solar array while larger than a given oil well - also does not pose the same threat (oil spills). Locating a given array in a barren area - such as the desert - maybe even the old atomic test sites in Nevada, for example - would not pose much of an impact.
Actually if you look at history, it took quite a lot of oppression - including several massacres in the street. Arms were not brought to bare until the British army marched against the state militia in Concord Mass.
I have yet to see people being shot down in the streets en-mass - or the US Army assaulting state National Guard and militia organizations.
While you may think today's injustices justify revolt - history says otherwise.
It is not about overthrowing the government. It is about providing a counterbalance to an oppressive regime. While not as effective, perhaps, it is something an oppressor would have to consider if they wanted to do away with our Constitution. It would allow people to protect their immediate property - and if circumstances demanded would also allow them to buy enough time to organize a proper defense in concert.
Additionally, our military is unique in many respects - we were taught to think independently and not to follow unlawful orders. We also pledged to defend the Constitution from all enemies foreign and domestic. I think that coupled with an armed populace limits the options for massive oppression or the dissolution of the Constitution and our form of government. Will there be exceptions, mistakes and abuses? Sure - but these will never rise to a widespread level without the military falling in with the populace at some point and negating any advantages the runaway government would have.
The real danger is progressive erosion of our rights - which can and have been remedied in the courtroom - and will continue to be.
Tell that to the militia sharpshooters who sniped the British column all the way back to Boston.
An AR15 - while not fully automatic is still a wicked weapon in the right hands - and there are other versions of similar weapons that will function just as well that don't look like an assault style weapon. Modern snipers with accurized bolt action rifles have been known to hold off much larger units regardless of composition.
Additionally, there are plenty of ex military combat arms veterans who not only have the skills - but also the ability to train their fellow Americans if the need should arise.
That being said, it would take something completely insane - like GW declaring himself King, and dissolving the Constitution, before any significant numbers of people would take up arms. That isn't going to happen.
Finally, the US Army is made up of the people - therefore I also seriously doubt they would follow someone who is obviously doing something insane and illegal on such a grand scale. More likely they would arrest said person and restore the legal government.
No - the real dangers to our freedoms are small and insidious erosions - which our legal system is capable of addressing - sooner or later.
The key is 'in the home' and ' for legal uses'.
As long as you are using cryptography in your own home, and intrusion detection systems - then I would expect this to hold.
Once you leave the boundary of the home and partake in something illegal with said munitions (e.g. taking your 'munitions' to a network security conference for the purpose of giving a demonstration/presentation is not illegal activity) - then I would expect that to be a violation.
Of course, this assumes that a court agrees that a 'munition' as defined is in fact an 'arm' as eluded to in the Constitution.
I've loaded WINE numerous times over the past years - primarily to play 'legacy' video games/simulations. I've had limited success with the specific stable of games I am interested in and own. I've also paid for Cedega which was equally dissatisfying. With the demise of Loki Software, and the limited titles that have been ported directly to linux by icculus.org and LGP to date - there is still a very large sector of games that many would say hold back adoption of linux as a gaming platform.
What are your views on WINE gaming, and what are you doing (if anything) to address this issue?
BDUF doesn't work - with one exception: if you are building something that is both simple and unchanging.
Once complexity rises and/or what you are building has to deal with changing circumstances, then waterfall breaks down. This is most applications by the way.
One of the key reasons software development projects fail is due to the selection of the wrong lifecycle model.
Also, I find your binary thought process (all or nothing) incompatible with the real world (evolutionary).
For shame!
I think the differences between us on this subject boils down to mechanistic versus holistic viewpoints.
Assuming a normal healthy individual:
From a mechanistic viewpoint 'dumb' and 'smart' are unwavering traits tied inexorably to individual. You are born with it and you die with it - in most observed cases, therefore it is so. You seem to ascribe to this model.
From a holistic viewpoint 'dumb' and 'smart' are a continuum of responses over time - that can be changed - and furthermore includes all brain function, not just that measured in an IQ test. Making any finite value judgments along these lines for the individual is irrelevant and inconclusive. I understand this to be the case.
Retraining of the brain following physical trauma to the brain, the more esoteric aspects of special forces training, and learning that I have seen with various other types of people over time - makes me tend to believe the holistic viewpoint is a more accurate representation of what is really happening.
"if we were to accurately model the physical world"
Model - by definition is not a complete implementation of that being modeled - it is much simplified.I'm trying, but my simplified model (Greatly simplified model!) Takes about a month for a system of a couple of hundred electrons, neglecting the atoms cores. How on earth do people come to think that simulating the physical world is a trivial problem, just cause we have computers that run quake 2 at 100fps?
Since a human (or bot) is interacting with the simulated world at the macro level, there is no reason to simulate the micro level in any significant detail - provided the experience in the macro realm is nearly indistinguishable from the real world (provided your goal was to model the physical world - you could model other realities - multidimensional spaces, or specific subatomic interactions etc - which would change your goals in this regard).
For interactions that have consistent predetermined outcomes, an algorithm will do. For interactions that are purely random, a probabilistic algorithm will suffice. For interactions that are not well defined and information is limited, a heuristic will work.
So the question is, 'how accurate is accurate enough?'
Outstanding! Now I won't have to port my python code to java to make IT happy. Now that Java is going FOSS - I wonder how their 'don't use open source' policy is going to fly?
It is more complex than that. FOSS does not guarantee a given project will be examined - it only provides the opportunity.
Other factors determine the extent of examination: popularity, criticality, etc.
The Linux kernel and Firefox are regularly combed and bugs reported because they are both popular and critical infrastructure.
There are many more projects that don't get combed as often or as thoroughly, and there are legion that don't get examined at all. Ruby falls in here somewhere.
Anyone with normal brain function can be trained to do anything. The point I was trying to make is there is nothing innately 'dumb' or 'smart' about people in general. You hit the nail on the head when you said, "It's mostly personality" - people choose to be smart or ignorant of things. Furthermore I would argue this is the natural state of things because there is not enough time to really know everything. The key to being 'smart' is choosing the right things to know, and the right things to ignore. What is right?
Now, suppose your environment changes - you are a Cobol programmer and the last Cobol program is retired - and lets assume you are not yet of retirement age. There is nothing innately 'dumb' about you just because you don't know C++ or Java. That being said, you could have an IQ of 200 - if you believe in the value such things - but still end up living under the overpass in a cardboard box. You may choose to simplify your life in this manner and are perfectly happy with it. I can certainly run rings around you in Java or C++, but that is largely irrelevant - at any moment you could put energy into learning C++ or Java - and run rings around me if you desired. Are you dumb? Am I elite? What is right?
Hubris leads to nemesis, or as the slave riding through the Roman triumphal parade with the General whispered in his ear, 'Sic Transit
Gloria', or 'thus passes glory' (e.g. all fame is fleeting).
Thanks for taking the time to respond.
I think the kernel of my point is not that a company should or should not use advantages - but when choosing to use a given advantage, to do so responsibly. There is ample evidence - including the antitrust conviction - that shows Microsoft has a track record of not acting responsibly.
The agreement to incorporate carries with it a duty to exercise the powers entrusted to the corporation in a responsible way. By gaining advantages - spreading the risk, providing tax shelters and other benefits - a corporate entity agrees to act as a public trust - and not prey upon the very same public that allows it to exist in the first place.
As a member of the public and as an IT worker, I lament the many years of lost opportunities and wasted energy expended to work around the various problems created by this 'good enough to ship' mentality and the suppression of better alternatives.
Ethics must play a part in commerce - or capitalism will end up eating its own young whereupon the public will dissolve it to make way for something that will act in an ethical manner, or worse - something that won't work at all.
Someone needs to have their geek card revoked...
There are no dumb or smart people - beyond the clinically impaired. Someone considered dumb in one context, can be a genius in another.
I'm a musician and composer - as a hobby - but I'm a blithering idiot in comparison to Mozart (or any other established professional composer you care to name). Can they run rings around me in music composition - absolutely! Am I 'dumb' as a result?
On the other hand, I'm a very effective programmer. Others have called me a genius at it - but I don't rate that compliment. However, I can certainly run rings around most musical composers when it comes to software development. Are they 'dumb' as a result?
As scientists we are trained to classify everything. However the reality is much more complex than that (a good example in the natural world is the duck-billed platypus). This goes for people too.
People have value beyond excellence or lack thereof in any single area. They are more than the sum of their parts.
'(R)unning circles around dumb people' is irrelevant in this context.
Many tasks involve waiting... I can either stare in to space, or I can go ahead and do something else for a bit then come back to it... We'd each take a row of computers and start doing installs by hand. He did everything sequentially, sitting at one computer and doing all the steps until it was done. I multi-tasked, dancing back and forth between 3-4 computers at once all at different stages of the setup. I ended up doing over twice the number of rows as him.
The reason was this was a perfect place to multi-task. The setup involved a fair bit of waiting on things before giving input, so rather than wait I'd go on to the next one. Thus the job got done quicker.
Here is a simple rule of thumb to help people differentiate when and when not to multitask:If the activity involves creativity at all - do not multitask. Of course the converse is true: if the activity involves repetitive tasks and much waiting - do multitask.
...have to write down some notes about what I was working on, answer his question, read my notes and try to regain my concentration. Sometimes it takes fifteen minutes or more to regain my concentration...
Usually the state I am holding at the point of interruption is too complex to write down in any meaningful way in short order (and 'state' is probably a misnomer - I liken it to a constellation of orbiting 'nodes' with interconnections that are sometimes changing - and that probably isn't a good representation since I am a verbal person...how I perceive things in that state is beyond a clear and simple visual description). Getting back to where I was after an interruption is almost impossible.There is a movie about that specifically...